Index: /branches/start/ICRC_01/ampldist.eps
===================================================================
--- /branches/start/ICRC_01/ampldist.eps	(revision 4308)
+++ /branches/start/ICRC_01/ampldist.eps	(revision 4308)
@@ -0,0 +1,138 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox:  0 0 567 384
+%%Title: 
+%%Creator: ROOT Version2.25/03
+%%CreationDate:Fri May 11 10:34:04 2001
+%%EndComments
+%%BeginProlog
+80 dict begin
+/s {stroke} def /l {lineto} def /m {moveto} def /t {translate} def
+/sw {stringwidth} def /r {rotate} def /rl {roll}  def /R {repeat} def
+/d {rlineto} def /rm {rmoveto} def /gr {grestore} def /f {eofill} def
+/c {setrgbcolor} def /lw {setlinewidth} def /sd {setdash} def
+/cl {closepath} def /sf {scalefont setfont} def /black {0 setgray} def
+/box {m dup 0 exch d exch 0 d 0 exch neg d cl} def
+/NC{systemdict begin initclip end}def/C{NC box clip newpath}def
+/bl {box s} def /bf {box f} def /Y { 0 exch d} def /X { 0 d} def 
+/mp {newpath /y exch def /x exch def} def
+/side {[w .77 mul w .23 mul] .385 w mul sd w 0 l currentpoint t -144 r} def
+/mr {mp x y w2 0 360 arc} def /m24 {mr s} def /m20 {mr f} def
+/mb {mp x y w2 add m w2 neg 0 d 0 w neg d w 0 d 0 w d cl} def
+/mt {mp x y w2 add m w2 neg w neg d w 0 d cl} def
+/m21 {mb f} def /m25 {mb s} def /m22 {mt f} def /m26{mt s} def
+/m23 {mp x y w2 sub m w2 w d w neg 0 d cl f} def
+/m27 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl s} def
+/m28 {mp x w2 sub y w2 sub w3 add m w3 0 d  0 w3 neg d w3 0 d 0 w3 d w3 0 d  0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d
+ 0 w3 neg d w3 neg 0 d cl s } def
+/m29 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t
+ 4 {side} repeat cl fill gr} def
+/m30 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t
+ 5 {side} repeat s gr} def
+/m31 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d x w2 sub y w2 add m w w neg d x w2 sub y w2
+ sub m w w d s} def
+/m2 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d s} def
+/m5 {mp x w2 sub y w2 sub m w w d x w2 sub y w2 add m w w neg d s} def
+/reencdict 24 dict def /ReEncode {reencdict begin /nco&na exch def
+/nfnam exch def /basefontname exch def /basefontdict basefontname findfont def
+/newfont basefontdict maxlength dict def basefontdict {exch dup /FID ne
+{dup /Encoding eq {exch dup length array copy newfont 3 1 roll put} {exch 
+newfont 3 1 roll put} ifelse} {pop pop} ifelse } forall newfont
+/FontName nfnam put nco&na aload pop nco&na length 2 idiv {newfont
+/Encoding get 3 1 roll put} repeat nfnam newfont definefont pop end } def
+/accvec [ 176 /agrave 181 /Agrave 190 /acircumflex 192 /Acircumflex
+201 /adieresis 204 /Adieresis 209 /ccedilla 210 /Ccedilla 211 /eacute
+212 /Eacute 213 /egrave 214 /Egrave 215 /ecircumflex 216 /Ecircumflex
+217 /edieresis 218 /Edieresis 219 /icircumflex 220 /Icircumflex
+221 /idieresis 222 /Idieresis 223 /ntilde 224 /Ntilde 226 /ocircumflex
+228 /Ocircumflex 229 /odieresis 230 /Odieresis 231 /ucircumflex 236 /Ucircumflex
+237 /udieresis 238 /Udieresis 239 /aring 242 /Aring 243 /ydieresis
+244 /Ydieresis 246 /aacute 247 /Aacute 252 /ugrave 253 /Ugrave] def
+/Times-Roman /Times-Roman accvec ReEncode
+/Times-Italic /Times-Italic accvec ReEncode
+/Times-Bold /Times-Bold accvec ReEncode
+/Times-BoldItalic /Times-BoldItalic accvec ReEncode
+/Helvetica /Helvetica accvec ReEncode
+/Helvetica-Oblique /Helvetica-Oblique accvec ReEncode
+/Helvetica-Bold /Helvetica-Bold accvec ReEncode
+/Helvetica-BoldOblique /Helvetica-BoldOblique  accvec ReEncode
+/Courier /Courier accvec ReEncode
+/Courier-Oblique /Courier-Oblique accvec ReEncode
+/Courier-Bold /Courier-Bold accvec ReEncode
+/Courier-BoldOblique /Courier-BoldOblique accvec ReEncode
+/oshow {gsave [] 0 sd true charpath stroke gr} def
+/stwn { /fs exch def /fn exch def /text exch def fn findfont fs sf
+ text sw pop xs add /xs exch def} def
+/stwb { /fs exch def /fn exch def /nbas exch def /textf exch deftextf length /tlen exch def nbas tlen gt {/nbas tlendef} iffn findfont fs sf textf dup length nbas sub nbas getinterval sw
+pop neg xs add /xs exch def} def
+/accspe [ 65 /plusminus  66 /bar  67 /existential  68 /universal 
+69 /exclam  70 /numbersign 71 /greater  72 /question  73 /integral 
+74 /colon  75 /semicolon  76 /less  77 /bracketleft  78 /bracketright
+79 /greaterequal 80 /braceleft 81 /braceright 82 /radical
+83 /spade 84 /heart 85 /diamond 86 /club 87 /lessequal
+88 /multiply 89 /percent 90 /infinity 48 /circlemultiply 49 /circleplus
+50 /emptyset  51 /lozenge 52 /bullet 53 /arrowright 54 /arrowup
+55 /arrowleft 56 /arrowdown 57 /arrowboth 48 /degree 44 /comma 43 /plus 45 /angle 42 /angleleft 47 /divide 61 /notequal 40 /equivalence 41 /second 97 /approxequal 98 /congruent 99 /perpendicular 100 /partialdiff 101 /florin 102 /intersection
+ 103 /union 104 /propersuperset 105 /reflexsuperset 106 /notsubset 107 /propersubset 108 /reflexsubset 109 /element 110 /notelement 111 /gradient 112 /logicaland 113 /logicalor 114 /arrowdblboth 115 /arrowdblleft 116 /arrowdblup 117 /arrowdblright
+ 118 /arrowdbldown 119 /ampersand 120 /omega1 121 /similar 122 /aleph ] def
+/Symbol /Special accspe ReEncode
+%%EndProlog
+newpath  gsave  .25 .25 scale  gsave  0 0  black [] 0 sd 3 lw 0.95 0.95 0.95 c 2268 1538 0 0 bf 0.8 0.8 0.8 c 0 0 m 2 2 d 1534 Y 2264 X 2 2 d -2268 X -1538 Y f 0.3 0.3 0.3 c 0 0 m 2 2 d 2264 X 1534 Y 2 2 d -1538 Y -2268 X f black [] 0 sd 3 lw 0.8
+ 0.78 0.67 c 1814 1230 227 154 bf 0.8 0.8 0.8 c 227 154 m 12 12 d 1206 Y 1790 X 12 12 d -1814 X -1230 Y f 0.3 0.3 0.3 c 227 154 m 12 12 d 1790 X 1206 Y 12 12 d -1230 Y -1814 X f [] 0 sd 3 lw black 227 154 m 1814 X s [] 0 sd 3 lw 2041 154 m 1230 Y s
+ [] 0 sd 3 lw 2041 1384 m -1814 X s [] 0 sd 3 lw 227 1384 m -1230 Y s [] 0 sd 3 lw 0.8 0.78 0.67 c 1814 1230 227 154 bf 0.8 0.8 0.8 c 227 154 m 12 12 d 1206 Y 1790 X 12 12 d -1814 X -1230 Y f 0.3 0.3 0.3 c 227 154 m 12 12 d 1790 X 1206 Y 12 12 d
+ -1230 Y -1814 X f [] 0 sd 3 lw black 227 154 m 1814 X s [] 0 sd 3 lw 2041 154 m 1230 Y s [] 0 sd 3 lw 2041 1384 m -1814 X s [] 0 sd 3 lw 227 1384 m -1230 Y s [] 0 sd 3 lw 1 1 1 c black [] 0 sd 3 lw 227 154 m 1814 X s [] 0 sd 3 lw [] 0 sd 3 lw 227
+ 154 m 1814 X s s
+ gsave  1616 33
+ t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (Amplitude [mV]) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 227 191 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 272 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 317 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 362 172 m
+ -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 408 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 453 191 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 498 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 543 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 589 172 m -18 Y s s [] 0 sd 3
+ lw [] 0 sd 3 lw 634 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 679 191 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 724 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 770 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 815 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 860
+ 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 905 191 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 951 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 996 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1041 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1086 172 m -18 Y s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 1131 191 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1177 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1222 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1267 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1312 172 m -18 Y s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 1358 191 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1403 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1448 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1493 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1539 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw
+ 1584 191 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1629 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1674 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1720 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1765 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1810 191 m -37
+ Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1855 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1900 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1946 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1991 172 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2036 191 m -37 Y s s [] 0 sd
+ 3 lw [] 0 sd 3 lw 2036 191 m -37 Y s s
+ /xs 0 def (0) /Helvetica-Bold 56 stwn  gsave  227 85
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show  gr 
+ /xs 0 def (0.5) /Helvetica-Bold 56 stwn  gsave  453 85
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.5) show  gr 
+ /xs 0 def (1) /Helvetica-Bold 56 stwn  gsave  679 85
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (1) show  gr 
+ /xs 0 def (1.5) /Helvetica-Bold 56 stwn  gsave  905 85
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (1.5) show  gr 
+ /xs 0 def (2) /Helvetica-Bold 56 stwn  gsave  1131 85
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (2) show  gr 
+ /xs 0 def (2.5) /Helvetica-Bold 56 stwn  gsave  1358 85
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (2.5) show  gr 
+ /xs 0 def (3) /Helvetica-Bold 56 stwn  gsave  1584 85
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (3) show  gr 
+ /xs 0 def (3.5) /Helvetica-Bold 56 stwn  gsave  1810 85
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (3.5) show  gr 
+ /xs 0 def (4) /Helvetica-Bold 56 stwn  gsave  2036 85
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (4) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 227 154 m 1230 Y s s
+ gsave  98 1189
+ t 90 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (Entries) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 281 154 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 198 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 242 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 285 m -27 X
+ s s [] 0 sd 3 lw [] 0 sd 3 lw 254 329 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 373 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 417 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 461 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 505 m -27 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 254 549 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 592 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 636 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 680 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 724 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254
+ 768 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 812 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 856 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 899 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 943 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 987 m -27 X s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 281 1031 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1075 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1119 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1163 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1206 m -27 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 281 1250 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1250 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1294 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1338 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1382 m -27 X s s
+ /xs 0 def (0) /Helvetica-Bold 56 stwn  gsave  215 130
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show  gr 
+ /xs 0 def (0.5) /Helvetica-Bold 56 stwn  gsave  215 350
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.5) show  gr 
+ /xs 0 def (1) /Helvetica-Bold 56 stwn  gsave  215 569
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (1) show  gr 
+ /xs 0 def (1.5) /Helvetica-Bold 56 stwn  gsave  215 788
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (1.5) show  gr 
+ /xs 0 def (2) /Helvetica-Bold 56 stwn  gsave  215 1008
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (2) show  gr 
+ /xs 0 def (2.5) /Helvetica-Bold 56 stwn  gsave  215 1227
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (2.5) show  gr  1 0 0 c [] 0 sd 12 lw 0.95 0.95 0.95 c 0 0 1 c [] 0 sd 12 lw 1 0 0 c 247 1092 m 14 -15 d 13 -11 d 14 -9 d 12 -3 d 29 -1 d 40 X 41 4 d 41 5 d 37 3 d 4 1 d 15 9 d 16 12 d 10
+ 10 d 14 16 d 26 36 d 21 31 d 14 19 d 6 7 d 12 12 d 29 24 d 17 15 d 12 10 d 8 5 d 14 X 11 -5 d 11 -9 d 8 -8 d 10 -13 d 31 -52 d 38 -62 d 3 -4 d 8 -10 d 23 -21 d 8 -11 d 2 -2 d 10 -18 d 12 -27 d 18 -43 d 15 -38 d 26 -72 d 35 -95 d 6 -14 d 7 -14 d 13
+ -19 d 12 -17 d 9 -16 d 41 -110 d 15 -36 d 16 -33 d 9 -18 d 15 -25 d 26 -41 d 41 -66 d 36 -60 d 5 -6 d 11 -12 d 29 -23 d 32 -25 d 9 -5 d 14 -5 d 27 -4 d 41 -9 d 40 -9 d 41 -9 d 41 -8 d 41 -9 d 40 -9 d 41 -9 d 41 -8 d 41 -5 d 41 -2 d 40 -1 d 41 -1 d
+ 41 X s [] 0 sd 3 lw 0 0 1 c /w 26 def /w2 {w 2 div} def /w3 {w 3 div} def 247 1092 288 1057 329 1053 369 1053 410 1057 451 1062 492 1066 533 1097 573 1149 614 1206 655 1242 696 1272 736 1250 777 1185 818 1119 859 1075 899 987 940 877 981 768 1022
+ 702 1063 592 1103 505 1144 439 1185 373 1226 307 1266 272 1307 242 1348 233 1389 224 1429 215 1470 206 1511 198 1552 189 1592 180 1633 171 1674 163 1715 158 1756 156 1796 155 1837 154 1878 154 41 { m21} R 1 1 0 c
+ gr  gr 
+showpage
+end
+%%EOF
Index: /branches/start/ICRC_01/icrc.cls
===================================================================
--- /branches/start/ICRC_01/icrc.cls	(revision 4308)
+++ /branches/start/ICRC_01/icrc.cls	(revision 4308)
@@ -0,0 +1,1028 @@
+%% File: icrc.cls
+%% =============================================
+%% IMPORTANT NOTICE:
+%% See the copyright conditions below.
+%% =============================================
+%% EGS LaTeX2e Class file
+%% ---------------------------------
+%% LaTeX2e class file for contributions to ICRC
+%% ---------------------------------
+%% Author:
+%% Dieter Schmitt
+%% Copernicus Gesellschaft
+%% Max-Planck-Str. 13
+%% D-37191 Katlenburg-Lindau
+%% Germany
+%%
+%% based on egs.cls by Patrick W. Daly
+%%
+%% Email:      egs@copernicus.org
+%% Internet:   http://www.copernicus.org/EGS/EGS.html
+%%
+%% This consists of several modules, each with its separate copywrite
+%% The modules that are specific to EGS publications are
+%%        Copyright (C) 1994-2000 Copernicus Gesellschaft
+%%
+%% The entire package is available from
+%%        http://www.copernicus.org/COPERNICUS/latex/latex.htm
+
+\NeedsTeXFormat{LaTeX2e}[1994/06/01]
+\ProvidesClass{icrc}
+          [2000/11/22 (DS)]
+
+%  This is a LaTeX2e class file, to be invoked as
+%     \documentclass{isss}
+%  It requires the local files
+%     article.cls   size10.clo    fleqn.clo
+
+\newif\if@headers \@headerstrue
+\DeclareOption{fleqn}{\relax}
+\DeclareOption{twoside}{\relax}
+\DeclareOption{twocolumn}{\relax}
+\DeclareOption{titlepage}{\relax}
+\DeclareOption{headers}{\@headerstrue}
+\DeclareOption{noheaders}{\@headersfalse}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+\ProcessOptions
+\LoadClass[fleqn,a4paper]{article}
+\paperheight=277mm\paperwidth=210mm
+\IfFileExists{times.sty}{\RequirePackage{times}}{}
+
+\@twosidefalse
+
+\renewcommand{\vec}[1]{\ensuremath{\mathchoice{\mbox{\boldmath$\displaystyle#1$}}
+                                   {\mbox{\boldmath$\textstyle#1$}}
+                                   {\mbox{\boldmath$\scriptstyle#1$}}
+                                   {\mbox{\boldmath$\scriptscriptstyle#1$}}}}
+                                   
+\def\refname{References}
+\def\figurename{Fig.}
+\def\tablename{Table}
+\def\fnum@figure{\figurename~\thefigure}
+\def\fnum@table{\tablename~\thetable}
+
+\def\abstractname{Abstract}
+
+\def\acknowname{Acknowledgement}
+\def\acknowsname{Acknowledgements}
+
+\def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt
+\abovedisplayskip 10\p@ plus2\p@ minus5\p@
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip  \z@ plus3\p@
+\belowdisplayshortskip  6\p@ plus3\p@ minus3\p@
+\let\@listi\@listI}
+
+\def\small{\@setsize\small{11pt}\ixpt\@ixpt
+\abovedisplayskip 8.5\p@ plus3\p@ minus4\p@
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus2\p@
+\belowdisplayshortskip 4\p@ plus2\p@ minus2\p@
+\def\@listi{\leftmargin\leftmargini
+\topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@
+\itemsep \parsep}}
+
+\let\footnotesize=\small
+
+\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
+\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
+\def\large{\@setsize\large{14pt}\xiipt\@xiipt}
+\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
+\def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
+\def\huge{\@setsize\huge{25pt}\pt\@xxpt}
+\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
+
+\normalsize
+\oddsidemargin  -0.9cm
+\evensidemargin -0.9cm
+\topmargin -3.0cm
+\headheight 2cm
+\headsep 0.5cm
+\topskip = 12pt
+\footskip 30pt
+
+\textwidth 17.7cm
+\textheight = 56\baselineskip
+
+\advance\textheight by \topskip
+\columnsep 0.7cm
+\columnseprule 0pt
+
+\parindent 1em
+\parskip 0pt plus 1pt
+
+\def\section{\@startsection {section}{1}{\z@}{-2em plus-1ex minus
+    -.2ex}{1em plus.2ex}{\reset@font\normalsize
+             \bfseries
+}}
+\def\subsection{\@startsection{subsection}{2}{\z@}{-1em plus-0.25ex
+    minus-.2ex}{1em plus.2ex}{\reset@font\normalsize
+             \rmfamily
+}}
+\def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-1em plus
+    -0.25ex minus-.2ex}{1em plus.2ex}{\reset@font\normalsize
+             \rmfamily
+}}
+
+\let\paragraph=\subsubsection
+\let\subparagraph=\paragraph
+
+\@ifundefined{reset@font}{\let\reset@font=\relax}{}
+\setcounter{secnumdepth}{3}
+\def\desfont{\itshape}
+\def\descriptionlabel#1{\hspace\labelsep \desfont #1.}
+\def\description{\list{}{\labelwidth\z@ \leftmargin\z@ \itemindent-\leftmargin
+       \let\makelabel\descriptionlabel\reset@font\small}}
+\let\enddescription\endlist
+
+\setcounter{topnumber}{1}
+\def\topfraction{.7}
+\setcounter{bottomnumber}{1}
+\def\bottomfraction{.3}
+\setcounter{totalnumber}{3}
+\def\textfraction{0}
+\def\floatpagefraction{.5}
+\setcounter{dbltopnumber}{2}
+\def\dbltopfraction{.7}
+\def\dblfloatpagefraction{.5}
+
+\long\def\@makecaption#1#2{%
+   \vskip 10\p@
+     {\reset@font\small{\bf #1.} #2\par}}
+
+\long\def\@makenarrowcap#1#2{\hfill\vbox to \z@{\hsize=5cm \vss
+     \reset@font\small{\bf #1.} #2\par\null}}
+\def\figbox{\@ifstar{\let\egsbox\makebox\@figbox}
+  {\let\egsbox\framebox\@figbox}}
+\def\@figbox#1#2#3{\setbox\@tempboxa=\hbox{%
+  \if!#1!\egsbox{#3}\else
+  \egsbox[#1][c]{\if!#2!#3\else\@tempdima#2\relax
+  \divide\@tempdima by2\relax
+  \advance\@tempdima by-\fboxsep \advance\@tempdima by-\fboxrule
+  \vrule\@height\@tempdima\@depth\@tempdima\@width\z@
+  \vbox to \z@{\vss\hbox{#3}\vss}\fi}\fi}%
+  \@tempdima=\hsize \advance\@tempdima by-\wd\@tempboxa
+  \box\@tempboxa
+  \ifdim\@tempdima>5.5cm \let\@makecaption=\@makenarrowcap\fi
+  }
+\let\@oxfloat=\@xfloat
+\def\@xfloat#1[#2]{\@oxfloat#1[#2]\small}
+
+\leftmargini 2em
+\leftmarginii 1.75em
+\leftmarginiii 1.5em
+\leftmarginiv 1em
+\leftmarginv .5em
+\leftmarginvi .5em
+
+\def\labelitemi{\bf --}
+\def\labelitemii{\bf --}
+\def\labelitemiii{$\m@th\bullet$}
+\def\labelitemiv{$\m@th\cdot$}
+\def\maketitle{\setcounter{Maxaffil}{1}
+
+\if@headers\setcounter{page}{\@fpage}
+\thispagestyle{default}
+%\xdef\@temp{\@journal}
+%\ifx\@temp\ISSS6\thispagestyle{isss6}\fi
+\fi
+
+\setcounter{footnote}{0}
+\begingroup
+\def\@thanks{}\parindent=0pt
+
+\twocolumn[
+   {\begin{minipage}[b][\@tithei][s]{\hsize}
+      \null\vfil
+      \begin{minipage}{\hsize}
+          \raggedright
+          \let\footnotesize\normalsize
+          \let\footnoterule\relax
+          \def\thefootnote{\fnsymbol{footnote}}%
+          \def\@mpfn{footnote}%
+          \let\thempfn=\thefootnote
+          \renewcommand\@makefntext[1]{%
+          \parindent 1em \noindent
+          \@makefnmark##1}
+          {\LARGE\bfseries \@title\par}
+          \vspace{10pt}
+          {\normalsize
+          \renewcommand{\Authfont}{\bfseries}%
+          \renewcommand{\Affilfont}{\mdseries}%
+          \setlength{\affilsep}{4pt}%
+          \baselineskip 15pt
+          \let\and=\sw@and
+          \begin{minipage}[t]{\hsize}\flushleft\baselineskip=12pt%
+              \@author
+          \end{minipage}\par}%
+         \@thanks
+      \end{minipage}
+      \vspace{20pt} 
+   \end{minipage}
+}]
+
+\renewcommand\@makefntext[1]{\parindent 1em \noindent ##1}%
+\let\footnotesize\normalsize
+ 
+\if!\@corresp!\else
+\footnotetext{\textit{Correspondence to:} \@corresp}%
+\fi
+\endgroup
+
+\setcounter{footnote}{0}
+\let\thanks\relax
+\gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\maketitle\relax
+}
+
+\renewcommand\and{\@centercr}
+\newcommand\sw@and{\end{minipage}\\[1em]\begin{minipage}[t]{\hsize}%
+  \flushleft\baselineskip12pt}
+%\def\journal#1{\def\@journal{#1}}
+%\let\booktitle=\journal
+%   \def\@journal{???}
+
+
+\def\correspondence#1{\def\@corresp{#1} \def\offsets##1{\def\@offsets{##1}}}
+  \def\@corresp{}
+
+\def\pubyear#1{\def\@pyear{#1}} \def\@pyear{2001}
+\def\titleheight#1{\def\@tithei{#1}} \def\@tithei{7.5cm}
+
+\def\firstpage#1{\def\@fpage{#1}} \def\@fpage{1}
+\def\runninghead#1{\def\@runhd{}} \def\@runhd{}
+%\def\lastpage@putlabel{\addtocounter{page}{-1}
+%   \immediate\write\@auxout{\string
+%   \newlabel{LastPage}{{}{\thepage}}}
+%   \addtocounter{page}{1}}
+%\AtEndDocument{\clearpage\lastpage@putlabel}
+%\def\@lpage{\pageref{LastPage}}
+
+\renewenvironment{abstract}{
+      \reset@font\normalsize\par\noindent
+        {\bfseries \abstractname.}
+         \ignorespaces
+}{\newline\null\par\hrule}
+  
+\newenvironment{acknowledgements}{\begin{description}\item[\acknowsname]}
+    {\end{description}}
+\newenvironment{acknowledgement}{\begin{description}\item[\acknowname]}
+    {\end{description}}
+    
+\def\ps@runninghead{\let\@mkboth\@gobbletwo
+%\def\@oddhead{\@runhd\hfil\makebox[\z@][r]{\thepage}}
+%\def\@evenhead{\makebox[\z@][l]{\thepage}\hfil\@runhd}
+  \def\@oddhead{\hfil\thepage\hfil}
+  \def\@evenhead{\hfil\thepage\hfil}
+  \def\@oddfoot{}\def\@evenfoot{}}
+  
+\def\ps@default{\let\@mkboth\@gobbletwo
+  \def\@oddhead{Proceedings of ICRC\ \@pyear:\
+    \@fpage\ \copyright\ Copernicus Gesellschaft 2001
+    \hfil\scalebox{0.8}[1.0]{\@icrclogo}}
+  \def\@oddfoot{}}
+
+\def\logo@font{\fontfamily{\sfdefault}\fontseries{\seriesdefault}}
+\def\logo@width{18.75pc}
+
+\def\@icrclogo{\parbox[t][\z@][t]{\logo@width}
+  {\vspace{-.7\baselineskip}
+  \rule{\linewidth}{1\p@}\\\logo@font
+    \fontsize{46}{3}\selectfont
+    ICRC\ 2001\par
+    \rule{\linewidth}{1\p@}}}
+    
+\flushbottom
+
+\pagenumbering{arabic}
+\flushbottom
+
+\if@headers\@twosidetrue\ps@runninghead
+   \else\ps@cameraready\fi
+
+\newcommand\fncomma{\textsuperscript{,}}
+\AtBeginDocument{\mathindent\z@}
+
+%% Copyright 1997-1999 Patrick W Daly
+%% Max-Planck-Institut f\"ur Aeronomie
+%% Max-Planck-Str. 2
+%% D-37191 Katlenburg-Lindau
+%% Germany
+%% E-mail: daly@linmpi.mpg.de
+\def\ModuleVersion#1[#2]{}
+    \ModuleVersion{authblk}
+          [1999/02/23 1.2 (PWD)]
+%% authblk coding copyright (C) 1997 Patrick W. Daly
+\newcommand\Authfont{\normalfont}
+\newcommand\Affilfont{\normalfont}
+\newcommand\Authsep{, }
+\newcommand\Authands{, and }
+\newcommand\Authand{ and }
+\newlength{\affilsep}\setlength{\affilsep}{1em}
+\newlength{\@affilsep}
+\newcounter{Maxaffil}
+\setcounter{Maxaffil}{2}
+\newcounter{authors}
+\newcounter{affil}
+\newif\ifnewaffil \newaffiltrue
+\newcommand\AB@authnote[1]{\textsuperscript{\normalfont#1}}
+\newcommand\AB@affilnote[1]{\textsuperscript{\normalfont#1}}
+\providecommand\textsuperscript[1]{$^{#1}$}
+\newcommand\AB@blk@and{\protect\Authfont\protect\AB@setsep}
+\newcommand\AB@pand{\protect\and \protect\Authfont \protect\AB@setsep}
+\@namedef{@sep1}{}
+\@namedef{@sep2}{\Authand}
+\newcommand\AB@affilsep{\protect\Affilfont}
+\newcommand\AB@affilsepx{\protect\\\protect\Affilfont}
+\newcommand\AB@setsep{\setlength{\@affilsep}{\affilsep}}
+\newcommand\AB@resetsep{\setlength{\@affilsep}{\z@}}
+\newcommand\AB@authlist{}
+\newcommand\AB@affillist{}
+\newcommand\AB@authors{}
+\newcommand\AB@empty{}
+\xdef\AB@author{\noexpand\AB@blk@and\@author}
+\renewcommand\author[2][]%
+      {\ifnewaffil\addtocounter{affil}{1}%
+       \edef\AB@thenote{\arabic{affil}}\fi
+      \if\relax#1\relax\def\AB@note{\AB@thenote}\else\def\AB@note{#1}%
+        \setcounter{Maxaffil}{0}\fi
+      \ifnum\value{authors}>1\relax
+      \@namedef{@sep\number\c@authors}{\Authsep}\fi
+      \addtocounter{authors}{1}%
+      \begingroup
+          \let\protect\@unexpandable@protect \let\and\AB@pand
+          \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}%
+         \@temptokena=\expandafter{\AB@authors}%
+         {\def\\{\protect\\[\@affilsep]\protect\Affilfont
+              \protect\AB@resetsep}%
+              \xdef\AB@author{\AB@blk@and#2}%
+       \ifnewaffil\gdef\AB@las{}\gdef\AB@lasx{\protect\Authand}\gdef\AB@as{}%
+           \xdef\AB@authors{\the\@temptokena\AB@blk@and}%
+       \else
+          \xdef\AB@authors{\the\@temptokena\AB@as\AB@au@str}%
+          \global\let\AB@las\AB@lasx\gdef\AB@lasx{\protect\Authands}%
+          \gdef\AB@as{\Authsep}%
+       \fi
+       \gdef\AB@au@str{#2}}%
+         \@temptokena=\expandafter{\AB@authlist}%
+         \let\\=\authorcr
+         \xdef\AB@authlist{\the\@temptokena
+           \protect\@nameuse{@sep\number\c@authors}%
+           \protect\Authfont#2\AB@authnote{\AB@note}}%
+      \endgroup
+      \ifnum\value{authors}>2\relax
+      \@namedef{@sep\number\c@authors}{\Authands}\fi
+      \newaffilfalse
+}
+\newcommand\authorcr{\protect\\ \protect\Authfont \protect\AB@setsep}%
+\newcommand\affil[2][]%
+   {\newaffiltrue\let\AB@blk@and\AB@pand
+      \if\relax#1\relax\def\AB@note{\AB@thenote}\else\def\AB@note{#1}%
+        \setcounter{Maxaffil}{0}\fi
+      \begingroup
+        \let\protect\@unexpandable@protect
+        \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}%
+        \@temptokena=\expandafter{\AB@authors}%
+        {\def\\{\protect\\\protect\Affilfont}\xdef\AB@temp{#2}}%
+         \xdef\AB@authors{\the\@temptokena\AB@las\AB@au@str
+         \protect\\[\affilsep]\protect\Affilfont\AB@temp}%
+         \gdef\AB@las{}\gdef\AB@au@str{}%
+        {\def\\{, \ignorespaces}\xdef\AB@temp{#2}}%
+        \@temptokena=\expandafter{\AB@affillist}%
+        \xdef\AB@affillist{\the\@temptokena \AB@affilsep
+          \AB@affilnote{\AB@note}\protect\Affilfont\AB@temp}%
+      \endgroup
+       \let\AB@affilsep\AB@affilsepx
+}
+\def\@author{}
+\renewcommand\@author{\ifx\AB@affillist\AB@empty\AB@author\else
+      \ifnum\value{affil}>\value{Maxaffil}\def\rlap##1{##1}%
+    \AB@authlist\\[\affilsep]\AB@affillist
+    \else  \AB@authors\fi\fi}
+%% Copyright 1993-1999 Patrick W Daly
+%% Max-Planck-Institut f\"ur Aeronomie
+%% Max-Planck-Str. 2
+%% D-37191 Katlenburg-Lindau
+%% Germany
+%% E-mail: daly@linmpi.mpg.de
+\def\ModuleVersion#1[#2]{}
+    \ModuleVersion{appendix}
+           [1999/02/23 2.1 (PWD)]
+\@ifundefined{iffigcaps}{}
+  {\PackageWarningNoLine{appendix}
+     {***********************************\MessageBreak
+      This package read in after `figcaps'\MessageBreak
+      There could be problems with sublabelled\MessageBreak
+      figure and table numbers.\MessageBreak
+      ***********************************}}
+\providecommand{\appendixname}{Appendix}
+\let\orisection=\section
+\let\theolds=\thesection
+\let\theoldss=\thesubsection
+\def\appendix{\par
+  \setcounter{section}{0}
+  \setcounter{subsection}{0}
+  \def\thesection{\Alph{section}}
+  \def\thesubsection{\thesection\arabic{subsection}}
+  \setcounter{secnumdepth}{4}
+  \@addtoreset{equation}{section}
+  \setcounter{equation}{0}
+  \def\theequation{\thesection\arabic{equation}}
+  \@addtoreset{figure}{section}
+  \setcounter{figure}{0}
+  \def\thefigure{\thesection\arabic{figure}}
+  \@addtoreset{table}{section}
+  \def\thetable{\thesection\arabic{table}}
+  \setcounter{table}{0}
+  \def\@Alph##1{\ifcase##1A\or A\or B\or C\or D\else\@Ialph{##1}\fi}
+  \def\section{\@startsection {section}{1}{\z@}{-2em plus
+    -1ex minus-.2ex}{1em plus.2ex}{\reset@font
+       \normalsize
+    \bfseries\noindent \appendixname~}}
+}
+\def\noappendix{\setcounter{secnumdepth}{0}
+  \global\let\section=\orisection
+  \global\let\thesection=\theolds
+  \global\let\thesubsection=\theoldss
+}
+%% Copyright 1993-1999 Patrick W Daly
+%% Max-Planck-Institut f\"ur Aeronomie
+%% Max-Planck-Str. 2
+%% D-37191 Katlenburg-Lindau
+%% Germany
+%% E-mail: daly@linmpi.mpg.de
+\def\ModuleVersion#1[#2]{}
+    \ModuleVersion{figcaps}
+        [1999/02/23 4.7 (PWD)]
+\@ifundefined{chapter}{}{%
+    \PackageError{figcaps}
+     {`figcaps' may only be used with article-like classes}
+     {There is no help. You just cannot use `figcaps'}}
+\newif\iffigcaps \figcapstrue
+\newif\iffigmark \figmarkfalse
+\newif\if@figpage \@figpagefalse
+\@ifundefined{figurecapname}{\def\figurecapname{Figure Captions}}{}
+\@ifundefined{tablepagename}{\def\tablepagename{Tables}}{}
+\@ifundefined{figurepagename}{\def\figurepagename{Figures}}{}
+\begingroup
+  \catcode `|=0 \catcode `[= 1
+  \catcode`]=2 \catcode `\{=12 \catcode `\}=12
+  \catcode`\^^M=13 \catcode`\\=12 %
+|long|gdef|@vfig#1\end{figure}[|def|@term[\end{figure}]%
+          |expandafter|writelof#1^^M\end{figure}^^M|end[figure]]%
+|long|gdef|@vsfig#1\end{figure*}[|def|@term[\end{figure*}]%
+          |expandafter|writelof#1^^M\end{figure*}^^M|end[figure*]]%
+|long|gdef|@vtab#1\end{table}[|def|@term[\end{table}]%
+          |expandafter|writelot#1^^M\end{table}^^M|end[table]]%
+|long|gdef|@vstab#1\end{table*}[|def|@term[\end{table*}]%
+          |expandafter|writelot#1^^M\end{table*}^^M|end[table*]]%
+|long|gdef|@fcaponly#1\caption[|endgroup|@fcaption]%
+|long|gdef|@feject#1\end{figure}[|end[figure]]%
+  |endgroup
+\long\def\FC@writefile#1#2{\@ifundefined{tf@#1}{}{%
+  \immediate\write\csname tf@#1\endcsname{#2}}}
+\def\lof{lof} \def\lot{lot}
+
+{\catcode`\^^M=13%
+  \long\gdef\writelof#1^^M{\def\@tempb{#1}%
+      \ifx\@tempb\@term\let\@tempa\relax\else
+      \if@filesw\FC@writefile{pof}{#1}\fi\let\@tempa\writelof\fi \@tempa}
+  \long\gdef\writelot#1^^M{\def\@tempb{#1}%
+      \ifx\@tempb\@term\let\@tempa\relax\else
+      \if@filesw\FC@writefile{pot}{#1}\fi\let\@tempa\writelot\fi \@tempa}
+}
+\def\@fcaption{\refstepcounter\@captype \@ifnextchar[{\@@fcapopt}{\@@fcap}}
+\def\@@fcapopt[#1]#2{\@caption\@captype[]{#2}\begingroup\set@literal\@feject}
+\def\@@fcap#1{\@caption\@captype[]{#1}\begingroup\set@literal\@feject}
+\def\figcapson{\figcapstrue}
+\def\figcapsoff{\figcapsfalse}
+\def\figmarkon{\figmarktrue}
+\def\figmarkoff{\figmarkfalse}
+\def\figure{\iffigcaps \let\@tempb=\@zfigure \else \let\@tempb=\@float\fi
+  \@tempb{figure}}
+\def\@zfigure#1{\begingroup\set@literal\@ifnextchar[{\@figure}{\@figure[]}}
+\def\@figure[#1]{\@ifundefined{tf@pof}{\newwrite\tf@pof
+     \if@filesw\immediate\openout\tf@pof\jobname.\lof\relax
+     \ifFC@appendix\FC@writefile{pof}{\string\doappendix}\fi\fi}{}%
+  \refstepcounter{figure}\iffigmark\marginpar{\fbox{\fnum@figure}}\fi
+  \def\@captype{figure}\if@filesw\FC@writefile{pof}{\string\begin{figure}}\fi
+  \@vfig}
+
+\def\endfigure{\iffigcaps
+    \endgroup\if@filesw\FC@writefile{pof}{\string\end{figure}}\fi\else
+    \end@float\fi}
+
+\@namedef{figure*}{\iffigcaps \let\@tempb=\@zsfigure \else
+  \let\@tempb=\@dblfloat\fi \@tempb{figure}}
+\def\@zsfigure#1{\begingroup\set@literal\@ifnextchar[{\@sfigure}{\@sfigure[]}}
+\def\@sfigure[#1]{\@ifundefined{tf@pof}{\newwrite\tf@pof
+     \if@filesw\immediate\openout\tf@pof\jobname.\lof\relax
+     \ifFC@appendix\FC@writefile{pof}{\string\doappendix}\fi\fi}{}%
+  \refstepcounter{figure}\iffigmark\marginpar{\fbox{\fnum@figure}}\fi
+  \def\@captype{figure}\if@filesw\FC@writefile{pof}{\string\begin{figure}}\fi
+  \@vsfig}
+
+\@namedef{endfigure*}{\iffigcaps\endfigure\else\end@dblfloat\fi}
+\def\table{\iffigcaps \let\@tempb=\@ztable \else \let\@tempb=\@float\fi
+  \@tempb{table}}
+\def\@ztable#1{\begingroup\set@literal\@ifnextchar[{\@table}{\@table[]}}
+\def\@table[#1]{\@ifundefined{tf@pot}{\newwrite\tf@pot
+     \if@filesw\immediate\openout\tf@pot\jobname.\lot\relax
+     \ifFC@appendix\FC@writefile{pot}{\string\doappendix}\fi\fi}{}%
+  \refstepcounter{table}\iffigmark\marginpar{\fbox{\fnum@table}}\fi
+  \def\@captype{table}\if@filesw\FC@writefile{pot}{\string\begin{table}}\fi
+  \@vtab}
+
+\def\endtable{\iffigcaps
+   \endgroup\if@filesw\FC@writefile{pot}{\string\end{table}}\fi\else
+   \end@float\fi}
+
+\@namedef{table*}{\iffigcaps \let\@tempb=\@zstable \else
+  \let\@tempb=\@dblfloat\fi \@tempb{table}}
+\def\@zstable#1{\begingroup\set@literal\@ifnextchar[{\@stable}{\@stable[]}}
+\def\@stable[#1]{\@ifundefined{tf@pot}{\newwrite\tf@pot
+     \if@filesw\immediate\openout\tf@pot\jobname.\lot\relax
+     \ifFC@appendix\FC@writefile{pot}{\string\doappendix}\fi\fi}{}%
+  \refstepcounter{table}\iffigmark\marginpar{\fbox{\fnum@table}}\fi
+  \def\@captype{table}\if@filesw\FC@writefile{pot}
+    {\string\begin{table}}%
+    \fi\@vstab}
+
+\@namedef{endtable*}{\iffigcaps\endtable\else
+   \end@dblfloat\fi}
+\def\tableofcontents{%
+  \PackageWarningNoLine{figcaps}
+   {Ignored: \protect\tableofcontents\space command}}
+\def\listoffigures{%
+  \PackageWarningNoLine{figcaps}
+   {Ignored: \protect\listoffigures\space command}}
+\def\listoftables{%
+  \PackageWarningNoLine{figcaps}
+   {Ignored: \protect\listoftables\space command}}
+\def\addtocontents#1#2{\relax}
+\def\addcontentsline#1#2#3{\relax}
+{\catcode`\^^M=\active \gdef\cr@relax{\catcode`\^^M=\active \let^^M=\relax}}
+\def\set@literal{\cr@relax \let\do\@makeother\dospecials}
+\def\@figurecaps{\@ifundefined{tf@pof}{}{\if@filesw
+  \immediate\closeout\tf@pof\fi
+  \@ifundefined{appendixname}{}{\def\appendixname{}}
+  \parindent\z@
+  \reset@figtab\clearpage\section*{\figurecapname}\vspace{1cm}%
+    \@mkboth{\uppercase{\figurecapname}}{\uppercase{\figurecapname}}%
+    \addcontentsline{toc}{section}{\figurecapname}%
+  \def\figure{\def\addcontentsline####1####2####3{}%
+    \def\@captype{figure}%
+    \begingroup\set@literal\@fcaponly
+   }\def\endfigure{\endgroup\bigskip}%
+  {\let\@makecaption=\@makefcaption
+  \@input{\jobname.\lof}}%
+  \clearpage}}%
+\def\@tablepage{\@ifundefined{tf@pot}{}{\if@filesw
+  \immediate\closeout\tf@pot\fi
+  \@ifundefined{appendixname}{}{\def\appendixname{}}
+  \parindent\z@
+  \reset@figtab\clearpage\section*{\tablepagename}
+    \@mkboth{\uppercase{\tablepagename}}{\uppercase{\tablepagename}}%
+   \def\table{\def\@captype{table}\vbox\bgroup
+    \small
+   }\def\endtable{\egroup\bigskip}%
+  \@input{\jobname.\lot}
+  \clearpage}}
+\def\printfigures{\@figpagetrue}
+\def\@figurepage{\if@figpage\@ifundefined{tf@pof}{}{%
+  \@ifundefined{appendixname}{}{\def\appendixname{}}
+  \reset@figtab\clearpage\section*{\figurepagename}%
+  \@mkboth{\uppercase{\figurepagename}}{\uppercase{\figurepagename}}%
+  \begingroup
+  \def\figure{\def\@captype{figure}\vbox\bgroup}\def\endfigure{\egroup
+    \vspace{20pt}}%
+  \def\label##1{}%
+  \@input{\jobname.\lof}\newpage\endgroup}\fi}
+\def\reset@figtab{%
+  \setcounter{figure}{0}\setcounter{table}{0}
+}
+\AtEndDocument{\iffigcaps\@tablepage\@figurecaps\@figurepage\fi}
+\let\@appendix=\appendix
+\newif\ifFC@appendix \FC@appendixfalse
+\def\appendix{\FC@appendixtrue
+  \@ifundefined{tf@pof}{}{\if@filesw\FC@writefile{pof}{\string\doappendix}\fi}%
+  \@ifundefined{tf@pot}{}{\if@filesw\FC@writefile{pot}{\string\doappendix}\fi}%
+  \global\let\@section=\section
+  \doappendix
+  \let\@@section=\section
+  \def\section{%
+    \@ifundefined{tf@pof}{}{\if@filesw\FC@writefile{pof}{\string
+        \stepcounter{section}}\fi}%
+    \@ifundefined{tf@pot}{}{\if@filesw\FC@writefile{pot}{\string
+        \stepcounter{section}}\fi}%
+    \@@section}
+  \global\let\reset@figtab=\@unappendix}
+\def\doappendix{%
+  \global\let\@thefigure=\thefigure
+  \global\let\@thetable=\thetable
+  \global\let\@cl@section=\cl@section
+  \@appendix
+}
+\def\@unappendix{\FC@appendixfalse
+  \setcounter{figure}{0}\setcounter{table}{0}
+  \let\thefigure=\@thefigure
+  \let\thetable=\@thetable
+  \let\cl@section=\@cl@section
+  \let\section=\@section
+}
+\let\@makefcaption=\@makecaption
+%\if@draft\figcapstrue\else\figcapsfalse\fi
+\figcapsfalse
+%% Copyright 1993-1999 Patrick W Daly
+%% Max-Planck-Institut f\"ur Aeronomie
+%% Max-Planck-Str. 2
+%% D-37191 Katlenburg-Lindau
+%% Germany
+%% E-mail: daly@linmpi.mpg.de
+\def\ModuleVersion#1[#2]{}
+    \ModuleVersion{natbib}
+        [1999/05/28 7.0 (PWD)]
+\def\NAT@sort{0}
+\newcommand\NAT@open{(} \newcommand\NAT@close{)}
+\newcommand\NAT@sep{;} \newcommand\NAT@cmt{, }
+\newcommand\NAT@aysep{,} \newcommand\NAT@yrsep{,}
+\def\NAT@nmfmt#1{{\NAT@up#1}}
+\renewcommand\@cite%
+    [3]{\ifNAT@swa\NAT@@open\if*#2*\else#2\ \fi
+        #1\if*#3*\else\NAT@cmt#3\fi\NAT@@close\else#1\fi\endgroup}
+\providecommand\@firstofone[1]{#1}
+\let\citenumfont=\relax
+\def\@citex%
+  [#1][#2]#3{%
+  \NAT@sort@cites{#3}%
+  \let\@citea\@empty
+  \@cite{\let\NAT@nm\@empty\let\NAT@year\@empty
+    \@for\@citeb:=\NAT@cite@list\do
+    {\edef\@citeb{\expandafter\@firstofone\@citeb}%
+     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+     \@ifundefined{b@\@citeb\@extra@b@citeb}{\@citea%
+       {\reset@font\bfseries ?}\NAT@citeundefined
+                 \PackageWarning{natbib}%
+       {Citation `\@citeb' on page \thepage \space undefined}\def\NAT@date{}}%
+     {\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year
+     \NAT@parse{\@citeb}%
+     \ifNAT@full\let\NAT@nm\NAT@all@names\else
+       \let\NAT@nm\NAT@name\fi
+     \ifNAT@swa\ifcase\NAT@ctype
+       \if\relax\NAT@date\relax
+         \@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+         \NAT@nmfmt{\NAT@nm}\NAT@date\hyper@natlinkend
+       \else
+         \ifx\NAT@last@nm\NAT@nm\NAT@yrsep
+            \ifx\NAT@last@yr\NAT@year
+              \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@exlab
+              \hyper@natlinkend
+            \else\unskip\
+              \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@date
+              \hyper@natlinkend
+            \fi
+         \else\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+           \NAT@nmfmt{\NAT@nm}%
+           \hyper@natlinkbreak{\NAT@aysep\ }{\@citeb\@extra@b@citeb}%
+           \NAT@date\hyper@natlinkend
+         \fi
+       \fi
+     \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+         \NAT@nmfmt{\NAT@nm}\hyper@natlinkend
+     \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+         \NAT@date\hyper@natlinkend
+     \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+         \NAT@alias\hyper@natlinkend
+     \fi \def\@citea{\NAT@sep\ }%
+     \else\ifcase\NAT@ctype
+        \if\relax\NAT@date\relax
+          \@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+          \NAT@nmfmt{\NAT@nm}\hyper@natlinkend
+        \else
+         \ifx\NAT@last@nm\NAT@nm\NAT@yrsep
+            \ifx\NAT@last@yr\NAT@year
+              \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@exlab
+              \hyper@natlinkend
+            \else\unskip\
+              \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@date
+              \hyper@natlinkend
+            \fi
+         \else\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+           \NAT@nmfmt{\NAT@nm}%
+           \hyper@natlinkbreak{\ \NAT@@open\if*#1*\else#1\ \fi}%
+              {\@citeb\@extra@b@citeb}%
+           \NAT@date\hyper@natlinkend\fi
+        \fi
+       \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+         \NAT@nmfmt{\NAT@nm}\hyper@natlinkend
+       \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+         \NAT@date\hyper@natlinkend
+       \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+         \NAT@alias\hyper@natlinkend
+       \fi \if\relax\NAT@date\relax\def\@citea{\NAT@sep\ }%
+           \else\def\@citea{\NAT@@close\NAT@sep\ }\fi
+     \fi
+     }}\ifNAT@swa\else\if*#2*\else\NAT@cmt#2\fi
+     \if\relax\NAT@date\relax\else\NAT@@close\fi\fi}{#1}{#2}}
+\newif\ifNAT@par \NAT@partrue
+\newcommand\NAT@@open{\ifNAT@par\NAT@open\fi}
+\newcommand\NAT@@close{\ifNAT@par\NAT@close\fi}
+\newcommand\NAT@alias{\@ifundefined{al@\@citeb\@extra@b@citeb}{%
+  {\reset@font\bfseries(alias?)}\PackageWarning{natbib}
+  {Alias undefined for citation `\@citeb'
+  \MessageBreak on page \thepage}}{\@nameuse{al@\@citeb\@extra@b@citeb}}}
+\let\NAT@up\relax
+\newcommand\NAT@Up[1]{{\let\protect\@unexpandable@protect\let~\relax
+  \expandafter\NAT@deftemp#1}\expandafter\NAT@UP\NAT@temp}
+\newcommand\NAT@deftemp[1]{\xdef\NAT@temp{#1}}
+\newcommand\NAT@UP[1]{\let\@tempa\NAT@UP\ifcat a#1\MakeUppercase{#1}%
+  \let\@tempa\relax\else#1\fi\@tempa}
+\renewcommand\@biblabel[1]{\hfill}
+\newlength{\bibhang}
+\setlength{\bibhang}{1em}
+\newlength{\bibsep}
+\setlength{\bibsep}{\z@}
+
+\newcommand\@bibsetup%
+   [1]{\setlength{\leftmargin}{\bibhang}\setlength{\itemindent}{-\leftmargin}%
+       \setlength{\itemsep}{\bibsep}\setlength{\parsep}{\z@}}
+\AtBeginDocument{\ifx\SK@def\@undefined\else
+\ifx\SK@cite\@empty\else
+  \SK@def\@citex[#1][#2]#3{\SK@\SK@@ref{#3}\SK@@citex[#1][#2]{#3}}\fi
+\ifx\SK@citeauthor\@undefined\def\HAR@checkdef{}\else
+  \let\citeauthor\SK@citeauthor
+  \let\citefullauthor\SK@citefullauthor
+  \let\citeyear\SK@citeyear\fi
+\fi}
+\newif\ifNAT@full\NAT@fullfalse
+\newif\ifNAT@swa
+\DeclareRobustCommand\citet
+   {\begingroup\NAT@swafalse\def\NAT@ctype{0}\NAT@partrue
+     \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
+\newcommand\NAT@citetp{\@ifnextchar[{\NAT@@citetp}{\NAT@@citetp[]}}
+\newcommand\NAT@@citetp{}
+\def\NAT@@citetp[#1]{\@ifnextchar[{\@citex[#1]}{\@citex[][#1]}}
+\DeclareRobustCommand\citep
+   {\begingroup\NAT@swatrue\def\NAT@ctype{0}\NAT@partrue
+         \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
+\DeclareRobustCommand\cite
+    {\begingroup\def\NAT@ctype{0}\NAT@partrue\NAT@swatrue
+      \@ifstar{\NAT@fulltrue\NAT@cites}{\NAT@fullfalse\NAT@cites}}
+\newcommand\NAT@cites{\@ifnextchar [{\NAT@@citetp}{%
+     \NAT@swafalse
+    \NAT@@citetp[]}}
+\DeclareRobustCommand\citealt
+   {\begingroup\NAT@swafalse\def\NAT@ctype{0}\NAT@parfalse
+         \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
+\DeclareRobustCommand\citealp
+   {\begingroup\NAT@swatrue\def\NAT@ctype{0}\NAT@parfalse
+         \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
+\DeclareRobustCommand\citeauthor
+   {\begingroup\NAT@swafalse\def\NAT@ctype{1}\NAT@parfalse
+    \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
+\DeclareRobustCommand\Citet
+   {\begingroup\NAT@swafalse\def\NAT@ctype{0}\NAT@partrue
+     \let\NAT@up\NAT@Up
+     \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
+\DeclareRobustCommand\Citep
+   {\begingroup\NAT@swatrue\def\NAT@ctype{0}\NAT@partrue
+     \let\NAT@up\NAT@Up
+         \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
+\DeclareRobustCommand\Citeauthor
+   {\begingroup\NAT@swafalse\def\NAT@ctype{1}\NAT@parfalse
+     \let\NAT@up\NAT@Up
+    \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
+\DeclareRobustCommand\citeyear
+   {\begingroup\NAT@swafalse\def\NAT@ctype{2}\NAT@parfalse\NAT@citetp}
+\DeclareRobustCommand\citeyearpar
+   {\begingroup\NAT@swatrue\def\NAT@ctype{2}\NAT@partrue\NAT@citetp}
+\newcommand\citetext[1]{\NAT@open#1\NAT@close}
+\DeclareRobustCommand\citefullauthor
+   {\citeauthor*}
+\newcommand\defcitealias[2]{%
+   \@ifundefined{al@#1\@extra@b@citeb}{}
+   {\PackageWarning{natbib}{Overwriting existing alias for citation #1}}
+   \@namedef{al@#1\@extra@b@citeb}{#2}}
+\DeclareRobustCommand\citetalias{\begingroup
+   \NAT@swafalse\def\NAT@ctype{3}\NAT@parfalse\NAT@citetp}
+\DeclareRobustCommand\citepalias{\begingroup
+   \NAT@swatrue\def\NAT@ctype{3}\NAT@partrue\NAT@citetp}
+\renewcommand\nocite[1]{\@bsphack
+  \@for\@citeb:=#1\do{%
+    \edef\@citeb{\expandafter\@firstofone\@citeb}%
+    \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+    \if*\@citeb\else
+    \@ifundefined{b@\@citeb\@extra@b@citeb}{%
+       \NAT@citeundefined \PackageWarning{natbib}%
+       {Citation `\@citeb' undefined}}{}\fi}%
+  \@esphack}
+\newcommand\NAT@parse[1]{{%
+     \let\protect=\@unexpandable@protect\let~\relax
+     \let\active@prefix=\@gobble
+     \xdef\NAT@temp{\csname b@#1\@extra@b@citeb\endcsname}}%
+     \expandafter\NAT@split\NAT@temp
+     \expandafter\NAT@parse@date\NAT@date??????@@%
+}
+\newcommand\NAT@split[4]{%
+  \gdef\NAT@num{#1}\gdef\NAT@name{#3}\gdef\NAT@date{#2}%
+  \gdef\NAT@all@names{#4}%
+  \ifx\NAT@noname\NAT@all@names \gdef\NAT@all@names{#3}\fi}
+\newcommand\NAT@parse@date{}
+\def\NAT@parse@date#1#2#3#4#5#6@@{%
+  \ifnum\the\catcode`#1=11\def\NAT@year{}\def\NAT@exlab{#1}\else
+  \ifnum\the\catcode`#2=11\def\NAT@year{#1}\def\NAT@exlab{#2}\else
+  \ifnum\the\catcode`#3=11\def\NAT@year{#1#2}\def\NAT@exlab{#3}\else
+  \ifnum\the\catcode`#4=11\def\NAT@year{#1#2#3}\def\NAT@exlab{#4}\else
+    \def\NAT@year{#1#2#3#4}\def\NAT@exlab{{#5}}\fi\fi\fi\fi}
+\newcommand\NAT@ifcmd{\futurelet\NAT@temp\NAT@ifxcmd}
+\newcommand\NAT@ifxcmd{\ifx\NAT@temp\relax\else\expandafter\NAT@bare\fi}
+\def\NAT@bare#1(#2)#3(@)#4\@nil#5{%
+  \stepcounter{NAT@ctr}%
+  \NAT@wrout{\arabic {NAT@ctr}}{#2}{#1}{#3}{#5}
+}
+\newcommand\NAT@wrout[5]{%
+\if@filesw
+      {\let\protect\noexpand\let~\relax
+       \immediate
+       \write\@auxout{\string\bibcite{#5}{{#1}{#2}{{#3}}{{#4}}}}}\fi
+\ignorespaces}
+\def\NAT@noname{{}}
+\renewcommand\bibitem{%
+  \@ifnextchar[{\@lbibitem}{%
+    \stepcounter{NAT@ctr}\@lbibitem[\arabic{NAT@ctr}]}}
+\def\@lbibitem[#1]#2{%
+  \if\relax\@extra@b@citeb\relax\else
+    \@ifundefined{br@#2\@extra@b@citeb}{}{%
+     \@namedef{br@#2}{\@nameuse{br@#2\@extra@b@citeb}}}\fi
+   \@ifundefined{b@#2\@extra@b@citeb}{\def\NAT@num{}}{\NAT@parse{#2}}%
+   \item[\hfil\hyper@natanchorstart{#2\@extra@b@citeb}\@biblabel{\NAT@num}%
+    \hyper@natanchorend]%
+    \NAT@ifcmd#1(@)(@)\@nil{#2}}
+\ifx\SK@lbibitem\@undefined\else
+   \let\SK@lbibitem\@lbibitem
+   \def\@lbibitem[#1]#2{%
+     \SK@lbibitem[#1]{#2}\SK@\SK@@label{#2}\ignorespaces}\fi
+\providecommand\bibcite{}
+\renewcommand\bibcite[2]{\@ifundefined{b@#1\@extra@binfo}\relax
+     {\NAT@citemultiple
+      \PackageWarningNoLine{natbib}{Citation `#1' multiply defined}}%
+  \global\@namedef{b@#1\@extra@binfo}{#2}}
+\AtEndDocument{\NAT@swatrue\let\bibcite\NAT@testdef}
+\newcommand\NAT@testdef[2]{%
+  \def\NAT@temp{#2}\expandafter \ifx \csname b@#1\@extra@binfo\endcsname
+    \NAT@temp \else \ifNAT@swa \NAT@swafalse
+       \PackageWarningNoLine{natbib}{Citation(s) may have
+          changed.\MessageBreak
+          Rerun to get citations correct}\fi\fi}
+\def\bibsection{%\if@draft\newpage\fi
+    \noappendix\section*{\refname}}
+\newcounter{NAT@ctr}
+\renewenvironment{thebibliography}[1]{%
+ \bibsection\parindent \z@\bibpreamble\bibfont\list
+   {\@biblabel{\arabic{NAT@ctr}}}{\@bibsetup{#1}%
+    \setcounter{NAT@ctr}{0}}%
+      \def\newblock{\hskip .11em plus.33em minus.07em}%
+    \sloppy\clubpenalty4000\widowpenalty4000
+    \sfcode`\.=1000\relax
+ }{\def\@noitemerr{%
+  \PackageWarning{natbib}
+     {Empty `thebibliography' environment}}%
+  \endlist\vskip-\lastskip}
+\let\bibfont\small
+\let\bibpreamble\relax
+\providecommand\reset@font{\relax}
+\providecommand\bibname{Bibliography}
+\providecommand\refname{References}
+\newcommand\NAT@citeundefined{\gdef \NAT@undefined {%
+    \PackageWarningNoLine{natbib}{There were undefined citations}}}
+\let \NAT@undefined \relax
+\newcommand\NAT@citemultiple{\gdef \NAT@multiple {%
+    \PackageWarningNoLine{natbib}{There were multiply defined citations}}}
+\let \NAT@multiple \relax
+\AtEndDocument{\NAT@undefined\NAT@multiple}
+\providecommand\@mkboth[2]{}
+\providecommand\MakeUppercase{\uppercase}
+\providecommand{\@extra@b@citeb}{}
+\gdef\@extra@binfo{}
+\providecommand\hyper@natanchorstart[1]{}
+\providecommand\hyper@natanchorend{}
+\providecommand\hyper@natlinkstart[1]{}
+\providecommand\hyper@natlinkend{}
+\providecommand\hyper@natlinkbreak[2]{#1}
+\AtBeginDocument{\@ifundefined{bbl@redefine}{}{%
+\let\@citex\org@@citex
+\bbl@redefine\@citex[#1][#2]#3{%
+  \@safe@activestrue\org@@citex[#1][#2]{#3}\@safe@activesfalse}%
+\bbl@redefine\NAT@testdef#1#2{%
+  \@safe@activestrue\org@NAT@testdef{#1}{#2}\@safe@activesfalse}%
+\@ifundefined{org@@lbibitem}{%
+\bbl@redefine\@lbibitem[#1]#2{%
+  \@safe@activestrue\org@@lbibitem[#1]{#2}\@safe@activesfalse}}{}%
+}}
+\ifnum\NAT@sort>0
+\newcommand\NAT@sort@cites[1]{%
+\@tempcntb\m@ne
+\let\@celt\delimiter
+\def\NAT@num@list{}%
+\def\NAT@cite@list{}%
+\def\NAT@nonsort@list{}%
+\@for \@citeb:=#1\do{\NAT@make@cite@list}%
+\edef\NAT@cite@list{\NAT@cite@list\NAT@nonsort@list}%
+\edef\NAT@cite@list{\expandafter\NAT@xcom\NAT@cite@list @@}}
+\begingroup \catcode`\_=8
+\gdef\NAT@make@cite@list{%
+     \edef\@citeb{\expandafter\@firstofone\@citeb}%
+    \@ifundefined{b@\@citeb\@extra@b@citeb}{\def\NAT@num{A}}%
+    {\NAT@parse{\@citeb}}%
+      \ifcat _\ifnum\z@<0\NAT@num _\else A\fi
+       \@tempcnta\NAT@num \relax
+       \ifnum \@tempcnta>\@tempcntb
+          \edef\NAT@num@list{\NAT@num@list \@celt{\NAT@num}}%
+          \edef\NAT@cite@list{\NAT@cite@list\@citeb,}%
+          \@tempcntb\@tempcnta
+       \else
+          \let\NAT@@cite@list=\NAT@cite@list \def\NAT@cite@list{}%
+          \edef\NAT@num@list{\expandafter\NAT@num@celt \NAT@num@list \@gobble @}%
+          {\let\@celt=\NAT@celt\NAT@num@list}%
+       \fi
+    \else
+       \edef\NAT@nonsort@list{\NAT@nonsort@list\@citeb,}%
+ \fi}
+\endgroup
+\def\NAT@celt#1{\ifnum #1<\@tempcnta
+  \xdef\NAT@cite@list{\NAT@cite@list\expandafter\NAT@nextc\NAT@@cite@list @@}%
+  \xdef\NAT@@cite@list{\expandafter\NAT@restc\NAT@@cite@list}%
+ \else
+  \xdef\NAT@cite@list{\NAT@cite@list\@citeb,\NAT@@cite@list}\let\@celt\@gobble%
+ \fi}
+\def\NAT@num@celt#1#2{\ifx \@celt #1%
+     \ifnum #2<\@tempcnta
+        \@celt{#2}%
+        \expandafter\expandafter\expandafter\NAT@num@celt
+     \else
+        \@celt{\number\@tempcnta}\@celt{#2}%
+  \fi\fi}
+\def\NAT@nextc#1,#2@@{#1,}
+\def\NAT@restc#1,#2{#2}
+\def\NAT@xcom#1,@@{#1}
+\else
+ \newcommand\NAT@sort@cites[1]{\edef\NAT@cite@list{#1}}\fi
+%% Copyright 1993-1999 Patrick W Daly
+%% Max-Planck-Institut f\"ur Aeronomie
+%% Max-Planck-Str. 2
+%% D-37191 Katlenburg-Lindau
+%% Germany
+%% E-mail: daly@linmpi.mpg.de
+\def\ModuleVersion#1[#2]{}
+    \ModuleVersion{balance}
+         [1999/02/23 4.3 (PWD)]
+\newcommand{\@BAlancecol}{\if@twocolumn
+  \setbox0=\vbox{\unvbox\@outputbox} \@tempdima=\ht0
+  \advance\@tempdima by \topskip \advance\@tempdima
+     by -\baselineskip \divide\@tempdima by 2
+     \splittopskip=\topskip
+  {\vbadness=\@M \loop \global\setbox3=\copy0
+   \global\setbox1=\vsplit3 to \@tempdima
+   \ifdim\ht3>\@tempdima \global\advance\@tempdima by 1pt \repeat}
+   \setbox\@leftcolumn=\vbox to \@tempdima{\unvbox1\vfil}
+   \setbox\@outputbox=\vbox to \@tempdima
+     {\dimen2=\dp3\unvbox3\kern-\dimen2
+      \vfil}
+  \fi}
+\newif\if@BAlanceone
+\global\@BAlanceonefalse
+\newdimen\oldvsize
+\newcommand{\@BAdblcol}{\if@firstcolumn
+       \unvbox\@outputbox \penalty\outputpenalty
+       \global\oldvsize=\@colht \global\multiply \@colht by 2
+       \global\@BAlanceonetrue
+       \global\@firstcolumnfalse
+  \else \global\@firstcolumntrue
+       \if@BAlanceone
+       \global\@BAlanceonefalse\@BAlancecol
+       \global\@colht=\oldvsize \else
+       \PackageWarningNoLine{balance}
+          {You have called \protect\balance\space
+             in second column\MessageBreak
+           Columns might not be balanced}\fi
+     \setbox\@outputbox\vbox to \@colht{\hbox to\textwidth
+     {\hbox to\columnwidth {\box\@leftcolumn \hss}\hfil
+      \vrule width\columnseprule\hfil \hbox to\columnwidth
+      {\box\@outputbox \hss}}\vfil}\@combinedblfloats
+     \@outputpage \begingroup \@dblfloatplacement
+     \@startdblcolumn \@whilesw\if@fcolmade \fi
+     {\@outputpage\@startdblcolumn}\endgroup
+  \fi}
+\newcommand{\@BAcleardblpage}{\clearpage\if@twoside \ifodd\c@page\else
+  \hbox{}\newpage\fi\fi}
+\newcommand{\@@cleardblpage}{}
+\let\@@cleardblpage=\cleardoublepage
+
+\newcommand{\@@utputdblcol}{}
+\let\@@utputdblcol=\@outputdblcol
+\newcommand{\balance}{\global\let\@outputdblcol=\@BAdblcol
+  \global\let\cleardoublepage=\@BAcleardblpage}
+\newcommand{\nobalance}{\global\let\@outputdblcol=\@@utputdblcol
+  \global\let\cleardoublepage=\@@cleardblpage}
+\endinput
+%%
+%% End of file `isss.cls'.
Index: /branches/start/ICRC_01/mccontrib.tex
===================================================================
--- /branches/start/ICRC_01/mccontrib.tex	(revision 4308)
+++ /branches/start/ICRC_01/mccontrib.tex	(revision 4308)
@@ -0,0 +1,247 @@
+
+\documentclass{icrc}
+
+\usepackage{times}
+\usepackage{graphicx} % when using Latex and dvips
+%                       % (the latter best with option -Pcmz, if available,
+%                       % to invoke Type 1 cm fonts)
+%\usepackage[pdftex]{graphicx} % when using pdfLatex (preferred)
+
+\begin{document}
+
+\title{Title}
+\author[1]{O. Blanch}
+\affil[1]{IFAE, Barcelona, Spain}
+\author[2]{H. Kornmayer}
+\affil[2]{Max-Planck-Institut f\"ur Physik, M\"unchen, Germany}
+\author[3]{J.C. Gonzalez}
+\affil[3]{Universidad Complutense Madrid, Spain}
+
+\correspondence{H. Kornmayer (h.kornmayer@web.de)}
+
+\firstpage{1}
+\pubyear{2001}
+
+% \titleheight{11cm} % uncomment and adjust in case your title block
+                     % does not fit into the default and minimum 7.5 cm
+
+\maketitle
+
+\begin{abstract}
+For the understanding of a large Cherenkov telescope a detailed 
+simulation of air showers and of the detector response are
+unavoidable. Such a simulation must take into account the development
+of air showers in the atmosphere, the reflectivity of the mirrors, 
+the response of photo detectors 
+and the influence of both the light of night sky and the light of  
+bright stars. 
+A detailed study will be presented. 
+\end{abstract}
+
+\section{Introduction}
+
+In this year the construction of the the $17~\mathrm{m}$ diameter
+Che\-ren\-kov telescope called MAGIC will be finished. The aim of this
+detector is the observation of $\gamma$-ray sources in the 
+enery region above $\approx 10~\mathrm{TeV}$. 
+The size of the telesope mirros will be around $250~\mathrm{m^2}$.
+The air showers induced by cosmic ray particles (hadrons and gammas) 
+will be detected with a "classical" camera consisting of 577
+photomultiplier tubes (PMT). The analog signals of these PMTs will 
+be recorded by a FADC system running with a frequency of 
+$f = 333~\mathrm{MHz}$. 
+The readout of the FADCs by a dedicated trigger system containing
+different trigger levels. 
+
+The goal of the trigger system is to reject the hadronic cosmic ray
+background from the gamma rays, for which a lower threshold is aimed. 
+For a better understanding of the MAGIC telescope and its different 
+systems (trigger, FADC) a detailed Monte Carlo (MC) study is 
+unavoidable. Such an study has to take into account the simulation
+of air showers, the effect of absorption in the atmosphere, the 
+behaviour of the PMTs and the response of the trigger and FADC
+system. 
+For a big telescope like MAGIC there is an additional source of 
+noise, which is the light of the night sky. As a rude assumption
+there will be around 50 stars with magnitude $m \le 9$ in the 
+field of view of the camera. So one other game of this
+study is to invent methods to become rid of the light from 
+stars. 
+
+Here we present the first results of such an investigation. 
+
+\section{Generation of MC data samples} 
+
+The simulation of the MAGIC telescope is seperated in a 
+subsequent chain of smaller simulation parts. First the 
+air showers are simulated with the 
+CORSIKA program \citep{hk95}. 
+In the next step we simulate the reflection of the 
+Cherenkov photons on the mirror dish. 
+Then the behaviour of the PMTs is simulated and the
+response of the trigger and FADC system is generated. 
+In the followin subsections you find a more precise 
+description of all the programs. 
+
+\subsection{Air shower simulation}
+
+The simulation of gammas and of hadrons is done with
+the CORSIKA program, version ????. 
+For the simulation of hadronic 
+showers we use the VENUS model. We simulate showers 
+for different zenith angles 
+($\Theta = 0^\circ, 5^\circ, 10^\circ, 15^\circ, 
+20^\circ, 25^\circ $). 
+Gammas where simulated like a point source
+whereas the hadrons are simulated isotropic around
+the given zenith angle. We found that hadronic showers
+have also for big impact parameters $I$ a non-zero 
+probability to trigger the telescope. Therefore we 
+simulate hadrons with $I < 400~\mathrm{m}$ and gammas
+with $I < 200~\mathrm{m}$. 
+The number of generated showers can be found in table 
+\ref{tab_showers}. 
+%
+%
+%
+\begin{table}[b]
+\begin{center}
+  \begin{tabular}{|c||r|r||}
+    \hline
+    zenith angle & gammas & protons \\
+    \hline \hline
+  	$\Theta = 0^\circ$  &     &  \\
+  	$\Theta = 5^\circ$  &     &  \\
+  	$\Theta = 10^\circ$ &     &  \\
+  	$\Theta = 15^\circ$ &     &  $\approx 5 \cdot 10^6$  \\
+  	$\Theta = 20^\circ$ &     &  \\
+  	$\Theta = 25^\circ$ &     &  \\
+    \hline
+  \end{tabular}
+\end{center}
+\caption {Number of generated showers}
+\label{tab_showers}
+\end{table}
+%
+%
+%
+For each simulated shower all
+Cherenkov photons hitting the groud at observation level 
+close to the telesope position are stored.
+
+\subsection{mirror simulation}
+
+The output of the air shower simualition is used 
+as the input to the mirror simulation. But before 
+simulating the mirror themself, one has to take the
+absorption in the atmosphere into account. For each 
+Cherenkov photon the height of production and
+the wavelength is known. Taking the Rayleigh and 
+Mie scattering into account one is able to calculate
+the effect of absorption in the atmosphere. 
+The next step in the simulation is the reflection of 
+the Cherenkov photons on the mirrors. Therefore one
+has to define in that step the pointing of the 
+telescope. Each photon hitting one of the mirrors will
+be tracked to the camera plane. Here we take an 
+reflectivity of around 90\% into account. 
+All Cherenkov photons reaching the camera plane will be
+stored.  
+
+\subsection{camera simulation}
+
+The camera simulates the behaviour of the PMTs and the
+electronics of the trigger and FADC system. After the 
+pixelisation we take the wavelength dependent quantum
+efficiency (QE) for each PMT into account. 
+In figure \ref{fig_qe} 
+the QE of a typical MAGIC  PMT is shown. 
+%
+%
+%
+\begin{figure}[hb]
+ \vspace*{2.0mm} % just in case for shifting the figure slightly down
+ \includegraphics[width=8.3cm]{qe_123.eps} % .eps for Latex,
+                                            % pdfLatex allows .pdf, .jpg, .png and .tif
+ \caption{quantum efficency of the PMT for pixel 123}
+ \label{fig_qe}
+\end{figure}
+%
+%
+%
+For each photo electron (PE) leaving the photo cathod we
+generate a "standard" response function that we add to 
+the analog signal of that PMT - seperatly for the 
+trigger and the FADC system. 
+At the present these response function are gaussians with
+a given width. 
+The amplitude of the response function is randomized 
+by using the function of figure \ref{fig_ampl}. 
+By superimpose all photons of one pixel an by taking
+the arrival time into account we get the response 
+of the trigger and FADC system for that pixel (see
+also figure \ref{fig_starlight}). 
+This is done for all pixels in the camera. 
+
+Then the simulation of the trigger electronic is applied. 
+We look in the generated analog signal if the discriminator
+threshold is achieved. If yes we will create a digital output
+signal for that pixels. Then we decided if a first level trigger
+occurs by looking for next neighbour (NN)conditions at a given
+time. If a given NN condition (Multiplicity, Topology, ...) 
+is fullfilled, a first level trigger is generated and the 
+content of the FADC system is written to disk. An triggered
+event is generated. 
+%
+%
+%
+\begin{figure}[t]
+ \vspace*{2.0mm} % just in case for shifting the figure slightly down
+ \includegraphics[width=8.3cm]{ampldist.eps} % .eps for Latex,
+                                            % pdfLatex allows .pdf, .jpg, .png and .tif
+ \caption{The distibution of amplitude of the standard response function.}
+ \label{fig_ampl}
+\end{figure}
+%
+%
+%
+
+
+\section{Results}
+
+\subsection{Trigger studies}
+
+\subsubsection{Collection area}
+
+\subsubsection{Threshold of MAGIC telescope}
+
+\subsubsection{Expected rates}
+
+\section{Conclusion}
+
+\begin{acknowledgements}
+Acknow text.
+\end{acknowledgements}
+
+\appendix
+
+\section{Appendix section 1}
+
+Text in appendix.
+
+\begin{thebibliography}{99}
+
+\bibitem[Heck and Knapp(1995)]{hk95}
+Heck, D. and Knapp J., CORSIKA Manual, 1995.
+
+\bibitem[Abramovitz and Stegun(1964)]{as64}
+Abramowitz, M. and Stegun, I. A., Handbook of Mathematical Functions,
+U. S. Govt. Printing Office, Washington D. C., 1964.
+
+\bibitem[Aref(1983)]{a83}
+Aref, H., Integrable, chaotic, and turbulent vortex motion in
+two-dimensional flows, Ann. Rev. Fluid Mech., 15, 345--389, 1983.
+
+\end{thebibliography}
+
+\end{document}
Index: /branches/start/ICRC_01/qe_123.eps
===================================================================
--- /branches/start/ICRC_01/qe_123.eps	(revision 4308)
+++ /branches/start/ICRC_01/qe_123.eps	(revision 4308)
@@ -0,0 +1,768 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox:  0 0 567 384
+%%Title: 
+%%Creator: ROOT Version2.25/03
+%%CreationDate:Fri May 11 09:51:15 2001
+%%EndComments
+%%BeginProlog
+80 dict begin
+/s {stroke} def /l {lineto} def /m {moveto} def /t {translate} def
+/sw {stringwidth} def /r {rotate} def /rl {roll}  def /R {repeat} def
+/d {rlineto} def /rm {rmoveto} def /gr {grestore} def /f {eofill} def
+/c {setrgbcolor} def /lw {setlinewidth} def /sd {setdash} def
+/cl {closepath} def /sf {scalefont setfont} def /black {0 setgray} def
+/box {m dup 0 exch d exch 0 d 0 exch neg d cl} def
+/NC{systemdict begin initclip end}def/C{NC box clip newpath}def
+/bl {box s} def /bf {box f} def /Y { 0 exch d} def /X { 0 d} def 
+/mp {newpath /y exch def /x exch def} def
+/side {[w .77 mul w .23 mul] .385 w mul sd w 0 l currentpoint t -144 r} def
+/mr {mp x y w2 0 360 arc} def /m24 {mr s} def /m20 {mr f} def
+/mb {mp x y w2 add m w2 neg 0 d 0 w neg d w 0 d 0 w d cl} def
+/mt {mp x y w2 add m w2 neg w neg d w 0 d cl} def
+/m21 {mb f} def /m25 {mb s} def /m22 {mt f} def /m26{mt s} def
+/m23 {mp x y w2 sub m w2 w d w neg 0 d cl f} def
+/m27 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl s} def
+/m28 {mp x w2 sub y w2 sub w3 add m w3 0 d  0 w3 neg d w3 0 d 0 w3 d w3 0 d  0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d
+ 0 w3 neg d w3 neg 0 d cl s } def
+/m29 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t
+ 4 {side} repeat cl fill gr} def
+/m30 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t
+ 5 {side} repeat s gr} def
+/m31 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d x w2 sub y w2 add m w w neg d x w2 sub y w2
+ sub m w w d s} def
+/m2 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d s} def
+/m5 {mp x w2 sub y w2 sub m w w d x w2 sub y w2 add m w w neg d s} def
+/reencdict 24 dict def /ReEncode {reencdict begin /nco&na exch def
+/nfnam exch def /basefontname exch def /basefontdict basefontname findfont def
+/newfont basefontdict maxlength dict def basefontdict {exch dup /FID ne
+{dup /Encoding eq {exch dup length array copy newfont 3 1 roll put} {exch 
+newfont 3 1 roll put} ifelse} {pop pop} ifelse } forall newfont
+/FontName nfnam put nco&na aload pop nco&na length 2 idiv {newfont
+/Encoding get 3 1 roll put} repeat nfnam newfont definefont pop end } def
+/accvec [ 176 /agrave 181 /Agrave 190 /acircumflex 192 /Acircumflex
+201 /adieresis 204 /Adieresis 209 /ccedilla 210 /Ccedilla 211 /eacute
+212 /Eacute 213 /egrave 214 /Egrave 215 /ecircumflex 216 /Ecircumflex
+217 /edieresis 218 /Edieresis 219 /icircumflex 220 /Icircumflex
+221 /idieresis 222 /Idieresis 223 /ntilde 224 /Ntilde 226 /ocircumflex
+228 /Ocircumflex 229 /odieresis 230 /Odieresis 231 /ucircumflex 236 /Ucircumflex
+237 /udieresis 238 /Udieresis 239 /aring 242 /Aring 243 /ydieresis
+244 /Ydieresis 246 /aacute 247 /Aacute 252 /ugrave 253 /Ugrave] def
+/Times-Roman /Times-Roman accvec ReEncode
+/Times-Italic /Times-Italic accvec ReEncode
+/Times-Bold /Times-Bold accvec ReEncode
+/Times-BoldItalic /Times-BoldItalic accvec ReEncode
+/Helvetica /Helvetica accvec ReEncode
+/Helvetica-Oblique /Helvetica-Oblique accvec ReEncode
+/Helvetica-Bold /Helvetica-Bold accvec ReEncode
+/Helvetica-BoldOblique /Helvetica-BoldOblique  accvec ReEncode
+/Courier /Courier accvec ReEncode
+/Courier-Oblique /Courier-Oblique accvec ReEncode
+/Courier-Bold /Courier-Bold accvec ReEncode
+/Courier-BoldOblique /Courier-BoldOblique accvec ReEncode
+/oshow {gsave [] 0 sd true charpath stroke gr} def
+/stwn { /fs exch def /fn exch def /text exch def fn findfont fs sf
+ text sw pop xs add /xs exch def} def
+/stwb { /fs exch def /fn exch def /nbas exch def /textf exch deftextf length /tlen exch def nbas tlen gt {/nbas tlendef} iffn findfont fs sf textf dup length nbas sub nbas getinterval sw
+pop neg xs add /xs exch def} def
+/accspe [ 65 /plusminus  66 /bar  67 /existential  68 /universal 
+69 /exclam  70 /numbersign 71 /greater  72 /question  73 /integral 
+74 /colon  75 /semicolon  76 /less  77 /bracketleft  78 /bracketright
+79 /greaterequal 80 /braceleft 81 /braceright 82 /radical
+83 /spade 84 /heart 85 /diamond 86 /club 87 /lessequal
+88 /multiply 89 /percent 90 /infinity 48 /circlemultiply 49 /circleplus
+50 /emptyset  51 /lozenge 52 /bullet 53 /arrowright 54 /arrowup
+55 /arrowleft 56 /arrowdown 57 /arrowboth 48 /degree 44 /comma 43 /plus 45 /angle 42 /angleleft 47 /divide 61 /notequal 40 /equivalence 41 /second 97 /approxequal 98 /congruent 99 /perpendicular 100 /partialdiff 101 /florin 102 /intersection
+ 103 /union 104 /propersuperset 105 /reflexsuperset 106 /notsubset 107 /propersubset 108 /reflexsubset 109 /element 110 /notelement 111 /gradient 112 /logicaland 113 /logicalor 114 /arrowdblboth 115 /arrowdblleft 116 /arrowdblup 117 /arrowdblright
+ 118 /arrowdbldown 119 /ampersand 120 /omega1 121 /similar 122 /aleph ] def
+/Symbol /Special accspe ReEncode
+%%EndProlog
+newpath  gsave  .25 .25 scale  gsave  0 0  black [] 0 sd 3 lw 0.999 0.999 0.999 c 2268 1538 0 0 bf 1 1 1 c 0 0 m 2 2 d 1534 Y 2264 X 2 2 d -2268 X -1538 Y f 0.999 0.999 0.999 c 0 0 m 2 2 d 2264 X 1534 Y 2 2 d -1538 Y -2268 X f black [] 0 sd 3 lw 0.95
+ 0.95 0.95 c 1812 1170 228 192 bf 1 1 1 c 228 192 m 2 2 d 1166 Y 1808 X 2 2 d -1812 X -1170 Y f 0.665 0.665 0.665 c 228 192 m 2 2 d 1808 X 1166 Y 2 2 d -1170 Y -1812 X f [] 0 sd 3 lw black 228 192 m 1812 X s [] 0 sd 3 lw 2040 192 m 1170 Y s [] 0 sd 3
+ lw 2040 1362 m -1812 X s [] 0 sd 3 lw 228 1362 m -1170 Y s [] 0 sd 3 lw 0.95 0.95 0.95 c 1812 1170 228 192 bf 1 1 1 c 228 192 m 2 2 d 1166 Y 1808 X 2 2 d -1812 X -1170 Y f 0.665 0.665 0.665 c 228 192 m 2 2 d 1808 X 1166 Y 2 2 d -1170 Y -1812 X f
+ [] 0 sd 3 lw black 228 192 m 1812 X s [] 0 sd 3 lw 2040 192 m 1170 Y s [] 0 sd 3 lw 2040 1362 m -1812 X s [] 0 sd 3 lw 228 1362 m -1170 Y s [] 0 sd 3 lw 1 1 1 c black [] 0 sd 3 lw 228 192 m 1812 X s [] 0 sd 3 lw [] 0 sd 3 lw 228 192 m 1812 X s s
+ gsave  1900 72
+ t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m ( [nm]) show  gr 
+ gsave  1867 72
+ t 0 r 0 0 m /Symbol findfont 56 sf 0 0 m (l) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 336 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 379 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 422 211 m -19 Y s s [] 0 sd 3
+ lw [] 0 sd 3 lw 465 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 508 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 552 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 595 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 638 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 681
+ 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 724 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 767 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 810 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 853 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 897 211 m -19 Y s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 940 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 983 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1026 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1069 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1112 211 m -19 Y s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 1155 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1199 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1242 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1328 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw
+ 1371 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1414 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1457 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1500 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1544 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1587 229 m -37
+ Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1630 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1673 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1716 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1759 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1802 229 m -37 Y s s [] 0 sd
+ 3 lw [] 0 sd 3 lw 1846 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1889 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1932 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1975 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3
+ lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 250 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s
+ /xs 0 def (250) /Helvetica-Bold 56 stwn  gsave  293 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (250) show  gr 
+ /xs 0 def (300) /Helvetica-Bold 56 stwn  gsave  508 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (300) show  gr 
+ /xs 0 def (350) /Helvetica-Bold 56 stwn  gsave  724 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (350) show  gr 
+ /xs 0 def (400) /Helvetica-Bold 56 stwn  gsave  940 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (400) show  gr 
+ /xs 0 def (450) /Helvetica-Bold 56 stwn  gsave  1155 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (450) show  gr 
+ /xs 0 def (500) /Helvetica-Bold 56 stwn  gsave  1371 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (500) show  gr 
+ /xs 0 def (550) /Helvetica-Bold 56 stwn  gsave  1587 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (550) show  gr 
+ /xs 0 def (600) /Helvetica-Bold 56 stwn  gsave  1802 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (600) show  gr 
+ /xs 0 def (650) /Helvetica-Bold 56 stwn  gsave  2018 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (650) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 228 192 m 1170 Y s s
+ gsave  104 1189
+ t 90 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (qe [%]) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 280 192 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 233 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 273 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 314 m -26 X
+ s s [] 0 sd 3 lw [] 0 sd 3 lw 254 354 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 394 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 435 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 475 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 516 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 254 556 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 597 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 637 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 678 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 718 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254
+ 759 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 799 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 839 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 880 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 920 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 961 m -26 X s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 280 1001 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1042 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1082 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1123 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1163 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1244 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1284 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1325 m -26 X s s
+ /xs 0 def (0) /Helvetica-Bold 56 stwn  gsave  217 169
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show  gr 
+ /xs 0 def (5) /Helvetica-Bold 56 stwn  gsave  217 371
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show  gr 
+ /xs 0 def (10) /Helvetica-Bold 56 stwn  gsave  217 573
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show  gr 
+ /xs 0 def (15) /Helvetica-Bold 56 stwn  gsave  217 776
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (15) show  gr 
+ /xs 0 def (20) /Helvetica-Bold 56 stwn  gsave  217 978
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show  gr 
+ /xs 0 def (25) /Helvetica-Bold 56 stwn  gsave  217 1180
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (25) show  gr  1 0 0 c [] 0 sd 9 lw 0.95 0.95 0.95 c 0 0 1 c [] 0 sd 9 lw 1 0 0 c 379 222 m 8 6 d 9 9 d 8 14 d 8 15 d 8 19 d 2 4 d 7 20 d 8 25 d 8 33 d 11 44 d 9 39 d 14 61 d 11 50 d 10 51
+ d 8 43 d 6 34 d 9 52 d 14 91 d 6 41 d 6 29 d 3 14 d 8 39 d 8 33 d 9 32 d 7 23 d 7 20 d 4 10 d 5 12 d 7 10 d 9 9 d 20 15 d 2 3 d 34 41 d 9 11 d 17 24 d 15 23 d 11 13 d 12 9 d 15 8 d 16 5 d 15 2 d 28 -2 d 28 -3 d 15 -5 d 44 -22 d 13 -3 d 18 -2 d 9 -4
+ d 3 -2 d 10 -10 d 33 -42 d 43 -53 d 43 -56 d 33 -44 d 10 -15 d 43 -68 d 44 -63 d 35 -57 d 42 -69 d 9 -16 d 86 -157 d 23 -34 d 23 -31 d 23 -27 d 17 -20 d 15 -13 d 23 -17 d 30 -20 d 16 -14 d 3 -3 d 15 -17 d 34 -46 d 21 -29 d 14 -14 d 2 -2 d 17 -14 d
+ 20 -12 d 24 -12 d 25 -10 d 27 -10 d 45 -10 d 14 -3 d 45 -7 d 42 -4 d s [] 0 sd 3 lw 0 0 1 c /w 26 def /w2 {w 2 div} def /w3 {w 3 div} def 379 222 422 289 465 450 508 655 552 916 595 1073 638 1122 681 1174 724 1234 767 1256 810 1256 853 1248 897 1226
+ 940 1215 983 1163 1026 1110 1069 1054 1112 995 1155 927 1199 864 1285 722 1371 565 1457 453 1544 386 1630 278 1716 230 1802 207 1889 196 28 { m21} R 1 0 0 c
+ gsave  940 781
+ t 0 r 0 0 m /Helvetica-Bold findfont 44 sf 0 0 m (PMT of Pixel 123) show  gr  black [] 0 sd 3 lw 0.95 0.95 0.95 c 1812 1170 228 192 bf 1 1 1 c 228 192 m 2 2 d 1166 Y 1808 X 2 2 d -1812 X -1170 Y f 0.665 0.665 0.665 c 228 192 m 2 2 d 1808 X 1166 Y 2
+ 2 d -1170 Y -1812 X f [] 0 sd 3 lw black 228 192 m 1812 X s [] 0 sd 3 lw 2040 192 m 1170 Y s [] 0 sd 3 lw 2040 1362 m -1812 X s [] 0 sd 3 lw 228 1362 m -1170 Y s [] 0 sd 3 lw 1 1 1 c black [] 0 sd 3 lw 228 192 m 1812 X s [] 0 sd 3 lw [] 0 sd 3 lw
+ 228 192 m 1812 X s s
+ gsave  1900 72
+ t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m ( [nm]) show  gr 
+ gsave  1867 72
+ t 0 r 0 0 m /Symbol findfont 56 sf 0 0 m (l) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 336 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 379 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 422 211 m -19 Y s s [] 0 sd 3
+ lw [] 0 sd 3 lw 465 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 508 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 552 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 595 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 638 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 681
+ 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 724 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 767 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 810 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 853 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 897 211 m -19 Y s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 940 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 983 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1026 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1069 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1112 211 m -19 Y s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 1155 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1199 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1242 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1328 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw
+ 1371 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1414 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1457 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1500 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1544 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1587 229 m -37
+ Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1630 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1673 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1716 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1759 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1802 229 m -37 Y s s [] 0 sd
+ 3 lw [] 0 sd 3 lw 1846 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1889 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1932 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1975 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3
+ lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 250 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s
+ /xs 0 def (250) /Helvetica-Bold 56 stwn  gsave  293 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (250) show  gr 
+ /xs 0 def (300) /Helvetica-Bold 56 stwn  gsave  508 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (300) show  gr 
+ /xs 0 def (350) /Helvetica-Bold 56 stwn  gsave  724 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (350) show  gr 
+ /xs 0 def (400) /Helvetica-Bold 56 stwn  gsave  940 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (400) show  gr 
+ /xs 0 def (450) /Helvetica-Bold 56 stwn  gsave  1155 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (450) show  gr 
+ /xs 0 def (500) /Helvetica-Bold 56 stwn  gsave  1371 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (500) show  gr 
+ /xs 0 def (550) /Helvetica-Bold 56 stwn  gsave  1587 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (550) show  gr 
+ /xs 0 def (600) /Helvetica-Bold 56 stwn  gsave  1802 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (600) show  gr 
+ /xs 0 def (650) /Helvetica-Bold 56 stwn  gsave  2018 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (650) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 228 192 m 1170 Y s s
+ gsave  104 1189
+ t 90 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (qe [%]) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 280 192 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 233 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 273 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 314 m -26 X
+ s s [] 0 sd 3 lw [] 0 sd 3 lw 254 354 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 394 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 435 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 475 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 516 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 254 556 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 597 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 637 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 678 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 718 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254
+ 759 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 799 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 839 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 880 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 920 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 961 m -26 X s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 280 1001 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1042 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1082 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1123 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1163 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1244 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1284 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1325 m -26 X s s
+ /xs 0 def (0) /Helvetica-Bold 56 stwn  gsave  217 169
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show  gr 
+ /xs 0 def (5) /Helvetica-Bold 56 stwn  gsave  217 371
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show  gr 
+ /xs 0 def (10) /Helvetica-Bold 56 stwn  gsave  217 573
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show  gr 
+ /xs 0 def (15) /Helvetica-Bold 56 stwn  gsave  217 776
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (15) show  gr 
+ /xs 0 def (20) /Helvetica-Bold 56 stwn  gsave  217 978
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show  gr 
+ /xs 0 def (25) /Helvetica-Bold 56 stwn  gsave  217 1180
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (25) show  gr  1 0 0 c [] 0 sd 9 lw 0.95 0.95 0.95 c 0 0 1 c [] 0 sd 9 lw 1 0 0 c 379 222 m 8 6 d 9 9 d 8 14 d 8 15 d 8 19 d 2 4 d 7 20 d 8 25 d 8 33 d 11 44 d 9 39 d 14 61 d 11 50 d 10 51
+ d 8 43 d 6 34 d 9 52 d 14 91 d 6 41 d 6 29 d 3 14 d 8 39 d 8 33 d 9 32 d 7 23 d 7 20 d 4 10 d 5 12 d 7 10 d 9 9 d 20 15 d 2 3 d 34 41 d 9 11 d 17 24 d 15 23 d 11 13 d 12 9 d 15 8 d 16 5 d 15 2 d 28 -2 d 28 -3 d 15 -5 d 44 -22 d 13 -3 d 18 -2 d 9 -4
+ d 3 -2 d 10 -10 d 33 -42 d 43 -53 d 43 -56 d 33 -44 d 10 -15 d 43 -68 d 44 -63 d 35 -57 d 42 -69 d 9 -16 d 86 -157 d 23 -34 d 23 -31 d 23 -27 d 17 -20 d 15 -13 d 23 -17 d 30 -20 d 16 -14 d 3 -3 d 15 -17 d 34 -46 d 21 -29 d 14 -14 d 2 -2 d 17 -14 d
+ 20 -12 d 24 -12 d 25 -10 d 27 -10 d 45 -10 d 14 -3 d 45 -7 d 42 -4 d s [] 0 sd 3 lw 0 0 1 c 379 222 422 289 465 450 508 655 552 916 595 1073 638 1122 681 1174 724 1234 767 1256 810 1256 853 1248 897 1226 940 1215 983 1163 1026 1110 1069 1054 1112
+ 995 1155 927 1199 864 1285 722 1371 565 1457 453 1544 386 1630 278 1716 230 1802 207 1889 196 28 { m21} R black
+ gsave  1371 971
+ t 0 r 0 0 m /Helvetica-Bold findfont 72 sf 0 0 m (PMT of Pixel 123) show  gr  [] 0 sd 3 lw 0.95 0.95 0.95 c 1812 1170 228 192 bf 1 1 1 c 228 192 m 2 2 d 1166 Y 1808 X 2 2 d -1812 X -1170 Y f 0.665 0.665 0.665 c 228 192 m 2 2 d 1808 X 1166 Y 2 2 d
+ -1170 Y -1812 X f [] 0 sd 3 lw black 228 192 m 1812 X s [] 0 sd 3 lw 2040 192 m 1170 Y s [] 0 sd 3 lw 2040 1362 m -1812 X s [] 0 sd 3 lw 228 1362 m -1170 Y s [] 0 sd 3 lw 1 1 1 c black [] 0 sd 3 lw 228 192 m 1812 X s [] 0 sd 3 lw [] 0 sd 3 lw 228
+ 192 m 1812 X s s
+ gsave  1900 72
+ t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m ( [nm]) show  gr 
+ gsave  1867 72
+ t 0 r 0 0 m /Symbol findfont 56 sf 0 0 m (l) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 336 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 379 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 422 211 m -19 Y s s [] 0 sd 3
+ lw [] 0 sd 3 lw 465 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 508 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 552 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 595 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 638 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 681
+ 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 724 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 767 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 810 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 853 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 897 211 m -19 Y s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 940 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 983 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1026 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1069 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1112 211 m -19 Y s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 1155 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1199 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1242 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1328 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw
+ 1371 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1414 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1457 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1500 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1544 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1587 229 m -37
+ Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1630 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1673 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1716 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1759 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1802 229 m -37 Y s s [] 0 sd
+ 3 lw [] 0 sd 3 lw 1846 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1889 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1932 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1975 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3
+ lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 250 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s
+ /xs 0 def (250) /Helvetica-Bold 56 stwn  gsave  293 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (250) show  gr 
+ /xs 0 def (300) /Helvetica-Bold 56 stwn  gsave  508 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (300) show  gr 
+ /xs 0 def (350) /Helvetica-Bold 56 stwn  gsave  724 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (350) show  gr 
+ /xs 0 def (400) /Helvetica-Bold 56 stwn  gsave  940 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (400) show  gr 
+ /xs 0 def (450) /Helvetica-Bold 56 stwn  gsave  1155 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (450) show  gr 
+ /xs 0 def (500) /Helvetica-Bold 56 stwn  gsave  1371 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (500) show  gr 
+ /xs 0 def (550) /Helvetica-Bold 56 stwn  gsave  1587 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (550) show  gr 
+ /xs 0 def (600) /Helvetica-Bold 56 stwn  gsave  1802 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (600) show  gr 
+ /xs 0 def (650) /Helvetica-Bold 56 stwn  gsave  2018 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (650) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 228 192 m 1170 Y s s
+ gsave  104 1189
+ t 90 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (qe [%]) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 280 192 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 233 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 273 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 314 m -26 X
+ s s [] 0 sd 3 lw [] 0 sd 3 lw 254 354 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 394 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 435 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 475 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 516 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 254 556 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 597 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 637 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 678 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 718 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254
+ 759 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 799 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 839 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 880 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 920 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 961 m -26 X s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 280 1001 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1042 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1082 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1123 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1163 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1244 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1284 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1325 m -26 X s s
+ /xs 0 def (0) /Helvetica-Bold 56 stwn  gsave  217 169
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show  gr 
+ /xs 0 def (5) /Helvetica-Bold 56 stwn  gsave  217 371
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show  gr 
+ /xs 0 def (10) /Helvetica-Bold 56 stwn  gsave  217 573
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show  gr 
+ /xs 0 def (15) /Helvetica-Bold 56 stwn  gsave  217 776
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (15) show  gr 
+ /xs 0 def (20) /Helvetica-Bold 56 stwn  gsave  217 978
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show  gr 
+ /xs 0 def (25) /Helvetica-Bold 56 stwn  gsave  217 1180
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (25) show  gr  1 0 0 c [] 0 sd 9 lw 0.95 0.95 0.95 c 0 0 1 c [] 0 sd 9 lw 1 0 0 c 379 222 m 8 6 d 9 9 d 8 14 d 8 15 d 8 19 d 2 4 d 7 20 d 8 25 d 8 33 d 11 44 d 9 39 d 14 61 d 11 50 d 10 51
+ d 8 43 d 6 34 d 9 52 d 14 91 d 6 41 d 6 29 d 3 14 d 8 39 d 8 33 d 9 32 d 7 23 d 7 20 d 4 10 d 5 12 d 7 10 d 9 9 d 20 15 d 2 3 d 34 41 d 9 11 d 17 24 d 15 23 d 11 13 d 12 9 d 15 8 d 16 5 d 15 2 d 28 -2 d 28 -3 d 15 -5 d 44 -22 d 13 -3 d 18 -2 d 9 -4
+ d 3 -2 d 10 -10 d 33 -42 d 43 -53 d 43 -56 d 33 -44 d 10 -15 d 43 -68 d 44 -63 d 35 -57 d 42 -69 d 9 -16 d 86 -157 d 23 -34 d 23 -31 d 23 -27 d 17 -20 d 15 -13 d 23 -17 d 30 -20 d 16 -14 d 3 -3 d 15 -17 d 34 -46 d 21 -29 d 14 -14 d 2 -2 d 17 -14 d
+ 20 -12 d 24 -12 d 25 -10 d 27 -10 d 45 -10 d 14 -3 d 45 -7 d 42 -4 d s [] 0 sd 3 lw 0 0 1 c 379 222 422 289 465 450 508 655 552 916 595 1073 638 1122 681 1174 724 1234 767 1256 810 1256 853 1248 897 1226 940 1215 983 1163 1026 1110 1069 1054 1112
+ 995 1155 927 1199 864 1285 722 1371 565 1457 453 1544 386 1630 278 1716 230 1802 207 1889 196 28 { m21} R black
+ gsave  1371 971
+ t 0 r 0 0 m /Helvetica-Bold findfont 72 sf 0 0 m (PMT of Pixel 123) show  gr  [] 0 sd 3 lw 0.95 0.95 0.95 c 1812 1170 228 192 bf 1 1 1 c 228 192 m 2 2 d 1166 Y 1808 X 2 2 d -1812 X -1170 Y f 0.665 0.665 0.665 c 228 192 m 2 2 d 1808 X 1166 Y 2 2 d
+ -1170 Y -1812 X f [] 0 sd 3 lw black 228 192 m 1812 X s [] 0 sd 3 lw 2040 192 m 1170 Y s [] 0 sd 3 lw 2040 1362 m -1812 X s [] 0 sd 3 lw 228 1362 m -1170 Y s [] 0 sd 3 lw 1 1 1 c black [] 0 sd 3 lw 228 192 m 1812 X s [] 0 sd 3 lw [] 0 sd 3 lw 228
+ 192 m 1812 X s s
+ gsave  1900 72
+ t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m ( [nm]) show  gr 
+ gsave  1867 72
+ t 0 r 0 0 m /Symbol findfont 56 sf 0 0 m (l) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 336 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 379 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 422 211 m -19 Y s s [] 0 sd 3
+ lw [] 0 sd 3 lw 465 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 508 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 552 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 595 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 638 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 681
+ 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 724 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 767 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 810 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 853 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 897 211 m -19 Y s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 940 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 983 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1026 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1069 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1112 211 m -19 Y s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 1155 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1199 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1242 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1328 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw
+ 1371 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1414 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1457 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1500 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1544 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1587 229 m -37
+ Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1630 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1673 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1716 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1759 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1802 229 m -37 Y s s [] 0 sd
+ 3 lw [] 0 sd 3 lw 1846 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1889 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1932 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1975 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3
+ lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 250 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s
+ /xs 0 def (250) /Helvetica-Bold 56 stwn  gsave  293 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (250) show  gr 
+ /xs 0 def (300) /Helvetica-Bold 56 stwn  gsave  508 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (300) show  gr 
+ /xs 0 def (350) /Helvetica-Bold 56 stwn  gsave  724 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (350) show  gr 
+ /xs 0 def (400) /Helvetica-Bold 56 stwn  gsave  940 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (400) show  gr 
+ /xs 0 def (450) /Helvetica-Bold 56 stwn  gsave  1155 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (450) show  gr 
+ /xs 0 def (500) /Helvetica-Bold 56 stwn  gsave  1371 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (500) show  gr 
+ /xs 0 def (550) /Helvetica-Bold 56 stwn  gsave  1587 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (550) show  gr 
+ /xs 0 def (600) /Helvetica-Bold 56 stwn  gsave  1802 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (600) show  gr 
+ /xs 0 def (650) /Helvetica-Bold 56 stwn  gsave  2018 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (650) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 228 192 m 1170 Y s s
+ gsave  104 1189
+ t 90 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (qe [%]) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 280 192 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 233 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 273 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 314 m -26 X
+ s s [] 0 sd 3 lw [] 0 sd 3 lw 254 354 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 394 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 435 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 475 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 516 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 254 556 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 597 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 637 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 678 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 718 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254
+ 759 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 799 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 839 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 880 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 920 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 961 m -26 X s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 280 1001 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1042 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1082 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1123 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1163 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1244 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1284 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1325 m -26 X s s
+ /xs 0 def (0) /Helvetica-Bold 56 stwn  gsave  217 169
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show  gr 
+ /xs 0 def (5) /Helvetica-Bold 56 stwn  gsave  217 371
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show  gr 
+ /xs 0 def (10) /Helvetica-Bold 56 stwn  gsave  217 573
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show  gr 
+ /xs 0 def (15) /Helvetica-Bold 56 stwn  gsave  217 776
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (15) show  gr 
+ /xs 0 def (20) /Helvetica-Bold 56 stwn  gsave  217 978
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show  gr 
+ /xs 0 def (25) /Helvetica-Bold 56 stwn  gsave  217 1180
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (25) show  gr  1 0 0 c [] 0 sd 9 lw 0.95 0.95 0.95 c 0 0 1 c [] 0 sd 9 lw 1 0 0 c 379 222 m 8 6 d 9 9 d 8 14 d 8 15 d 8 19 d 2 4 d 7 20 d 8 25 d 8 33 d 11 44 d 9 39 d 14 61 d 11 50 d 10 51
+ d 8 43 d 6 34 d 9 52 d 14 91 d 6 41 d 6 29 d 3 14 d 8 39 d 8 33 d 9 32 d 7 23 d 7 20 d 4 10 d 5 12 d 7 10 d 9 9 d 20 15 d 2 3 d 34 41 d 9 11 d 17 24 d 15 23 d 11 13 d 12 9 d 15 8 d 16 5 d 15 2 d 28 -2 d 28 -3 d 15 -5 d 44 -22 d 13 -3 d 18 -2 d 9 -4
+ d 3 -2 d 10 -10 d 33 -42 d 43 -53 d 43 -56 d 33 -44 d 10 -15 d 43 -68 d 44 -63 d 35 -57 d 42 -69 d 9 -16 d 86 -157 d 23 -34 d 23 -31 d 23 -27 d 17 -20 d 15 -13 d 23 -17 d 30 -20 d 16 -14 d 3 -3 d 15 -17 d 34 -46 d 21 -29 d 14 -14 d 2 -2 d 17 -14 d
+ 20 -12 d 24 -12 d 25 -10 d 27 -10 d 45 -10 d 14 -3 d 45 -7 d 42 -4 d s [] 0 sd 3 lw 0 0 1 c 379 222 422 289 465 450 508 655 552 916 595 1073 638 1122 681 1174 724 1234 767 1256 810 1256 853 1248 897 1226 940 1215 983 1163 1026 1110 1069 1054 1112
+ 995 1155 927 1199 864 1285 722 1371 565 1457 453 1544 386 1630 278 1716 230 1802 207 1889 196 28 { m21} R black
+ gsave  1371 971
+ t 0 r 0 0 m /Helvetica-Bold findfont 72 sf 0 0 m (PMT of Pixel 123) show  gr  [] 0 sd 3 lw 0.95 0.95 0.95 c 1812 1170 228 192 bf 1 1 1 c 228 192 m 2 2 d 1166 Y 1808 X 2 2 d -1812 X -1170 Y f 0.665 0.665 0.665 c 228 192 m 2 2 d 1808 X 1166 Y 2 2 d
+ -1170 Y -1812 X f [] 0 sd 3 lw black 228 192 m 1812 X s [] 0 sd 3 lw 2040 192 m 1170 Y s [] 0 sd 3 lw 2040 1362 m -1812 X s [] 0 sd 3 lw 228 1362 m -1170 Y s [] 0 sd 3 lw 1 1 1 c black [] 0 sd 3 lw 228 192 m 1812 X s [] 0 sd 3 lw [] 0 sd 3 lw 228
+ 192 m 1812 X s s
+ gsave  1900 72
+ t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m ( [nm]) show  gr 
+ gsave  1867 72
+ t 0 r 0 0 m /Symbol findfont 56 sf 0 0 m (l) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 336 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 379 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 422 211 m -19 Y s s [] 0 sd 3
+ lw [] 0 sd 3 lw 465 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 508 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 552 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 595 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 638 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 681
+ 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 724 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 767 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 810 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 853 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 897 211 m -19 Y s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 940 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 983 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1026 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1069 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1112 211 m -19 Y s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 1155 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1199 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1242 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1328 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw
+ 1371 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1414 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1457 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1500 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1544 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1587 229 m -37
+ Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1630 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1673 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1716 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1759 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1802 229 m -37 Y s s [] 0 sd
+ 3 lw [] 0 sd 3 lw 1846 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1889 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1932 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1975 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3
+ lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 250 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s
+ /xs 0 def (250) /Helvetica-Bold 56 stwn  gsave  293 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (250) show  gr 
+ /xs 0 def (300) /Helvetica-Bold 56 stwn  gsave  508 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (300) show  gr 
+ /xs 0 def (350) /Helvetica-Bold 56 stwn  gsave  724 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (350) show  gr 
+ /xs 0 def (400) /Helvetica-Bold 56 stwn  gsave  940 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (400) show  gr 
+ /xs 0 def (450) /Helvetica-Bold 56 stwn  gsave  1155 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (450) show  gr 
+ /xs 0 def (500) /Helvetica-Bold 56 stwn  gsave  1371 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (500) show  gr 
+ /xs 0 def (550) /Helvetica-Bold 56 stwn  gsave  1587 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (550) show  gr 
+ /xs 0 def (600) /Helvetica-Bold 56 stwn  gsave  1802 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (600) show  gr 
+ /xs 0 def (650) /Helvetica-Bold 56 stwn  gsave  2018 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (650) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 228 192 m 1170 Y s s
+ gsave  104 1189
+ t 90 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (qe [%]) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 280 192 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 233 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 273 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 314 m -26 X
+ s s [] 0 sd 3 lw [] 0 sd 3 lw 254 354 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 394 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 435 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 475 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 516 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 254 556 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 597 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 637 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 678 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 718 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254
+ 759 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 799 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 839 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 880 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 920 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 961 m -26 X s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 280 1001 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1042 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1082 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1123 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1163 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1244 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1284 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1325 m -26 X s s
+ /xs 0 def (0) /Helvetica-Bold 56 stwn  gsave  217 169
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show  gr 
+ /xs 0 def (5) /Helvetica-Bold 56 stwn  gsave  217 371
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show  gr 
+ /xs 0 def (10) /Helvetica-Bold 56 stwn  gsave  217 573
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show  gr 
+ /xs 0 def (15) /Helvetica-Bold 56 stwn  gsave  217 776
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (15) show  gr 
+ /xs 0 def (20) /Helvetica-Bold 56 stwn  gsave  217 978
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show  gr 
+ /xs 0 def (25) /Helvetica-Bold 56 stwn  gsave  217 1180
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (25) show  gr  1 0 0 c [] 0 sd 9 lw 0.95 0.95 0.95 c 0 0 1 c [] 0 sd 9 lw 1 0 0 c 379 222 m 8 6 d 9 9 d 8 14 d 8 15 d 8 19 d 2 4 d 7 20 d 8 25 d 8 33 d 11 44 d 9 39 d 14 61 d 11 50 d 10 51
+ d 8 43 d 6 34 d 9 52 d 14 91 d 6 41 d 6 29 d 3 14 d 8 39 d 8 33 d 9 32 d 7 23 d 7 20 d 4 10 d 5 12 d 7 10 d 9 9 d 20 15 d 2 3 d 34 41 d 9 11 d 17 24 d 15 23 d 11 13 d 12 9 d 15 8 d 16 5 d 15 2 d 28 -2 d 28 -3 d 15 -5 d 44 -22 d 13 -3 d 18 -2 d 9 -4
+ d 3 -2 d 10 -10 d 33 -42 d 43 -53 d 43 -56 d 33 -44 d 10 -15 d 43 -68 d 44 -63 d 35 -57 d 42 -69 d 9 -16 d 86 -157 d 23 -34 d 23 -31 d 23 -27 d 17 -20 d 15 -13 d 23 -17 d 30 -20 d 16 -14 d 3 -3 d 15 -17 d 34 -46 d 21 -29 d 14 -14 d 2 -2 d 17 -14 d
+ 20 -12 d 24 -12 d 25 -10 d 27 -10 d 45 -10 d 14 -3 d 45 -7 d 42 -4 d s [] 0 sd 3 lw 0 0 1 c 379 222 422 289 465 450 508 655 552 916 595 1073 638 1122 681 1174 724 1234 767 1256 810 1256 853 1248 897 1226 940 1215 983 1163 1026 1110 1069 1054 1112
+ 995 1155 927 1199 864 1285 722 1371 565 1457 453 1544 386 1630 278 1716 230 1802 207 1889 196 28 { m21} R black
+ gsave  1371 971
+ t 0 r 0 0 m /Helvetica-Bold findfont 72 sf 0 0 m (PMT of Pixel 123) show  gr  [] 0 sd 3 lw 0.95 0.95 0.95 c 1812 1170 228 192 bf 1 1 1 c 228 192 m 2 2 d 1166 Y 1808 X 2 2 d -1812 X -1170 Y f 0.665 0.665 0.665 c 228 192 m 2 2 d 1808 X 1166 Y 2 2 d
+ -1170 Y -1812 X f [] 0 sd 3 lw black 228 192 m 1812 X s [] 0 sd 3 lw 2040 192 m 1170 Y s [] 0 sd 3 lw 2040 1362 m -1812 X s [] 0 sd 3 lw 228 1362 m -1170 Y s [] 0 sd 3 lw 1 1 1 c black [] 0 sd 3 lw 228 192 m 1812 X s [] 0 sd 3 lw [] 0 sd 3 lw 228
+ 192 m 1812 X s s
+ gsave  1900 72
+ t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m ( [nm]) show  gr 
+ gsave  1867 72
+ t 0 r 0 0 m /Symbol findfont 56 sf 0 0 m (l) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 336 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 379 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 422 211 m -19 Y s s [] 0 sd 3
+ lw [] 0 sd 3 lw 465 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 508 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 552 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 595 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 638 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 681
+ 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 724 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 767 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 810 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 853 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 897 211 m -19 Y s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 940 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 983 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1026 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1069 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1112 211 m -19 Y s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 1155 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1199 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1242 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1328 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw
+ 1371 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1414 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1457 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1500 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1544 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1587 229 m -37
+ Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1630 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1673 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1716 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1759 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1802 229 m -37 Y s s [] 0 sd
+ 3 lw [] 0 sd 3 lw 1846 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1889 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1932 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1975 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3
+ lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 250 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s
+ /xs 0 def (250) /Helvetica-Bold 56 stwn  gsave  293 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (250) show  gr 
+ /xs 0 def (300) /Helvetica-Bold 56 stwn  gsave  508 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (300) show  gr 
+ /xs 0 def (350) /Helvetica-Bold 56 stwn  gsave  724 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (350) show  gr 
+ /xs 0 def (400) /Helvetica-Bold 56 stwn  gsave  940 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (400) show  gr 
+ /xs 0 def (450) /Helvetica-Bold 56 stwn  gsave  1155 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (450) show  gr 
+ /xs 0 def (500) /Helvetica-Bold 56 stwn  gsave  1371 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (500) show  gr 
+ /xs 0 def (550) /Helvetica-Bold 56 stwn  gsave  1587 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (550) show  gr 
+ /xs 0 def (600) /Helvetica-Bold 56 stwn  gsave  1802 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (600) show  gr 
+ /xs 0 def (650) /Helvetica-Bold 56 stwn  gsave  2018 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (650) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 228 192 m 1170 Y s s
+ gsave  104 1189
+ t 90 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (qe [%]) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 280 192 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 233 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 273 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 314 m -26 X
+ s s [] 0 sd 3 lw [] 0 sd 3 lw 254 354 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 394 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 435 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 475 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 516 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 254 556 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 597 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 637 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 678 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 718 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254
+ 759 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 799 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 839 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 880 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 920 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 961 m -26 X s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 280 1001 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1042 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1082 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1123 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1163 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1244 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1284 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1325 m -26 X s s
+ /xs 0 def (0) /Helvetica-Bold 56 stwn  gsave  217 169
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show  gr 
+ /xs 0 def (5) /Helvetica-Bold 56 stwn  gsave  217 371
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show  gr 
+ /xs 0 def (10) /Helvetica-Bold 56 stwn  gsave  217 573
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show  gr 
+ /xs 0 def (15) /Helvetica-Bold 56 stwn  gsave  217 776
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (15) show  gr 
+ /xs 0 def (20) /Helvetica-Bold 56 stwn  gsave  217 978
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show  gr 
+ /xs 0 def (25) /Helvetica-Bold 56 stwn  gsave  217 1180
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (25) show  gr  1 0 0 c [] 0 sd 9 lw 0.95 0.95 0.95 c 0 0 1 c [] 0 sd 9 lw 1 0 0 c 379 222 m 8 6 d 9 9 d 8 14 d 8 15 d 8 19 d 2 4 d 7 20 d 8 25 d 8 33 d 11 44 d 9 39 d 14 61 d 11 50 d 10 51
+ d 8 43 d 6 34 d 9 52 d 14 91 d 6 41 d 6 29 d 3 14 d 8 39 d 8 33 d 9 32 d 7 23 d 7 20 d 4 10 d 5 12 d 7 10 d 9 9 d 20 15 d 2 3 d 34 41 d 9 11 d 17 24 d 15 23 d 11 13 d 12 9 d 15 8 d 16 5 d 15 2 d 28 -2 d 28 -3 d 15 -5 d 44 -22 d 13 -3 d 18 -2 d 9 -4
+ d 3 -2 d 10 -10 d 33 -42 d 43 -53 d 43 -56 d 33 -44 d 10 -15 d 43 -68 d 44 -63 d 35 -57 d 42 -69 d 9 -16 d 86 -157 d 23 -34 d 23 -31 d 23 -27 d 17 -20 d 15 -13 d 23 -17 d 30 -20 d 16 -14 d 3 -3 d 15 -17 d 34 -46 d 21 -29 d 14 -14 d 2 -2 d 17 -14 d
+ 20 -12 d 24 -12 d 25 -10 d 27 -10 d 45 -10 d 14 -3 d 45 -7 d 42 -4 d s [] 0 sd 3 lw 0 0 1 c 379 222 422 289 465 450 508 655 552 916 595 1073 638 1122 681 1174 724 1234 767 1256 810 1256 853 1248 897 1226 940 1215 983 1163 1026 1110 1069 1054 1112
+ 995 1155 927 1199 864 1285 722 1371 565 1457 453 1544 386 1630 278 1716 230 1802 207 1889 196 28 { m21} R black
+ gsave  1371 971
+ t 0 r 0 0 m /Helvetica-Bold findfont 72 sf 0 0 m (PMT of Pixel 123) show  gr  [] 0 sd 3 lw 0.95 0.95 0.95 c 1812 1170 228 192 bf 1 1 1 c 228 192 m 2 2 d 1166 Y 1808 X 2 2 d -1812 X -1170 Y f 0.665 0.665 0.665 c 228 192 m 2 2 d 1808 X 1166 Y 2 2 d
+ -1170 Y -1812 X f [] 0 sd 3 lw black 228 192 m 1812 X s [] 0 sd 3 lw 2040 192 m 1170 Y s [] 0 sd 3 lw 2040 1362 m -1812 X s [] 0 sd 3 lw 228 1362 m -1170 Y s [] 0 sd 3 lw 1 1 1 c black [] 0 sd 3 lw 228 192 m 1812 X s [] 0 sd 3 lw [] 0 sd 3 lw 228
+ 192 m 1812 X s s
+ gsave  1900 72
+ t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m ( [nm]) show  gr 
+ gsave  1867 72
+ t 0 r 0 0 m /Symbol findfont 56 sf 0 0 m (l) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 336 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 379 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 422 211 m -19 Y s s [] 0 sd 3
+ lw [] 0 sd 3 lw 465 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 508 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 552 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 595 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 638 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 681
+ 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 724 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 767 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 810 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 853 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 897 211 m -19 Y s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 940 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 983 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1026 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1069 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1112 211 m -19 Y s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 1155 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1199 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1242 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1328 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw
+ 1371 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1414 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1457 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1500 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1544 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1587 229 m -37
+ Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1630 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1673 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1716 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1759 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1802 229 m -37 Y s s [] 0 sd
+ 3 lw [] 0 sd 3 lw 1846 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1889 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1932 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1975 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3
+ lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 250 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s
+ /xs 0 def (250) /Helvetica-Bold 56 stwn  gsave  293 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (250) show  gr 
+ /xs 0 def (300) /Helvetica-Bold 56 stwn  gsave  508 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (300) show  gr 
+ /xs 0 def (350) /Helvetica-Bold 56 stwn  gsave  724 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (350) show  gr 
+ /xs 0 def (400) /Helvetica-Bold 56 stwn  gsave  940 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (400) show  gr 
+ /xs 0 def (450) /Helvetica-Bold 56 stwn  gsave  1155 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (450) show  gr 
+ /xs 0 def (500) /Helvetica-Bold 56 stwn  gsave  1371 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (500) show  gr 
+ /xs 0 def (550) /Helvetica-Bold 56 stwn  gsave  1587 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (550) show  gr 
+ /xs 0 def (600) /Helvetica-Bold 56 stwn  gsave  1802 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (600) show  gr 
+ /xs 0 def (650) /Helvetica-Bold 56 stwn  gsave  2018 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (650) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 228 192 m 1170 Y s s
+ gsave  104 1189
+ t 90 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (qe [%]) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 280 192 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 233 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 273 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 314 m -26 X
+ s s [] 0 sd 3 lw [] 0 sd 3 lw 254 354 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 394 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 435 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 475 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 516 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 254 556 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 597 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 637 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 678 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 718 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254
+ 759 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 799 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 839 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 880 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 920 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 961 m -26 X s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 280 1001 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1042 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1082 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1123 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1163 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1244 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1284 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1325 m -26 X s s
+ /xs 0 def (0) /Helvetica-Bold 56 stwn  gsave  217 169
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show  gr 
+ /xs 0 def (5) /Helvetica-Bold 56 stwn  gsave  217 371
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show  gr 
+ /xs 0 def (10) /Helvetica-Bold 56 stwn  gsave  217 573
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show  gr 
+ /xs 0 def (15) /Helvetica-Bold 56 stwn  gsave  217 776
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (15) show  gr 
+ /xs 0 def (20) /Helvetica-Bold 56 stwn  gsave  217 978
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show  gr 
+ /xs 0 def (25) /Helvetica-Bold 56 stwn  gsave  217 1180
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (25) show  gr  1 0 0 c [] 0 sd 9 lw 0.95 0.95 0.95 c 0 0 1 c [] 0 sd 9 lw 1 0 0 c 379 222 m 8 6 d 9 9 d 8 14 d 8 15 d 8 19 d 2 4 d 7 20 d 8 25 d 8 33 d 11 44 d 9 39 d 14 61 d 11 50 d 10 51
+ d 8 43 d 6 34 d 9 52 d 14 91 d 6 41 d 6 29 d 3 14 d 8 39 d 8 33 d 9 32 d 7 23 d 7 20 d 4 10 d 5 12 d 7 10 d 9 9 d 20 15 d 2 3 d 34 41 d 9 11 d 17 24 d 15 23 d 11 13 d 12 9 d 15 8 d 16 5 d 15 2 d 28 -2 d 28 -3 d 15 -5 d 44 -22 d 13 -3 d 18 -2 d 9 -4
+ d 3 -2 d 10 -10 d 33 -42 d 43 -53 d 43 -56 d 33 -44 d 10 -15 d 43 -68 d 44 -63 d 35 -57 d 42 -69 d 9 -16 d 86 -157 d 23 -34 d 23 -31 d 23 -27 d 17 -20 d 15 -13 d 23 -17 d 30 -20 d 16 -14 d 3 -3 d 15 -17 d 34 -46 d 21 -29 d 14 -14 d 2 -2 d 17 -14 d
+ 20 -12 d 24 -12 d 25 -10 d 27 -10 d 45 -10 d 14 -3 d 45 -7 d 42 -4 d s [] 0 sd 3 lw 0 0 1 c 379 222 422 289 465 450 508 655 552 916 595 1073 638 1122 681 1174 724 1234 767 1256 810 1256 853 1248 897 1226 940 1215 983 1163 1026 1110 1069 1054 1112
+ 995 1155 927 1199 864 1285 722 1371 565 1457 453 1544 386 1630 278 1716 230 1802 207 1889 196 28 { m21} R black
+ gsave  1371 971
+ t 0 r 0 0 m /Helvetica-Bold findfont 72 sf 0 0 m (PMT of Pixel 123) show  gr  [] 0 sd 3 lw 0.95 0.95 0.95 c 1812 1170 228 192 bf 1 1 1 c 228 192 m 2 2 d 1166 Y 1808 X 2 2 d -1812 X -1170 Y f 0.665 0.665 0.665 c 228 192 m 2 2 d 1808 X 1166 Y 2 2 d
+ -1170 Y -1812 X f [] 0 sd 3 lw black 228 192 m 1812 X s [] 0 sd 3 lw 2040 192 m 1170 Y s [] 0 sd 3 lw 2040 1362 m -1812 X s [] 0 sd 3 lw 228 1362 m -1170 Y s [] 0 sd 3 lw 1 1 1 c black [] 0 sd 3 lw 228 192 m 1812 X s [] 0 sd 3 lw [] 0 sd 3 lw 228
+ 192 m 1812 X s s
+ gsave  1900 72
+ t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m ( [nm]) show  gr 
+ gsave  1867 72
+ t 0 r 0 0 m /Symbol findfont 56 sf 0 0 m (l) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 336 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 379 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 422 211 m -19 Y s s [] 0 sd 3
+ lw [] 0 sd 3 lw 465 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 508 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 552 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 595 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 638 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 681
+ 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 724 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 767 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 810 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 853 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 897 211 m -19 Y s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 940 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 983 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1026 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1069 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1112 211 m -19 Y s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 1155 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1199 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1242 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1328 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw
+ 1371 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1414 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1457 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1500 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1544 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1587 229 m -37
+ Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1630 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1673 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1716 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1759 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1802 229 m -37 Y s s [] 0 sd
+ 3 lw [] 0 sd 3 lw 1846 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1889 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1932 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1975 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3
+ lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 250 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s
+ /xs 0 def (250) /Helvetica-Bold 56 stwn  gsave  293 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (250) show  gr 
+ /xs 0 def (300) /Helvetica-Bold 56 stwn  gsave  508 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (300) show  gr 
+ /xs 0 def (350) /Helvetica-Bold 56 stwn  gsave  724 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (350) show  gr 
+ /xs 0 def (400) /Helvetica-Bold 56 stwn  gsave  940 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (400) show  gr 
+ /xs 0 def (450) /Helvetica-Bold 56 stwn  gsave  1155 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (450) show  gr 
+ /xs 0 def (500) /Helvetica-Bold 56 stwn  gsave  1371 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (500) show  gr 
+ /xs 0 def (550) /Helvetica-Bold 56 stwn  gsave  1587 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (550) show  gr 
+ /xs 0 def (600) /Helvetica-Bold 56 stwn  gsave  1802 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (600) show  gr 
+ /xs 0 def (650) /Helvetica-Bold 56 stwn  gsave  2018 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (650) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 228 192 m 1170 Y s s
+ gsave  104 1189
+ t 90 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (qe [%]) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 280 192 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 233 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 273 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 314 m -26 X
+ s s [] 0 sd 3 lw [] 0 sd 3 lw 254 354 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 394 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 435 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 475 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 516 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 254 556 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 597 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 637 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 678 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 718 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254
+ 759 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 799 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 839 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 880 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 920 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 961 m -26 X s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 280 1001 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1042 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1082 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1123 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1163 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1244 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1284 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1325 m -26 X s s
+ /xs 0 def (0) /Helvetica-Bold 56 stwn  gsave  217 169
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show  gr 
+ /xs 0 def (5) /Helvetica-Bold 56 stwn  gsave  217 371
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show  gr 
+ /xs 0 def (10) /Helvetica-Bold 56 stwn  gsave  217 573
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show  gr 
+ /xs 0 def (15) /Helvetica-Bold 56 stwn  gsave  217 776
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (15) show  gr 
+ /xs 0 def (20) /Helvetica-Bold 56 stwn  gsave  217 978
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show  gr 
+ /xs 0 def (25) /Helvetica-Bold 56 stwn  gsave  217 1180
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (25) show  gr  1 0 0 c [] 0 sd 9 lw 0.95 0.95 0.95 c 0 0 1 c [] 0 sd 9 lw 1 0 0 c 379 222 m 8 6 d 9 9 d 8 14 d 8 15 d 8 19 d 2 4 d 7 20 d 8 25 d 8 33 d 11 44 d 9 39 d 14 61 d 11 50 d 10 51
+ d 8 43 d 6 34 d 9 52 d 14 91 d 6 41 d 6 29 d 3 14 d 8 39 d 8 33 d 9 32 d 7 23 d 7 20 d 4 10 d 5 12 d 7 10 d 9 9 d 20 15 d 2 3 d 34 41 d 9 11 d 17 24 d 15 23 d 11 13 d 12 9 d 15 8 d 16 5 d 15 2 d 28 -2 d 28 -3 d 15 -5 d 44 -22 d 13 -3 d 18 -2 d 9 -4
+ d 3 -2 d 10 -10 d 33 -42 d 43 -53 d 43 -56 d 33 -44 d 10 -15 d 43 -68 d 44 -63 d 35 -57 d 42 -69 d 9 -16 d 86 -157 d 23 -34 d 23 -31 d 23 -27 d 17 -20 d 15 -13 d 23 -17 d 30 -20 d 16 -14 d 3 -3 d 15 -17 d 34 -46 d 21 -29 d 14 -14 d 2 -2 d 17 -14 d
+ 20 -12 d 24 -12 d 25 -10 d 27 -10 d 45 -10 d 14 -3 d 45 -7 d 42 -4 d s [] 0 sd 3 lw 0 0 1 c 379 222 422 289 465 450 508 655 552 916 595 1073 638 1122 681 1174 724 1234 767 1256 810 1256 853 1248 897 1226 940 1215 983 1163 1026 1110 1069 1054 1112
+ 995 1155 927 1199 864 1285 722 1371 565 1457 453 1544 386 1630 278 1716 230 1802 207 1889 196 28 { m21} R black
+ gsave  1371 971
+ t 0 r 0 0 m /Helvetica-Bold findfont 72 sf 0 0 m (PMT of Pixel 123) show  gr  [] 0 sd 3 lw 0.95 0.95 0.95 c 1812 1170 228 192 bf 1 1 1 c 228 192 m 2 2 d 1166 Y 1808 X 2 2 d -1812 X -1170 Y f 0.665 0.665 0.665 c 228 192 m 2 2 d 1808 X 1166 Y 2 2 d
+ -1170 Y -1812 X f [] 0 sd 3 lw black 228 192 m 1812 X s [] 0 sd 3 lw 2040 192 m 1170 Y s [] 0 sd 3 lw 2040 1362 m -1812 X s [] 0 sd 3 lw 228 1362 m -1170 Y s [] 0 sd 3 lw 1 1 1 c black [] 0 sd 3 lw 228 192 m 1812 X s [] 0 sd 3 lw [] 0 sd 3 lw 228
+ 192 m 1812 X s s
+ gsave  1900 72
+ t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m ( [nm]) show  gr 
+ gsave  1867 72
+ t 0 r 0 0 m /Symbol findfont 56 sf 0 0 m (l) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 336 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 379 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 422 211 m -19 Y s s [] 0 sd 3
+ lw [] 0 sd 3 lw 465 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 508 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 552 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 595 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 638 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 681
+ 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 724 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 767 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 810 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 853 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 897 211 m -19 Y s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 940 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 983 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1026 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1069 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1112 211 m -19 Y s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 1155 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1199 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1242 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1328 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw
+ 1371 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1414 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1457 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1500 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1544 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1587 229 m -37
+ Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1630 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1673 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1716 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1759 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1802 229 m -37 Y s s [] 0 sd
+ 3 lw [] 0 sd 3 lw 1846 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1889 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1932 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1975 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3
+ lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 250 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s
+ /xs 0 def (250) /Helvetica-Bold 56 stwn  gsave  293 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (250) show  gr 
+ /xs 0 def (300) /Helvetica-Bold 56 stwn  gsave  508 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (300) show  gr 
+ /xs 0 def (350) /Helvetica-Bold 56 stwn  gsave  724 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (350) show  gr 
+ /xs 0 def (400) /Helvetica-Bold 56 stwn  gsave  940 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (400) show  gr 
+ /xs 0 def (450) /Helvetica-Bold 56 stwn  gsave  1155 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (450) show  gr 
+ /xs 0 def (500) /Helvetica-Bold 56 stwn  gsave  1371 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (500) show  gr 
+ /xs 0 def (550) /Helvetica-Bold 56 stwn  gsave  1587 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (550) show  gr 
+ /xs 0 def (600) /Helvetica-Bold 56 stwn  gsave  1802 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (600) show  gr 
+ /xs 0 def (650) /Helvetica-Bold 56 stwn  gsave  2018 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (650) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 228 192 m 1170 Y s s
+ gsave  104 1189
+ t 90 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (qe [%]) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 280 192 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 233 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 273 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 314 m -26 X
+ s s [] 0 sd 3 lw [] 0 sd 3 lw 254 354 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 394 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 435 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 475 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 516 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 254 556 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 597 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 637 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 678 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 718 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254
+ 759 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 799 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 839 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 880 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 920 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 961 m -26 X s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 280 1001 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1042 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1082 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1123 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1163 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1244 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1284 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1325 m -26 X s s
+ /xs 0 def (0) /Helvetica-Bold 56 stwn  gsave  217 169
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show  gr 
+ /xs 0 def (5) /Helvetica-Bold 56 stwn  gsave  217 371
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show  gr 
+ /xs 0 def (10) /Helvetica-Bold 56 stwn  gsave  217 573
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show  gr 
+ /xs 0 def (15) /Helvetica-Bold 56 stwn  gsave  217 776
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (15) show  gr 
+ /xs 0 def (20) /Helvetica-Bold 56 stwn  gsave  217 978
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show  gr 
+ /xs 0 def (25) /Helvetica-Bold 56 stwn  gsave  217 1180
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (25) show  gr  1 0 0 c [] 0 sd 9 lw 0.95 0.95 0.95 c 0 0 1 c [] 0 sd 9 lw 1 0 0 c 379 222 m 8 6 d 9 9 d 8 14 d 8 15 d 8 19 d 2 4 d 7 20 d 8 25 d 8 33 d 11 44 d 9 39 d 14 61 d 11 50 d 10 51
+ d 8 43 d 6 34 d 9 52 d 14 91 d 6 41 d 6 29 d 3 14 d 8 39 d 8 33 d 9 32 d 7 23 d 7 20 d 4 10 d 5 12 d 7 10 d 9 9 d 20 15 d 2 3 d 34 41 d 9 11 d 17 24 d 15 23 d 11 13 d 12 9 d 15 8 d 16 5 d 15 2 d 28 -2 d 28 -3 d 15 -5 d 44 -22 d 13 -3 d 18 -2 d 9 -4
+ d 3 -2 d 10 -10 d 33 -42 d 43 -53 d 43 -56 d 33 -44 d 10 -15 d 43 -68 d 44 -63 d 35 -57 d 42 -69 d 9 -16 d 86 -157 d 23 -34 d 23 -31 d 23 -27 d 17 -20 d 15 -13 d 23 -17 d 30 -20 d 16 -14 d 3 -3 d 15 -17 d 34 -46 d 21 -29 d 14 -14 d 2 -2 d 17 -14 d
+ 20 -12 d 24 -12 d 25 -10 d 27 -10 d 45 -10 d 14 -3 d 45 -7 d 42 -4 d s [] 0 sd 3 lw 0 0 1 c 379 222 422 289 465 450 508 655 552 916 595 1073 638 1122 681 1174 724 1234 767 1256 810 1256 853 1248 897 1226 940 1215 983 1163 1026 1110 1069 1054 1112
+ 995 1155 927 1199 864 1285 722 1371 565 1457 453 1544 386 1630 278 1716 230 1802 207 1889 196 28 { m21} R black
+ gsave  1371 971
+ t 0 r 0 0 m /Helvetica-Bold findfont 72 sf 0 0 m (PMT of Pixel 123) show  gr  [] 0 sd 3 lw 0.95 0.95 0.95 c 1812 1170 228 192 bf 1 1 1 c 228 192 m 2 2 d 1166 Y 1808 X 2 2 d -1812 X -1170 Y f 0.665 0.665 0.665 c 228 192 m 2 2 d 1808 X 1166 Y 2 2 d
+ -1170 Y -1812 X f [] 0 sd 3 lw black 228 192 m 1812 X s [] 0 sd 3 lw 2040 192 m 1170 Y s [] 0 sd 3 lw 2040 1362 m -1812 X s [] 0 sd 3 lw 228 1362 m -1170 Y s [] 0 sd 3 lw 1 1 1 c black [] 0 sd 3 lw 228 192 m 1812 X s [] 0 sd 3 lw [] 0 sd 3 lw 228
+ 192 m 1812 X s s
+ gsave  1900 72
+ t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m ( [nm]) show  gr 
+ gsave  1867 72
+ t 0 r 0 0 m /Symbol findfont 56 sf 0 0 m (l) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 336 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 379 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 422 211 m -19 Y s s [] 0 sd 3
+ lw [] 0 sd 3 lw 465 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 508 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 552 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 595 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 638 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 681
+ 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 724 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 767 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 810 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 853 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 897 211 m -19 Y s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 940 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 983 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1026 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1069 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1112 211 m -19 Y s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 1155 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1199 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1242 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1328 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw
+ 1371 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1414 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1457 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1500 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1544 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1587 229 m -37
+ Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1630 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1673 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1716 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1759 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1802 229 m -37 Y s s [] 0 sd
+ 3 lw [] 0 sd 3 lw 1846 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1889 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1932 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1975 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3
+ lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 250 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s
+ /xs 0 def (250) /Helvetica-Bold 56 stwn  gsave  293 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (250) show  gr 
+ /xs 0 def (300) /Helvetica-Bold 56 stwn  gsave  508 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (300) show  gr 
+ /xs 0 def (350) /Helvetica-Bold 56 stwn  gsave  724 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (350) show  gr 
+ /xs 0 def (400) /Helvetica-Bold 56 stwn  gsave  940 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (400) show  gr 
+ /xs 0 def (450) /Helvetica-Bold 56 stwn  gsave  1155 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (450) show  gr 
+ /xs 0 def (500) /Helvetica-Bold 56 stwn  gsave  1371 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (500) show  gr 
+ /xs 0 def (550) /Helvetica-Bold 56 stwn  gsave  1587 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (550) show  gr 
+ /xs 0 def (600) /Helvetica-Bold 56 stwn  gsave  1802 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (600) show  gr 
+ /xs 0 def (650) /Helvetica-Bold 56 stwn  gsave  2018 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (650) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 228 192 m 1170 Y s s
+ gsave  104 1189
+ t 90 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (qe [%]) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 280 192 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 233 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 273 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 314 m -26 X
+ s s [] 0 sd 3 lw [] 0 sd 3 lw 254 354 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 394 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 435 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 475 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 516 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 254 556 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 597 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 637 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 678 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 718 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254
+ 759 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 799 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 839 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 880 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 920 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 961 m -26 X s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 280 1001 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1042 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1082 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1123 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1163 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1244 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1284 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1325 m -26 X s s
+ /xs 0 def (0) /Helvetica-Bold 56 stwn  gsave  217 169
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show  gr 
+ /xs 0 def (5) /Helvetica-Bold 56 stwn  gsave  217 371
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show  gr 
+ /xs 0 def (10) /Helvetica-Bold 56 stwn  gsave  217 573
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show  gr 
+ /xs 0 def (15) /Helvetica-Bold 56 stwn  gsave  217 776
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (15) show  gr 
+ /xs 0 def (20) /Helvetica-Bold 56 stwn  gsave  217 978
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show  gr 
+ /xs 0 def (25) /Helvetica-Bold 56 stwn  gsave  217 1180
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (25) show  gr  1 0 0 c [] 0 sd 9 lw 0.95 0.95 0.95 c 0 0 1 c [] 0 sd 9 lw 1 0 0 c 379 222 m 8 6 d 9 9 d 8 14 d 8 15 d 8 19 d 2 4 d 7 20 d 8 25 d 8 33 d 11 44 d 9 39 d 14 61 d 11 50 d 10 51
+ d 8 43 d 6 34 d 9 52 d 14 91 d 6 41 d 6 29 d 3 14 d 8 39 d 8 33 d 9 32 d 7 23 d 7 20 d 4 10 d 5 12 d 7 10 d 9 9 d 20 15 d 2 3 d 34 41 d 9 11 d 17 24 d 15 23 d 11 13 d 12 9 d 15 8 d 16 5 d 15 2 d 28 -2 d 28 -3 d 15 -5 d 44 -22 d 13 -3 d 18 -2 d 9 -4
+ d 3 -2 d 10 -10 d 33 -42 d 43 -53 d 43 -56 d 33 -44 d 10 -15 d 43 -68 d 44 -63 d 35 -57 d 42 -69 d 9 -16 d 86 -157 d 23 -34 d 23 -31 d 23 -27 d 17 -20 d 15 -13 d 23 -17 d 30 -20 d 16 -14 d 3 -3 d 15 -17 d 34 -46 d 21 -29 d 14 -14 d 2 -2 d 17 -14 d
+ 20 -12 d 24 -12 d 25 -10 d 27 -10 d 45 -10 d 14 -3 d 45 -7 d 42 -4 d s [] 0 sd 3 lw 0 0 1 c 379 222 422 289 465 450 508 655 552 916 595 1073 638 1122 681 1174 724 1234 767 1256 810 1256 853 1248 897 1226 940 1215 983 1163 1026 1110 1069 1054 1112
+ 995 1155 927 1199 864 1285 722 1371 565 1457 453 1544 386 1630 278 1716 230 1802 207 1889 196 28 { m21} R black
+ gsave  1371 971
+ t 0 r 0 0 m /Helvetica-Bold findfont 72 sf 0 0 m (PMT of Pixel 123) show  gr  [] 0 sd 3 lw 0.95 0.95 0.95 c 1812 1170 228 192 bf 1 1 1 c 228 192 m 2 2 d 1166 Y 1808 X 2 2 d -1812 X -1170 Y f 0.665 0.665 0.665 c 228 192 m 2 2 d 1808 X 1166 Y 2 2 d
+ -1170 Y -1812 X f [] 0 sd 3 lw black 228 192 m 1812 X s [] 0 sd 3 lw 2040 192 m 1170 Y s [] 0 sd 3 lw 2040 1362 m -1812 X s [] 0 sd 3 lw 228 1362 m -1170 Y s [] 0 sd 3 lw 1 1 1 c black [] 0 sd 3 lw 228 192 m 1812 X s [] 0 sd 3 lw [] 0 sd 3 lw 228
+ 192 m 1812 X s s
+ gsave  1900 72
+ t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m ( [nm]) show  gr 
+ gsave  1867 72
+ t 0 r 0 0 m /Symbol findfont 56 sf 0 0 m (l) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 336 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 379 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 422 211 m -19 Y s s [] 0 sd 3
+ lw [] 0 sd 3 lw 465 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 508 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 552 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 595 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 638 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 681
+ 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 724 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 767 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 810 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 853 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 897 211 m -19 Y s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 940 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 983 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1026 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1069 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1112 211 m -19 Y s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 1155 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1199 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1242 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1328 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw
+ 1371 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1414 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1457 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1500 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1544 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1587 229 m -37
+ Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1630 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1673 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1716 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1759 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1802 229 m -37 Y s s [] 0 sd
+ 3 lw [] 0 sd 3 lw 1846 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1889 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1932 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1975 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3
+ lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 250 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s
+ /xs 0 def (250) /Helvetica-Bold 56 stwn  gsave  293 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (250) show  gr 
+ /xs 0 def (300) /Helvetica-Bold 56 stwn  gsave  508 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (300) show  gr 
+ /xs 0 def (350) /Helvetica-Bold 56 stwn  gsave  724 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (350) show  gr 
+ /xs 0 def (400) /Helvetica-Bold 56 stwn  gsave  940 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (400) show  gr 
+ /xs 0 def (450) /Helvetica-Bold 56 stwn  gsave  1155 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (450) show  gr 
+ /xs 0 def (500) /Helvetica-Bold 56 stwn  gsave  1371 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (500) show  gr 
+ /xs 0 def (550) /Helvetica-Bold 56 stwn  gsave  1587 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (550) show  gr 
+ /xs 0 def (600) /Helvetica-Bold 56 stwn  gsave  1802 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (600) show  gr 
+ /xs 0 def (650) /Helvetica-Bold 56 stwn  gsave  2018 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (650) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 228 192 m 1170 Y s s
+ gsave  104 1189
+ t 90 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (qe [%]) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 280 192 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 233 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 273 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 314 m -26 X
+ s s [] 0 sd 3 lw [] 0 sd 3 lw 254 354 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 394 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 435 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 475 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 516 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 254 556 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 597 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 637 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 678 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 718 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254
+ 759 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 799 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 839 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 880 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 920 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 961 m -26 X s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 280 1001 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1042 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1082 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1123 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1163 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1244 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1284 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1325 m -26 X s s
+ /xs 0 def (0) /Helvetica-Bold 56 stwn  gsave  217 169
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show  gr 
+ /xs 0 def (5) /Helvetica-Bold 56 stwn  gsave  217 371
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show  gr 
+ /xs 0 def (10) /Helvetica-Bold 56 stwn  gsave  217 573
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show  gr 
+ /xs 0 def (15) /Helvetica-Bold 56 stwn  gsave  217 776
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (15) show  gr 
+ /xs 0 def (20) /Helvetica-Bold 56 stwn  gsave  217 978
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show  gr 
+ /xs 0 def (25) /Helvetica-Bold 56 stwn  gsave  217 1180
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (25) show  gr  1 0 0 c [] 0 sd 9 lw 0.95 0.95 0.95 c 0 0 1 c [] 0 sd 9 lw 1 0 0 c 379 222 m 8 6 d 9 9 d 8 14 d 8 15 d 8 19 d 2 4 d 7 20 d 8 25 d 8 33 d 11 44 d 9 39 d 14 61 d 11 50 d 10 51
+ d 8 43 d 6 34 d 9 52 d 14 91 d 6 41 d 6 29 d 3 14 d 8 39 d 8 33 d 9 32 d 7 23 d 7 20 d 4 10 d 5 12 d 7 10 d 9 9 d 20 15 d 2 3 d 34 41 d 9 11 d 17 24 d 15 23 d 11 13 d 12 9 d 15 8 d 16 5 d 15 2 d 28 -2 d 28 -3 d 15 -5 d 44 -22 d 13 -3 d 18 -2 d 9 -4
+ d 3 -2 d 10 -10 d 33 -42 d 43 -53 d 43 -56 d 33 -44 d 10 -15 d 43 -68 d 44 -63 d 35 -57 d 42 -69 d 9 -16 d 86 -157 d 23 -34 d 23 -31 d 23 -27 d 17 -20 d 15 -13 d 23 -17 d 30 -20 d 16 -14 d 3 -3 d 15 -17 d 34 -46 d 21 -29 d 14 -14 d 2 -2 d 17 -14 d
+ 20 -12 d 24 -12 d 25 -10 d 27 -10 d 45 -10 d 14 -3 d 45 -7 d 42 -4 d s [] 0 sd 3 lw 0 0 1 c 379 222 422 289 465 450 508 655 552 916 595 1073 638 1122 681 1174 724 1234 767 1256 810 1256 853 1248 897 1226 940 1215 983 1163 1026 1110 1069 1054 1112
+ 995 1155 927 1199 864 1285 722 1371 565 1457 453 1544 386 1630 278 1716 230 1802 207 1889 196 28 { m21} R black
+ gsave  1371 971
+ t 0 r 0 0 m /Helvetica-Bold findfont 72 sf 0 0 m (PMT of Pixel 123) show  gr  [] 0 sd 3 lw 0.95 0.95 0.95 c 1812 1170 228 192 bf 1 1 1 c 228 192 m 2 2 d 1166 Y 1808 X 2 2 d -1812 X -1170 Y f 0.665 0.665 0.665 c 228 192 m 2 2 d 1808 X 1166 Y 2 2 d
+ -1170 Y -1812 X f [] 0 sd 3 lw black 228 192 m 1812 X s [] 0 sd 3 lw 2040 192 m 1170 Y s [] 0 sd 3 lw 2040 1362 m -1812 X s [] 0 sd 3 lw 228 1362 m -1170 Y s [] 0 sd 3 lw 1 1 1 c black [] 0 sd 3 lw 228 192 m 1812 X s [] 0 sd 3 lw [] 0 sd 3 lw 228
+ 192 m 1812 X s s
+ gsave  1900 72
+ t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m ( [nm]) show  gr 
+ gsave  1867 72
+ t 0 r 0 0 m /Symbol findfont 56 sf 0 0 m (l) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 336 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 379 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 422 211 m -19 Y s s [] 0 sd 3
+ lw [] 0 sd 3 lw 465 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 508 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 552 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 595 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 638 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 681
+ 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 724 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 767 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 810 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 853 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 897 211 m -19 Y s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 940 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 983 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1026 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1069 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1112 211 m -19 Y s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 1155 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1199 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1242 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1328 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw
+ 1371 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1414 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1457 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1500 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1544 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1587 229 m -37
+ Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1630 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1673 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1716 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1759 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1802 229 m -37 Y s s [] 0 sd
+ 3 lw [] 0 sd 3 lw 1846 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1889 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1932 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1975 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3
+ lw 293 229 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 250 211 m -19 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2018 229 m -37 Y s s
+ /xs 0 def (250) /Helvetica-Bold 56 stwn  gsave  293 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (250) show  gr 
+ /xs 0 def (300) /Helvetica-Bold 56 stwn  gsave  508 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (300) show  gr 
+ /xs 0 def (350) /Helvetica-Bold 56 stwn  gsave  724 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (350) show  gr 
+ /xs 0 def (400) /Helvetica-Bold 56 stwn  gsave  940 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (400) show  gr 
+ /xs 0 def (450) /Helvetica-Bold 56 stwn  gsave  1155 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (450) show  gr 
+ /xs 0 def (500) /Helvetica-Bold 56 stwn  gsave  1371 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (500) show  gr 
+ /xs 0 def (550) /Helvetica-Bold 56 stwn  gsave  1587 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (550) show  gr 
+ /xs 0 def (600) /Helvetica-Bold 56 stwn  gsave  1802 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (600) show  gr 
+ /xs 0 def (650) /Helvetica-Bold 56 stwn  gsave  2018 123
+ t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (650) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 228 192 m 1170 Y s s
+ gsave  104 1189
+ t 90 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (qe [%]) show  gr  [] 0 sd 3 lw [] 0 sd 3 lw 280 192 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 233 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 273 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 314 m -26 X
+ s s [] 0 sd 3 lw [] 0 sd 3 lw 254 354 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 394 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 435 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 475 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 516 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 254 556 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 597 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 637 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 678 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 718 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254
+ 759 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 799 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 839 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 880 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 920 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 961 m -26 X s s
+ [] 0 sd 3 lw [] 0 sd 3 lw 280 1001 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1042 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1082 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1123 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1163 m -26 X s s [] 0 sd 3 lw
+ [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 280 1204 m -52 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1244 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1284 m -26 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1325 m -26 X s s
+ /xs 0 def (0) /Helvetica-Bold 56 stwn  gsave  217 169
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show  gr 
+ /xs 0 def (5) /Helvetica-Bold 56 stwn  gsave  217 371
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show  gr 
+ /xs 0 def (10) /Helvetica-Bold 56 stwn  gsave  217 573
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show  gr 
+ /xs 0 def (15) /Helvetica-Bold 56 stwn  gsave  217 776
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (15) show  gr 
+ /xs 0 def (20) /Helvetica-Bold 56 stwn  gsave  217 978
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show  gr 
+ /xs 0 def (25) /Helvetica-Bold 56 stwn  gsave  217 1180
+ t 0 r  xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (25) show  gr  1 0 0 c [] 0 sd 9 lw 0.95 0.95 0.95 c 0 0 1 c [] 0 sd 9 lw 1 0 0 c 379 222 m 8 6 d 9 9 d 8 14 d 8 15 d 8 19 d 2 4 d 7 20 d 8 25 d 8 33 d 11 44 d 9 39 d 14 61 d 11 50 d 10 51
+ d 8 43 d 6 34 d 9 52 d 14 91 d 6 41 d 6 29 d 3 14 d 8 39 d 8 33 d 9 32 d 7 23 d 7 20 d 4 10 d 5 12 d 7 10 d 9 9 d 20 15 d 2 3 d 34 41 d 9 11 d 17 24 d 15 23 d 11 13 d 12 9 d 15 8 d 16 5 d 15 2 d 28 -2 d 28 -3 d 15 -5 d 44 -22 d 13 -3 d 18 -2 d 9 -4
+ d 3 -2 d 10 -10 d 33 -42 d 43 -53 d 43 -56 d 33 -44 d 10 -15 d 43 -68 d 44 -63 d 35 -57 d 42 -69 d 9 -16 d 86 -157 d 23 -34 d 23 -31 d 23 -27 d 17 -20 d 15 -13 d 23 -17 d 30 -20 d 16 -14 d 3 -3 d 15 -17 d 34 -46 d 21 -29 d 14 -14 d 2 -2 d 17 -14 d
+ 20 -12 d 24 -12 d 25 -10 d 27 -10 d 45 -10 d 14 -3 d 45 -7 d 42 -4 d s [] 0 sd 3 lw 0 0 1 c 379 222 422 289 465 450 508 655 552 916 595 1073 638 1122 681 1174 724 1234 767 1256 810 1256 853 1248 897 1226 940 1215 983 1163 1026 1110 1069 1054 1112
+ 995 1155 927 1199 864 1285 722 1371 565 1457 453 1544 386 1630 278 1716 230 1802 207 1889 196 28 { m21} R black
+ gsave  1371 971
+ t 0 r 0 0 m /Helvetica-Bold findfont 72 sf 0 0 m (PMT of Pixel 123) show  gr  1 1 0 c
+ gr  gr 
+showpage
+end
+%%EOF
Index: /branches/start/MagicDoku/strategy_mc_ana.tex
===================================================================
--- /branches/start/MagicDoku/strategy_mc_ana.tex	(revision 4308)
+++ /branches/start/MagicDoku/strategy_mc_ana.tex	(revision 4308)
@@ -0,0 +1,68 @@
+\documentclass[12pt]{article}
+
+\usepackage{magic-tdas} 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% BEGIN DOCUMENT
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{document}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Please, for the formatting just include here the standard
+%% elements: title, author, date, plus TDAScode
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{The strategy for MC production and analysis
+optimisation}
+\author{W. Wittek, H. Kornmayer\\ 
+\texttt{wittek@mppu.mpg.de, h.kornmayer@web.de }}
+
+\date{ \today}
+\TDAScode{MAGIC-TDAS 01-??\\ ??????/W.Wittek}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% title %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\maketitle
+
+%% abstract %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{abstract}
+
+\end{abstract}
+
+%% contents %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\thetableofcontents
+
+\newpage
+
+%% body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%------------------------------------------------------------
+\section{teil 1}
+
+\section{teil 2}
+
+\section{MC work}
+
+\end{document}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Upper-case    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
+%%% Lower-case    a b c d e f g h i j k l m n o p q r s t u v w x y z
+%%% Digits        0 1 2 3 4 5 6 7 8 9
+%%% Exclamation   !           Double quote "          Hash (number) #
+%%% Dollar        $           Percent      %          Ampersand     &
+%%% Acute accent  '           Left paren   (          Right paren   )
+%%% Asterisk      *           Plus         +          Comma         ,
+%%% Minus         -           Point        .          Solidus       /
+%%% Colon         :           Semicolon    ;          Less than     <
+%%% Equals        =           Greater than >          Question mark ?
+%%% At            @           Left bracket [          Backslash     \
+%%% Right bracket ]           Circumflex   ^          Underscore    _
+%%% Grave accent  `           Left brace   {          Vertical bar  |
+%%% Right brace   }           Tilde        ~
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Local Variables:
+%% mode:latex
+%% mode:font-lock
+%% mode:auto-fill
+%% time-stamp-line-limit:100
+%% End:
+%% EOF
Index: /branches/start/MagicSoft/CvsDoku/welcome.html
===================================================================
--- /branches/start/MagicSoft/CvsDoku/welcome.html	(revision 4308)
+++ /branches/start/MagicSoft/CvsDoku/welcome.html	(revision 4308)
@@ -0,0 +1,278 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.51 [en] (X11; I; Linux 2.2.5 i586) [Netscape]">
+   <title> CVS for Magic Software Development </title>
+</head>
+<body>
+<! This is my first attempt at my personal WWW home page.        ><! It has become necessary to create this mainly because my      ><! hotlist has grown into something so extremely large that it   ><! is impossible to find a way through it any longer...          >
+<center>
+<h1>
+CVS for Magic Software Development</h1></center>
+
+<hr>
+<h3>
+<font color="#FF0000"><font size=+2>Introduction</font></font></h3>
+More than one software developer are involved in the progress of Software
+for the MAGIC telescope. Because the developers are distributed all over
+Europe, a version control system is needed. There exists more than one
+possibility of such version control systems, but for the beginning we take
+CVS ( Concurrent Versions System ).
+<p>CVS is a version control system, which allows you to keep old versions
+of files (usually source code), keep a log of who, when, and why changes
+occurred, etc., like RCS or SCCS. Unlike the simpler systems, CVS does
+not just operate on one file at a time or one directory at a time, but
+operates on hierarchical collections of directories consisting of version
+controlled files. CVS helps to manage releases and to control the concurrent
+editing of source files among multiple authors. CVS allows triggers to
+enable/log/control various operations and works well over a wide area network.
+<p>CVS keeps a single copy of the master sources. This copy is called the
+source ``repository''; it contains all the information to permit extracting
+previous software releases at any time based on either a symbolic revision
+tag, or a date in the past.
+<p>For CVS updates, more information on documentation,&nbsp; software related
+to CVS, development of CVS, and more, see:
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a href="http://www.cyclic.com">http://www.cyclic.com</a>
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a href="http://www.loria.fr/~molli/cvs-index.html">http://www.loria.fr/~molli/cvs-index.html</a>
+<br>&nbsp;
+<p>
+<hr WIDTH="100%">
+<br><font color="#FF0000"><font size=+2>Repository</font></font>
+<p>The single copy of the master source for all MAGIC software is held
+in the repository on the alpha cluster in Max-Planck-Institut f&uuml;r
+Physik in Munich. As a developer you must declare the
+<br>environment variable
+<p>setenv&nbsp;&nbsp; CVSROOT&nbsp; /hd60/CvsRepository/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+for tcsh (use the syntax of your shell)
+<br>&nbsp;
+<p>All the Software is inside the directory. The structure of the sub directories
+is following one:
+<br>&nbsp;
+<br>&nbsp;
+<table BORDER=0 CELLPADDING=10 COLS=7 WIDTH="100%" NOSAVE >
+<tr>
+<td><font size=+3><a href="#Anchor_MagicSoft">MagicSoft</a></font></td>
+
+<td><font size=+3><a href="#Anchor_CvsDoku">CvsDoku</a></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+
+<td><font size=+3><a href="#Anchor_Simulation">Simulation</a></font></td>
+
+<td><font size=+3><a href="#Anchor_Corsika">Corsika</a></font></td>
+
+<td><font size=+3>mmcs</font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+
+<td></td>
+
+<td><font size=+3><a href="#Anchor_Detector">Detector</a></font></td>
+
+<td><font size=+3><a href="#Anchor_Reflector">Reflector</a></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td><font size=+3><a href="#Anchor_include-GENERAL">include-GENERAL</a></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td><font size=+3><a href="#Anchor_include-CORSIKA">include-CORSIKA</a></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td><font size=+3><a href="#Anchor_include-MC">include-MC</a></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+
+<td><font size=+3><a href="#Anchor_include-Classes">include-Classes</a></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+
+<td><font size=+3><a href="#Anchor_Analysis">Analysis</a></font></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+
+<td></td>
+</tr>
+</table>
+
+<hr WIDTH="100%">
+<br>&nbsp;
+<h3>
+<font color="#FF0000"><font size=+2>Detail of subdirectories in the repository</font></font></h3>
+
+<p><br><a NAME="Anchor_MagicSoft"></a><font color="#CC33CC"><font size=+2>MagicSoft</font></font>
+<p>In this directory of the cvs-repository you find all software that is
+developed for MAGIC using CVS.
+<br>This directory contain four sub directories, CvsDoku, Simulation, Analysis
+and include-Classes.
+<br>&nbsp;
+<blockquote><a NAME="Anchor_CvsDoku"></a><font color="#CC33CC"><font size=+2>CvsDoku</font></font>
+<p>In this directory of the cvs-repository you find some html pages like
+the one you are looking at the moment. This documentation is written as
+a guideline for MAGIC developers using the CVS tool. Also the documentation
+for CVS usage is using CVS!!
+<p><a NAME="Anchor_Simulation"></a><font color="#CC66CC"><font size=+2>Simulation</font></font>
+<br>For MAGIC a lot of programs were developed to simulate the behavior
+of Air Showers, the Mirrors and the Camera. All this things you need for
+simulation is inside this directory.
+<br>&nbsp;
+<blockquote><a NAME="Anchor_Corsika"></a><font color="#CC33CC"><font size=+2>Corsika</font></font>
+<br>All things needed for the simulation of AirShowers. All this simulation
+are based on the CORSIKA program of the KASCADE group in Karlsruhe.
+<br>&nbsp;
+<p><a NAME="Anchor_Detector"></a><font color="#CC33CC"><font size=+2>Detector</font></font>
+<br>&nbsp;Every thing that is needed to transfer the simulated events to
+the common raw data forrmat. There are a lot of different tools inside
+this directory, mainly based on the work of Jose Carlos Gonzales.
+<br>&nbsp;
+<blockquote><a NAME="Anchor_Reflector"></a><font color="#CC33CC"><font size=+2>Reflector</font></font>
+<br>&nbsp;Here you find the source code of the reflector program. This
+is written to read the CORSIKA (mmcs) output. With this data you can simulate
+the behaviour of the MAGIC mirrors. But to compile and run the program
+some other subdirectories are needed.
+<p><a NAME="Anchor_include-CORSIKA"></a><font color="#CC33CC"><font size=+2>include-CORSIKA</font></font>
+<br>Here you can find a implementation to read the CORSIKA output. This
+classes are needed by the reflector program.
+<p><a NAME="Anchor_include-MC"></a><font color="#CC33CC"><font size=+2>include-MC</font></font>
+<br>Here you can find a implementation to write and read the output of
+the reflector program. This classes are needed by the reflector and the
+camera program.
+<p><a NAME="Anchor_include-GENERAL"></a><font color="#CC33CC"><font size=+2>include-GENERAL</font></font>
+<br>Here you can find some header file that are needed by reflector and
+camera. For example the declaration of the runlib is found here.
+<br>&nbsp;</blockquote>
+</blockquote>
+<a NAME="Anchor_include-Classes"></a><font color="#CC66CC"><font size=+2>include-Classes</font></font>
+<p>In this directory you can find all Classes (C++ and hopefully OOP )
+that are used for simulation and for analysis. An example is the RawDataFormat
+used in the Analysis and the Camera programs.
+<p><a NAME="Anchor_Analysis"></a><font color="#CC66CC"><font size=+2>Analysis</font></font>
+<p>In this directory you can find all Programs to analyze data of MAGIC.
+Here you will find tools to look on single Events, to calculate the Hillas
+parameters and to find the periodicity of one special source. (But all
+this is still under construction!!!! Here the must development is needed
+in the future!!!)
+<br>&nbsp;</blockquote>
+
+<br>&nbsp;
+</body>
+</html>
Index: /branches/start/MagicSoft/Mars/LinkDef.h
===================================================================
--- /branches/start/MagicSoft/Mars/LinkDef.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/LinkDef.h	(revision 4308)
@@ -0,0 +1,7 @@
+#ifdef __CINT__
+
+#pragma link off all globals;
+#pragma link off all classes;
+#pragma link off all functions;
+
+#endif
Index: /branches/start/MagicSoft/Mars/Makefile
===================================================================
--- /branches/start/MagicSoft/Mars/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/Mars/Makefile	(revision 4308)
@@ -0,0 +1,105 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+# @maintitle
+
+# @code
+
+#
+#  please change all system depend values in the 
+#  config.mk.${OSTYPE} file 
+#
+#
+include Makefile.conf.$(OSTYPE)
+include Makefile.conf.general
+
+# @endcode 
+
+# @code 
+
+PROGRAM1 = merpp
+PROGRAM2 = readraw
+SOLIB    = mars.so
+
+#
+#  connect the include files defined in the config.mk file
+#
+INCLUDES = -I. -Imbase -Imraw
+
+#
+#  ----->>>   mars libraries
+#
+
+MARS_LIB = -Llib -lmbase  -lmraw 
+MARS_LIBB = libmbase.a libmraw.a
+
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cc .cxx .h .hxx .o 
+
+
+SRCFILES = 
+
+SRCS    = $(SRCFILES)
+HEADERS = $(SRCFILES:.cc=.h)
+OBJS    = $(SRCFILES:.cc=.o) 
+OBJS1   = merpp.o 
+OBJS2   = readraw.o
+
+############################################################
+
+all: rmlib $(PROGRAM1) $(PROGRAM2) $(SOLIB)
+
+$(PROGRAM1): $(MARS_LIBB) $(OBJS1) $(OBJS) MCint.o 
+	@echo " Linking $(PROGRAM1) ..." 
+	$(CXX) $(CXXFLAGS) $(OBJS1) $(OBJS) $(MARS_LIB) MCint.o $(ROOTLIBS) $(ROOTGLIBS) -o $@
+ 
+$(PROGRAM2): $(MARS_LIBB) $(OBJS2) $(OBJS) MCint.o 
+	@echo " Linking $(PROGRAM2) ..." 
+	$(CXX) $(CXXFLAGS) $(OBJS2) $(OBJS) $(MARS_LIB) MCint.o $(ROOTLIBS) $(ROOTGLIBS) -o $@
+        
+$(SOLIB): $(MARS_LIBB) $(OBJS) MCint.o
+	@echo " Linking $(SOLIB) ..."
+	$(CXX) $(CXXFLAGS) -shared  $(OBJS2) $(OBJS) $(MARS_LIB) MCint.o $(ROOTLIBS) $(ROOTGLIBS) -o $@
+	mv mars.so lib
+
+libmbase.a:
+	@echo " Creating libmbase.a:"
+	(cd mbase; make; cd ..; mv mbase/libmbase.a lib) 
+
+libmraw.a:
+	@echo " Creating libmraw.a:"
+	(cd mraw; make; cd ..; mv mraw/libmraw.a lib) 
+
+libmocttest.a:
+	@echo " Creating libmocttest.a:"
+	(cd mocttest; make; cd .., mv mocttest/libmocttest.a lib) 
+        
+dox:
+	@echo " Creating html documentation:"
+	root -b -q dohtml.C
+
+
+MCint.cc:	$(HEADERS)
+	       	@echo "Generating dictionary MCint.cc..."
+		@$(ROOTSYS)/bin/rootcint -f MCint.cc \
+                -c $(INCLUDES) $(HEADERS) LinkDef.h 
+
+include Makefile.rules
+
+clean:	rmlib rmcint rmobjs rmcore rmbin
+
+# @endcode
+
+
+
+# DO NOT DELETE
+
+
Index: /branches/start/MagicSoft/Mars/Makefile.conf.general
===================================================================
--- /branches/start/MagicSoft/Mars/Makefile.conf.general	(revision 4308)
+++ /branches/start/MagicSoft/Mars/Makefile.conf.general	(revision 4308)
@@ -0,0 +1,16 @@
+#
+#  ----->>>   root libraries
+#
+
+ROOTLIBS   =  `root-config --libs`
+ROOTGLIBS  =  `root-config --glibs`
+ROOTCFLAGS =  `root-config --cflags`
+
+#
+#  compiler flags
+#
+
+CXXFLAGS  = $(ROOTCFLAGS) $(INCLUDES) $(OPTIM) $(DEBUG)
+CFLAGS    = $(CXXFLAGS)
+FFLAGS    = $(CXXFLAGS)
+
Index: /branches/start/MagicSoft/Mars/Makefile.conf.linux-gnu
===================================================================
--- /branches/start/MagicSoft/Mars/Makefile.conf.linux-gnu	(revision 4308)
+++ /branches/start/MagicSoft/Mars/Makefile.conf.linux-gnu	(revision 4308)
@@ -0,0 +1,41 @@
+##################################################################
+#
+# config.mk
+#
+# @file        config.mk
+# 
+##################################################################
+# @maintitle
+
+# @code
+
+#
+#  ----->>>  includes
+#
+
+INCLUDE_ROOT    = ${ROOTSYS}/include
+INCLUDE_CPLUS   = /usr/include/g++
+INCLUDE_MBASE   = ./mbase
+
+
+# compilers
+
+CC            = g++
+CXX           = g++
+F77           = f77
+AR            = ar -rc
+#
+#  ----->>>   settings for compilation
+#
+
+OPTIM    = -O2 -Wall -fno-rtti -fno-exceptions -fPIC
+DEBUG    = -g 
+
+# uncomment this for quiet compilation
+
+.SILENT:
+
+# @endcode
+##EOF
+
+
Index: /branches/start/MagicSoft/Mars/Makefile.conf.osf1
===================================================================
--- /branches/start/MagicSoft/Mars/Makefile.conf.osf1	(revision 4308)
+++ /branches/start/MagicSoft/Mars/Makefile.conf.osf1	(revision 4308)
@@ -0,0 +1,43 @@
+##################################################################
+#
+# config.mk
+#
+# @file        config.mk
+# 
+##################################################################
+# @maintitle
+
+# @code
+
+#
+#  ----->>>  includes
+#
+
+INCLUDE_ROOT    = ${ROOTSYS}/include
+INCLUDE_CPLUS   = /usr/include/cxx
+INCLUDE_MBASE   = ./mbase
+
+#
+# compilers
+#
+
+CC            = cc
+CXX           = cxx
+F77           = f77
+AR            = ar -c -r
+
+#
+#  ----->>>   settings for compilation
+#
+
+OPTIM    = -O2 -ieee -arch host
+DEBUG    = -g 
+
+# uncomment this for quiet compilation
+
+.SILENT:
+
+# @endcode
+##EOF
+
+
Index: /branches/start/MagicSoft/Mars/Makefile.depend
===================================================================
--- /branches/start/MagicSoft/Mars/Makefile.depend	(revision 4308)
+++ /branches/start/MagicSoft/Mars/Makefile.depend	(revision 4308)
@@ -0,0 +1,9 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+
+# DO NOT DELETE
Index: /branches/start/MagicSoft/Mars/Makefile.rules
===================================================================
--- /branches/start/MagicSoft/Mars/Makefile.rules	(revision 4308)
+++ /branches/start/MagicSoft/Mars/Makefile.rules	(revision 4308)
@@ -0,0 +1,56 @@
+
+depend:
+	@makedepend $(SRCS) $(INCLUDES) -I$(INCLUDE_CPLUS) $(ROOTCFLAGS) \
+        -f Makefile.depend 2> kk.kk ; cat kk.kk
+
+.cxx.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.cc.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo "Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+#
+# The cleaning facility
+#
+
+rmcint:	
+	@echo "Removing cint-stuff..."
+	@rm -f *Cint.*
+
+rmlib:	
+	@echo "Removing libraries..."
+	@rm -f lib/lib*.a
+
+rmobjs:	
+	@echo "Removing object files..."
+	@rm -f *.o
+
+rmcore:	
+	@echo "Removing core files..."
+	@rm -f core*
+
+rmbin:	
+	@echo "Removing binary files..."
+	@rm -f $(PROGRAM1) $(PROGRAM2) lib/$(SOLIB) so_locations
+
+mrproper:	clean
+	@echo "Removing *~ *.bak kk.kk htmldoc/..."
+	@rm -f *~ kk.kk *.bak macros/*~
+	@rm -rf htmldoc
+	@echo "cd mbase"
+	@cd mbase; make mrproper; cd ..
+	@echo "cd .."
+	@echo "cd mraw"
+	@cd mraw; make mrproper; cd ..
+	@echo "cd .."
+#	@echo "cd mocttest"
+#	@cd mocttest; make mrproper; cd ..
+#	@echo "cd .."
+
+
+
Index: /branches/start/MagicSoft/Mars/macros/dohtml.C
===================================================================
--- /branches/start/MagicSoft/Mars/macros/dohtml.C	(revision 4308)
+++ /branches/start/MagicSoft/Mars/macros/dohtml.C	(revision 4308)
@@ -0,0 +1,21 @@
+void dohtml()
+{
+  //
+  //  don't forget that the shared object must be loaded
+  //
+
+  //
+  //   create the html document class
+  //
+  THtml html;
+
+  html.SetOutputDir("htmldoc");
+  html.SetSourceDir(".:mbase:mraw");
+
+  html.MakeAll(kTRUE);
+
+  html.SetSourceDir("macros");
+  html.Convert("merpp.C", "MARS - Merging and Preprocessing Macro");
+  html.Convert("readraw.C", "MARS - Read a raw file macro");
+  html.Convert("rootlogon.C", "MARS - rootlogon.C");
+}
Index: /branches/start/MagicSoft/Mars/macros/merpp.C
===================================================================
--- /branches/start/MagicSoft/Mars/macros/merpp.C	(revision 4308)
+++ /branches/start/MagicSoft/Mars/macros/merpp.C	(revision 4308)
@@ -0,0 +1,60 @@
+/////////////////////////////////////////////////////////////////////////////
+//
+// This is an easy implementation of the Merging process (as root Macro)
+//
+// at the moment it reads a binary file ("rawtest.bin") which was written
+// in the DAQ raw format.
+//
+// The data are stored in root container objects (classes derived from
+// TObject like MRawRunHeader)
+//
+// This containers are written to a root file ("rawtest.root")
+//
+/////////////////////////////////////////////////////////////////////////////
+
+int merpp()
+{
+    //
+    // create a (empty) list of parameters which can be used by the tasks
+    // and an (empty) list of tasks which should be executed
+    //
+    MParList *plist  = new MParList;
+    MTaskList *tasks = new MTaskList;
+
+    //
+    // create the tasks which should be executed and add them to the list
+    // in the case you don't need parameter containers, all of them can
+    // be created by MRawFileRead::PreProcess
+    //
+    // REMARK: Don't change the order of the two instantiations.
+    //         I don't have an idea why, but here it crashes to
+    //         Interpreter.
+    //         (Using root 2.25/03, with Cint 5.14.50 on OSF1)
+    //
+    MRawFileWrite *writer = new MRawFileWrite("rawtest.root", "RECREATE");
+    MRawFileRead  *reader = new MRawFileRead("rawtest.bin");
+    tasks->AddToList(reader);
+    tasks->AddToList(writer);
+
+    //
+    // create the looping object and thell it about the parameters to use
+    // and the tasks to execute
+    //
+    MEvtLoop magic;
+
+    magic.SetParList(plist);
+    magic.SetTaskList(tasks);
+
+    //
+    // Start the eventloop which reads the raw file (MRawFileRead) and
+    // write all the information into a root file (MRawFileWrite)
+    //
+    // between reading and writing we can do, transformations, checks, etc.
+    // (I'm think of a task like MRawDataCheck)
+    //
+    magic.Eventloop();
+
+    return 0;
+}
+
+
Index: /branches/start/MagicSoft/Mars/macros/readin.C
===================================================================
--- /branches/start/MagicSoft/Mars/macros/readin.C	(revision 4308)
+++ /branches/start/MagicSoft/Mars/macros/readin.C	(revision 4308)
@@ -0,0 +1,62 @@
+{
+
+    //
+    // open the file
+    //
+    TFile input("test.root", "READ");
+
+    //
+    // open the Run Header tree
+    //
+    TTree *runtree = (TTree*) input.Get("RunHeaders") ;
+    cout << " Entries in Tree RunHeaders: " << runtree->GetEntries() << endl ;
+
+    //
+    // create an instance of MRawRunHeader, enable the branch and
+    // read the header, print it
+    //
+    MRawRunHeader *runheader = new MRawRunHeader();
+    runtree->GetBranch("MRawRunHeader")->SetAddress(&runheader);
+    runtree->GetEvent(0);
+    runheader->Print();
+
+    //
+    // open the Data Tree
+    //
+    TTree *evttree = (TTree*) input.Get("Data") ;
+
+    //
+    // create the instances of the data to read in
+    //
+    MRawEvtHeader  *evtheader = new MRawEvtHeader();
+    MTime          *evttime   = new MTime();
+    MRawEvtData    *evtdata   = new MRawEvtData();
+    MRawCrateArray *evtcrate  = new MRawCrateArray();
+
+    //
+    // enable the corresponding branches
+    //
+    evttree->GetBranch("MRawEvtHeader")->SetAddress(&evtheader);
+    evttree->GetBranch("MTime")->SetAddress(&evttime);
+    evttree->GetBranch("MRawEvtData")->SetAddress(&evtdata);
+    evttree->GetBranch("MRawCrateArray")->SetAddress(&evtcrate);
+
+    //
+    // loop over all events and print the information
+    //
+    Int_t iEnt = evttree->GetEntries();
+    cout << " Entries in Tree Data: " << iEnt << endl;
+
+    for (Int_t i = 0; i<iEnt; i++)
+    {
+      // readin event with the selected branches
+      evttree->GetEvent(i);
+
+      evtheader->Print();
+      evttime->Print();
+      evtcrate->Print();
+      evtdata->Print();
+    } 
+}
+
+
Index: /branches/start/MagicSoft/Mars/macros/readraw.C
===================================================================
--- /branches/start/MagicSoft/Mars/macros/readraw.C	(revision 4308)
+++ /branches/start/MagicSoft/Mars/macros/readraw.C	(revision 4308)
@@ -0,0 +1,62 @@
+{
+
+    //
+    // open the file
+    //
+    TFile input("test.root", "READ");
+
+    //
+    // open the Run Header tree
+    //
+    TTree *runtree = (TTree*) input.Get("RunHeaders") ;
+    cout << " Entries in Tree RunHeaders: " << runtree->GetEntries() << endl ;
+
+    //
+    // create an instance of MRawRunHeader, enable the branch and
+    // read the header, print it
+    //
+    MRawRunHeader *runheader = new MRawRunHeader();
+    runtree->GetBranch("MRawRunHeader")->SetAddress(&runheader);
+    runtree->GetEvent(0);
+    runheader->Print();
+
+    //
+    // open the Data Tree
+    //
+    TTree *evttree = (TTree*) input.Get("Data") ;
+
+    //
+    // create the instances of the data to read in
+    //
+    MRawEvtHeader  *evtheader = new MRawEvtHeader();
+    MTime          *evttime   = new MTime();
+    MRawEvtData    *evtdata   = new MRawEvtData();
+    MRawCrateArray *evtcrate  = new MRawCrateArray();
+
+    //
+    // enable the corresponding branches
+    //
+    evttree->GetBranch("MRawEvtHeader")->SetAddress(&evtheader);
+    evttree->GetBranch("MTime")->SetAddress(&evttime);
+    evttree->GetBranch("MRawEvtData")->SetAddress(&evtdata);
+    evttree->GetBranch("MRawCrateArray")->SetAddress(&evtcrate);
+
+    //
+    // loop over all events and print the information
+    //
+    Int_t iEnt = evttree->GetEntries();
+    cout << " Entries in Tree Data: " << iEnt << endl;
+
+    for (Int_t i = 0; i<iEnt; i++)
+    {
+      // readin event with the selected branches
+      evttree->GetEvent(i);
+
+      evtheader->Print();
+      evttime->Print();
+      evtcrate->Print();
+      evtdata->Print();
+    } 
+}
+
+
Index: /branches/start/MagicSoft/Mars/macros/rootlogon.C
===================================================================
--- /branches/start/MagicSoft/Mars/macros/rootlogon.C	(revision 4308)
+++ /branches/start/MagicSoft/Mars/macros/rootlogon.C	(revision 4308)
@@ -0,0 +1,17 @@
+{
+    cout << endl;
+
+    cout << "Loading 'mars.so'... " << flush;
+
+    if (gSystem->Load("mars.so")!=0)
+        cout << "error." << endl;
+    else
+        cout << "done." << endl;
+
+    cout << endl;
+
+    cout << "Welcome to the Mars Root environment." << endl;
+
+    cout << endl;
+}
+
Index: /branches/start/MagicSoft/Mars/macros/test.C
===================================================================
--- /branches/start/MagicSoft/Mars/macros/test.C	(revision 4308)
+++ /branches/start/MagicSoft/Mars/macros/test.C	(revision 4308)
@@ -0,0 +1,61 @@
+/////////////////////////////////////////////////////////////////////////////
+//
+// This is an easy implementation of the Merging process (as root Macro)
+//
+// at the moment it reads a binary file ("rawtest.bin") which was written
+// in the DAQ raw format.
+//
+// The data are stored in root container objects (classes derived from
+// TObject like MRawRunHeader)
+//
+// This containers are written to a root file ("rawtest.root")
+//
+/////////////////////////////////////////////////////////////////////////////
+
+int test()
+{
+    //
+    // create a (empty) list of parameters which can be used by the tasks
+    // and an (empty) list of tasks which should be executed
+    //
+    MParList *plist  = new MParList;
+    MTaskList *tasks = new MTaskList;
+
+    //
+    // create the tasks which should be executed and add them to the list
+    // in the case you don't need parameter containers, all of them can
+    // be created by MRawFileRead::PreProcess
+    //
+    // REMARK: Don't change the order of the two instantiations.
+    //         I don't have an idea why, but here it crashes to
+    //         Interpreter.
+    //         (Using root 2.25/03, with Cint 5.14.50 on OSF1)
+    //
+    MRawFileWrite *writer = new MRawFileWrite("output.root", "RECREATE");
+    MReadTree     *reader = new MReadTree("delme.root", "Data");
+    tasks->AddToList(reader);
+    tasks->AddToList(writer);
+
+    plist->AddToList(tasks);
+
+    //
+    // create the looping object and thell it about the parameters to use
+    // and the tasks to execute
+    //
+    MEvtLoop magic;
+
+    magic.SetParList(plist);
+
+    //
+    // Start the eventloop which reads the raw file (MRawFileRead) and
+    // write all the information into a root file (MRawFileWrite)
+    //
+    // between reading and writing we can do, transformations, checks, etc.
+    // (I'm think of a task like MRawDataCheck)
+    //
+    magic.Eventloop();
+
+    return 0;
+}
+
+
Index: /branches/start/MagicSoft/Mars/mbase/BaseIncl.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/BaseIncl.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/BaseIncl.h	(revision 4308)
@@ -0,0 +1,6 @@
+#ifndef __CINT__
+
+#include <TFile.h>
+#include <TTree.h>
+
+#endif // __CINT__
Index: /branches/start/MagicSoft/Mars/mbase/BaseLinkDef.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/BaseLinkDef.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/BaseLinkDef.h	(revision 4308)
@@ -0,0 +1,25 @@
+#ifdef __CINT__
+
+#pragma link off all globals;
+#pragma link off all classes;
+#pragma link off all functions;
+
+#pragma link C++ class MTask;
+#pragma link C++ class MTaskList;
+
+#pragma link C++ class MParContainer;
+#pragma link C++ class MParList;
+
+#pragma link C++ class MEvtLoop;
+
+#pragma link C++ class MInputStreamID;
+
+#pragma link C++ class MReadTree;
+
+#pragma link C++ class MArray;
+#pragma link C++ class MArrayB;
+#pragma link C++ class MArrayS;
+
+#pragma link C++ class MTime;
+
+#endif
Index: /branches/start/MagicSoft/Mars/mbase/MAGIC.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MAGIC.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MAGIC.h	(revision 4308)
@@ -0,0 +1,32 @@
+#ifndef MAGIC_H
+#define MAGIC_H
+///////////////////////////////////////////////////////////////////////////////
+//
+//     Magic.h
+//
+//     defines MAGIC base informations
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <TROOT.h>
+
+//
+// Magic number to detect the magic file type
+//
+// const UShort_t kMagicNumber = 0xc0c0;
+
+//
+// Values for the eventloop control
+//
+const Int_t kCONTINUE = 2;
+
+//
+//     ParticleId for Monte Carlo simulation
+//
+const Int_t kGAMMA  =    0;
+const Int_t kPROTON =   14;
+const Int_t kHELIUM =  402;
+const Int_t kOXIGEN = 1608;
+const Int_t kIRON   = 5626;
+
+#endif
Index: /branches/start/MagicSoft/Mars/mbase/MArray.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MArray.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MArray.cc	(revision 4308)
@@ -0,0 +1,4 @@
+#include "MArray.h"
+
+ClassImp(MArray)
+
Index: /branches/start/MagicSoft/Mars/mbase/MArray.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MArray.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MArray.h	(revision 4308)
@@ -0,0 +1,31 @@
+#ifndef MARRAY_H
+#define MARRAY_H
+
+#ifndef MAGIC_H
+#include "MAGIC.h"
+#endif
+
+#ifndef ROOT_TObject
+#include <TObject.h>
+#endif
+
+class MArray : public TObject
+{
+protected:
+    Int_t fN; // Number of array elements
+
+public:
+   MArray()                              { fN = 0; }
+   MArray(Int_t n)                       { fN = n; }
+   MArray(const MArray &a)               { fN = a.fN; }
+   virtual ~MArray()                     { fN = 0; }
+
+   MArray &operator=(const MArray &rhs)  { fN = rhs.fN; return *this; }
+
+   Int_t        GetSize() const          { return fN; }
+   virtual void Set(Int_t n) = 0;
+
+   ClassDef(MArray, 1)  //Abstract array base class for TObject derived Arrays
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mbase/MArrayB.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MArrayB.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MArrayB.cc	(revision 4308)
@@ -0,0 +1,4 @@
+#include "MArrayB.h"
+
+ClassImp(MArrayB)
+
Index: /branches/start/MagicSoft/Mars/mbase/MArrayB.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MArrayB.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MArrayB.h	(revision 4308)
@@ -0,0 +1,167 @@
+#ifndef MARRAYB_H
+#define MARRAYB_H
+
+#ifndef MARRAY_H
+#include "MArray.h"
+#endif
+
+#include <string.h>
+
+
+class MArrayB : public MArray
+{
+private:
+    Byte_t *fArray; //[fN] Array of fN chars
+
+public:
+
+    MArrayB()
+    {
+        fN = 0;
+        fArray = NULL;
+    }
+
+    MArrayB(Int_t n)
+    {
+        fN = 0;
+        fArray = NULL;
+        if (n > 0)
+            Set(n);
+    }
+
+    MArrayB(Int_t n, Byte_t *array)
+    {
+        // Create TArrayC object and initialize it with values of array.
+        fN = 0;
+        fArray = NULL;
+        Set(n, array);
+    }
+
+    MArrayB(const MArrayB &array)
+    {
+        // Copy constructor.
+        fArray = NULL;
+        Set(array.fN, array.fArray);
+    }
+
+    Int_t GetSize() const
+    {
+        return fN;
+    }
+
+    MArrayB &operator=(const MArrayB &rhs)
+    {
+        // TArrayC assignment operator.
+        if (this != &rhs)
+            Set(rhs.fN, rhs.fArray);
+        return *this;
+    }
+
+    virtual ~MArrayB()
+    {
+        // Delete TArrayC object.
+        delete [] fArray;
+        fArray = NULL;
+    }
+
+    void Adopt(Int_t n, Byte_t *array)
+    {
+        // Adopt array arr into TArrayC, i.e. don't copy arr but use it directly
+        // in TArrayC. User may not delete arr, TArrayC dtor will do it.
+        if (fArray)
+            delete [] fArray;
+
+        fN     = n;
+        fArray = array;
+    }
+
+    void AddAt(Byte_t c, Int_t i)
+    {
+        // Add char c at position i. Check for out of bounds.
+        fArray[i] = c;
+    }
+
+    void AddAt(Byte_t *array, Int_t i, Int_t n)
+    {
+        // Add char c at position i. Check for out of bounds.
+        memcpy(fArray+i, array, n*sizeof(Byte_t));
+    }
+
+    Byte_t     At(Int_t i)
+    {
+        return fArray[i];
+    }
+
+    Byte_t    *GetArray() const
+    {
+        return fArray;
+    }
+
+    void Reset()
+    {
+        memset(fArray, 0, fN*sizeof(Byte_t));
+    }
+
+    void Set(Int_t n)
+    {
+        // Set size of this array to n chars.
+        // A new array is created, the old contents copied to the new array,
+        // then the old array is deleted.
+
+        if (n < 0 || n==fN)
+            return;
+
+        Byte_t *temp = fArray;
+        if (n != 0)
+        {
+            fArray = new Byte_t[n];
+            if (n < fN)
+                memcpy(fArray,temp, n*sizeof(Byte_t));
+            else
+            {
+                memcpy(fArray,temp,fN*sizeof(Byte_t));
+                memset(&fArray[fN],0,(n-fN)*sizeof(Byte_t));
+            }
+        }
+        else
+        {
+            fArray = 0;
+        }
+
+        if (fN)
+            delete [] temp;
+
+        fN = n;
+    }
+
+    void Set(Int_t n, Byte_t *array)
+    {
+        // Set size of this array to n chars and set the contents.
+        if (n < 0 || array == 0)
+            return;
+
+        if (fArray && fN != n)
+        {
+            delete [] fArray;
+            fArray = 0;
+        }
+        fN = n;
+
+        if (fN == 0)
+            return;
+
+        if (!fArray)
+            fArray = new Byte_t[fN];
+
+        memcpy(fArray,array, n*sizeof(Byte_t));
+    }
+
+    Byte_t &operator[](Int_t i)
+    {
+        return fArray[i];
+    }
+
+    ClassDef(MArrayB, 1)  //Array of Byte_t
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mbase/MArrayS.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MArrayS.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MArrayS.cc	(revision 4308)
@@ -0,0 +1,4 @@
+#include "MArrayS.h"
+
+ClassImp(MArrayS)
+
Index: /branches/start/MagicSoft/Mars/mbase/MArrayS.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MArrayS.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MArrayS.h	(revision 4308)
@@ -0,0 +1,160 @@
+#ifndef MARRAYS_H
+#define MARRAYS_H
+
+#ifndef MARRAY_H
+#include "MArray.h"
+#endif
+
+#include <string.h>
+
+class MArrayS : public MArray
+{
+private:
+    UShort_t *fArray; //[fN] Array of fN chars
+
+public:
+
+    MArrayS()
+    {
+        fN = 0;
+        fArray = NULL;
+    }
+
+    MArrayS(Int_t n)
+    {
+        fN = 0;
+        fArray = NULL;
+        if (n > 0)
+            Set(n);
+    }
+
+    MArrayS(Int_t n, UShort_t *array)
+    {
+        // Create TArrayC object and initialize it with values of array.
+        fN = 0;
+        fArray = NULL;
+        Set(n, array);
+    }
+
+    MArrayS(const MArrayS &array)
+    {
+        // Copy constructor.
+        fArray = NULL;
+        Set(array.fN, array.fArray);
+    }
+
+    Int_t GetSize() const
+    {
+        return fN;
+    }
+
+    MArrayS &operator=(const MArrayS &rhs)
+    {
+        // TArrayC assignment operator.
+        if (this != &rhs)
+            Set(rhs.fN, rhs.fArray);
+        return *this;
+    }
+
+    virtual ~MArrayS()
+    {
+        // Delete TArrayC object.
+        delete [] fArray;
+        fArray = NULL;
+    }
+
+    void Adopt(Int_t n, UShort_t *array)
+    {
+        // Adopt array arr into TArrayC, i.e. don't copy arr but use it directly
+        // in TArrayC. User may not delete arr, TArrayC dtor will do it.
+        if (fArray)
+            delete [] fArray;
+
+        fN     = n;
+        fArray = array;
+    }
+
+    void AddAt(UShort_t c, Int_t i)
+    {
+        // Add char c at position i. Check for out of bounds.
+        fArray[i] = c;
+    }
+
+    UShort_t     At(Int_t i)
+    {
+        return fArray[i];
+    }
+
+    UShort_t    *GetArray() const
+    {
+        return fArray;
+    }
+
+    void Reset()
+    {
+        memset(fArray, 0, fN*sizeof(UShort_t));
+    }
+
+    void Set(Int_t n)
+    {
+        // Set size of this array to n chars.
+        // A new array is created, the old contents copied to the new array,
+        // then the old array is deleted.
+
+        if (n < 0 || n==fN)
+            return;
+
+        UShort_t *temp = fArray;
+        if (n != 0)
+        {
+            fArray = new UShort_t[n];
+            if (n < fN)
+                memcpy(fArray, temp, n*sizeof(UShort_t));
+            else
+            {
+                memcpy(fArray, temp, fN*sizeof(UShort_t));
+                memset(&fArray[fN], 0, (n-fN)*sizeof(UShort_t));
+            }
+        }
+        else
+        {
+            fArray = NULL;
+        }
+
+        if (fN)
+            delete [] temp;
+
+        fN = n;
+    }
+
+    void Set(Int_t n, UShort_t *array)
+    {
+        // Set size of this array to n chars and set the contents.
+        if (n < 0 || array == 0)
+            return;
+
+        if (fArray && fN != n)
+        {
+            delete [] fArray;
+            fArray = 0;
+        }
+        fN = n;
+
+        if (fN == 0)
+            return;
+
+        if (!fArray)
+            fArray = new UShort_t[fN];
+
+        memcpy(fArray, array, n*sizeof(UShort_t));
+    }
+
+    UShort_t &operator[](Int_t i)
+    {
+        return fArray[i];
+    }
+
+    ClassDef(MArrayS, 1)  //Array of UShort_t
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mbase/MEvtLoop.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MEvtLoop.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MEvtLoop.cc	(revision 4308)
@@ -0,0 +1,109 @@
+#include "MEvtLoop.h"
+
+#include <iostream.h>
+
+#include <TStopwatch.h>
+
+#include "MParList.h"
+#include "MTaskList.h"
+
+ClassImp(MEvtLoop)
+
+MEvtLoop::MEvtLoop() : fParlist(NULL)
+{
+}
+
+MEvtLoop::~MEvtLoop()
+{
+}
+
+void MEvtLoop::SetParList(MParList *p)
+{
+    fParlist = p;
+}
+
+void MEvtLoop::Eventloop(Int_t maxcnt, const char *ftasks)
+{
+    //
+    // check if the needed parameter list is set.
+    //
+    if (!fParlist)
+    {
+        cout << "MEvtLoop::Eventloop - Error: Parlist not initialized." << endl;
+        return;
+    }
+
+    //
+    //  check for the existance of the specified task list
+    //  the default name is "MTaskList"
+    //
+    MTaskList *tasks = (MTaskList*)fParlist->FindObject(ftasks);
+    if (!tasks)
+    {
+        cout << "MEvtLoop::Eventloop - Error: Cannot find tasklist '" << ftasks << "' in parameter list." << endl;
+        return;
+    }
+
+    //
+    //  execute the preprocess of all tasks
+    //  connect the different tasks with the right containers in
+    //  the parameter list
+    //
+    if (!tasks->PreProcess(fParlist))
+    {
+        cout << "Error detected while PreProcessing" << endl;
+        return;
+    }
+
+    //
+    //   loop over all events and process all tasks for
+    //   each event
+    //
+    cout << endl << "Eventloop running (";
+
+    if (maxcnt<0)
+        cout << "all";
+    else
+        cout << dec << maxcnt;
+
+    cout << " events)..." << flush;
+
+    Int_t dummy = maxcnt<0 ? 0 : maxcnt;
+
+    //
+    // start a stopwatch
+    //
+    TStopwatch clock;
+    clock.Start();
+
+    //
+    // This is the MAIN EVENTLOOP which processes the data
+    // if maxcnt<0 the number of processed events is counted
+    // else only maxcnt events are processed
+    //
+    if (maxcnt<0)
+        while (tasks->Process() && ++dummy);
+    else
+        while (tasks->Process() && dummy--);
+
+    //
+    // stop stop-watch, print results
+    //
+    clock.Stop();
+
+    cout << "Ready!" << endl << endl;
+
+    clock.Print();
+
+    cout << dec << endl
+        << "Time: " << clock.CpuTime() << "s"
+        << " for " << (maxcnt<0?dummy:maxcnt) << " Events"
+        << " --> " << (maxcnt<0?dummy:maxcnt)/clock.CpuTime() << " Events/s"
+        << endl << endl;
+
+    //
+    //  execute the post process of all tasks
+    //
+    tasks->PostProcess();
+}
+
Index: /branches/start/MagicSoft/Mars/mbase/MEvtLoop.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MEvtLoop.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MEvtLoop.h	(revision 4308)
@@ -0,0 +1,26 @@
+#ifndef MEVTLOOP_H
+#define MEVTLOOP_H
+
+#ifndef MAGIC_H
+#include "MAGIC.h"
+#endif
+
+class MParList;
+
+class MEvtLoop
+{
+private:
+    MParList  *fParlist;
+
+public:
+    MEvtLoop();
+    virtual ~MEvtLoop();
+
+    void SetParList(MParList *p);
+
+    void Eventloop(Int_t maxcnt=-1, const char *tlist="MTaskList");
+
+    ClassDef(MEvtLoop, 1)
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mbase/MInputStreamID.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MInputStreamID.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MInputStreamID.cc	(revision 4308)
@@ -0,0 +1,18 @@
+#include "MInputStreamID.h"
+
+ClassImp(MInputStreamID);
+
+// ---------------------------------------------------------------------
+
+MInputStreamID::MInputStreamID(const char *name, const char *title)
+{
+    //
+    // (default) constructor
+    //
+    *fName = name ? name : ClassName();
+    *fTitle = title;
+
+    fStreamId = new char[4];
+    strcpy(fStreamId, "All");
+}
+
Index: /branches/start/MagicSoft/Mars/mbase/MInputStreamID.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MInputStreamID.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MInputStreamID.h	(revision 4308)
@@ -0,0 +1,42 @@
+#ifndef MINPUTSTREAMID_H
+#define MINPUTSTREAMID_H
+///////////////////////////////////////////////////////////////////////
+//                                                                   //
+// MInpuStreamID                                                     //
+//                                                                   //
+// This is the storage container for general (CaOs, Raw, ...) Event  //
+// Info like the type of the 'actual' event                          //
+//                                                                   //
+///////////////////////////////////////////////////////////////////////
+
+#ifndef MPARCONTAINER_H
+#include "MParContainer.h"
+#endif
+
+// -----------------------------------------------------------------------
+
+class MInputStreamID : public MParContainer
+{
+private:
+    char *fStreamId;		//! which type of task should be processed?
+
+public:
+    MInputStreamID(const char *name=NULL, const char *title=NULL);
+
+    const char *GetStreamId()
+    {
+	return (const char *)fStreamId;
+    }
+    void SetStreamId(const char *t)
+    {
+        delete fStreamId;
+        fStreamId = new char[strlen(t)+1];
+        strcpy(fStreamId, t);
+    }
+
+    ClassDef(MInputStreamID, 1)	// Process control container for the task list
+};
+
+// ---------------------------------------------------------------------
+
+#endif
Index: /branches/start/MagicSoft/Mars/mbase/MLoopEvt.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MLoopEvt.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MLoopEvt.cc	(revision 4308)
@@ -0,0 +1,118 @@
+#include "MLoopEvt.h"
+
+#include <iostream.h>
+
+#include <TStopwatch.h>
+
+#include "MParList.h"
+#include "MTaskList.h"
+
+ClassImp(MLoopEvt)
+
+MLoopEvt::MLoopEvt() : fTasks(NULL), fParlist(NULL)
+{
+}
+
+MLoopEvt::~MLoopEvt()
+{
+}
+
+void MLoopEvt::SetTaskList(MTaskList *t)
+{
+    fTasks = t;
+}
+
+void MLoopEvt::SetParList(MParList *p)
+{
+    fParlist = p;
+
+    //
+    // check if the task list is already known
+    //
+    if (fTasks)
+    {
+        cout << "MLoopEvt::SetParList - Warning: Task List already set, using this one" << endl;
+        return;
+    }
+
+    //
+    // get the task list from the parameter list
+    //
+    fTasks = (MTaskList*)fParlist->FindObject("MTaskList");
+
+    if (!fTasks)
+        cout << "MLoopEvt::SetParList - Warning: MTaskList not found." << endl;
+}
+
+void MLoopEvt::Eventloop(Int_t maxcnt)
+{
+    //
+    // check if the parameter list is known
+    //
+    if (!fParlist)
+    {
+        cout << "MLoopEvt::Eventloop - Error: ParList not set." << endl;
+        return;
+    }
+
+    //
+    // check if the task list could be retrieved from the parameter list
+    //
+    if (!fTasks)
+    {
+        cout << "MLoopEvt::Eventloop - Error: TaskList not set." << endl;
+        return;
+    }
+
+    //
+    //  execute the preprocess of all tasks
+    //  connect the different tasks with the right containers in
+    //  the parameter list
+
+    if (!fTasks->PreProcess(fParlist))
+    {
+        cout << "Error detected while PreProcessing" << endl;
+        return;
+    }
+
+    //
+    //   loop over all events and process all tasks for
+    //   each event
+    //
+    cout << endl << "Eventloop running (";
+
+    if (maxcnt<0)
+        cout << "all";
+    else
+        cout << dec << maxcnt;
+
+    cout << " events)..." << flush;
+
+    Int_t dummy = maxcnt<0 ? 0 : maxcnt;
+
+    TStopwatch clock;
+    clock.Start();
+
+    if (maxcnt<0)
+        while (fTasks->Process() && ++dummy);
+    else
+        while (fTasks->Process() && dummy--);
+
+    clock.Stop();
+
+    cout << "Ready!" << endl << endl;
+
+    clock.Print();
+
+    cout << dec << endl
+        << "Time: " << clock.CpuTime() << "s"
+        << " for " << (maxcnt<0?dummy:maxcnt) << " Events"
+        << " --> " << (maxcnt<0?dummy:maxcnt)/clock.CpuTime() << " Events/s"
+        << endl << endl;
+
+    //
+    //  execute the post process of all tasks
+    //
+    fTasks->PostProcess();
+}
+
Index: /branches/start/MagicSoft/Mars/mbase/MLoopEvt.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MLoopEvt.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MLoopEvt.h	(revision 4308)
@@ -0,0 +1,29 @@
+#ifndef MLOOP_H
+#define MLOOP_H
+
+#ifndef MAGIC_H
+#include "MAGIC.h"
+#endif
+
+class MTaskList;
+class MParList;
+
+class MLoopEvt
+{
+private:
+    MTaskList *fTasks;
+    MParList  *fParlist;
+
+public:
+    MLoopEvt();
+    ~MLoopEvt();
+
+    void SetTaskList(MTaskList *t);
+    void SetParList(MParList *p);
+
+    void Eventloop(Int_t maxcnt=-1);
+
+    ClassDef(MLoopEvt, 1)
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mbase/MParContainer.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MParContainer.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MParContainer.cc	(revision 4308)
@@ -0,0 +1,138 @@
+//////////////////////////////////////////////////////////////////////////
+//                                                                      //
+// TNamed                                                               //
+//                                                                      //
+// The TNamed class is the base class for all named ROOT classes        //
+// A TNamed contains the essential elements (name, title)               //
+// to identify a derived object in containers, directories and files.   //
+// Most member functions defined in this base class are in general      //
+// overridden by the derived classes.                                   //
+//                                                                      //
+//////////////////////////////////////////////////////////////////////////
+#include "MParContainer.h"
+
+#include <iostream.h>    // cout
+
+#include "TClass.h"      // IsA
+#include "TROOT.h"       // TROOT::Identlevel
+#include "TVirtualPad.h" // gPad
+
+ClassImp(MParContainer)
+
+//______________________________________________________________________________
+MParContainer::MParContainer(const MParContainer &named)
+{
+   // TNamed copy ctor.
+
+   *fName = *(named.fName);
+   *fTitle = *(named.fTitle);
+}
+
+//______________________________________________________________________________
+MParContainer& MParContainer::operator=(const MParContainer& rhs)
+{
+   // TNamed assignment operator.
+
+   if (this != &rhs) {
+      TObject::operator=(rhs);
+      *fName  = *(rhs.fName);
+      *fTitle = *(rhs.fTitle);
+   }
+   return *this;
+}
+
+//______________________________________________________________________________
+Int_t MParContainer::Compare(TObject *obj)
+{
+   // Compare two TNamed objects. Returns 0 when equal, -1 when this is
+   // smaller and +1 when bigger (like strcmp).
+
+   if (this == obj) return 0;
+   return fName->CompareTo(obj->GetName());
+}
+
+//______________________________________________________________________________
+void MParContainer::Copy(TObject &obj)
+{
+   // Copy this to obj.
+
+   TObject::Copy(obj);
+   *(((MParContainer&)obj).fName)  = *fName;
+   *(((MParContainer&)obj).fTitle) = *fTitle;
+}
+
+//______________________________________________________________________________
+void MParContainer::FillBuffer(char *&buffer)
+{
+   // Encode TNamed into output buffer.
+
+   fName->FillBuffer(buffer);
+   fTitle->FillBuffer(buffer);
+}
+
+//______________________________________________________________________________
+void MParContainer::ls(Option_t *)
+{
+   // List TNamed name and title.
+
+   TROOT::IndentLevel();
+   cout <<"OBJ: " << IsA()->GetName() << "\t" << GetName() << "\t" << GetTitle() << " : "
+        << Int_t(TestBit(kCanDelete)) << endl;
+}
+
+//______________________________________________________________________________
+void MParContainer::Print(Option_t *)
+{
+   // Print TNamed name and title.
+
+   cout <<"OBJ: " << IsA()->GetName() << "\t" << GetName() << "\t" << GetTitle() << endl;
+}
+
+//______________________________________________________________________________
+void MParContainer::SetName(const char *name)
+{
+   // Change (i.e. set) the name of the TNamed.
+   // WARNING !!
+   // If the object is a member of a THashTable, THashList container
+   // The HashTable must be Rehashed after SetName
+   // For example the list of objects in the current directory is a THashList
+
+   *fName = name;
+   if (gPad && TestBit(kMustCleanup)) gPad->Modified();
+}
+
+//______________________________________________________________________________
+void MParContainer::SetObject(const char *name, const char *title)
+{
+   // Change (i.e. set) all the TNamed parameters (name and title).
+   // See also WARNING in SetName
+
+   *fName  = name;
+   *fTitle = title;
+   if (gPad && TestBit(kMustCleanup)) gPad->Modified();
+}
+
+//______________________________________________________________________________
+void MParContainer::SetTitle(const char *title)
+{
+   // Change (i.e. set) the title of the TNamed.
+
+   *fTitle = title;
+   if (gPad && TestBit(kMustCleanup)) gPad->Modified();
+}
+
+//______________________________________________________________________________
+Int_t MParContainer::Sizeof() const
+{
+   // Return size of the TNamed part of the TObject.
+
+   Int_t nbytes = fName->Sizeof() + fTitle->Sizeof();
+   return nbytes;
+}
+
+
+
+
+
+
+
Index: /branches/start/MagicSoft/Mars/mbase/MParContainer.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MParContainer.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MParContainer.h	(revision 4308)
@@ -0,0 +1,58 @@
+#ifndef MPARCONTAINER_H
+#define MPARCONTAINER_H
+
+//////////////////////////////////////////////////////////////////////////
+//                                                                      //
+// TNamed                                                               //
+//                                                                      //
+// The basis for a named object (name, title).                          //
+//                                                                      //
+//////////////////////////////////////////////////////////////////////////
+
+#ifndef ROOT_TObject
+#include <TObject.h>
+#endif
+#ifndef ROOT_TString
+#include <TString.h>
+#endif
+
+class MParContainer : public TObject
+{
+ private:
+    void Init(const char *name, const char *title)
+	{
+	    fName = new TString;
+	    (*fName) = name;
+	    fTitle = new TString;
+	    (*fTitle) = title;
+	}
+ protected:
+    TString   *fName;            //! object identifier
+    TString   *fTitle;           //! object title
+    
+ public:
+    MParContainer(const char *name="", const char *title="") { Init(name, title); }
+     MParContainer(const TString &name, const TString &title)  { Init(name, title); }
+     MParContainer(const MParContainer &named);
+     MParContainer& operator=(const MParContainer& rhs);
+     virtual ~MParContainer() { delete fName; delete fTitle; }
+     virtual Int_t    Compare(TObject *obj);
+     virtual void     Copy(TObject &named);
+     virtual void     FillBuffer(char *&buffer);
+     virtual const char  *GetName() const {return fName->Data();}
+     virtual const char  *GetTitle() const {return fTitle->Data();}
+     virtual ULong_t  Hash() { return fName->Hash(); }
+     virtual Bool_t   IsSortable() const { return kTRUE; }
+     virtual void     SetName(const char *name); // *MENU*
+     virtual void     SetObject(const char *name, const char *title);
+     virtual void     SetTitle(const char *title=""); // *MENU*
+     virtual void     ls(Option_t *option="");
+     virtual void     Print(Option_t *option="");
+     virtual Int_t    Sizeof() const;
+     
+     ClassDef(MParContainer, 1)  //The basis for Parameter Containers
+};
+
+#endif
+
+
Index: /branches/start/MagicSoft/Mars/mbase/MParList.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MParList.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MParList.cc	(revision 4308)
@@ -0,0 +1,100 @@
+///////////////////////////////////////////////////////////////////////
+//
+// MParList
+//
+// This class contains a list of different Parameter and Data
+// Containers. 
+//
+// You can add every parameter Container (Named object) to the
+// instance and access it from somewhere else via its Name.
+//
+///////////////////////////////////////////////////////////////////////
+
+#include "MParList.h"
+
+#include <TNamed.h>
+
+#include "MParContainer.h"
+
+ClassImp(MParList)
+
+MParList::MParList() : fNext(NULL)
+{
+  //
+  //  default constructor 
+  //  creates an empty list 
+  //
+
+}
+
+MParList::MParList(MParList &ts)
+{
+  //
+  // copy constructor 
+  //
+
+  fContainer.AddAll(&ts.fContainer);
+}
+
+
+Bool_t MParList::AddToList(MParContainer *obj, MParContainer *where)
+{
+  // 
+  //  Add an Container to the list.
+  // 
+  //  If 'where' is given, the object will be added after this.
+  //
+  
+  //
+  //  check if the object (you want to add) exists
+  //
+  if (!obj) return kTRUE;
+
+  cout << "Adding " << obj->GetName() << " to " << GetName() << "... " << flush;
+  //
+  //  check if it is in the list yet
+  //
+  if (fContainer.FindObject(obj))
+  {
+      cout << "WARNING: MParList::add: Container already added" << endl;
+      return kTRUE;
+  }
+
+  //
+  //  check if you want to add the new parameter container somewhere 
+  //  special (in that case you specify "where") 
+  //  
+  if (where)
+  {
+      if (!fContainer.FindObject(where))
+      {
+          cout << "ERROR: MParList::add: Cannot find parameter container after which the new one should be added!" << endl;
+          return kFALSE;
+      }
+  }
+
+  fContainer.Add(obj);
+  cout << "Done." << endl;
+
+  return kTRUE;
+}
+
+TObject *MParList::FindObject(const char *name) const
+{
+    //
+    //  Find an object in the list.
+    //  'name' is the name of the object you are searching for.
+    //
+    return (TObject*)fContainer.FindObject(name);
+}
+
+
+void MParList::Print(Option_t *t)
+{
+    //
+    //   print some information about the current status of MParList
+    //
+    cout << "ParList: " << this->GetName() << " <" << this->GetTitle() << ">" << endl;
+    cout << endl;
+}
+
Index: /branches/start/MagicSoft/Mars/mbase/MParList.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MParList.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MParList.h	(revision 4308)
@@ -0,0 +1,51 @@
+#ifndef MPARLIST_H
+#define MPARLIST_H
+
+#ifndef MAGIC_H
+#include "MAGIC.h"
+#endif
+
+#include <iostream.h>
+
+#ifndef ROOT_TOrdCollection
+#include "TOrdCollection.h"
+#endif
+
+class MParContainer;
+
+class MParList : public TObject
+{
+private:
+    TIter *fNext;               //!
+    TOrdCollection fContainer;	// Collection of Parameter and Data Containers
+
+public:
+    MParList();
+    MParList(MParList &ts);
+
+    ~MParList()
+    {
+        if (fNext)
+            delete fNext;
+    }
+
+    Bool_t AddToList(MParContainer *obj, MParContainer *where = NULL);
+
+    TObject *FindObject(const char *name) const;
+
+    void Reset()
+    {
+        fNext = new TIter(&fContainer);
+    }
+
+    MParContainer *Next()
+    {
+        return (MParContainer*)(*fNext)();
+    }
+
+    void Print(Option_t *t = NULL);
+
+    ClassDef(MParList, 1)	// list of Parameter Containers
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mbase/MReadTree.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MReadTree.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MReadTree.cc	(revision 4308)
@@ -0,0 +1,212 @@
+////////////////////////////////////////////////////////////////////////
+//
+//  MRawFile
+//
+//  This tasks reads the raw binary file like specified in the TDAS???
+//  and writes the data in the corresponding containers which are
+//  either retrieved from the parameter list or created and added.
+//
+////////////////////////////////////////////////////////////////////////
+
+#include "MReadTree.h"
+
+#include <iostream.h>
+#include <fstream.h>
+
+#include <TFile.h>
+#include <TTree.h>
+#include <TObjArray.h>
+
+#include "MTime.h"
+#include "MParList.h"
+
+ClassImp(MReadTree)
+
+MReadTree::MReadTree(const char *fname, const char *tname,
+                     const char *name, const char *title)
+{
+    *fName  = name  ? name  : "MReadTree";
+    *fTitle = title ? title : "Task to loop over all events in one single tree";
+
+    //
+    // open the input stream
+    //
+    fFileName = fname;
+    fTreeName = tname;
+}
+
+Bool_t MReadTree::PreProcess (MParList *pList)
+{
+    //
+    // open file
+    //
+    fFile = new TFile(fFileName, "READ");
+
+    if (!fFile->IsOpen())
+    {
+        cout << "MReadTree::PreProcess: ERROR: Cannot open file '";
+        cout << fFileName << "'" << endl;
+        return kFALSE;
+    }
+
+    fTree = (TTree*)fFile->Get(fTreeName);
+
+    if (!fTree)
+    {
+        cout << "MReadTree::PreProcess: ERROR: Cannot open tree '";
+        cout << fTreeName << "'" << endl;
+        return kFALSE;
+    }
+
+    fNumEntries = (UInt_t)fTree->GetEntries();
+    fNumEntry   = 0;
+
+    cout << "File: '" << fFileName << "'  Tree: '" << fTreeName;
+    cout << "' with " << fNumEntries << " Entries opened." << endl;
+
+    //
+    // Get all branches of this tree and
+    // create the Iterator to loop over all branches
+    //
+    TIter Next(fTree->GetListOfBranches());
+    TBranch *branch=NULL;
+    
+    //
+    // loop over all tasks for processing
+    //
+    while ( (branch=(TBranch*)Next()) )
+    {
+        //
+        // Get Name of Branch
+        //
+        const char *name = branch->GetName();
+
+        //
+        // check if object is existing in the list
+        //
+        MParContainer *pcont = (MParContainer*)pList->FindObject(name);
+
+        if (!pcont)
+        {
+            //
+            // if object is not existing in the list try to create one
+            //
+            cout << "MReadTree::PreProcess - WARNING: '" << name << "' not found... creating." << endl;
+
+            //
+            // try to get class from root environment
+            //
+            TClass *cls = gROOT->GetClass(name);
+
+            if (!cls)
+            {
+                //
+                // if class is not existing in the root environment
+                // we cannot proceed reading this branch
+                //
+                cout << "MReadTree::PreProcess - Warning: Class '" << name << "' not existing in dictionary. Branch skipped." << endl;
+                continue;
+            }
+
+            //
+            // create the container and add it to the list
+            //
+            pcont = (MParContainer*)cls->New();
+            cout << pcont << endl;
+            pList->AddToList(pcont);
+        }
+
+        //
+        // here pcont is a pointer the to container in which the data from
+        // the actual branch should be stored - enable branch.
+        //
+        branch->SetAddress(&pcont);
+    }
+
+    return kTRUE;
+}
+
+Bool_t MReadTree::Process()
+{
+    //
+    // check for end of file
+    //
+    if (fNumEntry==fNumEntries)
+        return kFALSE;
+
+    //
+    // get entry
+    //
+    fTree->GetEntry(fNumEntry/*++*/);
+    return kTRUE;
+}
+
+Bool_t MReadTree::PostProcess()
+{
+    //
+    // Close File
+    //
+    fFile->Close();
+
+    return kTRUE;
+}
+
+Bool_t MReadTree::DecEventNum(UInt_t dec)
+{
+    //
+    // Decrease the number of the event which is read by Process() next
+    // by one or more
+    //
+
+    //!
+    //! this function makes Process() read the event one (or more) before
+    //! the actual position (event) in the tree
+    //!
+    if (fNumEntry < dec/*+1*/)
+    {
+        cout << "MReadTree::SetPrevEvent: WARNING: " << fNumEntry/*-1*/ << "-" << dec << " out of Range." << endl;
+        return kFALSE;
+    }
+
+    fNumEntry -= dec/*+1*/;
+    return kTRUE;
+}
+
+Bool_t MReadTree::IncEventNum(UInt_t inc)
+{
+    //
+    // Increase the number of the event which is read by Process() next
+    // by one or more
+    //
+
+    //!
+    //! this function makes Process() read the next (or more) after
+    //! the actual position (event) in the tree
+    //! (Be careful: IncEventNum() or IncEventNum(1) does not chenge anything
+    //!  in the standard behaviour of the task)
+    //!
+    if (fNumEntry+inc/*-1*/ >= fNumEntries)
+    {
+        cout << "MReadTree::SkipEvents: WARNING: " << fNumEntry/*-1*/ << "+" << inc << " out of Range." << endl;
+        return kFALSE;
+    }
+
+    fNumEntry += inc/*-1*/;
+    return kTRUE;
+}
+
+Bool_t MReadTree::SetEventNum(UInt_t nr)
+{
+    //
+    // this function makes Process() read event number nr next
+    //
+    if (nr>=fNumEntries)
+    {
+        cout << "MReadTree::SetEventNum: WARNING: " << nr << " out of Range." << endl;
+        return kFALSE;
+    }
+
+    fNumEntry = nr;
+    return kTRUE;
+}
+
Index: /branches/start/MagicSoft/Mars/mbase/MReadTree.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MReadTree.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MReadTree.h	(revision 4308)
@@ -0,0 +1,39 @@
+#ifndef MREADTREE_H
+#define MREADTREE_H
+
+#ifndef MTASK_H
+#include "MTask.h"
+#endif
+
+class TFile;
+class TTree;
+
+class MReadTree : public MTask
+{
+private:
+    TFile  *fFile;       // Pointer to file
+    TTree  *fTree;       // Pointer to tree
+
+    UInt_t  fNumEntry;   // Namber of actual entry
+    UInt_t  fNumEntries; // Number of Events in Tree
+
+    TString fFileName;   // Name of File
+    TString fTreeName;   // Name of Tree
+
+public:
+    MReadTree(const char *filename, const char *treename, const char *name=NULL, const char *title=NULL);
+
+    Bool_t PreProcess(MParList *pList);
+    Bool_t Process();
+    Bool_t PostProcess();
+
+    Bool_t DecEventNum(UInt_t dec=1); // decrease number of event (position in tree)
+    Bool_t IncEventNum(UInt_t inc=1); // increase number of event (position in tree)
+    Bool_t SetEventNum(UInt_t nr);    // set number of event (position in tree)
+    UInt_t GetEventNum() {return fNumEntry;}
+    UInt_t GetEntries() {return fNumEntries;}
+
+    ClassDef(MReadTree, 1)	// Reads one tree
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mbase/MTask.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MTask.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MTask.cc	(revision 4308)
@@ -0,0 +1,78 @@
+///////////////////////////////////////////////////////////////////////
+//
+//   MTask
+// 
+//   Base class for all tasks which can perfomed in a tasklist
+//   For each event processed in the eventloop all the different
+//   tasks in the tasklist will be processed.
+//  
+//   So all tasks must inherit from this baseclass. 
+//
+//   The data member fEventType is used to indicate the type of events
+//   that are process by this task. There are the following different
+//   event types: 
+//
+//   This is the type of task for which this task should be processed
+//   taskType-bits: 7 6 5 4 3 2 1 0
+//   0 DATA_EVT
+//   1 CALIBRATION_EVT
+//   ? etc. etc. 
+//
+//   Inside this abstract class, there are three fundamental function: 
+//
+//   - PreProcess() :  executed before the eventloop starts. Here you 
+//                     can initiate different things, open files, etc. 
+//
+//   - Process()    :  executed for each event in the eventloop. Do in 
+//                     one task after the other (as the occur in the 
+//                     tasklist) the action of one task. 
+//  
+//   - PostProcess():  executed after the eventloop. Here you can close 
+//                     output files, start display of the run parameter, 
+//                     etc. 
+//  
+//  
+///////////////////////////////////////////////////////////////////////
+
+#include "MTask.h"
+
+#include <string.h>
+#include <iostream.h>
+
+ClassImp(MTask)
+
+Bool_t MTask::PreProcess( MParList *pList )
+{
+  //
+  // This is processed before the eventloop starts
+  // 
+  // It is the job of the PreProcess to connect the tasks
+  // with the right container in the parameter list. 
+  //
+  // the virtual implementation returns kTRUE
+  //
+  return kTRUE; 
+}
+
+
+Bool_t MTask::Process()
+{
+  //
+  // This is processed for every event in the eventloop 
+  //
+  // the virtual implementation returns kTRUE
+  //
+  return kTRUE;
+}
+
+Bool_t MTask::PostProcess()
+{
+  //
+  // This is processed after the eventloop starts
+  //
+  // the virtual implementation returns kTRUE
+  //
+  return kTRUE;
+}
+
+
Index: /branches/start/MagicSoft/Mars/mbase/MTask.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MTask.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MTask.h	(revision 4308)
@@ -0,0 +1,25 @@
+#ifndef MTASK_H
+#define MTASK_H
+
+#ifndef MINPUTSTREAMID_H
+#include "MInputStreamID.h"
+#endif
+
+class MParList;
+
+class MTask : public MInputStreamID
+{
+
+public:
+    ~MTask()
+    {
+    }
+
+    virtual Bool_t PreProcess(MParList *pList);
+    virtual Bool_t Process();
+    virtual Bool_t PostProcess();
+
+    ClassDef(MTask, 1)		// Base (abstract) class for a task
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mbase/MTaskList.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MTaskList.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MTaskList.cc	(revision 4308)
@@ -0,0 +1,202 @@
+///////////////////////////////////////////////////////////////////////
+//                                                                   //
+// MTaskList                                                          //
+//                                                                   //
+// Collection of tasks which should be processed in the eventloop    //
+//                                                                   //
+///////////////////////////////////////////////////////////////////////
+
+#include "MTaskList.h"
+
+#include <iostream.h>
+
+#include "MParList.h"
+#include "MInputStreamID.h"
+
+ClassImp(MTaskList)
+
+MTaskList::MTaskList(const char *title)
+{
+    //
+    // the name for the task list must be the same for all task lists
+    // because the task list (at the moment) is identified by exactly
+    // this name in the parameter list (by MEvtLoop::SetParList)
+    //
+    *fName  = "MTaskList";
+    *fTitle = title ? title : "List for Tasks";
+
+    //
+    //  default constructor: create empty task list
+    //
+}
+
+MTaskList::MTaskList(MTaskList &ts)
+{
+  //
+  //   CopyConstructor 
+  //   creates a new TaskList and put the contents of an existing
+  //   TaskList in the new TaskList. 
+  //
+  fTasks.AddAll(&ts.fTasks);
+}
+
+Bool_t MTaskList::AddToList(MTask *task, const char *type, MTask *where)
+{
+    // schedule task for execution, whether as first task, or after
+    // 'where'. 'tType' is the event type which should be processed
+    if (!task)
+        return kTRUE;
+
+    const char *name = task->GetName();
+
+    // FIXME: We agreed to put the task into list in an ordered way.
+
+    if (fTasks.FindObject(task))
+    {
+        cout << "WARNING: MTaskList::AddToList: Task already existing." << endl;
+        return kTRUE;
+    }
+
+    if (fTasks.FindObject(name))
+    {
+        cout << "WARNING: MTaskList::AddToList: '" << name << "' exists in List already." << endl;
+        return kTRUE;
+    }
+
+    if (where)
+    {
+        if (!fTasks.FindObject(where))
+        {
+            printf("ERROR: MTaskList::AddToList: Cannot find task after which the new task should be scheduled!\n");
+            return kFALSE;
+        }
+    }
+
+    cout << "Adding " << name << " to " << GetName() << " for " << type << "... " << flush;
+
+    task->SetStreamId(type);
+    fTasks.Add(task);
+
+    cout << "Done." << endl;
+
+    return kTRUE;
+}
+
+
+Bool_t MTaskList::PreProcess( MParList *pList )
+{ 
+    //
+    // do pre processing (before eventloop) of all tasks in the task-list
+    //
+    cout << "Preprocessing... " << flush;
+
+    //
+    //  create the Iterator over the tasklist
+    //
+    TIter next(&fTasks);
+
+    MTask *task=NULL;
+
+    //
+    // loop over all tasks for preproccesing
+    //
+    while ( (task=(MTask*)next()) )
+    {
+        cout << task->GetName() << "... " << flush;
+
+        if (!task->PreProcess( pList ))
+            return kFALSE;
+    }
+
+    cout << endl;
+
+    return kTRUE;
+}
+
+Bool_t MTaskList::Process()
+{
+  //
+  // do the event execution of all tasks in the task-list
+  //
+  
+  //
+  //  create the Iterator for the TaskList
+  //
+  TIter next(&fTasks);
+  MTask *task=NULL;
+    
+  //
+  // loop over all tasks for processing 
+  //
+  while ( (task=(MTask*)next()) )
+  {
+      if (!strcmp(GetStreamId(), task->GetStreamId()) ||
+          !strcmp(task->GetStreamId(), "All"))
+      {
+          switch (task->Process())
+          {
+          case kTRUE:
+              //
+              // everything was OK: go on
+              //
+              continue;
+
+          case kFALSE:
+              //
+              // an error occured: stop eventloop
+              //
+              return kFALSE;
+
+          case kCONTINUE:
+              //
+              // something occured: skip the rest of the tasks for this event
+              //
+              break;
+          }
+      }
+  }
+  return kTRUE;
+}
+
+Bool_t MTaskList::PostProcess()
+{
+  //
+  // do post processing (before eventloop) of all tasks in the task-list
+  //
+
+    cout << "Postprocessing... " << flush;
+
+  //
+  //  create the Iterator for the TaskList
+  //
+  TIter next(&fTasks);
+  
+  MTask *task=NULL;
+
+  //
+  //  loop over all tasks for postprocessing
+  //  
+  while ( (task=(MTask*)next()) )
+  {
+      cout << task->GetName() << "... " << flush;
+
+      if (!task->PostProcess())
+          return kFALSE;
+  }
+
+  cout << endl;
+
+  return kTRUE;
+}
+
+
+
+void MTaskList::Print(Option_t *t)
+{
+  cout << "TaskList: " << this->GetName() << " <" <<  this->GetTitle() << ">" << endl;
+  
+  fTasks.Print();
+
+  cout << endl;
+}
+
Index: /branches/start/MagicSoft/Mars/mbase/MTaskList.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MTaskList.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MTaskList.h	(revision 4308)
@@ -0,0 +1,36 @@
+#ifndef MTASKLIST_H
+#define MTASKLIST_H
+
+#ifndef ROOT_TOrdCollection
+#include <TOrdCollection.h>
+#endif
+#ifndef MTASK_H
+#include "MTask.h"
+#endif
+
+class MParList;
+class MInputStreamID;
+
+class MTaskList : public MTask
+{
+private:
+    TOrdCollection fTasks;	// Container for the ordered list of different tasks
+
+
+public:
+    MTaskList(const char *title=NULL);
+
+    MTaskList(MTaskList &ts);
+
+    Bool_t AddToList(MTask *task, const char *tType="All", MTask *where = NULL);
+
+    Bool_t PreProcess(MParList *pList);
+    Bool_t Process();
+    Bool_t PostProcess();
+
+    void Print(Option_t *t = NULL);
+
+    ClassDef(MTaskList, 1)	// Collection of tasks to be performed in the eventloop
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mbase/MTime.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MTime.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MTime.cc	(revision 4308)
@@ -0,0 +1,45 @@
+///////////////////////////////////////////////////////////////////////
+//
+//   MTime
+//
+///////////////////////////////////////////////////////////////////////
+
+#include "MTime.h"
+
+#include <iostream.h>
+#include <iomanip.h>
+
+ClassImp(MTime)
+
+void MTime::Print(Option_t *)
+{ 
+    cout << "MTime Information:  " << hex
+        << " 0x" <<setfill('0') << setw(2) << fTimeStamp[0]
+        << " 0x" <<setfill('0') << setw(2) << fTimeStamp[1] << endl << endl;
+} 
+    /*
+inline Bool_t operator<(MTime &t1, MTime &t2)
+{
+    return (t1.GetTimeHi()<=t2.GetTimeHi()) && (t1.GetTimeLo()<t2.GetTimeLo());
+}
+
+inline Bool_t operator>(MTime &t1, MTime &t2)
+{
+    return (t1.GetTimeHi()>=t2.GetTimeHi()) && (t1.GetTimeLo()>t2.GetTimeLo());
+}
+
+inline Bool_t operator<=(MTime &t1, MTime &t2)
+{
+    return (t1.GetTimeHi()<=t2.GetTimeHi()) && (t1.GetTimeLo()<=t2.GetTimeLo());
+}
+
+inline Bool_t operator>=(MTime &t1, MTime &t2)
+{
+    return (t1.GetTimeHi()>=t2.GetTimeHi()) && (t1.GetTimeLo()>=t2.GetTimeLo());
+}
+
+inline Bool_t operator==(MTime &t1, MTime &t2)
+{
+    return (t1.GetTimeLo()==t2.GetTimeLo()) && (t1.GetTimeHi()==t2.GetTimeHi());
+}
+*/
Index: /branches/start/MagicSoft/Mars/mbase/MTime.h
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/MTime.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/MTime.h	(revision 4308)
@@ -0,0 +1,105 @@
+#ifndef MTIME_H
+#define MTIME_H
+
+#ifndef MPARCONTAINER_H
+#include "MParContainer.h"
+#endif
+
+class MTime : public MParContainer
+{
+private:
+    UInt_t fTimeStamp[2]; // type of raw event which should be processed by this task
+    UInt_t fDuration;     // time of validity
+
+public:
+
+    MTime(const char *name=NULL, const char *title=NULL)
+    {
+        *fName = name ? name : ClassName();
+        *fTitle = title;
+
+        SetTime(0,0);
+    }
+
+    MTime(UInt_t t1, UInt_t t0) 
+    {
+        SetTime(t1, t0);
+    }
+
+    MTime(MTime& t)
+    {
+        fTimeStamp[0] = t.fTimeStamp[0];
+        fTimeStamp[1] = t.fTimeStamp[1];
+        fDuration = t.fDuration;
+    }
+
+    void operator=(MTime &t)
+    {
+        fTimeStamp[0] = t.fTimeStamp[0];
+        fTimeStamp[1] = t.fTimeStamp[1];
+        fDuration = t.fDuration;
+    }
+
+    ~MTime() {}
+
+    void Print(Option_t *t=NULL);
+
+    void SetTime(UInt_t t1, UInt_t t0)
+    {
+	fTimeStamp[0] = t1;
+	fTimeStamp[1] = t0;
+    }
+
+    void SetDuration(UInt_t t)
+    {
+	fDuration = t;
+    }
+
+    MTime *GetTime()
+    {
+        return this;
+    }
+
+    UInt_t GetTimeLo()
+    {
+	return fTimeStamp[0];
+    }
+    UInt_t GetTimeHi()
+    {
+	return fTimeStamp[1];
+    }
+
+    UInt_t GetDuration()
+    {
+	return fDuration;
+    }
+
+    ClassDef(MTime, 1)	// A general Mars time stamp
+};
+
+inline Bool_t operator<(MTime &t1, MTime &t2)
+{
+    return (t1.GetTimeHi()<=t2.GetTimeHi()) && (t1.GetTimeLo()<t2.GetTimeLo());
+}
+
+inline Bool_t operator>(MTime &t1, MTime &t2)
+{
+    return (t1.GetTimeHi()>=t2.GetTimeHi()) && (t1.GetTimeLo()>t2.GetTimeLo());
+}
+
+inline Bool_t operator<=(MTime &t1, MTime &t2)
+{
+    return (t1.GetTimeHi()<=t2.GetTimeHi()) && (t1.GetTimeLo()<=t2.GetTimeLo());
+}
+
+inline Bool_t operator>=(MTime &t1, MTime &t2)
+{
+    return (t1.GetTimeHi()>=t2.GetTimeHi()) && (t1.GetTimeLo()>=t2.GetTimeLo());
+}
+
+inline Bool_t operator==(MTime &t1, MTime &t2)
+{
+    return (t1.GetTimeLo()==t2.GetTimeLo()) && (t1.GetTimeHi()==t2.GetTimeHi());
+}
+
+#endif
Index: /branches/start/MagicSoft/Mars/mbase/Makefile
===================================================================
--- /branches/start/MagicSoft/Mars/mbase/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mbase/Makefile	(revision 4308)
@@ -0,0 +1,132 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+# @maintitle
+
+# @code
+
+#
+#  please change all system depend values in the 
+#  config.mk.${OSTYPE} file 
+#
+#
+INCLUDEMK = ../Makefile.conf.$(OSTYPE)
+include $(INCLUDEMK)
+
+# @endcode 
+
+# @code 
+
+LIB   = libmbase.a
+
+#
+#  connect the include files defined in the config.mk file
+#
+INCLUDES = -I./
+
+#
+#  ----->>>   root libraries
+#
+
+ROOTLIBS   =  `root-config --libs`
+ROOTGLIBS  =  `root-config --glibs`
+ROOTCFLAGS =  `root-config --cflags`
+
+#
+#  compiler flags
+#
+
+CXXFLAGS  = $(ROOTCFLAGS) $(INCLUDES) $(OPTIM) $(DEBUG)
+CFLAGS    = $(CXXFLAGS)
+FFLAGS    = $(CXXFLAGS)
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cc .cxx .h .hxx .o 
+
+
+SRCFILES = MTask.cc \
+	   MTaskList.cc \
+           MParContainer.cc \
+	   MParList.cc \
+	   MInputStreamID.cc \
+           MEvtLoop.cc \
+           MReadTree.cc \
+	   MArray.cc \
+	   MArrayB.cc \
+	   MArrayS.cc \
+           MTime.cc
+
+SRCS    = $(SRCFILES)
+HEADERS = $(SRCFILES:.cc=.h)
+OBJS    = $(SRCFILES:.cc=.o) 
+
+############################################################
+
+all: $(LIB)
+
+depend:
+	@makedepend $(SRCS) $(INCLUDES) $(ROOTCFLAGS) \
+        -fMakefile.depend 2> kk.kk ; cat kk.kk
+
+$(LIB): $(OBJS) BaseCint.o
+	@echo " - Building Library $(LIB) ... "
+	@$(AR) $(LIB) *.o
+
+BaseCint.cc: $(HEADERS) 
+	@echo 
+	@echo " - Generating dictionary BaseCint.cc ..."
+
+	@$(ROOTSYS)/bin/rootcint -f BaseCint.cc \
+	-c $(INCLUDES) $(HEADERS) BaseIncl.h BaseLinkDef.h
+
+.cxx.o:	
+	@echo " - Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.cc.o:	
+	@echo " - Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo " - Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+#
+# The cleaning facility
+#
+
+rmlib:	
+	@echo "Removing libraries..."
+	@rm -f lib*.a
+
+rmcint:	
+	@echo "Removing cint-stuff..."
+	@rm -f BaseCint.*
+
+rmobjs:	
+	@echo "Removing object files..."
+	@rm -f *.o
+
+rmbin:	
+	@echo "Removing binary files..."
+	@rm -f core
+
+
+clean:	rmlib rmcint rmobjs rmbin
+
+mrproper:	clean
+	@echo "Removing *~ kk.kk html/..."
+	@rm -f *~ kk.kk
+
+cflags: 
+	@echo $(INCLUDES) $(CXXFLAGS)
+
+# @endcode
+
Index: /branches/start/MagicSoft/Mars/mdatacheck/DataCheckIncl.h
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/DataCheckIncl.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/DataCheckIncl.h	(revision 4308)
@@ -0,0 +1,14 @@
+#ifndef __CINT__
+
+#include "MParList.h"
+
+#include "MRawRunHeader.h"
+#include "MRawEvtHeader.h"
+#include "MRawEvtData.h"
+#include "MRawCrateArray.h"
+#include "MTime.h"
+#include "MInputStreamID.h"
+
+#include "MReadTree.h"
+
+#endif // __CINT__
Index: /branches/start/MagicSoft/Mars/mdatacheck/DataCheckLinkDef.h
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/DataCheckLinkDef.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/DataCheckLinkDef.h	(revision 4308)
@@ -0,0 +1,14 @@
+#ifdef __CINT__
+
+#pragma link off all globals;
+#pragma link off all classes;
+#pragma link off all functions;
+
+#pragma link C++ class MDumpEvtHeader;
+#pragma link C++ class MFillAdcSpect;
+#pragma link C++ class MShowSpect;
+
+#pragma link C++ class MHistosAdc;
+#pragma link C++ class MGDisplayAdc;
+
+#endif
Index: /branches/start/MagicSoft/Mars/mdatacheck/MDumpEvtHeader.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/MDumpEvtHeader.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/MDumpEvtHeader.cc	(revision 4308)
@@ -0,0 +1,47 @@
+#include "MDumpEvtHeader.h"
+
+//ClassImp(MDumpEvtHeader)
+
+Bool_t MDumpEvtHeader::PreProcess (MParList *pList)
+{
+  fRawEvtHeader = (MRawEvtHeader*)pList->FindObject("MRawEvtHeader");
+  if (!fRawEvtHeader)
+    {
+      cout << "MRawFileRead::PreProcess - WARNING: MRawEvtHeader not found... creating." << endl;
+      exit(123) ;  
+    }
+  
+  fRawEvtData = (MRawEvtData*)pList->FindObject("MRawEvtData");
+  
+  if (!fRawEvtData)
+    {
+      cout << "MRawFileRead::PreProcess - WARNING: MRawEvtData not found... creating." << endl;
+      exit(123) ;  
+    }
+
+  fPixelIter = new MRawEvtPixelIter( fRawEvtData );
+  
+  return kTRUE ; 
+
+} 
+
+    
+Bool_t MDumpEvtHeader::Process()
+{
+  fRawEvtHeader->Print() ; 
+
+  //fRawEvtData->Print() ; 
+
+  fPixelIter->Reset() ; 
+
+  while ( fPixelIter->Next() )
+    { 
+      cout << " " << fPixelIter->GetPixelId() ; 
+      
+    } 
+
+  cout << endl ; 
+  
+  return kTRUE;
+
+} 
Index: /branches/start/MagicSoft/Mars/mdatacheck/MDumpEvtHeader.h
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/MDumpEvtHeader.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/MDumpEvtHeader.h	(revision 4308)
@@ -0,0 +1,35 @@
+#ifndef MDUMPEVTHEADER_H
+#define MDUMPEVTHEADER_H
+
+#ifndef MTASK_H
+#include "MTask.h"
+#endif
+
+#include "MParList.h"
+#include <TSystem.h>
+
+#include "MRawEvtHeader.h"
+#include "MRawEvtData.h"
+#include "MRawEvtPixelIter.h"
+
+class MDumpEvtHeader : public MTask {
+ private:
+  MRawEvtHeader    *fRawEvtHeader;
+
+  MRawEvtData      *fRawEvtData;
+
+  MRawEvtPixelIter *fPixelIter ; 
+
+ public:   
+  MDumpEvtHeader () { 
+    fRawEvtHeader = NULL ; 
+  } ; 
+
+  Bool_t PreProcess(MParList *pList);
+  Bool_t Process() ;
+  
+  //  ClassDef(MDumpEvtHeader, 1)	// Task to read the raw data binary file
+
+};
+    
+#endif
Index: /branches/start/MagicSoft/Mars/mdatacheck/MFillAdcSpect.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/MFillAdcSpect.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/MFillAdcSpect.cc	(revision 4308)
@@ -0,0 +1,74 @@
+#include "MFillAdcSpect.h"
+
+//ClassImp(MFillAdcSpect)
+
+MFillAdcSpect::MFillAdcSpect (const char *name, const char *title)
+{
+  *fName  = name  ? name  : "MFillAdcSpect";
+  *fTitle = title ? title : "Task to fill the adc spectra with  raw data";
+
+
+  
+  fRawEvtData   = NULL ; 
+  fPixelIter    = NULL ; 
+}
+
+
+
+Bool_t MFillAdcSpect::PreProcess (MParList *pList)
+{
+  // connect the raw data with this task
+  
+  fRawEvtData = (MRawEvtData*)pList->FindObject("MRawEvtData");
+  
+  if (!fRawEvtData)
+    {
+      cout << "MRawFileRead::PreProcess - WARNING: MRawEvtData not found... creating." << endl;
+      exit(123) ;  
+    }
+
+  fPixelIter = new MRawEvtPixelIter( fRawEvtData );
+  
+  fHistos = (MHistosAdc*)pList->FindObject("MHistosAdc");
+  
+  if (!fHistos) 
+    {
+      cout << "MRawFileRead::PreProcess - WARNING: MHistosAdc not found... exit..." << endl;
+      return kFALSE ;  
+    }
+
+
+  return kTRUE ; 
+
+} 
+
+    
+Bool_t MFillAdcSpect::Process()
+{
+  //  loop over the pixels and fill the values in the histograms
+  
+  fPixelIter->Reset() ; 
+
+  Int_t iHighSamples = fRawEvtData->GetNumHiGainSamples() ; 
+  Int_t iLowSamples  = fRawEvtData->GetNumLoGainSamples() ; 
+
+  //  cout << "HighSamples " << iHighSamples ;
+
+  while ( fPixelIter->Next() )
+    { 
+      for (Int_t i=0 ; i< iHighSamples ; i++ )
+	{ 
+	  fHistos->FillAdcHistHigh ( fPixelIter->GetPixelId(),
+				     fPixelIter->GetHiGainFadcSamples()[i] );
+	}
+
+      for (Int_t i=0 ; i< iLowSamples ; i++ )
+	{ 
+	  fHistos->FillAdcHistLow ( fPixelIter->GetPixelId(),
+				    fPixelIter->GetLoGainFadcSamples()[i] );
+	}
+    } 
+  
+  return kTRUE;
+  
+} 
Index: /branches/start/MagicSoft/Mars/mdatacheck/MFillAdcSpect.h
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/MFillAdcSpect.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/MFillAdcSpect.h	(revision 4308)
@@ -0,0 +1,34 @@
+#ifndef MFILLADCSPECT_H
+#define MFILLADCSPECT_H
+
+#ifndef MTASK_H
+#include "MTask.h"
+#endif
+
+#include "MParList.h"
+#include <TSystem.h>
+
+#include "MRawEvtHeader.h"
+#include "MRawEvtData.h"
+#include "MRawEvtPixelIter.h"
+#include "MHistosAdc.h"
+
+class MFillAdcSpect : public MTask {
+ private:
+  MRawEvtData      *fRawEvtData;
+  MRawEvtPixelIter *fPixelIter ; 
+
+  MHistosAdc       *fHistos ; 
+
+ public:   
+  MFillAdcSpect (const char *name=NULL, const char *title=NULL); 
+
+  Bool_t PreProcess(MParList *pList);
+  Bool_t Process() ;
+  
+  //  ClassDef(MFillAdcSpect, 1)	// Task to read the raw data binary file
+
+};
+    
+#endif
+
Index: /branches/start/MagicSoft/Mars/mdatacheck/MGDisplayAdc.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/MGDisplayAdc.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/MGDisplayAdc.cc	(revision 4308)
@@ -0,0 +1,548 @@
+
+#include "MGDisplayAdc.h"
+
+MGDisplayAdc::MGDisplayAdc ( MHistosAdc *Histos,
+			    const TGWindow *p, const TGWindow *main, 
+			    UInt_t w, UInt_t h, 
+			    UInt_t options) 
+	: TGTransientFrame(p, main, w, h, options ) 
+{
+	//   default constructor
+	// 
+	fHists = Histos ; 
+	
+	//   the top frame for the list and some buttons and the Canvas 
+  
+	fFrameTop = new TGHorizontalFrame (this, 60,20,  kFitWidth ) ;
+  
+  
+	//    left part of top frame
+	fFT1 =  new TGVerticalFrame (fFrameTop, 80,300,  kFitWidth ) ; 
+  
+	fHistoList = new TGListBox ( fFT1, M_LIST_HISTO ) ; 
+	fHistoList->Associate( this ) ;
+	fFT1->AddFrame ( fHistoList, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 10 ) )  ;
+	
+	fHistoList->Resize(80, 405 ) ; 
+	
+	
+	fFrameTop->AddFrame (fFT1, new TGLayoutHints ( kLHintsTop , 10, 10, 10, 10 ) ) ; 
+	
+	//    middle part of top frame
+	// 
+  
+	fFT2 =  new TGVerticalFrame (fFrameTop, 80,20,  kFitWidth ) ;  
+	
+	fButtonPrev = new TGTextButton ( fFT2, "Prev Histo", M_BUTTON_PREV ) ; 
+	fButtonPrev->Associate (this) ; 
+	fFT2->AddFrame ( fButtonPrev, new TGLayoutHints (kLHintsLeft | kLHintsTop,10, 10, 0, 10 ) )  ; 
+	
+  
+	fVslider1 = new TGVSlider (fFT2, 250, kSlider1 | kScaleBoth, M_VSId1);
+	
+	fVslider1->Associate(this);
+	fVslider1->SetRange(0, 576);
+	fFT2->AddFrame(fVslider1);   	
+	
+	fButtonNext = new TGTextButton ( fFT2, "Next Histo", M_BUTTON_NEXT ) ;
+	fButtonNext->Associate (this) ;
+	fFT2->AddFrame ( fButtonNext, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 5 ) )  ;  		
+	
+	fFrameTop->AddFrame (fFT2, new TGLayoutHints ( kLHintsTop , 10, 10, 10, 10 ) ) ; 	
+	
+
+
+	// Radio buttons, used to select the high, low anh high/low display
+		
+	fRadio[0] = new  TGRadioButton(fFT2, "&High Gain", M_RADIO_HIGH);                       
+	fFT2->AddFrame ( fRadio[0], new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 5 ) )  ; 
+	fRadio[0]->Associate(this); 
+	fRadio[0]->SetState(kButtonDown);
+	fHistoLock = kFALSE;
+	fHistoType=1;  	
+	
+        fRadio[1] = new  TGRadioButton(fFT2, "&Low Gain", M_RADIO_LOW);  
+	fFT2->AddFrame ( fRadio[1], new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 5 ) )  ;
+	fRadio[1]->Associate(this); 
+	
+	fRadio[2] = new  TGRadioButton(fFT2, "H&igh/Low Gain", M_RADIO_LH); 
+	fFT2->AddFrame ( fRadio[2], new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 5 ) )  ; 
+	fRadio[2]->Associate(this); 
+       
+	
+	
+	//    right part of top frame
+	// 
+	fFT3 =  new TGVerticalFrame (fFrameTop, 60, 60,  kFitWidth ) ;
+  
+    
+	
+	fECanv = new TRootEmbeddedCanvas("fECanv", fFT3, 400, 400 ) ;	 
+	
+	fFT3->AddFrame( fECanv, new TGLayoutHints ( kLHintsCenterX | kLHintsCenterY | kLHintsExpandX | kLHintsExpandY , 10, 10, 10, 10 ) ) ;
+	
+	
+	//the button for reseting the histogram
+        fButtonReset = new TGTextButton ( fFT3, "Reset histo", M_BUTTON_RESET ) ;
+        fButtonReset->Associate (this) ;
+        fFT3->AddFrame ( fButtonReset, new TGLayoutHints (kLHintsCenterX | kLHintsTop,10, 10, 0, 10 ) )  ;
+	//
+	 
+	  
+	
+	fCanv = fECanv->GetCanvas() ; 
+	
+	fFrameTop->AddFrame (fFT3, new TGLayoutHints ( kLHintsCenterX | kLHintsCenterY | kLHintsExpandX | kLHintsExpandY , 10, 10, 10, 10 ) ) ; 
+	
+	AddFrame ( fFrameTop, new TGLayoutHints ( kLHintsTop | kLHintsExpandX , 10, 10, 10, 10 ) ) ; 
+ 
+	
+	//  fHists->GetHighList()->At( fHistoList->GetSelected()-1)->Draw() ;  
+	//
+	//   the low frame for the control buttons
+	//
+	fFrameLow = new TGHorizontalFrame (this, 60,20, kFixedWidth ) ;
+  
+	fButtonSave = new TGTextButton ( fFrameLow, "Save", M_BUTTON_SAVE ) ; 
+	fButtonSave->Associate (this) ; 
+	fFrameLow->AddFrame ( fButtonSave, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ;
+	
+	fButtonPrint = new TGTextButton ( fFrameLow, "Print", M_BUTTON_PRINT ) ; 
+	fButtonPrint->Associate (this) ; 
+	fFrameLow->AddFrame ( fButtonPrint, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ; 
+  
+	fButtonPrintAll = new TGTextButton ( fFrameLow, "PrintAll", M_BUTTON_PRINTALL ) ; 
+	fButtonPrintAll->Associate (this) ; 
+	fFrameLow->AddFrame ( fButtonPrintAll, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ;
+  
+  
+  
+	fButtonClose = new TGTextButton ( fFrameLow, "Close", M_BUTTON_CLOSE ) ; 
+	fButtonClose->Associate (this) ; 
+	fFrameLow->AddFrame ( fButtonClose, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ; 
+	AddFrame ( fFrameLow, new TGLayoutHints ( kLHintsBottom | kLHintsExpandX , 10, 10, 10, 10 ) ) ; 
+	
+	//
+	//
+	//
+	BuildHistoList() ; 
+  
+	MapSubwindows();
+ 
+	Layout();
+	
+	SetWindowName("ADC Spectra");
+	SetIconName("ADC Spectra");
+
+	//Here the initial display is set to hitogram 0
+	
+	fHistoList->Select(1, kTRUE);
+	fHists->GetHighList()->At( fHistoList->GetSelected()-1)->Draw() ;
+	fHistoList->SetTopEntry(fHistoList->GetSelected());
+	fCanv->Modified() ;
+	fCanv->Update() ;
+	fVslider1->SetPosition( fHistoList->GetSelected()-1);
+	 
+	
+	MapWindow();
+	SetWMSizeHints(550, 550, 1000, 1000, 1, 1); 
+
+}  
+
+// ======================================================================
+// ======================================================================
+// 
+// 
+
+MGDisplayAdc::~MGDisplayAdc () 
+{ 
+
+		
+	delete fButtonSave ; 
+	delete fButtonPrint ; 
+	delete fButtonPrintAll ; 
+	delete fButtonClose ; 
+	
+	delete fButtonPrev; 
+	delete fButtonNext ; 
+	delete fButtonReset ;
+	
+	delete fVslider1; 
+	delete fECanv ;
+	
+
+	delete fHists; 
+	delete fHistoList ;
+	delete fRadio[2];
+	delete fRadio[1];
+	delete fRadio[0]; 
+	delete fFT1 ; 
+	delete fFT2 ; 
+	delete fFT3 ; 
+	delete fFrameLow ; 
+	delete fFrameTop ; 
+	
+	
+}  
+
+// ======================================================================
+// ======================================================================
+
+void MGDisplayAdc::CloseWindow()
+{
+  // Got close message for this MainFrame. Calls parent CloseWindow()
+  // (which destroys the window) and terminate the application.
+  // The close message is generated by the window manager when its close
+  // window menu item is selected.
+  // 
+  delete this ; 
+  //  TGTransientFrame::CloseWindow();
+  //  TGMainFrame::CloseWindow();
+  //   gROOT->GetApplication()->Terminate(0)  ; 
+}
+
+
+
+// ======================================================================
+// ======================================================================
+
+Bool_t MGDisplayAdc::BuildHistoList(Int_t type ) 
+{ 
+	//   looks in the container of the AdcSpectra and reads in the 
+	//   Histogramms in there. 
+	//
+	//   In the class MHistosAdc are in fact two lists. One for the high and
+	//   one for the low gain. Here we will use only the high gain list!!!
+	//   With some special options (settings in the gui) we will also be able
+	//   to plot the low gain
+	// 
+	for ( Int_t i=0 ; i < fHists->GetHighEntries(); i++ ) {	       				
+		fHistoList->AddEntry(fHists->GetHighList()->At(i)->GetName(), i+1) ;
+		
+	} 
+	
+	fHistoList->MapSubwindows() ;
+	fHistoList->Layout() ;
+	return (kTRUE) ; 
+} 
+
+// ======================================================================
+// ======================================================================
+
+Bool_t MGDisplayAdc::ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
+{     
+	
+	// Process events generated by the buttons in the frame.
+	// 
+	Int_t   buttons = 4, retval = 0 ; 
+	Char_t  wort[100] ;
+	Char_t  extens[5] ;
+	Char_t  command[110] ;
+	
+	TGFileItem *item ;     // to process items in the file view container
+	void *np = NULL ;      // null pointer
+	
+	switch (GET_MSG(msg)) 
+	{
+	    case kC_COMMAND:
+		switch (GET_SUBMSG(msg)) 
+		{
+		    case kCM_BUTTON:
+			
+			switch (parm1)
+			{  
+				
+			    case M_BUTTON_SAVE:
+				new TGMsgBox(fClient->GetRoot(), this,
+					     "WARNING!",
+					     "Not implemented yet.",
+					     kMBIconExclamation, buttons, &retval); 
+				
+				break ; 
+				
+			    case M_BUTTON_PRINT:
+				break;
+				
+			    case M_BUTTON_RESET:
+				new TGMsgBox(fClient->GetRoot(), this,
+					     "WARNING!",
+                                             "Not implemented yet.",
+					     kMBIconExclamation, buttons, &retval);  												
+				
+				break;
+				
+				
+			    case M_BUTTON_CLOSE: 
+				CloseWindow() ; 
+				break ; 
+				
+				// The selection for "Next Histogram".
+				// There is also a link for the sicronisation with the slider 
+				// 
+			    case M_BUTTON_PREV:
+								
+				if (!( fHistoList->GetSelected()-1 ) == 0)
+				{
+				    if (fHistoLock == kTRUE )
+				    {
+					    fCanvas->cd(1);
+					    fHistoList->Select(fHistoList->GetSelected()-1, kTRUE); 
+					    fHists->GetHighList()->At( fHistoList->GetSelected()-1)->Draw() ;
+					    fCanvas->cd(2);
+					    fHists->GetLowList()->At( fHistoList->GetSelected()-1)->Draw() ; 
+				    }
+					else
+					{
+						fCanv->cd();
+						fHistoList->Select(fHistoList->GetSelected()-1, kTRUE);
+						fHists->GetHighList()->At( fHistoList->GetSelected()-1)->Draw() ; 
+					}
+					
+					fHistoList->SetTopEntry(fHistoList->GetSelected());  
+					fCanv->Modified() ;
+					fCanv->Update() ;
+					fVslider1->SetPosition( fHistoList->GetSelected()-1);
+				}
+				if ((fRadio[1]->GetState()) == kButtonDown)
+				{
+					fRadio[0]->SetState(kButtonDown);
+					fRadio[1]->SetState(kButtonUp);
+				} 
+				
+
+				break;
+				
+				//The same as above, but for next histogram
+				
+			    case M_BUTTON_NEXT:
+			        
+				if (!((fHistoList->GetSelected()-1)==576))
+					
+                                {
+					if (fHistoLock == kTRUE )
+					{
+						fCanvas->cd(1);
+						fHistoList->Select(fHistoList->GetSelected()+1, kTRUE);
+						fHists->GetHighList()->At( fHistoList->GetSelected()-1)->Draw() ;
+						fCanvas->cd(2);
+						fHists->GetLowList()->At( fHistoList->GetSelected()-1)->Draw() ;  
+					}										
+					else
+                                        {  
+						fCanv->cd();
+                                                fHistoList->Select(fHistoList->GetSelected()+1, kTRUE);
+                                                fHists->GetHighList()->At( fHistoList->GetSelected()-1)->Draw() ; 
+						
+					}
+						fHistoList->SetTopEntry(fHistoList->GetSelected());
+						fCanv->Modified() ;
+						fCanv->Update() ;
+						fVslider1->SetPosition( fHistoList->GetSelected()-1);
+					
+				}
+				if ((fRadio[1]->GetState()) == kButtonDown)
+					{
+						fRadio[0]->SetState(kButtonDown);
+						fRadio[1]->SetState(kButtonUp);
+					}
+				break;
+			    default:
+				break ;
+			} 
+			
+		    case kCM_MENU:
+			switch (parm1)
+			{
+			}
+			break ;
+			
+		    default:
+			break ;
+		
+		
+			
+		    case kCM_RADIOBUTTON:
+	  
+			switch(parm1)
+			{
+			    case M_RADIO_HIGH:
+				fRadio[1]->SetState(kButtonUp);
+				fRadio[2]->SetState(kButtonUp);
+				fHistoLock = kFALSE;
+				fHistoType=1;
+                                fCanv->cd();
+				fHistoList->Select(fHistoList->GetSelected(), kTRUE);
+                                fHists->GetHighList()->At( fHistoList->GetSelected()-1)->Draw() ;
+                                fHistoList->SetTopEntry(fHistoList->GetSelected());
+                                fCanv->Modified() ;
+                                fCanv->Update() ;
+                                fVslider1->SetPosition( fHistoList->GetSelected()-1);
+				
+				
+				break;
+				
+			    case M_RADIO_LOW:
+				fRadio[0]->SetState(kButtonUp);
+				fRadio[2]->SetState(kButtonUp);
+				fCanv->cd(); 
+				fHistoLock = kFALSE;
+				fHistoType = 2;
+				
+				fHistoList->Select(fHistoList->GetSelected(), kTRUE);
+				fHists->GetLowList()->At( fHistoList->GetSelected()-1)->Draw() ;
+				fHistoList->SetTopEntry(fHistoList->GetSelected());
+				
+				fCanv->Modified() ;
+				fCanv->Update() ;
+				fVslider1->SetPosition( fHistoList->GetSelected()-1);
+				
+				break;
+			    case M_RADIO_LH:
+				fRadio[0]->SetState(kButtonUp);
+                                fRadio[1]->SetState(kButtonUp); 
+				
+				if (fHistoLock == kFALSE)
+				{
+					fCanvas = fECanv->GetCanvas(); 
+					fCanvas->Divide(1,2, 0, 0 ,0);
+
+					fCanv->Modified() ;
+					fCanv->Update() ;  
+					fHistoLock = kTRUE;
+					fHistoType = 3; 
+				
+				}
+			       
+				fCanvas->cd(1);
+ 
+				fHistoList->Select(fHistoList->GetSelected(), kTRUE);
+                                fHists->GetHighList()->At( fHistoList->GetSelected()-1)->Draw() ;
+                                fHistoList->SetTopEntry(fHistoList->GetSelected());
+				
+				
+				
+				
+				fCanvas->cd(2);
+                                fHistoList->Select(fHistoList->GetSelected(), kTRUE);
+                                fHists->GetLowList()->At( fHistoList->GetSelected()-1)->Draw() ;
+                                fHistoList->SetTopEntry(fHistoList->GetSelected());     
+				
+				
+				
+                                fCanv->Modified() ;
+                                fCanv->Update();
+				
+			    default:
+				break;
+			}
+			break;
+		   
+			
+		}
+		
+	    case kCM_LISTBOX:
+	      switch  (GET_SUBMSG(msg)) 
+		{
+		    case M_LIST_HISTO: 
+			
+			if (fHistoLock == kTRUE ) 
+			{
+				fCanvas->cd(1);
+				fHists->GetHighList()->At( fHistoList->GetSelected()-1)->Draw() ;
+				fCanvas->cd(2);
+				fHists->GetLowList()->At( fHistoList->GetSelected()-1)->Draw() ; 				
+				
+			}
+			else
+			{
+			
+				fCanv->cd() ; 
+			
+				fHists->GetHighList()->At( fHistoList->GetSelected()-1)->Draw() ; 
+			
+			}
+			fCanv->Modified() ; 
+			fCanv->Update() ;
+			fVslider1->SetPosition( fHistoList->GetSelected()-1);
+		  
+		  
+		  
+		default:
+		  break ;
+		}
+	      
+		
+	case kC_CONTAINER: 
+	  switch (GET_SUBMSG(msg)) 
+	    {
+	      
+	    case kCT_ITEMDBLCLICK: 
+	      
+	      break; 
+			
+	    default:
+	      break ;
+	    }
+	  
+	  
+	  
+	default:
+	  break;
+	  
+	case kC_VSLIDER:
+	  switch(GET_SUBMSG(msg))
+	    {
+	    case kSL_POS:
+	      {
+		switch(parm1)
+		  {
+		      case M_VSId1:
+
+			  // Check for the slider movement and sicronise with TGListBox		    
+			  if ((parm2 >= 0) && (parm2) <= 576)
+			  {
+				  
+				  if (fHistoLock==kTRUE)
+				  {
+					  fCanvas->cd(1) ;
+					  fHists->GetHighList()->At(parm2)->Draw() ;
+					  fHistoList->Select(parm2+1, kTRUE);
+					 
+					  fCanvas->cd(2) ; 
+					  fHists->GetLowList()->At(parm2)->Draw() ;
+                                          fHistoList->Select(parm2+1, kTRUE);
+					  fHistoList->SetTopEntry(fHistoList->GetSelected()); 
+					  
+				  }
+				  
+				  else 
+				  {
+					  fCanv->cd() ;  
+					  fHists->GetHighList()->At(parm2)->Draw() ;
+					  fHistoList->Select(parm2+1, kTRUE); 
+					  
+					  fHistoList->SetTopEntry(fHistoList->GetSelected());
+					  
+				  }
+					  fCanv->Modified() ;
+					  fCanv->Update() ;
+				  
+				  if ((fRadio[1]->GetState()) == kButtonDown)
+				  {
+					  fRadio[0]->SetState(kButtonDown);
+					  fRadio[1]->SetState(kButtonUp);
+				  }   
+				  
+				  
+			  }
+		    break;
+		  }
+		break;				
+	      }					
+	      break;
+	    }
+	  break;
+	  
+	}
+	return kTRUE;
+} 
Index: /branches/start/MagicSoft/Mars/mdatacheck/MGDisplayAdc.h
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/MGDisplayAdc.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/MGDisplayAdc.h	(revision 4308)
@@ -0,0 +1,115 @@
+#ifndef MGDISPLAYADC_H
+#define MGDISPLAYADC_H
+
+#include <iostream.h>
+#include <TROOT.h> 
+#include <TApplication.h> 
+#include <TSystem.h> 
+#include <TGClient.h> 
+#include <TGButton.h>
+#include <TGMenu.h>
+#include <TGTab.h> 
+#include <TGListBox.h> 
+#include <TGPicture.h>
+#include <TRootEmbeddedCanvas.h>
+#include <TCanvas.h>
+#include <TGFSContainer.h>
+#include <TGMsgBox.h>
+#include <TVirtualX.h>
+#include <TGFrame.h>
+#include <TGTextEntry.h>
+#include <TGSlider.h>
+#include <TGDoubleSlider.h>
+#include <TGScrollBar.h>
+#include <TSlider.h>
+
+
+#include <TVirtualX.h>
+#include <TGClient.h>   
+    
+#include "MHistosAdc.h"
+	
+    class MHistosAdc;
+
+
+
+enum ComIdentDisplayAdc {
+	M_BUTTON_SAVE,
+		M_BUTTON_PRINT,
+		M_BUTTON_PRINTALL,
+		M_BUTTON_CLOSE , 
+		
+		M_BUTTON_PREV, 
+		M_BUTTON_NEXT,
+
+		M_LIST_HISTO,
+		M_RADIO_HIGH,
+		M_RADIO_LOW,
+		M_RADIO_LH,
+		M_BUTTON_RESET,
+		M_VSId1
+} ; 
+
+class MGDisplayAdc : public TGTransientFrame {
+    private:
+	
+	MHistosAdc *fHists;		// Pointer to Container with the histograms
+	
+	// Create a main frame with a number of different buttons.
+	//   
+	TGCompositeFrame  *fFrameTop ;   // top part of the main window
+	TGCompositeFrame  *fFrameLow ;   // low part of the main window
+  
+	TGVerticalFrame   *fFT1, *fFT2, *fFT3 ;
+	
+	TGListBox         *fHistoList ;
+	TGTextButton      *fButtonPrev, *fButtonNext , *fButtonReset ;
+	
+	TRootEmbeddedCanvas  *fECanv , *fECanvLow;
+
+	TGTextButton   *fButtonSave, *fButtonPrint, *fButtonPrintAll, *fButtonClose ; 
+	
+	TCanvas            *fCanv ;	
+	
+	
+	//for sliders
+	
+	TGVSlider       *fVslider1;
+	
+       
+	
+  
+    public:
+	
+	//for radio buttons
+
+	TGRadioButton *fRadio[3];
+
+	
+        Int_t    fHistoType;
+        Bool_t    fHistoLock; 
+	//
+			
+	
+	TGPicture *fPicture;  
+	TCanvas *fCanvas;
+	
+	MGDisplayAdc(MHistosAdc *fHists , 
+		     const TGWindow *p, const TGWindow *main, 
+		     UInt_t w, UInt_t h, 
+		     UInt_t options = kMainFrame | kVerticalFrame ) ;
+	
+	~MGDisplayAdc(); 
+  
+	void  CloseWindow()  ;
+       
+	
+	Bool_t BuildHistoList(Int_t type=1) ;
+	
+	Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
+  
+} ; 
+
+#endif
+
+
Index: /branches/start/MagicSoft/Mars/mdatacheck/MHistosAdc.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/MHistosAdc.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/MHistosAdc.cc	(revision 4308)
@@ -0,0 +1,110 @@
+///////////////////////////////////////////////////////////////////////
+//
+// MHistosAdc
+//
+// This class contains a list of all ADC spektra histograms
+//
+///////////////////////////////////////////////////////////////////////
+
+#include "MHistosAdc.h"
+
+#include <iostream.h>
+
+#include <TH1.h>
+#include <TFile.h>
+
+ClassImp(MHistosAdc)
+
+MHistosAdc::MHistosAdc (const char *name, const char *title)
+{
+    //
+    //  default constructor
+    //  creates an a list of histograms for all pixels and both gain channels
+    //
+
+    fHistHigh = new TObjArray(577);
+    fHistLow  = new TObjArray(577);
+
+    //
+    //   set the name and title of this object
+    //
+    
+    *fName  = name  ? name  : "MHistosAdc" ;
+    *fTitle = title ? title : "Container for ADC spectra histograms" ;
+
+    //
+    //   loop over all Pixels and create two histograms
+    //   one for the Low and one for the High gain
+    //   connect all the histogram with the container fHist
+    //
+
+    Char_t  tmp1[40];
+    Char_t  tmp2[40];
+    TH1F    *h1;
+
+    for ( Int_t i = 0 ; i < 577 ; i++)
+    {
+        sprintf ( tmp1, "high%d", i ) ;
+        sprintf ( tmp2, "high gain Pixel %d", i ) ;
+
+        h1 = new TH1F ( tmp1, tmp2, 256, 0., 255. ) ;
+
+        fHistHigh->Add( h1 ) ;
+
+        sprintf ( tmp1, "low %d", i ) ;
+        sprintf ( tmp2, "low gain Pixel %d", i ) ;
+
+        h1 = new TH1F ( tmp1, tmp2, 256, 0., 255. ) ;
+
+        fHistLow->Add( h1 ) ;
+
+    }
+}
+
+MHistosAdc::~MHistosAdc ()
+{
+  
+  //   default destructor 
+  //
+  delete fHistHigh ; 
+  delete fHistLow  ; 
+}
+
+void MHistosAdc::Print(Option_t *)
+{
+  for ( Int_t i = 0 ; i < 576 ; i++)
+    {
+      fHistHigh[i].Print() ;
+    }
+}
+
+void MHistosAdc::FillAdcHistHigh ( Int_t iPix, Byte_t data)
+{
+  //
+  
+  ((TH1F*) (fHistHigh->At(iPix)))->Fill( (Float_t) data ) ;
+}
+
+void MHistosAdc::FillAdcHistLow ( Int_t iPix, Byte_t data)
+{
+  //
+  
+  ((TH1F*) (fHistLow->At(iPix)))->Fill( (Float_t) data ) ;
+}
+
+void MHistosAdc::SaveHist ( char *name )
+{
+    //
+    //   save all histogram in this class to a root file
+    //
+
+    TFile out( name, "recreate") ;
+
+    //
+    //  loop over all pixels and write the files out
+    //
+
+    fHistLow->Write() ;
+    fHistHigh->Write() ;
+}
+
Index: /branches/start/MagicSoft/Mars/mdatacheck/MHistosAdc.h
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/MHistosAdc.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/MHistosAdc.h	(revision 4308)
@@ -0,0 +1,53 @@
+#ifndef MHISTOSADC_H
+#define MHISTOSADC_H
+
+#include "MAGIC.h"
+
+#include <TObjArray.h>
+
+#include "MParContainer.h"
+
+class MHistosAdc : public MParContainer
+{
+private:
+    TObjArray *fHistHigh;	// List of High gain Histograms
+    TObjArray *fHistLow;	// List of Low  gain Histograms
+
+public:
+     MHistosAdc(const char *name=NULL, const char *title=NULL);
+    ~MHistosAdc();
+
+    void FillAdcHistHigh(Int_t iPix, Byte_t data); 
+    void FillAdcHistLow (Int_t iPix, Byte_t data); 
+
+    void SaveHist(char *name);
+
+    void Print(Option_t * t = NULL);
+
+
+    TObjArray* GetHighList() 
+      { 
+	return ( fHistHigh ) ; 
+      }   
+
+    TObjArray* GetLowList() 
+      { 
+	return ( fHistLow ) ; 
+      } 
+    
+    Int_t GetHighEntries() 
+      { 
+	return (fHistHigh->GetEntries() ) ;  
+      } 
+
+    Int_t GetLowEntries() 
+      { 
+	return (fHistLow->GetEntries() ) ;  
+      } 
+
+      
+    ClassDef(MHistosAdc, 1)	// list of Histograms with ADC spectra
+};
+
+#endif
+
Index: /branches/start/MagicSoft/Mars/mdatacheck/MShowSpect.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/MShowSpect.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/MShowSpect.cc	(revision 4308)
@@ -0,0 +1,70 @@
+#include "MShowSpect.h"
+
+#include <stdlib.h>
+
+#include <TROOT.h> 
+#include <TApplication.h> 
+#include <TSystem.h> 
+#include <TGClient.h> 
+#include <TGFileDialog.h> 
+#include <TVirtualX.h>
+
+#include "MParList.h"
+#include "MHistosAdc.h"
+
+
+////////////////////////////////////////////////////////////////////////
+//
+//  MGShowSpect.h
+//
+//  A Gui Task to show the raw ADC values in the histograms
+//
+
+ClassImp(MShowSpect)
+
+MShowSpect::MShowSpect(char *nameHist ) 
+{ 
+  // default constructor 
+
+  sprintf (fHistName, "%s", nameHist ) ; 
+} 
+
+
+Bool_t MShowSpect::PreProcess(MParList *pList)
+{
+  //
+  //   Do the preprocessing for MShowSpect
+  // 
+  //   Connects Histogramms in the MHistosAdc container as the input
+  //
+
+  fHists = (MHistosAdc*) pList->FindObject( fHistName );
+  
+  if (!fHists)
+    {
+      cout << "ERROR: MShowSpect::PreProc(): " << fHistName << " not found!" << endl;
+      exit(1);
+    }
+  
+  return (kTRUE) ; 
+} 
+
+
+Bool_t MShowSpect::PostProcess()
+{
+  //   just start the gui for displaying the adc spectra
+
+  new MGDisplayAdc(fHists, gClient->GetRoot(), gClient->GetRoot(), 600, 600);
+
+  return (kTRUE) ; 
+} 
+
+
+
+
+
+
+
+
+
+
Index: /branches/start/MagicSoft/Mars/mdatacheck/MShowSpect.h
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/MShowSpect.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/MShowSpect.h	(revision 4308)
@@ -0,0 +1,35 @@
+#ifndef MSHOWSPECT_H
+#define MSHOWSPECT_H
+
+#include "MAGIC.h"
+
+#include "MTask.h"
+#include "MGDisplayAdc.h"
+
+class MGDisplayAdc ; 
+
+class MHistosAdc;
+class MHistosTdc; 
+class MParList ;
+
+class MShowSpect : public MTask 
+{
+private:
+  char       fHistName[256] ; 
+
+  MHistosAdc *fHists;		// Pointer to Container with the histograms
+  
+ public:
+  
+  MShowSpect(char* histName );
+  
+  Bool_t PreProcess(MParList * pList); 
+  Bool_t PostProcess();
+  
+  ClassDef(MShowSpect, 1)	// Fill the raw ADC in the histograms
+};
+
+#endif
+
+
+
Index: /branches/start/MagicSoft/Mars/mdatacheck/MViewAdcSpectra.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/MViewAdcSpectra.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/MViewAdcSpectra.cc	(revision 4308)
@@ -0,0 +1,97 @@
+#include "MViewAdcSpectra.h" 
+
+#include <iostream.h>
+
+#include "MParList.h"
+#include "MTaskList.h"
+#include "MEvtLoop.h"
+
+#include "MRawRunHeader.h"
+#include "MRawEvtHeader.h"
+#include "MRawEvtData.h"
+#include "MRawCrateArray.h"
+#include "MTime.h"
+
+#include "MReadTree.h" 
+#include "MDumpEvtHeader.h" 
+#include "MFillAdcSpect.h" 
+#include "MShowSpect.h" 
+#include "MHistosAdc.h" 
+
+MViewAdcSpectra::MViewAdcSpectra() 
+{
+  // default constructor  
+} 
+
+MViewAdcSpectra::~MViewAdcSpectra() 
+{
+  // default destructor  
+} 
+
+
+// ================================================================================
+Bool_t MViewAdcSpectra::PedAdcSpectra ( Char_t *inputfile ) 
+{
+  //   This job reads in the FADC data from all events and fills
+  //   the spectrum for each pmt pixel.
+  //
+
+  cout << "PedAdcSpectra:: Analyse the file " << inputfile << endl ;
+  
+  // create a (empty) list of parameters which can be used by the tasks
+  // and an (empty) list of tasks which should be executed
+  // connect them in the required way. 
+ 
+  MParList *plist  = new MParList;
+  MTaskList *tasks = new MTaskList;
+  plist->AddToList(tasks);
+
+  //   create the data containers for the raw data 
+  
+  MRawRunHeader *runheader = new MRawRunHeader;
+  plist->AddToList(runheader);
+
+  MRawEvtHeader *evtheader = new MRawEvtHeader;
+  plist->AddToList(evtheader);
+  
+  MRawEvtData *evtdata = new MRawEvtData;
+  plist->AddToList(evtdata);
+  
+  MRawCrateArray *cratearray = new MRawCrateArray;
+  plist->AddToList(cratearray);
+  
+  MTime *evttime = new MTime("MTime");
+  plist->AddToList(evttime);
+
+  MHistosAdc *histosAdc = new MHistosAdc() ; 
+  plist->AddToList( histosAdc ) ; 
+  
+  //    set up the tasks for this job
+
+  MReadTree *readin  =  new MReadTree ( inputfile, "Data") ; 
+  tasks->AddToList( readin ) ; 
+
+  //  MDumpEvtHeader *dumpheader = new MDumpEvtHeader() ; 
+  //  tasks->AddToList( dumpheader ) ; 
+ 
+  MFillAdcSpect *fillspect = new MFillAdcSpect() ; 
+  tasks->AddToList( fillspect ) ; 
+
+  MShowSpect *showspect = new MShowSpect( "MHistosAdc" ) ; 
+  tasks->AddToList( showspect ) ;
+
+  //    set up the loop for the processing 
+  
+  MEvtLoop magic;
+  magic.SetParList(plist);
+
+  //    start the loop running 
+
+  magic.Eventloop() ; 
+  
+
+  cout << " End of this job " << endl ; 
+
+  return kTRUE ; 
+
+} 
Index: /branches/start/MagicSoft/Mars/mdatacheck/MViewAdcSpectra.h
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/MViewAdcSpectra.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/MViewAdcSpectra.h	(revision 4308)
@@ -0,0 +1,27 @@
+#ifndef MVIEWADCSPECTRA_H
+#define MVIEWADCSPECTRA_H
+
+#ifndef MAGIC_H
+#include "MAGIC.h"
+#endif
+
+class MViewAdcSpectra {
+
+ private:
+  
+ public:
+  
+  MViewAdcSpectra() ; 
+  
+  ~MViewAdcSpectra() ; 
+  
+  Bool_t PedAdcSpectra( Char_t *inputFile ) ; 
+
+  //  Bool_t CrAdcSpectra ( Char_t *inputFile ) ; 
+
+  //  Bool_t PedTdcSpectra( Char_t *inputFile ) ; 
+  //  Bool_t CrTdcSpectra ( Char_t *inputFile ) ; 
+
+} ;
+
+#endif 
Index: /branches/start/MagicSoft/Mars/mdatacheck/Makefile
===================================================================
--- /branches/start/MagicSoft/Mars/mdatacheck/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mdatacheck/Makefile	(revision 4308)
@@ -0,0 +1,127 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+# @maintitle
+
+# @code
+
+#
+#  please change all system depend values in the 
+#  config.mk.${OSTYPE} file 
+#
+#
+include ../Makefile.conf.$(OSTYPE)
+include ../Makefile.conf.general
+
+# @endcode 
+
+# @code 
+
+LIB   = libmdatacheck.a
+
+#
+#  connect the include files defined in the config.mk file
+#
+INCLUDES = -I. -I../ -I../mbase -I../mraw
+
+#
+#  ----->>>   root libraries
+#
+
+ROOTLIBS   =  `root-config --libs`
+ROOTGLIBS  =  `root-config --glibs`
+ROOTCFLAGS =  `root-config --cflags`
+
+#
+#  compiler flags
+#
+
+CXXFLAGS  = $(ROOTCFLAGS) $(INCLUDES) $(OPTIM) $(DEBUG)
+CFLAGS    = $(CXXFLAGS)
+FFLAGS    = $(CXXFLAGS)
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cc .cxx .h .hxx .o 
+
+
+SRCFILES = MViewAdcSpectra.cc \
+	   MFillAdcSpect.cc \
+	   MDumpEvtHeader.cc \
+	   MShowSpect.cc \
+	   MHistosAdc.cc \
+	   MGDisplayAdc.cc
+
+SRCS    = $(SRCFILES)
+HEADERS = $(SRCFILES:.cc=.h)
+OBJS    = $(SRCFILES:.cc=.o) 
+
+############################################################
+
+all: $(LIB)
+
+depend:
+	@makedepend $(SRCS) $(INCLUDES) $(ROOTCFLAGS) \
+        -f../Makefile.depend 2> kk.kk ; cat kk.kk
+
+$(LIB): $(OBJS) DataCheckCint.o
+	@echo " - Building Library $(LIB) ... "
+	$(AR) $(LIB) *.o
+
+DataCheckCint.cc: $(HEADERS) 
+	@echo 
+	@echo " - Generating dictionary DataCheckCint.cc ..."
+
+	$(ROOTSYS)/bin/rootcint -f DataCheckCint.cc \
+	-c $(INCLUDES) $(HEADERS) DataCheckIncl.h DataCheckLinkDef.h 
+
+.cxx.o:	
+	@echo " - Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.cc.o:	
+	@echo " - Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo " - Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+#
+# The cleaning facility
+#
+
+rmlib:	
+	@echo "Removing libraries..."
+	@rm -f lib*.a
+
+rmcint:	
+	@echo "Removing cint-stuff..."
+	@rm -f DataCheckCint.*
+
+rmobjs:	
+	@echo "Removing object files..."
+	@rm -f *.o
+
+rmbin:	
+	@echo "Removing binary files..."
+	@rm -f core
+
+
+clean:	rmlib rmcint rmobjs rmbin
+
+mrproper:	clean
+	@echo "Removing *~ kk.kk html/..."
+	@rm -f *~ kk.kk
+
+cflags: 
+	@echo $(INCLUDES) $(CXXFLAGS)
+
+# @endcode
+
Index: /branches/start/MagicSoft/Mars/merpp.cc
===================================================================
--- /branches/start/MagicSoft/Mars/merpp.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/merpp.cc	(revision 4308)
@@ -0,0 +1,130 @@
+#include <iostream.h>
+
+#include <TSystem.h>
+
+#include "MParList.h"
+#include "MTaskList.h"
+#include "MEvtLoop.h"
+
+#include "MRawFileRead.h"
+#include "MRawFileWrite.h"
+
+#include "MRawRunHeader.h"
+#include "MRawEvtHeader.h"
+#include "MRawEvtData.h"
+#include "MRawCrateArray.h"
+#include "MTime.h"
+#include "MInputStreamID.h"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// This is an easy implementation of the Merging process (as compilable prog)
+//
+// at the moment it reads a binary file ("rawtest.bin") which was written
+// in the DAQ raw format.
+//
+// The data are stored in root container objects (classes derived from
+// TObject like MRawRunHeader)
+//
+// This containers are written to a root file ("rawtest.root")
+//
+/////////////////////////////////////////////////////////////////////////////
+
+int main(const int argc, const char **argv)
+{
+    cout << "==================================================" << endl ;
+    cout << "                   MERPP v0.1" << endl;
+    cout << "      MARS Merging and Preprocessing Program" << endl ;
+    cout << "            Compiled on <" << __DATE__ << ">" << endl ;
+    cout << "==================================================" << endl ;
+    cout << endl;
+
+    //
+    // check for the right usage of the program
+    //
+    if (argc!=3)
+    {
+        cout << "Sorry the usage is:" << endl;
+        cout << "   merpp inputfile outputfile" << endl << endl;
+        return -1;
+    }
+
+    //
+    //     initialize ROOT  (this is obligatory here)
+    //
+    TROOT simple("Merpp","Mars - Merging and Preprocessing Program");
+
+    //
+    // check whether the given files are OK.
+    //
+    if (gSystem->AccessPathName(argv[1], kFileExists))
+    {
+        cout << "Sorry, the file '" << argv[1] << "' doesn't exist." << endl;
+        return -1;
+    }
+
+    if (!gSystem->AccessPathName(argv[2], kFileExists))
+        cout << "Warning: The file '" << argv[2] << "' exists." << endl;
+    else
+        if (!gSystem->AccessPathName(argv[2], kWritePermission))
+        {
+            cout << "Sorry, you don't have write permission for '" << argv[2] << "'." << endl;
+            return -1;
+        }
+
+    //
+    // create a (empty) list of parameters which can be used by the tasks
+    // and an (empty) list of tasks which should be executed
+    //
+    MParList *plist  = new MParList;
+
+    MTaskList *tasks = new MTaskList;
+    plist->AddToList(tasks);
+
+    MRawRunHeader *runheader = new MRawRunHeader;
+    plist->AddToList(runheader);
+
+    MRawEvtHeader *evtheader = new MRawEvtHeader;
+    plist->AddToList(evtheader);
+
+    MRawEvtData *evtdata = new MRawEvtData;
+    plist->AddToList(evtdata);
+
+    MRawCrateArray *cratearray = new MRawCrateArray;
+    plist->AddToList(cratearray);
+
+    MTime *evttime = new MTime("MRawEvtTime");
+    plist->AddToList(evttime);
+
+    //
+    // create the tasks which should be executed and add them to the list
+    // in the case you don't need parameter containers, all of them can
+    // be created by MRawFileRead::PreProcess
+    //
+    MRawFileRead  *reader = new MRawFileRead(argv[1]);
+    MRawFileWrite *writer = new MRawFileWrite(argv[2], "RECREATE");
+    tasks->AddToList(reader);
+    tasks->AddToList(writer);
+
+    //
+    // create the looping object and thell it about the parameters to use
+    // and the tasks to execute
+    //
+
+    MEvtLoop magic;
+
+    magic.SetParList(plist);
+
+    //
+    // Start the eventloop which reads the raw file (MRawFileRead) and
+    // write all the information into a root file (MRawFileWrite)
+    //
+    // between reading and writing we can do, transformations, checks, etc.
+    // (I'm think of a task like MRawDataCheck)
+    //
+    magic.Eventloop();
+
+    return 0;
+}
+
+
Index: /branches/start/MagicSoft/Mars/mgui/GuiIncl.h
===================================================================
--- /branches/start/MagicSoft/Mars/mgui/GuiIncl.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mgui/GuiIncl.h	(revision 4308)
@@ -0,0 +1,12 @@
+#ifndef __CINT__
+
+#include <TGButton.h>       // TGPictureButton
+#include <TGTab.h>          // TGTab
+#include <TGMenu.h>         // TGPopupMenu
+#include <TGMsgBox.h>       // TGMsgBox
+#include <TGListBox.h>      // TGListBox
+#include <TGListView.h>     // TGListBox
+#include <TGSplitter.h>     // TGHorizontal3DLine
+#include <TGFSContainer.h>  // TGFileContainer
+
+#endif // __CINT__
Index: /branches/start/MagicSoft/Mars/mgui/GuiLinkDef.h
===================================================================
--- /branches/start/MagicSoft/Mars/mgui/GuiLinkDef.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mgui/GuiLinkDef.h	(revision 4308)
@@ -0,0 +1,11 @@
+#ifdef __CINT__
+
+#pragma link off all globals;
+#pragma link off all classes;
+#pragma link off all functions;
+
+#pragma link C++ class MGMarsMain;
+#pragma link C++ class MGDataCheckMain;
+//#pragma link C++ class MDumpEvtHeader;
+
+#endif
Index: /branches/start/MagicSoft/Mars/mgui/MGDataCheckMain.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mgui/MGDataCheckMain.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mgui/MGDataCheckMain.cc	(revision 4308)
@@ -0,0 +1,439 @@
+#include "MGDataCheckMain.h"
+
+#include <TSystem.h>        // gSystem
+
+#include <TGTab.h>          // TGTab
+#include <TGMenu.h>         // TGPopupMenu
+#include <TGButton.h>       // TGTextButton
+#include <TGMsgBox.h>       // TGMsgBox
+#include <TGListBox.h>      // TGListBox
+#include <TGFSContainer.h>  // TGFileContainer
+
+// FIXME: Move to MAGIC.h
+#define S_ISDIR(m) (((m)&(0170000)) == (0040000))  
+
+ClassImp(MGDataCheckMain)
+
+MGDataCheckMain::MGDataCheckMain(const TGWindow *p, const TGWindow *main, 
+                            UInt_t w, UInt_t h ) 
+        : TGTransientFrame(p, main, w, h ) 
+{
+  //
+  //    Main window to controll the october test
+  //
+
+  //    set non-gui members to starting values 
+
+  sprintf ( fInputFile, "\n" ) ; 
+
+  //
+  //    First create the MenuBar.   
+  //
+
+  //     Layout objects for menue. 
+
+  fLayMenuBar = new TGLayoutHints ( kLHintsTop | kLHintsLeft | kLHintsExpandX, 2, 2, 2, 2 ) ; 
+  fLayMenuItem = new TGLayoutHints ( kLHintsTop | kLHintsLeft , 0, 4, 0, 0 ) ; 
+  
+  //  crate the menu bar
+
+  fFileMenu = new TGPopupMenu ( fClient->GetRoot() ) ; 
+  fFileMenu->AddEntry ("Close", M_FILE_CLOSE ) ; 
+  fFileMenu->Associate(this) ; 
+  
+  //  the button messages are handled by main frame (this) 
+
+  fMenuBar = new TGMenuBar ( this, 1, 1, kHorizontalFrame ) ; 
+  fMenuBar->AddPopup("File", fFileMenu, fLayMenuItem ) ;   
+  AddFrame(fMenuBar, fLayMenuBar ) ; 
+  
+  //
+  //    Create the top window with a lot of buttons 
+  //
+
+  fFrameTop = new TGCompositeFrame (this, 300,100, kVerticalFrame ) ; 
+  
+  fTop1 = new TGHorizontalFrame (fFrameTop, 300, 100 ) ; 
+   
+  fFrameTop->AddFrame (fTop1, new TGLayoutHints(kLHintsCenterX, 10, 10, 5, 5) );
+
+  fTop2 = new TGHorizontalFrame (fFrameTop, 300, 100 ) ; 
+ 
+  fButPedADC = new TGTextButton(fTop2, "ADC Spectra of Pedestals", M_BUTTON_PEDADC );
+  fButPedADC->Associate(this) ;   
+  fTop2->AddFrame (fButPedADC, new TGLayoutHints(kLHintsTop | kLHintsLeft, 10, 10, 5, 5) );
+  
+  fButCrADC = new TGTextButton(fTop2, "ADC Specta of Cosmics", M_BUTTON_CRADC );
+  fButCrADC->Associate(this) ;   
+  fTop2->AddFrame (fButCrADC, new TGLayoutHints(kLHintsTop | kLHintsLeft, 10, 10, 5, 5) );
+
+  fFrameTop->AddFrame (fTop2, new TGLayoutHints(kLHintsCenterX, 10, 10, 5, 5) );
+
+  fTop3 = new TGHorizontalFrame (fFrameTop, 300, 100 ) ; 
+ 
+  fButPedTDC = new TGTextButton(fTop3, "TDC Spectra of Pedestals", M_BUTTON_PEDTDC );
+  fButPedTDC->Associate(this) ;   
+  fTop3->AddFrame (fButPedTDC, new TGLayoutHints(kLHintsTop | kLHintsLeft, 10, 10, 5, 5) );
+  
+  fButCrTDC = new TGTextButton(fTop3, "TDC Specta of Cosmics", M_BUTTON_CRTDC );
+  fButCrTDC->Associate(this) ;   
+  fTop3->AddFrame (fButCrTDC, new TGLayoutHints(kLHintsTop | kLHintsLeft, 10, 10, 5, 5) );
+
+  fFrameTop->AddFrame (fTop3, new TGLayoutHints(kLHintsCenterX, 10, 10, 5, 5) );
+
+  AddFrame(fFrameTop, new TGLayoutHints (kLHintsTop ) ) ;   
+
+
+  //
+  //    Create the low window with a tabs in it
+  //
+
+  fFrameLow = new TGCompositeFrame (this, 300,100, kHorizontalFrame ) ; 
+  
+  fLayTab = new TGLayoutHints ( kLHintsExpandX   , 5, 5, 5, 5 ) ;
+
+  //    create the first tab
+
+  fTab = new TGTab ( fFrameLow, 400, 400 ) ;   
+
+  TGCompositeFrame *tf = fTab->AddTab("Input File") ; 
+  
+  fTabF1 = new TGCompositeFrame (tf, 100, 100, kHorizontalFrame) ; 
+  //  tf->AddFrame(fTabF1, fLayTab ) ; 
+
+  
+  fTabF1a = new TGCompositeFrame (tf, 100, 100, kHorizontalFrame) ; 
+  tf->AddFrame(fTabF1a,  new TGLayoutHints ( kLHintsTop | kLHintsLeft | kLHintsExpandX, 5, 5, 5, 5 ) ) ; 
+
+  fTabF1b = new TGCompositeFrame (tf, 100, 100, kVerticalFrame) ; 
+  //  tf->AddFrame(fTabF1b,  new TGLayoutHints ( kLHintsTop | kLHintsLeft | kLHintsExpandX | kLHintsExpandY  , 5, 5, 5, 5 ) ) ; 
+  tf->AddFrame(fTabF1b,  new TGLayoutHints ( kLHintsExpandX | kLHintsExpandY  , 5, 5, 5, 5 ) ) ; 
+
+  
+  fDir = new TGListBox(fTabF1a, -1) ; 
+  fDir->Resize(350,20) ;
+  char temp[100] ; 
+  //  sprintf ( temp, "%s", START_DIRECTORY ) ; 
+  sprintf ( temp, "%s", gSystem->WorkingDirectory()  ) ; 
+  fDir->AddEntry(temp, 1) ; 
+  fTabF1a->AddFrame( fDir, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 5, 5, 5, 5 ) ) ; 
+
+
+  fPicCdup = fClient->GetPicture("tb_uplevel.xpm") ; 
+  fCdup = new TGPictureButton(fTabF1a, fPicCdup, M_PBUTTON_CDIR_UP ) ; 
+  fCdup->SetToolTipText("One Level up!") ; 
+  fCdup->Associate(this) ; 
+  fTabF1a->AddFrame (fCdup, new TGLayoutHints(kLHintsLeft | kLHintsTop, 5, 5, 5, 5) ) ; 
+
+  fPicList = fClient->GetPicture("tb_list.xpm") ; 
+  fListMode = new TGPictureButton(fTabF1a, fPicList, M_PBUTTON_LIST_MODE ) ; 
+  fListMode->SetToolTipText("List Mode") ; 
+  fListMode->Associate(this) ; 
+  fListMode->SetState(kButtonUp) ; 
+  fListMode->AllowStayDown(kTRUE) ; 
+  fListMode->AllowStayDown(kTRUE) ;  fTabF1a->AddFrame (fListMode, new TGLayoutHints(kLHintsLeft | kLHintsTop, 5, 5, 5, 5) ) ;
+
+  fPicDetail = fClient->GetPicture("tb_details.xpm") ; 
+  fDetail = new TGPictureButton(fTabF1a, fPicDetail, M_PBUTTON_DETAIL_MODE ) ; 
+  fDetail->SetToolTipText("Details Mode") ; 
+  fDetail->Associate(this) ; 
+  fDetail->SetState(kButtonEngaged) ; 
+  fDetail->AllowStayDown(kTRUE) ; 
+  fTabF1a->AddFrame (fDetail, new TGLayoutHints(kLHintsLeft | kLHintsTop, 5, 5, 5, 5) ) ; 
+
+    
+  fFileView = new TGListView(fTabF1b, 540, 380 ) ; 
+  fFileCont = new TGFileContainer(fFileView->GetViewPort(), 100, 100,
+				  kVerticalFrame, fgWhitePixel) ; 
+
+  fFileCont->Associate(this) ; 
+  fFileView->GetViewPort()->SetBackgroundColor(fgWhitePixel) ; 
+  fFileView->SetContainer(fFileCont) ; 
+  fFileCont->SetFilter("*") ; 
+  //  fFileCont->ChangeDirectory(START_DIRECTORY) ; 
+  fFileCont->ChangeDirectory(gSystem->WorkingDirectory()) ; 
+  fFileView->SetViewMode(kLVDetails); 
+  fFileCont->Sort(kSortByName) ; 
+  
+  fTabF1b->AddFrame(fFileView, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 5, 5, 5, 5) ) ; 
+
+  tf->AddFrame(fTabF1, fLayTab) ;
+ 
+  fFrameLow->AddFrame ( fTab, new TGLayoutHints(kLHintsBottom | kLHintsExpandX | kLHintsExpandY, 5, 5, 5, 5) ); 
+
+  AddFrame(fFrameLow, new TGLayoutHints (kLHintsExpandX|kLHintsExpandY) ) ; 
+
+  //
+  //   Map the window, set up the layout, etc. 
+  //
+
+  SetWMSizeHints(400, 650, 1000, 1000, 10, 10 ) ;      // set the smallest and biggest size of the Main frame
+
+  MapSubwindows();
+  
+  Layout();
+  
+  SetWindowName("DataCheck Window");
+  SetIconName("DataCheck");
+  
+  MapWindow();
+
+} 
+
+
+// ======================================================================
+// ======================================================================
+
+MGDataCheckMain::~MGDataCheckMain()
+{
+  //delete  fPicCdup, fPicList, fPicDetail; 
+  delete  fLayTab, fLayMenuBar, fLayMenuItem; 
+  delete  fFileView; 
+  delete  fFileCont; 
+  delete  fCdup, fListMode, fDetail; 
+  delete  fDir ; 
+  delete  fTabF1b, fTabF1a, fTabF1; 
+  delete  fButPedADC, fButCrADC, fButPedTDC, fButCrTDC; 
+  delete  fTop3, fTop2, fTop1; 
+  delete  fTab; 
+  delete  fFrameTop, fFrameLow ; 
+  delete  fFileMenu; 
+  delete  fMenuBar; 
+
+} 
+
+
+// ======================================================================
+// ======================================================================
+
+void MGDataCheckMain::CloseWindow()
+{
+   // Got close message for this MainFrame. Calls parent CloseWindow()
+   // (which destroys the window) and terminate the application.
+   // The close message is generated by the window manager when its close
+   // window menu item is selected.
+
+  delete this ; 
+}
+
+
+// ======================================================================
+// ======================================================================
+
+Bool_t MGDataCheckMain::InputFileSelected() 
+{
+  //   Checks if there is a selected input root file
+  
+  if ( strcmp ( fInputFile, "\n") == 0 )
+    { 
+      return ( kFALSE ) ; 
+    } 
+  
+  return (kTRUE) ; 
+} 
+
+
+// ======================================================================
+// ======================================================================
+
+Bool_t MGDataCheckMain::ProcessMessage(Long_t msg, Long_t parm1, Long_t)
+{     
+  // Process events generated by the buttons in the frame.
+  
+  Int_t   buttons = 4, retval = 0 ; 
+  Char_t  wort[100] ;
+  Char_t  extens[5] ;
+  Char_t  command[110] ;
+ 
+  TGFileItem *item ;     // to process items in the file view container
+  void *np = NULL ;      // null pointer
+
+  switch (GET_MSG(msg)) 
+    {
+    case kC_COMMAND:
+      switch (GET_SUBMSG(msg)) 
+	{
+	case kCM_BUTTON:
+	  
+	  switch (parm1)
+	    {  
+
+	    case M_BUTTON_PEDADC:
+	      	
+	      if ( InputFileSelected() == kFALSE ) {              // it is not selected
+		
+		new TGMsgBox(fClient->GetRoot(), this, "ERROR!", 
+			     "No Input (root) File selected!", kMBIconExclamation, buttons, &retval);
+		break ; 
+	      }      
+	      
+	      fViewAdc.PedAdcSpectra(fInputFile) ; 
+
+	      break ; 
+		  
+
+	    case M_BUTTON_CRADC:
+	      
+	      if ( InputFileSelected() == kFALSE ) {              // it is not selected
+		
+		new TGMsgBox(fClient->GetRoot(), this, "ERROR!", 
+			     "No Input (root) File selected!", kMBIconExclamation, buttons, &retval);
+		break ; 
+	      }
+	      
+	      //	      fOctober.CrAdcSpectra(fInputFile) ; 
+
+	      break ; 
+      
+	    case M_BUTTON_PEDTDC:
+	      
+	      if ( InputFileSelected() == kFALSE ) {              // it is not selected
+		
+		new TGMsgBox(fClient->GetRoot(), this, "ERROR!", 
+			     "No Input (root) File selected!", kMBIconExclamation, buttons, &retval);
+		break ; 
+	      }
+	      
+	      //	      fOctober.PedTdcSpectra(fInputFile) ; 
+
+	      break ; 
+      
+	    case M_BUTTON_CRTDC:
+	      
+	      if ( InputFileSelected() == kFALSE ) {              // it is not selected
+		
+		new TGMsgBox(fClient->GetRoot(), this, "ERROR!", 
+			     "No Input (root) File selected!", kMBIconExclamation, buttons, &retval);
+		break ; 
+	      }
+	      
+	      //	      fOctober.CrTdcSpectra(fInputFile) ; 
+
+	      break ; 
+      
+	    case M_PBUTTON_CDIR_UP :
+
+	      //  goto the parent directory
+	      
+	      gSystem->ChangeDirectory("..") ; 
+	      fDir->RemoveEntry(1) ; 
+	      sprintf (wort, "%s", gSystem->WorkingDirectory() ) ; 
+	      fDir->AddEntry(wort,1) ; 
+	      fDir->MapSubwindows() ; 
+	      fDir->Layout() ; 
+	      fFileCont->ChangeDirectory( wort ) ; 
+	      fFileCont->DisplayDirectory() ; 
+	      
+	      break ; 
+	    
+	    case M_PBUTTON_LIST_MODE:
+	      fFileView->SetViewMode(kLVList) ; 
+	      fDetail->SetState(kButtonUp) ; 
+	      
+	      break ; 
+	      
+	    case M_PBUTTON_DETAIL_MODE:
+	      fFileView->SetViewMode(kLVDetails) ; 
+	      fListMode->SetState(kButtonUp) ; 
+	      
+	      break ;
+	      
+	    default:
+	      break ;
+	    } 
+
+	case kCM_MENU:
+
+	  switch (parm1) {
+	  case M_FILE_CLOSE:
+	    CloseWindow() ; 
+
+	    break; 
+	  }
+	  break ;
+	  
+	default:
+	  break ;
+	  
+	}
+      
+    case kC_CONTAINER: 
+      switch (GET_SUBMSG(msg)) {
+	
+	//      case kCT_ITEMCLICK:
+	// 	printf ("itemclick\n"); 
+	//      break; 
+	
+      
+      case kCT_ITEMDBLCLICK: 
+	//
+	//  process the double click in the file view container
+	//
+	
+	if ( parm1 == kButton1) {
+	  if ( fFileCont->NumSelected() == 1 ) {   
+	    //
+	    //  one file selected
+	    //	  
+	    item = (TGFileItem *) fFileCont->GetNextSelected(&np) ; 
+	    
+	    if ( S_ISDIR(item->GetType()) )   // file is directory
+	      {  
+		//  goto directory 
+		
+		sprintf (wort, "%s", item->GetItemName()->GetString()) ;
+		fFileCont->ChangeDirectory ( wort ) ; 
+		gSystem->ChangeDirectory( wort ) ; 
+		
+		sprintf (wort, "%s", gSystem->WorkingDirectory() ) ; 
+		fDir->RemoveEntry(1) ; 
+		fDir->AddEntry( wort, 1 ) ; 
+		fDir->MapSubwindows() ; 
+		fDir->Layout() ; 
+	      }
+	    else                              // file is no directory, is a file 
+	      { 
+		sprintf (wort, "%s", item->GetItemName()->GetString() ) ; 
+	    
+		//    determine the file type by extensions
+		
+		for (Int_t i = 0 ; i<5; i++) 
+		  extens[i] = '\0' ; 
+		
+		for ( Int_t i=0; wort[i] != '\0'; i++) {
+		  if ( wort[i] == '.') {
+		    strncpy (extens, &wort[i+1], 4 ) ; 
+		    break ; 
+		  }
+		}
+		
+		if ( ! strcmp(extens, "ps") ) {              //     postscript file
+		  sprintf ( command, "gv %s/%s &", 
+			    gSystem->WorkingDirectory(), 
+			    wort ) ; 
+		  gSystem->Exec(command) ; 
+		  break ; 
+		}
+		else if  ( ! strcmp(extens, "root") ) {      //     root file
+		  sprintf ( fInputFile, "%s/%s" , gSystem->WorkingDirectory(), wort ) ;  
+
+		  printf (" %s \n", fInputFile ) ; 
+		  break ; 
+		}
+		
+	      } 
+	  }
+	}
+	break; 
+	
+      default:
+	break ;
+      }
+      
+      
+      
+    default:
+      break;
+    }
+  return kTRUE;
+} 
Index: /branches/start/MagicSoft/Mars/mgui/MGDataCheckMain.h
===================================================================
--- /branches/start/MagicSoft/Mars/mgui/MGDataCheckMain.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mgui/MGDataCheckMain.h	(revision 4308)
@@ -0,0 +1,107 @@
+#ifndef MGDATACHECKMAIN_H
+#define MGDATACHECKMAIN_H
+
+#ifndef MAGIC_H
+#include "MAGIC.h"
+#endif
+
+#ifndef ROOT_TGFrame
+#include <TGFrame.h>
+#endif
+
+#ifndef MVIEWADCSPECTRA_H
+#include "MViewAdcSpectra.h"
+#endif
+
+class TGMenuBar;
+class TGPopupMenu;
+class TGTab;
+class TGTextButton;
+class TGListBox;
+class TGPictureButton;
+class TGFileContainer;
+class TGListView;
+
+enum CommandDataChecker {
+  M_FILE_CLOSE , 
+  M_BUTTON_PEDADC, 
+  M_BUTTON_CRADC, 
+  M_BUTTON_PEDTDC, 
+  M_BUTTON_CRTDC, 
+
+  M_PBUTTON_CDIR_UP, 
+  M_PBUTTON_LIST_MODE, 
+  M_PBUTTON_DETAIL_MODE 
+} ; 
+
+
+class MGDataCheckMain : public TGTransientFrame {
+ private:
+  
+  //
+  // Create a main frame with a number of different buttons.
+  //
+
+  //   some member not connected with Gui 
+  
+  Char_t            fInputFile[256] ; 
+  MViewAdcSpectra   fViewAdc ; 
+
+  //  the things for the menu bar 
+    
+  TGMenuBar         *fMenuBar ; 
+  TGPopupMenu       *fFileMenu ;
+
+  //   divide the Window in two different parts
+  
+  TGCompositeFrame  *fFrameTop ;   // top part of the main window
+  TGCompositeFrame  *fFrameLow ;   // low part of the main window
+  TGTab             *fTab      ;   // different tabs in the low window
+  
+  //     the horizontal frame in the top part
+
+  TGHorizontalFrame *fTop1, *fTop2, *fTop3 ; 
+  
+  //   the buttons in the Top Part
+  
+  TGTextButton      *fButPedADC, *fButCrADC  ; 
+  TGTextButton      *fButPedTDC, *fButCrTDC  ; 
+  
+  //   the things in the file selector
+
+  TGCompositeFrame  *fTabF1 ;                       // first tab of low part 
+  TGCompositeFrame  *fTabF1a, *fTabF1b ;            // subpart of the file selector in low window
+  TGListBox         *fDir ; 
+  TGPictureButton   *fCdup, *fListMode, *fDetail ; 
+  TGFileContainer   *fFileCont ; 
+  TGListView        *fFileView ;
+
+  //     Layout hints for different uses 
+  
+  TGLayoutHints     *fLayMenuBar, *fLayMenuItem ; 
+  TGLayoutHints     *fLayTab ; 
+  
+  //     some icons and pictures often used
+  
+  const TGPicture   *fPicCdup;   //!
+  const TGPicture   *fPicList;   //!
+  const TGPicture   *fPicDetail; //!
+  
+ public: 
+  MGDataCheckMain(const TGWindow *p, const TGWindow *main, UInt_t w, UInt_t h) ;
+  
+  ~MGDataCheckMain(); 
+  
+  void   CloseWindow()  ; 
+
+  Bool_t InputFileSelected() ; 
+  
+  Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
+
+  ClassDef(MGDataCheckMain, 1)
+
+} ; 
+
+#endif
+
+
Index: /branches/start/MagicSoft/Mars/mgui/MGMarsMain.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mgui/MGMarsMain.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mgui/MGMarsMain.cc	(revision 4308)
@@ -0,0 +1,232 @@
+#include "MGMarsMain.h"
+
+#include <TApplication.h>  // gROOT->GetApplication()->...
+
+#include <TGTab.h>         // TGTab
+#include <TGMenu.h>        // TGPopupMenu
+#include <TGMsgBox.h>      // TGMsgBox
+#include <TGButton.h>      // TGPictureButton
+#include <TGSplitter.h>    // TGHorizontal3DLine
+
+#include "MGDataCheckMain.h"
+
+ClassImp(MGMarsMain)
+
+MGMarsMain::MGMarsMain(const TGWindow *p, UInt_t w, UInt_t h)
+  : TGMainFrame(p, w, h)
+{ 
+  //    First create the MenuBar.   
+  
+  //     Layout objects for menue. 
+
+  fLayMenuBar = new TGLayoutHints ( kLHintsTop | kLHintsLeft | kLHintsExpandX, 2, 2, 2, 2 ) ; 
+  fLayMenuItem = new TGLayoutHints ( kLHintsTop | kLHintsLeft , 0, 4, 0, 0 ) ; 
+  
+  //  crate the menu bar
+  
+  fFileMenu = new TGPopupMenu ( fClient->GetRoot() ) ; 
+  fFileMenu->AddEntry ("Exit", M_FILE_EXIT ) ; 
+  fFileMenu->Associate(this) ; 
+  
+  //  the button messages are handled by main frame (this) 
+  
+  fMenuBar = new TGMenuBar ( this, 1, 1, kHorizontalFrame ) ; 
+  fMenuBar->AddPopup("File", fFileMenu, fLayMenuItem ) ;   
+  AddFrame(fMenuBar, fLayMenuBar ) ; 
+
+  fLineSep = new TGHorizontal3DLine(this) ; 
+  AddFrame(fLineSep, new TGLayoutHints(kLHintsTop | kLHintsExpandX) );
+  
+  //   set up the top part of the main window with the logos
+
+  fTop = new TGHorizontalFrame (this, 300, 100 ) ;
+
+  fPicMagic = new TGPictureButton(fTop, 
+                                  gClient->GetPicture("magiclogo.xpm"), M_PICTURE_MAGIC );
+  fPicMagic->Associate(this) ; 
+  fTop->AddFrame ( fPicMagic, new TGLayoutHints(kLHintsLeft, 10., 10., 20., 10.) ) ; 
+
+  fPicMars = new TGPictureButton(fTop, 
+				 gClient->GetPicture("marslogo.xpm"), M_PICTURE_MARS );
+  fPicMars->Associate(this) ;
+  fTop->AddFrame ( fPicMars, new TGLayoutHints(kLHintsLeft, 10., 10., 10., 10.) ) ; 
+
+  AddFrame(fTop, new TGLayoutHints(kLHintsTop | kLHintsExpandX ) );  
+  
+  //  a seperator 
+
+  fLineSep2 = new TGHorizontal3DLine(this) ; 
+  AddFrame(fLineSep2, new TGLayoutHints(kLHintsTop | kLHintsExpandX) );
+
+  //   the low part of the frame 
+
+  fLow = new TGHorizontalFrame (this, 300, 100 ) ;
+
+  //    create the first tab
+
+  fTab = new TGTab ( fLow, 400, 400 ) ;   
+
+  TGCompositeFrame *tf = fTab->AddTab("Control") ; 
+ 
+  fTabF1 = new TGVerticalFrame (tf, 300, 100) ; 
+
+  tf->AddFrame(fTabF1, new TGLayoutHints(kLHintsTop | kLHintsExpandX) ) ; 
+
+  //     the buttons to go in the new window
+
+  fTabF2 = new TGVerticalFrame (tf, 300, 100) ; 
+  
+  fButLayout  = new TGLayoutHints(kLHintsTop | kLHintsCenterX , 10, 10, 10, 10) ; 
+
+  fButEvtDisp = new TGTextButton(fTabF2, "EventDisplay", M_BUTTON_EVTDISP  );
+  fButEvtDisp->Associate(this) ;  
+  fTabF2->AddFrame(fButEvtDisp, fButLayout ) ; 
+ 
+  fButDataCheck = new TGTextButton(fTabF2, "Data Check", M_BUTTON_DATACHECK  );
+  fButDataCheck->Associate(this) ;
+  fTabF2->AddFrame(fButDataCheck, fButLayout ) ; 
+
+  fButAnalys = new TGTextButton(fTabF2, "Analysis", M_BUTTON_ANALYSE  );
+  fButAnalys->Associate(this) ;
+  fTabF2->AddFrame(fButAnalys, fButLayout ) ; 
+
+  fButMonteCarlo = new TGTextButton(fTabF2, "MonteCarlo", M_BUTTON_MONTECARLO  );
+  fButMonteCarlo->Associate(this) ;
+  fTabF2->AddFrame(fButMonteCarlo, fButLayout ) ; 
+
+
+   
+
+  tf->AddFrame(fTabF2, new TGLayoutHints(kLHintsTop | kLHintsExpandX) ) ; 
+  
+  
+
+  fLow->AddFrame ( fTab, new TGLayoutHints(kLHintsBottom | kLHintsExpandX | kLHintsExpandY, 5, 5, 5, 5) );   
+  AddFrame(fLow, new TGLayoutHints(kLHintsTop | kLHintsExpandX ) );
+  
+  //   Map the window, set up the layout, etc. 
+  
+  SetWMSizeHints(400, 650, 1000, 1000, 10, 10 ) ;  // set the smallest and biggest size of the Main frame
+  
+  MapSubwindows();
+  
+  Layout();
+  
+  SetWindowName("MARS Main Window");
+  SetIconName("MARS");
+  
+  MapWindow();
+
+} 
+
+// ======================================================================
+
+MGMarsMain::~MGMarsMain()
+{
+  
+  delete  fButLayout, fLayMenuBar, fLayMenuItem ; 
+  delete  fButEvtDisp, fButDataCheck, fButAnalys, fButMonteCarlo; 
+  delete  fPicMagic, fPicMars; 
+  delete  fTabF1, fTabF2; 
+  delete  fTab; 
+  delete  fLow, fTop; 
+  delete  fLineSep2, fLineSep; 
+  delete  fFileMenu; 
+  delete  fMenuBar; 
+}  
+// ======================================================================
+
+void MGMarsMain::CloseWindow()
+{
+   // Got close message for this MainFrame. Calls parent CloseWindow()
+   // (which destroys the window) and terminate the application.
+   // The close message is generated by the window manager when its close
+   // window menu item is selected.
+
+   TGMainFrame::CloseWindow();
+   gROOT->GetApplication()->Terminate(0)  ; 
+}
+
+Bool_t MGMarsMain::ProcessMessage(Long_t msg, Long_t parm1, Long_t)
+{     
+  // Process events generated by the buttons in the frame.
+  //  printf (" process Message \n" ) ; 
+
+  Int_t   buttons = 4, retval = 0 ; 
+
+  
+  switch (GET_MSG(msg)) 
+    {
+    case kC_COMMAND:
+      switch (GET_SUBMSG(msg)) 
+	{
+	case kCM_BUTTON:
+	  
+	  switch (parm1)
+	    {  
+
+	    case M_BUTTON_EVTDISP:
+	      new TGMsgBox(fClient->GetRoot(), this,
+			   "WARNING!", 
+			   "EventDisplay not yet implemented!", 
+			   kMBIconExclamation, buttons, &retval);
+	      break ;
+	      
+	    case M_BUTTON_DATACHECK:
+	      new MGDataCheckMain(fClient->GetRoot(), this, 1, 1 ) ; 
+	      break ;
+
+	    case M_BUTTON_ANALYSE:
+	      new TGMsgBox(fClient->GetRoot(), this,
+			   "WARNING!", 
+			   "Analysis not yet implemented!", 
+			   kMBIconExclamation, buttons, &retval);
+	      break ;
+
+	    case M_BUTTON_MONTECARLO:
+	      new TGMsgBox(fClient->GetRoot(), this,
+			   "WARNING!", 
+			   "MONTECARLO not yet implemented!", 
+			   kMBIconExclamation, buttons, &retval);
+	      break ;
+
+	    case M_PICTURE_MAGIC:
+	      new TGMsgBox(fClient->GetRoot(), this,
+			   "WARNING!", 
+			   "Please open a Netscape to the MAGIC homepage", 
+			   kMBIconExclamation, buttons, &retval);
+	      break ;
+
+	    case M_PICTURE_MARS:
+	      new TGMsgBox(fClient->GetRoot(), this,
+			   "WARNING!", 
+			   "Please open a Netscape to the MARS homepage", 
+			   kMBIconExclamation, buttons, &retval);
+	      break ;
+
+	      
+	    default:
+	      break ; 
+	    } 
+
+
+	case kCM_MENU:
+	
+	  switch (parm1) {
+	  case M_FILE_EXIT: 
+	    CloseWindow() ;
+	    break; 
+	  }
+
+
+	default:
+	  break ;
+	}
+    
+    default:
+      break ;
+    }
+
+   return kTRUE;
+  
+}
Index: /branches/start/MagicSoft/Mars/mgui/MGMarsMain.h
===================================================================
--- /branches/start/MagicSoft/Mars/mgui/MGMarsMain.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mgui/MGMarsMain.h	(revision 4308)
@@ -0,0 +1,79 @@
+#ifndef MGMARSMAIN_H
+#define MGMARSMAIN_H
+
+#ifndef MAGIC_H
+#include "MAGIC.h"
+#endif
+
+#ifndef ROOT_TGFrame
+#include <TGFrame.h>
+#endif
+
+class TGTab;
+class TGMenuBar;
+class TGPopupMenu;
+class TGTextButton;
+class TGPictureButton;
+class TGHorizontal3DLine;
+
+enum CommandIdentifiers {
+  M_FILE_EXIT  ,
+  M_FILE_ABOUT  ,
+
+  M_PICTURE_MAGIC , 
+  M_PICTURE_MARS ,
+
+  M_BUTTON_EVTDISP ,
+  M_BUTTON_DATACHECK ,
+  M_BUTTON_ANALYSE ,
+  M_BUTTON_MONTECARLO 
+} ; 
+
+
+class MGMarsMain : public TGMainFrame {
+ private:
+  
+  //
+  // Create a main frame with a number of different buttons.
+  //
+
+  //  the things for the menu bar 
+    
+  TGMenuBar         *fMenuBar ; 
+  TGPopupMenu       *fFileMenu ;
+  TGLayoutHints     *fLayMenuBar, *fLayMenuItem ; 
+  TGHorizontal3DLine *fLineSep ; 
+
+  //   divide the Window in two different parts
+  
+  TGHorizontalFrame  *fTop ;   // top part of the main window
+  TGHorizontal3DLine *fLineSep2 ;
+  TGHorizontalFrame  *fLow ;   // low part of the main window
+  TGTab              *fTab ;   // different tabs in the low window
+  
+  //   the object in the top part of the frame
+  
+  TGPictureButton *fPicMagic, *fPicMars ;
+ 
+  //   the object in the low part of the frame
+ 
+  TGVerticalFrame  *fTabF1, *fTabF2 ; 
+  
+  TGTextButton     *fButEvtDisp, *fButDataCheck, *fButAnalys, *fButMonteCarlo ;
+  TGLayoutHints    *fButLayout ; 
+ 
+ public: 
+  MGMarsMain(const TGWindow *p, UInt_t w, UInt_t h) ;
+  
+  ~MGMarsMain(); 
+  
+  void CloseWindow()  ; 
+
+  Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
+
+  ClassDef(MGMarsMain, 1)
+} ; 
+
+#endif
+
+
Index: /branches/start/MagicSoft/Mars/mgui/Makefile
===================================================================
--- /branches/start/MagicSoft/Mars/mgui/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mgui/Makefile	(revision 4308)
@@ -0,0 +1,124 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+# @maintitle
+
+# @code
+
+#
+#  please change all system depend values in the 
+#  config.mk.${OSTYPE} file 
+#
+#
+include ../Makefile.conf.$(OSTYPE)
+include ../Makefile.conf.general
+
+# @endcode 
+
+# @code 
+
+LIB   = libmgui.a
+
+#
+#  connect the include files defined in the config.mk file
+#
+INCLUDES = -I. -I../mbase -I../mraw -I../mdatacheck
+
+#
+#  ----->>>   root libraries
+#
+
+ROOTLIBS   =  `root-config --libs`
+ROOTGLIBS  =  `root-config --glibs`
+ROOTCFLAGS =  `root-config --cflags`
+
+#
+#  compiler flags
+#
+
+CXXFLAGS  = $(ROOTCFLAGS) $(INCLUDES) $(OPTIM) $(DEBUG)
+CFLAGS    = $(CXXFLAGS)
+FFLAGS    = $(CXXFLAGS)
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cc .cxx .h .hxx .o 
+
+
+SRCFILES = MGMarsMain.cc \
+	   MGDataCheckMain.cc
+
+
+SRCS    = $(SRCFILES)
+HEADERS = $(SRCFILES:.cc=.h)
+OBJS    = $(SRCFILES:.cc=.o) 
+
+############################################################
+
+all: $(LIB)
+
+depend:
+	@makedepend $(SRCS) $(INCLUDES) $(ROOTCFLAGS) \
+        -f../Makefile.depend 2> kk.kk ; cat kk.kk
+
+$(LIB): $(OBJS) GuiCint.o
+	@echo " - Building Library $(LIB) ... "
+	$(AR) $(LIB) *.o 
+
+GuiCint.cc: $(HEADERS) 
+	@echo 
+	@echo " - Generating dictionary GuiCint.cc ..."
+
+	$(ROOTSYS)/bin/rootcint -f GuiCint.cc \
+	-c $(INCLUDES) $(HEADERS) GuiIncl.h GuiLinkDef.h 
+
+.cxx.o:	
+	@echo " - Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.cc.o:	
+	@echo " - Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo " - Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+#
+# The cleaning facility
+#
+
+rmlib:	
+	@echo "Removing libraries..."
+	@rm -f lib*.a
+
+rmcint:	
+	@echo "Removing cint-stuff..."
+	@rm -f GuiCint.*
+
+rmobjs:	
+	@echo "Removing object files..."
+	@rm -f *.o
+
+rmbin:	
+	@echo "Removing binary files..."
+	@rm -f core
+
+
+clean:	rmlib rmcint rmobjs rmbin
+
+mrproper:	clean
+	@echo "Removing *~ kk.kk html/..."
+	@rm -f *~ kk.kk
+
+cflags: 
+	@echo $(INCLUDES) $(CXXFLAGS)
+
+# @endcode
+
Index: /branches/start/MagicSoft/Mars/mraw/MRawCrateArray.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawCrateArray.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawCrateArray.cc	(revision 4308)
@@ -0,0 +1,75 @@
+/////////////////////////////////////////////////////////////////////////////
+//
+// MRawCrateArray
+//
+// This class exists to make it possible to read in the crate data
+// TClones Array. In principal we can directly write the TClonesArray
+// to the root file, but when we read in again the root file we cannot
+// put the TClonesArray into our parameter list, becaus it isn't derived
+// from TNamed. This class is derived from TNamed and can be put in the list
+//
+/////////////////////////////////////////////////////////////////////////////
+#include "MRawCrateArray.h"
+
+#include <iostream.h>
+
+#include <TClonesArray.h>
+
+ClassImp(MRawCrateArray)
+
+MRawCrateArray::MRawCrateArray(const char *name, const char *title)
+{
+    *fName  = name  ? name  : "MRawCrateArray";
+    *fTitle = title ? title : "Array of MRawCrateData Information";
+
+    //
+    // craete an (almost) empty array. The size is easily determined
+    // while filling the array
+    //
+    fArray = new TClonesArray("MRawCrateData", 0);
+}
+
+MRawCrateArray::~MRawCrateArray()
+{
+    delete fArray;
+}
+
+void MRawCrateArray::Clear(Option_t *opt)
+{
+    //
+    // clear the entries in the TClonesArray
+    //
+    fArray->Clear();
+}
+
+void MRawCrateArray::Print(Option_t *opt)
+{
+    cout << "MRawCrateArray::Print()" << endl;
+}
+
+MRawCrateData *MRawCrateArray::GetEntry(Int_t i)
+{
+    //
+    // Return a pointer the i-th entry in the array
+    //
+    return (MRawCrateData*)fArray->AddrAt(i);
+}
+
+MRawCrateData* &MRawCrateArray::operator[](Int_t i)
+{
+    //
+    // Return the i-th entry in the array
+    //
+    return (MRawCrateData*&)(*fArray)[i];
+}
+
+TClonesArray **MRawCrateArray::GetArray()
+{
+    //
+    // return a pointer to the pointer of the array
+    // (actually not used. You may need it if you want to write
+    //  the TClonesArray directly)
+    //
+    return &fArray;
+}
+
Index: /branches/start/MagicSoft/Mars/mraw/MRawCrateArray.h
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawCrateArray.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawCrateArray.h	(revision 4308)
@@ -0,0 +1,37 @@
+#ifndef MRAWCRATEARRAY_H
+#define MRAWCRATEARRAY_H
+///////////////////////////////////////////////////////////////////////
+//                                                                   //
+// MRunHeader                                                        //
+//                                                                   //
+///////////////////////////////////////////////////////////////////////
+
+#ifndef MPARCONTAINER_H
+#include "MParContainer.h"
+#endif
+
+class TClonesArray;
+class MRawCrateData;
+
+class MRawCrateArray : public MParContainer
+{
+private:
+    TClonesArray *fArray;
+
+public:
+    MRawCrateArray(const char *name=NULL, const char *title=NULL);
+    ~MRawCrateArray();
+
+    void Clear(Option_t *opt=NULL);
+    void Print(Option_t *opt=NULL);
+
+    MRawCrateData *GetEntry(Int_t i);
+
+    MRawCrateData* &operator[](Int_t i);
+
+    TClonesArray **GetArray();
+
+    ClassDef(MRawCrateArray, 1)	// Mapping container for the MRawCrateData TClonesArray
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mraw/MRawCrateData.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawCrateData.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawCrateData.cc	(revision 4308)
@@ -0,0 +1,33 @@
+#include "MRawCrateData.h"
+
+#include <iostream.h>
+#include <iomanip.h>
+
+#include <fstream.h>
+
+ClassImp(MRawCrateData)
+
+MRawCrateData::MRawCrateData() : fDAQCrateNumber(0), fFADCEvtNumber(0), fFADCClockTick(0)
+{
+}
+
+void MRawCrateData::ReadEvt(ifstream& fin)
+{
+    //
+    // read the information from a binary input stream about the CRATE DATA,
+    // like specified in a TDAS note
+    //
+    fin.read((Byte_t*)&fDAQCrateNumber, 2);
+    fin.read((Byte_t*)&fFADCEvtNumber,  4);
+    fin.read((Byte_t*)&fFADCClockTick,  4);
+}
+
+void MRawCrateData::Print(Option_t *t)
+{
+    //
+    // print all stored information to screen
+    //
+    cout << "Crate Number " << fDAQCrateNumber << ":  ";
+    cout << "FADCEventNr=" << fFADCEvtNumber << "  ";
+    cout << "FADCClockTick=" << fFADCClockTick << " (20MHz)" << endl;
+}
Index: /branches/start/MagicSoft/Mars/mraw/MRawCrateData.h
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawCrateData.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawCrateData.h	(revision 4308)
@@ -0,0 +1,49 @@
+#ifndef MRAWCRATEDATA_H
+#define MRAWCRATEDATA_H
+
+#ifndef MAGIC_H
+#include "MAGIC.h"
+#endif
+#ifndef ROOT_TObject
+#include <TObject.h>
+#endif
+
+class ifstream;
+
+class MRawCrateData : public TObject
+{
+private:
+    UShort_t fDAQCrateNumber;  // Crate number the information corresponds to
+    UInt_t   fFADCEvtNumber;   // event number from the fadc
+    UInt_t   fFADCClockTick;   // clock tick from the fadc (20MHz)
+
+public:
+    MRawCrateData();
+
+    ~MRawCrateData()
+    {
+    }
+
+    UChar_t GetDAQCrateNumber() const
+    {
+        return fDAQCrateNumber;
+    }
+
+    UInt_t  GetFADCEvtNumber() const
+    {
+        return fFADCEvtNumber;
+    }
+
+    UInt_t  GetFADCClockTick() const
+    {
+        return fFADCClockTick;
+    }
+
+    void Print(Option_t *t=NULL);
+
+    void ReadEvt(ifstream& fin);
+
+    ClassDef(MRawCrateData, 1) //Container to store the Raw CRATE DATA
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mraw/MRawEvtData.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawEvtData.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawEvtData.cc	(revision 4308)
@@ -0,0 +1,325 @@
+/////////////////////////////////////////////////////////////////////////////
+//
+//  MRawEvtData
+//
+//  Storage container to store the raw FADC values.
+//
+//  MArrayS fHiGainPixId
+//  ---------------------
+//  Array of Pixel Numbers for their high voltage channel in the order the
+//  FADC values are stored in fHiGainFadcSamples
+//
+//  MArrayB fHiGainFadcSaples
+//  -------------------------
+//  FADC samples (hi gain) of all pixels
+//
+//  MArrayS fLoGainPixId
+//  --------------------
+//  see fHiGainPixId
+//
+//  MArrayB fLoGainFadcSamples
+//  --------------------------
+//  see fHiGainFadcSaples
+//
+/////////////////////////////////////////////////////////////////////////////
+
+#include "MRawEvtData.h"
+
+#include <iostream.h>
+#include <iomanip.h>
+
+#include <fstream.h>
+
+#include <TH1.h>
+#include <TGraph.h>
+#include <TArrayC.h>
+
+#include "MArrayS.h"
+#include "MArrayB.h"
+#include "MRawRunHeader.h"
+
+ClassImp(MRawEvtData)
+
+MRawEvtData::MRawEvtData(const char *name, const char *title)
+{
+    *fName  = name  ? name  : "MRawEvtData";
+    *fTitle = title ? title : "Raw Event Data Information";
+
+    InitArrays();
+}
+
+MRawEvtData::~MRawEvtData()
+{
+    DeleteArrays();
+}
+
+void MRawEvtData::Clear(Option_t *)
+{
+    //
+    // reset all arrays
+    //
+
+    /*
+     FIXME:
+     Is Reset (set all entries to zero) what you want to do
+     or Set(0) (delete the array)
+     */
+    fHiGainPixId->Reset();
+    fLoGainPixId->Reset();
+    fHiGainFadcSamples->Reset();
+    fLoGainFadcSamples->Reset();
+}
+
+Byte_t MRawEvtData::GetNumHiGainSamples() const
+{
+    return fHiGainPixId->GetSize() ? fHiGainFadcSamples->GetSize()/fHiGainPixId->GetSize() : 0;
+}
+
+Byte_t MRawEvtData::GetNumLoGainSamples() const
+{
+    return fLoGainPixId->GetSize() ? fLoGainFadcSamples->GetSize()/fLoGainPixId->GetSize() : 0;
+}
+
+Byte_t MRawEvtData::GetNumPixels() const
+{
+    return fHiGainPixId->GetSize();
+}
+
+
+void MRawEvtData::Print(Option_t *)
+{
+    //
+    // print fadc inforation to screen
+    //
+    const Byte_t nHiSamp = GetNumHiGainSamples();
+    const Byte_t nLoSamp = GetNumLoGainSamples();
+
+    const UShort_t nHiPix = fHiGainPixId->GetSize();;
+    const UShort_t nLoPix = fLoGainPixId->GetSize();;
+
+    cout << dec;
+    cout << "HiGain: " << nHiPix << " Pixels with " << (Int_t)nHiSamp << " Samples" << endl;
+    cout << "LoGain: " << nLoPix << " Pixels with " << (Int_t)nLoSamp << " Samples" << endl;
+
+    Int_t l=0;
+    for (int i=0; i<nHiPix; i++)
+    {
+        cout << " " << setfill(' ') << setw(3) << i << ": " << hex << flush;
+
+        cout << setfill('0');
+
+        for (int j=0; j<nHiSamp; j++)
+            cout << setw(2)
+                << ((UShort_t)(*fHiGainFadcSamples)[j+i*nHiSamp]&0xff) << flush;
+
+        if (l<nLoPix && (*fLoGainPixId)[l]==(*fHiGainPixId)[i])
+        {
+            for (int j=0; j<nLoSamp; j++)
+                cout << setw(2)
+                    <<((UShort_t)(*fLoGainFadcSamples)[j+i*nLoSamp]&0xff) << flush;
+            l++;
+        }
+        cout << dec << endl;
+    }
+    cout << endl;
+}
+
+void MRawEvtData::Draw(Option_t *opt)
+{
+    TString str(opt);
+
+    UInt_t num = 0;
+
+    if (str.BeginsWith("GRAPH", TString::kIgnoreCase))
+    {
+        if (str.Length()>5)
+            sscanf(&str[5], "%d", &num);
+
+        if (num>=GetNumPixels())
+            num= GetNumPixels();
+
+        cout << "Drawing Graph of Pixel " << num << endl;
+
+        const Int_t n = GetNumHiGainSamples();
+
+        Float_t *x = new Float_t[n];
+        Float_t *y = new Float_t[n];
+
+        for (int i=0; i<n; i++)
+        {
+            x[i] = i;
+            y[i] = (*fHiGainFadcSamples)[i + num*GetNumHiGainSamples()];
+        }
+
+        TGraph *graph = new TGraph(n, x, y);
+        graph->Draw("AC*");
+
+        return;
+    }
+
+    if (str.BeginsWith("HIST", TString::kIgnoreCase))
+    {
+        cout << "Length: " << str.Length() << endl;
+
+        if (str.Length()>4)
+            sscanf(&str[4], "%d", &num);
+
+        if (num>=GetNumPixels())
+            num= GetNumPixels();
+
+        cout << "Drawing Histogram of Pixel " << num << endl;
+
+        const Int_t n = GetNumHiGainSamples();
+
+        char *name = new char[16];
+
+        sprintf(name, "Pixel No.%d", (*fHiGainPixId)[num]);
+
+        TH1F *hist = new TH1F(name, "Hi Gain Samples FADC", n, 0, n);
+
+        for (int i=0; i<n; i++)
+            hist->Fill(0.5+i, (*fHiGainFadcSamples)[i + num*GetNumHiGainSamples()]);
+
+        hist->Draw();
+
+        return;
+    }
+
+    cout << "MRawEvtData::Draw: Warning: You must specify either 'GRAPH' or 'HIST'" << endl;
+}
+
+void MRawEvtData::DeletePixels()
+{
+    //
+    // Deletes all arrays describing the pixel Id and Samples in pixels
+    //
+    DeleteArrays();
+    InitArrays();
+}
+
+void MRawEvtData::DeleteArrays()
+{
+    delete fHiGainPixId;
+    delete fLoGainPixId;
+    delete fHiGainFadcSamples;
+    delete fLoGainFadcSamples;
+}
+
+void MRawEvtData::InitArrays()
+{
+    fHiGainPixId       = new MArrayS(0); //UShort_t[0];
+    fLoGainPixId       = new MArrayS(0); //new UShort_t[0];
+    fHiGainFadcSamples = new MArrayB(0); //new Byte_t[0];
+    fLoGainFadcSamples = new MArrayB(0); //new Byte_t[0];
+}
+
+void MRawEvtData::AddPixel(UShort_t nOfPixel, TArrayC *data, Bool_t lflag)
+{
+    //
+    //  This is to fill the data of one pixel to the MRawEvtHeader Class.
+    //  The parameters are the pixelnumber and the FADC_SLICES values of ADCs
+    //  Add to lo gains if lflag = 1
+    //
+
+    MArrayS *arrpix = lflag ? fLoGainPixId       : fHiGainPixId;
+    MArrayB *arrsam = lflag ? fLoGainFadcSamples : fHiGainFadcSamples;
+
+    //
+    // check whether we got the right number of new samples
+    // if there are no samples already stored: this is the new number of samples
+    //
+    const Byte_t ns    = data->GetSize();
+    const Byte_t nSamp = lflag ? GetNumLoGainSamples() : GetNumHiGainSamples();
+    if (nSamp && ns!=nSamp)
+    {
+        cout << "RawEvtData::FillPixel: Error, number of samples in ";
+        cout << "TArrayC doesn't match actual number" << endl;
+        return;
+    }
+
+    //
+    // enhance pixel array by one
+    //
+    arrpix->Set(arrpix->GetSize()+1);
+
+    //
+    // add the number of the new pixel to the array as last entry
+    //
+    arrpix->AddAt(nOfPixel, arrpix->GetSize()-1);
+
+    //
+    // enhance the array by the number of new samples
+    //
+    arrsam->Set(arrsam->GetSize()+ns);
+
+    //
+    // add the new slices as last entries to array
+    //
+    arrsam->AddAt((Byte_t*)data->GetArray(), arrsam->GetSize()-ns, ns);
+}
+
+/*
+void MRawEvtData::AddPixelLo(UShort_t nOfPixel, TArrayC *data, int nr, int pos)
+{
+    //
+    // add the number of the new pixel to the array as last entry
+    //
+    fLoGainPixId->AddAt(nOfPixel, nr);
+
+    //
+    // add the new slices as last entries to array
+    //
+    fLoGainFadcSamples->AddAt((Byte_t*)data->GetArray(), pos,  data->GetSize());
+}
+
+void MRawEvtData::AddPixelHi(UShort_t nOfPixel, TArrayC *data, int nr, int pos)
+{
+    // check whether we got the right number of new samples
+    // if there are no samples already stored: this is the new number of samples
+    //
+    const Byte_t ns = data->GetSize();
+
+    //
+    // add the number of the new pixel to the array as last entry
+    //
+    fHiGainPixId->AddAt(nOfPixel, nr);
+
+    //
+    // add the new slices as last entries to array
+    //
+    fHiGainFadcSamples->AddAt((Byte_t*)data->GetArray(), arrsam->GetSize()-ns, ns);
+}
+*/
+void MRawEvtData::ReadEvt(ifstream &fin)
+{
+    //
+    // Fills members with information from a magic binary file.
+    //   WARNING: you have to use Init() before you can do this
+    //
+    const UShort_t nlo = fRunHeader->GetNumSamplesLoGain();
+    const UShort_t nhi = fRunHeader->GetNumSamplesHiGain();
+
+    TArrayC lo(nlo);
+    TArrayC hi(nhi);
+
+    const UShort_t npic = fRunHeader->GetNumPixInCrate();
+
+    for (int i=0; i<npic; i++)
+    {
+        //
+        // get the spiral pixel number from the run header
+        //
+        const UShort_t npix = fRunHeader->GetPixAssignment(i);
+
+        // FIXME: Not implemented in the raw files yet
+        //if (IsLoGainOn(i, j))
+        //{
+        fin.read((Byte_t*)lo.GetArray(), nlo);
+        AddPixel(npix, &lo, kTRUE);
+        //}
+
+        fin.read((Byte_t*)hi.GetArray(), nhi);
+        AddPixel(npix, &hi, kFALSE);
+    }
+}
+
Index: /branches/start/MagicSoft/Mars/mraw/MRawEvtData.h
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawEvtData.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawEvtData.h	(revision 4308)
@@ -0,0 +1,61 @@
+#ifndef MRAWEVTDATA_H
+#define MRAWEVTDATA_H
+
+#ifndef MPARCONTAINER_H
+#include "MParContainer.h"
+#endif
+
+class ifstream;
+class MRawRunHeader;
+
+class TArrayC;
+class MArrayS;
+class MArrayB;
+
+class MRawEvtData : public MParContainer
+{
+    friend class MRawEvtPixelIter;
+private:
+    MRawRunHeader *fRunHeader;    //! provides information about numbers
+
+    // FIXME: COMMENT ABOUT ORDERING
+
+    MArrayS *fHiGainPixId;        // list of pixel IDs of hi gain channel
+    MArrayB *fHiGainFadcSamples;  // list of hi gain samples of all pixels (ordering: see fHiGainPixId)
+
+    MArrayS *fLoGainPixId;        // list of pixel IDs of lo gain channel
+    MArrayB *fLoGainFadcSamples;  // list of lo gain samples of all pixels (ordering: see fLoGainPixId)
+
+    void InitArrays();
+    void DeleteArrays();
+
+public:
+    MRawEvtData(const char *name=NULL, const char *title=NULL);
+    ~MRawEvtData();
+
+    void Init(MRawRunHeader *rh)
+    {
+        //
+        // you have to set this before you can read information
+        // from a magic binary file
+        //
+        fRunHeader = rh;
+    }
+
+    void Clear(Option_t * = NULL);
+    void Print(Option_t * = NULL);
+    void Draw (Option_t * = NULL);
+
+    void DeletePixels();
+    void AddPixel(UShort_t nOfPixel, TArrayC *data, Bool_t lflag=kFALSE);
+
+    Byte_t GetNumHiGainSamples() const;
+    Byte_t GetNumLoGainSamples() const;
+    Byte_t GetNumPixels() const;
+
+    void ReadEvt(ifstream &fin);
+
+    ClassDef(MRawEvtData, 1) //Container to store the raw Event Data
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mraw/MRawEvtHeader.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawEvtHeader.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawEvtHeader.cc	(revision 4308)
@@ -0,0 +1,230 @@
+/////////////////////////////////////////////////////////////////////////////
+//
+// MRawEvtHeader 
+//    
+// One Event is a sample of FADC measurements of different Pixels 
+// (Photomultipliers) from the Camera of MAGIC. So all data (FADC) of the 
+// interesting pixels are the modules of an event. To describe pixels the 
+// class MRawPixel is used and the class MRawCrate to describe Crates.
+// To define a single events some other data members are needed 
+// (Time of the events, tirgger pattern of event..)
+// 
+// To describe one event on the level of FADC values the Class MRawEvtHeader is
+// created. It has the following data members: 
+//
+// UInt_t    fDAQEvtNumber
+// -----------------------
+// This it the number of the Event in one 
+// data run. The first event in this run get
+// the number zero. The next one is one bigger.
+//
+// Assuming that one run takes 1 hour and a
+// triggerrate of 1kHz the number must be able
+// to reach 3.6e6 Events. To reach this number
+// you need at least 22 bits. This is the reason
+// why we use an integer (of root type UInt_t)
+// with a range to 4.2e9. 
+//
+// MTime   fRawEvtTime
+// -------------------
+// Time of the event. 
+// The start point of the time determination can be
+// the millenium. From that start point the time is
+// measured in 200ns-count. One day for example
+// contains 432.e9 counts. An array of two unsigned Int is able to 
+// contain 1.8e19 200ns-counts. This corresponds to 41.e6
+// days. This should be more than the livetime of MAGIC.
+// Private member of MTime.h
+//
+// UInt_t  fNumTrigLvl1
+// --------------------
+//
+// Number of first level trigger
+// This member counts the number of First Level Trigger
+// between the last and this event. May be that due to 
+// dead time of the DAQ this number is different from 1.
+// If the DAQ is fast enough, this value should be 1. 
+// This may be usefull in GammaRayBursts and if we 
+// apply a data reduction in the DAQ-chain, which selects
+// only good events. 
+//
+// UInt_t  fNumTrigLvl2
+// ------------------ -
+//
+// Number of second level trigger
+// This member counts the number of Second Level Trigger
+// between the last and this event. 
+//
+// UInt_t  fTrigPattern[2]
+// -----------------------
+// Trigger Pattern used for this event
+// Each event triggers for a particular configuration and each  
+// configuration shoul have an ID (which is not fixed yet).
+//
+// UShort_t fAllLowGainOn
+// ----------------------
+// Type of Trigger. 
+// This is a Byte (8 bit) to indicated if any of the pixels 
+// have a non-negligible low gain (1) or not (0) 
+//
+/////////////////////////////////////////////////////////////////////////////
+#include "MRawEvtHeader.h"
+
+#include <iostream.h>
+#include <iomanip.h>
+#include <fstream.h>
+
+#include "MTime.h"
+#include "MArrayB.h"
+#include "MRawRunHeader.h"
+
+ClassImp(MRawEvtHeader)
+
+MRawEvtHeader::MRawEvtHeader(const char *name, const char *title) 
+{
+    *fName  = name  ? name  : "MRawEvtHeader";
+    *fTitle = title ? title : "Raw Event Header Information";
+
+    //
+    //   set all member to zero, init the pointer to ClonesArray,
+    //
+
+    fPixLoGainOn = new MArrayB;
+
+    Clear();
+}
+
+
+MRawEvtHeader::~MRawEvtHeader()
+{
+}
+
+void MRawEvtHeader::Init(MRawRunHeader *rh, MTime *t)
+{
+    //
+    // you have to init the conatainer before you can read from
+    // a raw binary file
+    //
+
+    //
+    // this is the number of entries in the array like specification
+    //
+    UInt_t fN = (rh->GetNumCrates() * rh->GetNumPixInCrate() + 7) / 8;
+
+    //
+    // initialize the array
+    //
+    fPixLoGainOn->Set(fN);
+
+    //
+    // this is the conatiner where we have to store the time of the event we
+    // read from the input stream
+    //
+    fTime = t;
+}
+
+void MRawEvtHeader::Clear(Option_t *)
+{
+    //
+    //   Implementation of the Clear function
+    //
+    //   Resets all members to zero, clear the list of Pixels
+    //
+    fDAQEvtNumber   = 0;
+    fNumTrigLvl1    = 0;
+    fNumTrigLvl2    = 0;
+    fTrigPattern[0] = 0;
+    fTrigPattern[1] = 0;
+    fTrigType       = 0;
+    fNumLoGainOn    = 0;
+}
+
+void MRawEvtHeader::Print(Option_t *o)
+{
+    //
+    //  This member function prints all Data of one Event on screen.
+    //
+    cout << "DAQEvtNr: " << dec << fDAQEvtNumber << "  (";
+    cout << "Trigger: ";
+    cout << "NumLvl1=" << fNumTrigLvl1 << " ";
+    cout << "NumLvl2=" << fNumTrigLvl2 << " ";
+    cout << "Pattern=" << hex << setfill('0');
+    cout << setw(2) << fTrigPattern[0];
+    cout << setw(2) << fTrigPattern[1] << " " << dec;
+
+    cout << "Type=";
+    switch (fTrigType)
+    {
+    case 0:
+        cout << "Trigger";
+        break;
+    case 1:
+        cout << "Pedestal";
+        break;
+    case 2:
+        cout << "Calibration";
+        break;
+    }
+    cout << ")" << endl;
+    cout << "Number of Lo Gains On: " << fNumLoGainOn << endl;
+
+    for (int i=0; i<fPixLoGainOn->GetSize(); i++)
+    {
+        for (int j=0; j<8; j++)
+        {
+            const UInt_t on = (*fPixLoGainOn)[i]&(1<<j) ? 1 : 0;
+            cout << on;
+        }
+    }
+
+    cout << endl;
+
+    cout << endl;
+
+}
+
+void MRawEvtHeader::FillHeader(UInt_t uiN, Float_t ulTP)
+{
+    //
+    // used to set the header information (eg. from MC)
+    //
+    fDAQEvtNumber = uiN;
+    fTrigPattern[0] = (UInt_t) (ulTP/4294967296.0) ;
+    fTrigPattern[1] = (UInt_t) (ulTP-fTrigPattern[0]*4294967296.0);
+}
+
+int MRawEvtHeader::ReadEvt(ifstream &fin)
+{
+    //
+    // read the EVENT HEADER information from the input stream
+    // return FALSE if there is now header anymore, else TRUE
+    //
+    fin.read((Byte_t*)&fDAQEvtNumber, 4);
+
+    UInt_t fAbsTime[2];
+    fin.read((Byte_t*)fAbsTime,       8);
+
+    //
+    // store the time of the event in the corresponding container
+    //
+    fTime->SetTime(fAbsTime[0], fAbsTime[1]);
+
+    Byte_t dummy[4];
+
+    fin.read((Byte_t*)&fNumTrigLvl1,  4);
+    fin.read((Byte_t*)&fNumTrigLvl2,  4);
+    fin.read((Byte_t*)fTrigPattern,   8);
+    fin.read((Byte_t*)&fTrigType,     2);
+    fin.read((Byte_t*)dummy,          2); // was fAllLoGainOn
+    fin.read((Byte_t*)fPixLoGainOn->GetArray(), fPixLoGainOn->GetSize());
+
+    fNumLoGainOn = 0;
+    for (int i=0; i<fPixLoGainOn->GetSize(); i++)
+        for (int j=0; j<8; j++)
+            if ((*fPixLoGainOn)[i] & (1<<j))
+                fNumLoGainOn++;
+
+    fin.read((Byte_t*)&dummy, 4);
+
+    return !fin.eof();
+}
Index: /branches/start/MagicSoft/Mars/mraw/MRawEvtHeader.h
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawEvtHeader.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawEvtHeader.h	(revision 4308)
@@ -0,0 +1,54 @@
+#ifndef MRAWEVTHEADER_H
+#define MRAWEVTHEADER_H
+
+#ifndef MPARCONTAINER_H
+#include "MParContainer.h"
+#endif
+
+class ifstream;
+class MTime;
+class MArrayB;
+class MRawRunHeader;
+
+class MRawEvtHeader : public MParContainer
+{
+private:
+    MTime   *fTime;            //! object to store the time in (ReadEvt)
+
+    UInt_t   fDAQEvtNumber;    // Number of Event
+
+    UInt_t   fNumTrigLvl1;     // Number of 1st level tiggers between 2 events
+    UInt_t   fNumTrigLvl2;     // Number of 2nd level tiggers between 2 events
+    UInt_t   fTrigPattern[2];  // Trigger configuration
+
+    UShort_t fNumLoGainOn;     // Indicating if no pixel has a neglegible
+                               // low gain signal (0), else it is the number
+                               // of pixels with lo gain on
+
+    //
+    // Informations only needed to read the raw file
+    //
+    UShort_t fTrigType;        //! Trigger Type of this event
+    MArrayB *fPixLoGainOn;     //! Array which tell you which pixels have lo gain on
+
+public:
+
+  MRawEvtHeader(const char *name=NULL, const char *title=NULL);
+  ~MRawEvtHeader();
+
+  void Init(MRawRunHeader *rh, MTime *t);
+
+  void Clear(Option_t * = NULL);
+  void Print(Option_t * = NULL);
+
+  void FillHeader(UInt_t, Float_t=0);
+
+  UShort_t GetTrigType() const { return fTrigType; }
+
+  int ReadEvt(ifstream& fin);
+
+  ClassDef(MRawEvtHeader, 1) // Parameter Conatiner for raw EVENT HEADER
+
+}; 
+
+#endif
Index: /branches/start/MagicSoft/Mars/mraw/MRawEvtPixelIter.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawEvtPixelIter.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawEvtPixelIter.cc	(revision 4308)
@@ -0,0 +1,62 @@
+#include "MRawEvtPixelIter.h"
+
+#include "MRawEvtData.h"
+
+#include "MArrayS.h"
+#include "MArrayB.h"
+
+ClassImp(MRawEvtPixelIter)
+
+TObject *MRawEvtPixelIter::Next()
+{
+    //
+    // if we are already at the last entry there is no 'next' entry anymore
+    //
+    if (fNumHiGainEntry==fData->fHiGainPixId->GetSize()-1)
+        return NULL;
+
+    //
+    // if we are already at the last entry there is no 'next' entry anymore
+    //
+    if (fNumLoGainEntry != fData->fLoGainPixId->GetSize()-1)
+        if (*fHiGainId == *fLoGainId)
+        {
+            //
+            // if higainpixid and logainpixid of the actual pixel are
+            // identical then we have to move the pointer to the next
+            // entry in the lo gains
+            //
+            fNumLoGainEntry++;
+            fLoGainId++;
+            fLoGainPos += fData->GetNumLoGainSamples();
+        }
+
+    //
+    // here we have to move the pointer to the next entry in the hi gains
+    //
+    fNumHiGainEntry++;
+    fHiGainId++;
+    fHiGainPos += fData->GetNumHiGainSamples();
+
+    //
+    // return a pointer to the 'source' class if we succeed
+    //
+    return fData;
+}
+
+void MRawEvtPixelIter::Reset()
+{
+    //
+    // set counter to zero
+    //
+    fNumLoGainEntry = 0;
+    fNumHiGainEntry = 0;
+
+    //
+    // set pointer to first entry of arrays
+    //
+    fHiGainId   = (UShort_t*)fData->fHiGainPixId->GetArray();
+    fLoGainId   = (UShort_t*)fData->fLoGainPixId->GetArray();
+    fHiGainPos  = (Byte_t*)fData->fHiGainFadcSamples->GetArray();
+    fLoGainPos  = (Byte_t*)fData->fLoGainFadcSamples->GetArray();
+}
Index: /branches/start/MagicSoft/Mars/mraw/MRawEvtPixelIter.h
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawEvtPixelIter.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawEvtPixelIter.h	(revision 4308)
@@ -0,0 +1,81 @@
+#ifndef MRAWEVTPIXELITER_H
+#define MRAWEVTPIXELITER_H
+
+#ifndef MAGIC_H
+#include "MAGIC.h"
+#endif
+#ifndef ROOT_TIterator
+#include <TIterator.h>
+#endif
+
+class MRawEvtData;
+
+class MRawEvtPixelIter : public TIterator
+{
+private:
+    UShort_t fNumHiGainEntry;   //! actual number of entry in fHiGainPixId
+    UShort_t fNumLoGainEntry;   //! actual number of entry in fLoGainPixId
+
+    UShort_t *fHiGainId;        //! actual entry of fHiGainPixId
+    UShort_t *fLoGainId;        //! actual entry of fLoGainPixId
+
+    Byte_t   *fHiGainPos;       //! pointer to hi-gain samples of actual pixel
+    Byte_t   *fLoGainPos;       //! pointer to lo-gain samples of actual pixel
+
+    MRawEvtData *fData;         //! pointer to object which we are iterating
+
+public:
+    MRawEvtPixelIter(MRawEvtData *dat) : fData(dat)
+    {
+        //
+        // WARNING: The Iterator now points to the FIRST entry.
+        //          This means that you have to use a do...while loop
+        //          NOT a while() loop.
+        //
+        Reset();
+    }
+
+    TObject *Next();
+
+    UShort_t GetPixelId() const
+    {
+        //
+        // return Id of actual pixel
+        //
+        return *fHiGainId;
+    }
+
+    Byte_t *GetHiGainFadcSamples() const
+    {
+        //
+        // return a pointer to the fadc samples of the hi gains
+        // WARNING: Don't forget to get the number of valid entries
+        //          (GetNumSamples) to know how many entries of the array
+        //          belong to the actual pixel
+        //
+        return fHiGainPos;
+    }
+
+    Bool_t IsLoGain() const
+    {
+        //
+        // return kTRUE  the lo gains exist for the actual pixel, else return kFALSE
+        //
+        return *fHiGainId==*fLoGainId;
+    }
+
+    Byte_t *GetLoGainFadcSamples() const
+    {
+        //
+        // return a pointer to the fadc samples of the lo gains if they exist
+        // for the actual pixel, else return zero
+        //
+        return IsLoGain() ? fLoGainPos : NULL;
+    }
+
+    void Reset();
+
+    ClassDef(MRawEvtPixelIter, 1)
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mraw/MRawFileRead.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawFileRead.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawFileRead.cc	(revision 4308)
@@ -0,0 +1,150 @@
+////////////////////////////////////////////////////////////////////////
+//
+//  MRawFile
+//
+//  This tasks reads the raw binary file like specified in the TDAS???
+//  and writes the data in the corresponding containers which are
+//  either retrieved from the parameter list or created and added.
+//
+////////////////////////////////////////////////////////////////////////
+
+#include "MRawFileRead.h"
+
+#include <iostream.h>
+#include <fstream.h>
+
+#include "MTime.h"
+#include "MParList.h"
+#include "MRawRunHeader.h"
+#include "MRawEvtHeader.h"
+#include "MRawEvtData.h"
+#include "MRawCrateData.h"
+#include "MRawCrateArray.h"
+
+ClassImp(MRawFileRead)
+
+MRawFileRead::MRawFileRead(const char *fname, const char *name, const char *title)
+{
+    *fName  = name  ? name  : "MRawFileRead";
+    *fTitle = title ? title : "Read task to read DAQ binary files";
+
+    //
+    // open the input stream
+    //
+    fIn = new ifstream(fname);
+
+    /*
+     FIXME: How can I test whether the construction of
+            the instance was successfull?
+    if (!fIn->is_open())
+    cout << "Error: Trying to open file '" << fname << "'" << endl;
+    */
+}
+
+Bool_t MRawFileRead::PreProcess (MParList *pList)
+{
+    //
+    // remember the pointer to the parameter list fur further usage
+    //
+    pParList = pList;
+
+    //
+    //  check if all necessary containers exist in the Parameter list.
+    //  if not create one and add them to the list
+    //
+    fRawRunHeader = (MRawRunHeader*)pList->FindObject("MRawRunHeader");
+    if (!fRawRunHeader)
+    {
+        cout << "MRawFileRead::PreProcess - WARNING: MRawRunHeader not found... creating." << endl;
+        fRawRunHeader = new MRawRunHeader;
+        pList->AddToList(fRawRunHeader);
+    }
+
+    fRawEvtHeader = (MRawEvtHeader*)pList->FindObject("MRawEvtHeader");
+    if (!fRawEvtHeader)
+    {
+        cout << "MRawFileRead::PreProcess - WARNING: MRawEvtHeader not found... creating." << endl;
+        fRawEvtHeader = new MRawEvtHeader;
+        pList->AddToList(fRawEvtHeader);
+    }
+
+    fRawEvtData = (MRawEvtData*)pList->FindObject("MRawEvtData");
+    if (!fRawEvtData)
+    {
+        cout << "MRawFileRead::PreProcess - WARNING: MRawEvtData not found... creating." << endl;
+        fRawEvtData = new MRawEvtData;
+        pList->AddToList(fRawEvtData);
+    }
+
+    fRawCrateArray = (MRawCrateArray*)pList->FindObject("MRawCrateArray");
+    if (!fRawCrateArray)
+    {
+        cout << "MRawFileRead::PreProcess - WARNING: MRawCrateArray not found... creating." << endl;
+        fRawCrateArray = new MRawCrateArray;
+        pList->AddToList(fRawCrateArray);
+    }
+
+    fRawEvtTime = (MTime*)pList->FindObject("MRawEvtTime");
+    if (!fRawEvtTime)
+    {
+        cout << "MRawFileRead::PreProcess - WARNING: MRawEvtTime not found... creating." << endl;
+        fRawEvtTime = new MTime("MRawEvtTime");
+        pList->AddToList(fRawEvtTime);
+    }
+
+    //
+    // Read RUN HEADER (see specification) from input stream
+    //
+    fRawRunHeader->ReadEvt(*fIn);
+    fRawRunHeader->Print();
+
+    //
+    // Give the run header information to the 'sub-classes'
+    //
+    fRawEvtHeader->Init(fRawRunHeader, fRawEvtTime);
+    fRawEvtData  ->Init(fRawRunHeader);
+
+    return kTRUE;
+}
+    
+Bool_t MRawFileRead::Process()
+{
+    //
+    //  Read in the next EVENT HEADER (see specification),
+    // if there is no next event anymore stop eventloop
+    //
+    if (!fRawEvtHeader->ReadEvt(*fIn))
+        return kFALSE;
+    //fRawEvtHeader->Print();
+
+    //
+    // Delete arrays which stores the pixel information (time slices)
+    //
+    fRawEvtData->DeletePixels();
+
+    //
+    // clear the TClonesArray which stores the Crate Information
+    //
+    fRawCrateArray->Clear();
+
+    //
+    //  Get number of crates from the run header
+    //
+    const UShort_t nc = fRawRunHeader->GetNumCrates();
+
+    //
+    // read the CRATE DATA (see specification) from file
+    //
+    for (int i=0; i<nc; i++)
+    {
+        fRawCrateArray->GetEntry(i)->ReadEvt(*fIn);
+        //fRawCrateArray->GetEntry(i)->Print();
+
+        fRawEvtData->ReadEvt(*fIn);
+    }
+    //fRawEvtData->Print();
+
+    return kTRUE;
+
+}
+
Index: /branches/start/MagicSoft/Mars/mraw/MRawFileRead.h
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawFileRead.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawFileRead.h	(revision 4308)
@@ -0,0 +1,39 @@
+#ifndef MRAWFILEREAD_H
+#define MRAWFILEREAD_H
+
+#ifndef MTASK_H
+#include "MTask.h"
+#endif
+
+class ifstream;
+
+class MTime;
+class MParList;
+class MRawRunHeader;
+class MRawEvtHeader;
+class MRawEvtData;
+class MRawCrateArray;
+
+class MRawFileRead : public MTask
+{
+private:
+    MParList *pParList;
+
+    MRawRunHeader  *fRawRunHeader;
+    MRawEvtHeader  *fRawEvtHeader;
+    MRawEvtData    *fRawEvtData;
+    MRawCrateArray *fRawCrateArray;
+    MTime          *fRawEvtTime;
+
+    ifstream *fIn; //!
+
+public:
+    MRawFileRead(const char *filename, const char *name=NULL, const char *title=NULL);
+
+    Bool_t PreProcess(MParList *pList);
+    Bool_t Process();
+
+    ClassDef(MRawFileRead, 1)	// Task to read the raw data binary file
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mraw/MRawFileWrite.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawFileWrite.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawFileWrite.cc	(revision 4308)
@@ -0,0 +1,178 @@
+////////////////////////////////////////////////////////////////////////
+//
+//  MRawFileWrite
+//
+//  Here we write the root containers which contains the data from a
+//  root binary file to a root file. See also MRawFileRead
+//
+////////////////////////////////////////////////////////////////////////
+
+#include "MRawFileWrite.h"
+
+#include <iostream.h>
+
+#include <TFile.h>
+#include <TTree.h>
+#include <TBranch.h>
+
+#include "MParList.h"
+#include "MRawRunHeader.h"
+#include "MRawEvtHeader.h"
+#include "MRawEvtData.h"
+#include "MRawCrateArray.h"
+
+ClassImp(MRawFileWrite)
+
+MRawFileWrite::MRawFileWrite(const char *fname, Option_t *opt,
+                             const char *ftitle, Int_t comp,
+                             const char *name, const char *title)
+{
+    *fName  = name  ? name  : "MRawFileWrite";
+    *fTitle = title ? title : "Write task to write DAQ root files";
+
+    // FIXME: move file open to preproc!
+
+    //
+    // Open a rootfile
+    //
+    fOut = new TFile(fname, opt, ftitle, comp);
+
+    //
+    // test whether file is now open or not
+    //
+    if (!fOut->IsOpen())
+    {
+        cout << "MRawFileWrite::MRawFileWrite: ERROR: Cannot open file '";
+        cout << fname << "'" << endl;
+    }
+}
+
+Bool_t MRawFileWrite::PreProcess (MParList *pList)
+{
+    //
+    // remember the pointer to the parameter list fur further usage
+    //
+    pParList = pList;
+
+    //
+    //  check if MEvtHeader exists in the Parameter list already.
+    //  if not create one and add them to the list
+    //
+    fRawEvtHeader = (MRawEvtHeader*)pList->FindObject("MRawEvtHeader");
+    if (!fRawEvtHeader)
+    {
+        cout << "MRawFileWrite::PreProcess - ERROR: MRawEvtHeader not found... aborting." << endl;
+        return kFALSE;
+    }
+
+    fRawEvtData = (MRawEvtData*)pList->FindObject("MRawEvtData");
+    if (!fRawEvtData)
+    {
+        cout << "MRawFileWrite::PreProcess - ERROR: MRawEvtData not found... aborting." << endl;
+        return kFALSE;
+    }
+
+    fRawCrateArray = (MRawCrateArray*)pList->FindObject("MRawCrateArray");
+    if (!fRawCrateArray)
+    {
+        cout << "MRawFileWrite::PreProcess - ERROR: MRawCrateArray not found... aborting." << endl;
+        return kFALSE;
+    }
+
+    fRawEvtTime = (MTime*)pList->FindObject("MRawEvtTime");
+    if (!fRawEvtTime)
+    {
+        cout << "MRawFileWrite::PreProcess - WARNING: MRawEvtTime not found... aborting." << endl;
+        return kFALSE;
+    }
+
+    fRawRunHeader = (MRawRunHeader*)pList->FindObject("MRawRunHeader");
+    if (!fRawRunHeader)
+    {
+        cout << "MRawFileWrite::PreProcess - ERROR: MRawRunHeader not found... aborting." << endl;
+        return kFALSE;
+    }
+
+    //
+    // Write the run header information to the file
+    //
+    TTree   *rh = new TTree("RunHeaders", "Run headers of all runs in this file");
+    TBranch *tb = rh->Branch("MRawRunHeader", "MRawRunHeader", &fRawRunHeader, 32000, 1);
+    rh->Fill();
+    rh->Write();
+    delete tb;
+    delete rh;
+
+    //
+    // create data trees for the three types of data
+    //
+    fTData        = new TTree("Data",       "Normal Triggered Data");
+    fTPedestal    = new TTree("Pedestal",   "Pedestal Triggered Data");
+    fTCalibration = new TTree("Calibration","Calibration Triggered Data");
+
+    //
+    // create all branches which are necessary
+    //
+    fTData       ->Branch("MTime",          "MTime",          &fRawEvtTime,    32000, 1);
+    fTPedestal   ->Branch("MTime",          "MTime",          &fRawEvtTime,    32000, 1);
+    fTCalibration->Branch("MTime",          "MTime",          &fRawEvtTime,    32000, 1);
+    fTData       ->Branch("MRawEvtHeader",  "MRawEvtHeader",  &fRawEvtHeader,  32000, 1);
+    fTPedestal   ->Branch("MRawEvtHeader",  "MRawEvtHeader",  &fRawEvtHeader,  32000, 1);
+    fTCalibration->Branch("MRawEvtHeader",  "MRawEvtHeader",  &fRawEvtHeader,  32000, 1);
+    fTData       ->Branch("MRawEvtData",    "MRawEvtData",    &fRawEvtData,    32000, 1);
+    fTPedestal   ->Branch("MRawEvtData",    "MRawEvtData",    &fRawEvtData,    320000, 1);
+    fTCalibration->Branch("MRawEvtData",    "MRawEvtData",    &fRawEvtData,    320000, 1);
+    //fTree->Branch("MRawCrateArray",  fRawCrateArray->GetArray(),      32000, 1);
+    fTData       ->Branch("MRawCrateArray", "MRawCrateArray", &fRawCrateArray, 32000, 1);
+    fTPedestal   ->Branch("MRawCrateArray", "MRawCrateArray", &fRawCrateArray, 32000, 1);
+    fTCalibration->Branch("MRawCrateArray", "MRawCrateArray", &fRawCrateArray, 32000, 1);
+
+    return kTRUE;
+}
+    
+Bool_t MRawFileWrite::Process()
+{
+    //
+    // get the trigger type of the actual event
+    //
+    const UShort_t type = fRawEvtHeader->GetTrigType();
+
+    //
+    // writa data to the tree. the tree is choosen by the type of the event
+    //
+    switch (type)
+    {
+    case 0:
+        fTData->Fill();
+        break;
+    case 1:
+        fTPedestal->Fill();
+        break;
+    case 2:
+        fTCalibration->Fill();
+        break;
+    }
+
+    return kTRUE;
+}
+
+Bool_t MRawFileWrite::PostProcess()
+{
+    //
+    // empty data stream
+    //
+    fOut->Write();
+
+    //
+    // close root file
+    //
+    fOut->Close();
+
+    //
+    // delete instance
+    //
+    delete fOut;
+
+    return kTRUE;
+}
+
Index: /branches/start/MagicSoft/Mars/mraw/MRawFileWrite.h
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawFileWrite.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawFileWrite.h	(revision 4308)
@@ -0,0 +1,49 @@
+#ifndef MRAWFILEWRITE_H
+#define MRAWFILEWRITE_H
+
+#ifndef MTASK_H
+#include "MTask.h"
+#endif
+
+class TFile;
+class TTree;
+
+class MTime;
+class MParList;
+class MRawRunHeader;
+class MRawEvtHeader;
+class MRawCrateArray;
+class MRawEvtData;
+
+class MRawFileWrite : public MTask
+{
+private:
+    MParList *pParList;             
+
+    MTime          *fRawEvtTime;    
+    MRawRunHeader  *fRawRunHeader;  
+    MRawEvtHeader  *fRawEvtHeader;  
+    MRawEvtData    *fRawEvtData;    
+    MRawCrateArray *fRawCrateArray; 
+
+    TTree *fTData;                  //!
+    TTree *fTPedestal;              //!
+    TTree *fTCalibration;           //!
+
+    TFile *fOut;                    //!
+
+public:
+    MRawFileWrite(const char *fname,
+                  Option_t *opt="UPDATE",
+                  const char *ftitle="Unnamed",
+                  Int_t comp=9,
+                  const char *name=NULL, const char *title=NULL);
+
+    Bool_t PreProcess(MParList *pList);
+    Bool_t Process();
+    Bool_t PostProcess();
+
+    ClassDef(MRawFileWrite, 1)	// Task to write the raw data containers to a root file
+};
+
+#endif
Index: /branches/start/MagicSoft/Mars/mraw/MRawRunHeader.cc
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawRunHeader.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawRunHeader.cc	(revision 4308)
@@ -0,0 +1,127 @@
+/////////////////////////////////////////////////////////////////////////////
+//
+// MRawRunHeader
+//
+// Root storage container for the RUN HEADER information
+//
+////////////////////////////////////////////////////////////////////////////
+
+#include "MRawRunHeader.h"
+
+#include <fstream.h>
+#include <iomanip.h>
+
+#include "MArrayS.h"
+
+ClassImp(MRawRunHeader)
+
+MRawRunHeader::MRawRunHeader(const char *name, const char *title) : fPixAssignment(NULL)
+{
+    *fName  = name  ? name  : "MRawRunHeader";
+    *fTitle = title ? title : "Raw Run Header Information";
+
+    fPixAssignment = new MArrayS(0);
+}
+
+MRawRunHeader::~MRawRunHeader()
+{
+    delete fPixAssignment;
+}
+
+void MRawRunHeader::ReadEvt(ifstream& fin)
+{
+    //
+    // read one RUN HEADER from the input stream
+    //
+    fin.read((Byte_t*)&fMagicNumber,       2);
+
+    //
+    // check whether the the file has the right file type or not
+    //
+    if (fMagicNumber != kMagicNumber)
+    {
+        cout << "Error: Wrong Magic Number: Not a Magic File!" << endl;
+        return;
+    }
+
+    Byte_t dummy[16];
+
+    fin.read((Byte_t*)&fFormatVersion,    2);
+    fin.read((Byte_t*)&fSoftVersion,      2);
+    fin.read((Byte_t*)&fRunType,          2);
+    fin.read((Byte_t*)&fRunNumber,        4);
+    fin.read((Byte_t*)&fProjectName,     22);
+    fin.read((Byte_t*)&fSourceName,      12);
+    fin.read((Byte_t*)dummy,              4); // was RA
+    fin.read((Byte_t*)dummy,              4); // was DEC
+    fin.read((Byte_t*)&fSourceEpochChar,  2);
+    fin.read((Byte_t*)&fSourceEpochDate,  2);
+    fin.read((Byte_t*)&fMJD,              4);
+    fin.read((Byte_t*)&fDateYear,         2);
+    fin.read((Byte_t*)&fDateMonth,        2);
+    fin.read((Byte_t*)&fDateDay,          2);
+    fin.read((Byte_t*)&fNumCrates,        2);
+    fin.read((Byte_t*)&fNumPixInCrate,    2);
+    fin.read((Byte_t*)&fNumSamplesLoGain, 2);
+    fin.read((Byte_t*)&fNumSamplesHiGain, 2);
+    fin.read((Byte_t*)&fNumEvents,        4);
+
+
+    //
+    // calculate size of array, create it and fill it
+    //
+    Int_t nPixel = fNumCrates*fNumPixInCrate;
+    fPixAssignment->Set(nPixel);
+
+    fin.read((Byte_t*)fPixAssignment->GetArray(), nPixel*2);
+    fin.read((Byte_t*)&dummy, 16);
+}
+
+void MRawRunHeader::Print(Option_t *t)
+{
+    //
+    // print run header information on screen
+    //
+    cout << "MagicNumber:  0x" << hex << fMagicNumber << " - " << (fMagicNumber==0xc0c0?"OK":"Wrong!") << endl;
+    cout << "Version:      " << dec << "Format=" << fFormatVersion << "  ";
+    cout << "Software=" << fSoftVersion << endl;
+    cout << "RunNumber:    " << fRunNumber << " (Type=";
+    switch (fRunType)
+    {
+    case 0:
+        cout << "Data";
+        break;
+    case 1:
+        cout << "Pedestal";
+        break;
+    case 2:
+        cout << "Calibration";
+        break;
+    }
+    cout << ")" << endl;
+    cout << "ProjectName: '" << fProjectName << "'" << endl;
+    cout << "Source:      '" << fSourceName << "' " << "  ";
+    cout << fSourceEpochChar << dec << fSourceEpochDate << endl;
+    cout << "Date:         " << setprecision(1) << setiosflags(ios::fixed) << fMJD << " (MJD)  " << fDateYear << "/" << fDateMonth << "/" << fDateDay << endl;
+    cout << "Crates:       " << fNumCrates << " x " << fNumPixInCrate << " Pixel/Crate = " << fNumCrates*fNumPixInCrate << " Pixel/Evt" << endl;
+    cout << "Samples:      " << fNumSamplesLoGain << "/" << fNumSamplesHiGain << " (lo/hi) = " << (fNumSamplesLoGain+fNumSamplesHiGain) * fNumCrates * fNumPixInCrate /1024 << "kB/Evt" << endl;
+    cout << "Evt Counter:  " << fNumEvents << endl;
+
+    cout << hex;
+    for (int i=0; i<GetNumPixel(); i++)
+        cout << setfill('0') << setw(3) << (*fPixAssignment)[i] << " ";
+    cout << hex << endl;
+
+    cout << endl;
+}
+
+UShort_t MRawRunHeader::GetPixAssignment(UShort_t i) const
+{
+    // FIXME: Do we need a range check here?
+    return (*fPixAssignment)[i];
+}
+
+UShort_t MRawRunHeader::GetNumPixel() const
+{
+    return fPixAssignment->GetSize();
+}
Index: /branches/start/MagicSoft/Mars/mraw/MRawRunHeader.h
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MRawRunHeader.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MRawRunHeader.h	(revision 4308)
@@ -0,0 +1,83 @@
+#ifndef MRAWRUNHEADER_H
+#define MRAWRUNHEADER_H
+///////////////////////////////////////////////////////////////////////
+//                                                                   //
+// MRunHeader                                                        //
+//                                                                   //
+///////////////////////////////////////////////////////////////////////
+
+#ifndef MPARCONTAINER_H
+#include "MParContainer.h"
+#endif
+
+class ifstream;
+class MArrayS;
+
+const UShort_t kMagicNumber = 0xc0c0;
+
+class MRawRunHeader : public MParContainer
+{
+private:
+    /* ---- Run Header Informations ---- */
+    UShort_t  fMagicNumber;
+    UShort_t  fFormatVersion;
+    UShort_t  fSoftVersion;
+    UShort_t  fRunType;
+    UInt_t    fRunNumber;
+    Char_t    fProjectName[22];
+    Char_t    fSourceName[12];
+    //Float_t   fSourceRA;
+    //Float_t   fSourceDEC;
+    Char_t    fSourceEpochChar[2];
+    UShort_t  fSourceEpochDate;
+    Float_t   fMJD;
+    UShort_t  fDateYear;
+    UShort_t  fDateMonth;
+    UShort_t  fDateDay;
+    UShort_t  fNumCrates;
+    UShort_t  fNumPixInCrate;
+    UShort_t  fNumSamplesLoGain;
+    UShort_t  fNumSamplesHiGain;
+    UInt_t    fNumEvents;
+    MArrayS  *fPixAssignment;
+
+public:
+    MRawRunHeader(const char *name=NULL, const char *title=NULL);
+    ~MRawRunHeader();
+
+    UShort_t GetMagicNumber() const      { return fMagicNumber; }
+    UShort_t GetFormatversion() const    { return fFormatVersion; }
+    UShort_t GetSoftVersion() const      { return fSoftVersion; }
+    UShort_t GetRunType() const          { return fRunType; }
+    UInt_t   GetRunNumber() const        { return fRunNumber; }
+    const Char_t  *GetProjectName() const      { return fProjectName; }
+    const Char_t  *GetSourceName() const       { return fSourceName; }
+    //Float_t  GetSourceRa() const         { return fSourceRA; }
+    //Float_t  GetSourceDec() const        { return fSourceDEC; }
+    const Char_t  *GetSourceEpocheChar() const { return fSourceEpochChar; }
+    UShort_t GetSourceEpocheDate() const { return fSourceEpochDate; }
+    Float_t  GetMJD() const              { return fMJD; }
+    UShort_t GetDateYear() const         { return fDateYear; }
+    Byte_t   GetDateMonth() const        { return fDateMonth; }
+    Byte_t   GetDateDay() const          { return fDateDay; }
+    UShort_t GetNumCrates() const        { return fNumCrates; }
+    UShort_t GetNumPixInCrate() const    { return fNumPixInCrate; }
+    UShort_t GetNumSamplesLoGain() const { return fNumSamplesLoGain; }
+    UShort_t GetNumSamplesHiGain() const { return fNumSamplesHiGain; }
+    UShort_t GetNumEvents() const        { return fNumEvents; }
+    UShort_t GetPixAssignment(UShort_t i) const;
+
+    UInt_t GetNumSamplesPerCrate() const
+    {
+        return fNumPixInCrate*(fNumSamplesLoGain+fNumSamplesHiGain);
+    }
+
+    UShort_t GetNumPixel() const;
+
+    void Print(Option_t *t=NULL);
+
+    void ReadEvt(ifstream& fin);
+
+    ClassDef(MRawRunHeader, 1)	// storage container for general info
+};
+#endif
Index: /branches/start/MagicSoft/Mars/mraw/Makefile
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/Makefile	(revision 4308)
@@ -0,0 +1,131 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+# @maintitle
+
+# @code
+
+#
+#  please change all system depend values in the 
+#  config.mk.${OSTYPE} file 
+#
+#
+include ../Makefile.conf.$(OSTYPE)
+include ../Makefile.conf.general
+
+# @endcode 
+
+# @code 
+
+LIB   = libmraw.a
+
+#
+#  connect the include files defined in the config.mk file
+#
+INCLUDES = -I. -I../mbase
+
+#
+#  ----->>>   root libraries
+#
+
+ROOTLIBS   =  `root-config --libs`
+ROOTGLIBS  =  `root-config --glibs`
+ROOTCFLAGS =  `root-config --cflags`
+
+#
+#  compiler flags
+#
+
+CXXFLAGS  = $(ROOTCFLAGS) $(INCLUDES) $(OPTIM) $(DEBUG)
+CFLAGS    = $(CXXFLAGS)
+FFLAGS    = $(CXXFLAGS)
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cc .cxx .h .hxx .o 
+
+
+SRCFILES = MRawRunHeader.cc \
+	   MRawEvtHeader.cc \
+	   MRawEvtData.cc \
+	   MRawEvtPixelIter.cc \
+	   MRawCrateArray.cc \
+	   MRawCrateData.cc \
+           MRawFileRead.cc \
+           MRawFileWrite.cc
+
+
+
+SRCS    = $(SRCFILES)
+HEADERS = $(SRCFILES:.cc=.h)
+OBJS    = $(SRCFILES:.cc=.o) 
+
+############################################################
+
+all: $(LIB)
+
+depend:
+	@makedepend $(SRCS) $(INCLUDES) $(ROOTCFLAGS) \
+        -f../Makefile.depend 2> kk.kk ; cat kk.kk
+
+$(LIB): $(OBJS) RawCint.o
+	@echo " - Building Library $(LIB) ... "
+	@$(AR) $(LIB) *.o
+
+RawCint.cc: $(HEADERS) 
+	@echo 
+	@echo " - Generating dictionary RawCint.cc ..."
+
+	@$(ROOTSYS)/bin/rootcint -f RawCint.cc \
+	-c $(INCLUDES) $(HEADERS) RawIncl.h RawLinkDef.h 
+
+.cxx.o:	
+	@echo " - Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.cc.o:	
+	@echo " - Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo " - Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+#
+# The cleaning facility
+#
+
+rmlib:	
+	@echo "Removing libraries..."
+	@rm -f lib*.a
+
+rmcint:	
+	@echo "Removing cint-stuff..."
+	@rm -f RawCint.*
+
+rmobjs:	
+	@echo "Removing object files..."
+	@rm -f *.o
+
+rmbin:	
+	@echo "Removing binary files..."
+	@rm -f core
+
+
+clean:	rmlib rmcint rmobjs rmbin
+
+mrproper:	clean
+	@echo "Removing *~ kk.kk html/..."
+	@rm -f *~ kk.kk
+
+cflags: 
+	@echo $(INCLUDES) $(CXXFLAGS)
+
+# @endcode
+
Index: /branches/start/MagicSoft/Mars/mraw/MerppLinkDef.h
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/MerppLinkDef.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/MerppLinkDef.h	(revision 4308)
@@ -0,0 +1,9 @@
+#ifdef __CINT__
+
+#pragma link off all classes;
+#pragma link off all functions;
+
+#pragma link C++ class MReadRawFile ;
+#pragma link C++ class MWriteRawFile ; 
+
+#endif
Index: /branches/start/MagicSoft/Mars/mraw/RawIncl.h
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/RawIncl.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/RawIncl.h	(revision 4308)
@@ -0,0 +1,10 @@
+#ifndef __CINT__
+
+#include "MTime.h"
+#include "MArrayB.h"
+#include "MArrayS.h"
+#include "MParList.h"
+
+#include <TClonesArray.h>
+
+#endif // __CINT__
Index: /branches/start/MagicSoft/Mars/mraw/RawLinkDef.h
===================================================================
--- /branches/start/MagicSoft/Mars/mraw/RawLinkDef.h	(revision 4308)
+++ /branches/start/MagicSoft/Mars/mraw/RawLinkDef.h	(revision 4308)
@@ -0,0 +1,18 @@
+#ifdef __CINT__
+
+#pragma link off all classes;
+#pragma link off all functions;
+
+#pragma link C++ class MRawRunHeader;
+
+#pragma link C++ class MRawEvtHeader;
+#pragma link C++ class MRawEvtData;
+#pragma link C++ class MRawEvtPixelIter;
+
+#pragma link C++ class MRawCrateArray;
+#pragma link C++ class MRawCrateData;
+
+#pragma link C++ class MRawFileRead;
+#pragma link C++ class MRawFileWrite;
+
+#endif
Index: /branches/start/MagicSoft/Mars/readraw.cc
===================================================================
--- /branches/start/MagicSoft/Mars/readraw.cc	(revision 4308)
+++ /branches/start/MagicSoft/Mars/readraw.cc	(revision 4308)
@@ -0,0 +1,111 @@
+#include <iostream.h>
+
+#include <TSystem.h>
+
+#include "TFile.h"
+#include "TTree.h"
+#include "TBranch.h"
+
+#include "MParList.h"
+#include "MTaskList.h"
+#include "MEvtLoop.h"
+
+#include "MRawRunHeader.h"
+#include "MRawEvtHeader.h"
+#include "MRawEvtData.h"
+#include "MRawCrateArray.h"
+#include "MTime.h"
+#include "MInputStreamID.h"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// This is an easy implementation of the Merging process (as compilable prog)
+//
+// at the moment it reads a binary file ("rawtest.bin") which was written
+// in the DAQ raw format.
+//
+// The data are stored in root container objects (classes derived from
+// TObject like MRawRunHeader)
+//
+// This containers are written to a root file ("rawtest.root")
+//
+/////////////////////////////////////////////////////////////////////////////
+
+int main(const int argc, const char **argv)
+{
+    cout << "==================================================" << endl ;
+    cout << "                   MERPP v0.1" << endl;
+    cout << "      MARS Merging and Preprocessing Program" << endl ;
+    cout << "            Compiled on <" << __DATE__ << ">" << endl ;
+    cout << "==================================================" << endl ;
+    cout << endl;
+
+    //
+    // check for the right usage of the program
+    //
+
+    //
+    //     initialize ROOT  (this is obligatory here)
+    //
+    TROOT simple("Merpp","Mars - Merging and Preprocessing Program");
+
+    MRawRunHeader  *runheader = new MRawRunHeader();
+    MRawEvtHeader  *evtheader = new MRawEvtHeader();
+    MTime          *evttime   = new MTime();
+    MRawEvtData    *evtdata   = new MRawEvtData();
+    MRawCrateArray *evtcrate  = new MRawCrateArray();
+
+    //
+    //  open the file
+    //
+    TFile input("delme.root", "READ");
+
+    //
+    // open the Run Header and read in
+    //
+
+    TTree *runtree = (TTree*) input.Get("RunHeaders") ;
+    
+    cout << " Entries in Tree RunHeaders: " << dec << runtree->GetEntries() << endl ;
+
+    runtree->GetBranch("MRawRunHeader")->SetAddress(&runheader);
+    runtree->GetEvent(0);
+
+    runheader->Print();
+
+
+    //
+    // open the DataTree and read in 
+    //
+    TTree *evttree = (TTree*) input.Get("Data") ;
+
+    //
+    //   connnect the branches in that tree
+    //
+    evttree->GetBranch("MRawEvtHeader")->SetAddress(&evtheader);
+    evttree->GetBranch("MTime")->SetAddress(&evttime);
+    evttree->GetBranch("MRawEvtData")->SetAddress(&evtdata);
+    evttree->GetBranch("MRawCrateArray")->SetAddress(&evtcrate);
+
+    Int_t iEnt = (Int_t)evttree->GetEntries();
+    cout << " Entries in Tree Data: " << dec << iEnt << endl;
+
+    for (Int_t i = 0; i<iEnt; i++)
+    {
+        cout << "Entry: " << i << endl;
+
+        // readin event with the selected branches
+        evttree->GetEvent(i);
+
+        evtheader->Print();
+        evttime->Print();
+        evtcrate->Print();
+        evtdata->Print();
+    } 
+    
+    //   end of small readin program 
+
+    return 0;
+}
+
+
Index: /branches/start/MagicSoft/MarsOctober/Data/GeomPixel.dat
===================================================================
--- /branches/start/MagicSoft/MarsOctober/Data/GeomPixel.dat	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/Data/GeomPixel.dat	(revision 4308)
@@ -0,0 +1,577 @@
+ID:      0         0.0000       0.0000       0.0000
+ID:      1        30.0000       0.0000       3.0000
+ID:      2        15.0000      25.9808       3.0000
+ID:      3       -15.0000      25.9808       3.0000
+ID:      4       -30.0000       0.0000       3.0000
+ID:      5       -15.0000     -25.9808       3.0000
+ID:      6        15.0000     -25.9808       3.0000
+ID:      7        60.0000       0.0000       3.0000
+ID:      8        45.0000      25.9808       3.0000
+ID:      9        30.0000      51.9615       3.0000
+ID:     10         0.0000      51.9615       3.0000
+ID:     11       -30.0000      51.9615       3.0000
+ID:     12       -45.0000      25.9808       3.0000
+ID:     13       -60.0000       0.0000       3.0000
+ID:     14       -45.0000     -25.9808       3.0000
+ID:     15       -30.0000     -51.9615       3.0000
+ID:     16         0.0000     -51.9615       3.0000
+ID:     17        30.0000     -51.9615       3.0000
+ID:     18        45.0000     -25.9808       3.0000
+ID:     19        90.0000       0.0000       3.0000
+ID:     20        75.0000      25.9808       3.0000
+ID:     21        60.0000      51.9615       3.0000
+ID:     22        45.0000      77.9423       3.0000
+ID:     23        15.0000      77.9423       3.0000
+ID:     24       -15.0000      77.9423       3.0000
+ID:     25       -45.0000      77.9423       3.0000
+ID:     26       -60.0000      51.9615       3.0000
+ID:     27       -75.0000      25.9808       3.0000
+ID:     28       -90.0000       0.0000       3.0000
+ID:     29       -75.0000     -25.9808       3.0000
+ID:     30       -60.0000     -51.9615       3.0000
+ID:     31       -45.0000     -77.9423       3.0000
+ID:     32       -15.0000     -77.9423       3.0000
+ID:     33        15.0000     -77.9423       3.0000
+ID:     34        45.0000     -77.9423       3.0000
+ID:     35        60.0000     -51.9615       3.0000
+ID:     36        75.0000     -25.9808       3.0000
+ID:     37       120.0000       0.0000       3.0000
+ID:     38       105.0000      25.9808       3.0000
+ID:     39        90.0000      51.9615       3.0000
+ID:     40        75.0000      77.9423       3.0000
+ID:     41        60.0000     103.9230       3.0000
+ID:     42        30.0000     103.9230       3.0000
+ID:     43         0.0000     103.9230       3.0000
+ID:     44       -30.0000     103.9230       3.0000
+ID:     45       -60.0000     103.9230       3.0000
+ID:     46       -75.0000      77.9423       3.0000
+ID:     47       -90.0000      51.9615       3.0000
+ID:     48      -105.0000      25.9808       3.0000
+ID:     49      -120.0000       0.0000       3.0000
+ID:     50      -105.0000     -25.9808       3.0000
+ID:     51       -90.0000     -51.9615       3.0000
+ID:     52       -75.0000     -77.9423       3.0000
+ID:     53       -60.0000    -103.9230       3.0000
+ID:     54       -30.0000    -103.9230       3.0000
+ID:     55         0.0000    -103.9230       3.0000
+ID:     56        30.0000    -103.9230       3.0000
+ID:     57        60.0000    -103.9230       3.0000
+ID:     58        75.0000     -77.9423       3.0000
+ID:     59        90.0000     -51.9615       3.0000
+ID:     60       105.0000     -25.9808       3.0000
+ID:     61       150.0000       0.0000       3.0000
+ID:     62       135.0000      25.9808       3.0000
+ID:     63       120.0000      51.9615       3.0000
+ID:     64       105.0000      77.9423       3.0000
+ID:     65        90.0000     103.9230       3.0000
+ID:     66        75.0000     129.9038       3.0000
+ID:     67        45.0000     129.9038       3.0000
+ID:     68        15.0000     129.9038       3.0000
+ID:     69       -15.0000     129.9038       3.0000
+ID:     70       -45.0000     129.9038       3.0000
+ID:     71       -75.0000     129.9038       3.0000
+ID:     72       -90.0000     103.9230       3.0000
+ID:     73      -105.0000      77.9423       3.0000
+ID:     74      -120.0000      51.9615       3.0000
+ID:     75      -135.0000      25.9808       3.0000
+ID:     76      -150.0000       0.0000       3.0000
+ID:     77      -135.0000     -25.9808       3.0000
+ID:     78      -120.0000     -51.9615       3.0000
+ID:     79      -105.0000     -77.9423       3.0000
+ID:     80       -90.0000    -103.9230       3.0000
+ID:     81       -75.0000    -129.9038       3.0000
+ID:     82       -45.0000    -129.9038       3.0000
+ID:     83       -15.0000    -129.9038       3.0000
+ID:     84        15.0000    -129.9038       3.0000
+ID:     85        45.0000    -129.9038       3.0000
+ID:     86        75.0000    -129.9038       3.0000
+ID:     87        90.0000    -103.9230       3.0000
+ID:     88       105.0000     -77.9423       3.0000
+ID:     89       120.0000     -51.9615       3.0000
+ID:     90       135.0000     -25.9808       3.0000
+ID:     91       180.0000       0.0000       3.0000
+ID:     92       165.0000      25.9808       3.0000
+ID:     93       150.0000      51.9615       3.0000
+ID:     94       135.0000      77.9423       3.0000
+ID:     95       120.0000     103.9230       3.0000
+ID:     96       105.0000     129.9038       3.0000
+ID:     97        90.0000     155.8846       3.0000
+ID:     98        60.0000     155.8846       3.0000
+ID:     99        30.0000     155.8846       3.0000
+ID:    100         0.0000     155.8846       3.0000
+ID:    101       -30.0000     155.8846       3.0000
+ID:    102       -60.0000     155.8846       3.0000
+ID:    103       -90.0000     155.8846       3.0000
+ID:    104      -105.0000     129.9038       3.0000
+ID:    105      -120.0000     103.9230       3.0000
+ID:    106      -135.0000      77.9423       3.0000
+ID:    107      -150.0000      51.9615       3.0000
+ID:    108      -165.0000      25.9808       3.0000
+ID:    109      -180.0000       0.0000       3.0000
+ID:    110      -165.0000     -25.9808       3.0000
+ID:    111      -150.0000     -51.9615       3.0000
+ID:    112      -135.0000     -77.9423       3.0000
+ID:    113      -120.0000    -103.9230       3.0000
+ID:    114      -105.0000    -129.9038       3.0000
+ID:    115       -90.0000    -155.8846       3.0000
+ID:    116       -60.0000    -155.8846       3.0000
+ID:    117       -30.0000    -155.8846       3.0000
+ID:    118         0.0000    -155.8846       3.0000
+ID:    119        30.0000    -155.8846       3.0000
+ID:    120        60.0000    -155.8846       3.0000
+ID:    121        90.0000    -155.8846       3.0000
+ID:    122       105.0000    -129.9038       3.0000
+ID:    123       120.0000    -103.9230       3.0000
+ID:    124       135.0000     -77.9423       3.0000
+ID:    125       150.0000     -51.9615       3.0000
+ID:    126       165.0000     -25.9808       3.0000
+ID:    127       210.0000       0.0000       3.0000
+ID:    128       195.0000      25.9808       3.0000
+ID:    129       180.0000      51.9615       3.0000
+ID:    130       165.0000      77.9423       3.0000
+ID:    131       150.0000     103.9230       3.0000
+ID:    132       135.0000     129.9038       3.0000
+ID:    133       120.0000     155.8846       3.0000
+ID:    134       105.0000     181.8653       3.0000
+ID:    135        75.0000     181.8653       3.0000
+ID:    136        45.0000     181.8653       3.0000
+ID:    137        15.0000     181.8653       3.0000
+ID:    138       -15.0000     181.8653       3.0000
+ID:    139       -45.0000     181.8653       3.0000
+ID:    140       -75.0000     181.8653       3.0000
+ID:    141      -105.0000     181.8653       3.0000
+ID:    142      -120.0000     155.8846       3.0000
+ID:    143      -135.0000     129.9038       3.0000
+ID:    144      -150.0000     103.9230       3.0000
+ID:    145      -165.0000      77.9423       3.0000
+ID:    146      -180.0000      51.9615       3.0000
+ID:    147      -195.0000      25.9808       3.0000
+ID:    148      -210.0000       0.0000       3.0000
+ID:    149      -195.0000     -25.9808       3.0000
+ID:    150      -180.0000     -51.9615       3.0000
+ID:    151      -165.0000     -77.9423       3.0000
+ID:    152      -150.0000    -103.9230       3.0000
+ID:    153      -135.0000    -129.9038       3.0000
+ID:    154      -120.0000    -155.8846       3.0000
+ID:    155      -105.0000    -181.8653       3.0000
+ID:    156       -75.0000    -181.8653       3.0000
+ID:    157       -45.0000    -181.8653       3.0000
+ID:    158       -15.0000    -181.8653       3.0000
+ID:    159        15.0000    -181.8653       3.0000
+ID:    160        45.0000    -181.8653       3.0000
+ID:    161        75.0000    -181.8653       3.0000
+ID:    162       105.0000    -181.8653       3.0000
+ID:    163       120.0000    -155.8846       3.0000
+ID:    164       135.0000    -129.9038       3.0000
+ID:    165       150.0000    -103.9230       3.0000
+ID:    166       165.0000     -77.9423       3.0000
+ID:    167       180.0000     -51.9615       3.0000
+ID:    168       195.0000     -25.9808       3.0000
+ID:    169       240.0000       0.0000       3.0000
+ID:    170       225.0000      25.9808       3.0000
+ID:    171       210.0000      51.9615       3.0000
+ID:    172       195.0000      77.9423       3.0000
+ID:    173       180.0000     103.9230       3.0000
+ID:    174       165.0000     129.9038       3.0000
+ID:    175       150.0000     155.8846       3.0000
+ID:    176       135.0000     181.8653       3.0000
+ID:    177       120.0000     207.8461       3.0000
+ID:    178        90.0000     207.8461       3.0000
+ID:    179        60.0000     207.8461       3.0000
+ID:    180        30.0000     207.8461       3.0000
+ID:    181         0.0000     207.8461       3.0000
+ID:    182       -30.0000     207.8461       3.0000
+ID:    183       -60.0000     207.8461       3.0000
+ID:    184       -90.0000     207.8461       3.0000
+ID:    185      -120.0000     207.8461       3.0000
+ID:    186      -135.0000     181.8653       3.0000
+ID:    187      -150.0000     155.8846       3.0000
+ID:    188      -165.0000     129.9038       3.0000
+ID:    189      -180.0000     103.9230       3.0000
+ID:    190      -195.0000      77.9423       3.0000
+ID:    191      -210.0000      51.9615       3.0000
+ID:    192      -225.0000      25.9808       3.0000
+ID:    193      -240.0000       0.0000       3.0000
+ID:    194      -225.0000     -25.9808       3.0000
+ID:    195      -210.0000     -51.9615       3.0000
+ID:    196      -195.0000     -77.9423       3.0000
+ID:    197      -180.0000    -103.9230       3.0000
+ID:    198      -165.0000    -129.9038       3.0000
+ID:    199      -150.0000    -155.8846       3.0000
+ID:    200      -135.0000    -181.8653       3.0000
+ID:    201      -120.0000    -207.8461       3.0000
+ID:    202       -90.0000    -207.8461       3.0000
+ID:    203       -60.0000    -207.8461       3.0000
+ID:    204       -30.0000    -207.8461       3.0000
+ID:    205         0.0000    -207.8461       3.0000
+ID:    206        30.0000    -207.8461       3.0000
+ID:    207        60.0000    -207.8461       3.0000
+ID:    208        90.0000    -207.8461       3.0000
+ID:    209       120.0000    -207.8461       3.0000
+ID:    210       135.0000    -181.8653       3.0000
+ID:    211       150.0000    -155.8846       3.0000
+ID:    212       165.0000    -129.9038       3.0000
+ID:    213       180.0000    -103.9230       3.0000
+ID:    214       195.0000     -77.9423       3.0000
+ID:    215       210.0000     -51.9615       3.0000
+ID:    216       225.0000     -25.9808       3.0000
+ID:    217       270.0000       0.0000       3.0000
+ID:    218       255.0000      25.9808       3.0000
+ID:    219       240.0000      51.9615       3.0000
+ID:    220       225.0000      77.9423       3.0000
+ID:    221       210.0000     103.9230       3.0000
+ID:    222       195.0000     129.9038       3.0000
+ID:    223       180.0000     155.8846       3.0000
+ID:    224       165.0000     181.8653       3.0000
+ID:    225       150.0000     207.8461       3.0000
+ID:    226       135.0000     233.8269       3.0000
+ID:    227       105.0000     233.8269       3.0000
+ID:    228        75.0000     233.8269       3.0000
+ID:    229        45.0000     233.8269       3.0000
+ID:    230        15.0000     233.8269       3.0000
+ID:    231       -15.0000     233.8269       3.0000
+ID:    232       -45.0000     233.8269       3.0000
+ID:    233       -75.0000     233.8269       3.0000
+ID:    234      -105.0000     233.8269       3.0000
+ID:    235      -135.0000     233.8269       3.0000
+ID:    236      -150.0000     207.8461       3.0000
+ID:    237      -165.0000     181.8653       3.0000
+ID:    238      -180.0000     155.8846       3.0000
+ID:    239      -195.0000     129.9038       3.0000
+ID:    240      -210.0000     103.9230       3.0000
+ID:    241      -225.0000      77.9423       3.0000
+ID:    242      -240.0000      51.9615       3.0000
+ID:    243      -255.0000      25.9808       3.0000
+ID:    244      -270.0000       0.0000       3.0000
+ID:    245      -255.0000     -25.9808       3.0000
+ID:    246      -240.0000     -51.9615       3.0000
+ID:    247      -225.0000     -77.9423       3.0000
+ID:    248      -210.0000    -103.9230       3.0000
+ID:    249      -195.0000    -129.9038       3.0000
+ID:    250      -180.0000    -155.8846       3.0000
+ID:    251      -165.0000    -181.8653       3.0000
+ID:    252      -150.0000    -207.8461       3.0000
+ID:    253      -135.0000    -233.8269       3.0000
+ID:    254      -105.0000    -233.8269       3.0000
+ID:    255       -75.0000    -233.8269       3.0000
+ID:    256       -45.0000    -233.8269       3.0000
+ID:    257       -15.0000    -233.8269       3.0000
+ID:    258        15.0000    -233.8269       3.0000
+ID:    259        45.0000    -233.8269       3.0000
+ID:    260        75.0000    -233.8269       3.0000
+ID:    261       105.0000    -233.8269       3.0000
+ID:    262       135.0000    -233.8269       3.0000
+ID:    263       150.0000    -207.8461       3.0000
+ID:    264       165.0000    -181.8653       3.0000
+ID:    265       180.0000    -155.8846       3.0000
+ID:    266       195.0000    -129.9038       3.0000
+ID:    267       210.0000    -103.9230       3.0000
+ID:    268       225.0000     -77.9423       3.0000
+ID:    269       240.0000     -51.9615       3.0000
+ID:    270       255.0000     -25.9808       3.0000
+ID:    271       300.0000       0.0000       3.0000
+ID:    272       285.0000      25.9808       3.0000
+ID:    273       270.0000      51.9615       3.0000
+ID:    274       255.0000      77.9423       3.0000
+ID:    275       240.0000     103.9230       3.0000
+ID:    276       225.0000     129.9038       3.0000
+ID:    277       210.0000     155.8846       3.0000
+ID:    278       195.0000     181.8653       3.0000
+ID:    279       180.0000     207.8461       3.0000
+ID:    280       165.0000     233.8269       3.0000
+ID:    281       150.0000     259.8076       3.0000
+ID:    282       120.0000     259.8076       3.0000
+ID:    283        90.0000     259.8076       3.0000
+ID:    284        60.0000     259.8076       3.0000
+ID:    285        30.0000     259.8076       3.0000
+ID:    286         0.0000     259.8076       3.0000
+ID:    287       -30.0000     259.8076       3.0000
+ID:    288       -60.0000     259.8076       3.0000
+ID:    289       -90.0000     259.8076       3.0000
+ID:    290      -120.0000     259.8076       3.0000
+ID:    291      -150.0000     259.8076       3.0000
+ID:    292      -165.0000     233.8269       3.0000
+ID:    293      -180.0000     207.8461       3.0000
+ID:    294      -195.0000     181.8653       3.0000
+ID:    295      -210.0000     155.8846       3.0000
+ID:    296      -225.0000     129.9038       3.0000
+ID:    297      -240.0000     103.9230       3.0000
+ID:    298      -255.0000      77.9423       3.0000
+ID:    299      -270.0000      51.9615       3.0000
+ID:    300      -285.0000      25.9808       3.0000
+ID:    301      -300.0000       0.0000       3.0000
+ID:    302      -285.0000     -25.9808       3.0000
+ID:    303      -270.0000     -51.9615       3.0000
+ID:    304      -255.0000     -77.9423       3.0000
+ID:    305      -240.0000    -103.9230       3.0000
+ID:    306      -225.0000    -129.9038       3.0000
+ID:    307      -210.0000    -155.8846       3.0000
+ID:    308      -195.0000    -181.8653       3.0000
+ID:    309      -180.0000    -207.8461       3.0000
+ID:    310      -165.0000    -233.8269       3.0000
+ID:    311      -150.0000    -259.8076       3.0000
+ID:    312      -120.0000    -259.8076       3.0000
+ID:    313       -90.0000    -259.8076       3.0000
+ID:    314       -60.0000    -259.8076       3.0000
+ID:    315       -30.0000    -259.8076       3.0000
+ID:    316         0.0000    -259.8076       3.0000
+ID:    317        30.0000    -259.8076       3.0000
+ID:    318        60.0000    -259.8076       3.0000
+ID:    319        90.0000    -259.8076       3.0000
+ID:    320       120.0000    -259.8076       3.0000
+ID:    321       150.0000    -259.8076       3.0000
+ID:    322       165.0000    -233.8269       3.0000
+ID:    323       180.0000    -207.8461       3.0000
+ID:    324       195.0000    -181.8653       3.0000
+ID:    325       210.0000    -155.8846       3.0000
+ID:    326       225.0000    -129.9038       3.0000
+ID:    327       240.0000    -103.9230       3.0000
+ID:    328       255.0000     -77.9423       3.0000
+ID:    329       270.0000     -51.9615       3.0000
+ID:    330       285.0000     -25.9808       3.0000
+ID:    331       330.0000       0.0000       3.0000
+ID:    332       315.0000      25.9808       3.0000
+ID:    333       300.0000      51.9615       3.0000
+ID:    334       285.0000      77.9423       3.0000
+ID:    335       270.0000     103.9230       3.0000
+ID:    336       255.0000     129.9038       3.0000
+ID:    337       240.0000     155.8846       3.0000
+ID:    338       225.0000     181.8653       3.0000
+ID:    339       210.0000     207.8461       3.0000
+ID:    340       195.0000     233.8269       3.0000
+ID:    341       180.0000     259.8076       3.0000
+ID:    342       165.0000     285.7884       3.0000
+ID:    343       135.0000     285.7884       3.0000
+ID:    344       105.0000     285.7884       3.0000
+ID:    345        75.0000     285.7884       3.0000
+ID:    346        45.0000     285.7884       3.0000
+ID:    347        15.0000     285.7884       3.0000
+ID:    348       -15.0000     285.7884       3.0000
+ID:    349       -45.0000     285.7884       3.0000
+ID:    350       -75.0000     285.7884       3.0000
+ID:    351      -105.0000     285.7884       3.0000
+ID:    352      -135.0000     285.7884       3.0000
+ID:    353      -165.0000     285.7884       3.0000
+ID:    354      -180.0000     259.8076       3.0000
+ID:    355      -195.0000     233.8269       3.0000
+ID:    356      -210.0000     207.8461       3.0000
+ID:    357      -225.0000     181.8653       3.0000
+ID:    358      -240.0000     155.8846       3.0000
+ID:    359      -255.0000     129.9038       3.0000
+ID:    360      -270.0000     103.9230       3.0000
+ID:    361      -285.0000      77.9423       3.0000
+ID:    362      -300.0000      51.9615       3.0000
+ID:    363      -315.0000      25.9808       3.0000
+ID:    364      -330.0000       0.0000       3.0000
+ID:    365      -315.0000     -25.9808       3.0000
+ID:    366      -300.0000     -51.9615       3.0000
+ID:    367      -285.0000     -77.9423       3.0000
+ID:    368      -270.0000    -103.9230       3.0000
+ID:    369      -255.0000    -129.9038       3.0000
+ID:    370      -240.0000    -155.8846       3.0000
+ID:    371      -225.0000    -181.8653       3.0000
+ID:    372      -210.0000    -207.8461       3.0000
+ID:    373      -195.0000    -233.8269       3.0000
+ID:    374      -180.0000    -259.8076       3.0000
+ID:    375      -165.0000    -285.7884       3.0000
+ID:    376      -135.0000    -285.7884       3.0000
+ID:    377      -105.0000    -285.7884       3.0000
+ID:    378       -75.0000    -285.7884       3.0000
+ID:    379       -45.0000    -285.7884       3.0000
+ID:    380       -15.0000    -285.7884       3.0000
+ID:    381        15.0000    -285.7884       3.0000
+ID:    382        45.0000    -285.7884       3.0000
+ID:    383        75.0000    -285.7884       3.0000
+ID:    384       105.0000    -285.7884       3.0000
+ID:    385       135.0000    -285.7884       3.0000
+ID:    386       165.0000    -285.7884       3.0000
+ID:    387       180.0000    -259.8076       3.0000
+ID:    388       195.0000    -233.8269       3.0000
+ID:    389       210.0000    -207.8461       3.0000
+ID:    390       225.0000    -181.8653       3.0000
+ID:    391       240.0000    -155.8846       3.0000
+ID:    392       255.0000    -129.9038       3.0000
+ID:    393       270.0000    -103.9230       3.0000
+ID:    394       285.0000     -77.9423       3.0000
+ID:    395       300.0000     -51.9615       3.0000
+ID:    396       315.0000     -25.9808       3.0000
+ID:    397       360.0000      34.6410       6.0000
+ID:    398       330.0000      86.6025       6.0000
+ID:    399       300.0000     138.5641       6.0000
+ID:    400       270.0000     190.5256       6.0000
+ID:    401       240.0000     242.4871       6.0000
+ID:    402       210.0000     294.4486       6.0000
+ID:    403       150.0000     329.0897       6.0000
+ID:    404        90.0000     329.0897       6.0000
+ID:    405        30.0000     329.0897       6.0000
+ID:    406       -30.0000     329.0897       6.0000
+ID:    407       -90.0000     329.0897       6.0000
+ID:    408      -150.0000     329.0897       6.0000
+ID:    409      -210.0000     294.4486       6.0000
+ID:    410      -240.0000     242.4871       6.0000
+ID:    411      -270.0000     190.5256       6.0000
+ID:    412      -300.0000     138.5641       6.0000
+ID:    413      -330.0000      86.6025       6.0000
+ID:    414      -360.0000      34.6410       6.0000
+ID:    415      -360.0000     -34.6410       6.0000
+ID:    416      -330.0000     -86.6025       6.0000
+ID:    417      -300.0000    -138.5641       6.0000
+ID:    418      -270.0000    -190.5256       6.0000
+ID:    419      -240.0000    -242.4871       6.0000
+ID:    420      -210.0000    -294.4486       6.0000
+ID:    421      -150.0000    -329.0897       6.0000
+ID:    422       -90.0000    -329.0897       6.0000
+ID:    423       -30.0000    -329.0897       6.0000
+ID:    424        30.0000    -329.0897       6.0000
+ID:    425        90.0000    -329.0897       6.0000
+ID:    426       150.0000    -329.0897       6.0000
+ID:    427       210.0000    -294.4486       6.0000
+ID:    428       240.0000    -242.4871       6.0000
+ID:    429       270.0000    -190.5256       6.0000
+ID:    430       300.0000    -138.5641       6.0000
+ID:    431       330.0000     -86.6025       6.0000
+ID:    432       360.0000     -34.6410       6.0000
+ID:    433       420.0000      34.6410       6.0000
+ID:    434       390.0000      86.6025       6.0000
+ID:    435       360.0000     138.5641       6.0000
+ID:    436       330.0000     190.5256       6.0000
+ID:    437       300.0000     242.4871       6.0000
+ID:    438       270.0000     294.4486       6.0000
+ID:    439       240.0000     346.4102       6.0000
+ID:    440       180.0000     381.0512       6.0000
+ID:    441       120.0000     381.0512       6.0000
+ID:    442        60.0000     381.0512       6.0000
+ID:    443         0.0000     381.0512       6.0000
+ID:    444       -60.0000     381.0512       6.0000
+ID:    445      -120.0000     381.0512       6.0000
+ID:    446      -180.0000     381.0512       6.0000
+ID:    447      -240.0000     346.4102       6.0000
+ID:    448      -270.0000     294.4486       6.0000
+ID:    449      -300.0000     242.4871       6.0000
+ID:    450      -330.0000     190.5256       6.0000
+ID:    451      -360.0000     138.5641       6.0000
+ID:    452      -390.0000      86.6025       6.0000
+ID:    453      -420.0000      34.6410       6.0000
+ID:    454      -420.0000     -34.6410       6.0000
+ID:    455      -390.0000     -86.6025       6.0000
+ID:    456      -360.0000    -138.5641       6.0000
+ID:    457      -330.0000    -190.5256       6.0000
+ID:    458      -300.0000    -242.4871       6.0000
+ID:    459      -270.0000    -294.4486       6.0000
+ID:    460      -240.0000    -346.4102       6.0000
+ID:    461      -180.0000    -381.0512       6.0000
+ID:    462      -120.0000    -381.0512       6.0000
+ID:    463       -60.0000    -381.0512       6.0000
+ID:    464         0.0000    -381.0512       6.0000
+ID:    465        60.0000    -381.0512       6.0000
+ID:    466       120.0000    -381.0512       6.0000
+ID:    467       180.0000    -381.0512       6.0000
+ID:    468       240.0000    -346.4102       6.0000
+ID:    469       270.0000    -294.4486       6.0000
+ID:    470       300.0000    -242.4871       6.0000
+ID:    471       330.0000    -190.5256       6.0000
+ID:    472       360.0000    -138.5641       6.0000
+ID:    473       390.0000     -86.6025       6.0000
+ID:    474       420.0000     -34.6410       6.0000
+ID:    475       480.0000      34.6410       6.0000
+ID:    476       450.0000      86.6025       6.0000
+ID:    477       420.0000     138.5641       6.0000
+ID:    478       390.0000     190.5256       6.0000
+ID:    479       360.0000     242.4871       6.0000
+ID:    480       330.0000     294.4486       6.0000
+ID:    481       300.0000     346.4102       6.0000
+ID:    482       270.0000     398.3717       6.0000
+ID:    483       210.0000     433.0127       6.0000
+ID:    484       150.0000     433.0127       6.0000
+ID:    485        90.0000     433.0127       6.0000
+ID:    486        30.0000     433.0127       6.0000
+ID:    487       -30.0000     433.0127       6.0000
+ID:    488       -90.0000     433.0127       6.0000
+ID:    489      -150.0000     433.0127       6.0000
+ID:    490      -210.0000     433.0127       6.0000
+ID:    491      -270.0000     398.3717       6.0000
+ID:    492      -300.0000     346.4102       6.0000
+ID:    493      -330.0000     294.4486       6.0000
+ID:    494      -360.0000     242.4871       6.0000
+ID:    495      -390.0000     190.5256       6.0000
+ID:    496      -420.0000     138.5641       6.0000
+ID:    497      -450.0000      86.6025       6.0000
+ID:    498      -480.0000      34.6410       6.0000
+ID:    499      -480.0000     -34.6410       6.0000
+ID:    500      -450.0000     -86.6025       6.0000
+ID:    501      -420.0000    -138.5641       6.0000
+ID:    502      -390.0000    -190.5256       6.0000
+ID:    503      -360.0000    -242.4871       6.0000
+ID:    504      -330.0000    -294.4486       6.0000
+ID:    505      -300.0000    -346.4102       6.0000
+ID:    506      -270.0000    -398.3717       6.0000
+ID:    507      -210.0000    -433.0127       6.0000
+ID:    508      -150.0000    -433.0127       6.0000
+ID:    509       -90.0000    -433.0127       6.0000
+ID:    510       -30.0000    -433.0127       6.0000
+ID:    511        30.0000    -433.0127       6.0000
+ID:    512        90.0000    -433.0127       6.0000
+ID:    513       150.0000    -433.0127       6.0000
+ID:    514       210.0000    -433.0127       6.0000
+ID:    515       270.0000    -398.3717       6.0000
+ID:    516       300.0000    -346.4102       6.0000
+ID:    517       330.0000    -294.4486       6.0000
+ID:    518       360.0000    -242.4871       6.0000
+ID:    519       390.0000    -190.5256       6.0000
+ID:    520       420.0000    -138.5641       6.0000
+ID:    521       450.0000     -86.6025       6.0000
+ID:    522       480.0000     -34.6410       6.0000
+ID:    523       540.0000      34.6410       6.0000
+ID:    524       510.0000      86.6025       6.0000
+ID:    525       480.0000     138.5641       6.0000
+ID:    526       450.0000     190.5256       6.0000
+ID:    527       420.0000     242.4871       6.0000
+ID:    528       390.0000     294.4486       6.0000
+ID:    529       360.0000     346.4102       6.0000
+ID:    530       330.0000     398.3717       6.0000
+ID:    531       300.0000     450.3332       6.0000
+ID:    532       240.0000     484.9742       6.0000
+ID:    533       180.0000     484.9742       6.0000
+ID:    534       120.0000     484.9742       6.0000
+ID:    535        60.0000     484.9742       6.0000
+ID:    536         0.0000     484.9742       6.0000
+ID:    537       -60.0000     484.9742       6.0000
+ID:    538      -120.0000     484.9742       6.0000
+ID:    539      -180.0000     484.9742       6.0000
+ID:    540      -240.0000     484.9742       6.0000
+ID:    541      -300.0000     450.3332       6.0000
+ID:    542      -330.0000     398.3717       6.0000
+ID:    543      -360.0000     346.4102       6.0000
+ID:    544      -390.0000     294.4486       6.0000
+ID:    545      -420.0000     242.4871       6.0000
+ID:    546      -450.0000     190.5256       6.0000
+ID:    547      -480.0000     138.5641       6.0000
+ID:    548      -510.0000      86.6025       6.0000
+ID:    549      -540.0000      34.6410       6.0000
+ID:    550      -540.0000     -34.6410       6.0000
+ID:    551      -510.0000     -86.6025       6.0000
+ID:    552      -480.0000    -138.5641       6.0000
+ID:    553      -450.0000    -190.5256       6.0000
+ID:    554      -420.0000    -242.4871       6.0000
+ID:    555      -390.0000    -294.4486       6.0000
+ID:    556      -360.0000    -346.4102       6.0000
+ID:    557      -330.0000    -398.3717       6.0000
+ID:    558      -300.0000    -450.3332       6.0000
+ID:    559      -240.0000    -484.9742       6.0000
+ID:    560      -180.0000    -484.9742       6.0000
+ID:    561      -120.0000    -484.9742       6.0000
+ID:    562       -60.0000    -484.9742       6.0000
+ID:    563         0.0000    -484.9742       6.0000
+ID:    564        60.0000    -484.9742       6.0000
+ID:    565       120.0000    -484.9742       6.0000
+ID:    566       180.0000    -484.9742       6.0000
+ID:    567       240.0000    -484.9742       6.0000
+ID:    568       300.0000    -450.3332       6.0000
+ID:    569       330.0000    -398.3717       6.0000
+ID:    570       360.0000    -346.4102       6.0000
+ID:    571       390.0000    -294.4486       6.0000
+ID:    572       420.0000    -242.4871       6.0000
+ID:    573       450.0000    -190.5256       6.0000
+ID:    574       480.0000    -138.5641       6.0000
+ID:    575       510.0000     -86.6025       6.0000
+ID:    576       540.0000     -34.6410       6.0000
Index: /branches/start/MagicSoft/MarsOctober/LinkDef.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/LinkDef.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/LinkDef.h	(revision 4308)
@@ -0,0 +1,7 @@
+#ifdef __CINT__
+
+#pragma link off all globals;
+#pragma link off all classes;
+#pragma link off all functions;
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/Makefile
===================================================================
--- /branches/start/MagicSoft/MarsOctober/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/Makefile	(revision 4308)
@@ -0,0 +1,87 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+# @maintitle
+
+# @code
+
+#
+#  please change all system depend values in the 
+#  config.mk.${OSTYPE} file 
+#
+#
+include Makefile.conf.$(OSTYPE)
+include Makefile.conf.general
+
+# @endcode 
+
+# @code 
+
+PROGRAM = mars
+SOLIB   = mars.so
+
+#
+#  connect the include files defined in the config.mk file
+#
+INCLUDES = -I./ -I$(INCLUDE_MBASE) -I./mrootformat/ -I./mocttest/
+
+#
+#  ----->>>   mars libraries
+#
+
+MARS_LIB = -L./ -lmocttest -lmrootformat -lmbase 
+MARS_LIBB = libmbase.a libmocttest.a libmrootformat.a
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cc .cxx .h .hxx .o 
+
+
+SRCFILES = 
+
+SRCS    = $(SRCFILES)
+HEADERS = $(SRCFILES:.cc=.h)
+OBJS    = $(SRCFILES:.cc=.o) mars.o
+
+############################################################
+
+all: rmlib $(PROGRAM) $(SOLIB)
+
+$(PROGRAM): $(MARS_LIBB) $(OBJS) MCint.o 
+	@echo "Linking $(PROGRAM) ..." 
+	$(CXX) $(CXXFLAGS) $(OBJS) $(MARS_LIB) MCint.o $(ROOTLIBS) $(ROOTGLIBS) -o $@
+        
+$(SOLIB): $(MARS_LIBB) $(OBJS) MCint.o
+	@echo "Linking $(SOLIB) ..."
+	$(CXX) $(CXXFLAGS) -shared $(OBJS) $(MARS_LIB) MCint.o $(ROOTLIBS) $(ROOTGLIBS) -o $@
+
+libmbase.a:
+	@echo "Creating libmbase.a ..."
+	(cd mbase; make; cp libmbase.a ../libmbase.a; cd ..) 
+
+libmocttest.a:
+	@echo "Creating libmocttest.a ..."
+	(cd mocttest; make; cp libmocttest.a ../libmocttest.a; cd ..) 
+
+
+libmrootformat.a:
+	@echo "Creating libmrootformat.a ..."
+	(cd mrootformat; make; cp libmrootformat.a ../libmrootformat.a; cd ..) 
+
+MCint.cc:	$(HEADERS)
+	       	@echo "Generating dictionary MCint.cc..."
+		@$(ROOTSYS)/bin/rootcint -f MCint.cc \
+                -c $(INCLUDES) $(HEADERS) LinkDef.h 
+
+include Makefile.rules
+
+clean:	rmlib rmcint rmobjs rmcore rmbin
+
+# @endcode
+
Index: /branches/start/MagicSoft/MarsOctober/Makefile.conf.general
===================================================================
--- /branches/start/MagicSoft/MarsOctober/Makefile.conf.general	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/Makefile.conf.general	(revision 4308)
@@ -0,0 +1,16 @@
+#
+#  ----->>>   root libraries
+#
+
+ROOTLIBS   =  `root-config --libs`
+ROOTGLIBS  =  `root-config --glibs`
+ROOTCFLAGS =  `root-config --cflags`
+
+#
+#  compiler flags
+#
+
+CXXFLAGS  = $(ROOTCFLAGS) $(INCLUDES) $(OPTIM) $(DEBUG)
+CFLAGS    = $(CXXFLAGS)
+FFLAGS    = $(CXXFLAGS)
+
Index: /branches/start/MagicSoft/MarsOctober/Makefile.conf.linux-gnu
===================================================================
--- /branches/start/MagicSoft/MarsOctober/Makefile.conf.linux-gnu	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/Makefile.conf.linux-gnu	(revision 4308)
@@ -0,0 +1,41 @@
+##################################################################
+#
+# config.mk
+#
+# @file        config.mk
+# 
+##################################################################
+# @maintitle
+
+# @code
+
+#
+#  ----->>>  includes
+#
+
+INCLUDE_ROOT    = ${ROOTSYS}/include
+INCLUDE_CPLUS   = /usr/include/g++
+INCLUDE_MBASE   = ./mbase
+
+
+# compilers
+
+CC            = g++
+CXX           = g++
+F77           = f77
+
+#
+#  ----->>>   settings for compilation
+#
+
+OPTIM    = -O2 -Wall -fno-rtti -fno-exceptions -fPIC
+DEBUG    = -g 
+
+# uncomment this for quiet compilation
+
+.SILENT:
+
+# @endcode
+##EOF
+
+
Index: /branches/start/MagicSoft/MarsOctober/Makefile.conf.osf1
===================================================================
--- /branches/start/MagicSoft/MarsOctober/Makefile.conf.osf1	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/Makefile.conf.osf1	(revision 4308)
@@ -0,0 +1,42 @@
+##################################################################
+#
+# config.mk
+#
+# @file        config.mk
+# 
+##################################################################
+# @maintitle
+
+# @code
+
+#
+#  ----->>>  includes
+#
+
+INCLUDE_ROOT    = ${ROOTSYS}/include
+INCLUDE_CPLUS   = /usr/include/cxx
+INCLUDE_MBASE   = ./mbase
+
+#
+# compilers
+#
+
+CC            = cc
+CXX           = cxx
+F77           = f77
+
+#
+#  ----->>>   settings for compilation
+#
+
+OPTIM    = -O2 -ieee -arch host
+DEBUG    = -g 
+
+# uncomment this for quiet compilation
+
+.SILENT:
+
+# @endcode
+##EOF
+
+
Index: /branches/start/MagicSoft/MarsOctober/Makefile.depend
===================================================================
--- /branches/start/MagicSoft/MarsOctober/Makefile.depend	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/Makefile.depend	(revision 4308)
@@ -0,0 +1,9 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+
+# DO NOT DELETE
Index: /branches/start/MagicSoft/MarsOctober/Makefile.rules
===================================================================
--- /branches/start/MagicSoft/MarsOctober/Makefile.rules	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/Makefile.rules	(revision 4308)
@@ -0,0 +1,56 @@
+
+depend:
+	@makedepend $(SRCS) $(INCLUDES) -I$(INCLUDE_CPLUS) $(ROOTCFLAGS) \
+        -fMakefile.depend 2> kk.kk ; cat kk.kk
+
+.cxx.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.cc.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo "Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+#
+# The cleaning facility
+#
+
+rmcint:	
+	@echo "Removing cint-stuff..."
+	@rm -f *Cint.*
+
+rmlib:	
+	@echo "Removing libraries..."
+	@rm -f lib*.a
+
+rmobjs:	
+	@echo "Removing object files..."
+	@rm -f *.o
+
+rmcore:	
+	@echo "Removing core files..."
+	@rm -f core*
+
+rmbin:	
+	@echo "Removing binary files..."
+	@rm -f $(PROGRAM) $(SOLIB) so_locations
+
+mrproper:	clean
+	@echo "Removing *~ *.bak kk.kk html/..."
+	@rm -f *~ kk.kk *.bak
+	@rm -rf html
+	@echo "cd mbase"
+	@cd mbase; make mrproper; cd ..
+	@echo "cd .."
+	@echo "cd mrootformat"
+	@cd mrootformat; make mrproper; cd ..
+	@echo "cd .."
+	@echo "cd mocttest"
+	@cd mocttest; make mrproper; cd ..
+	@echo "cd .."
+
+
+
Index: /branches/start/MagicSoft/MarsOctober/mars.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mars.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mars.cc	(revision 4308)
@@ -0,0 +1,49 @@
+#include <stdlib.h>
+//#include <iostream.h>
+
+#include <TROOT.h>
+#include <TApplication.h>
+#include <TVirtualX.h>
+#include <TGClient.h>   
+
+
+#include "MGOctMain.h"
+
+// **********************************************************************
+//
+//    main program  for the october test. 
+//
+//    The only job of the main program is the initialisation of ROOT and 
+//    the start of the guiinterface for the october test
+//
+//    h. kornmayer      25.oct.2000
+
+
+
+int main(int argc, char **argv )
+{
+  //   cout << "==================================================" << endl ;
+  //   cout << "                    MARS v0.2" << endl;
+  //   cout << "    MAGIC Analysis and Reconstruction Software" << endl ;
+  //   cout << "            Compiled on <" << __DATE__ << ">" << endl ;    
+  //   cout << "==================================================" << endl ;
+  //   cout << endl;
+  
+  //
+  //     initialize ROOT  (this is obligatory here)
+  //
+  // initialise ROOT
+
+  TROOT simple("simple", "SIMONE - statistic of MonteCarlo");
+
+  TApplication theApp("App", &argc, argv);
+
+  MGOctMain mainWin(gClient->GetRoot(), 500, 600);     
+  
+  theApp.Run();
+
+
+  return 0;  
+}
+ 
+
Index: /branches/start/MagicSoft/MarsOctober/mbase/BaseLinkDef.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/BaseLinkDef.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/BaseLinkDef.h	(revision 4308)
@@ -0,0 +1,23 @@
+#ifdef __CINT__
+
+#pragma link off all classes;
+#pragma link off all functions;
+
+#pragma link C++ class MTime;
+#pragma link C++ class MTask;
+#pragma link C++ class MTaskList;
+
+#pragma link C++ class MParList;
+#pragma link C++ class MParRead;
+#pragma link C++ class MParWrite;
+#pragma link C++ class MParContainer;
+
+#pragma link C++ class MObjBuffer;
+
+#pragma link C++ class MFile;
+#pragma link C++ class MRootFile;
+#pragma link C++ class MMagicFile;
+
+#pragma link C++ class MInputStreamID;
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mbase/MEvtLoop.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MEvtLoop.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MEvtLoop.cc	(revision 4308)
@@ -0,0 +1,84 @@
+#include "MEvtLoop.h"
+
+#include <iostream.h>
+
+#include <TStopwatch.h>
+
+#include "MParList.h"
+#include "MTaskList.h"
+
+MEvtLoop::MEvtLoop() : fTasks(NULL), fParlist(NULL)
+{
+}
+
+MEvtLoop::~MEvtLoop()
+{
+}
+
+void MEvtLoop::SetTaskList(MTaskList *t)
+{
+    fTasks = t;
+}
+
+void MEvtLoop::SetParList(MParList *p)
+{
+    fParlist = p;
+}
+
+void MEvtLoop::Eventloop(Int_t maxcnt)
+{
+    if (!fTasks || !fParlist)
+    {
+        cout << "Error: either tasklist or parlist not initialized" << endl;
+        return;
+    }
+    //
+    //  execute the preprocess of all tasks
+    //  connect the different tasks with the right containers in
+    //  the parameter list
+
+    if (!fTasks->PreProcess(fParlist))
+    {
+        cout << "Error detected while PreProcessing" << endl;
+        return;
+    }
+
+    //
+    //   loop over all events and process all tasks for
+    //   each event
+    //
+    cout << endl << "Eventloop running (";
+
+    if (maxcnt<0) cout << "all";
+    else          cout << maxcnt;
+
+    cout << " events)..." << flush;
+
+    Int_t dummy = maxcnt<0?0:maxcnt;
+
+    TStopwatch clock;
+    clock.Start();
+
+    if (maxcnt<0)
+        while (fTasks->Process() && ++dummy);
+    else
+        while (fTasks->Process() && dummy--);
+
+    clock.Stop();
+
+    cout << "Ready!" << endl << endl;
+
+    clock.Print();
+
+    cout << endl
+        << "Time: " << clock.CpuTime() << "s"
+        << " for " << (maxcnt<0?dummy:maxcnt) << " Events"
+        << " --> " << (maxcnt<0?dummy:maxcnt)/clock.CpuTime() << " Events/s"
+        << endl << endl;
+
+    //
+    //  execute the post process of all tasks
+    //
+    fTasks->PostProcess();
+}
+
Index: /branches/start/MagicSoft/MarsOctober/mbase/MEvtLoop.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MEvtLoop.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MEvtLoop.h	(revision 4308)
@@ -0,0 +1,25 @@
+#ifndef MEVTLOOP_H
+#define MEVTLOOP_H
+
+#include "Magic.h"
+
+class MTaskList;
+class MParList;
+
+class MEvtLoop
+{
+private:
+    MTaskList *fTasks;
+    MParList  *fParlist;
+
+public:
+    MEvtLoop();
+    ~MEvtLoop();
+
+    void SetTaskList(MTaskList *t);
+    void SetParList(MParList *p);
+
+    void Eventloop(Int_t maxcnt=-1);
+};
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mbase/MFile.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MFile.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MFile.cc	(revision 4308)
@@ -0,0 +1,58 @@
+#include "MFile.h"
+
+#include "MFileDescr.h"
+
+ClassImp(MFile)
+ClassImp(MRootFile)
+ClassImp(MMagicFile)
+
+/* -- general Base class for all file types used in the magic environment -- */
+MFile::~MFile()
+{
+    if (fIn)
+        delete fIn;
+
+    if (fOut)
+        delete fOut;
+}
+
+/* -- general base class for all MParConmtainer which want to read and
+      write magic files */
+void MMagicFileImp::GetNBytes(fstream& fin, Byte_t *buffer, Char_t cnt)
+{
+    for (int i=cnt-1; i>=0; i--)
+        fin >> *(buffer+i);
+}
+
+void MMagicFileImp::PutNBytes(fstream& fout, Byte_t *buffer, Char_t cnt)
+{
+    for (int i=cnt-1; i>=0; i--)
+        fout << *(buffer+i);
+}
+
+/* -- file descriptor class for a magic root file -- */
+MFileDescrIn *MRootFile::OpenInput(const char *fName, const char *cname)
+{
+    fIn = new MRootFileIn(this, fName, cname);
+    return fIn;
+}
+
+MFileDescrOut *MRootFile::OpenOutput(const char *fName, const char *cname, MParContainer **obj)
+{
+    fOut = new MRootFileOut(fName, cname, obj);
+    return fOut;
+}
+
+/* -- file descriptor class for a magic magic file -- */
+
+MFileDescrIn *MMagicFile::OpenInput(const char *fName, const char *cname)
+{
+    fIn = new MMagicFileIn(fName);
+    return fIn;
+}
+
+MFileDescrOut *MMagicFile::OpenOutput(const char *fName, const char *cname, MParContainer **obj)
+{
+    fOut = new MMagicFileOut(fName, obj);
+    return fOut;
+}
Index: /branches/start/MagicSoft/MarsOctober/mbase/MFile.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MFile.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MFile.h	(revision 4308)
@@ -0,0 +1,81 @@
+#ifndef MFILE_H
+#define MFILE_H
+
+#include "Magic.h"
+
+#include <fstream.h>
+
+#include <TFile.h>
+
+class MFileDescrIn;
+class MFileDescrOut;
+
+class MParContainer;
+
+class MFile
+{
+protected:
+    MFileDescrIn  *fIn;  //!
+    MFileDescrOut *fOut; //!
+public:
+    MFile() : fIn(NULL), fOut(NULL) {}
+    ~MFile();
+
+    virtual MFileDescrIn *OpenInput(const char *fname, const char *cname)
+    {
+        return NULL;
+    };
+
+    virtual MFileDescrOut *OpenOutput(const char *fName, const char *cname, MParContainer **obj)
+    {
+        return NULL;
+    };
+
+    ClassDef(MFile, 1)
+};
+
+/*class MAsciiFile : public MFile
+{
+private:
+public:
+    void ReadNextEntry()
+    {
+        dest->ReadBinEntry(FILE *f);
+    }
+    };*/
+
+class MMagicFileImp
+{
+public:
+    void GetNBytes(fstream& fin, Byte_t *buffer, Char_t cnt);
+    void PutNBytes(fstream& fout, Byte_t *buffer, Char_t cnt);
+};
+
+class MRootFile : public MFile, public TFile
+{
+public:
+    MRootFile() : TFile() {}
+    MRootFile(const char *fname, Option_t *option="", const char *ftitle="", Int_t compress=1)
+        : TFile(fname, option, ftitle, compress)
+    {
+    }
+
+    MFileDescrIn  *OpenInput(const char *fName, const char *cname);
+    MFileDescrOut *OpenOutput(const char *fName, const char *cname, MParContainer **obj);
+
+    ClassDef(MRootFile, 1)
+};
+
+
+class MMagicFile : public MFile
+{
+public:
+    MMagicFile() {}
+    MMagicFile(const char *fname, Option_t *option="") {}
+
+    MFileDescrIn  *OpenInput(const char *fName, const char *cname);
+    MFileDescrOut *OpenOutput(const char *fName, const char *cname, MParContainer **obj);
+
+    ClassDef(MMagicFile, 1)
+};
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mbase/MFileDescr.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MFileDescr.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MFileDescr.cc	(revision 4308)
@@ -0,0 +1,138 @@
+#include "MFileDescr.h"
+
+#include <iostream.h>
+
+#include <TFile.h>
+#include <TTree.h>
+
+#include "MParContainer.h"
+
+void MRootFileIn::SetAddress(MParContainer **obj)
+{
+    pBranchIn->SetAddress(obj);
+}
+
+void MRootFileIn::GetEvent(Int_t n)
+{
+    pTreeIn->GetEvent(n);
+}
+
+void MRootFileOut::SetAddress(MParContainer **obj)
+{
+    pBranchOut->SetAddress(obj);
+}
+
+void MRootFileOut::Fill()
+{
+    pTreeOut->Fill();
+}
+
+MRootFileIn::MRootFileIn(TFile *f, const char *fName, const char *cname)
+{
+    //
+    // Open the tree in the input file with the same name than
+    // this instance
+    //
+    cout << "Open Tree: " << fName << "... " << flush;
+    pTreeIn = (TTree *) f->Get(fName);
+
+    if (!pTreeIn)
+        cout << "WARNING: Cannot open tree " << fName << "." << endl;
+
+    //
+    // Open the branch in the tree with the same name than
+    // the ClassName of the objects in the buffer
+    //
+    cout << "Branch: " << cname << "... " << flush;
+    pBranchIn = pTreeIn->GetBranch(cname);
+
+    if (!pBranchIn)
+        cout << "WARNING: Cannot open branch " << cname << "." << endl;
+    else
+        cout << "Done." << endl;
+
+    cout << endl;
+
+    //
+    // get number events in branch
+    //
+    // nEvts = pTreeIn->GetEntries();
+}
+
+MRootFileOut::MRootFileOut(const char *fName, const char *cname, MParContainer **obj)
+{
+    //
+    // Open the tree in the output file with the same name than
+    // the this instance
+    //
+    cout << "Create Tree: " << fName << "... " << flush;
+    TTree *pTreeOut = new TTree(fName, ""/*fTitle*/);
+
+    if (!pTreeOut)
+        cout << "WARNING: Cannot open tree " << fName << "." << endl;
+
+
+    //
+    // Create the branch in the tree with the same name than
+    // the ClassName of the objects in the buffer
+    //
+    cout << "Branch: " << cname << "... " << flush;
+    pBranchOut = pTreeOut->Branch("TEST", cname, obj, 100000, 10);
+
+    if (!pBranchOut)
+        cout << "WARNING: Cannot open branch " << cname << "." << endl;
+    else
+        cout << "Done." << endl;
+
+    cout << endl;
+}
+
+MMagicFileIn::MMagicFileIn(const char *fname)
+{
+    fin = new fstream(fname, ios::in);
+    if (!fin)
+        cout << "Warning: Cannot open file '" << fname << "' for reading." << endl;
+}
+
+MMagicFileIn::~MMagicFileIn()
+{
+    if (fin)
+        delete fin;
+}
+
+void MMagicFileIn::SetAddress(MParContainer **obj)
+{
+    fContainer = *obj;
+}
+
+void MMagicFileIn::GetEvent(Int_t n)
+{
+    if (n!=0)
+        cout << "Warning: You cannot seek inside a Magic file <n ignored>" << endl;
+
+    fContainer->GetEventFromMagicFile(*fin);
+}
+
+MMagicFileOut::MMagicFileOut(const char *fname, MParContainer **obj)
+{
+    fout = new fstream(fname, ios::out);
+    //fFile = fopen(fname, "w");
+    if (!fout)
+        cout << "Warning: Cannot open file '" << fname << "' for writing." << endl;
+}
+
+MMagicFileOut::~MMagicFileOut()
+{
+    if (fout)
+        delete fout;
+}
+
+void MMagicFileOut::SetAddress(MParContainer **obj)
+{
+    fContainer = *obj;
+}
+
+void MMagicFileOut::Fill()
+{
+    fContainer->PutEventToMagicFile(*fout);
+}
Index: /branches/start/MagicSoft/MarsOctober/mbase/MFileDescr.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MFileDescr.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MFileDescr.h	(revision 4308)
@@ -0,0 +1,83 @@
+#ifndef MFILEDESCR_H
+#define MFILEDESCR_H
+
+#include "Magic.h"
+
+#include <fstream.h>
+
+class TFile;
+class TTree;
+class TBranch;
+class MParContainer;
+
+class MFileDescrIn
+{
+public:
+    virtual void SetAddress(MParContainer **obj) {};
+    virtual void GetEvent(Int_t n) {};
+};
+
+class MFileDescrOut
+{
+public:
+    virtual void SetAddress(MParContainer **obj) {};
+    virtual void Fill() {};
+};
+
+class MRootFileIn : public MFileDescrIn
+{
+private:
+    TTree   *pTreeIn;     // tree to open for input
+    TBranch *pBranchIn;   // branch to open for input
+
+    Int_t nEvts;          // in Tree
+
+public:
+    MRootFileIn(TFile *f, const char *fName, const char *cname);
+    void SetAddress(MParContainer **obj);
+    void GetEvent(Int_t n);
+};
+
+class MRootFileOut : public MFileDescrOut
+{
+private:
+    TTree   *pTreeOut;    // tree to open for output
+    TBranch *pBranchOut;  // branch to open for output
+
+public:
+    MRootFileOut(const char *fName, const char *cname, MParContainer **obj);
+    void SetAddress(MParContainer **obj);
+    void Fill();
+};
+
+/* -------------------- Magic File --------------------- */
+
+class MMagicFileIn : public MFileDescrIn
+{
+private:
+    fstream *fin;
+    MParContainer *fContainer;         // tree to open for input
+
+public:
+    MMagicFileIn(const char *fname);
+    ~MMagicFileIn();
+
+    void SetAddress(MParContainer **obj);
+    void GetEvent(Int_t n=0);
+};
+
+class MMagicFileOut : public MFileDescrOut
+{
+private:
+    fstream *fout;
+    MParContainer *fContainer;
+
+public:
+    MMagicFileOut(const char *fname, MParContainer **obj);
+    ~MMagicFileOut();
+
+    void SetAddress(MParContainer **obj);
+    void Fill();
+};
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mbase/MInputStreamID.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MInputStreamID.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MInputStreamID.cc	(revision 4308)
@@ -0,0 +1,18 @@
+#include "MInputStreamID.h"
+
+ClassImp(MInputStreamID);
+
+// ---------------------------------------------------------------------
+
+MInputStreamID::MInputStreamID(const char *name, const char *title) : MParContainer(name, title)
+{
+    //
+    // (default) constructor
+    //
+    fName = name ? name : ClassName();
+    fTitle = title;
+
+    fID = new char[4];
+    strcpy(fID, "All");
+}
+
Index: /branches/start/MagicSoft/MarsOctober/mbase/MInputStreamID.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MInputStreamID.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MInputStreamID.h	(revision 4308)
@@ -0,0 +1,47 @@
+#ifndef MINPUTSTREAMID_H
+#define MINPUTSTREAMID_H
+///////////////////////////////////////////////////////////////////////
+//                                                                   //
+// MInputStreamID                                                    //
+//                                                                   //
+// This is the storage container for general (CaOs, Raw, ...) Event  //
+// Info like the type of the 'actual' event                          //
+//                                                                   //
+///////////////////////////////////////////////////////////////////////
+
+#include "Magic.h"
+
+#include "MParContainer.h"
+
+// -----------------------------------------------------------------------
+
+class MInputStreamID : public MParContainer
+{
+private:
+    char *fID;		//! which type of task should be processed?
+
+public:
+    MInputStreamID(const char *name=NULL, const char *title=NULL);
+
+    const char *GetEvtType() const
+    {
+	return (const char *)fID;
+    }
+    void SetEvtType(const char *t)
+    {
+        delete fID;
+        fID = new char[strlen(t)+1];
+        strcpy(fID, t);
+    }
+
+    MParContainer* New()
+    {
+        return new MInputStreamID(fName, fTitle);
+    }
+
+    ClassDef(MInputStreamID, 1)	// storage container for general info
+};
+
+// ---------------------------------------------------------------------
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mbase/MObjBuffer.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MObjBuffer.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MObjBuffer.cc	(revision 4308)
@@ -0,0 +1,118 @@
+////////////////////////////////////////////////////////////////////////
+//
+//  MObjBuffer
+//
+//  This is a ring buffer for TObjects
+//  It should be similar to TObjArray, but with different counting
+//
+////////////////////////////////////////////////////////////////////////
+#include "MObjBuffer.h"
+
+#include "MFileDescr.h"
+#include "MFile.h"
+
+ClassImp (MObjBuffer)
+
+MObjBuffer::MObjBuffer(MParContainer *o, Int_t nevts,
+                       const char *name, const char *title) :
+    fIsInput(kFALSE), fIsOutput(kFALSE), fHasChanged(kFALSE),
+    nPos(0), nObjPos(0)
+{
+    fName  = name  ? name  : o->GetName();
+    fTitle = title ? title : o->GetTitle();
+
+    //
+    // add the given object as first to the buffer
+    //
+    objs.Add(o);
+
+    //
+    // create nevts-1 new objects of the given object and add them to the buffer
+    //
+    for (Int_t i = 1; i<2*nevts+1; i++)
+    {
+        objs.Add(o->New());
+    }
+
+    nPreObjs = nPostObjs = nevts;
+    nEntries = nPreObjs+nPostObjs+1;
+}
+
+void MObjBuffer::SetAsInput(MFile *f, Bool_t i)
+{
+    fIsInput = i;
+
+    if (fIsInput)
+        pFileIn = f->OpenInput(fName, objs[0]->ClassName());
+    //    else
+    //        f->CloseInput();
+}
+
+void MObjBuffer::SetAsOutput(MFile *f, Bool_t o)
+{
+    fIsOutput = o;
+
+    if (fIsOutput)
+        pFileOut = f->OpenOutput(fName, objs[0]->ClassName(), (MParContainer**)&objs[0]);
+}
+
+Int_t MObjBuffer::GetNextEvent(Int_t time)
+{
+    //
+    // one step forward in the ring buffer
+    //
+    nObjPos++;
+    nObjPos %= nEntries;
+
+    //
+    // calculate the address of the object after the last one in the ring buffer
+    //
+    Int_t adr = (nObjPos+nPostObjs+nEntries+1)%nEntries;
+
+    //
+    // get the next entry (some event in the future) from file
+    //
+
+    pFileIn->SetAddress((MParContainer**)&objs[adr]);
+    pFileIn->GetEvent(nPos++);
+
+    //
+    // return number of actual event (present) in tree
+    //
+    return nPos-nPostObjs-1;
+}
+
+void MObjBuffer::PutEvent()
+{
+    //
+    // one step forward in the ring buffer
+    //
+    nObjPos++;
+    nObjPos %= nEntries;
+
+    //
+    // write actual (present) object to file
+    //
+    pFileOut->SetAddress((MParContainer**)&objs[nObjPos]);
+    pFileOut->Fill();
+}
+
+void MObjBuffer::Fill()
+{
+    //
+    // in the future this function has to handle the dynamic buffer
+    //
+    if (nPos)
+        return;
+
+    //
+    // fill PreBuffer (( objects in the future)
+    //
+    for (Int_t i=1; i<nPostObjs+2; i++)
+    {
+        pFileIn->SetAddress((MParContainer**)&objs[i]);
+        pFileIn->GetEvent(nPos++);
+    }
+    nObjPos = 0;
+}
+
Index: /branches/start/MagicSoft/MarsOctober/mbase/MObjBuffer.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MObjBuffer.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MObjBuffer.h	(revision 4308)
@@ -0,0 +1,79 @@
+#ifndef MOBJBUFFER_H
+#define MOBJBUFFER_H
+
+#include "Magic.h"
+
+#include <TTree.h>
+#include <TBranch.h>
+
+#include <TNamed.h>
+#include <TObjArray.h>
+
+#include "MParContainer.h"
+
+class MFile;
+class MFileDescrIn;
+class MFileDescrOut;
+
+//class MRuntimeDb;
+
+class MObjBuffer : public MParContainer
+{
+private:
+    TObjArray objs;
+
+    Int_t nPreObjs;       // number of object in the future
+    Int_t nObjPos;        // pos of present object
+    Int_t nPostObjs;      // number of objects in the past
+    Int_t nEntries;       // number of entries in ring buffer
+
+    Bool_t fIsInput;      // flag: is this an input container?
+    Bool_t fIsOutput;     // flag: is this an output container?
+
+    Bool_t fHasChanged;   // flag: the data of the 'present'-object has changed
+
+    MFileDescrIn  *pFileIn;   //! Input File
+    MFileDescrOut *pFileOut;  //! Input File
+
+    Int_t nPos;           // in Tree
+
+public:
+    MObjBuffer(MParContainer *o, Int_t nevts=1,
+               const char *name=NULL, const char *title=NULL);
+
+    Bool_t IsBuffer()                { return kTRUE; }
+
+    Bool_t IsInput()                 { return fIsInput; }
+    Bool_t IsOutput()                { return fIsOutput; }
+
+    Bool_t HasChanged()              { return fHasChanged; }
+
+    void SetAsInput(MFile *f, Bool_t i=kTRUE);
+    void SetAsOutput(MFile *f, Bool_t o=kTRUE);
+
+    void SetChanged(Bool_t c=kTRUE)  { fHasChanged = c; }
+
+    MParContainer *operator() ()
+    {
+	return (MParContainer*)objs[(nObjPos+nEntries)%nEntries];
+    }
+
+    MParContainer *GetEntry(Int_t i)
+    {
+	return (MParContainer*)objs[(nEntries+nObjPos+i)%nEntries];
+    }
+
+    Int_t GetNextEvent(Int_t time);
+    void PutEvent();
+
+    void Fill();
+
+    Int_t GetEventNr()
+    {
+        return nPos;
+    }
+
+    ClassDef(MObjBuffer, 1)	// buffer for n complete events
+};
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mbase/MParBase.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MParBase.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MParBase.h	(revision 4308)
@@ -0,0 +1,18 @@
+#ifndef MPARBASE_H
+#define MPARBASE_H
+
+#include "Magic.h"
+
+class MParBase 
+{
+private:
+    Bool_t fIsBuffer;
+
+public:
+    Bool_t IsBuffer()
+    {
+        return fIsBuffer;
+    }
+};
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mbase/MParContainer.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MParContainer.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MParContainer.cc	(revision 4308)
@@ -0,0 +1,43 @@
+#include "MParContainer.h"
+
+#include <iostream.h>
+
+#include "MTime.h"
+
+ClassImp(MParContainer)
+
+MParContainer::MParContainer(const char *name, const char *title)
+{
+    fName = name ? name : ClassName();
+    fTitle = title;
+}
+
+MParContainer::~MParContainer()
+{
+}
+
+MParContainer *MParContainer::New()
+{
+    cout << "Error: No New()-function." << endl;
+    return NULL;
+}
+
+void MParContainer::GetEventFromMagicFile(fstream &fin)
+{
+    cout << "Warning: Reading from Magic file format not defined for " << ClassName() << endl;
+}
+
+void MParContainer::PutEventToMagicFile(fstream &fout)
+{
+    cout << "Warning: Writing to Magic file format not defined for " << ClassName() << endl;
+}
+
+void MParContainer::GetEventFromAsciiFile(fstream &fin)
+{
+    cout << "Warning: Reading from Ascii file format not defined for " << ClassName() << endl;
+}
+
+void MParContainer::PutEventToAsciiFile(fstream &fout)
+{
+    cout << "Warning: Writing to Ascii file format not defined for " << ClassName() << endl;
+}
Index: /branches/start/MagicSoft/MarsOctober/mbase/MParContainer.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MParContainer.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MParContainer.h	(revision 4308)
@@ -0,0 +1,47 @@
+#ifndef MPARCONTAINER_H
+#define MPARCONTAINER_H
+
+#include "Magic.h"
+
+#include <fstream.h>
+
+#include "MTime.h"
+
+class MParList;
+class MFileDescr;
+
+class MParContainer : public MTime
+{
+private:
+
+public:
+    MParContainer(const char *name=NULL, const char *title=NULL);
+    ~MParContainer();
+
+    virtual Bool_t ReInit(MParList *pList)
+    {
+        //
+        // Reinitialize this container (eg resize)
+        // return kTRUE if no problems occured, else return kFALSE
+        //
+        return kTRUE;
+    }
+
+    virtual MParContainer *New();
+
+    virtual Bool_t IsBuffer()
+    {
+        return kFALSE;
+    }
+
+    void GetEventFromMagicFile(fstream &fin);
+    void PutEventToMagicFile(fstream &fout);
+
+    void GetEventFromAsciiFile(fstream &fin);
+    void PutEventToAsciiFile(fstream &fout);
+
+    ClassDef(MParContainer, 1)
+};
+
+#endif
+
Index: /branches/start/MagicSoft/MarsOctober/mbase/MParList.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MParList.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MParList.cc	(revision 4308)
@@ -0,0 +1,137 @@
+///////////////////////////////////////////////////////////////////////
+//
+// MParList
+//
+// This class contains a list of different Parameter and Data
+// Containers. 
+//
+// You can add every parameter Container (Named object) to the
+// instance and access it from somewhere else via its Name.
+//
+///////////////////////////////////////////////////////////////////////
+
+#include "MParList.h"
+
+#include "MParContainer.h"
+
+ClassImp(MParList)
+
+MParList::MParList() : fNext(NULL)
+{
+  //
+  //  default constructor 
+  //  creates an empty list 
+  //
+
+}
+
+MParList::MParList(MParList &ts)
+{
+  //
+  // copy constructor 
+  //
+
+  fContainer.AddAll(&ts.fContainer);
+}
+
+Bool_t MParList::ReInit(MParList *pList)
+{
+    //
+    // do a reinitialisation of all containers in this list (eg resizining)
+    // return kFALSE if a problem occured, else return kFALSE
+    //
+    cout << "Reinitializing... " << flush;
+
+    if (!pList)
+        pList = this;
+
+    //
+    //  create the Iterator over the list
+    //
+    TIter next(&fContainer);
+
+    MParContainer *pCont;
+
+    //
+    // loop over all containers in the list
+    //
+    while ((pCont=(MParContainer *)next()))
+    {
+        if (pCont->IsBuffer())
+            //
+            // FIXME: Here we have to loop over all entries in the buffer
+            //
+            continue;
+
+        cout << pCont->GetName() << "... " << flush;
+
+        if (!pCont->ReInit(pList))
+            return kFALSE;
+    }
+
+    cout << endl;
+
+    return kTRUE;
+}
+
+Bool_t MParList::AddToList(MParContainer *obj, TNamed *where)
+{
+  // 
+  //  Add an Container to the list.
+  // 
+  //  If 'where' is given, the object will be added after this.
+  //
+  
+  //
+  //  check if the object (you want to add) exists
+  //
+  if (!obj) return kTRUE;
+
+  cout << "Adding " << obj->GetName() << " to " << GetName() << "... " << flush;
+  //
+  //  check if it is in the list yet
+  //
+  if (fContainer.FindObject(obj))
+  {
+      cout << "WARNING: MParList::add: Container already added" << endl;
+      return kTRUE;
+  }
+
+  //
+  //  check if you want to add the new parameter container somewhere 
+  //  special (in that case you specify "where") 
+  //  
+  if (where)
+  {
+      if (!fContainer.FindObject(where))
+      {
+          cout << "ERROR: MParList::add: Cannot find parameter container after which the new one should be added!" << endl;
+          return kFALSE;
+      }
+  }
+
+  fContainer.Add(obj);
+  cout << "Done." << endl;
+
+  return kTRUE;
+}
+
+MParContainer *MParList::FindObject(const char *name)
+{
+    //
+    //  Find an object in the list.
+    //  'name' is the name of the object you are searching for.
+    //
+    return (MParContainer*)fContainer.FindObject(name);
+}
+
+
+void MParList::Print(Option_t *t)
+{
+    //
+    //   print some information about the current status of MParList
+    //
+    cout << "ParList: " << this->GetName() << " <" << this->GetTitle() << ">" << endl;
+    cout << endl;
+}
+
Index: /branches/start/MagicSoft/MarsOctober/mbase/MParList.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MParList.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MParList.h	(revision 4308)
@@ -0,0 +1,50 @@
+#ifndef MPARLIST_H
+#define MPARLIST_H
+
+#include "Magic.h"
+
+#include <iostream.h>
+
+#include "TObject.h"
+#include "TOrdCollection.h"
+
+class MParContainer;
+
+class MParList : public TObject
+{
+private:
+    TIter *fNext;               //!
+    TOrdCollection fContainer;	// Collection of Parameter and Data Containers
+
+public:
+    MParList();
+    MParList(MParList &ts);
+
+    ~MParList()
+    {
+        if (fNext)
+            delete fNext;
+    }
+
+    Bool_t ReInit(MParList *pList=NULL);
+
+    Bool_t AddToList(MParContainer *obj, TNamed *where = NULL);
+
+    MParContainer *FindObject(const char *name);
+
+    void Reset()
+    {
+        fNext = new TIter(&fContainer);
+    }
+
+    MParContainer *Next()
+    {
+        return (MParContainer*)(*fNext)();
+    }
+
+    void Print(Option_t *t = NULL);
+
+    ClassDef(MParList, 1)	// list of Parameter Containers
+};
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mbase/MParRead.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MParRead.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MParRead.cc	(revision 4308)
@@ -0,0 +1,156 @@
+////////////////////////////////////////////////////////////////////////
+//
+//  MParRead
+//
+//  This is the task to read in the cosmic raw data from one file. 
+//  Cosmics are stored in the root file under the Tree "EvtTree". 
+//  This task reads them in to the needed MRawEvtBuf in the Parameter
+//  list.
+//
+////////////////////////////////////////////////////////////////////////
+
+#include "MParRead.h"
+
+#include <iostream.h>
+
+#include "MParList.h"
+#include "MObjBuffer.h"
+#include "MInputStreamID.h"
+
+ClassImp(MParRead)
+
+MParRead::MParRead()
+{
+}
+
+Bool_t MParRead::PreProcess (MParList *pList)
+{
+    //
+    // remember the pointer to the parameter list fur further usage
+    //
+    pParList = pList;
+
+    //
+    //  check if MEvtHeader exists in the Parameter list already.
+    //  if not create one and add them to the list
+    //
+    fID = (MInputStreamID*)pList->FindObject("MInputStreamID");
+    if (!fID)
+    {
+        cout << "MReadEvt::PreProcess - WARNING: MEvtHeader not found... creating." << endl;
+        fID = new MInputStreamID;
+        pList->AddToList(fID);
+    }
+  
+    return kTRUE;
+}
+    
+Bool_t MParRead::Process()
+{
+    //
+    //   Read in the next event
+    //
+
+    //
+    // Make sure that all buffers are filled
+    //
+    MParContainer *pCont;
+
+    //
+    // start with the first entry in the parlist
+    //
+    pParList->Reset();
+    // loop over all entries
+    while ((pCont=pParList->Next()))
+    {
+        // if the entry is a buffer and not only a container
+        // we can ask the container whether it is a input
+        // container or not
+        if (!pCont->IsBuffer())
+            continue;
+
+        MObjBuffer *pBuf = (MObjBuffer*)pCont;
+
+        // if it is an input container we tell the container
+        // that it should be filled if it is not filled already
+        if (pBuf->IsInput())
+            pBuf->Fill();
+    }
+
+    //
+    // look which is the next tree which we have to read
+    //
+    MObjBuffer *evt;
+    Int_t up = 0;
+
+    // start from scratch
+    pParList->Reset();
+    // loop over all emtries
+    while ((pCont=pParList->Next()))
+    {
+        // ask whether it is a buffer or not
+        if (!pCont->IsBuffer())
+            continue;
+
+        MObjBuffer *pBuf = (MObjBuffer*)pCont;
+
+        // ask whether the buffer is set as an input buffer or not
+        if (!pBuf->IsInput())
+            continue;
+
+        // time of event which was processed last time
+        Int_t t1=fTime.GetTime();
+
+        // time of next event in this buffer
+        Int_t t2=pBuf->GetEntry(1)->GetTime();
+
+        // compare the time of the actual event with the next
+        // event in this buffer
+        if (t2<=t1)
+            continue;
+
+        // if no event is scheduled as event to read next
+        // set this container as next
+        if (!up)
+        {
+            up = t2;
+            evt = pBuf;
+        }
+
+        // if this container has a smaller time, than
+        // the 'actual' next event set this container
+        // as next input
+        if (t2<up)
+        {
+            up = t2;
+            evt = pBuf;
+        }
+    }
+
+    //
+    // now we have the time of the next event we want to read
+    // and a pointer to this event in 'up' and 'evt'
+    //
+
+    //
+    // set 'system-time' to time of this event
+    //
+    fTime.SetTime(up);
+
+    //
+    // set event-type to type of this event
+    //
+    fID->SetEvtType(evt->GetName());
+
+    //
+    // Get next event from the determined tree
+    //
+    evt->GetNextEvent(0);
+
+    return kTRUE;
+
+/*
+    return  nr != fPtrTree->GetEntries();
+*/
+}
+
Index: /branches/start/MagicSoft/MarsOctober/mbase/MParRead.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MParRead.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MParRead.h	(revision 4308)
@@ -0,0 +1,29 @@
+#ifndef MPARREAD_H
+#define MPARREAD_H
+
+#include "Magic.h"
+
+#include "MTask.h"
+#include "MTime.h"
+
+class MParList;
+class MInputStreamID;
+
+class MParRead : public MTask
+{
+private:
+    MTime fTime;
+    MParList *pParList;
+
+    MInputStreamID *fID;
+
+public:
+    MParRead();
+
+    Bool_t PreProcess(MParList *pList);
+    Bool_t Process();
+
+    ClassDef(MParRead, 1)	// Read event from root file into event buffer
+};
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mbase/MParWrite.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MParWrite.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MParWrite.cc	(revision 4308)
@@ -0,0 +1,51 @@
+////////////////////////////////////////////////////////////////////////
+//
+//  MParWrite
+//
+////////////////////////////////////////////////////////////////////////
+
+#include "MParWrite.h"
+
+#include "MParList.h"
+#include "MParContainer.h"
+#include "MObjBuffer.h"
+
+ClassImp(MParWrite)
+
+MParWrite::MParWrite()
+{
+}
+
+Bool_t MParWrite::PreProcess (MParList *pList)
+{
+    //
+    // remember the pointer to the parameter list fur further usage
+    //
+    pParList = pList;
+
+    return kTRUE;
+}
+
+Bool_t MParWrite::Process()
+{
+    //
+    //   Write Event
+    //
+
+    MParContainer *pCont;
+
+    pParList->Reset();
+    while ((pCont=pParList->Next()))
+    {
+        if (!pCont->IsBuffer())
+            continue;
+
+        MObjBuffer *pBuf = (MObjBuffer*)pCont;
+
+        if (pBuf->IsOutput() && pBuf->HasChanged())
+            pBuf->PutEvent();
+    }
+
+    return kTRUE;
+}
+
Index: /branches/start/MagicSoft/MarsOctober/mbase/MParWrite.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MParWrite.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MParWrite.h	(revision 4308)
@@ -0,0 +1,24 @@
+#ifndef MPARWRITE_H
+#define MPARWRITE_H
+
+#include "Magic.h"
+
+#include "MTask.h"
+
+class MParList;
+
+class MParWrite : public MTask
+{
+private:
+    MParList *pParList;
+
+public:
+    MParWrite();
+
+    Bool_t PreProcess(MParList *pList);
+    Bool_t Process();
+
+    ClassDef(MParWrite, 1)	// Read event from root file into event buffer
+};
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mbase/MTask.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MTask.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MTask.cc	(revision 4308)
@@ -0,0 +1,86 @@
+///////////////////////////////////////////////////////////////////////
+//
+//   MTask
+// 
+//   Base class for all tasks which can perfomed in a tasklist
+//   For each event processed in the eventloop all the different
+//   tasks in the tasklist will be processed.
+//  
+//   So all tasks must inherit from this baseclass. 
+//
+//   The data member fID is used to indicate the type of events
+//   that are process by this task. There are the following different
+//   event types: 
+//
+//   This is the type of task for which this task should be processed
+//   taskType-bits: 7 6 5 4 3 2 1 0
+//   0 DATA_EVT
+//   1 CALIBRATION_EVT
+//   ? etc. etc. 
+//
+//   Inside this abstract class, there are three fundamental function: 
+//
+//   - PreProcess() :  executed before the eventloop starts. Here you 
+//                     can initiate different things, open files, etc. 
+//
+//   - Process()    :  executed for each event in the eventloop. Do in 
+//                     one task after the other (as the occur in the 
+//                     tasklist) the action of one task. 
+//  
+//   - PostProcess():  executed after the eventloop. Here you can close 
+//                     output files, start display of the run parameter, 
+//                     etc. 
+//  
+//  
+///////////////////////////////////////////////////////////////////////
+
+#include "MTask.h"
+
+#include <string.h>
+#include <iostream.h>
+
+ClassImp(MTask)
+
+void MTask::SetEventType(const char *evt)
+{
+    if (fID)
+        delete fID;
+    fID = new char[strlen(evt)+1];
+    strcpy(fID, evt);
+}
+
+Bool_t MTask::PreProcess( MParList *pList )
+{
+  //
+  // This is processed before the eventloop starts
+  // 
+  // It is the job of the PreProcess to connect the tasks
+  // with the right container in the parameter list. 
+  //
+  // the virtual implementation returns kTRUE
+  //
+  return kTRUE; 
+}
+
+
+Bool_t MTask::Process()
+{
+  //
+  // This is processed for every event in the eventloop 
+  //
+  // the virtual implementation returns kTRUE
+  //
+  return kTRUE;
+}
+
+Bool_t MTask::PostProcess()
+{
+  //
+  // This is processed after the eventloop starts
+  //
+  // the virtual implementation returns kTRUE
+  //
+  return kTRUE;
+}
+
+
Index: /branches/start/MagicSoft/MarsOctober/mbase/MTask.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MTask.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MTask.h	(revision 4308)
@@ -0,0 +1,36 @@
+#ifndef MTASK_H
+#define MTASK_H
+
+#include "Magic.h"
+
+#include "TOrdCollection.h"
+
+class MParList;
+
+class MTask : public TObject
+{
+private:
+    char *fID;	   //! type of raw event which should be processed by this task
+
+public:
+    ~MTask()
+      {
+        if (fID)
+	  delete fID;
+      }
+
+    virtual Bool_t PreProcess(MParList *pList);
+    virtual Bool_t Process();
+    virtual Bool_t PostProcess();
+    
+    void SetEventType(const char *evt);
+    
+    const char *GetEventType() const
+    {
+	return (const char*) fID;
+    }
+
+    ClassDef(MTask, 1)		// Base (abstract) class for a task
+};
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mbase/MTaskList.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MTaskList.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MTaskList.cc	(revision 4308)
@@ -0,0 +1,201 @@
+///////////////////////////////////////////////////////////////////////
+//                                                                   //
+// MTaskList                                                          //
+//                                                                   //
+// Collection of tasks which should be processed in the eventloop    //
+//                                                                   //
+///////////////////////////////////////////////////////////////////////
+
+#include "MTaskList.h"
+
+#include <iostream.h>
+
+#include "MParList.h"
+#include "MInputStreamID.h"
+
+ClassImp(MTaskList)
+
+MTaskList::MTaskList()
+{
+  // 
+  //  default constructor: create empty task list
+  //
+}
+
+MTaskList::MTaskList(MTaskList &ts)
+{
+  //
+  //   CopyConstructor 
+  //   creates a new TaskList and put the contents of an existing
+  //   TaskList in the new TaskList. 
+  //
+  fTasks.AddAll(&ts.fTasks);
+}
+
+Bool_t MTaskList::AddToList(MTask *task, const char *tType, MTask *where)
+{
+  // schedule task for execution, whether as first task, or after
+  // 'where'. 'tType' is the event type which should be processed
+  if (!task)
+    return kTRUE;
+  
+  // FIXME: We agreed to put the task into list in an ordered way.
+  
+  if (fTasks.FindObject(task))
+    {
+      printf("WARNING: MTaskList::schedule: Task already existing\n");
+      return kTRUE;
+    }
+  
+  if (where)
+    {
+      if (!fTasks.FindObject(where))
+        {
+	  printf("ERROR: MTaskList::schedule: Cannot find task after which the new task should be scheduled!\n");
+	  return kFALSE;
+        }
+    }
+  
+  cout << "Adding " << task->GetName() << " to " << GetName() << " for " << tType << "... " << flush;
+  
+  task->SetEventType(tType);
+  fTasks.Add(task);
+  
+  cout << "Done." << endl;
+  
+  return kTRUE;
+}
+
+
+Bool_t MTaskList::PreProcess( MParList *pList )
+{ 
+  //
+  // do pre processing (before eventloop) of all tasks in the task-list
+  //
+  
+  fID = (MInputStreamID*)pList->FindObject("MInputStreamID");
+  if (!fID)
+    {
+      cout << "MTaskList::PreProcess - WARNING: MInputStreamID not found... creating." << endl;
+      fID = new MInputStreamID;
+      pList->AddToList(fID);
+    }
+  
+  cout << "Preprocessing... " << flush;
+  
+  //
+  //  create the Iterator over the tasklist
+  //
+  TIter next(&fTasks);
+  
+  MTask *task=NULL;
+  
+  //
+  // loop over all tasks for preproccesing
+  //
+  while ( (task=(MTask*)next()) )
+    {
+      cout << task->GetName() << "... " << flush;
+      
+      if (!task->PreProcess( pList ))
+	return kFALSE;
+    }
+  
+  cout << endl;
+  
+  return kTRUE;
+}
+
+Bool_t MTaskList::Process()
+{
+  //
+  // do the event execution of all tasks in the task-list
+  //
+  
+  //
+  //  create the Iterator for the TaskList
+  //
+  TIter next(&fTasks);
+  MTask *task=NULL;
+  
+  //
+  // loop over all tasks for processing 
+  //
+  while ( (task=(MTask*)next()) )
+    {
+      // cout << "MTaskList::Process() " << task->GetEventType() 
+      //   << "  " << fID->GetEvtType() << endl ; 
+
+      if (!strcmp(fID->GetEvtType(), task->GetEventType()) ||
+          !strcmp(task->GetEventType(), "All"))
+	{
+          switch (task->Process())
+	    {
+	    case kTRUE:
+              //
+              // everything was OK: go on
+              //
+              continue;
+	      
+	    case kFALSE:
+              //
+              // an error occured: stop eventloop
+              //
+              return kFALSE;
+	      
+	    case kCONTINUE:
+              //
+              // something occured: skip the rest of the tasks for this event
+              //
+              break;
+	    }
+	}
+    }
+  return kTRUE;
+}
+
+Bool_t MTaskList::PostProcess()
+{
+  //
+  // do post processing (before eventloop) of all tasks in the task-list
+  //
+  
+  cout << "Postprocessing... " << flush;
+  
+  //
+  //  create the Iterator for the TaskList
+  //
+  TIter next(&fTasks);
+  
+  MTask *task=NULL;
+  
+  //
+  //  loop over all tasks for postprocessing
+  //  
+  while ( (task=(MTask*)next()) )
+    {
+      cout << task->GetName() << "... " << flush;
+      
+      if (!task->PostProcess())
+	return kFALSE;
+    }
+  
+  cout << endl;
+  
+  return kTRUE;
+}
+
+
+void MTaskList::Print(Option_t *t)
+{
+  cout << "TaskList: " << this->GetName() << " <" <<  this->GetTitle() << ">" 
+       << endl;
+  
+  fTasks.Print();
+  
+  cout << endl;
+}
+
+
+
+
Index: /branches/start/MagicSoft/MarsOctober/mbase/MTaskList.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MTaskList.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MTaskList.h	(revision 4308)
@@ -0,0 +1,36 @@
+#ifndef MTASKLIST_H
+#define MTASKLIST_H
+
+#include "Magic.h"
+
+#include <TOrdCollection.h>
+
+#include "MTask.h"
+
+class MParList;
+class MInputStreamID;
+
+class MTaskList : public MTask
+{
+private:
+    TOrdCollection fTasks;	// Container for the ordered list of different tasks
+
+    MInputStreamID *fID;
+
+public:
+    MTaskList();
+
+    MTaskList(MTaskList &ts);
+
+    Bool_t AddToList(MTask *task, const char *tType="All", MTask *where = NULL);
+
+    Bool_t PreProcess(MParList *pList);
+    Bool_t Process();
+    Bool_t PostProcess();
+
+    void Print(Option_t *t = NULL);
+
+    ClassDef(MTaskList, 1)	// Collection of tasks to be performed in the eventloop
+};
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mbase/MTime.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MTime.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MTime.cc	(revision 4308)
@@ -0,0 +1,10 @@
+///////////////////////////////////////////////////////////////////////
+//
+//   MTime
+//
+///////////////////////////////////////////////////////////////////////
+
+#include "MTime.h"
+
+ClassImp(MTime)
+
Index: /branches/start/MagicSoft/MarsOctober/mbase/MTime.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/MTime.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/MTime.h	(revision 4308)
@@ -0,0 +1,51 @@
+#ifndef MTIME_H
+#define MTIME_H
+
+#include "Magic.h"
+
+#include <TNamed.h>
+
+class MTime : public TNamed
+{
+private:
+    UInt_t fTimeStamp; // type of raw event which should be processed by this task
+    UInt_t fDuration;  // time of validity
+
+public:
+
+    MTime(const char *name=NULL, const char *title=NULL) : fTimeStamp(0)
+    {
+        fName = name ? name : ClassName();
+        fTitle = title;
+    }
+
+    MTime(UInt_t t) : fTimeStamp(t)
+    {
+    }
+
+    ~MTime() {}
+
+    void SetTime(UInt_t t)
+    {
+	fTimeStamp = t;
+    }
+
+    void SetDuration(UInt_t t)
+    {
+	fDuration = t;
+    }
+
+    UInt_t GetTime()
+    {
+	return fTimeStamp;
+    }
+
+    UInt_t GetDuration()
+    {
+	return fDuration;
+    }
+
+    ClassDef(MTime, 1)	// Base (abstract) class for a task
+};
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mbase/Magic.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/Magic.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/Magic.h	(revision 4308)
@@ -0,0 +1,64 @@
+#ifndef MAGIC_H
+#define MAGIC_H
+///////////////////////////////////////////////////////////////////////////////
+//
+//     Magic.h
+//
+//     defines MAGIC base informations
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <TROOT.h>
+
+//
+// Magic number to detect the magic file type
+//
+const UShort_t kMagicNumber = 0xc0c0;
+
+//
+// Values for the eventloop control
+//
+const Int_t kCONTINUE = 2;
+
+//
+//     Number of the Pixels in the Camera
+//
+const Int_t kCAMERA_PIXELS = 577;
+
+//
+//     Number of the Slices of one Fadc. Be carefull this is the number of 
+//     slices for one gain branch. We sample two times this number. 
+//
+const Int_t kFADC_SLICES   = 15;
+
+//
+//     ParticleId for Monte Carlo simulation
+//
+const Int_t kGAMMA  =    0;
+const Int_t kPROTON =   14;
+const Int_t kHELIUM =  402;
+const Int_t kOXIGEN = 1608;
+const Int_t kIRON   = 5626;
+
+//
+// nummber of ADC conversions per pixel
+//
+const Int_t kMAX_ADC = 30;
+
+//
+//camera dimensions and definitions
+//
+const Float_t kPIXEL_DIST       =  10.0;	//cm
+const Int_t   kCAMERA_COLOR     =  13;   	//Background light grey
+const Int_t   kDEFAULT_COLOR    =   1;   	//black
+const Int_t   kPIXEL_LINE_COLOR =  15;	        //dark grey
+const Int_t   kCOLORTABLE_START =  18;	        //Begin of colortable
+const Int_t   kMAX_PH_EL        = 500;   	//upper limit for colortable
+
+//
+// THE MAGIC RUNTIME DATABASE
+//
+//class MRuntimeDb;
+//extern MRuntimeDb *gMagic;
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mbase/Makefile
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/Makefile	(revision 4308)
@@ -0,0 +1,133 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+# @maintitle
+
+# @code
+
+#
+#  please change all system depend values in the 
+#  config.mk.${OSTYPE} file 
+#
+#
+INCLUDEMK = ../Makefile.conf.${OSTYPE}
+include ${INCLUDEMK}
+
+# @endcode 
+
+# @code 
+
+LIB   = libmbase.a
+
+#
+#  connect the include files defined in the config.mk file
+#
+INCLUDES = -I./
+
+#
+#  ----->>>   root libraries
+#
+
+ROOTLIBS   =  `root-config --libs`
+ROOTGLIBS  =  `root-config --glibs`
+ROOTCFLAGS =  `root-config --cflags`
+
+#
+#  compiler flags
+#
+
+CXXFLAGS  = $(ROOTCFLAGS) $(INCLUDES) $(OPTIM) $(DEBUG)
+CFLAGS    = $(CXXFLAGS)
+FFLAGS    = $(CXXFLAGS)
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cc .cxx .h .hxx .o 
+
+
+SRCFILES = MTask.cc \
+	   MTaskList.cc \
+	   MParContainer.cc \
+	   MParList.cc \
+	   MParRead.cc \
+	   MParWrite.cc \
+           MTime.cc \
+           MInputStreamID.cc \
+	   MObjBuffer.cc \
+           MFile.cc \
+           MFileDescr.cc \
+           MEvtLoop.cc
+
+SRCS    = $(SRCFILES)
+HEADERS = $(SRCFILES:.cc=.h)
+OBJS    = $(SRCFILES:.cc=.o) 
+
+############################################################
+
+all: $(LIB)
+
+depend:
+	@makedepend $(SRCS) $(INCLUDES) $(ROOTCFLAGS) \
+        -fMakefile.depend 2> kk.kk ; cat kk.kk
+
+$(LIB): $(OBJS) BaseCint.o
+	@echo "Building Library $(LIB) ... "
+	@ar -r $(LIB) *.o
+
+BaseCint.cc: $(HEADERS) 
+	@echo 
+	@echo "Generating dictionary BaseCint.cc ..."
+
+	@$(ROOTSYS)/bin/rootcint -f BaseCint.cc \
+	-c $(INCLUDES) $(HEADERS) BaseLinkDef.h
+
+.cxx.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.cc.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo "Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+#
+# The cleaning facility
+#
+
+rmlib:	
+	@echo "Removing libraries..."
+	@rm -f lib*.a
+
+rmcint:	
+	@echo "Removing cint-stuff..."
+	@rm -f BaseCint.*
+
+rmobjs:	
+	@echo "Removing object files..."
+	@rm -f *.o
+
+rmbin:	
+	@echo "Removing binary files..."
+	@rm -f core
+
+
+clean:	rmlib rmcint rmobjs rmbin
+
+mrproper:	clean
+	@echo "Removing *~ kk.kk html/..."
+	@rm -f *~ kk.kk
+
+cflags: 
+	@echo $(INCLUDES) $(CXXFLAGS)
+
+# @endcode
+
Index: /branches/start/MagicSoft/MarsOctober/mbase/Makefile.depend
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mbase/Makefile.depend	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mbase/Makefile.depend	(revision 4308)
@@ -0,0 +1,26 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+
+# DO NOT DELETE
+
+MTask.o: MTask.h Magic.h /cern/root/include/TROOT.h
+MTask.o: /cern/root/include/TOrdCollection.h
+MTaskList.o: MTaskList.h Magic.h /cern/root/include/TROOT.h
+MTaskList.o: /cern/root/include/TOrdCollection.h MTask.h
+MParContainer.o: MParContainer.h Magic.h /cern/root/include/TROOT.h
+MParContainer.o: /cern/root/include/TObject.h
+MParList.o: MParList.h Magic.h /cern/root/include/TROOT.h
+MParList.o: /cern/root/include/TObject.h /cern/root/include/TOrdCollection.h
+MTree.o: MTree.h Magic.h /cern/root/include/TROOT.h
+MTree.o: /cern/root/include/TObject.h /cern/root/include/TFile.h
+MTree.o: /cern/root/include/TTree.h /cern/root/include/TBranch.h MObjBuffer.h
+MTree.o: /cern/root/include/TNamed.h /cern/root/include/TObjArray.h
+MTree.o: MParContainer.h
+MObjBuffer.o: MObjBuffer.h Magic.h /cern/root/include/TROOT.h
+MObjBuffer.o: /cern/root/include/TNamed.h /cern/root/include/TObjArray.h
+MObjBuffer.o: MParContainer.h /cern/root/include/TObject.h
Index: /branches/start/MagicSoft/MarsOctober/mgeom/MGeomCam.cxx
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mgeom/MGeomCam.cxx	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mgeom/MGeomCam.cxx	(revision 4308)
@@ -0,0 +1,1 @@
+
Index: /branches/start/MagicSoft/MarsOctober/mgeom/MGeomCam.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mgeom/MGeomCam.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mgeom/MGeomCam.h	(revision 4308)
@@ -0,0 +1,35 @@
+////////////////////////////////////////////////////////////////////////
+//
+//   class MGeomCam 
+//
+#ifndef __MGeomCam__ 
+#define __MGeomCam__ 
+
+#include "TObject.h" 
+
+class MGeomCam : public TObject { 
+  //
+  //  Geometry of the MAGIC camera. 
+  //
+  //  all geometric information about the camera is inside this class
+  //
+
+ private: 
+  
+  Int_t   fNumPixel ;    // number of Pixel in the Camera 
+  
+  Float_t  *fXcoord ;    // X coordinate of the pixels
+  Float_t  *fYcoord ;    // Y coordinate of the pixels
+  Float_t  *fRadius ;    // radius of the pixels
+
+  Int_t    *fNumNeigbor  ; 
+  Int_t   (*fNextNeigbor)[6] ;
+  
+
+
+
+ protected: 
+  
+ public: 
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mgeom/MGeomPixel.cxx
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mgeom/MGeomPixel.cxx	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mgeom/MGeomPixel.cxx	(revision 4308)
@@ -0,0 +1,42 @@
+////////////////////////////////////////////////////////////////////////
+//  
+//    class MGeomPixel 
+//
+//
+
+include "MGeomPixel.h"
+
+ClassImp(MGeomPixel)
+
+
+MGeomPixel::MGeomPixel () { 
+  //
+  //     default constructor 
+  //
+  //     all values are set to zero. 
+  //     Boolean are set to kFALSE 
+  //
+
+  fPixId   = 0  ; 
+
+  fXcoord  = 0. ; 
+  fYcoord  = 0. ; 
+  fRadius  = 0. ; 
+
+  fNumNeigbor = 0 ; 
+  
+  for (Int_t i=0; i<6; i++ ) { 
+    fNextNeigbor = 0 ; 
+    fXCorner     = 0. ; 
+    fYCorner     = 0. ; 
+  } 
+
+  
+  IsInstalled = kFALSE ; 
+  IsOk        = kFALSE ; 
+} 
+
+
+
+
+
Index: /branches/start/MagicSoft/MarsOctober/mgeom/MGeomPixel.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mgeom/MGeomPixel.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mgeom/MGeomPixel.h	(revision 4308)
@@ -0,0 +1,48 @@
+////////////////////////////////////////////////////////////////////////
+//
+//   class MGeomPixel 
+//
+#ifndef __MGeomPixel__ 
+#define __MGeomPixel__ 
+
+#include "TObject.h" 
+
+class MGeomCam : public TObject { 
+  //
+  //  Geometry of the MAGIC camera. 
+  //
+  //  all geometric information about the camera is inside this class
+  //
+
+ private: 
+  
+  Int_t    fPixId ;     // number of this Pixel 
+  
+  Float_t  fXcoord ;    // X coordinate of the pixels (central position) 
+  Float_t  fYcoord ;    // Y coordinate of the pixels (central position) 
+  Float_t  fRadius ;    // radius of the pixels
+
+  Int_t    fNumNeigbor     ; 
+  Int_t    fNextNeigbor[6] ;
+
+  Float_t  fXCorners[6] ; 
+  Float_t  fYCorners[6] ; 
+
+  Bool_t   IsInstalled ; 
+  Bool_t   IsOk        ; 
+  
+ protected: 
+  
+ public: 
+  
+  MGeomPixel() ; 
+
+  MGeomPixel(Int_t iP) ; 
+  
+  MGeomPixel(Int_t iP, fX, fY, fR ) ; 
+
+ClassDef(MGeomPixel, 1)          // class for a Pixel geometry
+
+
+#endif
+
Index: /branches/start/MagicSoft/MarsOctober/mgeom/Makefile
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mgeom/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mgeom/Makefile	(revision 4308)
@@ -0,0 +1,123 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+# @maintitle
+
+# @code
+
+#
+#  please change all system depend values in the 
+#  config.mk.${OSTYPE} file 
+#
+#
+INCLUDEMK = ../Makefile.conf.${OSTYPE}
+include ${INCLUDEMK}
+
+
+# @endcode 
+
+# @code 
+
+LIB   = libmgeom.a
+
+#
+#  connect the include files defined in the config.mk file
+#
+INCLUDES = -I./
+
+#
+#  ----->>>   root libraries
+#
+
+ROOTLIBS   =  `root-config --libs`
+ROOTGLIBS  =  `root-config --glibs`
+ROOTCFLAGS =  `root-config --cflags`
+
+#
+#  compiler flags
+#
+
+CXXFLAGS  = $(ROOTCFLAGS) $(INCLUDES) $(OPTIM) $(DEBUG)
+CFLAGS    = $(CXXFLAGS)
+FFLAGS    = $(CXXFLAGS)
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cc .cxx .h .hxx .o 
+
+
+SRCFILES = MGeomPixel.cxx
+
+SRCS    = $(SRCFILES)
+HEADERS = $(SRCFILES:.cxx=.h)
+OBJS    = $(SRCFILES:.cxx=.o) 
+
+############################################################
+
+all: $(LIB)
+
+depend:
+	@makedepend $(SRCS) $(INCLUDES) $(ROOTCFLAGS) \
+        -fMakefile.depend 2> kk.kk ; cat kk.kk
+
+$(LIB): $(OBJS) BaseCint.o
+	@echo "Building Library $(LIB) ... "
+	@ar -r $(LIB) *.o
+
+BaseCint.cc: $(HEADERS) 
+	@echo 
+	@echo "Generating dictionary BaseCint.cc ..."
+
+	@$(ROOTSYS)/bin/rootcint -f BaseCint.cc \
+	-c $(INCLUDES) $(HEADERS) BaseLinkDef.h
+
+.cxx.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.cc.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo "Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+#
+# The cleaning facility
+#
+
+rmlib:	
+	@echo "Removing libraries..."
+	@rm -f lib*.a
+
+rmcint:	
+	@echo "Removing cint-stuff..."
+	@rm -f BaseCint.*
+
+rmobjs:	
+	@echo "Removing object files..."
+	@rm -f *.o
+
+rmbin:	
+	@echo "Removing binary files..."
+	@rm -f core
+
+
+clean:	rmlib rmcint rmobjs rmbin
+
+mrproper:	clean
+	@echo "Removing *~ kk.kk html/..."
+	@rm -f *~ kk.kk
+
+cflags: 
+	@echo $(INCLUDES) $(CXXFLAGS)
+
+# @endcode
+
Index: /branches/start/MagicSoft/MarsOctober/mgeom/Makefile.depend
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mgeom/Makefile.depend	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mgeom/Makefile.depend	(revision 4308)
@@ -0,0 +1,9 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+
+# DO NOT DELETE
Index: /branches/start/MagicSoft/MarsOctober/mgeom/kk.kk
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mgeom/kk.kk	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mgeom/kk.kk	(revision 4308)
@@ -0,0 +1,1 @@
+makedepend: warning:  ignoring option -nostdnew
Index: /branches/start/MagicSoft/MarsOctober/mocttest/BaseLinkDef.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mocttest/BaseLinkDef.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mocttest/BaseLinkDef.h	(revision 4308)
@@ -0,0 +1,13 @@
+#ifdef __CINT__
+
+#pragma link off all classes;
+#pragma link off all functions;
+
+#pragma link C++ class MGOctMain ;
+#pragma link C++ class MGDisplayAdc ;
+
+#pragma link C++ class MHistosAdc ;
+#pragma link C++ class MAdcSpect ;
+#pragma link C++ class MShowSpect ;
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mocttest/MAdcSpect.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mocttest/MAdcSpect.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mocttest/MAdcSpect.cc	(revision 4308)
@@ -0,0 +1,118 @@
+#include "MAdcSpect.h"
+
+#include <iostream.h>
+#include <stdlib.h>
+
+#include <TFile.h>
+
+#include "MRawEvt.h"
+#include "MParList.h"
+#include "MHistosAdc.h"
+
+
+////////////////////////////////////////////////////////////////////////
+//
+//  MAdcSpect.h
+//
+//  A Task to fill the raw ADC values in the histograms to create 
+//  the ADC raw spectra
+//
+
+ClassImp(MAdcSpect)
+
+MAdcSpect::MAdcSpect( char* treeName, char *rootfile)
+{
+  //
+  //   default constructor
+  //
+  sprintf(fTreeName, "%s", treeName ) ; 
+
+  sprintf(fOutFile, "%s", rootfile);
+}
+
+
+Bool_t MAdcSpect::PreProcess(MParList *pList)
+{
+  //
+  //   Do the preprocessing for MAdcSpect
+  // 
+  //   Connects the event in MRawEvtBuf as the input for this task
+  //   and the MHistosAdc container as the output 
+  //
+
+  //
+  //   first look for the input buffer MRawEvtBuf
+  //  
+  fEvtBuf = (MObjBuffer*) pList->FindObject(fTreeName);
+  if (!fEvtBuf)
+    {
+      cout << "ERROR: MAdcSpect::PreProc(): " << fTreeName << " not found!" << endl;
+      exit(1);
+    }
+
+  //
+  //  second connect the output container 
+  //
+  fHists = (MHistosAdc*) pList->FindObject("MHistosAdc");
+  
+  if (!fHists)
+    {
+      cout << "ERROR: MAdcSpect::PreProc(): MHistosAdc not found!" << endl;
+      exit(1);
+    }
+  
+  return kTRUE ; 
+}
+
+Bool_t MAdcSpect::Process()
+{
+  //
+  //  fill the raw data values in the corresponding histograms
+  //
+  
+  //
+  //   loop over the pixels in the events
+  //
+  
+  MRawEvt *fRawEvt = (MRawEvt*)(*fEvtBuf)();
+  
+  for ( Int_t i=0 ;  i< (Int_t) fRawEvt->GetMultPixel(); i++ )
+    {
+      fHists->FillAdcHist ( fRawEvt->GetPixelId(i),
+			    fRawEvt->GetPixelData(i) );
+      
+    }
+  
+  return kTRUE ;
+}
+
+
+Bool_t MAdcSpect::PostProcess()
+{
+    //
+    //  PostProessing
+    //
+    //  after the loop over all events this routine is executed.
+    //  Here the postprecessing is checking the contents of
+    //  fOutFile.
+    //  If it is "nooutput", nothing is done.
+    //  Else the histograms in the MHistosAdc are written to a file.
+    //
+
+    if (strcmp (fOutFile, "nooutput"))
+    {
+        //
+        //   write the histograms to File
+        //
+        cout << endl << "--> INFO: write the histograms to file: "
+            << fOutFile  << endl ;
+
+        //
+        //   call the containers save function
+        //
+
+        fHists->SaveHist(fOutFile);
+    }
+
+    return kTRUE;
+}
Index: /branches/start/MagicSoft/MarsOctober/mocttest/MAdcSpect.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mocttest/MAdcSpect.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mocttest/MAdcSpect.h	(revision 4308)
@@ -0,0 +1,32 @@
+#ifndef MADCSPECT_H
+#define MADCSPECT_H
+
+#include "Magic.h"
+
+#include "MTask.h"
+#include "MObjBuffer.h"
+
+class MHistosAdc;
+class MParList;
+
+class MAdcSpect : public MTask
+{
+private:
+    MObjBuffer * fEvtBuf;	// Pointer to MObjBuffer for Event Tree
+
+    MHistosAdc *fHists;		// Pointer to Container with the histograms
+
+    char fTreeName[256];	// Name of the tree to fill 
+    char fOutFile[256];		// Name of the output file
+
+public:
+    MAdcSpect(Char_t* treeName = "EvtTree", Char_t * rootfile = "nooutput");
+
+    Bool_t PreProcess(MParList * pList);
+    Bool_t Process();
+    Bool_t PostProcess();
+
+    ClassDef(MAdcSpect, 1)	// Fill the raw ADC in the histograms
+};
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mocttest/MGDisplayAdc.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mocttest/MGDisplayAdc.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mocttest/MGDisplayAdc.cc	(revision 4308)
@@ -0,0 +1,238 @@
+#include "MGDisplayAdc.h" 
+
+MGDisplayAdc::MGDisplayAdc ( MHistosAdc *Histos,
+			     const TGWindow *p, const TGWindow *main, 
+			     UInt_t w, UInt_t h, 
+			     UInt_t options) 
+  : TGTransientFrame(p, main, w, h, options ) 
+{
+  //   default constructor
+
+  fHists = Histos ; 
+
+  //   the top frame for the list and some buttons and the Canvas 
+
+  fFrameTop = new TGHorizontalFrame (this, 60,20,  kFitWidth ) ;
+
+  //    left part of top frame
+  fFT1 =  new TGVerticalFrame (fFrameTop, 80,300,  kFitWidth ) ; 
+
+  fHistoList = new TGListBox ( fFT1, M_LIST_HISTO ) ; 
+  fHistoList->Associate( this ) ; 
+  fFT1->AddFrame ( fHistoList, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 10 ) )  ; 
+  fHistoList->Resize(80, 300 ) ; 
+
+  fFrameTop->AddFrame (fFT1, new TGLayoutHints ( kLHintsTop , 10, 10, 10, 10 ) ) ; 
+
+
+  //    middle part of top frame
+ 
+  fFT2 =  new TGVerticalFrame (fFrameTop, 80,20,  kFitWidth ) ;  
+
+  fButtonPrev = new TGTextButton ( fFT2, "Prev Histo", M_BUTTON_PREV ) ; 
+  fButtonPrev->Associate (this) ; 
+  fFT2->AddFrame ( fButtonPrev, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 50, 10 ) )  ; 
+
+  fButtonNext = new TGTextButton ( fFT2, "Next Histo", M_BUTTON_NEXT ) ; 
+  fButtonNext->Associate (this) ; 
+  fFT2->AddFrame ( fButtonNext, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 5 ) )  ; 
+
+  fFrameTop->AddFrame (fFT2, new TGLayoutHints ( kLHintsTop , 10, 10, 10, 10 ) ) ; 
+
+  //    right part of top frame
+  
+  fFT3 =  new TGVerticalFrame (fFrameTop, 60, 60,  kFitWidth ) ;
+
+  fECanv = new TRootEmbeddedCanvas("fECanv", fFT3, 400, 400 ) ; 
+  fFT3->AddFrame( fECanv, new TGLayoutHints ( kLHintsCenterX | kLHintsCenterY | kLHintsExpandX | kLHintsExpandY , 10, 10, 10, 10 ) ) ; 
+
+  fCanv = fECanv->GetCanvas() ; 
+
+  fFrameTop->AddFrame (fFT3, new TGLayoutHints ( kLHintsCenterX | kLHintsCenterY | kLHintsExpandX | kLHintsExpandY , 10, 10, 10, 10 ) ) ; 
+  
+  AddFrame ( fFrameTop, new TGLayoutHints ( kLHintsTop | kLHintsExpandX , 10, 10, 10, 10 ) ) ; 
+
+  //
+  //   the low frame for the control buttons
+  //
+  fFrameLow = new TGHorizontalFrame (this, 60,20, kFixedWidth ) ;
+    
+  fButtonSave = new TGTextButton ( fFrameLow, "Save", M_BUTTON_SAVE ) ; 
+  fButtonSave->Associate (this) ; 
+  fFrameLow->AddFrame ( fButtonSave, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ; 
+
+  fButtonPrint = new TGTextButton ( fFrameLow, "Print", M_BUTTON_PRINT ) ; 
+  fButtonPrint->Associate (this) ; 
+  fFrameLow->AddFrame ( fButtonPrint, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ; 
+
+  fButtonPrintAll = new TGTextButton ( fFrameLow, "PrintAll", M_BUTTON_PRINTALL ) ; 
+  fButtonPrintAll->Associate (this) ; 
+  fFrameLow->AddFrame ( fButtonPrintAll, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ; 
+
+  fButtonClose = new TGTextButton ( fFrameLow, "Close", M_BUTTON_CLOSE ) ; 
+  fButtonClose->Associate (this) ; 
+  fFrameLow->AddFrame ( fButtonClose, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ; 
+  AddFrame ( fFrameLow, new TGLayoutHints ( kLHintsBottom | kLHintsExpandX , 10, 10, 10, 10 ) ) ; 
+
+  //
+  //
+  //
+  BuildHistoList() ; 
+
+  MapSubwindows();
+  
+  Layout();
+  
+  SetWindowName("ADC Spectra");
+  SetIconName("ADC Spectra");
+  
+  MapWindow(); 
+}  
+  
+// ======================================================================
+// ======================================================================
+
+
+
+MGDisplayAdc::~MGDisplayAdc () 
+{ 
+  delete fButtonSave ; 
+  delete fButtonPrint ; 
+  delete fButtonPrintAll ; 
+  delete fButtonClose ; 
+ 
+  delete fButtonPrev; 
+  delete fButtonNext ; 
+  
+  delete fECanv ; 
+  delete fHistoList ; 
+  delete fFT1 ; 
+  delete fFT2 ; 
+  delete fFT3 ; 
+  delete fFrameLow ; 
+  delete fFrameTop ; 
+  
+}  
+
+// ======================================================================
+// ======================================================================
+
+void MGDisplayAdc::CloseWindow()
+{
+   // Got close message for this MainFrame. Calls parent CloseWindow()
+   // (which destroys the window) and terminate the application.
+   // The close message is generated by the window manager when its close
+   // window menu item is selected.
+
+  delete this ; 
+  //  TGTransientFrame::CloseWindow();
+  //  TGMainFrame::CloseWindow();
+  //   gROOT->GetApplication()->Terminate(0)  ; 
+}
+
+
+// ======================================================================
+// ======================================================================
+
+Bool_t MGDisplayAdc::BuildHistoList() 
+{ 
+  //   looks in the container of the AdcSpectra and reads in the 
+  //   Histogramms in there. 
+  //
+  //   In the class MHistosAdc are in fact two lists. One for the high and
+  //   one for the low gain. Here we will use only the high gain list!!!
+  //   With some special options (settings in the gui) we will also be able
+  //   to plot the low gain
+  
+  for ( Int_t i=0 ; i < fHists->GetHighEntries(); i++ ) { 
+ 
+    fHistoList->AddEntry(fHists->GetHighList()->At(i)->GetName(), i+1) ; 
+  } 
+  
+  fHistoList->MapSubwindows() ; 
+  fHistoList->Layout() ; 
+
+  return (kTRUE) ; 
+} 
+
+// ======================================================================
+// ======================================================================
+
+Bool_t MGDisplayAdc::ProcessMessage(Long_t msg, Long_t parm1, Long_t)
+{     
+  // Process events generated by the buttons in the frame.
+  
+  Int_t   buttons = 4, retval = 0 ; 
+  Char_t  wort[100] ;
+  Char_t  extens[5] ;
+  Char_t  command[110] ;
+ 
+  TGFileItem *item ;     // to process items in the file view container
+  void *np = NULL ;      // null pointer
+
+  switch (GET_MSG(msg)) 
+    {
+    case kC_COMMAND:
+      switch (GET_SUBMSG(msg)) 
+	{
+	case kCM_BUTTON:
+	  
+	  switch (parm1)
+	    {  
+
+	    case M_BUTTON_SAVE: 
+	      break ; 
+	      
+	    case M_BUTTON_CLOSE: 
+	      CloseWindow() ; 
+	      break ; 
+	      
+	    default:
+	      break ;
+	    } 
+
+	case kCM_MENU:
+	  switch (parm1) {
+	  }
+	  break ;
+	  
+	default:
+	  break ;
+	  
+	}
+
+    case kCM_LISTBOX:
+      switch  (GET_SUBMSG(msg)) 
+	{
+	case M_LIST_HISTO: 
+	  fCanv->cd() ; 
+	  
+	  fHists->GetHighList()->At( fHistoList->GetSelected()-1)->Draw() ; 
+
+	  fCanv->Modified() ; 
+	  fCanv->Update() ; 
+	  
+	  break; 
+	  
+	default:
+	  break ;
+	}
+
+    case kC_CONTAINER: 
+      switch (GET_SUBMSG(msg)) {
+	      
+      case kCT_ITEMDBLCLICK: 
+	
+	break; 
+	
+      default:
+	break ;
+      }
+      
+      
+      
+    default:
+      break;
+    }
+  return kTRUE;
+} 
Index: /branches/start/MagicSoft/MarsOctober/mocttest/MGDisplayAdc.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mocttest/MGDisplayAdc.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mocttest/MGDisplayAdc.h	(revision 4308)
@@ -0,0 +1,79 @@
+#ifndef MGDISPLAYADC_H
+#define MGDISPLAYADC_H
+
+#include <iostream.h>
+#include <TROOT.h> 
+#include <TApplication.h> 
+#include <TSystem.h> 
+#include <TGClient.h> 
+#include <TGButton.h>
+#include <TGMenu.h>
+#include <TGTab.h> 
+#include <TGListBox.h> 
+#include <TGPicture.h>
+#include <TRootEmbeddedCanvas.h>
+#include <TCanvas.h>
+#include <TGFSContainer.h>
+#include <TGMsgBox.h>
+
+#include <TVirtualX.h>
+#include <TGClient.h>   
+
+#include "MHistosAdc.h"
+
+class MHistosAdc;
+
+enum ComIdentDisplayAdc {
+  M_BUTTON_SAVE,
+  M_BUTTON_PRINT,
+  M_BUTTON_PRINTALL,
+  M_BUTTON_CLOSE , 
+
+  M_BUTTON_PREV, 
+  M_BUTTON_NEXT,
+
+  M_LIST_HISTO 
+  
+} ; 
+
+class MGDisplayAdc : public TGTransientFrame {
+ private:
+  
+  MHistosAdc *fHists;		// Pointer to Container with the histograms
+  
+  // Create a main frame with a number of different buttons.
+    
+  TGCompositeFrame  *fFrameTop ;   // top part of the main window
+  TGCompositeFrame  *fFrameLow ;   // low part of the main window
+  
+  TGVerticalFrame   *fFT1, *fFT2, *fFT3 ;
+
+  TGListBox         *fHistoList ; 
+  TGTextButton      *fButtonPrev, *fButtonNext ; 
+  
+  TRootEmbeddedCanvas  *fECanv ; 
+
+  TGTextButton   *fButtonSave, *fButtonPrint, *fButtonPrintAll, *fButtonClose ; 
+  
+  TCanvas            *fCanv ; 
+
+ public:
+  
+  MGDisplayAdc(MHistosAdc *fHists , 
+	       const TGWindow *p, const TGWindow *main, 
+  	       UInt_t w, UInt_t h, 
+	       UInt_t options = kMainFrame | kVerticalFrame ) ;
+
+  ~MGDisplayAdc(); 
+  
+  void  CloseWindow()  ; 
+  
+  Bool_t BuildHistoList() ; 
+
+  Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
+  
+} ; 
+
+#endif
+
+
Index: /branches/start/MagicSoft/MarsOctober/mocttest/MGOctMain.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mocttest/MGOctMain.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mocttest/MGOctMain.cc	(revision 4308)
@@ -0,0 +1,388 @@
+#include "MGOctMain.h"
+
+#define S_ISDIR(m) (((m)&(0170000)) == (0040000))  
+
+MGOctMain::MGOctMain(const TGWindow *p, UInt_t w, UInt_t h)
+  : TGMainFrame(p, w, h)
+{
+  //
+  //    Main window to controll the october test
+  //
+
+  //    set non-gui members to starting values 
+
+  sprintf ( fInputFile, "\n" ) ; 
+
+  //
+  //    First create the MenuBar.   
+  //
+
+  //     Layout objects for menue. 
+
+  fLayMenuBar = new TGLayoutHints ( kLHintsTop | kLHintsLeft | kLHintsExpandX, 2, 2, 2, 2 ) ; 
+  fLayMenuItem = new TGLayoutHints ( kLHintsTop | kLHintsLeft , 0, 4, 0, 0 ) ; 
+  
+  //  crate the menu bar
+
+  fFileMenu = new TGPopupMenu ( fClient->GetRoot() ) ; 
+  fFileMenu->AddEntry ("Exit", M_FILE_EXIT ) ; 
+  fFileMenu->Associate(this) ; 
+
+  //  the button messages are handled by main frame (this) 
+
+  fMenuBar = new TGMenuBar ( this, 1, 1, kHorizontalFrame ) ; 
+  fMenuBar->AddPopup("File", fFileMenu, fLayMenuItem ) ;   
+  AddFrame(fMenuBar, fLayMenuBar ) ; 
+  
+  //
+  //    Create the top window with a lot of buttons 
+  //
+
+  fFrameTop = new TGCompositeFrame (this, 300,100, kHorizontalFrame ) ; 
+  
+  fButEvtDisp = new TGTextButton(fFrameTop, "EventDisplay", M_BUTTON_EVTDISP );
+  fButEvtDisp->Associate(this) ;   
+  fFrameTop->AddFrame (fButEvtDisp, new TGLayoutHints(kLHintsTop | kLHintsLeft, 10, 10, 5, 5) );
+
+  fButPedADC = new TGTextButton(fFrameTop, "ADC Spectra of Pedestals", M_BUTTON_PEDADC );
+  fButPedADC->Associate(this) ;   
+  fFrameTop->AddFrame (fButPedADC, new TGLayoutHints(kLHintsTop | kLHintsLeft, 10, 10, 5, 5) );
+
+  fButCrADC = new TGTextButton(fFrameTop, "ADC Specta of Cosmics", M_BUTTON_CRADC );
+  fButCrADC->Associate(this) ;   
+  fFrameTop->AddFrame (fButCrADC, new TGLayoutHints(kLHintsTop | kLHintsLeft, 10, 10, 5, 5) );
+
+ 
+  AddFrame(fFrameTop, new TGLayoutHints (kLHintsExpandX ) ) ;   
+
+  //
+  //    Create the low window with a tabs in it
+  //
+
+  fFrameLow = new TGCompositeFrame (this, 300,100, kHorizontalFrame ) ; 
+  
+  fLayTab = new TGLayoutHints ( kLHintsTop | kLHintsLeft | kLHintsExpandX  , 5, 5, 5, 5 ) ;
+
+  //    create the first tab
+
+  fTab = new TGTab ( fFrameLow, 400, 400 ) ;   
+
+  TGCompositeFrame *tf = fTab->AddTab("Input File") ; 
+  
+  fTabF1 = new TGCompositeFrame (tf, 100, 100, kHorizontalFrame) ; 
+  tf->AddFrame(fTabF1, fLayTab ) ; 
+
+  
+  fTabF1a = new TGCompositeFrame (tf, 100, 100, kHorizontalFrame) ; 
+  tf->AddFrame(fTabF1a,  new TGLayoutHints ( kLHintsTop | kLHintsLeft | kLHintsExpandX, 5, 5, 5, 5 ) ) ; 
+
+  fTabF1b = new TGCompositeFrame (tf, 100, 100, kVerticalFrame) ; 
+  //  tf->AddFrame(fTabF1b,  new TGLayoutHints ( kLHintsTop | kLHintsLeft | kLHintsExpandX | kLHintsExpandY  , 5, 5, 5, 5 ) ) ; 
+  tf->AddFrame(fTabF1b,  new TGLayoutHints ( kLHintsExpandX | kLHintsExpandY  , 5, 5, 5, 5 ) ) ; 
+
+  
+  fDir = new TGListBox(fTabF1a, -1) ; 
+  fDir->Resize(350,20) ;
+  char temp[100] ; 
+  //  sprintf ( temp, "%s", START_DIRECTORY ) ; 
+  sprintf ( temp, "%s", gSystem->WorkingDirectory()  ) ; 
+  fDir->AddEntry(temp, 1) ; 
+  fTabF1a->AddFrame( fDir, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 5, 5, 5, 5 ) ) ; 
+
+
+  fPicCdup = fClient->GetPicture("tb_uplevel.xpm") ; 
+  fCdup = new TGPictureButton(fTabF1a, fPicCdup, M_PBUTTON_CDIR_UP ) ; 
+  fCdup->SetToolTipText("One Level up!") ; 
+  fCdup->Associate(this) ; 
+  fTabF1a->AddFrame (fCdup, new TGLayoutHints(kLHintsLeft | kLHintsTop, 5, 5, 5, 5) ) ; 
+
+  fPicList = fClient->GetPicture("tb_list.xpm") ; 
+  fListMode = new TGPictureButton(fTabF1a, fPicList, M_PBUTTON_LIST_MODE ) ; 
+  fListMode->SetToolTipText("List Mode") ; 
+  fListMode->Associate(this) ; 
+  fListMode->SetState(kButtonUp) ; 
+  fListMode->AllowStayDown(kTRUE) ; 
+  fTabF1a->AddFrame (fListMode, new TGLayoutHints(kLHintsLeft | kLHintsTop, 5, 5, 5, 5) ) ; 
+
+  fPicDetail = fClient->GetPicture("tb_details.xpm") ; 
+  fDetail = new TGPictureButton(fTabF1a, fPicDetail, M_PBUTTON_DETAIL_MODE ) ; 
+  fDetail->SetToolTipText("Details Mode") ; 
+  fDetail->Associate(this) ; 
+  fDetail->SetState(kButtonEngaged) ; 
+  fDetail->AllowStayDown(kTRUE) ; 
+  fTabF1a->AddFrame (fDetail, new TGLayoutHints(kLHintsLeft | kLHintsTop, 5, 5, 5, 5) ) ; 
+
+    
+  fFileView = new TGListView(fTabF1b, 540, 380 ) ; 
+  fFileCont = new TGFileContainer(fFileView->GetViewPort(), 100, 100,
+				  kVerticalFrame, fgWhitePixel) ; 
+
+  fFileCont->Associate(this) ; 
+  fFileView->GetViewPort()->SetBackgroundColor(fgWhitePixel) ; 
+  fFileView->SetContainer(fFileCont) ; 
+  fFileCont->SetFilter("*") ; 
+  //  fFileCont->ChangeDirectory(START_DIRECTORY) ; 
+  fFileCont->ChangeDirectory(gSystem->WorkingDirectory()) ; 
+  fFileView->SetViewMode(kLVDetails); 
+  fFileCont->Sort(kSortByName) ; 
+  
+  fTabF1b->AddFrame(fFileView, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 5, 5, 5, 5) ) ; 
+
+   
+  tf->AddFrame(fTabF1, fLayTab) ; 
+  fFrameLow->AddFrame ( fTab, new TGLayoutHints(kLHintsBottom | kLHintsExpandX | kLHintsExpandY, 5, 5, 5, 5) ); 
+
+  AddFrame(fFrameLow, new TGLayoutHints (kLHintsExpandX|kLHintsExpandY) ) ; 
+
+  //
+  //   Map the window, set up the layout, etc. 
+  //
+
+  MapSubwindows();
+  
+  Layout();
+  
+  SetWindowName("MARS Main Window");
+  SetIconName("MARS");
+  
+  MapWindow();
+
+} 
+
+
+// ======================================================================
+// ======================================================================
+
+MGOctMain::~MGOctMain()
+{
+  delete   fFrameTop, fFrameLow ; 
+
+} 
+
+
+// ======================================================================
+// ======================================================================
+
+void MGOctMain::CloseWindow()
+{
+   // Got close message for this MainFrame. Calls parent CloseWindow()
+   // (which destroys the window) and terminate the application.
+   // The close message is generated by the window manager when its close
+   // window menu item is selected.
+
+   TGMainFrame::CloseWindow();
+   gROOT->GetApplication()->Terminate(0)  ; 
+}
+
+
+// ======================================================================
+// ======================================================================
+
+Bool_t MGOctMain::InputFileSelected() 
+{
+  //   Checks if there is a selected input root file
+  
+  if ( strcmp ( fInputFile, "\n") == 0 )
+    { 
+      return ( kFALSE ) ; 
+    } 
+  
+  return (kTRUE) ; 
+} 
+
+
+// ======================================================================
+// ======================================================================
+
+Bool_t MGOctMain::ProcessMessage(Long_t msg, Long_t parm1, Long_t)
+{     
+  // Process events generated by the buttons in the frame.
+  
+  Int_t   buttons = 4, retval = 0 ; 
+  Char_t  wort[100] ;
+  Char_t  extens[5] ;
+  Char_t  command[110] ;
+ 
+  TGFileItem *item ;     // to process items in the file view container
+  void *np = NULL ;      // null pointer
+
+  switch (GET_MSG(msg)) 
+    {
+    case kC_COMMAND:
+      switch (GET_SUBMSG(msg)) 
+	{
+	case kCM_BUTTON:
+	  
+	  switch (parm1)
+	    {  
+
+	    case M_BUTTON_EVTDISP:
+	      
+	      if ( InputFileSelected() == kFALSE ) {              // it is not selected
+		
+		new TGMsgBox(fClient->GetRoot(), this,
+			     "ERROR!", 
+			     "No Input (root) File selected!", 
+			     kMBIconExclamation, buttons, &retval);
+		break ; 
+	      }
+	      //   just a warning that the EventDisplay  doesn't exist
+	      new TGMsgBox(fClient->GetRoot(), this,
+			   "WARNING!", 
+			   "EventDisplay not yet implemented! Gabi works on it!!", 
+			   kMBIconExclamation, buttons, &retval);
+	      
+	      break ; 
+	    
+	    case M_BUTTON_PEDADC:
+	      	
+	      if ( InputFileSelected() == kFALSE ) {              // it is not selected
+		
+		new TGMsgBox(fClient->GetRoot(), this, "ERROR!", 
+			     "No Input (root) File selected!", kMBIconExclamation, buttons, &retval);
+		break ; 
+	      }      
+	      
+	      fOctober.PedAdcSpectra(fInputFile) ; 
+
+	      break ; 
+		  
+
+	    case M_BUTTON_CRADC:
+	      
+	      if ( InputFileSelected() == kFALSE ) {              // it is not selected
+		
+		new TGMsgBox(fClient->GetRoot(), this, "ERROR!", 
+			     "No Input (root) File selected!", kMBIconExclamation, buttons, &retval);
+		break ; 
+	      }
+	      
+	      fOctober.CrAdcSpectra(fInputFile) ; 
+
+	      break ; 
+      
+	    case M_PBUTTON_CDIR_UP :
+
+	      //  goto the parent directory
+	      
+	      gSystem->ChangeDirectory("..") ; 
+	      fDir->RemoveEntry(1) ; 
+	      sprintf (wort, "%s", gSystem->WorkingDirectory() ) ; 
+	      fDir->AddEntry(wort,1) ; 
+	      fDir->MapSubwindows() ; 
+	      fDir->Layout() ; 
+	      fFileCont->ChangeDirectory( wort ) ; 
+	      fFileCont->DisplayDirectory() ; 
+	      
+	      break ; 
+	    
+	    case M_PBUTTON_LIST_MODE:
+	      fFileView->SetViewMode(kLVList) ; 
+	      fDetail->SetState(kButtonUp) ; 
+	      
+	      break ; 
+	      
+	    case M_PBUTTON_DETAIL_MODE:
+	      fFileView->SetViewMode(kLVDetails) ; 
+	      fListMode->SetState(kButtonUp) ; 
+	      
+	      break ;
+	      
+	    default:
+	      break ;
+	    } 
+
+	case kCM_MENU:
+	  switch (parm1) {
+	  case M_FILE_EXIT: 
+	    CloseWindow() ;
+	    break; 
+	    
+	  }
+	  break ;
+	  
+	default:
+	  break ;
+	  
+	}
+      
+    case kC_CONTAINER: 
+      switch (GET_SUBMSG(msg)) {
+	
+	//      case kCT_ITEMCLICK:
+	// 	printf ("itemclick\n"); 
+	//      break; 
+	
+      
+      case kCT_ITEMDBLCLICK: 
+	//
+	//  process the double click in the file view container
+	//
+	
+	if ( parm1 == kButton1) {
+	  if ( fFileCont->NumSelected() == 1 ) {   
+	    //
+	    //  one file selected
+	    //	  
+	    item = (TGFileItem *) fFileCont->GetNextSelected(&np) ; 
+	    
+	    if ( S_ISDIR(item->GetType()) )   // file is directory
+	      {  
+		//  goto directory 
+		
+		sprintf (wort, "%s", item->GetItemName()->GetString()) ;
+		fFileCont->ChangeDirectory ( wort ) ; 
+		gSystem->ChangeDirectory( wort ) ; 
+		
+		sprintf (wort, "%s", gSystem->WorkingDirectory() ) ; 
+		fDir->RemoveEntry(1) ; 
+		fDir->AddEntry( wort, 1 ) ; 
+		fDir->MapSubwindows() ; 
+		fDir->Layout() ; 
+	      }
+	    else                              // file is no directory, is a file 
+	      { 
+		sprintf (wort, "%s", item->GetItemName()->GetString() ) ; 
+	    
+		//    determine the file type by extensions
+		
+		for (Int_t i = 0 ; i<5; i++) 
+		  extens[i] = '\0' ; 
+		
+		for ( Int_t i=0; wort[i] != '\0'; i++) {
+		  if ( wort[i] == '.') {
+		    strncpy (extens, &wort[i+1], 4 ) ; 
+		    break ; 
+		  }
+		}
+		
+		if ( ! strcmp(extens, "ps") ) {              //     postscript file
+		  sprintf ( command, "gv %s/%s &", 
+			    gSystem->WorkingDirectory(), 
+			    wort ) ; 
+		  gSystem->Exec(command) ; 
+		  break ; 
+		}
+		else if  ( ! strcmp(extens, "root") ) {      //     root file
+		  sprintf ( fInputFile, "%s/%s" , gSystem->WorkingDirectory(), wort ) ;  
+
+		  printf (" %s \n", fInputFile ) ; 
+		  break ; 
+		}
+		
+	      } 
+	  }
+	}
+	break; 
+	
+      default:
+	break ;
+      }
+      
+      
+      
+    default:
+      break;
+    }
+  return kTRUE;
+} 
Index: /branches/start/MagicSoft/MarsOctober/mocttest/MGOctMain.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mocttest/MGOctMain.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mocttest/MGOctMain.h	(revision 4308)
@@ -0,0 +1,103 @@
+#ifndef MGOCTMAIN_H
+#define MGOCTMAIN_H
+
+#include <TROOT.h> 
+#include <TApplication.h> 
+#include <TSystem.h> 
+#include <TGClient.h> 
+#include <TGButton.h>
+#include <TGMenu.h>
+#include <TGTab.h> 
+#include <TGListBox.h> 
+#include <TGPicture.h>
+#include <TGFSContainer.h>
+#include <TGMsgBox.h>
+
+#include <TVirtualX.h>
+#include <TGClient.h>   
+
+/* #include <TGTextEntry.h> */
+/* #include <TGLabel.h> */
+/* #include <TRootEmbeddedCanvas.h> */
+/* #include <TNtuple.h> */
+/* #include <TFile.h> */
+/* #include <TCanvas.h> */
+
+#include "MOctTest.h" 
+
+enum CommandIdentifiers {
+  M_FILE_EXIT ,
+  M_FILE_ABOUT , 
+
+  M_BUTTON_EVTDISP , 
+  M_BUTTON_PEDADC, 
+  M_BUTTON_CRADC, 
+
+  M_PBUTTON_CDIR_UP, 
+  M_PBUTTON_LIST_MODE, 
+  M_PBUTTON_DETAIL_MODE 
+} ; 
+
+
+class MGOctMain : public TGMainFrame {
+ private:
+  
+  //
+  // Create a main frame with a number of different buttons.
+  //
+
+  //   some member not connected with Gui 
+  
+  Char_t       fInputFile[200] ; 
+  MOctTest     fOctober ; 
+
+  //  the things for the menu bar 
+    
+  TGMenuBar         *fMenuBar ; 
+  TGPopupMenu       *fFileMenu ;
+
+  //   divide the Window in two different parts
+  
+  TGCompositeFrame  *fFrameTop ;   // top part of the main window
+  TGCompositeFrame  *fFrameLow ;   // low part of the main window
+  TGTab             *fTab      ;   // different tabs in the low window
+  
+  //   the buttons in the Top Part
+  
+  TGTextButton      *fButEvtDisp ; 
+  TGTextButton      *fButPedADC, *fButCrADC  ; 
+  
+  //   the things in the file selector
+
+  TGCompositeFrame  *fTabF1 ;                       // first tab of low part 
+  TGCompositeFrame  *fTabF1a, *fTabF1b ;            // subpart of the file selector in low window
+  TGListBox         *fDir ; 
+  TGPictureButton   *fCdup, *fListMode, *fDetail ; 
+  TGFileContainer   *fFileCont ; 
+  TGListView        *fFileView ;
+
+  //     Layout hints for different uses 
+  
+  TGLayoutHints     *fLayMenuBar, *fLayMenuItem ; 
+  TGLayoutHints     *fLayTab ; 
+  
+  //     some icons and pictures often used
+  
+  const TGPicture   *fPicCdup, *fPicList, *fPicDetail ; 
+  
+ public: 
+  MGOctMain(const TGWindow *p, UInt_t w, UInt_t h) ;
+  
+  ~MGOctMain(); 
+  
+  void   CloseWindow()  ; 
+
+  Bool_t InputFileSelected() ; 
+  
+  Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
+
+} ; 
+
+#endif
+
+
Index: /branches/start/MagicSoft/MarsOctober/mocttest/MHistosAdc.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mocttest/MHistosAdc.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mocttest/MHistosAdc.cc	(revision 4308)
@@ -0,0 +1,130 @@
+///////////////////////////////////////////////////////////////////////
+//
+// MHistosAdc
+//
+// This class contains a list of all ADC spektra histograms
+//
+///////////////////////////////////////////////////////////////////////
+
+#include "MHistosAdc.h"
+
+#include <iostream.h>
+
+#include <TH1.h>
+#include <TFile.h>
+
+ClassImp(MHistosAdc)
+
+MHistosAdc::MHistosAdc ()
+{
+    //
+    //  default constructor
+    //  creates an a list of histograms for all pixels and both gain channels
+    //
+
+    fHistHigh = new TObjArray(577);
+    fHistLow  = new TObjArray(577);
+
+    //
+    //   set the name and title of this object
+    //
+
+    fName  = "MHistosAdc" ;
+    fTitle = "Container for ADC spectra histograms" ;
+
+    //
+    //   loop over all Pixels and create two histograms
+    //   one for the Low and one for the High gain
+    //   connect all the histogram with the container fHist
+    //
+
+    Char_t  tmp1[40];
+    Char_t  tmp2[40];
+    TH1F    *h1;
+
+    for ( Int_t i = 0 ; i < 577 ; i++)
+    {
+        sprintf ( tmp1, "high%d", i ) ;
+        sprintf ( tmp2, "high gain Pixel %d", i ) ;
+
+        h1 = new TH1F ( tmp1, tmp2, 256, 0., 255. ) ;
+
+        fHistHigh->Add( h1 ) ;
+
+        sprintf ( tmp1, "low %d", i ) ;
+        sprintf ( tmp2, "low gain Pixel %d", i ) ;
+
+        h1 = new TH1F ( tmp1, tmp2, 256, 0., 255. ) ;
+
+        fHistLow->Add( h1 ) ;
+
+    }
+}
+
+MHistosAdc::~MHistosAdc ()
+{
+  
+  //   default destructor 
+  //
+  delete fHistHigh ; 
+  delete fHistLow  ; 
+}
+
+void MHistosAdc::Print(Option_t *)
+{
+  for ( Int_t i = 0 ; i < 576 ; i++)
+    {
+      fHistHigh[i].Print() ;
+    }
+}
+
+void MHistosAdc::FillAdcHist ( Int_t iPix, UChar_t* data)
+{
+  //  cout << " MHistosAdc::FillAdcHist " << endl ; 
+
+  //
+  //   fill all slices (contained in data) in the Histogram
+  //   of iPix. If iPix > 10000 this is a low gain channel
+  
+  //
+  //   check which container list is needed
+  //   for high or for low gain
+  //
+  if ( iPix < 10000 )
+    {
+      //
+      //   loop over data
+      //
+      for (Int_t i=0; i< 15; i++ )
+	{
+	  ((TH1F*) (fHistHigh->At(iPix)))->Fill( (Float_t) data[i]) ;
+	}
+    }
+  else
+    {
+      //
+      //   loop over data
+      //
+      for (Int_t i=0; i< 15; i++ )
+        {
+	  ((TH1F*) (fHistLow->At(iPix)))->Fill( (Float_t) data[i]) ;
+        }
+    }
+}
+
+void MHistosAdc::SaveHist ( char *name )
+{
+    //
+    //   save all histogram in this class to a root file
+    //
+
+    TFile out( name, "recreate") ;
+
+    //
+    //  loop over all pixels and write the files out
+    //
+
+    fHistLow->Write() ;
+    fHistHigh->Write() ;
+}
+
Index: /branches/start/MagicSoft/MarsOctober/mocttest/MHistosAdc.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mocttest/MHistosAdc.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mocttest/MHistosAdc.h	(revision 4308)
@@ -0,0 +1,46 @@
+#ifndef MHISTOSADC_H
+#define MHISTOSADC_H
+
+#include "Magic.h"
+
+#include <TObjArray.h>
+
+#include "MParContainer.h"
+
+class MHistosAdc : public MParContainer
+{
+private:
+    TObjArray *fHistHigh;	// List of High gain Histograms
+    TObjArray *fHistLow;	// List of Low  gain Histograms
+
+public:
+     MHistosAdc();
+    ~MHistosAdc();
+
+    void FillAdcHist(Int_t iPix, UChar_t * data);
+    void SaveHist(char *name);
+
+    void Print(Option_t * t = NULL);
+
+
+    TObjArray* GetHighList() 
+      { 
+	return ( fHistHigh ) ; 
+      } 
+    
+    Int_t GetHighEntries() 
+      { 
+	return (fHistHigh->GetEntries() ) ;  
+      } 
+
+    Int_t GetLowEntries() 
+      { 
+	return (fHistLow->GetEntries() ) ;  
+      } 
+
+      
+    ClassDef(MHistosAdc, 1)	// list of Histograms with ADC spectra
+};
+
+#endif
+
Index: /branches/start/MagicSoft/MarsOctober/mocttest/MOctTest.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mocttest/MOctTest.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mocttest/MOctTest.cc	(revision 4308)
@@ -0,0 +1,214 @@
+#include <stdlib.h>
+
+
+#include "MOctTest.h" 
+
+
+MOctTest::MOctTest() 
+{
+  // default constructor  
+} 
+
+MOctTest::~MOctTest() 
+{
+  // default destructor  
+} 
+
+
+// ================================================================================
+// ================================================================================
+// ================================================================================
+// ================================================================================
+
+
+Bool_t MOctTest::PedAdcSpectra ( Char_t *inputfile ) 
+{
+  //
+  //  
+  
+  printf ("PedAdcSpectra:: Analyse the file %s \n", inputfile ) ; 
+  
+  //   create a loop for this specific job. 
+  
+  MEvtLoop loop ; 
+  
+  // open input file
+    
+  MRootFile *fileIn = new MRootFile( inputfile );
+
+  //   set up the ParameterList, 
+  //   connect it to the loop
+  
+  MParList *plist = new MParList;
+  loop.SetParList(plist);
+
+  //   set up the TaskList for this program
+  //   and connect it to the loop 
+  
+  MTaskList *tasks  = new MTaskList;
+  tasks->SetEventType("PedTree") ;
+
+  loop.SetTaskList(tasks);
+
+  //    now set up all parameter(data) containers and put them 
+  //    in the parameter list
+  
+  //    the buffer for the RawEvts, here for the Pedestals
+  
+  MObjBuffer *pedbuf = new MObjBuffer(new MRawEvt("PedTree"));  /* this buffer contains 
+								 *  only one entry
+								 */
+  pedbuf->SetAsInput(fileIn);
+  plist->AddToList(pedbuf);
+  
+  //  now it is neccessary to define the input stream, that means
+  //  we set the input only to PedTree
+
+  MInputStreamID  *inputStream = new MInputStreamID()  ;
+  inputStream->SetEvtType("PedTree") ; 
+  plist->AddToList(inputStream);
+  
+  //
+  //     the data container for the histograms
+  
+  MHistosAdc *his = new MHistosAdc;
+  
+  plist->AddToList(his);
+  //  his->SetAsOutput();
+  // This tells the writer that this is an Output Container, which should
+  // be written to a file ( not working yet)
+  
+  
+  //   set up the tasks and add them to the list
+  
+  MParRead *readin = new MParRead;
+  tasks->AddToList(readin, "PedTree");
+
+  MAdcSpect *fillAdc = new MAdcSpect ("PedTree" ) ;
+  tasks->AddToList(fillAdc, "PedTree");
+
+  MShowSpect *showAdc = new MShowSpect () ;
+  tasks->AddToList(showAdc, "PedTree");
+
+  //    MParWrite *write = new MParWrite;
+  //    tasks->AddToList(write);
+
+  cout << endl;
+  
+  //
+  //  Print the structure of the parameter list plist
+  //
+  tasks->Print();
+
+  cout << endl;
+  
+  //////////////////////////////////////////////////////////////
+  //
+  //   call the event loop for 5000 Events
+  //
+  
+  loop.Eventloop (50);
+  
+  cout << endl << "THE END." << endl ;
+  
+  
+
+  return ( kTRUE ) ; 
+} 
+
+// ================================================================================
+// ================================================================================
+// ================================================================================
+// ================================================================================
+
+
+Bool_t MOctTest::CrAdcSpectra ( Char_t *inputfile ) 
+{
+  //
+  //  
+
+  printf ("MOctTest::CrAdcSpectra -- Analyse the file %s \n", inputfile ) ; 
+  //   create a loop for this specific job. 
+  
+  MEvtLoop loop ; 
+  
+  // open input file
+    
+  MRootFile *fileIn = new MRootFile( inputfile );
+
+  //   set up the ParameterList, 
+  //   connect it to the loop
+  
+  MParList *plist = new MParList;
+  loop.SetParList(plist);
+
+  //   set up the TaskList for this program
+  //   and connect it to the loop 
+  
+  MTaskList *tasks  = new MTaskList;
+  loop.SetTaskList(tasks);
+
+  //    now set up all parameter(data) containers and put them 
+  //    in the parameter list
+  
+  //    the buffer for the RawEvts, here for the Pedestals
+  
+  MObjBuffer *pedbuf = new MObjBuffer(new MRawEvt("EvtTree"));  /* this buffer contains 
+								 *  only one entry
+								 */
+  pedbuf->SetAsInput(fileIn);
+  plist->AddToList(pedbuf);
+    
+  //  now it is neccessary to define the input stream, that means
+  //  we set the input only to EvtTree
+
+  MInputStreamID  *inputStream = new MInputStreamID()  ;
+  inputStream->SetEvtType("EvtTree") ; 
+  plist->AddToList(inputStream);
+
+  //     the data container for the histograms
+  
+  MHistosAdc *his = new MHistosAdc;
+  
+  plist->AddToList(his);
+  //  his->SetAsOutput();
+  // This tells the writer that this is an Output Container, which should
+  // be written to a file ( not working yet)
+  
+  
+  //   set up the tasks and add them to the list
+  
+  MParRead *readin = new MParRead;
+  tasks->AddToList(readin, "EvtTree");
+
+  MAdcSpect *fillAdc = new MAdcSpect ("EvtTree" ) ;
+  tasks->AddToList(fillAdc, "EvtTree");
+
+  MShowSpect *showAdc = new MShowSpect () ;
+  tasks->AddToList(showAdc, "PedTree");
+
+  //    MParWrite *write = new MParWrite;
+  //    tasks->AddToList(write);
+
+  cout << endl;
+  
+  //
+  //  Print the structure of the parameter list plist
+  //
+  tasks->Print();
+
+  cout << endl;
+  
+  //////////////////////////////////////////////////////////////
+  //
+  //   call the event loop for 5000 Events
+  //
+  
+  loop.Eventloop (5000);
+  
+  cout << endl << "THE END." << endl ;
+  
+  
+
+  return ( kTRUE ) ; 
+} 
Index: /branches/start/MagicSoft/MarsOctober/mocttest/MOctTest.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mocttest/MOctTest.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mocttest/MOctTest.h	(revision 4308)
@@ -0,0 +1,47 @@
+#ifndef MOCTTEST_H
+#define MOCTTEST_H
+#include "Magic.h"
+
+#include <iostream.h>
+
+#include <TH1.h>
+#include <TFile.h>
+#include <TTree.h>
+#include <TObjArray.h>
+#include <TStopwatch.h>
+#include <TObject.h>
+
+#include "MRawEvt.h"
+#include "MParList.h"
+#include "MParRead.h"
+#include "MParWrite.h"
+#include "MAdcSpect.h"
+#include "MShowSpect.h"
+#include "MTaskList.h"
+#include "MHistosAdc.h"
+#include "MObjBuffer.h"
+#include "MFile.h"
+#include "MEvtLoop.h"
+#include "MInputStreamID.h"
+
+class MOctTest { 
+
+ private:
+  
+ public:
+  
+  MOctTest() ; 
+  
+  ~MOctTest() ; 
+  
+  Bool_t PedAdcSpectra( Char_t *inputFile ) ; 
+  Bool_t CrAdcSpectra ( Char_t *inputFile ) ; 
+  
+  
+} ; 
+
+#endif 
+
+
+
+
Index: /branches/start/MagicSoft/MarsOctober/mocttest/MShowSpect.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mocttest/MShowSpect.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mocttest/MShowSpect.cc	(revision 4308)
@@ -0,0 +1,69 @@
+#include "MShowSpect.h"
+
+#include <stdlib.h>
+
+#include <TROOT.h> 
+#include <TApplication.h> 
+#include <TSystem.h> 
+#include <TGClient.h> 
+#include <TGFileDialog.h> 
+#include <TVirtualX.h>
+
+#include "MRawEvt.h"
+#include "MParList.h"
+#include "MHistosAdc.h"
+
+
+////////////////////////////////////////////////////////////////////////
+//
+//  MGShowSpect.h
+//
+//  A Gui Task to show the raw ADC values in the histograms
+//
+
+ClassImp(MShowSpect)
+
+MShowSpect::MShowSpect( ) 
+{ 
+  // default constructor 
+} 
+
+
+Bool_t MShowSpect::PreProcess(MParList *pList)
+{
+  //
+  //   Do the preprocessing for MShowSpect
+  // 
+  //   Connects Histogramms in the MHistosAdc container as the input
+  //
+
+  fHists = (MHistosAdc*) pList->FindObject("MHistosAdc");
+  
+  if (!fHists)
+    {
+      cout << "ERROR: MShowSpect::PreProc(): MHistosAdc not found!" << endl;
+      exit(1);
+    }
+  
+  return (kTRUE) ; 
+} 
+
+
+Bool_t MShowSpect::PostProcess()
+{
+  //   just start the gui for displaying the adc spectra
+
+  new MGDisplayAdc(fHists, gClient->GetRoot(), gClient->GetRoot(), 600, 600);
+
+  return (kTRUE) ; 
+} 
+
+
+
+
+
+
+
+
+
+
Index: /branches/start/MagicSoft/MarsOctober/mocttest/MShowSpect.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mocttest/MShowSpect.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mocttest/MShowSpect.h	(revision 4308)
@@ -0,0 +1,29 @@
+#ifndef MSHOWSPECT_H
+#define MSHOWSPECT_H
+
+#include "Magic.h"
+
+#include "MTask.h"
+#include "MObjBuffer.h"
+#include "MGDisplayAdc.h"
+
+class MGDisplayAdc ; 
+
+class MHistosAdc;
+class MParList ;
+
+class MShowSpect : public MTask 
+{
+private:
+  MHistosAdc *fHists;		// Pointer to Container with the histograms
+  
+ public:
+  MShowSpect();
+  
+  Bool_t PreProcess(MParList * pList);
+  Bool_t PostProcess();
+  
+  ClassDef(MShowSpect, 1)	// Fill the raw ADC in the histograms
+};
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mocttest/Makefile
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mocttest/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mocttest/Makefile	(revision 4308)
@@ -0,0 +1,130 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+# @maintitle
+
+# @code
+
+#
+#  please change all system depend values in the 
+#  config.mk.${OSTYPE} file 
+#
+#
+INCLUDEMK = ../Makefile.conf.${OSTYPE}
+include ${INCLUDEMK}
+
+# @endcode 
+
+# @code 
+
+LIB   = libmocttest.a
+
+#
+#  connect the include files defined in the config.mk file
+#
+INCLUDES = -I./ -I../ -I../mbase/ -I../mrootformat/
+
+#
+#  ----->>>   root libraries
+#
+
+ROOTLIBS   =  `root-config --libs`
+ROOTGLIBS  =  `root-config --glibs`
+ROOTCFLAGS =  `root-config --cflags`
+
+#
+#  compiler flags
+#
+
+CXXFLAGS  = $(ROOTCFLAGS) $(INCLUDES) $(OPTIM) $(DEBUG)
+CFLAGS    = $(CXXFLAGS)
+FFLAGS    = $(CXXFLAGS)
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cc .cxx .h .hxx .o 
+
+
+SRCFILES = MGOctMain.cc \
+	   MOctTest.cc \
+	   MHistosAdc.cc \
+	   MAdcSpect.cc \
+	   MShowSpect.cc \
+	   MGDisplayAdc.cc 
+
+SRCS    = $(SRCFILES)
+HEADERS = $(SRCFILES:.cc=.h)
+OBJS    = $(SRCFILES:.cc=.o) 
+
+############################################################
+
+all: $(LIB)
+
+depend:
+	@makedepend $(SRCS) $(INCLUDES) $(ROOTCFLAGS) \
+        -fMakefile.depend 2> kk.kk ; cat kk.kk
+
+$(LIB): $(OBJS) OcttestCint.o
+	@echo "Building Library $(LIB) ... "
+	@ar -r $(LIB) *.o
+
+OcttestCint.cc: $(HEADERS) 
+	@echo 
+	@echo "Generating dictionary OcttestCint.cc ..."
+
+	@$(ROOTSYS)/bin/rootcint -f OcttestCint.cc \
+	-c $(INCLUDES) $(HEADERS) BaseLinkDef.h
+
+.cxx.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.cc.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo "Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+#
+# The cleaning facility
+#
+
+rmlib:	
+	@echo "Removing libraries..."
+	@rm -f lib*.a
+
+rmcint:	
+	@echo "Removing cint-stuff..."
+	@rm -f OcttestCint.*
+
+rmobjs:	
+	@echo "Removing object files..."
+	@rm -f *.o
+
+rmbin:	
+	@echo "Removing binary files..."
+	@rm -f core
+
+
+clean:	rmlib rmcint rmobjs rmbin
+
+mrproper:	clean
+	@echo "Removing *~ kk.kk html/..."
+	@rm -f *~ kk.kk
+
+cflags: 
+	@echo $(INCLUDES) $(CXXFLAGS)
+
+# @endcode
+
+
+
+
Index: /branches/start/MagicSoft/MarsOctober/mrootformat/BaseLinkDef.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mrootformat/BaseLinkDef.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mrootformat/BaseLinkDef.h	(revision 4308)
@@ -0,0 +1,10 @@
+#ifdef __CINT__
+
+#pragma link off all classes;
+#pragma link off all functions;
+
+#pragma link C++ class MRawEvt;
+#pragma link C++ class MRawPixel;
+
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mrootformat/MRawEvt.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mrootformat/MRawEvt.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mrootformat/MRawEvt.cc	(revision 4308)
@@ -0,0 +1,308 @@
+#include "MRawEvt.h"
+
+#include <iostream.h>
+#include <stdlib.h>
+
+#include "TString.h"
+#include "TRandom.h"
+
+#include "MRawPixel.h"
+
+//==========
+// MRawEvt 
+//    
+// One Event is a sample of FADC measurements of different Pixels 
+// (Photomultipliers) from the Camera of MAGIC. So all data (FADC) of the 
+// interesting pixels are the modules of an event. To describe pixels the 
+// class MRawPixel is used.  To define a single events
+// some other data members are needed (Time of the events, kind of event..).
+//
+// To describe one event on the level of FADC values the Class MRawEvt is
+// created. It has the following data members: 
+//
+// ----------
+//
+// UInt_t    EvtNo    
+//
+// This it the number of the Event in one 
+// data run. The first event in this run get
+// the number zero. The next one is one bigger.
+//
+// Assuming that one run takes 1 hour and a
+// triggerrate of 1kHz the number must be able
+// to reach 3.6e6 Events. To reach this number
+// you need at least 22 bits. This is the reason
+// why we use an integer (of root type UInt_t)
+// with a range to 4.2e9. 
+//
+// ----------
+//
+// ULong_t   fTimeStamp
+//   
+// Time of the event. 
+// The start point of the time determination can be
+// the millenium. From that start point the time is
+// measured in 200ns-count. One day for example
+// contains 432.e9 counts. An unsigned Long is able to 
+// contain 1.8e19 200ns-counts. This corresponds to 41.e6
+// days. This should be more than the livetime of MAGIC.
+//
+// ----------
+//
+// UChar_t   EvtStatus 
+//
+// Status of Event. 
+// This is a Byte (8 bit) to indicated the status of 
+// the event (Pedestal, Calibration, etc). 
+//
+// ----------
+//
+// UShort_t  Trig1st
+//
+// Number of first level trigger
+// This member counts the number of First Level Trigger
+// between the last and this event. May be that due to 
+// dead time of the DAQ this number is different from 1.
+// If the DAQ is fast enough, this value should be 1. 
+// This may be usefull in GammaRayBursts and if we 
+// apply a data reduction in the DAQ-chain, which selects
+// only good events. 
+//
+// ----------
+//
+// UShort_t  MultPixel
+//
+// Multiplicity of Pixels
+// Each event consists of a specific number of 
+// pixels. This is the number of pixels in one event. 
+// The array of ClonesPixels (taClonesArray) is of this
+// size. 
+//
+// ----------
+//
+// TClonesArray  *Pixels
+//
+// Array of Pixels 
+// The Clones array is a list of the Pixels used in one
+// event with the information about the Pixels. 
+//
+//
+
+//
+
+ClassImp(MRawEvt)
+
+MRawEvt::MRawEvt(const char *name, const char *title) : MParContainer(name, title)
+{
+    //
+    //   Implementation of the default constructor
+    //
+    //   set all member to zero, init the pointer to ClonesArray,
+
+    EvtNo       = 0 ;
+    fTimeStamp  = 0 ;
+    EvtStatus   = 0 ;
+    Trig1st     = 0 ;
+    MultPixel   = 0 ;
+
+    //
+    //   Then we have to initialize the ClonesArray list for the Pixels.
+    //   This is neccessary once!
+    //
+    //   initialize the list to this global pointer
+
+    Pixels = new TClonesArray ("MRawPixel", 2*kCAMERA_PIXELS ) ;
+
+    //  cout << " default constructor " << endl ;
+}
+
+
+MRawEvt::~MRawEvt()
+{
+    //
+    //   Implementation of the default destructor
+    //
+    delete Pixels ;
+    //  cout << " default destructor " << endl ;
+}
+
+void MRawEvt::GetFadcNoise ( UChar_t asF[] )
+{
+    static TRandom Gen ;
+    static Float_t z1, z2 ;
+    for (Int_t i=0; i<kFADC_SLICES; i++ )
+    {
+        Gen.Rannor(z1, z2) ;
+        asF[i] = 10 + (UChar_t)(z1*4) ;
+        // if (asF[i] < 0 ) asF[i] = 0 ;
+    }
+}
+
+void MRawEvt::Clear(Option_t *t)
+{
+    //
+    //   Implementation of the Clear function
+    //
+    //   Resets all members to zero, clear the list of Pixels
+    //
+    EvtNo      = 0 ;
+    fTimeStamp = 0 ;
+    EvtStatus  = 0 ;
+    Trig1st    = 0 ;
+    MultPixel  = 0 ;
+
+    Pixels->Clear() ;
+}
+
+void MRawEvt::Print(Option_t *t)
+{
+    //
+    //  This member function prints all Data of one Event on screen.
+    //
+
+    // Prints out the data of one Pixel
+    cout << endl << "EventNumber      " << EvtNo          ;
+    cout << endl << "Event Time Stamp " << fTimeStamp      ;
+    cout << endl << "Event Status     " << (int) EvtStatus      ;
+    cout << endl << "Trigger 1. Level " << Trig1st        ;
+    cout << endl << "Number of Pixels " << MultPixel      ;
+
+    for (Int_t i=0 ; i<MultPixel; i++ )
+    {
+        ((MRawPixel *)Pixels->At(i))->Print() ;
+    }
+}
+
+Int_t MRawEvt::GetPixelId(Int_t iList)
+{
+    //
+    //  returns the pixelId of the iList.th Pixels in the pixels list
+    //
+
+    if (iList < MultPixel)
+    {
+        return (Int_t )  ((MRawPixel *)Pixels->At(iList))->GetPixelId() ;
+    }
+    else
+    {
+        cout << "ERROR: MRawEvt::GetPixelId:  iList is bigger than MultPixel"
+            << endl ;
+        exit(1);
+    }
+    return 0;
+}
+
+UChar_t* MRawEvt::GetPixelData(Int_t iList)
+{
+    //
+    //  returns the pointer to the data of the iList.th pixel in
+    //  the pixel list.
+    //
+
+    if ( iList < MultPixel )
+    {
+        return (UChar_t*)  ((MRawPixel *)Pixels->At(iList))->GetPixelData() ;
+    }
+    else
+    {
+        cout << "ERROR: MRawEvt::GetPixelId:  iList is bigger than MultPixel"
+            << endl ;
+        exit(1) ;
+    }
+    return 0;
+}
+
+
+void MRawEvt::FillRandom ( UInt_t uiN, ULong_t ulT,  UShort_t usMuPi )
+{
+    //
+    //  This is neccessary to fill the MRawEvt Class with randomized FADC
+    //  values. The EventNumber, EventTime and the Number of Pixels are given
+    //  as parameters.
+    //
+
+    EvtNo      = uiN ;
+    fTimeStamp  = ulT ;
+
+    UChar_t   ucA[kFADC_SLICES] ;
+
+    for (UShort_t i = 0 ; i< usMuPi; i++ )
+    {
+        GetFadcNoise ( ucA ) ;
+
+        TClonesArray &caP = *Pixels ;
+        new ( caP[MultPixel++] ) MRawPixel((MultPixel), 0, ucA) ;
+    }
+}
+
+void MRawEvt::FillHeader ( UInt_t uiN, ULong_t ulT, UChar_t ucSta )
+{
+   
+  EvtNo      = uiN;
+  fTimeStamp = ulT;
+  
+  EvtStatus  = ucSta;
+  Trig1st    = 0;
+  MultPixel  = 0;
+
+  Pixels->Clear();
+}
+
+void MRawEvt::FillPixel ( UShort_t uiPix, Float_t *array )
+{
+  //
+  //  This is to fill the data of one pixel to the MRawEvt Class. 
+  //  The parameters are the pixelnumber and the FADC_SLICES values of ADCs
+  // 
+
+  UChar_t   ucA[kFADC_SLICES] ;
+
+  for (UShort_t i = 0 ; i< kFADC_SLICES ; i++ )
+  {
+    ucA[i] = (UShort_t) array[i] ; 
+  } 
+  
+  TClonesArray &caP = *Pixels ;
+  new ( caP[MultPixel++] ) MRawPixel((uiPix), 0, ucA) ; 
+}
+
+void MRawEvt::FillMontCarl ( UInt_t uiN, ULong_t ulT,  Float_t *array )
+{
+  //
+  //  This is neccessary to fill the MRawEvt Class with randomized FADC
+  //  values. The EventNumber, EventTime and the Number of Pixels are given 
+  //  as parameters. 
+  // 
+
+  EvtNo      = uiN ; 
+  fTimeStamp  = ulT ; 
+
+  MultPixel = 0 ; 
+
+  UChar_t   ucA[kFADC_SLICES] ;
+
+  for (UShort_t i = 0 ; i< kCAMERA_PIXELS; i++ )
+  {
+      if ( array[i] > 0. )
+      {
+          for ( Int_t ii = 0 ; ii < kFADC_SLICES ; ii++ )
+          {
+              ucA[ii] = 0 ;
+          }
+          ucA[5] = (UShort_t) (array[i]) ;
+
+          TClonesArray &caP = *Pixels ;
+          caP[MultPixel++] = new MRawPixel(i, 0, ucA);
+      }
+  }
+}
+
+UShort_t MRawEvt::GetMultPixel()
+{
+  //
+  //  returns the pixel multiplicity of the Event
+  //
+  return MultPixel;
+}
+
+
Index: /branches/start/MagicSoft/MarsOctober/mrootformat/MRawEvt.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mrootformat/MRawEvt.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mrootformat/MRawEvt.h	(revision 4308)
@@ -0,0 +1,61 @@
+#ifndef MRAWEVT_H
+#define MRAWEVT_H
+
+#include "Magic.h"
+
+#include "MParContainer.h"
+
+#include <TClonesArray.h>
+
+class MRawEvt : public MParContainer
+{
+
+private:
+    UInt_t EvtNo;		// Number of Event
+    ULong_t fTimeStamp;		// Time of the Event
+    UChar_t EvtStatus;		// Status of this event (DAQ, Pedestal, ..) 
+    UShort_t Trig1st;		// Number of 1st level tiggers between 2 events
+    UShort_t MultPixel;		// Multiplicity of the Pixels in this event   
+
+    TClonesArray *Pixels;	// list of the events
+
+public:
+
+    MRawEvt(const char *name=NULL, const char *title=NULL);
+    ~MRawEvt();
+
+    MParContainer *New()
+    {
+	return new MRawEvt;
+    }
+
+    void Clear(Option_t *t = NULL);
+    void Print(Option_t *t = NULL);
+
+    void FillRandom(UInt_t, ULong_t, UShort_t);
+    void FillHeader(UInt_t, ULong_t, UChar_t = 0);
+    void FillPixel(UShort_t, Float_t*);
+    void FillMontCarl(UInt_t, ULong_t, Float_t*);
+
+    UShort_t GetMultPixel();
+    Int_t GetPixelId(Int_t iList);
+    UChar_t *GetPixelData(Int_t iList);
+    void GetFadcNoise(UChar_t asF[]);
+
+    TClonesArray *&GetPixelList()
+    {
+	//
+	//   returns a Pointer to the pixel list
+	//
+	return Pixels;
+    }
+
+    ULong_t GetTimeStamp()
+    {
+	return fTimeStamp;
+    }
+
+    ClassDef(MRawEvt, 1)
+};				// end of class definition of MRawEvt
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mrootformat/MRawPixel.cc
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mrootformat/MRawPixel.cc	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mrootformat/MRawPixel.cc	(revision 4308)
@@ -0,0 +1,160 @@
+#include "MRawPixel.h"
+
+#include <iostream.h>
+
+#include "TClonesArray.h"
+#include "TString.h"
+#include "TRandom.h"
+
+//==========
+// MRawPixel 
+//    
+// One Event in the Camera of MAGIC consists of measurements of different
+// Photomultiplier. The measurements are taken with FADCs. So the raw 
+// informations of one pixel are the ADC values of the FADCs. MAGIC will
+// measure the amplitude of one Photomulitplier in different branches 
+// - one high and one low gain branch. The first is for small signals, the 
+// other for big signals. With this method it is possible to increase the 
+// dynamic range.  
+//
+// The Class MRawPixel is used to manage this raw information. 
+//
+// The data members are described in detail here: 
+//
+// ---------
+//
+// UShort_t     PixelId     ;   
+//
+// This is to identify the Pixel.
+// The Camera consists of CAMERA_PIXELS Pixels. Each one has a specific Id.
+// The center of the camera is zero and a spiral numbering is chosen.
+//
+// To reduce the amount of data, we store the information of the 
+// low-gain-branch of the Fadc´s only if there is a signal in. Then the 
+// PixelId is:
+//                   PixelId = 10000 + PixelId   . 
+//
+// For the high gain Fadc values the rule is:
+//                   PixelId = PixelId . 
+//
+//
+// ---------
+//
+// UChar_t      PixelStatus ;   
+//
+// The PixelStatus may contain information if the Pixel has triggered 
+// this event. Also the kind of gain-branch (high or low) may be indicated 
+// by one bit of the PixelStatus. etc
+//
+// ---------
+//
+// UChar_t      Fadc[ kFADC_SLICES ]  ; 
+//
+// The values of kFADC_SLICES fadc-slices. This is the information of the 
+// measured ADC values for one branch (high gain or low gain). The typ of 
+// branch is indicated in the usPixelNumber and in the PixelStatus.
+
+ClassImp(MRawPixel) 
+
+MRawPixel::MRawPixel()
+{
+  //
+  //  The default constructor sets all members to zero. 
+  //
+    
+    PixelId     = 0 ; 
+    PixelStatus = 0 ; 
+    
+    for (Int_t i = 0; i<kFADC_SLICES; i++) 
+      Fadc[i]   = 0 ; 
+}
+
+
+MRawPixel::MRawPixel(UShort_t PId)
+{
+  //
+  //  constructor II  overloaded
+  //
+  //  Parameter is the PixelId. All other data member are set to zero
+  
+  PixelId     = PId ; 
+  PixelStatus = 0 ; 
+  
+  for (Int_t i = 0; i<kFADC_SLICES; i++) 
+    Fadc[i]   = 0 ; 
+}
+
+
+MRawPixel::MRawPixel(UShort_t usPId, UChar_t ucSt, UChar_t ucF[])
+{
+  //
+  // constructor III overloaded 
+  //
+  // parameters are PixelId, Status and an array with Fadc numbers.
+  
+  PixelId     = usPId ; 
+  PixelStatus = ucSt  ; 
+  
+  for (Int_t i = 0; i<kFADC_SLICES; i++) 
+    Fadc[i]   = ucF[i] ; 
+}
+
+MRawPixel::~MRawPixel()
+{
+  //
+  //  default destructor
+  //
+}
+
+void MRawPixel::Clear(Option_t *t)
+{
+  //
+  //  Sets the data member back to zero
+  //
+  PixelId     = 0 ; 
+  PixelStatus = 0 ; 
+  
+  for (Int_t i = 0; i<kFADC_SLICES; i++) 
+    Fadc[i]   = 0 ; 
+} 
+
+
+void MRawPixel::Print(Option_t *t) 
+{
+  //
+  //  This member function prints all Data of one Pixel on screen. 
+  //
+
+  cout << endl << "PixId " << PixelId;
+  cout << " Stat " << (Int_t) PixelStatus << " --> ";
+
+  //  cout << "memory " << (UChar_t*)Fadc ; 
+  for (Int_t i=0 ; i<kFADC_SLICES ; i++ ) {
+    cout<<" / " << (int) Fadc[i] ; 
+  } 
+}
+  
+UShort_t MRawPixel::GetPixelId()
+{
+  //
+  // returns back the PixelId of the Pixel
+  //
+  return PixelId;
+}
+
+UChar_t*  MRawPixel::GetPixelData()
+{
+  //
+  // returns back the pointer to the pixel data array
+  //
+  return (UChar_t *) Fadc;
+}
+
+UChar_t MRawPixel::GetFadcSlice( Int_t iSli )
+{
+  //
+  // returns back the fadc content of the slice iSli 
+  //
+  return ( Fadc[iSli] ) ; 
+}
+
Index: /branches/start/MagicSoft/MarsOctober/mrootformat/MRawPixel.h
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mrootformat/MRawPixel.h	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mrootformat/MRawPixel.h	(revision 4308)
@@ -0,0 +1,32 @@
+#ifndef MRAWPIXEL_H
+#define MRAWPIXEL_H
+
+#include "Magic.h"
+
+#include "TObject.h"
+
+class MRawPixel : public TObject
+{
+private:
+    UShort_t PixelId;		//  Identification of PixelNumber and gain branch
+    UChar_t PixelStatus;	//  The Status of the pixel
+    UChar_t Fadc[kFADC_SLICES];	// The values of fadc-slices.
+
+public:
+     MRawPixel();
+     MRawPixel(UShort_t);
+     MRawPixel(UShort_t, UChar_t, UChar_t *);
+
+    ~MRawPixel();
+
+    void Clear(Option_t * t = NULL);
+    void Print(Option_t * t = NULL);
+
+    UShort_t GetPixelId();
+    UChar_t *GetPixelData();
+    UChar_t GetFadcSlice(Int_t);
+
+    ClassDef(MRawPixel, 1)
+};				// end of class definition of MRawPixel 
+
+#endif
Index: /branches/start/MagicSoft/MarsOctober/mrootformat/Makefile
===================================================================
--- /branches/start/MagicSoft/MarsOctober/mrootformat/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/MarsOctober/mrootformat/Makefile	(revision 4308)
@@ -0,0 +1,124 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+# @maintitle 
+
+# @code
+
+#
+#  please change all system depend values in the 
+#  config.mk.${OSTYPE} file 
+#
+#
+INCLUDEMK = ../Makefile.conf.${OSTYPE}
+include ${INCLUDEMK}
+
+# @endcode 
+
+# @code 
+
+LIB   = libmrootformat.a
+
+#
+#  connect the include files defined in the config.mk file
+#
+INCLUDES = -I./ \
+	   -I../mbase/
+
+#
+#  ----->>>   root libraries
+#
+
+ROOTLIBS   =  `root-config --libs`
+ROOTGLIBS  =  `root-config --glibs`
+ROOTCFLAGS =  `root-config --cflags`
+
+#
+#  compiler flags
+#
+
+CXXFLAGS  = $(ROOTCFLAGS) $(INCLUDES) $(OPTIM) $(DEBUG)
+CFLAGS    = $(CXXFLAGS)
+FFLAGS    = $(CXXFLAGS)
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cc .cxx .h .hxx .o 
+
+
+SRCFILES = MRawPixel.cc \
+	   MRawEvt.cc
+
+SRCS    = $(SRCFILES)
+HEADERS = $(SRCFILES:.cc=.h)
+OBJS    = $(SRCFILES:.cc=.o) 
+
+############################################################
+
+all: $(LIB)
+
+depend:
+	@makedepend $(SRCS) $(INCLUDES) $(ROOTCFLAGS) \
+        -fMakefile.depend 2> kk.kk ; cat kk.kk
+
+$(LIB): $(OBJS) RootformatCint.o
+	@echo "Building Library $(LIB) ... "
+	@ar -r $(LIB) *.o
+
+RootformatCint.cc: $(HEADERS) 
+	@echo 
+	@echo "Generating dictionary RootformatCint.cc ..."
+
+	@$(ROOTSYS)/bin/rootcint -f RootformatCint.cc \
+	-c $(INCLUDES) $(HEADERS) BaseLinkDef.h
+
+.cxx.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.cc.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo "Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+#
+# The cleaning facility
+#
+
+rmlib:	
+	@echo "Removing libraries..."
+	@rm -f lib*.a
+
+rmcint:	
+	@echo "Removing cint-stuff..."
+	@rm -f RootformatCint.*
+
+rmobjs:	
+	@echo "Removing object files..."
+	@rm -f *.o
+
+rmbin:	
+	@echo "Removing binary files..."
+	@rm -f core
+
+
+clean:	rmlib rmcint rmobjs rmbin
+
+mrproper:	clean
+	@echo "Removing *~ kk.kk html/..."
+	@rm -f *~ kk.kk
+
+cflags: 
+	@echo $(INCLUDES) $(CXXFLAGS)
+
+# @endcode
+
Index: /branches/start/MagicSoft/Simulation/Corsika/Checkmc/Makefile
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Checkmc/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Checkmc/Makefile	(revision 4308)
@@ -0,0 +1,220 @@
+##################################################################
+#
+# makefile
+#
+# @file        makefile 
+# @title       Simulation of the camera and trigger logic
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the camera program
+# Notes:   
+#    
+#---------------------------------------------------------------
+#
+# $RCSfile: Makefile,v $
+# $Revision: 1.1.1.1 $
+# $Author: magiccvs $ 
+# $Date: 1999-11-25 20:34:58 $
+#
+##################################################################
+# @maintitle
+
+# @code
+
+INCLUDEMK = config.mk.${OSTYPE}
+include ${INCLUDEMK}
+
+# @endcode
+
+# @code 
+
+# includes		
+
+INCLUDE       = ../../Detector/include-GENERAL
+INCLUDE_COR   = ../../Detector/include-CORSIKA
+INCLUDE_CHECK = .
+
+
+# common flags
+
+INCLUDES = -I${INCLUDE}      \
+	   -I${INCLUDE_COR}  \
+	   -I${INCLUDE_CHECK} \
+           -I${INCLUDE_CERN} \
+           -I/usr/include 
+
+CERNLIBDIR = ${CERNDIR}/pro/lib/
+CERNLIB    = -L${CERNLIBDIR} -lgraflib -lgrafX11 -lpacklib \
+             -lkernlib -lpawlib -lmathlib
+
+RANLIBDIR = ../../Detector/lib
+RANLIB  = -L${RANLIBDIR} -lranlib
+
+# special flags
+
+osf_FORLIBS = -lUfor -lfor -lutil -lots -lm 
+linux_FORLIBS = -L/usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.57 \
+-L/usr/local/i686-pc-linux-gnu/lib \
+-L/usr/local/lib \
+/usr/X11R6/lib/libXt.a \
+/usr/X11R6/lib/libXext.a \
+/usr/X11R6/lib/libXp.a \
+/usr/X11R6/lib/libX11.a \
+-lcrypt -ldl -lg2c -lm -lgcc -lc -lgcc /usr/lib/crtn.o
+generic_FORLIBS = -lm 
+
+FORLIBS = ${${SYSTEM}_FORLIBS}
+
+# compilation and linking flags
+
+CXXFLAGS  = -D__${SYSTEM}__ ${INCLUDES} ${OPTIM} ${DEBUG}
+CFLAGS    = ${CXXFLAGS}
+FFLAGS    = ${CXXFLAGS}
+LIBS      = ${RANLIB} ${CERNLIB}  ${FORLIBS} ${LIBS_linux}
+#LIBS      = ${CERNLIB} ${RANLIB} ${FORLIBS}
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cxx .C .c++ .h .hxx .H .h++ .o .so .f
+
+SRCS = \
+	${INCLUDE_COR}/COREventHeader.cxx \
+	${INCLUDE_COR}/CORParticle.cxx \
+	${INCLUDE_COR}/CORStatfile.cxx \
+        checkmc.cxx
+
+HEADERS = \
+	COREventHeader.hxx \
+	CORParticle.hxx \
+	CORStatfile.hxx \
+        checkmc.h
+
+OBJS = \
+	${INCLUDE_COR}/COREventHeader.o \
+	${INCLUDE_COR}/CORParticle.o \
+	${INCLUDE_COR}/CORStatfile.o \
+	checkmc.o
+
+
+PROGRAM=checkmc_${OSTYPE} 
+
+############################################################
+
+all: ${PROGRAM}
+
+depend:
+	@makedepend $(SRCS) -fMakefile 2> /dev/null
+
+doc: reflector-doc
+
+reflector-doc: 
+	@echo "Generating documentation for camera . . . "
+	$(DOCUM) -latex -o reflector.tex \
+	reflector.cxx reflector.h \
+	readparam.cxx readparam.h \
+	atm.cxx atm.h
+	latex "\nonstopmode\input{reflector.tex}" && \
+	makeindex reflector && \
+	latex "\nonstopmode\input{reflector.tex}" && \
+	latex "\nonstopmode\input{reflector.tex}"
+	@echo "Files reflector.tex and reflector.dvi generated."
+
+rate: 
+	@echo "Rating documentation inside code . . . "
+	$(RATE) \
+	reflector.cxx reflector.h \
+	readparam.cxx readparam.h \
+	atm.cxx atm.h
+
+${PROGRAM}: $(OBJS)
+	@echo "Linking..." $@
+	$(CXX) $(CXXFLAGS) $(OBJS) $(LIBS) -o $@
+	@echo "done."
+
+.cxx.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo "Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+.f.o:	
+	@echo "Compiling " $<
+	$(F77) $(FFLAGS) -c $< -o $@
+
+lclean:
+	@echo "Cleanning..."
+	@rm -f *.o core 
+
+clean:
+	@echo "Cleanning..."
+	@rm -f $(OBJS) core 
+
+mrproper: clean
+	@echo "Mr.Proper in action . . ."
+	@rm -rf test
+	@rm -f $(PROGRAM)
+
+ctags:
+	@echo "Creating CTAGS file . . ."
+	@ctags -txw $(SRCS) $(HEADERS) > CTAGS
+
+etags:
+	@echo "Creating TAGS file . . ."
+	@etags -C $(SRCS) $(HEADERS)
+
+listsrc:
+	@ls -m $(SRCS) $(HEADERS) | sed 's/,//g'
+
+redo: clean all
+
+# @endcode
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+../../Detector/include-CORSIKA/COREventHeader.o: ../../Detector/include-CORSIKA/COREventHeader.hxx
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/stdlib.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/standards.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/getopt.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/sys/types.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/mach/machine/vm_types.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/sys/select.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/math.h
+../../Detector/include-CORSIKA/CORParticle.o: ../../Detector/include-CORSIKA/CORParticle.hxx
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/stdlib.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/standards.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/getopt.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/sys/types.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/mach/machine/vm_types.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/sys/select.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/math.h
+../../Detector/include-CORSIKA/CORStatfile.o: ../../Detector/include-CORSIKA/CORStatfile.hxx
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/stdlib.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/standards.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/getopt.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/sys/types.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/mach/machine/vm_types.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/sys/select.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/math.h
+checkmc.o: checkmc.h /usr/include/stdlib.h /usr/include/standards.h
+checkmc.o: /usr/include/getopt.h /usr/include/sys/types.h
+checkmc.o: /usr/include/mach/machine/vm_types.h /usr/include/sys/select.h
+checkmc.o: /usr/include/stdio.h /usr/include/sys/seek.h
+checkmc.o: /usr/include/va_list.h /usr/include/sys/limits.h
+checkmc.o: /usr/include/sys/machine/machlimits.h /usr/include/sys/syslimits.h
+checkmc.o: /usr/include/sys/machine/machtime.h /usr/include/sys/rt_limits.h
+checkmc.o: /usr/include/string.h /usr/include/strings.h /usr/include/stdarg.h
+checkmc.o: /usr/include/math.h /usr/include/float.h /usr/include/fp_class.h
+checkmc.o: /usr/include/dirent.h
+checkmc.o: ../../Detector/include-CORSIKA/COREventHeader.hxx
+checkmc.o: ../../Detector/include-CORSIKA/CORParticle.hxx
+checkmc.o: ../../Detector/include-CORSIKA/CORStatfile.hxx
Index: /branches/start/MagicSoft/Simulation/Corsika/Checkmc/checkmc
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Checkmc/checkmc	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Checkmc/checkmc	(revision 4308)
@@ -0,0 +1,32 @@
+#!/bin/csh -f
+date
+
+if ( -e test) then
+   
+else 
+  mkdir ${PWD}/test
+endif
+
+cp checkmc.kumac test/
+cp checkmc_reference.hbook test/
+
+
+rm -f test/checkmc.log
+rm -f test/checkmc.ps
+rm -f test/checkmc_paw.log
+
+
+echo "checkmc_${OSTYPE}  < input_example >& test/checkmc.log "
+checkmc_${OSTYPE}  < input_example >& test/checkmc.log 
+
+cd test
+
+pawX11 >& checkmc_paw.log << EOF
+1
+exec checkmc
+exit
+EOF
+echo " Checkmc finished ... "
+echo " Output in files checkmc.log" 
+echo "           and   checkmc.ps"
+date
Index: /branches/start/MagicSoft/Simulation/Corsika/Checkmc/checkmc.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Checkmc/checkmc.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Checkmc/checkmc.cxx	(revision 4308)
@@ -0,0 +1,1466 @@
+//////////////////////////////////////////////////////////////////
+//
+// checkmc                  
+//
+// @file        checkmc.cxx
+// @title       Check of the MC generated data
+// @author      J C Gonz\'alez, P. Morawitz, D. Petry
+// @email       gonzalez@mppmu.mpg.de, morawitz@cern.ch, petry@ifae.es
+//
+// @maintitle
+//_______________________________________________________________
+//
+//  Created: Thu May  7 16:24:22 1998
+//  Author:  Jose Carlos Gonzales et al.
+//  Purpose: Check of the MC generated data
+//  Notes:  version 27-10-98 
+//    
+//    
+
+// Below you can find a sort of, incomplete for sure, documentation 
+// concerning this program. Please, do not hesiate to contact the 
+// author in case of problems.
+
+// @T \newpage
+
+// @section Source code of {\tt checkmc.cxx}
+
+/* @text
+In this section we show the (commented) code of the program 
+for for the check of the MC generated data, in the current version.
+@endtext */
+
+// @subsection Includes and Global variables definition
+
+/* @text 
+All the defines are located in the file {\tt checkmc.h}.
+@endtext */
+ 
+// @code
+#include "checkmc.h"
+// @endcode
+
+// @subsubsection Definition of global variables.
+
+/* @text
+Here we define the global variables where the values from
+the parameters file are stored. See the section
+\ref{paramdesc} in page \pageref{paramdesc} for a more 
+complete description of the available commands in the 
+parameters file.
+@endtext */
+
+// @code
+static char **Paths_list;     // list of paths to get data from
+static int Num_of_paths = 1;  // number of paths
+static char Output_filename[PATH_MAX_LENGTH]; // output filename
+static char CT_filename[PATH_MAX_LENGTH]; // name of the CT def. file
+static VerboseLevel verbose = VERBOSE_DEFAULT; // verboseness
+static float fixed_Theta;      // fixed target theta and phi
+static float fixed_Phi;
+static float low_Ecut = 0.0, high_Ecut = 100000.0;
+static int is_Fixed_Target = FALSE; // are we using fixed target?
+static int max_Events = 100000; // maximum number of events to read
+
+static float gammas  =    1.;
+static float protons =   14.;
+static float helium =   402.;
+
+
+inline int max(int a, int b)
+{if (a>b) return a;
+ else return b;}
+
+inline int min(int a, int b)
+{if (a<b) return a;
+ else return b;}
+
+// @endcode
+
+/* @text
+Earth's radius (in cm).
+@endtext */
+
+// @code
+static const float REarth = 6348.0e5;
+// @endcode
+
+// @subsection Main program
+
+/* @text
+Let's start!
+@endtext */
+
+// @code
+//++++++++++++++++++++++++++++++++++++++++
+// MAIN PROGRAM 
+//----------------------------------------
+                   
+void
+main(int argc, char **argv) 
+{
+
+  FILE *f;
+  DIR *directory;             // directory of data
+  struct dirent *de;          // directory entry
+
+  char pathname[256];         // directory and file names
+  char cername[256];
+  char staname[256];
+  char outname[256];
+  char refname[256];
+  char name[256];
+
+  ifstream cerfile;
+  ofstream outputfile;
+
+  COREventHeader evth;        // Event Header class (from CORSIKA)
+  CORParticle photon;         // Particle (photon) class (from CORSIKA)
+  CORStatfile stat;           // Statistics file class (from CORSIKA)
+
+  float thetaCT, phiCT, xiCT; // parameters of a given shower
+  float coreD, coreX, coreY;  // core position and distance
+
+  float a, b, c, t, tt;       // intermediate variables
+
+  float mind, d;              // minimum distance trayectory-mirror center
+
+  float wl;                   // wavelength of the Cphoton
+  float reflec;               // reflectivity for a Cphoton
+
+  int ncer;                   // number of the shower;
+  int np, nf;                 // number of path, number of cer-file
+  int i, j, k, n;             // simple counters
+  int i_mirror=-1;            // number of a given mirror
+
+  int nCphotons;              // number of a Cphotons written on output file
+
+  float TR;                   // atmospheric transmitance
+  int nbeforeTR, nafterTR;    // number of Cph. before and after transmission
+  int num_cer_files;          // number of cer files;
+  int max_num_cer_files;      // maximum number of cer files to read
+
+  float t1, t2;               // first and last time
+
+  float x0, xa, xb, v;        // variables for the 
+  float vmax, vmaxa, vmaxb;   // estimation of Xmax
+  float xmax;
+
+  int ntotfiles;
+  int kbin;
+
+  int  hprimary;
+  static const int nprimaries=4;
+  char* primary_name[nprimaries] ={ 
+       "Photons",
+       "Protons",
+       "Helium",
+       "Heavy Nuclei"};
+  int nevents[nprimaries];
+  char htit[256]; 
+
+  int firstevent,lastevent;
+  int ndiag=-1;
+  int rndiag=-1;
+  char diag[256][20];
+  char rdiag[256][100];
+  char ctmp[256];       
+  float par[3],vp2[4],vp3[5],vp4[6];
+  float sigpar;
+  float chi2;
+  float rnd[3][3];
+
+  // now i/p the constants to be checked
+  const float mon_HeightLev=220000.;
+  const float mon_SlopeSpec[nprimaries] =  {-1.5,-2.75,-2.62,-100000.};
+  const float mon_ElowLim [nprimaries] = {1.,10.,10.,10.};
+  const float mon_EUppLim[nprimaries] = {30000.,100000.,100000.,100000.};
+  const float mon_Ecutoffh[nprimaries] = {0.3,0.3,0.3,0.3};
+  const float mon_Ecutoffm[nprimaries] = {0.3,0.3,0.3,0.3};
+  const float mon_Ecutoffe[nprimaries] = {0.02,0.02,0.02,0.02};
+  const float mon_Ecutoffg[nprimaries] = {0.02,0.02,0.02,0.02};
+  const float mon_EGS4yn[nprimaries] = {1.,1.,1.,1.};
+//  the EGS4yn flag should be automatically 
+  const float mon_NKGyn[nprimaries] = {0.,0.,0.,0.};
+  const float mon_GHEISHAyn[nprimaries] = {1.,1.,1.,1.};
+  const float mon_VENUSyn[nprimaries] = {1.,1.,1.,1.};
+  const float mon_CERENKOVyn[nprimaries] = {1.,1.,1.,1.};
+  const float mon_ThetaMin[nprimaries] = {5.,0.,0.,0.};
+  const float mon_ThetaMax[nprimaries] = {25.,30.,30.,30.};
+  const float mon_PhiMin[nprimaries] = {0.,0.,0.,0.};
+  const float mon_PhiMax[nprimaries] = {360.,360.,360.,360.};
+  const float mon_CWaveLower[nprimaries] = {290.,290.,290.,290.};
+  const float mon_CWaveUpper[nprimaries] = {600.,600.,600.,600.};
+
+  // @endcode
+
+  // @text
+  // Variables for the primary particle N-Tuple 
+  // @endtext
+
+  // @code
+  int hid=1,istat=0,icycle=0;
+  const int nvar=44;
+  char chTags[nvar][8]={
+	"primary",
+//  primary particle id 
+	"energy",
+//  primary energy
+	"cored",
+//  Core distance  in cm
+	"theta",
+	"phi",
+	"thick",
+//  thickness (g/cm-2), e.g. height z converted, see below
+	"height",
+//  height, z coordinate, cm, of first interaction
+	"target1",
+//  number of first taget ?
+	"px",
+	"py",
+	"pz",
+//  the momentum of the primary particle
+	"tfirst", 
+//  time of first cerenkov photon on ground
+	"tlast",   
+//  time of last cerenkov photon on ground
+	"xmax", 
+//  xmax in g/cm**2; "height" of cerenkov shower maximum
+//  => xmax/dichte == penetration depth
+//  depth defined as == 120km=0 
+// (120km - penetration depth - observation level (2km)) == real height of interaction
+// 
+	"xcore",
+//  x position of core on ground in cm
+	"ycore",
+//  y position of core on ground in cm
+        "Nph", 
+//  number of cerenkov photons 
+        "RunNum",
+        "EvtNum",
+        "DateRun",
+        "Version",
+        "HeigLev",
+        "ESlope",
+        "ELowLim",
+        "EUppLim",
+//
+        "Ecutofh",
+        "Ecutofm",
+        "Ecutofe",
+        "Ecutofg",
+//      
+        "EGS4yn",
+        "NKGyn",
+        "GHEISHA",
+        "VENUS",
+        "CERENKO",
+        "NEUTRIN",
+        "HORIZON",
+        "COMPUTE",
+        "ThetMin",
+        "ThetMax",
+        "PhiMin",
+        "PhiMax",
+//  
+        "StepLen",
+        "CWavLow",
+        "CWavUpp"
+  };
+  // char chTags[nvar * 10];
+  float rec[nvar];
+  int record_size=4096;
+  // @endcode
+
+
+  // @text
+  // Variables for the cerenkov photon N-Tuple 
+  // @endtext
+
+  // @code
+  int hid2=2,istat2=0,icycle2=0;
+  const int nvar2=11;
+  char chTags2[nvar2][8]={
+//
+// First info about primary
+	"energy",
+	"cored",
+	"theta",
+//
+// Now cerenkov photon info
+	"Wavel", 
+// wavelength in nm
+        "xph",
+        "yph",
+        "uph",
+        "vph",
+        "tph",
+        "hph",
+        "EvtNum"
+  };
+  // char chTags2[nvar2 * 10];
+  float rec2[nvar2];
+  int record_size2=4096;
+  // @endcode
+
+
+  // @text
+  // We start in the main program. First we (could) make some presentation, 
+  // and follows the reading of the parameters file (now from the {\tt stdin}), 
+  // the reading of the CT parameters file, and the creation of the 
+  // output file, where the processed data will be stored.
+  // @endtext
+  // @code
+
+  //++
+  //  START
+  //--
+
+  // make unbuffered output
+
+  cout.setf ( ios::stdio );
+
+  // HBOOK core memory
+
+  HLIMIT(PAWC_SIZE);
+
+  /*
+	strcpy( chTags, "primary:" );
+	strcat( chTags, "energy:" );
+	strcat( chTags, "cored:" );
+	strcat( chTags, "theta:" );
+	strcat( chTags, "phi:" );
+	strcat( chTags, "thick:" );
+	strcat( chTags, "height:" );
+	strcat( chTags, "target1:" );
+	strcat( chTags, "px:" );
+	strcat( chTags, "py:" );
+	strcat( chTags, "pz:" );
+	strcat( chTags, "tfirst:" );
+	strcat( chTags, "tlast:" );
+	strcat( chTags, "xmax" );
+  */
+
+  // make some sort of presentation
+
+  present();
+  
+  // read parameters from the stdin
+
+  readparam();
+  if ( verbose >= VERBOSE_MINIMAL )
+     log( SIGNATURE, "... reading parameters OK\n");
+  // get name of the output file
+  
+  strcpy( outname, get_output_filename() );
+
+  // open HBOOK file
+
+  if ( verbose >= VERBOSE_MINIMAL ) 
+    log( SIGNATURE, "Openning N-Tuple file %s\n", outname );
+
+  // TFile hfile(outname,"RECREATE","Check MC generated data");
+
+
+  HROPEN(1, "CHECKMC", outname, "N", record_size, istat);
+  if (istat != 0) 
+      {fprintf(stderr, "\n Output Histo couldn't be opened. Adios.\n");
+       exit(999);}
+
+  // profile (final) histograms
+
+  // TH1F *htime  = new TH1F("htime", "htime", 60, 0., 60.);
+  // TH1F *helec  = new TH1F("helec", "helec", NTHSTEP, 0., 790.);
+  // TH1F *hlight = new TH1F("hlight", "hlight", NTHSTEP, 0., 790.);
+
+  double fstime[18][60], fs2time[18][60];
+
+  double ftstime[18][60], fts2time[18][60];
+  double ftselec[18][NTHSTEP], fts2elec[18][60];
+  double ftslight[18][NTHSTEP], fts2light[18][60];
+  
+  for (i=0; i<60; ++i)
+    for (k=0; k<18; ++k)
+      ftstime[k][i] = fts2time[k][i] = 0.0;
+  
+  for (i=0; i<NTHSTEP; ++i)
+    for (k=0; k<18; ++k)
+      ftselec[k][i] = fts2elec[k][i] = 
+		ftslight[k][i] = fts2light[k][i] = 0.0;
+  
+  // @endcode 
+  // @text
+  // After reading the parameters file (from {\tt stdin}, and the 
+  // CT definition file, we start the analysis. Basically, there are  
+  // three loops. The outermost loop is a loop in the {\it data directories\/} 
+  // we introduced in the parameters file; the middle loop follows each 
+  // {\tt cer*} file in the directory; and the innermost loop gets 
+  // each Cherenkov from these files.
+  // @endtext 
+  // @code
+
+  // TNtuple *ntuple = new TNtuple("ntuple","Check MC data", chTags);
+  // HBOOKN(hid,  pathname, nvar,  "CHECKMC", 4096, chTags);
+  // HBOOKN(hid2, pathname, nvar2, "CHECKMC", 4096, chTags2);
+
+
+
+  // First count the number of events for each primary 
+  ntotfiles = 0;
+  // for each path of data files
+  for (np=0; np<get_num_of_paths(); np++) {
+    strcpy(pathname, get_path_name(np));
+    // open directory 
+    if ( verbose >= VERBOSE_MINIMAL )
+      log( SIGNATURE, "Openning directory %s\n", pathname );
+    if ( (directory = opendir(pathname)) == NULL ) 
+      error( SIGNATURE, 
+             "Cannot open directory %s\n", pathname );
+    // trace the number of events (cer* files) 
+    num_cer_files = 0;
+    max_num_cer_files = get_max_events();
+    // for each directory entry (files)
+    while ( ( (de = readdir( directory )) != NULL) &&
+            (num_cer_files < max_num_cer_files) ) {
+      // skip removed files
+      if ( de->d_ino == 0)
+        continue;
+      // keep only cer* files
+      if ( strstr(de->d_name, "cer") != de->d_name )
+        continue;
+      // it is a real cer* file
+      ++num_cer_files;
+      if ( verbose >= VERBOSE_NORMAL )
+        log( SIGNATURE, "cerfile: %s\n", de->d_name );
+      // get cer* file number (number of the shower)
+      // increments the pointer in 3 to calculate the number
+      ncer = atoi(de->d_name + 3);  
+      // full names of the input files cer* and sta*
+      sprintf(cername, "%s/cer%06d", pathname, ncer);
+      sprintf(staname, "%s/sta%06d", pathname, ncer);
+      // try to open cer* file
+      if ( verbose >= VERBOSE_MAXIMAL )
+        log( SIGNATURE, "Openning %s\n", cername );
+      cerfile.open( cername );
+      if ( cerfile.bad() ) 
+        error( SIGNATURE, 
+               "Cannot open input file: %s\n", cername );
+      // try to open the statistics file
+      if ( verbose >= VERBOSE_MAXIMAL )
+        log( SIGNATURE, "Openning %s\n", staname );
+      stat.openfile ( staname );
+      // reading data from this sta* file
+      if ( verbose >= VERBOSE_MAXIMAL )
+        log( SIGNATURE, "Reading %s\n", staname );
+      stat.read();
+      // read the Event Header from the cer* file
+      evth.read( cerfile );
+      if (evth.PrimaryID == gammas)  
+         ++nevents[0];
+      else if (evth.PrimaryID == protons)  
+         ++nevents[1];
+      else if (evth.PrimaryID == helium)  
+         ++nevents[2];
+      else
+         ++nevents[3];
+      cerfile.close();
+      stat.closefile();}}
+
+
+  cout<<"NMAXBINS"<<NMAXBINS<<endl;
+  // Now book the histogram files  
+  for (i=0; i<nprimaries; ++i)
+      if (nevents[i]>0) 
+// Primary histos
+      {sprintf(htit, "Log(Energy) of primary %s;log(E/GeV)", primary_name[i]);
+       HBOOK1(100+i,htit,min(nevents[i]/25,NMAXBINS),0.,4.5,0.); 
+
+       sprintf(htit, "Core distance (horizontal plane) of primary %s;(m)", primary_name[i]);
+       HBOOK1(110+i,htit,min(nevents[i]/25,NMAXBINS),0.,500.,0.); 
+
+       sprintf(htit, "Theta of primary %s;(degrees)", primary_name[i]);
+       HBOOK1(120+i,htit,min(nevents[i]/15,NMAXBINS),0.,70.,0.); 
+
+       sprintf(htit, "Phi of primary %s;(degrees)", primary_name[i]);
+       HBOOK1(130+i,htit,min(nevents[i]/25,NMAXBINS),0.,360.,0.); 
+
+       sprintf(htit, "Core position for primary %s;x (m);y (m)", primary_name[i]);
+       HBOOK2(140+i,htit,50,-500.,500.,50,-500.,500.,0.); 
+
+       sprintf(htit, "Height of first interaction of primary %s;(km)", primary_name[i]);
+       HBOOK1(150+i,htit,min(nevents[i]/25,NMAXBINS),0.,100.,0.); 
+       
+       sprintf(htit, "Time (last-first) of C-Photons for %s;(ns)", primary_name[i]);
+       HBOOK1(160+i,htit,min(nevents[i]/25,NMAXBINS),-1.,160.,0.); 
+
+       sprintf(htit, "Shower maximum XMAX for %s;(g cm^-2!)", primary_name[i]);
+       HBOOK1(170+i,htit,min(nevents[i]/10,NTHSTEP),0.,790.,0.); 
+
+       sprintf(htit, "Log(Num of C-photons produced) for primary %s below 300 GeV;log(N)", primary_name[i]);
+       HBOOK1(180+i,htit,min(nevents[i]/25,NMAXBINS),-.5,6.,0.); 
+
+       sprintf(htit, "Log(Num of C-photons produced) for primary %s above 300GeV;log(N)", primary_name[i]);
+       HBOOK1(190+i,htit,min(nevents[i]/25,NMAXBINS),-.5,6.,0.); 
+
+// C-Photon histos
+       sprintf(htit, "C-Photon position in horiz. plane for prim. %s;x (m);y (m)", primary_name[i]);
+       HBOOK2(300+i,htit,50,-15.,15.,50,-15.,15.,0.); 
+
+       sprintf(htit, "C-Photon distance to (0,0) (horizontal plane) for %s;(m)", primary_name[i]);
+       HBOOK1(310+i,htit,(min(nevents[i]/5,NMAXBINS)),0.,15.,0.); 
+
+       sprintf(htit, "C-Photon spectrum for primary %s; [l] (nm)", primary_name[i]);
+       HBOOK1(320+i,htit,(min(nevents[i]/5,NMAXBINS)),200.,700.,0.); 
+
+       sprintf(htit, "Production height of C-Photon for primary %s;(km)", primary_name[i]);
+       HBOOK1(330+i,htit,(min(nevents[i]/5,NMAXBINS)),0.,30.,0.); 
+      }
+
+  ntotfiles = 0;
+
+  // for each path of data files
+  
+  for (np=0; np<get_num_of_paths(); np++) {
+    
+    strcpy(pathname, get_path_name(np));
+    
+    // open directory 
+
+    if ( verbose >= VERBOSE_MINIMAL )
+      log( SIGNATURE, "Openning directory %s\n", pathname );
+    if ( (directory = opendir(pathname)) == NULL ) 
+      error( SIGNATURE, 
+             "Cannot open directory %s\n", pathname );
+    
+    // trace the number of events (cer* files) 
+    
+    num_cer_files = 0;
+
+    // book n-tuple for this directory
+
+    //  hid = np+1;
+
+    //  if ( verbose >= VERBOSE_MINIMAL ) 
+    //    log( SIGNATURE, "Create N-Tuple #%d for path %s . . .\n", 
+    //             hid, pathname );
+        
+    // HBOOKN(hid, pathname, nvar, " ", 4096, chTags);
+        
+    max_num_cer_files = get_max_events();
+
+    // for each directory entry (files)
+
+    firstevent=-100;    
+    while ( ( (de = readdir( directory )) != NULL) &&
+            (num_cer_files < max_num_cer_files) ) {
+	  
+      // skip removed files
+          
+      if ( de->d_ino == 0)
+        continue;
+
+      // keep only cer* files
+
+      if ( strstr(de->d_name, "cer") != de->d_name )
+        continue;
+
+      // it is a real cer* file
+
+      ++num_cer_files;
+
+      if ( verbose >= VERBOSE_NORMAL )
+        log( SIGNATURE, "cerfile: %s\n", de->d_name );
+
+      // get cer* file number (number of the shower)
+
+      // increments the pointer in 3 to calculate the number
+
+      ncer = atoi(de->d_name + 3);  
+      
+      // full names of the input files cer* and sta*
+
+      sprintf(cername, "%s/cer%06d", pathname, ncer);
+      sprintf(staname, "%s/sta%06d", pathname, ncer);
+
+      // try to open cer* file
+
+      if ( verbose >= VERBOSE_MAXIMAL )
+        log( SIGNATURE, "Openning %s\n", cername );
+
+      cerfile.open( cername );
+
+      if ( cerfile.bad() ) 
+        error( SIGNATURE, 
+               "Cannot open input file: %s\n", cername );
+
+      // @endcode
+      // @text
+      // Each shower has associated three files: {\em Cherenkov-photons file\/}
+      // ({\tt cer*}), {\em Particles file} ({\tt dat*}) and
+      // {\em Statistics file} ({\tt sta*}). First we read the data from
+      // this last file, which is explained below, and then we read the 
+      // {\em Event-Header} block from the {\tt cer*} file.
+      // @endtext
+      // @code
+
+      // try to open the statistics file
+
+      if ( verbose >= VERBOSE_MAXIMAL )
+        log( SIGNATURE, "Openning %s\n", staname );
+
+      stat.openfile ( staname );
+
+      // reading data from this sta* file
+
+      if ( verbose >= VERBOSE_MAXIMAL )
+        log( SIGNATURE, "Reading %s\n", staname );
+
+      stat.read();
+
+      // read the Event Header from the cer* file
+
+      evth.read( cerfile );
+
+      // Distinquish between gamma/proton/helium/+heavier nuclei
+      if (evth.PrimaryID == gammas) 
+            hprimary=0;
+      else if (evth.PrimaryID == protons) 
+            hprimary=1; 
+      else if (evth.PrimaryID == helium) 
+            hprimary=2; 
+      else
+            hprimary=3; 
+
+      // set bin for theta/energy
+      
+      kbin = ((int)floor(evth.get_theta()/10.)*6 + 
+			  (int)floor(log10(evth.get_energy())));
+
+      // get core distance and position
+
+      coreD = evth.get_core(&coreX, &coreY);
+          
+      t1 = 100000;
+      t2 = 0.0;
+
+      ++ntotfiles;
+
+      // initialize time-histogram
+
+      for (i=0; i<60; ++i)
+		fstime[kbin][i] = 0.0;
+
+      // read each and every single photon (particle) from cer* file
+
+      rec2[0]  = evth.Etotal;   
+      rec2[1]  = coreD;
+      rec2[2]  = evth.Theta; 
+      rec2[10]  = evth.EvtNumber; 
+
+      if (firstevent == -100) 
+        {firstevent = evth.EvtNumber;
+         // save random number seed of first event per run
+         for (i=0;i<3;++i)
+            for (j=0;j<3;++j)
+              rnd[i][j]=evth.RndData[i][j];}
+
+      lastevent = evth.EvtNumber; 
+
+      nCphotons = 0;
+      while ( ! cerfile.eof() ) {
+
+        // read photon data from the file
+
+        photon.read( cerfile );
+
+        wl = photon.get_wl();
+
+        HF2(300+hprimary,(photon.x-coreX)/100.,(photon.y-coreY)/100.,1.);
+        HF1(310+hprimary,sqrt(pow(((photon.x-coreX)/100.),2.)+pow((photon.y-coreY)/100.,2.)),1.);
+        HF1(320+hprimary,wl,1.);
+        HF1(330+hprimary,photon.h/100000.,1.);
+
+        rec2[3]  = wl; 
+        rec2[4]  = photon.x; 
+        rec2[5]  = photon.y; 
+        rec2[6]  = photon.u; 
+        rec2[7]  = photon.v; 
+        rec2[8]  = photon.t; 
+        rec2[9]  = photon.h; 
+//        HFN(hid2,rec2);
+	
+
+        if ( wl < 1.0 )
+          break;
+        
+		// fill times
+
+		t = photon.get_t() - stat.get_tfirst();
+	
+		if ( (t>0.0) && (t<60.0)) {
+		  i = (int)t/1.;
+		  ++fstime[kbin][i];
+		}	  
+	
+		// hdmytime->Fill(t);
+	
+        // increase number of Cphotons written
+
+        ++nCphotons;
+	
+      } // while still there are photons left
+      
+      // calculate errors for time distribution
+      
+      for (i=0;i<60;++i)
+		fs2time[kbin][i] = sqrt(fstime[kbin][i]);
+
+      // save intermediate vectors in final vector
+
+      for (i=0;i<60;++i) {
+		ftstime[kbin][i] += fstime[kbin][i];
+		fts2time[kbin][i] += fs2time[kbin][i];
+      }
+    
+      for (i=0;i<NTHSTEP;++i) {
+		ftselec[kbin][i] += (stat.plong[2][i] + stat.plong[1][i]);
+		fts2elec[kbin][i] += sqrt(stat.plong[2][i] + stat.plong[1][i]);
+		ftslight[kbin][i] += stat.plong[8][i];
+		fts2light[kbin][i] += sqrt(stat.plong[8][i]);
+      }    
+
+      // estimate position of Xmax
+
+      vmax = -1.0;
+      for (i=0; i<NTHSTEP; ++i) {
+		v = (stat.plong[2][i] + stat.plong[1][i]);  // e- & e+
+		if (v > vmax) {
+		  vmax = v;
+		  j = i;
+		}
+      }
+
+      // to calculate a rough estimate of Xmax, we make a weigthed mean
+      // of the values at maximum, and the previous and next bins
+      xmax=-100.;
+      if (j > 0) {
+         x0 = j*10. + 5.;
+         xa = (j-1)*10. + 5.;
+         xb = (j+1)*10. + 5.;
+         vmaxa = (stat.plong[2][j-1] + stat.plong[1][j-1]); // e- & e+
+         vmaxb = (stat.plong[2][j+1] + stat.plong[1][j+1]); // e- & e+
+      
+         xmax = (xa*vmaxa + x0*vmax + xb*vmaxb) / (vmaxa + vmax + vmaxb);}
+      //     else there was no e+e- shower in this event, skip ...
+
+      // fill N-Tuple record
+
+      if (evth.Etotal>0) 
+         HF1(100+hprimary,log10(evth.Etotal),1.);
+      HF1(110+hprimary,coreD/100.,1.);
+      HF1(120+hprimary,evth.Theta/3.14*180.,1.);
+      HF1(130+hprimary,evth.Phi/3.14*180.,1.);
+      HF2(140+hprimary,coreX/100.,coreY/100.,1.);
+      HF1(150+hprimary,evth.zFirstInt/100000.,1.);
+      if (stat.get_tlast()-stat.get_tfirst()>0)
+         HF1(160+hprimary,stat.get_tlast()-stat.get_tfirst(),1.);
+      else 
+         HF1(160+hprimary,-5.,1.);
+
+      HF1(170+hprimary,xmax,1.);
+      if (evth.Etotal<300){
+      if (nCphotons>0) 
+         HF1(180+hprimary,log10(nCphotons),1.);
+      else
+         HF1(180+hprimary,-1.,1.);
+      }
+      else{
+      if (nCphotons>0) 
+         HF1(190+hprimary,log10(nCphotons),1.);
+      else
+         HF1(190+hprimary,-1.,1.);
+      }
+      rec[0]  = evth.PrimaryID;
+      rec[1]  = evth.Etotal;   
+      rec[2]  = coreD;
+      rec[3]  = evth.Theta; 
+      rec[4]  = evth.Phi; 
+      rec[5]  = thick(evth.zFirstInt, evth.Theta);   
+      rec[6]  = evth.zFirstInt;
+      rec[7]  = evth.FirstTarget;
+      rec[8]  = evth.p[0];     
+      rec[9]  = evth.p[1];     
+      rec[10] = evth.p[2];     
+      rec[11] = stat.get_tfirst();
+      rec[12] = stat.get_tlast();
+      rec[13] = xmax;
+      rec[14] = coreX;
+      rec[15] = coreY;
+      rec[16] = nCphotons;
+
+      rec[17] = evth.RunNumber;
+      rec[18] = evth.EvtNumber;
+      rec[19] = evth.DateRun;
+      rec[20] = evth.VersionPGM;
+      rec[21] = evth.HeightLev[0];
+      rec[22] = evth.SlopeSpec;
+      rec[23] = evth.ELowLim; 
+      rec[24] = evth.EUppLim; 
+
+
+      rec[25] = evth.Ecutoffh;  
+      rec[26] = evth.Ecutoffm;  
+      rec[27] = evth.Ecutoffe;  
+      rec[28] = evth.Ecutoffg;  
+      
+      rec[29] = evth.EGS4yn;  
+      rec[30] = evth.NKGyn;
+      rec[31] = evth.GHEISHAyn;
+      rec[32] = evth.VENUSyn;
+      rec[33] = evth.CERENKOVyn;
+      rec[34] = evth.NEUTRINOyn;
+      rec[35] = evth.HORIZONTyn;
+      rec[36] = evth.COMPUTER;
+      rec[37] = evth.ThetaMin;
+      rec[38] = evth.ThetaMax;
+      rec[39] = evth.PhiMin;
+      rec[40] = evth.PhiMax;
+  
+      rec[41] = evth.StepLength;
+      rec[42] = evth.CWaveLower;
+      rec[43] = evth.CWaveUpper;
+
+      // write record to the file
+
+//      HFN(hid,rec);     
+      
+      // ntuple->Fill( rec );          
+        
+      // close files
+          
+      cerfile.close();
+      stat.closefile();
+          
+      // show how many photons were written
+          
+      if ( verbose >= VERBOSE_MAXIMAL )
+        log( SIGNATURE, "%d C-photons written.\n", nCphotons );
+
+      
+    } // while there are still directory entries left
+
+      // check parameters for each RUN...
+      // Monitor run statistics:      
+
+      ++rndiag;
+      sprintf(ctmp, "%s\n", "-------------------------------------------------------------");
+      for (i=0;i<256;++i) rdiag[i][rndiag]=ctmp[i];
+
+      ++rndiag;
+      sprintf(ctmp,"%s%f%s%f%s%f\n", "Run: ",evth.RunNumber,
+              " Date: ",evth.DateRun, " CorsikaV: ",evth.VersionPGM);
+      for (i=0;i<256;++i) rdiag[i][rndiag]=ctmp[i];
+
+      ++rndiag;
+      sprintf(ctmp, "%s%s\n", "    Primary Particle: ",
+                  primary_name[hprimary]);
+      for (i=0;i<256;++i) rdiag[i][rndiag]=ctmp[i];
+
+      ++rndiag;
+      sprintf(ctmp, "%s%d%s%d\n", "    First/Last Event Number monitored: ",
+                  firstevent," / ",lastevent);
+      for (i=0;i<256;++i) rdiag[i][rndiag]=ctmp[i];
+
+      ++rndiag;
+      sprintf(ctmp, "%s %f %f %f\n", "    Random number seeds: ",
+              rnd[0][0],rnd[0][1],rnd[0][2]);
+      for (i=0;i<256;++i) rdiag[i][rndiag]=ctmp[i];
+
+      ++rndiag;
+      sprintf(ctmp, "%s %f %f %f\n", "                       : ",
+              rnd[1][0],rnd[1][1],rnd[1][2]);
+      for (i=0;i<256;++i) rdiag[i][rndiag]=ctmp[i];
+
+      ++rndiag;
+      sprintf(ctmp, "%s %f %f %f\n", "                       : ",
+              rnd[2][0],rnd[2][1],rnd[2][2]);
+      for (i=0;i<256;++i) rdiag[i][rndiag]=ctmp[i];
+                        
+      // check ranges of i/p params
+      //
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                                evth.HeightLev[0],mon_HeightLev, 
+                                ": Observation level is "); 
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.SlopeSpec,mon_SlopeSpec[hprimary], 
+                    ": Energy-spectrum slope is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.ELowLim,mon_ElowLim[hprimary], 
+                    ": Energy-low lim is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.EUppLim,mon_EUppLim[hprimary], 
+                    ": Energy-up lim is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.Ecutoffh,mon_Ecutoffh[hprimary], 
+                    ": Energy-cutoff hadrons is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.Ecutoffm,mon_Ecutoffm[hprimary], 
+                    ": Energy-cutoff muons is ");
+
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.Ecutoffe,mon_Ecutoffe[hprimary], 
+                    ": Energy-cutoff electrons is ");
+
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.Ecutoffg,mon_Ecutoffg[hprimary], 
+                    ": Energy-cutoff gammas is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.EGS4yn,mon_EGS4yn[hprimary], 
+                    ": EGS4yn flag is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.NKGyn,mon_NKGyn[hprimary], 
+                    ": NKGyn flag is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.GHEISHAyn,mon_GHEISHAyn[hprimary], 
+                    ": GHEISHAyn flag is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.VENUSyn,mon_VENUSyn[hprimary], 
+                    ": VENUSyn flag is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.CERENKOVyn,mon_CERENKOVyn[hprimary], 
+                    ": CERENKOVyn flag is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.ThetaMin,mon_ThetaMin[hprimary], 
+                    ": ThetaMin  is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.ThetaMax,mon_ThetaMax[hprimary], 
+                    ": ThetaMax  is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.PhiMin,mon_PhiMin[hprimary], 
+                    ": PhiMin  is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.PhiMax,mon_PhiMax[hprimary], 
+                    ": PhiMax  is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.CWaveLower,mon_CWaveLower[hprimary], 
+                    ": CWaveLower is ");
+      monitor_event(diag,&ndiag,primary_name[hprimary], 
+                    evth.CWaveUpper,mon_CWaveUpper[hprimary], 
+                    ": CWaveUpper is ");      
+    
+  } // for each data directory
+
+  // store contents of temporary 1D histograms to profiles
+
+  /*
+	Int_t bin;
+	Stat_t value;
+
+	for (kbin=0; kbin<18; ++kbin) {
+
+    for (i=0; i<60; ++i) {
+	ftstime[kbin][i] /= ntotfiles;
+	fts2time[kbin][i] = sqrt(fts2time[kbin][i]/ntotfiles - 
+	SQR(ftstime[kbin][i]));
+	bin=i+1, value=ftstime[kbin][i];
+	cout << bin << ' ' << value << endl << flush;
+	htime->SetBinContent( bin, value );
+	htime->SetBinError( i+1, fts2time[kbin][i] );
+    }
+    
+    for (i=0; i<NTHSTEP; ++i) {
+	ftselec[kbin][i] /= ntotfiles;
+	fts2elec[kbin][i] = sqrt(fts2elec[kbin][i]/ntotfiles - 
+	SQR(ftselec[kbin][i]));
+	helec->SetBinContent( i+1, ftselec[kbin][i] );
+	helec->SetBinError( i+1, fts2elec[kbin][i] );
+    }
+
+    for (i=0; i<NTHSTEP; ++i) {
+	ftslight[kbin][i] /= ntotfiles;
+	fts2light[kbin][i] = sqrt(fts2light[kbin][i]/ntotfiles - 
+	SQR(ftslight[kbin][i]));
+	hlight->SetBinContent( i+1, ftslight[kbin][i] );
+	hlight->SetBinError( i+1, fts2light[kbin][i] );
+    }
+
+    TH1F h1;
+    TH1F h2;
+    TH1F h3;
+
+    htime->Copy( h1 );
+    helec->Copy( h2 );
+    hlight->Copy( h3 );
+
+    hfile.Write();
+	
+	}
+  */
+  
+  // close output file
+  
+  if ( verbose >= VERBOSE_MINIMAL ) 
+	log( SIGNATURE, "Closing N-Tuple file %s\n", outname );
+  
+  // hfile.Write();
+  // hfile.Close();  
+  
+  HROUT(0,icycle," ");
+
+  fprintf(stdout, "%s\n", "-------------------------------------------------------------");
+  fprintf(stdout, "%s\n", "---------------------- RUN STATISTICS -----------------------");
+
+  for (i=0;i<=rndiag;++i) 
+      {char tmp[256]; int j;
+      {for (j=0;j<256;++j) tmp[j]=rdiag[j][i];}
+       fprintf(stdout,"%s",tmp);}
+
+  fprintf(stdout, "%s\n", "-------------------------------------------------------------");
+  fprintf(stdout, "%s\n", "----------------------- DIAGNOSTICS -------------------------");
+  fprintf(stdout, "%s\n", "-------------------------------------------------------------");
+
+  if (ndiag<0) 
+     {fprintf(stdout, "%s\n", " None, everything's splendidly perfect ...");
+      fprintf(stdout, "%s\n", " Nada, todo fue bien, hacemos fiesta ...");
+      fprintf(stdout, "%s\n", " Keine Fehler gefunden ...");}
+  else 
+    {for (i=0;i<=ndiag;++i) 
+         {char tmp[256]; int j;
+         {for (j=0;j<256;++j) tmp[j]=diag[j][i];}
+          fprintf(stdout,"%s",tmp);}}
+
+
+  HREND("CHECKMC");
+  
+  // program finished
+  
+  if ( verbose >= VERBOSE_MINIMAL ) 
+  	log( SIGNATURE, "Done.\n");
+  
+}
+// @endcode
+
+// @T \newpage
+
+// @subsection Functions definition
+
+//------------------------------------------------------------
+// @name present
+//
+// @desc Make some presentation
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// @function @code 
+//------------------------------------------------------------
+// present
+//
+// make some presentation
+//------------------------------------------------------------
+
+void 
+present(void)
+{
+cout << "##################################################\n"
+<<  SIGNATURE << '\n' << '\n'
+<< "Check of the MC data generated by MMCS\n"
+<< "J C Gonzalez, P Morawitz, D Petry, 27 Oct 1998\n"
+<< "##################################################\n\n";
+}
+// @endcode
+
+//------------------------------------------------------------
+// @name log                             
+//                                   
+// @desc function to send log information
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// @function @code 
+//------------------------------------------------------------
+// log
+//
+// function to send log information
+//------------------------------------------------------------
+
+void
+log(const char *funct, char *fmt, ...)
+{
+  va_list args;
+  
+  //  Display the name of the function that called error
+  printf("[%s]: ", funct);
+  
+  // Display the remainder of the message
+  va_start(args, fmt);
+  vprintf(fmt, args);
+  va_end(args);
+}
+// @endcode
+
+//------------------------------------------------------------
+// @name error                                                    
+//                                                           
+// @desc function to send an error message, and abort the program
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// @function @code 
+//------------------------------------------------------------
+// error
+//
+// function to send an error message, and abort the program
+//------------------------------------------------------------
+
+void
+error(const char *funct, char *fmt, ...)
+{
+  va_list args;
+
+  //  Display the name of the function that called error
+  fprintf(stderr, "ERROR in %s: ", funct);
+
+  // Display the remainder of the message
+  va_start(args, fmt);
+  vfprintf(stderr, fmt, args);
+  va_end(args);
+
+  fprintf(stderr, "\nTerminating program.\n");
+  exit(999);
+}
+// @endcode
+
+
+//------------------------------------------------------------
+// @name readparam                                        
+//                                                    
+// @desc function to read the parameters of the check
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// @function @code 
+//------------------------------------------------------------
+// readparam
+//
+// function to read the parameters of the check
+//------------------------------------------------------------
+
+void 
+readparam(void)
+{
+  char sign[] = GLUE_postp( PROGRAM, VERSION ); // initialize sign
+  char line[LINE_MAX_LENGTH];    // line to get from the stdin
+  char token[ITEM_MAX_LENGTH];   // a single token
+  int i, j;                      // dummy counters
+
+  // get signature
+  cout << "\nExpecting input from stdin (see example input file) ...\n";
+  cin.getline(sign, strlen(SIGNATURE) + 1);
+  //  cin.getline(line, LINE_MAX_LENGTH);
+  if (strcmp(sign, SIGNATURE) != 0) {
+    cerr << "ERROR: Signature of parameters file is not correct\n";
+    cerr << '"' << sign << '"' << '\n';
+    cerr << "should be: " << SIGNATURE << '\n';
+    exit(1);
+  }
+
+  // loop till the "end" directive is reached
+  int is_end = FALSE;
+  while (! is_end) {          
+
+    // get line from stdin
+    cin.getline(line, LINE_MAX_LENGTH);
+
+    // look for each item at the beginning of the line
+    for (i=0; i<=end_file; i++) 
+      if (strstr(line, PAR_ITEM_NAMES[i]) == line)
+        break;
+        
+    // if it is not a valid line, just ignore it
+    if (i == end_file+1) {
+      cerr << "    Skipping unknown token in [" << line << "]\n";
+      continue;
+    }
+
+    // case block for each directive
+    switch ( i ) {
+
+    case data_paths:          // beginning of the list of valid paths
+          
+      //get number of paths to read
+      sscanf(line, "%s %d", token, &Num_of_paths);
+
+      if ( verbose == TRUE )
+        cout << "    " << Num_of_paths << " path(s) will be used.\n";
+
+      // allocate memory for paths list
+      Paths_list = (char**)malloc(Num_of_paths * sizeof(char*));
+      for (i=0; i<Num_of_paths; i++) 
+        Paths_list[i] = (char*)malloc(PATH_MAX_LENGTH * sizeof(char));
+
+      // read each single path
+      for (i=0; i<Num_of_paths; i++) {
+
+        cin.getline(Paths_list[i], PATH_MAX_LENGTH);
+
+        // remove empty spaces at the end
+        for (j=0; j<strlen(Paths_list[i]); j++) {
+          if (Paths_list[i][j] == ' ') {
+            Paths_list[i][j] = '\0';
+            break;
+          }                     
+        }
+
+        // show the path
+        if ( verbose == TRUE )
+          cout << "    " << '[' << Paths_list[i] << ']' << '\n';
+      }
+
+      break;
+
+    case output_file:         // name of the output file
+          
+      // get the name of the output_file from the line
+      sscanf(line, "%s %s", token, Output_filename);
+
+      break;     
+
+    case verbose_level:      // verbose level 0-4
+          
+      // get the verbose level
+      sscanf(line, "%s %d", token, &verbose);
+          
+      break;
+
+    case max_events:          // maximum number of events
+          
+      // get the number of events
+      sscanf(line, "%s %d", token, &max_Events);
+          
+      break;
+
+    case end_file:            // end of the parameters file
+
+      // show a short message
+      is_end = TRUE;
+
+      break;
+
+    } // switch ( i ) 
+
+  } // while (! is_end)
+
+  // after the loop is finished, return to the main function
+  return;
+}
+// @endcode
+
+
+//------------------------------------------------------------
+// @name get_num_of_paths                 
+//                                                
+// @desc get number of defined paths
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// @function @code 
+//--------------------------------------------------
+// get_num_of_paths
+//
+// get number of defined paths
+//--------------------------------------------------
+int
+get_num_of_paths(void)
+{
+  return (Num_of_paths);
+}
+// @endcode
+
+
+//------------------------------------------------------------
+// @name get_path_name
+//                                                
+// @desc get path name number "i" from the list of paths
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// @function @code 
+//--------------------------------------------------
+// get_path_name
+//
+// get path name number "i" from the list of paths
+//--------------------------------------------------
+char *
+get_path_name(int i)
+{
+  return (Paths_list[i]);
+}
+// @endcode
+
+
+//------------------------------------------------------------
+// @name get_output_filename
+//                                                
+// @desc get name of the output file
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// @function @code 
+//--------------------------------------------------
+// get_output_filename
+//
+// get name of the output file
+//--------------------------------------------------
+char *
+get_output_filename(void)
+{
+  return (Output_filename);
+}
+// @endcode
+
+
+
+
+//------------------------------------------------------------
+// @name get_verbose
+//                                                
+// @desc get the "verbose" status
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// @function @code 
+//--------------------------------------------------
+// get_verbose
+//
+// get the "verbose" status
+//--------------------------------------------------
+int
+get_verbose(void)
+{
+  return (verbose);
+}
+// @endcode
+
+
+//------------------------------------------------------------
+// @name get_max_event              
+//                                          
+// @desc get max events number
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// @function @code 
+//--------------------------------------------------
+// get_max_event
+//
+// get max events number
+//--------------------------------------------------
+int 
+get_max_events(void)
+{
+  return( max_Events );
+}
+// @endcode
+
+
+//------------------------------------------------------------
+// @name thick       
+//                                          
+// @desc converts height [cm] -> thickness [g cm-2]
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// @function @code 
+//--------------------------------------------------
+// thick
+//
+// converts height [cm] -> thickness [g cm-2]
+//--------------------------------------------------
+
+float 
+thick( float height, float theta )
+{
+  float h, thk;
+
+  // Ibarra's modification
+  h = sqrt( SQR(REarth) + 
+            SQR(height/cos(theta)) + 
+            (2.0*REarth*height)) - REarth;
+
+  if     ( h < 4.e5 ) {
+    thk = AATM[0] + BATM[0] * exp ( -h * DATM[0] );
+  } else if ( h < 1.e6 ) {
+    thk = AATM[1] + BATM[1] * exp ( -h * DATM[1] );
+  } else if ( h < 4.e6 ) {
+    thk = AATM[2] + BATM[2] * exp ( -h * DATM[2] );
+  } else if ( h < 1.e7 ) {
+    thk = AATM[3] + BATM[3] * exp ( -h * DATM[3] );
+  } else {
+    thk = AATM[4] - h * CATM[4];
+  }
+
+  return ( thk );
+
+}
+// @endcode
+
+//------------------------------------------------------------
+// @name height   
+//                                          
+// @desc converts thickness [g cm-2] -> height [cm]
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// @function @code 
+//--------------------------------------------------
+// height
+//
+// converts thickness [g cm-2] -> height [cm]
+//--------------------------------------------------
+
+float 
+height( float thk, float theta )
+{
+  float h, height;
+
+  if     ( thk > 631.1e0 ) {
+    h = CATM[0] * log ( BATM[0] / (thk - AATM[0]) );
+  } else if ( thk > 271.7e0 ) {
+    h = CATM[1] * log ( BATM[1] / (thk - AATM[1]) );
+  } else if ( thk > 3.0395e0 ) {
+    h = CATM[2] * log ( BATM[2] / (thk - AATM[2]) );
+  } else if ( thk > 0.00128292e0 ) {
+    h = CATM[3] * log ( BATM[3] / (thk - AATM[3]) );
+  } else {
+    h = (AATM[4] - thk) * DATM[4];
+  }
+  
+  // Ibarra's modification
+  height = SQR(cos(theta)) * 
+    (-REarth + sqrt(SQR(REarth) + 
+                    (SQR(h + (2.0*REarth*h))/SQR(cos(theta)))));
+
+  return ( height );
+
+}
+// @endcode
+ 
+//------------------------------------------------------------
+// @name monitor_event   
+//                                          
+// @desc compare parameter with reference and report if not equal
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// @function @code 
+//--------------------------------------------------
+// monitor_event
+//
+// compare parameter with reference
+//--------------------------------------------------
+void monitor_event(char diag[DIAGX][DIAGY], int *ndiag, const char* primary, 
+                          const float a, const float b, const char* message) 
+{char diagt[DIAGX]; int i; 
+ if (a!=b){
+   if (*ndiag<(DIAGY-1)) 
+     {++*ndiag;
+      sprintf(diagt,"%s%s%s%s%f%s%f\n","Primary ",primary," ",
+	      message,a," but should be ",b);} 
+   else{
+     sprintf(diagt,"%s",
+	"Two many errors encountered, won't print any further diagnostics\n");
+     for (i=0;i<DIAGX;++i){ 
+       diag[i][*ndiag]=diagt[i];
+     }
+   } // endif
+ } // endif
+ return;
+}
Index: /branches/start/MagicSoft/Simulation/Corsika/Checkmc/checkmc.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Checkmc/checkmc.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Checkmc/checkmc.h	(revision 4308)
@@ -0,0 +1,223 @@
+/////////////////////////////////////////////////////////////////
+//
+//  checkmc.h
+//
+//  Created: Thu May  7 16:24:22 1998
+//  Authors:  Jose Carlos Gonzalez et al.
+//  Purpose: include file for checkmc.cxx
+//  Notes: version 2-10-98  
+//  
+/////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+// @section Source code of {\tt checkmc.h}
+
+/* @text
+This section shows the include file {\tt checkmc.h}
+@endtext */
+
+// @subsection Include files
+
+// @code
+#include <iostream.h>
+#include <fstream.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include <math.h>
+#include <float.h>
+#include <sys/types.h>
+#include <dirent.h>
+
+#include "jcmacros.h"
+#include "jcdebug.h"
+
+#include "COREventHeader.hxx"
+#include "CORParticle.hxx"
+#include "CORStatfile.hxx"
+
+// @endcode
+
+// @subsection Macro-definitions, and constants
+
+// @code
+
+
+
+#ifndef VERSION 
+
+#define PROGRAM checkmc
+#define VERSION 1.0
+
+#define GLUE_prep(x,y) #x" "#y
+#define GLUE_postp(x,y) GLUE_prep(x,y)
+
+const char SIGNATURE[] = GLUE_postp( PROGRAM, VERSION );
+
+#endif // ! VERSION
+
+
+
+#define NORM(x) (sqrt(SQR(x[0])+SQR(x[1])+SQR(x[2]))) /* Norm(vector) */
+#define RAD(x)  ((x)*0.0174532925199433)
+#define DEG(x)  ((x)*57.2957795130823)
+
+
+
+// now we define the list PAR_ITEM_LIST of possible items in
+// the CT definition file.
+
+#define PAR_ITEM_LIST  /* LIST OF ITEMS IN THE CT DEFINITION FILE */  \
+T(data_paths),      /* begin of the list of source data paths */   \
+T(output_file),     /* output file */                              \
+T(verbose_level),   /* defines verbose level of the output */      \
+T(max_events),      /* maximum number of event to read */ \
+T(reference_histo),     /* reference histogram  */                              \
+T(end_file)         /* end of the parameters file */
+ 
+#define T(x)  x             // define T() as the name as it is
+
+enum PAR_ITEM_TYPE {
+  PAR_ITEM_LIST
+};
+
+#undef T
+
+#define T(x)  #x              // define T() as the string of x
+
+const char *const PAR_ITEM_NAMES[] = {
+  PAR_ITEM_LIST
+};
+
+#undef T
+
+
+#define LINE_MAX_LENGTH  120
+#define ITEM_MAX_LENGTH  40
+#define PATH_MAX_LENGTH  120
+
+#define NTHSTEP          79  // assumes thstep = 10 g/cm2    (790/10 = 79)
+
+// maximum number of bins for the 1D histograms
+#define NMAXBINS 100 
+
+
+// Verbose Levels
+enum VerboseLevel {
+  VERBOSE_QUIET,
+  VERBOSE_MINIMAL,
+  VERBOSE_NORMAL,
+  VERBOSE_MAXIMAL
+};
+
+#define VERBOSE_DEFAULT  VERBOSE_MINIMAL
+
+// @endcode
+
+/* @text
+Definition of the dimensions of the diagnostics messages array in 
+  monitor_event()
+@endtext */
+// @code
+#define DIAGX 256
+#define DIAGY 20
+// @endcode
+
+
+/* @text
+Data for the atmosphere: useful for conversion between height and thickness.
+@endtext */
+
+// @code
+
+float  AATM[5] = { 
+  -186.5562e0,  
+  -94.919e0,  
+  0.61289e0,
+  0.e0,
+  .01128292e0 };
+float  BATM[5] = { 
+  1222.6562e0,
+  1144.9069e0,
+  1305.5948e0,
+  540.1778e0,
+  0.e0  };
+float  CATM[5] = { 
+  994186.38e0,
+  878153.55e0,
+  636143.04e0,
+  772170.16e0,
+  1.e-9};
+float  DATM[5] = { 
+   1.00584761581626e-06,
+   1.13875301193054e-06,
+   1.57197349828743e-06,
+   1.29505133946124e-06,
+   1.00000000000000e+09};   // = 1 / CATM
+
+// @endcode
+
+
+// @subsection Prototypes of functions
+
+//++
+// prototypes
+//--
+
+//@code
+
+void present(void);
+void log(const char *funct, char *fmt, ...);
+void error(const char *funct, char *fmt, ...);
+void readparam(void);
+int get_num_of_paths(void);
+char *get_path_name(int i);
+char *get_output_filename(void);
+int get_max_events(void);
+float thick( float height, float theta );
+float height( float thk, float theta );
+void monitor_event(char diag[DIAGX][DIAGY], int *ndiag, const char* primary, 
+                          const float a, const float b, const char* message); 
+
+// @endcode
+
+// @text
+// CFortran routines will be used.
+// @endtext
+
+// @code
+#include <stdlib.h>
+#include <cfortran.h>
+// #include <packlib.h>
+#include "hbook.h"
+//#include "minuit.h"
+//#include "kuip.h"
+//#include "zebra.h"
+
+#define PAWC_SIZE 1000000
+
+float pawc_[PAWC_SIZE];
+
+// extern "C"
+//{
+//  extern void hlimit_(int*);
+//  extern void hropen_(int*, char*, char*, char*, int*, int*, int, int, int);
+//  extern void hbookn_(int*, char*, int*, char*, int*, char*, int, int, int);
+//  extern void hrout_(int*, int*, char*, int);
+//  extern void hrend_(char*, int);
+//  extern void hfn_(int*, float*);
+// }
+// @endcode
+
+
+  char* strconcat(const char* s1, const char* s2, char* s3)
+  {
+   for (int i=0;s3[i]=s1[i]; ++i); 
+   for (int i=strlen(s1);s3[i]=s2[i-strlen(s1)]; ++i);
+   return s3;
+  }
+
+
+
Index: /branches/start/MagicSoft/Simulation/Corsika/Checkmc/config.mk.linux-gnu
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Checkmc/config.mk.linux-gnu	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Checkmc/config.mk.linux-gnu	(revision 4308)
@@ -0,0 +1,54 @@
+##################################################################
+#
+# config.mk
+#
+# @file        config.mk
+# @title       small configuration file for Makefile
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the reflector program
+# Notes:   
+#    
+#---------------------------------------------------------------
+# $RCSfile: config.mk.linux-gnu,v $
+# $Revision: 1.1.1.1 $
+# $Author: magiccvs $ 
+# $Date: 1999-11-25 20:34:58 $
+##################################################################
+# @maintitle
+
+# @code
+
+# program
+
+PROGRAM = camera
+
+# compilers & tools
+
+CC            = gcc
+CXX           = g++
+F77           = g77
+
+DOCUM         = ../sus/sus
+RATE          = ../../comstat/comstat -g -p 
+
+OPTIM    = -Df2cFortran 
+DEBUG    = -g
+
+# libraries
+
+CERNDIR = /cern
+INCLUDE_CERN = ${CERNDIR}/pro/include/cfortran
+
+# system
+
+SYSTEM  = linux
+
+# @endcode
+##EOF
Index: /branches/start/MagicSoft/Simulation/Corsika/Checkmc/config.mk.osf1
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Checkmc/config.mk.osf1	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Checkmc/config.mk.osf1	(revision 4308)
@@ -0,0 +1,54 @@
+##################################################################
+#
+# config.mk
+#
+# @file        config.mk
+# @title       small configuration file for Makefile
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the reflector program
+# Notes:   
+#    
+#---------------------------------------------------------------
+# $RCSfile: config.mk.osf1,v $
+# $Revision: 1.1.1.1 $
+# $Author: magiccvs $ 
+# $Date: 1999-11-25 20:34:58 $
+##################################################################
+# @maintitle
+
+# @code
+
+# program
+
+PROGRAM = camera
+
+# compilers & tools
+
+CC            = cc
+CXX           = cxx
+F77           = f77
+
+DOCUM         = ../sus/sus
+RATE          = ../../comstat/comstat -g -p 
+
+OPTIM    = -O
+DEBUG    = -g
+
+# libraries
+
+CERNDIR = /CERN
+INCLUDE_CERN = ${CERNDIR}/cfortran
+
+# system
+
+SYSTEM  = osf
+
+# @endcode
+##EOF
Index: /branches/start/MagicSoft/Simulation/Corsika/Checkmc/input_example
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Checkmc/input_example	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Checkmc/input_example	(revision 4308)
@@ -0,0 +1,8 @@
+checkmc 1.0
+data_paths 1
+/hd61/Maggi/Data/mmcs_spez_221001         
+output_file test/checkmc.hbook
+verbose_level 1
+max_events    10000
+end_file  
+
Index: /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/MSimone.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/MSimone.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/MSimone.cxx	(revision 4308)
@@ -0,0 +1,109 @@
+#include <iostream.h>
+#include "MSimone.hxx"
+//==========
+// MSimone
+//    
+// This class handles and contains the MonteCarlo information
+// with which the events have been generated
+// This information exists for each event.
+
+//ClassImp(MSimone)
+
+
+
+MSimone::MSimone() {
+  //
+  //  default constructor
+  //  set all values to zero
+
+  PartId = 0  ;
+  Energy  = 0. ;
+
+  Theta   = 0. ;
+  Phi     = 0. ;
+
+  CoreD   = 0. ;
+  CoreX   = 0. ;
+  CoreY   = 0. ;
+  
+  FirstInt = 0. ;
+
+  NumCerPhot = 0. ; 
+}
+
+MSimone::~MSimone() {
+  //
+  //  default destructor
+  //
+}
+
+
+
+
+void MSimone::Clear() {
+  //
+  //  
+  //  reset all values to zero
+
+  PartId  = 0.  ;
+  Energy  = 0.  ;
+
+  Theta   = 0.  ;
+  Phi     = 0.  ;
+
+  CoreD   = 0.  ;
+  CoreX   = 0.  ;
+  CoreY   = 0.  ;
+  
+  FirstInt= 0.  ; 
+
+  NumCerPhot = 0. ; 
+}
+
+
+void MSimone::Print(void) {
+  //
+  //  print out the data member on screen
+  //
+  cout <<endl << "Monte Carlo output:" <<endl;
+  cout << " Particle Id    : " << PartId ; 
+  cout << " Energy (GeV)   : " << Energy  ; 
+  cout << endl ; 
+}
+
+
+void MSimone::Transfer( COREventHeader *e )
+{
+  PartId       = e->PrimaryID;
+  Energy       = e->Etotal;
+
+  Theta          = e->Theta;
+  Phi            = e->Phi;
+  
+  Float_t x, y ; 
+
+  CoreD = e->get_core(&x, &y, 0 ) ; 
+
+  CoreX = x ; 
+  CoreY = y ; 
+
+  FirstInt      = e->zFirstInt;
+
+}
+
+void MSimone::SetNumCerPhot( Int_t iN ) 
+{
+  NumCerPhot = (Float_t) iN ; 
+}
+
+void MSimone::NtupFill( TNtuple *n )
+{
+  n->Fill(PartId,Energy,Theta,Phi,CoreX, CoreY, CoreD, NumCerPhot ) ; 
+}
+
+
+
+
+
+
+
Index: /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/MSimone.hxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/MSimone.hxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/MSimone.hxx	(revision 4308)
@@ -0,0 +1,52 @@
+#ifndef __MSimone__
+#define __MSimone__
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>  
+
+#include <iostream.h>
+#include "TObject.h"
+#include "TNtuple.h"
+
+#include "COREventHeader.hxx"
+
+//class MSimone : public TObject {
+class MSimone {
+ private:
+  Float_t  PartId;        // Type of particle
+  Float_t  Energy;       // Energy in GeV
+
+  Float_t  Theta;        // Theta angle of event 
+  Float_t  Phi;          // Phi angle of event 
+
+  Float_t  CoreD;        // Core d pos
+  Float_t  CoreX;        // Core x pos
+  Float_t  CoreY;        // Core y pos
+
+  Float_t  FirstInt ;    // First interaction in cm above sea level
+
+  Float_t  NumCerPhot ;  // Number of Cerenkov photons in shower
+  
+ public:
+  MSimone() ;         
+  
+  ~MSimone(); 
+
+  void Clear();
+
+  void Print(void);
+
+  void Transfer ( COREventHeader *e );
+
+  void NtupFill ( TNtuple *n ) ; 
+
+  void SetNumCerPhot( Int_t iN ) ; 
+
+  //  ClassDef(MSimone, 1)   //Stores Montecarlo Information 
+
+};
+
+#endif
Index: /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/MainFrameSimone.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/MainFrameSimone.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/MainFrameSimone.cxx	(revision 4308)
@@ -0,0 +1,636 @@
+//
+//
+//
+#define  START_DIRECTORY  "/dat1"
+#define S_ISDIR(m) (((m)&(0170000)) == (0040000))  
+
+#include <TApplication.h>
+#include <TGMsgBox.h>
+
+#include "MainFrameSimone.hxx"
+
+
+
+MainFrameSimone::MainFrameSimone(const TGWindow *p, UInt_t w, UInt_t h)
+    : TGMainFrame(p, w, h)
+{
+  sprintf (fInputPath, "\0" ) ; 
+  fNumEvents = 0 ; 
+  
+  fNtup = new TNtuple ("fNtup", "Ntuple with Run distributions", 
+		       "PartID:Energy:CoreX:CoreY") ; 
+  //
+  // Create a main frame with a number of different buttons.
+  //
+
+  //
+  // First create the MenuBar. 
+  //
+
+  fLayMenuBar = new TGLayoutHints ( kLHintsTop | kLHintsLeft | kLHintsExpandX,
+				    2, 2, 2, 2 ) ; 
+  fLayMenuItem = new TGLayoutHints ( kLHintsTop | kLHintsLeft ,
+				     0, 4, 0, 0 ) ; 
+
+  
+  fFileMenu = new TGPopupMenu ( fClient->GetRoot() ) ; 
+  fFileMenu->AddEntry ("Exit", M_FILE_EXIT ) ; 
+
+  //
+  //  the button messages are handled by main frame (this) 
+  //
+  fFileMenu->Associate(this) ; 
+
+
+  fMenuBar = new TGMenuBar ( this, 1, 1, kHorizontalFrame ) ; 
+  fMenuBar->AddPopup("File", fFileMenu, fLayMenuItem ) ; 
+  
+  AddFrame(fMenuBar, fLayMenuBar ) ; 
+
+
+  //
+  // create the Tab 
+  //
+
+  fFrame = new TGCompositeFrame (this, 300,300, kHorizontalFrame ) ; 
+  
+  fLayTab = new TGLayoutHints ( kLHintsTop | kLHintsLeft | kLHintsExpandX  , 5, 5, 5, 5 ) ; 
+  fTab = new TGTab ( fFrame, 400, 400 ) ; 
+  
+  TGCompositeFrame *tf = fTab->AddTab("Input") ; 
+  fTabF1 = new TGCompositeFrame (tf, 100, 100, kHorizontalFrame) ; 
+
+  tf->AddFrame(fTabF1, fLayTab ) ; 
+
+  fTabF1a = new TGCompositeFrame (tf, 100, 100, kHorizontalFrame) ; 
+  tf->AddFrame(fTabF1a,  new TGLayoutHints ( kLHintsTop | kLHintsLeft | kLHintsExpandX, 5, 5, 5, 5 ) ) ; 
+
+  fTabF1b = new TGCompositeFrame (tf, 100, 100, kVerticalFrame) ; 
+  tf->AddFrame(fTabF1b,  new TGLayoutHints ( kLHintsTop | kLHintsLeft | kLHintsExpandX | kLHintsExpandY  , 5, 5, 5, 5 ) ) ; 
+
+  fDir = new TGListBox(fTabF1, -1) ; 
+  fDir->Resize(350,20) ; 
+  char temp[100] ; 
+  //  sprintf ( temp, "%s", START_DIRECTORY ) ; 
+  sprintf ( temp, "%s", gSystem->WorkingDirectory()  ) ; 
+  fDir->AddEntry(temp, 1) ; 
+  fTabF1->AddFrame( fDir, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 5, 5, 5, 5 ) ) ; 
+
+
+  fPicCdup = fClient->GetPicture("tb_uplevel.xpm") ; 
+  fCdup = new TGPictureButton(fTabF1, fPicCdup, M_CDIR_UP ) ; 
+  fCdup->SetToolTipText("One Level up!") ; 
+  fCdup->Associate(this) ; 
+  fTabF1->AddFrame (fCdup, new TGLayoutHints(kLHintsLeft | kLHintsTop, 5, 5, 5, 5) ) ; 
+
+  fPicList = fClient->GetPicture("tb_list.xpm") ; 
+  fListMode = new TGPictureButton(fTabF1, fPicList, M_LIST_MODE ) ; 
+  fListMode->SetToolTipText("List Mode") ; 
+  fListMode->Associate(this) ; 
+  fListMode->SetState(kButtonUp) ; 
+  fListMode->AllowStayDown(kTRUE) ; 
+  fTabF1->AddFrame (fListMode, new TGLayoutHints(kLHintsLeft | kLHintsTop, 5, 5, 5, 5) ) ; 
+
+  fPicDetail = fClient->GetPicture("tb_details.xpm") ; 
+  fDetail = new TGPictureButton(fTabF1, fPicDetail, M_DETAIL_MODE ) ; 
+  fDetail->SetToolTipText("Details Mode") ; 
+  fDetail->Associate(this) ; 
+  fDetail->SetState(kButtonEngaged) ; 
+  fDetail->AllowStayDown(kTRUE) ; 
+  fTabF1->AddFrame (fDetail, new TGLayoutHints(kLHintsLeft | kLHintsTop, 5, 5, 5, 5) ) ; 
+
+  
+  fSelectButton = new TGTextButton(fTabF1b, "Select", M_BUTTON_SELECT );
+  fSelectButton->SetToolTipText("To select a path with Mmcs data files!");
+  fSelectButton->SetState(kButtonDisabled); 
+  fSelectButton->Associate(this) ; 
+
+  fTabF1b->AddFrame(fSelectButton,
+		    new TGLayoutHints(kLHintsTop | kLHintsCenterX, 5, 5, 5, 5) ) ; 
+  
+  fFileView = new TGListView(fTabF1b, 540, 380 ) ; 
+  fFileCont = new TGFileContainer(fFileView->GetViewPort(), 100, 100,
+				  kVerticalFrame, fgWhitePixel) ; 
+
+  fFileCont->Associate(this) ; 
+  fFileView->GetViewPort()->SetBackgroundColor(fgWhitePixel) ; 
+  fFileView->SetContainer(fFileCont) ; 
+  fFileCont->SetFilter("*") ; 
+  //  fFileCont->ChangeDirectory(START_DIRECTORY) ; 
+  fFileCont->ChangeDirectory(gSystem->WorkingDirectory()) ; 
+  fFileView->SetViewMode(kLVDetails); 
+  fFileCont->Sort(kSortByName) ; 
+  
+  fTabF1b->AddFrame(fFileView, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 5, 5, 5, 5) ) ; 
+
+  //
+  //  create Tab 2 
+  //
+
+  tf = fTab->AddTab("Run Dist") ; 
+  fTabF2 = new TGCompositeFrame (tf, 100, 100, kVerticalFrame) ; 
+  
+  tf->AddFrame(fTabF2,  new TGLayoutHints(kLHintsTop | kLHintsExpandX | kLHintsExpandY, 5, 5, 5, 5)) ; 
+
+  //  create the vertical subframes
+
+  fTabF2a = new TGCompositeFrame (fTabF2, 100, 100, kHorizontalFrame) ; 
+  fTabF2->AddFrame(fTabF2a, fLayTab ) ; 
+
+  fTabF2b = new TGCompositeFrame (fTabF2, 300, 300, kHorizontalFrame) ; 
+  fTabF2->AddFrame(fTabF2b, 
+		   new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX |kLHintsExpandY, 5, 5, 5, 5 ) ) ; 
+
+  fTabF2c = new TGCompositeFrame (fTabF2, 100, 100, kHorizontalFrame) ; 
+  fTabF2->AddFrame(fTabF2c,new TGLayoutHints(kLHintsBottom | kLHintsLeft | kLHintsExpandX, 5, 5, 5, 5 )  ) ; 
+
+  //  create the entries in first subframe
+
+  fLabelInput = new TGLabel(fTabF2a, new TGString("Title:") );       
+  fTabF2a->AddFrame( fLabelInput, new TGLayoutHints(kLHintsTop | kLHintsLeft , 5, 5, 5, 5 ) ) ;   
+
+  fDir2 = new TGListBox(fTabF2a, -1) ; 
+  fDir2->Resize(350,20) ; 
+  sprintf ( temp, "%s", fInputPath ) ; 
+  fDir2->AddEntry(temp, 1) ; 
+  fTabF2a->AddFrame( fDir2, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX | kLHintsExpandY, 5, 5, 5, 5 ) ) ; 
+  
+  fLabelNumEvts = new TGLabel(fTabF2a, new TGString("Number of Events:") );       
+  fTabF2a->AddFrame( fLabelNumEvts, new TGLayoutHints(kLHintsTop | kLHintsLeft , 5, 5, 5, 5 ) ) ;   
+  
+  fDirNum = new TGListBox(fTabF2a, -1) ; 
+  fDirNum->Resize(50,20) ; 
+  fTabF2a->AddFrame( fDirNum, 
+		     new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5 ) ) ;
+
+  fButtonPlot = new TGTextButton(fTabF2a, "PLOT", M_BUTTON_PLOT );
+  fButtonPlot->Associate(this) ;   
+  fTabF2a->AddFrame (fButtonPlot, new TGLayoutHints(kLHintsTop | kLHintsLeft, 50, 50, 5, 5) );
+
+  //  create the entries in the second subframe
+  
+  fCanvasRun = new TRootEmbeddedCanvas("fCanvasRun", fTabF2b, 300, 300 ) ; 
+  fTabF2b->AddFrame(fCanvasRun, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandY | kLHintsExpandX, 5, 5, 5, 5 ) ) ; 
+
+  //  create the entries in the second subframe
+
+  fButtonPartID = new TGTextButton(fTabF2c, "PartId", M_BUTTON_PARTID );
+  fButtonPartID->Associate(this) ;
+  fTabF2c->AddFrame (fButtonPartID, new TGLayoutHints(kLHintsBottom | kLHintsLeft, 2, 2, 2, 2) );
+
+  fButtonEnergy = new TGTextButton(fTabF2c, "Energy", M_BUTTON_ENERGY );
+  fButtonEnergy->Associate(this) ;
+  fTabF2c->AddFrame (fButtonEnergy, new TGLayoutHints(kLHintsBottom | kLHintsLeft, 2, 2, 2, 2) );
+
+  fButtonCore = new TGTextButton(fTabF2c, "CoreX", M_BUTTON_CORE );
+  fButtonCore->Associate(this) ;
+  fTabF2c->AddFrame (fButtonCore, new TGLayoutHints(kLHintsBottom | kLHintsLeft, 2, 2, 2, 2) );
+
+  //
+  //  create Tab 3 
+  //
+
+  tf = fTab->AddTab("Control") ; 
+  fTabF3 = new TGCompositeFrame (tf, 100, 100, kVerticalFrame) ; 
+  
+  
+  fButton1 = new TGTextButton(fTabF3, "&Exit", M_CTRL_EXIT);
+  fButton2 = new TGTextButton(fTabF3, "Working Directory", M_CTRL_PWD);
+  fButton3 = new TGTextButton(fTabF3, "Input Path", M_CTRL_PATH);
+
+  fButton1->Associate(this) ; 
+  fButton2->Associate(this) ; 
+  fButton3->Associate(this) ; 
+  
+  fLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 10, 10, 10, 10);
+  
+  fTabF3->AddFrame (fButton1, fLayout ) ; 
+  fTabF3->AddFrame (fButton2, fLayout ) ; 
+  fTabF3->AddFrame (fButton3, fLayout ) ; 
+  
+  tf->AddFrame(fTabF3, fLayTab) ; 
+
+  fFrame->AddFrame ( fTab, new TGLayoutHints(kLHintsBottom | kLHintsExpandX | kLHintsExpandY, 5, 5, 5, 5) ); 
+
+  AddFrame(fFrame, new TGLayoutHints (kLHintsExpandX|kLHintsExpandY) ) ; 
+
+
+
+  //
+  //
+  //
+
+  MapSubwindows();
+  
+  Layout();
+  
+  SetWindowName("MainSimone");
+  SetIconName("MainSimone");
+  
+  MapWindow();
+}
+ 
+// ======================================================================
+// ======================================================================
+
+MainFrameSimone::~MainFrameSimone() {
+  
+  delete fButton1 ; 
+  delete fButton2 ; 
+  delete fFrame, fTab, fTabF1, fTabF2, fTabF3 ; 
+  delete fTabF1a, fTabF1b ; 
+  delete fDir, fCdup, fListMode, fDetail ; 
+  delete fFileCont, fFileView ;
+  delete fFileMenu, fMenuBar; 
+  delete fLayout, fLayMenuBar, fLayMenuItem, fLayTab ; 
+ 
+  delete  fPicCdup, fPicList, fPicDetail ; 
+  
+}
+
+// ======================================================================
+// ======================================================================
+ 
+void MainFrameSimone::CloseWindow()
+{
+   // Got close message for this MainFrame. Calls parent CloseWindow()
+   // (which destroys the window) and terminate the application.
+   // The close message is generated by the window manager when its close
+   // window menu item is selected.
+
+   TGMainFrame::CloseWindow();
+   gROOT->GetApplication()->Terminate(0)  ; 
+
+}
+
+// ======================================================================
+// ======================================================================
+
+Bool_t MainFrameSimone::CerFileExist(Char_t *dir)
+{
+  Char_t testfile[110] ;
+  FILE *unit ; 
+  
+  sprintf (testfile, "%s/%s/cer000001", 
+	    	     gSystem->WorkingDirectory(), dir  ) ; 
+  //
+  //   try to open the testfile
+  //
+
+  if ( (unit = fopen (testfile, "r" )) == 0 ) {
+    //
+    //  doesn't exist --> kFALSE
+     return (kFALSE) ; 
+  }
+  else {
+    fclose ( unit ) ; 
+    
+    return ( kTRUE ) ; 
+  }
+  
+  return (kFALSE) ; 
+}
+
+// ======================================================================
+// ======================================================================        
+Bool_t MainFrameSimone::CheckNtup()
+{
+  if ( ! strcmp( fInputPath, "\0")  ) {
+    printf ("No InputPath specified!! Do this before!!\n") ; 
+    return (kFALSE) ;
+  }
+  
+
+  if ( ! strcmp ( fInputPath, fNtupPath ) ) {
+    return (kTRUE) ; 
+  }
+  else {
+    
+    if ( ReadDataToNtup() ) {
+      return (kTRUE) ; 
+    }
+  }
+      
+  return (kFALSE) ;
+}
+
+// ======================================================================
+// ======================================================================
+
+Bool_t MainFrameSimone::ReadDataToNtup()
+{
+  Char_t  cername[256] ; 
+  Char_t  datname[256] ;
+  
+  ifstream   cerfile ; 
+  
+  COREventHeader Event ;  
+  
+  printf("readin the input path: %s \n", fInputPath ) ; 
+  
+  fNtup->Reset() ; 
+
+  for (int i_cer = 1; i_cer <= 100000; i_cer++ ) {
+  
+    //   create the file names 
+    
+    sprintf ( cername, "%s/cer%06d", fInputPath, i_cer ) ; 
+    sprintf ( datname, "%s/dat%06d", fInputPath, i_cer ) ; 
+    
+    //   try to open the files
+        
+    cerfile.open( cername );
+    
+    if ( cerfile.bad() ) { 
+
+      fNumEvents = i_cer -1 ;
+      
+      sprintf ( datname, "%d", fNumEvents ) ; 
+
+      fDirNum->RemoveEntry(1) ; 
+      fDirNum->AddEntry(datname,1) ; 	    
+      fDirNum->MapSubwindows() ; 
+      fDirNum->Layout() ;  
+      
+      break ; 
+    }
+    
+    Event.read( cerfile );
+
+    //
+    //   fill Ntuple
+    // 
+    
+    fNtup->Fill( Event.get_primary() ,
+		 Event.get_energy() , 
+		 Event.get_coreX(), 
+		 Event.get_coreY() ) ;  
+
+ 
+    cerfile.close();
+    
+  }
+
+  //
+  //    set some value of this class
+  //
+  sprintf ( fNtupPath, "%s", fInputPath) ;  
+
+  return (kTRUE) ; 
+}
+
+// ======================================================================
+// ======================================================================
+
+Bool_t MainFrameSimone::ProcessMessage(Long_t msg, Long_t parm1, Long_t)
+{
+  Int_t retval = 0 ; 
+  Char_t  wort[100] ;
+  Char_t  testfile[100] ;
+  Char_t  extens[5] ;
+  Char_t  command[110] ;
+ 
+  TGFileItem *item ;     // to process items in the file view container
+  void *np = NULL ;      // null pointer
+
+  TCanvas *canvas =  fCanvasRun->GetCanvas();   
+ 
+  // Process events generated by the buttons in the frame.
+
+  switch (GET_MSG(msg)) {
+  case kC_COMMAND:
+    switch (GET_SUBMSG(msg)) {
+    case kCM_BUTTON:
+
+      switch (parm1) {
+      case M_CDIR_UP :
+	sprintf ( fInputPath, "\0") ; 
+	fSelectButton->SetState(kButtonDisabled) ; 
+	fDir2->RemoveEntry(1) ; 
+	fDir2->AddEntry(fInputPath,1) ; 
+	fDir2->MapSubwindows() ; 
+	fDir2->Layout() ;   
+	      
+	//
+	//  goto the parent directory
+	//
+	gSystem->ChangeDirectory("..") ; 
+	fDir->RemoveEntry(1) ; 
+	sprintf (wort, "%s", gSystem->WorkingDirectory() ) ; 
+	fDir->AddEntry(wort,1) ; 
+	fDir->MapSubwindows() ; 
+	fDir->Layout() ; 
+	fFileCont->ChangeDirectory( wort ) ; 
+	fFileCont->DisplayDirectory() ; 
+	  
+	break ; 
+
+      case M_LIST_MODE:
+	fFileView->SetViewMode(kLVList) ; 
+	fDetail->SetState(kButtonUp) ; 
+	break ; 
+
+      case M_DETAIL_MODE:
+	fFileView->SetViewMode(kLVDetails) ; 
+	fListMode->SetState(kButtonUp) ; 
+	break ; 
+
+      case M_BUTTON_SELECT: 
+
+	if ( fFileCont->NumSelected() == 1 ) {   
+	  //
+	  //  one file selected
+	  //	  
+	  item = (TGFileItem *) fFileCont->GetNextSelected(&np) ; 
+
+	  if ( S_ISDIR(item->GetType()) ) {   // file is directory
+	    
+	    sprintf (fInputPath, "%s/%s",
+		     gSystem->WorkingDirectory(), 
+		     item->GetItemName()->GetString()) ;
+
+	    fDir2->RemoveEntry(1) ; 
+	    fDir2->AddEntry(fInputPath,1) ; 	    
+	    fDir2->MapSubwindows() ; 
+	    fDir2->Layout() ;   
+	      
+	  }
+	}
+	break;
+
+      case M_BUTTON_PARTID: 
+	if ( CheckNtup() )  
+	  {
+	    fNtup->Draw("PartID") ; 
+	    canvas->Modified() ; 
+	    canvas->Update() ; 
+	  }
+	else  
+	  printf("No Ntuple exist!!\n"); 
+	break; 
+
+      case M_BUTTON_ENERGY: 
+	if ( CheckNtup() )  
+	  {
+	    fNtup->Draw("Energy") ; 
+	    canvas->Modified() ; 
+	    canvas->Update() ; 
+	  }
+	else  
+	  printf("No Ntuple exist!!\n"); 
+	break; 
+
+      case M_BUTTON_CORE: 
+	if ( CheckNtup() )  
+	  {
+	    fNtup->Draw("CoreY:CoreX") ; 
+	    canvas->Modified() ; 
+	    canvas->Update() ; 
+	  }
+	else  
+	  printf("No Ntuple exist!!\n"); 
+	break; 
+
+      case M_CTRL_EXIT:
+	CloseWindow() ; 
+	break; 
+
+      case M_CTRL_PWD: 
+	printf ("WorkingDirectory -> %s <- \n", gSystem->WorkingDirectory() ) ;
+	break ; 
+
+      case M_CTRL_PATH: 
+	printf ("Input Path: -> %s <- \n", fInputPath ) ;
+	break ; 
+      }
+
+      break; 
+      
+    case kCM_CHECKBUTTON:
+
+      break;
+
+    case kCM_RADIOBUTTON:
+      break;
+
+
+    case kCM_MENU: 
+      switch (parm1) {
+      case M_FILE_EXIT: 
+	CloseWindow() ;
+	break; 
+	
+      }
+      break ; 
+	 
+    default:
+      break;
+      
+    }
+
+  case kC_CONTAINER: 
+    switch (GET_SUBMSG(msg)) {
+      
+      //      case kCT_ITEMCLICK:
+      //        printf ("itemclick\n"); 
+      //        break; 
+
+      
+    case kCT_ITEMDBLCLICK: 
+      //
+      //  process the double click in the file view container
+      //
+      
+      if ( parm1 == kButton1) {
+	if ( fFileCont->NumSelected() == 1 ) {   
+	  //
+	  //  one file selected
+	  //	  
+	  item = (TGFileItem *) fFileCont->GetNextSelected(&np) ; 
+
+	  if ( S_ISDIR(item->GetType()) ) {   // file is directory
+
+	    sprintf (wort, "%s", item->GetItemName()->GetString()) ;
+	    
+	    //
+	    //  check if in this directory the file cer000001 exits
+	    //  if it exists, do not open the stuff
+	    //
+
+	    if ( CerFileExist( wort ) ) {
+	      printf ("Warning: Cer files in directory\n") ; 
+	      fSelectButton->SetState(kButtonUp) ; 
+	    }  
+	    else {
+	      sprintf (fInputPath,"\0") ; 
+	      fSelectButton->SetState(kButtonDisabled) ;
+	      fDir2->RemoveEntry(1) ; 
+	      fDir2->AddEntry(fInputPath,1) ;
+	      fDir2->MapSubwindows() ; 
+	      fDir2->Layout() ;   
+	      //
+	      //  goto directory 
+	      //
+	      fFileCont->ChangeDirectory ( wort ) ; 
+	      gSystem->ChangeDirectory( wort ) ; 
+	      
+	      sprintf (wort, "%s", gSystem->WorkingDirectory() ) ; 
+	      fDir->RemoveEntry(1) ; 
+	      fDir->AddEntry( wort, 1 ) ; 
+	      fDir->MapSubwindows() ; 
+	      fDir->Layout() ; 
+	    }
+	    
+	  }
+	  else {   // item is a file
+	    sprintf (testfile, "%s", item->GetItemName()->GetString() ) ; 
+	    
+	    //
+	    //    determine the file type by extensions
+	    //
+	    
+	    for (Int_t i = 0 ; i<5; i++) 
+	      extens[i] = '\0' ; 
+	    
+	    for ( Int_t i=0; testfile[i] != '\0'; i++) {
+	      if ( testfile[i] == '.') {
+		strncpy (extens, &testfile[i+1], 4 ) ; 
+		break ; 
+	      }
+	    }
+
+	    //
+	    //     postscript file
+	    //
+	    
+	    if ( ! strcmp(extens, "ps") ) {
+	      sprintf ( command, "gv %s/%s &", 
+			gSystem->WorkingDirectory(), 
+			testfile ) ; 
+	      gSystem->Exec(command) ; 
+	      break ; 
+	    }
+	    
+		
+	    
+	      
+	  }
+	}
+      }      
+      else if ( parm1 == kButton3) {  // right mouse double click
+	printf ("huschel kButton3\n");  
+      }
+
+      break; 
+      
+    }
+    break ;
+
+     
+  default:
+    break;
+  }
+  return kTRUE;
+}
+
+
Index: /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/MainFrameSimone.hxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/MainFrameSimone.hxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/MainFrameSimone.hxx	(revision 4308)
@@ -0,0 +1,101 @@
+#include <TROOT.h>
+#include <TSystem.h>
+#include <TGClient.h>
+#include <TGButton.h>
+#include <TGMenu.h>
+#include <TGTab.h>
+#include <TGListBox.h>
+#include <TGLabel.h>
+#include <TGPicture.h>
+#include <TGFSContainer.h>
+#include <TRootEmbeddedCanvas.h>
+#include <TNtuple.h>
+#include <TCanvas.h>
+
+#include "COREventHeader.hxx"
+
+
+enum CommandIdentifiers {
+  M_FILE_EXIT ,
+
+  M_CDIR_UP,
+  M_LIST_MODE , 
+  M_DETAIL_MODE, 
+  M_BUTTON_SELECT,
+
+  M_BUTTON_PLOT, 
+  M_BUTTON_PARTID, 
+  M_BUTTON_ENERGY, 
+  M_BUTTON_CORE,
+
+
+  M_CTRL_EXIT, 
+  M_CTRL_PWD, 
+  M_CTRL_PATH 
+}; 
+
+
+class MainFrameSimone : public TGMainFrame {
+
+private:
+  Char_t            fInputPath[200] ; 
+  Int_t             fNumEvents ; 
+  Char_t            fNtupPath[200] ; 
+
+  TNtuple           *fNtup ; 
+
+  TGMenuBar         *fMenuBar ; 
+  TGPopupMenu       *fFileMenu ;
+  TGCompositeFrame  *fFrame ; 
+  TGTab             *fTab ; 
+  TGCompositeFrame  *fTabF1, *fTabF2, *fTabF3 ; 
+  TGCompositeFrame  *fTabF1a, *fTabF1b ; 
+  TGTextButton      *fSelectButton ; 
+  TGListBox         *fDir ; 
+  TGPictureButton   *fCdup, *fListMode, *fDetail ; 
+  TGFileContainer   *fFileCont ; 
+  TGListView        *fFileView ;
+  TGCompositeFrame  *fTabF2a, *fTabF2b, *fTabF2c ; 
+  TGLabel           *fLabelInput, *fLabelNumEvts ;
+  TGListBox         *fDir2, *fDirNum ; 
+  TGTextButton      *fButtonPlot ; 
+  TRootEmbeddedCanvas    *fCanvasRun ; 
+  TGTextButton      *fButtonPartID, *fButtonEnergy, *fButtonCore ; 
+  
+  TGTextButton      *fButton1 ;
+  TGTextButton      *fButton2 ;
+  TGTextButton      *fButton3 ;
+  TGLayoutHints     *fLayout, *fLayMenuBar, *fLayMenuItem ; 
+  TGLayoutHints     *fLayTab; 
+
+  const TGPicture   *fPicCdup, *fPicList, *fPicDetail ; 
+  
+public:
+  MainFrameSimone(const TGWindow *p, UInt_t w, UInt_t h);
+  ~MainFrameSimone(); 
+  
+  void CloseWindow()  ; 
+
+
+  Bool_t CerFileExist(Char_t *dir) ; 
+  Bool_t CheckNtup() ; 
+  Bool_t ReadDataToNtup() ; 
+  Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
+
+};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/Makefile
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/Makefile	(revision 4308)
@@ -0,0 +1,256 @@
+##################################################################
+#
+# makefile
+#
+# @file        makefile 
+# @title       Simulation of the camera and trigger logic
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the camera program
+# Notes:   
+#    
+#---------------------------------------------------------------
+#
+# $RCSfile: Makefile,v $
+# $Revision: 1.1.1.1 $
+# $Author: harald $ 
+# $Date: 2000-07-06 10:18:48 $
+#
+##################################################################
+# @maintitle
+
+# @code
+
+INCLUDEMK = config.mk.${OSTYPE}
+include ${INCLUDEMK}
+
+# @endcode
+
+# @code 
+
+# common flags
+INCLUDES = -I${INCLUDE}      \
+	   -I${INCLUDE_COR}  \
+	   -I${INCLUDE_ROOT}  \
+	   -I${INCLUDE_SIMO} \
+           -I/usr/include  -I/usr/include/g++
+
+RANLIB  = -L${RANLIBDIR} -lranlib
+
+# what is needed for ROOT is declared in config.mk file
+
+
+# special flags
+
+osf_FORLIBS = -lUfor -lfor -lutil -lots -lm 
+linux_FORLIBS = -lm 
+generic_FORLIBS = -lm 
+
+FORLIBS = ${${SYSTEM}_FORLIBS}
+
+# compilation and linking flags
+
+CXXFLAGS  = -D__${SYSTEM}__ ${INCLUDES} ${OPTIM} ${DEBUG}
+CFLAGS    = ${CXXFLAGS}
+FFLAGS    = ${CXXFLAGS}
+LIBS      = ${RANLIB} ${ROOTLIBS} ${ROOTGLIBS} ${GLIBS} ${FORLIBS} 
+#LIBS      = ${CERNLIB} ${RANLIB} ${FORLIBS} 
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cxx .C .c++ .h .hxx .H .h++ .o .so .f
+
+SRCS = \
+	${INCLUDE_COR}/COREventHeader.cxx \
+	${INCLUDE_COR}/CORParticle.cxx \
+	${INCLUDE_COR}/CORStatfile.cxx \
+	MainFrameSimone.cxx \
+	simone.cxx      
+
+HEADERS = \
+	COREventHeader.hxx \
+	CORParticle.hxx \
+	CORStatfile.hxx \
+	MainFrameSimone.hxx \
+	simone.h
+
+OBJS = \
+	${INCLUDE_COR}/COREventHeader.o \
+	${INCLUDE_COR}/CORParticle.o \
+	${INCLUDE_COR}/CORStatfile.o \
+	MainFrameSimone.o \
+	simone.o      
+
+PROGRAM=simone
+
+############################################################
+
+all: ${PROGRAM}
+
+depend:
+	@makedepend $(SRCS) -fMakefile 2> /dev/null
+
+doc: reflector-doc
+
+reflector-doc: 
+	@echo "Generating documentation for camera . . . "
+	$(DOCUM) -latex -o reflector.tex \
+	reflector.cxx reflector.h \
+	readparam.cxx readparam.h \
+	atm.cxx atm.h
+	latex "\nonstopmode\input{reflector.tex}" && \
+	makeindex reflector && \
+	latex "\nonstopmode\input{reflector.tex}" && \
+	latex "\nonstopmode\input{reflector.tex}"
+	@echo "Files reflector.tex and reflector.dvi generated."
+
+rate: 
+	@echo "Rating documentation inside code . . . "
+	$(RATE) \
+	reflector.cxx reflector.h \
+	readparam.cxx readparam.h \
+	atm.cxx atm.h
+
+${PROGRAM}: $(OBJS)
+	@echo "Linking..." $@
+	$(CXX) $(CXXFLAGS) $(OBJS) $(LIBS) -o $@
+	@echo "done."
+
+.cxx.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo "Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+.f.o:	
+	@echo "Compiling " $<
+	$(F77) $(FFLAGS) -c $< -o $@
+
+lclean:
+	@echo "Cleanning..."
+	@rm -f *.o core 
+
+clean:
+	@echo "Cleanning..."
+	@rm -f $(OBJS) core 
+
+mrproper: clean
+	@echo "Mr.Proper in action . . ."
+	@rm -f $(PROGRAM)
+
+ctags:
+	@echo "Creating CTAGS file . . ."
+	@ctags -txw $(SRCS) $(HEADERS) > CTAGS
+
+etags:
+	@echo "Creating TAGS file . . ."
+	@etags -C $(SRCS) $(HEADERS)
+
+listsrc:
+	@ls -m $(SRCS) $(HEADERS) | sed 's/,//g'
+
+redo: clean all
+
+# @endcode
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+../../Detector/include-CORSIKA/COREventHeader.o: ../../Detector/include-CORSIKA/COREventHeader.hxx
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/stdlib.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/features.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/sys/cdefs.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/gnu/stubs.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/sys/types.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/bits/types.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/time.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/endian.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/bits/endian.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/sys/select.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/bits/select.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/bits/sigset.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/sys/sysmacros.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/alloca.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/math.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/bits/huge_val.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/bits/mathdef.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/bits/mathcalls.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/float.h
+../../Detector/include-CORSIKA/CORParticle.o: ../../Detector/include-CORSIKA/CORParticle.hxx
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/stdlib.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/features.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/sys/cdefs.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/gnu/stubs.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/sys/types.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/bits/types.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/time.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/endian.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/bits/endian.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/sys/select.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/bits/select.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/bits/sigset.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/sys/sysmacros.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/alloca.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/math.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/bits/huge_val.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/bits/mathdef.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/bits/mathcalls.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/float.h
+../../Detector/include-CORSIKA/CORStatfile.o: ../../Detector/include-CORSIKA/CORStatfile.hxx
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/stdlib.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/features.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/sys/cdefs.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/gnu/stubs.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/sys/types.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/bits/types.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/time.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/endian.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/bits/endian.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/sys/select.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/bits/select.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/bits/sigset.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/sys/sysmacros.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/alloca.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/math.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/bits/huge_val.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/bits/mathdef.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/bits/mathcalls.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/float.h
+MainFrameSimone.o: MainFrameSimone.hxx
+MainFrameSimone.o: ../../Detector/include-CORSIKA/COREventHeader.hxx
+MainFrameSimone.o: /usr/include/stdlib.h /usr/include/features.h
+MainFrameSimone.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+MainFrameSimone.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+MainFrameSimone.o: /usr/include/sys/types.h /usr/include/bits/types.h
+MainFrameSimone.o: /usr/include/time.h /usr/include/endian.h
+MainFrameSimone.o: /usr/include/bits/endian.h /usr/include/sys/select.h
+MainFrameSimone.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+MainFrameSimone.o: /usr/include/sys/sysmacros.h /usr/include/alloca.h
+MainFrameSimone.o: /usr/include/math.h /usr/include/bits/huge_val.h
+MainFrameSimone.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h
+MainFrameSimone.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/float.h
+simone.o: /usr/include/stdlib.h /usr/include/features.h
+simone.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+simone.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+simone.o: /usr/include/sys/types.h /usr/include/bits/types.h
+simone.o: /usr/include/time.h /usr/include/endian.h
+simone.o: /usr/include/bits/endian.h /usr/include/sys/select.h
+simone.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+simone.o: /usr/include/sys/sysmacros.h /usr/include/alloca.h
+simone.o: MainFrameSimone.hxx
+simone.o: ../../Detector/include-CORSIKA/COREventHeader.hxx
+simone.o: /usr/include/math.h /usr/include/bits/huge_val.h
+simone.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h
+simone.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/float.h
Index: /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/config.mk.linux-gnu
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/config.mk.linux-gnu	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/config.mk.linux-gnu	(revision 4308)
@@ -0,0 +1,71 @@
+##################################################################
+#
+# config.mk
+#
+# @file        config.mk
+# @title       small configuration file for Makefile
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the reflector program
+# Notes:   
+#    
+#---------------------------------------------------------------
+# $RCSfile: config.mk.linux-gnu,v $
+# $Revision: 1.1.1.1 $
+# $Author: harald $ 
+# $Date: 2000-07-06 10:18:48 $
+##################################################################
+# @maintitle
+
+# @code
+
+# program
+
+PROGRAM = camera
+
+# compilers & tools
+
+CC            = gcc
+CXX           = g++
+F77           = g77
+
+DOCUM         = ../sus/sus
+RATE          = ../../comstat/comstat -g -p 
+
+# includes		
+
+INCLUDE       = ../../Detector/include-GENERAL
+INCLUDE_COR   = ../../Detector/include-CORSIKA
+INCLUDE_ROOT  = ${ROOTSYS}/include  
+INCLUDE_SIMO  = .
+
+OPTIM    = 
+DEBUG    = -g
+
+# libraries
+
+
+ROOTLIBS      = -L/cern/root/lib -lNew -lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lm -ldl -lpthread -rdynamic 
+
+ROOTGLIBS     = -lGpad -lGui -lGX11 -lX3d -lX11
+
+
+GLIBS         = $(ROOTLIBS) $(ROOTGLIBS) -L/usr/X11R6/lib \
+                -lXpm -lX11  -lm -ldl 
+
+
+RANLIBDIR = ../../Detector/lib
+CERNDIR = /CERN
+
+# system
+
+SYSTEM  = linux
+
+# @endcode
+##EOF
Index: /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/config.mk.osf1
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/config.mk.osf1	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/config.mk.osf1	(revision 4308)
@@ -0,0 +1,72 @@
+##################################################################
+#
+# config.mk
+#
+# @file        config.mk
+# @title       small configuration file for Makefile
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the reflector program
+# Notes:   
+#    
+#---------------------------------------------------------------
+# $RCSfile: config.mk.osf1,v $
+# $Revision: 1.1.1.1 $
+# $Author: harald $ 
+# $Date: 2000-07-06 10:18:48 $
+##################################################################
+# @maintitle
+
+# @code
+
+# program
+
+PROGRAM = camera
+
+# compilers & tools
+
+CC            = cc
+CXX           = cxx
+F77           = f77
+
+DOCUM         = ../sus/sus
+RATE          = ../../comstat/comstat -g -p 
+
+# includes		
+
+INCLUDE       = ../../Detector/include-GENERAL
+INCLUDE_COR   = ../../Detector/include-CORSIKA
+INCLUDE_ROOT  = ${ROOTSYS}/include  
+INCLUDE_SIMO  = .
+
+OPTIM    = -O
+DEBUG    = -g
+
+# libraries
+
+ROOTLIBS =  	-L/CERN/root/lib -lNew -lCore -lCint -lHist \
+		-lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript \
+		-lMatrix -lPhysics -lm  
+
+ROOTGLIBS = 	-L/CERN/root/lib -lNew -lCore -lCint -lHist \
+		-lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript \
+		-lMatrix -lPhysics -lGui -lm  
+
+GLIBS = 	$(ROOTLIBS) $(ROOTGLIBS)
+
+
+RANLIBDIR = ../../Detector/lib
+CERNDIR = /CERN
+
+# system
+
+SYSTEM  = osf
+
+# @endcode
+##EOF
Index: /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/simone.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/simone.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/GuiSimone/simone.cxx	(revision 4308)
@@ -0,0 +1,33 @@
+//
+//
+//
+//
+//
+//
+#include <stdlib.h>
+#include "TROOT.h"
+#include "TApplication.h"
+#include <TVirtualX.h>
+
+#include <TGClient.h>   
+
+#include "MainFrameSimone.hxx"
+
+int main(int argc, char **argv)
+{
+  // initialise ROOT
+
+  TROOT simple("simple", "SIMONE - statistic of MonteCarlo");
+
+  TApplication theApp("App", &argc, argv);
+  
+  MainFrameSimone mainWin(gClient->GetRoot(), 600, 500);     
+  
+
+  theApp.Run();
+
+
+  return 0;                              
+}
+
+
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM75
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM75	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM75	(revision 4308)
@@ -0,0 +1,501 @@
+DENSITY AND THICKNESS DATA OF THE ATMOSPHERE AT AN ZENITH ANGLE OF 75.0 DEGREES
+ 0.000000000E+00 3.942178358E+03 1.229805824E-03 3.942178358E+03 0.000000000E+00
+ 1.538785467E+04 3.923210341E+03 1.224888913E-03 3.926593032E+03 1.265841161E+04
+ 3.077570935E+04 3.904464325E+03 1.219991235E-03 3.911007706E+03 2.542251648E+04
+ 4.616356402E+04 3.885714529E+03 1.215112717E-03 3.895422380E+03 3.821958731E+04
+ 6.155141870E+04 3.867039768E+03 1.210253284E-03 3.879837054E+03 5.100302998E+04
+ 7.693927337E+04 3.848507569E+03 1.205412865E-03 3.864251728E+03 6.388464095E+04
+ 9.232712805E+04 3.829821910E+03 1.200591386E-03 3.848666402E+03 7.680906445E+04
+ 1.077149827E+05 3.811529649E+03 1.195788775E-03 3.833081076E+03 8.972023553E+04
+ 1.231028374E+05 3.793151139E+03 1.191004961E-03 3.817495749E+03 1.027313362E+05
+ 1.384906921E+05 3.774753215E+03 1.186239870E-03 3.801910423E+03 1.157856577E+05
+ 1.538785467E+05 3.756682287E+03 1.181493432E-03 3.786325097E+03 1.288272313E+05
+ 1.692664014E+05 3.738525754E+03 1.176765576E-03 3.770739771E+03 1.419695436E+05
+ 1.846542561E+05 3.720438949E+03 1.172056229E-03 3.755154445E+03 1.551563877E+05
+ 2.000421108E+05 3.702135641E+03 1.167365322E-03 3.739569119E+03 1.683311457E+05
+ 2.154299654E+05 3.684389355E+03 1.162692784E-03 3.723983793E+03 1.816675781E+05
+ 2.308178201E+05 3.666679410E+03 1.158038544E-03 3.708398467E+03 1.949321334E+05
+ 2.462056748E+05 3.648880533E+03 1.153402533E-03 3.692813141E+03 2.083002206E+05
+ 2.615935295E+05 3.631152140E+03 1.148784681E-03 3.677227815E+03 2.217143283E+05
+ 2.769813841E+05 3.613563077E+03 1.144184918E-03 3.661642488E+03 2.350377547E+05
+ 2.923692388E+05 3.595815425E+03 1.139603175E-03 3.646057162E+03 2.486829449E+05
+ 3.077570935E+05 3.578459230E+03 1.135039384E-03 3.630471836E+03 2.621785199E+05
+ 3.231449482E+05 3.560945238E+03 1.130493475E-03 3.614886510E+03 2.757800916E+05
+ 3.385328028E+05 3.543686035E+03 1.125965380E-03 3.599301184E+03 2.894295516E+05
+ 3.539206575E+05 3.526378398E+03 1.121455030E-03 3.583715858E+03 3.029038133E+05
+ 3.693085122E+05 3.509139991E+03 1.116962359E-03 3.568130532E+03 3.168728909E+05
+ 3.846963669E+05 3.491682016E+03 1.112487298E-03 3.552545206E+03 3.306118606E+05
+ 4.000842215E+05 3.474777327E+03 1.108029780E-03 3.536959880E+03 3.444956402E+05
+ 4.154720762E+05 3.457906381E+03 1.103589737E-03 3.521374554E+03 3.583888538E+05
+ 4.308599309E+05 3.440942014E+03 1.099167103E-03 3.505789228E+03 3.721900770E+05
+ 4.462477856E+05 3.424045536E+03 1.094761811E-03 3.490203901E+03 3.863252366E+05
+ 4.616356402E+05 3.407285110E+03 1.090373795E-03 3.474618575E+03 4.002257412E+05
+ 4.770234949E+05 3.390363128E+03 1.086002988E-03 3.459033249E+03 4.144643438E+05
+ 4.924113496E+05 3.373831501E+03 1.081649324E-03 3.443447923E+03 4.285491357E+05
+ 5.077992043E+05 3.357203722E+03 1.077312738E-03 3.427862597E+03 4.428079747E+05
+ 5.231870589E+05 3.340642515E+03 1.072993165E-03 3.412277271E+03 4.569121874E+05
+ 5.385749136E+05 3.324215724E+03 1.068690538E-03 3.396691945E+03 4.713599259E+05
+ 5.539627683E+05 3.307786594E+03 1.064404794E-03 3.381106619E+03 4.856528115E+05
+ 5.693506230E+05 3.291423955E+03 1.060135867E-03 3.365521293E+03 5.001255770E+05
+ 5.847384776E+05 3.275194533E+03 1.055883693E-03 3.349935967E+03 5.144398820E+05
+ 6.001263323E+05 3.258801489E+03 1.051648208E-03 3.334350640E+03 5.291032397E+05
+ 6.155141870E+05 3.242794058E+03 1.047429348E-03 3.318765314E+03 5.435253405E+05
+ 6.309020417E+05 3.226691119E+03 1.043227049E-03 3.303179988E+03 5.582984384E+05
+ 6.462898963E+05 3.210664023E+03 1.039041247E-03 3.287594662E+03 5.729793547E+05
+ 6.616777510E+05 3.194757973E+03 1.034871879E-03 3.272009336E+03 5.877153254E+05
+ 6.770656057E+05 3.178847591E+03 1.030718883E-03 3.256424010E+03 6.025075439E+05
+ 6.924534604E+05 3.163000836E+03 1.026582194E-03 3.240838684E+03 6.173561525E+05
+ 7.078413150E+05 3.146929324E+03 1.022461752E-03 3.225253358E+03 6.323262924E+05
+ 7.232291697E+05 3.131405841E+03 1.018357493E-03 3.209668032E+03 6.471473472E+05
+ 7.386170244E+05 3.115909264E+03 1.014269356E-03 3.194082706E+03 6.623212479E+05
+ 7.540048791E+05 3.100314978E+03 1.010197278E-03 3.178497380E+03 6.774006757E+05
+ 7.693927337E+05 3.084783086E+03 1.006141198E-03 3.162912053E+03 6.925387456E+05
+ 7.847805884E+05 3.069381448E+03 1.002101054E-03 3.147326727E+03 7.074575539E+05
+ 8.001684431E+05 3.053976365E+03 9.980767857E-04 3.131741401E+03 7.229040969E+05
+ 8.155562978E+05 3.038630280E+03 9.940683317E-04 3.116156075E+03 7.383771319E+05
+ 8.309441524E+05 3.023414182E+03 9.900756313E-04 3.100570749E+03 7.537552695E+05
+ 8.463320071E+05 3.008030425E+03 9.860986241E-04 3.084985423E+03 7.691944667E+05
+ 8.617198618E+05 2.993028093E+03 9.821372497E-04 3.069400097E+03 7.847622462E+05
+ 8.771077165E+05 2.977638426E+03 9.781914482E-04 3.053814771E+03 8.003280278E+05
+ 8.924955711E+05 2.962793486E+03 9.742611596E-04 3.038229445E+03 8.159537739E+05
+ 9.078834258E+05 2.947973387E+03 9.703463245E-04 3.022644119E+03 8.317106462E+05
+ 9.232712805E+05 2.933052529E+03 9.664468834E-04 3.007058792E+03 8.474632175E+05
+ 9.386591352E+05 2.918191559E+03 9.625627773E-04 2.991473466E+03 8.632800959E+05
+ 9.540469898E+05 2.903435950E+03 9.586939471E-04 2.975888140E+03 8.792309271E+05
+ 9.694348445E+05 2.888693852E+03 9.548403343E-04 2.960302814E+03 8.951778435E+05
+ 9.848226992E+05 2.874079144E+03 9.510018802E-04 2.944717488E+03 9.110965994E+05
+ 1.000210554E+06 2.859454805E+03 9.471785267E-04 2.929132162E+03 9.273391892E+05
+ 1.015598409E+06 2.844889190E+03 9.433702157E-04 2.913546836E+03 9.434322577E+05
+ 1.030986263E+06 2.830451055E+03 9.395768893E-04 2.897961510E+03 9.597461194E+05
+ 1.046374118E+06 2.815841745E+03 9.357984900E-04 2.882376184E+03 9.760982159E+05
+ 1.061761973E+06 2.801610827E+03 9.320349604E-04 2.866790858E+03 9.924352215E+05
+ 1.077149827E+06 2.786989206E+03 9.282862433E-04 2.851205532E+03 1.008772479E+06
+ 1.092537682E+06 2.773001839E+03 9.245522817E-04 2.835620205E+03 1.025429717E+06
+ 1.107925537E+06 2.758853845E+03 9.208330189E-04 2.820034879E+03 1.042061219E+06
+ 1.123313391E+06 2.744692251E+03 9.171283984E-04 2.804449553E+03 1.058388057E+06
+ 1.138701246E+06 2.730494905E+03 9.134383637E-04 2.788864227E+03 1.075467314E+06
+ 1.154089101E+06 2.716607498E+03 9.097628589E-04 2.773278901E+03 1.092242619E+06
+ 1.169476955E+06 2.702616261E+03 9.061018279E-04 2.757693575E+03 1.109166075E+06
+ 1.184864810E+06 2.688680599E+03 9.024552151E-04 2.742108249E+03 1.126160854E+06
+ 1.200252665E+06 2.674868872E+03 8.988229651E-04 2.726522923E+03 1.143230672E+06
+ 1.215640519E+06 2.661044794E+03 8.952050225E-04 2.710937597E+03 1.160301383E+06
+ 1.231028374E+06 2.647276202E+03 8.916013323E-04 2.695352271E+03 1.177522615E+06
+ 1.246416229E+06 2.633642490E+03 8.880118396E-04 2.679766944E+03 1.194644012E+06
+ 1.261804083E+06 2.619983915E+03 8.844364897E-04 2.664181618E+03 1.212119688E+06
+ 1.277191938E+06 2.606380276E+03 8.808752283E-04 2.648596292E+03 1.229571934E+06
+ 1.292579793E+06 2.592899889E+03 8.773280010E-04 2.633010966E+03 1.247115771E+06
+ 1.307967647E+06 2.579244910E+03 8.737947538E-04 2.617425640E+03 1.264726588E+06
+ 1.323355502E+06 2.565965273E+03 8.702754329E-04 2.601840314E+03 1.282341090E+06
+ 1.338743357E+06 2.552290683E+03 8.667699846E-04 2.586254988E+03 1.300112505E+06
+ 1.354131211E+06 2.539154127E+03 8.632783555E-04 2.570669662E+03 1.317966418E+06
+ 1.369519066E+06 2.526035187E+03 8.598004924E-04 2.555084336E+03 1.335720408E+06
+ 1.384906921E+06 2.512520952E+03 8.563363422E-04 2.539499010E+03 1.353843480E+06
+ 1.400294775E+06 2.499547053E+03 8.528858521E-04 2.523913684E+03 1.371945974E+06
+ 1.415682630E+06 2.486587691E+03 8.494489695E-04 2.508328357E+03 1.390133123E+06
+ 1.431070485E+06 2.473231845E+03 8.460256419E-04 2.492743031E+03 1.408409080E+06
+ 1.446458339E+06 2.460506212E+03 8.426158170E-04 2.477157705E+03 1.426768242E+06
+ 1.461846194E+06 2.447611700E+03 8.392194429E-04 2.461572379E+03 1.445214774E+06
+ 1.477234049E+06 2.434413084E+03 8.358364677E-04 2.445987053E+03 1.463749200E+06
+ 1.492621903E+06 2.421751114E+03 8.324668397E-04 2.430401727E+03 1.482373298E+06
+ 1.508009758E+06 2.409105020E+03 8.291105074E-04 2.414816401E+03 1.501086375E+06
+ 1.523397613E+06 2.396060711E+03 8.257674197E-04 2.399231075E+03 1.519890238E+06
+ 1.538785467E+06 2.383645749E+03 8.224375253E-04 2.383645749E+03 1.538785467E+06
+ 1.561621862E+06 2.364607238E+03 8.211630008E-04 2.369952887E+03 1.555191418E+06
+ 1.584458257E+06 2.346052404E+03 8.156058225E-04 2.356260024E+03 1.571691972E+06
+ 1.607294652E+06 2.327632771E+03 8.100855488E-04 2.342567162E+03 1.588683501E+06
+ 1.630131047E+06 2.308967731E+03 8.046019396E-04 2.328874300E+03 1.605344490E+06
+ 1.652967442E+06 2.290457238E+03 7.991547561E-04 2.315181438E+03 1.622508330E+06
+ 1.675803837E+06 2.272387077E+03 7.937437612E-04 2.301488576E+03 1.639333289E+06
+ 1.698640232E+06 2.254452989E+03 7.883687193E-04 2.287795714E+03 1.656265107E+06
+ 1.721476627E+06 2.236300538E+03 7.830293962E-04 2.274102852E+03 1.673667441E+06
+ 1.744313022E+06 2.218604600E+03 7.777255593E-04 2.260409990E+03 1.691186004E+06
+ 1.767149417E+06 2.201037916E+03 7.724569773E-04 2.246717128E+03 1.708349740E+06
+ 1.789985812E+06 2.183241993E+03 7.672234206E-04 2.233024266E+03 1.725617941E+06
+ 1.812822207E+06 2.165915471E+03 7.620246610E-04 2.219331404E+03 1.743389713E+06
+ 1.835658602E+06 2.148709349E+03 7.568604716E-04 2.205638541E+03 1.761275632E+06
+ 1.858494997E+06 2.131262097E+03 7.517306272E-04 2.191945679E+03 1.778793849E+06
+ 1.881331392E+06 2.114284443E+03 7.466349039E-04 2.178252817E+03 1.796421383E+06
+ 1.904167787E+06 2.097431239E+03 7.415730792E-04 2.164559955E+03 1.814579464E+06
+ 1.927004182E+06 2.080326494E+03 7.365449320E-04 2.150867093E+03 1.832847211E+06
+ 1.949840577E+06 2.063366292E+03 7.315502428E-04 2.137174231E+03 1.850735921E+06
+ 1.972676972E+06 2.046831368E+03 7.265887932E-04 2.123481369E+03 1.868739152E+06
+ 1.995513367E+06 2.030422076E+03 7.216603665E-04 2.109788507E+03 1.887280984E+06
+ 2.018349762E+06 2.013789745E+03 7.167647472E-04 2.096095645E+03 1.905944238E+06
+ 2.041186157E+06 1.997598190E+03 7.119017213E-04 2.082402783E+03 1.924222193E+06
+ 2.064022552E+06 1.981525605E+03 7.070710760E-04 2.068709921E+03 1.942620271E+06
+ 2.086858947E+06 1.965220260E+03 7.022725999E-04 2.055017058E+03 1.961571051E+06
+ 2.109695342E+06 1.949389670E+03 6.975060832E-04 2.041324196E+03 1.980645524E+06
+ 2.132531737E+06 1.933649022E+03 6.927713170E-04 2.027631334E+03 1.999332047E+06
+ 2.155368132E+06 1.917660874E+03 6.880680942E-04 2.013938472E+03 2.018144726E+06
+ 2.178204527E+06 1.902129057E+03 6.833962086E-04 2.000245610E+03 2.037517365E+06
+ 2.201040922E+06 1.886711795E+03 6.787554557E-04 1.986552748E+03 2.057019559E+06
+ 2.223877317E+06 1.871037774E+03 6.741456320E-04 1.972859886E+03 2.076135881E+06
+ 2.246713712E+06 1.855826445E+03 6.695665355E-04 1.959167024E+03 2.095392743E+06
+ 2.269550107E+06 1.840726191E+03 6.650179654E-04 1.945474162E+03 2.115238327E+06
+ 2.292386502E+06 1.825359913E+03 6.604997222E-04 1.931781300E+03 2.135189739E+06
+ 2.315222897E+06 1.810127074E+03 6.560116077E-04 1.918088438E+03 2.154754963E+06
+ 2.338059292E+06 1.795308883E+03 6.515534249E-04 1.904395575E+03 2.174936838E+06
+ 2.360895687E+06 1.780605768E+03 6.471249782E-04 1.890702713E+03 2.194737454E+06
+ 2.383732082E+06 1.765667273E+03 6.427260731E-04 1.877009851E+03 2.215153843E+06
+ 2.406568477E+06 1.751165635E+03 6.383565163E-04 1.863316989E+03 2.235196367E+06
+ 2.429404872E+06 1.736765277E+03 6.340161161E-04 1.849624127E+03 2.255855479E+06
+ 2.452241266E+06 1.722119973E+03 6.297046816E-04 1.835931265E+03 2.276655563E+06
+ 2.475077661E+06 1.707910422E+03 6.254220233E-04 1.822238403E+03 2.297048904E+06
+ 2.497914056E+06 1.693806302E+03 6.211679529E-04 1.808545541E+03 2.317603990E+06
+ 2.520750451E+06 1.679449151E+03 6.169422834E-04 1.794852679E+03 2.338749881E+06
+ 2.543586846E+06 1.665533242E+03 6.127448289E-04 1.781159817E+03 2.360052393E+06
+ 2.566423241E+06 1.651719501E+03 6.085754047E-04 1.767466954E+03 2.380970736E+06
+ 2.589259636E+06 1.637644643E+03 6.044338272E-04 1.753774092E+03 2.402544310E+06
+ 2.612096031E+06 1.624013852E+03 6.003199141E-04 1.740081230E+03 2.424260968E+06
+ 2.634932426E+06 1.610484565E+03 5.962334843E-04 1.726388368E+03 2.445565637E+06
+ 2.657768821E+06 1.596686573E+03 5.921743577E-04 1.712695506E+03 2.467552275E+06
+ 2.680605216E+06 1.583012015E+03 5.881423556E-04 1.699002644E+03 2.489696316E+06
+ 2.703441611E+06 1.569846504E+03 5.841373001E-04 1.685309782E+03 2.511405150E+06
+ 2.726278006E+06 1.556680126E+03 5.801590148E-04 1.671616920E+03 2.533299482E+06
+ 2.749114401E+06 1.543255990E+03 5.762073243E-04 1.657924058E+03 2.555838662E+06
+ 2.771950796E+06 1.530263827E+03 5.722820541E-04 1.644231196E+03 2.578548728E+06
+ 2.794787191E+06 1.517368729E+03 5.683830311E-04 1.630538334E+03 2.600864028E+06
+ 2.817623586E+06 1.504208917E+03 5.645100833E-04 1.616845471E+03 2.623868745E+06
+ 2.840459981E+06 1.491485772E+03 5.606630396E-04 1.603152609E+03 2.647042804E+06
+ 2.863296376E+06 1.478856574E+03 5.568417303E-04 1.589459747E+03 2.669808209E+06
+ 2.886132771E+06 1.465955710E+03 5.530459865E-04 1.575766885E+03 2.693488516E+06
+ 2.908969166E+06 1.453493509E+03 5.492756405E-04 1.562074023E+03 2.717157434E+06
+ 2.931805561E+06 1.441124757E+03 5.455305257E-04 1.548381161E+03 2.740372467E+06
+ 2.954641956E+06 1.428477891E+03 5.418104765E-04 1.534688299E+03 2.764359834E+06
+ 2.977478351E+06 1.416279766E+03 5.381153285E-04 1.520995437E+03 2.788528401E+06
+ 3.000314746E+06 1.404166646E+03 5.344449183E-04 1.507302575E+03 2.812237272E+06
+ 3.023151141E+06 1.391767968E+03 5.307990834E-04 1.493609713E+03 2.836740127E+06
+ 3.045987536E+06 1.379483888E+03 5.271776625E-04 1.479916851E+03 2.861428367E+06
+ 3.068823931E+06 1.367593103E+03 5.235804954E-04 1.466223988E+03 2.885655845E+06
+ 3.091660326E+06 1.355797216E+03 5.200074227E-04 1.452531126E+03 2.910690315E+06
+ 3.114496721E+06 1.343755691E+03 5.164582862E-04 1.438838264E+03 2.935919452E+06
+ 3.137333116E+06 1.332111229E+03 5.129329287E-04 1.425145402E+03 2.960692944E+06
+ 3.160169511E+06 1.320558753E+03 5.094311940E-04 1.411452540E+03 2.986296372E+06
+ 3.183005906E+06 1.308749312E+03 5.059529268E-04 1.397759678E+03 3.012090179E+06
+ 3.205842301E+06 1.297349244E+03 5.024979730E-04 1.384066816E+03 3.037437653E+06
+ 3.228678696E+06 1.286035163E+03 4.990661793E-04 1.370373954E+03 3.063610115E+06
+ 3.251515091E+06 1.274458851E+03 4.956573935E-04 1.356681092E+03 3.089992817E+06
+ 3.274351486E+06 1.263322329E+03 4.922714643E-04 1.342988230E+03 3.115958436E+06
+ 3.297187881E+06 1.252243651E+03 4.889082415E-04 1.329295368E+03 3.143405561E+06
+ 3.320024276E+06 1.240892493E+03 4.855675758E-04 1.315602505E+03 3.169728764E+06
+ 3.342860671E+06 1.229959841E+03 4.822493187E-04 1.301909643E+03 3.196950842E+06
+ 3.365697066E+06 1.219109977E+03 4.789533230E-04 1.288216781E+03 3.224397957E+06
+ 3.388533460E+06 1.207982878E+03 4.756794421E-04 1.274523919E+03 3.251386156E+06
+ 3.411369855E+06 1.197277322E+03 4.724275306E-04 1.260831057E+03 3.279318628E+06
+ 3.434206250E+06 1.186651707E+03 4.691974439E-04 1.247138195E+03 3.307433528E+06
+ 3.457042645E+06 1.175744117E+03 4.659890383E-04 1.233445333E+03 3.335788213E+06
+ 3.479879040E+06 1.165258405E+03 4.628021712E-04 1.219752471E+03 3.364384791E+06
+ 3.502715435E+06 1.154852391E+03 4.596367008E-04 1.206059609E+03 3.392501801E+06
+ 3.525551830E+06 1.144160173E+03 4.564924862E-04 1.192366747E+03 3.421569568E+06
+ 3.548388225E+06 1.133898103E+03 4.533693874E-04 1.178673884E+03 3.450888219E+06
+ 3.571224620E+06 1.123707649E+03 4.502672653E-04 1.164981022E+03 3.480465665E+06
+ 3.594061015E+06 1.113225778E+03 4.471859819E-04 1.151288160E+03 3.510304514E+06
+ 3.616897410E+06 1.103169340E+03 4.441253998E-04 1.137595298E+03 3.539690202E+06
+ 3.639733805E+06 1.093189626E+03 4.410853827E-04 1.123902436E+03 3.570802247E+06
+ 3.662570200E+06 1.082914793E+03 4.380657949E-04 1.110209574E+03 3.600671787E+06
+ 3.685406595E+06 1.073067657E+03 4.350665020E-04 1.096516712E+03 3.631580423E+06
+ 3.708242990E+06 1.063294465E+03 4.320873701E-04 1.082823850E+03 3.662773283E+06
+ 3.731079385E+06 1.053222471E+03 4.291282664E-04 1.069130988E+03 3.694259751E+06
+ 3.753915780E+06 1.043577639E+03 4.261890587E-04 1.055438126E+03 3.726037314E+06
+ 3.776752175E+06 1.034006664E+03 4.232696159E-04 1.041745264E+03 3.758115677E+06
+ 3.799588570E+06 1.024133719E+03 4.203698077E-04 1.028052401E+03 3.790498618E+06
+ 3.822424965E+06 1.014359539E+03 4.174895046E-04 1.014359539E+03 3.822424965E+06
+ 3.932558984E+06 9.684817897E+02 4.070689815E-04 1.004322897E+03 3.846088983E+06
+ 4.042693003E+06 9.246635357E+02 3.888389263E-04 9.942862546E+02 3.870000823E+06
+ 4.152827022E+06 8.828079775E+02 3.714149589E-04 9.842496123E+02 3.894139970E+06
+ 4.262961040E+06 8.428233401E+02 3.547619065E-04 9.742129699E+02 3.918523662E+06
+ 4.373095059E+06 8.046371459E+02 3.388461097E-04 9.641763275E+02 3.943156910E+06
+ 4.483229078E+06 7.681592491E+02 3.236353584E-04 9.541396852E+02 3.968059491E+06
+ 4.593363097E+06 7.333229790E+02 3.090988305E-04 9.441030428E+02 3.993208299E+06
+ 4.703497116E+06 7.000534971E+02 2.952070328E-04 9.340664004E+02 4.018636656E+06
+ 4.813631135E+06 6.682742380E+02 2.819317444E-04 9.240297580E+02 4.044323152E+06
+ 4.923765153E+06 6.379299107E+02 2.692459631E-04 9.139931157E+02 4.070286941E+06
+ 5.033899172E+06 6.089513077E+02 2.571238528E-04 9.039564733E+02 4.096534087E+06
+ 5.144033191E+06 5.812779477E+02 2.455406945E-04 8.939198309E+02 4.123086192E+06
+ 5.254167210E+06 5.548462471E+02 2.344728384E-04 8.838831886E+02 4.149934439E+06
+ 5.364301229E+06 5.296058817E+02 2.238976582E-04 8.738465462E+02 4.177071814E+06
+ 5.474435248E+06 5.055097447E+02 2.137935077E-04 8.638099038E+02 4.204519089E+06
+ 5.584569266E+06 4.825012936E+02 2.041396790E-04 8.537732614E+02 4.232283441E+06
+ 5.694703285E+06 4.605329604E+02 1.949163619E-04 8.437366191E+02 4.260388655E+06
+ 5.804837304E+06 4.395513537E+02 1.861046062E-04 8.336999767E+02 4.288754266E+06
+ 5.914971323E+06 4.195237707E+02 1.776862843E-04 8.236633343E+02 4.317589249E+06
+ 6.025105342E+06 4.003968837E+02 1.696440565E-04 8.136266919E+02 4.346701036E+06
+ 6.135239361E+06 3.821413184E+02 1.619613369E-04 8.035900496E+02 4.376186530E+06
+ 6.245373379E+06 3.647129441E+02 1.546222613E-04 7.935534072E+02 4.406022589E+06
+ 6.355507398E+06 3.480743359E+02 1.476116559E-04 7.835167648E+02 4.436250782E+06
+ 6.465641417E+06 3.321850528E+02 1.409150082E-04 7.734801225E+02 4.466848335E+06
+ 6.575775436E+06 3.170220097E+02 1.345184382E-04 7.634434801E+02 4.497841003E+06
+ 6.685909455E+06 3.025418879E+02 1.284086712E-04 7.534068377E+02 4.529248950E+06
+ 6.796043474E+06 2.887278196E+02 1.225730122E-04 7.433701953E+02 4.561085008E+06
+ 6.906177492E+06 2.755392716E+02 1.169993203E-04 7.333335530E+02 4.593328897E+06
+ 7.016311511E+06 2.629503905E+02 1.116759854E-04 7.232969106E+02 4.626030365E+06
+ 7.126445530E+06 2.509292595E+02 1.065919050E-04 7.132602682E+02 4.659166307E+06
+ 7.236579549E+06 2.394606379E+02 1.017364625E-04 7.032236259E+02 4.692785323E+06
+ 7.346713568E+06 2.285090506E+02 9.709950618E-05 6.931869835E+02 4.726864401E+06
+ 7.456847587E+06 2.180637080E+02 9.267132893E-05 6.831503411E+02 4.761454258E+06
+ 7.566981605E+06 2.080917088E+02 8.844264935E-05 6.731136987E+02 4.796532074E+06
+ 7.677115624E+06 1.985764635E+02 8.440459319E-05 6.630770564E+02 4.832151160E+06
+ 7.787249643E+06 1.894958292E+02 8.054867573E-05 6.530404140E+02 4.868288407E+06
+ 7.897383662E+06 1.808246173E+02 7.686678494E-05 6.430037716E+02 4.904999870E+06
+ 8.007517681E+06 1.725552196E+02 7.335116534E-05 6.329671293E+02 4.942262965E+06
+ 8.117651700E+06 1.646643557E+02 6.999440253E-05 6.229304869E+02 4.980136718E+06
+ 8.227785718E+06 1.571344850E+02 6.678940840E-05 6.128938445E+02 5.018619519E+06
+ 8.337919737E+06 1.499495442E+02 6.372940698E-05 6.028572021E+02 5.057710972E+06
+ 8.448053756E+06 1.430938218E+02 6.080792086E-05 5.928205598E+02 5.097451560E+06
+ 8.558187775E+06 1.365480410E+02 5.801875824E-05 5.827839174E+02 5.137888138E+06
+ 8.668321794E+06 1.303068785E+02 5.535600048E-05 5.727472750E+02 5.179019447E+06
+ 8.778455813E+06 1.243522668E+02 5.281399023E-05 5.627106326E+02 5.220848180E+06
+ 8.888589831E+06 1.186711342E+02 5.038732007E-05 5.526739903E+02 5.263446398E+06
+ 8.998723850E+06 1.132455995E+02 4.807082158E-05 5.426373479E+02 5.306817993E+06
+ 9.108857869E+06 1.080750989E+02 4.585955494E-05 5.326007055E+02 5.350967856E+06
+ 9.218991888E+06 1.031422803E+02 4.374879896E-05 5.225640632E+02 5.395975072E+06
+ 9.329125907E+06 9.839968061E+01 4.173404152E-05 5.125274208E+02 5.441847003E+06
+ 9.439259926E+06 9.394762757E+01 3.981097046E-05 5.024907784E+02 5.488592463E+06
+ 9.549393944E+06 8.966391875E+01 3.797546481E-05 4.924541360E+02 5.536299183E+06
+ 9.659527963E+06 8.557932599E+01 3.622358644E-05 4.824174937E+02 5.584979640E+06
+ 9.769661982E+06 8.168324100E+01 3.455157209E-05 4.723808513E+02 5.634646947E+06
+ 9.879796001E+06 7.796698271E+01 3.295582562E-05 4.623442089E+02 5.685432591E+06
+ 9.989930020E+06 7.442260608E+01 3.143291079E-05 4.523075666E+02 5.737263257E+06
+ 1.010006404E+07 7.104183093E+01 2.997954419E-05 4.422709242E+02 5.790275332E+06
+ 1.021019806E+07 6.781187172E+01 2.859258853E-05 4.322342818E+02 5.844494381E+06
+ 1.032033208E+07 6.473670760E+01 2.726904625E-05 4.221976394E+02 5.899946241E+06
+ 1.043046610E+07 6.180386061E+01 2.600605336E-05 4.121609971E+02 5.956784262E+06
+ 1.054060011E+07 5.900781095E+01 2.480087358E-05 4.021243547E+02 6.014949384E+06
+ 1.065073413E+07 5.634043090E+01 2.365089271E-05 3.920877123E+02 6.074605264E+06
+ 1.076086815E+07 5.379677917E+01 2.255361328E-05 3.820510700E+02 6.135796353E+06
+ 1.087100217E+07 5.137109653E+01 2.150664935E-05 3.720144276E+02 6.198605828E+06
+ 1.098113619E+07 4.905823016E+01 2.050772167E-05 3.619777852E+02 6.263119172E+06
+ 1.109127021E+07 4.685257344E+01 1.955465291E-05 3.519411428E+02 6.329433687E+06
+ 1.120140423E+07 4.474945292E+01 1.864536319E-05 3.419045005E+02 6.397653352E+06
+ 1.131153825E+07 4.274407047E+01 1.777786580E-05 3.318678581E+02 6.467929907E+06
+ 1.142167226E+07 4.083347182E+01 1.695026303E-05 3.218312157E+02 6.540272901E+06
+ 1.153180628E+07 3.900873747E+01 1.616074225E-05 3.117945733E+02 6.614973564E+06
+ 1.164194030E+07 3.727051873E+01 1.540757219E-05 3.017579310E+02 6.692018115E+06
+ 1.175207432E+07 3.561332221E+01 1.468909927E-05 2.917212886E+02 6.771763077E+06
+ 1.186220834E+07 3.403332584E+01 1.400374421E-05 2.816846462E+02 6.854219108E+06
+ 1.197234236E+07 3.252723090E+01 1.334999870E-05 2.716480039E+02 6.939647625E+06
+ 1.208247638E+07 3.109655378E+01 1.272642228E-05 2.616113615E+02 7.028323532E+06
+ 1.219261040E+07 2.972762604E+01 1.213163932E-05 2.515747191E+02 7.120402775E+06
+ 1.230274442E+07 2.842259283E+01 1.156433611E-05 2.415380767E+02 7.216210824E+06
+ 1.241287843E+07 2.717940246E+01 1.102325818E-05 2.315014344E+02 7.316123496E+06
+ 1.252301245E+07 2.599350729E+01 1.050720756E-05 2.214647920E+02 7.420462896E+06
+ 1.263314647E+07 2.486311158E+01 1.001504038E-05 2.114281496E+02 7.529528236E+06
+ 1.274328049E+07 2.378556206E+01 9.545664373E-06 2.013915073E+02 7.643967450E+06
+ 1.285341451E+07 2.275864635E+01 9.098036615E-06 1.913548649E+02 7.764239415E+06
+ 1.296354853E+07 2.177962245E+01 8.671161323E-06 1.813182225E+02 7.890978577E+06
+ 1.307368255E+07 2.084649684E+01 8.264087742E-06 1.712815801E+02 8.024923367E+06
+ 1.318381657E+07 1.995705084E+01 7.875908143E-06 1.612449378E+02 8.167034478E+06
+ 1.329395058E+07 1.911313114E+01 7.505755896E-06 1.512082954E+02 8.318276955E+06
+ 1.340408460E+07 1.830517476E+01 7.152803636E-06 1.411716530E+02 8.479832264E+06
+ 1.351421862E+07 1.753516536E+01 6.816261504E-06 1.311350107E+02 8.653433216E+06
+ 1.362435264E+07 1.680123924E+01 6.495375470E-06 1.210983683E+02 8.840886333E+06
+ 1.373448666E+07 1.610197521E+01 6.189425729E-06 1.110617259E+02 9.044633191E+06
+ 1.384462068E+07 1.543531895E+01 5.897725166E-06 1.010250835E+02 9.267917362E+06
+ 1.395475470E+07 1.480561710E+01 5.619617892E-06 9.098844116E+01 9.514708220E+06
+ 1.406488872E+07 1.420111686E+01 5.354477841E-06 8.095179879E+01 9.791024907E+06
+ 1.417502274E+07 1.362416051E+01 5.101707431E-06 7.091515642E+01 1.010428023E+07
+ 1.428515675E+07 1.307968705E+01 4.860736286E-06 6.087851405E+01 1.046643935E+07
+ 1.439529077E+07 1.255579996E+01 4.631020015E-06 5.084187168E+01 1.089562332E+07
+ 1.450542479E+07 1.205672548E+01 4.412039036E-06 4.080522930E+01 1.142332945E+07
+ 1.461555881E+07 1.158090833E+01 4.203297468E-06 3.076858693E+01 1.210819166E+07
+ 1.472569283E+07 1.112748155E+01 4.004322058E-06 2.073194456E+01 1.308740478E+07
+ 1.483582685E+07 1.069530219E+01 3.814661162E-06 1.069530219E+01 1.483582685E+07
+ 1.503932542E+07 9.923144549E+00 3.655823457E-06 1.058839028E+01 1.486312289E+07
+ 1.524282398E+07 9.206045234E+00 3.395063050E-06 1.048147836E+01 1.489069219E+07
+ 1.544632255E+07 8.540132404E+00 3.152659086E-06 1.037456645E+01 1.491854033E+07
+ 1.564982112E+07 7.921772708E+00 2.927337014E-06 1.026765454E+01 1.494667146E+07
+ 1.585331968E+07 7.347629573E+00 2.717909510E-06 1.016074263E+01 1.497509319E+07
+ 1.605681825E+07 6.814592393E+00 2.523270598E-06 1.005383072E+01 1.500381007E+07
+ 1.626031682E+07 6.319744852E+00 2.342390159E-06 9.946918806E+00 1.503282977E+07
+ 1.646381538E+07 5.860380306E+00 2.174308807E-06 9.840006894E+00 1.506216180E+07
+ 1.666731395E+07 5.433994559E+00 2.018133106E-06 9.733094982E+00 1.509180995E+07
+ 1.687081252E+07 5.038244505E+00 1.873031104E-06 9.626183071E+00 1.512178114E+07
+ 1.707431109E+07 4.670976935E+00 1.738228160E-06 9.519271159E+00 1.515208256E+07
+ 1.727780965E+07 4.330136869E+00 1.613003064E-06 9.412359247E+00 1.518272160E+07
+ 1.748130822E+07 4.013886131E+00 1.496684395E-06 9.305447335E+00 1.521370593E+07
+ 1.768480679E+07 3.720423830E+00 1.388647145E-06 9.198535424E+00 1.524503693E+07
+ 1.788830535E+07 3.448197177E+00 1.288309551E-06 9.091623512E+00 1.527673848E+07
+ 1.809180392E+07 3.195650880E+00 1.195130148E-06 8.984711600E+00 1.530880641E+07
+ 1.829530249E+07 2.961314776E+00 1.108605021E-06 8.877799688E+00 1.534125233E+07
+ 1.849880106E+07 2.743984353E+00 1.028265236E-06 8.770887777E+00 1.537408457E+07
+ 1.870229962E+07 2.542430763E+00 9.536744488E-07 8.663975865E+00 1.540731726E+07
+ 1.890579819E+07 2.355489623E+00 8.844266728E-07 8.557063953E+00 1.544095704E+07
+ 1.910929676E+07 2.182126936E+00 8.201441969E-07 8.450152041E+00 1.547501408E+07
+ 1.931279532E+07 2.021392381E+00 7.604756451E-07 8.343240129E+00 1.550949535E+07
+ 1.951629389E+07 1.872334324E+00 7.050941665E-07 8.236328218E+00 1.554441896E+07
+ 1.971979246E+07 1.734144535E+00 6.536957486E-07 8.129416306E+00 1.557978912E+07
+ 1.992329102E+07 1.606033704E+00 6.059976437E-07 8.022504394E+00 1.561562125E+07
+ 2.012678959E+07 1.487269996E+00 5.617369034E-07 7.915592482E+00 1.565193322E+07
+ 2.033028816E+07 1.377190062E+00 5.206690115E-07 7.808680571E+00 1.568873045E+07
+ 2.053378673E+07 1.275162854E+00 4.825666103E-07 7.701768659E+00 1.572602626E+07
+ 2.073728529E+07 1.180631480E+00 4.472183138E-07 7.594856747E+00 1.576383069E+07
+ 2.094078386E+07 1.092963686E+00 4.144276015E-07 7.487944835E+00 1.580217162E+07
+ 2.114428243E+07 1.011759303E+00 3.840117877E-07 7.381032924E+00 1.584105655E+07
+ 2.134778099E+07 9.365231680E-01 3.558010613E-07 7.274121012E+00 1.588050123E+07
+ 2.155127956E+07 8.668070290E-01 3.296375910E-07 7.167209100E+00 1.592052215E+07
+ 2.175477813E+07 8.022362397E-01 3.053746922E-07 7.060297188E+00 1.596113651E+07
+ 2.195827669E+07 7.424073466E-01 2.828760508E-07 6.953385277E+00 1.600236230E+07
+ 2.216177526E+07 6.870028290E-01 2.620150000E-07 6.846473365E+00 1.604421835E+07
+ 2.236527383E+07 6.356755843E-01 2.426738470E-07 6.739561453E+00 1.608671668E+07
+ 2.256877240E+07 5.881396963E-01 2.247432464E-07 6.632649541E+00 1.612989106E+07
+ 2.277227096E+07 5.440966438E-01 2.081216157E-07 6.525737629E+00 1.617375568E+07
+ 2.297576953E+07 5.033399146E-01 1.927145924E-07 6.418825718E+00 1.621833952E+07
+ 2.317926810E+07 4.655954580E-01 1.784345275E-07 6.311913806E+00 1.626366222E+07
+ 2.338276666E+07 4.306500807E-01 1.652000145E-07 6.205001894E+00 1.630974410E+07
+ 2.358626523E+07 3.982982838E-01 1.529354508E-07 6.098089982E+00 1.635661664E+07
+ 2.378976380E+07 3.683611855E-01 1.415706298E-07 5.991178071E+00 1.640431166E+07
+ 2.399326236E+07 3.406165445E-01 1.310403606E-07 5.884266159E+00 1.645285407E+07
+ 2.419676093E+07 3.149589434E-01 1.212841149E-07 5.777354247E+00 1.650226943E+07
+ 2.440025950E+07 2.912136212E-01 1.122456978E-07 5.670442335E+00 1.655259072E+07
+ 2.460375807E+07 2.692178849E-01 1.038729420E-07 5.563530424E+00 1.660386745E+07
+ 2.480725663E+07 2.488823438E-01 9.611742244E-08 5.456618512E+00 1.665612592E+07
+ 2.501075520E+07 2.300803718E-01 8.893419222E-08 5.349706600E+00 1.670940475E+07
+ 2.521425377E+07 2.126592849E-01 8.228153556E-08 5.242794688E+00 1.676373799E+07
+ 2.541775233E+07 1.965462854E-01 7.612073881E-08 5.135882777E+00 1.681918115E+07
+ 2.562125090E+07 1.816458746E-01 7.041587730E-08 5.028970865E+00 1.687576849E+07
+ 2.582474947E+07 1.678638832E-01 6.513361702E-08 4.922058953E+00 1.693356423E+07
+ 2.602824804E+07 1.551169861E-01 6.024303029E-08 4.815147041E+00 1.699261242E+07
+ 2.623174660E+07 1.433262731E-01 5.571542439E-08 4.708235130E+00 1.705296274E+07
+ 2.643524517E+07 1.324165470E-01 5.152418209E-08 4.601323218E+00 1.711467471E+07
+ 2.663874374E+07 1.223286571E-01 4.764461359E-08 4.494411306E+00 1.717783438E+07
+ 2.684224230E+07 1.130204714E-01 4.405381869E-08 4.387499394E+00 1.724248299E+07
+ 2.704574087E+07 1.043743102E-01 4.073055883E-08 4.280587482E+00 1.730870558E+07
+ 2.724923944E+07 9.641540916E-02 3.765513807E-08 4.173675571E+00 1.737658953E+07
+ 2.745273800E+07 8.904210876E-02 3.480929250E-08 4.066763659E+00 1.744621051E+07
+ 2.765623657E+07 8.224076367E-02 3.217608746E-08 3.959851747E+00 1.751764861E+07
+ 2.785973514E+07 7.593577469E-02 2.973982208E-08 3.852939835E+00 1.759102775E+07
+ 2.806323371E+07 7.011535203E-02 2.748594053E-08 3.746027924E+00 1.766642925E+07
+ 2.826673227E+07 6.472759558E-02 2.540094958E-08 3.639116012E+00 1.774400495E+07
+ 2.847023084E+07 5.976261199E-02 2.347234204E-08 3.532204100E+00 1.782386362E+07
+ 2.867372941E+07 5.519968042E-02 2.168852563E-08 3.425292188E+00 1.790614473E+07
+ 2.887722797E+07 5.091851845E-02 2.003875688E-08 3.318380277E+00 1.799100094E+07
+ 2.908072654E+07 4.700854981E-02 1.851307981E-08 3.211468365E+00 1.807859988E+07
+ 2.928422511E+07 4.338746585E-02 1.710226889E-08 3.104556453E+00 1.816908662E+07
+ 2.948772367E+07 4.004109261E-02 1.579777620E-08 2.997644541E+00 1.826273377E+07
+ 2.969122224E+07 3.694229646E-02 1.459168220E-08 2.890732630E+00 1.835973870E+07
+ 2.989472081E+07 3.409254972E-02 1.347665020E-08 2.783820718E+00 1.846034015E+07
+ 3.009821938E+07 3.145703232E-02 1.244588395E-08 2.676908806E+00 1.856484151E+07
+ 3.030171794E+07 2.902384246E-02 1.149308835E-08 2.569996894E+00 1.867353493E+07
+ 3.050521651E+07 2.676841986E-02 1.061243295E-08 2.463084982E+00 1.878680536E+07
+ 3.070871508E+07 2.470004087E-02 9.798518107E-09 2.356173071E+00 1.890503775E+07
+ 3.091221364E+07 2.278353142E-02 9.046343502E-09 2.249261159E+00 1.902866470E+07
+ 3.111571221E+07 2.102700011E-02 8.351279019E-09 2.142349247E+00 1.915823428E+07
+ 3.131921078E+07 1.938177020E-02 7.709037655E-09 2.035437335E+00 1.929438650E+07
+ 3.152270934E+07 1.788030150E-02 7.115650414E-09 1.928525424E+00 1.943775766E+07
+ 3.172620791E+07 1.647165357E-02 6.567443004E-09 1.821613512E+00 1.958920664E+07
+ 3.192970648E+07 1.519657383E-02 6.061014227E-09 1.714701600E+00 1.974969934E+07
+ 3.213320505E+07 1.401051345E-02 5.593215930E-09 1.607789688E+00 1.992039424E+07
+ 3.233670361E+07 1.292040271E-02 5.161134407E-09 1.500877777E+00 2.010266781E+07
+ 3.254020218E+07 1.190561551E-02 4.762073155E-09 1.393965865E+00 2.029825193E+07
+ 3.274370075E+07 1.097456547E-02 4.393536878E-09 1.287053953E+00 2.050925084E+07
+ 3.294719931E+07 1.011834572E-02 4.053216655E-09 1.180142041E+00 2.073838026E+07
+ 3.315069788E+07 9.330949925E-03 3.738976190E-09 1.073230130E+00 2.098884739E+07
+ 3.335419645E+07 8.594155208E-03 3.448839060E-09 9.663182178E-01 2.126533235E+07
+ 3.355769502E+07 7.915518341E-03 3.180976898E-09 8.594063060E-01 2.157385351E+07
+ 3.376119358E+07 7.299527832E-03 2.933698431E-09 7.524943943E-01 2.192287132E+07
+ 3.396469215E+07 6.745024272E-03 2.705439324E-09 6.455824825E-01 2.232473465E+07
+ 3.416819072E+07 6.198550817E-03 2.494752773E-09 5.386705707E-01 2.279849325E+07
+ 3.437168928E+07 5.710533582E-03 2.300300771E-09 4.317586590E-01 2.337605771E+07
+ 3.457518785E+07 5.246698445E-03 2.120846032E-09 3.248467472E-01 2.411644276E+07
+ 3.477868642E+07 4.850519230E-03 1.955244492E-09 2.179348354E-01 2.515132098E+07
+ 3.498218498E+07 4.461043889E-03 1.802438374E-09 1.110229237E-01 2.688820942E+07
+ 3.518568355E+07 4.111011908E-03 1.661449755E-09 4.111011908E-03 3.518568400E+07
+ 3.522679367E+07 4.069901789E-03 1.000000000E-09 4.069901789E-03 3.522679368E+07
+ 3.526790379E+07 4.028791670E-03 1.000000000E-09 4.028791670E-03 3.526790379E+07
+ 3.530901391E+07 3.987681551E-03 1.000000000E-09 3.987681551E-03 3.530901391E+07
+ 3.535012403E+07 3.946571431E-03 1.000000000E-09 3.946571431E-03 3.535012403E+07
+ 3.539123415E+07 3.905461312E-03 1.000000000E-09 3.905461312E-03 3.539123400E+07
+ 3.543234427E+07 3.864351193E-03 1.000000000E-09 3.864351193E-03 3.543234427E+07
+ 3.547345438E+07 3.823241074E-03 1.000000000E-09 3.823241074E-03 3.547345438E+07
+ 3.551456450E+07 3.782130955E-03 1.000000000E-09 3.782130955E-03 3.551456462E+07
+ 3.555567462E+07 3.741020836E-03 1.000000000E-09 3.741020836E-03 3.555567462E+07
+ 3.559678474E+07 3.699910717E-03 1.000000000E-09 3.699910717E-03 3.559678400E+07
+ 3.563789486E+07 3.658800598E-03 1.000000000E-09 3.658800598E-03 3.563789486E+07
+ 3.567900498E+07 3.617690479E-03 1.000000000E-09 3.617690479E-03 3.567900494E+07
+ 3.572011510E+07 3.576580360E-03 1.000000000E-09 3.576580360E-03 3.572011500E+07
+ 3.576122522E+07 3.535470241E-03 1.000000000E-09 3.535470241E-03 3.576122522E+07
+ 3.580233534E+07 3.494360122E-03 1.000000000E-09 3.494360122E-03 3.580236800E+07
+ 3.584344546E+07 3.453250003E-03 1.000000000E-09 3.453250003E-03 3.584344550E+07
+ 3.588455558E+07 3.412139883E-03 1.000000000E-09 3.412139883E-03 3.588455500E+07
+ 3.592566569E+07 3.371029764E-03 1.000000000E-09 3.371029764E-03 3.592566569E+07
+ 3.596677581E+07 3.329919645E-03 1.000000000E-09 3.329919645E-03 3.596677400E+07
+ 3.600788593E+07 3.288809526E-03 1.000000000E-09 3.288809526E-03 3.600789296E+07
+ 3.604899605E+07 3.247699407E-03 1.000000000E-09 3.247699407E-03 3.604899606E+07
+ 3.609010617E+07 3.206589288E-03 1.000000000E-09 3.206589288E-03 3.609011200E+07
+ 3.613121629E+07 3.165479169E-03 1.000000000E-09 3.165479169E-03 3.613121629E+07
+ 3.617232641E+07 3.124369050E-03 1.000000000E-09 3.124369050E-03 3.617232700E+07
+ 3.621343653E+07 3.083258931E-03 1.000000000E-09 3.083258931E-03 3.621343700E+07
+ 3.625454665E+07 3.042148812E-03 1.000000000E-09 3.042148812E-03 3.625454600E+07
+ 3.629565677E+07 3.001038693E-03 1.000000000E-09 3.001038693E-03 3.629566400E+07
+ 3.633676689E+07 2.959928574E-03 1.000000000E-09 2.959928574E-03 3.633676689E+07
+ 3.637787700E+07 2.918818455E-03 1.000000000E-09 2.918818455E-03 3.637787700E+07
+ 3.641898712E+07 2.877708335E-03 1.000000000E-09 2.877708335E-03 3.641898719E+07
+ 3.646009724E+07 2.836598216E-03 1.000000000E-09 2.836598216E-03 3.646009725E+07
+ 3.650120736E+07 2.795488097E-03 1.000000000E-09 2.795488097E-03 3.650121600E+07
+ 3.654231748E+07 2.754377978E-03 1.000000000E-09 2.754377978E-03 3.654231749E+07
+ 3.658342760E+07 2.713267859E-03 1.000000000E-09 2.713267859E-03 3.658342780E+07
+ 3.662453772E+07 2.672157740E-03 1.000000000E-09 2.672157740E-03 3.662454400E+07
+ 3.666564784E+07 2.631047621E-03 1.000000000E-09 2.631047621E-03 3.666564800E+07
+ 3.670675796E+07 2.589937502E-03 1.000000000E-09 2.589937502E-03 3.670676800E+07
+ 3.674786808E+07 2.548827383E-03 1.000000000E-09 2.548827383E-03 3.674786808E+07
+ 3.678897820E+07 2.507717264E-03 1.000000000E-09 2.507717264E-03 3.678898100E+07
+ 3.683008831E+07 2.466607145E-03 1.000000000E-09 2.466607145E-03 3.683008837E+07
+ 3.687119843E+07 2.425497026E-03 1.000000000E-09 2.425497026E-03 3.687119922E+07
+ 3.691230855E+07 2.384386906E-03 1.000000000E-09 2.384386906E-03 3.691230856E+07
+ 3.695341867E+07 2.343276787E-03 1.000000000E-09 2.343276787E-03 3.695342134E+07
+ 3.699452879E+07 2.302166668E-03 1.000000000E-09 2.302166668E-03 3.699452881E+07
+ 3.703563891E+07 2.261056549E-03 1.000000000E-09 2.261056549E-03 3.703566400E+07
+ 3.707674903E+07 2.219946430E-03 1.000000000E-09 2.219946430E-03 3.707674903E+07
+ 3.711785915E+07 2.178836311E-03 1.000000000E-09 2.178836311E-03 3.711784957E+07
+ 3.715896927E+07 2.137726192E-03 1.000000000E-09 2.137726192E-03 3.715896927E+07
+ 3.720007939E+07 2.096616073E-03 1.000000000E-09 2.096616073E-03 3.720008509E+07
+ 3.724118951E+07 2.055505954E-03 1.000000000E-09 2.055505954E-03 3.724120000E+07
+ 3.728229962E+07 2.014395835E-03 1.000000000E-09 2.014395835E-03 3.728230181E+07
+ 3.732340974E+07 1.973285716E-03 1.000000000E-09 1.973285716E-03 3.732341000E+07
+ 3.736451986E+07 1.932175597E-03 1.000000000E-09 1.932175597E-03 3.736451987E+07
+ 3.740562998E+07 1.891065478E-03 1.000000000E-09 1.891065478E-03 3.740560000E+07
+ 3.744674010E+07 1.849955358E-03 1.000000000E-09 1.849955358E-03 3.744676800E+07
+ 3.748785022E+07 1.808845239E-03 1.000000000E-09 1.808845239E-03 3.748785022E+07
+ 3.752896034E+07 1.767735120E-03 1.000000000E-09 1.767735120E-03 3.752896034E+07
+ 3.757007046E+07 1.726625001E-03 1.000000000E-09 1.726625001E-03 3.757007046E+07
+ 3.761118058E+07 1.685514882E-03 1.000000000E-09 1.685514882E-03 3.761117900E+07
+ 3.765229070E+07 1.644404763E-03 1.000000000E-09 1.644404763E-03 3.765229070E+07
+ 3.769340082E+07 1.603294644E-03 1.000000000E-09 1.603294644E-03 3.769340075E+07
+ 3.773451093E+07 1.562184525E-03 1.000000000E-09 1.562184525E-03 3.773448320E+07
+ 3.777562105E+07 1.521074406E-03 1.000000000E-09 1.521074406E-03 3.777562105E+07
+ 3.781673117E+07 1.479964287E-03 1.000000000E-09 1.479964287E-03 3.781673117E+07
+ 3.785784129E+07 1.438854168E-03 1.000000000E-09 1.438854168E-03 3.785784100E+07
+ 3.789895141E+07 1.397744049E-03 1.000000000E-09 1.397744049E-03 3.789896076E+07
+ 3.794006153E+07 1.356633930E-03 1.000000000E-09 1.356633930E-03 3.794006153E+07
+ 3.798117165E+07 1.315523810E-03 1.000000000E-09 1.315523810E-03 3.798117156E+07
+ 3.802228177E+07 1.274413691E-03 1.000000000E-09 1.274413691E-03 3.802228188E+07
+ 3.806339189E+07 1.233303572E-03 1.000000000E-09 1.233303572E-03 3.806339187E+07
+ 3.810450201E+07 1.192193453E-03 1.000000000E-09 1.192193453E-03 3.810453839E+07
+ 3.814561213E+07 1.151083334E-03 1.000000000E-09 1.151083334E-03 3.814561219E+07
+ 3.818672224E+07 1.109973215E-03 1.000000000E-09 1.109973215E-03 3.818672225E+07
+ 3.822783236E+07 1.068863096E-03 1.000000000E-09 1.068863096E-03 3.822783236E+07
+ 3.826894248E+07 1.027752977E-03 1.000000000E-09 1.027752977E-03 3.826894300E+07
+ 3.831005260E+07 9.866428579E-04 1.000000000E-09 9.866428579E-04 3.831005260E+07
+ 3.835116272E+07 9.455327388E-04 1.000000000E-09 9.455327388E-04 3.835114305E+07
+ 3.839227284E+07 9.044226197E-04 1.000000000E-09 9.044226197E-04 3.839227722E+07
+ 3.843338296E+07 8.633125006E-04 1.000000000E-09 8.633125006E-04 3.843338296E+07
+ 3.847449308E+07 8.222023816E-04 1.000000000E-09 8.222023816E-04 3.847449454E+07
+ 3.851560320E+07 7.810922625E-04 1.000000000E-09 7.810922625E-04 3.851561600E+07
+ 3.855671332E+07 7.399821434E-04 1.000000000E-09 7.399821434E-04 3.855671332E+07
+ 3.859782343E+07 6.988720243E-04 1.000000000E-09 6.988720243E-04 3.859784000E+07
+ 3.863893355E+07 6.577619052E-04 1.000000000E-09 6.577619052E-04 3.863893356E+07
+ 3.868004367E+07 6.166517862E-04 1.000000000E-09 6.166517862E-04 3.868004400E+07
+ 3.872115379E+07 5.755416671E-04 1.000000000E-09 5.755416671E-04 3.872115200E+07
+ 3.876226391E+07 5.344315480E-04 1.000000000E-09 5.344315480E-04 3.876224000E+07
+ 3.880337403E+07 4.933214289E-04 1.000000000E-09 4.933214289E-04 3.880337403E+07
+ 3.884448415E+07 4.522113099E-04 1.000000000E-09 4.522113099E-04 3.884449007E+07
+ 3.888559427E+07 4.111011908E-04 1.000000000E-09 4.111011908E-04 3.888559431E+07
+ 3.892670439E+07 3.699910717E-04 1.000000000E-09 3.699910717E-04 3.892670400E+07
+ 3.896781451E+07 3.288809526E-04 1.000000000E-09 3.288809526E-04 3.896781451E+07
+ 3.900892463E+07 2.877708335E-04 1.000000000E-09 2.877708335E-04 3.900892463E+07
+ 3.905003474E+07 2.466607145E-04 1.000000000E-09 2.466607145E-04 3.905003475E+07
+ 3.909114486E+07 2.055505954E-04 1.000000000E-09 2.055505954E-04 3.909114493E+07
+ 3.913225498E+07 1.644404763E-04 1.000000000E-09 1.644404763E-04 3.913225600E+07
+ 3.917336510E+07 1.233303572E-04 1.000000000E-09 1.233303572E-04 3.917337055E+07
+ 3.921447522E+07 8.222023816E-05 1.000000000E-09 8.222023816E-05 3.921447761E+07
+ 3.925558534E+07 4.111011908E-05 1.000000000E-09 4.111011908E-05 3.925561526E+07
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM80
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM80	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM80	(revision 4308)
@@ -0,0 +1,501 @@
+DENSITY AND THICKNESS DATA OF THE ATMOSPHERE AT AN ZENITH ANGLE OF 80.0 DEGREES
+ 0.000000000E+00 5.765903360E+03 1.229805824E-03 5.765903360E+03 0.000000000E+00
+ 2.280718661E+04 5.737951241E+03 1.224916044E-03 5.742795274E+03 1.853810628E+04
+ 4.561437322E+04 5.709670730E+03 1.220044735E-03 5.719687188E+03 3.771805360E+04
+ 6.842155983E+04 5.681936964E+03 1.215191830E-03 5.696579102E+03 5.637636632E+04
+ 9.122874644E+04 5.654314121E+03 1.210357264E-03 5.673471016E+03 7.567536530E+04
+ 1.140359330E+05 5.627081126E+03 1.205540972E-03 5.650362930E+03 9.446116176E+04
+ 1.368431197E+05 5.599239596E+03 1.200742889E-03 5.627254844E+03 1.138934268E+05
+ 1.596503063E+05 5.571944612E+03 1.195962949E-03 5.604146758E+03 1.330241617E+05
+ 1.824574929E+05 5.545034837E+03 1.191201089E-03 5.581038672E+03 1.523608295E+05
+ 2.052646795E+05 5.517960403E+03 1.186457244E-03 5.557930585E+03 1.713917927E+05
+ 2.280718661E+05 5.490994070E+03 1.181731349E-03 5.534822499E+03 1.910850220E+05
+ 2.508790527E+05 5.463703726E+03 1.177023341E-03 5.511714413E+03 2.104730303E+05
+ 2.736862393E+05 5.436948477E+03 1.172333156E-03 5.488606327E+03 2.300698823E+05
+ 2.964934259E+05 5.410579074E+03 1.167660731E-03 5.465498241E+03 2.493704128E+05
+ 3.193006125E+05 5.384040069E+03 1.163006002E-03 5.442390155E+03 2.693314427E+05
+ 3.421077991E+05 5.357163356E+03 1.158368905E-03 5.419282069E+03 2.889839566E+05
+ 3.649149857E+05 5.331107000E+03 1.153749379E-03 5.396173983E+03 3.088491121E+05
+ 3.877221724E+05 5.304883695E+03 1.149147360E-03 5.373065897E+03 3.284043614E+05
+ 4.105293590E+05 5.278765576E+03 1.144562786E-03 5.349957811E+03 3.485479934E+05
+ 4.333365456E+05 5.252309294E+03 1.139995594E-03 5.326849725E+03 3.683312727E+05
+ 4.561437322E+05 5.226398857E+03 1.135445723E-03 5.303741638E+03 3.887046417E+05
+ 4.789509188E+05 5.200589024E+03 1.130913111E-03 5.280633552E+03 4.089166945E+05
+ 5.017581054E+05 5.175161622E+03 1.126397695E-03 5.257525466E+03 4.288115546E+05
+ 5.245652920E+05 5.149560741E+03 1.121899415E-03 5.234417380E+03 4.494063585E+05
+ 5.473724786E+05 5.123618498E+03 1.117418209E-03 5.211309294E+03 4.694434287E+05
+ 5.701796652E+05 5.098493199E+03 1.112954016E-03 5.188201208E+03 4.901787659E+05
+ 5.929868518E+05 5.073197350E+03 1.108506775E-03 5.165093122E+03 5.107497904E+05
+ 6.157940384E+05 5.048003138E+03 1.104076426E-03 5.141985036E+03 5.309984453E+05
+ 6.386012251E+05 5.022909839E+03 1.099662908E-03 5.118876950E+03 5.519595591E+05
+ 6.614084117E+05 4.997749624E+03 1.095266161E-03 5.095768864E+03 5.723567551E+05
+ 6.842155983E+05 4.972913837E+03 1.090886125E-03 5.072660778E+03 5.934651210E+05
+ 7.070227849E+05 4.948120400E+03 1.086522740E-03 5.049552691E+03 6.144078355E+05
+ 7.298299715E+05 4.922980377E+03 1.082175946E-03 5.026444605E+03 6.350258945E+05
+ 7.526371581E+05 4.898381594E+03 1.077845684E-03 5.003336519E+03 6.562146843E+05
+ 7.754443447E+05 4.874160512E+03 1.073531895E-03 4.980228433E+03 6.771921275E+05
+ 7.982515313E+05 4.849761319E+03 1.069234519E-03 4.957120347E+03 6.986902104E+05
+ 8.210587179E+05 4.825017128E+03 1.064953498E-03 4.934012261E+03 7.200192715E+05
+ 8.438659045E+05 4.800809642E+03 1.060688773E-03 4.910904175E+03 7.412691513E+05
+ 8.666730911E+05 4.776975549E+03 1.056440286E-03 4.887796089E+03 7.627555739E+05
+ 8.894802778E+05 4.752968151E+03 1.052207978E-03 4.864688003E+03 7.843238410E+05
+ 9.122874644E+05 4.729053772E+03 1.047991791E-03 4.841579917E+03 8.055593874E+05
+ 9.350946510E+05 4.704791664E+03 1.043791667E-03 4.818471831E+03 8.272841394E+05
+ 9.579018376E+05 4.681065350E+03 1.039607550E-03 4.795363744E+03 8.493529671E+05
+ 9.807090242E+05 4.657435250E+03 1.035439380E-03 4.772255658E+03 8.708349446E+05
+ 1.003516211E+06 4.634178376E+03 1.031287101E-03 4.749147572E+03 8.930663434E+05
+ 1.026323397E+06 4.610739744E+03 1.027150656E-03 4.726039486E+03 9.151273752E+05
+ 1.049130584E+06 4.586951022E+03 1.023029988E-03 4.702931400E+03 9.372738679E+05
+ 1.071937771E+06 4.563971013E+03 1.018925040E-03 4.679823314E+03 9.590825277E+05
+ 1.094744957E+06 4.540826915E+03 1.014835756E-03 4.656715228E+03 9.813960811E+05
+ 1.117552144E+06 4.517761862E+03 1.010762079E-03 4.633607142E+03 1.004062913E+06
+ 1.140359330E+06 4.494789882E+03 1.006703952E-03 4.610499056E+03 1.026554627E+06
+ 1.163166517E+06 4.471464693E+03 1.002661321E-03 4.587390970E+03 1.048705706E+06
+ 1.185973704E+06 4.448674298E+03 9.986341293E-04 4.564282884E+03 1.071635680E+06
+ 1.208780890E+06 4.425974966E+03 9.946223212E-04 4.541174797E+03 1.094406705E+06
+ 1.231588077E+06 4.403646840E+03 9.906258412E-04 4.518066711E+03 1.117254592E+06
+ 1.254395264E+06 4.381132333E+03 9.866446344E-04 4.494958625E+03 1.139760215E+06
+ 1.277202450E+06 4.358266832E+03 9.826786455E-04 4.471850539E+03 1.162786435E+06
+ 1.300009637E+06 4.336204777E+03 9.787278198E-04 4.448742453E+03 1.185906306E+06
+ 1.322816823E+06 4.313960079E+03 9.747921026E-04 4.425634367E+03 1.209119021E+06
+ 1.345624010E+06 4.291805289E+03 9.708714393E-04 4.402526281E+03 1.232703900E+06
+ 1.368431197E+06 4.269739723E+03 9.669657757E-04 4.379418195E+03 1.256108846E+06
+ 1.391238383E+06 4.247319625E+03 9.630750577E-04 4.356310109E+03 1.279613207E+06
+ 1.414045570E+06 4.225428219E+03 9.591992312E-04 4.333202023E+03 1.302762200E+06
+ 1.436852756E+06 4.203625332E+03 9.553382427E-04 4.310093937E+03 1.326486948E+06
+ 1.459659943E+06 4.182188877E+03 9.514920384E-04 4.286985850E+03 1.350521379E+06
+ 1.482467130E+06 4.160435895E+03 9.476605649E-04 4.263877764E+03 1.374411637E+06
+ 1.505274316E+06 4.138911145E+03 9.438437691E-04 4.240769678E+03 1.398402584E+06
+ 1.528081503E+06 4.117459322E+03 9.400415980E-04 4.217661592E+03 1.422493337E+06
+ 1.550888689E+06 4.096094343E+03 9.362539985E-04 4.194553506E+03 1.446685767E+06
+ 1.573695876E+06 4.074815536E+03 9.324809182E-04 4.171445420E+03 1.470980381E+06
+ 1.596503063E+06 4.053179286E+03 9.287223044E-04 4.148337334E+03 1.494975049E+06
+ 1.619310249E+06 4.032068709E+03 9.249781048E-04 4.125229248E+03 1.519474454E+06
+ 1.642117436E+06 4.011043631E+03 9.212482673E-04 4.102121162E+03 1.544079164E+06
+ 1.664924622E+06 3.990381655E+03 9.175327399E-04 4.079013076E+03 1.568789765E+06
+ 1.687731809E+06 3.969531742E+03 9.138314708E-04 4.055904990E+03 1.593608170E+06
+ 1.710538996E+06 3.948320071E+03 9.101444084E-04 4.032796903E+03 1.618533676E+06
+ 1.733346182E+06 3.927631778E+03 9.064715012E-04 4.009688817E+03 1.643568224E+06
+ 1.756153369E+06 3.907302083E+03 9.028126980E-04 3.986580731E+03 1.668712455E+06
+ 1.778960556E+06 3.886782722E+03 8.991679475E-04 3.963472645E+03 1.693971045E+06
+ 1.801767742E+06 3.866347271E+03 8.955371990E-04 3.940364559E+03 1.719337955E+06
+ 1.824574929E+06 3.845993724E+03 8.919204017E-04 3.917256473E+03 1.744817885E+06
+ 1.847382115E+06 3.825279332E+03 8.883175049E-04 3.894148387E+03 1.770411535E+06
+ 1.870189302E+06 3.805087027E+03 8.847284582E-04 3.871040301E+03 1.796120971E+06
+ 1.892996489E+06 3.784989839E+03 8.811532114E-04 3.847932215E+03 1.821945570E+06
+ 1.915803675E+06 3.765239261E+03 8.775917144E-04 3.824824129E+03 1.847887435E+06
+ 1.938610862E+06 3.745293584E+03 8.740439174E-04 3.801716043E+03 1.874438260E+06
+ 1.961418048E+06 3.725428577E+03 8.705097705E-04 3.778607956E+03 1.900633842E+06
+ 1.984225235E+06 3.705199618E+03 8.669892242E-04 3.755499870E+03 1.926933399E+06
+ 2.007032422E+06 3.685766733E+03 8.634822291E-04 3.732391784E+03 1.953354540E+06
+ 2.029839608E+06 3.666141063E+03 8.599887359E-04 3.709283698E+03 1.979898063E+06
+ 2.052646795E+06 3.646595159E+03 8.565086956E-04 3.686175612E+03 2.006566306E+06
+ 2.075453981E+06 3.627128373E+03 8.530420594E-04 3.663067526E+03 2.033045506E+06
+ 2.098261168E+06 3.607744172E+03 8.495887784E-04 3.639959440E+03 2.059964691E+06
+ 2.121068355E+06 3.587989701E+03 8.461488040E-04 3.616851354E+03 2.087524234E+06
+ 2.143875541E+06 3.568756017E+03 8.427220880E-04 3.593743268E+03 2.114698220E+06
+ 2.166682728E+06 3.549600243E+03 8.393085819E-04 3.570635182E+03 2.141679573E+06
+ 2.189489914E+06 3.530801290E+03 8.359082379E-04 3.547527096E+03 2.169116105E+06
+ 2.212297101E+06 3.511802564E+03 8.325210078E-04 3.524419009E+03 2.196686359E+06
+ 2.235104288E+06 3.492881167E+03 8.291468441E-04 3.501310923E+03 2.224909507E+06
+ 2.257911474E+06 3.473591928E+03 8.257856991E-04 3.478202837E+03 2.252745803E+06
+ 2.280718661E+06 3.455094751E+03 8.224375253E-04 3.455094751E+03 2.280718661E+06
+ 2.314116442E+06 3.427730581E+03 8.212061309E-04 3.435054083E+03 2.305314029E+06
+ 2.347514223E+06 3.400082863E+03 8.156906349E-04 3.415013415E+03 2.329445578E+06
+ 2.380912004E+06 3.373078330E+03 8.102106190E-04 3.394972747E+03 2.353716237E+06
+ 2.414309786E+06 3.346263674E+03 8.047658660E-04 3.374932078E+03 2.378650797E+06
+ 2.447707567E+06 3.319164144E+03 7.993561599E-04 3.354891410E+03 2.403732458E+06
+ 2.481105348E+06 3.292279679E+03 7.939812860E-04 3.334850742E+03 2.428342800E+06
+ 2.514503129E+06 3.266006141E+03 7.886410307E-04 3.314810074E+03 2.453098473E+06
+ 2.547900910E+06 3.240046948E+03 7.833351818E-04 3.294769405E+03 2.478001230E+06
+ 2.581298692E+06 3.214126355E+03 7.780635283E-04 3.274728737E+03 2.503573626E+06
+ 2.614696473E+06 3.187913893E+03 7.728258604E-04 3.254688069E+03 2.528727515E+06
+ 2.648094254E+06 3.162334297E+03 7.676219694E-04 3.234647401E+03 2.554717474E+06
+ 2.681492035E+06 3.136935202E+03 7.624516480E-04 3.214606733E+03 2.580689128E+06
+ 2.714889816E+06 3.111243917E+03 7.573146901E-04 3.194566064E+03 2.606195402E+06
+ 2.748287598E+06 3.086180864E+03 7.522108906E-04 3.174525396E+03 2.631859003E+06
+ 2.781685379E+06 3.061293210E+03 7.471400457E-04 3.154484728E+03 2.658208769E+06
+ 2.815083160E+06 3.036113115E+03 7.421019528E-04 3.134444060E+03 2.684718670E+06
+ 2.848480941E+06 3.011553082E+03 7.370964106E-04 3.114403391E+03 2.710768057E+06
+ 2.881878722E+06 2.987166803E+03 7.321232186E-04 3.094362723E+03 2.737558040E+06
+ 2.915276504E+06 2.962488510E+03 7.271821779E-04 3.074322055E+03 2.763888665E+06
+ 2.948674285E+06 2.938432230E+03 7.222730904E-04 3.054281387E+03 2.790958412E+06
+ 2.982072066E+06 2.914538021E+03 7.173957594E-04 3.034240719E+03 2.817577465E+06
+ 3.015469847E+06 2.890351080E+03 7.125499892E-04 3.014200050E+03 2.844936136E+06
+ 3.048867628E+06 2.866771604E+03 7.077355853E-04 2.994159382E+03 2.872464682E+06
+ 3.082265410E+06 2.843359375E+03 7.029523544E-04 2.974118714E+03 2.899503180E+06
+ 3.115663191E+06 2.819655588E+03 6.982001041E-04 2.954078046E+03 2.926720999E+06
+ 3.149060972E+06 2.796553568E+03 6.934786434E-04 2.934037377E+03 2.954686341E+06
+ 3.182458753E+06 2.773613985E+03 6.887877822E-04 2.913996709E+03 2.982816540E+06
+ 3.215856534E+06 2.750384084E+03 6.841273316E-04 2.893956041E+03 3.010474701E+06
+ 3.249254316E+06 2.727746821E+03 6.794971038E-04 2.873915373E+03 3.038915530E+06
+ 3.282652097E+06 2.705270531E+03 6.748969121E-04 2.853874705E+03 3.067537083E+06
+ 3.316049878E+06 2.682505837E+03 6.703265709E-04 2.833834036E+03 3.095653313E+06
+ 3.349447659E+06 2.660362193E+03 6.657858956E-04 2.813793368E+03 3.123965352E+06
+ 3.382845440E+06 2.638342092E+03 6.612747028E-04 2.793752700E+03 3.153049280E+06
+ 3.416243222E+06 2.616029489E+03 6.567928101E-04 2.773712032E+03 3.182318373E+06
+ 3.449641003E+06 2.594299737E+03 6.523400361E-04 2.753671363E+03 3.211113612E+06
+ 3.483038784E+06 2.572724911E+03 6.479162006E-04 2.733630695E+03 3.240718081E+06
+ 3.516436565E+06 2.550860252E+03 6.435211244E-04 2.713590027E+03 3.270515465E+06
+ 3.549834346E+06 2.530039966E+03 6.391546293E-04 2.693549359E+03 3.299813472E+06
+ 3.583232128E+06 2.508433425E+03 6.348165382E-04 2.673508691E+03 3.330015200E+06
+ 3.616629909E+06 2.487447132E+03 6.305066750E-04 2.653468022E+03 3.360362093E+06
+ 3.650027690E+06 2.466610931E+03 6.262248648E-04 2.633427354E+03 3.390178005E+06
+ 3.683425471E+06 2.445438430E+03 6.219709334E-04 2.613386686E+03 3.420217526E+06
+ 3.716823252E+06 2.424886447E+03 6.177447079E-04 2.593346018E+03 3.451083347E+06
+ 3.750221033E+06 2.404472894E+03 6.135460162E-04 2.573305350E+03 3.482155979E+06
+ 3.783618815E+06 2.383725254E+03 6.093746875E-04 2.553264681E+03 3.512750112E+06
+ 3.817016596E+06 2.363581119E+03 6.052305517E-04 2.533224013E+03 3.544202547E+06
+ 3.850414377E+06 2.343581412E+03 6.011134399E-04 2.513183345E+03 3.575865898E+06
+ 3.883812158E+06 2.323251729E+03 5.970231840E-04 2.493142677E+03 3.607038552E+06
+ 3.917209939E+06 2.303517818E+03 5.929596172E-04 2.473102008E+03 3.639093284E+06
+ 3.950607721E+06 2.283923874E+03 5.889225733E-04 2.453061340E+03 3.671368396E+06
+ 3.984005502E+06 2.264004125E+03 5.849118874E-04 2.433020672E+03 3.703145759E+06
+ 4.017403283E+06 2.244668857E+03 5.809273953E-04 2.412980004E+03 3.735841332E+06
+ 4.050801064E+06 2.225472557E+03 5.769689341E-04 2.392939336E+03 3.768751677E+06
+ 4.084198845E+06 2.205955294E+03 5.730363415E-04 2.372898667E+03 3.801160048E+06
+ 4.117596627E+06 2.187168367E+03 5.691294563E-04 2.352857999E+03 3.834493217E+06
+ 4.150994408E+06 2.168369732E+03 5.652481184E-04 2.332817331E+03 3.868062105E+06
+ 4.184392189E+06 2.149229012E+03 5.613921685E-04 2.312776663E+03 3.901132907E+06
+ 4.217789970E+06 2.130678637E+03 5.575614482E-04 2.292735994E+03 3.935924332E+06
+ 4.251187751E+06 2.112261983E+03 5.537558000E-04 2.272695326E+03 3.969398348E+06
+ 4.284585533E+06 2.093508876E+03 5.499750676E-04 2.252654658E+03 4.003900409E+06
+ 4.317983314E+06 2.075337239E+03 5.462190953E-04 2.232613990E+03 4.038652528E+06
+ 4.351381095E+06 2.057295072E+03 5.424877286E-04 2.212573322E+03 4.072841732E+06
+ 4.384778876E+06 2.038922140E+03 5.387808136E-04 2.192532653E+03 4.107511963E+06
+ 4.418176657E+06 2.021118280E+03 5.350981976E-04 2.172491985E+03 4.143839563E+06
+ 4.451574439E+06 2.003443063E+03 5.314397286E-04 2.152451317E+03 4.178749342E+06
+ 4.484972220E+06 1.985443436E+03 5.278052557E-04 2.132410649E+03 4.214738014E+06
+ 4.518370001E+06 1.968010295E+03 5.241946287E-04 2.112369980E+03 4.250996261E+06
+ 4.551767782E+06 1.950695169E+03 5.206076983E-04 2.092329312E+03 4.286696047E+06
+ 4.585165563E+06 1.933060843E+03 5.170443164E-04 2.072288644E+03 4.323472415E+06
+ 4.618563345E+06 1.916442064E+03 5.135043353E-04 2.052247976E+03 4.360526305E+06
+ 4.651961126E+06 1.899011782E+03 5.099876084E-04 2.032207308E+03 4.397866075E+06
+ 4.685358907E+06 1.882174841E+03 5.064939901E-04 2.012166639E+03 4.435493883E+06
+ 4.718756688E+06 1.865458321E+03 5.030233355E-04 1.992125971E+03 4.472538426E+06
+ 4.752154469E+06 1.848382937E+03 4.995755006E-04 1.972085303E+03 4.510739028E+06
+ 4.785552251E+06 1.831887282E+03 4.961503422E-04 1.952044635E+03 4.549224233E+06
+ 4.818950032E+06 1.815511466E+03 4.927477181E-04 1.932003966E+03 4.588015853E+06
+ 4.852347813E+06 1.798784604E+03 4.893674867E-04 1.911963298E+03 4.627116484E+06
+ 4.885745594E+06 1.782663168E+03 4.860095075E-04 1.891922630E+03 4.665630568E+06
+ 4.919143375E+06 1.766623092E+03 4.826736408E-04 1.871881962E+03 4.705338195E+06
+ 4.952541157E+06 1.750233729E+03 4.793597475E-04 1.851841294E+03 4.745365905E+06
+ 4.985938938E+06 1.734405574E+03 4.760676895E-04 1.831800625E+03 4.785723503E+06
+ 5.019336719E+06 1.718692684E+03 4.727973296E-04 1.811759957E+03 4.826414197E+06
+ 5.052734500E+06 1.702639052E+03 4.695485313E-04 1.791719289E+03 4.866546343E+06
+ 5.086132281E+06 1.687135470E+03 4.663211589E-04 1.771678621E+03 4.908902580E+06
+ 5.119530062E+06 1.671743291E+03 4.631150775E-04 1.751637952E+03 4.949667698E+06
+ 5.152927844E+06 1.656018973E+03 4.599301532E-04 1.731597284E+03 4.991725690E+06
+ 5.186325625E+06 1.641296977E+03 4.567662526E-04 1.711556616E+03 5.034144645E+06
+ 5.219723406E+06 1.625752126E+03 4.536232433E-04 1.691515948E+03 5.076936031E+06
+ 5.253121187E+06 1.610794455E+03 4.505009936E-04 1.671475280E+03 5.120096728E+06
+ 5.286518968E+06 1.595937365E+03 4.473993727E-04 1.651434611E+03 5.163638571E+06
+ 5.319916750E+06 1.580710916E+03 4.443182504E-04 1.631393943E+03 5.207566135E+06
+ 5.353314531E+06 1.566050096E+03 4.412574975E-04 1.611353275E+03 5.251908340E+06
+ 5.386712312E+06 1.551496599E+03 4.382169853E-04 1.591312607E+03 5.296629912E+06
+ 5.420110093E+06 1.536583756E+03 4.351965862E-04 1.571271939E+03 5.340778425E+06
+ 5.453507874E+06 1.522224256E+03 4.321961731E-04 1.551231270E+03 5.387303783E+06
+ 5.486905656E+06 1.507968321E+03 4.292156196E-04 1.531190602E+03 5.432266197E+06
+ 5.520303437E+06 1.493363094E+03 4.262548005E-04 1.511149934E+03 5.479672111E+06
+ 5.553701218E+06 1.479295434E+03 4.233135908E-04 1.491109266E+03 5.525485638E+06
+ 5.587098999E+06 1.465330974E+03 4.203918666E-04 1.471068597E+03 5.573790754E+06
+ 5.620496780E+06 1.451027929E+03 4.174895046E-04 1.451027929E+03 5.620496780E+06
+ 5.775249443E+06 1.386524284E+03 4.076561568E-04 1.436661838E+03 5.654366132E+06
+ 5.930002105E+06 1.324820556E+03 3.899500888E-04 1.422295746E+03 5.688584894E+06
+ 6.084754767E+06 1.265798479E+03 3.729917896E-04 1.407929655E+03 5.723141788E+06
+ 6.239507430E+06 1.209339177E+03 3.567506351E-04 1.393563563E+03 5.758027551E+06
+ 6.394260092E+06 1.155338174E+03 3.411972131E-04 1.379197472E+03 5.793265501E+06
+ 6.549012754E+06 1.103699944E+03 3.263032777E-04 1.364831381E+03 5.828862895E+06
+ 6.703765416E+06 1.054317277E+03 3.120417045E-04 1.350465289E+03 5.864845978E+06
+ 6.858518079E+06 1.007094225E+03 2.983864476E-04 1.336099198E+03 5.901203632E+06
+ 7.013270741E+06 9.619392473E+02 2.853124988E-04 1.321733106E+03 5.937927150E+06
+ 7.168023403E+06 9.187569013E+02 2.727958472E-04 1.307367015E+03 5.975041711E+06
+ 7.322776066E+06 8.774768590E+02 2.608134413E-04 1.293000923E+03 6.012555821E+06
+ 7.477528728E+06 8.380039601E+02 2.493431518E-04 1.278634832E+03 6.050497936E+06
+ 7.632281390E+06 8.002750806E+02 2.383637362E-04 1.264268741E+03 6.088857659E+06
+ 7.787034052E+06 7.642133494E+02 2.278548047E-04 1.249902649E+03 6.127626483E+06
+ 7.941786715E+06 7.297309484E+02 2.177967868E-04 1.235536558E+03 6.166832045E+06
+ 8.096539377E+06 6.967783228E+02 2.081708999E-04 1.221170466E+03 6.206484405E+06
+ 8.251292039E+06 6.652757564E+02 1.989591186E-04 1.206804375E+03 6.246618424E+06
+ 8.406044702E+06 6.351750626E+02 1.901441453E-04 1.192438283E+03 6.287217269E+06
+ 8.560797364E+06 6.064090771E+02 1.817093819E-04 1.178072192E+03 6.328276605E+06
+ 8.715550026E+06 5.789196437E+02 1.736389024E-04 1.163706101E+03 6.369826952E+06
+ 8.870302688E+06 5.526519186E+02 1.659174267E-04 1.149340009E+03 6.411901621E+06
+ 9.025055351E+06 5.275529468E+02 1.585302954E-04 1.134973918E+03 6.454471654E+06
+ 9.179808013E+06 5.035663698E+02 1.514634455E-04 1.120607826E+03 6.497591942E+06
+ 9.334560675E+06 4.806552766E+02 1.447033868E-04 1.106241735E+03 6.541233738E+06
+ 9.489313338E+06 4.587674040E+02 1.382371795E-04 1.091875643E+03 6.585431544E+06
+ 9.644066000E+06 4.378509951E+02 1.320524125E-04 1.077509552E+03 6.630223723E+06
+ 9.798818662E+06 4.178778873E+02 1.261371826E-04 1.063143460E+03 6.675601979E+06
+ 9.953571324E+06 3.988002721E+02 1.204800745E-04 1.048777369E+03 6.721560340E+06
+ 1.010832399E+07 3.805784954E+02 1.150701412E-04 1.034411278E+03 6.768136608E+06
+ 1.026307665E+07 3.631754654E+02 1.098968858E-04 1.020045186E+03 6.815372888E+06
+ 1.041782931E+07 3.465552302E+02 1.049502434E-04 1.005679095E+03 6.863262731E+06
+ 1.057258197E+07 3.306799630E+02 1.002205640E-04 9.913130033E+02 6.911801333E+06
+ 1.072733464E+07 3.155242733E+02 9.569859587E-05 9.769469119E+02 6.961056826E+06
+ 1.088208730E+07 3.010525293E+02 9.137547000E-05 9.625808204E+02 7.011023384E+06
+ 1.103683996E+07 2.872349611E+02 8.724268439E-05 9.482147290E+02 7.061699450E+06
+ 1.119159262E+07 2.740354750E+02 8.329208961E-05 9.338486376E+02 7.113129922E+06
+ 1.134634529E+07 2.614409446E+02 7.951587463E-05 9.194825461E+02 7.165365176E+06
+ 1.150109795E+07 2.494197315E+02 7.590655320E-05 9.051164547E+02 7.218403345E+06
+ 1.165585061E+07 2.379473713E+02 7.245695084E-05 8.907503633E+02 7.272243891E+06
+ 1.181060327E+07 2.269850814E+02 6.916019224E-05 8.763842718E+02 7.326966513E+06
+ 1.196535593E+07 2.165285450E+02 6.600968924E-05 8.620181804E+02 7.382572079E+06
+ 1.212010860E+07 2.065485462E+02 6.299912922E-05 8.476520890E+02 7.439063137E+06
+ 1.227486126E+07 1.970242292E+02 6.012246395E-05 8.332859975E+02 7.496525343E+06
+ 1.242961392E+07 1.879347606E+02 5.737389885E-05 8.189199061E+02 7.554963599E+06
+ 1.258436658E+07 1.792610882E+02 5.474788276E-05 8.045538147E+02 7.614383738E+06
+ 1.273911925E+07 1.709845511E+02 5.223909800E-05 7.901877232E+02 7.674848254E+06
+ 1.289387191E+07 1.630886268E+02 4.984245089E-05 7.758216318E+02 7.736450152E+06
+ 1.304862457E+07 1.555540062E+02 4.755306261E-05 7.614555404E+02 7.799154800E+06
+ 1.320337723E+07 1.483584154E+02 4.536626042E-05 7.470894489E+02 7.862995664E+06
+ 1.335812989E+07 1.415008086E+02 4.327756926E-05 7.327233575E+02 7.928079791E+06
+ 1.351288256E+07 1.349589998E+02 4.128270362E-05 7.183572661E+02 7.994423514E+06
+ 1.366763522E+07 1.287191467E+02 3.937755981E-05 7.039911746E+02 8.062043906E+06
+ 1.382238788E+07 1.227670733E+02 3.755820845E-05 6.896250832E+02 8.131061863E+06
+ 1.397714054E+07 1.170901532E+02 3.582088732E-05 6.752589918E+02 8.201500129E+06
+ 1.413189321E+07 1.116758531E+02 3.416199447E-05 6.608929003E+02 8.273419692E+06
+ 1.428664587E+07 1.065175217E+02 3.257808162E-05 6.465268089E+02 8.346884996E+06
+ 1.444139853E+07 1.015935200E+02 3.106584778E-05 6.321607175E+02 8.421927427E+06
+ 1.459615119E+07 9.689819391E+01 2.962213318E-05 6.177946260E+02 8.498735031E+06
+ 1.475090386E+07 9.242106130E+01 2.824391340E-05 6.034285346E+02 8.577232227E+06
+ 1.490565652E+07 8.815256527E+01 2.692829378E-05 5.890624432E+02 8.657618951E+06
+ 1.506040918E+07 8.408263467E+01 2.567250399E-05 5.746963517E+02 8.739947942E+06
+ 1.521516184E+07 8.020257603E+01 2.447389287E-05 5.603302603E+02 8.824317209E+06
+ 1.536991450E+07 7.650361739E+01 2.332992348E-05 5.459641689E+02 8.910831055E+06
+ 1.552466717E+07 7.297880814E+01 2.223816828E-05 5.315980774E+02 8.999603483E+06
+ 1.567941983E+07 6.961773900E+01 2.119630461E-05 5.172319860E+02 9.090757170E+06
+ 1.583417249E+07 6.642141335E+01 2.020211027E-05 5.028658946E+02 9.184433310E+06
+ 1.598892515E+07 6.336837965E+01 1.925345931E-05 4.884998031E+02 9.280760756E+06
+ 1.614367782E+07 6.045841099E+01 1.834831798E-05 4.741337117E+02 9.379954313E+06
+ 1.629843048E+07 5.768525053E+01 1.748474088E-05 4.597676203E+02 9.482037357E+06
+ 1.645318314E+07 5.504250597E+01 1.666086720E-05 4.454015288E+02 9.587402150E+06
+ 1.660793580E+07 5.252621334E+01 1.587491716E-05 4.310354374E+02 9.696098632E+06
+ 1.676268847E+07 5.012412549E+01 1.512518862E-05 4.166693460E+02 9.808406748E+06
+ 1.691744113E+07 4.784540186E+01 1.441005376E-05 4.023032545E+02 9.924640947E+06
+ 1.707219379E+07 4.566723048E+01 1.372795593E-05 3.879371631E+02 1.004495945E+07
+ 1.722694645E+07 4.359201210E+01 1.307740666E-05 3.735710717E+02 1.016979566E+07
+ 1.738169911E+07 4.162234573E+01 1.245698273E-05 3.592049802E+02 1.029937277E+07
+ 1.753645178E+07 3.973915419E+01 1.186532340E-05 3.448388888E+02 1.043420995E+07
+ 1.769120444E+07 3.792886666E+01 1.130112777E-05 3.304727974E+02 1.057464792E+07
+ 1.784595710E+07 3.623664141E+01 1.076315221E-05 3.161067059E+02 1.072125944E+07
+ 1.800070976E+07 3.461035069E+01 1.025020789E-05 3.017406145E+02 1.087457238E+07
+ 1.815546243E+07 3.306025771E+01 9.761158484E-06 2.873745231E+02 1.103524218E+07
+ 1.831021509E+07 3.159128992E+01 9.294917866E-06 2.730084316E+02 1.120401984E+07
+ 1.846496775E+07 3.018577299E+01 8.850447996E-06 2.586423402E+02 1.138168595E+07
+ 1.861972041E+07 2.885399622E+01 8.426756833E-06 2.442762488E+02 1.156952719E+07
+ 1.877447307E+07 2.757936898E+01 8.022896360E-06 2.299101573E+02 1.176862878E+07
+ 1.892922574E+07 2.636558571E+01 7.637960685E-06 2.155440659E+02 1.198038961E+07
+ 1.908397840E+07 2.521477206E+01 7.271084221E-06 2.011779745E+02 1.220646324E+07
+ 1.923873106E+07 2.411442327E+01 6.921439948E-06 1.868118830E+02 1.244921224E+07
+ 1.939348372E+07 2.306682255E+01 6.588237740E-06 1.724457916E+02 1.271117641E+07
+ 1.954823639E+07 2.206932173E+01 6.270722765E-06 1.580797002E+02 1.299588867E+07
+ 1.970298905E+07 2.112736656E+01 5.968173955E-06 1.437136087E+02 1.330750253E+07
+ 1.985774171E+07 2.023052922E+01 5.679902536E-06 1.293475173E+02 1.365175543E+07
+ 2.001249437E+07 1.937024922E+01 5.405250623E-06 1.149814259E+02 1.403679337E+07
+ 2.016724704E+07 1.855248594E+01 5.143589875E-06 1.006153344E+02 1.447293993E+07
+ 2.032199970E+07 1.777289447E+01 4.894320201E-06 8.624924299E+01 1.497712990E+07
+ 2.047675236E+07 1.703814528E+01 4.656868528E-06 7.188315156E+01 1.557442311E+07
+ 2.063150502E+07 1.633224375E+01 4.430687620E-06 5.751706013E+01 1.630800881E+07
+ 2.078625768E+07 1.566722333E+01 4.215254938E-06 4.315096869E+01 1.726113014E+07
+ 2.094101035E+07 1.502765679E+01 4.010071566E-06 2.878487726E+01 1.862783761E+07
+ 2.109576301E+07 1.441878583E+01 3.814661162E-06 1.441878583E+01 2.109576301E+07
+ 2.136218891E+07 1.340638158E+01 3.666650033E-06 1.427464960E+01 2.113256071E+07
+ 2.162861480E+07 1.246341498E+01 3.414995751E-06 1.413051337E+01 2.116972062E+07
+ 2.189504070E+07 1.158520513E+01 3.180176711E-06 1.398637714E+01 2.120725367E+07
+ 2.216146659E+07 1.076744235E+01 2.961097659E-06 1.384224091E+01 2.124516298E+07
+ 2.242789249E+07 1.000605737E+01 2.756732444E-06 1.369810468E+01 2.128345732E+07
+ 2.269431839E+07 9.297281819E+00 2.566119800E-06 1.355396845E+01 2.132215100E+07
+ 2.296074428E+07 8.637560343E+00 2.388359385E-06 1.340983222E+01 2.136124791E+07
+ 2.322717018E+07 8.023587954E+00 2.222608042E-06 1.326569598E+01 2.140075666E+07
+ 2.349359607E+07 7.452251147E+00 2.068076291E-06 1.312155975E+01 2.144068614E+07
+ 2.376002197E+07 6.920682860E+00 1.924025021E-06 1.297742352E+01 2.148104127E+07
+ 2.402644787E+07 6.426165956E+00 1.789762386E-06 1.283328729E+01 2.152184006E+07
+ 2.429287376E+07 5.966191276E+00 1.664640874E-06 1.268915106E+01 2.156308806E+07
+ 2.455929966E+07 5.538410972E+00 1.548054564E-06 1.254501483E+01 2.160479541E+07
+ 2.482572555E+07 5.140586901E+00 1.439436535E-06 1.240087860E+01 2.164697261E+07
+ 2.509215145E+07 4.770734304E+00 1.338256442E-06 1.225674237E+01 2.168963050E+07
+ 2.535857735E+07 4.426889929E+00 1.244018225E-06 1.211260614E+01 2.173278033E+07
+ 2.562500324E+07 4.107277395E+00 1.156257965E-06 1.196846991E+01 2.177642756E+07
+ 2.589142914E+07 3.810235395E+00 1.074541870E-06 1.182433368E+01 2.182059535E+07
+ 2.615785503E+07 3.534223603E+00 9.984643750E-07 1.168019745E+01 2.186529034E+07
+ 2.642428093E+07 3.277729427E+00 9.276463648E-07 1.153606122E+01 2.191052648E+07
+ 2.669070683E+07 3.039480492E+00 8.617335022E-07 1.139192499E+01 2.195631921E+07
+ 2.695713272E+07 2.818162759E+00 8.003946584E-07 1.124778876E+01 2.200267387E+07
+ 2.722355862E+07 2.612591785E+00 7.433204391E-07 1.110365253E+01 2.204961802E+07
+ 2.748998451E+07 2.421726245E+00 6.902218014E-07 1.095951630E+01 2.209716021E+07
+ 2.775641041E+07 2.244494880E+00 6.408287561E-07 1.081538007E+01 2.214531607E+07
+ 2.802283631E+07 2.079953576E+00 5.948891490E-07 1.067124384E+01 2.219409764E+07
+ 2.828926220E+07 1.927223702E+00 5.521675185E-07 1.052710761E+01 2.224353030E+07
+ 2.855568810E+07 1.785463855E+00 5.124440231E-07 1.038297138E+01 2.229362747E+07
+ 2.882211399E+07 1.653897716E+00 4.755134365E-07 1.023883515E+01 2.234440242E+07
+ 2.908853989E+07 1.531855487E+00 4.411842040E-07 1.009469892E+01 2.239587959E+07
+ 2.935496579E+07 1.418604456E+00 4.092775590E-07 9.950562695E+00 2.244807857E+07
+ 2.962139168E+07 1.313567900E+00 3.796266940E-07 9.806426465E+00 2.250102524E+07
+ 2.988781758E+07 1.216140600E+00 3.520759839E-07 9.662290235E+00 2.255473641E+07
+ 3.015424347E+07 1.125788520E+00 3.264802579E-07 9.518154005E+00 2.260923478E+07
+ 3.042066937E+07 1.042017765E+00 3.027041176E-07 9.374017775E+00 2.266454412E+07
+ 3.068709527E+07 9.643410214E-01 2.806212979E-07 9.229881545E+00 2.272068263E+07
+ 3.095352116E+07 8.923562005E-01 2.601140686E-07 9.085745315E+00 2.277768793E+07
+ 3.121994706E+07 8.256065454E-01 2.410726736E-07 8.941609085E+00 2.283558106E+07
+ 3.148637295E+07 7.637509192E-01 2.233948062E-07 8.797472855E+00 2.289439184E+07
+ 3.175279885E+07 7.064609646E-01 2.069851176E-07 8.653336625E+00 2.295414435E+07
+ 3.201922475E+07 6.533652837E-01 1.917547570E-07 8.509200395E+00 2.301488429E+07
+ 3.228565064E+07 6.041932869E-01 1.776209410E-07 8.365064165E+00 2.307663630E+07
+ 3.255207654E+07 5.586329600E-01 1.645065508E-07 8.220927935E+00 2.313943148E+07
+ 3.281850243E+07 5.164466182E-01 1.523397551E-07 8.076791705E+00 2.320330850E+07
+ 3.308492833E+07 4.773664473E-01 1.410536575E-07 7.932655475E+00 2.326831270E+07
+ 3.335135423E+07 4.412177046E-01 1.305859672E-07 7.788519245E+00 2.333447448E+07
+ 3.361778012E+07 4.077241880E-01 1.208786896E-07 7.644383015E+00 2.340183621E+07
+ 3.388420602E+07 3.767267616E-01 1.118778388E-07 7.500246785E+00 2.347045951E+07
+ 3.415063191E+07 3.480591462E-01 1.035331676E-07 7.356110555E+00 2.354038173E+07
+ 3.441705781E+07 3.215068474E-01 9.579791547E-08 7.211974325E+00 2.361165370E+07
+ 3.468348371E+07 2.969622443E-01 8.862857319E-08 7.067838095E+00 2.368432927E+07
+ 3.494990960E+07 2.742353081E-01 8.198466263E-08 6.923701865E+00 2.375845310E+07
+ 3.521633550E+07 2.532360371E-01 7.582853123E-08 6.779565635E+00 2.383410379E+07
+ 3.548276139E+07 2.337971721E-01 7.012515989E-08 6.635429405E+00 2.391133666E+07
+ 3.574918729E+07 2.158284759E-01 6.484198359E-08 6.491293175E+00 2.399023547E+07
+ 3.601561319E+07 1.991922958E-01 5.994872392E-08 6.347156945E+00 2.407086031E+07
+ 3.628203908E+07 1.838483518E-01 5.541723258E-08 6.203020715E+00 2.415328988E+07
+ 3.654846498E+07 1.696537083E-01 5.122134547E-08 6.058884485E+00 2.423760656E+07
+ 3.681489087E+07 1.565302044E-01 4.733674633E-08 5.914748255E+00 2.432390645E+07
+ 3.708131677E+07 1.444032220E-01 4.374083959E-08 5.770612025E+00 2.441227980E+07
+ 3.734774267E+07 1.332043126E-01 4.041263170E-08 5.626475795E+00 2.450284479E+07
+ 3.761416856E+07 1.228473043E-01 3.733262039E-08 5.482339565E+00 2.459569217E+07
+ 3.788059446E+07 1.132843346E-01 3.448269143E-08 5.338203335E+00 2.469095742E+07
+ 3.814702035E+07 1.044400635E-01 3.184602225E-08 5.194067105E+00 2.478877024E+07
+ 3.841344625E+07 9.628861406E-02 2.940699218E-08 5.049930875E+00 2.488925973E+07
+ 3.867987215E+07 8.876798646E-02 2.715109869E-08 4.905794645E+00 2.499259748E+07
+ 3.894629804E+07 8.181732224E-02 2.506487931E-08 4.761658415E+00 2.509894025E+07
+ 3.921272394E+07 7.540350248E-02 2.313583889E-08 4.617522185E+00 2.520846905E+07
+ 3.947914983E+07 6.947843114E-02 2.135238176E-08 4.473385955E+00 2.532138828E+07
+ 3.974557573E+07 6.400975365E-02 1.970374860E-08 4.329249725E+00 2.543791698E+07
+ 4.001200163E+07 5.896658175E-02 1.817995753E-08 4.185113495E+00 2.555830397E+07
+ 4.027842752E+07 5.430382031E-02 1.677174931E-08 4.040977265E+00 2.568280657E+07
+ 4.054485342E+07 5.002562864E-02 1.547053630E-08 3.896841035E+00 2.581170330E+07
+ 4.081127931E+07 4.605895191E-02 1.426835483E-08 3.752704805E+00 2.594537387E+07
+ 4.107770521E+07 4.240288961E-02 1.315782105E-08 3.608568575E+00 2.608414093E+07
+ 4.134413111E+07 3.904021514E-02 1.213208961E-08 3.464432344E+00 2.622842475E+07
+ 4.161055700E+07 3.594067169E-02 1.118481537E-08 3.320296114E+00 2.637869803E+07
+ 4.187698290E+07 3.307300327E-02 1.031011770E-08 3.176159884E+00 2.653548000E+07
+ 4.214340879E+07 3.044779672E-02 9.502547241E-09 3.032023654E+00 2.669936382E+07
+ 4.240983469E+07 2.800652695E-02 8.757055035E-09 2.887887424E+00 2.687104179E+07
+ 4.267626059E+07 2.576821002E-02 8.068963772E-09 2.743751194E+00 2.705131560E+07
+ 4.294268648E+07 2.369841533E-02 7.433941068E-09 2.599614964E+00 2.724106223E+07
+ 4.320911238E+07 2.179778872E-02 6.847974607E-09 2.455478734E+00 2.744140412E+07
+ 4.347553827E+07 2.005049716E-02 6.307349037E-09 2.311342504E+00 2.765356337E+07
+ 4.374196417E+07 1.842716772E-02 5.808624490E-09 2.167206274E+00 2.787912024E+07
+ 4.400839007E+07 1.695304688E-02 5.348616613E-09 2.023070044E+00 2.811974587E+07
+ 4.427481596E+07 1.558076542E-02 4.924378020E-09 1.878933814E+00 2.837779437E+07
+ 4.454124186E+07 1.433727451E-02 4.533181047E-09 1.734797584E+00 2.865595124E+07
+ 4.480766775E+07 1.314881917E-02 4.172501745E-09 1.590661354E+00 2.895769110E+07
+ 4.507409365E+07 1.210087277E-02 3.840004994E-09 1.446525124E+00 2.928740710E+07
+ 4.534051955E+07 1.112534471E-02 3.533530696E-09 1.302388894E+00 2.965095635E+07
+ 4.560694544E+07 1.021563614E-02 3.251080939E-09 1.158252664E+00 3.005613801E+07
+ 4.587337134E+07 9.385828042E-03 2.990808092E-09 1.014116434E+00 3.051405107E+07
+ 4.613979723E+07 8.608879839E-03 2.751003742E-09 8.699802044E-01 3.104057449E+07
+ 4.640622313E+07 7.915955918E-03 2.530088437E-09 7.258439744E-01 3.166031783E+07
+ 4.667264903E+07 7.265980477E-03 2.326602156E-09 5.817077443E-01 3.241454382E+07
+ 4.693907492E+07 6.671958352E-03 2.139195479E-09 4.375715143E-01 3.337942697E+07
+ 4.720550082E+07 6.120572470E-03 1.966621382E-09 2.934352843E-01 3.472346336E+07
+ 4.747192671E+07 5.614994271E-03 1.807727636E-09 1.492990543E-01 3.697090427E+07
+ 4.773835261E+07 5.162824316E-03 1.661449755E-09 5.162824316E-03 4.773835200E+07
+ 4.778998085E+07 5.111196073E-03 1.000000000E-09 5.111196073E-03 4.778998086E+07
+ 4.784160910E+07 5.059567830E-03 1.000000000E-09 5.059567830E-03 4.784160910E+07
+ 4.789323734E+07 5.007939587E-03 1.000000000E-09 5.007939587E-03 4.789323700E+07
+ 4.794486558E+07 4.956311344E-03 1.000000000E-09 4.956311344E-03 4.794486558E+07
+ 4.799649383E+07 4.904683100E-03 1.000000000E-09 4.904683100E-03 4.799649382E+07
+ 4.804812207E+07 4.853054857E-03 1.000000000E-09 4.853054857E-03 4.804812100E+07
+ 4.809975031E+07 4.801426614E-03 1.000000000E-09 4.801426614E-03 4.809975100E+07
+ 4.815137856E+07 4.749798371E-03 1.000000000E-09 4.749798371E-03 4.815137600E+07
+ 4.820300680E+07 4.698170128E-03 1.000000000E-09 4.698170128E-03 4.820299200E+07
+ 4.825463504E+07 4.646541885E-03 1.000000000E-09 4.646541885E-03 4.825463504E+07
+ 4.830626329E+07 4.594913641E-03 1.000000000E-09 4.594913641E-03 4.830627200E+07
+ 4.835789153E+07 4.543285398E-03 1.000000000E-09 4.543285398E-03 4.835789000E+07
+ 4.840951977E+07 4.491657155E-03 1.000000000E-09 4.491657155E-03 4.840952000E+07
+ 4.846114801E+07 4.440028912E-03 1.000000000E-09 4.440028912E-03 4.846114801E+07
+ 4.851277626E+07 4.388400669E-03 1.000000000E-09 4.388400669E-03 4.851277700E+07
+ 4.856440450E+07 4.336772426E-03 1.000000000E-09 4.336772426E-03 4.856440450E+07
+ 4.861603274E+07 4.285144182E-03 1.000000000E-09 4.285144182E-03 4.861603275E+07
+ 4.866766099E+07 4.233515939E-03 1.000000000E-09 4.233515939E-03 4.866766094E+07
+ 4.871928923E+07 4.181887696E-03 1.000000000E-09 4.181887696E-03 4.871928919E+07
+ 4.877091747E+07 4.130259453E-03 1.000000000E-09 4.130259453E-03 4.877091744E+07
+ 4.882254572E+07 4.078631210E-03 1.000000000E-09 4.078631210E-03 4.882254573E+07
+ 4.887417396E+07 4.027002967E-03 1.000000000E-09 4.027002967E-03 4.887417498E+07
+ 4.892580220E+07 3.975374723E-03 1.000000000E-09 3.975374723E-03 4.892580200E+07
+ 4.897743045E+07 3.923746480E-03 1.000000000E-09 3.923746480E-03 4.897743000E+07
+ 4.902905869E+07 3.872118237E-03 1.000000000E-09 3.872118237E-03 4.902905600E+07
+ 4.908068693E+07 3.820489994E-03 1.000000000E-09 3.820489994E-03 4.908068700E+07
+ 4.913231518E+07 3.768861751E-03 1.000000000E-09 3.768861751E-03 4.913231518E+07
+ 4.918394342E+07 3.717233508E-03 1.000000000E-09 3.717233508E-03 4.918394712E+07
+ 4.923557166E+07 3.665605264E-03 1.000000000E-09 3.665605264E-03 4.923554287E+07
+ 4.928719991E+07 3.613977021E-03 1.000000000E-09 3.613977021E-03 4.928716800E+07
+ 4.933882815E+07 3.562348778E-03 1.000000000E-09 3.562348778E-03 4.933882815E+07
+ 4.939045639E+07 3.510720535E-03 1.000000000E-09 3.510720535E-03 4.939045619E+07
+ 4.944208463E+07 3.459092292E-03 1.000000000E-09 3.459092292E-03 4.944208469E+07
+ 4.949371288E+07 3.407464049E-03 1.000000000E-09 3.407464049E-03 4.949371288E+07
+ 4.954534112E+07 3.355835806E-03 1.000000000E-09 3.355835806E-03 4.954534112E+07
+ 4.959696936E+07 3.304207562E-03 1.000000000E-09 3.304207562E-03 4.959696937E+07
+ 4.964859761E+07 3.252579319E-03 1.000000000E-09 3.252579319E-03 4.964859761E+07
+ 4.970022585E+07 3.200951076E-03 1.000000000E-09 3.200951076E-03 4.970022600E+07
+ 4.975185409E+07 3.149322833E-03 1.000000000E-09 3.149322833E-03 4.975185409E+07
+ 4.980348234E+07 3.097694590E-03 1.000000000E-09 3.097694590E-03 4.980351263E+07
+ 4.985511058E+07 3.046066347E-03 1.000000000E-09 3.046066347E-03 4.985514636E+07
+ 4.990673882E+07 2.994438103E-03 1.000000000E-09 2.994438103E-03 4.990673900E+07
+ 4.995836707E+07 2.942809860E-03 1.000000000E-09 2.942809860E-03 4.995836707E+07
+ 5.000999531E+07 2.891181617E-03 1.000000000E-09 2.891181617E-03 5.000999531E+07
+ 5.006162355E+07 2.839553374E-03 1.000000000E-09 2.839553374E-03 5.006162355E+07
+ 5.011325180E+07 2.787925131E-03 1.000000000E-09 2.787925131E-03 5.011325181E+07
+ 5.016488004E+07 2.736296888E-03 1.000000000E-09 2.736296888E-03 5.016488100E+07
+ 5.021650828E+07 2.684668644E-03 1.000000000E-09 2.684668644E-03 5.021653651E+07
+ 5.026813653E+07 2.633040401E-03 1.000000000E-09 2.633040401E-03 5.026813676E+07
+ 5.031976477E+07 2.581412158E-03 1.000000000E-09 2.581412158E-03 5.031976487E+07
+ 5.037139301E+07 2.529783915E-03 1.000000000E-09 2.529783915E-03 5.037140800E+07
+ 5.042302126E+07 2.478155672E-03 1.000000000E-09 2.478155672E-03 5.042302126E+07
+ 5.047464950E+07 2.426527429E-03 1.000000000E-09 2.426527429E-03 5.047464950E+07
+ 5.052627774E+07 2.374899185E-03 1.000000000E-09 2.374899185E-03 5.052627800E+07
+ 5.057790598E+07 2.323270942E-03 1.000000000E-09 2.323270942E-03 5.057790600E+07
+ 5.062953423E+07 2.271642699E-03 1.000000000E-09 2.271642699E-03 5.062953423E+07
+ 5.068116247E+07 2.220014456E-03 1.000000000E-09 2.220014456E-03 5.068116247E+07
+ 5.073279071E+07 2.168386213E-03 1.000000000E-09 2.168386213E-03 5.073281753E+07
+ 5.078441896E+07 2.116757970E-03 1.000000000E-09 2.116757970E-03 5.078441896E+07
+ 5.083604720E+07 2.065129726E-03 1.000000000E-09 2.065129726E-03 5.083604800E+07
+ 5.088767544E+07 2.013501483E-03 1.000000000E-09 2.013501483E-03 5.088767772E+07
+ 5.093930369E+07 1.961873240E-03 1.000000000E-09 1.961873240E-03 5.093934784E+07
+ 5.099093193E+07 1.910244997E-03 1.000000000E-09 1.910244997E-03 5.099093100E+07
+ 5.104256017E+07 1.858616754E-03 1.000000000E-09 1.858616754E-03 5.104256018E+07
+ 5.109418842E+07 1.806988511E-03 1.000000000E-09 1.806988511E-03 5.109418842E+07
+ 5.114581666E+07 1.755360267E-03 1.000000000E-09 1.755360267E-03 5.114581700E+07
+ 5.119744490E+07 1.703732024E-03 1.000000000E-09 1.703732024E-03 5.119744500E+07
+ 5.124907315E+07 1.652103781E-03 1.000000000E-09 1.652103781E-03 5.124911257E+07
+ 5.130070139E+07 1.600475538E-03 1.000000000E-09 1.600475538E-03 5.130070200E+07
+ 5.135232963E+07 1.548847295E-03 1.000000000E-09 1.548847295E-03 5.135232982E+07
+ 5.140395788E+07 1.497219052E-03 1.000000000E-09 1.497219052E-03 5.140395788E+07
+ 5.145558612E+07 1.445590809E-03 1.000000000E-09 1.445590809E-03 5.145558612E+07
+ 5.150721436E+07 1.393962565E-03 1.000000000E-09 1.393962565E-03 5.150721600E+07
+ 5.155884260E+07 1.342334322E-03 1.000000000E-09 1.342334322E-03 5.155885152E+07
+ 5.161047085E+07 1.290706079E-03 1.000000000E-09 1.290706079E-03 5.161047542E+07
+ 5.166209909E+07 1.239077836E-03 1.000000000E-09 1.239077836E-03 5.166214590E+07
+ 5.171372733E+07 1.187449593E-03 1.000000000E-09 1.187449593E-03 5.171372733E+07
+ 5.176535558E+07 1.135821350E-03 1.000000000E-09 1.135821350E-03 5.176535558E+07
+ 5.181698382E+07 1.084193106E-03 1.000000000E-09 1.084193106E-03 5.181698382E+07
+ 5.186861206E+07 1.032564863E-03 1.000000000E-09 1.032564863E-03 5.186861206E+07
+ 5.192024031E+07 9.809366201E-04 1.000000000E-09 9.809366201E-04 5.192024031E+07
+ 5.197186855E+07 9.293083769E-04 1.000000000E-09 9.293083769E-04 5.197186855E+07
+ 5.202349679E+07 8.776801337E-04 1.000000000E-09 8.776801337E-04 5.202349838E+07
+ 5.207512504E+07 8.260518906E-04 1.000000000E-09 8.260518906E-04 5.207512504E+07
+ 5.212675328E+07 7.744236474E-04 1.000000000E-09 7.744236474E-04 5.212675328E+07
+ 5.217838152E+07 7.227954043E-04 1.000000000E-09 7.227954043E-04 5.217836800E+07
+ 5.223000977E+07 6.711671611E-04 1.000000000E-09 6.711671611E-04 5.223000977E+07
+ 5.228163801E+07 6.195389179E-04 1.000000000E-09 6.195389179E-04 5.228163200E+07
+ 5.233326625E+07 5.679106748E-04 1.000000000E-09 5.679106748E-04 5.233326625E+07
+ 5.238489450E+07 5.162824316E-04 1.000000000E-09 5.162824316E-04 5.238489450E+07
+ 5.243652274E+07 4.646541885E-04 1.000000000E-09 4.646541885E-04 5.243652274E+07
+ 5.248815098E+07 4.130259453E-04 1.000000000E-09 4.130259453E-04 5.248815098E+07
+ 5.253977922E+07 3.613977021E-04 1.000000000E-09 3.613977021E-04 5.253978000E+07
+ 5.259140747E+07 3.097694590E-04 1.000000000E-09 3.097694590E-04 5.259145960E+07
+ 5.264303571E+07 2.581412158E-04 1.000000000E-09 2.581412158E-04 5.264304000E+07
+ 5.269466395E+07 2.065129726E-04 1.000000000E-09 2.065129726E-04 5.269466395E+07
+ 5.274629220E+07 1.548847295E-04 1.000000000E-09 1.548847295E-04 5.274629220E+07
+ 5.279792044E+07 1.032564863E-04 1.000000000E-09 1.032564863E-04 5.279792044E+07
+ 5.284954868E+07 5.162824316E-05 1.000000000E-09 5.162824316E-05 5.284959510E+07
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM84
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM84	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM84	(revision 4308)
@@ -0,0 +1,501 @@
+DENSITY AND THICKNESS DATA OF THE ATMOSPHERE AT AN ZENITH ANGLE OF 84.0 DEGREES
+ 0.000000000E+00 9.091060108E+03 1.229805824E-03 9.091060108E+03 0.000000000E+00
+ 3.723783039E+04 9.045548428E+03 1.224999006E-03 9.053288909E+03 3.080360606E+04
+ 7.447566078E+04 8.999987223E+03 1.220208334E-03 9.015517710E+03 6.170739853E+04
+ 1.117134912E+05 8.954604273E+03 1.215433765E-03 8.977746511E+03 9.271024615E+04
+ 1.489513216E+05 8.909398538E+03 1.210675256E-03 8.939975311E+03 1.238138784E+05
+ 1.861891519E+05 8.864603698E+03 1.205932766E-03 8.902204112E+03 1.550185976E+05
+ 2.234269823E+05 8.819749677E+03 1.201206253E-03 8.864432913E+03 1.863292030E+05
+ 2.606648127E+05 8.775071538E+03 1.196495673E-03 8.826661714E+03 2.175484329E+05
+ 2.979026431E+05 8.730568238E+03 1.191800985E-03 8.788890515E+03 2.490593525E+05
+ 3.351404735E+05 8.686240535E+03 1.187122148E-03 8.751119316E+03 2.806741388E+05
+ 3.723783039E+05 8.642085604E+03 1.182459118E-03 8.713348117E+03 3.122051272E+05
+ 4.096161343E+05 8.598104204E+03 1.177811855E-03 8.675576918E+03 3.440292848E+05
+ 4.468539647E+05 8.554295311E+03 1.173180316E-03 8.637805719E+03 3.759587720E+05
+ 4.840917950E+05 8.510734253E+03 1.168564459E-03 8.600034520E+03 4.079954123E+05
+ 5.213296254E+05 8.467268595E+03 1.163964244E-03 8.562263321E+03 4.401395777E+05
+ 5.585674558E+05 8.423974145E+03 1.159379627E-03 8.524492122E+03 4.724578705E+05
+ 5.958052862E+05 8.381076919E+03 1.154810568E-03 8.486720923E+03 5.048202429E+05
+ 6.330431166E+05 8.338121031E+03 1.150257026E-03 8.448949723E+03 5.372927847E+05
+ 6.702809470E+05 8.295334624E+03 1.145718958E-03 8.411178524E+03 5.696792062E+05
+ 7.075187774E+05 8.252716681E+03 1.141196323E-03 8.373407325E+03 6.023733813E+05
+ 7.447566078E+05 8.210500475E+03 1.136689080E-03 8.335636126E+03 6.351789965E+05
+ 7.819944381E+05 8.168216662E+03 1.132197188E-03 8.297864927E+03 6.680979971E+05
+ 8.192322685E+05 8.126100049E+03 1.127720605E-03 8.260093728E+03 7.011308174E+05
+ 8.564700989E+05 8.084149621E+03 1.123259290E-03 8.222322529E+03 7.342825859E+05
+ 8.937079293E+05 8.042366153E+03 1.118813203E-03 8.184551330E+03 7.675459495E+05
+ 9.309457597E+05 8.000746852E+03 1.114382302E-03 8.146780131E+03 8.009260388E+05
+ 9.681835901E+05 7.959292497E+03 1.109966546E-03 8.109008932E+03 8.342239677E+05
+ 1.005421420E+06 7.918002090E+03 1.105565895E-03 8.071237733E+03 8.678385105E+05
+ 1.042659251E+06 7.877120156E+03 1.101180307E-03 8.033466534E+03 9.015732169E+05
+ 1.079897081E+06 7.836154919E+03 1.096809742E-03 7.995695335E+03 9.354270557E+05
+ 1.117134912E+06 7.795351950E+03 1.092454158E-03 7.957924136E+03 9.694020903E+05
+ 1.154372742E+06 7.754712027E+03 1.088113517E-03 7.920152936E+03 1.003498851E+06
+ 1.191610572E+06 7.714461159E+03 1.083787776E-03 7.882381737E+03 1.037735258E+06
+ 1.228848403E+06 7.674140949E+03 1.079476896E-03 7.844610538E+03 1.072078722E+06
+ 1.266086233E+06 7.633980797E+03 1.075180835E-03 7.806839339E+03 1.106547132E+06
+ 1.303324064E+06 7.593985083E+03 1.070899554E-03 7.769068140E+03 1.141141063E+06
+ 1.340561894E+06 7.554143830E+03 1.066633013E-03 7.731296941E+03 1.175862691E+06
+ 1.377799724E+06 7.514461450E+03 1.062381170E-03 7.693525742E+03 1.210711021E+06
+ 1.415037555E+06 7.474936958E+03 1.058143986E-03 7.655754543E+03 1.245688258E+06
+ 1.452275385E+06 7.435797410E+03 1.053921421E-03 7.617983344E+03 1.280795027E+06
+ 1.489513216E+06 7.396586035E+03 1.049713434E-03 7.580212145E+03 1.316245776E+06
+ 1.526751046E+06 7.357530920E+03 1.045519986E-03 7.542440946E+03 1.351615494E+06
+ 1.563988876E+06 7.318410593E+03 1.041341037E-03 7.504669747E+03 1.387117822E+06
+ 1.601226707E+06 7.279971250E+03 1.037176547E-03 7.466898548E+03 1.422755092E+06
+ 1.638464537E+06 7.241381747E+03 1.033026475E-03 7.429127348E+03 1.458526314E+06
+ 1.675702367E+06 7.202946816E+03 1.028890783E-03 7.391356149E+03 1.494433853E+06
+ 1.712940198E+06 7.164892895E+03 1.024769431E-03 7.353584950E+03 1.530695376E+06
+ 1.750178028E+06 7.126763076E+03 1.020662379E-03 7.315813751E+03 1.566668125E+06
+ 1.787415859E+06 7.088786241E+03 1.016569587E-03 7.278042552E+03 1.603062790E+06
+ 1.824653689E+06 7.051191183E+03 1.012491017E-03 7.240271353E+03 1.639525845E+06
+ 1.861891519E+06 7.013521046E+03 1.008426628E-03 7.202500154E+03 1.676130999E+06
+ 1.899129350E+06 6.975997270E+03 1.004376381E-03 7.164728955E+03 1.713098076E+06
+ 1.936367180E+06 6.938624380E+03 1.000340238E-03 7.126957756E+03 1.749989788E+06
+ 1.973605011E+06 6.901401407E+03 9.963181580E-04 7.089186557E+03 1.787027214E+06
+ 2.010842841E+06 6.864329163E+03 9.923101031E-04 7.051415358E+03 1.824435274E+06
+ 2.048080671E+06 6.827404919E+03 9.883160339E-04 7.013644159E+03 1.861771081E+06
+ 2.085318502E+06 6.790855523E+03 9.843359113E-04 6.975872960E+03 1.899251457E+06
+ 2.122556332E+06 6.754245204E+03 9.803696964E-04 6.938101761E+03 1.936882647E+06
+ 2.159794162E+06 6.717541270E+03 9.764173504E-04 6.900330561E+03 1.974665554E+06
+ 2.197031993E+06 6.681658301E+03 9.724788344E-04 6.862559362E+03 2.012602860E+06
+ 2.234269823E+06 6.645467944E+03 9.685541097E-04 6.824788163E+03 2.050920153E+06
+ 2.271507654E+06 6.609424745E+03 9.646431376E-04 6.787016964E+03 2.089165680E+06
+ 2.308745484E+06 6.573525934E+03 9.607458796E-04 6.749245765E+03 2.127587710E+06
+ 2.345983314E+06 6.537772367E+03 9.568622970E-04 6.711474566E+03 2.166510338E+06
+ 2.383221145E+06 6.502163095E+03 9.529923515E-04 6.673703367E+03 2.205100928E+06
+ 2.420458975E+06 6.466702426E+03 9.491360045E-04 6.635932168E+03 2.243983065E+06
+ 2.457696806E+06 6.431606296E+03 9.452932178E-04 6.598160969E+03 2.283029608E+06
+ 2.494934636E+06 6.396425554E+03 9.414639531E-04 6.560389770E+03 2.322472295E+06
+ 2.532172466E+06 6.361388433E+03 9.376481721E-04 6.522618571E+03 2.361846792E+06
+ 2.569410297E+06 6.326720489E+03 9.338458369E-04 6.484847372E+03 2.401630814E+06
+ 2.606648127E+06 6.291964008E+03 9.300569091E-04 6.447076173E+03 2.441340321E+06
+ 2.643885958E+06 6.257348326E+03 9.262813510E-04 6.409304973E+03 2.481221111E+06
+ 2.681123788E+06 6.222950162E+03 9.225191245E-04 6.371533774E+03 2.521274400E+06
+ 2.718361618E+06 6.188614372E+03 9.187701917E-04 6.333762575E+03 2.561739125E+06
+ 2.755599449E+06 6.154418360E+03 9.150345149E-04 6.295991376E+03 2.602382526E+06
+ 2.792837279E+06 6.120361195E+03 9.113120563E-04 6.258220177E+03 2.642958494E+06
+ 2.830075109E+06 6.086669552E+03 9.076027783E-04 6.220448978E+03 2.683795704E+06
+ 2.867312940E+06 6.052887195E+03 9.039066432E-04 6.182677779E+03 2.724731401E+06
+ 2.904550770E+06 6.019242226E+03 9.002236136E-04 6.144906580E+03 2.766092475E+06
+ 2.941788601E+06 5.985967514E+03 8.965536519E-04 6.107135381E+03 2.807641944E+06
+ 2.979026431E+06 5.952594157E+03 8.928967208E-04 6.069364182E+03 2.849125589E+06
+ 3.016264261E+06 5.919357190E+03 8.892527829E-04 6.031592983E+03 2.890798091E+06
+ 3.053502092E+06 5.886255687E+03 8.856218010E-04 5.993821784E+03 2.932912392E+06
+ 3.090739922E+06 5.853290498E+03 8.820037378E-04 5.956050585E+03 2.975215753E+06
+ 3.127977753E+06 5.820685893E+03 8.783985563E-04 5.918279385E+03 3.017457913E+06
+ 3.165215583E+06 5.787986425E+03 8.748062194E-04 5.880508186E+03 3.059896312E+06
+ 3.202453413E+06 5.755439724E+03 8.712266901E-04 5.842736987E+03 3.102783388E+06
+ 3.239691244E+06 5.723236873E+03 8.676599315E-04 5.804965788E+03 3.145870793E+06
+ 3.276929074E+06 5.690935198E+03 8.641059067E-04 5.767194589E+03 3.188902244E+06
+ 3.314166905E+06 5.658765674E+03 8.605645789E-04 5.729423390E+03 3.232414452E+06
+ 3.351404735E+06 5.626729177E+03 8.570359115E-04 5.691652191E+03 3.276112619E+06
+ 3.388642565E+06 5.594823008E+03 8.535198677E-04 5.653880992E+03 3.319755131E+06
+ 3.425880396E+06 5.563048046E+03 8.500164110E-04 5.616109793E+03 3.363869679E+06
+ 3.463118226E+06 5.531633312E+03 8.465255049E-04 5.578338594E+03 3.408196163E+06
+ 3.500356056E+06 5.500116403E+03 8.430471129E-04 5.540567395E+03 3.452469545E+06
+ 3.537593887E+06 5.468958924E+03 8.395811987E-04 5.502796196E+03 3.497229258E+06
+ 3.574831717E+06 5.437698457E+03 8.361277259E-04 5.465024997E+03 3.542203079E+06
+ 3.612069548E+06 5.406567796E+03 8.326866583E-04 5.427253798E+03 3.587127791E+06
+ 3.649307378E+06 5.375564231E+03 8.292579597E-04 5.389482598E+03 3.632544019E+06
+ 3.686545208E+06 5.344688664E+03 8.258415941E-04 5.351711399E+03 3.678185143E+06
+ 3.723783039E+06 5.313940200E+03 8.224375253E-04 5.313940200E+03 3.723783039E+06
+ 3.776245924E+06 5.270252372E+03 8.213250183E-04 5.282383480E+03 3.761637270E+06
+ 3.828708810E+06 5.227461929E+03 8.159244415E-04 5.250826760E+03 3.800429526E+06
+ 3.881171695E+06 5.184911579E+03 8.105554389E-04 5.219270040E+03 3.839369885E+06
+ 3.933634581E+06 5.142645748E+03 8.052178548E-04 5.187713320E+03 3.877753241E+06
+ 3.986097466E+06 5.100661621E+03 7.999115342E-04 5.156156600E+03 3.916357015E+06
+ 4.038560352E+06 5.058370351E+03 7.946363224E-04 5.124599880E+03 3.955831985E+06
+ 4.091023237E+06 5.016931462E+03 7.893920654E-04 5.093043160E+03 3.995517943E+06
+ 4.143486123E+06 4.975767218E+03 7.841786100E-04 5.061486440E+03 4.034680730E+06
+ 4.195949008E+06 4.934879242E+03 7.789958032E-04 5.029929720E+03 4.074754308E+06
+ 4.248411894E+06 4.894264762E+03 7.738434927E-04 4.998373000E+03 4.115041779E+06
+ 4.300874780E+06 4.853335845E+03 7.687215268E-04 4.966816280E+03 4.154782548E+06
+ 4.353337665E+06 4.813259412E+03 7.636297543E-04 4.935259560E+03 4.195466466E+06
+ 4.405800551E+06 4.773440962E+03 7.585680247E-04 4.903702841E+03 4.236372809E+06
+ 4.458263436E+06 4.733890728E+03 7.535361879E-04 4.872146121E+03 4.276712092E+06
+ 4.510726322E+06 4.694605980E+03 7.485340944E-04 4.840589401E+03 4.318042584E+06
+ 4.563189207E+06 4.654999711E+03 7.435615953E-04 4.809032681E+03 4.359587099E+06
+ 4.615652093E+06 4.616228540E+03 7.386185422E-04 4.777475961E+03 4.400545075E+06
+ 4.668114978E+06 4.577716043E+03 7.337047873E-04 4.745919241E+03 4.441758979E+06
+ 4.720577864E+06 4.539463908E+03 7.288201833E-04 4.714362521E+03 4.483917510E+06
+ 4.773040749E+06 4.501469446E+03 7.239645836E-04 4.682805801E+03 4.526313157E+06
+ 4.825503635E+06 4.463149302E+03 7.191378419E-04 4.651249081E+03 4.568179139E+06
+ 4.877966520E+06 4.425687081E+03 7.143398128E-04 4.619692361E+03 4.611018295E+06
+ 4.930429406E+06 4.388645412E+03 7.095703511E-04 4.588135641E+03 4.654098669E+06
+ 4.982892291E+06 4.351658918E+03 7.048293124E-04 4.556578921E+03 4.696641102E+06
+ 5.035355177E+06 4.314327062E+03 7.001165527E-04 4.525022201E+03 4.740176801E+06
+ 5.087818062E+06 4.277824779E+03 6.954319286E-04 4.493465481E+03 4.783963790E+06
+ 5.140280948E+06 4.241569575E+03 6.907752974E-04 4.461908761E+03 4.827209118E+06
+ 5.192743833E+06 4.205563450E+03 6.861465166E-04 4.430352041E+03 4.871517716E+06
+ 5.245206719E+06 4.169799117E+03 6.815454446E-04 4.398795321E+03 4.915454667E+06
+ 5.297669604E+06 4.133688114E+03 6.769719401E-04 4.367238601E+03 4.960272586E+06
+ 5.350132490E+06 4.098393462E+03 6.724258625E-04 4.335681881E+03 5.005292752E+06
+ 5.402595375E+06 4.063338540E+03 6.679070717E-04 4.304125161E+03 5.049766648E+06
+ 5.455058261E+06 4.028534708E+03 6.634154281E-04 4.272568441E+03 5.096140364E+06
+ 5.507521146E+06 3.993956299E+03 6.589507928E-04 4.241011721E+03 5.141078089E+06
+ 5.559984032E+06 3.959030139E+03 6.545130271E-04 4.209455001E+03 5.187150907E+06
+ 5.612446918E+06 3.925506505E+03 6.501019932E-04 4.177898281E+03 5.233499059E+06
+ 5.664909803E+06 3.891016937E+03 6.457175537E-04 4.146341561E+03 5.279237248E+06
+ 5.717372689E+06 3.857361174E+03 6.413595717E-04 4.114784841E+03 5.326115161E+06
+ 5.769835574E+06 3.823932887E+03 6.370279109E-04 4.083228121E+03 5.373280960E+06
+ 5.822298460E+06 3.790158705E+03 6.327224354E-04 4.051671401E+03 5.419854294E+06
+ 5.874761345E+06 3.757762172E+03 6.284430101E-04 4.020114681E+03 5.467587167E+06
+ 5.927224231E+06 3.724411201E+03 6.241895002E-04 3.988557961E+03 5.515601610E+06
+ 5.979687116E+06 3.691923798E+03 6.199617716E-04 3.957001241E+03 5.563045097E+06
+ 6.032150002E+06 3.659612182E+03 6.157596905E-04 3.925444521E+03 5.612540811E+06
+ 6.084612887E+06 3.626951317E+03 6.115831239E-04 3.893887801E+03 5.660526109E+06
+ 6.137075773E+06 3.595654188E+03 6.074319392E-04 3.862331081E+03 5.709737953E+06
+ 6.189538658E+06 3.563403471E+03 6.033060043E-04 3.830774361E+03 5.759261859E+06
+ 6.242001544E+06 3.531959689E+03 5.992051877E-04 3.799217641E+03 5.808183533E+06
+ 6.294464429E+06 3.500729788E+03 5.951293583E-04 3.767660921E+03 5.858318164E+06
+ 6.346927315E+06 3.469715760E+03 5.910783858E-04 3.736104201E+03 5.908780056E+06
+ 6.399390200E+06 3.438915121E+03 5.870521402E-04 3.704547481E+03 5.959655053E+06
+ 6.451853086E+06 3.407738501E+03 5.830504919E-04 3.672990761E+03 6.010788001E+06
+ 6.504315971E+06 3.377358912E+03 5.790733123E-04 3.641434041E+03 6.061294425E+06
+ 6.556778857E+06 3.347178087E+03 5.751204727E-04 3.609877321E+03 6.113081508E+06
+ 6.609241742E+06 3.317206589E+03 5.711918455E-04 3.578320601E+03 6.165217005E+06
+ 6.661704628E+06 3.287441988E+03 5.672873032E-04 3.546763881E+03 6.217711122E+06
+ 6.714167513E+06 3.257307406E+03 5.634067191E-04 3.515207161E+03 6.270558851E+06
+ 6.766630399E+06 3.228533150E+03 5.595499668E-04 3.483650441E+03 6.322787189E+06
+ 6.819093284E+06 3.198778413E+03 5.557169206E-04 3.452093721E+03 6.376338187E+06
+ 6.871556170E+06 3.169817379E+03 5.519074552E-04 3.420537001E+03 6.430261433E+06
+ 6.924019056E+06 3.141056922E+03 5.481214458E-04 3.388980281E+03 6.484583411E+06
+ 6.976481941E+06 3.111935421E+03 5.443587682E-04 3.357423561E+03 6.539268671E+06
+ 7.028944827E+06 3.083746561E+03 5.406192987E-04 3.325866841E+03 6.594343518E+06
+ 7.081407712E+06 3.055572894E+03 5.369029141E-04 3.294310121E+03 6.649811313E+06
+ 7.133870598E+06 3.027595982E+03 5.332094917E-04 3.262753401E+03 6.704652335E+06
+ 7.186333483E+06 2.999813462E+03 5.295389092E-04 3.231196681E+03 6.761956486E+06
+ 7.238796369E+06 2.971651557E+03 5.258910450E-04 3.199639961E+03 6.817567733E+06
+ 7.291259254E+06 2.944831512E+03 5.222657780E-04 3.168083241E+03 6.874647597E+06
+ 7.343722140E+06 2.917025973E+03 5.186629873E-04 3.136526522E+03 6.932150296E+06
+ 7.396185025E+06 2.889998249E+03 5.150825530E-04 3.104969802E+03 6.989338917E+06
+ 7.448647911E+06 2.863158929E+03 5.115243553E-04 3.073413082E+03 7.048829714E+06
+ 7.501110796E+06 2.836519729E+03 5.079882750E-04 3.041856362E+03 7.106578294E+06
+ 7.553573682E+06 2.810055032E+03 5.044741935E-04 3.010299642E+03 7.166917912E+06
+ 7.606036567E+06 2.783192612E+03 5.009819927E-04 2.978742922E+03 7.225541612E+06
+ 7.658499453E+06 2.757681329E+03 4.975115548E-04 2.947186202E+03 7.286838055E+06
+ 7.710962338E+06 2.731159817E+03 4.940627628E-04 2.915629482E+03 7.346369487E+06
+ 7.763425224E+06 2.705419492E+03 4.906354999E-04 2.884072762E+03 7.408639368E+06
+ 7.815888109E+06 2.679857190E+03 4.872296500E-04 2.852516042E+03 7.469114352E+06
+ 7.868350995E+06 2.654475138E+03 4.838450974E-04 2.820959322E+03 7.532412790E+06
+ 7.920813880E+06 2.629271026E+03 4.804817270E-04 2.789402602E+03 7.593762780E+06
+ 7.973276766E+06 2.603655790E+03 4.771394240E-04 2.757845882E+03 7.658175441E+06
+ 8.025739651E+06 2.578839806E+03 4.738180742E-04 2.726289162E+03 7.720649507E+06
+ 8.078202537E+06 2.554152805E+03 4.705175640E-04 2.694732442E+03 7.786026125E+06
+ 8.130665422E+06 2.529640437E+03 4.672377801E-04 2.663175722E+03 7.849563276E+06
+ 8.183128308E+06 2.505300452E+03 4.639786098E-04 2.631619002E+03 7.916029186E+06
+ 8.235591194E+06 2.480559473E+03 4.607399408E-04 2.600062282E+03 7.980675709E+06
+ 8.288054079E+06 2.457138009E+03 4.575216614E-04 2.568505562E+03 8.048374993E+06
+ 8.340516965E+06 2.432712272E+03 4.543236603E-04 2.536948842E+03 8.115359961E+06
+ 8.392979850E+06 2.409041377E+03 4.511458267E-04 2.505392122E+03 8.182934836E+06
+ 8.445442736E+06 2.385537468E+03 4.479880503E-04 2.473835402E+03 8.251118585E+06
+ 8.497905621E+06 2.362212247E+03 4.448502212E-04 2.442278682E+03 8.319910678E+06
+ 8.550368507E+06 2.339040438E+03 4.417322302E-04 2.410721962E+03 8.389330923E+06
+ 8.602831392E+06 2.315458200E+03 4.386339683E-04 2.379165242E+03 8.459389682E+06
+ 8.655294278E+06 2.293189375E+03 4.355553271E-04 2.347608522E+03 8.531430854E+06
+ 8.707757163E+06 2.269908616E+03 4.324961987E-04 2.316051802E+03 8.601504643E+06
+ 8.760220049E+06 2.247378685E+03 4.294564757E-04 2.284495082E+03 8.674827727E+06
+ 8.812682934E+06 2.225006208E+03 4.264360511E-04 2.252938362E+03 8.747564429E+06
+ 8.865145820E+06 2.202793455E+03 4.234348183E-04 2.221381642E+03 8.821003031E+06
+ 8.917608705E+06 2.180738253E+03 4.204526713E-04 2.189824922E+03 8.896537661E+06
+ 8.970071591E+06 2.158268202E+03 4.174895046E-04 2.158268202E+03 8.970071591E+06
+ 9.191535981E+06 2.065815333E+03 4.089058710E-04 2.136876104E+03 9.020519625E+06
+ 9.413000372E+06 1.977107454E+03 3.923202599E-04 2.115484006E+03 9.071424693E+06
+ 9.634464762E+06 1.892002319E+03 3.763625414E-04 2.094091909E+03 9.122838779E+06
+ 9.855929153E+06 1.810363731E+03 3.610109053E-04 2.072699811E+03 9.174729107E+06
+ 1.007739354E+07 1.732059682E+03 3.462442171E-04 2.051307713E+03 9.227126465E+06
+ 1.029885793E+07 1.656956673E+03 3.320420005E-04 2.029915615E+03 9.280065199E+06
+ 1.052032232E+07 1.584940320E+03 3.183844193E-04 2.008523517E+03 9.333531260E+06
+ 1.074178672E+07 1.515895887E+03 3.052522613E-04 1.987131419E+03 9.387515558E+06
+ 1.096325111E+07 1.449701671E+03 2.926269212E-04 1.965739322E+03 9.442050360E+06
+ 1.118471550E+07 1.386249061E+03 2.804903844E-04 1.944347224E+03 9.497170968E+06
+ 1.140617989E+07 1.325431608E+03 2.688252108E-04 1.922955126E+03 9.552843636E+06
+ 1.162764428E+07 1.267147215E+03 2.576145197E-04 1.901563028E+03 9.609127080E+06
+ 1.184910867E+07 1.211296363E+03 2.468419737E-04 1.880170930E+03 9.665987828E+06
+ 1.207057306E+07 1.157764242E+03 2.364917642E-04 1.858778832E+03 9.723461840E+06
+ 1.229203745E+07 1.106518739E+03 2.265485967E-04 1.837386734E+03 9.781588831E+06
+ 1.251350184E+07 1.057404327E+03 2.169976759E-04 1.815994637E+03 9.840357499E+06
+ 1.273496623E+07 1.010370221E+03 2.078246923E-04 1.794602539E+03 9.899759125E+06
+ 1.295643062E+07 9.653270365E+02 1.990158080E-04 1.773210441E+03 9.959832381E+06
+ 1.317789501E+07 9.221954879E+02 1.905576433E-04 1.751818343E+03 1.002062001E+07
+ 1.339935940E+07 8.808997659E+02 1.824372636E-04 1.730426245E+03 1.008211225E+07
+ 1.362082379E+07 8.413657522E+02 1.746421666E-04 1.709034147E+03 1.014430123E+07
+ 1.384228818E+07 8.035231758E+02 1.671602695E-04 1.687642050E+03 1.020722904E+07
+ 1.406375257E+07 7.673038355E+02 1.599798969E-04 1.666249952E+03 1.027094986E+07
+ 1.428521696E+07 7.326330410E+02 1.530897688E-04 1.644857854E+03 1.033544018E+07
+ 1.450668135E+07 6.994727637E+02 1.464789888E-04 1.623465756E+03 1.040070155E+07
+ 1.472814575E+07 6.677399507E+02 1.401370327E-04 1.602073658E+03 1.046677971E+07
+ 1.494961014E+07 6.373828283E+02 1.340537374E-04 1.580681560E+03 1.053371217E+07
+ 1.517107453E+07 6.083450623E+02 1.282192900E-04 1.559289463E+03 1.060152499E+07
+ 1.539253892E+07 5.805730259E+02 1.226242171E-04 1.537897365E+03 1.067021768E+07
+ 1.561400331E+07 5.540140069E+02 1.172593745E-04 1.516505267E+03 1.073979128E+07
+ 1.583546770E+07 5.286184288E+02 1.121159371E-04 1.495113169E+03 1.081032825E+07
+ 1.605693209E+07 5.043380622E+02 1.071853890E-04 1.473721071E+03 1.088182586E+07
+ 1.627839648E+07 4.811282852E+02 1.024595142E-04 1.452328973E+03 1.095428278E+07
+ 1.649986087E+07 4.589415797E+02 9.793038665E-05 1.430936876E+03 1.102775502E+07
+ 1.672132526E+07 4.377368269E+02 9.359036185E-05 1.409544778E+03 1.110230610E+07
+ 1.694278965E+07 4.174728220E+02 8.943206748E-05 1.388152680E+03 1.117793497E+07
+ 1.716425404E+07 3.981105490E+02 8.544839496E-05 1.366760582E+03 1.125464246E+07
+ 1.738571843E+07 3.796113608E+02 8.163249103E-05 1.345368484E+03 1.133252796E+07
+ 1.760718282E+07 3.619392523E+02 7.797774957E-05 1.323976386E+03 1.141159445E+07
+ 1.782864721E+07 3.450591381E+02 7.447780362E-05 1.302584289E+03 1.149184575E+07
+ 1.805011160E+07 3.289421396E+02 7.112651767E-05 1.281192191E+03 1.157339098E+07
+ 1.827157599E+07 3.135470708E+02 6.791798010E-05 1.259800093E+03 1.165623433E+07
+ 1.849304038E+07 2.988560047E+02 6.484649587E-05 1.238407995E+03 1.174038499E+07
+ 1.871450478E+07 2.848213478E+02 6.190657941E-05 1.217015897E+03 1.182599636E+07
+ 1.893596917E+07 2.714141997E+02 5.909294768E-05 1.195623799E+03 1.191297366E+07
+ 1.915743356E+07 2.586335718E+02 5.640051347E-05 1.174231702E+03 1.200147478E+07
+ 1.937889795E+07 2.464300592E+02 5.382437886E-05 1.152839604E+03 1.209151698E+07
+ 1.960036234E+07 2.347829638E+02 5.135982884E-05 1.131447506E+03 1.218311871E+07
+ 1.982182673E+07 2.236788861E+02 4.900232521E-05 1.110055408E+03 1.227641657E+07
+ 2.004329112E+07 2.130766014E+02 4.674750055E-05 1.088663310E+03 1.237143508E+07
+ 2.026475551E+07 2.029622270E+02 4.459115241E-05 1.067271212E+03 1.246824803E+07
+ 2.048621990E+07 1.933038386E+02 4.252923770E-05 1.045879114E+03 1.256691260E+07
+ 2.070768429E+07 1.841228074E+02 4.055786721E-05 1.024487017E+03 1.266746837E+07
+ 2.092914868E+07 1.753501878E+02 3.867330026E-05 1.003094919E+03 1.277012260E+07
+ 2.115061307E+07 1.669840651E+02 3.687193963E-05 9.817028210E+02 1.287478941E+07
+ 2.137207746E+07 1.590079075E+02 3.515032650E-05 9.603107231E+02 1.298168847E+07
+ 2.159354185E+07 1.514042749E+02 3.350513562E-05 9.389186253E+02 1.309087257E+07
+ 2.181500624E+07 1.441662561E+02 3.193317066E-05 9.175265274E+02 1.320244539E+07
+ 2.203647063E+07 1.372591130E+02 3.043135960E-05 8.961344296E+02 1.331651711E+07
+ 2.225793502E+07 1.306857006E+02 2.899675037E-05 8.747423318E+02 1.343320814E+07
+ 2.247939941E+07 1.244113956E+02 2.762650655E-05 8.533502339E+02 1.355264127E+07
+ 2.270086381E+07 1.184448924E+02 2.631790324E-05 8.319581361E+02 1.367500608E+07
+ 2.292232820E+07 1.127529384E+02 2.506832307E-05 8.105660383E+02 1.380029639E+07
+ 2.314379259E+07 1.073311526E+02 2.387525230E-05 7.891739404E+02 1.392887934E+07
+ 2.336525698E+07 1.021677144E+02 2.273627707E-05 7.677818426E+02 1.406076701E+07
+ 2.358672137E+07 9.725943687E+01 2.164907977E-05 7.463897447E+02 1.419619843E+07
+ 2.380818576E+07 9.257723660E+01 2.061143553E-05 7.249976469E+02 1.433534659E+07
+ 2.402965015E+07 8.812975134E+01 1.962120878E-05 7.036055491E+02 1.447759342E+07
+ 2.425111454E+07 8.388622759E+01 1.867635002E-05 6.822134512E+02 1.462591259E+07
+ 2.447257893E+07 7.984693688E+01 1.777489256E-05 6.608213534E+02 1.477773157E+07
+ 2.469404332E+07 7.600230193E+01 1.691494953E-05 6.394292556E+02 1.493437703E+07
+ 2.491550771E+07 7.235329480E+01 1.609471081E-05 6.180371577E+02 1.509609965E+07
+ 2.513697210E+07 6.888100021E+01 1.531244022E-05 5.966450599E+02 1.526318689E+07
+ 2.535843649E+07 6.556896006E+01 1.456647271E-05 5.752529620E+02 1.543608465E+07
+ 2.557990088E+07 6.242050712E+01 1.385521167E-05 5.538608642E+02 1.561530856E+07
+ 2.580136527E+07 5.942959930E+01 1.317712636E-05 5.324687664E+02 1.580126948E+07
+ 2.602282966E+07 5.657881384E+01 1.253074938E-05 5.110766685E+02 1.599450945E+07
+ 2.624429405E+07 5.387694345E+01 1.191467423E-05 4.896845707E+02 1.619565510E+07
+ 2.646575845E+07 5.130822917E+01 1.132755303E-05 4.682924728E+02 1.640537306E+07
+ 2.668722284E+07 4.885722972E+01 1.076809421E-05 4.469003750E+02 1.662446723E+07
+ 2.690868723E+07 4.652688572E+01 1.023506034E-05 4.255082772E+02 1.685384121E+07
+ 2.713015162E+07 4.432237911E+01 9.727266047E-06 4.041161793E+02 1.709454318E+07
+ 2.735161601E+07 4.222577531E+01 9.243575978E-06 3.827240815E+02 1.734777756E+07
+ 2.757308040E+07 4.022484020E+01 8.782902831E-06 3.613319837E+02 1.761508548E+07
+ 2.779454479E+07 3.833255240E+01 8.344205480E-06 3.399398858E+02 1.789778843E+07
+ 2.801600918E+07 3.653446083E+01 7.926487150E-06 3.185477880E+02 1.819860021E+07
+ 2.823747357E+07 3.481793207E+01 7.528793660E-06 2.971556901E+02 1.851929841E+07
+ 2.845893796E+07 3.318678275E+01 7.150211735E-06 2.757635923E+02 1.886304362E+07
+ 2.868040235E+07 3.164382352E+01 6.789867371E-06 2.543714945E+02 1.923367858E+07
+ 2.890186674E+07 3.019029128E+01 6.446924268E-06 2.329793966E+02 1.963572808E+07
+ 2.912333113E+07 2.879294575E+01 6.120582308E-06 2.115872988E+02 2.007519582E+07
+ 2.934479552E+07 2.747505548E+01 5.810076106E-06 1.901952010E+02 2.056020919E+07
+ 2.956625991E+07 2.620391667E+01 5.514673595E-06 1.688031031E+02 2.110165724E+07
+ 2.978772430E+07 2.502736357E+01 5.233674679E-06 1.474110053E+02 2.171451166E+07
+ 3.000918869E+07 2.390184334E+01 4.966409930E-06 1.260189074E+02 2.242139519E+07
+ 3.023065308E+07 2.283240794E+01 4.712239330E-06 1.046268096E+02 2.325842902E+07
+ 3.045211748E+07 2.180888860E+01 4.470551067E-06 8.323471176E+01 2.428595146E+07
+ 3.067358187E+07 2.084668699E+01 4.240760373E-06 6.184261393E+01 2.562148876E+07
+ 3.089504626E+07 1.993362983E+01 4.022308402E-06 4.045051609E+01 2.754776466E+07
+ 3.111651065E+07 1.905841825E+01 3.814661162E-06 1.905841825E+01 3.111651065E+07
+ 3.145378661E+07 1.777406178E+01 3.682366664E-06 1.886789584E+01 3.116514473E+07
+ 3.179106257E+07 1.657271660E+01 3.444034360E-06 1.867737342E+01 3.121424957E+07
+ 3.212833853E+07 1.544923499E+01 3.220404867E-06 1.848685100E+01 3.126383564E+07
+ 3.246561449E+07 1.439882717E+01 3.010620749E-06 1.829632859E+01 3.131391467E+07
+ 3.280289045E+07 1.341695582E+01 2.813871283E-06 1.810580617E+01 3.136448818E+07
+ 3.314016641E+07 1.249933745E+01 2.629390134E-06 1.791528376E+01 3.141557955E+07
+ 3.347744236E+07 1.164198825E+01 2.456453114E-06 1.772476134E+01 3.146719302E+07
+ 3.381471832E+07 1.084112143E+01 2.294376057E-06 1.753423893E+01 3.151933963E+07
+ 3.415199428E+07 1.009316869E+01 2.142512780E-06 1.734371651E+01 3.157203081E+07
+ 3.448927024E+07 9.394807919E+00 2.000253140E-06 1.715319410E+01 3.162527553E+07
+ 3.482654620E+07 8.742890357E+00 1.867021182E-06 1.696267168E+01 3.167908519E+07
+ 3.516382216E+07 8.134454397E+00 1.742273369E-06 1.677214927E+01 3.173348472E+07
+ 3.550109812E+07 7.566727892E+00 1.625496897E-06 1.658162685E+01 3.178847600E+07
+ 3.583837408E+07 7.037119809E+00 1.516208087E-06 1.639110443E+01 3.184407245E+07
+ 3.617565004E+07 6.543185092E+00 1.413950854E-06 1.620058202E+01 3.190029134E+07
+ 3.651292600E+07 6.082603816E+00 1.318295248E-06 1.601005960E+01 3.195713940E+07
+ 3.685020196E+07 5.653204959E+00 1.228836067E-06 1.581953719E+01 3.201464648E+07
+ 3.718747792E+07 5.253032456E+00 1.145191533E-06 1.562901477E+01 3.207281986E+07
+ 3.752475388E+07 4.880116939E+00 1.067002034E-06 1.543849236E+01 3.213167555E+07
+ 3.786202984E+07 4.532709010E+00 9.939289286E-07 1.524796994E+01 3.219123016E+07
+ 3.819930580E+07 4.209119841E+00 9.256534088E-07 1.505744753E+01 3.225150091E+07
+ 3.853658176E+07 3.907801886E+00 8.618754164E-07 1.486692511E+01 3.231249919E+07
+ 3.887385772E+07 3.627268712E+00 8.023126164E-07 1.467640270E+01 3.237425653E+07
+ 3.921113368E+07 3.366151420E+00 7.466994210E-07 1.448588028E+01 3.243678416E+07
+ 3.954840964E+07 3.123149698E+00 6.947860619E-07 1.429535786E+01 3.250009988E+07
+ 3.988568560E+07 2.897091690E+00 6.463377104E-07 1.410483545E+01 3.256423366E+07
+ 4.022296156E+07 2.686812169E+00 6.011336422E-07 1.391431303E+01 3.262919348E+07
+ 4.056023752E+07 2.491254504E+00 5.589664449E-07 1.372379062E+01 3.269501855E+07
+ 4.089751348E+07 2.309442860E+00 5.196412666E-07 1.353326820E+01 3.276172404E+07
+ 4.123478944E+07 2.140436396E+00 4.829751034E-07 1.334274579E+01 3.282933444E+07
+ 4.157206540E+07 1.983370232E+00 4.487961241E-07 1.315222337E+01 3.289786350E+07
+ 4.190934136E+07 1.837443710E+00 4.169430305E-07 1.296170096E+01 3.296736434E+07
+ 4.224661732E+07 1.701864988E+00 3.872644513E-07 1.277117854E+01 3.303784695E+07
+ 4.258389328E+07 1.575967206E+00 3.596183685E-07 1.258065612E+01 3.310933421E+07
+ 4.292116924E+07 1.459084821E+00 3.338715740E-07 1.239013371E+01 3.318186856E+07
+ 4.325844520E+07 1.350572598E+00 3.098991560E-07 1.219961129E+01 3.325548501E+07
+ 4.359572116E+07 1.249852701E+00 2.875840125E-07 1.200908888E+01 3.333021057E+07
+ 4.393299712E+07 1.156399938E+00 2.668163919E-07 1.181856646E+01 3.340607270E+07
+ 4.427027308E+07 1.069713126E+00 2.474934581E-07 1.162804405E+01 3.348312244E+07
+ 4.460754904E+07 9.892948876E-01 2.295188797E-07 1.143752163E+01 3.356139075E+07
+ 4.494482500E+07 9.147438823E-01 2.128024424E-07 1.124699922E+01 3.364091778E+07
+ 4.528210096E+07 8.456286141E-01 1.972596817E-07 1.105647680E+01 3.372174570E+07
+ 4.561937692E+07 7.815571479E-01 1.828115377E-07 1.086595439E+01 3.380390833E+07
+ 4.595665287E+07 7.222008459E-01 1.693840277E-07 1.067543197E+01 3.388746761E+07
+ 4.629392883E+07 6.671924532E-01 1.569079382E-07 1.048490955E+01 3.397247012E+07
+ 4.663120479E+07 6.162582088E-01 1.453185344E-07 1.029438714E+01 3.405895789E+07
+ 4.696848075E+07 5.690795563E-01 1.345552856E-07 1.010386472E+01 3.414700428E+07
+ 4.730575671E+07 5.253836202E-01 1.245616068E-07 9.913342308E+00 3.423664826E+07
+ 4.764303267E+07 4.849826211E-01 1.152846153E-07 9.722819893E+00 3.432795860E+07
+ 4.798030863E+07 4.475595913E-01 1.066749007E-07 9.532297477E+00 3.442101191E+07
+ 4.831758459E+07 4.129406355E-01 9.868630915E-08 9.341775062E+00 3.451585430E+07
+ 4.865486055E+07 3.809171962E-01 9.127573946E-08 9.151252646E+00 3.461256174E+07
+ 4.899213651E+07 3.513033766E-01 8.440295156E-08 8.960730231E+00 3.471123274E+07
+ 4.932941247E+07 3.239354372E-01 7.803038615E-08 8.770207815E+00 3.481193563E+07
+ 4.966668843E+07 2.986402795E-01 7.212299502E-08 8.579685400E+00 3.491474698E+07
+ 5.000396439E+07 2.752289679E-01 6.664808149E-08 8.389162984E+00 3.501977485E+07
+ 5.034124035E+07 2.536346311E-01 6.157515040E-08 8.198640569E+00 3.512711797E+07
+ 5.067851631E+07 2.336612523E-01 5.687576708E-08 8.008118153E+00 3.523687065E+07
+ 5.101579227E+07 2.152357399E-01 5.252342485E-08 7.817595738E+00 3.534917079E+07
+ 5.135306823E+07 1.981765807E-01 4.849342056E-08 7.627073322E+00 3.546410734E+07
+ 5.169034419E+07 1.824766469E-01 4.476273767E-08 7.436550907E+00 3.558185658E+07
+ 5.202762015E+07 1.679718515E-01 4.130993655E-08 7.246028492E+00 3.570250486E+07
+ 5.236489611E+07 1.545993851E-01 3.811505147E-08 7.055506076E+00 3.582626184E+07
+ 5.270217207E+07 1.422299540E-01 3.515949394E-08 6.864983661E+00 3.595326755E+07
+ 5.303944803E+07 1.308407942E-01 3.242596210E-08 6.674461245E+00 3.608370141E+07
+ 5.337672399E+07 1.203170206E-01 2.989835566E-08 6.483938830E+00 3.621773203E+07
+ 5.371399995E+07 1.106415023E-01 2.756169630E-08 6.293416414E+00 3.635560018E+07
+ 5.405127591E+07 1.017306840E-01 2.540205290E-08 6.102893999E+00 3.649755799E+07
+ 5.438855187E+07 9.349676141E-02 2.340647160E-08 5.912371583E+00 3.664381671E+07
+ 5.472582783E+07 8.591678600E-02 2.156291031E-08 5.721849168E+00 3.679468047E+07
+ 5.506310379E+07 7.893747352E-02 1.986017724E-08 5.531326752E+00 3.695043509E+07
+ 5.540037975E+07 7.248543543E-02 1.828787355E-08 5.340804337E+00 3.711145185E+07
+ 5.573765571E+07 6.658947497E-02 1.683633953E-08 5.150281921E+00 3.727805314E+07
+ 5.607493167E+07 6.113743363E-02 1.549660431E-08 4.959759506E+00 3.745068286E+07
+ 5.641220763E+07 5.611067009E-02 1.426033882E-08 4.769237090E+00 3.762982485E+07
+ 5.674948359E+07 5.150195804E-02 1.311981179E-08 4.578714675E+00 3.781596666E+07
+ 5.708675955E+07 4.725840824E-02 1.206784864E-08 4.388192259E+00 3.800969461E+07
+ 5.742403551E+07 4.335776374E-02 1.109779303E-08 4.197669844E+00 3.821169331E+07
+ 5.776131147E+07 3.974020120E-02 1.020347100E-08 4.007147428E+00 3.842269914E+07
+ 5.809858742E+07 3.646564123E-02 9.379157369E-09 3.816625013E+00 3.864355910E+07
+ 5.843586338E+07 3.342039360E-02 8.619544475E-09 3.626102598E+00 3.887531162E+07
+ 5.877313934E+07 3.064609416E-02 7.919712929E-09 3.435580182E+00 3.911907453E+07
+ 5.911041530E+07 2.807954757E-02 7.275104339E-09 3.245057767E+00 3.937617445E+07
+ 5.944769126E+07 2.573491078E-02 6.681495860E-09 3.054535351E+00 3.964825593E+07
+ 5.978496722E+07 2.356595268E-02 6.134976462E-09 2.864012936E+00 3.993715818E+07
+ 6.012224318E+07 2.158885582E-02 5.631924796E-09 2.673490520E+00 4.024518041E+07
+ 6.045951914E+07 1.975467240E-02 5.168988563E-09 2.482968105E+00 4.057508940E+07
+ 6.079679510E+07 1.808705432E-02 4.743065292E-09 2.292445689E+00 4.093034797E+07
+ 6.113407106E+07 1.655744080E-02 4.351284421E-09 2.101923274E+00 4.131520198E+07
+ 6.147134702E+07 1.516358209E-02 3.990990616E-09 1.911400858E+00 4.173525600E+07
+ 6.180862298E+07 1.386892373E-02 3.659728240E-09 1.720878443E+00 4.219782722E+07
+ 6.214589894E+07 1.268527453E-02 3.355226885E-09 1.530356027E+00 4.271253601E+07
+ 6.248317490E+07 1.158534261E-02 3.075387917E-09 1.339833612E+00 4.329316951E+07
+ 6.282045086E+07 1.060731488E-02 2.818271954E-09 1.149311196E+00 4.395965903E+07
+ 6.315772682E+07 9.684155050E-03 2.582087220E-09 9.587887809E-01 4.474257466E+07
+ 6.349500278E+07 8.867991403E-03 2.365178712E-09 7.682663654E-01 4.569272190E+07
+ 6.383227874E+07 8.092160122E-03 2.166018136E-09 5.777439500E-01 4.690462611E+07
+ 6.416955470E+07 7.404817042E-03 1.983194546E-09 3.872215345E-01 4.858646548E+07
+ 6.450683066E+07 6.763704666E-03 1.815405655E-09 1.966991190E-01 5.138395451E+07
+ 6.484410662E+07 6.176703533E-03 1.661449755E-09 6.176703533E-03 6.484410662E+07
+ 6.490587365E+07 6.114936498E-03 1.000000000E-09 6.114936498E-03 6.490587362E+07
+ 6.496764069E+07 6.053169462E-03 1.000000000E-09 6.053169462E-03 6.496764062E+07
+ 6.502940773E+07 5.991402427E-03 1.000000000E-09 5.991402427E-03 6.502940700E+07
+ 6.509117476E+07 5.929635392E-03 1.000000000E-09 5.929635392E-03 6.509117400E+07
+ 6.515294180E+07 5.867868356E-03 1.000000000E-09 5.867868356E-03 6.515294180E+07
+ 6.521470883E+07 5.806101321E-03 1.000000000E-09 5.806101321E-03 6.521470900E+07
+ 6.527647587E+07 5.744334286E-03 1.000000000E-09 5.744334286E-03 6.527647200E+07
+ 6.533824290E+07 5.682567250E-03 1.000000000E-09 5.682567250E-03 6.533824100E+07
+ 6.540000994E+07 5.620800215E-03 1.000000000E-09 5.620800215E-03 6.540000993E+07
+ 6.546177697E+07 5.559033180E-03 1.000000000E-09 5.559033180E-03 6.546177600E+07
+ 6.552354401E+07 5.497266144E-03 1.000000000E-09 5.497266144E-03 6.552354406E+07
+ 6.558531104E+07 5.435499109E-03 1.000000000E-09 5.435499109E-03 6.558531105E+07
+ 6.564707808E+07 5.373732074E-03 1.000000000E-09 5.373732074E-03 6.564708800E+07
+ 6.570884511E+07 5.311965038E-03 1.000000000E-09 5.311965038E-03 6.570884500E+07
+ 6.577061215E+07 5.250198003E-03 1.000000000E-09 5.250198003E-03 6.577061212E+07
+ 6.583237918E+07 5.188430968E-03 1.000000000E-09 5.188430968E-03 6.583237700E+07
+ 6.589414622E+07 5.126663932E-03 1.000000000E-09 5.126663932E-03 6.589414625E+07
+ 6.595591326E+07 5.064896897E-03 1.000000000E-09 5.064896897E-03 6.595591326E+07
+ 6.601768029E+07 5.003129862E-03 1.000000000E-09 5.003129862E-03 6.601768012E+07
+ 6.607944733E+07 4.941362826E-03 1.000000000E-09 4.941362826E-03 6.607944000E+07
+ 6.614121436E+07 4.879595791E-03 1.000000000E-09 4.879595791E-03 6.614118400E+07
+ 6.620298140E+07 4.817828756E-03 1.000000000E-09 4.817828756E-03 6.620298137E+07
+ 6.626474843E+07 4.756061720E-03 1.000000000E-09 4.756061720E-03 6.626474837E+07
+ 6.632651547E+07 4.694294685E-03 1.000000000E-09 4.694294685E-03 6.632652800E+07
+ 6.638828250E+07 4.632527650E-03 1.000000000E-09 4.632527650E-03 6.638828250E+07
+ 6.645004954E+07 4.570760614E-03 1.000000000E-09 4.570760614E-03 6.645004800E+07
+ 6.651181657E+07 4.508993579E-03 1.000000000E-09 4.508993579E-03 6.651181657E+07
+ 6.657358361E+07 4.447226544E-03 1.000000000E-09 4.447226544E-03 6.657356800E+07
+ 6.663535064E+07 4.385459508E-03 1.000000000E-09 4.385459508E-03 6.663535100E+07
+ 6.669711768E+07 4.323692473E-03 1.000000000E-09 4.323692473E-03 6.669711762E+07
+ 6.675888471E+07 4.261925438E-03 1.000000000E-09 4.261925438E-03 6.675888469E+07
+ 6.682065175E+07 4.200158402E-03 1.000000000E-09 4.200158402E-03 6.682065175E+07
+ 6.688241879E+07 4.138391367E-03 1.000000000E-09 4.138391367E-03 6.688241879E+07
+ 6.694418582E+07 4.076624332E-03 1.000000000E-09 4.076624332E-03 6.694418582E+07
+ 6.700595286E+07 4.014857296E-03 1.000000000E-09 4.014857296E-03 6.700595287E+07
+ 6.706771989E+07 3.953090261E-03 1.000000000E-09 3.953090261E-03 6.706772000E+07
+ 6.712948693E+07 3.891323226E-03 1.000000000E-09 3.891323226E-03 6.712948700E+07
+ 6.719125396E+07 3.829556190E-03 1.000000000E-09 3.829556190E-03 6.719125600E+07
+ 6.725302100E+07 3.767789155E-03 1.000000000E-09 3.767789155E-03 6.725302106E+07
+ 6.731478803E+07 3.706022120E-03 1.000000000E-09 3.706022120E-03 6.731478800E+07
+ 6.737655507E+07 3.644255084E-03 1.000000000E-09 3.644255084E-03 6.737655500E+07
+ 6.743832210E+07 3.582488049E-03 1.000000000E-09 3.582488049E-03 6.743833600E+07
+ 6.750008914E+07 3.520721014E-03 1.000000000E-09 3.520721014E-03 6.750008914E+07
+ 6.756185617E+07 3.458953978E-03 1.000000000E-09 3.458953978E-03 6.756185617E+07
+ 6.762362321E+07 3.397186943E-03 1.000000000E-09 3.397186943E-03 6.762363200E+07
+ 6.768539024E+07 3.335419908E-03 1.000000000E-09 3.335419908E-03 6.768539024E+07
+ 6.774715728E+07 3.273652872E-03 1.000000000E-09 3.273652872E-03 6.774715728E+07
+ 6.780892432E+07 3.211885837E-03 1.000000000E-09 3.211885837E-03 6.780896878E+07
+ 6.787069135E+07 3.150118802E-03 1.000000000E-09 3.150118802E-03 6.787069135E+07
+ 6.793245839E+07 3.088351766E-03 1.000000000E-09 3.088351766E-03 6.793245839E+07
+ 6.799422542E+07 3.026584731E-03 1.000000000E-09 3.026584731E-03 6.799422400E+07
+ 6.805599246E+07 2.964817696E-03 1.000000000E-09 2.964817696E-03 6.805599246E+07
+ 6.811775949E+07 2.903050660E-03 1.000000000E-09 2.903050660E-03 6.811775949E+07
+ 6.817952653E+07 2.841283625E-03 1.000000000E-09 2.841283625E-03 6.817952653E+07
+ 6.824129356E+07 2.779516590E-03 1.000000000E-09 2.779516590E-03 6.824129356E+07
+ 6.830306060E+07 2.717749554E-03 1.000000000E-09 2.717749554E-03 6.830310400E+07
+ 6.836482763E+07 2.655982519E-03 1.000000000E-09 2.655982519E-03 6.836482763E+07
+ 6.842659467E+07 2.594215484E-03 1.000000000E-09 2.594215484E-03 6.842659467E+07
+ 6.848836170E+07 2.532448448E-03 1.000000000E-09 2.532448448E-03 6.848836170E+07
+ 6.855012874E+07 2.470681413E-03 1.000000000E-09 2.470681413E-03 6.855012878E+07
+ 6.861189577E+07 2.408914378E-03 1.000000000E-09 2.408914378E-03 6.861190400E+07
+ 6.867366281E+07 2.347147342E-03 1.000000000E-09 2.347147342E-03 6.867366275E+07
+ 6.873542985E+07 2.285380307E-03 1.000000000E-09 2.285380307E-03 6.873542985E+07
+ 6.879719688E+07 2.223613272E-03 1.000000000E-09 2.223613272E-03 6.879719700E+07
+ 6.885896392E+07 2.161846236E-03 1.000000000E-09 2.161846236E-03 6.885896392E+07
+ 6.892073095E+07 2.100079201E-03 1.000000000E-09 2.100079201E-03 6.892073100E+07
+ 6.898249799E+07 2.038312166E-03 1.000000000E-09 2.038312166E-03 6.898252800E+07
+ 6.904426502E+07 1.976545131E-03 1.000000000E-09 1.976545131E-03 6.904426500E+07
+ 6.910603206E+07 1.914778095E-03 1.000000000E-09 1.914778095E-03 6.910603206E+07
+ 6.916779909E+07 1.853011060E-03 1.000000000E-09 1.853011060E-03 6.916781155E+07
+ 6.922956613E+07 1.791244025E-03 1.000000000E-09 1.791244025E-03 6.922956800E+07
+ 6.929133316E+07 1.729476989E-03 1.000000000E-09 1.729476989E-03 6.929133319E+07
+ 6.935310020E+07 1.667709954E-03 1.000000000E-09 1.667709954E-03 6.935315810E+07
+ 6.941486723E+07 1.605942919E-03 1.000000000E-09 1.605942919E-03 6.941486700E+07
+ 6.947663427E+07 1.544175883E-03 1.000000000E-09 1.544175883E-03 6.947663463E+07
+ 6.953840130E+07 1.482408848E-03 1.000000000E-09 1.482408848E-03 6.953840131E+07
+ 6.960016834E+07 1.420641813E-03 1.000000000E-09 1.420641813E-03 6.960016834E+07
+ 6.966193538E+07 1.358874777E-03 1.000000000E-09 1.358874777E-03 6.966193525E+07
+ 6.972370241E+07 1.297107742E-03 1.000000000E-09 1.297107742E-03 6.972370271E+07
+ 6.978546945E+07 1.235340707E-03 1.000000000E-09 1.235340707E-03 6.978553472E+07
+ 6.984723648E+07 1.173573671E-03 1.000000000E-09 1.173573671E-03 6.984724800E+07
+ 6.990900352E+07 1.111806636E-03 1.000000000E-09 1.111806636E-03 6.990905116E+07
+ 6.997077055E+07 1.050039601E-03 1.000000000E-09 1.050039601E-03 6.997077728E+07
+ 7.003253759E+07 9.882725653E-04 1.000000000E-09 9.882725653E-04 7.003253759E+07
+ 7.009430462E+07 9.265055299E-04 1.000000000E-09 9.265055299E-04 7.009430462E+07
+ 7.015607166E+07 8.647384946E-04 1.000000000E-09 8.647384946E-04 7.015607167E+07
+ 7.021783869E+07 8.029714593E-04 1.000000000E-09 8.029714593E-04 7.021783875E+07
+ 7.027960573E+07 7.412044239E-04 1.000000000E-09 7.412044239E-04 7.027960575E+07
+ 7.034137276E+07 6.794373886E-04 1.000000000E-09 6.794373886E-04 7.034137276E+07
+ 7.040313980E+07 6.176703533E-04 1.000000000E-09 6.176703533E-04 7.040313980E+07
+ 7.046490683E+07 5.559033180E-04 1.000000000E-09 5.559033180E-04 7.046490687E+07
+ 7.052667387E+07 4.941362826E-04 1.000000000E-09 4.941362826E-04 7.052667500E+07
+ 7.058844090E+07 4.323692473E-04 1.000000000E-09 4.323692473E-04 7.058844100E+07
+ 7.065020794E+07 3.706022120E-04 1.000000000E-09 3.706022120E-04 7.065020797E+07
+ 7.071197498E+07 3.088351766E-04 1.000000000E-09 3.088351766E-04 7.071196800E+07
+ 7.077374201E+07 2.470681413E-04 1.000000000E-09 2.470681413E-04 7.077374400E+07
+ 7.083550905E+07 1.853011060E-04 1.000000000E-09 1.853011060E-04 7.083552000E+07
+ 7.089727608E+07 1.235340707E-04 1.000000000E-09 1.235340707E-04 7.089727608E+07
+ 7.095904312E+07 6.176703533E-05 1.000000000E-09 6.176703533E-05 7.095904312E+07
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM85
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM85	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM85	(revision 4308)
@@ -0,0 +1,501 @@
+DENSITY AND THICKNESS DATA OF THE ATMOSPHERE AT AN ZENITH ANGLE OF 85.0 DEGREES
+ 0.000000000E+00 1.057187280E+04 1.229805824E-03 1.057187280E+04 0.000000000E+00
+ 4.415350366E+04 1.051822822E+04 1.225052902E-03 1.052705791E+04 3.651026867E+04
+ 8.830700732E+04 1.046415664E+04 1.220314621E-03 1.048224302E+04 7.313671395E+04
+ 1.324605110E+05 1.040996117E+04 1.215590953E-03 1.043742813E+04 1.098797731E+05
+ 1.766140146E+05 1.035688695E+04 1.210881871E-03 1.039261323E+04 1.467413670E+05
+ 2.207675183E+05 1.030304621E+04 1.206187347E-03 1.034779834E+04 1.837204698E+05
+ 2.649210219E+05 1.024981057E+04 1.201507353E-03 1.030298345E+04 2.208190221E+05
+ 3.090745256E+05 1.019743061E+04 1.196841861E-03 1.025816856E+04 2.580374936E+05
+ 3.532280293E+05 1.014471411E+04 1.192190844E-03 1.021335367E+04 2.953930266E+05
+ 3.973815329E+05 1.009127700E+04 1.187554273E-03 1.016853877E+04 3.328543301E+05
+ 4.415350366E+05 1.003980282E+04 1.182932122E-03 1.012372388E+04 3.706444160E+05
+ 4.856885402E+05 9.987192763E+03 1.178324361E-03 1.007890899E+04 4.077007505E+05
+ 5.298420439E+05 9.935183969E+03 1.173730964E-03 1.003409410E+04 4.459790761E+05
+ 5.739955475E+05 9.884004673E+03 1.169151902E-03 9.989279205E+03 4.839364933E+05
+ 6.181490512E+05 9.832062342E+03 1.164587147E-03 9.944464313E+03 5.220203965E+05
+ 6.623025549E+05 9.780603397E+03 1.160036671E-03 9.899649421E+03 5.602313324E+05
+ 7.064560585E+05 9.729630448E+03 1.155500447E-03 9.854834528E+03 5.985744841E+05
+ 7.506095622E+05 9.678626515E+03 1.150978446E-03 9.810019636E+03 6.370427092E+05
+ 7.947630658E+05 9.628452281E+03 1.146470640E-03 9.765204744E+03 6.756412110E+05
+ 8.389165695E+05 9.577839199E+03 1.141977002E-03 9.720389852E+03 7.143705824E+05
+ 8.830700732E+05 9.527424856E+03 1.137497502E-03 9.675574960E+03 7.532329730E+05
+ 9.272235768E+05 9.476956381E+03 1.133032114E-03 9.630760068E+03 7.922274553E+05
+ 9.713770805E+05 9.427514961E+03 1.128580808E-03 9.585945176E+03 8.319023474E+05
+ 1.015530584E+06 9.377297774E+03 1.124143558E-03 9.541130283E+03 8.711658541E+05
+ 1.059684088E+06 9.327674806E+03 1.119720334E-03 9.496315391E+03 9.100866135E+05
+ 1.103837591E+06 9.278871164E+03 1.115311108E-03 9.451500499E+03 9.501750415E+05
+ 1.147991095E+06 9.229295117E+03 1.110915853E-03 9.406685607E+03 9.898498295E+05
+ 1.192144599E+06 9.180833768E+03 1.106534540E-03 9.361870715E+03 1.029663586E+06
+ 1.236298102E+06 9.131584692E+03 1.102167141E-03 9.317055823E+03 1.069320328E+06
+ 1.280451606E+06 9.082927623E+03 1.097813628E-03 9.272240931E+03 1.109714111E+06
+ 1.324605110E+06 9.035090093E+03 1.093473972E-03 9.227426039E+03 1.149654903E+06
+ 1.368758613E+06 8.986474477E+03 1.089148145E-03 9.182611146E+03 1.190557780E+06
+ 1.412912117E+06 8.938967789E+03 1.084836119E-03 9.137796254E+03 1.231083530E+06
+ 1.457065621E+06 8.890672350E+03 1.080537865E-03 9.092981362E+03 1.271400522E+06
+ 1.501219124E+06 8.842985958E+03 1.076253356E-03 9.048166470E+03 1.312220421E+06
+ 1.545372628E+06 8.796099827E+03 1.071982562E-03 9.003351578E+03 1.353189784E+06
+ 1.589526132E+06 8.748427083E+03 1.067725456E-03 8.958536686E+03 1.394882272E+06
+ 1.633679635E+06 8.701231449E+03 1.063482010E-03 8.913721794E+03 1.436148940E+06
+ 1.677833139E+06 8.654904028E+03 1.059252194E-03 8.868906901E+03 1.477567371E+06
+ 1.721986643E+06 8.607739153E+03 1.055035981E-03 8.824092009E+03 1.518849043E+06
+ 1.766140146E+06 8.561787118E+03 1.050833341E-03 8.779277117E+03 1.560526664E+06
+ 1.810293650E+06 8.515387364E+03 1.046644248E-03 8.734462225E+03 1.602991991E+06
+ 1.854447154E+06 8.468780303E+03 1.042468672E-03 8.689647333E+03 1.644665417E+06
+ 1.898600657E+06 8.423377883E+03 1.038306584E-03 8.644832441E+03 1.686863776E+06
+ 1.942754161E+06 8.377135343E+03 1.034157957E-03 8.600017549E+03 1.729812774E+06
+ 1.986907665E+06 8.332102139E+03 1.030022762E-03 8.555202656E+03 1.772328429E+06
+ 2.031061168E+06 8.286275369E+03 1.025900970E-03 8.510387764E+03 1.814694763E+06
+ 2.075214672E+06 8.241306808E+03 1.021792554E-03 8.465572872E+03 1.858086181E+06
+ 2.119368176E+06 8.195884145E+03 1.017697484E-03 8.420757980E+03 1.900716746E+06
+ 2.163521679E+06 8.151570300E+03 1.013615732E-03 8.375943088E+03 1.943893231E+06
+ 2.207675183E+06 8.106469358E+03 1.009547269E-03 8.331128196E+03 1.987840943E+06
+ 2.251828687E+06 8.062463789E+03 1.005492068E-03 8.286313304E+03 2.031024648E+06
+ 2.295982190E+06 8.017662383E+03 1.001450100E-03 8.241498411E+03 2.075029553E+06
+ 2.340135694E+06 7.974069881E+03 9.974213350E-04 8.196683519E+03 2.118592271E+06
+ 2.384289198E+06 7.930014740E+03 9.934057460E-04 8.151868627E+03 2.163231234E+06
+ 2.428442701E+06 7.885808686E+03 9.894033040E-04 8.107053735E+03 2.207103557E+06
+ 2.472596205E+06 7.842687310E+03 9.854139805E-04 8.062238843E+03 2.252049419E+06
+ 2.516749708E+06 7.798770582E+03 9.814377469E-04 8.017423951E+03 2.296217298E+06
+ 2.560903212E+06 7.756057930E+03 9.774745748E-04 7.972609059E+03 2.341580565E+06
+ 2.605056716E+06 7.712880623E+03 9.735244356E-04 7.927794166E+03 2.386494807E+06
+ 2.649210219E+06 7.669491834E+03 9.695873006E-04 7.882979274E+03 2.431212450E+06
+ 2.693363723E+06 7.627314965E+03 9.656631415E-04 7.838164382E+03 2.476730869E+06
+ 2.737517227E+06 7.584267960E+03 9.617519295E-04 7.793349490E+03 2.522840735E+06
+ 2.781670730E+06 7.542050628E+03 9.578536362E-04 7.748534598E+03 2.568155850E+06
+ 2.825824234E+06 7.500105431E+03 9.539682330E-04 7.703719706E+03 2.614592254E+06
+ 2.869977738E+06 7.458210876E+03 9.500956912E-04 7.658904814E+03 2.660228504E+06
+ 2.914131241E+06 7.415844385E+03 9.462359825E-04 7.614089921E+03 2.707130050E+06
+ 2.958284745E+06 7.374048362E+03 9.423890780E-04 7.569275029E+03 2.753669059E+06
+ 3.002438249E+06 7.333053263E+03 9.385549494E-04 7.524460137E+03 2.800427604E+06
+ 3.046591752E+06 7.291254194E+03 9.347335680E-04 7.479645245E+03 2.846843912E+06
+ 3.090745256E+06 7.250538563E+03 9.309249053E-04 7.434830353E+03 2.894521360E+06
+ 3.134898760E+06 7.209019325E+03 9.271289326E-04 7.390015461E+03 2.941339266E+06
+ 3.179052263E+06 7.168694988E+03 9.233456214E-04 7.345200569E+03 2.989018572E+06
+ 3.223205767E+06 7.127561575E+03 9.195749431E-04 7.300385677E+03 3.037319517E+06
+ 3.267359271E+06 7.087270229E+03 9.158168692E-04 7.255570784E+03 3.084748122E+06
+ 3.311512774E+06 7.047134284E+03 9.120713710E-04 7.210755892E+03 3.133051456E+06
+ 3.355666278E+06 7.006441676E+03 9.083384201E-04 7.165941000E+03 3.181991411E+06
+ 3.399819782E+06 6.966945510E+03 9.046179878E-04 7.121126108E+03 3.230050945E+06
+ 3.443973285E+06 6.926973746E+03 9.009100455E-04 7.076311216E+03 3.279509609E+06
+ 3.488126789E+06 6.886778168E+03 8.972145647E-04 7.031496324E+03 3.328684758E+06
+ 3.532280293E+06 6.847370011E+03 8.935315169E-04 6.986681432E+03 3.377449330E+06
+ 3.576433796E+06 6.807896808E+03 8.898608734E-04 6.941866539E+03 3.427004252E+06
+ 3.620587300E+06 6.769208769E+03 8.862026057E-04 6.897051647E+03 3.477278499E+06
+ 3.664740804E+06 6.729711691E+03 8.825566853E-04 6.852236755E+03 3.527352903E+06
+ 3.708894307E+06 6.691292707E+03 8.789230836E-04 6.807421863E+03 3.576959962E+06
+ 3.753047811E+06 6.652059367E+03 8.753017721E-04 6.762606971E+03 3.627925740E+06
+ 3.797201315E+06 6.614014605E+03 8.716927222E-04 6.717792079E+03 3.678257663E+06
+ 3.841354818E+06 6.575490130E+03 8.680959053E-04 6.672977187E+03 3.729707489E+06
+ 3.885508322E+06 6.536758963E+03 8.645112931E-04 6.628162294E+03 3.780957172E+06
+ 3.929661826E+06 6.498789157E+03 8.609388568E-04 6.583347402E+03 3.832449225E+06
+ 3.973815329E+06 6.460745090E+03 8.573785681E-04 6.538532510E+03 3.883549090E+06
+ 4.017968833E+06 6.423484857E+03 8.538303984E-04 6.493717618E+03 3.935466563E+06
+ 4.062122336E+06 6.385413283E+03 8.502943192E-04 6.448902726E+03 3.988145460E+06
+ 4.106275840E+06 6.348014539E+03 8.467703020E-04 6.404087834E+03 4.040180614E+06
+ 4.150429344E+06 6.310597907E+03 8.432583183E-04 6.359272942E+03 4.092983544E+06
+ 4.194582847E+06 6.273959536E+03 8.397583396E-04 6.314458049E+03 4.145922100E+06
+ 4.238736351E+06 6.236505165E+03 8.362703375E-04 6.269643157E+03 4.199640616E+06
+ 4.282889855E+06 6.200121244E+03 8.327942834E-04 6.224828265E+03 4.252702627E+06
+ 4.327043358E+06 6.162917394E+03 8.293301490E-04 6.180013373E+03 4.306558210E+06
+ 4.371196862E+06 6.126893062E+03 8.258779058E-04 6.135198481E+03 4.360551592E+06
+ 4.415350366E+06 6.090383589E+03 8.224375253E-04 6.090383589E+03 4.415350366E+06
+ 4.476111095E+06 6.039736629E+03 8.213932606E-04 6.053783545E+03 4.459227693E+06
+ 4.536871823E+06 5.990120109E+03 8.160586635E-04 6.017183500E+03 4.504110462E+06
+ 4.597632552E+06 5.940763975E+03 8.107534122E-04 5.980583456E+03 4.549207081E+06
+ 4.658393281E+06 5.891765835E+03 8.054773855E-04 5.943983412E+03 4.593705128E+06
+ 4.719154010E+06 5.843074205E+03 8.002304619E-04 5.907383368E+03 4.638495941E+06
+ 4.779914738E+06 5.794096495E+03 7.950125203E-04 5.870783323E+03 4.684210563E+06
+ 4.840675467E+06 5.746647368E+03 7.898234401E-04 5.834183279E+03 4.730146787E+06
+ 4.901436196E+06 5.698235404E+03 7.846631004E-04 5.797583235E+03 4.775574332E+06
+ 4.962196925E+06 5.650882841E+03 7.795313810E-04 5.760983191E+03 4.821961474E+06
+ 5.022957653E+06 5.603747038E+03 7.744281616E-04 5.724383147E+03 4.868579311E+06
+ 5.083718382E+06 5.556945002E+03 7.693533223E-04 5.687783102E+03 4.914680628E+06
+ 5.144479111E+06 5.510439614E+03 7.643067434E-04 5.651183058E+03 4.961801546E+06
+ 5.205239840E+06 5.463631713E+03 7.592883054E-04 5.614583014E+03 5.009151254E+06
+ 5.266000569E+06 5.418351126E+03 7.542978890E-04 5.577982970E+03 5.055944809E+06
+ 5.326761297E+06 5.372128104E+03 7.493353751E-04 5.541382926E+03 5.103747802E+06
+ 5.387522026E+06 5.326829005E+03 7.444006451E-04 5.504782881E+03 5.151795169E+06
+ 5.448282755E+06 5.281808752E+03 7.394935803E-04 5.468182837E+03 5.199312165E+06
+ 5.509043484E+06 5.237132062E+03 7.346140625E-04 5.431582793E+03 5.247857824E+06
+ 5.569804212E+06 5.192727780E+03 7.297619734E-04 5.394982749E+03 5.296652218E+06
+ 5.630564941E+06 5.148013204E+03 7.249371954E-04 5.358382705E+03 5.344919527E+06
+ 5.691325670E+06 5.104803160E+03 7.201396108E-04 5.321782660E+03 5.394225607E+06
+ 5.752086399E+06 5.060651002E+03 7.153691023E-04 5.285182616E+03 5.443775929E+06
+ 5.812847127E+06 5.017408435E+03 7.106255528E-04 5.248582572E+03 5.492837833E+06
+ 5.873607856E+06 4.974430615E+03 7.059088453E-04 5.211982528E+03 5.543794315E+06
+ 5.934368585E+06 4.931760942E+03 7.012188634E-04 5.175382483E+03 5.593295770E+06
+ 5.995129314E+06 4.889387038E+03 6.965554905E-04 5.138782439E+03 5.643971625E+06
+ 6.055890043E+06 4.846688886E+03 6.919186108E-04 5.102182395E+03 5.694917904E+06
+ 6.116650771E+06 4.804895836E+03 6.873081081E-04 5.065582351E+03 5.745277125E+06
+ 6.177411500E+06 4.763531816E+03 6.827238671E-04 5.028982307E+03 5.796745516E+06
+ 6.238172229E+06 4.722264253E+03 6.781657723E-04 4.992382262E+03 5.848550305E+06
+ 6.298932958E+06 4.681285595E+03 6.736337086E-04 4.955782218E+03 5.899772749E+06
+ 6.359693686E+06 4.640570343E+03 6.691275612E-04 4.919182174E+03 5.952129261E+06
+ 6.420454415E+06 4.599520259E+03 6.646472156E-04 4.882582130E+03 6.004761562E+06
+ 6.481215144E+06 4.559962918E+03 6.601925574E-04 4.845982086E+03 6.056899793E+06
+ 6.541975873E+06 4.519391559E+03 6.557634726E-04 4.809382041E+03 6.110204648E+06
+ 6.602736601E+06 4.479795255E+03 6.513598474E-04 4.772781997E+03 6.164066146E+06
+ 6.663497330E+06 4.440402243E+03 6.469815682E-04 4.736181953E+03 6.217965453E+06
+ 6.724258059E+06 4.401308976E+03 6.426285218E-04 4.699581909E+03 6.271280161E+06
+ 6.785018788E+06 4.362478690E+03 6.383005953E-04 4.662981865E+03 6.325798562E+06
+ 6.845779517E+06 4.323900544E+03 6.339976759E-04 4.626381820E+03 6.380616694E+06
+ 6.906540245E+06 4.285583113E+03 6.297196511E-04 4.589781776E+03 6.435821735E+06
+ 6.967300974E+06 4.246910225E+03 6.254664088E-04 4.553181732E+03 6.491344229E+06
+ 7.028061703E+06 4.209729478E+03 6.212378370E-04 4.516581688E+03 6.546271077E+06
+ 7.088822432E+06 4.171551661E+03 6.170338241E-04 4.479981643E+03 6.602454267E+06
+ 7.149583160E+06 4.134255265E+03 6.128542588E-04 4.443381599E+03 6.658956669E+06
+ 7.210343889E+06 4.097191428E+03 6.086990300E-04 4.406781555E+03 6.715883784E+06
+ 7.271104618E+06 4.060465304E+03 6.045680267E-04 4.370181511E+03 6.773133970E+06
+ 7.331865347E+06 4.023926087E+03 6.004611386E-04 4.333581467E+03 6.829793923E+06
+ 7.392626075E+06 3.987032862E+03 5.963782554E-04 4.296981422E+03 6.886087691E+06
+ 7.453386804E+06 3.951594816E+03 5.923192669E-04 4.260381378E+03 6.946082627E+06
+ 7.514147533E+06 3.915177150E+03 5.882840637E-04 4.223781334E+03 7.004764654E+06
+ 7.574908262E+06 3.880251810E+03 5.842725362E-04 4.187181290E+03 7.063876540E+06
+ 7.635668991E+06 3.844303739E+03 5.802845752E-04 4.150581246E+03 7.123360158E+06
+ 7.696429719E+06 3.809209313E+03 5.763200720E-04 4.113981201E+03 7.183236682E+06
+ 7.757190448E+06 3.774375726E+03 5.723789180E-04 4.077381157E+03 7.242516605E+06
+ 7.817951177E+06 3.739805760E+03 5.684610048E-04 4.040781113E+03 7.304285613E+06
+ 7.878711906E+06 3.705449248E+03 5.645662245E-04 4.004181069E+03 7.364326288E+06
+ 7.939472634E+06 3.671329712E+03 5.606944693E-04 3.967581025E+03 7.425813664E+06
+ 8.000233363E+06 3.637444465E+03 5.568456319E-04 3.930980980E+03 7.487687524E+06
+ 8.060994092E+06 3.603174984E+03 5.530196050E-04 3.894380936E+03 7.550028730E+06
+ 8.121754821E+06 3.570376432E+03 5.492162818E-04 3.857780892E+03 7.612817850E+06
+ 8.182515549E+06 3.536552236E+03 5.454355558E-04 3.821180848E+03 7.676029011E+06
+ 8.243276278E+06 3.503584787E+03 5.416773206E-04 3.784580803E+03 7.739685544E+06
+ 8.304037007E+06 3.470824061E+03 5.379414704E-04 3.747980759E+03 7.802758172E+06
+ 8.364797736E+06 3.437890588E+03 5.342278993E-04 3.711380715E+03 7.868387738E+06
+ 8.425558465E+06 3.406256077E+03 5.305365020E-04 3.674780671E+03 7.932356171E+06
+ 8.486319193E+06 3.373574984E+03 5.268671734E-04 3.638180627E+03 7.998934345E+06
+ 8.547079922E+06 3.342356341E+03 5.232198087E-04 3.601580582E+03 8.063833347E+06
+ 8.607840651E+06 3.310102658E+03 5.195943033E-04 3.564980538E+03 8.131409132E+06
+ 8.668601380E+06 3.278699669E+03 5.159905530E-04 3.528380494E+03 8.197272272E+06
+ 8.729362108E+06 3.247491584E+03 5.124084540E-04 3.491780450E+03 8.265863245E+06
+ 8.790122837E+06 3.216522081E+03 5.088479025E-04 3.455180406E+03 8.332727254E+06
+ 8.850883566E+06 3.185779186E+03 5.053087953E-04 3.418580361E+03 8.401607618E+06
+ 8.911644295E+06 3.155252716E+03 5.017910293E-04 3.381980317E+03 8.470644104E+06
+ 8.972405023E+06 3.124926396E+03 4.982945018E-04 3.345380273E+03 8.540220240E+06
+ 9.033165752E+06 3.094206647E+03 4.948191103E-04 3.308780229E+03 8.610342952E+06
+ 9.093926481E+06 3.064908922E+03 4.913647528E-04 3.272180185E+03 8.682223735E+06
+ 9.154687210E+06 3.034594226E+03 4.879313273E-04 3.235580140E+03 8.752274920E+06
+ 9.215447939E+06 3.005731536E+03 4.845187323E-04 3.198980096E+03 8.825290719E+06
+ 9.276208667E+06 2.975816665E+03 4.811268667E-04 3.162380052E+03 8.896510024E+06
+ 9.336969396E+06 2.946736026E+03 4.777556294E-04 3.125780008E+03 8.970725135E+06
+ 9.397730125E+06 2.917838385E+03 4.744049199E-04 3.089179963E+03 9.044204413E+06
+ 9.458490854E+06 2.889217275E+03 4.710746378E-04 3.052579919E+03 9.118562435E+06
+ 9.519251582E+06 2.860757134E+03 4.677646831E-04 3.015979875E+03 9.193402726E+06
+ 9.580012311E+06 2.832486787E+03 4.644749562E-04 2.979379831E+03 9.268943861E+06
+ 9.640773040E+06 2.804415097E+03 4.612053574E-04 2.942779787E+03 9.346395091E+06
+ 9.701533769E+06 2.775936935E+03 4.579557879E-04 2.906179742E+03 9.421920753E+06
+ 9.762294497E+06 2.748867870E+03 4.547261488E-04 2.869579698E+03 9.500798007E+06
+ 9.823055226E+06 2.720768443E+03 4.515163415E-04 2.832979654E+03 9.578973108E+06
+ 9.883815955E+06 2.694100471E+03 4.483262680E-04 2.796379610E+03 9.657829250E+06
+ 9.944576684E+06 2.666375469E+03 4.451558302E-04 2.759779566E+03 9.737481613E+06
+ 1.000533741E+07 2.639479787E+03 4.420049307E-04 2.723179521E+03 9.817820490E+06
+ 1.006609814E+07 2.612762577E+03 4.388734722E-04 2.686579477E+03 9.900235409E+06
+ 1.012685887E+07 2.586214905E+03 4.357613577E-04 2.649979433E+03 9.982091419E+06
+ 1.018761960E+07 2.559875814E+03 4.326684906E-04 2.613379389E+03 1.006472212E+07
+ 1.024838033E+07 2.533727058E+03 4.295947745E-04 2.576779345E+03 1.014953728E+07
+ 1.030914106E+07 2.507772628E+03 4.265401134E-04 2.540179300E+03 1.023373425E+07
+ 1.036990179E+07 2.481992368E+03 4.235044116E-04 2.503579256E+03 1.031873362E+07
+ 1.043066251E+07 2.456395219E+03 4.204875737E-04 2.466979212E+03 1.040612297E+07
+ 1.049142324E+07 2.430379168E+03 4.174895046E-04 2.430379168E+03 1.049142324E+07
+ 1.073654908E+07 2.327979160E+03 4.094568117E-04 2.406279675E+03 1.054822818E+07
+ 1.098167492E+07 2.229587945E+03 3.933674175E-04 2.382180182E+03 1.060556276E+07
+ 1.122680076E+07 2.135077252E+03 3.778549150E-04 2.358080689E+03 1.066346113E+07
+ 1.147192659E+07 2.044300240E+03 3.629010139E-04 2.333981196E+03 1.072191051E+07
+ 1.171705243E+07 1.957122026E+03 3.484879052E-04 2.309881703E+03 1.078090036E+07
+ 1.196217827E+07 1.873412626E+03 3.345982522E-04 2.285782210E+03 1.084046360E+07
+ 1.220730411E+07 1.793045068E+03 3.212151824E-04 2.261682717E+03 1.090061198E+07
+ 1.245242994E+07 1.715887991E+03 3.083222779E-04 2.237583225E+03 1.096138725E+07
+ 1.269755578E+07 1.641842494E+03 2.959035674E-04 2.213483732E+03 1.102276846E+07
+ 1.294268162E+07 1.570784460E+03 2.839435169E-04 2.189384239E+03 1.108474964E+07
+ 1.318780746E+07 1.502606098E+03 2.724270217E-04 2.165284746E+03 1.114736700E+07
+ 1.343293329E+07 1.437201586E+03 2.613393969E-04 2.141185253E+03 1.121066039E+07
+ 1.367805913E+07 1.374457245E+03 2.506663697E-04 2.117085760E+03 1.127461847E+07
+ 1.392318497E+07 1.314279746E+03 2.403940703E-04 2.092986267E+03 1.133923196E+07
+ 1.416831081E+07 1.256572380E+03 2.305090236E-04 2.068886774E+03 1.140453971E+07
+ 1.441343665E+07 1.201242255E+03 2.209981407E-04 2.044787282E+03 1.147058493E+07
+ 1.465856248E+07 1.148198515E+03 2.118487107E-04 2.020687789E+03 1.153735694E+07
+ 1.490368832E+07 1.097354500E+03 2.030483923E-04 1.996588296E+03 1.160484756E+07
+ 1.514881416E+07 1.048625969E+03 1.945852057E-04 1.972488803E+03 1.167309899E+07
+ 1.539394000E+07 1.001924074E+03 1.864475243E-04 1.948389310E+03 1.174215813E+07
+ 1.563906583E+07 9.571858074E+02 1.786240669E-04 1.924289817E+03 1.181201583E+07
+ 1.588419167E+07 9.143278777E+02 1.711038897E-04 1.900190324E+03 1.188266470E+07
+ 1.612931751E+07 8.732863993E+02 1.638763780E-04 1.876090831E+03 1.195418107E+07
+ 1.637444335E+07 8.339727734E+02 1.569312392E-04 1.851991338E+03 1.202652794E+07
+ 1.661956918E+07 7.963275666E+02 1.502584946E-04 1.827891846E+03 1.209978497E+07
+ 1.686469502E+07 7.602856185E+02 1.438484717E-04 1.803792353E+03 1.217391717E+07
+ 1.710982086E+07 7.257835409E+02 1.376917974E-04 1.779692860E+03 1.224900712E+07
+ 1.735494670E+07 6.927576411E+02 1.317793898E-04 1.755593367E+03 1.232504946E+07
+ 1.760007254E+07 6.611546520E+02 1.261024516E-04 1.731493874E+03 1.240204026E+07
+ 1.784519837E+07 6.309152237E+02 1.206524626E-04 1.707394381E+03 1.248006638E+07
+ 1.809032421E+07 6.019845882E+02 1.154211727E-04 1.683294888E+03 1.255912470E+07
+ 1.833545005E+07 5.743199183E+02 1.104005951E-04 1.659195395E+03 1.263921406E+07
+ 1.858057589E+07 5.478511831E+02 1.055829991E-04 1.635095903E+03 1.272042620E+07
+ 1.882570172E+07 5.225392271E+02 1.009609040E-04 1.610996410E+03 1.280276146E+07
+ 1.907082756E+07 4.983368731E+02 9.652707183E-05 1.586896917E+03 1.288622125E+07
+ 1.931595340E+07 4.752004773E+02 9.227450134E-05 1.562797424E+03 1.297086957E+07
+ 1.956107924E+07 4.530833134E+02 8.819642141E-05 1.538697931E+03 1.305678875E+07
+ 1.980620507E+07 4.319450377E+02 8.428628483E-05 1.514598438E+03 1.314396227E+07
+ 2.005133091E+07 4.117451088E+02 8.053776219E-05 1.490498945E+03 1.323240434E+07
+ 2.029645675E+07 3.924451168E+02 7.694473578E-05 1.466399452E+03 1.332220953E+07
+ 2.054158259E+07 3.740166366E+02 7.350129377E-05 1.442299960E+03 1.341342633E+07
+ 2.078670843E+07 3.564048123E+02 7.020172431E-05 1.418200467E+03 1.350607167E+07
+ 2.103183426E+07 3.395745484E+02 6.704050995E-05 1.394100974E+03 1.360019820E+07
+ 2.127696010E+07 3.235277770E+02 6.401232201E-05 1.370001481E+03 1.369585661E+07
+ 2.152208594E+07 3.081923787E+02 6.111201512E-05 1.345901988E+03 1.379306203E+07
+ 2.176721178E+07 2.935620102E+02 5.833462194E-05 1.321802495E+03 1.389194641E+07
+ 2.201233761E+07 2.795885516E+02 5.567534789E-05 1.297703002E+03 1.399252976E+07
+ 2.225746345E+07 2.662553459E+02 5.312956605E-05 1.273603509E+03 1.409487454E+07
+ 2.250258929E+07 2.535272262E+02 5.069281218E-05 1.249504016E+03 1.419904611E+07
+ 2.274771513E+07 2.413955599E+02 4.836077981E-05 1.225404524E+03 1.430507188E+07
+ 2.299284096E+07 2.298138152E+02 4.612931548E-05 1.201305031E+03 1.441315269E+07
+ 2.323796680E+07 2.187668892E+02 4.399441407E-05 1.177205538E+03 1.452319464E+07
+ 2.348309264E+07 2.082320315E+02 4.195221423E-05 1.153106045E+03 1.463540833E+07
+ 2.372821848E+07 1.981960078E+02 3.999899398E-05 1.129006552E+03 1.474983910E+07
+ 2.397334432E+07 1.886185334E+02 3.813116630E-05 1.104907059E+03 1.486658068E+07
+ 2.421847015E+07 1.794995290E+02 3.634527493E-05 1.080807566E+03 1.498573140E+07
+ 2.446359599E+07 1.707978011E+02 3.463799026E-05 1.056708073E+03 1.510739764E+07
+ 2.470872183E+07 1.625051135E+02 3.300610524E-05 1.032608581E+03 1.523169227E+07
+ 2.495384767E+07 1.546031991E+02 3.144653150E-05 1.008509088E+03 1.535874488E+07
+ 2.519897350E+07 1.470849484E+02 2.995629550E-05 9.844095948E+02 1.548866811E+07
+ 2.544409934E+07 1.399138038E+02 2.853253482E-05 9.603101019E+02 1.562160946E+07
+ 2.568922518E+07 1.330930608E+02 2.717249448E-05 9.362106090E+02 1.575771819E+07
+ 2.593435102E+07 1.265951419E+02 2.587352348E-05 9.121111161E+02 1.589721067E+07
+ 2.617947685E+07 1.204019132E+02 2.463307127E-05 8.880116232E+02 1.604009516E+07
+ 2.642460269E+07 1.145056121E+02 2.344868445E-05 8.639121303E+02 1.618678439E+07
+ 2.666972853E+07 1.089027314E+02 2.231800353E-05 8.398126375E+02 1.633731248E+07
+ 2.691485437E+07 1.035606662E+02 2.123875970E-05 8.157131446E+02 1.649195285E+07
+ 2.715998020E+07 9.848649557E+01 2.020877179E-05 7.916136517E+02 1.665101280E+07
+ 2.740510604E+07 9.364932322E+01 1.922594325E-05 7.675141588E+02 1.681463084E+07
+ 2.765023188E+07 8.904882826E+01 1.828825929E-05 7.434146659E+02 1.698315355E+07
+ 2.789535772E+07 8.468100100E+01 1.739378398E-05 7.193151731E+02 1.715696914E+07
+ 2.814048356E+07 8.052692326E+01 1.654065754E-05 6.952156802E+02 1.733633641E+07
+ 2.838560939E+07 7.656791498E+01 1.572709370E-05 6.711161873E+02 1.752160816E+07
+ 2.863073523E+07 7.281271100E+01 1.495137705E-05 6.470166944E+02 1.771333624E+07
+ 2.887586107E+07 6.924281960E+01 1.421186058E-05 6.229172015E+02 1.791192154E+07
+ 2.912098691E+07 6.584322448E+01 1.350696323E-05 5.988177086E+02 1.811789228E+07
+ 2.936611274E+07 6.261607294E+01 1.283516750E-05 5.747182158E+02 1.833184596E+07
+ 2.961123858E+07 5.954297290E+01 1.219501721E-05 5.506187229E+02 1.855435833E+07
+ 2.985636442E+07 5.663248726E+01 1.158511522E-05 5.265192300E+02 1.878645238E+07
+ 3.010149026E+07 5.386796458E+01 1.100412133E-05 5.024197371E+02 1.902872801E+07
+ 3.034661609E+07 5.123264836E+01 1.045075016E-05 4.783202442E+02 1.928227790E+07
+ 3.059174193E+07 4.873907520E+01 9.923769150E-06 4.542207514E+02 1.954821006E+07
+ 3.083686777E+07 4.637277761E+01 9.421996582E-06 4.301212585E+02 1.982786423E+07
+ 3.108199361E+07 4.411559504E+01 8.944299709E-06 4.060217656E+02 2.012291676E+07
+ 3.132711945E+07 4.198194392E+01 8.489592910E-06 3.819222727E+02 2.043508632E+07
+ 3.157224528E+07 3.995711154E+01 8.056835917E-06 3.578227798E+02 2.076657228E+07
+ 3.181737112E+07 3.802590984E+01 7.645032101E-06 3.337232869E+02 2.112008765E+07
+ 3.206249696E+07 3.620259486E+01 7.253226814E-06 3.096237941E+02 2.149874801E+07
+ 3.230762280E+07 3.446984805E+01 6.880505781E-06 2.855243012E+02 2.190662038E+07
+ 3.255274863E+07 3.282892246E+01 6.525993550E-06 2.614248083E+02 2.234902766E+07
+ 3.279787447E+07 3.127266602E+01 6.188851994E-06 2.373253154E+02 2.283241118E+07
+ 3.304300031E+07 2.979710238E+01 5.868278863E-06 2.132258225E+02 2.336565575E+07
+ 3.328812615E+07 2.838821702E+01 5.563506382E-06 1.891263297E+02 2.396007627E+07
+ 3.353325198E+07 2.707094103E+01 5.273799902E-06 1.650268368E+02 2.463309219E+07
+ 3.377837782E+07 2.580566304E+01 4.998456596E-06 1.409273439E+02 2.540881768E+07
+ 3.402350366E+07 2.461377671E+01 4.736804199E-06 1.168278510E+02 2.632692549E+07
+ 3.426862950E+07 2.348416041E+01 4.488199790E-06 9.272835813E+01 2.745305434E+07
+ 3.451375534E+07 2.241417016E+01 4.252028624E-06 6.862886524E+01 2.891895907E+07
+ 3.475888117E+07 2.140013490E+01 4.027702998E-06 4.452937236E+01 3.103648197E+07
+ 3.500400701E+07 2.042987948E+01 3.814661162E-06 2.042987948E+01 3.500400701E+07
+ 3.536061969E+07 1.907099778E+01 3.687310803E-06 2.022564490E+01 3.505613962E+07
+ 3.571723237E+07 1.779822735E+01 3.453194515E-06 2.002141032E+01 3.510876837E+07
+ 3.607384505E+07 1.660642255E+01 3.233128983E-06 1.981717573E+01 3.516191666E+07
+ 3.643045773E+07 1.549069159E+01 3.026326196E-06 1.961294115E+01 3.521558754E+07
+ 3.678707041E+07 1.444648999E+01 2.832038724E-06 1.940870657E+01 3.526979171E+07
+ 3.714368309E+07 1.346942223E+01 2.649557859E-06 1.920447199E+01 3.532454019E+07
+ 3.750029578E+07 1.255542147E+01 2.478211822E-06 1.900023740E+01 3.537984435E+07
+ 3.785690846E+07 1.170063534E+01 2.317364043E-06 1.879600282E+01 3.543571593E+07
+ 3.821352114E+07 1.090145512E+01 2.166411502E-06 1.859176824E+01 3.549216705E+07
+ 3.857013382E+07 1.015439931E+01 2.024783147E-06 1.838753366E+01 3.554921023E+07
+ 3.892674650E+07 9.456256890E+00 1.891938367E-06 1.818329908E+01 3.560685122E+07
+ 3.928335918E+07 8.804024993E+00 1.767365530E-06 1.797906449E+01 3.566511627E+07
+ 3.963997186E+07 8.194822243E+00 1.650580586E-06 1.777482991E+01 3.572401240E+07
+ 3.999658454E+07 7.625930810E+00 1.541125717E-06 1.757059533E+01 3.578355503E+07
+ 4.035319722E+07 7.094805208E+00 1.438568056E-06 1.736636075E+01 3.584376123E+07
+ 4.070980990E+07 6.599151940E+00 1.342498454E-06 1.716212616E+01 3.590463636E+07
+ 4.106642258E+07 6.136587081E+00 1.252530299E-06 1.695789158E+01 3.596621134E+07
+ 4.142303526E+07 5.705120553E+00 1.168298389E-06 1.675365700E+01 3.602849504E+07
+ 4.177964794E+07 5.302704402E+00 1.089457854E-06 1.654942242E+01 3.609150446E+07
+ 4.213626062E+07 4.927490593E+00 1.015683124E-06 1.634518783E+01 3.615525395E+07
+ 4.249287330E+07 4.577721559E+00 9.466669439E-07 1.614095325E+01 3.621976490E+07
+ 4.284948598E+07 4.251768128E+00 8.821194339E-07 1.593671867E+01 3.628505854E+07
+ 4.320609867E+07 3.948073881E+00 8.217671884E-07 1.573248409E+01 3.635115089E+07
+ 4.356271135E+07 3.665196769E+00 7.653524210E-07 1.552824951E+01 3.641806501E+07
+ 4.391932403E+07 3.401770018E+00 7.126321455E-07 1.532401492E+01 3.648581328E+07
+ 4.427593671E+07 3.156517596E+00 6.633773969E-07 1.511978034E+01 3.655443501E+07
+ 4.463254939E+07 2.928224609E+00 6.173724876E-07 1.491554576E+01 3.662394376E+07
+ 4.498916207E+07 2.715830136E+00 5.744142996E-07 1.471131118E+01 3.669436342E+07
+ 4.534577475E+07 2.518214567E+00 5.343116100E-07 1.450707659E+01 3.676571889E+07
+ 4.570238743E+07 2.334414280E+00 4.968844490E-07 1.430284201E+01 3.683802375E+07
+ 4.605900011E+07 2.163527085E+00 4.619634889E-07 1.409860743E+01 3.691133466E+07
+ 4.641561279E+07 2.004642682E+00 4.293894631E-07 1.389437285E+01 3.698565591E+07
+ 4.677222547E+07 1.857013080E+00 3.990126133E-07 1.369013827E+01 3.706101927E+07
+ 4.712883815E+07 1.719836360E+00 3.706921640E-07 1.348590368E+01 3.713746601E+07
+ 4.748545083E+07 1.592396901E+00 3.442958243E-07 1.328166910E+01 3.721501253E+07
+ 4.784206351E+07 1.474053432E+00 3.196993128E-07 1.307743452E+01 3.729371165E+07
+ 4.819867619E+07 1.364183340E+00 2.967859083E-07 1.287319994E+01 3.737358897E+07
+ 4.855528888E+07 1.262198538E+00 2.754460225E-07 1.266896535E+01 3.745466786E+07
+ 4.891190156E+07 1.167532734E+00 2.555767946E-07 1.246473077E+01 3.753701738E+07
+ 4.926851424E+07 1.079749061E+00 2.370817074E-07 1.226049619E+01 3.762065407E+07
+ 4.962512692E+07 9.982964563E-01 2.198702229E-07 1.205626161E+01 3.770562398E+07
+ 4.998173960E+07 9.227857791E-01 2.038574368E-07 1.185202702E+01 3.779197510E+07
+ 5.033835228E+07 8.527814677E-01 1.889637522E-07 1.164779244E+01 3.787976172E+07
+ 5.069496496E+07 7.878879791E-01 1.751145692E-07 1.144355786E+01 3.796902613E+07
+ 5.105157764E+07 7.277640299E-01 1.622399923E-07 1.123932328E+01 3.805981200E+07
+ 5.140819032E+07 6.720688897E-01 1.502745531E-07 1.103508870E+01 3.815219097E+07
+ 5.176480300E+07 6.204871507E-01 1.391569475E-07 1.083085411E+01 3.824621260E+07
+ 5.212141568E+07 5.727269397E-01 1.288297882E-07 1.062661953E+01 3.834193808E+07
+ 5.247802836E+07 5.285099885E-01 1.192393699E-07 1.042238495E+01 3.843941769E+07
+ 5.283464104E+07 4.876150762E-01 1.103354479E-07 1.021815037E+01 3.853874050E+07
+ 5.319125372E+07 4.497401878E-01 1.020710291E-07 1.001391578E+01 3.863996836E+07
+ 5.354786640E+07 4.147322425E-01 9.440217383E-08 9.809681202E+00 3.874319537E+07
+ 5.390447909E+07 3.823485342E-01 8.728781015E-08 9.605446619E+00 3.884848190E+07
+ 5.426109177E+07 3.524108480E-01 8.068955734E-08 9.401212037E+00 3.895592829E+07
+ 5.461770445E+07 3.247196423E-01 7.457156026E-08 9.196977455E+00 3.906562230E+07
+ 5.497431713E+07 2.991742034E-01 6.890033281E-08 8.992742873E+00 3.917764909E+07
+ 5.533092981E+07 2.755497306E-01 6.364461049E-08 8.788508290E+00 3.929214669E+07
+ 5.568754249E+07 2.537347995E-01 5.877521146E-08 8.584273708E+00 3.940920943E+07
+ 5.604415517E+07 2.335852393E-01 5.426490570E-08 8.380039126E+00 3.952894576E+07
+ 5.640076785E+07 2.149881755E-01 5.008829181E-08 8.175804543E+00 3.965150724E+07
+ 5.675738053E+07 1.978145910E-01 4.622168103E-08 7.971569961E+00 3.977701659E+07
+ 5.711399321E+07 1.819934935E-01 4.264298814E-08 7.767335379E+00 3.990562550E+07
+ 5.747060589E+07 1.673689792E-01 3.933162882E-08 7.563100797E+00 4.003750644E+07
+ 5.782721857E+07 1.539079609E-01 3.626842322E-08 7.358866214E+00 4.017283540E+07
+ 5.818383125E+07 1.414731868E-01 3.343550520E-08 7.154631632E+00 4.031179238E+07
+ 5.854044393E+07 1.300357908E-01 3.081623715E-08 6.950397050E+00 4.045457686E+07
+ 5.889705661E+07 1.194992013E-01 2.839512993E-08 6.746162467E+00 4.060144312E+07
+ 5.925366929E+07 1.097641009E-01 2.615776773E-08 6.541927885E+00 4.075261600E+07
+ 5.961028198E+07 1.008104554E-01 2.409073753E-08 6.337693303E+00 4.090833339E+07
+ 5.996689466E+07 9.255985583E-02 2.218156288E-08 6.133458721E+00 4.106892106E+07
+ 6.032350734E+07 8.496997911E-02 2.041864182E-08 5.929224138E+00 4.123471122E+07
+ 6.068012002E+07 7.798252894E-02 1.879118865E-08 5.724989556E+00 4.140605498E+07
+ 6.103673270E+07 7.155312486E-02 1.728917936E-08 5.520754974E+00 4.158330973E+07
+ 6.139334538E+07 6.562473882E-02 1.590330047E-08 5.316520391E+00 4.176698078E+07
+ 6.174995806E+07 6.017585064E-02 1.462490113E-08 5.112285809E+00 4.195749665E+07
+ 6.210657074E+07 5.519748962E-02 1.344594824E-08 4.908051227E+00 4.215541327E+07
+ 6.246318342E+07 5.059042574E-02 1.235898445E-08 4.703816645E+00 4.236138864E+07
+ 6.281979610E+07 4.637148602E-02 1.135708884E-08 4.499582062E+00 4.257609780E+07
+ 6.317640878E+07 4.248595900E-02 1.043384017E-08 4.295347480E+00 4.280031660E+07
+ 6.353302146E+07 3.891505069E-02 9.583282445E-09 4.091112898E+00 4.303498656E+07
+ 6.388963414E+07 3.563920514E-02 8.799892787E-09 3.886878315E+00 4.328112563E+07
+ 6.424624682E+07 3.263407545E-02 8.078551371E-09 3.682643733E+00 4.353996337E+07
+ 6.460285950E+07 2.987545074E-02 7.414513342E-09 3.478409151E+00 4.381293924E+07
+ 6.495947219E+07 2.735608605E-02 6.803382583E-09 3.274174569E+00 4.410166935E+07
+ 6.531608487E+07 2.501914724E-02 6.241087230E-09 3.069939986E+00 4.440817965E+07
+ 6.567269755E+07 2.288281928E-02 5.723856805E-09 2.865705404E+00 4.473488835E+07
+ 6.602931023E+07 2.093038850E-02 5.248200885E-09 2.661470822E+00 4.508470843E+07
+ 6.638592291E+07 1.913732965E-02 4.810889205E-09 2.457236239E+00 4.546124672E+07
+ 6.674253559E+07 1.749051046E-02 4.408933099E-09 2.253001657E+00 4.586908291E+07
+ 6.709914827E+07 1.599101795E-02 4.039568199E-09 2.048767075E+00 4.631396611E+07
+ 6.745576095E+07 1.460807387E-02 3.700238314E-09 1.844532493E+00 4.680361651E+07
+ 6.781237363E+07 1.334513517E-02 3.388580411E-09 1.640297910E+00 4.734830286E+07
+ 6.816898631E+07 1.219073288E-02 3.102410622E-09 1.436063328E+00 4.796244526E+07
+ 6.852559899E+07 1.112850060E-02 2.839711222E-09 1.231828746E+00 4.866674527E+07
+ 6.888221167E+07 1.016127150E-02 2.598618505E-09 1.027594163E+00 4.949377835E+07
+ 6.923882435E+07 9.261638043E-03 2.377411505E-09 8.233595811E-01 5.049660476E+07
+ 6.959543703E+07 8.465927221E-03 2.174501497E-09 6.191249989E-01 5.177457657E+07
+ 6.995204971E+07 7.722946446E-03 1.988422249E-09 4.148904166E-01 5.354618799E+07
+ 7.030866240E+07 7.038553472E-03 1.817820944E-09 2.106558343E-01 5.648779782E+07
+ 7.066527508E+07 6.421251995E-03 1.661449755E-09 6.421251995E-03 7.066527400E+07
+ 7.072948760E+07 6.357039475E-03 1.000000000E-09 6.357039475E-03 7.072948756E+07
+ 7.079370012E+07 6.292826955E-03 1.000000000E-09 6.292826955E-03 7.079369600E+07
+ 7.085791264E+07 6.228614435E-03 1.000000000E-09 6.228614435E-03 7.085790400E+07
+ 7.092212516E+07 6.164401915E-03 1.000000000E-09 6.164401915E-03 7.092211200E+07
+ 7.098633768E+07 6.100189395E-03 1.000000000E-09 6.100189395E-03 7.098633769E+07
+ 7.105055020E+07 6.035976875E-03 1.000000000E-09 6.035976875E-03 7.105053408E+07
+ 7.111476272E+07 5.971764355E-03 1.000000000E-09 5.971764355E-03 7.111475200E+07
+ 7.117897524E+07 5.907551835E-03 1.000000000E-09 5.907551835E-03 7.117897519E+07
+ 7.124318776E+07 5.843339315E-03 1.000000000E-09 5.843339315E-03 7.124318700E+07
+ 7.130740028E+07 5.779126795E-03 1.000000000E-09 5.779126795E-03 7.130740031E+07
+ 7.137161280E+07 5.714914276E-03 1.000000000E-09 5.714914276E-03 7.137161300E+07
+ 7.143582532E+07 5.650701756E-03 1.000000000E-09 5.650701756E-03 7.143582525E+07
+ 7.150003784E+07 5.586489236E-03 1.000000000E-09 5.586489236E-03 7.150003800E+07
+ 7.156425036E+07 5.522276716E-03 1.000000000E-09 5.522276716E-03 7.156424000E+07
+ 7.162846287E+07 5.458064196E-03 1.000000000E-09 5.458064196E-03 7.162846200E+07
+ 7.169267539E+07 5.393851676E-03 1.000000000E-09 5.393851676E-03 7.169267500E+07
+ 7.175688791E+07 5.329639156E-03 1.000000000E-09 5.329639156E-03 7.175688800E+07
+ 7.182110043E+07 5.265426636E-03 1.000000000E-09 5.265426636E-03 7.182110037E+07
+ 7.188531295E+07 5.201214116E-03 1.000000000E-09 5.201214116E-03 7.188531200E+07
+ 7.194952547E+07 5.137001596E-03 1.000000000E-09 5.137001596E-03 7.194952550E+07
+ 7.201373799E+07 5.072789076E-03 1.000000000E-09 5.072789076E-03 7.201373800E+07
+ 7.207795051E+07 5.008576556E-03 1.000000000E-09 5.008576556E-03 7.207795100E+07
+ 7.214216303E+07 4.944364036E-03 1.000000000E-09 4.944364036E-03 7.214216304E+07
+ 7.220637555E+07 4.880151516E-03 1.000000000E-09 4.880151516E-03 7.220637600E+07
+ 7.227058807E+07 4.815938996E-03 1.000000000E-09 4.815938996E-03 7.227059200E+07
+ 7.233480059E+07 4.751726476E-03 1.000000000E-09 4.751726476E-03 7.233480200E+07
+ 7.239901311E+07 4.687513956E-03 1.000000000E-09 4.687513956E-03 7.239901200E+07
+ 7.246322563E+07 4.623301436E-03 1.000000000E-09 4.623301436E-03 7.246322600E+07
+ 7.252743815E+07 4.559088916E-03 1.000000000E-09 4.559088916E-03 7.252743800E+07
+ 7.259165067E+07 4.494876396E-03 1.000000000E-09 4.494876396E-03 7.259165000E+07
+ 7.265586319E+07 4.430663877E-03 1.000000000E-09 4.430663877E-03 7.265586300E+07
+ 7.272007571E+07 4.366451357E-03 1.000000000E-09 4.366451357E-03 7.272007575E+07
+ 7.278428823E+07 4.302238837E-03 1.000000000E-09 4.302238837E-03 7.278428806E+07
+ 7.284850075E+07 4.238026317E-03 1.000000000E-09 4.238026317E-03 7.284850000E+07
+ 7.291271327E+07 4.173813797E-03 1.000000000E-09 4.173813797E-03 7.291271300E+07
+ 7.297692579E+07 4.109601277E-03 1.000000000E-09 4.109601277E-03 7.297692600E+07
+ 7.304113831E+07 4.045388757E-03 1.000000000E-09 4.045388757E-03 7.304115200E+07
+ 7.310535083E+07 3.981176237E-03 1.000000000E-09 3.981176237E-03 7.310535000E+07
+ 7.316956335E+07 3.916963717E-03 1.000000000E-09 3.916963717E-03 7.316955200E+07
+ 7.323377587E+07 3.852751197E-03 1.000000000E-09 3.852751197E-03 7.323377600E+07
+ 7.329798839E+07 3.788538677E-03 1.000000000E-09 3.788538677E-03 7.329798800E+07
+ 7.336220091E+07 3.724326157E-03 1.000000000E-09 3.724326157E-03 7.336220000E+07
+ 7.342641343E+07 3.660113637E-03 1.000000000E-09 3.660113637E-03 7.342641600E+07
+ 7.349062595E+07 3.595901117E-03 1.000000000E-09 3.595901117E-03 7.349062595E+07
+ 7.355483847E+07 3.531688597E-03 1.000000000E-09 3.531688597E-03 7.355483847E+07
+ 7.361905099E+07 3.467476077E-03 1.000000000E-09 3.467476077E-03 7.361905600E+07
+ 7.368326351E+07 3.403263557E-03 1.000000000E-09 3.403263557E-03 7.368326600E+07
+ 7.374747603E+07 3.339051037E-03 1.000000000E-09 3.339051037E-03 7.374747603E+07
+ 7.381168855E+07 3.274838517E-03 1.000000000E-09 3.274838517E-03 7.381171200E+07
+ 7.387590107E+07 3.210625997E-03 1.000000000E-09 3.210625997E-03 7.387588800E+07
+ 7.394011359E+07 3.146413478E-03 1.000000000E-09 3.146413478E-03 7.394013183E+07
+ 7.400432611E+07 3.082200958E-03 1.000000000E-09 3.082200958E-03 7.400432700E+07
+ 7.406853863E+07 3.017988438E-03 1.000000000E-09 3.017988438E-03 7.406853863E+07
+ 7.413275115E+07 2.953775918E-03 1.000000000E-09 2.953775918E-03 7.413275115E+07
+ 7.419696367E+07 2.889563398E-03 1.000000000E-09 2.889563398E-03 7.419699200E+07
+ 7.426117619E+07 2.825350878E-03 1.000000000E-09 2.825350878E-03 7.426124800E+07
+ 7.432538871E+07 2.761138358E-03 1.000000000E-09 2.761138358E-03 7.432538871E+07
+ 7.438960123E+07 2.696925838E-03 1.000000000E-09 2.696925838E-03 7.438961600E+07
+ 7.445381375E+07 2.632713318E-03 1.000000000E-09 2.632713318E-03 7.445381388E+07
+ 7.451802627E+07 2.568500798E-03 1.000000000E-09 2.568500798E-03 7.451802627E+07
+ 7.458223879E+07 2.504288278E-03 1.000000000E-09 2.504288278E-03 7.458223940E+07
+ 7.464645131E+07 2.440075758E-03 1.000000000E-09 2.440075758E-03 7.464645233E+07
+ 7.471066383E+07 2.375863238E-03 1.000000000E-09 2.375863238E-03 7.471066400E+07
+ 7.477487635E+07 2.311650718E-03 1.000000000E-09 2.311650718E-03 7.477487635E+07
+ 7.483908887E+07 2.247438198E-03 1.000000000E-09 2.247438198E-03 7.483908887E+07
+ 7.490330139E+07 2.183225678E-03 1.000000000E-09 2.183225678E-03 7.490330139E+07
+ 7.496751391E+07 2.119013158E-03 1.000000000E-09 2.119013158E-03 7.496751400E+07
+ 7.503172643E+07 2.054800638E-03 1.000000000E-09 2.054800638E-03 7.503172650E+07
+ 7.509593895E+07 1.990588118E-03 1.000000000E-09 1.990588118E-03 7.509593900E+07
+ 7.516015147E+07 1.926375598E-03 1.000000000E-09 1.926375598E-03 7.516015147E+07
+ 7.522436399E+07 1.862163079E-03 1.000000000E-09 1.862163079E-03 7.522441699E+07
+ 7.528857651E+07 1.797950559E-03 1.000000000E-09 1.797950559E-03 7.528857600E+07
+ 7.535278903E+07 1.733738039E-03 1.000000000E-09 1.733738039E-03 7.535275200E+07
+ 7.541700155E+07 1.669525519E-03 1.000000000E-09 1.669525519E-03 7.541704478E+07
+ 7.548121407E+07 1.605312999E-03 1.000000000E-09 1.605312999E-03 7.548121407E+07
+ 7.554542659E+07 1.541100479E-03 1.000000000E-09 1.541100479E-03 7.554542659E+07
+ 7.560963911E+07 1.476887959E-03 1.000000000E-09 1.476887959E-03 7.560963911E+07
+ 7.567385163E+07 1.412675439E-03 1.000000000E-09 1.412675439E-03 7.567385163E+07
+ 7.573806415E+07 1.348462919E-03 1.000000000E-09 1.348462919E-03 7.573806500E+07
+ 7.580227667E+07 1.284250399E-03 1.000000000E-09 1.284250399E-03 7.580228234E+07
+ 7.586648919E+07 1.220037879E-03 1.000000000E-09 1.220037879E-03 7.586654730E+07
+ 7.593070171E+07 1.155825359E-03 1.000000000E-09 1.155825359E-03 7.593075289E+07
+ 7.599491423E+07 1.091612839E-03 1.000000000E-09 1.091612839E-03 7.599491462E+07
+ 7.605912675E+07 1.027400319E-03 1.000000000E-09 1.027400319E-03 7.605912675E+07
+ 7.612333927E+07 9.631877992E-04 1.000000000E-09 9.631877992E-04 7.612333927E+07
+ 7.618755179E+07 8.989752793E-04 1.000000000E-09 8.989752793E-04 7.618756180E+07
+ 7.625176431E+07 8.347627593E-04 1.000000000E-09 8.347627593E-04 7.625176466E+07
+ 7.631597683E+07 7.705502394E-04 1.000000000E-09 7.705502394E-04 7.631603026E+07
+ 7.638018935E+07 7.063377194E-04 1.000000000E-09 7.063377194E-04 7.638026449E+07
+ 7.644440187E+07 6.421251995E-04 1.000000000E-09 6.421251995E-04 7.644440894E+07
+ 7.650861439E+07 5.779126795E-04 1.000000000E-09 5.779126795E-04 7.650862400E+07
+ 7.657282691E+07 5.137001596E-04 1.000000000E-09 5.137001596E-04 7.657282694E+07
+ 7.663703943E+07 4.494876396E-04 1.000000000E-09 4.494876396E-04 7.663702400E+07
+ 7.670125195E+07 3.852751197E-04 1.000000000E-09 3.852751197E-04 7.670125248E+07
+ 7.676546447E+07 3.210625997E-04 1.000000000E-09 3.210625997E-04 7.676546600E+07
+ 7.682967699E+07 2.568500798E-04 1.000000000E-09 2.568500798E-04 7.682967700E+07
+ 7.689388951E+07 1.926375598E-04 1.000000000E-09 1.926375598E-04 7.689394990E+07
+ 7.695810203E+07 1.284250399E-04 1.000000000E-09 1.284250399E-04 7.695810203E+07
+ 7.702231455E+07 6.421251995E-05 1.000000000E-09 6.421251995E-05 7.702231728E+07
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM86
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM86	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM86	(revision 4308)
@@ -0,0 +1,501 @@
+DENSITY AND THICKNESS DATA OF THE ATMOSPHERE AT AN ZENITH ANGLE OF 86.0 DEGREES
+ 0.000000000E+00 1.257227632E+04 1.229805824E-03 1.257227632E+04 0.000000000E+00
+ 5.407056438E+04 1.250599927E+04 1.225146177E-03 1.251731968E+04 4.472087596E+04
+ 1.081411288E+05 1.243997348E+04 1.220498579E-03 1.246236303E+04 8.959486043E+04
+ 1.622116932E+05 1.237394086E+04 1.215863026E-03 1.240740639E+04 1.348505565E+05
+ 2.162822575E+05 1.230856290E+04 1.211239514E-03 1.235244974E+04 1.797219257E+05
+ 2.703528219E+05 1.224269969E+04 1.206628042E-03 1.229749310E+04 2.252645153E+05
+ 3.244233863E+05 1.217777809E+04 1.202028605E-03 1.224253645E+04 2.704867748E+05
+ 3.784939507E+05 1.211297871E+04 1.197441199E-03 1.218757981E+04 3.163397417E+05
+ 4.325645151E+05 1.204844536E+04 1.192865821E-03 1.213262316E+04 3.620567689E+05
+ 4.866350795E+05 1.198390494E+04 1.188302467E-03 1.207766652E+04 4.081985843E+05
+ 5.407056438E+05 1.191986361E+04 1.183751134E-03 1.202270987E+04 4.542103289E+05
+ 5.947762082E+05 1.185672039E+04 1.179211816E-03 1.196775323E+04 5.003040955E+05
+ 6.488467726E+05 1.179226763E+04 1.174684509E-03 1.191279658E+04 5.462410009E+05
+ 7.029173370E+05 1.172896049E+04 1.170169209E-03 1.185783994E+04 5.938378229E+05
+ 7.569879014E+05 1.166589743E+04 1.165665911E-03 1.180288329E+04 6.399076568E+05
+ 8.110584658E+05 1.160282268E+04 1.161174611E-03 1.174792665E+04 6.866748151E+05
+ 8.651290301E+05 1.154024380E+04 1.156695303E-03 1.169297000E+04 7.338815653E+05
+ 9.191995945E+05 1.147790701E+04 1.152227982E-03 1.163801336E+04 7.809465521E+05
+ 9.732701589E+05 1.141557640E+04 1.147772644E-03 1.158305671E+04 8.281259386E+05
+ 1.027340723E+06 1.135372011E+04 1.143329282E-03 1.152810007E+04 8.757377858E+05
+ 1.081411288E+06 1.129183618E+04 1.138897892E-03 1.147314342E+04 9.232893780E+05
+ 1.135481852E+06 1.123006024E+04 1.134478466E-03 1.141818678E+04 9.710205705E+05
+ 1.189552416E+06 1.116933167E+04 1.130071001E-03 1.136323013E+04 1.018911567E+06
+ 1.243622981E+06 1.110843001E+04 1.125675489E-03 1.130827349E+04 1.067154289E+06
+ 1.297693545E+06 1.104751429E+04 1.121291925E-03 1.125331685E+04 1.114629068E+06
+ 1.351764110E+06 1.098708515E+04 1.116920302E-03 1.119836020E+04 1.163949168E+06
+ 1.405834674E+06 1.092689218E+04 1.112560614E-03 1.114340356E+04 1.212484581E+06
+ 1.459905238E+06 1.086667944E+04 1.108212855E-03 1.108844691E+04 1.261205037E+06
+ 1.513975803E+06 1.080695507E+04 1.103877017E-03 1.103349027E+04 1.310291591E+06
+ 1.568046367E+06 1.074746490E+04 1.099553094E-03 1.097853362E+04 1.358940822E+06
+ 1.622116932E+06 1.068803780E+04 1.095241079E-03 1.092357698E+04 1.408780904E+06
+ 1.676187496E+06 1.062909331E+04 1.090940965E-03 1.086862033E+04 1.458173604E+06
+ 1.730258060E+06 1.056951929E+04 1.086652745E-03 1.081366369E+04 1.508040884E+06
+ 1.784328625E+06 1.051140315E+04 1.082376411E-03 1.075870704E+04 1.557712830E+06
+ 1.838399189E+06 1.045315155E+04 1.078111956E-03 1.070375040E+04 1.607430012E+06
+ 1.892469753E+06 1.039497046E+04 1.073859372E-03 1.064879375E+04 1.658044785E+06
+ 1.946540318E+06 1.033684659E+04 1.069618651E-03 1.059383711E+04 1.708328492E+06
+ 2.000610882E+06 1.027920240E+04 1.065389786E-03 1.053888046E+04 1.759100282E+06
+ 2.054681447E+06 1.022178654E+04 1.061172768E-03 1.048392382E+04 1.809269630E+06
+ 2.108752011E+06 1.016434287E+04 1.056967590E-03 1.042896717E+04 1.860748077E+06
+ 2.162822575E+06 1.010738012E+04 1.052774243E-03 1.037401053E+04 1.911789075E+06
+ 2.216893140E+06 1.005064377E+04 1.048592719E-03 1.031905388E+04 1.963224764E+06
+ 2.270963704E+06 9.993898519E+03 1.044423008E-03 1.026409724E+04 2.014865832E+06
+ 2.325034269E+06 9.937611628E+03 1.040265103E-03 1.020914059E+04 2.066461172E+06
+ 2.379104833E+06 9.881549185E+03 1.036118994E-03 1.015418395E+04 2.118565347E+06
+ 2.433175397E+06 9.825474584E+03 1.031984674E-03 1.009922730E+04 2.170057072E+06
+ 2.487245962E+06 9.769839573E+03 1.027862131E-03 1.004427066E+04 2.222898597E+06
+ 2.541316526E+06 9.714445071E+03 1.023751358E-03 9.989314015E+03 2.275618746E+06
+ 2.595387090E+06 9.659358456E+03 1.019652346E-03 9.934357370E+03 2.328125009E+06
+ 2.649457655E+06 9.603623850E+03 1.015565083E-03 9.879400725E+03 2.381153044E+06
+ 2.703528219E+06 9.549338586E+03 1.011489562E-03 9.824444080E+03 2.434465943E+06
+ 2.757598784E+06 9.494907826E+03 1.007425772E-03 9.769487436E+03 2.487584360E+06
+ 2.811669348E+06 9.440535677E+03 1.003373704E-03 9.714530791E+03 2.541233836E+06
+ 2.865739912E+06 9.386204620E+03 9.993333473E-04 9.659574146E+03 2.595178250E+06
+ 2.919810477E+06 9.332442110E+03 9.953046921E-04 9.604617501E+03 2.648926068E+06
+ 2.973881041E+06 9.278546392E+03 9.912877283E-04 9.549660856E+03 2.703213610E+06
+ 3.027951606E+06 9.225122423E+03 9.872824456E-04 9.494704212E+03 2.757798306E+06
+ 3.082022170E+06 9.171915789E+03 9.832888335E-04 9.439747567E+03 2.812444710E+06
+ 3.136092734E+06 9.118686753E+03 9.793068814E-04 9.384790922E+03 2.867136765E+06
+ 3.190163299E+06 9.066809174E+03 9.753365788E-04 9.329834277E+03 2.922396940E+06
+ 3.244233863E+06 9.013330216E+03 9.713779149E-04 9.274877632E+03 2.977553559E+06
+ 3.298304427E+06 8.961059626E+03 9.674308787E-04 9.219920988E+03 3.032705975E+06
+ 3.352374992E+06 8.908180169E+03 9.634954593E-04 9.164964343E+03 3.089001720E+06
+ 3.406445556E+06 8.856660435E+03 9.595716455E-04 9.110007698E+03 3.145080730E+06
+ 3.460516121E+06 8.804945314E+03 9.556594261E-04 9.055051053E+03 3.202049695E+06
+ 3.514586685E+06 8.753441169E+03 9.517587897E-04 9.000094409E+03 3.258028521E+06
+ 3.568657249E+06 8.701913382E+03 9.478697248E-04 8.945137764E+03 3.314733885E+06
+ 3.622727814E+06 8.650828264E+03 9.439922199E-04 8.890181119E+03 3.371517275E+06
+ 3.676798378E+06 8.599687176E+03 9.401262633E-04 8.835224474E+03 3.428307711E+06
+ 3.730868943E+06 8.549366432E+03 9.362718432E-04 8.780267829E+03 3.486280853E+06
+ 3.784939507E+06 8.498164513E+03 9.324289476E-04 8.725311185E+03 3.544063103E+06
+ 3.839010071E+06 8.448317865E+03 9.285975645E-04 8.670354540E+03 3.602073222E+06
+ 3.893080636E+06 8.398276313E+03 9.247776818E-04 8.615397895E+03 3.660341127E+06
+ 3.947151200E+06 8.348435963E+03 9.209692873E-04 8.560441250E+03 3.718854293E+06
+ 4.001221764E+06 8.298563595E+03 9.171723685E-04 8.505484605E+03 3.777628943E+06
+ 4.055292329E+06 8.249114865E+03 9.133869130E-04 8.450527961E+03 3.836663072E+06
+ 4.109362893E+06 8.199887443E+03 9.096129083E-04 8.395571316E+03 3.895965267E+06
+ 4.163433458E+06 8.150610852E+03 9.058503416E-04 8.340614671E+03 3.955527178E+06
+ 4.217504022E+06 8.101873057E+03 9.020992003E-04 8.285658026E+03 4.015358010E+06
+ 4.271574586E+06 8.053253626E+03 8.983594713E-04 8.230701381E+03 4.075457988E+06
+ 4.325645151E+06 8.004917029E+03 8.946311418E-04 8.175744737E+03 4.135346637E+06
+ 4.379715715E+06 7.956620493E+03 8.909141985E-04 8.120788092E+03 4.196574131E+06
+ 4.433786280E+06 7.908348255E+03 8.872086284E-04 8.065831447E+03 4.257503161E+06
+ 4.487856844E+06 7.860535623E+03 8.835144181E-04 8.010874802E+03 4.318733717E+06
+ 4.541927408E+06 7.812917092E+03 8.798315542E-04 7.955918157E+03 4.380492455E+06
+ 4.595997973E+06 7.765577724E+03 8.761600232E-04 7.900961513E+03 4.442365160E+06
+ 4.650068537E+06 7.717615398E+03 8.724998115E-04 7.846004868E+03 4.504356927E+06
+ 4.704139101E+06 7.670995847E+03 8.688509055E-04 7.791048223E+03 4.566726291E+06
+ 4.758209666E+06 7.624167037E+03 8.652132912E-04 7.736091578E+03 4.629392905E+06
+ 4.812280230E+06 7.577555620E+03 8.615869548E-04 7.681134933E+03 4.692649249E+06
+ 4.866350795E+06 7.530882116E+03 8.579718824E-04 7.626178289E+03 4.755920212E+06
+ 4.920421359E+06 7.484174561E+03 8.543680598E-04 7.571221644E+03 4.819522642E+06
+ 4.974491923E+06 7.438572476E+03 8.507754728E-04 7.516264999E+03 4.882944369E+06
+ 5.028562488E+06 7.392717211E+03 8.471941071E-04 7.461308354E+03 4.948001624E+06
+ 5.082633052E+06 7.347054814E+03 8.436239484E-04 7.406351709E+03 5.012429702E+06
+ 5.136703617E+06 7.301670727E+03 8.400649822E-04 7.351395065E+03 5.077569746E+06
+ 5.190774181E+06 7.255610767E+03 8.365171939E-04 7.296438420E+03 5.142741656E+06
+ 5.244844745E+06 7.210968538E+03 8.329805689E-04 7.241481775E+03 5.208237027E+06
+ 5.298915310E+06 7.166072440E+03 8.294550923E-04 7.186525130E+03 5.274366935E+06
+ 5.352985874E+06 7.121365414E+03 8.259407495E-04 7.131568485E+03 5.340530351E+06
+ 5.407056438E+06 7.076611841E+03 8.224375253E-04 7.076611841E+03 5.407056438E+06
+ 5.478677311E+06 7.017613429E+03 8.214976992E-04 7.033382220E+03 5.459704069E+06
+ 5.550298184E+06 6.959009269E+03 8.162640988E-04 6.990152599E+03 5.511809715E+06
+ 5.621919056E+06 6.900778138E+03 8.110564537E-04 6.946922979E+03 5.564957445E+06
+ 5.693539929E+06 6.842922197E+03 8.058746931E-04 6.903693358E+03 5.618364559E+06
+ 5.765160801E+06 6.785432855E+03 8.007187459E-04 6.860463738E+03 5.671212164E+06
+ 5.836781674E+06 6.727654103E+03 7.955885407E-04 6.817234117E+03 5.725116030E+06
+ 5.908402546E+06 6.671547213E+03 7.904840060E-04 6.774004497E+03 5.779283640E+06
+ 5.980023419E+06 6.614498683E+03 7.854050698E-04 6.730774876E+03 5.832899213E+06
+ 6.051644291E+06 6.559143334E+03 7.803516602E-04 6.687545256E+03 5.887576314E+06
+ 6.123265164E+06 6.502806212E+03 7.753237048E-04 6.644315635E+03 5.942550573E+06
+ 6.194886036E+06 6.447493456E+03 7.703211311E-04 6.601086015E+03 5.996939543E+06
+ 6.266506909E+06 6.392537179E+03 7.653438663E-04 6.557856394E+03 6.053273898E+06
+ 6.338127781E+06 6.337939371E+03 7.603918373E-04 6.514626773E+03 6.108194464E+06
+ 6.409748654E+06 6.283691855E+03 7.554649711E-04 6.471397153E+03 6.164242898E+06
+ 6.481369526E+06 6.229796631E+03 7.505631941E-04 6.428167532E+03 6.220566708E+06
+ 6.552990399E+06 6.176250605E+03 7.456864327E-04 6.384937912E+03 6.276332012E+06
+ 6.624611272E+06 6.123109291E+03 7.408346131E-04 6.341708291E+03 6.333227967E+06
+ 6.696232144E+06 6.070257915E+03 7.360076613E-04 6.298478671E+03 6.390417997E+06
+ 6.767853017E+06 6.017751655E+03 7.312055029E-04 6.255249050E+03 6.447046784E+06
+ 6.839473889E+06 5.965587386E+03 7.264280636E-04 6.212019430E+03 6.505692456E+06
+ 6.911094762E+06 5.913112089E+03 7.216752687E-04 6.168789809E+03 6.562884245E+06
+ 6.982715634E+06 5.862273050E+03 7.169470434E-04 6.125560189E+03 6.621343149E+06
+ 7.054336507E+06 5.810475776E+03 7.122433127E-04 6.082330568E+03 6.680029196E+06
+ 7.125957379E+06 5.760315495E+03 7.075640014E-04 6.039100947E+03 6.738147862E+06
+ 7.197578252E+06 5.709179673E+03 7.029090342E-04 5.995871327E+03 6.797457083E+06
+ 7.269199124E+06 5.659707303E+03 6.982783356E-04 5.952641706E+03 6.857114468E+06
+ 7.340819997E+06 5.609224593E+03 6.936718299E-04 5.909412086E+03 6.917055453E+06
+ 7.412440869E+06 5.560406448E+03 6.890894412E-04 5.866182465E+03 6.977334281E+06
+ 7.484061742E+06 5.510571803E+03 6.845310935E-04 5.822952845E+03 7.037035213E+06
+ 7.555682615E+06 5.461736897E+03 6.799967107E-04 5.779723224E+03 7.097975600E+06
+ 7.627303487E+06 5.413222302E+03 6.754862164E-04 5.736493604E+03 7.159283454E+06
+ 7.698924360E+06 5.365030084E+03 6.709995342E-04 5.693263983E+03 7.220907809E+06
+ 7.770545232E+06 5.317157257E+03 6.665365875E-04 5.650034363E+03 7.282874754E+06
+ 7.842166105E+06 5.269646161E+03 6.620972995E-04 5.606804742E+03 7.344266990E+06
+ 7.913786977E+06 5.221936465E+03 6.576815934E-04 5.563575121E+03 7.406938131E+06
+ 7.985407850E+06 5.175710073E+03 6.532893921E-04 5.520345501E+03 7.469972129E+06
+ 8.057028722E+06 5.128451380E+03 6.489206185E-04 5.477115880E+03 7.533405011E+06
+ 8.128649595E+06 5.082805241E+03 6.445751953E-04 5.433886260E+03 7.597153582E+06
+ 8.200270467E+06 5.036162148E+03 6.402530452E-04 5.390656639E+03 7.660347041E+06
+ 8.271891340E+06 4.991142566E+03 6.359540906E-04 5.347427019E+03 7.725824549E+06
+ 8.343512212E+06 4.945108362E+03 6.316782540E-04 5.304197398E+03 7.789756193E+06
+ 8.415133085E+06 4.900703123E+03 6.274254575E-04 5.260967778E+03 7.855108498E+06
+ 8.486753958E+06 4.855271801E+03 6.231956233E-04 5.217738157E+03 7.921141249E+06
+ 8.558374830E+06 4.811490643E+03 6.189886736E-04 5.174508536E+03 7.987221041E+06
+ 8.629995703E+06 4.766654260E+03 6.148045303E-04 5.131278916E+03 8.052727730E+06
+ 8.701616575E+06 4.722787872E+03 6.106431151E-04 5.088049295E+03 8.120636342E+06
+ 8.773237448E+06 4.679217551E+03 6.065043500E-04 5.044819675E+03 8.186934376E+06
+ 8.844858320E+06 4.635945464E+03 6.023881566E-04 5.001590054E+03 8.254673887E+06
+ 8.916479193E+06 4.592963662E+03 5.982944565E-04 4.958360434E+03 8.322837205E+06
+ 8.988100065E+06 4.550274327E+03 5.942231711E-04 4.915130813E+03 8.391435913E+06
+ 9.059720938E+06 4.507874577E+03 5.901742220E-04 4.871901193E+03 8.460473899E+06
+ 9.131341810E+06 4.465818817E+03 5.861475305E-04 4.828671572E+03 8.530008678E+06
+ 9.202962683E+06 4.423994845E+03 5.821430179E-04 4.785441952E+03 8.599917209E+06
+ 9.274583555E+06 4.382456945E+03 5.781606054E-04 4.742212331E+03 8.670314130E+06
+ 9.346204428E+06 4.341220258E+03 5.742002141E-04 4.698982710E+03 8.740561511E+06
+ 9.417825301E+06 4.300251062E+03 5.702617652E-04 4.655753090E+03 8.812513818E+06
+ 9.489446173E+06 4.259559284E+03 5.663451796E-04 4.612523469E+03 8.884325686E+06
+ 9.561067046E+06 4.219147276E+03 5.624503785E-04 4.569293849E+03 8.956624395E+06
+ 9.632687918E+06 4.178994179E+03 5.585772826E-04 4.526064228E+03 9.029414899E+06
+ 9.704308791E+06 4.139148994E+03 5.547258129E-04 4.482834608E+03 9.101622455E+06
+ 9.775929663E+06 4.099564352E+03 5.508958902E-04 4.439604987E+03 9.176602239E+06
+ 9.847550536E+06 4.060253271E+03 5.470874352E-04 4.396375367E+03 9.249810569E+06
+ 9.919171408E+06 4.021212888E+03 5.433003688E-04 4.353145746E+03 9.325756036E+06
+ 9.990792281E+06 3.982445660E+03 5.395346117E-04 4.309916126E+03 9.401131507E+06
+ 1.006241315E+07 3.943943407E+03 5.357900845E-04 4.266686505E+03 9.477041212E+06
+ 1.013403403E+07 3.905708599E+03 5.320667079E-04 4.223456884E+03 9.553500750E+06
+ 1.020565490E+07 3.867738390E+03 5.283644025E-04 4.180227264E+03 9.630516687E+06
+ 1.027727577E+07 3.829392800E+03 5.246830889E-04 4.136997643E+03 9.708155791E+06
+ 1.034889664E+07 3.792816110E+03 5.210226878E-04 4.093768023E+03 9.786282582E+06
+ 1.042051752E+07 3.754973718E+03 5.173831195E-04 4.050538402E+03 9.865028247E+06
+ 1.049213839E+07 3.718709334E+03 5.137643048E-04 4.007308782E+03 9.944368529E+06
+ 1.056375926E+07 3.681383537E+03 5.101661642E-04 3.964079161E+03 1.002432061E+07
+ 1.063538013E+07 3.645636352E+03 5.065886181E-04 3.920849541E+03 1.010488358E+07
+ 1.070700101E+07 3.608821230E+03 5.030315872E-04 3.877619920E+03 1.018728445E+07
+ 1.077862188E+07 3.573579760E+03 4.994949919E-04 3.834390300E+03 1.026790470E+07
+ 1.085024275E+07 3.537270118E+03 4.959787527E-04 3.791160679E+03 1.035201524E+07
+ 1.092186362E+07 3.502544664E+03 4.924827902E-04 3.747931058E+03 1.043391542E+07
+ 1.099348450E+07 3.466733313E+03 4.890070249E-04 3.704701438E+03 1.051895177E+07
+ 1.106510537E+07 3.431195631E+03 4.855513774E-04 3.661471817E+03 1.060343754E+07
+ 1.113672624E+07 3.397174571E+03 4.821157682E-04 3.618242197E+03 1.068861518E+07
+ 1.120834711E+07 3.363425165E+03 4.787001178E-04 3.575012576E+03 1.077581006E+07
+ 1.127996799E+07 3.328597202E+03 4.753043470E-04 3.531782956E+03 1.086112134E+07
+ 1.135158886E+07 3.295329040E+03 4.719283761E-04 3.488553335E+03 1.094977808E+07
+ 1.142320973E+07 3.260984911E+03 4.685721260E-04 3.445323715E+03 1.103786135E+07
+ 1.149483060E+07 3.228253732E+03 4.652355173E-04 3.402094094E+03 1.112671200E+07
+ 1.156645148E+07 3.194380880E+03 4.619184706E-04 3.358864474E+03 1.121768450E+07
+ 1.163807235E+07 3.162069251E+03 4.586209066E-04 3.315634853E+03 1.130810774E+07
+ 1.170969322E+07 3.128669692E+03 4.553427462E-04 3.272405232E+03 1.139932504E+07
+ 1.178131409E+07 3.096826677E+03 4.520839100E-04 3.229175612E+03 1.149289155E+07
+ 1.185293497E+07 3.063894874E+03 4.488443189E-04 3.185945991E+03 1.158438833E+07
+ 1.192455584E+07 3.032509360E+03 4.456238939E-04 3.142716371E+03 1.167949673E+07
+ 1.199617671E+07 3.000040515E+03 4.424225557E-04 3.099486750E+03 1.177556099E+07
+ 1.206779758E+07 2.969123049E+03 4.392402254E-04 3.056257130E+03 1.187105553E+07
+ 1.213941846E+07 2.937110335E+03 4.360768239E-04 3.013027509E+03 1.196745430E+07
+ 1.221103933E+07 2.906629003E+03 4.329322724E-04 2.969797889E+03 1.206629584E+07
+ 1.228266020E+07 2.875069101E+03 4.298064919E-04 2.926568268E+03 1.216457863E+07
+ 1.235428107E+07 2.845033166E+03 4.266994036E-04 2.883338648E+03 1.226383085E+07
+ 1.242590195E+07 2.813920733E+03 4.236109287E-04 2.840109027E+03 1.236558843E+07
+ 1.249752282E+07 2.784329468E+03 4.205409886E-04 2.796879406E+03 1.246683290E+07
+ 1.256914369E+07 2.753649786E+03 4.174895046E-04 2.753649786E+03 1.256914369E+07
+ 1.284091454E+07 2.640023302E+03 4.101451555E-04 2.726331373E+03 1.263355310E+07
+ 1.311268539E+07 2.530671858E+03 3.946776761E-04 2.699012961E+03 1.269852752E+07
+ 1.338445624E+07 2.425454066E+03 3.797249673E-04 2.671694548E+03 1.276410114E+07
+ 1.365622709E+07 2.324231174E+03 3.652728290E-04 2.644376136E+03 1.283031143E+07
+ 1.392799794E+07 2.226869514E+03 3.513073338E-04 2.617057723E+03 1.289714511E+07
+ 1.419976879E+07 2.133238536E+03 3.378148261E-04 2.589739311E+03 1.296459145E+07
+ 1.447153964E+07 2.043213248E+03 3.247819218E-04 2.562420898E+03 1.303268665E+07
+ 1.474331049E+07 1.956667231E+03 3.121955073E-04 2.535102486E+03 1.310147042E+07
+ 1.501508134E+07 1.873482620E+03 3.000427383E-04 2.507784073E+03 1.317093070E+07
+ 1.528685219E+07 1.793543125E+03 2.883110388E-04 2.480465661E+03 1.324105733E+07
+ 1.555862304E+07 1.716736451E+03 2.769880990E-04 2.453147248E+03 1.331188904E+07
+ 1.583039389E+07 1.642952379E+03 2.660618744E-04 2.425828836E+03 1.338346955E+07
+ 1.610216474E+07 1.572085162E+03 2.555205833E-04 2.398510424E+03 1.345578558E+07
+ 1.637393559E+07 1.504031603E+03 2.453527052E-04 2.371192011E+03 1.352882890E+07
+ 1.664570644E+07 1.438681469E+03 2.355469783E-04 2.343873599E+03 1.360264128E+07
+ 1.691747729E+07 1.375961457E+03 2.260923978E-04 2.316555186E+03 1.367726896E+07
+ 1.718924814E+07 1.315768655E+03 2.169782126E-04 2.289236774E+03 1.375270180E+07
+ 1.746101899E+07 1.258000453E+03 2.081939236E-04 2.261918361E+03 1.382893134E+07
+ 1.773278984E+07 1.202575878E+03 1.997292802E-04 2.234599949E+03 1.390603238E+07
+ 1.800456069E+07 1.149409280E+03 1.915742784E-04 2.207281536E+03 1.398399643E+07
+ 1.827633154E+07 1.098418316E+03 1.837191569E-04 2.179963124E+03 1.406281707E+07
+ 1.854810239E+07 1.049521969E+03 1.761543949E-04 2.152644711E+03 1.414254220E+07
+ 1.881987324E+07 1.002653223E+03 1.688707086E-04 2.125326299E+03 1.422322524E+07
+ 1.909164408E+07 9.577182268E+02 1.618590482E-04 2.098007886E+03 1.430485925E+07
+ 1.936341493E+07 9.146691309E+02 1.551105944E-04 2.070689474E+03 1.438743869E+07
+ 1.963518578E+07 8.733832056E+02 1.486167553E-04 2.043371061E+03 1.447105386E+07
+ 1.990695663E+07 8.338462983E+02 1.423691629E-04 2.016052649E+03 1.455568993E+07
+ 2.017872748E+07 7.959750537E+02 1.363596700E-04 1.988734236E+03 1.464134918E+07
+ 2.045049833E+07 7.597149417E+02 1.305803459E-04 1.961415824E+03 1.472808823E+07
+ 2.072226918E+07 7.249852980E+02 1.250234738E-04 1.934097411E+03 1.481600239E+07
+ 2.099404003E+07 6.917362655E+02 1.196815465E-04 1.906778999E+03 1.490499443E+07
+ 2.126581088E+07 6.599172988E+02 1.145472631E-04 1.879460586E+03 1.499515766E+07
+ 2.153758173E+07 6.294594846E+02 1.096135253E-04 1.852142174E+03 1.508659419E+07
+ 2.180935258E+07 6.003159779E+02 1.048734339E-04 1.824823761E+03 1.517920545E+07
+ 2.208112343E+07 5.724349260E+02 1.003202848E-04 1.797505349E+03 1.527312661E+07
+ 2.235289428E+07 5.457668750E+02 9.594756537E-05 1.770186936E+03 1.536836252E+07
+ 2.262466513E+07 5.202628416E+02 9.174895099E-05 1.742868524E+03 1.546491856E+07
+ 2.289643598E+07 4.958870344E+02 8.771830106E-05 1.715550111E+03 1.556290626E+07
+ 2.316820683E+07 4.725759526E+02 8.384965540E-05 1.688231699E+03 1.566233149E+07
+ 2.343997768E+07 4.502930988E+02 8.013723053E-05 1.660913286E+03 1.576320469E+07
+ 2.371174853E+07 4.290083965E+02 7.657541591E-05 1.633594874E+03 1.586564654E+07
+ 2.398351938E+07 4.086619272E+02 7.315877033E-05 1.606276461E+03 1.596967019E+07
+ 2.425529023E+07 3.892250884E+02 6.988201814E-05 1.578958049E+03 1.607528897E+07
+ 2.452706108E+07 3.706597529E+02 6.674004565E-05 1.551639636E+03 1.618267619E+07
+ 2.479883193E+07 3.529406080E+02 6.372789744E-05 1.524321224E+03 1.629173216E+07
+ 2.507060278E+07 3.360023542E+02 6.084077278E-05 1.497002811E+03 1.640263608E+07
+ 2.534237363E+07 3.198583397E+02 5.807402201E-05 1.469684399E+03 1.651541305E+07
+ 2.561414448E+07 3.044442891E+02 5.542314297E-05 1.442365986E+03 1.663008781E+07
+ 2.588591533E+07 2.897258273E+02 5.288377747E-05 1.415047574E+03 1.674687371E+07
+ 2.615768618E+07 2.756825063E+02 5.045170783E-05 1.387729161E+03 1.686565066E+07
+ 2.642945703E+07 2.622886077E+02 4.812285336E-05 1.360410749E+03 1.698662385E+07
+ 2.670122788E+07 2.495181850E+02 4.589326694E-05 1.333092336E+03 1.710991412E+07
+ 2.697299873E+07 2.373334836E+02 4.375913168E-05 1.305773924E+03 1.723545639E+07
+ 2.724476958E+07 2.257262554E+02 4.171675753E-05 1.278455511E+03 1.736353163E+07
+ 2.751654043E+07 2.146522152E+02 3.976257799E-05 1.251137099E+03 1.749405565E+07
+ 2.778831127E+07 2.041070723E+02 3.789314688E-05 1.223818686E+03 1.762732732E+07
+ 2.806008212E+07 1.940489315E+02 3.610513508E-05 1.196500274E+03 1.776326788E+07
+ 2.833185297E+07 1.844656079E+02 3.439532742E-05 1.169181861E+03 1.790220001E+07
+ 2.860362382E+07 1.753485658E+02 3.276061952E-05 1.141863449E+03 1.804410745E+07
+ 2.887539467E+07 1.666638895E+02 3.119801477E-05 1.114545036E+03 1.818917820E+07
+ 2.914716552E+07 1.583844902E+02 2.970462126E-05 1.087226624E+03 1.833756649E+07
+ 2.941893637E+07 1.505018978E+02 2.827764889E-05 1.059908211E+03 1.848943566E+07
+ 2.969070722E+07 1.430081623E+02 2.691440639E-05 1.032589799E+03 1.864501887E+07
+ 2.996247807E+07 1.358761517E+02 2.561229850E-05 1.005271386E+03 1.880433561E+07
+ 3.023424892E+07 1.290868964E+02 2.436882315E-05 9.779529740E+02 1.896782348E+07
+ 3.050601977E+07 1.226209297E+02 2.318156872E-05 9.506345615E+02 1.913553784E+07
+ 3.077779062E+07 1.164800260E+02 2.204821134E-05 9.233161490E+02 1.930775885E+07
+ 3.104956147E+07 1.106303212E+02 2.096651223E-05 8.959977365E+02 1.948482662E+07
+ 3.132133232E+07 1.050772715E+02 1.993431512E-05 8.686793240E+02 1.966689903E+07
+ 3.159310317E+07 9.978807508E+01 1.894954373E-05 8.413609115E+02 1.985442220E+07
+ 3.186487402E+07 9.477199431E+01 1.801019927E-05 8.140424991E+02 2.004760539E+07
+ 3.213664487E+07 9.000323724E+01 1.711435802E-05 7.867240866E+02 2.024697205E+07
+ 3.240841572E+07 8.546222989E+01 1.626016894E-05 7.594056741E+02 2.045286581E+07
+ 3.268018657E+07 8.115816420E+01 1.544585140E-05 7.320872616E+02 2.066567879E+07
+ 3.295195742E+07 7.706953027E+01 1.466969284E-05 7.047688491E+02 2.088607930E+07
+ 3.322372827E+07 7.317674864E+01 1.393004664E-05 6.774504366E+02 2.111448260E+07
+ 3.349549912E+07 6.949290324E+01 1.322532990E-05 6.501320241E+02 2.135177199E+07
+ 3.376726997E+07 6.598999793E+01 1.255402136E-05 6.228136116E+02 2.159846713E+07
+ 3.403904082E+07 6.266796941E+01 1.191465935E-05 5.954951991E+02 2.185545707E+07
+ 3.431081167E+07 5.950537207E+01 1.130583978E-05 5.681767866E+02 2.212368116E+07
+ 3.458258252E+07 5.652444228E+01 1.072621420E-05 5.408583742E+02 2.240432851E+07
+ 3.485435337E+07 5.367693342E+01 1.017448786E-05 5.135399617E+02 2.269843098E+07
+ 3.512612422E+07 5.098545885E+01 9.649417931E-06 4.862215492E+02 2.300764981E+07
+ 3.539789507E+07 4.843456108E+01 9.149811650E-06 4.589031367E+02 2.333347562E+07
+ 3.566966592E+07 4.600426413E+01 8.674524587E-06 4.315847242E+02 2.367810789E+07
+ 3.594143677E+07 4.371991209E+01 8.222458943E-06 4.042663117E+02 2.404383752E+07
+ 3.621320762E+07 4.153568297E+01 7.792561892E-06 3.769478992E+02 2.443370500E+07
+ 3.648497847E+07 3.947482458E+01 7.383823976E-06 3.496294867E+02 2.485094968E+07
+ 3.675674931E+07 3.752200056E+01 6.995277538E-06 3.223110742E+02 2.530017420E+07
+ 3.702852016E+07 3.566891033E+01 6.625995208E-06 2.949926617E+02 2.578714658E+07
+ 3.730029101E+07 3.392649241E+01 6.275088430E-06 2.676742492E+02 2.631861607E+07
+ 3.757206186E+07 3.225707168E+01 5.941706032E-06 2.403558368E+02 2.690448481E+07
+ 3.784383271E+07 3.069585776E+01 5.625032841E-06 2.130374243E+02 2.755745488E+07
+ 3.811560356E+07 2.919839310E+01 5.324288336E-06 1.857190118E+02 2.829562974E+07
+ 3.838737441E+07 2.779186625E+01 5.038725349E-06 1.584005993E+02 2.914662493E+07
+ 3.865914526E+07 2.645903760E+01 4.767628803E-06 1.310821868E+02 3.015289084E+07
+ 3.893091611E+07 2.520771327E+01 4.510314484E-06 1.037637743E+02 3.138729983E+07
+ 3.920268696E+07 2.400500793E+01 4.266127862E-06 7.644536181E+01 3.299438773E+07
+ 3.947445781E+07 2.288622238E+01 4.034442944E-06 4.912694932E+01 3.532256077E+07
+ 3.974622866E+07 2.180853683E+01 3.814661162E-06 2.180853683E+01 3.974622866E+07
+ 4.012156422E+07 2.037733563E+01 3.692367427E-06 2.159051792E+01 3.980187931E+07
+ 4.049689978E+07 1.903499310E+01 3.462575543E-06 2.137249900E+01 3.985805529E+07
+ 4.087223533E+07 1.777642220E+01 3.246176892E-06 2.115448008E+01 3.991478078E+07
+ 4.124757089E+07 1.659662434E+01 3.042451846E-06 2.093646116E+01 3.997205998E+07
+ 4.162290645E+07 1.549100921E+01 2.850715517E-06 2.071844224E+01 4.002990419E+07
+ 4.199824200E+07 1.445523897E+01 2.670316320E-06 2.050042332E+01 4.008832505E+07
+ 4.237357756E+07 1.348515654E+01 2.500634581E-06 2.028240441E+01 4.014733167E+07
+ 4.274891312E+07 1.257682691E+01 2.341081195E-06 2.006438549E+01 4.020693564E+07
+ 4.312424868E+07 1.172657953E+01 2.191096324E-06 1.984636657E+01 4.026716258E+07
+ 4.349958423E+07 1.093089582E+01 2.050148137E-06 1.962834765E+01 4.032801413E+07
+ 4.387491979E+07 1.018652125E+01 1.917731597E-06 1.941032873E+01 4.038950393E+07
+ 4.425025535E+07 9.490310217E+00 1.793367280E-06 1.919230981E+01 4.045164111E+07
+ 4.462559090E+07 8.839329518E+00 1.676600250E-06 1.897429090E+01 4.051445766E+07
+ 4.500092646E+07 8.230853112E+00 1.566998958E-06 1.875627198E+01 4.057795873E+07
+ 4.537626202E+07 7.662180623E+00 1.464154188E-06 1.853825306E+01 4.064215992E+07
+ 4.575159757E+07 7.130947585E+00 1.367678047E-06 1.832023414E+01 4.070707738E+07
+ 4.612693313E+07 6.634770994E+00 1.277202979E-06 1.810221522E+01 4.077272783E+07
+ 4.650226869E+07 6.171476109E+00 1.192380828E-06 1.788419630E+01 4.083912859E+07
+ 4.687760425E+07 5.738997368E+00 1.112881932E-06 1.766617739E+01 4.090629759E+07
+ 4.725293980E+07 5.335434676E+00 1.038394247E-06 1.744815847E+01 4.097425345E+07
+ 4.762827536E+07 4.958934749E+00 9.686225168E-07 1.723013955E+01 4.104300558E+07
+ 4.800361092E+07 4.607772559E+00 9.032874647E-07 1.701212063E+01 4.111259086E+07
+ 4.837894647E+07 4.280329022E+00 8.421250231E-07 1.679410171E+01 4.118302317E+07
+ 4.875428203E+07 3.975125068E+00 7.848855937E-07 1.657608279E+01 4.125432671E+07
+ 4.912961759E+07 3.690680055E+00 7.313333371E-07 1.635806388E+01 4.132651251E+07
+ 4.950495315E+07 3.425717603E+00 6.812454924E-07 1.614004496E+01 4.139962121E+07
+ 4.988028870E+07 3.178883064E+00 6.344117261E-07 1.592202604E+01 4.147366841E+07
+ 5.025562426E+07 2.949082802E+00 5.906335076E-07 1.570400712E+01 4.154867563E+07
+ 5.063095982E+07 2.735158608E+00 5.497235122E-07 1.548598820E+01 4.162466810E+07
+ 5.100629537E+07 2.536084198E+00 5.115050501E-07 1.526796928E+01 4.170168955E+07
+ 5.138163093E+07 2.350854245E+00 4.758115202E-07 1.504995037E+01 4.177975058E+07
+ 5.175696649E+07 2.178610626E+00 4.424858884E-07 1.483193145E+01 4.185888417E+07
+ 5.213230205E+07 2.018432152E+00 4.113801892E-07 1.461391253E+01 4.193912436E+07
+ 5.250763760E+07 1.869530342E+00 3.823550499E-07 1.439589361E+01 4.202051021E+07
+ 5.288297316E+07 1.731167703E+00 3.552792370E-07 1.417787469E+01 4.210306917E+07
+ 5.325830872E+07 1.602614188E+00 3.300292226E-07 1.395985577E+01 4.218683672E+07
+ 5.363364427E+07 1.483203291E+00 3.064887722E-07 1.374183686E+01 4.227183586E+07
+ 5.400897983E+07 1.372338885E+00 2.845485509E-07 1.352381794E+01 4.235813718E+07
+ 5.438431539E+07 1.269423018E+00 2.641057492E-07 1.330579902E+01 4.244575668E+07
+ 5.475965094E+07 1.173887439E+00 2.450637264E-07 1.308778010E+01 4.253474431E+07
+ 5.513498650E+07 1.085296362E+00 2.273316707E-07 1.286976118E+01 4.262513730E+07
+ 5.551032206E+07 1.003094154E+00 2.108242770E-07 1.265174226E+01 4.271700112E+07
+ 5.588565762E+07 9.268915280E-01 1.954614400E-07 1.243372335E+01 4.281037441E+07
+ 5.626099317E+07 8.562410908E-01 1.811679621E-07 1.221570443E+01 4.290529394E+07
+ 5.663632873E+07 7.907660591E-01 1.678732768E-07 1.199768551E+01 4.300184916E+07
+ 5.701166429E+07 7.300879429E-01 1.555111859E-07 1.177966659E+01 4.310007069E+07
+ 5.738699984E+07 6.739294264E-01 1.440196094E-07 1.156164767E+01 4.320002563E+07
+ 5.776233540E+07 6.218942092E-01 1.333403488E-07 1.134362875E+01 4.330177605E+07
+ 5.813767096E+07 5.737272501E-01 1.234188630E-07 1.112560984E+01 4.340540460E+07
+ 5.851300652E+07 5.291580988E-01 1.142040552E-07 1.090759092E+01 4.351096376E+07
+ 5.888834207E+07 4.879181962E-01 1.056480711E-07 1.068957200E+01 4.361854895E+07
+ 5.926367763E+07 4.497708620E-01 9.770610846E-08 1.047155308E+01 4.372823184E+07
+ 5.963901319E+07 4.144866956E-01 9.033623585E-08 1.025353416E+01 4.384009855E+07
+ 6.001434874E+07 3.818786855E-01 8.349922197E-08 1.003551524E+01 4.395421973E+07
+ 6.038968430E+07 3.517572449E-01 7.715837373E-08 9.817496326E+00 4.407073028E+07
+ 6.076501986E+07 3.239156340E-01 7.127938341E-08 9.599477408E+00 4.418970806E+07
+ 6.114035542E+07 2.982009282E-01 6.583018406E-08 9.381458490E+00 4.431128822E+07
+ 6.151569097E+07 2.744296554E-01 6.078081302E-08 9.163439571E+00 4.443555531E+07
+ 6.189102653E+07 2.525094936E-01 5.610328300E-08 8.945420653E+00 4.456268177E+07
+ 6.226636209E+07 2.322818294E-01 5.177146035E-08 8.727401735E+00 4.469276083E+07
+ 6.264169764E+07 2.136143251E-01 4.776095031E-08 8.509382817E+00 4.482595701E+07
+ 6.301703320E+07 1.964026225E-01 4.404898868E-08 8.291363898E+00 4.496244195E+07
+ 6.339236876E+07 1.805208925E-01 4.061433977E-08 8.073344980E+00 4.510235550E+07
+ 6.376770432E+07 1.658840788E-01 3.743720018E-08 7.855326062E+00 4.524590503E+07
+ 6.414303987E+07 1.523879706E-01 3.449910821E-08 7.637307143E+00 4.539327787E+07
+ 6.451837543E+07 1.399544263E-01 3.178285849E-08 7.419288225E+00 4.554471488E+07
+ 6.489371099E+07 1.285049262E-01 2.927242171E-08 7.201269307E+00 4.570041544E+07
+ 6.526904654E+07 1.179423457E-01 2.695286902E-08 6.983250388E+00 4.586065425E+07
+ 6.564438210E+07 1.082537066E-01 2.481030097E-08 6.765231470E+00 4.602571977E+07
+ 6.601971766E+07 9.931271682E-02 2.283178068E-08 6.547212552E+00 4.619592740E+07
+ 6.639505321E+07 9.109298072E-02 2.100527108E-08 6.329193633E+00 4.637157788E+07
+ 6.677038877E+07 8.353019407E-02 1.931957588E-08 6.111174715E+00 4.655308212E+07
+ 6.714572433E+07 7.655922366E-02 1.776428420E-08 5.893155797E+00 4.674083585E+07
+ 6.752105989E+07 7.015876018E-02 1.632971855E-08 5.675136878E+00 4.693530722E+07
+ 6.789639544E+07 6.429988566E-02 1.500688606E-08 5.457117960E+00 4.713701433E+07
+ 6.827173100E+07 5.890811916E-02 1.378743270E-08 5.239099042E+00 4.734652993E+07
+ 6.864706656E+07 5.393128117E-02 1.266360037E-08 5.021080123E+00 4.756449711E+07
+ 6.902240211E+07 4.937277399E-02 1.162818669E-08 4.803061205E+00 4.779163725E+07
+ 6.939773767E+07 4.520570565E-02 1.067450729E-08 4.585042287E+00 4.802883751E+07
+ 6.977307323E+07 4.136884662E-02 9.796360551E-09 4.367023368E+00 4.827698373E+07
+ 7.014840879E+07 3.781946717E-02 8.987994549E-09 4.149004450E+00 4.853723728E+07
+ 7.052374434E+07 3.460403425E-02 8.244076129E-09 3.930985532E+00 4.881081306E+07
+ 7.089907990E+07 3.163588281E-02 7.559661982E-09 3.712966613E+00 4.909922568E+07
+ 7.127441546E+07 2.890716754E-02 6.930171596E-09 3.494947695E+00 4.940427732E+07
+ 7.164975101E+07 2.643361061E-02 6.351361960E-09 3.276928777E+00 4.972797865E+07
+ 7.202508657E+07 2.415326599E-02 5.819303937E-09 3.058909859E+00 5.007286771E+07
+ 7.240042213E+07 2.205843790E-02 5.330360184E-09 2.840890940E+00 5.044207650E+07
+ 7.277575769E+07 2.014457747E-02 4.881164545E-09 2.622872022E+00 5.083933950E+07
+ 7.315109324E+07 1.840202039E-02 4.468602801E-09 2.404853104E+00 5.126940811E+07
+ 7.352642880E+07 1.678158958E-02 4.089794720E-09 2.186834185E+00 5.173840926E+07
+ 7.390176436E+07 1.534194125E-02 3.742077305E-09 1.968815267E+00 5.225435567E+07
+ 7.427709991E+07 1.397772766E-02 3.422989182E-09 1.750796349E+00 5.282802351E+07
+ 7.465243547E+07 1.274217315E-02 3.130256042E-09 1.532777430E+00 5.347441303E+07
+ 7.502777103E+07 1.160182287E-02 2.861777076E-09 1.314758512E+00 5.421552710E+07
+ 7.540310658E+07 1.057898329E-02 2.615612347E-09 1.096739594E+00 5.508486822E+07
+ 7.577844214E+07 9.629310794E-03 2.389971023E-09 8.787206753E-01 5.613833969E+07
+ 7.615377770E+07 8.790768808E-03 2.183200433E-09 6.607017570E-01 5.747982882E+07
+ 7.652911326E+07 8.009390659E-03 1.993775877E-09 4.426828387E-01 5.933682020E+07
+ 7.690444881E+07 7.299705269E-03 1.820291154E-09 2.246639204E-01 6.241648699E+07
+ 7.727978437E+07 6.645002072E-03 1.661449755E-09 6.645002072E-03 7.727978450E+07
+ 7.734623439E+07 6.578552051E-03 1.000000000E-09 6.578552051E-03 7.734623444E+07
+ 7.741268441E+07 6.512102031E-03 1.000000000E-09 6.512102031E-03 7.741268400E+07
+ 7.747913443E+07 6.445652010E-03 1.000000000E-09 6.445652010E-03 7.747913400E+07
+ 7.754558445E+07 6.379201989E-03 1.000000000E-09 6.379201989E-03 7.754565623E+07
+ 7.761203447E+07 6.312751969E-03 1.000000000E-09 6.312751969E-03 7.761203200E+07
+ 7.767848449E+07 6.246301948E-03 1.000000000E-09 6.246301948E-03 7.767848450E+07
+ 7.774493452E+07 6.179851927E-03 1.000000000E-09 6.179851927E-03 7.774496000E+07
+ 7.781138454E+07 6.113401906E-03 1.000000000E-09 6.113401906E-03 7.781138454E+07
+ 7.787783456E+07 6.046951886E-03 1.000000000E-09 6.046951886E-03 7.787783500E+07
+ 7.794428458E+07 5.980501865E-03 1.000000000E-09 5.980501865E-03 7.794428400E+07
+ 7.801073460E+07 5.914051844E-03 1.000000000E-09 5.914051844E-03 7.801073400E+07
+ 7.807718462E+07 5.847601824E-03 1.000000000E-09 5.847601824E-03 7.807718462E+07
+ 7.814363464E+07 5.781151803E-03 1.000000000E-09 5.781151803E-03 7.814363475E+07
+ 7.821008466E+07 5.714701782E-03 1.000000000E-09 5.714701782E-03 7.821008700E+07
+ 7.827653468E+07 5.648251761E-03 1.000000000E-09 5.648251761E-03 7.827653468E+07
+ 7.834298470E+07 5.581801741E-03 1.000000000E-09 5.581801741E-03 7.834298469E+07
+ 7.840943472E+07 5.515351720E-03 1.000000000E-09 5.515351720E-03 7.840943473E+07
+ 7.847588474E+07 5.448901699E-03 1.000000000E-09 5.448901699E-03 7.847588500E+07
+ 7.854233476E+07 5.382451678E-03 1.000000000E-09 5.382451678E-03 7.854233500E+07
+ 7.860878478E+07 5.316001658E-03 1.000000000E-09 5.316001658E-03 7.860879239E+07
+ 7.867523481E+07 5.249551637E-03 1.000000000E-09 5.249551637E-03 7.867523481E+07
+ 7.874168483E+07 5.183101616E-03 1.000000000E-09 5.183101616E-03 7.874168487E+07
+ 7.880813485E+07 5.116651596E-03 1.000000000E-09 5.116651596E-03 7.880813485E+07
+ 7.887458487E+07 5.050201575E-03 1.000000000E-09 5.050201575E-03 7.887458600E+07
+ 7.894103489E+07 4.983751554E-03 1.000000000E-09 4.983751554E-03 7.894103494E+07
+ 7.900748491E+07 4.917301533E-03 1.000000000E-09 4.917301533E-03 7.900748800E+07
+ 7.907393493E+07 4.850851513E-03 1.000000000E-09 4.850851513E-03 7.907393493E+07
+ 7.914038495E+07 4.784401492E-03 1.000000000E-09 4.784401492E-03 7.914038500E+07
+ 7.920683497E+07 4.717951471E-03 1.000000000E-09 4.717951471E-03 7.920683481E+07
+ 7.927328499E+07 4.651501451E-03 1.000000000E-09 4.651501451E-03 7.927328500E+07
+ 7.933973501E+07 4.585051430E-03 1.000000000E-09 4.585051430E-03 7.933973512E+07
+ 7.940618503E+07 4.518601409E-03 1.000000000E-09 4.518601409E-03 7.940618500E+07
+ 7.947263505E+07 4.452151388E-03 1.000000000E-09 4.452151388E-03 7.947264000E+07
+ 7.953908507E+07 4.385701368E-03 1.000000000E-09 4.385701368E-03 7.953908512E+07
+ 7.960553510E+07 4.319251347E-03 1.000000000E-09 4.319251347E-03 7.960553700E+07
+ 7.967198512E+07 4.252801326E-03 1.000000000E-09 4.252801326E-03 7.967198512E+07
+ 7.973843514E+07 4.186351305E-03 1.000000000E-09 4.186351305E-03 7.973843800E+07
+ 7.980488516E+07 4.119901285E-03 1.000000000E-09 4.119901285E-03 7.980489600E+07
+ 7.987133518E+07 4.053451264E-03 1.000000000E-09 4.053451264E-03 7.987132800E+07
+ 7.993778520E+07 3.987001243E-03 1.000000000E-09 3.987001243E-03 7.993778520E+07
+ 8.000423522E+07 3.920551223E-03 1.000000000E-09 3.920551223E-03 8.000423525E+07
+ 8.007068524E+07 3.854101202E-03 1.000000000E-09 3.854101202E-03 8.007068524E+07
+ 8.013713526E+07 3.787651181E-03 1.000000000E-09 3.787651181E-03 8.013713563E+07
+ 8.020358528E+07 3.721201160E-03 1.000000000E-09 3.721201160E-03 8.020352000E+07
+ 8.027003530E+07 3.654751140E-03 1.000000000E-09 3.654751140E-03 8.027005765E+07
+ 8.033648532E+07 3.588301119E-03 1.000000000E-09 3.588301119E-03 8.033649066E+07
+ 8.040293534E+07 3.521851098E-03 1.000000000E-09 3.521851098E-03 8.040293534E+07
+ 8.046938536E+07 3.455401078E-03 1.000000000E-09 3.455401078E-03 8.046939200E+07
+ 8.053583539E+07 3.388951057E-03 1.000000000E-09 3.388951057E-03 8.053584000E+07
+ 8.060228541E+07 3.322501036E-03 1.000000000E-09 3.322501036E-03 8.060228600E+07
+ 8.066873543E+07 3.256051015E-03 1.000000000E-09 3.256051015E-03 8.066873600E+07
+ 8.073518545E+07 3.189600995E-03 1.000000000E-09 3.189600995E-03 8.073518600E+07
+ 8.080163547E+07 3.123150974E-03 1.000000000E-09 3.123150974E-03 8.080163556E+07
+ 8.086808549E+07 3.056700953E-03 1.000000000E-09 3.056700953E-03 8.086813765E+07
+ 8.093453551E+07 2.990250932E-03 1.000000000E-09 2.990250932E-03 8.093453551E+07
+ 8.100098553E+07 2.923800912E-03 1.000000000E-09 2.923800912E-03 8.100098600E+07
+ 8.106743555E+07 2.857350891E-03 1.000000000E-09 2.857350891E-03 8.106743556E+07
+ 8.113388557E+07 2.790900870E-03 1.000000000E-09 2.790900870E-03 8.113388500E+07
+ 8.120033559E+07 2.724450850E-03 1.000000000E-09 2.724450850E-03 8.120035980E+07
+ 8.126678561E+07 2.658000829E-03 1.000000000E-09 2.658000829E-03 8.126678600E+07
+ 8.133323563E+07 2.591550808E-03 1.000000000E-09 2.591550808E-03 8.133323582E+07
+ 8.139968565E+07 2.525100787E-03 1.000000000E-09 2.525100787E-03 8.139968583E+07
+ 8.146613568E+07 2.458650767E-03 1.000000000E-09 2.458650767E-03 8.146613568E+07
+ 8.153258570E+07 2.392200746E-03 1.000000000E-09 2.392200746E-03 8.153258585E+07
+ 8.159903572E+07 2.325750725E-03 1.000000000E-09 2.325750725E-03 8.159903572E+07
+ 8.166548574E+07 2.259300705E-03 1.000000000E-09 2.259300705E-03 8.166553600E+07
+ 8.173193576E+07 2.192850684E-03 1.000000000E-09 2.192850684E-03 8.173193576E+07
+ 8.179838578E+07 2.126400663E-03 1.000000000E-09 2.126400663E-03 8.179838581E+07
+ 8.186483580E+07 2.059950642E-03 1.000000000E-09 2.059950642E-03 8.186483600E+07
+ 8.193128582E+07 1.993500622E-03 1.000000000E-09 1.993500622E-03 8.193130691E+07
+ 8.199773584E+07 1.927050601E-03 1.000000000E-09 1.927050601E-03 8.199773892E+07
+ 8.206418586E+07 1.860600580E-03 1.000000000E-09 1.860600580E-03 8.206418586E+07
+ 8.213063588E+07 1.794150559E-03 1.000000000E-09 1.794150559E-03 8.213063588E+07
+ 8.219708590E+07 1.727700539E-03 1.000000000E-09 1.727700539E-03 8.219708590E+07
+ 8.226353592E+07 1.661250518E-03 1.000000000E-09 1.661250518E-03 8.226353592E+07
+ 8.232998595E+07 1.594800497E-03 1.000000000E-09 1.594800497E-03 8.232998800E+07
+ 8.239643597E+07 1.528350477E-03 1.000000000E-09 1.528350477E-03 8.239643597E+07
+ 8.246288599E+07 1.461900456E-03 1.000000000E-09 1.461900456E-03 8.246288599E+07
+ 8.252933601E+07 1.395450435E-03 1.000000000E-09 1.395450435E-03 8.252939651E+07
+ 8.259578603E+07 1.329000414E-03 1.000000000E-09 1.329000414E-03 8.259584000E+07
+ 8.266223605E+07 1.262550394E-03 1.000000000E-09 1.262550394E-03 8.266231802E+07
+ 8.272868607E+07 1.196100373E-03 1.000000000E-09 1.196100373E-03 8.272868607E+07
+ 8.279513609E+07 1.129650352E-03 1.000000000E-09 1.129650352E-03 8.279513609E+07
+ 8.286158611E+07 1.063200332E-03 1.000000000E-09 1.063200332E-03 8.286158611E+07
+ 8.292803613E+07 9.967503108E-04 1.000000000E-09 9.967503108E-04 8.292808207E+07
+ 8.299448615E+07 9.303002901E-04 1.000000000E-09 9.303002901E-04 8.299453661E+07
+ 8.306093617E+07 8.638502694E-04 1.000000000E-09 8.638502694E-04 8.306093619E+07
+ 8.312738619E+07 7.974002487E-04 1.000000000E-09 7.974002487E-04 8.312738110E+07
+ 8.319383621E+07 7.309502279E-04 1.000000000E-09 7.309502279E-04 8.319383621E+07
+ 8.326028624E+07 6.645002072E-04 1.000000000E-09 6.645002072E-04 8.326028800E+07
+ 8.332673626E+07 5.980501865E-04 1.000000000E-09 5.980501865E-04 8.332672000E+07
+ 8.339318628E+07 5.316001658E-04 1.000000000E-09 5.316001658E-04 8.339323314E+07
+ 8.345963630E+07 4.651501451E-04 1.000000000E-09 4.651501451E-04 8.345963630E+07
+ 8.352608632E+07 3.987001243E-04 1.000000000E-09 3.987001243E-04 8.352608632E+07
+ 8.359253634E+07 3.322501036E-04 1.000000000E-09 3.322501036E-04 8.359249217E+07
+ 8.365898636E+07 2.658000829E-04 1.000000000E-09 2.658000829E-04 8.365898918E+07
+ 8.372543638E+07 1.993500622E-04 1.000000000E-09 1.993500622E-04 8.372545600E+07
+ 8.379188640E+07 1.329000414E-04 1.000000000E-09 1.329000414E-04 8.379188640E+07
+ 8.385833642E+07 6.645002072E-05 1.000000000E-09 6.645002072E-05 8.385833642E+07
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM87
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM87	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM87	(revision 4308)
@@ -0,0 +1,501 @@
+DENSITY AND THICKNESS DATA OF THE ATMOSPHERE AT AN ZENITH ANGLE OF 87.0 DEGREES
+ 0.000000000E+00 1.538097327E+04 1.229805824E-03 1.538097327E+04 1.862645149E-09
+ 6.925906751E+04 1.529592814E+04 1.225325567E-03 1.531040571E+04 5.756453625E+04
+ 1.385181350E+05 1.521146705E+04 1.220852410E-03 1.523983814E+04 1.150788823E+05
+ 2.077772025E+05 1.512676353E+04 1.216386395E-03 1.516927058E+04 1.729891659E+05
+ 2.770362700E+05 1.504292369E+04 1.211927564E-03 1.509870301E+04 2.310807971E+05
+ 3.462953375E+05 1.495848937E+04 1.207475956E-03 1.502813544E+04 2.891190426E+05
+ 4.155544050E+05 1.487560821E+04 1.203031614E-03 1.495756788E+04 3.470512482E+05
+ 4.848134726E+05 1.479241071E+04 1.198594577E-03 1.488700031E+04 4.061845486E+05
+ 5.540725401E+05 1.470951938E+04 1.194164886E-03 1.481643275E+04 4.647594120E+05
+ 6.233316076E+05 1.462695701E+04 1.189742579E-03 1.474586518E+04 5.232292578E+05
+ 6.925906751E+05 1.454467736E+04 1.185327698E-03 1.467529761E+04 5.827051642E+05
+ 7.618497426E+05 1.446270382E+04 1.180920281E-03 1.460473005E+04 6.420594496E+05
+ 8.311088101E+05 1.438103335E+04 1.176520366E-03 1.453416248E+04 7.010800216E+05
+ 9.003678776E+05 1.429994163E+04 1.172127993E-03 1.446359492E+04 7.611029484E+05
+ 9.696269451E+05 1.421825993E+04 1.167743199E-03 1.439302735E+04 8.210227463E+05
+ 1.038886013E+06 1.413812226E+04 1.163366023E-03 1.432245978E+04 8.806096607E+05
+ 1.108145080E+06 1.405766477E+04 1.158996502E-03 1.425189222E+04 9.414463075E+05
+ 1.177404148E+06 1.397750772E+04 1.154634673E-03 1.418132465E+04 1.001711944E+06
+ 1.246663215E+06 1.389765233E+04 1.150280574E-03 1.411075709E+04 1.061880284E+06
+ 1.315922283E+06 1.381816938E+04 1.145934240E-03 1.404018952E+04 1.123304264E+06
+ 1.385181350E+06 1.373864537E+04 1.141595709E-03 1.396962195E+04 1.184162636E+06
+ 1.454440418E+06 1.366006027E+04 1.137265016E-03 1.389905439E+04 1.245457366E+06
+ 1.523699485E+06 1.358140401E+04 1.132942197E-03 1.382848682E+04 1.306493840E+06
+ 1.592958553E+06 1.350304753E+04 1.128627287E-03 1.375791926E+04 1.368483635E+06
+ 1.662217620E+06 1.342498773E+04 1.124320322E-03 1.368735169E+04 1.430480088E+06
+ 1.731476688E+06 1.334750010E+04 1.120021336E-03 1.361678412E+04 1.492359812E+06
+ 1.800735755E+06 1.326941700E+04 1.115730364E-03 1.354621656E+04 1.554926328E+06
+ 1.869994823E+06 1.319286949E+04 1.111447439E-03 1.347564899E+04 1.617225645E+06
+ 1.939253890E+06 1.311599667E+04 1.107172595E-03 1.340508143E+04 1.679978130E+06
+ 2.008512958E+06 1.303941778E+04 1.102905867E-03 1.333451386E+04 1.742946052E+06
+ 2.077772025E+06 1.296341012E+04 1.098647287E-03 1.326394629E+04 1.806136613E+06
+ 2.147031093E+06 1.288716677E+04 1.094396888E-03 1.319337873E+04 1.869541787E+06
+ 2.216290160E+06 1.281174475E+04 1.090154703E-03 1.312281116E+04 1.932873137E+06
+ 2.285549228E+06 1.273572045E+04 1.085920763E-03 1.305224360E+04 1.997018758E+06
+ 2.354808295E+06 1.266010517E+04 1.081695102E-03 1.298167603E+04 2.060531797E+06
+ 2.424067363E+06 1.258640951E+04 1.077477749E-03 1.291110846E+04 2.125416485E+06
+ 2.493326430E+06 1.251188632E+04 1.073268738E-03 1.284054090E+04 2.189697805E+06
+ 2.562585498E+06 1.243792375E+04 1.069068098E-03 1.276997333E+04 2.254709941E+06
+ 2.631844565E+06 1.236370092E+04 1.064875860E-03 1.269940577E+04 2.319454639E+06
+ 2.701103633E+06 1.229031624E+04 1.060692055E-03 1.262883820E+04 2.383819369E+06
+ 2.770362700E+06 1.221694602E+04 1.056516713E-03 1.255827063E+04 2.450151925E+06
+ 2.839621768E+06 1.214395659E+04 1.052349863E-03 1.248770307E+04 2.516118832E+06
+ 2.908880835E+06 1.207116226E+04 1.048191536E-03 1.241713550E+04 2.581813211E+06
+ 2.978139903E+06 1.199865494E+04 1.044041759E-03 1.234656794E+04 2.648263557E+06
+ 3.047398970E+06 1.192671083E+04 1.039900563E-03 1.227600037E+04 2.714446869E+06
+ 3.116658038E+06 1.185415225E+04 1.035767974E-03 1.220543280E+04 2.781392216E+06
+ 3.185917105E+06 1.178313026E+04 1.031644023E-03 1.213486524E+04 2.848160318E+06
+ 3.255176173E+06 1.171176504E+04 1.027528736E-03 1.206429767E+04 2.915613269E+06
+ 3.324435240E+06 1.164068389E+04 1.023422140E-03 1.199373011E+04 2.982801580E+06
+ 3.393694308E+06 1.157016285E+04 1.019324265E-03 1.192316254E+04 3.050769688E+06
+ 3.462953375E+06 1.149902492E+04 1.015235135E-03 1.185259497E+04 3.118144439E+06
+ 3.532212443E+06 1.142943693E+04 1.011154778E-03 1.178202741E+04 3.186973091E+06
+ 3.601471510E+06 1.135948576E+04 1.007083221E-03 1.171145984E+04 3.255469572E+06
+ 3.670730578E+06 1.128981566E+04 1.003020489E-03 1.164089228E+04 3.324234106E+06
+ 3.739989645E+06 1.122070254E+04 9.989666082E-04 1.157032471E+04 3.393537508E+06
+ 3.809248713E+06 1.115097008E+04 9.949216037E-04 1.149975714E+04 3.462240588E+06
+ 3.878507780E+06 1.108276610E+04 9.908855009E-04 1.142918958E+04 3.532453998E+06
+ 3.947766848E+06 1.101421394E+04 9.868583245E-04 1.135862201E+04 3.602318473E+06
+ 4.017025915E+06 1.094593981E+04 9.828400991E-04 1.128805445E+04 3.672464664E+06
+ 4.086284983E+06 1.087821844E+04 9.788308488E-04 1.121748688E+04 3.743167659E+06
+ 4.155544050E+06 1.081049755E+04 9.748305976E-04 1.114691931E+04 3.813885712E+06
+ 4.224803118E+06 1.074285942E+04 9.708393691E-04 1.107635175E+04 3.884899804E+06
+ 4.294062185E+06 1.067598500E+04 9.668571865E-04 1.100578418E+04 3.956476864E+06
+ 4.363321253E+06 1.060909107E+04 9.628840730E-04 1.093521661E+04 4.028075826E+06
+ 4.432580321E+06 1.054212159E+04 9.589200512E-04 1.086464905E+04 4.099973347E+06
+ 4.501839388E+06 1.047640030E+04 9.549651434E-04 1.079408148E+04 4.172451503E+06
+ 4.571098456E+06 1.041033179E+04 9.510193719E-04 1.072351392E+04 4.245060274E+06
+ 4.640357523E+06 1.034453033E+04 9.470827583E-04 1.065294635E+04 4.317874565E+06
+ 4.709616591E+06 1.027927609E+04 9.431553243E-04 1.058237878E+04 4.391001574E+06
+ 4.778875658E+06 1.021339659E+04 9.392370910E-04 1.051181122E+04 4.464725544E+06
+ 4.848134726E+06 1.014902885E+04 9.353280794E-04 1.044124365E+04 4.538771402E+06
+ 4.917393793E+06 1.008433299E+04 9.314283100E-04 1.037067609E+04 4.612858800E+06
+ 4.986652861E+06 1.001988377E+04 9.275378032E-04 1.030010852E+04 4.687267483E+06
+ 5.055911928E+06 9.955976460E+03 9.236565789E-04 1.022954095E+04 4.762292231E+06
+ 5.125170996E+06 9.891017774E+03 9.197846570E-04 1.015897339E+04 4.837652186E+06
+ 5.194430063E+06 9.828417756E+03 9.159220568E-04 1.008840582E+04 4.913081550E+06
+ 5.263689131E+06 9.765318290E+03 9.120687976E-04 1.001783826E+04 4.988828352E+06
+ 5.332948198E+06 9.701584417E+03 9.082248980E-04 9.947270691E+03 5.065208963E+06
+ 5.402207266E+06 9.639354307E+03 9.043903768E-04 9.876703125E+03 5.140728908E+06
+ 5.471466333E+06 9.577046956E+03 9.005652521E-04 9.806135559E+03 5.219027127E+06
+ 5.540725401E+06 9.514103806E+03 8.967495420E-04 9.735567993E+03 5.296176080E+06
+ 5.609984468E+06 9.452760605E+03 8.929432641E-04 9.665000427E+03 5.373302531E+06
+ 5.679243536E+06 9.390965465E+03 8.891464358E-04 9.594432860E+03 5.451467892E+06
+ 5.748502603E+06 9.329432647E+03 8.853590742E-04 9.523865294E+03 5.530380730E+06
+ 5.817761671E+06 9.268437235E+03 8.815811961E-04 9.453297728E+03 5.609391728E+06
+ 5.887020738E+06 9.207425581E+03 8.778128181E-04 9.382730162E+03 5.688679823E+06
+ 5.956279806E+06 9.146679931E+03 8.740539564E-04 9.312162596E+03 5.768043129E+06
+ 6.025538873E+06 9.086463801E+03 8.703046270E-04 9.241595030E+03 5.848097752E+06
+ 6.094797941E+06 9.025610574E+03 8.665648455E-04 9.171027464E+03 5.927852654E+06
+ 6.164057008E+06 8.966255114E+03 8.628346274E-04 9.100459898E+03 6.008871037E+06
+ 6.233316076E+06 8.906813129E+03 8.591139876E-04 9.029892332E+03 6.090323992E+06
+ 6.302575143E+06 8.846751068E+03 8.554029411E-04 8.959324766E+03 6.171971393E+06
+ 6.371834211E+06 8.788167712E+03 8.517015024E-04 8.888757200E+03 6.254028048E+06
+ 6.441093278E+06 8.729495290E+03 8.480096857E-04 8.818189634E+03 6.336525976E+06
+ 6.510352346E+06 8.670524673E+03 8.443275051E-04 8.747622068E+03 6.419418555E+06
+ 6.579611413E+06 8.612356026E+03 8.406549742E-04 8.677054502E+03 6.502737898E+06
+ 6.648870481E+06 8.554173537E+03 8.369921064E-04 8.606486936E+03 6.586486775E+06
+ 6.718129548E+06 8.495889565E+03 8.333389149E-04 8.535919370E+03 6.670678059E+06
+ 6.787388616E+06 8.438829464E+03 8.296954125E-04 8.465351804E+03 6.755304720E+06
+ 6.856647683E+06 8.381673600E+03 8.260616119E-04 8.394784238E+03 6.840379874E+06
+ 6.925906751E+06 8.324216672E+03 8.224375253E-04 8.324216672E+03 6.925906751E+06
+ 7.011777879E+06 8.253414240E+03 8.216607600E-04 8.272213056E+03 6.988319714E+06
+ 7.097649008E+06 8.183047258E+03 8.165848979E-04 8.220209439E+03 7.052703016E+06
+ 7.183520136E+06 8.113129296E+03 8.115297445E-04 8.168205823E+03 7.115647858E+06
+ 7.269391265E+06 8.043629195E+03 8.064953041E-04 8.116202206E+03 7.179773980E+06
+ 7.355262393E+06 7.974560603E+03 8.014815801E-04 8.064198590E+03 7.244182922E+06
+ 7.441133522E+06 7.905920370E+03 7.964885752E-04 8.012194973E+03 7.308021633E+06
+ 7.527004650E+06 7.837710833E+03 7.915162911E-04 7.960191356E+03 7.373015133E+06
+ 7.612875779E+06 7.769923376E+03 7.865647289E-04 7.908187740E+03 7.438317284E+06
+ 7.698746907E+06 7.702560338E+03 7.816338887E-04 7.856184123E+03 7.503936463E+06
+ 7.784618036E+06 7.635618596E+03 7.767237697E-04 7.804180507E+03 7.569867129E+06
+ 7.870489164E+06 7.569335024E+03 7.718343706E-04 7.752176890E+03 7.635219937E+06
+ 7.956360293E+06 7.503230500E+03 7.669656890E-04 7.700173274E+03 7.701768738E+06
+ 8.042231421E+06 7.437543305E+03 7.621177218E-04 7.648169657E+03 7.768642628E+06
+ 8.128102550E+06 7.372270296E+03 7.572904651E-04 7.596166041E+03 7.834981968E+06
+ 8.213973678E+06 7.307413791E+03 7.524839143E-04 7.544162424E+03 7.903709364E+06
+ 8.299844807E+06 7.242965214E+03 7.476980639E-04 7.492158808E+03 7.970644334E+06
+ 8.385715935E+06 7.178926887E+03 7.429329076E-04 7.440155191E+03 8.038843004E+06
+ 8.471587064E+06 7.115295703E+03 7.381884383E-04 7.388151575E+03 8.107384712E+06
+ 8.557458192E+06 7.052802794E+03 7.334646484E-04 7.336147958E+03 8.175369400E+06
+ 8.643329321E+06 6.989263579E+03 7.287615292E-04 7.284144342E+03 8.245519629E+06
+ 8.729200449E+06 6.927554259E+03 7.240790713E-04 7.232140725E+03 8.314169131E+06
+ 8.815071578E+06 6.864828184E+03 7.194172648E-04 7.180137109E+03 8.384105317E+06
+ 8.900942706E+06 6.803911336E+03 7.147760987E-04 7.128133492E+03 8.454404369E+06
+ 8.986813835E+06 6.741991377E+03 7.101555615E-04 7.076129876E+03 8.525090971E+06
+ 9.072684963E+06 6.681854131E+03 7.055556409E-04 7.024126259E+03 8.596130443E+06
+ 9.158556092E+06 6.620774805E+03 7.009763239E-04 6.972122643E+03 8.667547268E+06
+ 9.244427220E+06 6.561431582E+03 6.964175966E-04 6.920119026E+03 8.739343950E+06
+ 9.330298349E+06 6.501776277E+03 6.918794446E-04 6.868115410E+03 8.810554583E+06
+ 9.416169477E+06 6.442508638E+03 6.873618526E-04 6.816111793E+03 8.884102869E+06
+ 9.502040606E+06 6.383631146E+03 6.828648047E-04 6.764108177E+03 8.956063920E+06
+ 9.587911734E+06 6.325135060E+03 6.783882843E-04 6.712104560E+03 9.029414528E+06
+ 9.673782863E+06 6.267022816E+03 6.739322741E-04 6.660100944E+03 9.103168842E+06
+ 9.759653991E+06 6.209291305E+03 6.694967560E-04 6.608097327E+03 9.177416803E+06
+ 9.845525120E+06 6.151953623E+03 6.650817114E-04 6.556093711E+03 9.251996631E+06
+ 9.931396248E+06 6.094979601E+03 6.606871207E-04 6.504090094E+03 9.326997355E+06
+ 1.001726738E+07 6.039098242E+03 6.563129640E-04 6.452086478E+03 9.402422215E+06
+ 1.010313851E+07 5.982159080E+03 6.519592205E-04 6.400082861E+03 9.477278531E+06
+ 1.018900963E+07 5.927014812E+03 6.476258688E-04 6.348079245E+03 9.554574485E+06
+ 1.027488076E+07 5.870832044E+03 6.433128868E-04 6.296075628E+03 9.630285582E+06
+ 1.036075189E+07 5.816412055E+03 6.390202518E-04 6.244072012E+03 9.708490026E+06
+ 1.044662302E+07 5.760979475E+03 6.347479403E-04 6.192068395E+03 9.785082086E+06
+ 1.053249415E+07 5.706644266E+03 6.304959284E-04 6.140064779E+03 9.864241735E+06
+ 1.061836528E+07 5.653555101E+03 6.262641915E-04 6.088061162E+03 9.941739566E+06
+ 1.070423640E+07 5.599198813E+03 6.220527041E-04 6.036057546E+03 1.002183523E+07
+ 1.079010753E+07 5.546595273E+03 6.178614403E-04 5.984053929E+03 1.010026940E+07
+ 1.087597866E+07 5.493657653E+03 6.136903737E-04 5.932050313E+03 1.018134797E+07
+ 1.096184979E+07 5.441073561E+03 6.095394771E-04 5.880046696E+03 1.026074782E+07
+ 1.104772092E+07 5.388845606E+03 6.054087226E-04 5.828043080E+03 1.034282494E+07
+ 1.113359205E+07 5.336970667E+03 6.012980820E-04 5.776039463E+03 1.042322228E+07
+ 1.121946318E+07 5.285462062E+03 5.972075261E-04 5.724035847E+03 1.050529528E+07
+ 1.130533430E+07 5.234289292E+03 5.931370255E-04 5.672032230E+03 1.058818712E+07
+ 1.139120543E+07 5.183465802E+03 5.890865500E-04 5.620028614E+03 1.067124401E+07
+ 1.147707656E+07 5.132988564E+03 5.850560688E-04 5.568024997E+03 1.075483935E+07
+ 1.156294769E+07 5.083564977E+03 5.810455506E-04 5.516021381E+03 1.083897914E+07
+ 1.164881882E+07 5.033071310E+03 5.770549635E-04 5.464017764E+03 1.092482906E+07
+ 1.173468995E+07 4.984314006E+03 5.730842750E-04 5.412014148E+03 1.100893428E+07
+ 1.182056107E+07 4.935260154E+03 5.691334522E-04 5.360010531E+03 1.109590605E+07
+ 1.190643220E+07 4.886482985E+03 5.652024615E-04 5.308006915E+03 1.118117056E+07
+ 1.199230333E+07 4.838043226E+03 5.612912687E-04 5.256003298E+03 1.126932354E+07
+ 1.207817446E+07 4.789937850E+03 5.573998391E-04 5.203999682E+03 1.135691307E+07
+ 1.216404559E+07 4.742169273E+03 5.535281376E-04 5.151996065E+03 1.144510923E+07
+ 1.224991672E+07 4.694728984E+03 5.496761284E-04 5.099992449E+03 1.153392898E+07
+ 1.233578785E+07 4.648338225E+03 5.458437752E-04 5.047988832E+03 1.162337114E+07
+ 1.242165897E+07 4.600837616E+03 5.420310413E-04 4.995985216E+03 1.171467219E+07
+ 1.250753010E+07 4.555098317E+03 5.382378894E-04 4.943981599E+03 1.180418423E+07
+ 1.259340123E+07 4.508266044E+03 5.344642816E-04 4.891977983E+03 1.189687133E+07
+ 1.267927236E+07 4.463143494E+03 5.307101797E-04 4.839974366E+03 1.198891859E+07
+ 1.276514349E+07 4.417652626E+03 5.269755447E-04 4.787970750E+03 1.208164778E+07
+ 1.285101462E+07 4.372478323E+03 5.232603375E-04 4.735967133E+03 1.217507839E+07
+ 1.293688575E+07 4.327623161E+03 5.195645181E-04 4.683963517E+03 1.226921115E+07
+ 1.302275687E+07 4.283084137E+03 5.158880464E-04 4.631959900E+03 1.236530879E+07
+ 1.310862800E+07 4.239096740E+03 5.122308816E-04 4.579956284E+03 1.246089888E+07
+ 1.319449913E+07 4.195183069E+03 5.085929824E-04 4.527952667E+03 1.255720874E+07
+ 1.328037026E+07 4.151581997E+03 5.049743072E-04 4.475949051E+03 1.265559328E+07
+ 1.336624139E+07 4.108290557E+03 5.013748138E-04 4.423945434E+03 1.275341650E+07
+ 1.345211252E+07 4.066018239E+03 4.977944596E-04 4.371941818E+03 1.285202231E+07
+ 1.353798364E+07 4.022635378E+03 4.942332016E-04 4.319938201E+03 1.295143468E+07
+ 1.362385477E+07 3.980952052E+03 4.906909962E-04 4.267934585E+03 1.305166741E+07
+ 1.370972590E+07 3.938889925E+03 4.871677995E-04 4.215930968E+03 1.315450701E+07
+ 1.379559703E+07 3.897114942E+03 4.836635671E-04 4.163927352E+03 1.325638029E+07
+ 1.388146816E+07 3.855641282E+03 4.801782544E-04 4.111923735E+03 1.335912319E+07
+ 1.396733929E+07 3.814465962E+03 4.767118159E-04 4.059920119E+03 1.346413402E+07
+ 1.405321042E+07 3.774309109E+03 4.732642061E-04 4.007916502E+03 1.356862847E+07
+ 1.413908154E+07 3.733009344E+03 4.698353790E-04 3.955912886E+03 1.367404805E+07
+ 1.422495267E+07 3.693417528E+03 4.664252881E-04 3.903909269E+03 1.378182548E+07
+ 1.431082380E+07 3.652727179E+03 4.630338865E-04 3.851905653E+03 1.388910511E+07
+ 1.439669493E+07 3.613756141E+03 4.596611271E-04 3.799902036E+03 1.399737162E+07
+ 1.448256606E+07 3.574330024E+03 4.563069621E-04 3.747898420E+03 1.410802767E+07
+ 1.456843719E+07 3.535191183E+03 4.529713436E-04 3.695894803E+03 1.421975176E+07
+ 1.465430832E+07 3.496342108E+03 4.496542231E-04 3.643891187E+03 1.433111495E+07
+ 1.474017944E+07 3.457774473E+03 4.463555519E-04 3.591887570E+03 1.444342605E+07
+ 1.482605057E+07 3.420195320E+03 4.430752809E-04 3.539883954E+03 1.455829095E+07
+ 1.491192170E+07 3.381488248E+03 4.398133606E-04 3.487880337E+03 1.467431454E+07
+ 1.499779283E+07 3.344461033E+03 4.365697410E-04 3.435876720E+03 1.478986773E+07
+ 1.508366396E+07 3.307005571E+03 4.333443720E-04 3.383873104E+03 1.490660591E+07
+ 1.516953509E+07 3.269826536E+03 4.301372031E-04 3.331869487E+03 1.502605696E+07
+ 1.525540621E+07 3.232926457E+03 4.269481832E-04 3.279865871E+03 1.514672306E+07
+ 1.534127734E+07 3.196297033E+03 4.237772613E-04 3.227862254E+03 1.526866413E+07
+ 1.542714847E+07 3.160644007E+03 4.206243857E-04 3.175858638E+03 1.539017013E+07
+ 1.551301960E+07 3.123855021E+03 4.174895046E-04 3.123855021E+03 1.551301960E+07
+ 1.581339608E+07 2.998143127E+03 4.109646463E-04 3.092847497E+03 1.558611732E+07
+ 1.611377256E+07 2.876921329E+03 3.962403868E-04 3.061839973E+03 1.565986310E+07
+ 1.641414904E+07 2.760055549E+03 3.819592699E-04 3.030832448E+03 1.573424713E+07
+ 1.671452552E+07 2.647413976E+03 3.681115296E-04 2.999824924E+03 1.580930550E+07
+ 1.701490200E+07 2.538875367E+03 3.546874699E-04 2.968817400E+03 1.588507796E+07
+ 1.731527848E+07 2.434299155E+03 3.416774710E-04 2.937809875E+03 1.596155245E+07
+ 1.761565496E+07 2.333569840E+03 3.290719946E-04 2.906802351E+03 1.603871875E+07
+ 1.791603144E+07 2.236567149E+03 3.168615891E-04 2.875794827E+03 1.611661551E+07
+ 1.821640792E+07 2.143174355E+03 3.050368953E-04 2.844787302E+03 1.619528569E+07
+ 1.851678440E+07 2.053276145E+03 2.935886504E-04 2.813779778E+03 1.627471749E+07
+ 1.881716087E+07 1.966761312E+03 2.825076929E-04 2.782772253E+03 1.635490159E+07
+ 1.911753735E+07 1.883520725E+03 2.717849669E-04 2.751764729E+03 1.643587981E+07
+ 1.941791383E+07 1.803450013E+03 2.614115255E-04 2.720757205E+03 1.651769832E+07
+ 1.971829031E+07 1.726441990E+03 2.513785347E-04 2.689749680E+03 1.660034676E+07
+ 2.001866679E+07 1.652397576E+03 2.416772772E-04 2.658742156E+03 1.668381604E+07
+ 2.031904327E+07 1.581229257E+03 2.322991549E-04 2.627734632E+03 1.676815172E+07
+ 2.061941975E+07 1.512819455E+03 2.232356919E-04 2.596727107E+03 1.685342507E+07
+ 2.091979623E+07 1.447085830E+03 2.144785375E-04 2.565719583E+03 1.693958513E+07
+ 2.122017271E+07 1.383937494E+03 2.060194683E-04 2.534712059E+03 1.702664619E+07
+ 2.152054919E+07 1.323289106E+03 1.978503903E-04 2.503704534E+03 1.711465676E+07
+ 2.182092567E+07 1.265045284E+03 1.899633411E-04 2.472697010E+03 1.720367113E+07
+ 2.212130215E+07 1.209143754E+03 1.823504912E-04 2.441689485E+03 1.729368246E+07
+ 2.242167863E+07 1.155477726E+03 1.750041460E-04 2.410681961E+03 1.738468488E+07
+ 2.272205511E+07 1.103979092E+03 1.679167466E-04 2.379674437E+03 1.747676526E+07
+ 2.302243159E+07 1.054581981E+03 1.610808715E-04 2.348666912E+03 1.756991848E+07
+ 2.332280807E+07 1.007190657E+03 1.544892366E-04 2.317659388E+03 1.766414097E+07
+ 2.362318455E+07 9.617434617E+02 1.481346969E-04 2.286651864E+03 1.775952416E+07
+ 2.392356103E+07 9.181700217E+02 1.420102462E-04 2.255644339E+03 1.785606565E+07
+ 2.422393751E+07 8.764041793E+02 1.361090182E-04 2.224636815E+03 1.795376407E+07
+ 2.452431399E+07 8.363763100E+02 1.304242859E-04 2.193629291E+03 1.805271797E+07
+ 2.482469046E+07 7.980349242E+02 1.249494623E-04 2.162621766E+03 1.815292497E+07
+ 2.512506694E+07 7.612970025E+02 1.196781000E-04 2.131614242E+03 1.825438765E+07
+ 2.542544342E+07 7.261224501E+02 1.146038908E-04 2.100606717E+03 1.835721013E+07
+ 2.572581990E+07 6.924330715E+02 1.097206655E-04 2.069599193E+03 1.846139606E+07
+ 2.602619638E+07 6.601822824E+02 1.050223934E-04 2.038591669E+03 1.856694923E+07
+ 2.632657286E+07 6.293228306E+02 1.005031813E-04 2.007584144E+03 1.867398293E+07
+ 2.662694934E+07 5.997873293E+02 9.615727315E-05 1.976576620E+03 1.878250365E+07
+ 2.692732582E+07 5.715317845E+02 9.197904875E-05 1.945569096E+03 1.889255706E+07
+ 2.722770230E+07 5.445175464E+02 8.796302296E-05 1.914561571E+03 1.900419011E+07
+ 2.752807878E+07 5.186749347E+02 8.410384450E-05 1.883554047E+03 1.911741479E+07
+ 2.782845526E+07 4.939789060E+02 8.039629478E-05 1.852546523E+03 1.923236525E+07
+ 2.812883174E+07 4.703639752E+02 7.683528654E-05 1.821538998E+03 1.934904494E+07
+ 2.842920822E+07 4.477988346E+02 7.341586250E-05 1.790531474E+03 1.946751764E+07
+ 2.872958470E+07 4.262381360E+02 7.013319388E-05 1.759523949E+03 1.958784350E+07
+ 2.902996118E+07 4.056542258E+02 6.698257883E-05 1.728516425E+03 1.971004503E+07
+ 2.933033766E+07 3.859973406E+02 6.395944086E-05 1.697508901E+03 1.983427080E+07
+ 2.963071414E+07 3.672192273E+02 6.105932713E-05 1.666501376E+03 1.996054956E+07
+ 2.993109062E+07 3.492940808E+02 5.827790673E-05 1.635493852E+03 2.008895593E+07
+ 3.023146710E+07 3.321866866E+02 5.561096888E-05 1.604486328E+03 2.021956801E+07
+ 3.053184358E+07 3.158801693E+02 5.305442109E-05 1.573478803E+03 2.035247059E+07
+ 3.083222006E+07 3.003193038E+02 5.060428730E-05 1.542471279E+03 2.048774738E+07
+ 3.113259653E+07 2.854687522E+02 4.825670596E-05 1.511463754E+03 2.062549315E+07
+ 3.143297301E+07 2.713079765E+02 4.600792802E-05 1.480456230E+03 2.076580614E+07
+ 3.173334949E+07 2.578109862E+02 4.385431500E-05 1.449448706E+03 2.090879143E+07
+ 3.203372597E+07 2.449515563E+02 4.179233697E-05 1.418441181E+03 2.105455908E+07
+ 3.233410245E+07 2.327013165E+02 3.981857048E-05 1.387433657E+03 2.120322821E+07
+ 3.263447893E+07 2.210307443E+02 3.792969652E-05 1.356426133E+03 2.135492464E+07
+ 3.293485541E+07 2.099049877E+02 3.612249845E-05 1.325418608E+03 2.150979793E+07
+ 3.323523189E+07 1.993202699E+02 3.439385991E-05 1.294411084E+03 2.166796311E+07
+ 3.353560837E+07 1.892430238E+02 3.274076273E-05 1.263403560E+03 2.182956941E+07
+ 3.383598485E+07 1.796426530E+02 3.116028482E-05 1.232396035E+03 2.199488039E+07
+ 3.413636133E+07 1.705150325E+02 2.964959807E-05 1.201388511E+03 2.216393745E+07
+ 3.443673781E+07 1.618306740E+02 2.820596626E-05 1.170380986E+03 2.233698994E+07
+ 3.473711429E+07 1.535603264E+02 2.682674294E-05 1.139373462E+03 2.251430600E+07
+ 3.503749077E+07 1.457047331E+02 2.550936933E-05 1.108365938E+03 2.269598899E+07
+ 3.533786725E+07 1.382355181E+02 2.425137225E-05 1.077358413E+03 2.288233926E+07
+ 3.563824373E+07 1.311324077E+02 2.305036205E-05 1.046350889E+03 2.307368879E+07
+ 3.593862021E+07 1.243743682E+02 2.190403050E-05 1.015343365E+03 2.327018890E+07
+ 3.623899669E+07 1.179630673E+02 2.081014881E-05 9.843358403E+02 2.347228746E+07
+ 3.653937317E+07 1.118728545E+02 1.976656552E-05 9.533283159E+02 2.368018872E+07
+ 3.683974965E+07 1.060776957E+02 1.877120453E-05 9.223207916E+02 2.389440863E+07
+ 3.714012613E+07 1.005954229E+02 1.782206309E-05 8.913132672E+02 2.411530150E+07
+ 3.744050260E+07 9.537238093E+01 1.691720983E-05 8.603057428E+02 2.434322391E+07
+ 3.774087908E+07 9.042317500E+01 1.605478279E-05 8.292982185E+02 2.457884337E+07
+ 3.804125556E+07 8.572656861E+01 1.523298752E-05 7.982906941E+02 2.482264506E+07
+ 3.834163204E+07 8.126066327E+01 1.445009516E-05 7.672831697E+02 2.507525993E+07
+ 3.864200852E+07 7.704475403E+01 1.370444056E-05 7.362756454E+02 2.533738439E+07
+ 3.894238500E+07 7.302641182E+01 1.299442045E-05 7.052681210E+02 2.560981409E+07
+ 3.924276148E+07 6.922431406E+01 1.231849160E-05 6.742605966E+02 2.589344364E+07
+ 3.954313796E+07 6.562401215E+01 1.167516905E-05 6.432530723E+02 2.618925853E+07
+ 3.984351444E+07 6.221030223E+01 1.106302433E-05 6.122455479E+02 2.649861126E+07
+ 4.014389092E+07 5.897612686E+01 1.048068376E-05 5.812380235E+02 2.682270775E+07
+ 4.044426740E+07 5.591194142E+01 9.926826711E-06 5.502304992E+02 2.716300517E+07
+ 4.074464388E+07 5.300992130E+01 9.400183996E-06 5.192229748E+02 2.752157219E+07
+ 4.104502036E+07 5.026362691E+01 8.899536192E-06 4.882154504E+02 2.790045845E+07
+ 4.134539684E+07 4.766211711E+01 8.423712065E-06 4.572079261E+02 2.830228129E+07
+ 4.164577332E+07 4.519965232E+01 7.971586995E-06 4.262004017E+02 2.873012208E+07
+ 4.194614980E+07 4.286981013E+01 7.542081452E-06 3.951928774E+02 2.918799662E+07
+ 4.224652628E+07 4.066516013E+01 7.134159493E-06 3.641853530E+02 2.968052217E+07
+ 4.254690276E+07 3.857596285E+01 6.746827301E-06 3.331778286E+02 3.021369867E+07
+ 4.284727924E+07 3.661465281E+01 6.379131754E-06 3.021703043E+02 3.079560853E+07
+ 4.314765572E+07 3.474985786E+01 6.030159027E-06 2.711627799E+02 3.143612340E+07
+ 4.344803219E+07 3.298724942E+01 5.699033234E-06 2.401552555E+02 3.214982090E+07
+ 4.374840867E+07 3.132100859E+01 5.384915100E-06 2.091477312E+02 3.295580004E+07
+ 4.404878515E+07 2.974631359E+01 5.087000662E-06 1.781402068E+02 3.388424688E+07
+ 4.434916163E+07 2.827079243E+01 4.804520012E-06 1.471326824E+02 3.498156963E+07
+ 4.464953811E+07 2.686569907E+01 4.536736066E-06 1.161251581E+02 3.632807855E+07
+ 4.494991459E+07 2.553893158E+01 4.282943374E-06 8.511763370E+01 3.808110963E+07
+ 4.525029107E+07 2.429605216E+01 4.042466953E-06 5.411010934E+01 4.062900544E+07
+ 4.555066755E+07 2.310258497E+01 3.814661162E-06 2.310258497E+01 4.555066755E+07
+ 4.594294223E+07 2.160584147E+01 3.697171616E-06 2.287162749E+01 4.560961883E+07
+ 4.633521692E+07 2.020021621E+01 3.471499937E-06 2.264067000E+01 4.566912968E+07
+ 4.672749160E+07 1.888061079E+01 3.258605604E-06 2.240971252E+01 4.572921127E+07
+ 4.711976628E+07 1.764210258E+01 3.057831537E-06 2.217875504E+01 4.578987508E+07
+ 4.751204097E+07 1.648009101E+01 2.868550227E-06 2.194779755E+01 4.585113296E+07
+ 4.790431565E+07 1.539016227E+01 2.690162659E-06 2.171684007E+01 4.591298718E+07
+ 4.829659033E+07 1.436815896E+01 2.522097263E-06 2.148588258E+01 4.597547272E+07
+ 4.868886501E+07 1.341018481E+01 2.363808890E-06 2.125492510E+01 4.603858765E+07
+ 4.908113970E+07 1.251244332E+01 2.214777809E-06 2.102396761E+01 4.610234538E+07
+ 4.947341438E+07 1.167142112E+01 2.074508735E-06 2.079301013E+01 4.616676237E+07
+ 4.986568906E+07 1.088379106E+01 1.942529871E-06 2.056205264E+01 4.623185527E+07
+ 5.025796375E+07 1.014640564E+01 1.818391988E-06 2.033109516E+01 4.629762875E+07
+ 5.065023843E+07 9.456191900E+00 1.701667519E-06 2.010013767E+01 4.636411347E+07
+ 5.104251311E+07 8.810430291E+00 1.591949687E-06 1.986918019E+01 4.643131758E+07
+ 5.143478779E+07 8.206379749E+00 1.488851652E-06 1.963822271E+01 4.649925743E+07
+ 5.182706248E+07 7.641533376E+00 1.392005685E-06 1.940726522E+01 4.656794664E+07
+ 5.221933716E+07 7.113516539E+00 1.301062368E-06 1.917630774E+01 4.663740181E+07
+ 5.261161184E+07 6.620049469E+00 1.215689817E-06 1.894535025E+01 4.670765560E+07
+ 5.300388653E+07 6.159059078E+00 1.135572931E-06 1.871439277E+01 4.677871374E+07
+ 5.339616121E+07 5.728503193E+00 1.060412666E-06 1.848343528E+01 4.685059007E+07
+ 5.378843589E+07 5.326478770E+00 9.899253279E-07 1.825247780E+01 4.692331599E+07
+ 5.418071057E+07 4.951276928E+00 9.238418954E-07 1.802152031E+01 4.699691537E+07
+ 5.457298526E+07 4.601159470E+00 8.619073632E-07 1.779056283E+01 4.707140434E+07
+ 5.496525994E+07 4.274536874E+00 8.038801079E-07 1.755960534E+01 4.714680551E+07
+ 5.535753462E+07 3.969998469E+00 7.495312772E-07 1.732864786E+01 4.722314238E+07
+ 5.574980930E+07 3.686044706E+00 6.986442011E-07 1.709769038E+01 4.730043936E+07
+ 5.614208399E+07 3.421459434E+00 6.510138241E-07 1.686673289E+01 4.737872186E+07
+ 5.653435867E+07 3.174894662E+00 6.064461599E-07 1.663577541E+01 4.745800522E+07
+ 5.692663335E+07 2.945284313E+00 5.647577654E-07 1.640481792E+01 4.753833910E+07
+ 5.731890804E+07 2.731454599E+00 5.257752360E-07 1.617386044E+01 4.761973485E+07
+ 5.771118272E+07 2.532450956E+00 4.893347205E-07 1.594290295E+01 4.770223490E+07
+ 5.810345740E+07 2.347233279E+00 4.552814548E-07 1.571194547E+01 4.778585438E+07
+ 5.849573208E+07 2.174969362E+00 4.234693149E-07 1.548098798E+01 4.787064534E+07
+ 5.888800677E+07 2.014755957E+00 3.937603880E-07 1.525003050E+01 4.795663203E+07
+ 5.928028145E+07 1.865779509E+00 3.660245615E-07 1.501907301E+01 4.804384573E+07
+ 5.967255613E+07 1.727342660E+00 3.401391289E-07 1.478811553E+01 4.813232607E+07
+ 6.006483082E+07 1.598708900E+00 3.159884127E-07 1.455715805E+01 4.822211952E+07
+ 6.045710550E+07 1.479216013E+00 2.934634040E-07 1.432620056E+01 4.831325511E+07
+ 6.084938018E+07 1.368272116E+00 2.724614167E-07 1.409524308E+01 4.840577481E+07
+ 6.124165486E+07 1.265281625E+00 2.528857581E-07 1.386428559E+01 4.849974189E+07
+ 6.163392955E+07 1.169677925E+00 2.346454136E-07 1.363332811E+01 4.859519112E+07
+ 6.202620423E+07 1.081028723E+00 2.176547454E-07 1.340237062E+01 4.869217183E+07
+ 6.241847891E+07 9.987776939E-01 2.018332060E-07 1.317141314E+01 4.879071996E+07
+ 6.281075360E+07 9.225106945E-01 1.871050636E-07 1.294045565E+01 4.889092568E+07
+ 6.320302828E+07 8.518556418E-01 1.733991415E-07 1.270949817E+01 4.899281476E+07
+ 6.359530296E+07 7.863717168E-01 1.606485686E-07 1.247854068E+01 4.909645521E+07
+ 6.398757764E+07 7.256999022E-01 1.487905434E-07 1.224758320E+01 4.920192742E+07
+ 6.437985233E+07 6.695416535E-01 1.377661073E-07 1.201662572E+01 4.930928668E+07
+ 6.477212701E+07 6.175022509E-01 1.275199310E-07 1.178566823E+01 4.941858714E+07
+ 6.516440169E+07 5.693636170E-01 1.180001100E-07 1.155471075E+01 4.952994293E+07
+ 6.555667638E+07 5.248272174E-01 1.091579706E-07 1.132375326E+01 4.964340357E+07
+ 6.594895106E+07 4.836560311E-01 1.009478859E-07 1.109279578E+01 4.975904928E+07
+ 6.634122574E+07 4.455771629E-01 9.332710084E-08 1.086183829E+01 4.987700156E+07
+ 6.673350042E+07 4.103700105E-01 8.625556615E-08 1.063088081E+01 4.999732773E+07
+ 6.712577511E+07 3.778375421E-01 7.969578099E-08 1.039992332E+01 5.012015090E+07
+ 6.751804979E+07 3.477626592E-01 7.361264364E-08 1.016896584E+01 5.024556931E+07
+ 6.791032447E+07 3.200252840E-01 6.797331006E-08 9.938008354E+00 5.037369909E+07
+ 6.830259916E+07 2.943974406E-01 6.274705992E-08 9.707050870E+00 5.050464105E+07
+ 6.869487384E+07 2.707506866E-01 5.790516977E-08 9.476093385E+00 5.063856980E+07
+ 6.908714852E+07 2.489213840E-01 5.342079302E-08 9.245135901E+00 5.077559887E+07
+ 6.947942320E+07 2.288098294E-01 4.926884640E-08 9.014178416E+00 5.091590162E+07
+ 6.987169789E+07 2.102236102E-01 4.542590268E-08 8.783220931E+00 5.105963108E+07
+ 7.026397257E+07 1.931206223E-01 4.187008922E-08 8.552263447E+00 5.120696863E+07
+ 7.065624725E+07 1.773352772E-01 3.858099223E-08 8.321305962E+00 5.135809592E+07
+ 7.104852193E+07 1.628113121E-01 3.553956629E-08 8.090348478E+00 5.151325154E+07
+ 7.144079662E+07 1.494088417E-01 3.272804906E-08 7.859390993E+00 5.167262286E+07
+ 7.183307130E+07 1.371034845E-01 3.012988078E-08 7.628433509E+00 5.183648166E+07
+ 7.222534598E+07 1.257807015E-01 2.772962840E-08 7.397476024E+00 5.200508292E+07
+ 7.261762067E+07 1.153323416E-01 2.551291405E-08 7.166518540E+00 5.217873334E+07
+ 7.300989535E+07 1.057352104E-01 2.346634767E-08 6.935561055E+00 5.235775602E+07
+ 7.340217003E+07 9.690376642E-02 2.157746364E-08 6.704603571E+00 5.254246882E+07
+ 7.379444471E+07 8.877105166E-02 1.983466106E-08 6.473646086E+00 5.273332785E+07
+ 7.418671940E+07 8.132240806E-02 1.822714760E-08 6.242688601E+00 5.293073013E+07
+ 7.457899408E+07 7.446427722E-02 1.674488670E-08 6.011731117E+00 5.313511237E+07
+ 7.497126876E+07 6.817475385E-02 1.537854800E-08 5.780773632E+00 5.334707453E+07
+ 7.536354345E+07 6.238741395E-02 1.411946066E-08 5.549816148E+00 5.356719764E+07
+ 7.575581813E+07 5.708199020E-02 1.295956960E-08 5.318858663E+00 5.379613972E+07
+ 7.614809281E+07 5.223231337E-02 1.189139445E-08 5.087901179E+00 5.403473049E+07
+ 7.654036749E+07 4.773133391E-02 1.090799093E-08 4.856943694E+00 5.428375574E+07
+ 7.693264218E+07 4.363800552E-02 1.000291475E-08 4.625986210E+00 5.454425007E+07
+ 7.732491686E+07 3.985916839E-02 9.170187677E-09 4.395028725E+00 5.481736870E+07
+ 7.771719154E+07 3.643254962E-02 8.404265772E-09 4.164071240E+00 5.510440782E+07
+ 7.810946623E+07 3.328147683E-02 7.700009658E-09 3.933113756E+00 5.540695624E+07
+ 7.850174091E+07 3.038358187E-02 7.052656645E-09 3.702156271E+00 5.572679151E+07
+ 7.889401559E+07 2.772877590E-02 6.457794667E-09 3.471198787E+00 5.606618811E+07
+ 7.928629027E+07 2.532040132E-02 5.911337889E-09 3.240241302E+00 5.642766446E+07
+ 7.967856496E+07 2.308307476E-02 5.409503903E-09 3.009283818E+00 5.681445373E+07
+ 8.007083964E+07 2.106544766E-02 4.948792408E-09 2.778326333E+00 5.723052601E+07
+ 8.046311432E+07 1.919106518E-02 4.525965293E-09 2.547368849E+00 5.768077327E+07
+ 8.085538901E+07 1.750653052E-02 4.138028036E-09 2.316411364E+00 5.817160281E+07
+ 8.124766369E+07 1.595841749E-02 3.782212333E-09 2.085453880E+00 5.871132921E+07
+ 8.163993837E+07 1.453793939E-02 3.455959895E-09 1.854496395E+00 5.931120857E+07
+ 8.203221305E+07 1.323024999E-02 3.156907332E-09 1.623538910E+00 5.998676306E+07
+ 8.242448774E+07 1.205617561E-02 2.882872048E-09 1.392581426E+00 6.076092257E+07
+ 8.281676242E+07 1.097338617E-02 2.631839114E-09 1.161623941E+00 6.166842896E+07
+ 8.320903710E+07 9.995999765E-03 2.401949019E-09 9.306664568E-01 6.276745439E+07
+ 8.360131179E+07 9.091169818E-03 2.191486271E-09 6.997089723E-01 6.416521051E+07
+ 8.399358647E+07 8.247817850E-03 1.998868788E-09 4.687514877E-01 6.609881557E+07
+ 8.438586115E+07 7.517357167E-03 1.822638018E-09 2.377940032E-01 6.929970765E+07
+ 8.477813583E+07 6.836518606E-03 1.661449755E-09 6.836518606E-03 8.477813581E+07
+ 8.484650102E+07 6.768153420E-03 1.000000000E-09 6.768153420E-03 8.484650102E+07
+ 8.491486621E+07 6.699788234E-03 1.000000000E-09 6.699788234E-03 8.491486621E+07
+ 8.498323139E+07 6.631423048E-03 1.000000000E-09 6.631423048E-03 8.498323144E+07
+ 8.505159658E+07 6.563057862E-03 1.000000000E-09 6.563057862E-03 8.505159656E+07
+ 8.511996176E+07 6.494692676E-03 1.000000000E-09 6.494692676E-03 8.511996187E+07
+ 8.518832695E+07 6.426327490E-03 1.000000000E-09 6.426327490E-03 8.518832700E+07
+ 8.525669214E+07 6.357962304E-03 1.000000000E-09 6.357962304E-03 8.525673600E+07
+ 8.532505732E+07 6.289597118E-03 1.000000000E-09 6.289597118E-03 8.532505737E+07
+ 8.539342251E+07 6.221231932E-03 1.000000000E-09 6.221231932E-03 8.539348288E+07
+ 8.546178769E+07 6.152866746E-03 1.000000000E-09 6.152866746E-03 8.546178770E+07
+ 8.553015288E+07 6.084501560E-03 1.000000000E-09 6.084501560E-03 8.553017600E+07
+ 8.559851807E+07 6.016136373E-03 1.000000000E-09 6.016136373E-03 8.559851806E+07
+ 8.566688325E+07 5.947771187E-03 1.000000000E-09 5.947771187E-03 8.566688319E+07
+ 8.573524844E+07 5.879406001E-03 1.000000000E-09 5.879406001E-03 8.573526400E+07
+ 8.580361362E+07 5.811040815E-03 1.000000000E-09 5.811040815E-03 8.580360000E+07
+ 8.587197881E+07 5.742675629E-03 1.000000000E-09 5.742675629E-03 8.587201047E+07
+ 8.594034400E+07 5.674310443E-03 1.000000000E-09 5.674310443E-03 8.594032000E+07
+ 8.600870918E+07 5.605945257E-03 1.000000000E-09 5.605945257E-03 8.600870918E+07
+ 8.607707437E+07 5.537580071E-03 1.000000000E-09 5.537580071E-03 8.607707437E+07
+ 8.614543955E+07 5.469214885E-03 1.000000000E-09 5.469214885E-03 8.614543200E+07
+ 8.621380474E+07 5.400849699E-03 1.000000000E-09 5.400849699E-03 8.621380481E+07
+ 8.628216993E+07 5.332484513E-03 1.000000000E-09 5.332484513E-03 8.628217000E+07
+ 8.635053511E+07 5.264119327E-03 1.000000000E-09 5.264119327E-03 8.635053512E+07
+ 8.641890030E+07 5.195754141E-03 1.000000000E-09 5.195754141E-03 8.641889965E+07
+ 8.648726549E+07 5.127388955E-03 1.000000000E-09 5.127388955E-03 8.648726549E+07
+ 8.655563067E+07 5.059023769E-03 1.000000000E-09 5.059023769E-03 8.655563200E+07
+ 8.662399586E+07 4.990658583E-03 1.000000000E-09 4.990658583E-03 8.662399700E+07
+ 8.669236104E+07 4.922293396E-03 1.000000000E-09 4.922293396E-03 8.669236200E+07
+ 8.676072623E+07 4.853928210E-03 1.000000000E-09 4.853928210E-03 8.676072700E+07
+ 8.682909142E+07 4.785563024E-03 1.000000000E-09 4.785563024E-03 8.682908800E+07
+ 8.689745660E+07 4.717197838E-03 1.000000000E-09 4.717197838E-03 8.689747200E+07
+ 8.696582179E+07 4.648832652E-03 1.000000000E-09 4.648832652E-03 8.696582100E+07
+ 8.703418697E+07 4.580467466E-03 1.000000000E-09 4.580467466E-03 8.703418687E+07
+ 8.710255216E+07 4.512102280E-03 1.000000000E-09 4.512102280E-03 8.710255212E+07
+ 8.717091735E+07 4.443737094E-03 1.000000000E-09 4.443737094E-03 8.717091700E+07
+ 8.723928253E+07 4.375371908E-03 1.000000000E-09 4.375371908E-03 8.723928200E+07
+ 8.730764772E+07 4.307006722E-03 1.000000000E-09 4.307006722E-03 8.730764600E+07
+ 8.737601290E+07 4.238641536E-03 1.000000000E-09 4.238641536E-03 8.737601294E+07
+ 8.744437809E+07 4.170276350E-03 1.000000000E-09 4.170276350E-03 8.744437809E+07
+ 8.751274328E+07 4.101911164E-03 1.000000000E-09 4.101911164E-03 8.751276800E+07
+ 8.758110846E+07 4.033545978E-03 1.000000000E-09 4.033545978E-03 8.758110400E+07
+ 8.764947365E+07 3.965180792E-03 1.000000000E-09 3.965180792E-03 8.764948800E+07
+ 8.771783883E+07 3.896815606E-03 1.000000000E-09 3.896815606E-03 8.771783800E+07
+ 8.778620402E+07 3.828450419E-03 1.000000000E-09 3.828450419E-03 8.778624000E+07
+ 8.785456921E+07 3.760085233E-03 1.000000000E-09 3.760085233E-03 8.785456921E+07
+ 8.792293439E+07 3.691720047E-03 1.000000000E-09 3.691720047E-03 8.792298795E+07
+ 8.799129958E+07 3.623354861E-03 1.000000000E-09 3.623354861E-03 8.799129979E+07
+ 8.805966476E+07 3.554989675E-03 1.000000000E-09 3.554989675E-03 8.805966600E+07
+ 8.812802995E+07 3.486624489E-03 1.000000000E-09 3.486624489E-03 8.812802995E+07
+ 8.819639514E+07 3.418259303E-03 1.000000000E-09 3.418259303E-03 8.819639500E+07
+ 8.826476032E+07 3.349894117E-03 1.000000000E-09 3.349894117E-03 8.826476032E+07
+ 8.833312551E+07 3.281528931E-03 1.000000000E-09 3.281528931E-03 8.833305600E+07
+ 8.840149069E+07 3.213163745E-03 1.000000000E-09 3.213163745E-03 8.840149200E+07
+ 8.846985588E+07 3.144798559E-03 1.000000000E-09 3.144798559E-03 8.846985588E+07
+ 8.853822107E+07 3.076433373E-03 1.000000000E-09 3.076433373E-03 8.853822107E+07
+ 8.860658625E+07 3.008068187E-03 1.000000000E-09 3.008068187E-03 8.860660800E+07
+ 8.867495144E+07 2.939703001E-03 1.000000000E-09 2.939703001E-03 8.867501172E+07
+ 8.874331663E+07 2.871337815E-03 1.000000000E-09 2.871337815E-03 8.874331600E+07
+ 8.881168181E+07 2.802972629E-03 1.000000000E-09 2.802972629E-03 8.881168181E+07
+ 8.888004700E+07 2.734607442E-03 1.000000000E-09 2.734607442E-03 8.888004800E+07
+ 8.894841218E+07 2.666242256E-03 1.000000000E-09 2.666242256E-03 8.894841218E+07
+ 8.901677737E+07 2.597877070E-03 1.000000000E-09 2.597877070E-03 8.901683200E+07
+ 8.908514256E+07 2.529511884E-03 1.000000000E-09 2.529511884E-03 8.908513600E+07
+ 8.915350774E+07 2.461146698E-03 1.000000000E-09 2.461146698E-03 8.915350400E+07
+ 8.922187293E+07 2.392781512E-03 1.000000000E-09 2.392781512E-03 8.922187293E+07
+ 8.929023811E+07 2.324416326E-03 1.000000000E-09 2.324416326E-03 8.929023819E+07
+ 8.935860330E+07 2.256051140E-03 1.000000000E-09 2.256051140E-03 8.935859200E+07
+ 8.942696849E+07 2.187685954E-03 1.000000000E-09 2.187685954E-03 8.942696900E+07
+ 8.949533367E+07 2.119320768E-03 1.000000000E-09 2.119320768E-03 8.949533400E+07
+ 8.956369886E+07 2.050955582E-03 1.000000000E-09 2.050955582E-03 8.956369886E+07
+ 8.963206404E+07 1.982590396E-03 1.000000000E-09 1.982590396E-03 8.963200000E+07
+ 8.970042923E+07 1.914225210E-03 1.000000000E-09 1.914225210E-03 8.970041600E+07
+ 8.976879442E+07 1.845860024E-03 1.000000000E-09 1.845860024E-03 8.976879721E+07
+ 8.983715960E+07 1.777494838E-03 1.000000000E-09 1.777494838E-03 8.983715961E+07
+ 8.990552479E+07 1.709129652E-03 1.000000000E-09 1.709129652E-03 8.990553600E+07
+ 8.997388997E+07 1.640764465E-03 1.000000000E-09 1.640764465E-03 8.997388997E+07
+ 9.004225516E+07 1.572399279E-03 1.000000000E-09 1.572399279E-03 9.004225516E+07
+ 9.011062035E+07 1.504034093E-03 1.000000000E-09 1.504034093E-03 9.011062044E+07
+ 9.017898553E+07 1.435668907E-03 1.000000000E-09 1.435668907E-03 9.017907200E+07
+ 9.024735072E+07 1.367303721E-03 1.000000000E-09 1.367303721E-03 9.024735000E+07
+ 9.031571590E+07 1.298938535E-03 1.000000000E-09 1.298938535E-03 9.031571590E+07
+ 9.038408109E+07 1.230573349E-03 1.000000000E-09 1.230573349E-03 9.038415173E+07
+ 9.045244628E+07 1.162208163E-03 1.000000000E-09 1.162208163E-03 9.045251449E+07
+ 9.052081146E+07 1.093842977E-03 1.000000000E-09 1.093842977E-03 9.052082173E+07
+ 9.058917665E+07 1.025477791E-03 1.000000000E-09 1.025477791E-03 9.058918400E+07
+ 9.065754184E+07 9.571126049E-04 1.000000000E-09 9.571126049E-04 9.065754200E+07
+ 9.072590702E+07 8.887474188E-04 1.000000000E-09 8.887474188E-04 9.072590702E+07
+ 9.079427221E+07 8.203822327E-04 1.000000000E-09 8.203822327E-04 9.079427260E+07
+ 9.086263739E+07 7.520170467E-04 1.000000000E-09 7.520170467E-04 9.086263750E+07
+ 9.093100258E+07 6.836518606E-04 1.000000000E-09 6.836518606E-04 9.093100800E+07
+ 9.099936777E+07 6.152866746E-04 1.000000000E-09 6.152866746E-04 9.099941382E+07
+ 9.106773295E+07 5.469214885E-04 1.000000000E-09 5.469214885E-04 9.106773295E+07
+ 9.113609814E+07 4.785563024E-04 1.000000000E-09 4.785563024E-04 9.113609814E+07
+ 9.120446332E+07 4.101911164E-04 1.000000000E-09 4.101911164E-04 9.120446366E+07
+ 9.127282851E+07 3.418259303E-04 1.000000000E-09 3.418259303E-04 9.127282900E+07
+ 9.134119370E+07 2.734607442E-04 1.000000000E-09 2.734607442E-04 9.134119369E+07
+ 9.140955888E+07 2.050955582E-04 1.000000000E-09 2.050955582E-04 9.140948344E+07
+ 9.147792407E+07 1.367303721E-04 1.000000000E-09 1.367303721E-04 9.147792500E+07
+ 9.154628925E+07 6.836518606E-05 1.000000000E-09 6.836518606E-05 9.154636800E+07
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM88
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM88	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM88	(revision 4308)
@@ -0,0 +1,501 @@
+DENSITY AND THICKNESS DATA OF THE ATMOSPHERE AT AN ZENITH ANGLE OF 88.0 DEGREES
+ 0.000000000E+00 1.951080220E+04 1.229805824E-03 1.951080220E+04 0.000000000E+00
+ 9.454607940E+04 1.939476143E+04 1.225722340E-03 1.941394463E+04 7.882695671E+04
+ 1.890921588E+05 1.927910492E+04 1.221635194E-03 1.931708705E+04 1.580804497E+05
+ 2.836382382E+05 1.916356553E+04 1.217544511E-03 1.922022948E+04 2.373330830E+05
+ 3.781843176E+05 1.904905602E+04 1.213450420E-03 1.912337190E+04 3.169680468E+05
+ 4.727303970E+05 1.893427102E+04 1.209353048E-03 1.902651433E+04 3.965881654E+05
+ 5.672764764E+05 1.882015963E+04 1.205252520E-03 1.892965675E+04 4.767439999E+05
+ 6.618225558E+05 1.870643403E+04 1.201148964E-03 1.883279918E+04 5.569691433E+05
+ 7.563686352E+05 1.859319470E+04 1.197042506E-03 1.873594160E+04 6.372695907E+05
+ 8.509147146E+05 1.848024394E+04 1.192933271E-03 1.863908403E+04 7.178834941E+05
+ 9.454607940E+05 1.836768197E+04 1.188821385E-03 1.854222645E+04 7.987367770E+05
+ 1.040006873E+06 1.825550677E+04 1.184706973E-03 1.844536888E+04 8.800384819E+05
+ 1.134552953E+06 1.814337697E+04 1.180590160E-03 1.834851131E+04 9.613660445E+05
+ 1.229099032E+06 1.803196493E+04 1.176471070E-03 1.825165373E+04 1.043226986E+06
+ 1.323645112E+06 1.792095496E+04 1.172349827E-03 1.815479616E+04 1.124966345E+06
+ 1.418191191E+06 1.781033265E+04 1.168226555E-03 1.805793858E+04 1.207250143E+06
+ 1.512737270E+06 1.770010480E+04 1.164101378E-03 1.796108101E+04 1.289618421E+06
+ 1.607283350E+06 1.759026051E+04 1.159974419E-03 1.786422343E+04 1.372078633E+06
+ 1.701829429E+06 1.748080658E+04 1.155845799E-03 1.776736586E+04 1.455110503E+06
+ 1.796375509E+06 1.737174092E+04 1.151715643E-03 1.767050828E+04 1.538160443E+06
+ 1.890921588E+06 1.726316265E+04 1.147584071E-03 1.757365071E+04 1.621785649E+06
+ 1.985467667E+06 1.715460255E+04 1.143451205E-03 1.747679313E+04 1.705266842E+06
+ 2.080013747E+06 1.704669417E+04 1.139317167E-03 1.737993556E+04 1.789334113E+06
+ 2.174559826E+06 1.693918697E+04 1.135182078E-03 1.728307798E+04 1.873190151E+06
+ 2.269105906E+06 1.683207525E+04 1.131046057E-03 1.718622041E+04 1.957856979E+06
+ 2.363651985E+06 1.672534803E+04 1.126909224E-03 1.708936283E+04 2.042726370E+06
+ 2.458198064E+06 1.661901201E+04 1.122771700E-03 1.699250526E+04 2.127623112E+06
+ 2.552744144E+06 1.651306503E+04 1.118633604E-03 1.689564768E+04 2.213122589E+06
+ 2.647290223E+06 1.640753169E+04 1.114495054E-03 1.679879011E+04 2.298505161E+06
+ 2.741836303E+06 1.630245870E+04 1.110356168E-03 1.670193253E+04 2.384471252E+06
+ 2.836382382E+06 1.619768356E+04 1.106217066E-03 1.660507496E+04 2.470734728E+06
+ 2.930928461E+06 1.609329754E+04 1.102077863E-03 1.650821738E+04 2.557032597E+06
+ 3.025474541E+06 1.598930739E+04 1.097938678E-03 1.641135981E+04 2.643632518E+06
+ 3.120020620E+06 1.588570183E+04 1.093799627E-03 1.631450223E+04 2.730782485E+06
+ 3.214566700E+06 1.578212313E+04 1.089660826E-03 1.621764466E+04 2.818198081E+06
+ 3.309112779E+06 1.567966243E+04 1.085522390E-03 1.612078708E+04 2.905925709E+06
+ 3.403658858E+06 1.557686387E+04 1.081384436E-03 1.602392951E+04 2.993955312E+06
+ 3.498204938E+06 1.547489205E+04 1.077247077E-03 1.592707193E+04 3.082037630E+06
+ 3.592751017E+06 1.537332836E+04 1.073110429E-03 1.583021436E+04 3.170746287E+06
+ 3.687297097E+06 1.527206338E+04 1.068974605E-03 1.573335678E+04 3.259720577E+06
+ 3.781843176E+06 1.517118937E+04 1.064839719E-03 1.563649921E+04 3.348656859E+06
+ 3.876389255E+06 1.507070404E+04 1.060705883E-03 1.553964163E+04 3.438299899E+06
+ 3.970935335E+06 1.497061391E+04 1.056573210E-03 1.544278406E+04 3.527969393E+06
+ 4.065481414E+06 1.487090781E+04 1.052441812E-03 1.534592648E+04 3.618277722E+06
+ 4.160027494E+06 1.477159223E+04 1.048311800E-03 1.524906891E+04 3.708840128E+06
+ 4.254573573E+06 1.467266485E+04 1.044183286E-03 1.515221134E+04 3.799736133E+06
+ 4.349119652E+06 1.457414990E+04 1.040056379E-03 1.505535376E+04 3.890967224E+06
+ 4.443665732E+06 1.447600062E+04 1.035931190E-03 1.495849619E+04 3.982543294E+06
+ 4.538211811E+06 1.437824128E+04 1.031807828E-03 1.486163861E+04 4.074457545E+06
+ 4.632757891E+06 1.428086948E+04 1.027686402E-03 1.476478104E+04 4.166720000E+06
+ 4.727303970E+06 1.418390405E+04 1.023567021E-03 1.466792346E+04 4.259333594E+06
+ 4.821850049E+06 1.408758242E+04 1.019449792E-03 1.457106589E+04 4.352051137E+06
+ 4.916396129E+06 1.399137605E+04 1.015334823E-03 1.447420831E+04 4.445376054E+06
+ 5.010942208E+06 1.389555506E+04 1.011222221E-03 1.437735074E+04 4.539064953E+06
+ 5.105488288E+06 1.379993426E+04 1.007112091E-03 1.428049316E+04 4.633119826E+06
+ 5.200034367E+06 1.370488989E+04 1.003004541E-03 1.418363559E+04 4.727563202E+06
+ 5.294580447E+06 1.361051967E+04 9.988996738E-04 1.408677801E+04 4.822629654E+06
+ 5.389126526E+06 1.351624737E+04 9.947975955E-04 1.398992044E+04 4.917811276E+06
+ 5.483672605E+06 1.342236859E+04 9.906984098E-04 1.389306286E+04 5.013377140E+06
+ 5.578218685E+06 1.332887047E+04 9.866022205E-04 1.379620529E+04 5.109427611E+06
+ 5.672764764E+06 1.323575949E+04 9.825091304E-04 1.369934771E+04 5.205773918E+06
+ 5.767310844E+06 1.314303313E+04 9.784192421E-04 1.360249014E+04 5.302520398E+06
+ 5.861856923E+06 1.305071572E+04 9.743326575E-04 1.350563256E+04 5.399668323E+06
+ 5.956403002E+06 1.295875984E+04 9.702494778E-04 1.340877499E+04 5.497229194E+06
+ 6.050949082E+06 1.286718987E+04 9.661698038E-04 1.331191741E+04 5.595209341E+06
+ 6.145495161E+06 1.277600326E+04 9.620937358E-04 1.321505984E+04 5.693595688E+06
+ 6.240041241E+06 1.268520631E+04 9.580213733E-04 1.311820226E+04 5.792793345E+06
+ 6.334587320E+06 1.259480002E+04 9.539528154E-04 1.302134469E+04 5.891933055E+06
+ 6.429133399E+06 1.250476586E+04 9.498881604E-04 1.292448711E+04 5.991892552E+06
+ 6.523679479E+06 1.241511368E+04 9.458275063E-04 1.282762954E+04 6.091995727E+06
+ 6.618225558E+06 1.232594709E+04 9.417709504E-04 1.273077196E+04 6.192549902E+06
+ 6.712771638E+06 1.223733077E+04 9.377185892E-04 1.263391439E+04 6.293937945E+06
+ 6.807317717E+06 1.214882511E+04 9.336705190E-04 1.253705681E+04 6.395293370E+06
+ 6.901863796E+06 1.206069980E+04 9.296268352E-04 1.244019924E+04 6.497503708E+06
+ 6.996409876E+06 1.197296114E+04 9.255876326E-04 1.234334166E+04 6.600089087E+06
+ 7.090955955E+06 1.188559755E+04 9.215530056E-04 1.224648409E+04 6.702840646E+06
+ 7.185502035E+06 1.179861530E+04 9.175230478E-04 1.214962652E+04 6.806470790E+06
+ 7.280048114E+06 1.171202415E+04 9.134978523E-04 1.205276894E+04 6.910283799E+06
+ 7.374594193E+06 1.162582305E+04 9.094775116E-04 1.195591137E+04 7.014608552E+06
+ 7.469140273E+06 1.153997768E+04 9.054621175E-04 1.185905379E+04 7.119699073E+06
+ 7.563686352E+06 1.145487468E+04 9.014517612E-04 1.176219622E+04 7.225308306E+06
+ 7.658232432E+06 1.136969614E+04 8.974465334E-04 1.166533864E+04 7.331558638E+06
+ 7.752778511E+06 1.128498321E+04 8.934465240E-04 1.156848107E+04 7.437788998E+06
+ 7.847324590E+06 1.120066078E+04 8.894518224E-04 1.147162349E+04 7.544956061E+06
+ 7.941870670E+06 1.111697240E+04 8.854625174E-04 1.137476592E+04 7.652359790E+06
+ 8.036416749E+06 1.103348537E+04 8.814786970E-04 1.127790834E+04 7.760902898E+06
+ 8.130962829E+06 1.095027404E+04 8.775004488E-04 1.118105077E+04 7.869376520E+06
+ 8.225508908E+06 1.086744008E+04 8.735278596E-04 1.108419319E+04 7.978717894E+06
+ 8.320054987E+06 1.078497943E+04 8.695610156E-04 1.098733562E+04 8.088729852E+06
+ 8.414601067E+06 1.070289819E+04 8.656000024E-04 1.089047804E+04 8.198901613E+06
+ 8.509147146E+06 1.062119718E+04 8.616449050E-04 1.079362047E+04 8.310263247E+06
+ 8.603693226E+06 1.054022206E+04 8.576958076E-04 1.069676289E+04 8.421603157E+06
+ 8.698239305E+06 1.045925143E+04 8.537527939E-04 1.059990532E+04 8.534149668E+06
+ 8.792785384E+06 1.037858274E+04 8.498159470E-04 1.050304774E+04 8.646680869E+06
+ 8.887331464E+06 1.029835522E+04 8.458853492E-04 1.040619017E+04 8.760474606E+06
+ 8.981877543E+06 1.021878319E+04 8.419610822E-04 1.030933259E+04 8.874659935E+06
+ 9.076423623E+06 1.013929423E+04 8.380432272E-04 1.021247502E+04 8.989258395E+06
+ 9.170969702E+06 1.006018017E+04 8.341318646E-04 1.011561744E+04 9.104612116E+06
+ 9.265515781E+06 9.981429241E+03 8.302270740E-04 1.001875987E+04 9.220608749E+06
+ 9.360061861E+06 9.903059964E+03 8.263289348E-04 9.921902294E+03 9.337606387E+06
+ 9.454607940E+06 9.825044719E+03 8.224375253E-04 9.825044719E+03 9.454607940E+06
+ 9.558372614E+06 9.739385033E+03 8.219073602E-04 9.761891375E+03 9.531266123E+06
+ 9.662137287E+06 9.654976198E+03 8.170701679E-04 9.698738032E+03 9.608290689E+06
+ 9.765901961E+06 9.569590532E+03 8.122458588E-04 9.635584689E+03 9.685634671E+06
+ 9.869666634E+06 9.486143693E+03 8.074345419E-04 9.572431345E+03 9.762438154E+06
+ 9.973431308E+06 9.402480047E+03 8.026363246E-04 9.509278002E+03 9.841343460E+06
+ 1.007719598E+07 9.320913013E+03 7.978513130E-04 9.446124658E+03 9.918807117E+06
+ 1.018096065E+07 9.237398661E+03 7.930796120E-04 9.382971315E+03 9.997520499E+06
+ 1.028472533E+07 9.154482219E+03 7.883213247E-04 9.319817972E+03 1.007855087E+07
+ 1.038849000E+07 9.073581123E+03 7.835765531E-04 9.256664628E+03 1.015600877E+07
+ 1.049225468E+07 8.992380128E+03 7.788453977E-04 9.193511285E+03 1.023577951E+07
+ 1.059601935E+07 8.911668941E+03 7.741279578E-04 9.130357942E+03 1.031601417E+07
+ 1.069978402E+07 8.831465618E+03 7.694243309E-04 9.067204598E+03 1.039653972E+07
+ 1.080354870E+07 8.751735422E+03 7.647346135E-04 9.004051255E+03 1.047652745E+07
+ 1.090731337E+07 8.673220206E+03 7.600589005E-04 8.940897911E+03 1.055872228E+07
+ 1.101107804E+07 8.593737493E+03 7.553972855E-04 8.877744568E+03 1.063945072E+07
+ 1.111484272E+07 8.516176273E+03 7.507498607E-04 8.814591225E+03 1.072244530E+07
+ 1.121860739E+07 8.438385895E+03 7.461167169E-04 8.751437881E+03 1.080393367E+07
+ 1.132237206E+07 8.361064450E+03 7.414979435E-04 8.688284538E+03 1.088676886E+07
+ 1.142613674E+07 8.284958731E+03 7.368936286E-04 8.625131195E+03 1.097000611E+07
+ 1.152990141E+07 8.207865108E+03 7.323038587E-04 8.561977851E+03 1.105367082E+07
+ 1.163366608E+07 8.132680202E+03 7.277287193E-04 8.498824508E+03 1.113772886E+07
+ 1.173743076E+07 8.057513648E+03 7.231682940E-04 8.435671164E+03 1.122220569E+07
+ 1.184119543E+07 7.982557325E+03 7.186226656E-04 8.372517821E+03 1.130710456E+07
+ 1.194496011E+07 7.908088589E+03 7.140919151E-04 8.309364478E+03 1.139243649E+07
+ 1.204872478E+07 7.834078414E+03 7.095761223E-04 8.246211134E+03 1.147819728E+07
+ 1.215248945E+07 7.761268893E+03 7.050753657E-04 8.183057791E+03 1.156439816E+07
+ 1.225625413E+07 7.688181479E+03 7.005897222E-04 8.119904448E+03 1.165104280E+07
+ 1.236001880E+07 7.615559020E+03 6.961192676E-04 8.056751104E+03 1.173847253E+07
+ 1.246378347E+07 7.543430895E+03 6.916640762E-04 7.993597761E+03 1.182602522E+07
+ 1.256754815E+07 7.471739026E+03 6.872242209E-04 7.930444417E+03 1.191404102E+07
+ 1.267131282E+07 7.401235430E+03 6.827997735E-04 7.867291074E+03 1.200252398E+07
+ 1.277507749E+07 7.330453407E+03 6.783908041E-04 7.804137731E+03 1.209148656E+07
+ 1.287884217E+07 7.260125551E+03 6.739973817E-04 7.740984387E+03 1.218092297E+07
+ 1.298260684E+07 7.190269946E+03 6.696195738E-04 7.677831044E+03 1.227084962E+07
+ 1.308637151E+07 7.120857429E+03 6.652574467E-04 7.614677701E+03 1.236126931E+07
+ 1.319013619E+07 7.052683523E+03 6.609110654E-04 7.551524357E+03 1.245221171E+07
+ 1.329390086E+07 6.984160112E+03 6.565804933E-04 7.488371014E+03 1.254365801E+07
+ 1.339766553E+07 6.916086000E+03 6.522657927E-04 7.425217670E+03 1.263560276E+07
+ 1.350143021E+07 6.848479044E+03 6.479670246E-04 7.362064327E+03 1.272806892E+07
+ 1.360519488E+07 6.781304294E+03 6.436842486E-04 7.298910984E+03 1.282107016E+07
+ 1.370895956E+07 6.715293461E+03 6.394175229E-04 7.235757640E+03 1.291460393E+07
+ 1.381272423E+07 6.649006115E+03 6.351669045E-04 7.172604297E+03 1.300976083E+07
+ 1.391648890E+07 6.583159963E+03 6.309324490E-04 7.109450954E+03 1.310331727E+07
+ 1.402025358E+07 6.517743930E+03 6.267142110E-04 7.046297610E+03 1.319967026E+07
+ 1.412401825E+07 6.452730171E+03 6.225122433E-04 6.983144267E+03 1.329542734E+07
+ 1.422778292E+07 6.388938628E+03 6.183265978E-04 6.919990923E+03 1.339175940E+07
+ 1.433154760E+07 6.324817673E+03 6.141573250E-04 6.856837580E+03 1.348870483E+07
+ 1.443531227E+07 6.261144973E+03 6.100044740E-04 6.793684237E+03 1.358622227E+07
+ 1.453907694E+07 6.197939501E+03 6.058680929E-04 6.730530893E+03 1.368548551E+07
+ 1.464284162E+07 6.135357947E+03 6.017482281E-04 6.667377550E+03 1.378308469E+07
+ 1.474660629E+07 6.072923491E+03 5.976449252E-04 6.604224207E+03 1.388358331E+07
+ 1.485037096E+07 6.011696555E+03 5.935582283E-04 6.541070863E+03 1.398356483E+07
+ 1.495413564E+07 5.950149702E+03 5.894881801E-04 6.477917520E+03 1.408421141E+07
+ 1.505790031E+07 5.889013368E+03 5.854348223E-04 6.414764176E+03 1.418549954E+07
+ 1.516166498E+07 5.829026795E+03 5.813981953E-04 6.351610833E+03 1.428744834E+07
+ 1.526542966E+07 5.768731362E+03 5.773783381E-04 6.288457490E+03 1.439122206E+07
+ 1.536919433E+07 5.708838664E+03 5.733752887E-04 6.225304146E+03 1.449339169E+07
+ 1.547295901E+07 5.649378971E+03 5.693890837E-04 6.162150803E+03 1.459900161E+07
+ 1.557672368E+07 5.590322934E+03 5.654197585E-04 6.098997460E+03 1.470371548E+07
+ 1.568048835E+07 5.532391924E+03 5.614673473E-04 6.035844116E+03 1.480913692E+07
+ 1.578425303E+07 5.474143037E+03 5.575318831E-04 5.972690773E+03 1.491529456E+07
+ 1.588801770E+07 5.416318943E+03 5.536133977E-04 5.909537429E+03 1.502338023E+07
+ 1.599178237E+07 5.359682799E+03 5.497119217E-04 5.846384086E+03 1.513104446E+07
+ 1.609554705E+07 5.302642468E+03 5.458274844E-04 5.783230743E+03 1.523946405E+07
+ 1.619931172E+07 5.246006585E+03 5.419601141E-04 5.720077399E+03 1.534991144E+07
+ 1.630307639E+07 5.189792908E+03 5.381098378E-04 5.656924056E+03 1.545991388E+07
+ 1.640684107E+07 5.133966374E+03 5.342766813E-04 5.593770713E+03 1.557071713E+07
+ 1.651060574E+07 5.079248006E+03 5.304606692E-04 5.530617369E+03 1.568359850E+07
+ 1.661437041E+07 5.024214874E+03 5.266618252E-04 5.467464026E+03 1.579607170E+07
+ 1.671813509E+07 4.969577948E+03 5.228801715E-04 5.404310682E+03 1.590932698E+07
+ 1.682189976E+07 4.916048458E+03 5.191157293E-04 5.341157339E+03 1.602495542E+07
+ 1.692566444E+07 4.862170259E+03 5.153685187E-04 5.278003996E+03 1.614004055E+07
+ 1.702942911E+07 4.808694826E+03 5.116385586E-04 5.214850652E+03 1.625602352E+07
+ 1.713319378E+07 4.756336219E+03 5.079258668E-04 5.151697309E+03 1.637422332E+07
+ 1.723695846E+07 4.702891662E+03 5.042304600E-04 5.088543966E+03 1.649339550E+07
+ 1.734072313E+07 4.651523401E+03 5.005523537E-04 5.025390622E+03 1.661217581E+07
+ 1.744448780E+07 4.599558861E+03 4.968915624E-04 4.962237279E+03 1.673195114E+07
+ 1.754825248E+07 4.547991540E+03 4.932480994E-04 4.899083935E+03 1.685403651E+07
+ 1.765201715E+07 4.497530063E+03 4.896219769E-04 4.835930592E+03 1.697721977E+07
+ 1.775578182E+07 4.446691142E+03 4.860132061E-04 4.772777249E+03 1.709997109E+07
+ 1.785954650E+07 4.396229124E+03 4.824217970E-04 4.709623905E+03 1.722383516E+07
+ 1.796331117E+07 4.346173015E+03 4.788477588E-04 4.646470562E+03 1.735063375E+07
+ 1.806707584E+07 4.296464840E+03 4.752910992E-04 4.583317219E+03 1.747664966E+07
+ 1.817084052E+07 4.247827561E+03 4.717518252E-04 4.520163875E+03 1.760520766E+07
+ 1.827460519E+07 4.198857679E+03 4.682299427E-04 4.457010532E+03 1.773349945E+07
+ 1.837836986E+07 4.150242179E+03 4.647254563E-04 4.393857188E+03 1.786439798E+07
+ 1.848213454E+07 4.102703010E+03 4.612383699E-04 4.330703845E+03 1.799653802E+07
+ 1.858589921E+07 4.054859682E+03 4.577686861E-04 4.267550502E+03 1.812992834E+07
+ 1.868966389E+07 4.007331301E+03 4.543164067E-04 4.204397158E+03 1.826297965E+07
+ 1.879342856E+07 3.960876202E+03 4.508815323E-04 4.141243815E+03 1.839889593E+07
+ 1.889719323E+07 3.914038399E+03 4.474640626E-04 4.078090472E+03 1.853457802E+07
+ 1.900095791E+07 3.867570581E+03 4.440639962E-04 4.014937128E+03 1.867326089E+07
+ 1.910472258E+07 3.822177854E+03 4.406813310E-04 3.951783785E+03 1.881318552E+07
+ 1.920848725E+07 3.776403118E+03 4.373160634E-04 3.888630441E+03 1.895457069E+07
+ 1.931225193E+07 3.730978176E+03 4.339681894E-04 3.825477098E+03 1.909740212E+07
+ 1.941601660E+07 3.686631517E+03 4.306377036E-04 3.762323755E+03 1.924006875E+07
+ 1.951978127E+07 3.641878367E+03 4.273245998E-04 3.699170411E+03 1.938586528E+07
+ 1.962354595E+07 3.597482075E+03 4.240288710E-04 3.636017068E+03 1.953320043E+07
+ 1.972731062E+07 3.554163437E+03 4.207505089E-04 3.572863725E+03 1.968215787E+07
+ 1.983107529E+07 3.509710381E+03 4.174895046E-04 3.509710381E+03 1.983107530E+07
+ 2.015920146E+07 3.372237885E+03 4.118397231E-04 3.474855133E+03 1.991322870E+07
+ 2.048732763E+07 3.239398378E+03 3.979124732E-04 3.439999885E+03 1.999606355E+07
+ 2.081545380E+07 3.111066077E+03 3.843546920E-04 3.405144638E+03 2.007964399E+07
+ 2.114357997E+07 2.987133114E+03 3.711608385E-04 3.370289390E+03 2.016393303E+07
+ 2.147170614E+07 2.867459825E+03 3.583252770E-04 3.335434142E+03 2.024899680E+07
+ 2.179983231E+07 2.751940520E+03 3.458422863E-04 3.300578894E+03 2.033479805E+07
+ 2.212795848E+07 2.640459646E+03 3.337060682E-04 3.265723646E+03 2.042140955E+07
+ 2.245608465E+07 2.532904860E+03 3.219107568E-04 3.230868398E+03 2.050878491E+07
+ 2.278421081E+07 2.429165103E+03 3.104504266E-04 3.196013151E+03 2.059699871E+07
+ 2.311233698E+07 2.329138905E+03 2.993191010E-04 3.161157903E+03 2.068601351E+07
+ 2.344046315E+07 2.232704629E+03 2.885107602E-04 3.126302655E+03 2.077590203E+07
+ 2.376858932E+07 2.139764644E+03 2.780193492E-04 3.091447407E+03 2.086665424E+07
+ 2.409671549E+07 2.050215785E+03 2.678387853E-04 3.056592159E+03 2.095826144E+07
+ 2.442484166E+07 1.963957564E+03 2.579629656E-04 3.021736911E+03 2.105079873E+07
+ 2.475296783E+07 1.880890127E+03 2.483857737E-04 2.986881663E+03 2.114425735E+07
+ 2.508109400E+07 1.800916998E+03 2.391010871E-04 2.952026416E+03 2.123863040E+07
+ 2.540922017E+07 1.723955849E+03 2.301027834E-04 2.917171168E+03 2.133396582E+07
+ 2.573734633E+07 1.649888396E+03 2.213847469E-04 2.882315920E+03 2.143031714E+07
+ 2.606547250E+07 1.578636335E+03 2.129408746E-04 2.847460672E+03 2.152767682E+07
+ 2.639359867E+07 1.510121193E+03 2.047650823E-04 2.812605424E+03 2.162603832E+07
+ 2.672172484E+07 1.444235409E+03 1.968513097E-04 2.777750176E+03 2.172548859E+07
+ 2.704985101E+07 1.380903595E+03 1.891935265E-04 2.742894928E+03 2.182601960E+07
+ 2.737797718E+07 1.320043221E+03 1.817857369E-04 2.708039681E+03 2.192762793E+07
+ 2.770610335E+07 1.261573057E+03 1.746219847E-04 2.673184433E+03 2.203040372E+07
+ 2.803422952E+07 1.205417222E+03 1.676963582E-04 2.638329185E+03 2.213434364E+07
+ 2.836235569E+07 1.151500200E+03 1.610029941E-04 2.603473937E+03 2.223944498E+07
+ 2.869048186E+07 1.099734245E+03 1.545360822E-04 2.568618689E+03 2.234580376E+07
+ 2.901860802E+07 1.050064862E+03 1.482898689E-04 2.533763441E+03 2.245341847E+07
+ 2.934673419E+07 1.002398916E+03 1.422586610E-04 2.498908194E+03 2.256228886E+07
+ 2.967486036E+07 9.566876123E+02 1.364368293E-04 2.464052946E+03 2.267251742E+07
+ 3.000298653E+07 9.128423814E+02 1.308188119E-04 2.429197698E+03 2.278410585E+07
+ 3.033111270E+07 8.708075445E+02 1.253991168E-04 2.394342450E+03 2.289705605E+07
+ 3.065923887E+07 8.305208987E+02 1.201723252E-04 2.359487202E+03 2.301150385E+07
+ 3.098736504E+07 7.919275505E+02 1.151330938E-04 2.324631954E+03 2.312740357E+07
+ 3.131549121E+07 7.549571176E+02 1.102761572E-04 2.289776706E+03 2.324478733E+07
+ 3.164361738E+07 7.195410299E+02 1.055963304E-04 2.254921459E+03 2.336377152E+07
+ 3.197174354E+07 6.856314489E+02 1.010885102E-04 2.220066211E+03 2.348436646E+07
+ 3.229986971E+07 6.531842035E+02 9.674767780E-05 2.185210963E+03 2.360662123E+07
+ 3.262799588E+07 6.221183993E+02 9.256889951E-05 2.150355715E+03 2.373058604E+07
+ 3.295612205E+07 5.924156868E+02 8.854732888E-05 2.115500467E+03 2.385627600E+07
+ 3.328424822E+07 5.637444909E+02 8.467820767E-05 2.080645219E+03 2.398382426E+07
+ 3.361237439E+07 5.368292241E+02 8.095686695E-05 2.045789971E+03 2.411325078E+07
+ 3.394050056E+07 5.108507517E+02 7.737872808E-05 2.010934724E+03 2.424461896E+07
+ 3.426862673E+07 4.859968572E+02 7.393930345E-05 1.976079476E+03 2.437799021E+07
+ 3.459675290E+07 4.623231554E+02 7.063419708E-05 1.941224228E+03 2.451343442E+07
+ 3.492487906E+07 4.396665080E+02 6.745910512E-05 1.906368980E+03 2.465102317E+07
+ 3.525300523E+07 4.180287798E+02 6.440981615E-05 1.871513732E+03 2.479078825E+07
+ 3.558113140E+07 3.973824660E+02 6.148221140E-05 1.836658484E+03 2.493294149E+07
+ 3.590925757E+07 3.776773753E+02 5.867226479E-05 1.801803237E+03 2.507738944E+07
+ 3.623738374E+07 3.588643031E+02 5.597604289E-05 1.766947989E+03 2.522440092E+07
+ 3.656550991E+07 3.409285049E+02 5.338970474E-05 1.732092741E+03 2.537388767E+07
+ 3.689363608E+07 3.238010134E+02 5.090950155E-05 1.697237493E+03 2.552614288E+07
+ 3.722176225E+07 3.075102691E+02 4.853177633E-05 1.662382245E+03 2.568106831E+07
+ 3.754988842E+07 2.919550742E+02 4.625296338E-05 1.627526997E+03 2.583897557E+07
+ 3.787801458E+07 2.771425988E+02 4.406958770E-05 1.592671749E+03 2.599983960E+07
+ 3.820614075E+07 2.630338603E+02 4.197826432E-05 1.557816502E+03 2.616383494E+07
+ 3.853426692E+07 2.495905175E+02 3.997569752E-05 1.522961254E+03 2.633109769E+07
+ 3.886239309E+07 2.367825988E+02 3.805868003E-05 1.488106006E+03 2.650177233E+07
+ 3.919051926E+07 2.246006471E+02 3.622409205E-05 1.453250758E+03 2.667606947E+07
+ 3.951864543E+07 2.130076531E+02 3.446890032E-05 1.418395510E+03 2.685398972E+07
+ 3.984677160E+07 2.019667171E+02 3.279015704E-05 1.383540262E+03 2.703593189E+07
+ 4.017489777E+07 1.914751927E+02 3.118499878E-05 1.348685014E+03 2.722191994E+07
+ 4.050302394E+07 1.815001457E+02 2.965064528E-05 1.313829767E+03 2.741221414E+07
+ 4.083115011E+07 1.720044781E+02 2.818439830E-05 1.278974519E+03 2.760709930E+07
+ 4.115927627E+07 1.630006612E+02 2.678364027E-05 1.244119271E+03 2.780671088E+07
+ 4.148740244E+07 1.544248802E+02 2.544583309E-05 1.209264023E+03 2.801133371E+07
+ 4.181552861E+07 1.462882108E+02 2.416851670E-05 1.174408775E+03 2.822131405E+07
+ 4.214365478E+07 1.385607679E+02 2.294930775E-05 1.139553527E+03 2.843693401E+07
+ 4.247178095E+07 1.312207656E+02 2.178589819E-05 1.104698280E+03 2.865844059E+07
+ 4.279990712E+07 1.242568175E+02 2.067605386E-05 1.069843032E+03 2.888633783E+07
+ 4.312803329E+07 1.176482542E+02 1.961761297E-05 1.034987784E+03 2.912095808E+07
+ 4.345615946E+07 1.113791042E+02 1.860848473E-05 1.000132536E+03 2.936274729E+07
+ 4.378428563E+07 1.054327176E+02 1.764664775E-05 9.652772881E+02 2.961211287E+07
+ 4.411241179E+07 9.979596557E+01 1.673014864E-05 9.304220403E+02 2.986974888E+07
+ 4.444053796E+07 9.445078699E+01 1.585710043E-05 8.955667924E+02 3.013618117E+07
+ 4.476866413E+07 8.938511767E+01 1.502568107E-05 8.607115446E+02 3.041209623E+07
+ 4.509679030E+07 8.458579378E+01 1.423413193E-05 8.258562967E+02 3.069821869E+07
+ 4.542491647E+07 8.003938997E+01 1.348075626E-05 7.910010489E+02 3.099541094E+07
+ 4.575304264E+07 7.573385264E+01 1.276391766E-05 7.561458010E+02 3.130472706E+07
+ 4.608116881E+07 7.164964316E+01 1.208203855E-05 7.212905532E+02 3.162707977E+07
+ 4.640929498E+07 6.779903408E+01 1.143359869E-05 6.864353053E+02 3.196380220E+07
+ 4.673742115E+07 6.414809063E+01 1.081713366E-05 6.515800575E+02 3.231645526E+07
+ 4.706554731E+07 6.069451802E+01 1.023123333E-05 6.167248096E+02 3.268657912E+07
+ 4.739367348E+07 5.742768300E+01 9.674540411E-06 5.818695618E+02 3.307620830E+07
+ 4.772179965E+07 5.434953659E+01 9.145748968E-06 5.470143139E+02 3.348763387E+07
+ 4.804992582E+07 5.142049480E+01 8.643602951E-06 5.121590661E+02 3.392363098E+07
+ 4.837805199E+07 4.867174965E+01 8.166894762E-06 4.773038182E+02 3.438768980E+07
+ 4.870617816E+07 4.606468497E+01 7.714463819E-06 4.424485704E+02 3.488380734E+07
+ 4.903430433E+07 4.360152529E+01 7.285195153E-06 4.075933225E+02 3.541703179E+07
+ 4.936243050E+07 4.128614737E+01 6.878018015E-06 3.727380747E+02 3.599382855E+07
+ 4.969055667E+07 3.908676547E+01 6.491904508E-06 3.378828268E+02 3.662289837E+07
+ 5.001868283E+07 3.702436889E+01 6.125868240E-06 3.030275790E+02 3.731458827E+07
+ 5.034680900E+07 3.506851260E+01 5.778963001E-06 2.681723311E+02 3.808450982E+07
+ 5.067493517E+07 3.322269210E+01 5.450281458E-06 2.333170833E+02 3.895414895E+07
+ 5.100306134E+07 3.149235071E+01 5.138953878E-06 1.984618354E+02 3.995457420E+07
+ 5.133118751E+07 2.985234033E+01 4.844146880E-06 1.636065876E+02 4.113637773E+07
+ 5.165931368E+07 2.830439233E+01 4.565062199E-06 1.287513397E+02 4.258615873E+07
+ 5.198743985E+07 2.685635680E+01 4.300935491E-06 9.389609186E+01 4.447540514E+07
+ 5.231556602E+07 2.548139089E+01 4.051035150E-06 5.904084401E+01 4.722989361E+07
+ 5.264369219E+07 2.418559616E+01 3.814661162E-06 2.418559616E+01 5.264369219E+07
+ 5.304968425E+07 2.263565252E+01 3.701222298E-06 2.394381004E+01 5.270540264E+07
+ 5.345567631E+07 2.117852388E+01 3.479033440E-06 2.370202392E+01 5.276769145E+07
+ 5.386166837E+07 1.980907596E+01 3.269109343E-06 2.346023780E+01 5.283058291E+07
+ 5.426766043E+07 1.852245163E+01 3.070843845E-06 2.321845168E+01 5.289407747E+07
+ 5.467365249E+07 1.731408195E+01 2.883656283E-06 2.297666556E+01 5.295818740E+07
+ 5.507964456E+07 1.617959074E+01 2.706990683E-06 2.273487944E+01 5.302292541E+07
+ 5.548563662E+07 1.511470096E+01 2.540314974E-06 2.249309332E+01 5.308831377E+07
+ 5.589162868E+07 1.411559052E+01 2.383120198E-06 2.225130720E+01 5.315435051E+07
+ 5.629762074E+07 1.317844003E+01 2.234919743E-06 2.200952108E+01 5.322106514E+07
+ 5.670361280E+07 1.229971029E+01 2.095248579E-06 2.176773496E+01 5.328846515E+07
+ 5.710960487E+07 1.147603829E+01 1.963662510E-06 2.152594884E+01 5.335656543E+07
+ 5.751559693E+07 1.070419758E+01 1.839737442E-06 2.128416271E+01 5.342538130E+07
+ 5.792158899E+07 9.981224696E+00 1.723068661E-06 2.104237659E+01 5.349492863E+07
+ 5.832758105E+07 9.304180369E+00 1.613270127E-06 2.080059047E+01 5.356521283E+07
+ 5.873357311E+07 8.670369126E+00 1.509973780E-06 2.055880435E+01 5.363627559E+07
+ 5.913956517E+07 8.077263507E+00 1.412828866E-06 2.031701823E+01 5.370811520E+07
+ 5.954555724E+07 7.522404879E+00 1.321501275E-06 2.007523211E+01 5.378075546E+07
+ 5.995154930E+07 7.003488288E+00 1.235672898E-06 1.983344599E+01 5.385421777E+07
+ 6.035754136E+07 6.518339068E+00 1.155040996E-06 1.959165987E+01 5.392851049E+07
+ 6.076353342E+07 6.064948619E+00 1.079317585E-06 1.934987375E+01 5.400367077E+07
+ 6.116952548E+07 5.641339522E+00 1.008228847E-06 1.910808763E+01 5.407971113E+07
+ 6.157551754E+07 5.245668283E+00 9.415145406E-07 1.886630151E+01 5.415665330E+07
+ 6.198150961E+07 4.876282107E+00 8.789274450E-07 1.862451539E+01 5.423451623E+07
+ 6.238750167E+07 4.531490931E+00 8.202328088E-07 1.838272927E+01 5.431332544E+07
+ 6.279349373E+07 4.209750071E+00 7.652078207E-07 1.814094315E+01 5.439311203E+07
+ 6.319948579E+07 3.909691312E+00 7.136410952E-07 1.789915703E+01 5.447389302E+07
+ 6.360547785E+07 3.629850186E+00 6.653321739E-07 1.765737091E+01 5.455568857E+07
+ 6.401146992E+07 3.369046155E+00 6.200910443E-07 1.741558479E+01 5.463854775E+07
+ 6.441746198E+07 3.125959690E+00 5.777376732E-07 1.717379867E+01 5.472248672E+07
+ 6.482345404E+07 2.899535876E+00 5.381015565E-07 1.693201255E+01 5.480753521E+07
+ 6.522944610E+07 2.688679373E+00 5.010212848E-07 1.669022643E+01 5.489372421E+07
+ 6.563543816E+07 2.492404682E+00 4.663441234E-07 1.644844031E+01 5.498108602E+07
+ 6.604143022E+07 2.309709297E+00 4.339256086E-07 1.620665419E+01 5.506965437E+07
+ 6.644742229E+07 2.139780624E+00 4.036291577E-07 1.596486807E+01 5.515945227E+07
+ 6.685341435E+07 1.981694737E+00 3.753256941E-07 1.572308195E+01 5.525053737E+07
+ 6.725940641E+07 1.834763072E+00 3.488932865E-07 1.548129582E+01 5.534293961E+07
+ 6.766539847E+07 1.698165044E+00 3.242168020E-07 1.523950970E+01 5.543669181E+07
+ 6.807139053E+07 1.571286017E+00 3.011875729E-07 1.499772358E+01 5.553185413E+07
+ 6.847738259E+07 1.453420115E+00 2.797030765E-07 1.475593746E+01 5.562846007E+07
+ 6.888337466E+07 1.343958131E+00 2.596666286E-07 1.451415134E+01 5.572654097E+07
+ 6.928936672E+07 1.242377464E+00 2.409870882E-07 1.427236522E+01 5.582617927E+07
+ 6.969535878E+07 1.148128685E+00 2.235785763E-07 1.403057910E+01 5.592739940E+07
+ 7.010135084E+07 1.060677869E+00 2.073602050E-07 1.378879298E+01 5.603025896E+07
+ 7.050734290E+07 9.796110310E-01 1.922558194E-07 1.354700686E+01 5.613481811E+07
+ 7.091333496E+07 9.044301143E-01 1.781937499E-07 1.330522074E+01 5.624114444E+07
+ 7.131932703E+07 8.347650328E-01 1.651065757E-07 1.306343462E+01 5.634929270E+07
+ 7.172531909E+07 7.702257432E-01 1.529308995E-07 1.282164850E+01 5.645931171E+07
+ 7.213131115E+07 7.104821119E-01 1.416071308E-07 1.257986238E+01 5.657131026E+07
+ 7.253730321E+07 6.551329489E-01 1.310792812E-07 1.233807626E+01 5.668532760E+07
+ 7.294329527E+07 6.039585604E-01 1.212947672E-07 1.209629014E+01 5.680145005E+07
+ 7.334928734E+07 5.565772280E-01 1.122042237E-07 1.185450402E+01 5.691977848E+07
+ 7.375527940E+07 5.127559285E-01 1.037613253E-07 1.161271790E+01 5.704038741E+07
+ 7.416127146E+07 4.722331650E-01 9.592261731E-08 1.137093178E+01 5.716335138E+07
+ 7.456726352E+07 4.347843848E-01 8.864735354E-08 1.112914566E+01 5.728881176E+07
+ 7.497325558E+07 4.001813766E-01 8.189734332E-08 1.088735954E+01 5.741683484E+07
+ 7.537924764E+07 3.682206706E-01 7.563680538E-08 1.064557342E+01 5.754754636E+07
+ 7.578523971E+07 3.386865056E-01 6.983222924E-08 1.040378730E+01 5.768108265E+07
+ 7.619123177E+07 3.114650446E-01 6.445224362E-08 1.016200118E+01 5.781754714E+07
+ 7.659722383E+07 2.863193499E-01 5.946749156E-08 9.920215055E+00 5.795710059E+07
+ 7.700321589E+07 2.631225175E-01 5.485051198E-08 9.678428935E+00 5.809987913E+07
+ 7.740920795E+07 2.417137856E-01 5.057562741E-08 9.436642815E+00 5.824601598E+07
+ 7.781520001E+07 2.219982482E-01 4.661883761E-08 9.194856694E+00 5.839570993E+07
+ 7.822119208E+07 2.038361014E-01 4.295771889E-08 8.953070574E+00 5.854916521E+07
+ 7.862718414E+07 1.871040900E-01 3.957132873E-08 8.711284453E+00 5.870653417E+07
+ 7.903317620E+07 1.716768456E-01 3.644011569E-08 8.469498333E+00 5.886808054E+07
+ 7.943916826E+07 1.574768754E-01 3.354583406E-08 8.227712212E+00 5.903398907E+07
+ 7.984516032E+07 1.444089112E-01 3.087146341E-08 7.985926092E+00 5.920456470E+07
+ 8.025115239E+07 1.323578674E-01 2.840113243E-08 7.744139972E+00 5.938003218E+07
+ 8.065714445E+07 1.213127611E-01 2.612004711E-08 7.502353851E+00 5.956075049E+07
+ 8.106313651E+07 1.111530303E-01 2.401442300E-08 7.260567731E+00 5.974699678E+07
+ 8.146912857E+07 1.018040506E-01 2.207142128E-08 7.018781610E+00 5.993917853E+07
+ 8.187512063E+07 9.319960697E-02 2.027908849E-08 6.776995490E+00 6.013769423E+07
+ 8.228111269E+07 8.531987584E-02 1.862629980E-08 6.535209370E+00 6.034295181E+07
+ 8.268710476E+07 7.807681010E-02 1.710270556E-08 6.293423249E+00 6.055551886E+07
+ 8.309309682E+07 7.138336709E-02 1.569868095E-08 6.051637129E+00 6.077588076E+07
+ 8.349908888E+07 6.530836159E-02 1.440527868E-08 5.809851008E+00 6.100467537E+07
+ 8.390508094E+07 5.969924787E-02 1.321418451E-08 5.568064888E+00 6.124264744E+07
+ 8.431107300E+07 5.455582551E-02 1.211767532E-08 5.326278767E+00 6.149054072E+07
+ 8.471706506E+07 4.984785037E-02 1.110857994E-08 5.084492647E+00 6.174925559E+07
+ 8.512305713E+07 4.552999529E-02 1.018024214E-08 4.842706527E+00 6.201984002E+07
+ 8.552904919E+07 4.155821308E-02 9.326486071E-09 4.600920406E+00 6.230344850E+07
+ 8.593504125E+07 3.794352481E-02 8.541583724E-09 4.359134286E+00 6.260149485E+07
+ 8.634103331E+07 3.463068997E-02 7.820224499E-09 4.117348165E+00 6.291553627E+07
+ 8.674702537E+07 3.158254146E-02 7.157486635E-09 3.875562045E+00 6.324750051E+07
+ 8.715301743E+07 2.879161237E-02 6.548810470E-09 3.633775925E+00 6.359957931E+07
+ 8.755900950E+07 2.624694956E-02 5.989973386E-09 3.391989804E+00 6.397458050E+07
+ 8.796500156E+07 2.393960251E-02 5.477066370E-09 3.150203684E+00 6.437564190E+07
+ 8.837099362E+07 2.179617390E-02 5.006472087E-09 2.908417563E+00 6.480700217E+07
+ 8.877698568E+07 1.987624575E-02 4.574844365E-09 2.666631443E+00 6.527365448E+07
+ 8.918297774E+07 1.806982847E-02 4.179089031E-09 2.424845322E+00 6.578219252E+07
+ 8.958896981E+07 1.647454079E-02 3.816346002E-09 2.183059202E+00 6.634125745E+07
+ 8.999496187E+07 1.500127329E-02 3.483972563E-09 1.941273082E+00 6.696223379E+07
+ 9.040095393E+07 1.363854676E-02 3.179527754E-09 1.699486961E+00 6.766132089E+07
+ 9.080694599E+07 1.238932110E-02 2.900757810E-09 1.457700841E+00 6.846209152E+07
+ 9.121293805E+07 1.128264367E-02 2.645582576E-09 1.215914720E+00 6.940029702E+07
+ 9.161893011E+07 1.025012560E-02 2.412082849E-09 9.741286000E-01 7.053595832E+07
+ 9.202492218E+07 9.303173360E-03 2.198488574E-09 7.323424796E-01 7.197912687E+07
+ 9.243091424E+07 8.465908542E-03 2.003167865E-09 4.905563592E-01 7.397373233E+07
+ 9.283690630E+07 7.695217058E-03 1.824616771E-09 2.487702388E-01 7.727194417E+07
+ 9.324289836E+07 6.984118339E-03 1.661449755E-09 6.984118339E-03 9.324289800E+07
+ 9.331273954E+07 6.914277156E-03 1.000000000E-09 6.914277156E-03 9.331273950E+07
+ 9.338258073E+07 6.844435972E-03 1.000000000E-09 6.844435972E-03 9.338258081E+07
+ 9.345242191E+07 6.774594789E-03 1.000000000E-09 6.774594789E-03 9.345242187E+07
+ 9.352226309E+07 6.704753606E-03 1.000000000E-09 6.704753606E-03 9.352226312E+07
+ 9.359210428E+07 6.634912422E-03 1.000000000E-09 6.634912422E-03 9.359210400E+07
+ 9.366194546E+07 6.565071239E-03 1.000000000E-09 6.565071239E-03 9.366194544E+07
+ 9.373178664E+07 6.495230056E-03 1.000000000E-09 6.495230056E-03 9.373178800E+07
+ 9.380162783E+07 6.425388872E-03 1.000000000E-09 6.425388872E-03 9.380162900E+07
+ 9.387146901E+07 6.355547689E-03 1.000000000E-09 6.355547689E-03 9.387146901E+07
+ 9.394131019E+07 6.285706505E-03 1.000000000E-09 6.285706505E-03 9.394131012E+07
+ 9.401115138E+07 6.215865322E-03 1.000000000E-09 6.215865322E-03 9.401122468E+07
+ 9.408099256E+07 6.146024139E-03 1.000000000E-09 6.146024139E-03 9.408100828E+07
+ 9.415083375E+07 6.076182955E-03 1.000000000E-09 6.076182955E-03 9.415091200E+07
+ 9.422067493E+07 6.006341772E-03 1.000000000E-09 6.006341772E-03 9.422067500E+07
+ 9.429051611E+07 5.936500588E-03 1.000000000E-09 5.936500588E-03 9.429060206E+07
+ 9.436035730E+07 5.866659405E-03 1.000000000E-09 5.866659405E-03 9.436035700E+07
+ 9.443019848E+07 5.796818222E-03 1.000000000E-09 5.796818222E-03 9.443019848E+07
+ 9.450003966E+07 5.726977038E-03 1.000000000E-09 5.726977038E-03 9.450006400E+07
+ 9.456988085E+07 5.657135855E-03 1.000000000E-09 5.657135855E-03 9.456994699E+07
+ 9.463972203E+07 5.587294671E-03 1.000000000E-09 5.587294671E-03 9.463972200E+07
+ 9.470956321E+07 5.517453488E-03 1.000000000E-09 5.517453488E-03 9.470956319E+07
+ 9.477940440E+07 5.447612305E-03 1.000000000E-09 5.447612305E-03 9.477940400E+07
+ 9.484924558E+07 5.377771121E-03 1.000000000E-09 5.377771121E-03 9.484924500E+07
+ 9.491908676E+07 5.307929938E-03 1.000000000E-09 5.307929938E-03 9.491908676E+07
+ 9.498892795E+07 5.238088754E-03 1.000000000E-09 5.238088754E-03 9.498892800E+07
+ 9.505876913E+07 5.168247571E-03 1.000000000E-09 5.168247571E-03 9.505876919E+07
+ 9.512861031E+07 5.098406388E-03 1.000000000E-09 5.098406388E-03 9.512861000E+07
+ 9.519845150E+07 5.028565204E-03 1.000000000E-09 5.028565204E-03 9.519845200E+07
+ 9.526829268E+07 4.958724021E-03 1.000000000E-09 4.958724021E-03 9.526829300E+07
+ 9.533813386E+07 4.888882837E-03 1.000000000E-09 4.888882837E-03 9.533813600E+07
+ 9.540797505E+07 4.819041654E-03 1.000000000E-09 4.819041654E-03 9.540797500E+07
+ 9.547781623E+07 4.749200471E-03 1.000000000E-09 4.749200471E-03 9.547781623E+07
+ 9.554765741E+07 4.679359287E-03 1.000000000E-09 4.679359287E-03 9.554765600E+07
+ 9.561749860E+07 4.609518104E-03 1.000000000E-09 4.609518104E-03 9.561749869E+07
+ 9.568733978E+07 4.539676921E-03 1.000000000E-09 4.539676921E-03 9.568733978E+07
+ 9.575718096E+07 4.469835737E-03 1.000000000E-09 4.469835737E-03 9.575718200E+07
+ 9.582702215E+07 4.399994554E-03 1.000000000E-09 4.399994554E-03 9.582702215E+07
+ 9.589686333E+07 4.330153370E-03 1.000000000E-09 4.330153370E-03 9.589686331E+07
+ 9.596670451E+07 4.260312187E-03 1.000000000E-09 4.260312187E-03 9.596675663E+07
+ 9.603654570E+07 4.190471004E-03 1.000000000E-09 4.190471004E-03 9.603654400E+07
+ 9.610638688E+07 4.120629820E-03 1.000000000E-09 4.120629820E-03 9.610638675E+07
+ 9.617622806E+07 4.050788637E-03 1.000000000E-09 4.050788637E-03 9.617622400E+07
+ 9.624606925E+07 3.980947453E-03 1.000000000E-09 3.980947453E-03 9.624607000E+07
+ 9.631591043E+07 3.911106270E-03 1.000000000E-09 3.911106270E-03 9.631591043E+07
+ 9.638575161E+07 3.841265087E-03 1.000000000E-09 3.841265087E-03 9.638572800E+07
+ 9.645559280E+07 3.771423903E-03 1.000000000E-09 3.771423903E-03 9.645559256E+07
+ 9.652543398E+07 3.701582720E-03 1.000000000E-09 3.701582720E-03 9.652543400E+07
+ 9.659527516E+07 3.631741536E-03 1.000000000E-09 3.631741536E-03 9.659526400E+07
+ 9.666511635E+07 3.561900353E-03 1.000000000E-09 3.561900353E-03 9.666512000E+07
+ 9.673495753E+07 3.492059170E-03 1.000000000E-09 3.492059170E-03 9.673495753E+07
+ 9.680479871E+07 3.422217986E-03 1.000000000E-09 3.422217986E-03 9.680486400E+07
+ 9.687463990E+07 3.352376803E-03 1.000000000E-09 3.352376803E-03 9.687463975E+07
+ 9.694448108E+07 3.282535619E-03 1.000000000E-09 3.282535619E-03 9.694448000E+07
+ 9.701432226E+07 3.212694436E-03 1.000000000E-09 3.212694436E-03 9.701432231E+07
+ 9.708416345E+07 3.142853253E-03 1.000000000E-09 3.142853253E-03 9.708416372E+07
+ 9.715400463E+07 3.073012069E-03 1.000000000E-09 3.073012069E-03 9.715400000E+07
+ 9.722384581E+07 3.003170886E-03 1.000000000E-09 3.003170886E-03 9.722384587E+07
+ 9.729368700E+07 2.933329702E-03 1.000000000E-09 2.933329702E-03 9.729368600E+07
+ 9.736352818E+07 2.863488519E-03 1.000000000E-09 2.863488519E-03 9.736352900E+07
+ 9.743336936E+07 2.793647336E-03 1.000000000E-09 2.793647336E-03 9.743336000E+07
+ 9.750321055E+07 2.723806152E-03 1.000000000E-09 2.723806152E-03 9.750323200E+07
+ 9.757305173E+07 2.653964969E-03 1.000000000E-09 2.653964969E-03 9.757305200E+07
+ 9.764289291E+07 2.584123786E-03 1.000000000E-09 2.584123786E-03 9.764289300E+07
+ 9.771273410E+07 2.514282602E-03 1.000000000E-09 2.514282602E-03 9.771273600E+07
+ 9.778257528E+07 2.444441419E-03 1.000000000E-09 2.444441419E-03 9.778257600E+07
+ 9.785241646E+07 2.374600235E-03 1.000000000E-09 2.374600235E-03 9.785241650E+07
+ 9.792225765E+07 2.304759052E-03 1.000000000E-09 2.304759052E-03 9.792230400E+07
+ 9.799209883E+07 2.234917869E-03 1.000000000E-09 2.234917869E-03 9.799209800E+07
+ 9.806194002E+07 2.165076685E-03 1.000000000E-09 2.165076685E-03 9.806194000E+07
+ 9.813178120E+07 2.095235502E-03 1.000000000E-09 2.095235502E-03 9.813178200E+07
+ 9.820162238E+07 2.025394318E-03 1.000000000E-09 2.025394318E-03 9.820160000E+07
+ 9.827146357E+07 1.955553135E-03 1.000000000E-09 1.955553135E-03 9.827148800E+07
+ 9.834130475E+07 1.885711952E-03 1.000000000E-09 1.885711952E-03 9.834130481E+07
+ 9.841114593E+07 1.815870768E-03 1.000000000E-09 1.815870768E-03 9.841114500E+07
+ 9.848098712E+07 1.746029585E-03 1.000000000E-09 1.746029585E-03 9.848098600E+07
+ 9.855082830E+07 1.676188401E-03 1.000000000E-09 1.676188401E-03 9.855083200E+07
+ 9.862066948E+07 1.606347218E-03 1.000000000E-09 1.606347218E-03 9.862067200E+07
+ 9.869051067E+07 1.536506035E-03 1.000000000E-09 1.536506035E-03 9.869051000E+07
+ 9.876035185E+07 1.466664851E-03 1.000000000E-09 1.466664851E-03 9.876035200E+07
+ 9.883019303E+07 1.396823668E-03 1.000000000E-09 1.396823668E-03 9.883019200E+07
+ 9.890003422E+07 1.326982484E-03 1.000000000E-09 1.326982484E-03 9.890003200E+07
+ 9.896987540E+07 1.257141301E-03 1.000000000E-09 1.257141301E-03 9.896987500E+07
+ 9.903971658E+07 1.187300118E-03 1.000000000E-09 1.187300118E-03 9.903971650E+07
+ 9.910955777E+07 1.117458934E-03 1.000000000E-09 1.117458934E-03 9.910955600E+07
+ 9.917939895E+07 1.047617751E-03 1.000000000E-09 1.047617751E-03 9.917939894E+07
+ 9.924924013E+07 9.777765675E-04 1.000000000E-09 9.777765675E-04 9.924924013E+07
+ 9.931908132E+07 9.079353841E-04 1.000000000E-09 9.079353841E-04 9.931908100E+07
+ 9.938892250E+07 8.380942007E-04 1.000000000E-09 8.380942007E-04 9.938892800E+07
+ 9.945876368E+07 7.682530173E-04 1.000000000E-09 7.682530173E-04 9.945881600E+07
+ 9.952860487E+07 6.984118339E-04 1.000000000E-09 6.984118339E-04 9.952870400E+07
+ 9.959844605E+07 6.285706505E-04 1.000000000E-09 6.285706505E-04 9.959844605E+07
+ 9.966828723E+07 5.587294671E-04 1.000000000E-09 5.587294671E-04 9.966825600E+07
+ 9.973812842E+07 4.888882837E-04 1.000000000E-09 4.888882837E-04 9.973812900E+07
+ 9.980796960E+07 4.190471004E-04 1.000000000E-09 4.190471004E-04 9.980795200E+07
+ 9.987781078E+07 3.492059170E-04 1.000000000E-09 3.492059170E-04 9.987781300E+07
+ 9.994765197E+07 2.793647336E-04 1.000000000E-09 2.793647336E-04 9.994765100E+07
+ 1.000174932E+08 2.095235502E-04 1.000000000E-09 2.095235502E-04 1.000174720E+08
+ 1.000873343E+08 1.396823668E-04 1.000000000E-09 1.396823668E-04 1.000873280E+08
+ 1.001571755E+08 6.984118339E-05 1.000000000E-09 6.984118339E-05 1.001571840E+08
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM89
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM89	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM89	(revision 4308)
@@ -0,0 +1,501 @@
+DENSITY AND THICKNESS DATA OF THE ATMOSPHERE AT AN ZENITH ANGLE OF 89.0 DEGREES
+ 0.000000000E+00 2.591861042E+04 1.229805824E-03 2.591861042E+04 0.000000000E+00
+ 1.404929790E+05 2.574645821E+04 1.226757405E-03 2.577262533E+04 1.187275815E+05
+ 2.809859579E+05 2.557376821E+04 1.223678416E-03 2.562664024E+04 2.377044762E+05
+ 4.214789369E+05 2.540188315E+04 1.220569124E-03 2.548065515E+04 3.575586417E+05
+ 5.619719158E+05 2.523072451E+04 1.217429800E-03 2.533467006E+04 4.769432246E+05
+ 7.024648948E+05 2.506012139E+04 1.214260719E-03 2.518868497E+04 5.966820582E+05
+ 8.429578737E+05 2.489015310E+04 1.211062154E-03 2.504269987E+04 7.166854705E+05
+ 9.834508527E+05 2.471992684E+04 1.207834383E-03 2.489671478E+04 8.375909077E+05
+ 1.123943832E+06 2.455030467E+04 1.204577685E-03 2.475072969E+04 9.581910993E+05
+ 1.264436811E+06 2.438151002E+04 1.201292341E-03 2.460474460E+04 1.078697416E+06
+ 1.404929790E+06 2.421258683E+04 1.197978635E-03 2.445875951E+04 1.200429777E+06
+ 1.545422768E+06 2.404472107E+04 1.194636851E-03 2.431277442E+04 1.321800209E+06
+ 1.685915747E+06 2.387732341E+04 1.191267276E-03 2.416678933E+04 1.443311949E+06
+ 1.826408726E+06 2.370980762E+04 1.187870198E-03 2.402080424E+04 1.565263808E+06
+ 1.966901705E+06 2.354338068E+04 1.184445908E-03 2.387481915E+04 1.687998183E+06
+ 2.107394684E+06 2.337741488E+04 1.180994697E-03 2.372883406E+04 1.810541768E+06
+ 2.247887663E+06 2.321134101E+04 1.177516860E-03 2.358284897E+04 1.933411055E+06
+ 2.388380642E+06 2.304634991E+04 1.174012692E-03 2.343686388E+04 2.057215736E+06
+ 2.528873621E+06 2.288184915E+04 1.170482489E-03 2.329087879E+04 2.180528220E+06
+ 2.669366600E+06 2.271724194E+04 1.166926550E-03 2.314489370E+04 2.304319782E+06
+ 2.809859579E+06 2.255477676E+04 1.163345175E-03 2.299890861E+04 2.428922503E+06
+ 2.950352558E+06 2.239083941E+04 1.159738665E-03 2.285292352E+04 2.553356102E+06
+ 3.090845537E+06 2.222774843E+04 1.156107323E-03 2.270693843E+04 2.678782198E+06
+ 3.231338516E+06 2.206576414E+04 1.152451453E-03 2.256095334E+04 2.804605644E+06
+ 3.371831495E+06 2.190429094E+04 1.148771361E-03 2.241496825E+04 2.929247014E+06
+ 3.512324474E+06 2.174274128E+04 1.145067353E-03 2.226898316E+04 3.055539602E+06
+ 3.652817453E+06 2.158232452E+04 1.141339737E-03 2.212299807E+04 3.181679679E+06
+ 3.793310432E+06 2.142241040E+04 1.137588823E-03 2.197701298E+04 3.308174502E+06
+ 3.933803411E+06 2.126243213E+04 1.133814921E-03 2.183102788E+04 3.435695160E+06
+ 4.074296390E+06 2.110357547E+04 1.130018342E-03 2.168504279E+04 3.562778017E+06
+ 4.214789369E+06 2.094524917E+04 1.126199400E-03 2.153905770E+04 3.690881355E+06
+ 4.355282348E+06 2.078764721E+04 1.122358407E-03 2.139307261E+04 3.818851325E+06
+ 4.495775326E+06 2.063020750E+04 1.118495678E-03 2.124708752E+04 3.947880936E+06
+ 4.636268305E+06 2.047272162E+04 1.114611530E-03 2.110110243E+04 4.076463210E+06
+ 4.776761284E+06 2.031655445E+04 1.110706277E-03 2.095511734E+04 4.206116955E+06
+ 4.917254263E+06 2.016112815E+04 1.106780238E-03 2.080913225E+04 4.335650427E+06
+ 5.057747242E+06 2.000588025E+04 1.102833731E-03 2.066314716E+04 4.465945865E+06
+ 5.198240221E+06 1.985077619E+04 1.098867075E-03 2.051716207E+04 4.596988348E+06
+ 5.338733200E+06 1.969684301E+04 1.094880589E-03 2.037117698E+04 4.727591343E+06
+ 5.479226179E+06 1.954344777E+04 1.090874594E-03 2.022519189E+04 4.859316928E+06
+ 5.619719158E+06 1.939080285E+04 1.086849410E-03 2.007920680E+04 4.990940519E+06
+ 5.760212137E+06 1.923775879E+04 1.082805360E-03 1.993322171E+04 5.123696867E+06
+ 5.900705116E+06 1.908605555E+04 1.078742765E-03 1.978723662E+04 5.256058603E+06
+ 6.041198095E+06 1.893510772E+04 1.074661949E-03 1.964125153E+04 5.389542937E+06
+ 6.181691074E+06 1.878387339E+04 1.070563234E-03 1.949526644E+04 5.523660959E+06
+ 6.322184053E+06 1.863388634E+04 1.066446944E-03 1.934928135E+04 5.657370654E+06
+ 6.462677032E+06 1.848448298E+04 1.062313403E-03 1.920329626E+04 5.792253146E+06
+ 6.603170011E+06 1.833565468E+04 1.058162935E-03 1.905731117E+04 5.927792070E+06
+ 6.743662990E+06 1.818759865E+04 1.053995865E-03 1.891132608E+04 6.063017643E+06
+ 6.884155969E+06 1.803918108E+04 1.049812519E-03 1.876534099E+04 6.199363076E+06
+ 7.024648948E+06 1.789210378E+04 1.045613220E-03 1.861935590E+04 6.335666545E+06
+ 7.165141927E+06 1.774561796E+04 1.041398296E-03 1.847337080E+04 6.473025444E+06
+ 7.305634906E+06 1.759972868E+04 1.037168070E-03 1.832738571E+04 6.610899115E+06
+ 7.446127884E+06 1.745383750E+04 1.032922870E-03 1.818140062E+04 6.749477016E+06
+ 7.586620863E+06 1.730912868E+04 1.028663019E-03 1.803541553E+04 6.887704009E+06
+ 7.727113842E+06 1.716509393E+04 1.024388845E-03 1.788943044E+04 7.027177504E+06
+ 7.867606821E+06 1.702139614E+04 1.020100673E-03 1.774344535E+04 7.167204809E+06
+ 8.008099800E+06 1.687848690E+04 1.015798828E-03 1.759746026E+04 7.307797176E+06
+ 8.148592779E+06 1.673618013E+04 1.011483637E-03 1.745147517E+04 7.449133058E+06
+ 8.289085758E+06 1.659467230E+04 1.007155424E-03 1.730549008E+04 7.590118740E+06
+ 8.429578737E+06 1.645280051E+04 1.002814515E-03 1.715950499E+04 7.732507964E+06
+ 8.570071716E+06 1.631231135E+04 9.984612344E-04 1.701351990E+04 7.875240918E+06
+ 8.710564695E+06 1.617245764E+04 9.940959075E-04 1.686753481E+04 8.018759037E+06
+ 8.851057674E+06 1.603319324E+04 9.897188585E-04 1.672154972E+04 8.162891473E+06
+ 8.991550653E+06 1.589472754E+04 9.853304118E-04 1.657556463E+04 8.307655387E+06
+ 9.132043632E+06 1.575651207E+04 9.809308909E-04 1.642957954E+04 8.453050070E+06
+ 9.272536611E+06 1.561850315E+04 9.765206192E-04 1.628359445E+04 8.599272573E+06
+ 9.413029590E+06 1.548179725E+04 9.720999197E-04 1.613760936E+04 8.745809920E+06
+ 9.553522569E+06 1.534561361E+04 9.676691147E-04 1.599162427E+04 8.893359649E+06
+ 9.694015548E+06 1.521005274E+04 9.632285261E-04 1.584563918E+04 9.041221296E+06
+ 9.834508527E+06 1.507511891E+04 9.587784752E-04 1.569965409E+04 9.190139016E+06
+ 9.975001506E+06 1.494099010E+04 9.543192827E-04 1.555366900E+04 9.339384895E+06
+ 1.011549448E+07 1.480652413E+04 9.498512687E-04 1.540768391E+04 9.490590968E+06
+ 1.025598746E+07 1.467348031E+04 9.453747526E-04 1.526169881E+04 9.640502649E+06
+ 1.039648044E+07 1.454104164E+04 9.408900530E-04 1.511571372E+04 9.792299531E+06
+ 1.053697342E+07 1.440923013E+04 9.363974879E-04 1.496972863E+04 9.944473541E+06
+ 1.067746640E+07 1.427805429E+04 9.318973744E-04 1.482374354E+04 1.009759596E+07
+ 1.081795938E+07 1.414750420E+04 9.273900289E-04 1.467775845E+04 1.025151894E+07
+ 1.095845236E+07 1.401776955E+04 9.228757668E-04 1.453177336E+04 1.040620907E+07
+ 1.109894534E+07 1.388811033E+04 9.183549027E-04 1.438578827E+04 1.056251757E+07
+ 1.123943832E+07 1.375945683E+04 9.138277501E-04 1.423980318E+04 1.071863696E+07
+ 1.137993130E+07 1.363162085E+04 9.092946219E-04 1.409381809E+04 1.087578234E+07
+ 1.152042427E+07 1.350405702E+04 9.047558297E-04 1.394783300E+04 1.103420736E+07
+ 1.166091725E+07 1.337749443E+04 9.002116842E-04 1.380184791E+04 1.119306386E+07
+ 1.180141023E+07 1.325122022E+04 8.956624949E-04 1.365586282E+04 1.135280010E+07
+ 1.194190321E+07 1.312593164E+04 8.911085703E-04 1.350987773E+04 1.151407883E+07
+ 1.208239619E+07 1.300031694E+04 8.865502179E-04 1.336389264E+04 1.167562222E+07
+ 1.222288917E+07 1.287612074E+04 8.819877438E-04 1.321790755E+04 1.183812281E+07
+ 1.236338215E+07 1.275255921E+04 8.774214531E-04 1.307192246E+04 1.200219357E+07
+ 1.250387513E+07 1.262963566E+04 8.728516494E-04 1.292593737E+04 1.216658429E+07
+ 1.264436811E+07 1.250745048E+04 8.682786355E-04 1.277995228E+04 1.233282016E+07
+ 1.278486108E+07 1.238580834E+04 8.637027125E-04 1.263396719E+04 1.249898169E+07
+ 1.292535406E+07 1.226481170E+04 8.591241803E-04 1.248798210E+04 1.266715530E+07
+ 1.306584704E+07 1.214444993E+04 8.545433375E-04 1.234199701E+04 1.283558698E+07
+ 1.320634002E+07 1.202473080E+04 8.499604813E-04 1.219601192E+04 1.300597916E+07
+ 1.334683300E+07 1.190567610E+04 8.453759076E-04 1.205002683E+04 1.317634462E+07
+ 1.348732598E+07 1.178724008E+04 8.407899106E-04 1.190404173E+04 1.334873806E+07
+ 1.362781896E+07 1.166944442E+04 8.362027833E-04 1.175805664E+04 1.352224212E+07
+ 1.376831194E+07 1.155248122E+04 8.316148169E-04 1.161207155E+04 1.369620852E+07
+ 1.390880492E+07 1.143578627E+04 8.270263015E-04 1.146608646E+04 1.387204027E+07
+ 1.404929790E+07 1.132010137E+04 8.224375253E-04 1.132010137E+04 1.404929790E+07
+ 1.417161059E+07 1.121901363E+04 8.222122041E-04 1.124519076E+04 1.413919718E+07
+ 1.429392329E+07 1.111848690E+04 8.176702494E-04 1.117028015E+04 1.423131037E+07
+ 1.441623599E+07 1.101782868E+04 8.131316864E-04 1.109536954E+04 1.432194034E+07
+ 1.453854869E+07 1.091952415E+04 8.085967381E-04 1.102045893E+04 1.441302928E+07
+ 1.466086139E+07 1.082143247E+04 8.040656262E-04 1.094554832E+04 1.450671030E+07
+ 1.478317409E+07 1.072237173E+04 7.995385710E-04 1.087063771E+04 1.459941944E+07
+ 1.490548679E+07 1.062566461E+04 7.950157908E-04 1.079572710E+04 1.469251920E+07
+ 1.502779949E+07 1.052845322E+04 7.904975028E-04 1.072081649E+04 1.478510116E+07
+ 1.515011218E+07 1.043257611E+04 7.859839223E-04 1.064590588E+04 1.487905275E+07
+ 1.527242488E+07 1.033570759E+04 7.814752631E-04 1.057099527E+04 1.497461728E+07
+ 1.539473758E+07 1.024090007E+04 7.769717373E-04 1.049608465E+04 1.506837268E+07
+ 1.551705028E+07 1.014667411E+04 7.724735555E-04 1.042117404E+04 1.516446439E+07
+ 1.563936298E+07 1.005145027E+04 7.679809265E-04 1.034626343E+04 1.525905427E+07
+ 1.576167568E+07 9.958301713E+03 7.634940575E-04 1.027135282E+04 1.535600025E+07
+ 1.588398838E+07 9.864941469E+03 7.590131541E-04 1.019644221E+04 1.545144762E+07
+ 1.600630108E+07 9.772135386E+03 7.545384201E-04 1.012153160E+04 1.554925995E+07
+ 1.612861377E+07 9.680615204E+03 7.500700578E-04 1.004662099E+04 1.564657203E+07
+ 1.625092647E+07 9.588891725E+03 7.456082674E-04 9.971710379E+03 1.574431211E+07
+ 1.637323917E+07 9.497720290E+03 7.411532477E-04 9.896799768E+03 1.584250796E+07
+ 1.649555187E+07 9.407892663E+03 7.367051958E-04 9.821889157E+03 1.594116363E+07
+ 1.661786457E+07 9.317796894E+03 7.322643069E-04 9.746978547E+03 1.604029118E+07
+ 1.674017727E+07 9.228250847E+03 7.278307744E-04 9.672067936E+03 1.613988705E+07
+ 1.686248997E+07 9.139989368E+03 7.234047901E-04 9.597157325E+03 1.623996358E+07
+ 1.698480267E+07 9.051515790E+03 7.189865440E-04 9.522246714E+03 1.634052538E+07
+ 1.710711537E+07 8.963589394E+03 7.145762243E-04 9.447336104E+03 1.644166317E+07
+ 1.722942806E+07 8.876953782E+03 7.101740172E-04 9.372425493E+03 1.654321720E+07
+ 1.735174076E+07 8.790093763E+03 7.057801075E-04 9.297514882E+03 1.664630737E+07
+ 1.747405346E+07 8.703778195E+03 7.013946779E-04 9.222604271E+03 1.674785377E+07
+ 1.759636616E+07 8.618735252E+03 6.970179093E-04 9.147693660E+03 1.685196673E+07
+ 1.771867886E+07 8.534254862E+03 6.926499809E-04 9.072783050E+03 1.695558312E+07
+ 1.784099156E+07 8.448767128E+03 6.882910701E-04 8.997872439E+03 1.705973421E+07
+ 1.796330426E+07 8.365577521E+03 6.839413522E-04 8.922961828E+03 1.716445023E+07
+ 1.808561696E+07 8.281909102E+03 6.796010009E-04 8.848051217E+03 1.726969630E+07
+ 1.820792965E+07 8.198779088E+03 6.752701879E-04 8.773140607E+03 1.737656674E+07
+ 1.833024235E+07 8.116928755E+03 6.709490832E-04 8.698229996E+03 1.748293295E+07
+ 1.845255505E+07 8.034846128E+03 6.666378548E-04 8.623319385E+03 1.758986971E+07
+ 1.857486775E+07 7.953298618E+03 6.623366689E-04 8.548408774E+03 1.769739241E+07
+ 1.869718045E+07 7.873031252E+03 6.580456898E-04 8.473498164E+03 1.780550799E+07
+ 1.881949315E+07 7.792523527E+03 6.537650798E-04 8.398587553E+03 1.791458927E+07
+ 1.894180585E+07 7.712547449E+03 6.494949995E-04 8.323676942E+03 1.802391469E+07
+ 1.906411855E+07 7.633827551E+03 6.452356075E-04 8.248766331E+03 1.813495948E+07
+ 1.918643125E+07 7.555653536E+03 6.409870606E-04 8.173855720E+03 1.824552494E+07
+ 1.930874394E+07 7.477274524E+03 6.367495135E-04 8.098945110E+03 1.835672613E+07
+ 1.943105664E+07 7.399354793E+03 6.325231192E-04 8.024034499E+03 1.846972523E+07
+ 1.955336934E+07 7.322726179E+03 6.283080287E-04 7.949123888E+03 1.858109617E+07
+ 1.967568204E+07 7.245831599E+03 6.241043911E-04 7.874213277E+03 1.869540758E+07
+ 1.979799474E+07 7.169456739E+03 6.199123536E-04 7.799302667E+03 1.880925778E+07
+ 1.992030744E+07 7.094356506E+03 6.157320615E-04 7.724392056E+03 1.892380256E+07
+ 2.004262014E+07 7.019010465E+03 6.115636580E-04 7.649481445E+03 1.904019533E+07
+ 2.016493284E+07 6.944167766E+03 6.074072846E-04 7.574570834E+03 1.915614005E+07
+ 2.028724553E+07 6.870582968E+03 6.032630809E-04 7.499660223E+03 1.927281505E+07
+ 2.040955823E+07 6.796748503E+03 5.991311843E-04 7.424749613E+03 1.939149787E+07
+ 2.053187093E+07 6.723425740E+03 5.950117305E-04 7.349839002E+03 1.950964095E+07
+ 2.065418363E+07 6.651341509E+03 5.909048532E-04 7.274928391E+03 1.962855294E+07
+ 2.077649633E+07 6.579062629E+03 5.868106843E-04 7.200017780E+03 1.974944137E+07
+ 2.089880903E+07 6.508259929E+03 5.827293535E-04 7.125107170E+03 1.986990064E+07
+ 2.102112173E+07 6.436910467E+03 5.786609887E-04 7.050196559E+03 1.999117106E+07
+ 2.114343443E+07 6.366068485E+03 5.746057160E-04 6.975285948E+03 2.011448659E+07
+ 2.126574712E+07 6.296488917E+03 5.705636594E-04 6.900375337E+03 2.023738736E+07
+ 2.138805982E+07 6.226627755E+03 5.665349409E-04 6.825464727E+03 2.036114536E+07
+ 2.151037252E+07 6.157269592E+03 5.625196809E-04 6.750554116E+03 2.048697137E+07
+ 2.163268522E+07 6.089162594E+03 5.585179976E-04 6.675643505E+03 2.061371646E+07
+ 2.175499792E+07 6.020775201E+03 5.545300072E-04 6.600732894E+03 2.073884016E+07
+ 2.187731062E+07 5.953636740E+03 5.505558242E-04 6.525822283E+03 2.086783332E+07
+ 2.199962332E+07 5.886212551E+03 5.465955611E-04 6.450911673E+03 2.099602241E+07
+ 2.212193602E+07 5.820043669E+03 5.426493284E-04 6.376001062E+03 2.112641413E+07
+ 2.224424872E+07 5.753641399E+03 5.387172348E-04 6.301090451E+03 2.125781172E+07
+ 2.236656141E+07 5.687664595E+03 5.347993869E-04 6.226179840E+03 2.138883840E+07
+ 2.248887411E+07 5.622922362E+03 5.308958896E-04 6.151269230E+03 2.152088626E+07
+ 2.261118681E+07 5.557896528E+03 5.270068458E-04 6.076358619E+03 2.165526697E+07
+ 2.273349951E+07 5.493354742E+03 5.231323563E-04 6.001448008E+03 2.179069384E+07
+ 2.285581221E+07 5.430019271E+03 5.192725203E-04 5.926537397E+03 2.192581823E+07
+ 2.297812491E+07 5.367193518E+03 5.154274350E-04 5.851626786E+03 2.206337788E+07
+ 2.310043761E+07 5.304037677E+03 5.115971955E-04 5.776716176E+03 2.220067370E+07
+ 2.322275031E+07 5.241362252E+03 5.077818953E-04 5.701805565E+03 2.234056609E+07
+ 2.334506300E+07 5.179908508E+03 5.039816258E-04 5.626894954E+03 2.248152029E+07
+ 2.346737570E+07 5.118156513E+03 5.001964766E-04 5.551984343E+03 2.262367473E+07
+ 2.358968840E+07 5.056879822E+03 4.964265355E-04 5.477073733E+03 2.276553422E+07
+ 2.371200110E+07 4.997050361E+03 4.926718881E-04 5.402163122E+03 2.290866207E+07
+ 2.383431380E+07 4.936674627E+03 4.889326185E-04 5.327252511E+03 2.305445236E+07
+ 2.395662650E+07 4.877517725E+03 4.852088088E-04 5.252341900E+03 2.320150913E+07
+ 2.407893920E+07 4.818045801E+03 4.815005391E-04 5.177431290E+03 2.334989114E+07
+ 2.420125190E+07 4.759793403E+03 4.778078879E-04 5.102520679E+03 2.349961395E+07
+ 2.432356459E+07 4.701234366E+03 4.741309316E-04 5.027610068E+03 2.364968948E+07
+ 2.444587729E+07 4.643122802E+03 4.704697449E-04 4.952699457E+03 2.380216278E+07
+ 2.456818999E+07 4.586196630E+03 4.668244007E-04 4.877788846E+03 2.395607829E+07
+ 2.469050269E+07 4.529738758E+03 4.631949699E-04 4.802878236E+03 2.410990617E+07
+ 2.481281539E+07 4.472936138E+03 4.595815216E-04 4.727967625E+03 2.426674934E+07
+ 2.493512809E+07 4.416589341E+03 4.559841234E-04 4.653057014E+03 2.442516055E+07
+ 2.505744079E+07 4.361493897E+03 4.524028406E-04 4.578146403E+03 2.458511583E+07
+ 2.517975349E+07 4.306015833E+03 4.488377371E-04 4.503235793E+03 2.474668859E+07
+ 2.530206619E+07 4.251733258E+03 4.452888747E-04 4.428325182E+03 2.490990556E+07
+ 2.542437888E+07 4.197117671E+03 4.417563137E-04 4.353414571E+03 2.507495025E+07
+ 2.554669158E+07 4.143694532E+03 4.382401124E-04 4.278503960E+03 2.524159371E+07
+ 2.566900428E+07 4.089950011E+03 4.347403273E-04 4.203593349E+03 2.541002213E+07
+ 2.579131698E+07 4.037381623E+03 4.312570134E-04 4.128682739E+03 2.558026922E+07
+ 2.591362968E+07 3.984468831E+03 4.277902238E-04 4.053772128E+03 2.575242376E+07
+ 2.603594238E+07 3.932749013E+03 4.243400096E-04 3.978861517E+03 2.592647085E+07
+ 2.615825508E+07 3.880676905E+03 4.209064206E-04 3.903950906E+03 2.610250431E+07
+ 2.628056778E+07 3.829040296E+03 4.174895046E-04 3.829040296E+03 2.628056778E+07
+ 2.663016416E+07 3.682442385E+03 4.125712281E-04 3.790999045E+03 2.637019151E+07
+ 2.697976054E+07 3.540533853E+03 3.993129010E-04 3.752957793E+03 2.646059055E+07
+ 2.732935693E+07 3.403206445E+03 3.863646992E-04 3.714916542E+03 2.655175175E+07
+ 2.767895331E+07 3.270362503E+03 3.737242205E-04 3.676875291E+03 2.664366403E+07
+ 2.802854970E+07 3.141872972E+03 3.613888674E-04 3.638834040E+03 2.673639596E+07
+ 2.837814608E+07 3.017644622E+03 3.493558568E-04 3.600792789E+03 2.682993630E+07
+ 2.872774246E+07 2.897568599E+03 3.376222294E-04 3.562751538E+03 2.692427503E+07
+ 2.907733885E+07 2.781542677E+03 3.261848589E-04 3.524710287E+03 2.701945439E+07
+ 2.942693523E+07 2.669474644E+03 3.150404618E-04 3.486669036E+03 2.711552237E+07
+ 2.977653162E+07 2.561241443E+03 3.041856061E-04 3.448627784E+03 2.721246582E+07
+ 3.012612800E+07 2.456752390E+03 2.936167209E-04 3.410586533E+03 2.731027631E+07
+ 3.047572439E+07 2.355908667E+03 2.833301052E-04 3.372545282E+03 2.740902985E+07
+ 3.082532077E+07 2.258612060E+03 2.733219367E-04 3.334504031E+03 2.750871718E+07
+ 3.117491715E+07 2.164773913E+03 2.635882810E-04 3.296462780E+03 2.760933011E+07
+ 3.152451354E+07 2.074283303E+03 2.541250999E-04 3.258421529E+03 2.771094773E+07
+ 3.187410992E+07 1.987054204E+03 2.449282600E-04 3.220380278E+03 2.781356201E+07
+ 3.222370631E+07 1.903005798E+03 2.359935410E-04 3.182339027E+03 2.791716647E+07
+ 3.257330269E+07 1.822024103E+03 2.273166438E-04 3.144297775E+03 2.802184344E+07
+ 3.292289907E+07 1.744042166E+03 2.188931986E-04 3.106256524E+03 2.812758713E+07
+ 3.327249546E+07 1.668950473E+03 2.107187726E-04 3.068215273E+03 2.823439243E+07
+ 3.362209184E+07 1.596675293E+03 2.027888776E-04 3.030174022E+03 2.834235112E+07
+ 3.397168823E+07 1.527128272E+03 1.950989774E-04 2.992132771E+03 2.845144881E+07
+ 3.432128461E+07 1.460228173E+03 1.876444950E-04 2.954091520E+03 2.856168793E+07
+ 3.467088099E+07 1.395905198E+03 1.804208193E-04 2.916050269E+03 2.867315928E+07
+ 3.502047738E+07 1.334066973E+03 1.734233124E-04 2.878009018E+03 2.878586152E+07
+ 3.537007376E+07 1.274625559E+03 1.666473155E-04 2.839967766E+03 2.889979361E+07
+ 3.571967015E+07 1.217514611E+03 1.600881558E-04 2.801926515E+03 2.901505287E+07
+ 3.606926653E+07 1.162662362E+03 1.537411520E-04 2.763885264E+03 2.913163975E+07
+ 3.641886292E+07 1.109997186E+03 1.476016206E-04 2.725844013E+03 2.924955560E+07
+ 3.676845930E+07 1.059434845E+03 1.416648814E-04 2.687802762E+03 2.936890496E+07
+ 3.711805568E+07 1.010924323E+03 1.359262627E-04 2.649761511E+03 2.948969134E+07
+ 3.746765207E+07 9.643859488E+02 1.303811067E-04 2.611720260E+03 2.961191832E+07
+ 3.781724845E+07 9.197418764E+02 1.250247745E-04 2.573679009E+03 2.973573647E+07
+ 3.816684484E+07 8.769377787E+02 1.198526504E-04 2.535637757E+03 2.986104236E+07
+ 3.851644122E+07 8.359113489E+02 1.148601469E-04 2.497596506E+03 2.998798950E+07
+ 3.886603760E+07 7.966097568E+02 1.100427084E-04 2.459555255E+03 3.011658889E+07
+ 3.921563399E+07 7.589616386E+02 1.053958158E-04 2.421514004E+03 3.024688995E+07
+ 3.956523037E+07 7.228978173E+02 1.009149898E-04 2.383472753E+03 3.037894310E+07
+ 3.991482676E+07 6.883832911E+02 9.659579486E-05 2.345431502E+03 3.051276375E+07
+ 4.026442314E+07 6.553397126E+02 9.243384232E-05 2.307390251E+03 3.064848517E+07
+ 4.061401952E+07 6.237349960E+02 8.842479366E-05 2.269349000E+03 3.078612752E+07
+ 4.096361591E+07 5.935022867E+02 8.456436341E-05 2.231307748E+03 3.092573320E+07
+ 4.131321229E+07 5.645860012E+02 8.084832192E-05 2.193266497E+03 3.106745346E+07
+ 4.166280868E+07 5.369551494E+02 7.727249788E-05 2.155225246E+03 3.121120143E+07
+ 4.201240506E+07 5.105505196E+02 7.383278062E-05 2.117183995E+03 3.135717730E+07
+ 4.236200145E+07 4.853138823E+02 7.052512233E-05 2.079142744E+03 3.150541593E+07
+ 4.271159783E+07 4.612218739E+02 6.734553995E-05 2.041101493E+03 3.165599732E+07
+ 4.306119421E+07 4.382102603E+02 6.429011698E-05 2.003060242E+03 3.180900447E+07
+ 4.341079060E+07 4.162546666E+02 6.135500505E-05 1.965018991E+03 3.196452640E+07
+ 4.376038698E+07 3.952934467E+02 5.853642538E-05 1.926977739E+03 3.212265649E+07
+ 4.410998337E+07 3.753200700E+02 5.583067001E-05 1.888936488E+03 3.228349579E+07
+ 4.445957975E+07 3.562511197E+02 5.323410287E-05 1.850895237E+03 3.244714523E+07
+ 4.480917613E+07 3.380820260E+02 5.074316077E-05 1.812853986E+03 3.261376595E+07
+ 4.515877252E+07 3.207425890E+02 4.835435417E-05 1.774812735E+03 3.278333192E+07
+ 4.550836890E+07 3.042615275E+02 4.606426778E-05 1.736771484E+03 3.295616403E+07
+ 4.585796529E+07 2.885352492E+02 4.386956112E-05 1.698730233E+03 3.313224682E+07
+ 4.620756167E+07 2.735819755E+02 4.176696885E-05 1.660688982E+03 3.331177239E+07
+ 4.655715805E+07 2.593291845E+02 3.975330104E-05 1.622647730E+03 3.349490197E+07
+ 4.690675444E+07 2.457695798E+02 3.782544325E-05 1.584606479E+03 3.368178002E+07
+ 4.725635082E+07 2.328725871E+02 3.598035657E-05 1.546565228E+03 3.387264550E+07
+ 4.760594721E+07 2.206063043E+02 3.421507748E-05 1.508523977E+03 3.406757587E+07
+ 4.795554359E+07 2.089328189E+02 3.252671766E-05 1.470482726E+03 3.426682431E+07
+ 4.830513998E+07 1.978581003E+02 3.091246366E-05 1.432441475E+03 3.447066724E+07
+ 4.865473636E+07 1.873130030E+02 2.936957650E-05 1.394400224E+03 3.467922294E+07
+ 4.900433274E+07 1.773078494E+02 2.789539117E-05 1.356358973E+03 3.489279497E+07
+ 4.935392913E+07 1.678044119E+02 2.648731604E-05 1.318317721E+03 3.511172446E+07
+ 4.970352551E+07 1.587822224E+02 2.514283221E-05 1.280276470E+03 3.533624468E+07
+ 5.005312190E+07 1.502186548E+02 2.385949278E-05 1.242235219E+03 3.556661218E+07
+ 5.040271828E+07 1.420933131E+02 2.263492204E-05 1.204193968E+03 3.580323891E+07
+ 5.075231466E+07 1.343825316E+02 2.146681461E-05 1.166152717E+03 3.604660495E+07
+ 5.110191105E+07 1.270736761E+02 2.035293453E-05 1.128111466E+03 3.629699964E+07
+ 5.145150743E+07 1.201557963E+02 1.929111424E-05 1.090070215E+03 3.655495063E+07
+ 5.180110382E+07 1.135788021E+02 1.827925361E-05 1.052028964E+03 3.682094907E+07
+ 5.215070020E+07 1.073683339E+02 1.731531884E-05 1.013987713E+03 3.709556121E+07
+ 5.250029658E+07 1.014645602E+02 1.639734133E-05 9.759464614E+02 3.737942144E+07
+ 5.284989297E+07 9.589761358E+01 1.552341658E-05 9.379052103E+02 3.767322740E+07
+ 5.319948935E+07 9.061582141E+01 1.469170295E-05 8.998639591E+02 3.797777210E+07
+ 5.354908574E+07 8.561775864E+01 1.390042052E-05 8.618227080E+02 3.829394271E+07
+ 5.389868212E+07 8.088896451E+01 1.314784977E-05 8.237814569E+02 3.862285795E+07
+ 5.424827851E+07 7.641638305E+01 1.243233039E-05 7.857402058E+02 3.896544705E+07
+ 5.459787489E+07 7.218524801E+01 1.175225997E-05 7.476989546E+02 3.932312638E+07
+ 5.494747127E+07 6.820085859E+01 1.110609275E-05 7.096577035E+02 3.969752571E+07
+ 5.529706766E+07 6.442363319E+01 1.049233824E-05 6.716164524E+02 4.009029293E+07
+ 5.564666404E+07 6.085556395E+01 9.909559996E-06 6.335752013E+02 4.050349405E+07
+ 5.599626043E+07 5.749631880E+01 9.356374244E-06 5.955339502E+02 4.093964995E+07
+ 5.634585681E+07 5.430465816E+01 8.831448577E-06 5.574926990E+02 4.140149709E+07
+ 5.669545319E+07 5.131277902E+01 8.333500635E-06 5.194514479E+02 4.189262164E+07
+ 5.704504958E+07 4.848945548E+01 7.861296780E-06 4.814101968E+02 4.241748789E+07
+ 5.739464596E+07 4.581637401E+01 7.413650777E-06 4.433689457E+02 4.298130933E+07
+ 5.774424235E+07 4.329491237E+01 6.989422486E-06 4.053276945E+02 4.359115817E+07
+ 5.809383873E+07 4.092516177E+01 6.587516552E-06 3.672864434E+02 4.425507749E+07
+ 5.844343511E+07 3.868417445E+01 6.206881115E-06 3.292451923E+02 4.498536005E+07
+ 5.879303150E+07 3.658355922E+01 5.846506524E-06 2.912039412E+02 4.579751344E+07
+ 5.914262788E+07 3.459460937E+01 5.505424066E-06 2.531626900E+02 4.671379783E+07
+ 5.949222427E+07 3.273204273E+01 5.182704710E-06 2.151214389E+02 4.776804275E+07
+ 5.984182065E+07 3.096970941E+01 4.877457866E-06 1.770801878E+02 4.901247165E+07
+ 6.019141704E+07 2.932010244E+01 4.588830158E-06 1.390389367E+02 5.053896880E+07
+ 6.054101342E+07 2.776852452E+01 4.316004222E-06 1.009976856E+02 5.252874441E+07
+ 6.089060980E+07 2.629843637E+01 4.058197519E-06 6.295643443E+01 5.543817248E+07
+ 6.124020619E+07 2.491518330E+01 3.814661162E-06 2.491518330E+01 6.124020619E+07
+ 6.165521000E+07 2.333024990E+01 3.703961714E-06 2.466610225E+01 6.130378017E+07
+ 6.207021380E+07 2.183911425E+01 3.484132821E-06 2.441702119E+01 6.136794385E+07
+ 6.248521761E+07 2.043673201E+01 3.276225524E-06 2.416794013E+01 6.143272350E+07
+ 6.290022142E+07 1.911825962E+01 3.079667162E-06 2.391885907E+01 6.149812414E+07
+ 6.331522523E+07 1.787910981E+01 2.893907961E-06 2.366977801E+01 6.156415835E+07
+ 6.373022903E+07 1.671488325E+01 2.718420394E-06 2.342069696E+01 6.163083911E+07
+ 6.414523284E+07 1.562145388E+01 2.552698549E-06 2.317161590E+01 6.169817673E+07
+ 6.456023665E+07 1.459484545E+01 2.396257493E-06 2.292253484E+01 6.176618416E+07
+ 6.497524046E+07 1.363130660E+01 2.248632641E-06 2.267345378E+01 6.183488924E+07
+ 6.539024426E+07 1.272731817E+01 2.109379136E-06 2.242437272E+01 6.190429445E+07
+ 6.580524807E+07 1.187940091E+01 1.978071221E-06 2.217529166E+01 6.197441495E+07
+ 6.622025188E+07 1.108444711E+01 1.854301632E-06 2.192621061E+01 6.204526650E+07
+ 6.663525569E+07 1.033934318E+01 1.737680986E-06 2.167712955E+01 6.211686782E+07
+ 6.705025949E+07 9.641244158E+00 1.627837183E-06 2.142804849E+01 6.218924118E+07
+ 6.746526330E+07 8.987327812E+00 1.524414820E-06 2.117896743E+01 6.226239859E+07
+ 6.788026711E+07 8.375111430E+00 1.427074604E-06 2.092988637E+01 6.233635802E+07
+ 6.829527092E+07 7.802067571E+00 1.335492784E-06 2.068080532E+01 6.241113808E+07
+ 6.871027473E+07 7.265888689E+00 1.249360591E-06 2.043172426E+01 6.248674634E+07
+ 6.912527853E+07 6.764367712E+00 1.168383684E-06 2.018264320E+01 6.256322908E+07
+ 6.954028234E+07 6.295441203E+00 1.092281617E-06 1.993356214E+01 6.264058942E+07
+ 6.995528615E+07 5.857126555E+00 1.020787309E-06 1.968448108E+01 6.271884882E+07
+ 7.037028996E+07 5.447558102E+00 9.536465279E-07 1.943540002E+01 6.279803258E+07
+ 7.078529376E+07 5.065021000E+00 8.906173899E-07 1.918631897E+01 6.287815754E+07
+ 7.120029757E+07 4.707817866E+00 8.314698679E-07 1.893723791E+01 6.295926287E+07
+ 7.161530138E+07 4.374376522E+00 7.759853140E-07 1.868815685E+01 6.304136450E+07
+ 7.203030519E+07 4.063266472E+00 7.239559939E-07 1.843907579E+01 6.312448834E+07
+ 7.244530899E+07 3.773052842E+00 6.751846352E-07 1.818999473E+01 6.320865748E+07
+ 7.286031280E+07 3.502440799E+00 6.294839872E-07 1.794091368E+01 6.329390215E+07
+ 7.327531661E+07 3.250180689E+00 5.866763947E-07 1.769183262E+01 6.338025872E+07
+ 7.369032042E+07 3.015105021E+00 5.465933841E-07 1.744275156E+01 6.346774880E+07
+ 7.410532422E+07 2.796136868E+00 5.090752623E-07 1.719367050E+01 6.355639748E+07
+ 7.452032803E+07 2.592241481E+00 4.739707283E-07 1.694458944E+01 6.364626090E+07
+ 7.493533184E+07 2.402431185E+00 4.411364982E-07 1.669550838E+01 6.373736039E+07
+ 7.535033565E+07 2.225809616E+00 4.104369415E-07 1.644642733E+01 6.382973199E+07
+ 7.576533945E+07 2.061474525E+00 3.817437307E-07 1.619734627E+01 6.392341334E+07
+ 7.618034326E+07 1.908695898E+00 3.549355030E-07 1.594826521E+01 6.401844381E+07
+ 7.659534707E+07 1.766643702E+00 3.298975334E-07 1.569918415E+01 6.411485162E+07
+ 7.701035088E+07 1.634635173E+00 3.065214211E-07 1.545010309E+01 6.421270203E+07
+ 7.742535469E+07 1.512011430E+00 2.847047857E-07 1.520102204E+01 6.431203117E+07
+ 7.784035849E+07 1.398136209E+00 2.643509764E-07 1.495194098E+01 6.441287852E+07
+ 7.825536230E+07 1.292392027E+00 2.453687916E-07 1.470285992E+01 6.451531290E+07
+ 7.867036611E+07 1.194303670E+00 2.276722099E-07 1.445377886E+01 6.461937522E+07
+ 7.908536992E+07 1.103269106E+00 2.111801312E-07 1.420469780E+01 6.472510448E+07
+ 7.950037372E+07 1.018844251E+00 1.958161290E-07 1.395561674E+01 6.483259432E+07
+ 7.991537753E+07 9.405965762E-01 1.815082126E-07 1.370653569E+01 6.494187729E+07
+ 8.033038134E+07 8.680770172E-01 1.681885991E-07 1.345745463E+01 6.505301329E+07
+ 8.074538515E+07 8.008724741E-01 1.557934951E-07 1.320837357E+01 6.516609900E+07
+ 8.116038895E+07 7.386230221E-01 1.442628882E-07 1.295929251E+01 6.528118927E+07
+ 8.157539276E+07 6.810370615E-01 1.335403471E-07 1.271021145E+01 6.539835958E+07
+ 8.199039657E+07 6.276793324E-01 1.235728307E-07 1.246113040E+01 6.551767609E+07
+ 8.240540038E+07 5.783650358E-01 1.143105062E-07 1.221204934E+01 6.563924625E+07
+ 8.282040418E+07 5.327027569E-01 1.057065746E-07 1.196296828E+01 6.576315091E+07
+ 8.323540799E+07 4.905422032E-01 9.771710509E-08 1.171388722E+01 6.588947558E+07
+ 8.365041180E+07 4.515471919E-01 9.030087678E-08 1.146480616E+01 6.601834542E+07
+ 8.406541561E+07 4.155177210E-01 8.341922794E-08 1.121572510E+01 6.614983448E+07
+ 8.448041942E+07 3.822362429E-01 7.703591246E-08 1.096664405E+01 6.628410244E+07
+ 8.489542322E+07 3.515056487E-01 7.111696333E-08 1.071756299E+01 6.642122678E+07
+ 8.531042703E+07 3.231564192E-01 6.563056269E-08 1.046848193E+01 6.656136427E+07
+ 8.572543084E+07 2.969878395E-01 6.054691842E-08 1.021940087E+01 6.670466110E+07
+ 8.614043465E+07 2.728577734E-01 5.583814683E-08 9.970319813E+00 6.685124555E+07
+ 8.655543845E+07 2.505814445E-01 5.147816135E-08 9.721238755E+00 6.700130411E+07
+ 8.697044226E+07 2.300705271E-01 4.744256687E-08 9.472157697E+00 6.715497842E+07
+ 8.738544607E+07 2.111691900E-01 4.370855957E-08 9.223076639E+00 6.731248634E+07
+ 8.780044988E+07 1.937594828E-01 4.025483196E-08 8.973995581E+00 6.747401582E+07
+ 8.821545368E+07 1.777124836E-01 3.706148294E-08 8.724914522E+00 6.763981179E+07
+ 8.863045749E+07 1.629423834E-01 3.410993266E-08 8.475833464E+00 6.781007629E+07
+ 8.904546130E+07 1.493790491E-01 3.138284195E-08 8.226752406E+00 6.798509636E+07
+ 8.946046511E+07 1.368766055E-01 2.886403614E-08 7.977671348E+00 6.816513557E+07
+ 8.987546891E+07 1.253941350E-01 2.653843301E-08 7.728590290E+00 6.835053845E+07
+ 9.029047272E+07 1.148199120E-01 2.439197480E-08 7.479509232E+00 6.854160063E+07
+ 9.070547653E+07 1.051020309E-01 2.241156397E-08 7.230428173E+00 6.873870287E+07
+ 9.112048034E+07 9.620121750E-02 2.058500258E-08 6.981347115E+00 6.894230971E+07
+ 9.153548415E+07 8.801701792E-02 1.890093511E-08 6.732266057E+00 6.915281782E+07
+ 9.195048795E+07 8.048700610E-02 1.734879462E-08 6.483184999E+00 6.937074034E+07
+ 9.236549176E+07 7.359993825E-02 1.591875191E-08 6.234103941E+00 6.959670174E+07
+ 9.278049557E+07 6.725286255E-02 1.460166775E-08 5.985022882E+00 6.983126370E+07
+ 9.319549938E+07 6.146569295E-02 1.338904788E-08 5.735941824E+00 7.007515735E+07
+ 9.361050318E+07 5.613812492E-02 1.227300065E-08 5.486860766E+00 7.032923763E+07
+ 9.402550699E+07 5.127018185E-02 1.124619723E-08 5.237779708E+00 7.059436676E+07
+ 9.444051080E+07 4.678909533E-02 1.030183419E-08 4.988698650E+00 7.087161412E+07
+ 9.485551461E+07 4.270785401E-02 9.433598379E-09 4.739617592E+00 7.116217849E+07
+ 9.527051841E+07 3.894366802E-02 8.635633929E-09 4.490536533E+00 7.146746937E+07
+ 9.568552222E+07 3.553931187E-02 7.902511290E-09 4.241455475E+00 7.178912003E+07
+ 9.610052603E+07 3.239319708E-02 7.229198209E-09 3.992374417E+00 7.212905853E+07
+ 9.651552984E+07 2.952244943E-02 6.611032508E-09 3.743293359E+00 7.248955783E+07
+ 9.693053364E+07 2.689800087E-02 6.043696580E-09 3.494212301E+00 7.287336850E+07
+ 9.734553745E+07 2.448219003E-02 5.523193511E-09 3.245131242E+00 7.328393167E+07
+ 9.776054126E+07 2.231179531E-02 5.045824717E-09 2.996050184E+00 7.372530753E+07
+ 9.817554507E+07 2.028801100E-02 4.608169032E-09 2.746969126E+00 7.420274274E+07
+ 9.859054887E+07 1.847666254E-02 4.207063146E-09 2.497888068E+00 7.472289915E+07
+ 9.900555268E+07 1.679898015E-02 3.839583316E-09 2.248807010E+00 7.529455760E+07
+ 9.942055649E+07 1.528536708E-02 3.503028291E-09 1.999725952E+00 7.592949041E+07
+ 9.983556030E+07 1.390487877E-02 3.194903351E-09 1.750644893E+00 7.664407339E+07
+ 1.002505641E+08 1.263088986E-02 2.912905424E-09 1.501563835E+00 7.746219043E+07
+ 1.006655679E+08 1.150409223E-02 2.654909191E-09 1.252482777E+00 7.842054602E+07
+ 1.010805717E+08 1.040376172E-02 2.418954133E-09 1.003401719E+00 7.957987361E+07
+ 1.014955755E+08 9.470523106E-03 2.203232454E-09 7.543206606E-01 8.105279440E+07
+ 1.019105793E+08 8.600547326E-03 2.006077836E-09 5.052396024E-01 8.308727481E+07
+ 1.023255831E+08 7.802371159E-03 1.825954960E-09 2.561585442E-01 8.644835059E+07
+ 1.027405870E+08 7.077486047E-03 1.661449755E-09 7.077486047E-03 1.027405880E+08
+ 1.028113618E+08 7.006711187E-03 1.000000000E-09 7.006711187E-03 1.028113617E+08
+ 1.028821367E+08 6.935936326E-03 1.000000000E-09 6.935936326E-03 1.028821367E+08
+ 1.029529115E+08 6.865161466E-03 1.000000000E-09 6.865161466E-03 1.029529600E+08
+ 1.030236864E+08 6.794386605E-03 1.000000000E-09 6.794386605E-03 1.030236160E+08
+ 1.030944613E+08 6.723611745E-03 1.000000000E-09 6.723611745E-03 1.030944610E+08
+ 1.031652361E+08 6.652836884E-03 1.000000000E-09 6.652836884E-03 1.031651840E+08
+ 1.032360110E+08 6.582062024E-03 1.000000000E-09 6.582062024E-03 1.032360110E+08
+ 1.033067858E+08 6.511287163E-03 1.000000000E-09 6.511287163E-03 1.033067870E+08
+ 1.033775607E+08 6.440512303E-03 1.000000000E-09 6.440512303E-03 1.033775607E+08
+ 1.034483356E+08 6.369737442E-03 1.000000000E-09 6.369737442E-03 1.034483360E+08
+ 1.035191104E+08 6.298962582E-03 1.000000000E-09 6.298962582E-03 1.035191100E+08
+ 1.035898853E+08 6.228187722E-03 1.000000000E-09 6.228187722E-03 1.035898853E+08
+ 1.036606601E+08 6.157412861E-03 1.000000000E-09 6.157412861E-03 1.036606600E+08
+ 1.037314350E+08 6.086638001E-03 1.000000000E-09 6.086638001E-03 1.037314340E+08
+ 1.038022099E+08 6.015863140E-03 1.000000000E-09 6.015863140E-03 1.038022080E+08
+ 1.038729847E+08 5.945088280E-03 1.000000000E-09 5.945088280E-03 1.038729760E+08
+ 1.039437596E+08 5.874313419E-03 1.000000000E-09 5.874313419E-03 1.039437596E+08
+ 1.040145344E+08 5.803538559E-03 1.000000000E-09 5.803538559E-03 1.040145344E+08
+ 1.040853093E+08 5.732763698E-03 1.000000000E-09 5.732763698E-03 1.040853070E+08
+ 1.041560842E+08 5.661988838E-03 1.000000000E-09 5.661988838E-03 1.041560842E+08
+ 1.042268590E+08 5.591213977E-03 1.000000000E-09 5.591213977E-03 1.042268590E+08
+ 1.042976339E+08 5.520439117E-03 1.000000000E-09 5.520439117E-03 1.042977280E+08
+ 1.043684087E+08 5.449664256E-03 1.000000000E-09 5.449664256E-03 1.043684160E+08
+ 1.044391836E+08 5.378889396E-03 1.000000000E-09 5.378889396E-03 1.044391840E+08
+ 1.045099585E+08 5.308114535E-03 1.000000000E-09 5.308114535E-03 1.045099585E+08
+ 1.045807333E+08 5.237339675E-03 1.000000000E-09 5.237339675E-03 1.045807987E+08
+ 1.046515082E+08 5.166564814E-03 1.000000000E-09 5.166564814E-03 1.046515082E+08
+ 1.047222830E+08 5.095789954E-03 1.000000000E-09 5.095789954E-03 1.047223575E+08
+ 1.047930579E+08 5.025015093E-03 1.000000000E-09 5.025015093E-03 1.047930720E+08
+ 1.048638328E+08 4.954240233E-03 1.000000000E-09 4.954240233E-03 1.048638328E+08
+ 1.049346076E+08 4.883465373E-03 1.000000000E-09 4.883465373E-03 1.049346560E+08
+ 1.050053825E+08 4.812690512E-03 1.000000000E-09 4.812690512E-03 1.050053810E+08
+ 1.050761573E+08 4.741915652E-03 1.000000000E-09 4.741915652E-03 1.050762240E+08
+ 1.051469322E+08 4.671140791E-03 1.000000000E-09 4.671140791E-03 1.051469461E+08
+ 1.052177071E+08 4.600365931E-03 1.000000000E-09 4.600365931E-03 1.052177070E+08
+ 1.052884819E+08 4.529591070E-03 1.000000000E-09 4.529591070E-03 1.052884800E+08
+ 1.053592568E+08 4.458816210E-03 1.000000000E-09 4.458816210E-03 1.053592568E+08
+ 1.054300316E+08 4.388041349E-03 1.000000000E-09 4.388041349E-03 1.054300160E+08
+ 1.055008065E+08 4.317266489E-03 1.000000000E-09 4.317266489E-03 1.055008065E+08
+ 1.055715814E+08 4.246491628E-03 1.000000000E-09 4.246491628E-03 1.055715810E+08
+ 1.056423562E+08 4.175716768E-03 1.000000000E-09 4.175716768E-03 1.056423562E+08
+ 1.057131311E+08 4.104941907E-03 1.000000000E-09 4.104941907E-03 1.057131360E+08
+ 1.057839060E+08 4.034167047E-03 1.000000000E-09 4.034167047E-03 1.057839060E+08
+ 1.058546808E+08 3.963392186E-03 1.000000000E-09 3.963392186E-03 1.058546810E+08
+ 1.059254557E+08 3.892617326E-03 1.000000000E-09 3.892617326E-03 1.059254557E+08
+ 1.059962305E+08 3.821842465E-03 1.000000000E-09 3.821842465E-03 1.059962560E+08
+ 1.060670054E+08 3.751067605E-03 1.000000000E-09 3.751067605E-03 1.060670050E+08
+ 1.061377803E+08 3.680292745E-03 1.000000000E-09 3.680292745E-03 1.061377920E+08
+ 1.062085551E+08 3.609517884E-03 1.000000000E-09 3.609517884E-03 1.062085551E+08
+ 1.062793300E+08 3.538743024E-03 1.000000000E-09 3.538743024E-03 1.062793310E+08
+ 1.063501048E+08 3.467968163E-03 1.000000000E-09 3.467968163E-03 1.063501048E+08
+ 1.064208797E+08 3.397193303E-03 1.000000000E-09 3.397193303E-03 1.064208796E+08
+ 1.064916546E+08 3.326418442E-03 1.000000000E-09 3.326418442E-03 1.064916560E+08
+ 1.065624294E+08 3.255643582E-03 1.000000000E-09 3.255643582E-03 1.065624300E+08
+ 1.066332043E+08 3.184868721E-03 1.000000000E-09 3.184868721E-03 1.066332043E+08
+ 1.067039791E+08 3.114093861E-03 1.000000000E-09 3.114093861E-03 1.067039810E+08
+ 1.067747540E+08 3.043319000E-03 1.000000000E-09 3.043319000E-03 1.067747540E+08
+ 1.068455289E+08 2.972544140E-03 1.000000000E-09 2.972544140E-03 1.068455324E+08
+ 1.069163037E+08 2.901769279E-03 1.000000000E-09 2.901769279E-03 1.069163040E+08
+ 1.069870786E+08 2.830994419E-03 1.000000000E-09 2.830994419E-03 1.069871622E+08
+ 1.070578534E+08 2.760219558E-03 1.000000000E-09 2.760219558E-03 1.070578534E+08
+ 1.071286283E+08 2.689444698E-03 1.000000000E-09 2.689444698E-03 1.071286283E+08
+ 1.071994032E+08 2.618669837E-03 1.000000000E-09 2.618669837E-03 1.071994032E+08
+ 1.072701780E+08 2.547894977E-03 1.000000000E-09 2.547894977E-03 1.072701785E+08
+ 1.073409529E+08 2.477120117E-03 1.000000000E-09 2.477120117E-03 1.073409600E+08
+ 1.074117277E+08 2.406345256E-03 1.000000000E-09 2.406345256E-03 1.074117277E+08
+ 1.074825026E+08 2.335570396E-03 1.000000000E-09 2.335570396E-03 1.074825030E+08
+ 1.075532775E+08 2.264795535E-03 1.000000000E-09 2.264795535E-03 1.075532800E+08
+ 1.076240523E+08 2.194020675E-03 1.000000000E-09 2.194020675E-03 1.076240523E+08
+ 1.076948272E+08 2.123245814E-03 1.000000000E-09 2.123245814E-03 1.076948272E+08
+ 1.077656020E+08 2.052470954E-03 1.000000000E-09 2.052470954E-03 1.077656271E+08
+ 1.078363769E+08 1.981696093E-03 1.000000000E-09 1.981696093E-03 1.078363769E+08
+ 1.079071518E+08 1.910921233E-03 1.000000000E-09 1.910921233E-03 1.079071519E+08
+ 1.079779266E+08 1.840146372E-03 1.000000000E-09 1.840146372E-03 1.079780298E+08
+ 1.080487015E+08 1.769371512E-03 1.000000000E-09 1.769371512E-03 1.080486400E+08
+ 1.081194763E+08 1.698596651E-03 1.000000000E-09 1.698596651E-03 1.081194822E+08
+ 1.081902512E+08 1.627821791E-03 1.000000000E-09 1.627821791E-03 1.081902080E+08
+ 1.082610261E+08 1.557046930E-03 1.000000000E-09 1.557046930E-03 1.082610865E+08
+ 1.083318009E+08 1.486272070E-03 1.000000000E-09 1.486272070E-03 1.083318009E+08
+ 1.084025758E+08 1.415497209E-03 1.000000000E-09 1.415497209E-03 1.084025758E+08
+ 1.084733506E+08 1.344722349E-03 1.000000000E-09 1.344722349E-03 1.084733600E+08
+ 1.085441255E+08 1.273947488E-03 1.000000000E-09 1.273947488E-03 1.085441254E+08
+ 1.086149004E+08 1.203172628E-03 1.000000000E-09 1.203172628E-03 1.086149004E+08
+ 1.086856752E+08 1.132397768E-03 1.000000000E-09 1.132397768E-03 1.086856752E+08
+ 1.087564501E+08 1.061622907E-03 1.000000000E-09 1.061622907E-03 1.087564500E+08
+ 1.088272250E+08 9.908480466E-04 1.000000000E-09 9.908480466E-04 1.088272160E+08
+ 1.088979998E+08 9.200731861E-04 1.000000000E-09 9.200731861E-04 1.088980480E+08
+ 1.089687747E+08 8.492983257E-04 1.000000000E-09 8.492983257E-04 1.089687750E+08
+ 1.090395495E+08 7.785234652E-04 1.000000000E-09 7.785234652E-04 1.090395495E+08
+ 1.091103244E+08 7.077486047E-04 1.000000000E-09 7.077486047E-04 1.091103040E+08
+ 1.091810993E+08 6.369737442E-04 1.000000000E-09 6.369737442E-04 1.091810993E+08
+ 1.092518741E+08 5.661988838E-04 1.000000000E-09 5.661988838E-04 1.092518720E+08
+ 1.093226490E+08 4.954240233E-04 1.000000000E-09 4.954240233E-04 1.093226560E+08
+ 1.093934238E+08 4.246491628E-04 1.000000000E-09 4.246491628E-04 1.093934240E+08
+ 1.094641987E+08 3.538743024E-04 1.000000000E-09 3.538743024E-04 1.094642046E+08
+ 1.095349736E+08 2.830994419E-04 1.000000000E-09 2.830994419E-04 1.095349760E+08
+ 1.096057484E+08 2.123245814E-04 1.000000000E-09 2.123245814E-04 1.096057600E+08
+ 1.096765233E+08 1.415497209E-04 1.000000000E-09 1.415497209E-04 1.096765240E+08
+ 1.097472981E+08 7.077486047E-05 1.000000000E-09 7.077486047E-05 1.097472000E+08
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM90
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM90	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ATM90	(revision 4308)
@@ -0,0 +1,501 @@
+DENSITY AND THICKNESS DATA OF THE ATMOSPHERE AT AN ZENITH ANGLE OF 90.0 DEGREES
+ 0.000000000E+00 3.647801283E+04 1.229805824E-03 3.647801283E+04 1.862645149E-09
+ 2.257786527E+05 3.620047529E+04 1.229756329E-03 3.623349251E+04 1.986485072E+05
+ 4.515573053E+05 3.592233153E+04 1.229607858E-03 3.598897218E+04 3.978072130E+05
+ 6.773359580E+05 3.564482409E+04 1.229360446E-03 3.574445185E+04 5.964810255E+05
+ 9.031146107E+05 3.536738572E+04 1.229014152E-03 3.549993153E+04 7.952009557E+05
+ 1.128893263E+06 3.509002814E+04 1.228569061E-03 3.525541120E+04 9.944409075E+05
+ 1.354671916E+06 3.481249366E+04 1.228025281E-03 3.501089087E+04 1.193184521E+06
+ 1.580450569E+06 3.453537186E+04 1.227382941E-03 3.476637054E+04 1.392539537E+06
+ 1.806229221E+06 3.425857461E+04 1.226642199E-03 3.452185022E+04 1.592005948E+06
+ 2.032007874E+06 3.398178012E+04 1.225803232E-03 3.427732989E+04 1.791070364E+06
+ 2.257786527E+06 3.370520603E+04 1.224866243E-03 3.403280956E+04 1.990247190E+06
+ 2.483565179E+06 3.342882608E+04 1.223831459E-03 3.378828924E+04 2.190030741E+06
+ 2.709343832E+06 3.315209033E+04 1.222699128E-03 3.354376891E+04 2.389476632E+06
+ 2.935122485E+06 3.287621068E+04 1.221469524E-03 3.329924858E+04 2.589058350E+06
+ 3.160901137E+06 3.260061412E+04 1.220142942E-03 3.305472825E+04 2.789281141E+06
+ 3.386679790E+06 3.232649477E+04 1.218719702E-03 3.281020793E+04 2.989683530E+06
+ 3.612458443E+06 3.205046302E+04 1.217200147E-03 3.256568760E+04 3.189852328E+06
+ 3.838237095E+06 3.177585566E+04 1.215584640E-03 3.232116727E+04 3.391010767E+06
+ 4.064015748E+06 3.150160836E+04 1.213873571E-03 3.207664695E+04 3.591130218E+06
+ 4.289794401E+06 3.122778353E+04 1.212067349E-03 3.183212662E+04 3.792355959E+06
+ 4.515573053E+06 3.095434864E+04 1.210166408E-03 3.158760629E+04 3.993308323E+06
+ 4.741351706E+06 3.068135365E+04 1.208171202E-03 3.134308596E+04 4.194540935E+06
+ 4.967130359E+06 3.040881020E+04 1.206082209E-03 3.109856564E+04 4.396503283E+06
+ 5.192909011E+06 3.013716643E+04 1.203899926E-03 3.085404531E+04 4.598757024E+06
+ 5.418687664E+06 2.986559857E+04 1.201624876E-03 3.060952498E+04 4.800792242E+06
+ 5.644466317E+06 2.959455475E+04 1.199257599E-03 3.036500466E+04 5.003143177E+06
+ 5.870244969E+06 2.932404589E+04 1.196798660E-03 3.012048433E+04 5.206639801E+06
+ 6.096023622E+06 2.905412219E+04 1.194248642E-03 2.987596400E+04 5.409494553E+06
+ 6.321802275E+06 2.878475481E+04 1.191608151E-03 2.963144367E+04 5.613478962E+06
+ 6.547580927E+06 2.851599369E+04 1.188877811E-03 2.938692335E+04 5.817186788E+06
+ 6.773359580E+06 2.824784927E+04 1.186058270E-03 2.914240302E+04 6.021781217E+06
+ 6.999138233E+06 2.798045018E+04 1.183150192E-03 2.889788269E+04 6.226755758E+06
+ 7.224916885E+06 2.771360870E+04 1.180154263E-03 2.865336236E+04 6.432143581E+06
+ 7.450695538E+06 2.744745347E+04 1.177071189E-03 2.840884204E+04 6.637433274E+06
+ 7.676474191E+06 2.718199435E+04 1.173901694E-03 2.816432171E+04 6.843256516E+06
+ 7.902252843E+06 2.691727996E+04 1.170646522E-03 2.791980138E+04 7.049943168E+06
+ 8.128031496E+06 2.665328099E+04 1.167306433E-03 2.767528106E+04 7.257096129E+06
+ 8.353810149E+06 2.639004574E+04 1.163882210E-03 2.743076073E+04 7.464744659E+06
+ 8.579588801E+06 2.612758355E+04 1.160374649E-03 2.718624040E+04 7.672891569E+06
+ 8.805367454E+06 2.586582042E+04 1.156784567E-03 2.694172007E+04 7.881578012E+06
+ 9.031146107E+06 2.560497113E+04 1.153112798E-03 2.669719975E+04 8.090113023E+06
+ 9.256924759E+06 2.534501434E+04 1.149360192E-03 2.645267942E+04 8.300005712E+06
+ 9.482703412E+06 2.508644683E+04 1.145527617E-03 2.620815909E+04 8.510322876E+06
+ 9.708482065E+06 2.482815270E+04 1.141615956E-03 2.596363877E+04 8.721287521E+06
+ 9.934260717E+06 2.457074137E+04 1.137626110E-03 2.571911844E+04 8.932797106E+06
+ 1.016003937E+07 2.431409340E+04 1.133558994E-03 2.547459811E+04 9.144325458E+06
+ 1.038581802E+07 2.405928725E+04 1.129415539E-03 2.523007778E+04 9.357078989E+06
+ 1.061159668E+07 2.380464287E+04 1.125196691E-03 2.498555746E+04 9.570509386E+06
+ 1.083737533E+07 2.355095038E+04 1.120903412E-03 2.474103713E+04 9.784623912E+06
+ 1.106315398E+07 2.329781906E+04 1.116536676E-03 2.449651680E+04 9.999434069E+06
+ 1.128893263E+07 2.304660331E+04 1.112097472E-03 2.425199648E+04 1.021498475E+07
+ 1.151471129E+07 2.279589101E+04 1.107586803E-03 2.400747615E+04 1.043125499E+07
+ 1.174048994E+07 2.254619063E+04 1.103005685E-03 2.376295582E+04 1.064829071E+07
+ 1.196626859E+07 2.229814709E+04 1.098355147E-03 2.351843549E+04 1.086610500E+07
+ 1.219204724E+07 2.205053206E+04 1.093636229E-03 2.327391517E+04 1.108481234E+07
+ 1.241782590E+07 2.180460573E+04 1.088849986E-03 2.302939484E+04 1.130425839E+07
+ 1.264360455E+07 2.155913727E+04 1.083997481E-03 2.278487451E+04 1.152455875E+07
+ 1.286938320E+07 2.131440968E+04 1.079079790E-03 2.254035419E+04 1.174626558E+07
+ 1.309516185E+07 2.107193280E+04 1.074098002E-03 2.229583386E+04 1.196835270E+07
+ 1.332094051E+07 2.082980649E+04 1.069053212E-03 2.205131353E+04 1.219134012E+07
+ 1.354671916E+07 2.058882465E+04 1.063946529E-03 2.180679320E+04 1.241583872E+07
+ 1.377249781E+07 2.034901745E+04 1.058779070E-03 2.156227288E+04 1.264074315E+07
+ 1.399827647E+07 2.011095966E+04 1.053551961E-03 2.131775255E+04 1.286631755E+07
+ 1.422405512E+07 1.987347446E+04 1.048266337E-03 2.107323222E+04 1.309396534E+07
+ 1.444983377E+07 1.963790216E+04 1.042923342E-03 2.082871190E+04 1.332195329E+07
+ 1.467561242E+07 1.940281347E+04 1.037524128E-03 2.058419157E+04 1.355102711E+07
+ 1.490139108E+07 1.916895290E+04 1.032069854E-03 2.033967124E+04 1.378123279E+07
+ 1.512716973E+07 1.893632950E+04 1.026561687E-03 2.009515091E+04 1.401311809E+07
+ 1.535294838E+07 1.870556787E+04 1.021000799E-03 1.985063059E+04 1.424618889E+07
+ 1.557872703E+07 1.847526864E+04 1.015388371E-03 1.960611026E+04 1.447998045E+07
+ 1.580450569E+07 1.824718656E+04 1.009725588E-03 1.936158993E+04 1.471492228E+07
+ 1.603028434E+07 1.801959685E+04 1.004013641E-03 1.911706961E+04 1.495170613E+07
+ 1.625606299E+07 1.779379729E+04 9.982537272E-04 1.887254928E+04 1.518980483E+07
+ 1.648184164E+07 1.756879718E+04 9.924470467E-04 1.862802895E+04 1.542868350E+07
+ 1.670762030E+07 1.734512379E+04 9.865948052E-04 1.838350862E+04 1.566950360E+07
+ 1.693339895E+07 1.712335728E+04 9.806982119E-04 1.813898830E+04 1.591174555E+07
+ 1.715917760E+07 1.690295969E+04 9.747584795E-04 1.789446797E+04 1.615492632E+07
+ 1.738495626E+07 1.668325737E+04 9.687768237E-04 1.764994764E+04 1.639993032E+07
+ 1.761073491E+07 1.646492167E+04 9.627544630E-04 1.740542732E+04 1.664649816E+07
+ 1.783651356E+07 1.624863851E+04 9.566926180E-04 1.716090699E+04 1.689498699E+07
+ 1.806229221E+07 1.603284820E+04 9.505925112E-04 1.691638666E+04 1.714495094E+07
+ 1.828807087E+07 1.581938273E+04 9.444553667E-04 1.667186633E+04 1.739657076E+07
+ 1.851384952E+07 1.560652427E+04 9.382824094E-04 1.642734601E+04 1.764991831E+07
+ 1.873962817E+07 1.539568052E+04 9.320748649E-04 1.618282568E+04 1.790513438E+07
+ 1.896540682E+07 1.518544165E+04 9.258339590E-04 1.593830535E+04 1.816189503E+07
+ 1.919118548E+07 1.497755474E+04 9.195609175E-04 1.569378503E+04 1.842088820E+07
+ 1.941696413E+07 1.477030942E+04 9.132569655E-04 1.544926470E+04 1.868228995E+07
+ 1.964274278E+07 1.456489196E+04 9.069233273E-04 1.520474437E+04 1.894501319E+07
+ 1.986852143E+07 1.436109558E+04 9.005612257E-04 1.496022404E+04 1.920979444E+07
+ 2.009430009E+07 1.415873704E+04 8.941718818E-04 1.471570372E+04 1.947711353E+07
+ 2.032007874E+07 1.395722363E+04 8.877565147E-04 1.447118339E+04 1.974616830E+07
+ 2.054585739E+07 1.375714742E+04 8.813163411E-04 1.422666306E+04 2.001811643E+07
+ 2.077163605E+07 1.355894809E+04 8.748525746E-04 1.398214274E+04 2.029241462E+07
+ 2.099741470E+07 1.336254013E+04 8.683664259E-04 1.373762241E+04 2.056837933E+07
+ 2.122319335E+07 1.316692785E+04 8.618591019E-04 1.349310208E+04 2.084749308E+07
+ 2.144897200E+07 1.297327874E+04 8.553318056E-04 1.324858175E+04 2.112856804E+07
+ 2.167475066E+07 1.278110216E+04 8.487857357E-04 1.300406143E+04 2.141282640E+07
+ 2.190052931E+07 1.258981891E+04 8.422220864E-04 1.275954110E+04 2.169979731E+07
+ 2.212630796E+07 1.240058428E+04 8.356420466E-04 1.251502077E+04 2.198958331E+07
+ 2.235208661E+07 1.221284366E+04 8.290468003E-04 1.227050045E+04 2.228223542E+07
+ 2.257786527E+07 1.202598012E+04 8.224375253E-04 1.202598012E+04 2.257786527E+07
+ 2.270915804E+07 1.191743436E+04 8.223778136E-04 1.194530131E+04 2.267562183E+07
+ 2.284045080E+07 1.180947370E+04 8.179963415E-04 1.186462249E+04 2.277376141E+07
+ 2.297174357E+07 1.170284350E+04 8.136131888E-04 1.178394368E+04 2.287230905E+07
+ 2.310303634E+07 1.159679791E+04 8.092286341E-04 1.170326487E+04 2.297123079E+07
+ 2.323432911E+07 1.149054269E+04 8.048429544E-04 1.162258605E+04 2.307055184E+07
+ 2.336562188E+07 1.138486290E+04 8.004564254E-04 1.154190724E+04 2.317027535E+07
+ 2.349691465E+07 1.128053375E+04 7.960693214E-04 1.146122843E+04 2.327041194E+07
+ 2.362820742E+07 1.117527456E+04 7.916819151E-04 1.138054962E+04 2.337095762E+07
+ 2.375950019E+07 1.107248084E+04 7.872944779E-04 1.129987080E+04 2.347192321E+07
+ 2.389079295E+07 1.096909972E+04 7.829072796E-04 1.121919199E+04 2.357331228E+07
+ 2.402208572E+07 1.086630396E+04 7.785205884E-04 1.113851318E+04 2.367426531E+07
+ 2.415337849E+07 1.076432566E+04 7.741346712E-04 1.105783436E+04 2.377791669E+07
+ 2.428467126E+07 1.066349275E+04 7.697497931E-04 1.097715555E+04 2.388061116E+07
+ 2.441596403E+07 1.056319480E+04 7.653662176E-04 1.089647674E+04 2.398375155E+07
+ 2.454725680E+07 1.046267494E+04 7.609842068E-04 1.081579792E+04 2.408740816E+07
+ 2.467854957E+07 1.036274321E+04 7.566040208E-04 1.073511911E+04 2.419179506E+07
+ 2.480984234E+07 1.026415717E+04 7.522259183E-04 1.065444030E+04 2.429630982E+07
+ 2.494113510E+07 1.016538217E+04 7.478501562E-04 1.057376149E+04 2.440129686E+07
+ 2.507242787E+07 1.006716975E+04 7.434769898E-04 1.049308267E+04 2.450676075E+07
+ 2.520372064E+07 9.970293111E+03 7.391066726E-04 1.041240386E+04 2.461372160E+07
+ 2.533501341E+07 9.873229549E+03 7.347394563E-04 1.033172505E+04 2.471915342E+07
+ 2.546630618E+07 9.776740527E+03 7.303755908E-04 1.025104623E+04 2.482708154E+07
+ 2.559759895E+07 9.681574657E+03 7.260153243E-04 1.017036742E+04 2.493454391E+07
+ 2.572889172E+07 9.586285182E+03 7.216589031E-04 1.008968861E+04 2.504248840E+07
+ 2.586018449E+07 9.492265052E+03 7.173065718E-04 1.000900980E+04 2.515095312E+07
+ 2.599147725E+07 9.398050891E+03 7.129585731E-04 9.928330983E+03 2.525994364E+07
+ 2.612277002E+07 9.305179477E+03 7.086151476E-04 9.847652170E+03 2.537050647E+07
+ 2.625406279E+07 9.212098392E+03 7.042765343E-04 9.766973357E+03 2.548056126E+07
+ 2.638535556E+07 9.119591972E+03 6.999429702E-04 9.686294544E+03 2.559117318E+07
+ 2.651664833E+07 9.028430252E+03 6.956146903E-04 9.605615732E+03 2.570242338E+07
+ 2.664794110E+07 8.937052828E+03 6.912919277E-04 9.524936919E+03 2.581415030E+07
+ 2.677923387E+07 8.846255943E+03 6.869749137E-04 9.444258106E+03 2.592752000E+07
+ 2.691052664E+07 8.756765330E+03 6.826638773E-04 9.363579293E+03 2.603934174E+07
+ 2.704181940E+07 8.667855386E+03 6.783590458E-04 9.282900480E+03 2.615386323E+07
+ 2.717311217E+07 8.578180446E+03 6.740606443E-04 9.202221667E+03 2.626792673E+07
+ 2.730440494E+07 8.490437792E+03 6.697688960E-04 9.121542854E+03 2.638260038E+07
+ 2.743569771E+07 8.403215622E+03 6.654840221E-04 9.040864041E+03 2.649899204E+07
+ 2.756699048E+07 8.315780096E+03 6.612062415E-04 8.960185228E+03 2.661490493E+07
+ 2.769828325E+07 8.228909224E+03 6.569357714E-04 8.879506415E+03 2.673144835E+07
+ 2.782957602E+07 8.143357795E+03 6.526728265E-04 8.798827603E+03 2.684976058E+07
+ 2.796086879E+07 8.057615215E+03 6.484176199E-04 8.718148790E+03 2.696760129E+07
+ 2.809216155E+07 7.973182827E+03 6.441703621E-04 8.637469977E+03 2.708610385E+07
+ 2.822345432E+07 7.888532983E+03 6.399312618E-04 8.556791164E+03 2.720567091E+07
+ 2.835474709E+07 7.805211131E+03 6.357005255E-04 8.476112351E+03 2.732554174E+07
+ 2.848603986E+07 7.721672805E+03 6.314783576E-04 8.395433538E+03 2.744724137E+07
+ 2.861733263E+07 7.638695840E+03 6.272649603E-04 8.314754725E+03 2.756852153E+07
+ 2.874862540E+07 7.557082215E+03 6.230605335E-04 8.234075912E+03 2.769051702E+07
+ 2.887991817E+07 7.475973169E+03 6.188652753E-04 8.153397099E+03 2.781439336E+07
+ 2.901121094E+07 7.394631212E+03 6.146793811E-04 8.072718287E+03 2.793788774E+07
+ 2.914250370E+07 7.313843227E+03 6.105030447E-04 7.992039474E+03 2.806211705E+07
+ 2.927379647E+07 7.234365886E+03 6.063364572E-04 7.911360661E+03 2.818828406E+07
+ 2.940508924E+07 7.154682253E+03 6.021798078E-04 7.830681848E+03 2.831406156E+07
+ 2.953638201E+07 7.076295936E+03 5.980332834E-04 7.750003035E+03 2.844064667E+07
+ 2.966767478E+07 6.997679952E+03 5.938970686E-04 7.669324222E+03 2.856920365E+07
+ 2.979896755E+07 6.920375043E+03 5.897713458E-04 7.588645409E+03 2.869873300E+07
+ 2.993026032E+07 6.842844467E+03 5.856562953E-04 7.507966596E+03 2.882776220E+07
+ 3.006155309E+07 6.765864158E+03 5.815520950E-04 7.427287783E+03 2.895765279E+07
+ 3.019284585E+07 6.690471874E+03 5.774589205E-04 7.346608970E+03 2.908965094E+07
+ 3.032413862E+07 6.614545710E+03 5.733769455E-04 7.265930158E+03 2.922129029E+07
+ 3.045543139E+07 6.539925169E+03 5.693063409E-04 7.185251345E+03 2.935511077E+07
+ 3.058672416E+07 6.465067619E+03 5.652472759E-04 7.104572532E+03 2.948856212E+07
+ 3.071801693E+07 6.391510181E+03 5.611999169E-04 7.023893719E+03 2.962422328E+07
+ 3.084930970E+07 6.317707873E+03 5.571644285E-04 6.943214906E+03 2.975956575E+07
+ 3.098060247E+07 6.245216238E+03 5.531409726E-04 6.862536093E+03 2.989715915E+07
+ 3.111189524E+07 6.172473219E+03 5.491297092E-04 6.781857280E+03 3.003445558E+07
+ 3.124318800E+07 6.101019531E+03 5.451307957E-04 6.701178467E+03 3.017318908E+07
+ 3.137448077E+07 6.029322606E+03 5.411443874E-04 6.620499654E+03 3.031391081E+07
+ 3.150577354E+07 5.958914878E+03 5.371706372E-04 6.539820842E+03 3.045561180E+07
+ 3.163706631E+07 5.888316158E+03 5.332096959E-04 6.459142029E+03 3.059840686E+07
+ 3.176835908E+07 5.818941133E+03 5.292617118E-04 6.378463216E+03 3.074091549E+07
+ 3.189965185E+07 5.749315970E+03 5.253268309E-04 6.297784403E+03 3.088457076E+07
+ 3.203094462E+07 5.680972592E+03 5.214051971E-04 6.217105590E+03 3.103070282E+07
+ 3.216223739E+07 5.612375746E+03 5.174969518E-04 6.136426777E+03 3.117799667E+07
+ 3.229353015E+07 5.545072367E+03 5.136022343E-04 6.055747964E+03 3.132649205E+07
+ 3.242482292E+07 5.477488836E+03 5.097211814E-04 5.975069151E+03 3.147622353E+07
+ 3.255611569E+07 5.411184366E+03 5.058539277E-04 5.894390338E+03 3.162586327E+07
+ 3.268740846E+07 5.345398982E+03 5.020006055E-04 5.813711525E+03 3.177808622E+07
+ 3.281870123E+07 5.279320553E+03 4.981613449E-04 5.733032713E+03 3.193017493E+07
+ 3.294999400E+07 5.213758215E+03 4.943362736E-04 5.652353900E+03 3.208500247E+07
+ 3.308128677E+07 5.149722322E+03 4.905255170E-04 5.571675087E+03 3.224118840E+07
+ 3.321257954E+07 5.085153045E+03 4.867291982E-04 5.490996274E+03 3.239879648E+07
+ 3.334387231E+07 5.021096179E+03 4.829474381E-04 5.410317461E+03 3.255779900E+07
+ 3.347516507E+07 4.958275456E+03 4.791803554E-04 5.329638648E+03 3.271824998E+07
+ 3.360645784E+07 4.895960918E+03 4.754280662E-04 5.248959835E+03 3.288019393E+07
+ 3.373775061E+07 4.833378384E+03 4.716906846E-04 5.168281022E+03 3.304263495E+07
+ 3.386904338E+07 4.772038992E+03 4.679683224E-04 5.087602209E+03 3.320763958E+07
+ 3.400033615E+07 4.710418163E+03 4.642610890E-04 5.006923397E+03 3.337424524E+07
+ 3.413162892E+07 4.650048075E+03 4.605690918E-04 4.926244584E+03 3.354247816E+07
+ 3.426292169E+07 4.590165775E+03 4.568924355E-04 4.845565771E+03 3.371241612E+07
+ 3.439421446E+07 4.530047505E+03 4.532312231E-04 4.764886958E+03 3.388403812E+07
+ 3.452550722E+07 4.470356370E+03 4.495855549E-04 4.684208145E+03 3.405742562E+07
+ 3.465679999E+07 4.411893680E+03 4.459555291E-04 4.603529332E+03 3.423261169E+07
+ 3.478809276E+07 4.353915967E+03 4.423412418E-04 4.522850519E+03 3.440978711E+07
+ 3.491938553E+07 4.295639785E+03 4.387427867E-04 4.442171706E+03 3.458872897E+07
+ 3.505067830E+07 4.238617335E+03 4.351602554E-04 4.361492893E+03 3.477133745E+07
+ 3.518197107E+07 4.181276641E+03 4.315937372E-04 4.280814080E+03 3.495423363E+07
+ 3.531326384E+07 4.125167299E+03 4.280433191E-04 4.200135268E+03 3.513924265E+07
+ 3.544455661E+07 4.069531719E+03 4.245090862E-04 4.119456455E+03 3.532632759E+07
+ 3.557584937E+07 4.013575618E+03 4.209911212E-04 4.038777642E+03 3.551560826E+07
+ 3.570714214E+07 3.958098829E+03 4.174895046E-04 3.958098829E+03 3.570714214E+07
+ 3.606505324E+07 3.807971952E+03 4.128673352E-04 3.918769579E+03 3.579982364E+07
+ 3.642296433E+07 3.662532992E+03 3.998804754E-04 3.879440329E+03 3.589326744E+07
+ 3.678087543E+07 3.521690586E+03 3.871803030E-04 3.840111078E+03 3.598746309E+07
+ 3.713878653E+07 3.385342933E+03 3.747655865E-04 3.800781828E+03 3.608247904E+07
+ 3.749669762E+07 3.253398228E+03 3.626348677E-04 3.761452578E+03 3.617830374E+07
+ 3.785460872E+07 3.125733761E+03 3.507864708E-04 3.722123328E+03 3.627492720E+07
+ 3.821251981E+07 3.002259492E+03 3.392185115E-04 3.682794078E+03 3.637239145E+07
+ 3.857043091E+07 2.882877325E+03 3.279289063E-04 3.643464827E+03 3.647074315E+07
+ 3.892834201E+07 2.767484402E+03 3.169153814E-04 3.604135577E+03 3.656997104E+07
+ 3.928625310E+07 2.655984225E+03 3.061754822E-04 3.564806327E+03 3.667006530E+07
+ 3.964416420E+07 2.548279139E+03 2.957065825E-04 3.525477077E+03 3.677110182E+07
+ 4.000207529E+07 2.444284665E+03 2.855058933E-04 3.486147827E+03 3.687307118E+07
+ 4.035998639E+07 2.343881759E+03 2.755704718E-04 3.446818577E+03 3.697596472E+07
+ 4.071789748E+07 2.246998643E+03 2.658972309E-04 3.407489326E+03 3.707986239E+07
+ 4.107580858E+07 2.153516965E+03 2.564829476E-04 3.368160076E+03 3.718475376E+07
+ 4.143371968E+07 2.063372913E+03 2.473242717E-04 3.328830826E+03 3.729063310E+07
+ 4.179163077E+07 1.976450830E+03 2.384177351E-04 3.289501576E+03 3.739758244E+07
+ 4.214954187E+07 1.892671578E+03 2.297597597E-04 3.250172326E+03 3.750559541E+07
+ 4.250745296E+07 1.811947437E+03 2.213466660E-04 3.210843075E+03 3.761466666E+07
+ 4.286536406E+07 1.734201850E+03 2.131746816E-04 3.171513825E+03 3.772488265E+07
+ 4.322327516E+07 1.659327246E+03 2.052399489E-04 3.132184575E+03 3.783623835E+07
+ 4.358118625E+07 1.587252395E+03 1.975385333E-04 3.092855325E+03 3.794873030E+07
+ 4.393909735E+07 1.517901891E+03 1.900664310E-04 3.053526075E+03 3.806244968E+07
+ 4.429700844E+07 1.451174259E+03 1.828195764E-04 3.014196825E+03 3.817739422E+07
+ 4.465491954E+07 1.387000337E+03 1.757938495E-04 2.974867574E+03 3.829356173E+07
+ 4.501283063E+07 1.325313604E+03 1.689850832E-04 2.935538324E+03 3.841105519E+07
+ 4.537074173E+07 1.266013927E+03 1.623890700E-04 2.896209074E+03 3.852986328E+07
+ 4.572865283E+07 1.209048467E+03 1.560015693E-04 2.856879824E+03 3.864999191E+07
+ 4.608656392E+07 1.154324399E+03 1.498183134E-04 2.817550574E+03 3.877154484E+07
+ 4.644447502E+07 1.101781936E+03 1.438350142E-04 2.778221323E+03 3.889452486E+07
+ 4.680238611E+07 1.051338036E+03 1.380473692E-04 2.738892073E+03 3.901897107E+07
+ 4.716029721E+07 1.002931004E+03 1.324510674E-04 2.699562823E+03 3.914492282E+07
+ 4.751820831E+07 9.565049271E+02 1.270417949E-04 2.660233573E+03 3.927238686E+07
+ 4.787611940E+07 9.119812592E+02 1.218152405E-04 2.620904323E+03 3.940147836E+07
+ 4.823403050E+07 8.692851985E+02 1.167671009E-04 2.581575073E+03 3.953220710E+07
+ 4.859194159E+07 8.283641841E+02 1.118930856E-04 2.542245822E+03 3.966462247E+07
+ 4.894985269E+07 7.891702340E+02 1.071889217E-04 2.502916572E+03 3.979877107E+07
+ 4.930776378E+07 7.516280288E+02 1.026503585E-04 2.463587322E+03 3.993466823E+07
+ 4.966567488E+07 7.156700578E+02 9.827317176E-05 2.424258072E+03 4.007248401E+07
+ 5.002358598E+07 6.812617781E+02 9.405316785E-05 2.384928822E+03 4.021212130E+07
+ 5.038149707E+07 6.483247988E+02 8.998618753E-05 2.345599572E+03 4.035375627E+07
+ 5.073940817E+07 6.168275628E+02 8.606810967E-05 2.306270321E+03 4.049741245E+07
+ 5.109731926E+07 5.867030888E+02 8.229485468E-05 2.266941071E+03 4.064315633E+07
+ 5.145523036E+07 5.578957849E+02 7.866238772E-05 2.227611821E+03 4.079105716E+07
+ 5.181314146E+07 5.303751987E+02 7.516672169E-05 2.188282571E+03 4.094116790E+07
+ 5.217105255E+07 5.040819496E+02 7.180392007E-05 2.148953321E+03 4.109361278E+07
+ 5.252896365E+07 4.789573424E+02 6.857009949E-05 2.109624070E+03 4.124843800E+07
+ 5.288687474E+07 4.549788179E+02 6.546143216E-05 2.070294820E+03 4.140573641E+07
+ 5.324478584E+07 4.320925938E+02 6.247414804E-05 2.030965570E+03 4.156559803E+07
+ 5.360269693E+07 4.102412583E+02 5.960453691E-05 1.991636320E+03 4.172811858E+07
+ 5.396060803E+07 3.894075986E+02 5.684895015E-05 1.952307070E+03 4.189339800E+07
+ 5.431851913E+07 3.695404569E+02 5.420380243E-05 1.912977820E+03 4.206159105E+07
+ 5.467643022E+07 3.505889088E+02 5.166557320E-05 1.873648569E+03 4.223266812E+07
+ 5.503434132E+07 3.325495159E+02 4.923080795E-05 1.834319319E+03 4.240694442E+07
+ 5.539225241E+07 3.153466366E+02 4.689611941E-05 1.794990069E+03 4.258439724E+07
+ 5.575016351E+07 2.989565664E+02 4.465818853E-05 1.755660819E+03 4.276521301E+07
+ 5.610807461E+07 2.833723208E+02 4.251376530E-05 1.716331569E+03 4.294953757E+07
+ 5.646598570E+07 2.685171412E+02 4.045966946E-05 1.677002318E+03 4.313752445E+07
+ 5.682389680E+07 2.543839105E+02 3.849279104E-05 1.637673068E+03 4.332939522E+07
+ 5.718180789E+07 2.409556214E+02 3.661009080E-05 1.598343818E+03 4.352522744E+07
+ 5.753971899E+07 2.281784341E+02 3.480860048E-05 1.559014568E+03 4.372524587E+07
+ 5.789763008E+07 2.160320614E+02 3.308542299E-05 1.519685318E+03 4.392972244E+07
+ 5.825554118E+07 2.044882018E+02 3.143773248E-05 1.480356068E+03 4.413876305E+07
+ 5.861345228E+07 1.935096833E+02 2.986277421E-05 1.441026817E+03 4.435265929E+07
+ 5.897136337E+07 1.831061550E+02 2.835786444E-05 1.401697567E+03 4.457173178E+07
+ 5.932927447E+07 1.732049367E+02 2.692039013E-05 1.362368317E+03 4.479619865E+07
+ 5.968718556E+07 1.638284165E+02 2.554780857E-05 1.323039067E+03 4.502629477E+07
+ 6.004509666E+07 1.549100847E+02 2.423764696E-05 1.283709817E+03 4.526240799E+07
+ 6.040300776E+07 1.464712964E+02 2.298750182E-05 1.244380566E+03 4.550496892E+07
+ 6.076091885E+07 1.384472489E+02 2.179503840E-05 1.205051316E+03 4.575430014E+07
+ 6.111882995E+07 1.308587120E+02 2.065798999E-05 1.165722066E+03 4.601085027E+07
+ 6.147674104E+07 1.236595215E+02 1.957415714E-05 1.126392816E+03 4.627494375E+07
+ 6.183465214E+07 1.168392329E+02 1.854140685E-05 1.087063566E+03 4.654735141E+07
+ 6.219256323E+07 1.103790650E+02 1.755767172E-05 1.047734316E+03 4.682851562E+07
+ 6.255047433E+07 1.042623917E+02 1.662094892E-05 1.008405065E+03 4.711909176E+07
+ 6.290838543E+07 9.847442039E+01 1.572929931E-05 9.690758152E+02 4.741979449E+07
+ 6.326629652E+07 9.300680082E+01 1.488084634E-05 9.297465650E+02 4.773143061E+07
+ 6.362420762E+07 8.781294333E+01 1.407377501E-05 8.904173148E+02 4.805499274E+07
+ 6.398211871E+07 8.292345201E+01 1.330633076E-05 8.510880646E+02 4.839132161E+07
+ 6.434002981E+07 7.828992274E+01 1.257681829E-05 8.117588145E+02 4.874179090E+07
+ 6.469794091E+07 7.391369442E+01 1.188360046E-05 7.724295643E+02 4.910750733E+07
+ 6.505585200E+07 6.978378760E+01 1.122509705E-05 7.331003141E+02 4.949023167E+07
+ 6.541376310E+07 6.587568854E+01 1.059978355E-05 6.937710639E+02 4.989165455E+07
+ 6.577167419E+07 6.219664197E+01 1.000618993E-05 6.544418137E+02 5.031386505E+07
+ 6.612958529E+07 5.870200399E+01 9.442899417E-06 6.151125636E+02 5.075933990E+07
+ 6.648749639E+07 5.542588904E+01 8.908547184E-06 5.757833134E+02 5.123113194E+07
+ 6.684540748E+07 5.232630342E+01 8.401819136E-06 5.364540632E+02 5.173262338E+07
+ 6.720331858E+07 4.941238704E+01 7.921450608E-06 4.971248130E+02 5.226843569E+07
+ 6.756122967E+07 4.665489525E+01 7.466225093E-06 4.577955628E+02 5.284402042E+07
+ 6.791914077E+07 4.406639199E+01 7.034972974E-06 4.184663127E+02 5.346613099E+07
+ 6.827705186E+07 4.161154469E+01 6.626570238E-06 3.791370625E+02 5.414339108E+07
+ 6.863496296E+07 3.931696029E+01 6.239937213E-06 3.398078123E+02 5.488816988E+07
+ 6.899287406E+07 3.715466992E+01 5.874037301E-06 3.004785621E+02 5.571623000E+07
+ 6.935078515E+07 3.510910516E+01 5.527875723E-06 2.611493119E+02 5.665065328E+07
+ 6.970869625E+07 3.318314771E+01 5.200498269E-06 2.218200618E+02 5.772494462E+07
+ 7.006660734E+07 3.138392820E+01 4.890990068E-06 1.824908116E+02 5.899302921E+07
+ 7.042451844E+07 2.969020130E+01 4.598474364E-06 1.431615614E+02 6.054793929E+07
+ 7.078242954E+07 2.808732981E+01 4.322111307E-06 1.038323112E+02 6.257691024E+07
+ 7.114034063E+07 2.659103730E+01 4.061096769E-06 6.450306104E+01 6.554439540E+07
+ 7.149825173E+07 2.517381086E+01 3.814661162E-06 2.517381086E+01 7.149825173E+07
+ 7.191640645E+07 2.357663597E+01 3.704934214E-06 2.492214384E+01 7.156248281E+07
+ 7.233456117E+07 2.207361090E+01 3.485944007E-06 2.467047683E+01 7.162731612E+07
+ 7.275271589E+07 2.065967114E+01 3.278754248E-06 2.441880981E+01 7.169276583E+07
+ 7.317087061E+07 1.932998948E+01 3.082803992E-06 2.416714280E+01 7.175883456E+07
+ 7.358902533E+07 1.807999810E+01 2.897554276E-06 2.391547579E+01 7.182554975E+07
+ 7.400718005E+07 1.690530021E+01 2.722487544E-06 2.366380877E+01 7.189291711E+07
+ 7.442533477E+07 1.580182808E+01 2.557107063E-06 2.341214176E+01 7.196095016E+07
+ 7.484348949E+07 1.476548915E+01 2.400936340E-06 2.316047475E+01 7.202965764E+07
+ 7.526164421E+07 1.379266104E+01 2.253518541E-06 2.290880773E+01 7.209905912E+07
+ 7.567979893E+07 1.287970456E+01 2.114415911E-06 2.265714072E+01 7.216917719E+07
+ 7.609795365E+07 1.202324869E+01 1.983209195E-06 2.240547370E+01 7.224001677E+07
+ 7.651610837E+07 1.122008537E+01 1.859497070E-06 2.215380669E+01 7.231159363E+07
+ 7.693426310E+07 1.046713022E+01 1.742895570E-06 2.190213968E+01 7.238392790E+07
+ 7.735241782E+07 9.761552539E+00 1.633037531E-06 2.165047266E+01 7.245702791E+07
+ 7.777057254E+07 9.100532799E+00 1.529572030E-06 2.139880565E+01 7.253092788E+07
+ 7.818872726E+07 8.481487417E+00 1.432163841E-06 2.114713863E+01 7.260563677E+07
+ 7.860688198E+07 7.901992245E+00 1.340492890E-06 2.089547162E+01 7.268117331E+07
+ 7.902503670E+07 7.359682488E+00 1.254253727E-06 2.064380461E+01 7.275755695E+07
+ 7.944319142E+07 6.852339811E+00 1.173155003E-06 2.039213759E+01 7.283480780E+07
+ 7.986134614E+07 6.377869220E+00 1.096918956E-06 2.014047058E+01 7.291293474E+07
+ 8.027950086E+07 5.934335961E+00 1.025280909E-06 1.988880356E+01 7.299198635E+07
+ 8.069765558E+07 5.519829218E+00 9.579887769E-07 1.963713655E+01 7.307196406E+07
+ 8.111581030E+07 5.132567006E+00 8.948025843E-07 1.938546954E+01 7.315289730E+07
+ 8.153396502E+07 4.770954072E+00 8.354939961E-07 1.913380252E+01 7.323481306E+07
+ 8.195211974E+07 4.433351422E+00 7.798458575E-07 1.888213551E+01 7.331772433E+07
+ 8.237027446E+07 4.118261876E+00 7.276517457E-07 1.863046849E+01 7.340167568E+07
+ 8.278842918E+07 3.824350219E+00 6.787155342E-07 1.837880148E+01 7.348668505E+07
+ 8.320658391E+07 3.550225215E+00 6.328509674E-07 1.812713447E+01 7.357277676E+07
+ 8.362473863E+07 3.294709567E+00 5.898812484E-07 1.787546745E+01 7.365997914E+07
+ 8.404289335E+07 3.056527721E+00 5.496386378E-07 1.762380044E+01 7.374834022E+07
+ 8.446104807E+07 2.834637453E+00 5.119640646E-07 1.737213343E+01 7.383787289E+07
+ 8.487920279E+07 2.628036880E+00 4.767067490E-07 1.712046641E+01 7.392860711E+07
+ 8.529735751E+07 2.435670290E+00 4.437238368E-07 1.686879940E+01 7.402060117E+07
+ 8.571551223E+07 2.256639972E+00 4.128800462E-07 1.661713238E+01 7.411387796E+07
+ 8.613366695E+07 2.090093034E+00 3.840473251E-07 1.636546537E+01 7.420847544E+07
+ 8.655182167E+07 1.935200937E+00 3.571045212E-07 1.611379836E+01 7.430443326E+07
+ 8.696997639E+07 1.791209856E+00 3.319370624E-07 1.586213134E+01 7.440179293E+07
+ 8.738813111E+07 1.657362460E+00 3.084366496E-07 1.561046433E+01 7.450058472E+07
+ 8.780628583E+07 1.533012971E+00 2.865009592E-07 1.535879731E+01 7.460087672E+07
+ 8.822444055E+07 1.417579818E+00 2.660333580E-07 1.510713030E+01 7.470270745E+07
+ 8.864259527E+07 1.310356084E+00 2.469426277E-07 1.485546329E+01 7.480611896E+07
+ 8.906074999E+07 1.210849184E+00 2.291427005E-07 1.460379627E+01 7.491118337E+07
+ 8.947890472E+07 1.118529197E+00 2.125524044E-07 1.435212926E+01 7.501794447E+07
+ 8.989705944E+07 1.032909137E+00 1.970952198E-07 1.410046224E+01 7.512644421E+07
+ 9.031521416E+07 9.535699617E-01 1.826990442E-07 1.384879523E+01 7.523678051E+07
+ 9.073336888E+07 8.800052572E-01 1.692959679E-07 1.359712822E+01 7.534898913E+07
+ 9.115152360E+07 8.118686256E-01 1.568220588E-07 1.334546120E+01 7.546313389E+07
+ 9.156967832E+07 7.487408122E-01 1.452171555E-07 1.309379419E+01 7.557931648E+07
+ 9.198783304E+07 6.902960022E-01 1.344246701E-07 1.284212717E+01 7.569759599E+07
+ 9.240598776E+07 6.362087300E-01 1.243913996E-07 1.259046016E+01 7.581805296E+07
+ 9.282414248E+07 5.861683975E-01 1.150673449E-07 1.233879315E+01 7.594075863E+07
+ 9.324229720E+07 5.398834593E-01 1.064055387E-07 1.208712613E+01 7.606582676E+07
+ 9.366045192E+07 4.970942871E-01 9.836188079E-08 1.183545912E+01 7.619334430E+07
+ 9.407860664E+07 4.575443651E-01 9.089498100E-08 1.158379210E+01 7.632340335E+07
+ 9.449676136E+07 4.210029837E-01 8.396600950E-08 1.133212509E+01 7.645613695E+07
+ 9.491491608E+07 3.872553024E-01 7.753855416E-08 1.108045808E+01 7.659163403E+07
+ 9.533307080E+07 3.560909521E-01 7.157848476E-08 1.082879106E+01 7.673003589E+07
+ 9.575122553E+07 3.273254655E-01 6.605382365E-08 1.057712405E+01 7.687145648E+07
+ 9.616938025E+07 3.007888107E-01 6.093462292E-08 1.032545704E+01 7.701607196E+07
+ 9.658753497E+07 2.763205372E-01 5.619284748E-08 1.007379002E+01 7.716400098E+07
+ 9.700568969E+07 2.537494465E-01 5.180226410E-08 9.822123008E+00 7.731543165E+07
+ 9.742384441E+07 2.329707783E-01 4.773833603E-08 9.570455994E+00 7.747052745E+07
+ 9.784199913E+07 2.137837580E-01 4.397812305E-08 9.318788980E+00 7.762945681E+07
+ 9.826015385E+07 1.961248658E-01 4.050018662E-08 9.067121966E+00 7.779245490E+07
+ 9.867830857E+07 1.798581646E-01 3.728450007E-08 8.815454952E+00 7.795972786E+07
+ 9.909646329E+07 1.649152953E-01 3.431236349E-08 8.563787938E+00 7.813153375E+07
+ 9.951461801E+07 1.511403426E-01 3.156632314E-08 8.312120924E+00 7.830812051E+07
+ 9.993277273E+07 1.384862772E-01 2.903009527E-08 8.060453910E+00 7.848975469E+07
+ 1.003509275E+08 1.268439719E-01 2.668849401E-08 7.808786896E+00 7.867680495E+07
+ 1.007690822E+08 1.161202998E-01 2.452736327E-08 7.557119882E+00 7.886956119E+07
+ 1.011872369E+08 1.063126412E-01 2.253351242E-08 7.305452868E+00 7.906841972E+07
+ 1.016053916E+08 9.727468126E-02 2.069465551E-08 7.053785854E+00 7.927379054E+07
+ 1.020235463E+08 8.900241843E-02 1.899935399E-08 6.802118841E+00 7.948612947E+07
+ 1.024417011E+08 8.134263122E-02 1.743696268E-08 6.550451827E+00 7.970598352E+07
+ 1.028598558E+08 7.438052097E-02 1.599757878E-08 6.298784813E+00 7.993387293E+07
+ 1.032780105E+08 6.797052319E-02 1.467199394E-08 6.047117799E+00 8.017048774E+07
+ 1.036961652E+08 6.210816152E-02 1.345164906E-08 5.795450785E+00 8.041646766E+07
+ 1.041143199E+08 5.669101714E-02 1.232859177E-08 5.543783771E+00 8.067269821E+07
+ 1.045324747E+08 5.177599034E-02 1.129543647E-08 5.292116757E+00 8.094008018E+07
+ 1.049506294E+08 4.723006937E-02 1.034532668E-08 5.040449743E+00 8.121964882E+07
+ 1.053687841E+08 4.311052898E-02 9.471899811E-09 4.788782729E+00 8.151266023E+07
+ 1.057869388E+08 3.933196550E-02 8.669253913E-09 4.537115715E+00 8.182048307E+07
+ 1.062050935E+08 3.585029353E-02 7.931916595E-09 4.285448701E+00 8.214480869E+07
+ 1.066232483E+08 3.267803956E-02 7.254815799E-09 4.033781687E+00 8.248752921E+07
+ 1.070414030E+08 2.977620595E-02 6.633252421E-09 3.782114674E+00 8.285095656E+07
+ 1.074595577E+08 2.712343522E-02 6.062874642E-09 3.530447660E+00 8.323792398E+07
+ 1.078777124E+08 2.469851027E-02 5.539653890E-09 3.278780646E+00 8.365180963E+07
+ 1.082958671E+08 2.247963800E-02 5.059862326E-09 3.027113632E+00 8.409666553E+07
+ 1.087140219E+08 2.046130576E-02 4.620051782E-09 2.775446618E+00 8.457784769E+07
+ 1.091321766E+08 1.861555333E-02 4.217034058E-09 2.523779604E+00 8.510206859E+07
+ 1.095503313E+08 1.691212894E-02 3.847862500E-09 2.272112590E+00 8.567814583E+07
+ 1.099684860E+08 1.538427972E-02 3.509814791E-09 2.020445576E+00 8.631792844E+07
+ 1.103866407E+08 1.399117513E-02 3.200376871E-09 1.768778562E+00 8.703789791E+07
+ 1.108047955E+08 1.271743953E-02 2.917227932E-09 1.517111548E+00 8.786209101E+07
+ 1.112229502E+08 1.156945769E-02 2.658226413E-09 1.265444534E+00 8.882748420E+07
+ 1.116411049E+08 1.048608937E-02 2.421396944E-09 1.013777521E+00 8.999507030E+07
+ 1.120592596E+08 9.532136316E-03 2.204918164E-09 7.621105066E-01 9.147828248E+07
+ 1.124774144E+08 8.642979626E-03 2.007111383E-09 5.104434927E-01 9.352654443E+07
+ 1.128955691E+08 7.839148949E-03 1.826430019E-09 2.587764788E-01 9.690940557E+07
+ 1.133137238E+08 7.109464853E-03 1.661449755E-09 7.109464853E-03 1.133137579E+08
+ 1.133848184E+08 7.038370204E-03 1.000000000E-09 7.038370204E-03 1.133848170E+08
+ 1.134559131E+08 6.967275555E-03 1.000000000E-09 6.967275555E-03 1.134559130E+08
+ 1.135270077E+08 6.896180907E-03 1.000000000E-09 6.896180907E-03 1.135270077E+08
+ 1.135981024E+08 6.825086258E-03 1.000000000E-09 6.825086258E-03 1.135981024E+08
+ 1.136691970E+08 6.753991610E-03 1.000000000E-09 6.753991610E-03 1.136691980E+08
+ 1.137402917E+08 6.682896961E-03 1.000000000E-09 6.682896961E-03 1.137402890E+08
+ 1.138113863E+08 6.611802313E-03 1.000000000E-09 6.611802313E-03 1.138114080E+08
+ 1.138824810E+08 6.540707664E-03 1.000000000E-09 6.540707664E-03 1.138824810E+08
+ 1.139535756E+08 6.469613016E-03 1.000000000E-09 6.469613016E-03 1.139535520E+08
+ 1.140246703E+08 6.398518367E-03 1.000000000E-09 6.398518367E-03 1.140246702E+08
+ 1.140957649E+08 6.327423719E-03 1.000000000E-09 6.327423719E-03 1.140957760E+08
+ 1.141668596E+08 6.256329070E-03 1.000000000E-09 6.256329070E-03 1.141668594E+08
+ 1.142379542E+08 6.185234422E-03 1.000000000E-09 6.185234422E-03 1.142379520E+08
+ 1.143090489E+08 6.114139773E-03 1.000000000E-09 6.114139773E-03 1.143090490E+08
+ 1.143801435E+08 6.043045125E-03 1.000000000E-09 6.043045125E-03 1.143801435E+08
+ 1.144512382E+08 5.971950476E-03 1.000000000E-09 5.971950476E-03 1.144512380E+08
+ 1.145223328E+08 5.900855828E-03 1.000000000E-09 5.900855828E-03 1.145223310E+08
+ 1.145934275E+08 5.829761179E-03 1.000000000E-09 5.829761179E-03 1.145934270E+08
+ 1.146645221E+08 5.758666531E-03 1.000000000E-09 5.758666531E-03 1.146645440E+08
+ 1.147356168E+08 5.687571882E-03 1.000000000E-09 5.687571882E-03 1.147356480E+08
+ 1.148067114E+08 5.616477233E-03 1.000000000E-09 5.616477233E-03 1.148067110E+08
+ 1.148778061E+08 5.545382585E-03 1.000000000E-09 5.545382585E-03 1.148778060E+08
+ 1.149489007E+08 5.474287936E-03 1.000000000E-09 5.474287936E-03 1.149489008E+08
+ 1.150199954E+08 5.403193288E-03 1.000000000E-09 5.403193288E-03 1.150199977E+08
+ 1.150910900E+08 5.332098639E-03 1.000000000E-09 5.332098639E-03 1.150912000E+08
+ 1.151621847E+08 5.261003991E-03 1.000000000E-09 5.261003991E-03 1.151622763E+08
+ 1.152332793E+08 5.189909342E-03 1.000000000E-09 5.189909342E-03 1.152332960E+08
+ 1.153043740E+08 5.118814694E-03 1.000000000E-09 5.118814694E-03 1.153043739E+08
+ 1.153754686E+08 5.047720045E-03 1.000000000E-09 5.047720045E-03 1.153754720E+08
+ 1.154465632E+08 4.976625397E-03 1.000000000E-09 4.976625397E-03 1.154465636E+08
+ 1.155176579E+08 4.905530748E-03 1.000000000E-09 4.905530748E-03 1.155176579E+08
+ 1.155887525E+08 4.834436100E-03 1.000000000E-09 4.834436100E-03 1.155887526E+08
+ 1.156598472E+08 4.763341451E-03 1.000000000E-09 4.763341451E-03 1.156598400E+08
+ 1.157309418E+08 4.692246803E-03 1.000000000E-09 4.692246803E-03 1.157309418E+08
+ 1.158020365E+08 4.621152154E-03 1.000000000E-09 4.621152154E-03 1.158020365E+08
+ 1.158731311E+08 4.550057506E-03 1.000000000E-09 4.550057506E-03 1.158731310E+08
+ 1.159442258E+08 4.478962857E-03 1.000000000E-09 4.478962857E-03 1.159442250E+08
+ 1.160153204E+08 4.407868209E-03 1.000000000E-09 4.407868209E-03 1.160153190E+08
+ 1.160864151E+08 4.336773560E-03 1.000000000E-09 4.336773560E-03 1.160864075E+08
+ 1.161575097E+08 4.265678912E-03 1.000000000E-09 4.265678912E-03 1.161575100E+08
+ 1.162286044E+08 4.194584263E-03 1.000000000E-09 4.194584263E-03 1.162286044E+08
+ 1.162996990E+08 4.123489614E-03 1.000000000E-09 4.123489614E-03 1.162996989E+08
+ 1.163707937E+08 4.052394966E-03 1.000000000E-09 4.052394966E-03 1.163708000E+08
+ 1.164418883E+08 3.981300317E-03 1.000000000E-09 3.981300317E-03 1.164418880E+08
+ 1.165129830E+08 3.910205669E-03 1.000000000E-09 3.910205669E-03 1.165129920E+08
+ 1.165840776E+08 3.839111020E-03 1.000000000E-09 3.839111020E-03 1.165840760E+08
+ 1.166551723E+08 3.768016372E-03 1.000000000E-09 3.768016372E-03 1.166551680E+08
+ 1.167262669E+08 3.696921723E-03 1.000000000E-09 3.696921723E-03 1.167262690E+08
+ 1.167973616E+08 3.625827075E-03 1.000000000E-09 3.625827075E-03 1.167974400E+08
+ 1.168684562E+08 3.554732426E-03 1.000000000E-09 3.554732426E-03 1.168684550E+08
+ 1.169395509E+08 3.483637778E-03 1.000000000E-09 3.483637778E-03 1.169396634E+08
+ 1.170106455E+08 3.412543129E-03 1.000000000E-09 3.412543129E-03 1.170106560E+08
+ 1.170817402E+08 3.341448481E-03 1.000000000E-09 3.341448481E-03 1.170817410E+08
+ 1.171528348E+08 3.270353832E-03 1.000000000E-09 3.270353832E-03 1.171528348E+08
+ 1.172239295E+08 3.199259184E-03 1.000000000E-09 3.199259184E-03 1.172239295E+08
+ 1.172950241E+08 3.128164535E-03 1.000000000E-09 3.128164535E-03 1.172950250E+08
+ 1.173661188E+08 3.057069887E-03 1.000000000E-09 3.057069887E-03 1.173661189E+08
+ 1.174372134E+08 2.985975238E-03 1.000000000E-09 2.985975238E-03 1.174372150E+08
+ 1.175083081E+08 2.914880590E-03 1.000000000E-09 2.914880590E-03 1.175083200E+08
+ 1.175794027E+08 2.843785941E-03 1.000000000E-09 2.843785941E-03 1.175794027E+08
+ 1.176504974E+08 2.772691292E-03 1.000000000E-09 2.772691292E-03 1.176505920E+08
+ 1.177215920E+08 2.701596644E-03 1.000000000E-09 2.701596644E-03 1.177215920E+08
+ 1.177926867E+08 2.630501995E-03 1.000000000E-09 2.630501995E-03 1.177927680E+08
+ 1.178637813E+08 2.559407347E-03 1.000000000E-09 2.559407347E-03 1.178637920E+08
+ 1.179348759E+08 2.488312698E-03 1.000000000E-09 2.488312698E-03 1.179348800E+08
+ 1.180059706E+08 2.417218050E-03 1.000000000E-09 2.417218050E-03 1.180059713E+08
+ 1.180770652E+08 2.346123401E-03 1.000000000E-09 2.346123401E-03 1.180770652E+08
+ 1.181481599E+08 2.275028753E-03 1.000000000E-09 2.275028753E-03 1.181481599E+08
+ 1.182192545E+08 2.203934104E-03 1.000000000E-09 2.203934104E-03 1.182192640E+08
+ 1.182903492E+08 2.132839456E-03 1.000000000E-09 2.132839456E-03 1.182904320E+08
+ 1.183614438E+08 2.061744807E-03 1.000000000E-09 2.061744807E-03 1.183614438E+08
+ 1.184325385E+08 1.990650159E-03 1.000000000E-09 1.990650159E-03 1.184325940E+08
+ 1.185036331E+08 1.919555510E-03 1.000000000E-09 1.919555510E-03 1.185037048E+08
+ 1.185747278E+08 1.848460862E-03 1.000000000E-09 1.848460862E-03 1.185747278E+08
+ 1.186458224E+08 1.777366213E-03 1.000000000E-09 1.777366213E-03 1.186458224E+08
+ 1.187169171E+08 1.706271565E-03 1.000000000E-09 1.706271565E-03 1.187169225E+08
+ 1.187880117E+08 1.635176916E-03 1.000000000E-09 1.635176916E-03 1.187880160E+08
+ 1.188591064E+08 1.564082268E-03 1.000000000E-09 1.564082268E-03 1.188591067E+08
+ 1.189302010E+08 1.492987619E-03 1.000000000E-09 1.492987619E-03 1.189302010E+08
+ 1.190012957E+08 1.421892971E-03 1.000000000E-09 1.421892971E-03 1.190012960E+08
+ 1.190723903E+08 1.350798322E-03 1.000000000E-09 1.350798322E-03 1.190723903E+08
+ 1.191434850E+08 1.279703673E-03 1.000000000E-09 1.279703673E-03 1.191434880E+08
+ 1.192145796E+08 1.208609025E-03 1.000000000E-09 1.208609025E-03 1.192145760E+08
+ 1.192856743E+08 1.137514376E-03 1.000000000E-09 1.137514376E-03 1.192857600E+08
+ 1.193567689E+08 1.066419728E-03 1.000000000E-09 1.066419728E-03 1.193567689E+08
+ 1.194278636E+08 9.953250794E-04 1.000000000E-09 9.953250794E-04 1.194278678E+08
+ 1.194989582E+08 9.242304308E-04 1.000000000E-09 9.242304308E-04 1.194989582E+08
+ 1.195700529E+08 8.531357823E-04 1.000000000E-09 8.531357823E-04 1.195700530E+08
+ 1.196411475E+08 7.820411338E-04 1.000000000E-09 7.820411338E-04 1.196412606E+08
+ 1.197122422E+08 7.109464853E-04 1.000000000E-09 7.109464853E-04 1.197122720E+08
+ 1.197833368E+08 6.398518367E-04 1.000000000E-09 6.398518367E-04 1.197833804E+08
+ 1.198544315E+08 5.687571882E-04 1.000000000E-09 5.687571882E-04 1.198544320E+08
+ 1.199255261E+08 4.976625397E-04 1.000000000E-09 4.976625397E-04 1.199255040E+08
+ 1.199966208E+08 4.265678912E-04 1.000000000E-09 4.265678912E-04 1.199966720E+08
+ 1.200677154E+08 3.554732426E-04 1.000000000E-09 3.554732426E-04 1.200677154E+08
+ 1.201388101E+08 2.843785941E-04 1.000000000E-09 2.843785941E-04 1.201388160E+08
+ 1.202099047E+08 2.132839456E-04 1.000000000E-09 2.132839456E-04 1.202099200E+08
+ 1.202809993E+08 1.421892971E-04 1.000000000E-09 1.421892971E-04 1.202809993E+08
+ 1.203520940E+08 7.109464853E-05 1.000000000E-09 7.109464853E-05 1.203520950E+08
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/EGSDAT2
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/EGSDAT2	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/EGSDAT2	(revision 4308)
@@ -0,0 +1,2621 @@
+ MEDIUM=AIR-NTP                 ,STERNCID=AIR-NTP                 
+ MIXT,RHO= 1.2250E-09,NE= 4,GASP= 1.0000E-06
+ ASYM=N ,Z= 7.,A=   14.007,PZ= 5.39228E-02,RHOZ= 7.55280E-01
+ ASYM=O ,Z= 8.,A=   15.999,PZ= 1.44793E-02,RHOZ= 2.31660E-01
+ ASYM=AR,Z=18.,A=   39.948,PZ= 3.20917E-04,RHOZ= 1.28200E-02
+ ASYM=C ,Z= 6.,A=   12.011,PZ= 3.33024E-06,RHOZ= 4.00000E-05
+    2.98933E+10   3.51200E+00   3.00000E+00   1.00000E+14   1.00000E+14
+     0  500    0  500    0    0    0    0    0
+    9.99982E-01  -2.10419E-01   4.82862E-02   9.95879E-01  -2.25858E-01
+    9.52000E-01   1.00022E+00  -1.78214E-01   3.43565E-02   1.01413E+00
+   -2.29996E-01   9.52000E-01   1.00034E+00  -1.61665E-01   2.48128E-02
+    1.02350E+00  -2.32123E-01   9.52000E-01   9.99982E-01  -2.10592E-01
+    4.83260E-02   9.95876E-01  -2.26044E-01   9.52000E-01   1.00022E+00
+   -1.78364E-01   3.43853E-02   1.01414E+00  -2.30189E-01   9.52000E-01
+    1.00034E+00  -1.61802E-01   2.48338E-02   1.02352E+00  -2.32319E-01
+    9.52000E-01
+    3.56389E+01   9.41131E-01   8.53760E-01   2.28015E+00   9.41145E-01
+    8.53757E-01   2.27175E+00
+    9.00118E-02   7.50905E-05   2.66396E+05   4.89667E+00
+   -1.46083E+01   1.59637E+01
+   -8.04319E-02   7.32113E-02   8.78001E-01   9.98452E-02   5.71660E+01
+    7.57054E+00   5.79697E+01   5.34237E+00   1.00000E+00   0.00000E+00
+   -8.13948E-02   7.40878E-02  -8.38576E-01   7.63096E-01  -2.52360E-02
+    5.46241E-02  -8.04319E-02   7.32113E-02   8.78001E-01   9.98452E-02
+    5.71660E+01   7.57054E+00   5.79697E+01   5.34237E+00   1.00000E+00
+    0.00000E+00  -8.13948E-02   7.40878E-02  -8.38576E-01   7.63096E-01
+   -2.52360E-02   5.46241E-02  -1.28801E-01   1.17063E-01   8.68294E-01
+    1.08651E-01   5.71195E+01   7.61280E+00   5.78330E+01   5.46541E+00
+    1.00000E+00   0.00000E+00  -1.29414E-01   1.17622E-01  -8.29965E-01
+    7.55290E-01  -2.88402E-02   5.78915E-02  -2.11881E-01   1.88336E-01
+    8.50618E-01   1.23813E-01   5.70182E+01   7.69978E+00   5.75838E+01
+    5.67923E+00   1.00000E+00   0.00000E+00  -2.10144E-01   1.86878E-01
+   -8.09705E-01   7.37909E-01  -3.65706E-02   6.45233E-02  -2.86440E-01
+    2.49036E-01   8.29874E-01   1.40702E-01   5.68593E+01   7.82911E+00
+    5.73008E+01   5.90965E+00   1.00000E+00   0.00000E+00  -2.79696E-01
+    2.43502E-01  -7.88228E-01   7.20424E-01  -4.56900E-02   7.19476E-02
+   -3.58949E-01   3.05203E-01   8.00491E-01   1.63464E-01   5.65925E+01
+    8.03579E+00   5.69322E+01   6.19513E+00   1.00000E+00   0.00000E+00
+   -3.43803E-01   2.93161E-01  -7.69622E-01   7.06011E-01  -5.64218E-02
+    8.02606E-02  -4.27723E-01   3.56011E-01   7.65057E-01   1.89640E-01
+    5.64529E+01   8.13884E+00   5.67119E+01   6.35798E+00   1.00000E+00
+    0.00000E+00  -4.00029E-01   3.34700E-01  -7.50508E-01   6.91891E-01
+   -6.90261E-02   8.95724E-02  -4.95102E-01   4.03588E-01   7.22093E-01
+    2.19978E-01   5.63226E+01   8.23090E+00   5.65191E+01   6.49401E+00
+    1.00000E+00   0.00000E+00  -4.49712E-01   3.69781E-01  -7.31039E-01
+    6.78143E-01  -8.37993E-02   1.00004E-01  -5.61721E-01   4.48634E-01
+    6.71887E-01   2.53925E-01   5.62048E+01   8.31056E+00   5.63565E+01
+    6.60399E+00   1.00000E+00   0.00000E+00  -4.92509E-01   3.98719E-01
+   -7.10057E-01   6.63956E-01  -1.01088E-01   1.11694E-01  -6.27845E-01
+    4.91530E-01   6.14993E-01   2.90834E-01   5.61031E+01   8.37657E+00
+    5.62252E+01   6.68912E+00   1.00000E+00   0.00000E+00  -5.27830E-01
+    4.21633E-01  -6.86358E-01   6.48582E-01  -1.21286E-01   1.24797E-01
+   -7.07618E-01   5.41258E-01   5.38069E-01   3.38787E-01   5.58319E+01
+    8.54562E+00   5.59397E+01   6.86706E+00   1.00000E+00   0.00000E+00
+   -5.65617E-01   4.45188E-01  -6.66702E-01   6.36328E-01  -1.44850E-01
+    1.39486E-01  -7.93028E-01   5.92500E-01   4.49878E-01   3.91697E-01
+    5.55841E+01   8.69422E+00   5.56903E+01   7.01676E+00   1.00000E+00
+    0.00000E+00  -5.97460E-01   4.64293E-01  -6.43743E-01   6.22555E-01
+   -1.72306E-01   1.55958E-01  -8.71197E-01   6.37699E-01   3.64030E-01
+    4.41335E-01   5.54914E+01   8.74780E+00   5.56074E+01   7.06473E+00
+    1.00000E+00   0.00000E+00  -6.13586E-01   4.73617E-01  -6.10277E-01
+    6.03204E-01  -2.04256E-01   1.74433E-01  -4.14056E+00   2.46203E+00
+    2.72448E-01   4.92440E-01   6.52966E+01   3.27648E+00   5.55521E+01
+    7.09555E+00   8.49034E+00  -4.17967E+00  -6.20722E-01   4.77599E-01
+   -5.71328E-01   5.81470E-01  -2.41396E-01   1.95157E-01  -3.71529E+00
+    2.23274E+00   1.76037E-01   5.44420E-01   6.42928E+01   3.81774E+00
+    5.55232E+01   7.11115E+00   3.76246E+00  -1.63058E+00  -6.18869E-01
+    4.76600E-01  -5.26940E-01   5.57538E-01  -2.84524E-01   2.18410E-01
+   -3.38023E+00   2.05799E+00   7.57934E-02   5.96701E-01   6.35076E+01
+    4.22720E+00   5.55201E+01   7.11272E+00   2.12844E+00  -7.78363E-01
+   -6.08299E-01   4.71087E-01  -4.77448E-01   5.31725E-01  -3.34555E-01
+    2.44503E-01  -3.11316E+00   1.92311E+00  -2.73045E-02   6.48771E-01
+    6.28874E+01   4.54033E+00   5.55416E+01   7.10188E+00   1.36403E+00
+   -3.92297E-01  -5.89545E-01   4.61615E-01  -4.23433E-01   5.04444E-01
+   -3.92545E-01   2.73791E-01  -2.89821E+00   1.81788E+00  -1.32161E-01
+    7.00105E-01   6.23955E+01   4.78124E+00   5.55860E+01   7.08009E+00
+    9.43861E-01  -1.86601E-01  -5.63350E-01   4.48791E-01  -3.65639E-01
+    4.76151E-01  -4.59702E-01   3.06668E-01  -2.72381E+00   1.73504E+00
+   -2.37763E-01   7.50265E-01   6.20041E+01   4.96720E+00   5.56533E+01
+    7.04828E+00   6.89268E-01  -6.56702E-02  -5.30602E-01   4.33237E-01
+   -3.04926E-01   4.47313E-01  -5.37413E-01   3.43581E-01  -2.58124E+00
+    1.66928E+00  -3.42978E-01   7.98797E-01   6.16940E+01   5.11021E+00
+    5.57400E+01   7.00824E+00   5.25232E-01   9.99372E-03  -4.92305E-01
+    4.15571E-01  -2.42201E-01   4.18380E-01  -6.27275E-01   3.85031E-01
+   -2.46373E+00   1.61659E+00  -4.46775E-01   8.45331E-01   6.14497E+01
+    5.21980E+00   5.58455E+01   6.96095E+00   4.15512E-01   5.91828E-02
+   -4.49469E-01   3.96367E-01  -1.78354E-01   3.89757E-01  -7.31112E-01
+    4.31582E-01  -2.40027E+00   1.58892E+00  -5.82382E-01   9.04464E-01
+    6.11101E+01   5.36780E+00   5.58172E+01   6.97316E+00   3.29390E-01
+    9.67373E-02  -4.14589E-01   3.81157E-01  -1.20033E-01   3.64325E-01
+   -8.51020E-01   4.83870E-01  -2.36780E+00   1.57514E+00  -7.30064E-01
+    9.67152E-01   6.07783E+01   5.50872E+00   5.57668E+01   6.99460E+00
+    2.65125E-01   1.24016E-01  -3.79204E-01   3.66138E-01  -6.25048E-02
+    3.39905E-01  -9.89403E-01   5.42610E-01  -2.30867E+00   1.55069E+00
+   -8.34780E-01   1.01045E+00   6.06217E+01   5.57339E+00   5.58661E+01
+    6.95355E+00   2.31725E-01   1.37826E-01  -3.27775E-01   3.44872E-01
+    1.43298E-03   3.13469E-01  -1.14902E+00   6.08606E-01  -2.26246E+00
+    1.53206E+00  -9.38141E-01   1.05211E+00   6.04885E+01   5.62708E+00
+    5.59682E+01   6.91236E+00   2.09686E-01   1.46709E-01  -2.76247E-01
+    3.24105E-01   6.32867E-02   2.88540E-01  -1.33301E+00   6.82764E-01
+   -2.23126E+00   1.51980E+00  -1.04391E+00   1.09369E+00   6.03961E+01
+    5.66337E+00   5.60944E+01   6.86279E+00   1.95120E-01   1.52435E-01
+   -2.26189E-01   3.04426E-01   1.22322E-01   2.65332E-01  -1.54501E+00
+    7.66102E-01  -2.20936E+00   1.51140E+00  -1.14773E+00   1.13352E+00
+    6.03296E+01   5.68885E+00   5.62308E+01   6.81044E+00   1.87164E-01
+    1.55487E-01  -1.76869E-01   2.85504E-01   1.78850E-01   2.43644E-01
+   -1.78915E+00   8.59770E-01  -2.19407E+00   1.50567E+00  -1.24803E+00
+    1.17110E+00   6.02829E+01   5.70639E+00   5.63743E+01   6.75673E+00
+    1.84572E-01   1.56459E-01  -1.28433E-01   2.67357E-01   2.32804E-01
+    2.23430E-01  -2.07017E+00   9.65058E-01  -2.18397E+00   1.50197E+00
+   -1.34436E+00   1.20636E+00   6.02490E+01   5.71881E+00   5.65199E+01
+    6.70339E+00   1.86188E-01   1.55867E-01  -8.12286E-02   2.50077E-01
+    2.84026E-01   2.04679E-01  -2.39350E+00   1.08342E+00  -2.17695E+00
+    1.49946E+00  -1.43541E+00   1.23895E+00   6.02298E+01   5.72573E+00
+    5.66690E+01   6.65002E+00   1.91295E-01   1.54040E-01  -3.53637E-02
+    2.33664E-01   3.32518E-01   1.87326E-01  -2.76536E+00   1.21650E+00
+   -2.17277E+00   1.49800E+00  -1.52160E+00   1.26911E+00   6.02178E+01
+    5.72989E+00   5.68181E+01   6.59791E+00   1.99024E-01   1.51334E-01
+    8.77293E-03   2.18215E-01   3.78161E-01   1.71350E-01  -3.19286E+00
+    1.36613E+00  -2.16981E+00   1.49698E+00  -1.60203E+00   1.29666E+00
+    6.02144E+01   5.73109E+00   5.69669E+01   6.54686E+00   2.08902E-01
+    1.47951E-01   5.11645E-02   2.03696E-01   4.21038E-01   1.56665E-01
+   -3.68411E+00   1.53438E+00  -2.16779E+00   1.49631E+00  -1.67686E+00
+    1.32175E+00   6.02161E+01   5.73050E+00   5.71138E+01   6.49768E+00
+    2.20406E-01   1.44093E-01   9.16210E-02   1.90130E-01   4.61163E-01
+    1.43209E-01  -4.24847E+00   1.72362E+00  -2.16629E+00   1.49581E+00
+   -1.74615E+00   1.34451E+00   6.02217E+01   5.72867E+00   5.72580E+01
+    6.45030E+00   2.33139E-01   1.39912E-01   1.30068E-01   1.77503E-01
+    4.98622E-01   1.30907E-01  -4.89652E+00   1.93645E+00  -2.16489E+00
+    1.49537E+00  -1.80999E+00   1.36505E+00   6.02303E+01   5.72585E+00
+    5.73988E+01   6.40497E+00   2.46760E-01   1.35528E-01   1.66495E-01
+    1.65782E-01   5.33525E-01   1.19676E-01  -5.64046E+00   2.17585E+00
+   -2.16337E+00   1.49488E+00  -1.86846E+00   1.38349E+00   6.02415E+01
+    5.72234E+00   5.75369E+01   6.36139E+00   2.61022E-01   1.31030E-01
+    2.00891E-01   1.54932E-01   5.65982E-01   1.09438E-01  -6.49420E+00
+    2.44515E+00  -2.16144E+00   1.49429E+00  -1.92168E+00   1.39996E+00
+    6.02554E+01   5.71806E+00   5.76712E+01   6.31984E+00   2.75709E-01
+    1.26487E-01   2.33306E-01   1.44905E-01   5.96135E-01   1.00111E-01
+   -7.47366E+00   2.74812E+00  -2.15897E+00   1.49354E+00  -1.96984E+00
+    1.41457E+00   6.02687E+01   5.71406E+00   5.78002E+01   6.28064E+00
+    2.90649E-01   1.21953E-01   2.63801E-01   1.35651E-01   6.24111E-01
+    9.16219E-02  -8.59696E+00   3.08898E+00  -2.15609E+00   1.49268E+00
+   -2.01335E+00   1.42753E+00   6.02843E+01   5.70943E+00   5.79274E+01
+    6.24276E+00   3.05663E-01   1.17483E-01   2.92411E-01   1.27131E-01
+    6.50053E-01   8.38966E-02  -9.88493E+00   3.47251E+00  -2.15268E+00
+    1.49168E+00  -2.05239E+00   1.43894E+00   6.02987E+01   5.70515E+00
+    5.80485E+01   6.20742E+00   3.20666E-01   1.13097E-01   3.19246E-01
+    1.19288E-01   6.74097E-01   7.68675E-02  -1.13613E+01   3.90409E+00
+   -2.14833E+00   1.49044E+00  -2.08684E+00   1.44883E+00   6.03150E+01
+    5.70054E+00   5.81666E+01   6.17359E+00   3.35571E-01   1.08817E-01
+    3.44405E-01   1.12064E-01   6.96377E-01   7.04718E-02  -1.30530E+01
+    4.38975E+00  -2.14302E+00   1.48894E+00  -2.11685E+00   1.45729E+00
+    6.03306E+01   5.69616E+00   5.82806E+01   6.14143E+00   3.50339E-01
+    1.04653E-01   3.67987E-01   1.05414E-01   7.17024E-01   6.46495E-02
+   -1.49913E+01   4.93634E+00  -2.13709E+00   1.48729E+00  -2.14308E+00
+    1.46456E+00   6.03465E+01   5.69163E+00   5.83905E+01   6.11096E+00
+    3.64850E-01   1.00632E-01   3.90069E-01   9.92955E-02   7.36155E-01
+    5.93484E-02  -1.72112E+01   5.55151E+00  -2.13073E+00   1.48556E+00
+   -2.16582E+00   1.47076E+00   6.03618E+01   5.68751E+00   5.84949E+01
+    6.08248E+00   3.79071E-01   9.67582E-02   4.10706E-01   9.36744E-02
+    7.53871E-01   5.45225E-02  -1.97535E+01   6.24396E+00  -2.12399E+00
+    1.48375E+00  -2.18543E+00   1.47601E+00   6.03764E+01   5.68361E+00
+    5.85968E+01   6.05520E+00   3.92966E-01   9.30378E-02   4.30026E-01
+    8.85010E-02   7.70298E-01   5.01227E-02  -2.26638E+01   7.02337E+00
+   -2.11615E+00   1.48169E+00  -2.20136E+00   1.48020E+00   6.03913E+01
+    5.67957E+00   5.86935E+01   6.02973E+00   4.06552E-01   8.94588E-02
+    4.48130E-01   8.37317E-02   7.85530E-01   4.61110E-02  -2.59950E+01
+    7.90078E+00  -1.96844E+00   1.44342E+00  -2.07495E+00   1.44745E+00
+    6.05835E+01   5.62990E+00   5.89651E+01   5.95935E+00   4.28949E-01
+    8.36559E-02   4.73738E-01   7.70962E-02   8.00971E-01   4.21110E-02
+   -2.98071E+01   8.88855E+00  -2.09734E+00   1.47628E+00  -2.22289E+00
+    1.48517E+00   6.04181E+01   5.67214E+00   5.88757E+01   5.98223E+00
+    4.32327E-01   8.27945E-02   4.80663E-01   7.53308E-02   8.12656E-01
+    3.91307E-02  -3.41686E+01   1.00006E+01  -2.08833E+00   1.47402E+00
+   -2.23086E+00   1.48717E+00   6.04305E+01   5.66900E+00   5.89597E+01
+    5.96106E+00   4.44809E-01   7.96615E-02   4.95551E-01   7.15936E-02
+    8.24838E-01   3.60737E-02  -3.91576E+01   1.12527E+01  -2.07840E+00
+    1.47157E+00  -2.23588E+00   1.48841E+00   6.04436E+01   5.66571E+00
+    5.90430E+01   5.94047E+00   4.56954E-01   7.66613E-02   5.09538E-01
+    6.81377E-02   8.36146E-01   3.32791E-02  -4.48636E+01   1.26626E+01
+   -2.06807E+00   1.46905E+00  -2.23879E+00   1.48911E+00   6.04558E+01
+    5.66262E+00   5.91215E+01   5.92131E+00   4.68718E-01   7.37986E-02
+    5.22684E-01   6.49392E-02   8.46663E-01   3.07193E-02  -5.13880E+01
+    1.42501E+01  -2.05730E+00   1.46648E+00  -2.23948E+00   1.48928E+00
+    6.04685E+01   5.65974E+00   5.91979E+01   5.90308E+00   4.80132E-01
+    7.10626E-02   5.35035E-01   6.19795E-02   8.56451E-01   2.83750E-02
+   -5.88474E+01   1.60378E+01  -2.04622E+00   1.46386E+00  -2.23838E+00
+    1.48902E+00   6.04792E+01   5.65718E+00   5.92700E+01   5.88603E+00
+    4.91155E-01   6.84593E-02   5.46651E-01   5.92363E-02   8.65548E-01
+    2.62265E-02  -5.34629E+01   1.47664E+01  -2.03474E+00   1.46119E+00
+   -2.23540E+00   1.48832E+00   6.04904E+01   5.65450E+00   5.93387E+01
+    5.87008E+00   5.01861E-01   6.59692E-02   5.57601E-01   5.66891E-02
+    8.74020E-01   2.42559E-02   1.00000E+01   0.00000E+00  -2.02332E+00
+    1.45857E+00  -2.23116E+00   1.48736E+00   6.05021E+01   5.65195E+00
+    5.94055E+01   5.85473E+00   5.12176E-01   6.36028E-02   5.67900E-01
+    5.43265E-02   8.81914E-01   2.24452E-02   1.00000E+01   0.00000E+00
+   -2.01130E+00   1.45585E+00  -2.22517E+00   1.48600E+00   6.05109E+01
+    5.64987E+00   5.94683E+01   5.84048E+00   5.22189E-01   6.13401E-02
+    5.77655E-01   5.21219E-02   8.89267E-01   2.07820E-02   9.99997E+00
+    0.00000E+00  -1.99906E+00   1.45312E+00  -2.21777E+00   1.48435E+00
+    6.05216E+01   5.64756E+00   5.95297E+01   5.82696E+00   5.31857E-01
+    5.91849E-02   5.86846E-01   5.00723E-02   8.96125E-01   1.92538E-02
+    9.99997E+00   0.00000E+00  -1.98706E+00   1.45048E+00  -2.20952E+00
+    1.48254E+00   6.05308E+01   5.64549E+00   5.95867E+01   5.81430E+00
+    5.41204E-01   5.71297E-02   5.95543E-01   4.81598E-02   9.02535E-01
+    1.78456E-02   1.00000E+01   0.00000E+00  -1.97349E+00   1.44754E+00
+   -2.19884E+00   1.48023E+00   6.05396E+01   5.64362E+00   5.96423E+01
+    5.80232E+00   5.50285E-01   5.51596E-02   6.03828E-01   4.63639E-02
+    9.08511E-01   1.65486E-02   1.00000E+01   0.00000E+00  -1.96304E+00
+    1.44531E+00  -2.19042E+00   1.47842E+00   6.05479E+01   5.64184E+00
+    5.96953E+01   5.79091E+00   5.58948E-01   5.33065E-02   6.11574E-01
+    4.47067E-02   9.14075E-01   1.53564E-02   9.99997E+00   0.00000E+00
+   -1.94946E+00   1.44244E+00  -2.17800E+00   1.47580E+00   6.05567E+01
+    5.64001E+00   5.97450E+01   5.78044E+00   5.67443E-01   5.15129E-02
+    6.19026E-01   4.31329E-02   9.19304E-01   1.42536E-02   1.00000E+01
+    0.00000E+00  -1.93680E+00   1.43980E+00  -2.16587E+00   1.47327E+00
+    6.05650E+01   5.63826E+00   5.97928E+01   5.77041E+00   5.75618E-01
+    4.98093E-02   6.26086E-01   4.16616E-02   9.24177E-01   1.32383E-02
+    1.00000E+01   0.00000E+00  -1.92412E+00   1.43719E+00  -2.15306E+00
+    1.47064E+00   6.05703E+01   5.63709E+00   5.98386E+01   5.76107E+00
+    5.83520E-01   4.81836E-02   6.32808E-01   4.02784E-02   9.28743E-01
+    1.22992E-02   9.99997E+00   0.00000E+00  -1.91149E+00   1.43463E+00
+   -2.13967E+00   1.46792E+00   6.05781E+01   5.63550E+00   5.98824E+01
+    5.75218E+00   5.91170E-01   4.66297E-02   6.39210E-01   3.89786E-02
+    9.33021E-01   1.14296E-02   9.99997E+00   0.00000E+00  -1.89852E+00
+    1.43202E+00  -2.12539E+00   1.46505E+00   6.05844E+01   5.63428E+00
+    5.99233E+01   5.74402E+00   5.98577E-01   4.51444E-02   6.45322E-01
+    3.77531E-02   9.37002E-01   1.06312E-02   1.00000E+01   0.00000E+00
+   -1.88682E+00   1.42971E+00  -2.11196E+00   1.46239E+00   6.05917E+01
+    5.63282E+00   5.99638E+01   5.73598E+00   6.05717E-01   4.37314E-02
+    6.51146E-01   3.66008E-02   9.40755E-01   9.88810E-03   1.00000E+01
+    0.00000E+00  -1.87388E+00   1.42718E+00  -2.09680E+00   1.45943E+00
+    6.05981E+01   5.63161E+00   6.00018E+01   5.72855E+00   6.12651E-01
+    4.23736E-02   6.56748E-01   3.55047E-02   9.44272E-01   9.20111E-03
+    9.99997E+00   0.00000E+00  -1.86151E+00   1.42478E+00  -2.08189E+00
+    1.45655E+00   6.06035E+01   5.63059E+00   6.00369E+01   5.72169E+00
+    6.19368E-01   4.10774E-02   6.62094E-01   3.44701E-02   9.47561E-01
+    8.56544E-03   1.00000E+01   0.00000E+00  -1.84907E+00   1.42241E+00
+   -2.06650E+00   1.45361E+00   6.06083E+01   5.62953E+00   6.00705E+01
+    5.71540E+00   6.25858E-01   3.98369E-02   6.67238E-01   3.34894E-02
+    9.50651E-01   7.97557E-03   9.99997E+00   0.00000E+00  -1.83704E+00
+    1.42014E+00  -2.05131E+00   1.45074E+00   6.06132E+01   5.62868E+00
+    6.01036E+01   5.70907E+00   6.32153E-01   3.86494E-02   6.72163E-01
+    3.25598E-02   9.53543E-01   7.43035E-03   1.00000E+01   0.00000E+00
+   -1.82474E+00   1.41785E+00  -2.03553E+00   1.44780E+00   6.06190E+01
+    5.62759E+00   6.01343E+01   5.70334E+00   6.38251E-01   3.75124E-02
+    6.76913E-01   3.16749E-02   9.56261E-01   6.92319E-03   9.99997E+00
+    0.00000E+00  -1.81302E+00   1.41569E+00  -2.02016E+00   1.44496E+00
+    6.06244E+01   5.62661E+00   6.01635E+01   5.69798E+00   6.44150E-01
+    3.64257E-02   6.81472E-01   3.08337E-02   9.58811E-01   6.45220E-03
+    1.00000E+01   0.00000E+00  -1.80174E+00   1.41363E+00  -2.00495E+00
+    1.44219E+00   6.06278E+01   5.62596E+00   6.01933E+01   5.69258E+00
+    6.49862E-01   3.53845E-02   6.85844E-01   3.00361E-02   9.61209E-01
+    6.01636E-03   1.00000E+01   0.00000E+00  -1.78915E+00   1.41137E+00
+   -1.98828E+00   1.43920E+00   6.06327E+01   5.62515E+00   6.02176E+01
+    5.68812E+00   6.55439E-01   3.43790E-02   6.90127E-01   2.92656E-02
+    9.63462E-01   5.61011E-03   9.99997E+00   0.00000E+00  -1.77806E+00
+    1.40939E+00  -1.97299E+00   1.43647E+00   6.06366E+01   5.62442E+00
+    6.02439E+01   5.68349E+00   6.60821E-01   3.34209E-02   6.94222E-01
+    2.85358E-02   9.65571E-01   5.23331E-03   9.99997E+00   0.00000E+00
+   -1.76734E+00   1.40750E+00  -1.95795E+00   1.43381E+00   6.06404E+01
+    5.62381E+00   6.02682E+01   5.67923E+00   6.66035E-01   3.25027E-02
+    6.98165E-01   2.78403E-02   9.67565E-01   4.88411E-03   1.00000E+01
+    0.00000E+00  -1.75596E+00   1.40552E+00  -1.94224E+00   1.43108E+00
+    6.06453E+01   5.62296E+00   6.02916E+01   5.67521E+00   6.71112E-01
+    3.16178E-02   7.02025E-01   2.71694E-02   9.69437E-01   4.55679E-03
+    1.00000E+01   0.00000E+00  -1.74554E+00   1.40372E+00  -1.92732E+00
+    1.42851E+00   6.06473E+01   5.62259E+00   6.03121E+01   5.67168E+00
+    6.76022E-01   3.07709E-02   7.05724E-01   2.65300E-02   9.71188E-01
+    4.25421E-03   9.99997E+00   0.00000E+00  -1.73439E+00   1.40182E+00
+   -1.91159E+00   1.42582E+00   6.06507E+01   5.62194E+00   6.03340E+01
+    5.66774E+00   6.80812E-01   2.99533E-02   7.09342E-01   2.59142E-02
+    9.72848E-01   3.97253E-03   1.00000E+01   0.00000E+00  -1.72417E+00
+    1.40010E+00  -1.89681E+00   1.42334E+00   6.06551E+01   5.62125E+00
+    6.03530E+01   5.66461E+00   6.85461E-01   2.91705E-02   7.12842E-01
+    2.53235E-02   9.74401E-01   3.70994E-03   9.99997E+00   0.00000E+00
+   -1.71406E+00   1.39841E+00  -1.88220E+00   1.42089E+00   6.06551E+01
+    5.62113E+00   6.03715E+01   5.66169E+00   6.89975E-01   2.84159E-02
+    7.16244E-01   2.47545E-02   9.75870E-01   3.46445E-03   1.00000E+01
+    0.00000E+00  -1.70407E+00   1.39676E+00  -1.86758E+00   1.41847E+00
+    6.06619E+01   5.62016E+00   6.03891E+01   5.65864E+00   6.94359E-01
+    2.76918E-02   7.19540E-01   2.42093E-02   9.77240E-01   3.23799E-03
+    9.99997E+00   0.00000E+00  -1.69439E+00   1.39517E+00  -1.85327E+00
+    1.41614E+00   6.06629E+01   5.61991E+00   6.04056E+01   5.65584E+00
+    6.98607E-01   2.69963E-02   7.22760E-01   2.36841E-02   9.78542E-01
+    3.02485E-03   1.00000E+01   0.00000E+00  -1.68488E+00   1.39364E+00
+   -1.83931E+00   1.41387E+00   6.06643E+01   5.61963E+00   6.04217E+01
+    5.65324E+00   7.02773E-01   2.63224E-02   7.25906E-01   2.31739E-02
+    9.79775E-01   2.82597E-03   1.00000E+01   0.00000E+00  -1.67551E+00
+    1.39213E+00  -1.82532E+00   1.41163E+00   6.06677E+01   5.61918E+00
+    6.04368E+01   5.65097E+00   7.06805E-01   2.56756E-02   7.28956E-01
+    2.26859E-02   9.80909E-01   2.64330E-03   9.99997E+00   0.00000E+00
+   -1.66662E+00   1.39071E+00  -1.81192E+00   1.40951E+00   6.06707E+01
+    5.61882E+00   6.04514E+01   5.64853E+00   7.10725E-01   2.50542E-02
+    7.31940E-01   2.22130E-02   9.81997E-01   2.47107E-03   9.99997E+00
+    0.00000E+00  -1.65767E+00   1.38931E+00  -1.79852E+00   1.40741E+00
+    6.06716E+01   5.61845E+00   6.04651E+01   5.64634E+00   7.14562E-01
+    2.44519E-02   7.34848E-01   2.17553E-02   9.83025E-01   2.30932E-03
+    1.00001E+01   0.00000E+00  -1.64908E+00   1.38797E+00  -1.78555E+00
+    1.40538E+00   6.06755E+01   5.61796E+00   6.04777E+01   5.64439E+00
+    7.18292E-01   2.38715E-02   7.37687E-01   2.13138E-02   9.83992E-01
+    2.15993E-03   9.99997E+00   0.00000E+00  -1.64074E+00   1.38669E+00
+   -1.77295E+00   1.40344E+00   6.06755E+01   5.61796E+00   6.04914E+01
+    5.64245E+00   7.21900E-01   2.33149E-02   7.40458E-01   2.08866E-02
+    9.84890E-01   2.02101E-03   9.99997E+00   0.00000E+00  -1.63293E+00
+    1.38550E+00  -1.76081E+00   1.40160E+00   6.06790E+01   5.61743E+00
+    6.05016E+01   5.64082E+00   7.25442E-01   2.27752E-02   7.43170E-01
+    2.04726E-02   9.85750E-01   1.88969E-03   1.00000E+01   0.00000E+00
+   -1.62454E+00   1.38423E+00  -1.74828E+00   1.39970E+00   6.06804E+01
+    5.61723E+00   6.05128E+01   5.63916E+00   7.28895E-01   2.22530E-02
+    7.45840E-01   2.00693E-02   9.86557E-01   1.76791E-03   9.99997E+00
+    0.00000E+00  -1.61711E+00   1.38312E+00  -1.73665E+00   1.39796E+00
+    6.06823E+01   5.61699E+00   6.05255E+01   5.63721E+00   7.32237E-01
+    2.17515E-02   7.48420E-01   1.96830E-02   9.87311E-01   1.65468E-03
+    9.99997E+00   0.00000E+00  -1.60944E+00   1.38198E+00  -1.72496E+00
+    1.39622E+00   6.06823E+01   5.61687E+00   6.05323E+01   5.63623E+00
+    7.35526E-01   2.12644E-02   7.50978E-01   1.93043E-02   9.88034E-01
+    1.54811E-03   1.00001E+01   0.00000E+00  -1.60286E+00   1.38102E+00
+   -1.71455E+00   1.39469E+00   6.06843E+01   5.61662E+00   6.05440E+01
+    5.63453E+00   7.38715E-01   2.07962E-02   7.53467E-01   1.89379E-02
+    9.88704E-01   1.44820E-03   9.99997E+00   0.00000E+00  -1.59646E+00
+    1.38009E+00  -1.70430E+00   1.39320E+00   6.06868E+01   5.61622E+00
+    6.05504E+01   5.63351E+00   7.41808E-01   2.03451E-02   7.55890E-01
+    1.85848E-02   9.89343E-01   1.35684E-03   1.00000E+01   0.00000E+00
+   -1.58654E+00   1.37866E+00  -1.69061E+00   1.39122E+00   6.06882E+01
+    5.61614E+00   6.05615E+01   5.63197E+00   7.44904E-01   1.98980E-02
+    7.58339E-01   1.82310E-02   9.89952E-01   1.26836E-03   9.99997E+00
+    0.00000E+00  -1.58179E+00   1.37797E+00  -1.68209E+00   1.39000E+00
+    6.06892E+01   5.61589E+00   6.05693E+01   5.63087E+00   7.47857E-01
+    1.94765E-02   7.60661E-01   1.78998E-02   9.90508E-01   1.18844E-03
+    9.99997E+00   0.00000E+00  -1.57540E+00   1.37707E+00  -1.67216E+00
+    1.38860E+00   6.06911E+01   5.61577E+00   6.05761E+01   5.62990E+00
+    7.50757E-01   1.90645E-02   7.62960E-01   1.75725E-02   9.91048E-01
+    1.11232E-03   1.00001E+01   0.00000E+00  -1.56931E+00   1.37620E+00
+   -1.66248E+00   1.38724E+00   6.06901E+01   5.61577E+00   6.05830E+01
+    5.62893E+00   7.53589E-01   1.86667E-02   7.65236E-01   1.72537E-02
+    9.91551E-01   1.04190E-03   9.99997E+00   0.00000E+00  -1.56467E+00
+    1.37557E+00  -1.65461E+00   1.38614E+00   6.06946E+01   5.61524E+00
+    6.05922E+01   5.62754E+00   7.56331E-01   1.82850E-02   7.67430E-01
+    1.69482E-02   9.92015E-01   9.76243E-04   1.00000E+01   0.00000E+00
+   -1.55737E+00   1.37456E+00  -1.64397E+00   1.38467E+00   6.06931E+01
+    5.61541E+00   6.05956E+01   5.62710E+00   7.59055E-01   1.79084E-02
+    7.69643E-01   1.66419E-02   9.92472E-01   9.13451E-04   9.99997E+00
+    0.00000E+00  -1.54994E+00   1.37354E+00  -1.63313E+00   1.38319E+00
+    6.06940E+01   5.61516E+00   6.06034E+01   5.62612E+00   7.61734E-01
+    1.75421E-02   7.71797E-01   1.63479E-02   9.92906E-01   8.54457E-04
+    9.99997E+00   0.00000E+00  -1.54623E+00   1.37304E+00  -1.62655E+00
+    1.38229E+00   6.06960E+01   5.61504E+00   6.06083E+01   5.62539E+00
+    7.64299E-01   1.71938E-02   7.73906E-01   1.60606E-02   9.93294E-01
+    8.01172E-04   9.99997E+00   0.00000E+00  -1.54105E+00   1.37234E+00
+   -1.61803E+00   1.38115E+00   6.06970E+01   5.61480E+00   6.06151E+01
+    5.62454E+00   7.66834E-01   1.68532E-02   7.75953E-01   1.57856E-02
+    9.93667E-01   7.51694E-04   1.00001E+01   0.00000E+00  -1.53617E+00
+    1.37167E+00  -1.61034E+00   1.38012E+00   6.06965E+01   5.61500E+00
+    6.06186E+01   5.62413E+00   7.69302E-01   1.65229E-02   7.78010E-01
+    1.55105E-02   9.94025E-01   7.03161E-04   9.99989E+00   0.00000E+00
+   -1.53204E+00   1.37113E+00  -1.60329E+00   1.37919E+00   6.06979E+01
+    5.61468E+00   6.06258E+01   5.62308E+00   7.71721E-01   1.62033E-02
+    7.79988E-01   1.52489E-02   9.94375E-01   6.57494E-04   1.00001E+01
+    0.00000E+00  -1.52558E+00   1.37028E+00  -1.59403E+00   1.37797E+00
+    6.06999E+01   5.61455E+00   6.06297E+01   5.62259E+00   7.74111E-01
+    1.58893E-02   7.81990E-01   1.49863E-02   9.94672E-01   6.18482E-04
+    9.99997E+00   0.00000E+00  -1.52169E+00   1.36980E+00  -1.58758E+00
+    1.37713E+00   6.06979E+01   5.61468E+00   6.06327E+01   5.62223E+00
+    7.76433E-01   1.55867E-02   7.83916E-01   1.47351E-02   9.94984E-01
+    5.77567E-04   9.99997E+00   0.00000E+00  -1.51779E+00   1.36928E+00
+   -1.58100E+00   1.37630E+00   6.07028E+01   5.61419E+00   6.06404E+01
+    5.62125E+00   7.78694E-01   1.52955E-02   7.85826E-01   1.44887E-02
+    9.95258E-01   5.42361E-04   1.00001E+01   0.00000E+00  -1.51280E+00
+    1.36865E+00  -1.57381E+00   1.37535E+00   6.06989E+01   5.61455E+00
+    6.06414E+01   5.62113E+00   7.80932E-01   1.50091E-02   7.87714E-01
+    1.42470E-02   9.95532E-01   5.07155E-04   9.99997E+00   0.00000E+00
+   -1.50925E+00   1.36819E+00  -1.56747E+00   1.37457E+00   6.07014E+01
+    5.61427E+00   6.06449E+01   5.62060E+00   7.83118E-01   1.47312E-02
+    7.89558E-01   1.40128E-02   9.95768E-01   4.76703E-04   1.00000E+01
+    0.00000E+00  -1.50598E+00   1.36777E+00  -1.56188E+00   1.37386E+00
+    6.07028E+01   5.61407E+00   6.06492E+01   5.62004E+00   7.85240E-01
+    1.44630E-02   7.91376E-01   1.37836E-02   9.96019E-01   4.45307E-04
+    9.99997E+00   0.00000E+00  -1.50063E+00   1.36711E+00  -1.55422E+00
+    1.37290E+00   6.07023E+01   5.61423E+00   6.06536E+01   5.61959E+00
+    7.87355E-01   1.41986E-02   7.93163E-01   1.35591E-02   9.96240E-01
+    4.18668E-04   9.99992E+00   0.00000E+00  -1.49755E+00   1.36673E+00
+   -1.54919E+00   1.37227E+00   6.07029E+01   5.61398E+00   6.06561E+01
+    5.61922E+00   7.89392E-01   1.39461E-02   7.94949E-01   1.33390E-02
+    9.96438E-01   3.92017E-04   1.00001E+01   0.00000E+00  -1.49504E+00
+    1.36642E+00  -1.54436E+00   1.37169E+00   6.07037E+01   5.61403E+00
+    6.06589E+01   5.61890E+00   7.91403E-01   1.36982E-02   7.96663E-01
+    1.31272E-02   9.96651E-01   3.66337E-04   1.00000E+01   0.00000E+00
+   -1.48988E+00   1.36579E+00  -1.53737E+00   1.37081E+00   6.07048E+01
+    5.61386E+00   6.06629E+01   5.61837E+00   7.93403E-01   1.34532E-02
+    7.98412E-01   1.29137E-02   9.96833E-01   3.43490E-04   9.99994E+00
+    0.00000E+00  -1.48819E+00   1.36558E+00  -1.53362E+00   1.37037E+00
+    6.07018E+01   5.61419E+00   6.06638E+01   5.61833E+00   7.95311E-01
+    1.32222E-02   8.00068E-01   1.27122E-02   9.97016E-01   3.23514E-04
+    1.00001E+01   0.00000E+00  -1.48393E+00   1.36506E+00  -1.52729E+00
+    1.36961E+00   6.07067E+01   5.61358E+00   6.06687E+01   5.61772E+00
+    7.97237E-01   1.29900E-02   8.01751E-01   1.25105E-02   9.97184E-01
+    3.02581E-04   9.99997E+00   0.00000E+00  -1.48125E+00   1.36476E+00
+   -1.52303E+00   1.36909E+00   6.07057E+01   5.61382E+00   6.06697E+01
+    5.61760E+00   7.99094E-01   1.27683E-02   8.03380E-01   1.23154E-02
+    9.97336E-01   2.83550E-04   9.99997E+00   0.00000E+00  -1.47869E+00
+    1.36445E+00  -1.51876E+00   1.36859E+00   6.07067E+01   5.61370E+00
+    6.06716E+01   5.61736E+00   8.00906E-01   1.25533E-02   8.04994E-01
+    1.21242E-02   9.97488E-01   2.65472E-04   1.00001E+01   0.00000E+00
+   -1.47577E+00   1.36410E+00  -1.51401E+00   1.36803E+00   6.07057E+01
+    5.61382E+00   6.06736E+01   5.61711E+00   8.02725E-01   1.23392E-02
+    8.06592E-01   1.19358E-02   9.97625E-01   2.49296E-04   9.99997E+00
+    0.00000E+00  -1.47297E+00   1.36378E+00  -1.50975E+00   1.36753E+00
+    6.07067E+01   5.61358E+00   6.06775E+01   5.61662E+00   8.04476E-01
+    1.21346E-02   8.08145E-01   1.17540E-02   9.97762E-01   2.34072E-04
+    9.99997E+00   0.00000E+00  -1.47088E+00   1.36353E+00  -1.50595E+00
+    1.36709E+00   6.07048E+01   5.61374E+00   6.06756E+01   5.61678E+00
+    8.06222E-01   1.19318E-02   8.09708E-01   1.15731E-02   9.97899E-01
+    2.18844E-04   1.00001E+01   0.00000E+00  -1.46751E+00   1.36315E+00
+   -1.50100E+00   1.36653E+00   6.07086E+01   5.61342E+00   6.06813E+01
+    5.61622E+00   8.07914E-01   1.17371E-02   8.11225E-01   1.13983E-02
+    9.98006E-01   2.06481E-04   9.99988E+00   0.00000E+00  -1.46576E+00
+    1.36294E+00  -1.49804E+00   1.36618E+00   6.07058E+01   5.61374E+00
+    6.06805E+01   5.61630E+00   8.09587E-01   1.15464E-02   8.12738E-01
+    1.12258E-02   9.98143E-01   1.91251E-04   1.00001E+01   0.00000E+00
+   -1.46386E+00   1.36274E+00  -1.49467E+00   1.36580E+00   6.07096E+01
+    5.61330E+00   6.06833E+01   5.61598E+00   8.11233E-01   1.13593E-02
+    8.14217E-01   1.10586E-02   9.98219E-01   1.80790E-04   1.00000E+01
+    0.00000E+00  -1.46247E+00   1.36257E+00  -1.49207E+00   1.36550E+00
+    6.07038E+01   5.61386E+00   6.06843E+01   5.61581E+00   8.12837E-01
+    1.11791E-02   8.15653E-01   1.08946E-02   9.98310E-01   1.70318E-04
+    9.99994E+00   0.00000E+00  -1.45750E+00   1.36202E+00  -1.48576E+00
+    1.36479E+00   6.07077E+01   5.61346E+00   6.06862E+01   5.61565E+00
+    8.14448E-01   1.09985E-02   8.17127E-01   1.07302E-02   9.98432E-01
+    1.57951E-04   1.00001E+01   0.00000E+00  -1.45750E+00   1.36202E+00
+   -1.48454E+00   1.36466E+00   6.07087E+01   5.61334E+00   6.06882E+01
+    5.61541E+00   8.15985E-01   1.08272E-02   8.18543E-01   1.05741E-02
+    9.98508E-01   1.49387E-04   9.99997E+00   0.00000E+00  -1.45482E+00
+    1.36173E+00  -1.48052E+00   1.36422E+00   6.07106E+01   5.61321E+00
+    6.06901E+01   5.61516E+00   8.17538E-01   1.06560E-02   8.19944E-01
+    1.04190E-02   9.98599E-01   1.39872E-04   9.99997E+00   0.00000E+00
+   -1.45348E+00   1.36157E+00  -1.47808E+00   1.36395E+00   6.07048E+01
+    5.61370E+00   6.06882E+01   5.61541E+00   8.19030E-01   1.04923E-02
+    8.21314E-01   1.02678E-02   9.98676E-01   1.30357E-04   1.00001E+01
+    0.00000E+00  -1.45202E+00   1.36141E+00  -1.47553E+00   1.36368E+00
+    6.07096E+01   5.61334E+00   6.06921E+01   5.61492E+00   8.20507E-01
+    1.03315E-02   8.22684E-01   1.01193E-02   9.98736E-01   1.23696E-04
+    9.99997E+00   0.00000E+00  -1.45007E+00   1.36121E+00  -1.47285E+00
+    1.36339E+00   6.07096E+01   5.61321E+00   6.06940E+01   5.61492E+00
+    8.21953E-01   1.01745E-02   8.24039E-01   9.97279E-03   9.98828E-01
+    1.14181E-04   9.99997E+00   0.00000E+00  -1.44812E+00   1.36100E+00
+   -1.46944E+00   1.36302E+00   6.07077E+01   5.61346E+00   6.06940E+01
+    5.61492E+00   8.23415E-01   1.00175E-02   8.25348E-01   9.83196E-03
+    9.98873E-01   1.09424E-04   9.99997E+00   0.00000E+00  -1.44640E+00
+    1.36081E+00  -1.46686E+00   1.36274E+00   6.07087E+01   5.61337E+00
+    6.06951E+01   5.61471E+00   8.24803E-01   9.86987E-03   8.26660E-01
+    9.69290E-03   9.98950E-01   1.01810E-04   1.00001E+01   0.00000E+00
+   -1.44557E+00   1.36072E+00  -1.46517E+00   1.36256E+00   6.07096E+01
+    5.61334E+00   6.06940E+01   5.61468E+00   8.26201E-01   9.72064E-03
+    8.27967E-01   9.55412E-03   9.99010E-01   9.51511E-05   9.99997E+00
+    0.00000E+00  -1.44532E+00   1.36071E+00  -1.46432E+00   1.36247E+00
+    6.07096E+01   5.61334E+00   6.06960E+01   5.61455E+00   8.27525E-01
+    9.58076E-03   8.29215E-01   9.42091E-03   9.99071E-01   8.75390E-05
+    9.99997E+00   0.00000E+00  -1.44191E+00   1.36034E+00  -1.45969E+00
+    1.36199E+00   6.07096E+01   5.61334E+00   6.06999E+01   5.61431E+00
+    8.28926E-01   9.43518E-03   8.30479E-01   9.28960E-03   9.99102E-01
+    8.46845E-05   9.99997E+00   0.00000E+00  -1.44021E+00   1.36016E+00
+   -1.45750E+00   1.36176E+00   6.07116E+01   5.61309E+00   6.06979E+01
+    5.61443E+00   8.30220E-01   9.30102E-03   8.31742E-01   9.15829E-03
+    9.99178E-01   7.80239E-05   1.00001E+01   0.00000E+00  -1.44009E+00
+    1.36016E+00  -1.45641E+00   1.36165E+00   6.07096E+01   5.61321E+00
+    6.06999E+01   5.61419E+00   8.31529E-01   9.16495E-03   8.32930E-01
+    9.03460E-03   9.99193E-01   7.42179E-05   9.99997E+00   0.00000E+00
+   -1.43838E+00   1.35998E+00  -1.45397E+00   1.36141E+00   6.07096E+01
+    5.61334E+00   6.06999E+01   5.61431E+00   8.32823E-01   9.03365E-03
+    8.34163E-01   8.90900E-03   9.99254E-01   6.85088E-05   9.99997E+00
+    0.00000E+00  -1.43814E+00   1.35995E+00  -1.45300E+00   1.36130E+00
+    6.07096E+01   5.61334E+00   6.06999E+01   5.61407E+00   8.34072E-01
+    8.90519E-03   8.35351E-01   8.78816E-03   9.99300E-01   6.47027E-05
+    1.00001E+01   0.00000E+00  -1.43668E+00   1.35981E+00  -1.45092E+00
+    1.36109E+00   6.07116E+01   5.61309E+00   6.07018E+01   5.61407E+00
+    8.35320E-01   8.77864E-03   8.36538E-01   8.66827E-03   9.99330E-01
+    6.08967E-05   9.99997E+00   0.00000E+00  -1.43558E+00   1.35969E+00
+   -1.44898E+00   1.36090E+00   6.07096E+01   5.61334E+00   6.06999E+01
+    5.61419E+00   8.36538E-01   8.65590E-03   8.37695E-01   8.55218E-03
+    9.99376E-01   5.70907E-05   9.99997E+00   0.00000E+00  -1.43446E+00
+    1.35959E+00  -1.44737E+00   1.36073E+00   6.07087E+01   5.61337E+00
+    6.07029E+01   5.61386E+00   8.37758E-01   8.53492E-03   8.38824E-01
+    8.43882E-03   9.99406E-01   5.42353E-05   1.00001E+01   0.00000E+00
+   -1.43400E+00   1.35953E+00  -1.44630E+00   1.36063E+00   6.07135E+01
+    5.61297E+00   6.07018E+01   5.61395E+00   8.38943E-01   8.41707E-03
+    8.39979E-01   8.32477E-03   9.99437E-01   5.04301E-05   9.99997E+00
+    0.00000E+00  -1.43302E+00   1.35944E+00  -1.44471E+00   1.36048E+00
+    6.07096E+01   5.61321E+00   6.07018E+01   5.61395E+00   8.40116E-01
+    8.30098E-03   8.41075E-01   8.21439E-03   9.99482E-01   4.66240E-05
+    9.99997E+00   0.00000E+00  -1.43180E+00   1.35932E+00  -1.44325E+00
+    1.36033E+00   6.07096E+01   5.61321E+00   6.07038E+01   5.61370E+00
+    8.41273E-01   8.18775E-03   8.42201E-01   8.10497E-03   9.99513E-01
+    4.37695E-05   9.99997E+00   0.00000E+00  -1.43034E+00   1.35917E+00
+   -1.44106E+00   1.36010E+00   6.07135E+01   5.61297E+00   6.07057E+01
+    5.61358E+00   8.42399E-01   8.07738E-03   8.43282E-01   7.99935E-03
+    9.99528E-01   4.18665E-05   9.99997E+00   0.00000E+00  -1.43059E+00
+    1.35918E+00  -1.44082E+00   1.36008E+00   6.07077E+01   5.61346E+00
+    6.07038E+01   5.61395E+00   8.43526E-01   7.96795E-03   8.44363E-01
+    7.89469E-03   9.99559E-01   3.80604E-05   1.00001E+01   0.00000E+00
+   -1.42937E+00   1.35909E+00  -1.43911E+00   1.35991E+00   6.07116E+01
+    5.61321E+00   6.07077E+01   5.61358E+00   8.44637E-01   7.86043E-03
+    8.45398E-01   7.79478E-03   9.99574E-01   3.71089E-05   9.99997E+00
+    0.00000E+00  -1.42864E+00   1.35902E+00  -1.43789E+00   1.35981E+00
+    6.07116E+01   5.61309E+00   6.07057E+01   5.61370E+00   8.45718E-01
+    7.75672E-03   8.46464E-01   7.69297E-03   9.99589E-01   3.52059E-05
+    9.99997E+00   0.00000E+00  -1.42742E+00   1.35889E+00  -1.43643E+00
+    1.35966E+00   6.07135E+01   5.61285E+00   6.07077E+01   5.61346E+00
+    8.46799E-01   7.65491E-03   8.47515E-01   7.59306E-03   9.99635E-01
+    3.13999E-05   1.00001E+01   0.00000E+00  -1.42742E+00   1.35888E+00
+   -1.43570E+00   1.35960E+00   6.07077E+01   5.61334E+00   6.07057E+01
+    5.61358E+00   8.47865E-01   7.55405E-03   8.48504E-01   7.49791E-03
+    9.99650E-01   3.04484E-05   9.99997E+00   0.00000E+00  -1.42718E+00
+    1.35888E+00  -1.43521E+00   1.35955E+00   6.07096E+01   5.61321E+00
+    6.07057E+01   5.61370E+00   8.48900E-01   7.45604E-03   8.49524E-01
+    7.40276E-03   9.99665E-01   2.85453E-05   9.99997E+00   0.00000E+00
+   -1.42594E+00   1.35875E+00  -1.43349E+00   1.35941E+00   6.07107E+01
+    5.61325E+00   6.07068E+01   5.61349E+00   8.49938E-01   7.35887E-03
+    8.50547E-01   7.30749E-03   9.99711E-01   2.56904E-05   1.00001E+01
+    0.00000E+00  -1.42571E+00   1.35874E+00  -1.43302E+00   1.35934E+00
+    6.07116E+01   5.61309E+00   6.07077E+01   5.61346E+00   8.50955E-01
+    7.26479E-03   8.51503E-01   7.21816E-03   9.99696E-01   2.56908E-05
+    9.99997E+00   0.00000E+00  -1.42498E+00   1.35868E+00  -1.43229E+00
+    1.35929E+00   6.07116E+01   5.61309E+00   6.07077E+01   5.61346E+00
+    8.51945E-01   7.17344E-03   8.52493E-01   7.12682E-03   9.99726E-01
+    2.28363E-05   9.99997E+00   0.00000E+00  -1.42450E+00   1.35864E+00
+   -1.43107E+00   1.35918E+00   6.07116E+01   5.61309E+00   6.07077E+01
+    5.61346E+00   8.52950E-01   7.08019E-03   8.53452E-01   7.03833E-03
+    9.99756E-01   2.09332E-05   9.99997E+00   0.00000E+00  -1.42376E+00
+    1.35856E+00  -1.42985E+00   1.35906E+00   6.07135E+01   5.61309E+00
+    6.07096E+01   5.61334E+00   8.53924E-01   6.99170E-03   8.54381E-01
+    6.95269E-03   9.99741E-01   2.18848E-05   9.99997E+00   0.00000E+00
+   -1.42328E+00   1.35851E+00  -1.42937E+00   1.35902E+00   6.07096E+01
+    5.61321E+00   6.07077E+01   5.61334E+00   8.54883E-01   6.90416E-03
+    8.55340E-01   6.86705E-03   9.99772E-01   1.90302E-05   1.00001E+01
+    0.00000E+00  -1.42303E+00   1.35850E+00  -1.42888E+00   1.35897E+00
+    6.07135E+01   5.61297E+00   6.07077E+01   5.61346E+00   8.55812E-01
+    6.81948E-03   8.56269E-01   6.78332E-03   9.99772E-01   1.80787E-05
+    9.99997E+00   0.00000E+00  -1.42255E+00   1.35845E+00  -1.42791E+00
+    1.35888E+00   6.07116E+01   5.61321E+00   6.07077E+01   5.61346E+00
+    8.56786E-01   6.73289E-03   8.57182E-01   6.70054E-03   9.99802E-01
+    1.71272E-05   9.99997E+00   0.00000E+00  -1.42206E+00   1.35839E+00
+   -1.42718E+00   1.35882E+00   6.07116E+01   5.61321E+00   6.07077E+01
+    5.61334E+00   8.57715E-01   6.65106E-03   8.58080E-01   6.61966E-03
+    9.99802E-01   1.61757E-05   1.00001E+01   0.00000E+00  -1.42182E+00
+    1.35838E+00  -1.42669E+00   1.35877E+00   6.07116E+01   5.61297E+00
+    6.07116E+01   5.61309E+00   8.58613E-01   6.57018E-03   8.58978E-01
+    6.54069E-03   9.99817E-01   1.42727E-05   9.99997E+00   0.00000E+00
+   -1.42133E+00   1.35835E+00  -1.42620E+00   1.35873E+00   6.07116E+01
+    5.61309E+00   6.07077E+01   5.61346E+00   8.59511E-01   6.49026E-03
+    8.59861E-01   6.46266E-03   9.99833E-01   1.42727E-05   9.99997E+00
+    0.00000E+00  -1.42131E+00   1.35834E+00  -1.42569E+00   1.35869E+00
+    6.07146E+01   5.61289E+00   6.07087E+01   5.61325E+00   8.60396E-01
+    6.41213E-03   8.60731E-01   6.38644E-03   9.99833E-01   1.33210E-05
+    1.00001E+01   0.00000E+00  -1.42084E+00   1.35829E+00  -1.42523E+00
+    1.35864E+00   6.07096E+01   5.61334E+00   6.07096E+01   5.61321E+00
+    8.61293E-01   6.33516E-03   8.61612E-01   6.30947E-03   9.99848E-01
+    1.23696E-05   9.99997E+00   0.00000E+00  -1.42060E+00   1.35827E+00
+   -1.42450E+00   1.35857E+00   6.07135E+01   5.61297E+00   6.07096E+01
+    5.61321E+00   8.62160E-01   6.25904E-03   8.62434E-01   6.23715E-03
+    9.99848E-01   1.14181E-05   9.99997E+00   0.00000E+00  -1.42011E+00
+    1.35822E+00  -1.42376E+00   1.35851E+00   6.07116E+01   5.61321E+00
+    6.07077E+01   5.61346E+00   8.63013E-01   6.18482E-03   8.63272E-01
+    6.16484E-03   9.99848E-01   1.14181E-05   9.99997E+00   0.00000E+00
+   -1.41987E+00   1.35821E+00  -1.42376E+00   1.35851E+00   6.07116E+01
+    5.61309E+00   6.07116E+01   5.61309E+00   8.63865E-01   6.11251E-03
+    8.64139E-01   6.09062E-03   9.99878E-01   9.51511E-06   9.99997E+00
+    0.00000E+00  -1.41962E+00   1.35819E+00  -1.42303E+00   1.35844E+00
+    6.07096E+01   5.61321E+00   6.07096E+01   5.61334E+00   8.64703E-01
+    6.04019E-03   8.64931E-01   6.02306E-03   9.99878E-01   1.04666E-05
+    1.00001E+01   0.00000E+00  -1.41914E+00   1.35815E+00  -1.42279E+00
+    1.35844E+00   6.07135E+01   5.61297E+00   6.07077E+01   5.61334E+00
+    8.65525E-01   5.97168E-03   8.65768E-01   5.95075E-03   9.99893E-01
+    8.56360E-06   9.99997E+00   0.00000E+00  -1.41914E+00   1.35815E+00
+   -1.42206E+00   1.35838E+00   6.07135E+01   5.61297E+00   6.07135E+01
+    5.61297E+00   8.66332E-01   5.90127E-03   8.66545E-01   5.88510E-03
+    9.99878E-01   8.56360E-06   9.99997E+00   0.00000E+00  -1.41865E+00
+    1.35810E+00  -1.42133E+00   1.35832E+00   6.07096E+01   5.61334E+00
+    6.07116E+01   5.61321E+00   8.67154E-01   5.83276E-03   8.67352E-01
+    5.81754E-03   9.99909E-01   7.61209E-06   1.00001E+01   0.00000E+00
+   -1.41865E+00   1.35810E+00  -1.42182E+00   1.35835E+00   6.07135E+01
+    5.61297E+00   6.07096E+01   5.61321E+00   8.67930E-01   5.76711E-03
+    8.68159E-01   5.75093E-03   9.99909E-01   7.61209E-06   9.99997E+00
+    0.00000E+00  -1.41816E+00   1.35807E+00  -1.42060E+00   1.35826E+00
+    6.07135E+01   5.61297E+00   6.07096E+01   5.61321E+00   8.68752E-01
+    5.70050E-03   8.68905E-01   5.68813E-03   9.99909E-01   7.61209E-06
+    9.99997E+00   0.00000E+00  -1.41838E+00   1.35807E+00  -1.42058E+00
+    1.35827E+00   6.07068E+01   5.61337E+00   6.07107E+01   5.61313E+00
+    8.69500E-01   5.63762E-03   8.69683E-01   5.62334E-03   9.99909E-01
+    6.66048E-06   1.00001E+01   0.00000E+00  -1.41841E+00   1.35807E+00
+   -1.42084E+00   1.35827E+00   6.07135E+01   5.61297E+00   6.07096E+01
+    5.61321E+00   8.70275E-01   5.57300E-03   8.70442E-01   5.55968E-03
+    9.99924E-01   5.70907E-06   9.99997E+00   0.00000E+00  -1.41743E+00
+    1.35801E+00  -1.41987E+00   1.35819E+00   6.07135E+01   5.61297E+00
+    6.07096E+01   5.61321E+00   8.71036E-01   5.51115E-03   8.71203E-01
+    5.49878E-03   9.99939E-01   4.75755E-06   9.99997E+00   0.00000E+00
+   -1.41768E+00   1.35803E+00  -1.41962E+00   1.35818E+00   6.07116E+01
+    5.61297E+00   6.07135E+01   5.61297E+00   8.71782E-01   5.44930E-03
+    8.71934E-01   5.43884E-03   9.99924E-01   5.70907E-06   9.99997E+00
+    0.00000E+00  -1.41743E+00   1.35801E+00  -1.41938E+00   1.35816E+00
+    6.07116E+01   5.61321E+00   6.07096E+01   5.61321E+00   8.72543E-01
+    5.38936E-03   8.72665E-01   5.37984E-03   9.99924E-01   5.70907E-06
+    9.99997E+00   0.00000E+00  -1.41694E+00   1.35797E+00  -1.41889E+00
+    1.35812E+00   6.07096E+01   5.61321E+00   6.07057E+01   5.61346E+00
+    8.73259E-01   5.33036E-03   8.73381E-01   5.32085E-03   9.99924E-01
+    5.70907E-06   1.00001E+01   0.00000E+00  -1.41743E+00   1.35800E+00
+   -1.41889E+00   1.35812E+00   6.07135E+01   5.61297E+00   6.07135E+01
+    5.61297E+00   8.73990E-01   5.27137E-03   8.74111E-01   5.26281E-03
+    9.99954E-01   3.80604E-06   9.99997E+00   0.00000E+00  -1.41670E+00
+    1.35795E+00  -1.41841E+00   1.35809E+00   6.07135E+01   5.61297E+00
+    6.07096E+01   5.61321E+00   8.74705E-01   5.21523E-03   8.74827E-01
+    5.20572E-03   9.99924E-01   4.75755E-06   9.99997E+00   0.00000E+00
+   -1.41694E+00   1.35795E+00  -1.41889E+00   1.35810E+00   6.07135E+01
+    5.61297E+00   6.07135E+01   5.61297E+00   8.75421E-01   5.15814E-03
+    8.75542E-01   5.14863E-03   9.99954E-01   2.85453E-06   1.00001E+01
+    0.00000E+00  -1.41670E+00   1.35795E+00  -1.41816E+00   1.35804E+00
+    6.07096E+01   5.61321E+00   6.07096E+01   5.61321E+00   8.76121E-01
+    5.10200E-03   8.76197E-01   5.09629E-03   9.99939E-01   3.80604E-06
+    9.99997E+00   0.00000E+00  -1.41644E+00   1.35793E+00  -1.41814E+00
+    1.35805E+00   6.07107E+01   5.61313E+00   6.07107E+01   5.61313E+00
+    8.76793E-01   5.04864E-03   8.76914E-01   5.04008E-03   9.99939E-01
+    3.80599E-06   9.99994E+00   0.00000E+00  -1.41621E+00   1.35792E+00
+   -1.41768E+00   1.35803E+00   6.07135E+01   5.61297E+00   6.07135E+01
+    5.61297E+00   8.77491E-01   4.99448E-03   8.77582E-01   4.98782E-03
+    9.99954E-01   2.85453E-06   1.00001E+01   0.00000E+00  -1.41621E+00
+    1.35792E+00  -1.41768E+00   1.35801E+00   6.07096E+01   5.61321E+00
+    6.07057E+01   5.61346E+00   8.78191E-01   4.94025E-03   8.78267E-01
+    4.93454E-03   9.99954E-01   2.85453E-06   9.99997E+00   0.00000E+00
+   -1.41646E+00   1.35794E+00  -1.41768E+00   1.35803E+00   6.07116E+01
+    5.61321E+00   6.07135E+01   5.61297E+00   8.78846E-01   4.88982E-03
+    8.78907E-01   4.88411E-03   9.99954E-01   3.80604E-06   9.99997E+00
+    0.00000E+00  -1.41573E+00   1.35787E+00  -1.41743E+00   1.35800E+00
+    6.07135E+01   5.61297E+00   6.07096E+01   5.61321E+00   8.79485E-01
+    4.83938E-03   8.79592E-01   4.83177E-03   9.99970E-01   2.85453E-06
+    9.99997E+00   0.00000E+00  -1.41621E+00   1.35791E+00  -1.41694E+00
+    1.35797E+00   6.07135E+01   5.61297E+00   6.07116E+01   5.61297E+00
+    8.80171E-01   4.78705E-03   8.80231E-01   4.78229E-03   9.99970E-01
+    1.90302E-06   9.99997E+00   0.00000E+00  -1.41621E+00   1.35791E+00
+   -1.41743E+00   1.35800E+00   6.07096E+01   5.61321E+00   6.07096E+01
+    5.61321E+00   8.80825E-01   4.73662E-03   8.80886E-01   4.73186E-03
+    9.99970E-01   1.90302E-06   9.99997E+00   0.00000E+00  -1.41524E+00
+    1.35784E+00  -1.41670E+00   1.35794E+00   6.07135E+01   5.61297E+00
+    6.07135E+01   5.61297E+00   8.81434E-01   4.69095E-03   8.81510E-01
+    4.68429E-03   9.99970E-01   1.90302E-06   9.99997E+00   0.00000E+00
+   -1.41573E+00   1.35787E+00  -1.41646E+00   1.35794E+00   6.07116E+01
+    5.61321E+00   6.07096E+01   5.61321E+00   8.82104E-01   4.64052E-03
+    8.82134E-01   4.63766E-03   9.99970E-01   1.90302E-06   1.00002E+01
+    0.00000E+00  -1.41573E+00   1.35787E+00  -1.41670E+00   1.35794E+00
+    6.07135E+01   5.61297E+00   6.07135E+01   5.61297E+00   8.82728E-01
+    4.59294E-03   8.82789E-01   4.58914E-03   9.99970E-01   1.90302E-06
+    9.99997E+00   0.00000E+00  -1.41548E+00   1.35784E+00  -1.41646E+00
+    1.35794E+00   6.07096E+01   5.61321E+00   6.07096E+01   5.61321E+00
+    8.83322E-01   4.54822E-03   8.83398E-01   4.54251E-03   9.99970E-01
+    1.90302E-06   9.99997E+00   0.00000E+00  -1.41546E+00   1.35785E+00
+   -1.41644E+00   1.35791E+00   6.07146E+01   5.61289E+00   6.07146E+01
+    5.61289E+00   8.83948E-01   4.50153E-03   8.84009E-01   4.49772E-03
+    9.99970E-01   1.90299E-06   1.00001E+01   0.00000E+00  -1.41573E+00
+    1.35787E+00  -1.41597E+00   1.35787E+00   6.07135E+01   5.61297E+00
+    6.07096E+01   5.61321E+00   8.84585E-01   4.45402E-03   8.84601E-01
+    4.45402E-03   9.99970E-01   2.85453E-06   9.99997E+00   0.00000E+00
+   -1.41500E+00   1.35781E+00  -1.41621E+00   1.35791E+00   6.07135E+01
+    5.61297E+00   6.07135E+01   5.61297E+00   8.85149E-01   4.41216E-03
+    8.85240E-01   4.40645E-03   9.99970E-01   1.90302E-06   9.99997E+00
+    0.00000E+00  -1.41573E+00   1.35787E+00  -1.41621E+00   1.35791E+00
+    6.07096E+01   5.61321E+00   6.07096E+01   5.61321E+00   8.85758E-01
+    4.36744E-03   8.85788E-01   4.36553E-03   9.99985E-01   1.90302E-06
+    9.99997E+00   0.00000E+00  -1.41475E+00   1.35781E+00  -1.41573E+00
+    1.35787E+00   6.07096E+01   5.61321E+00   6.07096E+01   5.61321E+00
+    8.86336E-01   4.32462E-03   8.86397E-01   4.32081E-03   1.00000E+00
+    0.00000E+00   9.99997E+00   0.00000E+00  -1.41524E+00   1.35784E+00
+   -1.41621E+00   1.35791E+00   6.07174E+01   5.61273E+00   6.07135E+01
+    5.61297E+00   8.86945E-01   4.28085E-03   8.86976E-01   4.27799E-03
+    9.99970E-01   1.90302E-06   9.99997E+00   0.00000E+00  -1.41451E+00
+    1.35778E+00  -1.41500E+00   1.35781E+00   6.07057E+01   5.61346E+00
+    6.07096E+01   5.61321E+00   8.87509E-01   4.23993E-03   8.87539E-01
+    4.23803E-03   9.99970E-01   1.90302E-06   9.99997E+00   0.00000E+00
+   -1.41524E+00   1.35784E+00  -1.41621E+00   1.35791E+00   6.07135E+01
+    5.61297E+00   6.07135E+01   5.61297E+00   8.88087E-01   4.19807E-03
+    8.88133E-01   4.19426E-03   1.00000E+00   0.00000E+00   1.00002E+01
+    0.00000E+00  -1.41475E+00   1.35781E+00  -1.41548E+00   1.35784E+00
+    6.07135E+01   5.61297E+00   6.07135E+01   5.61297E+00   8.88650E-01
+    4.15715E-03   8.88666E-01   4.15620E-03   9.99970E-01   1.90302E-06
+    9.99997E+00   0.00000E+00  -1.41500E+00   1.35781E+00  -1.41524E+00
+    1.35784E+00   6.07096E+01   5.61321E+00   6.07096E+01   5.61321E+00
+    8.89214E-01   4.11719E-03   8.89229E-01   4.11528E-03   1.00000E+00
+    0.00000E+00   9.99997E+00   0.00000E+00  -1.41546E+00   1.35785E+00
+   -1.41546E+00   1.35785E+00   6.07146E+01   5.61289E+00   6.07107E+01
+    5.61313E+00   8.89779E-01   4.07621E-03   8.89779E-01   4.07621E-03
+    9.99970E-01   1.90299E-06   1.00001E+01   0.00000E+00  -1.41500E+00
+    1.35781E+00  -1.41573E+00   1.35787E+00   6.07135E+01   5.61297E+00
+    6.07135E+01   5.61297E+00   8.90310E-01   4.03916E-03   8.90371E-01
+    4.03441E-03   1.00000E+00   0.00000E+00   9.99997E+00   0.00000E+00
+   -1.41475E+00   1.35781E+00  -1.41500E+00   1.35781E+00   6.07096E+01
+    5.61321E+00   6.07096E+01   5.61321E+00   8.90843E-01   4.00015E-03
+    8.90858E-01   4.00015E-03   9.99985E-01   9.51511E-07   9.99997E+00
+    0.00000E+00  -1.41451E+00   1.35778E+00  -1.41475E+00   1.35781E+00
+    6.07135E+01   5.61297E+00   6.07135E+01   5.61297E+00   8.91391E-01
+    3.96209E-03   8.91421E-01   3.96019E-03   9.99985E-01   9.51511E-07
+    9.99997E+00   0.00000E+00  -1.41475E+00   1.35781E+00  -1.41621E+00
+    1.35787E+00   6.07096E+01   5.61321E+00   6.07135E+01   5.61297E+00
+    8.91924E-01   3.92498E-03   8.91969E-01   3.92213E-03   1.00000E+00
+    0.00000E+00   9.99997E+00   0.00000E+00  -1.41475E+00   1.35781E+00
+   -1.41475E+00   1.35781E+00   6.07096E+01   5.61321E+00   6.07135E+01
+    5.61297E+00   8.92456E-01   3.88787E-03   8.92441E-01   3.88787E-03
+    9.99985E-01   9.51511E-07   9.99997E+00   0.00000E+00  -1.41427E+00
+    1.35778E+00  -1.41475E+00   1.35781E+00   6.07135E+01   5.61297E+00
+    6.07096E+01   5.61321E+00   8.92974E-01   3.85172E-03   8.93004E-01
+    3.84981E-03   1.00000E+00   0.00000E+00   9.99997E+00   0.00000E+00
+   -1.41427E+00   1.35778E+00  -1.41475E+00   1.35778E+00   6.07135E+01
+    5.61297E+00   6.07096E+01   5.61321E+00   8.93507E-01   3.81556E-03
+    8.93492E-01   3.81556E-03   9.99970E-01   1.90302E-06   9.99997E+00
+    0.00000E+00  -1.41524E+00   1.35781E+00  -1.41524E+00   1.35784E+00
+    6.07096E+01   5.61321E+00   6.07135E+01   5.61297E+00   8.94009E-01
+    3.78035E-03   8.94040E-01   3.77845E-03   1.00000E+00   0.00000E+00
+    9.99997E+00   0.00000E+00  -1.41427E+00   1.35778E+00  -1.41475E+00
+    1.35781E+00   6.07135E+01   5.61297E+00   6.07135E+01   5.61297E+00
+    8.94512E-01   3.74515E-03   8.94542E-01   3.74420E-03   1.00000E+00
+    0.00000E+00   1.00002E+01   0.00000E+00  -1.41427E+00   1.35778E+00
+   -1.41475E+00   1.35781E+00   6.07135E+01   5.61297E+00   6.07096E+01
+    5.61321E+00   8.95014E-01   3.71184E-03   8.95029E-01   3.70994E-03
+    1.00000E+00   0.00000E+00   9.99997E+00   0.00000E+00  -1.41473E+00
+    1.35779E+00  -1.41473E+00   1.35779E+00   6.07087E+01   5.61313E+00
+    6.07126E+01   5.61289E+00   8.95533E-01   3.67658E-03   8.95518E-01
+    3.67658E-03   9.99970E-01   1.90299E-06   9.99982E+00   0.00000E+00
+   -1.41475E+00   1.35781E+00  -1.41573E+00   1.35784E+00   6.07096E+01
+    5.61321E+00   6.07135E+01   5.61297E+00   8.96004E-01   3.64429E-03
+    8.96019E-01   3.64238E-03   1.00000E+00   0.00000E+00   1.00002E+01
+    0.00000E+00  -1.41329E+00   1.35772E+00  -1.41378E+00   1.35775E+00
+    6.07135E+01   5.61297E+00   6.07057E+01   5.61346E+00   8.96491E-01
+    3.61098E-03   8.96521E-01   3.60908E-03   9.99985E-01   0.00000E+00
+    9.99997E+00   0.00000E+00  -1.41524E+00   1.35784E+00  -1.41573E+00
+    1.35787E+00   6.07096E+01   5.61321E+00   6.07135E+01   5.61297E+00
+    8.96963E-01   3.57863E-03   8.97008E-01   3.57673E-03   1.00000E+00
+    0.00000E+00   9.99997E+00   0.00000E+00  -1.41427E+00   1.35775E+00
+   -1.41329E+00   1.35772E+00   6.07135E+01   5.61297E+00   6.07135E+01
+    5.61297E+00   8.97465E-01   3.54533E-03   8.97435E-01   3.54818E-03
+    9.99970E-01   1.90302E-06   9.99997E+00   0.00000E+00  -1.41524E+00
+    1.35781E+00  -1.41524E+00   1.35784E+00   6.07135E+01   5.61297E+00
+    6.07135E+01   5.61297E+00   8.97937E-01   3.51488E-03   8.97968E-01
+    3.51298E-03   1.00000E+00   0.00000E+00   9.99997E+00   0.00000E+00
+   -1.41427E+00   1.35775E+00  -1.41378E+00   1.35775E+00   6.07135E+01
+    5.61297E+00   6.07096E+01   5.61321E+00   8.98409E-01   3.48348E-03
+    8.98409E-01   3.48348E-03   1.00000E+00   0.00000E+00   9.99997E+00
+    0.00000E+00  -1.41475E+00   1.35778E+00  -1.41475E+00   1.35781E+00
+    6.07135E+01   5.61297E+00   6.07135E+01   5.61297E+00   8.98881E-01
+    3.45208E-03   8.98911E-01   3.45018E-03   1.00000E+00   0.00000E+00
+    9.99997E+00   0.00000E+00  -1.41427E+00   1.35778E+00  -1.41524E+00
+    1.35781E+00   6.07096E+01   5.61321E+00   6.07096E+01   5.61321E+00
+    8.99338E-01   3.42259E-03   8.99353E-01   3.42068E-03   1.00000E+00
+    0.00000E+00   1.00002E+01   0.00000E+00  -1.41427E+00   1.35778E+00
+   -1.41427E+00   1.35778E+00   6.07135E+01   5.61297E+00   6.07135E+01
+    5.61297E+00   8.99794E-01   3.39214E-03   8.99794E-01   3.39214E-03
+    1.00000E+00   0.00000E+00   9.99997E+00   0.00000E+00  -1.41427E+00
+    1.35775E+00  -1.41378E+00   1.35775E+00   6.07096E+01   5.61321E+00
+    6.07096E+01   5.61321E+00   9.00266E-01   3.36169E-03   9.00236E-01
+    3.36264E-03   9.99970E-01   1.90302E-06   9.99997E+00   0.00000E+00
+   -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00   6.07126E+01
+    5.61313E+00   6.07165E+01   5.61289E+00   9.00694E-01   3.33404E-03
+    9.00694E-01   3.33309E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41378E+00   1.35775E+00  -1.41475E+00   1.35778E+00
+    6.07135E+01   5.61297E+00   6.07096E+01   5.61321E+00   9.01165E-01
+    3.30365E-03   9.01165E-01   3.30269E-03   1.00000E+00   0.00000E+00
+    9.99997E+00   0.00000E+00  -1.41475E+00   1.35778E+00  -1.41475E+00
+    1.35778E+00   6.07096E+01   5.61321E+00   6.07096E+01   5.61321E+00
+    9.01591E-01   3.27605E-03   9.01576E-01   3.27605E-03   1.00000E+00
+    0.00000E+00   9.99997E+00   0.00000E+00  -1.41427E+00   1.35778E+00
+   -1.41427E+00   1.35778E+00   6.07135E+01   5.61297E+00   6.07174E+01
+    5.61273E+00   9.02017E-01   3.24751E-03   9.02017E-01   3.24751E-03
+    1.00000E+00   0.00000E+00   9.99997E+00   0.00000E+00  -1.41475E+00
+    1.35778E+00  -1.41475E+00   1.35781E+00   6.07135E+01   5.61297E+00
+    6.07096E+01   5.61321E+00   9.02459E-01   3.21991E-03   9.02489E-01
+    3.21801E-03   1.00000E+00   0.00000E+00   9.99997E+00   0.00000E+00
+   -1.41475E+00   1.35778E+00  -1.41475E+00   1.35778E+00   6.07135E+01
+    5.61297E+00   6.07135E+01   5.61297E+00   9.02870E-01   3.19327E-03
+    9.02870E-01   3.19327E-03   1.00000E+00   0.00000E+00   9.99997E+00
+    0.00000E+00  -1.41427E+00   1.35775E+00  -1.41427E+00   1.35775E+00
+    6.07096E+01   5.61321E+00   6.07096E+01   5.61321E+00   9.03327E-01
+    3.16473E-03   9.03327E-01   3.16473E-03   1.00000E+00   0.00000E+00
+    9.99997E+00   0.00000E+00  -1.41427E+00   1.35775E+00  -1.41427E+00
+    1.35778E+00   6.07135E+01   5.61297E+00   6.07135E+01   5.61297E+00
+    9.03722E-01   3.13903E-03   9.03753E-01   3.13713E-03   1.00000E+00
+    0.00000E+00   9.99997E+00   0.00000E+00  -1.41427E+00   1.35778E+00
+   -1.41378E+00   1.35775E+00   6.07096E+01   5.61321E+00   6.07096E+01
+    5.61321E+00   9.04149E-01   3.11239E-03   9.04118E-01   3.11430E-03
+    9.99985E-01   9.51511E-07   9.99997E+00   0.00000E+00  -1.41526E+00
+    1.35783E+00  -1.41526E+00   1.35783E+00   6.07145E+01   5.61306E+00
+    6.07145E+01   5.61306E+00   9.04558E-01   3.08675E-03   9.04558E-01
+    3.08675E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41424E+00   1.35776E+00  -1.41473E+00   1.35779E+00   6.07087E+01
+    5.61313E+00   6.07087E+01   5.61313E+00   9.04987E-01   3.06001E-03
+    9.05003E-01   3.05906E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41424E+00   1.35779E+00  -1.41424E+00   1.35779E+00
+    6.07165E+01   5.61289E+00   6.07165E+01   5.61289E+00   9.05398E-01
+    3.03527E-03   9.05398E-01   3.03527E-03   1.00000E+00   0.00000E+00
+    9.99982E+00   0.00000E+00  -1.41331E+00   1.35771E+00  -1.41331E+00
+    1.35771E+00   6.07067E+01   5.61330E+00   6.07067E+01   5.61330E+00
+    9.05791E-01   3.01063E-03   9.05807E-01   3.00968E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41522E+00   1.35782E+00
+   -1.41522E+00   1.35782E+00   6.07165E+01   5.61289E+00   6.07165E+01
+    5.61289E+00   9.06205E-01   2.98484E-03   9.06190E-01   2.98580E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41327E+00
+    1.35770E+00  -1.41376E+00   1.35773E+00   6.07126E+01   5.61313E+00
+    6.07126E+01   5.61313E+00   9.06601E-01   2.96106E-03   9.06632E-01
+    2.95915E-03   1.00000E+00   0.00000E+00   9.99982E+00   0.00000E+00
+   -1.41477E+00   1.35780E+00  -1.41477E+00   1.35780E+00   6.07106E+01
+    5.61306E+00   6.07106E+01   5.61306E+00   9.06994E-01   2.93641E-03
+    9.06994E-01   2.93641E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41429E+00   1.35777E+00  -1.41429E+00   1.35777E+00
+    6.07145E+01   5.61306E+00   6.07145E+01   5.61306E+00   9.07390E-01
+    2.91262E-03   9.07390E-01   2.91262E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41376E+00   1.35773E+00  -1.41376E+00
+    1.35773E+00   6.07087E+01   5.61313E+00   6.07087E+01   5.61313E+00
+    9.07773E-01   2.88969E-03   9.07773E-01   2.88969E-03   1.00000E+00
+    0.00000E+00   9.99982E+00   0.00000E+00  -1.41424E+00   1.35776E+00
+   -1.41424E+00   1.35776E+00   6.07126E+01   5.61313E+00   6.07126E+01
+    5.61313E+00   9.08154E-01   2.86591E-03   9.08154E-01   2.86591E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41380E+00
+    1.35774E+00  -1.41380E+00   1.35774E+00   6.07106E+01   5.61306E+00
+    6.07106E+01   5.61306E+00   9.08532E-01   2.84316E-03   9.08547E-01
+    2.84221E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41380E+00   1.35774E+00  -1.41429E+00   1.35777E+00   6.07067E+01
+    5.61330E+00   6.07067E+01   5.61330E+00   9.08928E-01   2.81937E-03
+    9.08928E-01   2.81937E-03   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41420E+00   1.35778E+00  -1.41420E+00   1.35778E+00
+    6.07185E+01   5.61271E+00   6.07185E+01   5.61271E+00   9.09283E-01
+    2.79827E-03   9.09298E-01   2.79731E-03   1.00000E+00   9.51468E-07
+    1.00000E+01   0.00000E+00  -1.41429E+00   1.35777E+00  -1.41429E+00
+    1.35777E+00   6.07145E+01   5.61306E+00   6.07145E+01   5.61306E+00
+    9.09658E-01   2.77560E-03   9.09658E-01   2.77560E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41380E+00   1.35774E+00
+   -1.41380E+00   1.35774E+00   6.07106E+01   5.61306E+00   6.07106E+01
+    5.61306E+00   9.10024E-01   2.75276E-03   9.10024E-01   2.75371E-03
+    1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00  -1.41473E+00
+    1.35779E+00  -1.41473E+00   1.35779E+00   6.07126E+01   5.61313E+00
+    6.07126E+01   5.61313E+00   9.10392E-01   2.73270E-03   9.10392E-01
+    2.73175E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41376E+00   1.35773E+00  -1.41376E+00   1.35773E+00   6.07087E+01
+    5.61313E+00   6.07087E+01   5.61313E+00   9.10757E-01   2.70986E-03
+    9.10788E-01   2.70986E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41429E+00   1.35777E+00  -1.41380E+00   1.35774E+00
+    6.07106E+01   5.61306E+00   6.07106E+01   5.61306E+00   9.11120E-01
+    2.68901E-03   9.11089E-01   2.69091E-03   9.99970E-01   9.51525E-07
+    9.99988E+00   0.00000E+00  -1.41376E+00   1.35773E+00  -1.41376E+00
+    1.35773E+00   6.07087E+01   5.61313E+00   6.07087E+01   5.61313E+00
+    9.11488E-01   2.66895E-03   9.11488E-01   2.66800E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41477E+00   1.35780E+00
+   -1.41526E+00   1.35783E+00   6.07106E+01   5.61330E+00   6.07106E+01
+    5.61330E+00   9.11851E-01   2.64714E-03   9.11851E-01   2.64714E-03
+    1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00  -1.41327E+00
+    1.35773E+00  -1.41327E+00   1.35773E+00   6.07204E+01   5.61264E+00
+    6.07204E+01   5.61264E+00   9.12188E-01   2.62708E-03   9.12188E-01
+    2.62708E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41477E+00   1.35780E+00  -1.41477E+00   1.35780E+00   6.07067E+01
+    5.61330E+00   6.07067E+01   5.61330E+00   9.12551E-01   2.60718E-03
+    9.12551E-01   2.60623E-03   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41376E+00   1.35773E+00  -1.41376E+00   1.35773E+00
+    6.07126E+01   5.61313E+00   6.07126E+01   5.61313E+00   9.12858E-01
+    2.58712E-03   9.12889E-01   2.58712E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41429E+00   1.35777E+00  -1.41429E+00
+    1.35777E+00   6.07145E+01   5.61281E+00   6.07145E+01   5.61281E+00
+    9.13221E-01   2.56722E-03   9.13221E-01   2.56722E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41424E+00   1.35776E+00
+   -1.41424E+00   1.35776E+00   6.07126E+01   5.61313E+00   6.07126E+01
+    5.61313E+00   9.13558E-01   2.54811E-03   9.13558E-01   2.54811E-03
+    1.00000E+00   0.00000E+00   9.99982E+00   0.00000E+00  -1.41380E+00
+    1.35774E+00  -1.41380E+00   1.35774E+00   6.07067E+01   5.61330E+00
+    6.07067E+01   5.61330E+00   9.13891E-01   2.52820E-03   9.13921E-01
+    2.52820E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41424E+00   1.35776E+00  -1.41424E+00   1.35776E+00   6.07126E+01
+    5.61313E+00   6.07126E+01   5.61313E+00   9.14259E-01   2.50910E-03
+    9.14228E-01   2.50910E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41429E+00   1.35777E+00  -1.41429E+00   1.35777E+00
+    6.07183E+01   5.61281E+00   6.07183E+01   5.61281E+00   9.14591E-01
+    2.49014E-03   9.14561E-01   2.49109E-03   1.00000E+00   0.00000E+00
+    9.99988E+00   0.00000E+00  -1.41473E+00   1.35779E+00  -1.41473E+00
+    1.35779E+00   6.07087E+01   5.61313E+00   6.07087E+01   5.61313E+00
+    9.14898E-01   2.47199E-03   9.14898E-01   2.47199E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41376E+00   1.35776E+00
+   -1.41376E+00   1.35776E+00   6.07087E+01   5.61313E+00   6.07087E+01
+    5.61313E+00   9.15203E-01   2.45391E-03   9.15233E-01   2.45296E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41380E+00
+    1.35774E+00  -1.41380E+00   1.35774E+00   6.07183E+01   5.61281E+00
+    6.07183E+01   5.61281E+00   9.15565E-01   2.43495E-03   9.15565E-01
+    2.43495E-03   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41376E+00   1.35773E+00  -1.41376E+00   1.35773E+00   6.07087E+01
+    5.61313E+00   6.07087E+01   5.61313E+00   9.15872E-01   2.41680E-03
+    9.15872E-01   2.41680E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41429E+00   1.35777E+00  -1.41429E+00   1.35777E+00
+    6.07106E+01   5.61330E+00   6.07106E+01   5.61330E+00   9.16205E-01
+    2.39880E-03   9.16205E-01   2.39975E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41424E+00   1.35776E+00  -1.41424E+00
+    1.35776E+00   6.07087E+01   5.61313E+00   6.07087E+01   5.61313E+00
+    9.16512E-01   2.38160E-03   9.16512E-01   2.38160E-03   1.00000E+00
+    0.00000E+00   9.99982E+00   0.00000E+00  -1.41429E+00   1.35777E+00
+   -1.41429E+00   1.35777E+00   6.07145E+01   5.61281E+00   6.07145E+01
+    5.61281E+00   9.16814E-01   2.36454E-03   9.16844E-01   2.36359E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41424E+00
+    1.35776E+00  -1.41424E+00   1.35776E+00   6.07126E+01   5.61313E+00
+    6.07126E+01   5.61313E+00   9.17121E-01   2.34734E-03   9.17151E-01
+    2.34734E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41429E+00   1.35777E+00  -1.41429E+00   1.35777E+00   6.07067E+01
+    5.61330E+00   6.07067E+01   5.61330E+00   9.17484E-01   2.32933E-03
+    9.17453E-01   2.32933E-03   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41376E+00   1.35773E+00  -1.41424E+00   1.35776E+00
+    6.07165E+01   5.61264E+00   6.07165E+01   5.61264E+00   9.17760E-01
+    2.31309E-03   9.17791E-01   2.31214E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41429E+00   1.35777E+00  -1.41429E+00
+    1.35777E+00   6.07067E+01   5.61330E+00   6.07067E+01   5.61330E+00
+    9.18062E-01   2.29603E-03   9.18062E-01   2.29603E-03   1.00000E+00
+    0.00000E+00   9.99988E+00   0.00000E+00  -1.41376E+00   1.35773E+00
+   -1.41376E+00   1.35773E+00   6.07087E+01   5.61313E+00   6.07087E+01
+    5.61313E+00   9.18369E-01   2.27979E-03   9.18369E-01   2.27979E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41376E+00
+    1.35776E+00  -1.41376E+00   1.35776E+00   6.07087E+01   5.61313E+00
+    6.07087E+01   5.61313E+00   9.18674E-01   2.26361E-03   9.18674E-01
+    2.26361E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41331E+00   1.35771E+00  -1.41331E+00   1.35771E+00   6.07145E+01
+    5.61281E+00   6.07145E+01   5.61281E+00   9.18976E-01   2.24655E-03
+    9.18976E-01   2.24655E-03   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41424E+00   1.35776E+00  -1.41424E+00   1.35776E+00
+    6.07126E+01   5.61313E+00   6.07126E+01   5.61313E+00   9.19252E-01
+    2.23126E-03   9.19252E-01   2.23126E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41380E+00   1.35774E+00  -1.41380E+00
+    1.35774E+00   6.07067E+01   5.61330E+00   6.07067E+01   5.61330E+00
+    9.19554E-01   2.21515E-03   9.19554E-01   2.21515E-03   1.00000E+00
+    0.00000E+00   9.99988E+00   0.00000E+00  -1.41424E+00   1.35776E+00
+   -1.41424E+00   1.35776E+00   6.07126E+01   5.61313E+00   6.07126E+01
+    5.61313E+00   9.19861E-01   2.19986E-03   9.19861E-01   2.19986E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41477E+00
+    1.35780E+00  -1.41477E+00   1.35780E+00   7.18725E+02  -2.94472E+01
+    7.18725E+02  -2.94472E+01   9.20133E-01   2.18470E-03   9.20133E-01
+    2.18470E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41424E+00   1.35776E+00  -1.41424E+00   1.35776E+00   1.64214E+02
+    0.00000E+00   1.64214E+02   0.00000E+00   9.20470E-01   2.16846E-03
+    9.20470E-01   2.16846E-03   1.00000E+00   0.00000E+00   9.99982E+00
+    0.00000E+00  -1.41380E+00   1.35774E+00  -1.41380E+00   1.35774E+00
+    1.64223E+02  -4.87181E-04   1.64223E+02  -4.87181E-04   9.20711E-01
+    2.15425E-03   9.20711E-01   2.15425E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41376E+00   1.35773E+00  -1.41376E+00
+    1.35773E+00   1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00
+    9.20988E-01   2.13896E-03   9.20988E-01   2.13896E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41522E+00   1.35782E+00
+   -1.41522E+00   1.35782E+00   1.64214E+02   0.00000E+00   1.64214E+02
+    0.00000E+00   9.21292E-01   2.12374E-03   9.21292E-01   2.12374E-03
+    1.00000E+00   0.00000E+00   9.99982E+00   0.00000E+00  -1.41331E+00
+    1.35771E+00  -1.41331E+00   1.35771E+00   1.64215E+02   0.00000E+00
+    1.64215E+02   0.00000E+00   9.21594E-01   2.10858E-03   9.21594E-01
+    2.10858E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00   1.64214E+02
+    0.00000E+00   1.64214E+02   0.00000E+00   9.21840E-01   2.09520E-03
+    9.21840E-01   2.09520E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41380E+00   1.35774E+00  -1.41380E+00   1.35774E+00
+    1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00   9.22142E-01
+    2.08003E-03   9.22142E-01   2.08003E-03   1.00000E+00   0.00000E+00
+    9.99988E+00   0.00000E+00  -1.41424E+00   1.35776E+00  -1.41424E+00
+    1.35776E+00   1.64226E+02  -4.87166E-04   1.64226E+02  -4.87166E-04
+    9.22419E-01   2.06570E-03   9.22419E-01   2.06570E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41380E+00   1.35774E+00
+   -1.41380E+00   1.35774E+00   1.64215E+02   0.00000E+00   1.64215E+02
+    0.00000E+00   9.22690E-01   2.05244E-03   9.22690E-01   2.05244E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41473E+00
+    1.35779E+00  -1.41473E+00   1.35779E+00   1.64214E+02   0.00000E+00
+    1.64214E+02   0.00000E+00   9.22936E-01   2.03715E-03   9.22936E-01
+    2.03715E-03   1.00000E+00   0.00000E+00   9.99982E+00   0.00000E+00
+   -1.41380E+00   1.35774E+00  -1.41380E+00   1.35774E+00   1.64215E+02
+    0.00000E+00   1.64215E+02   0.00000E+00   9.23208E-01   2.02485E-03
+    9.23208E-01   2.02485E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41376E+00   1.35776E+00  -1.41376E+00   1.35776E+00
+    1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00   9.23484E-01
+    2.01051E-03   9.23484E-01   2.01051E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41380E+00   1.35774E+00  -1.41380E+00
+    1.35774E+00   1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00
+    9.23756E-01   1.99630E-03   9.23756E-01   1.99630E-03   1.00000E+00
+    0.00000E+00   9.99988E+00   0.00000E+00  -1.41473E+00   1.35779E+00
+   -1.41473E+00   1.35779E+00   1.64226E+02  -4.87166E-04   1.64226E+02
+   -4.87166E-04   9.24002E-01   1.98387E-03   9.24002E-01   1.98387E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41376E+00
+    1.35773E+00  -1.41376E+00   1.35773E+00   1.64214E+02   0.00000E+00
+    1.64214E+02   0.00000E+00   9.24276E-01   1.96960E-03   9.24276E-01
+    1.96960E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41429E+00   1.35777E+00  -1.41429E+00   1.35777E+00   1.64215E+02
+    0.00000E+00   1.64215E+02   0.00000E+00   9.24517E-01   1.95729E-03
+    9.24517E-01   1.95729E-03   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41424E+00   1.35776E+00  -1.41424E+00   1.35776E+00
+    1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00   9.24794E-01
+    1.94391E-03   9.24794E-01   1.94391E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41282E+00   1.35771E+00  -1.41282E+00
+    1.35771E+00   1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00
+    9.25035E-01   1.93160E-03   9.25035E-01   1.93160E-03   1.00000E+00
+    0.00000E+00   9.99988E+00   0.00000E+00  -1.41473E+00   1.35782E+00
+   -1.41473E+00   1.35782E+00   1.64214E+02   0.00000E+00   1.64214E+02
+    0.00000E+00   9.25311E-01   1.91822E-03   9.25311E-01   1.91822E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41380E+00
+    1.35774E+00  -1.41380E+00   1.35774E+00   1.64227E+02  -4.87181E-04
+    1.64227E+02  -4.87181E-04   9.25553E-01   1.90591E-03   9.25553E-01
+    1.90591E-03   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41376E+00   1.35776E+00  -1.41376E+00   1.35776E+00   1.64214E+02
+    0.00000E+00   1.64214E+02   0.00000E+00   9.25798E-01   1.89348E-03
+    9.25798E-01   1.89348E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41380E+00   1.35774E+00  -1.41380E+00   1.35774E+00
+    1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00   9.26040E-01
+    1.88117E-03   9.26040E-01   1.88117E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41376E+00   1.35773E+00  -1.41376E+00
+    1.35773E+00   1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00
+    9.26286E-01   1.86874E-03   9.26286E-01   1.86874E-03   1.00000E+00
+    0.00000E+00   9.99982E+00   0.00000E+00  -1.41477E+00   1.35780E+00
+   -1.41477E+00   1.35780E+00   1.64215E+02   0.00000E+00   1.64215E+02
+    0.00000E+00   9.26557E-01   1.85643E-03   9.26557E-01   1.85643E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41376E+00
+    1.35773E+00  -1.41376E+00   1.35773E+00   1.64214E+02   0.00000E+00
+    1.64214E+02   0.00000E+00   9.26803E-01   1.84400E-03   9.26803E-01
+    1.84400E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00   1.64226E+02
+   -4.87166E-04   1.64226E+02  -4.87166E-04   9.27047E-01   1.83258E-03
+    9.27047E-01   1.83258E-03   1.00000E+00   0.00000E+00   9.99982E+00
+    0.00000E+00  -1.41477E+00   1.35777E+00  -1.41477E+00   1.35777E+00
+    1.64203E+02   4.87181E-04   1.64203E+02   4.87181E-04   9.27258E-01
+    1.82122E-03   9.27258E-01   1.82122E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41376E+00   1.35773E+00  -1.41376E+00
+    1.35773E+00   1.64222E+02  -4.87166E-04   1.64222E+02  -4.87166E-04
+    9.27534E-01   1.80879E-03   9.27534E-01   1.80879E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41380E+00   1.35777E+00
+   -1.41380E+00   1.35777E+00   1.64215E+02   0.00000E+00   1.64215E+02
+    0.00000E+00   9.27745E-01   1.79838E-03   9.27745E-01   1.79838E-03
+    1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00  -1.41278E+00
+    1.35770E+00  -1.41278E+00   1.35770E+00   1.64214E+02   0.00000E+00
+    1.64214E+02   0.00000E+00   9.27991E-01   1.78596E-03   9.27991E-01
+    1.78596E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41477E+00   1.35780E+00  -1.41477E+00   1.35780E+00   1.64211E+02
+    0.00000E+00   1.64211E+02   0.00000E+00   9.28232E-01   1.77460E-03
+    9.28232E-01   1.77460E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41376E+00   1.35776E+00  -1.41376E+00   1.35776E+00
+    1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00   9.28447E-01
+    1.76407E-03   9.28447E-01   1.76407E-03   1.00000E+00   0.00000E+00
+    9.99982E+00   0.00000E+00  -1.41477E+00   1.35780E+00  -1.41477E+00
+    1.35780E+00   1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00
+    9.28719E-01   1.75176E-03   9.28719E-01   1.75176E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41278E+00   1.35773E+00
+   -1.41278E+00   1.35773E+00   1.64222E+02  -4.87166E-04   1.64222E+02
+   -4.87166E-04   9.28904E-01   1.74219E-03   9.28904E-01   1.74219E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41380E+00
+    1.35774E+00  -1.41380E+00   1.35774E+00   1.64211E+02   0.00000E+00
+    1.64211E+02   0.00000E+00   9.29146E-01   1.72987E-03   9.29146E-01
+    1.72987E-03   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41570E+00   1.35779E+00  -1.41570E+00   1.35779E+00   1.64214E+02
+    0.00000E+00   1.64214E+02   0.00000E+00   9.29361E-01   1.72031E-03
+    9.29361E-01   1.72031E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41278E+00   1.35770E+00  -1.41278E+00   1.35770E+00
+    1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00   9.29604E-01
+    1.70889E-03   9.29604E-01   1.70889E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41477E+00   1.35780E+00  -1.41477E+00
+    1.35780E+00   1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00
+    9.29815E-01   1.69847E-03   9.29815E-01   1.69847E-03   1.00000E+00
+    0.00000E+00   9.99988E+00   0.00000E+00  -1.41376E+00   1.35776E+00
+   -1.41376E+00   1.35776E+00   1.64214E+02   0.00000E+00   1.64214E+02
+    0.00000E+00   9.30031E-01   1.68795E-03   9.30031E-01   1.68795E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41380E+00
+    1.35774E+00  -1.41380E+00   1.35774E+00   1.64215E+02   0.00000E+00
+    1.64215E+02   0.00000E+00   9.30272E-01   1.67659E-03   9.30272E-01
+    1.67659E-03   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41376E+00   1.35776E+00  -1.41376E+00   1.35776E+00   1.64214E+02
+    0.00000E+00   1.64214E+02   0.00000E+00   9.30487E-01   1.66797E-03
+    9.30487E-01   1.66797E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41380E+00   1.35774E+00  -1.41380E+00   1.35774E+00
+    1.64211E+02   0.00000E+00   1.64211E+02   0.00000E+00   9.30729E-01
+    1.65661E-03   9.30729E-01   1.65661E-03   1.00000E+00   0.00000E+00
+    9.99988E+00   0.00000E+00  -1.41473E+00   1.35779E+00  -1.41473E+00
+    1.35779E+00   1.64222E+02  -4.87166E-04   1.64222E+02  -4.87166E-04
+    9.30914E-01   1.64704E-03   9.30914E-01   1.64704E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41477E+00   1.35777E+00
+   -1.41477E+00   1.35777E+00   1.64211E+02   0.00000E+00   1.64211E+02
+    0.00000E+00   9.31125E-01   1.63662E-03   9.31125E-01   1.63662E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41278E+00
+    1.35770E+00  -1.41278E+00   1.35770E+00   1.64214E+02   0.00000E+00
+    1.64214E+02   0.00000E+00   9.31370E-01   1.62611E-03   9.31370E-01
+    1.62611E-03   1.00000E+00   0.00000E+00   9.99982E+00   0.00000E+00
+   -1.41477E+00   1.35780E+00  -1.41477E+00   1.35780E+00   1.64215E+02
+    0.00000E+00   1.64215E+02   0.00000E+00   9.31551E-01   1.61759E-03
+    9.31551E-01   1.61759E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41278E+00   1.35770E+00  -1.41278E+00   1.35770E+00
+    1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00   9.31766E-01
+    1.60708E-03   9.31766E-01   1.60708E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41570E+00   1.35782E+00  -1.41570E+00
+    1.35782E+00   1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00
+    9.32010E-01   1.59756E-03   9.32010E-01   1.59756E-03   1.00000E+00
+    0.00000E+00   9.99982E+00   0.00000E+00  -1.41282E+00   1.35771E+00
+   -1.41282E+00   1.35771E+00   1.64227E+02  -4.87181E-04   1.64227E+02
+   -4.87181E-04   9.32221E-01   1.58714E-03   9.32221E-01   1.58714E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41376E+00
+    1.35776E+00  -1.41376E+00   1.35776E+00   1.64214E+02   0.00000E+00
+    1.64214E+02   0.00000E+00   9.32406E-01   1.57853E-03   9.32406E-01
+    1.57853E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41575E+00   1.35780E+00  -1.41575E+00   1.35780E+00   1.64215E+02
+    0.00000E+00   1.64215E+02   0.00000E+00   9.32617E-01   1.56907E-03
+    9.32617E-01   1.56907E-03   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41278E+00   1.35770E+00  -1.41278E+00   1.35770E+00
+    1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00   9.32832E-01
+    1.55950E-03   9.32832E-01   1.55950E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41477E+00   1.35780E+00  -1.41477E+00
+    1.35780E+00   1.64227E+02  -4.87181E-04   1.64227E+02  -4.87181E-04
+    9.33043E-01   1.55003E-03   9.33043E-01   1.55003E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41376E+00   1.35776E+00
+   -1.41376E+00   1.35776E+00   1.64202E+02   4.87166E-04   1.64202E+02
+    4.87166E-04   9.33197E-01   1.54142E-03   9.33197E-01   1.54142E-03
+    1.00000E+00   0.00000E+00   9.99982E+00   0.00000E+00  -1.41477E+00
+    1.35777E+00  -1.41477E+00   1.35777E+00   1.64223E+02  -4.87181E-04
+    1.64223E+02  -4.87181E-04   9.33439E-01   1.53196E-03   9.33439E-01
+    1.53196E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41278E+00   1.35773E+00  -1.41278E+00   1.35773E+00   1.64210E+02
+    0.00000E+00   1.64210E+02   0.00000E+00   9.33624E-01   1.52335E-03
+    9.33624E-01   1.52335E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41477E+00   1.35777E+00  -1.41477E+00   1.35777E+00
+    1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00   9.33865E-01
+    1.51388E-03   9.33865E-01   1.51388E-03   1.00000E+00   0.00000E+00
+    9.99988E+00   0.00000E+00  -1.41376E+00   1.35773E+00  -1.41376E+00
+    1.35773E+00   1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00
+    9.34019E-01   1.50527E-03   9.34019E-01   1.50527E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41570E+00   1.35779E+00
+   -1.41570E+00   1.35779E+00   1.64226E+02  -4.87166E-04   1.64226E+02
+   -4.87166E-04   9.34233E-01   1.49670E-03   9.34233E-01   1.49670E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41380E+00
+    1.35774E+00  -1.41380E+00   1.35774E+00   1.64203E+02   4.87181E-04
+    1.64203E+02   4.87181E-04   9.34413E-01   1.48819E-03   9.34413E-01
+    1.48819E-03   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41376E+00   1.35776E+00  -1.41376E+00   1.35776E+00   1.64226E+02
+   -4.87166E-04   1.64226E+02  -4.87166E-04   9.34628E-01   1.47863E-03
+    9.34628E-01   1.47863E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41380E+00   1.35774E+00  -1.41380E+00   1.35774E+00
+    1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00   9.34809E-01
+    1.47106E-03   9.34809E-01   1.47106E-03   1.00000E+00   0.00000E+00
+    9.99988E+00   0.00000E+00  -1.41473E+00   1.35779E+00  -1.41473E+00
+    1.35779E+00   1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00
+    9.35024E-01   1.46150E-03   9.35024E-01   1.46150E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41380E+00   1.35774E+00
+   -1.41380E+00   1.35774E+00   1.64211E+02   0.00000E+00   1.64211E+02
+    0.00000E+00   9.35205E-01   1.45393E-03   9.35205E-01   1.45393E-03
+    1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00  -1.41473E+00
+    1.35779E+00  -1.41473E+00   1.35779E+00   1.64214E+02   0.00000E+00
+    1.64214E+02   0.00000E+00   9.35390E-01   1.44532E-03   9.35390E-01
+    1.44532E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41380E+00   1.35771E+00  -1.41380E+00   1.35771E+00   1.64215E+02
+    0.00000E+00   1.64215E+02   0.00000E+00   9.35570E-01   1.43775E-03
+    9.35570E-01   1.43775E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41473E+00   1.35776E+00  -1.41473E+00   1.35776E+00
+    1.64226E+02  -4.87166E-04   1.64226E+02  -4.87166E-04   9.35785E-01
+    1.42820E-03   9.35785E-01   1.42820E-03   1.00000E+00   0.00000E+00
+    9.99982E+00   0.00000E+00  -1.41477E+00   1.35780E+00  -1.41477E+00
+    1.35780E+00   1.64203E+02   4.87181E-04   1.64203E+02   4.87181E-04
+    9.35936E-01   1.42158E-03   9.35936E-01   1.42158E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41278E+00   1.35773E+00
+   -1.41278E+00   1.35773E+00   1.64226E+02  -4.87166E-04   1.64226E+02
+   -4.87166E-04   9.36151E-01   1.41202E-03   9.36151E-01   1.41202E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41473E+00
+    1.35779E+00  -1.41473E+00   1.35779E+00   1.64214E+02   0.00000E+00
+    1.64214E+02   0.00000E+00   9.36333E-01   1.40536E-03   9.36333E-01
+    1.40536E-03   1.00000E+00   0.00000E+00   9.99982E+00   0.00000E+00
+   -1.41282E+00   1.35771E+00  -1.41282E+00   1.35771E+00   1.64211E+02
+    0.00000E+00   1.64211E+02   0.00000E+00   9.36514E-01   1.39684E-03
+    9.36514E-01   1.39684E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41473E+00   1.35776E+00  -1.41473E+00   1.35776E+00
+    1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00   9.36699E-01
+    1.38918E-03   9.36699E-01   1.38918E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41380E+00   1.35774E+00  -1.41380E+00
+    1.35774E+00   1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00
+    9.36880E-01   1.38066E-03   9.36880E-01   1.38066E-03   1.00000E+00
+    0.00000E+00   9.99988E+00   0.00000E+00  -1.41473E+00   1.35779E+00
+   -1.41473E+00   1.35779E+00   1.64214E+02   0.00000E+00   1.64214E+02
+    0.00000E+00   9.37034E-01   1.37396E-03   9.37034E-01   1.37396E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41380E+00
+    1.35777E+00  -1.41380E+00   1.35777E+00   1.64227E+02  -4.87181E-04
+    1.64227E+02  -4.87181E-04   9.37245E-01   1.36544E-03   9.37245E-01
+    1.36544E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41473E+00   1.35776E+00  -1.41473E+00   1.35776E+00   1.64214E+02
+    0.00000E+00   1.64214E+02   0.00000E+00   9.37399E-01   1.35874E-03
+    9.37399E-01   1.35874E-03   1.00000E+00   0.00000E+00   9.99982E+00
+    0.00000E+00  -1.41282E+00   1.35771E+00  -1.41282E+00   1.35771E+00
+    1.64211E+02   0.00000E+00   1.64211E+02   0.00000E+00   9.37610E-01
+    1.35021E-03   9.37610E-01   1.35021E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41473E+00   1.35779E+00  -1.41473E+00
+    1.35779E+00   1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00
+    9.37765E-01   1.34351E-03   9.37765E-01   1.34351E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41376E+00   1.35776E+00
+   -1.41376E+00   1.35776E+00   1.64214E+02   0.00000E+00   1.64214E+02
+    0.00000E+00   9.37947E-01   1.33590E-03   9.37947E-01   1.33590E-03
+    1.00000E+00   0.00000E+00   9.99982E+00   0.00000E+00  -1.41477E+00
+    1.35777E+00  -1.41477E+00   1.35777E+00   1.64215E+02   0.00000E+00
+    1.64215E+02   0.00000E+00   9.38098E-01   1.32928E-03   9.38098E-01
+    1.32928E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41278E+00   1.35773E+00  -1.41278E+00   1.35773E+00   1.64226E+02
+   -4.87166E-04   1.64226E+02  -4.87166E-04   9.38282E-01   1.32068E-03
+    9.38282E-01   1.32068E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41380E+00   1.35777E+00  -1.41380E+00   1.35777E+00
+    1.64203E+02   4.87181E-04   1.64203E+02   4.87181E-04   9.38463E-01
+    1.31406E-03   9.38463E-01   1.31406E-03   1.00000E+00   0.00000E+00
+    9.99988E+00   0.00000E+00  -1.41376E+00   1.35773E+00  -1.41376E+00
+    1.35773E+00   1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00
+    9.38617E-01   1.30736E-03   9.38617E-01   1.30736E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41477E+00   1.35777E+00
+   -1.41477E+00   1.35777E+00   1.64223E+02  -4.87181E-04   1.64223E+02
+   -4.87181E-04   9.38798E-01   1.29978E-03   9.38798E-01   1.29978E-03
+    1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00  -1.41473E+00
+    1.35779E+00  -1.41473E+00   1.35779E+00   1.64202E+02   4.87166E-04
+    1.64202E+02   4.87166E-04   9.38982E-01   1.29213E-03   9.38982E-01
+    1.29213E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41088E+00   1.35765E+00  -1.41088E+00   1.35765E+00   1.64227E+02
+   -4.87181E-04   1.64227E+02  -4.87181E-04   9.39133E-01   1.28646E-03
+    9.39133E-01   1.28646E-03   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00
+    1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00   9.39317E-01
+    1.27881E-03   9.39317E-01   1.27881E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41380E+00   1.35774E+00  -1.41380E+00
+    1.35774E+00   1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00
+    9.39498E-01   1.27124E-03   9.39498E-01   1.27124E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41376E+00   1.35776E+00
+   -1.41376E+00   1.35776E+00   1.64226E+02  -4.87166E-04   1.64226E+02
+   -4.87166E-04   9.39652E-01   1.26549E-03   9.39652E-01   1.26549E-03
+    1.00000E+00   0.00000E+00   9.99982E+00   0.00000E+00  -1.41473E+00
+    1.35776E+00  -1.41473E+00   1.35776E+00   1.64214E+02   0.00000E+00
+    1.64214E+02   0.00000E+00   9.39835E-01   1.25788E-03   9.39835E-01
+    1.25788E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41380E+00   1.35774E+00  -1.41380E+00   1.35774E+00   1.64215E+02
+    0.00000E+00   1.64215E+02   0.00000E+00   9.39955E-01   1.25221E-03
+    9.39955E-01   1.25221E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41473E+00   1.35776E+00  -1.41473E+00   1.35776E+00
+    1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00   9.40139E-01
+    1.24456E-03   9.40139E-01   1.24456E-03   1.00000E+00   0.00000E+00
+    9.99982E+00   0.00000E+00  -1.41575E+00   1.35783E+00  -1.41575E+00
+    1.35783E+00   1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00
+    9.40320E-01   1.23793E-03   9.40320E-01   1.23793E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41181E+00   1.35767E+00
+   -1.41181E+00   1.35767E+00   1.64214E+02   0.00000E+00   1.64214E+02
+    0.00000E+00   9.40444E-01   1.23219E-03   9.40444E-01   1.23219E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41575E+00
+    1.35783E+00  -1.41575E+00   1.35783E+00   1.64211E+02   0.00000E+00
+    1.64211E+02   0.00000E+00   9.40625E-01   1.22461E-03   9.40625E-01
+    1.22461E-03   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41278E+00   1.35773E+00  -1.41278E+00   1.35773E+00   1.64214E+02
+    0.00000E+00   1.64214E+02   0.00000E+00   9.40779E-01   1.21887E-03
+    9.40779E-01   1.21887E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41380E+00   1.35777E+00  -1.41380E+00   1.35777E+00
+    1.64227E+02  -4.87181E-04   1.64227E+02  -4.87181E-04   9.40899E-01
+    1.21320E-03   9.40899E-01   1.21320E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41278E+00   1.35773E+00  -1.41278E+00
+    1.35773E+00   1.64214E+02   0.00000E+00   1.64214E+02   0.00000E+00
+    9.41083E-01   1.20650E-03   9.41083E-01   1.20650E-03   1.00000E+00
+    0.00000E+00   9.99982E+00   0.00000E+00  -1.41380E+00   1.35777E+00
+   -1.41380E+00   1.35777E+00   1.64215E+02   0.00000E+00   1.64215E+02
+    0.00000E+00   9.41264E-01   1.19987E-03   9.41264E-01   1.19987E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41376E+00
+    1.35773E+00  -1.41376E+00   1.35773E+00   1.64226E+02  -4.87166E-04
+    1.64226E+02  -4.87166E-04   9.41388E-01   1.19413E-03   9.41388E-01
+    1.19413E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00   1.64202E+02
+    4.87166E-04   1.64202E+02   4.87166E-04   9.41571E-01   1.18747E-03
+    9.41571E-01   1.18747E-03   1.00000E+00   0.00000E+00   9.99982E+00
+    0.00000E+00  -1.41477E+00   1.35777E+00  -1.41477E+00   1.35777E+00
+    1.64223E+02  -4.87181E-04   1.64223E+02  -4.87181E-04   9.41751E-01
+    1.17989E-03   9.41751E-01   1.17989E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41278E+00   1.35773E+00  -1.41278E+00
+    1.35773E+00   1.64210E+02   0.00000E+00   1.64210E+02   0.00000E+00
+    9.41845E-01   1.17605E-03   9.41845E-01   1.17605E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41380E+00   1.35777E+00
+   -1.41380E+00   1.35777E+00   1.64215E+02   0.00000E+00   1.64215E+02
+    0.00000E+00   9.42025E-01   1.16847E-03   9.42025E-01   1.16847E-03
+    1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00  -1.41376E+00
+    1.35773E+00  -1.41376E+00   1.35773E+00   1.64218E+02   0.00000E+00
+    1.64218E+02   0.00000E+00   9.42179E-01   1.16273E-03   9.42179E-01
+    1.16273E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41575E+00   1.35783E+00  -1.41575E+00   1.35783E+00   1.64207E+02
+    0.00000E+00   1.64207E+02   0.00000E+00   9.42330E-01   1.15706E-03
+    9.42330E-01   1.15706E-03   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00
+    1.64218E+02   0.00000E+00   1.64218E+02   0.00000E+00   9.42484E-01
+    1.15131E-03   9.42484E-01   1.15131E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41088E+00   1.35765E+00  -1.41088E+00
+    1.35765E+00   1.64231E+02  -4.87181E-04   1.64231E+02  -4.87181E-04
+    9.42634E-01   1.14564E-03   9.42634E-01   1.14564E-03   1.00000E+00
+    0.00000E+00   9.99988E+00   0.00000E+00  -1.41570E+00   1.35779E+00
+   -1.41570E+00   1.35779E+00   1.64202E+02   4.87166E-04   1.64202E+02
+    4.87166E-04   9.42819E-01   1.13894E-03   9.42819E-01   1.13894E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41477E+00
+    1.35777E+00  -1.41477E+00   1.35777E+00   1.64223E+02  -4.87181E-04
+    1.64223E+02  -4.87181E-04   9.42908E-01   1.13422E-03   9.42908E-01
+    1.13422E-03   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00   1.64218E+02
+    0.00000E+00   1.64218E+02   0.00000E+00   9.43093E-01   1.12752E-03
+    9.43093E-01   1.12752E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41376E+00   1.35773E+00  -1.41376E+00   1.35773E+00
+    1.64210E+02   0.00000E+00   1.64210E+02   0.00000E+00   9.43215E-01
+    1.12277E-03   9.43215E-01   1.12277E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41282E+00   1.35771E+00  -1.41282E+00
+    1.35771E+00   1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00
+    9.43396E-01   1.11614E-03   9.43396E-01   1.11614E-03   1.00000E+00
+    0.00000E+00   9.99988E+00   0.00000E+00  -1.41570E+00   1.35779E+00
+   -1.41570E+00   1.35779E+00   1.64226E+02  -4.87166E-04   1.64226E+02
+   -4.87166E-04   9.43519E-01   1.11135E-03   9.43519E-01   1.11135E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41477E+00
+    1.35777E+00  -1.41477E+00   1.35777E+00   1.64199E+02   4.87181E-04
+    1.64199E+02   4.87181E-04   9.43639E-01   1.10567E-03   9.43639E-01
+    1.10567E-03   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41376E+00   1.35773E+00  -1.41376E+00   1.35773E+00   1.64226E+02
+   -4.87166E-04   1.64226E+02  -4.87166E-04   9.43854E-01   1.09898E-03
+    9.43854E-01   1.09898E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41380E+00   1.35777E+00  -1.41380E+00   1.35777E+00
+    1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00   9.43944E-01
+    1.09521E-03   9.43944E-01   1.09521E-03   1.00000E+00   0.00000E+00
+    1.00004E+01   0.00000E+00  -1.41473E+00   1.35779E+00  -1.41473E+00
+    1.35779E+00   1.64218E+02   0.00000E+00   1.64218E+02   0.00000E+00
+    9.44098E-01   1.08851E-03   9.44098E-01   1.08851E-03   1.00000E+00
+    0.00000E+00   9.99957E+00   0.00000E+00  -1.41282E+00   1.35771E+00
+   -1.41282E+00   1.35771E+00   1.64207E+02   0.00000E+00   1.64207E+02
+    0.00000E+00   9.44218E-01   1.08379E-03   9.44218E-01   1.08379E-03
+    1.00000E+00   0.00000E+00   1.00004E+01   0.00000E+00  -1.41570E+00
+    1.35779E+00  -1.41570E+00   1.35779E+00   1.64218E+02   0.00000E+00
+    1.64218E+02   0.00000E+00   9.44402E-01   1.07805E-03   9.44402E-01
+    1.07805E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41380E+00   1.35777E+00  -1.41380E+00   1.35777E+00   1.64215E+02
+    0.00000E+00   1.64215E+02   0.00000E+00   9.44522E-01   1.07332E-03
+    9.44522E-01   1.07332E-03   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00
+    1.64226E+02  -4.87166E-04   1.64226E+02  -4.87166E-04   9.44646E-01
+    1.06758E-03   9.44646E-01   1.06758E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41278E+00   1.35773E+00  -1.41278E+00
+    1.35773E+00   1.64218E+02   0.00000E+00   1.64218E+02   0.00000E+00
+    9.44828E-01   1.06187E-03   9.44828E-01   1.06187E-03   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41477E+00   1.35777E+00
+   -1.41477E+00   1.35777E+00   1.64215E+02   0.00000E+00   1.64215E+02
+    0.00000E+00   9.44949E-01   1.05714E-03   9.44949E-01   1.05714E-03
+    1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00  -1.41181E+00
+    1.35767E+00  -1.41181E+00   1.35767E+00   1.64210E+02   0.00000E+00
+    1.64210E+02   0.00000E+00   9.45042E-01   1.05236E-03   9.45042E-01
+    1.05236E-03   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41672E+00   1.35783E+00  -1.41672E+00   1.35783E+00   1.64215E+02
+    0.00000E+00   1.64215E+02   0.00000E+00   9.45223E-01   1.04668E-03
+    9.45223E-01   1.04668E-03   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41376E+00   1.35773E+00  -1.41376E+00   1.35773E+00
+    1.64210E+02   0.00000E+00   1.64210E+02   0.00000E+00   9.45316E-01
+    1.04189E-03   9.45316E-01   1.04189E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41477E+00   1.35777E+00  -1.41477E+00
+    1.35777E+00   1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00
+    9.45466E-01   1.03621E-03   9.45466E-01   1.03621E-03   1.00000E+00
+    0.00000E+00   9.99988E+00   0.00000E+00  -1.41278E+00   1.35773E+00
+   -1.41278E+00   1.35773E+00   1.64218E+02   0.00000E+00   1.64218E+02
+    0.00000E+00   9.45590E-01   1.03237E-03   9.45590E-01   1.03237E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41282E+00
+    1.35771E+00  -1.41282E+00   1.35771E+00   1.64231E+02  -4.87181E-04
+    1.64231E+02  -4.87181E-04   9.45771E-01   1.02574E-03   9.45771E-01
+    1.02574E-03   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41668E+00   1.35785E+00  -1.41668E+00   1.35785E+00   1.64210E+02
+    0.00000E+00   1.64210E+02   0.00000E+00   9.45864E-01   1.02191E-03
+    9.45864E-01   1.02191E-03   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41376E+00   1.35773E+00  -1.41376E+00   1.35773E+00
+    1.64202E+02   4.87166E-04   1.64202E+02   4.87166E-04   9.45955E-01
+    1.01905E-03   9.45955E-01   1.01905E-03   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41282E+00   1.35771E+00  -1.41282E+00
+    1.35771E+00   1.64223E+02  -4.87181E-04   1.64223E+02  -4.87181E-04
+    9.46197E-01   1.00957E-03   9.46197E-01   1.00957E-03   1.00000E+00
+    0.00000E+00   9.99988E+00   0.00000E+00  -1.41570E+00   1.35779E+00
+   -1.41570E+00   1.35779E+00   1.64210E+02   0.00000E+00   1.64210E+02
+    0.00000E+00   9.46259E-01   1.00763E-03   9.46259E-01   1.00763E-03
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41282E+00
+    1.35771E+00  -1.41282E+00   1.35771E+00   1.64215E+02   0.00000E+00
+    1.64215E+02   0.00000E+00   9.46441E-01   1.00196E-03   9.46441E-01
+    1.00196E-03   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41668E+00   1.35785E+00  -1.41668E+00   1.35785E+00   1.64226E+02
+   -4.87166E-04   1.64226E+02  -4.87166E-04   9.46534E-01   9.98120E-04
+    9.46534E-01   9.98120E-04   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41672E+00   1.35783E+00  -1.41672E+00   1.35783E+00
+    1.64199E+02   4.87181E-04   1.64199E+02   4.87181E-04   9.46654E-01
+    9.92441E-04   9.46654E-01   9.92441E-04   1.00000E+00   0.00000E+00
+    1.00004E+01   0.00000E+00  -1.41278E+00   1.35773E+00  -1.41278E+00
+    1.35773E+00   1.64210E+02   0.00000E+00   1.64210E+02   0.00000E+00
+    9.46777E-01   9.88605E-04   9.46777E-01   9.88605E-04   1.00000E+00
+    0.00000E+00   9.99957E+00   0.00000E+00  -1.41477E+00   1.35777E+00
+   -1.41477E+00   1.35777E+00   1.64223E+02  -4.87181E-04   1.64223E+02
+   -4.87181E-04   9.46928E-01   9.82926E-04   9.46928E-01   9.82926E-04
+    1.00000E+00   0.00000E+00   1.00004E+01   0.00000E+00  -1.41473E+00
+    1.35779E+00  -1.41473E+00   1.35779E+00   1.64202E+02   4.87166E-04
+    1.64202E+02   4.87166E-04   9.47021E-01   9.79090E-04   9.47021E-01
+    9.79090E-04   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41575E+00   1.35783E+00  -1.41575E+00   1.35783E+00   1.64231E+02
+   -4.87181E-04   1.64231E+02  -4.87181E-04   9.47171E-01   9.74362E-04
+    9.47171E-01   9.74362E-04   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41181E+00   1.35767E+00  -1.41181E+00   1.35767E+00
+    1.64210E+02   0.00000E+00   1.64210E+02   0.00000E+00   9.47325E-01
+    9.69575E-04   9.47325E-01   9.69575E-04   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41278E+00   1.35773E+00  -1.41278E+00
+    1.35773E+00   1.64218E+02   0.00000E+00   1.64218E+02   0.00000E+00
+    9.47447E-01   9.64817E-04   9.47447E-01   9.64817E-04   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41477E+00   1.35777E+00
+   -1.41477E+00   1.35777E+00   1.64231E+02  -4.87181E-04   1.64231E+02
+   -4.87181E-04   9.47567E-01   9.60089E-04   9.47567E-01   9.60089E-04
+    1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00  -1.41473E+00
+    1.35779E+00  -1.41473E+00   1.35779E+00   1.64210E+02   0.00000E+00
+    1.64210E+02   0.00000E+00   9.47660E-01   9.56254E-04   9.47660E-01
+    9.56254E-04   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41477E+00   1.35777E+00  -1.41477E+00   1.35777E+00   1.64215E+02
+    0.00000E+00   1.64215E+02   0.00000E+00   9.47811E-01   9.51525E-04
+    9.47811E-01   9.51525E-04   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41278E+00   1.35773E+00  -1.41278E+00   1.35773E+00
+    1.64226E+02  -4.87166E-04   1.64226E+02  -4.87166E-04   9.47904E-01
+    9.47691E-04   9.47904E-01   9.47691E-04   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41477E+00   1.35777E+00  -1.41477E+00
+    1.35777E+00   1.64207E+02   4.87181E-04   1.64207E+02   4.87181E-04
+    9.48054E-01   9.42010E-04   9.48054E-01   9.42010E-04   1.00000E+00
+    0.00000E+00   9.99988E+00   0.00000E+00  -1.41473E+00   1.35773E+00
+   -1.41473E+00   1.35773E+00   1.64226E+02  -4.87166E-04   1.64226E+02
+   -4.87166E-04   9.48178E-01   9.39127E-04   9.48178E-01   9.39127E-04
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41282E+00
+    1.35771E+00  -1.41282E+00   1.35771E+00   1.64199E+02   4.87181E-04
+    1.64199E+02   4.87181E-04   9.48298E-01   9.33447E-04   9.48298E-01
+    9.33447E-04   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41668E+00   1.35785E+00  -1.41668E+00   1.35785E+00   1.64226E+02
+   -4.87166E-04   1.64226E+02  -4.87166E-04   9.48421E-01   9.30564E-04
+    9.48421E-01   9.30564E-04   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41088E+00   1.35771E+00  -1.41088E+00   1.35771E+00
+    1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00   9.48572E-01
+    9.24883E-04   9.48572E-01   9.24883E-04   1.00000E+00   0.00000E+00
+    9.99988E+00   0.00000E+00  -1.41668E+00   1.35779E+00  -1.41668E+00
+    1.35779E+00   1.64210E+02   0.00000E+00   1.64210E+02   0.00000E+00
+    9.48634E-01   9.22000E-04   9.48634E-01   9.22000E-04   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41668E+00   1.35779E+00
+   -1.41668E+00   1.35779E+00   1.64218E+02   0.00000E+00   1.64218E+02
+    0.00000E+00   9.48787E-01   9.17243E-04   9.48787E-01   9.17243E-04
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41282E+00
+    1.35771E+00  -1.41282E+00   1.35771E+00   1.64231E+02  -4.87181E-04
+    1.64231E+02  -4.87181E-04   9.48907E-01   9.12513E-04   9.48907E-01
+    9.12513E-04   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00   1.64195E+02
+    4.87166E-04   1.64195E+02   4.87166E-04   9.49030E-01   9.08679E-04
+    9.49030E-01   9.08679E-04   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41477E+00   1.35777E+00  -1.41477E+00   1.35777E+00
+    1.64231E+02  -4.87181E-04   1.64231E+02  -4.87181E-04   9.49120E-01
+    9.04901E-04   9.49120E-01   9.04901E-04   1.00000E+00   0.00000E+00
+    9.99988E+00   0.00000E+00  -1.41473E+00   1.35773E+00  -1.41473E+00
+    1.35773E+00   1.64218E+02   0.00000E+00   1.64218E+02   0.00000E+00
+    9.49274E-01   9.00116E-04   9.49274E-01   9.00116E-04   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41282E+00   1.35771E+00
+   -1.41282E+00   1.35771E+00   1.64207E+02   0.00000E+00   1.64207E+02
+    0.00000E+00   9.49333E-01   8.97289E-04   9.49333E-01   8.97289E-04
+    1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00  -1.41668E+00
+    1.35785E+00  -1.41668E+00   1.35785E+00   1.64218E+02   0.00000E+00
+    1.64218E+02   0.00000E+00   9.49487E-01   8.92504E-04   9.49487E-01
+    8.92504E-04   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41282E+00   1.35771E+00  -1.41282E+00   1.35771E+00   1.64215E+02
+    0.00000E+00   1.64215E+02   0.00000E+00   9.49638E-01   8.87773E-04
+    9.49638E-01   8.87773E-04   1.00000E+00   0.00000E+00   1.00004E+01
+    0.00000E+00  -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00
+    1.64210E+02   0.00000E+00   1.64210E+02   0.00000E+00   9.49700E-01
+    8.84892E-04   9.49700E-01   8.84892E-04   1.00000E+00   0.00000E+00
+    9.99957E+00   0.00000E+00  -1.41088E+00   1.35765E+00  -1.41088E+00
+    1.35765E+00   1.64231E+02  -4.87181E-04   1.64231E+02  -4.87181E-04
+    9.49851E-01   8.80161E-04   9.49851E-01   8.80161E-04   1.00000E+00
+    0.00000E+00   1.00004E+01   0.00000E+00  -1.41473E+00   1.35779E+00
+   -1.41473E+00   1.35779E+00   1.64210E+02   0.00000E+00   1.64210E+02
+    0.00000E+00   9.49913E-01   8.77280E-04   9.49913E-01   8.77280E-04
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41668E+00
+    1.35785E+00  -1.41668E+00   1.35785E+00   1.64218E+02   0.00000E+00
+    1.64218E+02   0.00000E+00   9.50065E-01   8.72522E-04   9.50065E-01
+    8.72522E-04   1.00000E+00   0.00000E+00   9.99957E+00   0.00000E+00
+   -1.41477E+00   1.35777E+00  -1.41477E+00   1.35777E+00   1.64215E+02
+    0.00000E+00   1.64215E+02   0.00000E+00   9.50155E-01   8.68743E-04
+    9.50155E-01   8.68743E-04   1.00000E+00   0.00000E+00   1.00004E+01
+    0.00000E+00  -1.41278E+00   1.35773E+00  -1.41278E+00   1.35773E+00
+    1.64210E+02   0.00000E+00   1.64210E+02   0.00000E+00   9.50309E-01
+    8.64910E-04   9.50309E-01   8.64910E-04   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41088E+00   1.35771E+00  -1.41088E+00
+    1.35771E+00   1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00
+    9.50399E-01   8.61131E-04   9.50399E-01   8.61131E-04   1.00000E+00
+    0.00000E+00   9.99988E+00   0.00000E+00  -1.41473E+00   1.35779E+00
+   -1.41473E+00   1.35779E+00   1.64226E+02  -4.87166E-04   1.64226E+02
+   -4.87166E-04   9.50492E-01   8.57298E-04   9.50492E-01   8.57298E-04
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41477E+00
+    1.35777E+00  -1.41477E+00   1.35777E+00   1.64199E+02   4.87181E-04
+    1.64199E+02   4.87181E-04   9.50612E-01   8.53518E-04   9.50612E-01
+    8.53518E-04   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00   1.64226E+02
+   -4.87166E-04   1.64226E+02  -4.87166E-04   9.50735E-01   8.49686E-04
+    9.50735E-01   8.49686E-04   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41282E+00   1.35771E+00  -1.41282E+00   1.35771E+00
+    1.64207E+02   0.00000E+00   1.64207E+02   0.00000E+00   9.50856E-01
+    8.45906E-04   9.50856E-01   8.45906E-04   1.00000E+00   0.00000E+00
+    9.99988E+00   0.00000E+00  -1.41278E+00   1.35773E+00  -1.41278E+00
+    1.35773E+00   1.64218E+02   0.00000E+00   1.64218E+02   0.00000E+00
+    9.50948E-01   8.42074E-04   9.50948E-01   8.42074E-04   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41672E+00   1.35783E+00
+   -1.41672E+00   1.35783E+00   1.64215E+02   0.00000E+00   1.64215E+02
+    0.00000E+00   9.51038E-01   8.39246E-04   9.51038E-01   8.39246E-04
+    1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00  -1.41473E+00
+    1.35779E+00  -1.41473E+00   1.35779E+00   1.64210E+02   0.00000E+00
+    1.64210E+02   0.00000E+00   9.51162E-01   8.35414E-04   9.51162E-01
+    8.35414E-04   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41278E+00   1.35767E+00  -1.41278E+00   1.35767E+00   1.64210E+02
+    0.00000E+00   1.64210E+02   0.00000E+00   9.51283E-01   8.30656E-04
+    9.51283E-01   8.30656E-04   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41477E+00   1.35777E+00  -1.41477E+00   1.35777E+00
+    1.64223E+02  -4.87181E-04   1.64223E+02  -4.87181E-04   9.51404E-01
+    8.27827E-04   9.51404E-01   8.27827E-04   1.00000E+00   0.00000E+00
+    9.99988E+00   0.00000E+00  -1.41473E+00   1.35779E+00  -1.41473E+00
+    1.35779E+00   1.64218E+02   0.00000E+00   1.64218E+02   0.00000E+00
+    9.51466E-01   8.24947E-04   9.51466E-01   8.24947E-04   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41282E+00   1.35771E+00
+   -1.41282E+00   1.35771E+00   1.64215E+02   0.00000E+00   1.64215E+02
+    0.00000E+00   9.51586E-01   8.20215E-04   9.51586E-01   8.20215E-04
+    1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00  -1.41473E+00
+    1.35779E+00  -1.41473E+00   1.35779E+00   1.64210E+02   0.00000E+00
+    1.64210E+02   0.00000E+00   9.51710E-01   8.17336E-04   9.51710E-01
+    8.17336E-04   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41477E+00   1.35777E+00  -1.41477E+00   1.35777E+00   1.64215E+02
+    0.00000E+00   1.64215E+02   0.00000E+00   9.51830E-01   8.13554E-04
+    9.51830E-01   8.13554E-04   1.00000E+00   0.00000E+00   1.00004E+01
+    0.00000E+00  -1.41668E+00   1.35785E+00  -1.41668E+00   1.35785E+00
+    1.64195E+02   4.87166E-04   1.64195E+02   4.87166E-04   9.51923E-01
+    8.09724E-04   9.51923E-01   8.09724E-04   1.00000E+00   0.00000E+00
+    9.99957E+00   0.00000E+00  -1.41282E+00   1.35777E+00  -1.41282E+00
+    1.35777E+00   1.64231E+02  -4.87181E-04   1.64231E+02  -4.87181E-04
+    9.52013E-01   8.06894E-04   9.52013E-01   8.06894E-04   1.00000E+00
+    0.00000E+00   1.00004E+01   0.00000E+00  -1.41473E+00   1.35773E+00
+   -1.41473E+00   1.35773E+00   1.64210E+02   0.00000E+00   1.64210E+02
+    0.00000E+00   9.52105E-01   8.03063E-04   9.52105E-01   8.03063E-04
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41477E+00
+    1.35777E+00  -1.41477E+00   1.35777E+00   1.64223E+02  -4.87181E-04
+    1.64223E+02  -4.87181E-04   9.52226E-01   8.00233E-04   9.52226E-01
+    8.00233E-04   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41473E+00   1.35773E+00  -1.41473E+00   1.35773E+00   1.64218E+02
+    0.00000E+00   1.64218E+02   0.00000E+00   9.52319E-01   7.96403E-04
+    9.52319E-01   7.96403E-04   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00
+    1.64195E+02   4.87166E-04   1.64195E+02   4.87166E-04   9.52440E-01
+    7.92597E-04   9.52440E-01   7.92597E-04   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41477E+00   1.35777E+00  -1.41477E+00
+    1.35777E+00   1.64246E+02  -9.74362E-04   1.64246E+02  -9.74362E-04
+    9.52530E-01   7.89766E-04   9.52530E-01   7.89766E-04   1.00000E+00
+    0.00000E+00   9.99988E+00   0.00000E+00  -1.41083E+00   1.35767E+00
+   -1.41083E+00   1.35767E+00   1.64195E+02   4.87166E-04   1.64195E+02
+    4.87166E-04   9.52654E-01   7.85936E-04   9.52654E-01   7.85936E-04
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41672E+00
+    1.35783E+00  -1.41672E+00   1.35783E+00   1.64231E+02  -4.87181E-04
+    1.64231E+02  -4.87181E-04   9.52743E-01   7.83105E-04   9.52743E-01
+    7.83105E-04   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+   -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00   1.64218E+02
+    0.00000E+00   1.64218E+02   0.00000E+00   9.52836E-01   7.80227E-04
+    9.52836E-01   7.80227E-04   1.00000E+00   0.00000E+00   1.00001E+01
+    0.00000E+00  -1.41477E+00   1.35777E+00  -1.41477E+00   1.35777E+00
+    1.64207E+02   0.00000E+00   1.64207E+02   0.00000E+00   9.52987E-01
+    7.75493E-04   9.52987E-01   7.75493E-04   1.00000E+00   0.00000E+00
+    9.99988E+00   0.00000E+00  -1.41278E+00   1.35773E+00  -1.41278E+00
+    1.35773E+00   1.64218E+02   0.00000E+00   1.64218E+02   0.00000E+00
+    9.53049E-01   7.73567E-04   9.53049E-01   7.73567E-04   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41477E+00   1.35777E+00
+   -1.41477E+00   1.35777E+00   1.64215E+02   0.00000E+00   1.64215E+02
+    0.00000E+00   9.53139E-01   7.69784E-04   9.53139E-01   7.69784E-04
+    1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00  -1.41278E+00
+    1.35773E+00  -1.41278E+00   1.35773E+00   1.64210E+02   0.00000E+00
+    1.64210E+02   0.00000E+00   9.53232E-01   7.66906E-04   9.53232E-01
+    7.66906E-04   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41477E+00   1.35783E+00  -1.41477E+00   1.35783E+00   1.64231E+02
+   -4.87181E-04   1.64231E+02  -4.87181E-04   9.53352E-01   7.63123E-04
+    9.53352E-01   7.63123E-04   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41083E+00   1.35767E+00  -1.41083E+00   1.35767E+00
+    1.64195E+02   4.87166E-04   1.64195E+02   4.87166E-04   9.53415E-01
+    7.60246E-04   9.53415E-01   7.60246E-04   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41278E+00   1.35773E+00  -1.41278E+00
+    1.35773E+00   1.64218E+02   0.00000E+00   1.64218E+02   0.00000E+00
+    9.53537E-01   7.57391E-04   9.53537E-01   7.57391E-04   1.00000E+00
+    0.00000E+00   1.00001E+01   0.00000E+00  -1.41867E+00   1.35790E+00
+   -1.41867E+00   1.35790E+00   1.64223E+02  -4.87181E-04   1.64223E+02
+   -4.87181E-04   9.53626E-01   7.54560E-04   9.53626E-01   7.54560E-04
+    1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00  -1.41278E+00
+    1.35773E+00  -1.41278E+00   1.35773E+00   1.64218E+02   0.00000E+00
+    1.64218E+02   0.00000E+00   9.53719E-01   7.50731E-04   9.53719E-01
+    7.50731E-04   1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00
+   -1.41282E+00   1.35771E+00  -1.41282E+00   1.35771E+00   1.64215E+02
+    0.00000E+00   1.64215E+02   0.00000E+00   9.53840E-01   7.47899E-04
+    9.53840E-01   7.47899E-04   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00
+    1.64210E+02   0.00000E+00   1.64210E+02   0.00000E+00   9.53963E-01
+    7.44070E-04   9.53963E-01   7.44070E-04   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41282E+00   1.35771E+00  -1.41282E+00
+    1.35771E+00   1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00
+    9.53992E-01   7.42190E-04   9.53992E-01   7.42190E-04   1.00000E+00
+    0.00000E+00   9.99988E+00   0.00000E+00  -1.41668E+00   1.35785E+00
+   -1.41668E+00   1.35785E+00   1.64226E+02  -4.87166E-04   1.64226E+02
+   -4.87166E-04   9.54115E-01   7.38361E-04   9.54115E-01   7.38361E-04
+    1.00000E+00   0.00000E+00   1.00001E+01   0.00000E+00  -1.41282E+00
+    1.35771E+00  -1.41282E+00   1.35771E+00   1.64199E+02   4.87181E-04
+    1.64199E+02   4.87181E-04   9.54205E-01   7.35529E-04   9.54205E-01
+    7.35529E-04   1.00000E+00   0.00000E+00   1.00004E+01   0.00000E+00
+   -1.41278E+00   1.35773E+00  -1.41278E+00   1.35773E+00   1.64210E+02
+    0.00000E+00   1.64210E+02   0.00000E+00   9.54328E-01   7.32652E-04
+    9.54328E-01   7.32652E-04   1.00000E+00   0.00000E+00   9.99957E+00
+    0.00000E+00  -1.41473E+00   1.35779E+00  -1.41473E+00   1.35779E+00
+    1.64233E+02  -4.87166E-04   1.64233E+02  -4.87166E-04   9.54389E-01
+    7.29798E-04   9.54389E-01   7.29798E-04   1.00000E+00   0.00000E+00
+    1.00001E+01   0.00000E+00  -1.41477E+00   1.35777E+00  -1.41477E+00
+    1.35777E+00   1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00
+    9.54509E-01   7.26965E-04   9.54509E-01   7.26965E-04   1.00000E+00
+    0.00000E+00   1.00004E+01   0.00000E+00  -1.41473E+00   1.35779E+00
+   -1.41473E+00   1.35779E+00   1.64210E+02   0.00000E+00   1.64210E+02
+    0.00000E+00   9.54602E-01   7.23137E-04   9.54602E-01   7.23137E-04
+    1.00000E+00   0.00000E+00   9.99957E+00   0.00000E+00  -1.41672E+00
+    1.35783E+00  -1.41672E+00   1.35783E+00   1.64231E+02  -4.87181E-04
+    1.64231E+02  -4.87181E-04   9.54662E-01   7.21256E-04   9.54662E-01
+    7.21256E-04   1.00000E+00   0.00000E+00   1.00004E+01   0.00000E+00
+   -1.41282E+00   1.35777E+00  -1.41282E+00   1.35777E+00   1.64192E+02
+    4.87181E-04   1.64192E+02   4.87181E-04   9.54814E-01   7.17450E-04
+    9.54814E-01   7.17450E-04   1.00000E+00   0.00000E+00   9.99988E+00
+    0.00000E+00  -1.41469E+00   1.35775E+00  -1.41469E+00   1.35775E+00
+    1.64236E+02  -4.87151E-04   1.64236E+02  -4.87151E-04   9.54847E-01
+    7.15504E-04   9.54847E-01   7.15504E-04   1.00000E+00   0.00000E+00
+    9.99976E+00   0.00000E+00  -1.41477E+00   1.35777E+00  -1.41477E+00
+    1.35777E+00   1.64215E+02   0.00000E+00   1.64215E+02   0.00000E+00
+    9.54997E-01   7.11741E-04   9.54997E-01   7.11741E-04   1.00000E+00
+    0.00000E+00   1.00004E+01   0.00000E+00  -1.41477E+00   1.35777E+00
+   -1.41477E+00   1.35777E+00   1.64215E+02   0.00000E+00   1.64215E+02
+    0.00000E+00   9.55027E-01   7.09838E-04   9.55027E-01   7.09838E-04
+    1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00  -1.41477E+00
+    1.35777E+00  -1.41477E+00   1.35777E+00   1.64215E+02   0.00000E+00
+    1.64215E+02   0.00000E+00   9.55027E-01   7.09838E-04   9.55027E-01
+    7.09838E-04   1.00000E+00   0.00000E+00   9.99988E+00   0.00000E+00
+    0.00000E+00  -1.55707E+01   1.59935E+01
+    3.16675E-01   4.07263E-01  -6.86695E-02   9.15897E-02   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    3.16675E-01   4.07263E-01  -6.86695E-02   9.15897E-02   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    3.00450E-01   4.21237E-01  -7.51237E-02   9.71482E-02   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.83249E-01   4.35294E-01  -8.22346E-02   1.02959E-01   1.00000E+00
+   -9.53289E-07   1.00000E+00  -9.53289E-07   1.00000E+00  -9.53289E-07
+    2.65119E-01   4.49391E-01  -9.00322E-02   1.09022E-01   9.99998E-01
+    9.53289E-07   9.99998E-01   9.53289E-07   9.99998E-01   9.53289E-07
+    2.52986E-01   4.58387E-01  -1.05663E-01   1.20612E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.45720E-01   4.63536E-01  -1.26758E-01   1.35559E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.28027E-01   4.75541E-01  -1.37680E-01   1.42970E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.10204E-01   4.87142E-01  -1.49389E-01   1.50592E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.07127E-01   4.89067E-01  -1.74811E-01   1.66492E-01   1.00000E+00
+   -9.53289E-07   1.00000E+00  -9.53289E-07   1.00000E+00  -9.53289E-07
+    1.94873E-01   4.96442E-01  -1.91367E-01   1.76458E-01   9.99998E-01
+    9.53289E-07   9.99998E-01   9.53289E-07   9.99998E-01   9.53289E-07
+    1.80483E-01   5.04790E-01  -2.05946E-01   1.84915E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.90602E-01   4.99125E-01  -2.39370E-01   2.03625E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.83886E-01   5.02757E-01  -2.57514E-01   2.13439E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.76991E-01   5.06366E-01  -2.74383E-01   2.22264E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.72404E-01   5.08690E-01  -2.91607E-01   2.30990E-01   1.00000E+00
+   -9.53289E-07   1.00000E+00  -9.53289E-07   1.00000E+00  -9.53289E-07
+    1.76168E-01   5.06841E-01  -3.12774E-01   2.41383E-01   9.99996E-01
+    9.53289E-07   9.99996E-01   9.53289E-07   9.99996E-01   9.53289E-07
+    1.91409E-01   4.99579E-01  -3.38806E-01   2.53786E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.97804E-01   4.96622E-01  -3.56357E-01   2.61905E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.07931E-01   4.92067E-01  -3.73597E-01   2.69656E-01   1.00000E+00
+   -9.53289E-07   1.00000E+00  -9.53289E-07   1.00000E+00  -9.53289E-07
+    2.54928E-01   4.71514E-01  -4.08146E-01   2.84766E-01   9.99996E-01
+    9.53289E-07   9.99996E-01   9.53289E-07   9.99996E-01   9.53289E-07
+    2.88405E-01   4.57264E-01  -4.30323E-01   2.94207E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    3.15409E-01   4.46065E-01  -4.45139E-01   3.00350E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    3.47165E-01   4.33232E-01  -4.58683E-01   3.05824E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    3.83760E-01   4.18805E-01  -4.70736E-01   3.10576E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    4.25251E-01   4.02843E-01  -4.81091E-01   3.14560E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    4.75844E-01   3.83834E-01  -4.91312E-01   3.18399E-01   1.00000E+00
+   -9.53289E-07   1.00000E+00  -9.53289E-07   1.00000E+00  -9.53289E-07
+    5.40050E-01   3.60265E-01  -5.02667E-01   3.22568E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    5.96751E-01   3.39920E-01  -5.06570E-01   3.23969E-01   9.99996E-01
+    9.53289E-07   9.99996E-01   9.53289E-07   9.99996E-01   9.53289E-07
+    6.57815E-01   3.18488E-01  -5.08061E-01   3.24491E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    7.22967E-01   2.96114E-01  -5.07031E-01   3.24138E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    8.17579E-01   2.64305E-01  -5.11695E-01   3.25705E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    9.04709E-01   2.35615E-01  -5.09178E-01   3.24877E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    9.81247E-01   2.10921E-01  -4.99399E-01   3.21722E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.06006E+00   1.85994E-01  -4.86888E-01   3.17766E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.14067E+00   1.60993E-01  -4.71710E-01   3.13058E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.22257E+00   1.36078E-01  -4.53912E-01   3.07643E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.29130E+00   1.15558E-01  -4.30294E-01   3.00592E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.30618E+00   1.11199E-01  -3.92412E-01   2.89490E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.38790E+00   8.76778E-02  -3.69178E-01   2.82804E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.46929E+00   6.46692E-02  -3.43901E-01   2.75657E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.54995E+00   4.22614E-02  -3.16749E-01   2.68114E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.65874E+00   1.25548E-02  -2.93361E-01   2.61728E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.75883E+00  -1.43165E-02  -2.66387E-01   2.54485E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.83439E+00  -3.42688E-02  -2.33712E-01   2.45857E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    4.77793E+00  -7.98881E-01  -6.60099E-01   3.56615E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.82866E+00  -4.50257E-02  -1.18784E-01   2.18252E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.87905E+00  -5.77004E-02  -8.36107E-02   2.09402E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.92593E+00  -6.93142E-02  -4.81148E-02   2.00610E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    1.96924E+00  -7.98755E-02  -1.24765E-02   1.91918E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.00893E+00  -8.94135E-02   2.31765E-02   1.83352E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.04504E+00  -9.79611E-02   5.86688E-02   1.74951E-01   1.00001E+00
+   -9.53282E-07   1.00001E+00  -9.53282E-07   1.00001E+00  -9.53282E-07
+    2.07751E+00  -1.05534E-01   9.38692E-02   1.66741E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.10646E+00  -1.12190E-01   1.28685E-01   1.58738E-01   9.99992E-01
+    9.53282E-07   9.99992E-01   9.53282E-07   9.99992E-01   9.53282E-07
+    2.13191E+00  -1.17957E-01   1.62976E-01   1.50966E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.15400E+00  -1.22891E-01   1.96681E-01   1.43434E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.17274E+00  -1.27025E-01   2.29680E-01   1.36161E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.18837E+00  -1.30421E-01   2.61956E-01   1.29145E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.19706E+00  -1.32284E-01   2.93712E-01   1.22335E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.20880E+00  -1.34770E-01   3.24111E-01   1.15900E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.21599E+00  -1.36273E-01   3.53785E-01   1.09704E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.22047E+00  -1.37195E-01   3.82536E-01   1.03775E-01   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.19201E+00  -1.31401E-01   4.12347E-01   9.77054E-02   1.00000E+00
+    0.00000E+00   1.00000E+00   0.00000E+00   1.00000E+00   0.00000E+00
+    2.40302E+00  -1.73813E-01   6.27112E-01   5.45386E-02   1.20134E+00
+   -4.04690E-02   1.20134E+00  -4.04690E-02   1.00000E+00   0.00000E+00
+    2.21710E+00  -1.36908E-01   5.08294E-01   7.81249E-02   1.04455E+00
+   -9.34509E-03   1.04455E+00  -9.34509E-03   1.00000E+00   0.00000E+00
+    2.21390E+00  -1.36282E-01   5.27687E-01   7.43222E-02   1.03910E+00
+   -8.27645E-03   1.03910E+00  -8.27645E-03   1.00000E+00   0.00000E+00
+    2.21247E+00  -1.36004E-01   5.52435E-01   6.95291E-02   1.04014E+00
+   -8.48046E-03   1.04014E+00  -8.48046E-03   1.00000E+00   0.00000E+00
+    2.21269E+00  -1.36046E-01   5.79813E-01   6.42888E-02   1.04490E+00
+   -9.38990E-03   1.04490E+00  -9.38990E-03   1.00000E+00   0.00000E+00
+    2.21589E+00  -1.36652E-01   6.09937E-01   5.85929E-02   1.05348E+00
+   -1.10114E-02   1.05348E+00  -1.10114E-02   1.00000E+00   0.00000E+00
+    2.22347E+00  -1.38069E-01   6.43775E-01   5.22688E-02   1.06686E+00
+   -1.35138E-02   1.06686E+00  -1.35138E-02   1.00000E+00   0.00000E+00
+    2.24124E+00  -1.41352E-01   6.82532E-01   4.51087E-02   1.08644E+00
+   -1.71306E-02   1.08644E+00  -1.71306E-02   1.00000E+00   0.00000E+00
+    2.26157E+00  -1.45064E-01   7.27070E-01   3.69733E-02   1.11265E+00
+   -2.19161E-02   1.11265E+00  -2.19161E-02   1.00000E+00   0.00000E+00
+    2.28623E+00  -1.49516E-01   7.72172E-01   2.88303E-02   1.14025E+00
+   -2.69009E-02   1.14025E+00  -2.69009E-02   1.00000E+00   0.00000E+00
+    2.27928E+00  -1.48276E-01   7.97293E-01   2.43432E-02   1.14739E+00
+   -2.81764E-02   1.14739E+00  -2.81764E-02   1.00000E+00   0.00000E+00
+    2.17690E+00  -1.30198E-01   7.59985E-01   3.09323E-02   1.08962E+00
+   -1.79752E-02   1.08962E+00  -1.79752E-02   1.00000E+00   0.00000E+00
+    1.96010E+00  -9.23298E-02   6.45384E-01   5.09485E-02   9.52092E-01
+    6.04576E-03   9.52092E-01   6.04576E-03   1.00000E+00   0.00000E+00
+    1.76049E+00  -5.78418E-02   5.38906E-01   6.93441E-02   8.25083E-01
+    2.79895E-02   8.25083E-01   2.79895E-02   1.00001E+00  -9.53289E-07
+    1.70108E+00  -4.76911E-02   5.23218E-01   7.20257E-02   7.94578E-01
+    3.32031E-02   7.94578E-01   3.32031E-02   9.99992E-01   9.53289E-07
+    1.73817E+00  -5.39619E-02   5.71737E-01   6.38198E-02   8.31825E-01
+    2.69047E-02   8.31825E-01   2.69047E-02   1.00001E+00  -9.53289E-07
+    1.79331E+00  -6.31878E-02   6.32099E-01   5.37188E-02   8.81731E-01
+    1.85529E-02   8.81731E-01   1.85529E-02   1.00001E+00  -1.90658E-06
+    1.83298E+00  -6.97598E-02   6.82959E-01   4.52955E-02   9.22021E-01
+    1.18808E-02   9.22021E-01   1.18808E-02   1.00002E+00  -2.85987E-06
+    1.85588E+00  -7.35125E-02   7.22385E-01   3.88325E-02   9.50810E-01
+    7.16116E-03   9.50810E-01   7.16116E-03   1.00000E+00  -9.53296E-07
+    1.86774E+00  -7.54395E-02   7.53769E-01   3.37407E-02   9.71722E-01
+    3.76835E-03   9.71722E-01   3.76835E-03   1.00002E+00  -1.90658E-06
+    1.87357E+00  -7.63756E-02   7.81056E-01   2.93584E-02   9.88827E-01
+    1.02097E-03   9.88827E-01   1.02097E-03   1.00002E+00  -3.81316E-06
+    1.87970E+00  -7.73499E-02   8.08038E-01   2.50658E-02   1.00608E+00
+   -1.72355E-03   1.00608E+00  -1.72355E-03   1.00002E+00  -3.81316E-06
+    1.89152E+00  -7.92088E-02   8.38940E-01   2.02011E-02   1.02776E+00
+   -5.13727E-03   1.02776E+00  -5.13727E-03   1.00002E+00  -2.85987E-06
+    1.91239E+00  -8.24652E-02   8.74982E-01   1.45815E-02   1.05515E+00
+   -9.40705E-03   1.05515E+00  -9.40705E-03   1.00002E+00  -3.81316E-06
+    1.90675E+00  -8.15939E-02   8.93125E-01   1.17798E-02   1.06452E+00
+   -1.08541E-02   1.06452E+00  -1.08541E-02   1.00001E+00  -1.90658E-06
+    1.79304E+00  -6.42021E-02   8.32984E-01   2.09781E-02   9.94265E-01
+   -1.09628E-04   9.94265E-01  -1.09628E-04   1.00003E+00  -4.76644E-06
+    1.66042E+00  -4.41106E-02   7.58665E-01   3.22364E-02   9.10223E-01
+    1.26215E-02   9.10223E-01   1.26215E-02   1.00002E+00  -2.85987E-06
+    1.65746E+00  -4.36644E-02   7.75214E-01   2.97531E-02   9.19619E-01
+    1.12126E-02   9.19619E-01   1.12126E-02   1.00002E+00  -3.81316E-06
+    1.70117E+00  -5.01659E-02   8.24694E-01   2.23956E-02   9.62883E-01
+    4.77979E-03   9.62883E-01   4.77979E-03   1.00002E+00  -3.81316E-06
+    1.74345E+00  -5.63928E-02   8.73152E-01   1.52583E-02   1.00532E+00
+   -1.47188E-03   1.00532E+00  -1.47188E-03   1.00002E+00  -3.81316E-06
+    1.75236E+00  -5.76930E-02   8.97388E-01   1.17207E-02   1.02331E+00
+   -4.09819E-03   1.02331E+00  -4.09819E-03   1.00003E+00  -4.76644E-06
+    1.64237E+00  -4.17865E-02   8.34753E-01   2.07807E-02   9.53357E-01
+    6.02097E-03   9.53357E-01   6.02097E-03   1.00003E+00  -3.81316E-06
+    1.59690E+00  -3.52679E-02   8.17907E-01   2.31954E-02   9.30364E-01
+    9.31649E-03   9.30364E-01   9.31649E-03   1.00002E+00  -3.81316E-06
+    1.62195E+00  -3.88236E-02   8.51943E-01   1.83594E-02   9.59329E-01
+    5.20210E-03   9.59329E-01   5.20210E-03   1.00003E+00  -4.76644E-06
+    1.63208E+00  -4.02517E-02   8.74562E-01   1.51745E-02   9.76923E-01
+    2.72355E-03   9.76923E-01   2.72355E-03   1.00002E+00  -3.81316E-06
+    1.62942E+00  -3.98818E-02   8.87504E-01   1.33680E-02   9.84938E-01
+    1.60534E-03   9.84938E-01   1.60534E-03   1.00002E+00  -3.81316E-06
+    1.62151E+00  -3.87855E-02   8.96099E-01   1.21773E-02   9.88812E-01
+    1.06959E-03   9.88812E-01   1.06959E-03   1.00003E+00  -5.71973E-06
+    1.61135E+00  -3.73918E-02   9.02650E-01   1.12793E-02   9.90810E-01
+    7.95043E-04   9.90810E-01   7.95043E-04   1.00003E+00  -4.76644E-06
+    1.60081E+00  -3.59581E-02   9.08111E-01   1.05367E-02   9.91947E-01
+    6.40610E-04   9.91947E-01   6.40610E-04   1.00002E+00  -2.85987E-06
+    1.58958E+00  -3.44442E-02   9.12946E-01   9.88465E-03   9.92671E-01
+    5.43375E-04   9.92671E-01   5.43375E-04   1.00004E+00  -5.71973E-06
+    1.57863E+00  -3.29800E-02   9.17285E-01   9.30315E-03   9.93075E-01
+    4.88084E-04   9.93075E-01   4.88084E-04   1.00002E+00  -2.85987E-06
+    1.56757E+00  -3.15119E-02   9.21312E-01   8.77026E-03   9.93380E-01
+    4.48046E-04   9.93380E-01   4.48046E-04   1.00005E+00  -6.67302E-06
+    1.55691E+00  -3.01106E-02   9.25026E-01   8.28122E-03   9.93556E-01
+    4.25167E-04   9.93556E-01   4.25167E-04   1.00002E+00  -3.81316E-06
+    1.54660E+00  -2.87645E-02   9.28557E-01   7.82078E-03   9.93716E-01
+    4.04194E-04   9.93716E-01   4.04194E-04   1.00004E+00  -5.71973E-06
+    1.53647E+00  -2.74528E-02   9.31836E-01   7.39561E-03   9.93777E-01
+    3.95615E-04   9.93777E-01   3.95615E-04   1.00002E+00  -2.85987E-06
+    1.52680E+00  -2.62135E-02   9.34993E-01   6.99047E-03   9.93891E-01
+    3.81316E-04   9.93891E-01   3.81316E-04   1.00003E+00  -4.76644E-06
+    1.51707E+00  -2.49724E-02   9.37960E-01   6.61296E-03   9.93945E-01
+    3.74643E-04   9.93945E-01   3.74643E-04   1.00004E+00  -5.71973E-06
+    1.50803E+00  -2.38303E-02   9.40744E-01   6.26120E-03   9.93990E-01
+    3.68923E-04   9.93990E-01   3.68923E-04   1.00002E+00  -3.81316E-06
+    1.49926E+00  -2.27302E-02   9.43443E-01   5.92278E-03   9.94051E-01
+    3.61296E-04   9.94051E-01   3.61296E-04   1.00004E+00  -4.76644E-06
+    1.49059E+00  -2.16513E-02   9.45982E-01   5.60538E-03   9.94128E-01
+    3.52720E-04   9.94128E-01   3.52720E-04   1.00003E+00  -4.76648E-06
+    1.48237E+00  -2.06389E-02   9.48400E-01   5.30700E-03   9.94158E-01
+    3.47953E-04   9.94158E-01   3.47953E-04   1.00003E+00  -4.76648E-06
+    1.47463E+00  -1.96891E-02   9.50704E-01   5.02570E-03   9.94219E-01
+    3.42228E-04   9.94219E-01   3.42228E-04   1.00003E+00  -4.76641E-06
+    1.46667E+00  -1.87225E-02   9.52915E-01   4.75592E-03   9.94265E-01
+    3.34602E-04   9.94265E-01   3.34602E-04   1.00002E+00  -3.81313E-06
+    1.45949E+00  -1.78552E-02   9.55020E-01   4.50242E-03   9.94341E-01
+    3.26027E-04   9.94341E-01   3.26027E-04   1.00005E+00  -5.71978E-06
+    1.45230E+00  -1.69954E-02   9.57018E-01   4.26409E-03   9.94387E-01
+    3.21261E-04   9.94387E-01   3.21261E-04   1.00002E+00  -2.85989E-06
+    1.44554E+00  -1.61905E-02   9.58940E-01   4.03524E-03   9.94463E-01
+    3.11723E-04   9.94463E-01   3.11723E-04   1.00003E+00  -4.76641E-06
+    1.43906E+00  -1.54260E-02   9.60771E-01   3.81980E-03   9.94540E-01
+    3.02190E-04   9.94540E-01   3.02190E-04   1.00003E+00  -4.76641E-06
+    1.43246E+00  -1.46541E-02   9.62509E-01   3.61490E-03   9.94601E-01
+    2.94569E-04   9.94601E-01   2.94569E-04   1.00005E+00  -5.71978E-06
+    1.42645E+00  -1.39563E-02   9.64156E-01   3.42519E-03   9.94662E-01
+    2.87895E-04   9.94662E-01   2.87895E-04   1.00002E+00  -2.85989E-06
+    1.42094E+00  -1.33193E-02   9.65758E-01   3.23925E-03   9.94768E-01
+    2.76452E-04   9.94768E-01   2.76452E-04   1.00003E+00  -4.76641E-06
+    1.41504E+00  -1.26424E-02   9.67299E-01   3.06385E-03   9.94860E-01
+    2.65012E-04   9.94860E-01   2.65012E-04   1.00003E+00  -5.71969E-06
+    1.40973E+00  -1.20401E-02   9.68732E-01   2.90088E-03   9.94921E-01
+    2.59297E-04   9.94921E-01   2.59297E-04   1.00003E+00  -4.76648E-06
+    1.40462E+00  -1.14624E-02   9.70105E-01   2.74454E-03   9.95012E-01
+    2.48810E-04   9.95012E-01   2.48810E-04   1.00003E+00  -3.81318E-06
+    1.39968E+00  -1.09074E-02   9.71447E-01   2.59483E-03   9.95104E-01
+    2.37367E-04   9.95104E-01   2.37367E-04   1.00005E+00  -5.71969E-06
+    1.39519E+00  -1.04079E-02   9.72698E-01   2.45565E-03   9.95180E-01
+    2.28788E-04   9.95180E-01   2.28788E-04   1.00000E+00  -2.85984E-06
+    1.38975E+00  -9.80560E-03   9.73903E-01   2.32223E-03   9.95256E-01
+    2.19258E-04   9.95256E-01   2.19258E-04   1.00003E+00  -4.76648E-06
+    1.38588E+00  -9.38043E-03   9.75062E-01   2.19449E-03   9.95363E-01
+    2.08772E-04   9.95363E-01   2.08772E-04   1.00003E+00  -4.76648E-06
+    1.38175E+00  -8.93034E-03   9.76160E-01   2.07339E-03   9.95455E-01
+    1.98283E-04   9.95455E-01   1.98283E-04   1.00003E+00  -4.76641E-06
+    1.37758E+00  -8.47671E-03   9.77197E-01   1.96284E-03   9.95531E-01
+    1.89706E-04   9.95531E-01   1.89706E-04   1.00003E+00  -3.81318E-06
+    1.37472E+00  -8.16962E-03   9.78219E-01   1.85127E-03   9.95638E-01
+    1.78264E-04   9.95638E-01   1.78264E-04   1.00003E+00  -4.76641E-06
+    1.36912E+00  -7.57108E-03   9.79150E-01   1.75216E-03   9.95699E-01
+    1.71593E-04   9.95699E-01   1.71593E-04   1.00002E+00  -2.85989E-06
+    1.36652E+00  -7.29451E-03   9.80096E-01   1.65204E-03   9.95821E-01
+    1.59198E-04   9.95821E-01   1.59198E-04   1.00005E+00  -5.71969E-06
+    1.36312E+00  -6.93618E-03   9.80965E-01   1.55959E-03   9.95912E-01
+    1.49667E-04   9.95912E-01   1.49667E-04   1.00003E+00  -3.81318E-06
+    1.35988E+00  -6.59671E-03   9.81804E-01   1.47282E-03   9.96004E-01
+    1.41086E-04   9.96004E-01   1.41086E-04   1.00002E+00  -3.81313E-06
+    1.35688E+00  -6.28413E-03   9.82597E-01   1.38991E-03   9.96095E-01
+    1.31555E-04   9.96095E-01   1.31555E-04   1.00003E+00  -4.76648E-06
+    1.35413E+00  -5.99995E-03   9.83360E-01   1.31076E-03   9.96172E-01
+    1.22973E-04   9.96172E-01   1.22973E-04   1.00002E+00  -2.85984E-06
+    1.35039E+00  -5.61491E-03   9.84091E-01   1.23452E-03   9.96263E-01
+    1.12489E-04   9.96263E-01   1.12489E-04   1.00003E+00  -4.76648E-06
+    1.34817E+00  -5.38795E-03   9.84793E-01   1.16396E-03   9.96355E-01
+    1.04861E-04   9.96355E-01   1.04861E-04   1.00003E+00  -3.81313E-06
+    1.34586E+00  -5.15352E-03   9.85464E-01   1.09629E-03   9.96446E-01
+    9.53296E-05   9.96446E-01   9.53296E-05   1.00000E+00  -2.85989E-06
+    1.34277E+00  -4.84076E-03   9.86105E-01   1.03145E-03   9.96522E-01
+    8.67486E-05   9.96522E-01   8.67486E-05   1.00003E+00  -4.76641E-06
+    1.34116E+00  -4.68068E-03   9.86700E-01   9.71409E-04   9.96599E-01
+    7.91236E-05   9.96599E-01   7.91236E-05   1.00002E+00  -3.81318E-06
+    1.33841E+00  -4.40607E-03   9.87279E-01   9.13244E-04   9.96705E-01
+    6.95896E-05   9.96705E-01   6.95896E-05   1.00003E+00  -3.81313E-06
+    1.33565E+00  -4.13349E-03   9.87828E-01   8.58920E-04   9.96766E-01
+    6.38708E-05   9.96766E-01   6.38708E-05   1.00002E+00  -2.85989E-06
+    1.33411E+00  -3.98090E-03   9.88378E-01   8.05523E-04   9.96858E-01
+    5.33838E-05   9.96858E-01   5.33838E-05   1.00003E+00  -3.81313E-06
+    1.33211E+00  -3.78649E-03   9.88850E-01   7.58824E-04   9.96904E-01
+    4.86181E-05   9.96904E-01   4.86181E-05   1.00000E+00  -1.90659E-06
+    1.33028E+00  -3.60912E-03   9.89369E-01   7.08288E-04   9.97011E-01
+    3.90845E-05   9.97011E-01   3.90845E-05   1.00003E+00  -4.76641E-06
+    1.32859E+00  -3.44521E-03   9.89826E-01   6.64447E-04   9.97102E-01
+    3.05055E-05   9.97102E-01   3.05055E-05   1.00002E+00  -3.81318E-06
+    1.32636E+00  -3.22972E-03   9.90254E-01   6.23446E-04   9.97148E-01
+    2.57386E-05   9.97148E-01   2.57386E-05   1.00002E+00  -1.90656E-06
+    1.32499E+00  -3.10012E-03   9.90696E-01   5.81511E-04   9.97239E-01
+    1.71593E-05   9.97239E-01   1.71593E-05   1.00002E+00  -3.81318E-06
+    1.32344E+00  -2.95327E-03   9.91077E-01   5.45277E-04   9.97300E-01
+    1.14394E-05   9.97300E-01   1.14394E-05   1.00002E+00  -2.85984E-06
+    1.32170E+00  -2.78934E-03   9.91474E-01   5.08107E-04   9.97377E-01
+    4.76648E-06   9.97377E-01   4.76648E-06   1.00000E+00  -1.90659E-06
+    1.32070E+00  -2.69588E-03   9.91855E-01   4.71874E-04   9.97468E-01
+   -3.81313E-06   9.97468E-01  -3.81313E-06   1.00002E+00  -3.81313E-06
+    1.31901E+00  -2.53767E-03   9.92191E-01   4.41376E-04   9.97499E-01
+   -7.62637E-06   9.97499E-01  -7.62637E-06   1.00002E+00  -1.90659E-06
+    1.31742E+00  -2.39083E-03   9.92526E-01   4.09911E-04   9.97575E-01
+   -1.33459E-05   9.97575E-01  -1.33459E-05   1.00000E+00  -1.90656E-06
+    1.31646E+00  -2.30316E-03   9.92877E-01   3.78459E-04   9.97651E-01
+   -2.19258E-05   9.97651E-01  -2.19258E-05   1.00002E+00  -3.81318E-06
+    1.31536E+00  -2.20208E-03   9.93167E-01   3.51761E-04   9.97697E-01
+   -2.57386E-05   9.97697E-01  -2.57386E-05   1.00000E+00  -2.85984E-06
+    1.31395E+00  -2.07247E-03   9.93441E-01   3.25074E-04   9.97758E-01
+   -3.14588E-05   9.97758E-01  -3.14588E-05   9.99985E-01  -9.53296E-07
+    1.31316E+00  -2.00189E-03   9.93746E-01   2.99330E-04   9.97834E-01
+   -3.81313E-05   9.97834E-01  -3.81313E-05   1.00002E+00  -2.85984E-06
+    1.31186E+00  -1.88371E-03   9.94021E-01   2.74549E-04   9.97910E-01
+   -4.38516E-05   9.97910E-01  -4.38516E-05   1.00002E+00  -2.85989E-06
+    1.31100E+00  -1.80745E-03   9.94265E-01   2.51670E-04   9.97956E-01
+   -4.86181E-05   9.97956E-01  -4.86181E-05   1.00002E+00  -2.85989E-06
+    1.31008E+00  -1.72544E-03   9.94509E-01   2.30694E-04   9.98002E-01
+   -5.33838E-05   9.98002E-01  -5.33838E-05   1.00000E+00  -1.90656E-06
+    1.30923E+00  -1.65111E-03   9.94738E-01   2.09725E-04   9.98048E-01
+   -5.71978E-05   9.98048E-01  -5.71978E-05   9.99985E-01  -9.53296E-07
+    1.30822E+00  -1.56148E-03   9.94967E-01   1.89703E-04   9.98109E-01
+   -6.29166E-05   9.98109E-01  -6.29166E-05   1.00000E+00  -1.90656E-06
+    1.30750E+00  -1.49667E-03   9.95195E-01   1.69687E-04   9.98185E-01
+   -6.86373E-05   9.98185E-01  -6.86373E-05   1.00002E+00  -3.81318E-06
+    1.30654E+00  -1.41467E-03   9.95394E-01   1.52525E-04   9.98215E-01
+   -7.14961E-05   9.98215E-01  -7.14961E-05   9.99985E-01   0.00000E+00
+    1.30592E+00  -1.36131E-03   9.95577E-01   1.36321E-04   9.98292E-01
+   -7.72170E-05   9.98292E-01  -7.72170E-05   1.00002E+00  -2.85989E-06
+    1.30542E+00  -1.31744E-03   9.95775E-01   1.19160E-04   9.98322E-01
+   -8.19822E-05   9.98322E-01  -8.19822E-05   9.99985E-01  -9.53282E-07
+    1.30461E+00  -1.24882E-03   9.95943E-01   1.05816E-04   9.98353E-01
+   -8.29368E-05   9.98353E-01  -8.29368E-05   9.99985E-01  -9.53296E-07
+    1.30381E+00  -1.18016E-03   9.96141E-01   8.86552E-05   9.98444E-01
+   -9.05617E-05   9.98444E-01  -9.05617E-05   1.00000E+00  -1.90656E-06
+    1.30325E+00  -1.13252E-03   9.96294E-01   7.53104E-05   9.98475E-01
+   -9.34230E-05   9.98475E-01  -9.34230E-05   1.00002E+00  -2.85989E-06
+    1.30270E+00  -1.08674E-03   9.96431E-01   6.29166E-05   9.98490E-01
+   -9.62814E-05   9.98490E-01  -9.62814E-05   9.99969E-01   0.00000E+00
+    1.30223E+00  -1.04672E-03   9.96599E-01   4.95714E-05   9.98566E-01
+   -1.01049E-04   9.98566E-01  -1.01049E-04   1.00000E+00  -1.90659E-06
+    1.30182E+00  -1.01239E-03   9.96751E-01   3.71780E-05   9.98627E-01
+   -1.05814E-04   9.98627E-01  -1.05814E-04   1.00000E+00  -1.90656E-06
+    1.30120E+00  -9.60923E-04   9.96888E-01   2.47857E-05   9.98643E-01
+   -1.07722E-04   9.98643E-01  -1.07722E-04   9.99985E-01  -9.53296E-07
+    1.30063E+00  -9.13244E-04   9.97026E-01   1.42992E-05   9.98704E-01
+   -1.12487E-04   9.98704E-01  -1.12487E-04   9.99985E-01  -9.53282E-07
+    1.30019E+00  -8.77032E-04   9.97132E-01   5.71978E-06   9.98719E-01
+   -1.14396E-04   9.98719E-01  -1.14396E-04   1.00000E+00  -9.53296E-07
+    1.30009E+00  -8.69393E-04   9.97255E-01  -5.71969E-06   9.98749E-01
+   -1.17254E-04   9.98749E-01  -1.17254E-04   9.99985E-01   0.00000E+00
+    1.29944E+00  -8.17928E-04   9.97392E-01  -1.62060E-05   9.98826E-01
+   -1.22975E-04   9.98826E-01  -1.22975E-04   1.00002E+00  -2.85989E-06
+    1.29892E+00  -7.75971E-04   9.97499E-01  -2.47853E-05   9.98871E-01
+   -1.25833E-04   9.98871E-01  -1.25833E-04   9.99985E-01  -9.53282E-07
+    1.29853E+00  -7.43571E-04   9.97605E-01  -3.24121E-05   9.98871E-01
+   -1.26788E-04   9.98871E-01  -1.26788E-04   9.99969E-01   0.00000E+00
+    1.29838E+00  -7.30214E-04   9.97712E-01  -4.19444E-05   9.98932E-01
+   -1.31553E-04   9.98932E-01  -1.31553E-04   1.00002E+00  -2.85984E-06
+    1.29801E+00  -7.03533E-04   9.97819E-01  -5.05247E-05   9.98963E-01
+   -1.34415E-04   9.98963E-01  -1.34415E-04   9.99985E-01   0.00000E+00
+    1.29771E+00  -6.76830E-04   9.97895E-01  -5.62436E-05   9.98978E-01
+   -1.36319E-04   9.98978E-01  -1.36319E-04   1.00000E+00  -9.53282E-07
+    1.29746E+00  -6.59681E-04   9.98002E-01  -6.48241E-05   9.99024E-01
+   -1.39181E-04   9.99024E-01  -1.39181E-04   9.99985E-01  -9.53296E-07
+    1.29720E+00  -6.36792E-04   9.98093E-01  -7.14961E-05   9.99085E-01
+   -1.43946E-04   9.99085E-01  -1.43946E-04   9.99985E-01  -9.53282E-07
+    1.29682E+00  -6.08203E-04   9.98170E-01  -7.81703E-05   9.99085E-01
+   -1.42994E-04   9.99085E-01  -1.42994E-04   9.99985E-01   0.00000E+00
+    1.29677E+00  -6.04381E-04   9.98276E-01  -8.57953E-05   9.99161E-01
+   -1.49665E-04   9.99161E-01  -1.49665E-04   1.00000E+00  -1.90656E-06
+    1.29636E+00  -5.70071E-04   9.98322E-01  -8.96098E-05   9.99161E-01
+   -1.49667E-04   9.99161E-01  -1.49667E-04   9.99969E-01   0.00000E+00
+    1.29619E+00  -5.58623E-04   9.98414E-01  -9.62814E-05   9.99192E-01
+   -1.52525E-04   9.99192E-01  -1.52525E-04   1.00000E+00  -9.53282E-07
+    1.29596E+00  -5.41472E-04   9.98475E-01  -1.01049E-04   9.99222E-01
+   -1.54434E-04   9.99222E-01  -1.54434E-04   9.99969E-01   0.00000E+00
+    1.29575E+00  -5.26219E-04   9.98597E-01  -1.10582E-04   9.99298E-01
+   -1.59200E-04   9.99298E-01  -1.59200E-04   9.99985E-01  -9.53296E-07
+    1.29552E+00  -5.07146E-04   9.98597E-01  -1.09627E-04   9.99253E-01
+   -1.57291E-04   9.99253E-01  -1.57291E-04   9.99985E-01   0.00000E+00
+    1.29529E+00  -4.91901E-04   9.98719E-01  -1.20115E-04   9.99359E-01
+   -1.64920E-04   9.99359E-01  -1.64920E-04   1.00000E+00  -1.90659E-06
+    1.29524E+00  -4.86174E-04   9.98719E-01  -1.20113E-04   9.99329E-01
+   -1.62058E-04   9.99329E-01  -1.62058E-04   9.99954E-01   1.90656E-06
+    1.29505E+00  -4.72835E-04   9.98826E-01  -1.27742E-04   9.99405E-01
+   -1.67780E-04   9.99405E-01  -1.67780E-04   1.00002E+00  -2.85989E-06
+    1.29494E+00  -4.65201E-04   9.98871E-01  -1.31553E-04   9.99405E-01
+   -1.68731E-04   9.99405E-01  -1.68731E-04   9.99954E-01   9.53282E-07
+    1.29474E+00  -4.49956E-04   9.98917E-01  -1.34415E-04   9.99436E-01
+   -1.69687E-04   9.99436E-01  -1.69687E-04   1.00000E+00  -9.53296E-07
+    1.29472E+00  -4.48042E-04   9.99009E-01  -1.41086E-04   9.99512E-01
+   -1.75404E-04   9.99512E-01  -1.75404E-04   9.99985E-01  -9.53282E-07
+    1.29456E+00  -4.38516E-04   9.99039E-01  -1.43948E-04   9.99481E-01
+   -1.74453E-04   9.99481E-01  -1.74453E-04   9.99985E-01   0.00000E+00
+    1.29436E+00  -4.21350E-04   9.99070E-01  -1.45852E-04   9.99512E-01
+   -1.76357E-04   9.99512E-01  -1.76357E-04   9.99969E-01   0.00000E+00
+    1.29426E+00  -4.13731E-04   9.99176E-01  -1.53481E-04   9.99573E-01
+   -1.80173E-04   9.99573E-01  -1.80173E-04   9.99985E-01  -9.53296E-07
+    1.29414E+00  -4.06098E-04   9.99161E-01  -1.52525E-04   9.99573E-01
+   -1.80170E-04   9.99573E-01  -1.80170E-04   9.99985E-01   0.00000E+00
+    1.29410E+00  -4.02291E-04   9.99237E-01  -1.58247E-04   9.99603E-01
+   -1.82080E-04   9.99603E-01  -1.82080E-04   9.99969E-01   9.53296E-07
+    1.29393E+00  -3.90845E-04   9.99283E-01  -1.62058E-04   9.99649E-01
+   -1.85890E-04   9.99649E-01  -1.85890E-04   1.00000E+00  -1.90656E-06
+    1.29392E+00  -3.90851E-04   9.99329E-01  -1.64920E-04   9.99664E-01
+   -1.86846E-04   9.99664E-01  -1.86846E-04   9.99985E-01  -9.53296E-07
+    1.29381E+00  -3.81313E-04   9.99344E-01  -1.66824E-04   9.99664E-01
+   -1.86843E-04   9.99664E-01  -1.86843E-04   9.99954E-01   1.90656E-06
+    1.29380E+00  -3.81318E-04   9.99420E-01  -1.71593E-04   9.99725E-01
+   -1.91613E-04   9.99725E-01  -1.91613E-04   1.00000E+00  -1.90659E-06
+    1.29372E+00  -3.73686E-04   9.99466E-01  -1.75404E-04   9.99756E-01
+   -1.93516E-04   9.99756E-01  -1.93516E-04   1.00000E+00  -9.53282E-07
+    1.29362E+00  -3.69879E-04   9.99466E-01  -1.74453E-04   9.99756E-01
+   -1.93519E-04   9.99756E-01  -1.93519E-04   9.99969E-01   0.00000E+00
+    1.29353E+00  -3.64154E-04   9.99527E-01  -1.79217E-04   9.99786E-01
+   -1.95423E-04   9.99786E-01  -1.95423E-04   9.99985E-01   0.00000E+00
+    1.29355E+00  -3.64159E-04   9.99558E-01  -1.81126E-04   9.99817E-01
+   -1.97332E-04   9.99817E-01  -1.97332E-04   9.99969E-01   0.00000E+00
+    1.29335E+00  -3.50808E-04   9.99588E-01  -1.83030E-04   9.99802E-01
+   -1.97329E-04   9.99802E-01  -1.97329E-04   9.99985E-01   0.00000E+00
+    1.29346E+00  -3.56533E-04   9.99664E-01  -1.87799E-04   9.99863E-01
+   -2.01145E-04   9.99863E-01  -2.01145E-04   9.99969E-01   0.00000E+00
+    1.29335E+00  -3.48901E-04   9.99664E-01  -1.88750E-04   9.99893E-01
+   -2.03049E-04   9.99893E-01  -2.03049E-04   1.00000E+00  -9.53282E-07
+    1.29334E+00  -3.48906E-04   9.99710E-01  -1.91613E-04   9.99893E-01
+   -2.03052E-04   9.99893E-01  -2.03052E-04   9.99954E-01   9.53296E-07
+    1.29326E+00  -3.43181E-04   9.99756E-01  -1.94469E-04   9.99939E-01
+   -2.05909E-04   9.99939E-01  -2.05909E-04   9.99985E-01   0.00000E+00
+    1.29322E+00  -3.41280E-04   9.99771E-01  -1.95426E-04   9.99939E-01
+   -2.05912E-04   9.99939E-01  -2.05912E-04   9.99969E-01   0.00000E+00
+    1.29323E+00  -3.41275E-04   9.99802E-01  -1.97329E-04   9.99969E-01
+   -2.08769E-04   9.99969E-01  -2.08769E-04   1.00000E+00  -9.53282E-07
+    1.29316E+00  -3.37467E-04   9.99832E-01  -2.00192E-04   9.99985E-01
+   -2.09725E-04   9.99985E-01  -2.09725E-04   9.99954E-01   9.53296E-07
+    1.29320E+00  -3.39368E-04   9.99909E-01  -2.04956E-04   1.00006E+00
+   -2.13535E-04   1.00006E+00  -2.13535E-04   1.00002E+00  -1.90656E-06
+    1.29316E+00  -3.35560E-04   9.99893E-01  -2.04005E-04   1.00005E+00
+   -2.13538E-04   1.00005E+00  -2.13538E-04   9.99969E-01   0.00000E+00
+    1.29310E+00  -3.33654E-04   9.99924E-01  -2.05912E-04   1.00006E+00
+   -2.13538E-04   1.00006E+00  -2.13538E-04   9.99985E-01   0.00000E+00
+    1.29314E+00  -3.35555E-04   9.99969E-01  -2.08769E-04   1.00009E+00
+   -2.16395E-04   1.00009E+00  -2.16395E-04   9.99969E-01   0.00000E+00
+    1.29307E+00  -3.31747E-04   1.00000E+00  -2.10678E-04   1.00011E+00
+   -2.17352E-04   1.00011E+00  -2.17352E-04   9.99985E-01   0.00000E+00
+    1.29302E+00  -3.27929E-04   1.00000E+00  -2.10675E-04   1.00012E+00
+   -2.18301E-04   1.00012E+00  -2.18301E-04   9.99954E-01   9.53282E-07
+    1.29307E+00  -3.29840E-04   1.00006E+00  -2.14492E-04   1.00017E+00
+   -2.21165E-04   1.00017E+00  -2.21165E-04   1.00000E+00  -9.53296E-07
+    1.29305E+00  -3.29835E-04   1.00009E+00  -2.17348E-04   1.00018E+00
+   -2.23068E-04   1.00018E+00  -2.23068E-04   9.99985E-01  -9.53282E-07
+    1.29297E+00  -3.26027E-04   1.00008E+00  -2.15445E-04   1.00018E+00
+   -2.22118E-04   1.00018E+00  -2.22118E-04   9.99969E-01   9.53296E-07
+    1.29308E+00  -3.31742E-04   1.00015E+00  -2.20208E-04   1.00023E+00
+   -2.24974E-04   1.00023E+00  -2.24974E-04   9.99954E-01   9.53282E-07
+    1.29301E+00  -3.26027E-04   1.00017E+00  -2.21165E-04   1.00023E+00
+   -2.25931E-04   1.00023E+00  -2.25931E-04   1.00000E+00  -9.53296E-07
+    1.29311E+00  -3.31742E-04   1.00020E+00  -2.24021E-04   1.00029E+00
+   -2.28788E-04   1.00029E+00  -2.28788E-04   9.99954E-01   9.53282E-07
+    1.29304E+00  -3.29840E-04   1.00024E+00  -2.25931E-04   1.00031E+00
+   -2.30698E-04   1.00031E+00  -2.30698E-04   1.00002E+00  -1.90659E-06
+    1.29302E+00  -3.27929E-04   1.00021E+00  -2.24974E-04   1.00029E+00
+   -2.28788E-04   1.00029E+00  -2.28788E-04   9.99969E-01   0.00000E+00
+    1.29301E+00  -3.27934E-04   1.00026E+00  -2.27838E-04   1.00037E+00
+   -2.33558E-04   1.00037E+00  -2.33558E-04   9.99985E-01   0.00000E+00
+    1.29305E+00  -3.29835E-04   1.00029E+00  -2.29741E-04   1.00035E+00
+   -2.32601E-04   1.00035E+00  -2.32601E-04   9.99969E-01   0.00000E+00
+    1.29310E+00  -3.31747E-04   1.00034E+00  -2.32604E-04   1.00041E+00
+   -2.36417E-04   1.00041E+00  -2.36417E-04   9.99985E-01  -9.53296E-07
+    1.29302E+00  -3.27929E-04   1.00034E+00  -2.31647E-04   1.00040E+00
+   -2.35461E-04   1.00040E+00  -2.35461E-04   9.99969E-01   9.53282E-07
+    1.29307E+00  -3.29840E-04   1.00037E+00  -2.34511E-04   1.00041E+00
+   -2.36417E-04   1.00041E+00  -2.36417E-04   1.00000E+00   0.00000E+00
+    1.29301E+00  -3.27934E-04   1.00037E+00  -2.34511E-04   1.00046E+00
+   -2.39277E-04   1.00046E+00  -2.39277E-04   9.99969E-01   0.00000E+00
+    1.29306E+00  -3.31737E-04   1.00043E+00  -2.38317E-04   1.00046E+00
+   -2.40223E-04   1.00046E+00  -2.40223E-04   9.99969E-01   0.00000E+00
+    1.29313E+00  -3.33654E-04   1.00046E+00  -2.39277E-04   1.00049E+00
+   -2.41184E-04   1.00049E+00  -2.41184E-04   9.99969E-01   0.00000E+00
+    1.29304E+00  -3.29840E-04   1.00046E+00  -2.40231E-04   1.00052E+00
+   -2.43091E-04   1.00052E+00  -2.43091E-04   1.00000E+00   0.00000E+00
+    1.29309E+00  -3.31737E-04   1.00052E+00  -2.42130E-04   1.00055E+00
+   -2.44990E-04   1.00055E+00  -2.44990E-04   1.00000E+00  -9.53267E-07
+    1.29311E+00  -3.33664E-04   1.00049E+00  -2.42145E-04   1.00052E+00
+   -2.44051E-04   1.00052E+00  -2.44051E-04   9.99969E-01   9.53325E-07
+    1.29315E+00  -3.35550E-04   1.00055E+00  -2.44990E-04   1.00058E+00
+   -2.47849E-04   1.00058E+00  -2.47849E-04   9.99969E-01   0.00000E+00
+    1.29316E+00  -3.37467E-04   1.00058E+00  -2.47857E-04   1.00061E+00
+   -2.48810E-04   1.00061E+00  -2.48810E-04   1.00000E+00  -9.53296E-07
+    1.29407E+00  -3.90851E-04   1.00055E+00  -2.45950E-04   1.00061E+00
+   -2.48810E-04   1.00061E+00  -2.48810E-04   9.99939E-01   9.53296E-07
+    1.29223E+00  -2.82167E-04   1.00067E+00  -2.51663E-04   1.00067E+00
+   -2.52616E-04   1.00067E+00  -2.52616E-04   9.99969E-01   0.00000E+00
+    1.29520E+00  -4.59489E-04   1.00061E+00  -2.48810E-04   1.00061E+00
+   -2.50717E-04   1.00061E+00  -2.50717E-04   9.99969E-01   0.00000E+00
+    1.29114E+00  -2.17352E-04   1.00067E+00  -2.53577E-04   1.00070E+00
+   -2.55483E-04   1.00070E+00  -2.55483E-04   1.00000E+00  -9.53296E-07
+    1.29324E+00  -3.41270E-04   1.00067E+00  -2.53569E-04   1.00070E+00
+   -2.54522E-04   1.00070E+00  -2.54522E-04   9.99969E-01   0.00000E+00
+    1.29402E+00  -3.87050E-04   1.00070E+00  -2.55491E-04   1.00073E+00
+   -2.56444E-04   1.00073E+00  -2.56444E-04   1.00000E+00   0.00000E+00
+    1.29248E+00  -2.95513E-04   1.00073E+00  -2.55476E-04   1.00076E+00
+   -2.57382E-04   1.00076E+00  -2.57382E-04   9.99939E-01   1.90653E-06
+    1.29328E+00  -3.43187E-04   1.00073E+00  -2.56437E-04   1.00076E+00
+   -2.58343E-04   1.00076E+00  -2.58343E-04   1.00000E+00  -9.53296E-07
+    1.29331E+00  -3.47000E-04   1.00079E+00  -2.60250E-04   1.00079E+00
+   -2.61203E-04   1.00079E+00  -2.61203E-04   1.00000E+00  -9.53296E-07
+    1.29413E+00  -3.92758E-04   1.00079E+00  -2.61203E-04   1.00082E+00
+   -2.62156E-04   1.00082E+00  -2.62156E-04   9.99939E-01   9.53296E-07
+    1.29251E+00  -2.99326E-04   1.00082E+00  -2.62148E-04   1.00085E+00
+   -2.63102E-04   1.00085E+00  -2.63102E-04   1.00000E+00  -9.53267E-07
+    1.29380E+00  -3.73692E-04   1.00082E+00  -2.62156E-04   1.00085E+00
+   -2.63110E-04   1.00085E+00  -2.63110E-04   9.99969E-01   9.53296E-07
+    1.29301E+00  -3.27934E-04   1.00088E+00  -2.65016E-04   1.00092E+00
+   -2.66923E-04   1.00092E+00  -2.66923E-04   1.00000E+00  -9.53296E-07
+    1.29407E+00  -3.88945E-04   1.00092E+00  -2.66923E-04   1.00088E+00
+   -2.65970E-04   1.00088E+00  -2.65970E-04   9.99939E-01   9.53296E-07
+    1.29272E+00  -3.12672E-04   1.00088E+00  -2.65962E-04   1.00095E+00
+   -2.67868E-04   1.00095E+00  -2.67868E-04   9.99969E-01   0.00000E+00
+    1.29407E+00  -3.88945E-04   1.00098E+00  -2.69783E-04   1.00098E+00
+   -2.70736E-04   1.00098E+00  -2.70736E-04   9.99969E-01   0.00000E+00
+    1.29365E+00  -3.64159E-04   1.00098E+00  -2.70736E-04   1.00098E+00
+   -2.70736E-04   1.00098E+00  -2.70736E-04   9.99969E-01   9.53296E-07
+    1.29307E+00  -3.31747E-04   1.00101E+00  -2.73596E-04   1.00107E+00
+   -2.74549E-04   1.00107E+00  -2.74549E-04   1.00000E+00  -2.85989E-06
+    1.29327E+00  -3.43176E-04   1.00101E+00  -2.72634E-04   1.00104E+00
+   -2.73588E-04   1.00104E+00  -2.73588E-04   9.99969E-01   9.53267E-07
+    1.29358E+00  -3.60346E-04   1.00104E+00  -2.74549E-04   1.00104E+00
+   -2.74549E-04   1.00104E+00  -2.74549E-04   9.99969E-01   0.00000E+00
+    1.29395E+00  -3.81318E-04   1.00107E+00  -2.76456E-04   1.00110E+00
+   -2.77409E-04   1.00110E+00  -2.77409E-04   1.00000E+00  -9.53296E-07
+    1.29365E+00  -3.66066E-04   1.00107E+00  -2.75503E-04   1.00110E+00
+   -2.76456E-04   1.00110E+00  -2.76456E-04   9.99969E-01   0.00000E+00
+    1.29361E+00  -3.62241E-04   1.00116E+00  -2.81214E-04   1.00116E+00
+   -2.81214E-04   1.00116E+00  -2.81214E-04   9.99969E-01   0.00000E+00
+    1.29346E+00  -3.54626E-04   1.00110E+00  -2.77409E-04   1.00113E+00
+   -2.79316E-04   1.00113E+00  -2.79316E-04   9.99939E-01   9.53296E-07
+    1.29377E+00  -3.71785E-04   1.00122E+00  -2.83129E-04   1.00119E+00
+   -2.82176E-04   1.00119E+00  -2.82176E-04   1.00000E+00  -9.53296E-07
+    1.29358E+00  -3.60346E-04   1.00119E+00  -2.82176E-04   1.00119E+00
+   -2.83129E-04   1.00119E+00  -2.83129E-04   9.99969E-01   9.53296E-07
+    1.29370E+00  -3.67961E-04   1.00122E+00  -2.84074E-04   1.00122E+00
+   -2.84074E-04   1.00122E+00  -2.84074E-04   9.99969E-01   0.00000E+00
+    1.29404E+00  -3.85132E-04   1.00128E+00  -2.85989E-04   1.00128E+00
+   -2.85989E-04   1.00128E+00  -2.85989E-04   1.00000E+00   0.00000E+00
+    1.29358E+00  -3.60346E-04   1.00128E+00  -2.86942E-04   1.00131E+00
+   -2.87895E-04   1.00131E+00  -2.87895E-04   9.99969E-01   0.00000E+00
+    1.29380E+00  -3.73692E-04   1.00128E+00  -2.87895E-04   1.00128E+00
+   -2.87895E-04   1.00128E+00  -2.87895E-04   9.99969E-01   0.00000E+00
+    1.29412E+00  -3.90839E-04   1.00134E+00  -2.90746E-04   1.00137E+00
+   -2.91700E-04   1.00137E+00  -2.91700E-04   9.99969E-01  -9.53267E-07
+    1.29386E+00  -3.75599E-04   1.00134E+00  -2.90755E-04   1.00134E+00
+   -2.90755E-04   1.00134E+00  -2.90755E-04   9.99969E-01   9.53296E-07
+    1.29413E+00  -3.90851E-04   1.00137E+00  -2.92662E-04   1.00137E+00
+   -2.92662E-04   1.00137E+00  -2.92662E-04   9.99969E-01   0.00000E+00
+    1.29365E+00  -3.64159E-04   1.00140E+00  -2.93615E-04   1.00140E+00
+   -2.93615E-04   1.00140E+00  -2.93615E-04   9.99969E-01   9.53296E-07
+    1.29403E+00  -3.85120E-04   1.00143E+00  -2.95513E-04   1.00143E+00
+   -2.96466E-04   1.00143E+00  -2.96466E-04   1.00000E+00  -1.90653E-06
+    1.29401E+00  -3.83225E-04   1.00143E+00  -2.96475E-04   1.00149E+00
+   -2.97428E-04   1.00149E+00  -2.97428E-04   9.99969E-01   9.53296E-07
+    1.29410E+00  -3.88945E-04   1.00149E+00  -2.99335E-04   1.00149E+00
+   -2.98382E-04   1.00149E+00  -2.98382E-04   9.99969E-01   0.00000E+00
+    1.29407E+00  -3.87038E-04   1.00149E+00  -2.99335E-04   1.00153E+00
+   -2.99335E-04   1.00153E+00  -2.99335E-04   9.99969E-01   0.00000E+00
+    1.29412E+00  -3.90839E-04   1.00153E+00  -3.01232E-04   1.00153E+00
+   -3.01232E-04   1.00153E+00  -3.01232E-04   9.99969E-01   0.00000E+00
+    1.29432E+00  -4.00384E-04   1.00156E+00  -3.02195E-04   1.00159E+00
+   -3.04101E-04   1.00159E+00  -3.04101E-04   1.00000E+00   0.00000E+00
+    1.29404E+00  -3.87038E-04   1.00162E+00  -3.05055E-04   1.00159E+00
+   -3.04101E-04   1.00159E+00  -3.04101E-04   1.00000E+00  -9.53296E-07
+    1.29441E+00  -4.04198E-04   1.00162E+00  -3.05055E-04   1.00162E+00
+   -3.05055E-04   1.00162E+00  -3.05055E-04   9.99969E-01   0.00000E+00
+    1.29419E+00  -3.94665E-04   1.00162E+00  -3.05055E-04   1.00165E+00
+   -3.06008E-04   1.00165E+00  -3.06008E-04   9.99969E-01   9.53296E-07
+    1.29425E+00  -3.96559E-04   1.00171E+00  -3.09812E-04   1.00168E+00
+   -3.08859E-04   1.00168E+00  -3.08859E-04   9.99969E-01   0.00000E+00
+    1.29438E+00  -4.04198E-04   1.00168E+00  -3.09821E-04   1.00171E+00
+   -3.10775E-04   1.00171E+00  -3.10775E-04   1.00000E+00   0.00000E+00
+    1.29438E+00  -4.04198E-04   1.00174E+00  -3.11728E-04   1.00174E+00
+   -3.11728E-04   1.00174E+00  -3.11728E-04   9.99969E-01   0.00000E+00
+    1.29438E+00  -4.04198E-04   1.00177E+00  -3.12681E-04   1.00177E+00
+   -3.12681E-04   1.00177E+00  -3.12681E-04   1.00000E+00  -9.53296E-07
+    1.29443E+00  -4.06092E-04   1.00177E+00  -3.13625E-04   1.00177E+00
+   -3.12672E-04   1.00177E+00  -3.12672E-04   9.99969E-01   9.53267E-07
+    1.29441E+00  -4.04198E-04   1.00180E+00  -3.15541E-04   1.00183E+00
+   -3.16494E-04   1.00183E+00  -3.16494E-04   1.00000E+00   0.00000E+00
+    1.29462E+00  -4.15637E-04   1.00186E+00  -3.17448E-04   1.00186E+00
+   -3.18401E-04   1.00186E+00  -3.18401E-04   1.00000E+00  -9.53296E-07
+    1.29450E+00  -4.09917E-04   1.00186E+00  -3.18401E-04   1.00189E+00
+   -3.18401E-04   1.00189E+00  -3.18401E-04   1.00000E+00   0.00000E+00
+    1.29458E+00  -4.13718E-04   1.00189E+00  -3.19344E-04   1.00189E+00
+   -3.19344E-04   1.00189E+00  -3.19344E-04   9.99969E-01   9.53267E-07
+    1.29462E+00  -4.15637E-04   1.00192E+00  -3.21261E-04   1.00192E+00
+   -3.21261E-04   1.00192E+00  -3.21261E-04   1.00000E+00   0.00000E+00
+    1.29465E+00  -4.17544E-04   1.00195E+00  -3.23167E-04   1.00198E+00
+   -3.23167E-04   1.00198E+00  -3.23167E-04   9.99969E-01   0.00000E+00
+    1.29477E+00  -4.23263E-04   1.00201E+00  -3.25074E-04   1.00201E+00
+   -3.25074E-04   1.00201E+00  -3.25074E-04   9.99969E-01   0.00000E+00
+    1.29467E+00  -4.17531E-04   1.00204E+00  -3.26017E-04   1.00201E+00
+   -3.26017E-04   1.00201E+00  -3.26017E-04   9.99969E-01   0.00000E+00
+    1.29480E+00  -4.25170E-04   1.00201E+00  -3.26027E-04   1.00201E+00
+   -3.26027E-04   1.00201E+00  -3.26027E-04   9.99969E-01   9.53296E-07
+    1.29484E+00  -4.27077E-04   1.00214E+00  -3.30794E-04   1.00210E+00
+   -3.30794E-04   1.00210E+00  -3.30794E-04   9.99969E-01  -9.53296E-07
+    1.29493E+00  -4.30890E-04   1.00210E+00  -3.30794E-04   1.00210E+00
+   -3.30794E-04   1.00210E+00  -3.30794E-04   1.00000E+00  -9.53296E-07
+    1.29486E+00  -4.27064E-04   1.00214E+00  -3.31737E-04   1.00214E+00
+   -3.31737E-04   1.00214E+00  -3.31737E-04   9.99969E-01   9.53267E-07
+    1.29487E+00  -4.28983E-04   1.00217E+00  -3.32700E-04   1.00214E+00
+   -3.31747E-04   1.00214E+00  -3.31747E-04   9.99969E-01   9.53296E-07
+    1.29502E+00  -4.34703E-04   1.00226E+00  -3.36514E-04   1.00223E+00
+   -3.36514E-04   1.00223E+00  -3.36514E-04   9.99969E-01  -9.53296E-07
+    1.29499E+00  -4.34703E-04   1.00223E+00  -3.35560E-04   1.00223E+00
+   -3.36514E-04   1.00223E+00  -3.36514E-04   9.99969E-01   0.00000E+00
+    1.29510E+00  -4.38503E-04   1.00229E+00  -3.38410E-04   1.00226E+00
+   -3.38410E-04   1.00226E+00  -3.38410E-04   9.99969E-01   0.00000E+00
+    1.29511E+00  -4.40423E-04   1.00232E+00  -3.41280E-04   1.00232E+00
+   -3.40327E-04   1.00232E+00  -3.40327E-04   9.99969E-01   0.00000E+00
+    1.29517E+00  -4.42329E-04   1.00232E+00  -3.41280E-04   1.00235E+00
+   -3.41280E-04   1.00235E+00  -3.41280E-04   1.00000E+00   0.00000E+00
+    1.29511E+00  -4.40423E-04   1.00235E+00  -3.41280E-04   1.00238E+00
+   -3.43187E-04   1.00238E+00  -3.43187E-04   9.99969E-01   0.00000E+00
+    1.29522E+00  -4.46129E-04   1.00238E+00  -3.44129E-04   1.00238E+00
+   -3.44129E-04   1.00238E+00  -3.44129E-04   9.99969E-01   0.00000E+00
+    1.29523E+00  -4.46143E-04   1.00244E+00  -3.47000E-04   1.00244E+00
+   -3.47000E-04   1.00244E+00  -3.47000E-04   9.99969E-01   0.00000E+00
+    1.29532E+00  -4.49956E-04   1.00247E+00  -3.47000E-04   1.00247E+00
+   -3.47000E-04   1.00247E+00  -3.47000E-04   9.99969E-01   9.53296E-07
+    1.29535E+00  -4.51862E-04   1.00250E+00  -3.49860E-04   1.00250E+00
+   -3.49860E-04   1.00250E+00  -3.49860E-04   1.00000E+00  -9.53296E-07
+    1.29538E+00  -4.53755E-04   1.00253E+00  -3.50802E-04   1.00253E+00
+   -3.50802E-04   1.00253E+00  -3.50802E-04   9.99969E-01   0.00000E+00
+    1.29545E+00  -4.55676E-04   1.00256E+00  -3.52720E-04   1.00256E+00
+   -3.52720E-04   1.00256E+00  -3.52720E-04   9.99969E-01   0.00000E+00
+    1.29545E+00  -4.55676E-04   1.00256E+00  -3.52720E-04   1.00256E+00
+   -3.52720E-04   1.00256E+00  -3.52720E-04   9.99969E-01   9.53296E-07
+    1.29554E+00  -4.59489E-04   1.00265E+00  -3.56533E-04   1.00265E+00
+   -3.56533E-04   1.00265E+00  -3.56533E-04   9.99969E-01  -9.53296E-07
+    1.29560E+00  -4.63302E-04   1.00268E+00  -3.57486E-04   1.00268E+00
+   -3.57486E-04   1.00268E+00  -3.57486E-04   9.99969E-01   0.00000E+00
+    1.29562E+00  -4.65194E-04   1.00268E+00  -3.58428E-04   1.00268E+00
+   -3.58428E-04   1.00268E+00  -3.58428E-04   9.99969E-01   0.00000E+00
+    1.29563E+00  -4.65209E-04   1.00275E+00  -3.60346E-04   1.00275E+00
+   -3.60346E-04   1.00275E+00  -3.60346E-04   9.99969E-01   9.53296E-07
+    1.29572E+00  -4.69022E-04   1.00278E+00  -3.63206E-04   1.00278E+00
+   -3.63206E-04   1.00278E+00  -3.63206E-04   9.99969E-01  -9.53296E-07
+    1.29572E+00  -4.69022E-04   1.00281E+00  -3.63206E-04   1.00281E+00
+   -3.63206E-04   1.00281E+00  -3.63206E-04   9.99969E-01   0.00000E+00
+    1.29580E+00  -4.72820E-04   1.00284E+00  -3.66055E-04   1.00284E+00
+   -3.66055E-04   1.00284E+00  -3.66055E-04   9.99969E-01   0.00000E+00
+    1.29584E+00  -4.74741E-04   1.00287E+00  -3.67019E-04   1.00287E+00
+   -3.67019E-04   1.00287E+00  -3.67019E-04   9.99969E-01   0.00000E+00
+    1.29581E+00  -4.72835E-04   1.00293E+00  -3.67972E-04   1.00293E+00
+   -3.67972E-04   1.00293E+00  -3.67972E-04   9.99969E-01   9.53296E-07
+    1.29599E+00  -4.82368E-04   1.00296E+00  -3.70832E-04   1.00296E+00
+   -3.70832E-04   1.00296E+00  -3.70832E-04   1.00000E+00   0.00000E+00
+    1.29592E+00  -4.78540E-04   1.00299E+00  -3.71774E-04   1.00299E+00
+   -3.71774E-04   1.00299E+00  -3.71774E-04   9.99969E-01   0.00000E+00
+    1.29606E+00  -4.84274E-04   1.00305E+00  -3.74645E-04   1.00305E+00
+   -3.74645E-04   1.00305E+00  -3.74645E-04   1.00000E+00  -9.53296E-07
+    1.29609E+00  -4.86181E-04   1.00308E+00  -3.76552E-04   1.00308E+00
+   -3.76552E-04   1.00308E+00  -3.76552E-04   1.00000E+00  -9.53296E-07
+    1.29612E+00  -4.86181E-04   1.00311E+00  -3.77505E-04   1.00311E+00
+   -3.77505E-04   1.00311E+00  -3.77505E-04   9.99939E-01   9.53296E-07
+    1.29620E+00  -4.89979E-04   1.00314E+00  -3.78447E-04   1.00314E+00
+   -3.78447E-04   1.00314E+00  -3.78447E-04   9.99939E-01   9.53267E-07
+    1.29621E+00  -4.89994E-04   1.00317E+00  -3.80365E-04   1.00317E+00
+   -3.80365E-04   1.00317E+00  -3.80365E-04   9.99969E-01   0.00000E+00
+    1.29633E+00  -4.97621E-04   1.00323E+00  -3.83225E-04   1.00323E+00
+   -3.83225E-04   1.00323E+00  -3.83225E-04   1.00000E+00  -9.53296E-07
+    1.29636E+00  -4.97621E-04   1.00323E+00  -3.84178E-04   1.00323E+00
+   -3.84178E-04   1.00323E+00  -3.84178E-04   9.99969E-01   0.00000E+00
+    1.29635E+00  -4.97605E-04   1.00329E+00  -3.86073E-04   1.00329E+00
+   -3.86073E-04   1.00329E+00  -3.86073E-04   9.99969E-01   0.00000E+00
+    1.29636E+00  -4.97621E-04   1.00333E+00  -3.87038E-04   1.00333E+00
+   -3.87038E-04   1.00333E+00  -3.87038E-04   9.99939E-01   9.53296E-07
+    1.29654E+00  -5.05247E-04   1.00339E+00  -3.89898E-04   1.00339E+00
+   -3.89898E-04   1.00339E+00  -3.89898E-04   9.99969E-01   0.00000E+00
+    1.29651E+00  -5.05247E-04   1.00342E+00  -3.90851E-04   1.00342E+00
+   -3.90851E-04   1.00342E+00  -3.90851E-04   9.99969E-01   0.00000E+00
+    1.29669E+00  -5.12858E-04   1.00348E+00  -3.94653E-04   1.00348E+00
+   -3.94653E-04   1.00348E+00  -3.94653E-04   1.00000E+00  -9.53267E-07
+    1.29657E+00  -5.07154E-04   1.00348E+00  -3.94665E-04   1.00348E+00
+   -3.94665E-04   1.00348E+00  -3.94665E-04   9.99969E-01   0.00000E+00
+    1.29670E+00  -5.12873E-04   1.00354E+00  -3.96571E-04   1.00354E+00
+   -3.96571E-04   1.00354E+00  -3.96571E-04   9.99969E-01   0.00000E+00
+    1.29679E+00  -5.16686E-04   1.00357E+00  -3.97524E-04   1.00357E+00
+   -3.97524E-04   1.00357E+00  -3.97524E-04   9.99969E-01   9.53296E-07
+    1.29675E+00  -5.14764E-04   1.00363E+00  -4.01325E-04   1.00363E+00
+   -4.01325E-04   1.00363E+00  -4.01325E-04   1.00000E+00  -9.53267E-07
+    1.29685E+00  -5.18593E-04   1.00366E+00  -4.01338E-04   1.00366E+00
+   -4.01338E-04   1.00366E+00  -4.01338E-04   9.99969E-01   0.00000E+00
+    1.29691E+00  -5.22406E-04   1.00369E+00  -4.04198E-04   1.00369E+00
+   -4.04198E-04   1.00369E+00  -4.04198E-04   9.99939E-01   9.53296E-07
+    1.29694E+00  -5.24313E-04   1.00372E+00  -4.05151E-04   1.00372E+00
+   -4.05151E-04   1.00372E+00  -4.05151E-04   1.00000E+00  -9.53296E-07
+    1.29700E+00  -5.26219E-04   1.00381E+00  -4.08964E-04   1.00381E+00
+   -4.08964E-04   1.00381E+00  -4.08964E-04   9.99969E-01   0.00000E+00
+    1.29708E+00  -5.30016E-04   1.00381E+00  -4.08952E-04   1.00381E+00
+   -4.08952E-04   1.00381E+00  -4.08952E-04   9.99969E-01   0.00000E+00
+    1.29709E+00  -5.30033E-04   1.00387E+00  -4.10871E-04   1.00387E+00
+   -4.10871E-04   1.00387E+00  -4.10871E-04   9.99969E-01   0.00000E+00
+    1.29715E+00  -5.33846E-04   1.00390E+00  -4.12777E-04   1.00390E+00
+   -4.12777E-04   1.00390E+00  -4.12777E-04   9.99969E-01   9.53296E-07
+    1.29728E+00  -5.37659E-04   1.00397E+00  -4.15637E-04   1.00397E+00
+   -4.15637E-04   1.00397E+00  -4.15637E-04   1.00000E+00  -9.53296E-07
+    1.29721E+00  -5.35736E-04   1.00397E+00  -4.15624E-04   1.00397E+00
+   -4.15624E-04   1.00397E+00  -4.15624E-04   9.99939E-01   9.53267E-07
+    1.29743E+00  -5.43379E-04   1.00409E+00  -4.19450E-04   1.00409E+00
+   -4.19450E-04   1.00409E+00  -4.19450E-04   1.00000E+00  -9.53296E-07
+    1.29740E+00  -5.43379E-04   1.00412E+00  -4.20404E-04   1.00412E+00
+   -4.20404E-04   1.00412E+00  -4.20404E-04   9.99969E-01   9.53296E-07
+    1.29749E+00  -5.47192E-04   1.00418E+00  -4.24217E-04   1.00418E+00
+   -4.24217E-04   1.00418E+00  -4.24217E-04   1.00000E+00  -9.53296E-07
+    1.29745E+00  -5.45269E-04   1.00418E+00  -4.23251E-04   1.00418E+00
+   -4.23251E-04   1.00418E+00  -4.23251E-04   9.99939E-01   9.53267E-07
+    1.29761E+00  -5.52912E-04   1.00421E+00  -4.26123E-04   1.00421E+00
+   -4.26123E-04   1.00421E+00  -4.26123E-04   9.99969E-01   0.00000E+00
+    1.29767E+00  -5.54818E-04   1.00430E+00  -4.29937E-04   1.00430E+00
+   -4.29937E-04   1.00430E+00  -4.29937E-04   1.00000E+00  -9.53296E-07
+    1.29776E+00  -5.58632E-04   1.00430E+00  -4.28983E-04   1.00430E+00
+   -4.28983E-04   1.00430E+00  -4.28983E-04   1.00000E+00   0.00000E+00
+    1.29772E+00  -5.56708E-04   1.00439E+00  -4.32783E-04   1.00439E+00
+   -4.32783E-04   1.00439E+00  -4.32783E-04   9.99969E-01   0.00000E+00
+    1.29782E+00  -5.60538E-04   1.00439E+00  -4.33750E-04   1.00439E+00
+   -4.33750E-04   1.00439E+00  -4.33750E-04   9.99939E-01   9.53296E-07
+    1.29782E+00  -5.60538E-04   1.00445E+00  -4.35656E-04   1.00445E+00
+   -4.35656E-04   1.00445E+00  -4.35656E-04   9.99969E-01   0.00000E+00
+    1.29798E+00  -5.68165E-04   1.00451E+00  -4.38516E-04   1.00451E+00
+   -4.38516E-04   1.00451E+00  -4.38516E-04   9.99969E-01   0.00000E+00
+    1.29800E+00  -5.68147E-04   1.00458E+00  -4.40409E-04   1.00458E+00
+   -4.40409E-04   1.00458E+00  -4.40409E-04   1.00000E+00  -9.53267E-07
+    1.29813E+00  -5.73884E-04   1.00461E+00  -4.42329E-04   1.00461E+00
+   -4.42329E-04   1.00461E+00  -4.42329E-04   9.99969E-01   0.00000E+00
+    1.29810E+00  -5.71978E-04   1.00467E+00  -4.44236E-04   1.00467E+00
+   -4.44236E-04   1.00467E+00  -4.44236E-04   9.99939E-01   9.53296E-07
+    1.29819E+00  -5.75791E-04   1.00470E+00  -4.45189E-04   1.00470E+00
+   -4.45189E-04   1.00470E+00  -4.45189E-04   1.00000E+00  -9.53296E-07
+    1.29827E+00  -5.79586E-04   1.00479E+00  -4.48989E-04   1.00479E+00
+   -4.48989E-04   1.00479E+00  -4.48989E-04   9.99969E-01   9.53267E-07
+    1.29840E+00  -5.85324E-04   1.00482E+00  -4.50909E-04   1.00482E+00
+   -4.50909E-04   1.00482E+00  -4.50909E-04   1.00000E+00  -9.53296E-07
+    1.29831E+00  -5.81511E-04   1.00485E+00  -4.51862E-04   1.00485E+00
+   -4.51862E-04   1.00485E+00  -4.51862E-04   9.99969E-01   0.00000E+00
+    1.29834E+00  -5.83417E-04   1.00488E+00  -4.52816E-04   1.00488E+00
+   -4.52816E-04   1.00488E+00  -4.52816E-04   9.99969E-01   9.53296E-07
+    1.29864E+00  -5.94839E-04   1.00494E+00  -4.56615E-04   1.00494E+00
+   -4.56615E-04   1.00494E+00  -4.56615E-04   1.00000E+00  -9.53267E-07
+    1.29856E+00  -5.91044E-04   1.00503E+00  -4.58535E-04   1.00503E+00
+   -4.58535E-04   1.00503E+00  -4.58535E-04   9.99969E-01   0.00000E+00
+    1.29859E+00  -5.92950E-04   1.00506E+00  -4.60442E-04   1.00506E+00
+   -4.60442E-04   1.00506E+00  -4.60442E-04   9.99939E-01   9.53296E-07
+    1.29868E+00  -5.96763E-04   1.00509E+00  -4.61395E-04   1.00509E+00
+   -4.61395E-04   1.00509E+00  -4.61395E-04   9.99969E-01   0.00000E+00
+    1.29882E+00  -6.00558E-04   1.00519E+00  -4.65194E-04   1.00519E+00
+   -4.65194E-04   1.00519E+00  -4.65194E-04   1.00000E+00   0.00000E+00
+    1.29892E+00  -6.04390E-04   1.00528E+00  -4.68068E-04   1.00528E+00
+   -4.68068E-04   1.00528E+00  -4.68068E-04   1.00000E+00  -9.53296E-07
+    1.29892E+00  -6.06296E-04   1.00528E+00  -4.69022E-04   1.00528E+00
+   -4.69022E-04   1.00528E+00  -4.69022E-04   9.99969E-01   0.00000E+00
+    1.29892E+00  -6.06296E-04   1.00531E+00  -4.69975E-04   1.00531E+00
+   -4.69975E-04   1.00531E+00  -4.69975E-04   9.99969E-01   0.00000E+00
+    1.29911E+00  -6.12016E-04   1.00537E+00  -4.72835E-04   1.00537E+00
+   -4.72835E-04   1.00537E+00  -4.72835E-04   9.99969E-01   9.53296E-07
+    1.29913E+00  -6.13904E-04   1.00543E+00  -4.74727E-04   1.00543E+00
+   -4.74727E-04   1.00543E+00  -4.74727E-04   1.00000E+00   0.00000E+00
+    1.29923E+00  -6.17736E-04   1.00552E+00  -4.78555E-04   1.00552E+00
+   -4.78555E-04   1.00552E+00  -4.78555E-04   9.99969E-01   0.00000E+00
+    1.29923E+00  -6.19642E-04   1.00552E+00  -4.79508E-04   1.00552E+00
+   -4.79508E-04   1.00552E+00  -4.79508E-04   1.00000E+00  -9.53296E-07
+    1.29941E+00  -6.23456E-04   1.00561E+00  -4.82368E-04   1.00561E+00
+   -4.82368E-04   1.00561E+00  -4.82368E-04   1.00000E+00   0.00000E+00
+    1.29937E+00  -6.23437E-04   1.00561E+00  -4.82353E-04   1.00561E+00
+   -4.82353E-04   1.00561E+00  -4.82353E-04   9.99969E-01   9.53267E-07
+    1.29953E+00  -6.29175E-04   1.00574E+00  -4.87134E-04   1.00574E+00
+   -4.87134E-04   1.00574E+00  -4.87134E-04   1.00000E+00  -9.53296E-07
+    1.29947E+00  -6.29175E-04   1.00574E+00  -4.87134E-04   1.00574E+00
+   -4.87134E-04   1.00574E+00  -4.87134E-04   9.99939E-01   9.53296E-07
+    1.29966E+00  -6.34895E-04   1.00583E+00  -4.90948E-04   1.00583E+00
+   -4.90948E-04   1.00583E+00  -4.90948E-04   1.00000E+00  -9.53296E-07
+    1.29968E+00  -6.34876E-04   1.00586E+00  -4.91886E-04   1.00586E+00
+   -4.91886E-04   1.00586E+00  -4.91886E-04   9.99969E-01   9.53267E-07
+    1.29984E+00  -6.40615E-04   1.00598E+00  -4.95714E-04   1.00598E+00
+   -4.95714E-04   1.00598E+00  -4.95714E-04   9.99969E-01   0.00000E+00
+    1.29984E+00  -6.42522E-04   1.00598E+00  -4.96667E-04   1.00598E+00
+   -4.96667E-04   1.00598E+00  -4.96667E-04   9.99969E-01   0.00000E+00
+    1.29990E+00  -6.44428E-04   1.00604E+00  -4.99527E-04   1.00604E+00
+   -4.99527E-04   1.00604E+00  -4.99527E-04   9.99969E-01   0.00000E+00
+    1.30004E+00  -6.48222E-04   1.00610E+00  -5.01418E-04   1.00610E+00
+   -5.01418E-04   1.00610E+00  -5.01418E-04   1.00000E+00   0.00000E+00
+    1.30008E+00  -6.52055E-04   1.00619E+00  -5.04294E-04   1.00619E+00
+   -5.04294E-04   1.00619E+00  -5.04294E-04   9.99969E-01   0.00000E+00
+    1.30008E+00  -6.52055E-04   1.00622E+00  -5.05247E-04   1.00622E+00
+   -5.05247E-04   1.00622E+00  -5.05247E-04   9.99969E-01   0.00000E+00
+    1.30027E+00  -6.57774E-04   1.00628E+00  -5.09060E-04   1.00628E+00
+   -5.09060E-04   1.00628E+00  -5.09060E-04   9.99969E-01   0.00000E+00
+    1.30035E+00  -6.61567E-04   1.00638E+00  -5.11904E-04   1.00638E+00
+   -5.11904E-04   1.00638E+00  -5.11904E-04   1.00003E+00  -9.53267E-07
+    1.30045E+00  -6.65401E-04   1.00638E+00  -5.11920E-04   1.00638E+00
+   -5.11920E-04   1.00638E+00  -5.11920E-04   9.99969E-01   0.00000E+00
+    1.30033E+00  -6.61588E-04   1.00647E+00  -5.14780E-04   1.00647E+00
+   -5.14780E-04   1.00647E+00  -5.14780E-04   9.99939E-01   9.53296E-07
+    1.30057E+00  -6.69214E-04   1.00653E+00  -5.17640E-04   1.00653E+00
+   -5.17640E-04   1.00653E+00  -5.17640E-04   9.99969E-01   0.00000E+00
+    1.30059E+00  -6.71100E-04   1.00659E+00  -5.19531E-04   1.00659E+00
+   -5.19531E-04   1.00659E+00  -5.19531E-04   9.99939E-01   9.53267E-07
+    1.30069E+00  -6.74934E-04   1.00665E+00  -5.22406E-04   1.00665E+00
+   -5.22406E-04   1.00665E+00  -5.22406E-04   1.00003E+00  -9.53296E-07
+    1.30094E+00  -6.84467E-04   1.00674E+00  -5.26219E-04   1.00674E+00
+   -5.26219E-04   1.00674E+00  -5.26219E-04   9.99969E-01   0.00000E+00
+    1.30075E+00  -6.76840E-04   1.00674E+00  -5.26219E-04   1.00674E+00
+   -5.26219E-04   1.00674E+00  -5.26219E-04   9.99969E-01   0.00000E+00
+    1.30090E+00  -6.82539E-04   1.00683E+00  -5.29063E-04   1.00683E+00
+   -5.29063E-04   1.00683E+00  -5.29063E-04   9.99969E-01   0.00000E+00
+    1.30100E+00  -6.86373E-04   1.00692E+00  -5.31939E-04   1.00692E+00
+   -5.31939E-04   1.00692E+00  -5.31939E-04   9.99969E-01   9.53296E-07
+    1.30112E+00  -6.90186E-04   1.00699E+00  -5.33846E-04   1.00699E+00
+   -5.33846E-04   1.00699E+00  -5.33846E-04   1.00000E+00  -9.53296E-07
+    1.30130E+00  -6.95906E-04   1.00708E+00  -5.38612E-04   1.00708E+00
+   -5.38612E-04   1.00708E+00  -5.38612E-04   1.00000E+00  -9.53296E-07
+    1.30126E+00  -6.95885E-04   1.00708E+00  -5.38596E-04   1.00708E+00
+   -5.38596E-04   1.00708E+00  -5.38596E-04   9.99969E-01   9.53267E-07
+    1.30142E+00  -7.01626E-04   1.00714E+00  -5.40519E-04   1.00714E+00
+   -5.40519E-04   1.00714E+00  -5.40519E-04   1.00000E+00   0.00000E+00
+    1.30130E+00  -6.97813E-04   1.00723E+00  -5.43379E-04   1.00723E+00
+   -5.43379E-04   1.00723E+00  -5.43379E-04   9.99969E-01   0.00000E+00
+    1.30167E+00  -7.09252E-04   1.00735E+00  -5.48145E-04   1.00735E+00
+   -5.48145E-04   1.00735E+00  -5.48145E-04   9.99969E-01   0.00000E+00
+    1.30161E+00  -7.07346E-04   1.00732E+00  -5.47192E-04   1.00732E+00
+   -5.47192E-04   1.00732E+00  -5.47192E-04   9.99969E-01   0.00000E+00
+    1.30181E+00  -7.16857E-04   1.00747E+00  -5.52895E-04   1.00747E+00
+   -5.52895E-04   1.00747E+00  -5.52895E-04   1.00000E+00   0.00000E+00
+    1.30167E+00  -7.11159E-04   1.00744E+00  -5.51958E-04   1.00744E+00
+   -5.51958E-04   1.00744E+00  -5.51958E-04   9.99969E-01   0.00000E+00
+    1.30191E+00  -7.18785E-04   1.00757E+00  -5.56725E-04   1.00757E+00
+   -5.56725E-04   1.00757E+00  -5.56725E-04   9.99939E-01   9.53296E-07
+    1.30191E+00  -7.20692E-04   1.00760E+00  -5.57678E-04   1.00760E+00
+   -5.57678E-04   1.00760E+00  -5.57678E-04   9.99969E-01   0.00000E+00
+    1.30212E+00  -7.26389E-04   1.00775E+00  -5.62428E-04   1.00775E+00
+   -5.62428E-04   1.00775E+00  -5.62428E-04   1.00000E+00  -9.53267E-07
+    1.30222E+00  -7.32131E-04   1.00778E+00  -5.64351E-04   1.00778E+00
+   -5.64351E-04   1.00778E+00  -5.64351E-04   9.99969E-01   0.00000E+00
+    1.30222E+00  -7.30225E-04   1.00781E+00  -5.64351E-04   1.00781E+00
+   -5.64351E-04   1.00781E+00  -5.64351E-04   9.99939E-01   9.53296E-07
+    1.30234E+00  -7.34038E-04   1.00796E+00  -5.71024E-04   1.00796E+00
+   -5.71024E-04   1.00796E+00  -5.71024E-04   1.00000E+00  -9.53296E-07
+    1.30236E+00  -7.35922E-04   1.00799E+00  -5.71007E-04   1.00799E+00
+   -5.71007E-04   1.00799E+00  -5.71007E-04   9.99939E-01   9.53267E-07
+    1.30258E+00  -7.43571E-04   1.00805E+00  -5.73884E-04   1.00805E+00
+   -5.73884E-04   1.00805E+00  -5.73884E-04   1.00000E+00   0.00000E+00
+    1.30264E+00  -7.45478E-04   1.00814E+00  -5.76744E-04   1.00814E+00
+   -5.76744E-04   1.00814E+00  -5.76744E-04   1.00000E+00  -9.53296E-07
+    1.30271E+00  -7.47384E-04   1.00818E+00  -5.78651E-04   1.00818E+00
+   -5.78651E-04   1.00818E+00  -5.78651E-04   9.99939E-01   9.53296E-07
+    1.30279E+00  -7.51174E-04   1.00830E+00  -5.82446E-04   1.00830E+00
+   -5.82446E-04   1.00830E+00  -5.82446E-04   1.00000E+00  -9.53267E-07
+    1.30289E+00  -7.55011E-04   1.00833E+00  -5.84371E-04   1.00833E+00
+   -5.84371E-04   1.00833E+00  -5.84371E-04   1.00000E+00   0.00000E+00
+    1.30307E+00  -7.60730E-04   1.00845E+00  -5.87230E-04   1.00845E+00
+   -5.87230E-04   1.00845E+00  -5.87230E-04   9.99969E-01   0.00000E+00
+    1.30307E+00  -7.60730E-04   1.00851E+00  -5.90090E-04   1.00851E+00
+   -5.90090E-04   1.00851E+00  -5.90090E-04   9.99969E-01   0.00000E+00
+    1.30315E+00  -7.64520E-04   1.00854E+00  -5.91979E-04   1.00854E+00
+   -5.91979E-04   1.00854E+00  -5.91979E-04   9.99939E-01   9.53267E-07
+    1.30332E+00  -7.70263E-04   1.00863E+00  -5.94857E-04   1.00863E+00
+   -5.94857E-04   1.00863E+00  -5.94857E-04   9.99969E-01   0.00000E+00
+    1.30332E+00  -7.70263E-04   1.00872E+00  -5.97717E-04   1.00872E+00
+   -5.97717E-04   1.00872E+00  -5.97717E-04   1.00000E+00   0.00000E+00
+    1.30356E+00  -7.77890E-04   1.00882E+00  -6.00577E-04   1.00882E+00
+   -6.00577E-04   1.00882E+00  -6.00577E-04   9.99969E-01   0.00000E+00
+    1.30358E+00  -7.79772E-04   1.00891E+00  -6.03418E-04   1.00891E+00
+   -6.03418E-04   1.00891E+00  -6.03418E-04   9.99969E-01   0.00000E+00
+    1.30368E+00  -7.81703E-04   1.00894E+00  -6.05343E-04   1.00894E+00
+   -6.05343E-04   1.00894E+00  -6.05343E-04   9.99969E-01   0.00000E+00
+    1.30387E+00  -7.87423E-04   1.00906E+00  -6.09156E-04   1.00906E+00
+   -6.09156E-04   1.00906E+00  -6.09156E-04   1.00000E+00  -9.53296E-07
+    1.30387E+00  -7.89329E-04   1.00912E+00  -6.11063E-04   1.00912E+00
+   -6.11063E-04   1.00912E+00  -6.11063E-04   9.99969E-01   0.00000E+00
+    1.30401E+00  -7.93118E-04   1.00918E+00  -6.13904E-04   1.00918E+00
+   -6.13904E-04   1.00918E+00  -6.13904E-04   9.99939E-01   9.53267E-07
+    1.30417E+00  -7.98862E-04   1.00930E+00  -6.17736E-04   1.00930E+00
+   -6.17736E-04   1.00930E+00  -6.17736E-04   1.00000E+00  -9.53296E-07
+    1.30417E+00  -7.98862E-04   1.00933E+00  -6.18689E-04   1.00933E+00
+   -6.18689E-04   1.00933E+00  -6.18689E-04   9.99969E-01   0.00000E+00
+    1.30429E+00  -8.04582E-04   1.00946E+00  -6.23456E-04   1.00946E+00
+   -6.23456E-04   1.00946E+00  -6.23456E-04   9.99969E-01   0.00000E+00
+    1.30448E+00  -8.08395E-04   1.00949E+00  -6.24409E-04   1.00949E+00
+   -6.24409E-04   1.00949E+00  -6.24409E-04   9.99969E-01   0.00000E+00
+    1.30450E+00  -8.10277E-04   1.00958E+00  -6.27250E-04   1.00958E+00
+   -6.27250E-04   1.00958E+00  -6.27250E-04   9.99939E-01   9.53267E-07
+    1.30460E+00  -8.16021E-04   1.00970E+00  -6.31082E-04   1.00970E+00
+   -6.31082E-04   1.00970E+00  -6.31082E-04   1.00003E+00  -9.53296E-07
+    1.30472E+00  -8.19835E-04   1.00979E+00  -6.34895E-04   1.00979E+00
+   -6.34895E-04   1.00979E+00  -6.34895E-04   9.99969E-01   0.00000E+00
+    1.30472E+00  -8.17928E-04   1.00976E+00  -6.33942E-04   1.00976E+00
+   -6.33942E-04   1.00976E+00  -6.33942E-04   9.99939E-01   9.53296E-07
+    1.30505E+00  -8.29342E-04   1.00997E+00  -6.40595E-04   1.00997E+00
+   -6.40595E-04   1.00997E+00  -6.40595E-04   1.00000E+00  -9.53267E-07
+    1.30502E+00  -8.29368E-04   1.01004E+00  -6.42522E-04   1.01004E+00
+   -6.42522E-04   1.01004E+00  -6.42522E-04   9.99969E-01   9.53296E-07
+    1.30515E+00  -8.33181E-04   1.01010E+00  -6.44428E-04   1.01010E+00
+   -6.44428E-04   1.01010E+00  -6.44428E-04   9.99969E-01   0.00000E+00
+    1.30527E+00  -8.36994E-04   1.01019E+00  -6.48241E-04   1.01019E+00
+   -6.48241E-04   1.01019E+00  -6.48241E-04   9.99969E-01   0.00000E+00
+    1.30541E+00  -8.42688E-04   1.01028E+00  -6.52035E-04   1.01028E+00
+   -6.52035E-04   1.01028E+00  -6.52035E-04   1.00000E+00  -9.53267E-07
+    1.30545E+00  -8.42714E-04   1.01031E+00  -6.52055E-04   1.01031E+00
+   -6.52055E-04   1.01031E+00  -6.52055E-04   9.99969E-01   9.53296E-07
+    1.30557E+00  -8.48434E-04   1.01049E+00  -6.57774E-04   1.01049E+00
+   -6.57774E-04   1.01049E+00  -6.57774E-04   1.00000E+00  -9.53296E-07
+    1.30570E+00  -8.52247E-04   1.01052E+00  -6.59681E-04   1.01052E+00
+   -6.59681E-04   1.01052E+00  -6.59681E-04   9.99939E-01   9.53296E-07
+    1.30584E+00  -8.56034E-04   1.01062E+00  -6.62521E-04   1.01062E+00
+   -6.62521E-04   1.01062E+00  -6.62521E-04   9.99969E-01   0.00000E+00
+    1.30606E+00  -8.61780E-04   1.01071E+00  -6.65401E-04   1.01071E+00
+   -6.65401E-04   1.01071E+00  -6.65401E-04   1.00000E+00  -9.53296E-07
+    1.30606E+00  -8.61780E-04   1.01080E+00  -6.68261E-04   1.01080E+00
+   -6.68261E-04   1.01080E+00  -6.68261E-04   9.99969E-01   9.53296E-07
+    1.30624E+00  -8.69406E-04   1.01089E+00  -6.72074E-04   1.01089E+00
+   -6.72074E-04   1.01089E+00  -6.72074E-04   9.99939E-01   9.53296E-07
+    1.30633E+00  -8.73193E-04   1.01101E+00  -6.75866E-04   1.01101E+00
+   -6.75866E-04   1.01101E+00  -6.75866E-04   1.00003E+00  -1.90653E-06
+    1.30637E+00  -8.73219E-04   1.01104E+00  -6.76840E-04   1.01104E+00
+   -6.76840E-04   1.01104E+00  -6.76840E-04   9.99969E-01   9.53296E-07
+    1.30655E+00  -8.80846E-04   1.01117E+00  -6.80653E-04   1.01117E+00
+   -6.80653E-04   1.01117E+00  -6.80653E-04   1.00000E+00   0.00000E+00
+    1.30667E+00  -8.84659E-04   1.01129E+00  -6.84467E-04   1.01129E+00
+   -6.84467E-04   1.01129E+00  -6.84467E-04   9.99969E-01   0.00000E+00
+    1.30675E+00  -8.86538E-04   1.01135E+00  -6.86352E-04   1.01135E+00
+   -6.86352E-04   1.01135E+00  -6.86352E-04   9.99969E-01   0.00000E+00
+    1.30698E+00  -8.92285E-04   1.01144E+00  -6.90186E-04   1.01144E+00
+   -6.90186E-04   1.01144E+00  -6.90186E-04   1.00000E+00  -9.53296E-07
+    1.30704E+00  -8.96098E-04   1.01153E+00  -6.93046E-04   1.01153E+00
+   -6.93046E-04   1.01153E+00  -6.93046E-04   1.00000E+00   0.00000E+00
+    1.30710E+00  -8.98005E-04   1.01159E+00  -6.94953E-04   1.01159E+00
+   -6.94953E-04   1.01159E+00  -6.94953E-04   9.99939E-01   9.53296E-07
+    1.30718E+00  -9.01791E-04   1.01174E+00  -6.99698E-04   1.01174E+00
+   -6.99698E-04   1.01174E+00  -6.99698E-04   9.99939E-01   9.53267E-07
+    1.30746E+00  -9.09444E-04   1.01184E+00  -7.02579E-04   1.01184E+00
+   -7.02579E-04   1.01184E+00  -7.02579E-04   1.00000E+00  -9.53296E-07
+    1.30759E+00  -9.13258E-04   1.01190E+00  -7.04486E-04   1.01190E+00
+   -7.04486E-04   1.01190E+00  -7.04486E-04   9.99969E-01   9.53296E-07
+    1.30759E+00  -9.13258E-04   1.01205E+00  -7.09252E-04   1.01205E+00
+   -7.09252E-04   1.01205E+00  -7.09252E-04   1.00000E+00  -9.53296E-07
+    1.30779E+00  -9.20856E-04   1.01211E+00  -7.12090E-04   1.01211E+00
+   -7.12090E-04   1.01211E+00  -7.12090E-04   9.99969E-01   0.00000E+00
+    1.30789E+00  -9.24697E-04   1.01223E+00  -7.15925E-04   1.01223E+00
+   -7.15925E-04   1.01223E+00  -7.15925E-04   1.00000E+00  -9.53296E-07
+    1.30801E+00  -9.26604E-04   1.01226E+00  -7.16879E-04   1.01226E+00
+   -7.16879E-04   1.01226E+00  -7.16879E-04   9.99939E-01   1.90659E-06
+    1.30820E+00  -9.34230E-04   1.01248E+00  -7.23552E-04   1.01248E+00
+   -7.23552E-04   1.01248E+00  -7.23552E-04   1.00000E+00  -9.53296E-07
+    1.30820E+00  -9.34230E-04   1.01251E+00  -7.24505E-04   1.01251E+00
+   -7.24505E-04   1.01251E+00  -7.24505E-04   9.99969E-01   0.00000E+00
+    1.30846E+00  -9.41828E-04   1.01260E+00  -7.27343E-04   1.01260E+00
+   -7.27343E-04   1.01260E+00  -7.27343E-04   9.99969E-01   0.00000E+00
+    1.30856E+00  -9.43763E-04   1.01269E+00  -7.30225E-04   1.01269E+00
+   -7.30225E-04   1.01269E+00  -7.30225E-04   9.99969E-01   9.53296E-07
+    1.30875E+00  -9.49483E-04   1.01284E+00  -7.34991E-04   1.01284E+00
+   -7.34991E-04   1.01284E+00  -7.34991E-04   9.99969E-01   0.00000E+00
+    1.30887E+00  -9.53296E-04   1.01290E+00  -7.37851E-04   1.01290E+00
+   -7.37851E-04   1.01290E+00  -7.37851E-04   1.00000E+00  -9.53296E-07
+    1.30889E+00  -9.57080E-04   1.01303E+00  -7.40688E-04   1.01303E+00
+   -7.40688E-04   1.01303E+00  -7.40688E-04   9.99939E-01   9.53267E-07
+    1.30911E+00  -9.62829E-04   1.01318E+00  -7.45478E-04   1.01318E+00
+   -7.45478E-04   1.01318E+00  -7.45478E-04   9.99969E-01   0.00000E+00
+    1.30923E+00  -9.66642E-04   1.01321E+00  -7.47384E-04   1.01321E+00
+   -7.47384E-04   1.01321E+00  -7.47384E-04   1.00003E+00  -9.53296E-07
+    1.30942E+00  -9.72362E-04   1.01333E+00  -7.51197E-04   1.01333E+00
+   -7.51197E-04   1.01333E+00  -7.51197E-04   9.99969E-01   0.00000E+00
+    1.30944E+00  -9.74239E-04   1.01351E+00  -7.55941E-04   1.01351E+00
+   -7.55941E-04   1.01351E+00  -7.55941E-04   9.99969E-01   0.00000E+00
+    1.30960E+00  -9.78082E-04   1.01351E+00  -7.56917E-04   1.01351E+00
+   -7.56917E-04   1.01351E+00  -7.56917E-04   9.99969E-01   0.00000E+00
+    1.30972E+00  -9.81895E-04   1.01364E+00  -7.59777E-04   1.01364E+00
+   -7.59777E-04   1.01364E+00  -7.59777E-04   9.99969E-01   9.53296E-07
+    1.30997E+00  -9.89521E-04   1.01379E+00  -7.65497E-04   1.01379E+00
+   -7.65497E-04   1.01379E+00  -7.65497E-04   9.99969E-01   0.00000E+00
+    1.31005E+00  -9.93304E-04   1.01394E+00  -7.69286E-04   1.01394E+00
+   -7.69286E-04   1.01394E+00  -7.69286E-04   1.00000E+00  -9.53267E-07
+    1.31021E+00  -9.97148E-04   1.01400E+00  -7.71217E-04   1.01400E+00
+   -7.71217E-04   1.01400E+00  -7.71217E-04   9.99969E-01   0.00000E+00
+    1.31031E+00  -1.00099E-03   1.01412E+00  -7.75053E-04   1.01412E+00
+   -7.75053E-04   1.01412E+00  -7.75053E-04   1.00000E+00   0.00000E+00
+    1.31041E+00  -1.00474E-03   1.01425E+00  -7.78819E-04   1.01425E+00
+   -7.78819E-04   1.01425E+00  -7.78819E-04   9.99939E-01   0.00000E+00
+    1.31060E+00  -1.01046E-03   1.01428E+00  -7.80726E-04   1.01428E+00
+   -7.80726E-04   1.01428E+00  -7.80726E-04   1.00000E+00   0.00000E+00
+    1.31060E+00  -1.01046E-03   1.01428E+00  -7.80726E-04   1.01428E+00
+   -7.80726E-04   1.01428E+00  -7.80726E-04   1.00000E+00   0.00000E+00
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/FILES
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/FILES	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/FILES	(revision 4308)
@@ -0,0 +1,166 @@
+FILES
+ATM75
+ATM80
+ATM84
+ATM85
+ATM86
+ATM87
+ATM88
+ATM89
+ATM90
+EGSDAT2
+NUCNUCCS
+VENUSDAT
+GHEISHA.f
+QGSJET.f
+SIBYLL.f
+VENUS.f
+addang.f
+addani.f
+age.f
+amoeba.f
+amotry.f
+annih.f
+ausgab.f
+ausgb2.f
+avage.f
+avept.f
+bhabha.f
+block1.f
+box2.f
+box3.f
+box60.f
+box61.f
+box62.f
+box63.f
+box65.f
+box66.f
+box67.f
+box68.f
+box69.f
+box70.f
+box71.f
+box72.f
+box73.f
+box74.f
+brems.f
+cerenkov.f
+cghei.f
+cghini.f
+cghsig.f
+chisq.f
+compt.f
+coorin.f
+datac.f
+decay1.f
+decay6.f
+difrac.f
+dpfunc.f
+egs4.f
+egs4bd.f
+egsini.f
+electr.f
+em.f
+etadec.f
+flpsor.f
+fstack.f
+gam.f
+garndm.f
+gbrsgm.f
+gprsgm.f
+granor.f
+grndm.f
+hatch.f
+hdpm.f
+heigh.f
+hmeson.f
+howfar.f
+ininkg.f
+inprm.f
+isobar.f
+istack.f
+jadach.f
+kdecay.f
+leaddf.f
+ledeny.f
+lepacx.f
+longft.f
+lowup.f
+lpm.f
+main.f
+mitage.f
+mmol4.f
+mmolie.f
+moller.f
+mpoiss.f
+mpprop.f
+mscat.f
+mubrem.f
+mucoul.f
+mudecy.f
+mupair.f
+muprpr.f
+mutrac.f
+nihila.f
+nkg.f
+nsd.f
+nucint.f
+outend.f
+output.f
+pair.f
+pamaf.f
+parnum.f
+parrap.f
+pcl.f
+photo.f
+photon.f
+pi0dec.f
+pigen.f
+pigen1.f
+pigen2.f
+pparam.f
+prange.f
+prtime.f
+ptram.f
+ptran.f
+ptrans.f
+rangen.f
+rannor.f
+resdec.f
+rhof.f
+rmmaq.f
+rmmar.f
+rnegbi.f
+sdpm.f
+selcor.f
+shower.f
+single.f
+sobseq.f
+staend.f
+stankg.f
+start.f
+strdec.f
+tarint.f
+thick.f
+tobuf.f
+tstack.f
+tstend.f
+tstini.f
+tstout.f
+ucopy.f
+update.f
+uphi.f
+utqsea.f
+utqval.f
+vapor.f
+vendat.f
+venini.f
+venlnk.f
+vhmeso.f
+vstore.f
+vzero.f
+jcio.c
+jcdate.c
+Makefile
+c-script.sh
+magic-mc.daemon.tpl
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/GHEISHA.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/GHEISHA.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/GHEISHA.f	(revision 4308)
@@ -0,0 +1,17506 @@
+*-- AUTHOR :
+      SUBROUTINE ADD(K,L,M)
+C
+C *** VARIOUS VECTOR OPERATIONS ***
+C
+C COPIED FROM F14BLO.PAMLIB 23.4.82
+C AUTHOR: V.BLOBEL (UNIVERSITY OF HAMBURG)
+C DESYLIB
+C
+C *** BLANK COMMON REPLACED BY /VECUTY/ TO MATCH GEANT/GHEISHA CODE ***
+C *** NOTE THAT P(10,100) HAS BECOME PV(10,200) DUE TO THIS         ***
+C
+C UN-USED ENTRIES REMOVED :
+C     "PCOP" "PEXC" "PZER" "PWRT" "DOT4" "IMPU" "IMPULI" "ADD3"
+C     "SUB3" "CROSS" "DOT" "SMUL" "NORZ" "PARPER" "PUNIT" "TRAP"
+C
+C *** ALL ENTRIES RE-WRITTEN AS SUBROUTINES USING ONLY NECESSARY ***
+C *** "DOUBLE PRECISION" STMTS. AND ALL SPECIFIC FUNCTIONS HAVE  ***
+C *** BEEN CHANGED TO THEIR GENERIC EQUIVALENCES                 ***
+C *** NVE 29-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (22-JUNE-1984)
+C
+C
+C --- PV-ARRAY ---
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DOUBLE PRECISION A,B
+C
+      A=PV(4,K)+PV(4,L)
+      PV(4,M)=A
+      B=A*A
+      DO 2 I=1,3
+      A=PV(I,K)+PV(I,L)
+      B=B-A*A
+      PV(I,M)=A
+ 2    CONTINUE
+      PV(5,M)=SIGN(SQRT(ABS(B)),B)
+      RETURN
+      END
+C---------------------------------------------------------------------
+      SUBROUTINE ADD3(K,L,M)
+C
+C --- PV-ARRAY ---
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DOUBLE PRECISION A
+C
+      DO 2 I=1,3
+      A=PV(I,K)+PV(I,L)
+      PV(I,M)=A
+    2 CONTINUE
+      RETURN
+      END
+C---------------------------------------------------------------------
+      SUBROUTINE SUB3(K,L,M)
+C
+C --- PV-ARRAY ---
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DOUBLE PRECISION A
+C
+      DO 2 I=1,3
+      A=PV(I,K)-PV(I,L)
+      PV(I,M)=A
+    2 CONTINUE
+      RETURN
+      END
+C---------------------------------------------------------------------
+      SUBROUTINE CROSS3(K,L,M)
+C
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+      DIMENSION G(3)
+      DOUBLE PRECISION A,B,G
+C
+      A=PV(2,K)*PV(3,L)
+      B=PV(3,K)*PV(2,L)
+      G(1)=A-B
+      A=PV(3,K)*PV(1,L)
+      B=PV(1,K)*PV(3,L)
+      G(2)=A-B
+      A=PV(1,K)*PV(2,L)
+      B=PV(2,K)*PV(1,L)
+      G(3)=A-B
+      DO 26 I=1,3
+   26 PV(I,M)=G(I)
+      RETURN
+      END
+C---------------------------------------------------------------------
+      SUBROUTINE SUB(K,L,M)
+C
+C --- PV-ARRAY ---
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DOUBLE PRECISION A,B
+C
+      A=PV(4,K)-PV(4,L)
+      PV(4,M)=A
+      B=A*A
+      DO 4 I=1,3
+      A=PV(I,K)-PV(I,L)
+      B=B-A*A
+      PV(I,M)=A
+ 4    CONTINUE
+      PV(5,M)=SIGN(SQRT(ABS(B)),B)
+      RETURN
+      END
+C---------------------------------------------------------------------
+      SUBROUTINE LOR(K,L,M)
+C
+C --- PV-ARRAY ---
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DOUBLE PRECISION A,B,C
+C
+      A=0.0
+      DO 6 I=1,3
+      A=A+PV(I,K)*PV(I,L)
+ 6    CONTINUE
+      A=(A/(PV(4,L)+PV(5,L))-PV(4,K))/PV(5,L)
+      B=PV(5,K)*PV(5,K)
+      DO 8 I=1,3
+      C=PV(I,K)+A*PV(I,L)
+      B=B+C*C
+      PV(I,M)=C
+ 8    CONTINUE
+      PV(4,M)=SQRT(B)
+      PV(5,M)=PV(5,K)
+      RETURN
+      END
+C---------------------------------------------------------------------
+      SUBROUTINE LENGTX(K,U)
+C
+C --- PV-ARRAY ---
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DOUBLE PRECISION A,B
+C
+      A=0.0
+      DO 36 I=1,3
+      A=A+PV(I,K)*PV(I,K)
+ 36   CONTINUE
+      B=SQRT(A)
+      U=B
+      RETURN
+      END
+C---------------------------------------------------------------------
+      SUBROUTINE ANG(K,L,U,V)
+C
+C --- PV-ARRAY ---
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DOUBLE PRECISION A,B,C,D
+C
+      A=0.0
+      B=0.0
+      C=0.0
+      DO 38 I=1,3
+      A=A+PV(I,K)*PV(I,K)
+      B=B+PV(I,L)*PV(I,L)
+      C=C+PV(I,K)*PV(I,L)
+ 38   CONTINUE
+      D=SQRT(A*B)
+      IF (D .NE. 0.0) D=C/D
+      IF (ABS(D) .GT. 1.D0) D=SIGN(1.D0,D)
+      U=D
+      V=ACOS(D)
+      RETURN
+      END
+C---------------------------------------------------------------------
+      SUBROUTINE DEFS(K,L,M)
+C
+C --- PV-ARRAY ---
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DOUBLE PRECISION A,B
+C
+      MX=M
+      MY=M+1
+      MZ=M+2
+      DO 52 I=1,3
+      F=PV(I,K)
+      H=PV(I,L)
+      PV(I,MY)=F
+      PV(I,MZ)=H
+ 52   CONTINUE
+      A=PV(2,MY)*PV(3,MZ)
+      B=PV(3,MY)*PV(2,MZ)
+      PV(1,MX)=A-B
+      A=PV(3,MY)*PV(1,MZ)
+      B=PV(1,MY)*PV(3,MZ)
+      PV(2,MX)=A-B
+      A=PV(1,MY)*PV(2,MZ)
+      B=PV(2,MY)*PV(1,MZ)
+      PV(3,MX)=A-B
+      A=PV(2,MZ)*PV(3,MX)
+      B=PV(3,MZ)*PV(2,MX)
+      PV(1,MY)=A-B
+      A=PV(3,MZ)*PV(1,MX)
+      B=PV(1,MZ)*PV(3,MX)
+      PV(2,MY)=A-B
+      A=PV(1,MZ)*PV(2,MX)
+      B=PV(2,MZ)*PV(1,MX)
+      PV(3,MY)=A-B
+      DO 58 J=MX,MZ
+      A=0.0
+      DO 54 I=1,3
+      A=A+PV(I,J)*PV(I,J)
+ 54   CONTINUE
+      B=SQRT(A)
+      IF (B .NE. 0.0) B=1.0/B
+      DO 56 I=1,3
+      PV(I,J)=B*PV(I,J)
+ 56   CONTINUE
+ 58   CONTINUE
+      RETURN
+      END
+C---------------------------------------------------------------------
+      SUBROUTINE TRAC(K,L,M)
+C
+C --- PV-ARRAY ---
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DOUBLE PRECISION B,G(3)
+C
+      N=L
+      DO 62 J=1,3
+      B=0.0
+      DO 60 I=1,3
+      B=B+PV(I,N)*PV(I,K)
+ 60   CONTINUE
+      G(J)=B
+      N=N+1
+ 62   CONTINUE
+      DO 64 I=1,3
+      PV(I,M)=G(I)
+ 64   CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      REAL FUNCTION ATOMAS(A,Z)
+C
+C *** DETERMINATION OF THE ATOMIC MASS ***
+C *** NVE 19-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (02-DEC-1986)
+C
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+C
+      DOUBLE PRECISION AA,ZZ,MASS
+C
+C --- GET ATOMIC (= ELECTRONS INCL.) MASSES (IN MEV) FROM RMASS ARRAY ---
+C --- ELECTRON ---
+      RMEL=RMASS(4)*1000.
+C --- PROTON ---
+      RMP=RMASS(14)*1000.
+C --- NEUTRON ---
+      RMN=RMASS(16)*1000.
+C --- DEUTERON ---
+      RMD=RMASS(30)*1000.+RMEL
+C --- ALPHA ---
+      RMA=RMASS(32)*1000.+2.*RMEL
+C
+      ATOMAS = 0.
+      AA = A * 1.D0
+      ZZ = Z * 1.D0
+      IA = IFIX(A + 0.5)
+      IF(IA.LT.1) RETURN
+      IZ = IFIX(Z + 0.5)
+      IF(IZ.LT.0) RETURN
+      IF(IZ.GT.IA) RETURN
+      IF(IA.GT.4) GOTO 50
+      MASS=0.D0
+      GOTO (10,20,50,40),IA
+   10 IF(IZ.EQ.0) MASS=RMN
+      IF(IZ.EQ.1) MASS=RMP+RMEL
+      GOTO 60
+   20 IF(IZ.NE.1) GOTO 50
+      MASS=RMD
+      GOTO 60
+   40 IF(IZ.NE.2) GOTO 50
+      MASS=RMA
+      GOTO 60
+   50 MASS=(AA-ZZ)*RMN + ZZ*RMP +ZZ*RMEL - 15.67*AA
+     *     + 17.23*(AA**0.6666667) + 93.15*((AA/2.-ZZ)**2)/AA
+     *     +0.6984523*ZZ**2/(AA**0.3333333)
+      IPP=MOD(IA-IZ,2)
+      IZZ=MOD(IZ,2)
+      IF(IPP.NE.IZZ) GOTO 60
+      MASS = MASS + (IPP+IZZ- 1)*12.00*(AA**(-0.5))
+   60 ATOMAS = MASS*0.001
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CAPTUR(NOPT)
+C
+C *** ROUTINE FOR CAPTURE OF NEUTRAL BARYONS ***
+C *** NVE 04-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (02-DEC-1986)
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DIMENSION RNDM(3)
+C
+      NOPT=1
+      IER(81)=IER(81)+1
+      PV(1,1)=PX*P
+      PV(2,1)=PY*P
+      PV(3,1)=PZ*P
+      PV(4,1)=EN
+      PV(5,1)=ABS(AMAS)
+      PV(6,1)=NCH
+      PV(7,1)=TOF
+      PV(8,1)=IPART
+      PV(9,1)=0.
+      PV(10,1)=USERW
+      ND=IND+1
+      PV(1,2)=0.
+      PV(2,2)=0.
+      PV(3,2)=0.
+      PV(4,2)=ATOMAS(ATNO(ND),ZNO(ND))
+      PV(5,2)=PV(4,2)
+      PV(6,2)=ZNO(ND)
+      PV(7,2)=TOF
+      PV(8,2)=0.
+      PV(9,2)=0.
+      PV(10,2)=0.
+      CALL ADD(1,2,MXGKPV)
+      PV(1,MXGKPV)=-PV(1,MXGKPV)
+      PV(2,MXGKPV)=-PV(2,MXGKPV)
+      PV(3,MXGKPV)=-PV(3,MXGKPV)
+      CALL NORMAL(RAN)
+      P=0.0065+RAN*0.0010
+      CALL GRNDM(RNDM,3)
+      COST=-1.+RNDM(1)*2.
+      SINT=SQRT(ABS(1.-COST*COST))
+      PHI=TWPI*RNDM(2)
+      PV(1,3)=P*SINT*SIN(PHI)
+      PV(2,3)=P*SINT*COS(PHI)
+      PV(3,3)=P*COST
+      PV(4,3)=P
+      PV(5,3)=0.
+      PV(6,3)=0.
+      PV(8,3)=1.
+      PV(9,3)=0.
+      PV(10,3)=0.
+      RAN=RNDM(3)
+      TOF=TOF-480.*LOG(RAN)
+      PV(7,3)=TOF
+      CALL LOR(3,MXGKPV,3)
+      NT=3
+      XP=0.008-P
+      IF(XP.LT.0.) GOTO 9
+      NT=4
+      CALL GRNDM(RNDM,2)
+      COST=-1.+RNDM(1)*2.
+      SINT=SQRT(ABS(1.-COST*COST))
+      PHI=TWPI*RNDM(2)
+      PV(1,4)=XP*SINT*SIN(PHI)
+      PV(2,4)=XP*SINT*COS(PHI)
+      PV(3,4)=XP*COST
+      PV(4,4)=XP
+      PV(5,4)=0.
+      PV(6,4)=0.
+      PV(7,4)=TOF
+      PV(8,4)=1.
+      PV(9,4)=0.
+      PV(10,4)=0.
+      CALL LOR(4,MXGKPV,4)
+    9 INTCT=INTCT+1.
+      CALL SETCUR(3)
+      NTK=NTK+1
+      IF(NT.EQ.4) CALL SETTRK(4)
+      IF(NPRT(4))
+     *WRITE(NEWBCD,1002) XEND,YEND,ZEND,EN,XP
+1002  FORMAT(' *CAPTUR* NEUTRON CAPTURE   POSITION',3(2X,F8.2),2X,
+     * 'PHOTON ENERGIES',2X,2F8.4)
+C
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CASAL0(K,INT,NFL)
+C
+C *** CASCADE OF ANTI-LAMBDA ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (13-SEP-1987)
+C
+C L0B UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL1(2,1200),PMUL2(2,400),ANORM1(2,60),ANORM2(2,60),
+     $          CECH(10),ANHL(25),IIPA(10,2),B(2)
+      DIMENSION RNDM(2)
+      SAVE PMUL1,ANORM1,PMUL2,ANORM2
+      DATA CECH/0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0./
+      DATA ANHL/1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.97,0.88
+     $         ,0.85,0.81,0.75,0.64,0.64,0.55,0.55,0.45,0.47,0.40
+     $         ,0.39,0.36,0.33,0.10,0.01/
+      DATA IIPA/24,25,14,14,16,23,24,16,16,14,
+     $          14,16,19,24,25,14,16,19,24,23/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(1) ---
+      IF (KGINIT(1) .NE. 0) GO TO 10
+      KGINIT(1)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL1(I,J)=0.0
+      IF (J .LE. 400) PMUL2(I,J)=0.0
+      IF (J .LE. 60) ANORM1(I,J)=0.0
+      IF (J .LE. 60) ANORM2(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR P AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 1 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL1(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM1(1,NT)=ANORM1(1,NT)+PMUL1(1,L)
+    1 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LT.1) NMM1=1
+      NPP1=NP1+2
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL1(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM1(2,NT)=ANORM1(2,NT)+PMUL1(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM1(1,I).GT.0.) ANORM1(1,I)=1./ANORM1(1,I)
+      IF(ANORM1(2,I).GT.0.) ANORM1(2,I)=1./ANORM1(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 9
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM1(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL1(NFL,I),I=1,1200)
+    4 CONTINUE
+C** DO THE SAME FOR ANNIHILATION CHANNELS
+C** FOR P AS TARGET
+C
+    9 L=0
+      DO 5 NP1=2,20
+      NP=NP1-1
+      NM=NP-1
+      DO 5 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 5
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 5
+      PMUL2(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM2(1,NT)=ANORM2(1,NT)+PMUL2(1,L)
+    5 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 6 NP1=1,20
+      NP=NP1-1
+      NM=NP
+      DO 6 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 6
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 6
+      PMUL2(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM2(2,NT)=ANORM2(2,NT)+PMUL2(2,L)
+    6 CONTINUE
+      DO 7 I=1,60
+      IF(ANORM2(1,I).GT.0.) ANORM2(1,I)=1./ANORM2(1,I)
+      IF(ANORM2(2,I).GT.0.) ANORM2(2,I)=1./ANORM2(2,I)
+    7 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,3001)
+      DO 8 NFL=1,2
+      WRITE(NEWBCD,3002) NFL
+      WRITE(NEWBCD,3003) (ANORM2(NFL,I),I=1,60)
+      WRITE(NEWBCD,3003) (PMUL2(NFL,I),I=1,400)
+    8 CONTINUE
+C** CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-ABS(RMASS(19))
+C**  ELASTIC SCATTERING
+      NP=0
+      NM=0
+      NZ=0
+      IPA(1)=19
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      N=0.
+      IF(INT.EQ.2) GOTO 20
+      IPLAB=IFIX(P*2.5)+1
+      IF(IPLAB.GT.10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.42) GOTO 120
+C** INTRODUCE CHARGE AND STRANGENESS EXCHANGE REACTION
+C** LB P --> S0B P, LB P --> S-B N, LB N --> S+B P, LB N --> S0B N
+C** LB P --> P LB, LB P --> P S0B, LB P --> N S-B
+C** LB N --> N LB, LB N --> N S0B, LB N --> P S+B
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IRN=IFIX(RAN/0.2)+1
+      IF(IRN.GT.5) IRN=5
+      IRN=IRN+(NFL-1)*5
+      IPA(1)=IIPA(IRN,1)
+      IPA(2)=IIPA(IRN,2)
+      GOTO 120
+C** ANNIHILATION CHANNELS
+   20 IPLAB=IFIX(P*10.)+1
+      IF(IPLAB.GT.10) IPLAB=IFIX((P-1.)*5.)+11
+      IF(IPLAB.GT.15) IPLAB=IFIX( P-2.    )+16
+      IF(IPLAB.GT.23) IPLAB=IFIX((P-10.)/10.)+24
+      IF(IPLAB.GT.25) IPLAB=25
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.ANHL(IPLAB)) GOTO 19
+      EAB=RS
+      IF (EAB .LE. RMASS(7)+RMASS(10)) GOTO 55
+      GOTO 222
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+   19 IF (EAB .LE. RMASS(7)) GOTO 55
+      ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (30,40),NFL
+C** FOR P AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 31 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL1(1,L)*ANORM1(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   31 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LT.1) NMM1=1
+      NPP1=NP1+2
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL1(2,L)*ANORM1(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   41 CONTINUE
+      GOTO 80
+C** ANNIHILATION CHANNELS
+  222 IPA(1)=0
+      IPA(2)=0
+      ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 221 NT=2,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+  221 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (230,240),NFL
+C** FOR P AS TARGET
+  230 L=0
+      DO 231 NP1=2,20
+      NP=NP1-1
+      NM=NP-1
+      DO 231 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 231
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 231
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL2(1,L)*ANORM2(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 120
+  231 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+  240 L=0
+      DO 241 NP1=1,20
+      NP=NP1-1
+      NM=NP
+      DO 241 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 241
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 241
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL2(2,L)*ANORM2(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 120
+  241 CONTINUE
+      GOTO 80
+   50 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      IF(INT.EQ.1) CALL TWOB(19,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(19,NFL,N)
+      GO TO 9999
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND,ASSUME ELASTIC SCATTERING
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004) RS,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+      IPA(1)=19
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      GOTO 120
+  100 DO 101 I=1,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+      GOTO (102,112),NFL
+  102 NCHT=NP-NM
+      NCHT=NCHT+2
+      IF(NCHT.LE.0) NCHT=1
+      IF(NCHT.GT.4) NCHT=4
+      GOTO(103,104,105,106),NCHT
+  103 IPA(1)=25
+      IPA(2)=14
+      GOTO 120
+  104 IPA(1)=19
+      IPA(2)=14
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) IPA(1)=24
+      IF(RNDM(2).LT.0.5) GOTO 120
+      IPA(1)=25
+      IPA(2)=16
+      GOTO 120
+  105 IPA(1)=19
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) IPA(1)=24
+      IPA(2)=16
+      IF(RNDM(2).LT.0.5) GOTO 120
+      IPA(1)=23
+      IPA(2)=14
+      GOTO 120
+  106 IPA(1)=23
+      IPA(2)=16
+      GOTO 120
+  112 NCHT=NP-NM
+      NCHT=NCHT+3
+      IF(NCHT.LE.0) NCHT=1
+      IF(NCHT.GT.4) NCHT=4
+      GOTO(113,114,115,116),NCHT
+  113 IPA(1)=25
+      IPA(2)=14
+      GOTO 120
+  114 IPA(1)=19
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) IPA(1)=24
+      IPA(2)=14
+      IF(RNDM(2).LT.0.5) GOTO 120
+      IPA(1)=25
+      IPA(2)=16
+      GOTO 120
+  115 IPA(1)=19
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) IPA(1)=24
+      IPA(2)=16
+      IF(RNDM(2).LT.0.5) GOTO 120
+      IPA(1)=23
+      IPA(2)=14
+      GOTO 120
+  116 IPA(1)=23
+      IPA(2)=16
+  120 NT=2
+      IF(IPA(1).NE.0) GOTO 119
+      IF(NZ.EQ.0) GOTO 118
+      IF(NM.EQ.0) GOTO 117
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 118
+  117 IPA(3)=12
+      NZ=NZ-1
+      NT=3
+      GOTO 119
+  118 IF(NM.EQ.0) GOTO 119
+      IPA(3)=13
+      NM=NM-1
+      NT=3
+  119 IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      GOTO 50
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASAL0* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+1003  FORMAT(' *CASAL0* ANTILAMBDA-INDUCED CASCADE,',
+     $ 'AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASAL0* ANTILAMBDA-INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION',
+     $' NOT FOUND  TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASAL0* TABLES FOR MULT. DATA ANTILAMBDA INDUCED ',
+     $ 'REACTION  FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASAL0* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASAL0* ',I3,2X,'PARTICLES, MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASAL0* NO PARTICLES PRODUCED')
+3001  FORMAT(' *CASAL0* TABLES FOR MULT. DATA ANTIPROTON INDUCED ',
+     $ 'ANNIHILATION REACTION  FOR DEFINITION OF NUMBERS SEE FORTRAN',
+     $ ' CODING')
+3002  FORMAT(' *CASAL0* TARGET PARTICLE FLAG',2X,I5)
+3003  FORMAT(1H ,10E12.4)
+C
+ 9999 CONTINUE
+      RETURN
+      END
+      SUBROUTINE CASAOM(K,INT,NFL)
+C
+C *** CASCADE OF OMEGA-  BAR ***
+C *** NVE 17-JAN-1989 CERN GENEVA ***
+C
+C OMEGA- BAR UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT, ASSUME NUCLEAR EXCITATION OCCURS, DEGRADE INPUT PARTICLE
+C IN ENERGY AND NO OTHER PARTICLES ARE PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C
+C *** NOT YET FINISHED ==> TAKE OMEGA- CASCADE INSTEAD ***
+C
+C --- INITIALIZATION INDICATED BY KGINIT(24) ---
+      KGINIT(24)=1
+C
+      IF (NPRT(4)) PRINT 1000
+ 1000 FORMAT(' *CASAOM* NOT WRITTEN YET ==> CASOM CALLED INSTEAD')
+C
+      CALL CASOM(K,INT,NFL)
+C
+ 9999 CONTINUE
+      END
+*-- AUTHOR :
+      SUBROUTINE CASASM(K,INT,NFL)
+C
+C *** CASCADE OF ANTI SIGMA- ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (13-SEP-1987)
+C
+C S-B UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL1(2,1200),PMUL2(2,400),ANORM1(2,60),ANORM2(2,60),
+     $          CECH(10),ANHL(25),IIPA(10,2),B(2)
+      DIMENSION RNDM(2)
+      SAVE PMUL1,ANORM1,PMUL2,ANORM2
+      DATA CECH/0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0./
+      DATA ANHL/1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.97,0.88
+     $         ,0.85,0.81,0.75,0.64,0.64,0.55,0.55,0.45,0.47,0.40
+     $         ,0.39,0.36,0.33,0.10,0.01/
+      DATA IIPA/14,14,14,14,14,19,24,16,14,14,
+     $          25,25,25,25,25,14,14,25,19,24/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(2) ---
+      IF (KGINIT(2) .NE. 0) GO TO 10
+      KGINIT(2)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL1(I,J)=0.0
+      IF (J .LE. 400) PMUL2(I,J)=0.0
+      IF (J .LE. 60) ANORM1(I,J)=0.0
+      IF (J .LE. 60) ANORM2(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR P AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1
+      DO 1 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL1(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM1(1,NT)=ANORM1(1,NT)+PMUL1(1,L)
+    1 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LT.1) NMM1=1
+      NPP1=NP1+1
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL1(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM1(2,NT)=ANORM1(2,NT)+PMUL1(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM1(1,I).GT.0.) ANORM1(1,I)=1./ANORM1(1,I)
+      IF(ANORM1(2,I).GT.0.) ANORM1(2,I)=1./ANORM1(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 9
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM1(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL1(NFL,I),I=1,1200)
+    4 CONTINUE
+C** DO THE SAME FOR ANNIHILATION CHANNELS
+C** FOR P AS TARGET
+C
+    9 L=0
+      DO 5 NP1=3,20
+      NP=NP1-1
+      NM=NP-2
+      DO 5 NZ1=1,20
+      NZ=NZ1-1
+      IF(NM+NZ.EQ.0) GOTO 5
+      L=L+1
+      IF(L.GT.400) GOTO 5
+      NT=NP+NM+NZ
+      IF(NT.LE.2.OR.NT.GT.60) GOTO 5
+      PMUL2(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM2(1,NT)=ANORM2(1,NT)+PMUL2(1,L)
+    5 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 6 NP1=2,20
+      NP=NP1-1
+      NM=NP-1
+      DO 6 NZ1=1,20
+      NZ=NZ1-1
+      IF(NM+NZ.EQ.0) GOTO 6
+      L=L+1
+      IF(L.GT.400) GOTO 6
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 6
+      PMUL2(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM2(2,NT)=ANORM2(2,NT)+PMUL2(2,L)
+    6 CONTINUE
+      DO 7 I=1,60
+      IF(ANORM2(1,I).GT.0.) ANORM2(1,I)=1./ANORM2(1,I)
+      IF(ANORM2(2,I).GT.0.) ANORM2(2,I)=1./ANORM2(2,I)
+    7 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,3001)
+      DO 8 NFL=1,2
+      WRITE(NEWBCD,3002) NFL
+      WRITE(NEWBCD,3003) (ANORM2(NFL,I),I=1,60)
+      WRITE(NEWBCD,3003) (PMUL2(NFL,I),I=1,400)
+    8 CONTINUE
+C** CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-ABS(RMASS(25))
+C**  ELASTIC SCATTERING
+      NP=0
+      NM=0
+      NZ=0
+      IPA(1)=25
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      N=0.
+      IF(INT.EQ.2) GOTO 20
+      IPLAB=IFIX(P*2.5)+1
+      IF(IPLAB.GT.10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.42) GOTO 120
+C** INTRODUCE CHARGE AND STRANGENESS EXCHANGE REACTION
+C** S-B N --> LB P, S-B N --> S0B P,
+C**                                  S-B P --> P S-B
+C** S-B N --> N S-B, S-B N --> P LB, S-B N --> P S0B
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IRN=IFIX(RAN/0.2)+1
+      IF(IRN.GT.5) IRN=5
+      IRN=IRN+(NFL-1)*5
+      IPA(1)=IIPA(IRN,1)
+      IPA(2)=IIPA(IRN,2)
+      GOTO 120
+C** ANNIHILATION CHANNELS
+   20 IPLAB=IFIX(P*10.)+1
+      IF(IPLAB.GT.10) IPLAB=IFIX((P-1.)*5.)+11
+      IF(IPLAB.GT.15) IPLAB=IFIX( P-2.    )+16
+      IF(IPLAB.GT.23) IPLAB=IFIX((P-10.)/10.)+24
+      IF(IPLAB.GT.25) IPLAB=25
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.ANHL(IPLAB)) GOTO 19
+      EAB=RS
+      IF (EAB .LE. RMASS(7)+RMASS(10)) GOTO 55
+      GOTO 222
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+   19 IF (EAB .LE. RMASS(7)) GOTO 55
+      ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (30,40),NFL
+C** FOR P AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1
+      DO 31 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL1(1,L)*ANORM1(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   31 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LT.1) NMM1=1
+      NPP1=NP1+1
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL1(2,L)*ANORM1(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   41 CONTINUE
+      GOTO 80
+C** ANNIHILATION CHANNELS
+  222 IPA(1)=0
+      IPA(2)=0
+      ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 221 NT=2,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+  221 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (230,240),NFL
+C** FOR P AS TARGET
+  230 L=0
+      DO 231 NP1=3,20
+      NP=NP1-1
+      NM=NP-2
+      DO 231 NZ1=1,20
+      NZ=NZ1-1
+      IF(NM+NZ.EQ.0) GOTO 231
+      L=L+1
+      IF(L.GT.400) GOTO 231
+      NT=NP+NM+NZ
+      IF(NT.LE.2.OR.NT.GT.60) GOTO 231
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL2(1,L)*ANORM2(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 120
+  231 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+  240 L=0
+      DO 241 NP1=2,20
+      NP=NP1-1
+      NM=NP-1
+      DO 241 NZ1=1,20
+      NZ=NZ1-1
+      IF(NM+NZ.EQ.0) GOTO 241
+      L=L+1
+      IF(L.GT.400) GOTO 241
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 241
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL2(2,L)*ANORM2(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 120
+  241 CONTINUE
+      GOTO 80
+   50 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      IF(INT.EQ.1) CALL TWOB(25,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(25,NFL,N)
+      GO TO 9999
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND,ASSUME ELASTIC SCATTERING
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004) RS,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+      IPA(1)=25
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      GOTO 120
+  100 DO 101 I=1,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+      GOTO (102,112),NFL
+  102 NCHT=NP-NM
+      NCHT=NCHT+1
+      IF(NCHT.LE.0) NCHT=1
+      IF(NCHT.GT.3) NCHT=3
+      GOTO(103,104,105),NCHT
+  103 IPA(1)=25
+      IPA(2)=14
+      GOTO 120
+  104 IPA(1)=25
+      IPA(2)=16
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) GOTO 120
+      IPA(1)=24
+      IF(RNDM(2).LT.0.5) IPA(1)=19
+      IPA(2)=14
+      GOTO 120
+  105 IPA(1)=24
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) IPA(1)=19
+      IPA(2)=16
+      GOTO 120
+  112 NCHT=NP-NM
+      NCHT=NCHT+2
+      IF(NCHT.LE.0) NCHT=1
+      IF(NCHT.GT.3) NCHT=3
+      GOTO(113,114,115),NCHT
+  113 IPA(1)=25
+      IPA(2)=14
+      GOTO 120
+  114 IPA(1)=24
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) IPA(1)=19
+      IPA(2)=14
+      IF(RNDM(2).LT.0.5) GOTO 120
+      IPA(1)=25
+      IPA(2)=16
+      GOTO 120
+  115 IPA(1)=24
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) IPA(1)=19
+      IPA(2)=16
+  120 NT=2
+      IF(IPA(1).NE.0) GOTO 119
+      IF(NZ.EQ.0) GOTO 118
+      IF(NM.EQ.0) GOTO 117
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 118
+  117 IPA(3)=12
+      NZ=NZ-1
+      NT=3
+      GOTO 119
+  118 IF(NM.EQ.0) GOTO 119
+      IPA(3)=13
+      NM=NM-1
+      NT=3
+  119 IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      GOTO 50
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASASM* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+1003  FORMAT(' *CASASM* ANTISIGMA- -INDUCED CASCADE',
+     $ ' AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASASM* ANTISIGMA- -INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION',
+     $' NOT FOUND  TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASASM* TABLES FOR MULT. DATA ANTISIGMA- INDUCED ',
+     $ 'REACTION  FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASASM* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASASM* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASASM* NO PARTICLES PRODUCED')
+3001  FORMAT(' *CASASM* TABLES FOR MULT. DATA ANTISIGMA- INDUCED ',
+     * 'ANNIHILATION REACTION  FOR DEFINITION OF NUMBERS SEE FORTRAN',
+     * ' CODING')
+3002  FORMAT(' *CASASM* TARGET PARTICLE FLAG',2X,I5)
+3003  FORMAT(1H ,10E12.4)
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CASASP(K,INT,NFL)
+C
+C *** CASCADE OF ANTI SIGMA+ ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (13-SEP-1987)
+C
+C S+B UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL1(2,1200),PMUL2(2,400),ANORM1(2,60),ANORM2(2,60),
+     $          CECH(10),ANHL(25),IIPA(10,2),B(2)
+      DIMENSION RNDM(2)
+      SAVE PMUL1,ANORM1,PMUL2,ANORM2
+      DATA CECH/0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0./
+      DATA ANHL/1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.97,0.88
+     $         ,0.85,0.81,0.75,0.64,0.64,0.55,0.55,0.45,0.47,0.40
+     $         ,0.39,0.36,0.33,0.10,0.01/
+      DATA IIPA/19,24,16,16,14,16,16,16,16,16,
+     $          16,16,19,24,23,23,23,23,23,23/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(3) ---
+      IF (KGINIT(3) .NE. 0) GO TO 10
+      KGINIT(3)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL1(I,J)=0.0
+      IF (J .LE. 400) PMUL2(I,J)=0.0
+      IF (J .LE. 60) ANORM1(I,J)=0.0
+      IF (J .LE. 60) ANORM2(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR P AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 1 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL1(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM1(1,NT)=ANORM1(1,NT)+PMUL1(1,L)
+    1 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1
+      IF(NMM1.LT.1) NMM1=1
+      NPP1=NP1+2
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL1(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM1(2,NT)=ANORM1(2,NT)+PMUL1(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM1(1,I).GT.0.) ANORM1(1,I)=1./ANORM1(1,I)
+      IF(ANORM1(2,I).GT.0.) ANORM1(2,I)=1./ANORM1(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 9
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM1(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL1(NFL,I),I=1,1200)
+    4 CONTINUE
+C** DO THE SAME FOR ANNIHILATION CHANNELS
+C** FOR P AS TARGET
+C
+    9 L=0
+      DO 5 NP1=2,20
+      NP=NP1-1
+      NM=NP
+      DO 5 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 5
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 5
+      PMUL2(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM2(1,NT)=ANORM2(1,NT)+PMUL2(1,L)
+    5 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 6 NP1=1,20
+      NP=NP1-1
+      NM=NP+1
+      DO 6 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 6
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 6
+      PMUL2(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM2(2,NT)=ANORM2(2,NT)+PMUL2(2,L)
+    6 CONTINUE
+      DO 7 I=1,60
+      IF(ANORM2(1,I).GT.0.) ANORM2(1,I)=1./ANORM2(1,I)
+      IF(ANORM2(2,I).GT.0.) ANORM2(2,I)=1./ANORM2(2,I)
+    7 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,3001)
+      DO 8 NFL=1,2
+      WRITE(NEWBCD,3002) NFL
+      WRITE(NEWBCD,3003) (ANORM2(NFL,I),I=1,60)
+      WRITE(NEWBCD,3003) (PMUL2(NFL,I),I=1,400)
+    8 CONTINUE
+C** CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-ABS(RMASS(23))
+C**  ELASTIC SCATTERING
+      NP=0
+      NM=0
+      NZ=0
+      IPA(1)=23
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      N=0.
+      IF(INT.EQ.2) GOTO 20
+      IPLAB=IFIX(P*2.5)+1
+      IF(IPLAB.GT.10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.42) GOTO 120
+C** INTRODUCE CHARGE AND STRANGENESS EXCHANGE REACTION
+C** S+B P --> LB N, S+B P --> S0B N,
+C** S+B P --> N LB, S+B P --> N S0B, S+B P --> P S+B
+C** S+B N --> N S+B
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IRN=IFIX(RAN/0.2)+1
+      IF(IRN.GT.5) IRN=5
+      IRN=IRN+(NFL-1)*5
+      IPA(1)=IIPA(IRN,1)
+      IPA(2)=IIPA(IRN,2)
+      GOTO 120
+C** ANNIHILATION CHANNELS
+   20 IPLAB=IFIX(P*10.)+1
+      IF(IPLAB.GT.10) IPLAB=IFIX((P-1.)*5.)+11
+      IF(IPLAB.GT.15) IPLAB=IFIX( P-2.    )+16
+      IF(IPLAB.GT.23) IPLAB=IFIX((P-10.)/10.)+24
+      IF(IPLAB.GT.25) IPLAB=25
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.ANHL(IPLAB)) GOTO 19
+      EAB=RS
+      IF (EAB .LE. RMASS(7)+RMASS(10)) GOTO 55
+      GOTO 222
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+   19 IF (EAB .LE. RMASS(7)) GOTO 55
+      ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (30,40),NFL
+C** FOR P AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 31 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL1(1,L)*ANORM1(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   31 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1
+      IF(NMM1.LT.1) NMM1=1
+      NPP1=NP1+2
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL1(2,L)*ANORM1(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   41 CONTINUE
+      GOTO 80
+C** ANNIHILATION CHANNELS
+  222 IPA(1)=0
+      IPA(2)=0
+      ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 221 NT=2,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+  221 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (230,240),NFL
+C** FOR P AS TARGET
+  230 L=0
+      DO 231 NP1=2,20
+      NP=NP1-1
+      NM=NP
+      DO 231 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 231
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 231
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL2(1,L)*ANORM2(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 120
+  231 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+  240 L=0
+      DO 241 NP1=1,20
+      NP=NP1-1
+      NM=NP+1
+      DO 241 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 241
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 241
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL2(2,L)*ANORM2(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 120
+  241 CONTINUE
+      GOTO 80
+   50 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      IF(INT.EQ.1) CALL TWOB(23,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(23,NFL,N)
+      GO TO 9999
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND,ASSUME ELASTIC SCATTERING
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004) RS,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+      IPA(1)=23
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      GOTO 120
+  100 DO 101 I=1,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+      GOTO (102,112),NFL
+  102 NCHT=NP-NM
+      NCHT=NCHT+2
+      IF(NCHT.LE.0) NCHT=1
+      IF(NCHT.GT.3) NCHT=3
+      GOTO(103,104,105),NCHT
+  103 IPA(1)=24
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) IPA(1)=19
+      IPA(2)=14
+      GOTO 120
+  104 IPA(1)=23
+      IPA(2)=14
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) GOTO 120
+      IPA(1)=24
+      IF(RNDM(2).LT.0.5) IPA(1)=19
+      IPA(2)=16
+      GOTO 120
+  105 IPA(1)=23
+      IPA(2)=16
+      GOTO 120
+  112 NCHT=NP-NM
+      NCHT=NCHT+3
+      IF(NCHT.LE.0) NCHT=1
+      IF(NCHT.GT.3) NCHT=3
+      GOTO(113,114,115),NCHT
+  113 IPA(1)=24
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) IPA(1)=19
+      IPA(2)=14
+      GOTO 120
+  114 IPA(1)=24
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) IPA(1)=19
+      IPA(2)=16
+      IF(RNDM(2).LT.0.5) GOTO 120
+      IPA(1)=23
+      IPA(2)=14
+      GOTO 120
+  115 IPA(1)=23
+      IPA(2)=16
+  120 NT=2
+      IF(IPA(1).NE.0) GOTO 119
+      IF(NZ.EQ.0) GOTO 118
+      IF(NM.EQ.0) GOTO 117
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 118
+  117 IPA(3)=12
+      NZ=NZ-1
+      NT=3
+      GOTO 119
+  118 IF(NM.EQ.0) GOTO 119
+      IPA(3)=13
+      NM=NM-1
+      NT=3
+  119 IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      GOTO 50
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASASP* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+1003  FORMAT(' *CASASP* ANTISIGMA+ -INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASASP* ANTISIGMA+ -INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION',
+     $' NOT FOUND  TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASASP* TABLES FOR MULT. DATA ANTISIGMA+ INDUCED ',
+     $ 'REACTION  FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASASP* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASASP* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASASP* NO PARTICLES PRODUCED')
+3001  FORMAT(' *CASASP* TABLES FOR MULT. DATA ANTIPROTON INDUCED ',
+     $ 'ANNIHILATION REACTION  FOR DEFINITION OF NUMBERS SEE FORTRAN',
+     $ ' CODING')
+3002  FORMAT(' *CASASP* TARGET PARTICLE FLAG',2X,I5)
+3003  FORMAT(1H ,10E12.4)
+C
+ 9999 CONTINUE
+      RETURN
+      END
+      SUBROUTINE CASAXM(K,INT,NFL)
+C
+C *** CASCADE OF XI- BAR ***
+C *** NVE 17-JAN-1989 CERN GENEVA ***
+C
+C XI- BAR UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT, ASSUME NUCLEAR EXCITATION OCCURS, DEGRADE INPUT PARTICLE
+C IN ENERGY AND NO OTHER PARTICLES ARE PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C
+C *** NOT YET FINISHED ==> TAKE XI- CASCADE INSTEAD ***
+C
+C --- INITIALIZATION INDICATED BY KGINIT(22) ---
+      KGINIT(22)=1
+C
+      IF (NPRT(4)) PRINT 1000
+ 1000 FORMAT(' *CASAXM* NOT WRITTEN YET ==> CASXM CALLED INSTEAD')
+C
+      CALL CASXM(K,INT,NFL)
+C
+ 9999 CONTINUE
+      END
+      SUBROUTINE CASAX0(K,INT,NFL)
+C
+C *** CASCADE OF XI0 BAR ***
+C *** NVE 17-JAN-1989 CERN GENEVA ***
+C
+C XI0 BAR UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT, ASSUME NUCLEAR EXCITATION OCCURS, DEGRADE INPUT PARTICLE
+C IN ENERGY AND NO OTHER PARTICLES ARE PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C
+C *** NOT YET FINISHED ==> TAKE XI0 CASCADE INSTEAD ***
+C
+C --- INITIALIZATION INDICATED BY KGINIT(23) ---
+      KGINIT(23)=1
+C
+      IF (NPRT(4)) PRINT 1000
+ 1000 FORMAT(' *CASAX0* NOT WRITTEN YET ==> CASX0 CALLED INSTEAD')
+C
+      CALL CASX0(K,INT,NFL)
+C
+ 9999 CONTINUE
+      END
+*-- AUTHOR :
+      SUBROUTINE CASFRG(NUCFLG,INT,NFL)
+C
+C *** CASCADE OF HEAVY FRAGMENTS ***
+C *** NVE 11-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (02-DEC-1986)
+C
+C --- NUCFLG IS A FLAG TO DENOTE THE NUCREC ACTION ---
+C NUCFLG = 0 ==> NO ACTION TAKEN BY NUCREC
+C          1 ==> ACTION TAKEN BY NUCREC
+      NUCFLG=1
+      CALL NUCREC(NOPT,2)
+      IF (NOPT .NE. 0) GO TO 9999
+C
+      NUCFLG=0
+      CALL COSCAT
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CASKM(K,INT,NFL)
+C
+C *** CASCADE OF K- ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (13-SEP-1987)
+C
+C K-  UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL(2,1200),ANORM(2,60),CECH(10),CNK0(20),PIY1(4),
+     $          PIY2(3),IPIY1(2,4),IPIY2(2,3),IPIY3(2,3),B(2)
+      DIMENSION RNDM(1)
+      SAVE PMUL,ANORM
+      DATA CECH/1.,1.,1.,0.70,0.60,0.55,0.35,0.25,0.18,0.15/
+      DATA CNK0/0.17,0.18,0.17,0.24,0.26,0.20,0.22,0.21,0.34,0.45
+     $         ,0.58,0.55,0.36,0.29,0.29,0.32,0.32,0.33,0.33,0.33/
+      DATA PIY1/0.67,0.78,0.89,1.00/,PIY2/0.68,0.84,1.00/
+      DATA IPIY1/8,18,9,20,8,21,7,22/
+      DATA IPIY2/9,18,9,21,8,22/,IPIY3/7,18,8,20,7,21/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(4) ---
+      IF (KGINIT(4) .NE. 0) GO TO 10
+      KGINIT(4)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL(I,J)=0.0
+      IF (J .LE. 60) ANORM(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR P AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 1 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
+    1 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NPP1=NP1+2
+      DO 2 NM1=NP1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM(1,I).GT.0.) ANORM(1,I)=1./ANORM(1,I)
+      IF(ANORM(2,I).GT.0.) ANORM(2,I)=1./ANORM(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
+    4 CONTINUE
+C**  CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-RMASS(13)
+C
+C**  ELASTIC SCATTERING
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=13
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      IF(INT.EQ.2) GOTO 20
+      GOTO 100
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+   20 IPLAB=IFIX(P*5.)+1
+      IF(IPLAB.GT.10) GOTO 22
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.CECH(IPLAB)) GOTO 19
+      IF (EAB .LT. RMASS(7)) GOTO 55
+      GOTO 22
+C** CHARGE EXCHANGE REACTION (IS INCLUDED IN INELASTIC CROSS SECTION)
+   19 IPLAB=IFIX(P*10.)+1
+      IF(IPLAB.GT.20) IPLAB=20
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CNK0(IPLAB)) GOTO 24
+      IF(NFL.EQ.1) GOTO 23
+C** FOR K- N REACTION NO K N STRANGENESS EXCHANGE POSSIBLE
+      INT=1
+      IPA(1)=13
+      IPA(2)=16
+      GOTO 100
+   23 INT=1
+      IPA(1)=12
+      IPA(2)=16
+      GOTO 100
+C** P L, P S REACTIONS
+   24 CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IF(RAN.LT.0.25) GOTO 25
+      IF(RAN.LT.0.50) GOTO 26
+      IF(RAN.LT.0.75) GOTO 27
+C** K- P --> PI0 L OR K- N --> PI- L
+      IPA(1)=8
+      IF(NFL.EQ.2) IPA(1)=9
+      IPA(2)=18
+      GOTO 100
+C** K- P --> PI- S+
+   25 IPA(1)=9
+      IPA(2)=20
+      IF(NFL.EQ.1) GOTO 100
+      IPA(1)=13
+      IPA(2)=16
+      GOTO 100
+C** K- P --> PI0 S0  OR K- N --> PI- S0
+   26 IPA(1)=8
+      IF(NFL.EQ.2) IPA(1)=9
+      IPA(2)=21
+      GOTO 100
+C** K- P --> PI+ S-  OR K- N --> PI0 S-
+   27 IPA(1)=7
+      IF(NFL.EQ.2) IPA(1)=8
+      IPA(2)=22
+      GOTO 100
+C
+   22 ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (30,40),NFL
+C** FOR P AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 31 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 50
+   31 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NPP1=NP1+2
+      DO 41 NM1=NP1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 50
+   41 CONTINUE
+      GOTO 80
+   50 GOTO (60,65),NFL
+   60 IF(NP.EQ.NM) GOTO 61
+      IF(NP.EQ.1+NM) GOTO 63
+      IPA(1)=12
+      IPA(2)=14
+      GOTO 90
+   61 CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.75) GOTO 62
+      IPA(1)=12
+      IPA(2)=16
+      GOTO 90
+   62 IPA(1)=13
+      IPA(2)=14
+      GOTO 90
+   63 IPA(1)=13
+      IPA(2)=16
+      GOTO 90
+   65 IF(NP.EQ.-1+NM) GOTO 66
+      IF(NP.EQ.NM) GOTO 68
+      IPA(1)=12
+      IPA(2)=16
+      GOTO 90
+   66 CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.50) GOTO 67
+      IPA(1)=12
+      IPA(2)=16
+      GOTO 90
+   67 IPA(1)=13
+      IPA(2)=14
+      GOTO 90
+   68 IPA(1)=13
+      IPA(2)=16
+C**  PI Y PRODUCTION INSTEAD OF K N
+   90 CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 100
+      IF(IPA(1).EQ.13.AND.IPA(2).EQ.16) GOTO 95
+      IF(IPA(1).EQ.11.AND.IPA(2).EQ.14) GOTO 95
+      IF(IPA(1).EQ.12.AND.IPA(2).EQ.14) GOTO 95
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      DO 91 I=1,4
+      IF(RAN.LT.PIY1(I)) GOTO 92
+   91 CONTINUE
+      GOTO 100
+   92 IPA(1)=IPIY1(1,I)
+      IPA(2)=IPIY1(2,I)
+      GOTO 100
+   95 CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      DO 96 I=1,3
+      IF(RAN.LT.PIY2(I)) GOTO 97
+   96 CONTINUE
+      GOTO 100
+   97 IF(IPA(2).EQ.14) GOTO 98
+      IPA(1)=IPIY2(1,I)
+      IPA(2)=IPIY2(2,I)
+      GOTO 100
+   98 IPA(1)=IPIY3(1,I)
+      IPA(2)=IPIY3(2,I)
+      GOTO 100
+   70 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      CALL STPAIR
+      IF(INT.EQ.1) CALL TWOB(13,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(13,NFL,N)
+      GO TO 9999
+C** NUCLEAR EXCITATION
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004) RS,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=13
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+  100 DO 101 I=3,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+  120 NT=2
+      IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      DO 132 I=1,NT
+      IF(IPA(I).NE.12) GOTO 132
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 132
+      IPA(I)=11
+  132 CONTINUE
+      GOTO 70
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASKM* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+1003  FORMAT(' *CASKM* KAON- -INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASKM* KAON- -INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION NOT FOUND',
+     $ ' TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASKM* TABLES FOR MULT. DATA KAON-  INDUCED REACTION',
+     $ ' FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASKM* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASKM* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASKM* NO PARTICLES PRODUCED')
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CASKP(K,INT,NFL)
+C
+C *** CASCADE OF K+ ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (13-SEP-1987)
+C
+C K+  UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL(2,1200),ANORM(2,60),SUPP(10),CECH(10),B(2)
+      DIMENSION RNDM(1)
+      SAVE PMUL,ANORM
+      DATA SUPP/0.,0.4,0.55,0.65,0.75,0.82,0.86,0.90,0.94,0.98/
+      DATA CECH/0.33,0.27,0.29,0.31,0.27,0.18,0.13,0.10,0.09,0.07/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(5) ---
+      IF (KGINIT(5) .NE. 0) GO TO 10
+      KGINIT(5)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL(I,J)=0.0
+      IF (J .LE. 60) ANORM(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR P AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      DO 1 NM1=NMM1,NP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
+    1 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM(1,I).GT.0.) ANORM(1,I)=1./ANORM(1,I)
+      IF(ANORM(2,I).GT.0.) ANORM(2,I)=1./ANORM(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
+    4 CONTINUE
+C**  CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-RMASS(10)
+C
+C**  ELASTIC SCATTERING
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=10
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      IF(INT.EQ.2) GOTO 20
+C**  FOR K+ N REACTIONS CHANGE SOME OF THE ELASTIC CROSS SECTION
+C**  TO K+ N --> K0 P
+      IF(NFL.EQ.1) GOTO 100
+      IPLAB=IFIX(P   *5.)+1
+      IF(IPLAB.GT.10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.42) GOTO 100
+      IPA(1)=11
+      IPA(2)=14
+      GOTO 100
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+  20  IF (EAB .LE. RMASS(7)) GOTO 55
+C**  SUPPRESSION OF HIGH MULTIPLICITY EVENTS AT LOW MOMENTUM
+      IEAB=IFIX(EAB*5.)+1
+      IF(IEAB.GT.10) GOTO 22
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SUPP(IEAB)) GOTO 22
+      N=1.
+      GOTO (23,24),NFL
+ 23   CONTINUE
+      TEST=-(1+B(1))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      W0=EXP(TEST)
+      WP=EXP(TEST)
+      WP=WP*2.0
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF(RAN.LT.W0/(W0+WP)) GOTO 50
+      NP=1
+      NM=0
+      NZ=0
+      GOTO 50
+ 24   CONTINUE
+      TEST=-(1+B(2))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      W0=EXP(TEST)
+      WP=EXP(TEST)
+      TEST=-(-1+B(2))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      WM=EXP(TEST)
+      WT=W0+WP+WM
+      WP=W0+WP
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF(RAN.LT.W0/WT) GOTO 50
+      NP=1
+      NM=0
+      NZ=0
+      IF(RAN.LT.WP/WT) GOTO 50
+      NP=0
+      NM=1
+      NZ=0
+      GOTO 50
+C
+   22 ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (30,40),NFL
+C** FOR P AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      DO 31 NM1=NMM1,NP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 50
+   31 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 50
+   41 CONTINUE
+      GOTO 80
+   50 GOTO (60,65),NFL
+   60 IF(NP.EQ.1+NM) GOTO 61
+      IF(NP.EQ.2+NM) GOTO 63
+      IPA(1)=10
+      IPA(2)=14
+      GOTO 100
+   61 CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 62
+      IPA(1)=10
+      IPA(2)=16
+      GOTO 100
+   62 IPA(1)=11
+      IPA(2)=14
+      GOTO 100
+   63 IPA(1)=11
+      IPA(2)=16
+      GOTO 100
+   65 IF(NP.EQ.NM) GOTO 66
+      IF(NP.EQ.1+NM) GOTO 68
+      IPA(1)=10
+      IPA(2)=14
+      GOTO 100
+   66 CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.25) GOTO 67
+      IPA(1)=10
+      IPA(2)=16
+      GOTO 100
+   67 IPA(1)=11
+      IPA(2)=14
+      GOTO 100
+   68 IPA(1)=11
+      IPA(2)=16
+      GOTO 100
+   70 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      CALL STPAIR
+      IF(INT.EQ.1) CALL TWOB(10,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(10,NFL,N)
+      GO TO 9999
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004) RS,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=10
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+  100 DO 101 I=3,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+  120 NT=2
+      IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      DO 132 I=1,NT
+      IF(IPA(I).NE.11) GOTO 132
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 132
+      IPA(I)=12
+  132 CONTINUE
+      GOTO 70
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASKP* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+1003  FORMAT(' *CASKP* KAON+ -INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASKP* KAON+ -INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION NOT FOUND',
+     $ 'TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASKP* TABLES FOR MULT. DATA KAON+  INDUCED REACTION',
+     $ ' FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASKP* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASKP* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASKP* NO PARTICLES PRODUCED')
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CASK0(K,INT,NFL)
+C
+C *** CASCADE OF K0 ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (13-SEP-1987)
+C
+C K0  UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL(2,1200),ANORM(2,60),SUPP(10),CECH(10),B(2)
+      DIMENSION RNDM(1)
+      SAVE PMUL,ANORM
+      DATA SUPP/0.,0.4,0.55,0.65,0.75,0.82,0.86,0.90,0.94,0.98/
+      DATA CECH/0.33,0.27,0.29,0.31,0.27,0.18,0.13,0.10,0.09,0.07/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(6) ---
+      IF (KGINIT(6) .NE. 0) GO TO 10
+      KGINIT(6)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL(I,J)=0.0
+      IF (J .LE. 60) ANORM(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR P AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 1 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
+    1 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      DO 2 NM1=NMM1,NP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM(1,I).GT.0.) ANORM(1,I)=1./ANORM(1,I)
+      IF(ANORM(2,I).GT.0.) ANORM(2,I)=1./ANORM(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
+    4 CONTINUE
+C**  CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-RMASS(11)
+C
+C**  ELASTIC SCATTERING
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=11
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      IF(INT.EQ.2) GOTO 20
+C**  FOR K0 P REACTIONS CHANGE SOME OF THE ELASTIC CROSS SECTION
+C**  TO K0 P --> K+ N
+      IF(NFL.EQ.2) GOTO 100
+      IPLAB=IFIX(P   *5.)+1
+      IF(IPLAB.GT.10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.42) GOTO 100
+      IPA(1)=10
+      IPA(2)=16
+      GOTO 100
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+  20  IF (EAB .LE. RMASS(7)) GOTO 55
+C**  SUPPRESSION OF HIGH MULTIPLICITY EVENTS AT LOW MOMENTUM
+      IEAB=IFIX(EAB*5.)+1
+      IF(IEAB.GT.10) GOTO 22
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SUPP(IEAB)) GOTO 22
+      N=1.
+      GOTO (24,23),NFL
+ 23   CONTINUE
+      TEST=-(1+B(1))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      W0=EXP(TEST)
+      TEST=-(-1+B(1))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      WM=EXP(TEST)
+      W0=W0/2.0
+      WM=WM*1.5
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF(RAN.LT.W0/(W0+WM)) GOTO 50
+      NP=0
+      NM=1
+      NZ=0
+      GOTO 50
+ 24   CONTINUE
+      TEST=-(1+B(2))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      W0=EXP(TEST)
+      WP=EXP(TEST)
+      TEST=-(-1+B(2))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      WM=EXP(TEST)
+      WT=W0+WP+WM
+      WP=W0+WP
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF(RAN.LT.W0/WT) GOTO 50
+      NP=1
+      NM=0
+      NZ=0
+      IF(RAN.LT.WP/WT) GOTO 50
+      NP=0
+      NM=1
+      NZ=0
+      GOTO 50
+C
+   22 ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (30,40),NFL
+C** FOR P AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 31 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 50
+   31 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      DO 41 NM1=NMM1,NP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 50
+   41 CONTINUE
+      GOTO 80
+   50 GOTO (65,60),NFL
+   60 IF(NP.EQ.1+NM) GOTO 61
+      IF(NP.EQ.2+NM) GOTO 63
+      IPA(1)=11
+      IPA(2)=16
+      GOTO 100
+   61 CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 62
+      IPA(1)=11
+      IPA(2)=14
+      GOTO 100
+   62 IPA(1)=10
+      IPA(2)=16
+      GOTO 100
+   63 IPA(1)=10
+      IPA(2)=14
+      GOTO 100
+   65 IF(NP.EQ.NM) GOTO 66
+      IF(NP.EQ.1+NM) GOTO 68
+      IPA(1)=11
+      IPA(2)=16
+      GOTO 100
+   66 CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.25) GOTO 67
+      IPA(1)=11
+      IPA(2)=14
+      GOTO 100
+   67 IPA(1)=10
+      IPA(2)=16
+      GOTO 100
+   68 IPA(1)=11
+      IPA(2)=16
+      GOTO 100
+   70 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      CALL STPAIR
+      IF(INT.EQ.1) CALL TWOB(11,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(11,NFL,N)
+      GO TO 9999
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004) RS,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=11
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+  100 DO 101 I=3,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+  120 NT=2
+      IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      DO 132 I=1,NT
+      IF(IPA(I).NE.11) GOTO 132
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 132
+      IPA(I)=12
+  132 CONTINUE
+      GOTO 70
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASK0* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+1003  FORMAT(' *CASK0* K0 -INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASK0* K0 -INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION NOT FOUND',
+     $ ' TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASK0* TABLES FOR MULT. DATA K0  INDUCED REACTION',
+     $ ' FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASK0* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASK0* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASK0* NO PARTICLES PRODUCED')
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CASK0B(K,INT,NFL)
+C
+C *** CASCADE OF ANTI K0 ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (13-SEP-1987)
+C
+C K0B UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL(2,1200),ANORM(2,60),CECH(10),CNK0(20),PIY1(4),
+     $          PIY2(3),IPIY1(2,4),IPIY2(2,3),IPIY3(2,3),B(2)
+      DIMENSION RNDM(1)
+      SAVE PMUL,ANORM
+      DATA CECH/1.,1.,1.,0.70,0.60,0.55,0.35,0.25,0.18,0.15/
+      DATA CNK0/0.17,0.18,0.17,0.24,0.26,0.20,0.22,0.21,0.34,0.45
+     $         ,0.58,0.55,0.36,0.29,0.29,0.32,0.32,0.33,0.33,0.33/
+      DATA PIY1/0.67,0.78,0.89,1.00/,PIY2/0.68,0.84,1.00/
+      DATA IPIY1/8,18,9,20,8,21,7,22/
+      DATA IPIY2/9,18,9,21,8,22/,IPIY3/7,18,8,20,7,21/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(7) ---
+      IF (KGINIT(7) .NE. 0) GO TO 10
+      KGINIT(7)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL(I,J)=0.0
+      IF (J .LE. 60) ANORM(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR P AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      DO 1 NM1=NMM1,NP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
+    1 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LT.1) NMM1=1
+      NPP1=NP1+1
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM(1,I).GT.0.) ANORM(1,I)=1./ANORM(1,I)
+      IF(ANORM(2,I).GT.0.) ANORM(2,I)=1./ANORM(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
+    4 CONTINUE
+C**  CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-ABS(RMASS(12))
+C
+C**  ELASTIC SCATTERING
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=12
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      IF(INT.EQ.2) GOTO 20
+      GOTO 100
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+   20 IPLAB=IFIX(P*5.)+1
+      IF(IPLAB.GT.10) GOTO 22
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.CECH(IPLAB)) GOTO 19
+      IF (EAB .LT. RMASS(7)) GOTO 55
+      GOTO 22
+C** CHARGE EXCHANGE REACTION (IS INCLUDED IN INELASTIC CROSS SECTION)
+   19 IPLAB=IFIX(P*10.)+1
+      IF(IPLAB.GT.20) IPLAB=20
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CNK0(IPLAB)) GOTO 24
+      IF(NFL.EQ.2) GOTO 23
+C** FOR K0B P REACTION NO K N STRANGENESS EXCHANGE POSSIBLE
+      INT=1
+      IPA(1)=12
+      IPA(2)=14
+      GOTO 100
+   23 INT=1
+      IPA(1)=13
+      IPA(2)=14
+      GOTO 100
+C** P L, P S REACTIONS
+   24 CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IF(RAN.LT.0.25) GOTO 25
+      IF(RAN.LT.0.50) GOTO 26
+      IF(RAN.LT.0.75) GOTO 27
+C** K0B P --> PI+ L OR K0B N --> PI0 L
+      IPA(1)=7
+      IF(NFL.EQ.2) IPA(1)=8
+      IPA(2)=18
+      GOTO 100
+C** K0B N --> PI- S+
+   25 IPA(1)=9
+      IPA(2)=20
+      IF(NFL.EQ.2) GOTO 100
+      IPA(1)=12
+      IPA(2)=14
+      GOTO 100
+C** K0B P --> PI+ S0  OR K0B N --> PI0 S0
+   26 IPA(1)=7
+      IF(NFL.EQ.2) IPA(1)=8
+      IPA(2)=21
+      GOTO 100
+C** K0B N --> PI+ S-
+   27 IPA(1)=7
+      IPA(2)=22
+      IF(NFL.EQ.2) GOTO 100
+      IPA(1)=12
+      IPA(2)=14
+      GOTO 100
+C
+   22 ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (30,40),NFL
+C** FOR P AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      DO 31 NM1=NMM1,NP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 50
+   31 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LT.1) NMM1=1
+      NPP1=NP1+1
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 50
+   41 CONTINUE
+      GOTO 80
+   50 GOTO (65,60),NFL
+   60 IF(NP.EQ.NM) GOTO 61
+      IF(NP.EQ.1+NM) GOTO 63
+      IPA(1)=12
+      IPA(2)=14
+      GOTO 90
+   61 CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.75) GOTO 62
+      IPA(1)=13
+      IPA(2)=14
+      GOTO 90
+   62 IPA(1)=13
+      IPA(2)=14
+      GOTO 90
+   63 IPA(1)=13
+      IPA(2)=16
+      GOTO 90
+   65 IF(NP.EQ.1+NM) GOTO 66
+      IF(NP.EQ.NM) GOTO 68
+      IPA(1)=13
+      IPA(2)=16
+      GOTO 90
+   66 CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.50) GOTO 67
+      IPA(1)=12
+      IPA(2)=16
+      GOTO 90
+   67 IPA(1)=13
+      IPA(2)=14
+      GOTO 90
+   68 IPA(1)=12
+      IPA(2)=14
+C**  PI Y PRODUCTION INSTEAD OF K N
+   90 CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 100
+      IF(IPA(1).EQ.13.AND.IPA(2).EQ.16) GOTO 95
+      IF(IPA(1).EQ.11.AND.IPA(2).EQ.14) GOTO 95
+      IF(IPA(1).EQ.12.AND.IPA(2).EQ.14) GOTO 95
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      DO 91 I=1,4
+      IF(RAN.LT.PIY1(I)) GOTO 92
+   91 CONTINUE
+      GOTO 100
+   92 IPA(1)=IPIY1(1,I)
+      IPA(2)=IPIY1(2,I)
+      GOTO 100
+   95 CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      DO 96 I=1,3
+      IF(RAN.LT.PIY2(I)) GOTO 97
+   96 CONTINUE
+      GOTO 100
+   97 IF(IPA(2).EQ.14) GOTO 98
+      IPA(1)=IPIY2(1,I)
+      IPA(2)=IPIY2(2,I)
+      GOTO 100
+   98 IPA(1)=IPIY3(1,I)
+      IPA(2)=IPIY3(2,I)
+      GOTO 100
+   70 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      CALL STPAIR
+      IF(INT.EQ.1) CALL TWOB(12,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(12,NFL,N)
+      GO TO 9999
+C** NUCLEAR EXCITATION
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004) RS,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=12
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+  100 DO 101 I=3,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+  120 NT=2
+      IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      DO 132 I=1,NT
+      IF(IPA(I).NE.12) GOTO 132
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 132
+      IPA(I)=11
+  132 CONTINUE
+      GOTO 70
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASK0B* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+1003  FORMAT(' *CASK0B* K0B -INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASK0B* K0B -INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION NOT FOUND',
+     $ ' TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASK0B* TABLES FOR MULT. DATA K0B  INDUCED REACTION',
+     $ ' FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASK0B* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASK0B* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASK0B* NO PARTICLES PRODUCED')
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CASL0(K,INT,NFL)
+C
+C *** CASCADE OF LAMBDA ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (13-SEP-1987)
+C
+C L0  UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL(2,1200),ANORM(2,60),CECH(10),IIPA(10,2),B(2)
+      DIMENSION RNDM(2)
+      SAVE PMUL,ANORM
+      DATA CECH/0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0./
+      DATA IIPA/20,21,14,14,16,21,22,16,16,14,
+     *          16,14,18,21,20,16,14,18,21,22/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(8) ---
+      IF (KGINIT(8) .NE. 0) GO TO 10
+      KGINIT(8)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL(I,J)=0.0
+      IF (J .LE. 60) ANORM(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR N AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.0) NMM1=1
+      NPP1=NP1+2
+      DO 1 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
+    1 CONTINUE
+C** FOR P AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM(1,I).GT.0.) ANORM(1,I)=1./ANORM(1,I)
+      IF(ANORM(2,I).GT.0.) ANORM(2,I)=1./ANORM(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
+    4 CONTINUE
+C**  CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-RMASS(18)
+C**  ELASTIC SCATTERING
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=18
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      IF(INT.EQ.2) GOTO 20
+C** INTRODUCE CHARGE AND STRANGENESS EXCHANGE REACTIONS
+C** LP --> S+N, LP --> S0 P , LN --> S0 N , LN --> S- P
+C** LP --> P L, LP --> P S0 , LP --> N S+
+C** LN --> N L, LN --> N S0 , LN --> P S-
+      IPLAB=IFIX(P*2.5)+1
+      IF(IPLAB.GT.10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.42) GOTO 120
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IRN=IFIX(RAN/0.2)+1
+      IF(IRN.GT.5) IRN=5
+      IRN=IRN+(NFL-1)*5
+      IPA(1)=IIPA(IRN,1)
+      IPA(2)=IIPA(IRN,2)
+      GOTO 120
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+  20  IF (EAB .LE. RMASS(7)) GOTO 55
+      ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-MP-MSM
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (40,30),NFL
+C** FOR N AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.0) NMM1=1
+      NPP1=NP1+2
+      DO 31 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   31 CONTINUE
+      GOTO 80
+C** FOR P AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   41 CONTINUE
+      GOTO 80
+   50 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      IF(INT.EQ.1) CALL TWOB(18,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(18,NFL,N)
+      GO TO 9999
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004) RS,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+      IPA(1)=18
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      GOTO 120
+  100 DO 101 I=1,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+      GOTO (112,102),NFL
+  102 NCHT=NP-NM
+      NCHT=NCHT+3
+      IF(NCHT.LE.0) NCHT=1
+      IF(NCHT.GT.4) NCHT=4
+      GOTO (103,104,105,106),NCHT
+  103 IPA(1)=20
+      IPA(2)=14
+      GOTO 120
+  104 IPA(1)=18
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) IPA(1)=21
+      IPA(2)=14
+      IF(RNDM(2).LT.0.5) GOTO 120
+      IPA(1)=20
+      IPA(2)=16
+      GOTO 120
+  105 IPA(1)=18
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) IPA(1)=21
+      IPA(2)=16
+      IF(RNDM(2).LT.0.5) GOTO 120
+      IPA(1)=22
+      IPA(2)=14
+      GOTO 120
+  106 IPA(1)=22
+      IPA(2)=16
+      GOTO 120
+  112 NCHT=NP-NM
+      NCHT=NCHT+2
+      IF(NCHT.LE.0) NCHT=1
+      IF(NCHT.GT.4) NCHT=4
+      GOTO (113,114,115,116),NCHT
+  113 IPA(1)=20
+      IPA(2)=14
+      GOTO 120
+  114 IPA(1)=18
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) IPA(1)=21
+      IPA(2)=14
+      IF(RNDM(2).LT.0.5) GOTO 120
+      IPA(1)=20
+      IPA(2)=16
+      GOTO 120
+  115 IPA(1)=18
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) IPA(1)=21
+      IPA(2)=16
+      IF(RNDM(2).LT.0.5) GOTO 120
+      IPA(1)=22
+      IPA(2)=14
+      GOTO 120
+  116 IPA(1)=22
+      IPA(2)=16
+  120 NT=2
+      IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      GOTO 50
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASL0* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+1003  FORMAT(' *CASL0* LAMBDA-INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASL0* LAMBDA-INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION NOT FOUND',
+     $ ' TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASL0* TABLES FOR MULT. DATA LAMBDA INDUCED REACTION',
+     $ ' FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASL0* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASL0* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASL0* NO PARTICLES PRODUCED')
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CASN(K,INT,NFL)
+C
+C *** CASCADE OF NEUTRON ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (13-SEP-1987)
+C
+C N  UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C
+      REAL N
+      DIMENSION PMUL(2,1200),ANORM(2,60),SUPP(10),CECH(10),B(2)
+      DIMENSION RNDM(1)
+      SAVE PMUL,ANORM
+      DATA SUPP/0.,0.4,0.55,0.65,0.75,0.82,0.86,0.90,0.94,0.98/
+      DATA CECH/0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0./
+      DATA B/0.35,0.0/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(17) ---
+      IF (KGINIT(17) .NE. 0) GO TO 10
+      KGINIT(17)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL(I,J)=0.0
+      IF (J .LE. 60) ANORM(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR N AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NPP1=NP1+2
+      DO 1 NM1=NP1,NPP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NPROT= -NP+NM
+      NNEUT=2-NPROT
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      NPROTF=NFAC(NPROT)
+      NNEUTF=NFAC(NNEUT)
+      PMUL(1,L)=PMUL(1,L)/(NPROTF*NNEUTF)
+      ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
+    1 CONTINUE
+C** FOR P AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NPROT=1-NP+NM
+      NNEUT=2-NPROT
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      NPROTF=NFAC(NPROT)
+      NNEUTF=NFAC(NNEUT)
+      PMUL(2,L)=PMUL(2,L)/(NPROTF*NNEUTF)
+      ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM(1,I).GT.0.) ANORM(1,I)=1./ANORM(1,I)
+      IF(ANORM(2,I).GT.0.) ANORM(2,I)=1./ANORM(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
+    4 CONTINUE
+C**  CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-RMASS(16)
+C**  ELASTIC SCATTERING
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      NCECH=0
+      IF(INT.EQ.2) GOTO 20
+C** INTRODUCE CHARGE EXCHANGE REACTION PN --> NP
+      IF(NFL.EQ.2) GOTO 100
+      IPLAB=IFIX(P*2.5)+1
+      IF(IPLAB.GT.10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.42) GOTO 100
+      NCECH=1
+      GOTO 100
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+  20  IF (EAB .LE. RMASS(7)) GOTO 55
+C**  SUPPRESSION OF HIGH MULTIPLICITY EVENTS AT LOW MOMENTUM
+      IEAB=IFIX(EAB*5.)+1
+      IF(IEAB.GT.10) GOTO 22
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SUPP(IEAB)) GOTO 22
+      N=1.
+      GOTO (24,23),NFL
+ 23   CONTINUE
+      TEST=-(1+B(2))**2/(2.0*C**2)
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      W0=EXP(TEST)/2.0
+      WM=EXP(TEST)
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF(RAN.LT.W0/(W0+WM)) GOTO 100
+      NP=0
+      NM=1
+      NZ=0
+      GOTO 100
+ 24   CONTINUE
+      TEST=-(1+B(1))**2/(2.0*C**2)
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      W0=EXP(TEST)
+      WP=EXP(TEST)/2.0
+      TEST=-(-1+B(1))**2/(2.0*C**2)
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      WM=EXP(TEST)/2.0
+      WT=W0+WP+WM
+      WP=W0+WP
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF(RAN.LT.W0/WT) GOTO 100
+      NP=1
+      NM=0
+      NZ=0
+      IF(RAN.LT.WP/WT) GOTO 100
+      NP=0
+      NM=1
+      NZ=0
+      GOTO 100
+C
+   22 ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      ANPN=ANPN+PI*NT*EXP(TEST)/(2.0*N*N)
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (40,30),NFL
+C** FOR N AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NPP1=NP1+2
+      DO 31 NM1=NP1,NPP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   31 CONTINUE
+      GOTO 80
+C** FOR P AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   41 CONTINUE
+      GOTO 80
+   50 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      CALL STPAIR
+      IF(INT.EQ.1) CALL TWOB(16,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(16,NFL,N)
+      GO TO 9999
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004) RS,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+  100 DO 101 I=1,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+      NPROT=1-NP+NM+(1-NFL)
+      NNEUT=2-NPROT
+      GOTO (112,102),NFL
+  102 GOTO (103,104),INT
+  103 IPA(1)=16
+      IPA(2)=16
+      NT=2
+      GOTO 130
+  104 IF(NNEUT.EQ.1) GOTO 105
+      IF(NNEUT.EQ.2) GOTO 106
+      IPA(1)=14
+      IPA(2)=14
+      GOTO 120
+  105 IPA(1)=14
+      IPA(2)=16
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 120
+      IPA(1)=16
+      IPA(2)=14
+      GOTO 120
+  106 IPA(1)=16
+      IPA(2)=16
+      GOTO 120
+  112 GOTO (113,114),INT
+  113 IPA(1)=16
+      IPA(2)=14
+      NT=2
+      IF(NCECH.EQ.0) GOTO 130
+      IPA(1)=14
+      IPA(2)=16
+      GOTO 130
+  114 IF(NNEUT.EQ.1) GOTO 115
+      IF(NNEUT.EQ.2) GOTO 116
+      IPA(1)=14
+      IPA(2)=14
+      GOTO 120
+  115 IPA(1)=14
+      IPA(2)=16
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.33) GOTO 120
+      IPA(1)=16
+      IPA(2)=14
+      GOTO 120
+  116 IPA(1)=16
+      IPA(2)=16
+  120 NT=2
+      IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      GOTO 50
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASN* CASCADE ENERGETICALLY NOT POSSIBLE NUCLEAR',
+     * ' EXCITATION',2X,F8.4,2X,'INCIDENT ENERGY LOST')
+1003  FORMAT(' *CASN* NEUTRON-INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASN* NEUTRON-INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION NOT FOUND',
+     $ ' TRY ELASTIC SCATTERING',/,'    AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASN* TABLES FOR MULT. DATA NEUTRON INDUCED REACTION',
+     $ ' FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASN* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASN* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASN* NO PARTICLES PRODUCED')
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CASNB(K,INT,NFL)
+C
+C *** CASCADE OF ANTI NEUTRON ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (13-SEP-1987)
+C
+C NB  UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL1(2,1200),PMUL2(2,400),ANORM1(2,60),ANORM2(2,60),
+     *          SUPP(10),CECH(10),ANHL(25),B(2)
+      DIMENSION RNDM(1)
+      SAVE PMUL1,ANORM1,PMUL2,ANORM2
+      DATA SUPP/0.,0.4,0.55,0.65,0.75,0.82,0.86,0.90,0.94,0.98/
+      DATA CECH/0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0./
+      DATA ANHL/1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.97,0.88
+     *         ,0.85,0.81,0.75,0.64,0.64,0.55,0.55,0.45,0.47,0.40
+     *         ,0.39,0.36,0.33,0.10,0.01/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(9) ---
+      IF (KGINIT(9) .NE. 0) GO TO 10
+      KGINIT(9)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL1(I,J)=0.0
+      IF (J .LE. 400) PMUL2(I,J)=0.0
+      IF (J .LE. 60) ANORM1(I,J)=0.0
+      IF (J .LE. 60) ANORM2(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR P AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      DO 1 NM1=NMM1,NP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL1(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM1(1,NT)=ANORM1(1,NT)+PMUL1(1,L)
+    1 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LT.1) NMM1=1
+      NPP1=NP1+1
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL1(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM1(2,NT)=ANORM1(2,NT)+PMUL1(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM1(1,I).GT.0.) ANORM1(1,I)=1./ANORM1(1,I)
+      IF(ANORM1(2,I).GT.0.) ANORM1(2,I)=1./ANORM1(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 9
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM1(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL1(NFL,I),I=1,1200)
+    4 CONTINUE
+C** DO THE SAME FOR ANNIHILATION CHANNELS
+C** FOR P AS TARGET
+C
+    9 L=0
+      DO 5 NP1=2,20
+      NP=NP1-1
+      NM=NP-1
+      DO 5 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 5
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 5
+      PMUL2(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM2(1,NT)=ANORM2(1,NT)+PMUL2(1,L)
+    5 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 6 NP1=1,20
+      NP=NP1-1
+      NM=NP
+      DO 6 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 6
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 6
+      PMUL2(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM2(2,NT)=ANORM2(2,NT)+PMUL2(2,L)
+    6 CONTINUE
+      DO 7 I=1,60
+      IF(ANORM2(1,I).GT.0.) ANORM2(1,I)=1./ANORM2(1,I)
+      IF(ANORM2(2,I).GT.0.) ANORM2(2,I)=1./ANORM2(2,I)
+    7 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,3001)
+      DO 8 NFL=1,2
+      WRITE(NEWBCD,3002) NFL
+      WRITE(NEWBCD,3003) (ANORM2(NFL,I),I=1,60)
+      WRITE(NEWBCD,3003) (PMUL2(NFL,I),I=1,400)
+    8 CONTINUE
+C** CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-ABS(RMASS(17))
+C**  ELASTIC SCATTERING
+      NCECH=0
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IF(INT.EQ.2) GOTO 20
+C** INTRODUCE CHARGE EXCHANGE REACTION NB N --> PB P
+      IF(NFL.EQ.1) GOTO 100
+      IPLAB=IFIX(P*2.5)+1
+      IF(IPLAB.GT.10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.75) GOTO 100
+      NCECH=1
+      GOTO 100
+C** ANNIHILATION CHANNELS
+   20 IPLAB=IFIX(P*10.)+1
+      IF(IPLAB.GT.10) IPLAB=IFIX((P-1.)*5.)+11
+      IF(IPLAB.GT.15) IPLAB=IFIX( P-2.    )+16
+      IF(IPLAB.GT.23) IPLAB=IFIX((P-10.)/10.)+24
+      IF(IPLAB.GT.25) IPLAB=25
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.ANHL(IPLAB)) GOTO 19
+      EAB=RS
+      IF (EAB .LE. 2.0*RMASS(7)) GOTO 55
+      GOTO 222
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+   19 IF (EAB .LE. RMASS(7)) GOTO 55
+C**  SUPPRESSION OF HIGH MULTIPLICITY EVENTS AT LOW MOMENTUM
+      IEAB=IFIX(EAB*5.)+1
+      IF(IEAB.GT.10) GOTO 22
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SUPP(IEAB)) GOTO 22
+      N=1.
+      GOTO (23,24),NFL
+ 23   CONTINUE
+      TEST=-(1+B(1))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      W0=EXP(TEST)
+      WP=EXP(TEST)
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF(RAN.LT.W0/(W0+WP)) GOTO 100
+      NP=1
+      NM=0
+      NZ=0
+      GOTO 100
+ 24   CONTINUE
+      TEST=-(1+B(2))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      W0=EXP(TEST)
+      WP=EXP(TEST)
+      TEST=-(-1+B(2))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      WM=EXP(TEST)
+      WT=W0+WP+WM
+      WP=W0+WP
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF(RAN.LT.W0/WT) GOTO 100
+      NP=1
+      NM=0
+      NZ=0
+      IF(RAN.LT.WP/WT) GOTO 100
+      NP=0
+      NM=1
+      NZ=0
+      GOTO 100
+C
+   22 ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (30,40),NFL
+C** FOR P AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      DO 31 NM1=NMM1,NP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL1(1,L)*ANORM1(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   31 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LT.1) NMM1=1
+      NPP1=NP1+1
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL1(2,L)*ANORM1(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   41 CONTINUE
+      GOTO 80
+C** ANNIHILATION CHANNELS
+  222 IPA(1)=0
+      IPA(2)=0
+      ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 221 NT=2,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+  221 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (230,240),NFL
+C** FOR P AS TARGET
+  230 L=0
+      DO 231 NP1=2,20
+      NP=NP1-1
+      NM=NP-1
+      DO 231 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 231
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 231
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL2(1,L)*ANORM2(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 120
+  231 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+  240 L=0
+      DO 241 NP1=1,20
+      NP=NP1-1
+      NM=NP
+      DO 241 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 241
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 241
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL2(2,L)*ANORM2(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 120
+  241 CONTINUE
+      GOTO 80
+   50 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      CALL STPAIR
+      IF(INT.EQ.1) CALL TWOB(17,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(17,NFL,N)
+      GO TO 9999
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND,ASSUME ELASTIC SCATTERING
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004) RS,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+  100 DO 101 I=1,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+      GOTO (102,112),NFL
+  102 GOTO (103,104),INT
+  103 IPA(1)=17
+      IPA(2)=14
+      NT=2
+      GOTO 130
+  104 IF(NP.EQ.1+NM) GOTO 105
+      IF(NP.EQ.2+NM) GOTO 106
+      IPA(1)=17
+      IPA(2)=14
+      GOTO 120
+  105 IPA(1)=15
+      IPA(2)=14
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 120
+      IPA(1)=17
+      IPA(2)=16
+      GOTO 120
+  106 IPA(1)=15
+      IPA(2)=16
+      GOTO 120
+  112 GOTO (113,114),INT
+  113 IPA(1)=17
+      IPA(2)=16
+      NT=2
+      IF(NCECH.EQ.0) GOTO 130
+      IPA(1)=15
+      IPA(2)=14
+      GOTO 130
+  114 IF(NP.EQ.  NM) GOTO 115
+      IF(NP.EQ.1+NM) GOTO 116
+      IPA(1)=17
+      IPA(2)=14
+      GOTO 120
+  115 IPA(1)=15
+      IPA(2)=14
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.33) GOTO 120
+      IPA(1)=17
+      IPA(2)=16
+      GOTO 120
+  116 IPA(1)=15
+      IPA(2)=16
+  120 NT=2
+      IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      GOTO 50
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASNB* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI- ELASTIC SCATTERING')
+1003  FORMAT(' *CASNB* ANTINEUTRON-INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASNB* ANTINEUTRON-INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION',
+     $ ' NOT FOUND  TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASNB* TABLES FOR MULT. DATA ANTINEUTRON INDUCED ',
+     * 'REACTION  FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASNB* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASNB* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASNB* NO PARTICLES PRODUCED')
+3001  FORMAT(' *CASNB* TABLES FOR MULT. DATA ANTIPROTON INDUCED ',
+     $ 'ANNIHILATION REACTION  FOR DEFINITION OF NUMBERS SEE FORTRAN',
+     $ ' CODING')
+3002  FORMAT(' *CASNB* TARGET PARTICLE FLAG',2X,I5)
+3003  FORMAT(1H ,10E12.4)
+C
+ 9999 CONTINUE
+      RETURN
+      END
+      SUBROUTINE CASOM(K,INT,NFL)
+C
+C *** CASCADE OF OMEGA- ***
+C *** NVE 31-JAN-1989 CERN GENEVA ***
+C
+C OMEGA- UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT, ASSUME NUCLEAR EXCITATION OCCURS, DEGRADE INPUT PARTICLE
+C IN ENERGY AND NO OTHER PARTICLES ARE PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL(2,1200),ANORM(2,60),CECH(10),IIPA(14,2),B(2)
+      DIMENSION RNDM(1)
+      SAVE PMUL,ANORM
+      DATA CECH/0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0./
+C --- ARRAY IIPA DENOTES THE STRANGENESS AND CHARGE EXCHAGE REACTIONS ---
+C OM- P --> XI0 S0,  OM- P --> S0 XI0
+C OM- P --> XI0 L0,  OM- P --> L0 XI0
+C OM- P --> XI- S+,  OM- P --> S+ XI-
+C XI- P --> P OM-
+C OM- N --> XI0 S-,  OM- N --> S- XI0
+C OM- N --> XI- L0,  OM- N --> L0 XI-
+C OM- N --> XI- S0,  OM- N --> S0 XI-
+C OM- N --> N OM-
+      DATA IIPA/26,21,26,18,27,20,14, 26,22,27,18,27,21,16,
+     $          21,26,18,26,20,27,33, 22,26,18,27,21,27,33/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(21) ---
+      IF (KGINIT(21) .NE. 0) GO TO 10
+      KGINIT(21)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL(I,J)=0.0
+      IF (J .LE. 60) ANORM(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C *** COMPUTE NORMALIZATION CONSTANTS ***
+C
+C --- FOR P TARGET ---
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF (NMM1 .LE. 0) NMM1=1
+      NPP1=NP1+1
+      DO 1 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 1
+      NT=NP+NM+NZ
+      IF ((NT .LE. 0) .OR. (NT .GT. 60)) GO TO 1
+      PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
+ 1    CONTINUE
+C --- FOR N TARGET ---
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1
+      NPP1=NP1+2
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 2
+      NT=NP+NM+NZ
+      IF ((NT .LE. 0) .OR. (NT .GT. 60)) GO TO 2
+      PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
+ 2    CONTINUE
+C
+      DO 3 I=1,60
+      IF (ANORM(1,I) .GT. 0.) ANORM(1,I)=1./ANORM(1,I)
+      IF (ANORM(2,I) .GT. 0.) ANORM(2,I)=1./ANORM(2,I)
+ 3    CONTINUE
+C
+      IF (.NOT. NPRT(10)) GO TO 10
+C
+      WRITE(NEWBCD,2001)
+ 2001 FORMAT(' *CASOM* TABLES FOR MULT. DATA OM- INDUCED REACTION',
+     $ ' FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+ 2002 FORMAT(' *CASOM* TARGET PARTICLE FLAG',2X,I5)
+      WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
+ 2003 FORMAT(1H ,10E12.4)
+ 4    CONTINUE
+C
+C --- SELECT TARGET NUCLEON ---
+ 10   CONTINUE
+      NFL=2
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .LT. (ZNO2/ATNO2)) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-RMASS(33)
+C
+C --- RESET STRANGENESS FIXING FLAG ---
+      NVEFIX=0
+C
+C *** ELASTIC SCATTERING ***
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=33
+      IPA(2)=14
+      IF (NFL .EQ. 2) IPA(2)=16
+C
+      IF (INT .EQ. 2) GO TO 20
+C
+C *** INTRODUCE CHARGE AND STRANGENESS EXCHANGE REACTIONS ***
+      IPLAB=IFIX(P*2.5)+1
+      IF (IPLAB .GT. 10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .GT. (CECH(IPLAB)/ATNO2**0.42)) GO TO 120
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IRN=IFIX(RAN*7.)+1
+      IF (NFL .EQ. 2) IRN=7+IFIX(RAN*7.)+1
+      IF (NFL .EQ. 1) IRN=MAX(IRN,7)
+      IF (NFL .EQ. 2) IRN=MAX(IRN,14)
+      IPA(1)=IIPA(IRN,1)
+      IPA(2)=IIPA(IRN,2)
+      GO TO 120
+C
+C --- CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION ---
+ 20   CONTINUE
+      IF (EAB .LE. RMASS(7)) GO TO 55
+C
+C --- NO. OF TOTAL PARTICLES VS SQRT(S)-MP-MSM ---
+      ALEAB=LOG(EAB)
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C
+C --- NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION ---
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+ 21   CONTINUE
+      ANPN=1./ANPN
+C
+C --- CHECK FOR TARGET NUCLEON TYPE ---
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GO TO (30,40),NFL
+C
+C --- PROTON TARGET ---
+ 30   CONTINUE
+      L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF (NMM1 .LE. 0) NMM1=1
+      NPP1=NP1+1
+      DO 31 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 31
+      NT=NP+NM+NZ
+      IF ((NT .LE. 0) .OR. (NT .GT. 60)) GO TO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF (RAN .LT. EXCS) GO TO 100
+   31 CONTINUE
+      GO TO 80
+C
+C --- NEUTRON TARGET ---
+ 40   CONTINUE
+      L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1
+      NPP1=NP1+2
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 41
+      NT=NP+NM+NZ
+      IF ((NT .LE. 0) .OR. (NT .GT. 60)) GO TO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF (RAN .LT. EXCS) GO TO 100
+   41 CONTINUE
+      GO TO 80
+C
+ 50   CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+ 1003 FORMAT(' *CASOM* OM- -INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,
+     $ 2X,'<NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+      IF (INT .EQ. 1) CALL TWOB(33,NFL,N)
+      IF (INT .EQ. 2) CALL GENXPT(33,NFL,N)
+      GO TO 9999
+C
+C *** ENERGETICALLY NOT POSSIBLE TO PRODUCE ONE EXTRA PION ***
+ 55   CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,1001)
+ 1001 FORMAT(' *CASOM* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+      GO TO 53
+C
+C *** EXCLUSIVE REACTION NOT FOUND ***
+ 80   CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,1004) RS,N
+ 1004 FORMAT(' *CASOM* OM- -INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION NOT FOUND',
+     $ ' TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,2X,
+     $ '<NTOT>',2X,F8.4)
+C
+ 53   CONTINUE
+      INT=1
+      NP=0
+      NM=0
+      NZ=0
+      IPA(1)=33
+      IPA(2)=14
+      IF (NFL .EQ. 2) IPA(2)=16
+      GO TO 120
+C
+C *** INELASTIC INTERACTION HAS OCCURRED ***
+C *** NUMBER OF SECONDARY MESONS DETERMINED BY KNO DISTRIBUTION ***
+ 100  CONTINUE
+      DO 101 I=1,60
+      IPA(I)=0
+ 101  CONTINUE
+C
+      IF (INT .LE. 0) GO TO 131
+C
+C --- TAKE TARGET NUCLEON TYPE INTO ACCOUNT ---
+      GO TO (102,112),NFL
+C
+C --- PROTON TARGET ---
+ 102  CONTINUE
+C --- CHECK FOR TOTAL CHARGE OF FINAL STATE MESONS TO DETERMINE ---
+C --- THE KIND OF BARYONS TO BE PRODUCED TAKING INTO ACCOUNT    ---
+C --- CHARGE AND STRANGENESS CONSERVATION                       ---
+      NCHT=NP-NM
+      IF (NCHT .LT. 0) GO TO 103
+      IF (NCHT .EQ. 0) GO TO 104
+      IF (NCHT .GT. 0) GO TO 105
+C
+ 103  CONTINUE
+C --- STRANGENESS MISMATCH ==> TAKE A XI0 AND CORRECT THE STRANGENESS ---
+C --- BY REPLACING A PI- BY K- ---
+C --- XI0 P ---
+      IPA(1)=26
+      IPA(2)=14
+      NVEFIX=1
+      IF (NCHT .EQ. -1) GO TO 120
+C --- CHARGE MISMATCH ==> TAKE A S+ AND CORRECT THE STRANGENESS ---
+C --- BY REPLACING 2 PI- BY K- ---
+C --- S+ P ---
+      IPA(1)=20
+      IPA(2)=14
+      NVEFIX=2
+      GO TO 120
+C
+ 104  CONTINUE
+C --- OM- P ---
+      IPA(1)=33
+      IPA(2)=14
+C
+ 105  CONTINUE
+C --- OM- N ---
+      IPA(1)=33
+      IPA(2)=16
+      GO TO 120
+C
+C --- NEUTRON TARGET ---
+ 112  CONTINUE
+C --- CHECK FOR TOTAL CHARGE OF FINAL STATE MESONS TO DETERMINE ---
+C --- THE KIND OF BARYONS TO BE PRODUCED TAKING INTO ACCOUNT    ---
+C --- CHARGE AND STRANGENESS CONSERVATION                       ---
+      NCHT=NP-NM
+      IF (NCHT .LT. -1) GO TO 113
+      IF (NCHT .EQ. -1) GO TO 114
+      IF (NCHT .GT. -1) GO TO 115
+C
+ 113  CONTINUE
+C --- STRANGENESS MISMATCH ==> TAKE A XI0 AND CORRECT THE STRANGENESS ---
+C --- BY REPLACING A PI- BY K- ---
+C --- XI0 P ---
+      IPA(1)=26
+      IPA(2)=14
+      NVEFIX=1
+      IF (NCHT .EQ. -2) GO TO 120
+C --- CHARGE MISMATCH ==> TAKE A S+ AND CORRECT THE STRANGENESS ---
+C --- BY REPLACING 2 PI- BY K- ---
+C --- S+ P ---
+      IPA(1)=20
+      IPA(2)=14
+      NVEFIX=2
+      GO TO 120
+C
+ 114  CONTINUE
+C --- OM- P ---
+      IPA(1)=33
+      IPA(2)=14
+      GO TO 120
+C
+ 115  CONTINUE
+C --- OM- N ---
+      IPA(1)=33
+      IPA(2)=16
+C
+C --- TAKE PIONS FOR ALL SECONDARY MESONS ---
+ 120  CONTINUE
+      NT=2
+C
+      IF (NP .EQ. 0) GO TO 122
+C
+C --- PI+ ---
+      DO 121 I=1,NP
+      NT=NT+1
+      IPA(NT)=7
+ 121  CONTINUE
+C
+ 122  CONTINUE
+      IF (NM .EQ. 0) GO TO 124
+C
+C --- PI- ---
+      DO 123 I=1,NM
+      NT=NT+1
+      IPA(NT)=9
+      IF (NVEFIX .GE. 1) IPA(NT)=13
+      IF (NPRT(4) .AND. (NVEFIX .GE. 1)) PRINT 3000
+ 3000 FORMAT(' *CASOM* K- INTRODUCED')
+      NVEFIX=NVEFIX-1
+ 123  CONTINUE
+C
+ 124  CONTINUE
+      IF (NZ .EQ. 0) GO TO 130
+C
+C --- PI0 ---
+      DO 125 I=1,NZ
+      NT=NT+1
+      IPA(NT)=8
+ 125  CONTINUE
+C
+C --- ALL SECONDARY PARTICLES HAVE BEEN DEFINED ---
+C --- NOW GO FOR MOMENTA AND X VALUES ---
+ 130  CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,2004) NT,(IPA(I),I=1,60)
+ 2004 FORMAT(' *CASOM* ',I3,' PARTICLES PRODUCED. MASS INDEX ARRAY : '/
+     $ 3(1H ,20(I3,1X)/))
+      GO TO 50
+C
+ 131  CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,2005)
+ 2005 FORMAT(' *CASOM* NO PARTICLES PRODUCED')
+C
+ 9999 CONTINUE
+      END
+*-- AUTHOR :
+      SUBROUTINE CASSM(K,INT,NFL)
+C
+C *** CASCADE OF SIGMA- ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (13-SEP-1987)
+C
+C S-  UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL(2,1200),ANORM(2,60),CECH(10),IIPA(10,2),B(2)
+      DIMENSION RNDM(2)
+      SAVE PMUL,ANORM
+      DATA CECH/0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0./
+      DATA IIPA/21,18,14,16,16,16,16,16,16,16,
+     *          16,16,22,21,18,22,22,22,22,22/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(12) ---
+      IF (KGINIT(12) .NE. 0) GO TO 10
+      KGINIT(12)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL(I,J)=0.0
+      IF (J .LE. 60) ANORM(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR P AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.0) NMM1=1
+      NPP1=NP1+1
+      DO 1 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
+    1 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1
+      NPP1=NP1+2
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM(1,I).GT.0.) ANORM(1,I)=1./ANORM(1,I)
+      IF(ANORM(2,I).GT.0.) ANORM(2,I)=1./ANORM(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
+    4 CONTINUE
+C**  CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-RMASS(22)
+C**  ELASTIC SCATTERING
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=22
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      IF(INT.EQ.2) GOTO 20
+C** INTRODUCE CHARGE AND STRANGENESS EXCHANGE REACTIONS
+C** S-P --> S0N, S-P --> L N  ,
+C** S-P --> PS-, S-P --> N S0 , S-P --> N L
+C** S-N --> NS-,
+      IPLAB=IFIX(P*2.5)+1
+      IF(IPLAB.GT.10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.42) GOTO 120
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IRN=IFIX(RAN/0.2)+1
+      IF(IRN.GT.5) IRN=5
+      IRN=IRN+(NFL-1)*5
+      IPA(1)=IIPA(IRN,1)
+      IPA(2)=IIPA(IRN,2)
+      GOTO 120
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+  20  IF (EAB .LE. RMASS(7)) GOTO 55
+      ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-MP-MSM
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (30,40),NFL
+C** FOR P AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.0) NMM1=1
+      NPP1=NP1+1
+      DO 31 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   31 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1
+      NPP1=NP1+2
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   41 CONTINUE
+      GOTO 80
+   50 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      IF(INT.EQ.1) CALL TWOB(22,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(22,NFL,N)
+      GO TO 9999
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004) RS,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+      IPA(1)=22
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      GOTO 120
+  100 DO 101 I=1,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+      GOTO (102,112),NFL
+  102 NCHT=NP-NM
+      NCHT=NCHT+2
+      IF(NCHT.LE.0) NCHT=1
+      IF(NCHT.GT.3) NCHT=3
+      GOTO (103,104,105),NCHT
+  103 IPA(1)=21
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) IPA(1)=18
+      IPA(2)=14
+      GOTO 120
+  104 IPA(1)=22
+      IPA(2)=14
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) GOTO 120
+      IPA(1)=21
+      IF(RNDM(2).LT.0.5) IPA(1)=18
+      IPA(2)=16
+      GOTO 120
+  105 IPA(1)=22
+      IPA(2)=16
+      GOTO 120
+  112 NCHT=NP-NM
+      NCHT=NCHT+3
+      IF(NCHT.LE.0) NCHT=1
+      IF(NCHT.GT.3) NCHT=3
+      GOTO (113,114,115),NCHT
+  113 IPA(1)=21
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) IPA(1)=18
+      IPA(2)=14
+      GOTO 120
+  114 IPA(1)=21
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) IPA(1)=18
+      IPA(2)=16
+      IF(RNDM(2).LT.0.5) GOTO 120
+      IPA(1)=22
+      IPA(2)=14
+      GOTO 120
+  115 IPA(1)=22
+      IPA(2)=16
+  120 NT=2
+      IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      GOTO 50
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASSM* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+1003  FORMAT(' *CASSM* SIGMA- -INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASSM* SIGMA- -INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION NOT FOUND',
+     $ ' TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASSM* TABLES FOR MULT. DATA SIGMA- INDUCED REACTION',
+     $ ' FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASSM* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASSM* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASSM* NO PARTICLES PRODUCED')
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CASSP(K,INT,NFL)
+C
+C *** CASCADE OF SIGMA+ ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (30-NOV-1987)
+C
+C S+  UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL(2,1200),ANORM(2,60),CECH(10),IIPA(10,2),B(2)
+      DIMENSION RNDM(2)
+      SAVE PMUL,ANORM
+      DATA CECH/0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0./
+      DATA IIPA/14,14,14,14,14,21,18,16,14,14,
+     *          20,20,20,20,20,14,14,20,21,18/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(13) ---
+      IF (KGINIT(13) .NE. 0) GO TO 10
+      KGINIT(13)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL(I,J)=0.0
+      IF (J .LE. 60) ANORM(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR P AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1
+      IF(NMM1.LE.0) NMM1=1
+      NPP1=NP1+2
+      DO 1 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
+    1 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM(1,I).GT.0.) ANORM(1,I)=1./ANORM(1,I)
+      IF(ANORM(2,I).GT.0.) ANORM(2,I)=1./ANORM(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
+    4 CONTINUE
+C**  CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-RMASS(20)
+C**  ELASTIC SCATTERING
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=20
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      IF(INT.EQ.2) GOTO 20
+C** INTRODUCE CHARGE AND STRANGENESS EXCHANGE REACTIONS
+C**                             S+N --> S0 P ,S+N --> L P,
+C** S+P --> PS+,
+C** S+N --> NS+, S+N --> P S0 , S+N --> P L
+      IPLAB=IFIX(P*2.5)+1
+      IF(IPLAB.GT.10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.42) GOTO 120
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IRN=IFIX(RAN/0.2)+1
+      IF(IRN.GT.5) IRN=5
+      IRN=IRN+(NFL-1)*5
+      IPA(1)=IIPA(IRN,1)
+      IPA(2)=IIPA(IRN,2)
+      GOTO 120
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+  20  IF (EAB .LE. RMASS(7)) GOTO 55
+      ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-MP-MSM
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (30,40),NFL
+C** FOR P AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1
+      IF(NMM1.LE.0) NMM1=1
+      NPP1=NP1+2
+      DO 31 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   31 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   41 CONTINUE
+      GOTO 80
+   50 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      IF(INT.EQ.1) CALL TWOB(20,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(20,NFL,N)
+      GO TO 9999
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004) RS,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+      IPA(1)=20
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      GOTO 120
+  100 DO 101 I=1,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+      GOTO (102,112),NFL
+  102 NCHT=NP-NM
+      NCHT=NCHT+3
+      IF(NCHT.LE.0) NCHT=1
+      IF(NCHT.GT.3) NCHT=3
+      GOTO (103,104,105),NCHT
+  103 IPA(1)=21
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) IPA(1)=18
+      IPA(2)=16
+      GOTO 120
+  104 IPA(1)=20
+      IPA(2)=16
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) GOTO 120
+      IPA(1)=21
+      IF(RNDM(2).LT.0.5) IPA(1)=18
+      IPA(2)=14
+      GOTO 120
+  105 IPA(1)=20
+      IPA(2)=14
+      GOTO 120
+  112 NCHT=NP-NM
+      NCHT=NCHT+2
+      IF(NCHT.LE.0) NCHT=1
+      IF(NCHT.GT.3) NCHT=3
+      GOTO (113,114,115),NCHT
+  113 IPA(1)=20
+      IPA(2)=14
+      GOTO 120
+  114 IPA(1)=21
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).LT.0.5) IPA(1)=18
+      IPA(2)=14
+      IF(RNDM(2).LT.0.5) GOTO 120
+      IPA(1)=20
+      IPA(2)=16
+      GOTO 120
+  115 IPA(1)=21
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) IPA(1)=18
+      IPA(2)=16
+  120 NT=2
+      IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      GOTO 50
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASSP* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+1003  FORMAT(' *CASSP* SIGMA+ -INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASSP* SIGMA+ -INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION NOT FOUND',
+     $ ' TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASSP* TABLES FOR MULT. DATA SIGMA+ INDUCED REACTION',
+     $ ' FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASSP* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASSP* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASSP* NO PARTICLES PRODUCED')
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CASP(K,INT,NFL)
+C
+C *** CASCADE OF PROTON ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (13-SEP-1987)
+C
+C P  UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL(2,1200),ANORM(2,60),SUPP(10),CECH(10),B(2)
+      DIMENSION RNDM(1)
+      SAVE PMUL,ANORM
+      DATA SUPP/0.,0.4,0.55,0.65,0.75,0.82,0.86,0.90,0.94,0.98/
+      DATA CECH/0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0./
+      DATA B/0.70,0.35/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(10) ---
+      IF (KGINIT(10) .NE. 0) GO TO 10
+      KGINIT(10)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL(I,J)=0.0
+      IF (J .LE. 60) ANORM(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR P AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      DO 1 NM1=NMM1,NP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NPROT=2-NP+NM
+      NNEUT=2-NPROT
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      NPROTF=NFAC(NPROT)
+      NNEUTF=NFAC(NNEUT)
+      PMUL(1,L)=PMUL(1,L)/(NPROTF*NNEUTF)
+      ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
+    1 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NPROT=1-NP+NM
+      NNEUT=2-NPROT
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      NPROTF=NFAC(NPROT)
+      NNEUTF=NFAC(NNEUT)
+      PMUL(2,L)=PMUL(2,L)/(NPROTF*NNEUTF)
+      ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM(1,I).GT.0.) ANORM(1,I)=1./ANORM(1,I)
+      IF(ANORM(2,I).GT.0.) ANORM(2,I)=1./ANORM(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
+    4 CONTINUE
+C** CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-RMASS(14)
+C**  ELASTIC SCATTERING
+      NCECH=0
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IF(INT.EQ.2) GOTO 20
+C** INTRODUCE CHARGE EXCHANGE REACTION PN --> NP
+      IF(NFL.EQ.1) GOTO 100
+      IPLAB=IFIX(P*2.5)+1
+      IF(IPLAB.GT.10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.42) GOTO 100
+      NCECH=1
+      GOTO 100
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+  20  IF (EAB .LE. RMASS(7)) GOTO 55
+C**  SUPPRESSION OF HIGH MULTIPLICITY EVENTS AT LOW MOMENTUM
+      IEAB=IFIX(EAB*5.)+1
+      IF(IEAB.GT.10) GOTO 22
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SUPP(IEAB)) GOTO 22
+      N=1.
+      GOTO (23,24),NFL
+ 23   CONTINUE
+      TEST=-(1+B(1))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      W0=EXP(TEST)/2.0
+      WP=EXP(TEST)
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF(RAN.LT.W0/(W0+WP)) GOTO 100
+      NP=1
+      NM=0
+      NZ=0
+      GOTO 100
+ 24   CONTINUE
+      TEST=-(1+B(2))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      W0=EXP(TEST)
+      WP=EXP(TEST)/2.0
+      TEST=-(-1+B(2))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      WM=EXP(TEST)/2.0
+      WT=W0+WP+WM
+      WP=W0+WP
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF(RAN.LT.W0/WT) GOTO 100
+      NP=1
+      NM=0
+      NZ=0
+      IF(RAN.LT.WP/WT) GOTO 100
+      NP=0
+      NM=1
+      NZ=0
+      GOTO 100
+C
+   22 ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (30,40),NFL
+C** FOR P AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      DO 31 NM1=NMM1,NP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   31 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   41 CONTINUE
+      GOTO 80
+   50 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      CALL STPAIR
+      IF(INT.EQ.1) CALL TWOB(14,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(14,NFL,N)
+      GO TO 9999
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND,ASSUME ELASTIC SCATTERING
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004) RS,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+  100 DO 101 I=1,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+      NPROT=2-NP+NM+(1-NFL)
+      NNEUT=2-NPROT
+      GOTO (102,112),NFL
+  102 GOTO (103,104),INT
+  103 IPA(1)=14
+      IPA(2)=14
+      NT=2
+      GOTO 130
+  104 IF(NNEUT.EQ.1) GOTO 105
+      IF(NNEUT.EQ.2) GOTO 106
+      IPA(1)=14
+      IPA(2)=14
+      GOTO 120
+  105 IPA(1)=14
+      IPA(2)=16
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 120
+      IPA(1)=16
+      IPA(2)=14
+      GOTO 120
+  106 IPA(1)=16
+      IPA(2)=16
+      GOTO 120
+  112 GOTO (113,114),INT
+  113 IPA(1)=14
+      IPA(2)=16
+      NT=2
+      IF(NCECH.EQ.0) GOTO 130
+      IPA(1)=16
+      IPA(2)=14
+      GOTO 130
+  114 IF(NNEUT.EQ.1) GOTO 115
+      IF(NNEUT.EQ.2) GOTO 116
+      IPA(1)=14
+      IPA(2)=14
+      GOTO 120
+  115 IPA(1)=16
+      IPA(2)=14
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.33) GOTO 120
+      IPA(1)=14
+      IPA(2)=16
+      GOTO 120
+  116 IPA(1)=16
+      IPA(2)=16
+  120 NT=2
+      IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      GOTO 50
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASP* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+1003  FORMAT(' *CASP* PROTON-INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASP* PROTON-INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION NOT FOUND',
+     $ ' TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASP* TABLES FOR MULT. DATA PROTON INDUCED REACTION',
+     $ ' FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASP* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASP* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASP* NO PARTICLES PRODUCED')
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CASPB(K,INT,NFL)
+C
+C *** CASCADE OF ANTI PROTON ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (13-SEP-1987)
+C
+C PB  UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL1(2,1200),PMUL2(2,400),ANORM1(2,60),ANORM2(2,60),
+     $          SUPP(10),CECH(20),ANHL(29),B(2)
+      DIMENSION RNDM(1)
+      SAVE PMUL1,ANORM1,PMUL2,ANORM2
+      DATA SUPP/0.,0.4,0.55,0.65,0.75,0.82,0.86,0.90,0.94,0.98/
+      DATA CECH/0.14,0.17,0.18,0.18,0.18,0.17,0.17,0.16,0.155,0.145,
+     *          0.11,0.082,0.065,0.050,0.041,0.035,0.028,0.024,0.010
+     *         ,0.0/
+      DATA ANHL/1.00,1.00,1.00,1.00,1.0,1.00,1.0,1.00,1.00,0.90
+     *         ,0.6,0.52,0.47,0.44,0.41,0.39,0.37,0.35,0.34,0.24
+     *         ,0.19,0.15,0.12,0.10,0.09,0.07,0.06,0.05,0./
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(11) ---
+      IF (KGINIT(11) .NE. 0) GO TO 10
+      KGINIT(11)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL1(I,J)=0.0
+      IF (J .LE. 400) PMUL2(I,J)=0.0
+      IF (J .LE. 60) ANORM1(I,J)=0.0
+      IF (J .LE. 60) ANORM2(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR P AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 1 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL1(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM1(1,NT)=ANORM1(1,NT)+PMUL1(1,L)
+    1 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NPP1=NP1+2
+      DO 2 NM1=NP1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL1(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM1(2,NT)=ANORM1(2,NT)+PMUL1(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM1(1,I).GT.0.) ANORM1(1,I)=1./ANORM1(1,I)
+      IF(ANORM1(2,I).GT.0.) ANORM1(2,I)=1./ANORM1(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 9
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM1(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL1(NFL,I),I=1,1200)
+    4 CONTINUE
+C** DO THE SAME FOR ANNIHILATION CHANNELS
+C** FOR P AS TARGET
+C
+    9 L=0
+      DO 5 NP1=1,20
+      NP=NP1-1
+      NM=NP
+      DO 5 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 5
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 5
+      PMUL2(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM2(1,NT)=ANORM2(1,NT)+PMUL2(1,L)
+    5 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 6 NP1=1,20
+      NP=NP1-1
+      NM=NP+1
+      DO 6 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 6
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 6
+      PMUL2(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM2(2,NT)=ANORM2(2,NT)+PMUL2(2,L)
+    6 CONTINUE
+      DO 7 I=1,60
+      IF(ANORM2(1,I).GT.0.) ANORM2(1,I)=1./ANORM2(1,I)
+      IF(ANORM2(2,I).GT.0.) ANORM2(2,I)=1./ANORM2(2,I)
+    7 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,3001)
+      DO 8 NFL=1,2
+      WRITE(NEWBCD,3002) NFL
+      WRITE(NEWBCD,3003) (ANORM2(NFL,I),I=1,60)
+      WRITE(NEWBCD,3003) (PMUL2(NFL,I),I=1,400)
+    8 CONTINUE
+C** CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-ABS(RMASS(15))
+C**  ELASTIC SCATTERING
+      NCECH=0
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IF(INT.EQ.2) GOTO 20
+C** INTRODUCE CHARGE EXCHANGE REACTION PB P --> NB N
+      IF(NFL.EQ.2) GOTO 100
+      IPLAB=IFIX(P*10.)+1
+      IF(IPLAB.GT.10) IPLAB=IFIX(P)+10
+      IF(IPLAB.GT.20) IPLAB=20
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.75) GOTO 100
+      NCECH=1
+      GOTO 100
+C** ANNIHILATION CHANNELS
+   20 IPLAB=IFIX(P*10.)+1
+      IF(IPLAB.GT.10) IPLAB=IFIX(P)+10
+      IF(IPLAB.GT.19) IPLAB=IFIX(P/10.)+19
+      IF(IPLAB.GT.28) IPLAB=29
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.ANHL(IPLAB)) GOTO 19
+      EAB=RS
+      IF (EAB .LE. 2.0*RMASS(7)) GOTO 55
+      GOTO 222
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+   19 IF (EAB .LE. RMASS(7)) GOTO 55
+C**  SUPPRESSION OF HIGH MULTIPLICITY EVENTS AT LOW MOMENTUM
+      IEAB=IFIX(EAB*5.)+1
+      IF(IEAB.GT.10) GOTO 22
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SUPP(IEAB)) GOTO 22
+      N=1.
+      GOTO (24,23),NFL
+ 23   CONTINUE
+      TEST=-(1+B(1))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      W0=EXP(TEST)
+      TEST=-(-1+B(1))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      WM=EXP(TEST)
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF(RAN.LT.W0/(W0+WM)) GOTO 100
+      NP=0
+      NM=1
+      NZ=0
+      GOTO 100
+ 24   CONTINUE
+      TEST=-(1+B(2))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      W0=EXP(TEST)
+      WP=EXP(TEST)
+      TEST=-(-1+B(2))**2/(2.0*C**2)
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      WM=EXP(TEST)
+      WT=W0+WP+WM
+      WP=W0+WP
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF(RAN.LT.W0/WT) GOTO 100
+      NP=1
+      NM=0
+      NZ=0
+      IF(RAN.LT.WP/WT) GOTO 100
+      NP=0
+      NM=1
+      NZ=0
+      GOTO 100
+C
+   22 ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (30,40),NFL
+C** FOR P AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 31 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL1(1,L)*ANORM1(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   31 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NPP1=NP1+2
+      DO 41 NM1=NP1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL1(2,L)*ANORM1(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 100
+   41 CONTINUE
+      GOTO 80
+C** ANNIHILATION CHANNELS
+  222 IPA(1)=0
+      IPA(2)=0
+      ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 221 NT=2,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+  221 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (230,240),NFL
+C** FOR P AS TARGET
+  230 L=0
+      DO 231 NP1=1,20
+      NP=NP1-1
+      NM=NP
+      DO 231 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 231
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 231
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL2(1,L)*ANORM2(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 120
+  231 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+  240 L=0
+      DO 241 NP1=1,20
+      NP=NP1-1
+      NM=NP+1
+      DO 241 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.400) GOTO 241
+      NT=NP+NM+NZ
+      IF(NT.LE.1.OR.NT.GT.60) GOTO 241
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL2(2,L)*ANORM2(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 120
+  241 CONTINUE
+      GOTO 80
+   50 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      CALL STPAIR
+      IF(INT.EQ.1) CALL TWOB(15,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(15,NFL,N)
+      GO TO 9999
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND,ASSUME ELASTIC SCATTERING
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004)EAB,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+  100 DO 101 I=1,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+      GOTO (112,102),NFL
+  102 GOTO (103,104),INT
+  103 IPA(1)=15
+      IPA(2)=16
+      NT=2
+      GOTO 130
+  104 IF(NP.EQ.-1+NM) GOTO 105
+      IF(NP.EQ.   NM) GOTO 106
+      IPA(1)=17
+      IPA(2)=14
+      GOTO 120
+  105 IPA(1)=15
+      IPA(2)=14
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 120
+      IPA(1)=17
+      IPA(2)=16
+      GOTO 120
+  106 IPA(1)=15
+      IPA(2)=16
+      GOTO 120
+  112 GOTO (113,114),INT
+  113 IPA(1)=15
+      IPA(2)=14
+      NT=2
+      IF(NCECH.EQ.0) GOTO 130
+      IPA(1)=17
+      IPA(2)=16
+      GOTO 130
+  114 IF(NP.EQ.  NM) GOTO 115
+      IF(NP.EQ.1+NM) GOTO 116
+      IPA(1)=17
+      IPA(2)=14
+      GOTO 120
+  115 IPA(1)=17
+      IPA(2)=16
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.33) GOTO 120
+      IPA(1)=15
+      IPA(2)=14
+      GOTO 120
+  116 IPA(1)=15
+      IPA(2)=16
+  120 NT=2
+      IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      GOTO 50
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASPB* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+1003  FORMAT(' *CASPB* ANTIPROTON-INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASPB* ANTIPROTON-INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION',
+     $ ' NOT FOUND  TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASPB* TABLES FOR MULT. DATA ANTIPROTON INDUCED ',
+     $ 'REACTION  FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASPB* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASPB* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASPB* NO PARTICLES PRODUCED')
+3001  FORMAT(' *CASPB* TABLES FOR MULT. DATA ANTIPROTON INDUCED ',
+     $ ' ANNIHILATION REACTION  FOR DEFINITION OF NUMBERS SEE FORTRAN',
+     $ ' CODING')
+3002  FORMAT(' *CASPB* TARGET PARTICLE FLAG',2X,I5)
+3003  FORMAT(1H ,10E12.4)
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CASPIM(K,INT,NFL)
+C
+C *** CASCADE OF PI- ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT 13-SEP-1987
+C
+C PI-  UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C
+      REAL N
+      DIMENSION PMUL(2,1200),ANORM(2,60),SUPP(10),CECH(10),B(2)
+      DIMENSION RNDM(1)
+      SAVE PMUL,ANORM
+      DATA SUPP/0.,0.4,0.55,0.65,0.75,0.82,0.86,0.90,0.94,0.98/
+      DATA CECH/1.,0.95,0.79,0.32,0.19,0.16,0.14,0.12,0.10,0.08/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(16) ---
+      IF (KGINIT(16) .NE. 0) GO TO 10
+      KGINIT(16)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL(I,J)=0.0
+      IF (J .LE. 60) ANORM(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C *** COMPUTATION OF NORMALIZATION CONSTANTS ***
+C
+C --- P TARGET ---
+      L=0
+      DO 1100 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF (NMM1 .LE. 1) NMM1=1
+      NPP1=NP1+1
+C
+      DO 1101 NM1=NMM1,NPP1
+      NM=NM1-1
+C
+      DO 1102 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GOTO 1199
+      NT=NP+NM+NZ
+      IF (NT .LE. 0) GO TO 1102
+      IF (NT .GT. 60) GO TO 1102
+      PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
+ 1102 CONTINUE
+C
+ 1101 CONTINUE
+C
+ 1100 CONTINUE
+C
+ 1199 CONTINUE
+C
+C --- N TARGET ---
+      L=0
+      DO 1200 NP1=1,20
+      NP=NP1-1
+      NPP1=NP1+2
+C
+      DO 1201 NM1=NP1,NPP1
+      NM=NM1-1
+C
+      DO 1202 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 1299
+      NT=NP+NM+NZ
+      IF (NT .LE. 0) GO TO 1202
+      IF (NT .GT. 60) GO TO 1202
+      PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
+ 1202 CONTINUE
+C
+ 1201 CONTINUE
+C
+ 1200 CONTINUE
+C
+ 1299 CONTINUE
+C
+      DO 3 I=1,60
+      IF (ANORM(1,I) .GT. 0.0) ANORM(1,I)=1.0/ANORM(1,I)
+      IF (ANORM(2,I) .GT. 0.0) ANORM(2,I)=1.0/ANORM(2,I)
+    3 CONTINUE
+C
+      IF (.NOT. NPRT(10)) GO TO 10
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
+    4 CONTINUE
+C
+C --- CHOOSE PROTON OR NEUTRON AS TARGET ---
+ 10   CONTINUE
+      NFL=2
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .LT. ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-RMASS(9)
+C
+C --- ELASTIC SCATTERING ---
+      NP=0
+      NM=0
+      NZ=0
+      N=0.0
+      IPA(1)=9
+      IPA(2)=14
+      IF (NFL .EQ. 2) IPA(2)=16
+      IF (INT .EQ. 2) GOTO 20
+      GOTO 100
+C
+C --- CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+ 20   CONTINUE
+      IF (EAB .LE. RMASS(9)) GO TO 55
+C
+C --- SUPPRESSION OF HIGH MULTIPLICITY EVENTS AT LOW MOMENTUM ---
+      IEAB=IFIX(EAB*5.0)+1
+      IF (IEAB .GT. 10) GO TO 22
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .LT. SUPP(IEAB)) GO TO 22
+C
+C --- CHARGE EXCHANGE REACTION (IS INCLUDED IN INELASTIC CROSS SECTION)
+      IPLAB=IFIX(P*5.0)+1
+      IF (IPLAB .GT. 10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .GT. CECH(IPLAB)) GO TO 23
+C
+      IF (NFL .EQ. 1) GOTO 24
+C
+C --- N TARGET ---
+      INT=1
+      IPA(1)=9
+      IPA(2)=16
+      GO TO 100
+C
+C --- P TARGET ---
+ 24   CONTINUE
+      IPA(1)=8
+      IPA(2)=16
+      GO TO 100
+C
+ 23   CONTINUE
+      N=1.0
+C
+      IF (NFL .EQ. 1) GO TO 26
+C
+C --- N TARGET ---
+      DUM=-(1+B(2))**2/(2.0*C**2)
+      IF (DUM .LT. EXPXL) DUM=EXPXL
+      IF (DUM .GT. EXPXU) DUM=EXPXU
+      W0=EXP(DUM)
+      DUM=-(-1+B(2))**2/(2.0*C**2)
+      IF (DUM .LT. EXPXL) DUM=EXPXL
+      IF (DUM .GT. EXPXU) DUM=EXPXU
+      WM=EXP(DUM)
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF (RAN .LT. W0/(W0+WM)) GO TO 50
+      NP=0
+      NM=1
+      NZ=0
+      GO TO 50
+C
+C --- P TARGET ---
+ 26   CONTINUE
+      DUM=-(1+B(1))**2/(2.0*C**2)
+      IF (DUM .LT. EXPXL) DUM=EXPXL
+      IF (DUM .GT. EXPXU) DUM=EXPXU
+      W0=EXP(DUM)
+      WP=EXP(DUM)
+      DUM=-(-1+B(1))**2/(2.0*C**2)
+      IF (DUM .LT. EXPXL) DUM=EXPXL
+      IF (DUM .GT. EXPXU) DUM=EXPXU
+      WM=EXP(DUM)
+      WP=WP*10.
+      WT=W0+WP+WM
+      WP=W0+WP
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF (RAN .LT. W0/WT) GO TO 50
+      NP=1
+      NM=0
+      NZ=0
+      IF (RAN .LT. WP/WT) GO TO 50
+      NP=0
+      NM=1
+      NZ=0
+      GOTO 50
+C
+ 22   CONTINUE
+      ALEAB=LOG(EAB)
+C
+C --- NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP ---
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     $ +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.0
+C
+C --- NORMALIZATION CONSTANT FOR KNO-DISTRIBUTION ---
+      ANPN=0.0
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1.0/ANPN
+C
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.0
+      IF (NFL .EQ. 2) GO TO 40
+C
+C --- P TARGET ---
+      L=0
+      DO 310 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF (NMM1 .LE. 1) NMM1=1
+      NPP1=NP1+1
+C
+      DO 311 NM1=NMM1,NPP1
+      NM=NM1-1
+C
+      DO 312 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 80
+      NT=NP+NM+NZ
+      IF (NT .LE. 0) GO TO 312
+      IF (NT .GT. 60) GO TO 312
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF (RAN .LT. EXCS) GOTO 50
+ 312  CONTINUE
+C
+ 311  CONTINUE
+C
+ 310  CONTINUE
+      GOTO 80
+C
+C --- N TARGET ---
+ 40   CONTINUE
+      L=0
+      DO 410 NP1=1,20
+      NP=NP1-1
+      NPP1=NP1+2
+C
+      DO 411 NM1=NP1,NPP1
+      NM=NM1-1
+C
+      DO 412 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 80
+      NT=NP+NM+NZ
+      IF (NT .LE. 0) GO TO 412
+      IF (NT .GT. 60) GO TO 412
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF (RAN .LT. EXCS) GOTO 50
+ 412  CONTINUE
+C
+ 411  CONTINUE
+C
+ 410  CONTINUE
+      GO TO 80
+C
+ 50   CONTINUE
+      IF (NFL .EQ. 2) GO TO 65
+C
+C --- P TARGET ---
+      IF (NP .EQ. NM) GO TO 61
+      IF (NP .EQ. 1+NM) GO TO 63
+      IPA(1)=8
+      IPA(2)=14
+      GO TO 100
+C
+ 61   CONTINUE
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .LT. 0.75) GO TO 62
+      IPA(1)=8
+      IPA(2)=16
+      GO TO 100
+C
+ 62   CONTINUE
+      IPA(1)=9
+      IPA(2)=14
+      GO TO 100
+C
+ 63   CONTINUE
+      IPA(1)=9
+      IPA(2)=16
+      GO TO 100
+C
+C --- N TARGET ---
+ 65   CONTINUE
+      IF (NP .EQ. -1+NM) GO TO 66
+      IF (NP .EQ. NM) GO TO 68
+      IPA(1)=8
+      IPA(2)=16
+      GO TO 100
+C
+ 66   CONTINUE
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .LT. 0.50) GO TO 67
+      IPA(1)=8
+      IPA(2)=16
+      GO TO 100
+C
+ 67   CONTINUE
+      IPA(1)=9
+      IPA(2)=14
+      GO TO 100
+C
+ 68   CONTINUE
+      IPA(1)=9
+      IPA(2)=16
+      GO TO 100
+C
+ 70   CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      CALL STPAIR
+      IF (INT .EQ. 1) CALL TWOB(9,NFL,N)
+      IF (INT .EQ. 2) CALL GENXPT(9,NFL,N)
+      GO TO 9999
+C
+C --- ENERGETICALLY NOT POSSIBLE TO PRODUCE CASCADE-PARTICLES ---
+C --- CONTINUE WITH QUASI-ELASTIC SCATTERING ---
+ 55   CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,1001)
+      GO TO 53
+C
+C --- EXCLUSIVE REACTION NOT FOUND ---
+ 80   CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,1004) RS,N
+C
+ 53   CONTINUE
+      INT=1
+      NP=0
+      NM=0
+      NZ=0
+      N=0.0
+      IPA(1)=9
+      IPA(2)=14
+      IF (NFL .EQ. 2) IPA(2)=16
+C
+ 100  CONTINUE
+      DO 101 I=3,60
+      IPA(I)=0
+ 101  CONTINUE
+      IF (INT .LE. 0) GO TO 131
+C
+ 120  CONTINUE
+      NT=2
+      IF (NP .EQ. 0) GO TO 122
+      DO 121 I=1,NP
+      NT=NT+1
+      IPA(NT)=7
+ 121  CONTINUE
+C
+ 122  CONTINUE
+      IF (NM .EQ. 0) GO TO 124
+      DO 123 I=1,NM
+      NT=NT+1
+      IPA(NT)=9
+ 123  CONTINUE
+C
+ 124  CONTINUE
+      IF (NZ .EQ. 0) GO TO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+      IPA(NT)=8
+ 125  CONTINUE
+C
+ 130  CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      IF (IPA(1) .EQ. 7) NP=NP+1
+      IF (IPA(1) .EQ. 8) NZ=NZ+1
+      IF (IPA(1) .EQ. 9) NM=NM+1
+      GO TO 70
+C
+ 131  CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASPIM* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+1003  FORMAT(' *CASPIM* PION- -INDUCED CASCADE, AVAIL. ENERGY',2X,F8.4,
+     $ /,2X,'    <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASPIM* PION- -INDUCED CASCADE, EXCLUSIVE REACTION',
+     $ ' NOT FOUND TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     * '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASPIM* TABLES FOR MULTIPLICITY DATA PION- INDUCED',
+     $ 'REACTION FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASPIM* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASPIM* ',I3,'  PARTICLES, MASS INDEX ARRAY  ',20I4)
+2005  FORMAT(' *CASPIM* NO PARTICLES PRODUCED')
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CASPIP(K,INT,NFL)
+C
+C *** CASCADE OF PI+ ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (18-SEP-1987)
+C
+C PI+  UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT ASSUME NUCLEAR EXCITATION OCCURS AND INPUT PARTICLE
+C IS DEGRADED IN ENERGY.    NO OTHER PARTICLES PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C
+      REAL N
+      DIMENSION PMUL(2,1200),ANORM(2,60),SUPP(10),CECH(10),B(2)
+      DIMENSION RNDM(1)
+      SAVE PMUL,ANORM
+      DATA SUPP/0.,0.2,0.45,0.55,0.65,0.75,0.85,0.90,0.94,0.98/
+      DATA CECH/0.33,0.27,0.29,0.31,0.27,0.18,0.13,0.10,0.09,0.07/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(18) ---
+      IF (KGINIT(18) .NE. 0) GO TO 10
+      KGINIT(18)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL(I,J)=0.0
+      IF (J .LE. 60) ANORM(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C** COMPUTE NORMALIZATION CONSTANTS
+C** FOR P AS TARGET
+C
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      DO 1 NM1=NMM1,NP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 1
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 1
+      PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
+    1 CONTINUE
+C** FOR N AS TARGET
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 2
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 2
+      PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
+    2 CONTINUE
+      DO 3 I=1,60
+      IF(ANORM(1,I).GT.0.) ANORM(1,I)=1./ANORM(1,I)
+      IF(ANORM(2,I).GT.0.) ANORM(2,I)=1./ANORM(2,I)
+    3 CONTINUE
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,2001)
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+      WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
+    4 CONTINUE
+C**  CHOOSE PROTON OR NEUTRON AS TARGET
+   10 NFL=2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.ZNO2/ATNO2) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-RMASS(7)
+C
+C**  ELASTIC SCATTERING
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=7
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      IF(INT.EQ.2) GOTO 20
+C**  FOR PI+ N REACTIONS CHANGE SOME OF THE ELASTIC CROSS SECTION
+C**  TO PI+ N --> PI0 P
+      IF(NFL.EQ.1) GOTO 100
+      IPLAB=IFIX(P   *5.)+1
+      IF(IPLAB.GT.10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.CECH(IPLAB)/ATNO2**0.42) GOTO 100
+      IPA(1)=8
+      IPA(2)=14
+      GOTO 100
+C**  CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION IN REACT.
+  20  IF (EAB .LE. RMASS(7)) GOTO 55
+C**  SUPPRESSION OF HIGH MULTIPLICITY EVENTS AT LOW MOMENTUM
+      IEAB=IFIX(EAB*5.)+1
+      IF(IEAB.GT.10) GOTO 22
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SUPP(IEAB)) GOTO 22
+      N=1.
+      GOTO (23,24),NFL
+ 23   CONTINUE
+      TEST=-(1+B(1))**2/(2.0*C**2)
+      IF (TEST .LE. EXPXL) TEST=EXPXL
+      IF (TEST .GE. EXPXU) TEST=EXPXU
+      W0=EXP(TEST)
+      WP=EXP(TEST)
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF(RAN.LT.W0/(W0+WP)) GOTO 50
+      NP=1
+      NM=0
+      NZ=0
+      GOTO 50
+ 24   CONTINUE
+      TEST=-(1+B(2))**2/(2.0*C**2)
+      IF (TEST .LE. EXPXL) TEST=EXPXL
+      IF (TEST .GE. EXPXU) TEST=EXPXU
+      W0=EXP(TEST)
+      WP=EXP(TEST)
+      TEST=-(-1+B(2))**2/(2.0*C**2)
+      IF (TEST .LE. EXPXL) TEST=EXPXL
+      IF (TEST .GE. EXPXU) TEST=EXPXU
+      WM=EXP(TEST)
+      WT=W0+WP+WM
+      WP=W0+WP
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NP=0
+      NM=0
+      NZ=1
+      IF(RAN.LT.W0/WT) GOTO 50
+      NP=1
+      NM=0
+      NZ=0
+      IF(RAN.LT.WP/WT) GOTO 50
+      NP=0
+      NM=1
+      NZ=0
+      GOTO 50
+C
+   22 ALEAB=LOG(EAB)
+C** NO. OF TOTAL PARTICLES VS SQRT(S)-2*MP
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C** NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LE. EXPXL) TEST=EXPXL
+      IF (TEST .GE. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+   21 CONTINUE
+      ANPN=1./ANPN
+C** P OR N AS TARGET
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GOTO (30,40),NFL
+C** FOR P AS TARGET
+   30 L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF(NMM1.LE.1) NMM1=1
+      DO 31 NM1=NMM1,NP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 31
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LE. EXPXL) TEST=EXPXL
+      IF (TEST .GE. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 50
+   31 CONTINUE
+      GOTO 80
+C** FOR N AS TARGET
+   40 L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF(NMM1.LE.1) NMM1=1
+      NPP1=NP1+1
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF(L.GT.1200) GOTO 41
+      NT=NP+NM+NZ
+      IF(NT.LE.0.OR.NT.GT.60) GOTO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LE. EXPXL) TEST=EXPXL
+      IF (TEST .GE. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF(RAN.LT.EXCS) GOTO 50
+   41 CONTINUE
+      GOTO 80
+   50 GOTO (60,65),NFL
+   60 IF(NP.EQ.1+NM) GOTO 61
+      IF(NP.EQ.2+NM) GOTO 63
+      IPA(1)=7
+      IPA(2)=14
+      GOTO 100
+   61 CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 62
+      IPA(1)=7
+      IPA(2)=16
+      GOTO 100
+   62 IPA(1)=8
+      IPA(2)=14
+      GOTO 100
+   63 IPA(1)=8
+      IPA(2)=16
+      GOTO 100
+   65 IF(NP.EQ.NM) GOTO 66
+      IF(NP.EQ.1+NM) GOTO 68
+      IPA(1)=7
+      IPA(2)=14
+      GOTO 100
+   66 CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.25) GOTO 67
+      IPA(1)=7
+      IPA(2)=16
+      GOTO 100
+   67 IPA(1)=8
+      IPA(2)=14
+      GOTO 100
+   68 IPA(1)=8
+      IPA(2)=16
+      GOTO 100
+   70 IF(NPRT(4))
+     *WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+      CALL STPAIR
+      IF(INT.EQ.1) CALL TWOB(7,NFL,N)
+      IF(INT.EQ.2) CALL GENXPT(7,NFL,N)
+      GO TO 9999
+   55 IF(NPRT(4))
+     *WRITE(NEWBCD,1001)
+      GOTO 53
+C** EXCLUSIVE REACTION NOT FOUND
+   80 IF(NPRT(4))
+     *WRITE(NEWBCD,1004) RS,N
+   53 INT=1
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=7
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+  100 DO 101 I=3,60
+  101 IPA(I)=0
+      IF(INT.LE.0) GOTO 131
+  120 NT=2
+      IF(NP.EQ.0) GOTO 122
+      DO 121 I=1,NP
+      NT=NT+1
+  121 IPA(NT)=7
+  122 IF(NM.EQ.0) GOTO 124
+      DO 123 I=1,NM
+      NT=NT+1
+  123 IPA(NT)=9
+  124 IF(NZ.EQ.0) GOTO 130
+      DO 125 I=1,NZ
+      NT=NT+1
+  125 IPA(NT)=8
+  130 IF(NPRT(4))
+     *WRITE(NEWBCD,2004) NT,(IPA(I),I=1,20)
+      IF(IPA(1).EQ.7) NP=NP+1
+      IF(IPA(1).EQ.8) NZ=NZ+1
+      IF(IPA(1).EQ.9) NM=NM+1
+      GOTO 70
+  131 IF(NPRT(4))
+     *WRITE(NEWBCD,2005)
+C
+1001  FORMAT(' *CASPIP* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+1003  FORMAT(' *CASPIP* PION+ -INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,/,
+     $ 2X,'   <NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+1004  FORMAT(' *CASPIP* PION+ -INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION NOT FOUND',
+     $ ' TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,/,2X,
+     $ '    <NTOT>',2X,F8.4)
+2001  FORMAT(' *CASPIP* TABLES FOR MULT. DATA PION+  INDUCED REACTION',
+     $ ' FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+2002  FORMAT(' *CASPIP* TARGET PARTICLE FLAG',2X,I5)
+2003  FORMAT(1H ,10E12.4)
+2004  FORMAT(' *CASPIP* ',I3,2X,'PARTICLES , MASS INDEX ARRAY',2X,20I4)
+2005  FORMAT(' *CASPIP* NO PARTICLES PRODUCED')
+C
+ 9999 CONTINUE
+      RETURN
+      END
+      SUBROUTINE CASXM(K,INT,NFL)
+C
+C *** CASCADE OF XI- ***
+C *** NVE 17-JAN-1989 CERN GENEVA ***
+C
+C XI-  UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT, ASSUME NUCLEAR EXCITATION OCCURS, DEGRADE INPUT PARTICLE
+C IN ENERGY AND NO OTHER PARTICLES ARE PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL(2,1200),ANORM(2,60),CECH(10),IIPA(12,2),B(2)
+      DIMENSION RNDM(1)
+      SAVE PMUL,ANORM
+      DATA CECH/0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0./
+C --- ARRAY IIPA DENOTES THE STRANGENESS AND CHARGE EXCHAGE REACTIONS ---
+C XI- P --> XI0 N,  XI- P --> N XI0
+C XI- P --> S0 S0,  XI- P --> L0 L0
+C XI- P --> S0 L0,  XI- P --> L0 S0
+C XI- P --> P XI-
+C XI- N --> N XI-
+C XI- N --> S0 S-,  XI- N --> S- S0
+C XI- N --> L0 S-,  XI- N --> S- L0
+      DATA IIPA/26,16,21,18,21,18,14, 16,21,22,18,22,
+     *          16,26,21,18,18,21,27, 27,22,21,22,18/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(19) ---
+      IF (KGINIT(19) .NE. 0) GO TO 10
+      KGINIT(19)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL(I,J)=0.0
+      IF (J .LE. 60) ANORM(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C *** COMPUTE NORMALIZATION CONSTANTS ***
+C
+C --- FOR P TARGET ---
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF (NMM1 .LE. 0) NMM1=1
+      NPP1=NP1+1
+      DO 1 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 1
+      NT=NP+NM+NZ
+      IF ((NT .LE. 0) .OR. (NT .GT. 60)) GO TO 1
+      PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
+ 1    CONTINUE
+C --- FOR N TARGET ---
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1
+      NPP1=NP1+2
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 2
+      NT=NP+NM+NZ
+      IF ((NT .LE. 0) .OR. (NT .GT. 60)) GO TO 2
+      PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
+ 2    CONTINUE
+C
+      DO 3 I=1,60
+      IF (ANORM(1,I) .GT. 0.) ANORM(1,I)=1./ANORM(1,I)
+      IF (ANORM(2,I) .GT. 0.) ANORM(2,I)=1./ANORM(2,I)
+ 3    CONTINUE
+C
+      IF (.NOT. NPRT(10)) GO TO 10
+C
+      WRITE(NEWBCD,2001)
+ 2001 FORMAT(' *CASXM* TABLES FOR MULT. DATA XI- INDUCED REACTION',
+     $ ' FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+ 2002 FORMAT(' *CASXM* TARGET PARTICLE FLAG',2X,I5)
+      WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
+ 2003 FORMAT(1H ,10E12.4)
+ 4    CONTINUE
+C
+C --- SELECT TARGET NUCLEON ---
+ 10   CONTINUE
+      NFL=2
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .LT. (ZNO2/ATNO2)) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-RMASS(27)
+C
+C --- RESET STRANGENESS FIXING FLAG ---
+      NVEFIX=0
+C
+C *** ELASTIC SCATTERING ***
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=27
+      IPA(2)=14
+      IF (NFL .EQ. 2) IPA(2)=16
+C
+      IF (INT .EQ. 2) GO TO 20
+C
+C *** INTRODUCE CHARGE AND STRANGENESS EXCHANGE REACTIONS ***
+      IPLAB=IFIX(P*2.5)+1
+      IF (IPLAB .GT. 10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .GT. (CECH(IPLAB)/ATNO2**0.42)) GO TO 120
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IRN=IFIX(RAN*7.)+1
+      IF (NFL .EQ. 2) IRN=7+IFIX(RAN*5.)+1
+      IF (NFL .EQ. 1) IRN=MAX(IRN,7)
+      IF (NFL .EQ. 2) IRN=MAX(IRN,12)
+      IPA(1)=IIPA(IRN,1)
+      IPA(2)=IIPA(IRN,2)
+      GO TO 120
+C
+C --- CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION ---
+ 20   CONTINUE
+      IF (EAB .LE. RMASS(7)) GO TO 55
+C
+C --- NO. OF TOTAL PARTICLES VS SQRT(S)-MP-MSM ---
+      ALEAB=LOG(EAB)
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C
+C --- NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION ---
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+ 21   CONTINUE
+      ANPN=1./ANPN
+C
+C --- CHECK FOR TARGET NUCLEON TYPE ---
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GO TO (30,40),NFL
+C
+C --- PROTON TARGET ---
+ 30   CONTINUE
+      L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF (NMM1 .LE. 0) NMM1=1
+      NPP1=NP1+1
+      DO 31 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 31
+      NT=NP+NM+NZ
+      IF ((NT .LE. 0) .OR. (NT .GT. 60)) GO TO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF (RAN .LT. EXCS) GO TO 100
+   31 CONTINUE
+      GO TO 80
+C
+C --- NEUTRON TARGET ---
+ 40   CONTINUE
+      L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1
+      NPP1=NP1+2
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 41
+      NT=NP+NM+NZ
+      IF ((NT .LE. 0) .OR. (NT .GT. 60)) GO TO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF (RAN .LT. EXCS) GO TO 100
+   41 CONTINUE
+      GO TO 80
+C
+ 50   CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+ 1003 FORMAT(' *CASXM* XI- -INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,
+     $ 2X,'<NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+      IF (INT .EQ. 1) CALL TWOB(27,NFL,N)
+      IF (INT .EQ. 2) CALL GENXPT(27,NFL,N)
+      GO TO 9999
+C
+C *** ENERGETICALLY NOT POSSIBLE TO PRODUCE ONE EXTRA PION ***
+ 55   CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,1001)
+ 1001 FORMAT(' *CASXM* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+      GO TO 53
+C
+C *** EXCLUSIVE REACTION NOT FOUND ***
+ 80   CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,1004) RS,N
+ 1004 FORMAT(' *CASXM* XI- -INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION NOT FOUND',
+     $ ' TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,2X,
+     $ '<NTOT>',2X,F8.4)
+C
+ 53   CONTINUE
+      INT=1
+      NP=0
+      NM=0
+      NZ=0
+      IPA(1)=27
+      IPA(2)=14
+      IF (NFL .EQ. 2) IPA(2)=16
+      GO TO 120
+C
+C *** INELASTIC INTERACTION HAS OCCURRED ***
+C *** NUMBER OF SECONDARY MESONS DETERMINED BY KNO DISTRIBUTION ***
+ 100  CONTINUE
+      DO 101 I=1,60
+      IPA(I)=0
+ 101  CONTINUE
+C
+      IF (INT .LE. 0) GO TO 131
+C
+C --- TAKE TARGET NUCLEON TYPE INTO ACCOUNT ---
+      GO TO (102,112),NFL
+C
+C --- PROTON TARGET ---
+ 102  CONTINUE
+C --- CHECK FOR TOTAL CHARGE OF FINAL STATE MESONS TO DETERMINE ---
+C --- THE KIND OF BARYONS TO BE PRODUCED TAKING INTO ACCOUNT    ---
+C --- CHARGE AND STRANGENESS CONSERVATION                       ---
+      NCHT=NP-NM
+      IF (NCHT .LT. 0) GO TO 103
+      IF (NCHT .EQ. 0) GO TO 104
+      IF (NCHT .GT. 0) GO TO 105
+C
+ 103  CONTINUE
+C --- XI0 P ---
+      IPA(1)=26
+      IPA(2)=14
+      IF (NCHT .EQ. -1) GO TO 120
+C --- CHARGE MISMATCH ==> TAKE A S+ AND CORRECT THE STRANGENESS ---
+C --- BY REPLACING A PI- BY K- ---
+C --- S+ P ---
+      IPA(1)=20
+      IPA(2)=14
+      NVEFIX=1
+      GO TO 120
+C
+ 104  CONTINUE
+C --- XI- P ---
+      IPA(1)=27
+      IPA(2)=14
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .LT. 0.5) GO TO 120
+C --- XI0 N ---
+      IPA(1)=26
+      IPA(2)=16
+      GO TO 120
+C
+ 105  CONTINUE
+C --- XI- N ---
+      IPA(1)=27
+      IPA(2)=16
+      GO TO 120
+C
+C --- NEUTRON TARGET ---
+ 112  CONTINUE
+C --- CHECK FOR TOTAL CHARGE OF FINAL STATE MESONS TO DETERMINE ---
+C --- THE KIND OF BARYONS TO BE PRODUCED TAKING INTO ACCOUNT    ---
+C --- CHARGE AND STRANGENESS CONSERVATION                       ---
+      NCHT=NP-NM
+      IF (NCHT .LT. -1) GO TO 113
+      IF (NCHT .EQ. -1) GO TO 114
+      IF (NCHT .GT. -1) GO TO 115
+C
+ 113  CONTINUE
+C --- XI0 P ---
+      IPA(1)=26
+      IPA(2)=14
+      IF (NCHT .EQ. -2) GO TO 120
+C --- CHARGE MISMATCH ==> TAKE A S+ AND CORRECT THE STRANGENESS ---
+C --- BY REPLACING A PI- BY K- ---
+C --- S+ P ---
+      IPA(1)=20
+      IPA(2)=14
+      NVEFIX=1
+      GO TO 120
+C
+ 114  CONTINUE
+C --- XI0 N ---
+      IPA(1)=26
+      IPA(2)=16
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .LT. 0.5) GO TO 120
+C --- XI- P ---
+      IPA(1)=27
+      IPA(2)=14
+      GO TO 120
+C
+ 115  CONTINUE
+C --- XI- N ---
+      IPA(1)=27
+      IPA(2)=16
+C
+C --- TAKE PIONS FOR ALL SECONDARY MESONS ---
+ 120  CONTINUE
+      NT=2
+C
+      IF (NP .EQ. 0) GO TO 122
+C
+C --- PI+ ---
+      DO 121 I=1,NP
+      NT=NT+1
+      IPA(NT)=7
+ 121  CONTINUE
+C
+ 122  CONTINUE
+      IF (NM .EQ. 0) GO TO 124
+C
+C --- PI- ---
+      DO 123 I=1,NM
+      NT=NT+1
+      IPA(NT)=9
+      IF (NVEFIX .GE. 1) IPA(NT)=13
+      IF (NPRT(4) .AND. (NVEFIX .GE. 1)) PRINT 3000
+ 3000 FORMAT(' *CASXM* K- INTRODUCED')
+      NVEFIX=NVEFIX-1
+ 123  CONTINUE
+C
+ 124  CONTINUE
+      IF (NZ .EQ. 0) GO TO 130
+C
+C --- PI0 ---
+      DO 125 I=1,NZ
+      NT=NT+1
+      IPA(NT)=8
+ 125  CONTINUE
+C
+C --- ALL SECONDARY PARTICLES HAVE BEEN DEFINED ---
+C --- NOW GO FOR MOMENTA AND X VALUES ---
+ 130  CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,2004) NT,(IPA(I),I=1,60)
+ 2004 FORMAT(' *CASXM* ',I3,' PARTICLES PRODUCED. MASS INDEX ARRAY : '/
+     $ 3(1H ,20(I3,1X)/))
+      GO TO 50
+C
+ 131  CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,2005)
+ 2005 FORMAT(' *CASXM* NO PARTICLES PRODUCED')
+C
+ 9999 CONTINUE
+      END
+      SUBROUTINE CASX0(K,INT,NFL)
+C
+C *** CASCADE OF XI0 ***
+C *** NVE 20-JAN-1989 CERN GENEVA ***
+C
+C XI0  UNDERGOES INTERACTION WITH NUCLEON WITHIN NUCLEUS.
+C CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE PIONS/KAONS.
+C IF NOT, ASSUME NUCLEAR EXCITATION OCCURS, DEGRADE INPUT PARTICLE
+C IN ENERGY AND NO OTHER PARTICLES ARE PRODUCED.
+C IF REACTION IS POSSIBLE FIND CORRECT NUMBER OF PIONS/PROTONS/
+C NEUTRONS PRODUCED USING AN INTERPOLATION TO MULTIPLICITY DATA.
+C REPLACE SOME PIONS OR PROTONS/NEUTRONS BY KAONS OR STRANGE BARYONS
+C ACCORDING TO AVERAGE MULTIPLICITY PER INELASTIC REACTIONS.
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      REAL N
+      DIMENSION PMUL(2,1200),ANORM(2,60),CECH(10),IIPA(12,2),B(2)
+      DIMENSION RNDM(1)
+      SAVE PMUL,ANORM
+      DATA CECH/0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0./
+C --- ARRAY IIPA DENOTES THE STRANGENESS AND CHARGE EXCHAGE REACTIONS ---
+C XI0 P --> S+ S0,  XI0 P --> S0 S+
+C XI0 P --> S+ L0,  XI0 P --> L0 S+
+C XI0 P --> P XI0
+C XI0 N --> S0 S0
+C XI0 N --> L0 L0
+C XI0 N --> XI- P,  XI0 N --> P XI-
+C XI0 N --> S+ S-,  XI0 N --> S- S+
+C XI0 N --> N XI0
+      DATA IIPA/20,21,20,18,14, 21,18,27,14,20,22,16,
+     *          21,20,18,20,26, 21,18,14,27,22,20,26/
+      DATA B/0.7,0.7/,C/1.25/
+C
+C --- INITIALIZATION INDICATED BY KGINIT(20) ---
+      IF (KGINIT(20) .NE. 0) GO TO 10
+      KGINIT(20)=1
+C
+C --- INITIALIZE PMUL AND ANORM ARRAYS ---
+      DO 9000 J=1,1200
+      DO 9001 I=1,2
+      PMUL(I,J)=0.0
+      IF (J .LE. 60) ANORM(I,J)=0.0
+ 9001 CONTINUE
+ 9000 CONTINUE
+C
+C *** COMPUTE NORMALIZATION CONSTANTS ***
+C
+C --- FOR P TARGET ---
+      L=0
+      DO 1 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF (NMM1 .LE. 0) NMM1=1
+      NPP1=NP1+1
+      DO 1 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 1 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 1
+      NT=NP+NM+NZ
+      IF ((NT .LE. 0) .OR. (NT .GT. 60)) GO TO 1
+      PMUL(1,L)=PMLTPC(NP,NM,NZ,NT,B(1),C)
+      ANORM(1,NT)=ANORM(1,NT)+PMUL(1,L)
+ 1    CONTINUE
+C --- FOR N TARGET ---
+      L=0
+      DO 2 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF (NMM1 .LE. 0) NMM1=1
+      NPP1=NP1+2
+      DO 2 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 2 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 2
+      NT=NP+NM+NZ
+      IF ((NT .LE. 0) .OR. (NT .GT. 60)) GO TO 2
+      PMUL(2,L)=PMLTPC(NP,NM,NZ,NT,B(2),C)
+      ANORM(2,NT)=ANORM(2,NT)+PMUL(2,L)
+ 2    CONTINUE
+C
+      DO 3 I=1,60
+      IF (ANORM(1,I) .GT. 0.) ANORM(1,I)=1./ANORM(1,I)
+      IF (ANORM(2,I) .GT. 0.) ANORM(2,I)=1./ANORM(2,I)
+ 3    CONTINUE
+C
+      IF (.NOT. NPRT(10)) GO TO 10
+C
+      WRITE(NEWBCD,2001)
+ 2001 FORMAT(' *CASX0* TABLES FOR MULT. DATA XI0 INDUCED REACTION',
+     $ ' FOR DEFINITION OF NUMBERS SEE FORTRAN CODING')
+      DO 4 NFL=1,2
+      WRITE(NEWBCD,2002) NFL
+ 2002 FORMAT(' *CASX0* TARGET PARTICLE FLAG',2X,I5)
+      WRITE(NEWBCD,2003) (ANORM(NFL,I),I=1,60)
+      WRITE(NEWBCD,2003) (PMUL(NFL,I),I=1,1200)
+ 2003 FORMAT(1H ,10E12.4)
+ 4    CONTINUE
+C
+C --- SELECT TARGET NUCLEON ---
+ 10   CONTINUE
+      NFL=2
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .LT. (ZNO2/ATNO2)) NFL=1
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      S=AMASQ+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(8)=AMASQ+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EAB=RS-TARMAS-RMASS(26)
+C
+C --- RESET STRANGENESS FIXING FLAG ---
+      NVEFIX=0
+C
+C *** ELASTIC SCATTERING ***
+      NP=0
+      NM=0
+      NZ=0
+      N=0.
+      IPA(1)=26
+      IPA(2)=14
+      IF (NFL .EQ. 2) IPA(2)=16
+C
+      IF (INT .EQ. 2) GO TO 20
+C
+C *** INTRODUCE CHARGE AND STRANGENESS EXCHANGE REACTIONS ***
+      IPLAB=IFIX(P*2.5)+1
+      IF (IPLAB .GT. 10) IPLAB=10
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .GT. (CECH(IPLAB)/ATNO2**0.42)) GO TO 120
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IRN=IFIX(RAN*5.)+1
+      IF (NFL .EQ. 2) IRN=5+IFIX(RAN*7.)+1
+      IF (NFL .EQ. 1) IRN=MAX(IRN,5)
+      IF (NFL .EQ. 2) IRN=MAX(IRN,12)
+      IPA(1)=IIPA(IRN,1)
+      IPA(2)=IIPA(IRN,2)
+      GO TO 120
+C
+C --- CHECK IF ENERGETICALLY POSSIBLE TO PRODUCE ONE EXTRA PION ---
+ 20   CONTINUE
+      IF (EAB .LE. RMASS(7)) GO TO 55
+C
+C --- NO. OF TOTAL PARTICLES VS SQRT(S)-MP-MSM ---
+      ALEAB=LOG(EAB)
+      N=3.62567+0.665843*ALEAB+0.336514*ALEAB*ALEAB
+     * +0.117712*ALEAB*ALEAB*ALEAB+0.0136912*ALEAB*ALEAB*ALEAB*ALEAB
+      N=N-2.
+C
+C --- NORMALIZATION CONSTANT FOR  KNO-DISTRIBUTION ---
+      ANPN=0.
+      DO 21 NT=1,60
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=PI*NT/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      ANPN=ANPN+ADDNVE
+ 21   CONTINUE
+      ANPN=1./ANPN
+C
+C --- CHECK FOR TARGET NUCLEON TYPE ---
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      EXCS=0.
+      GO TO (30,40),NFL
+C
+C --- PROTON TARGET ---
+ 30   CONTINUE
+      L=0
+      DO 31 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-2
+      IF (NMM1 .LE. 0) NMM1=1
+      NPP1=NP1+1
+      DO 31 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 31 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 31
+      NT=NP+NM+NZ
+      IF ((NT .LE. 0) .OR. (NT .GT. 60)) GO TO 31
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(1,L)*ANORM(1,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF (RAN .LT. EXCS) GO TO 100
+   31 CONTINUE
+      GO TO 80
+C
+C --- NEUTRON TARGET ---
+ 40   CONTINUE
+      L=0
+      DO 41 NP1=1,20
+      NP=NP1-1
+      NMM1=NP1-1
+      IF (NMM1 .LE. 0) NMM1=1
+      NPP1=NP1+2
+      DO 41 NM1=NMM1,NPP1
+      NM=NM1-1
+      DO 41 NZ1=1,20
+      NZ=NZ1-1
+      L=L+1
+      IF (L .GT. 1200) GO TO 41
+      NT=NP+NM+NZ
+      IF ((NT .LE. 0) .OR. (NT .GT. 60)) GO TO 41
+      TEST=-(PI/4.0)*(NT/N)**2
+      IF (TEST .LT. EXPXL) TEST=EXPXL
+      IF (TEST .GT. EXPXU) TEST=EXPXU
+      DUM1=ANPN*PI*NT*PMUL(2,L)*ANORM(2,NT)/(2.0*N*N)
+      DUM2=ABS(DUM1)
+      DUM3=EXP(TEST)
+      ADDNVE=0.0
+      IF (DUM2 .GE. 1.0) ADDNVE=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GE. 1.0E-10)) ADDNVE=DUM1*DUM3
+      EXCS=EXCS+ADDNVE
+      IF (RAN .LT. EXCS) GO TO 100
+   41 CONTINUE
+      GO TO 80
+C
+ 50   CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,1003) EAB,N,NFL,NP,NM,NZ
+ 1003 FORMAT(' *CASX0* XI0 -INDUCED CASCADE,',
+     $ ' AVAIL. ENERGY',2X,F8.4,
+     $ 2X,'<NTOT>',2X,F8.4,2X,'FROM',4(2X,I3),2X,'PARTICLES')
+      IF (INT .EQ. 1) CALL TWOB(27,NFL,N)
+      IF (INT .EQ. 2) CALL GENXPT(27,NFL,N)
+      GO TO 9999
+C
+C *** ENERGETICALLY NOT POSSIBLE TO PRODUCE ONE EXTRA PION ***
+ 55   CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,1001)
+ 1001 FORMAT(' *CASX0* CASCADE ENERGETICALLY NOT POSSIBLE',
+     $ ' CONTINUE WITH QUASI-ELASTIC SCATTERING')
+      GO TO 53
+C
+C *** EXCLUSIVE REACTION NOT FOUND ***
+ 80   CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,1004) RS,N
+ 1004 FORMAT(' *CASX0* XI0 -INDUCED CASCADE,',
+     $ ' EXCLUSIVE REACTION NOT FOUND',
+     $ ' TRY ELASTIC SCATTERING  AVAIL. ENERGY',2X,F8.4,2X,
+     $ '<NTOT>',2X,F8.4)
+C
+ 53   CONTINUE
+      INT=1
+      NP=0
+      NM=0
+      NZ=0
+      IPA(1)=26
+      IPA(2)=14
+      IF (NFL .EQ. 2) IPA(2)=16
+      GO TO 120
+C
+C *** INELASTIC INTERACTION HAS OCCURRED ***
+C *** NUMBER OF SECONDARY MESONS DETERMINED BY KNO DISTRIBUTION ***
+ 100  CONTINUE
+      DO 101 I=1,60
+      IPA(I)=0
+ 101  CONTINUE
+C
+      IF (INT .LE. 0) GO TO 131
+C
+C --- TAKE TARGET NUCLEON TYPE INTO ACCOUNT ---
+      GO TO (102,112),NFL
+C
+C --- PROTON TARGET ---
+ 102  CONTINUE
+C --- CHECK FOR TOTAL CHARGE OF FINAL STATE MESONS TO DETERMINE ---
+C --- THE KIND OF BARYONS TO BE PRODUCED TAKING INTO ACCOUNT    ---
+C --- CHARGE AND STRANGENESS CONSERVATION                       ---
+      NCHT=NP-NM
+      IF (NCHT .LT. 1) GO TO 103
+      IF (NCHT .EQ. 1) GO TO 104
+      IF (NCHT .GT. 1) GO TO 105
+C
+ 103  CONTINUE
+C --- XI0 P ---
+      IPA(1)=26
+      IPA(2)=14
+      IF (NCHT .EQ. 0) GO TO 120
+C --- CHARGE MISMATCH ==> TAKE A S+ AND CORRECT THE STRANGENESS ---
+C --- BY REPLACING A PI- BY K- ---
+C --- S+ P ---
+      IPA(1)=20
+      IPA(2)=14
+      NVEFIX=1
+      GO TO 120
+C
+ 104  CONTINUE
+C --- XI0 N ---
+      IPA(1)=26
+      IPA(2)=16
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .LT. 0.5) GO TO 120
+C --- XI- P ---
+      IPA(1)=27
+      IPA(2)=14
+      GO TO 120
+C
+ 105  CONTINUE
+C --- XI- N ---
+      IPA(1)=27
+      IPA(2)=16
+      GO TO 120
+C
+C --- NEUTRON TARGET ---
+ 112  CONTINUE
+C --- CHECK FOR TOTAL CHARGE OF FINAL STATE MESONS TO DETERMINE ---
+C --- THE KIND OF BARYONS TO BE PRODUCED TAKING INTO ACCOUNT    ---
+C --- CHARGE AND STRANGENESS CONSERVATION                       ---
+      NCHT=NP-NM
+      IF (NCHT .LT. 0) GO TO 113
+      IF (NCHT .EQ. 0) GO TO 114
+      IF (NCHT .GT. 0) GO TO 115
+C
+ 113  CONTINUE
+C --- XI0 P ---
+      IPA(1)=26
+      IPA(2)=14
+      IF (NCHT .EQ. -1) GO TO 120
+C --- CHARGE MISMATCH ==> TAKE A S+ AND CORRECT THE STRANGENESS ---
+C --- BY REPLACING A PI- BY K- ---
+C --- S+ P ---
+      IPA(1)=20
+      IPA(2)=14
+      NVEFIX=1
+      GO TO 120
+C
+ 114  CONTINUE
+C --- XI0 N ---
+      IPA(1)=26
+      IPA(2)=16
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .LT. 0.5) GO TO 120
+C --- XI- P ---
+      IPA(1)=27
+      IPA(2)=14
+      GO TO 120
+C
+ 115  CONTINUE
+C --- XI- N ---
+      IPA(1)=27
+      IPA(2)=16
+C
+C --- TAKE PIONS FOR ALL SECONDARY MESONS ---
+C --- REPLACE PI BY K IN CASE OF STRANGENESS TO BE FIXED ---
+ 120  CONTINUE
+      NT=2
+C
+      IF (NP .EQ. 0) GO TO 122
+C
+C --- PI+ ---
+      DO 121 I=1,NP
+      NT=NT+1
+      IPA(NT)=7
+ 121  CONTINUE
+C
+ 122  CONTINUE
+      IF (NM .EQ. 0) GO TO 124
+C
+C --- PI- ---
+      DO 123 I=1,NM
+      NT=NT+1
+      IPA(NT)=9
+      IF (NVEFIX .GE. 1) IPA(NT)=13
+      IF (NPRT(4) .AND. (NVEFIX .GE. 1)) PRINT 3000
+ 3000 FORMAT(' *CASX0* K- INTRODUCED')
+      NVEFIX=NVEFIX-1
+ 123  CONTINUE
+C
+ 124  CONTINUE
+      IF (NZ .EQ. 0) GO TO 130
+C
+C --- PI0 ---
+      DO 125 I=1,NZ
+      NT=NT+1
+      IPA(NT)=8
+ 125  CONTINUE
+C
+C --- ALL SECONDARY PARTICLES HAVE BEEN DEFINED ---
+C --- NOW GO FOR MOMENTA AND X VALUES ---
+ 130  CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,2004) NT,(IPA(I),I=1,60)
+ 2004 FORMAT(' *CASX0* ',I3,' PARTICLES PRODUCED. MASS INDEX ARRAY : '/
+     $ 3(1H ,20(I3,1X)/))
+      GO TO 50
+C
+ 131  CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,2005)
+ 2005 FORMAT(' *CASX0* NO PARTICLES PRODUCED')
+C
+ 9999 CONTINUE
+      END
+*-- AUTHOR :
+      FUNCTION CINEMA(EK1)
+C
+C *** INELASTICITY IN NUCLEAR INTERACTIONS AS A FUNCTION ***
+C *** OF ATOMIC NUMBER ATNO2 AND KINETIC ENERGY EK1 ***
+C *** NVE 12-JUL-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (14-OCT-1987)
+C
+C THE FUNCTIONAL DEPENDENCE AND THE PARAMETERS HAVE BEEN OBTAINED
+C BY STUDY OF VARIOUS NUCLEAR STRUCTURE MODELS.
+C BUT: IT IS OF COURSE AN INTERPOLATION AS FUNCTION OF ATOMIC
+C      NUMBER, FOR CERTAIN NUCLEI A DIFFERENT DESCRIPTION MAY BE
+C      MORE ADEQUATE. DETAILED TESTS HAVE BEEN PERFORMED FOR
+C      FE, CU, PB ,U AND SOME MIXTURES LIKE NAI, BGO, CONCRETE.
+C
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      CINEMA=0.0
+      ND=IND+1
+      ALA=LOG(ATNO2)
+      ALEK1=LOG(EK1)
+      SIG1=0.50
+      SIG2=0.50
+      EM=0.2390+0.0408*ALA**2
+      IF (EM. GT. 1.0) EM=1.0
+      CINEM=0.0019*ALA**3
+      IF(CINEM.GT.0.15) CINEM=0.15
+      IF (PARMAT(ND,10) .GE. 0.01) CINEM=CINEM*PARMAT(ND,10)
+C
+      IF (ALEK1 .GT. EM) GO TO 1
+C
+      CORR=-(ALEK1-EM)**2/(2.0*SIG1**2)
+      IF (CORR .LT. EXPXL) CORR=EXPXL
+      IF (CORR .GT. EXPXU) CORR=EXPXU
+      DUM1=-EK1*CINEM
+      DUM2=ABS(DUM1)
+      DUM3=EXP(CORR)
+      CINEMA=0.0
+      IF (DUM2 .GE. 1.0) CINEMA=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) CINEMA=DUM1*DUM3
+      GO TO 2
+C
+ 1    CONTINUE
+      CORR=-(ALEK1-EM)**2/(2.0*SIG2**2)
+      IF (CORR .LT. EXPXL) CORR=EXPXL
+      IF (CORR .GT. EXPXU) CORR=EXPXU
+      DUM1=-EK1*CINEM
+      DUM2=ABS(DUM1)
+      DUM3=EXP(CORR)
+      CINEMA=0.0
+      IF (DUM2 .GE. 1.0) CINEMA=DUM1*DUM3
+      IF ((DUM2 .LT. 1.0) .AND. (DUM3 .GT. 1.0E-10)) CINEMA=DUM1*DUM3
+C
+ 2    CONTINUE
+      IF (CINEMA .LT. -EK1) CINEMA=-EK1
+C
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE COHERT(IPPP,NFL,AVERN)
+C
+C *** GENERATION OF X- AND PT- VALUES FOR ALL PRODUCED PARTICLES ***
+C
+C
+C GENERATION OF DIFFRACTION DISSOCIATION AT HIGH ENERGIES
+C (NOT USED IN STANDARD VERSION)
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      COMMON/GENIN /TECM,AMASS(18),NPG,KGENEV
+      COMMON/GENOUT/PCM(5,18),WGT
+C
+C
+      REAL NUCSUP
+      DIMENSION SIDE(200),C1PAR(5),G1PAR(5),NUCSUP(5)
+      DIMENSION RNDM(3)
+      DATA C1PAR/0.6,0.6,0.35,0.15,0.10/
+      DATA G1PAR/2.6,2.6,1.8,1.30,1.20/
+      DATA NUCSUP/1.0,0.8,0.6,0.5,0.4/
+C     DATA CB/3.0/
+      DATA CB/0.01/
+      BPP(X)=5.000+0.300*LOG(X)
+
+C
+      MX =MXGKPV-20
+      MX1=MX+1
+      MX2=MX+2
+      MX3=MX+3
+      MX4=MX+4
+      MX5=MX+5
+      MX6=MX+6
+      MX7=MX+7
+      MX8=MX+8
+      EK=ENP(5)
+      EN=ENP(6)
+      P=ENP(7)
+      S=ENP(8)
+      RS=ENP(9)
+      CFA=0.025*((ATNO2-1.)/120.)*EXP(-(ATNO2-1.)/120.)
+      IF(P.LT.0.001) GOTO 60
+      NT=0
+C**
+      IREHMF=4
+      IF(IABS(IPA(1)).NE.IPART) IREHMF=5
+
+C** CHECK MASS-INDICES FOR ALL PARTICLES
+C**
+      DO 1 I=1,100
+      IF(IPA(I).EQ.0) GOTO 1
+      NT=NT+1
+      IPA(NT)=IPA(I)
+    1 CONTINUE
+      CALL VZERO(IPA(NT+1),MXGKCU-NT)
+C**
+C** SET THE EFFECTICE 4-MOMENTUM-VECTOR FOR INTERACTION
+C**
+      PV( 1,MXGKPV-1)=P*PX
+      PV( 2,MXGKPV-1)=P*PY
+      PV( 3,MXGKPV-1)=P*PZ
+      PV( 4,MXGKPV-1)=EN
+      PV( 5,MXGKPV-1)=AMAS
+      PV( 6,MXGKPV-1)=NCH
+      PV( 7,MXGKPV-1)=TOF
+      PV( 8,MXGKPV-1)=IPART
+      PV( 9,MXGKPV-1)=0.
+      PV(10,MXGKPV-1)=USERW
+      IER(48)=IER(48)+1
+C**
+C** DISTRIBUTE PARTICLES IN FORWARD AND BACKWARD HEMISPHERE OF CMS
+C** OF THE HADRON NUCLEON INTERACTION
+C**
+      SIDE(1)= 1.
+      SIDE(2)=-1.
+      TARG=0.
+      IFOR=1
+      IBACK=1
+      DO 3 I=1,NT
+      IF (I .LE. 2) GO TO 78
+      SIDE(I)= -1.
+      IF (SIDE(I) .LT. 0.) GO TO 76
+C
+C --- PARTICLE IN FORWARD HEMISPHERE ---
+ 77   CONTINUE
+      IFOR=IFOR+1
+      IF (IFOR .LE. 18) GO TO 78
+C
+C --- CHANGE IT TO BACKWARD ---
+      SIDE(I)=-1.
+      IFOR=IFOR-1
+      IBACK=IBACK+1
+      GO TO 78
+C
+C --- PARTICLE IN BACKWARD HEMISPHERE ---
+ 76   CONTINUE
+      IBACK=IBACK+1
+      IF (IBACK .LE. 18) GO TO 78
+C
+C --- CHANGE IT TO FORWARD ---
+      SIDE(I)=1.
+      IBACK=IBACK-1
+      IFOR=IFOR+1
+C**
+C** SUPPRESSION OF CHARGED PIONS FOR VARIOUS REASONS
+C**
+   78 IF(IPART.EQ.15.OR.IPART.GE.17) GOTO 3
+      IF(ABS(IPA(I)).GE.10) GOTO 3
+      IF(ABS(IPA(I)).EQ. 8) GOTO 3
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.(10.-P)/6.) GOTO 3
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.ATNO2/300.) GOTO 3
+      IPA(I)=14
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.ZNO2/ATNO2) IPA(I)=16
+      TARG=TARG+1.
+    3 CONTINUE
+      TB=2.*IBACK
+      CALL GRNDM(RNDM,1)
+      IF(RS.LT.(2.0+RNDM(1))) TB=(2.*IBACK+NT)/2.
+C**
+C** NUCLEONS + SOME PIONS FROM INTRANUCLEAR CASCADE
+C**
+      AFC=0.312+0.200*LOG(LOG(S))
+      XTARG=AFC*(ATNO2**0.33-1.0)*TB
+      IF(XTARG.LE.0.) XTARG=0.01
+      CALL POISSO(XTARG,NTARG)
+      NT2=NT+NTARG
+      IF(NT2.LE.MXGKPV-30) GOTO 2
+      NT2=MXGKPV-30
+      NTARG=NT2-NT
+    2 CONTINUE
+      IF(NPRT(4))
+     *WRITE(NEWBCD,3001) NTARG,NT
+      NT1=NT+1
+      IF(NTARG.EQ.0) GOTO 51
+      IPX=IFIX(P/3.)+1
+      IF(IPX.GT.5) IPX=5
+      DO 4 I=NT1,NT2
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IF(RAN.LT.NUCSUP(IPX)) GOTO 52
+      CALL GRNDM(RNDM,1)
+      IPA(I)=-(7+IFIX(RNDM(1)*3.0))
+      GOTO 4
+   52 IPA(I)=-16
+      PNRAT=1.-ZNO2/ATNO2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.PNRAT) IPA(I)=-14
+      TARG=TARG+1.
+    4 SIDE(I)=-2.
+      NT=NT2
+C**
+C** CHOOSE MASSES AND CHARGES FOR ALL PARTICLES
+C**
+   51 DO 5 I=1,NT
+      IPA1=ABS(IPA(I))
+      PV(5,I)=RMASS(IPA1)
+      PV(6,I)=RCHARG(IPA1)
+      PV(7,I)=1.
+      IF(PV(5,I).LT.0.) PV(7,I)=-1.
+      PV(5,I)=ABS(PV(5,I))
+    5 CONTINUE
+C**
+C** MARK LEADING STRANGE PARTICLES
+C**
+      LEAD=0
+      IF(IPART.LT.10.OR.IPART.EQ.14.OR.IPART.EQ.16) GOTO 6
+      IPA1=ABS(IPA(1))
+      IF(IPA1.LT.10.OR.IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 531
+      LEAD=IPA1
+      GOTO 6
+  531 IPA1=ABS(IPA(2))
+      IF(IPA1.LT.10.OR.IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 6
+      LEAD=IPA1
+C**
+C** CHECK AVAILABLE KINETIC ENERGY , CHANGE HEMISPHERE FOR PARTICLES
+C** UNTIL IT FITS
+C**
+    6 IF(NT.LE.1) GOTO 60
+      TAVAI=0.
+      DO 7 I=1,NT
+      IF(SIDE(I).LT.-1.5) GOTO 7
+      TAVAI=TAVAI+ABS(PV(5,I))
+    7 CONTINUE
+CJOK MODIFIED ACCORDING TO D.HECK
+      IF(TAVAI.LT.RS-0.00001) GOTO 12
+      IF(NPRT(4))
+     $ WRITE(NEWBCD,3002) (IPA(I),I=1,20),(SIDE(I),I=1,20),TAVAI,RS
+ 3002 FORMAT(' *COHERT* CHECK AVAILABLE ENERGIES'/
+     $ 1H ,20I5/1H ,20F5.0/1H ,'TAVAI,RS ',2F10.3)
+      DO 10 I=1,NT
+      II=NT-I+1
+      IF(SIDE(II).LT.-1.5) GOTO 10
+      IF(II.EQ.NT) GOTO 11
+      NT1=II+1
+      NT2=NT
+      DO 8 J=NT1,NT2
+      IPA(J-1)=IPA(J)
+      SIDE(J-1)=SIDE(J)
+      DO 8 K=1,10
+    8 PV(K,J-1)=PV(K,J)
+      GOTO 11
+   10 CONTINUE
+   11 SIDE(NT)=0.
+      IPA(NT)=0
+      NT=NT-1
+      GOTO 6
+   12 IF(NT.LE.1) GOTO 60
+      B=BPP(ATNO2)
+      IF(B.LT.CB) B=CB
+C**
+C** CHOOSE MASSES FOR THE 3 CLUSTER: 1. FORWARD CLUSTER
+C**   2. BACKWARD MESON CLUSTER  3. BACKWARD NUCLEON CLUSTER
+C**
+      RMC0=0.
+      RMD0=0.
+      RME0=0.
+      NTC=0
+      NTD=0
+      NTE=0
+      DO 31 I=1,NT
+      IF(SIDE(I).GT.0.) RMC0=RMC0+ABS(PV(5,I))
+      IF(SIDE(I).GT.0.) NTC =NTC +1
+      IF(SIDE(I).LT.0..AND.SIDE(I).GT.-1.5) RMD0=RMD0+ABS(PV(5,I))
+      IF(                  SIDE(I).LT.-1.5) RME0=RME0+ABS(PV(5,I))
+      IF(SIDE(I).LT.0..AND.SIDE(I).GT.-1.5) NTD =NTD +1
+      IF(                  SIDE(I).LT.-1.5) NTE =NTE +1
+   31 CONTINUE
+   32 CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      RMC=RMC0
+      IF(NTC.LE.1) GOTO 33
+      NTC1=NTC
+      IF(NTC1.GT.5) NTC1=5
+      RMC=-LOG(1.-RAN)
+      GPAR=G1PAR(NTC1)
+      CPAR=C1PAR(NTC1)
+      DUMNVE=GPAR
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      RMC=RMC0+RMC**CPAR/DUMNVE
+   33 RMD=RMD0
+      IF(NTD.LE.1) GOTO 34
+      NTD1=NTD
+      IF(NTD1.GT.5) NTD1=5
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      RMD=-LOG(1.-RAN)
+      GPAR=G1PAR(NTD1)
+      CPAR=C1PAR(NTD1)
+      DUMNVE=GPAR
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      RMD=RMD0+RMD**CPAR/DUMNVE
+   34 IF(RMC+RMD.LT.RS) GOTO 35
+      IF (RMC.LE.RMC0.AND.RMD.LE.RMD0) THEN
+         HNRMDC = 0.999*RS/(RMC+RMD)
+         RMD = RMD*HNRMDC
+         RMC = RMC*HNRMDC
+      ELSE
+         RMC=0.1*RMC0+0.9*RMC
+         RMD=0.1*RMD0+0.9*RMD
+      ENDIF
+      GOTO 34
+   35 IF(NTE.LE.0) GOTO 38
+      RME=RME0
+      IF(NTE.EQ.1) GOTO 38
+      NTE1=NTE
+      IF(NTE1.GT.5) NTE1=5
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      RME=-LOG(1.-RAN)
+      GPAR=G1PAR(NTE1)
+      CPAR=C1PAR(NTE1)
+      DUMNVE=GPAR
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      RME=RME0+RME**CPAR/DUMNVE
+C**
+C** SET BEAM , TARGET OF FIRST INTERACTION IN CMS
+C**
+   38 PV(1,MX1)=0.
+      PV(2,MX1)=0.
+      PV(3,MX1)=P
+      PV(5,MX1)=ABS(AMAS)
+      PV(4,MX1)=SQRT(P*P+AMAS*AMAS)
+      PV(1,MX2)=0.
+      PV(2,MX2)=0.
+      PV(3,MX2)=0.
+      PV(4,MX2)=MP
+      PV(5,MX2)=MP
+
+C** TRANSFORM INTO CMS.
+
+      CALL ADD(MX1,MX2,MX )
+      CALL LOR(MX1,MX ,MX1)
+      CALL LOR(MX2,MX ,MX2)
+      PF=(S+RMD*RMD-RMC*RMC)**2 - 4*S*RMD*RMD
+      IF(PF.LT.0.0001) PF=0.0001
+      DUMNVE=2.0*RS
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      PF=SQRT(PF)/DUMNVE
+      IF(NPRT(4)) WRITE(6,2002) PF,RMC,RMD,RS
+C**
+C** SET FINAL STATE MASSES AND ENERGIES IN CMS
+C**
+      PV(5,MX3)=RMC
+      PV(5,MX4)=RMD
+      PV(4,MX3)=SQRT(PF*PF+PV(5,MX3)*PV(5,MX3))
+      PV(4,MX4)=SQRT(PF*PF+PV(5,MX4)*PV(5,MX4))
+C**
+C** SET |T| AND |TMIN|
+C**
+      T=-1.0E10
+      CALL GRNDM(RNDM,1)
+      IF (B .NE. 0.0) T=LOG(1.-RNDM(1))/B
+      CALL LENGTX(MX1,PIN)
+      TACMIN=(PV(4,MX1)-PV(4,MX3))**2-(PIN-PF)**2
+C**
+C** CACULATE (SIN(TETA/2.)**2 AND COS(TETA), SET AZIMUTH ANGLE PHI
+C**
+      DUMNVE=4.0*PIN*PF
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      CTET=-(T-TACMIN)/DUMNVE
+      CTET=1.0-2.0*CTET
+      IF (CTET .GT. 1.0) CTET=1.0
+      IF (CTET .LT. -1.0) CTET=-1.0
+      DUMNVE=1.0-CTET*CTET
+      IF (DUMNVE .LT. 0.0) DUMNVE=0.0
+      STET=SQRT(DUMNVE)
+      CALL GRNDM(RNDM,1)
+      PHI=RNDM(1)*TWPI
+C**
+C** CALCULATE FINAL STATE MOMENTA IN CMS
+C**
+      PV(1,MX3)=PF*STET*SIN(PHI)
+      PV(2,MX3)=PF*STET*COS(PHI)
+      PV(3,MX3)=PF*CTET
+      PV(1,MX4)=-PV(1,MX3)
+      PV(2,MX4)=-PV(2,MX3)
+      PV(3,MX4)=-PV(3,MX3)
+C**
+C** SIMULATE BACKWARD NUCLEON CLUSTER IN LAB. SYSTEM AND TRANSFORM IN
+C** CMS.
+C**
+      IF(NTE.EQ.0) GOTO 28
+      GA=1.2
+      EKIT1=0.04
+      EKIT2=0.6
+      IF(EK.GT.5.) GOTO 666
+      EKIT1=EKIT1*EK**2/25.
+      EKIT2=EKIT2*EK**2/25.
+  666 A=(1.-GA)/(EKIT2**(1.-GA)-EKIT1**(1.-GA))
+      DO 29 I=1,NT
+      IF(SIDE(I).GT.-1.5) GOTO 29
+      CALL GRNDM(RNDM,3)
+      RAN=RNDM(1)
+      EKIT=(RAN*(1.-GA)/A+EKIT1**(1.-GA))**(1./(1.-GA))
+      PV(4,I)=EKIT+PV(5,I)
+      DUMNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP=SQRT(DUMNVE)
+      RAN=RNDM(2)
+      COST=LOG(2.23*RAN+0.383)/0.96
+      IF (COST .LT. -1.0) COST=-1.0
+      IF (COST .GT. 1.0) COST=1.0
+      DUMNVE=1.0-COST*COST
+      IF (DUMNVE .LT. 0.0) DUMNVE=0.0
+      SINT=SQRT(DUMNVE)
+      PHI=TWPI*RNDM(3)
+      PV(1,I)=PP*SINT*SIN(PHI)
+      PV(2,I)=PP*SINT*COS(PHI)
+      PV(3,I)=PP*COST
+      CALL LOR(I,MX ,I)
+   29 CONTINUE
+C**
+C** FRAGMENTATION OF FORWARD CLUSTER AND BACKWARD MESON CLUSTER
+C**
+   28 PV(1,1)=PV(1,MX3)
+      PV(2,1)=PV(2,MX3)
+      PV(3,1)=PV(3,MX3)
+      PV(4,1)=PV(4,MX3)
+      PV(1,2)=PV(1,MX4)
+      PV(2,2)=PV(2,MX4)
+      PV(3,2)=PV(3,MX4)
+      PV(4,2)=PV(4,MX4)
+      DO 17 I=MX5,MX6
+      DO 16 J=1,3
+   16 PV(J,I)=-PV(J,I-2)
+      DO 17 J=4,5
+   17 PV(J,I)= PV(J,I-2)
+      KGENEV=1
+      IF(NTC.LE.1) GOTO 26
+      TECM= PV(5,MX3)
+      NPG=0
+      DO 18 I=1,NT
+      IF(SIDE(I).LT.0.) GOTO 18
+      NPG=NPG+1
+      AMASS(NPG)=ABS(PV(5,I))
+   18 CONTINUE
+      IF(NPRT(4)) WRITE(NEWBCD,2004) TECM,NPG,(AMASS(I),I=1,NPG)
+      CALL PHASP
+      NPG=0
+      DO 19 I=1,NT
+      IF(SIDE(I).LT.0.) GOTO 19
+      NPG=NPG+1
+      PV(1,I)=PCM(1,NPG)
+      PV(2,I)=PCM(2,NPG)
+      PV(3,I)=PCM(3,NPG)
+      PV(4,I)=PCM(4,NPG)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      CALL LOR(I,MX5,I)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+   19 CONTINUE
+   26 IF(NTD.LE.1) GOTO 27
+      TECM= PV(5,MX4)
+      NPG=0
+      DO 20 I=1,NT
+      IF(SIDE(I).GT.0..OR.SIDE(I).LT.-1.5) GOTO 20
+      NPG=NPG+1
+      AMASS(NPG)=ABS(PV(5,I))
+   20 CONTINUE
+      IF(NPRT(4)) WRITE(NEWBCD,2004) TECM,NPG,(AMASS(I),I=1,NPG)
+      CALL PHASP
+      NPG=0
+      DO 21 I=1,NT
+      IF(SIDE(I).GT.0..OR.SIDE(I).LT.-1.5) GOTO 21
+      NPG=NPG+1
+      PV(1,I)=PCM(1,NPG)
+      PV(2,I)=PCM(2,NPG)
+      PV(3,I)=PCM(3,NPG)
+      PV(4,I)=PCM(4,NPG)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      CALL LOR(I,MX6,I)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+   21 CONTINUE
+C**
+C** LORENTZ TRANSFORMATION IN LAB SYSTEM
+C**
+   27 TARG=0.
+      DO 36 I=1,NT
+      IF(PV(5,I).GT.0.5) TARG=TARG+1.
+      CALL LOR(I,MX2,I)
+   36 CONTINUE
+      IF(TARG.LT.0.5) TARG=1.
+C**
+C** SOMETIMES THE LEADING STRANGE PARTICLES ARE LOST , SET THEM BACK
+C**
+      IF(LEAD.EQ.0) GOTO 6085
+      DO 6081 I=1,NT
+      IF(ABS(IPA(I)).EQ.LEAD) GOTO 6085
+ 6081 CONTINUE
+      I=1
+      IF(LEAD.GE.14.AND.ABS(IPA(2)).GE.14) I=2
+      IF(LEAD.LT.14.AND.ABS(IPA(2)).LT.14) I=2
+      IPA(I)=LEAD
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      PV(5,I)=RMASS(LEAD)
+      PV(7,I)=1.
+      IF(PV(5,I).LT.0.) PV(7,I)=-1.
+      PV(5,I)=ABS(PV(5,I))
+      PV(6,I)=RCHARG(LEAD)
+      PV(4,I)=PV(5,I)+EKIN
+      CALL LENGTX(I,PP)
+      DUMNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP1=SQRT(DUMNVE)
+C
+      IF (PP .GE. 1.0E-6) GO TO 8000
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP1*COS(RTHNVE)
+      GO TO 8001
+ 8000 CONTINUE
+      PV(1,I)=PV(1,I)*PP1/PP
+      PV(2,I)=PV(2,I)*PP1/PP
+      PV(3,I)=PV(3,I)*PP1/PP
+ 8001 CONTINUE
+C
+C** FOR VARIOUS REASONS, THE ENERGY BALANCE IS NOT SUFFICIENT,
+C** CHECK THAT,  ENERGY BALANCE, ANGLE OF FINAL SYSTEM E.T.C.
+ 6085 KGENEV=1
+      PV(1,MX4)=0.
+      PV(2,MX4)=0.
+      PV(3,MX4)=P
+      PV(4,MX4)=SQRT(P*P+AMAS*AMAS)
+      PV(5,MX4)=ABS(AMAS)
+      EKIN0=PV(4,MX4)-PV(5,MX4)
+      PV(1,MX5)=0.
+      PV(2,MX5)=0.
+      PV(3,MX5)=0.
+      PV(4,MX5)=MP*TARG
+      PV(5,MX5)=PV(4,MX5)
+      EKIN=PV(4,MX4)+PV(4,MX5)
+      I=MX4
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      I=MX5
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      CALL ADD(MX4,MX5,MX6)
+      CALL LOR(MX4,MX6,MX4)
+      CALL LOR(MX5,MX6,MX5)
+      TECM=PV(4,MX4)+PV(4,MX5)
+      NPG=NT
+      PV(1,MX8)=0.
+      PV(2,MX8)=0.
+      PV(3,MX8)=0.
+      PV(4,MX8)=0.
+      PV(5,MX8)=0.
+      EKIN1=0.
+      DO 598 I=1,NPG
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+      CALL ADD(MX8,I,MX8)
+      EKIN1=EKIN1+PV(4,I)-PV(5,I)
+      EKIN=EKIN-PV(5,I)
+      IF(I.GT.18) GOTO 598
+      AMASS(I)=PV(5,I)
+  598 CONTINUE
+      IF(NPG.GT.18) GOTO 597
+      CALL PHASP
+      EKIN=0.
+      DO 599 I=1,NPG
+      PV(1,MX7)=PCM(1,I)
+      PV(2,MX7)=PCM(2,I)
+      PV(3,MX7)=PCM(3,I)
+      PV(4,MX7)=PCM(4,I)
+      PV(5,MX7)=AMASS(I)
+      CALL LOR(MX7,MX5,MX7)
+  599 EKIN=EKIN+PV(4,MX7)-PV(5,MX7)
+      CALL ANG(MX8,MX4,COST,TETA)
+      IF(NPRT(4)) WRITE(NEWBCD,2003) TETA,EKIN0,EKIN1,EKIN
+C**
+C** MAKE SHURE, THAT  KINETIC ENERGIES ARE CORRECT
+C** THE 3. CLUSTER IS NOT PRODUCED WITHIN PROPER KINEMATICS!!!
+C** EKIN= KINETIC ENERGY THEORETICALLY
+C** EKIN1= KINETIC ENERGY SIMULATED
+C**
+  597 EKIN1=0.
+      IF(EKIN1.EQ.0.) GOTO 600
+      PV(1,MX7)=0.
+      PV(2,MX7)=0.
+      PV(3,MX7)=0.
+      PV(4,MX7)=0.
+      PV(5,MX7)=0.
+      WGT=EKIN/EKIN1
+      EKIN1=0.
+      DO 602 I=1,NT
+      EKIN=PV(4,I)-PV(5,I)
+      EKIN=EKIN*WGT
+      PV(4,I)=EKIN+PV(5,I)
+      DUMNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP=SQRT(DUMNVE)
+      CALL LENGTX(I,PP1)
+C
+      IF (PP1 .GE. 1.0E-6) GO TO 8002
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP*COS(RTHNVE)
+      GO TO 8003
+ 8002 CONTINUE
+      PV(1,I)=PV(1,I)*PP/PP1
+      PV(2,I)=PV(2,I)*PP/PP1
+      PV(3,I)=PV(3,I)*PP/PP1
+ 8003 CONTINUE
+C
+      EKIN1=EKIN1+EKIN
+      CALL ADD(MX7,I,MX7)
+  602 CONTINUE
+      CALL ANG(MX7,MX4,COST,TETA)
+      IF(NPRT(4)) WRITE(NEWBCD,2003) TETA,EKIN0,EKIN1
+C**
+C** ROTATE IN DIRECTION OF Z-AXIS, SEE COMMENTS IN 'GENXPT'
+C**
+  600 PV(1,MX7)=0.
+      PV(2,MX7)=0.
+      PV(3,MX7)=0.
+      PV(4,MX7)=0.
+      PV(5,MX7)=0.
+      DO 596 I=1,NT
+      CALL ADD(MX7,I,MX7)
+  596 CONTINUE
+*          CALL RANNOR(RAN1,RAN2)
+      CALL GRNDM(RNDM,2)
+      RY=RNDM(1)
+      RZ=RNDM(2)
+      RX=6.283185*RZ
+      A1=SQRT(-2.*LOG(RY))
+      RAN1=A1*SIN(RX)
+      RAN2=A1*COS(RX)
+      PV(1,MX7)=PV(1,MX7)+RAN1*0.020*TARG
+      PV(2,MX7)=PV(2,MX7)+RAN2*0.020*TARG
+      CALL DEFS(MX4,MX7,MX8)
+      PV(1,MX7)=0.
+      PV(2,MX7)=0.
+      PV(3,MX7)=0.
+      PV(4,MX7)=0.
+      PV(5,MX7)=0.
+C     DO 595 I=1,NT
+C     CALL TRAC(I,MX8,I)
+C 595 CALL ADD(MX7,I,MX7)
+C     CALL ANG(MX7,MX4,COST,TETA)
+      IF(NPRT(4)) WRITE(NEWBCD,2003) TETA
+C**
+C** ROTATE IN DIRECTION OF PRIMARY PARTICLE
+C**
+      DEKIN=0.
+      NPIONS=0
+      EK1=0.
+      DO 25 I=1,NT
+      CALL DEFS1(I,MXGKPV-1,I)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+      IF(ATNO2.LT.1.5) GOTO 25
+      CALL LENGTX(I,PP)
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      CALL NORMAL(RAN)
+      EKIN=EKIN-CFA*(1.+0.5*RAN)
+      IF (EKIN .LT. 1.0E-6) EKIN=1.0E-6
+      CALL STEEQ(XXH,I)
+      DEKIN=DEKIN+EKIN*(1.-XXH)
+      EKIN=EKIN*XXH
+      IF(ABS(IPA(I)).GE.7.AND.ABS(IPA(I)).LE.9) NPIONS=NPIONS+1
+      IF(ABS(IPA(I)).GE.7.AND.ABS(IPA(I)).LE.9) EK1=EK1+EKIN
+      PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
+      PV(4,I)=EKIN+ABS(PV(5,I))
+C
+      IF (PP .GE. 1.0E-6) GO TO 8004
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP1*COS(RTHNVE)
+      GO TO 8005
+ 8004 CONTINUE
+      PV(1,I)=PV(1,I)*PP1/PP
+      PV(2,I)=PV(2,I)*PP1/PP
+      PV(3,I)=PV(3,I)*PP1/PP
+ 8005 CONTINUE
+C
+   25 CONTINUE
+      EK1=0.
+      IF(EK1.EQ.0.) GOTO 23
+      IF(NPIONS.LE.0) GOTO 23
+      DEKIN=1.+DEKIN/EK1
+      DO 22 I=1,NT
+      IF(ABS(IPA(I)).LT.7.OR.ABS(IPA(I)).GT.9) GOTO 22
+      CALL LENGTX(I,PP)
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      EKIN=EKIN*DEKIN
+      IF (EKIN .LT. 1.0E-6) EKIN=1.0E-6
+      PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
+      PV(4,I)=EKIN+ABS(PV(5,I))
+C
+      IF (PP .GE. 1.0E-6) GO TO 8006
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP1*COS(RTHNVE)
+      GO TO 8007
+ 8006 CONTINUE
+      PV(1,I)=PV(1,I)*PP1/PP
+      PV(2,I)=PV(2,I)*PP1/PP
+      PV(3,I)=PV(3,I)*PP1/PP
+ 8007 CONTINUE
+C
+   22 CONTINUE
+   23 IGEN=0
+      IF(ATNO2.LT.1.5) GOTO 40
+C**
+C** ADD BLACK TRACK PARTICLES
+C**
+      CALL HIGHAB(SPROB)
+      TEX=ENP(1)
+      SPALL=TARG
+      IF(TEX.LT.0.001) GOTO 445
+      BLACK=(1.5+1.25*TARG)*ENP(1)/(ENP(1)+ENP(3))
+      CALL POISSO(BLACK,NBL)
+      IF(NPRT(4))
+     *WRITE(NEWBCD,3003) NBL,TEX
+      IF(IFIX(TARG)+NBL.GT.ATNO2) NBL=ATNO2-TARG
+      IF(NT+NBL.GT.MXGKPV-2) NBL=MXGKPV-2-NT
+      IF(NBL.LE.0) GOTO 445
+      EKIN=TEX/NBL
+      EKIN2=0.
+      CALL STEEP(XX)
+      DO 441 I=1,NBL
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SPROB) GOTO 441
+      IF(NT.EQ.MXGKPV-2) GOTO 441
+      IF(EKIN2.GT.TEX) GOTO 443
+      CALL GRNDM(RNDM,1)
+      RAN1=RNDM(1)
+      CALL NORMAL(RAN2)
+      EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
+      IF(EKIN1.LT.0.0) EKIN1=-0.010*LOG(RAN1)
+      EKIN1=EKIN1*XX
+      EKIN2=EKIN2+EKIN1
+      IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
+      IF (EKIN1 .LT. 0.0) EKIN1=1.0E-6
+      IPA1=16
+      PNRAT=1.-ZNO2/ATNO2
+      CALL GRNDM(RNDM,3)
+      IF(RNDM(1).GT.PNRAT) IPA1=14
+      NT=NT+1
+      SPALL=SPALL+1.
+      COST=-1.0+RNDM(2)*2.0
+      DUMNVE=1.0-COST*COST
+      IF (DUMNVE .LT. 0.0) DUMNVE=0.0
+      SINT=SQRT(DUMNVE)
+      PHI=TWPI*RNDM(3)
+      IPA(NT)=-IPA1
+      SIDE(NT)=-4.
+      PV(5,NT)=ABS(RMASS(IPA1))
+      PV(6,NT)=RCHARG(IPA1)
+      PV(7,NT)=1.
+      PV(4,NT)=EKIN1+PV(5,NT)
+      DUMNVE=ABS(PV(4,NT)**2-PV(5,NT)**2)
+      PP=SQRT(DUMNVE)
+      PV(1,NT)=PP*SINT*SIN(PHI)
+      PV(2,NT)=PP*SINT*COS(PHI)
+      PV(3,NT)=PP*COST
+  441 CONTINUE
+  443 IF(ATNO2.LT.10.) GOTO 445
+      IF(EK.GT.2.0) GOTO 445
+      II=NT+1
+      KK=0
+      EKA=EK
+      IF(EKA.GT.1.) EKA=EKA*EKA
+      IF(EKA.LT.0.1) EKA=0.1
+      IKA=3.6*EXP((ZNO2**2/ATNO2-35.56)/6.45)/EKA
+      IF(IKA.LE.0) GO TO 445
+      DO 444 I=1,NT
+      II=II-1
+      IF(IPA(II).NE.-14) GOTO 444
+      IPA(II)=-16
+      IPA1  = 16
+      PV(5,II)=ABS(RMASS(IPA1))
+      PV(6,II)=RCHARG(IPA1)
+      KK=KK+1
+      IF(KK.GT.IKA) GOTO 445
+  444 CONTINUE
+  445 TEX=ENP(3)
+      IF(TEX.LT.0.001) GOTO 40
+      BLACK=(1.5+1.25*TARG)*ENP(3)/(ENP(1)+ENP(3))
+      CALL POISSO(BLACK,NBL)
+      IF(NT+NBL.GT.MXGKPV-2) NBL=MXGKPV-2-NT
+      IF(NBL.LE.0) GOTO 40
+      EKIN=TEX/NBL
+      EKIN2=0.
+      CALL STEEP(XX)
+      IF(NPRT(4))
+     *WRITE(NEWBCD,3004) NBL,TEX
+      DO 442 I=1,NBL
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SPROB) GOTO 442
+      IF(NT.EQ.MXGKPV-2) GOTO 442
+      IF(EKIN2.GT.TEX) GOTO 40
+      CALL GRNDM(RNDM,1)
+      RAN1=RNDM(1)
+      CALL NORMAL(RAN2)
+      EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
+      IF(EKIN1.LT.0.0) EKIN1=-0.005*LOG(RAN1)
+      EKIN1=EKIN1*XX
+      EKIN2=EKIN2+EKIN1
+      IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
+      IF (EKIN1 .LT. 0.0) EKIN1=1.0E-6
+      CALL GRNDM(RNDM,3)
+      COST=-1.0+RNDM(1)*2.0
+      DUMNVE=1.0-COST*COST
+      IF (DUMNVE .LT. 0.0) DUMNVE=0.0
+      SINT=SQRT(DUMNVE)
+      PHI=TWPI*RNDM(2)
+      RAN=RNDM(3)
+      IPA(NT+1)=-30
+      IF(RAN.GT.0.60) IPA(NT+1)=-31
+      IF(RAN.GT.0.90) IPA(NT+1)=-32
+      SIDE(NT+1)=-4.
+      PV(5,NT+1)=(ABS(IPA(NT+1))-28)*MP
+      SPALL=SPALL+PV(5,NT+1)*1.066
+      IF(SPALL.GT.ATNO2) GOTO 40
+      NT=NT+1
+      PV(6,NT)=1.
+      IF(IPA(NT).EQ.-32) PV(6,NT)=2.
+      PV(7,NT)=1.
+      PV(4,NT)=PV(5,NT)+EKIN1
+      DUMNVE=ABS(PV(4,NT)**2-PV(5,NT)**2)
+      PP=SQRT(DUMNVE)
+      PV(1,NT)=PP*SINT*SIN(PHI)
+      PV(2,NT)=PP*SINT*COS(PHI)
+      PV(3,NT)=PP*COST
+  442 CONTINUE
+C**
+C** STORE ON EVENT COMMON
+C**
+   40 CALL GRNDM(RNDM,1)
+      IF(RS.GT.(4.+RNDM(1)*1.)) GOTO 42
+      DO 41 I=1,NT
+      CALL LENGTX(I,ETB)
+      IF(ETB.LT.P) GOTO 41
+      ETF=P
+      PV(4,I)=SQRT(PV(5,I)**2+ETF**2)
+      DUMNVE=ETB
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      ETF=ETF/DUMNVE
+      PV(1,I)=PV(1,I)*ETF
+      PV(2,I)=PV(2,I)*ETF
+      PV(3,I)=PV(3,I)*ETF
+   41 CONTINUE
+   42 EKIN=PV(4,MXGKPV)-ABS(PV(5,MXGKPV))
+      EKIN1=PV(4,MXGKPV-1)-ABS(PV(5,MXGKPV-1))
+      EKIN2=0.
+      CALL TDELAY(TOF1)
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      TOF=TOF-TOF1*LOG(RAN)
+      DO 44 I=1,NT
+      EKIN2=EKIN2+PV(4,I)-ABS(PV(5,I))
+      IF(PV(7,I).LT.0.) PV(5,I)=-PV(5,I)
+      PV(7,I)=TOF
+      PV(8,I)=ABS(IPA(I))
+      PV(9,I)=0.
+   44 PV(10,I)=0.
+      IF(NPRT(4)) WRITE(NEWBCD,2006) NT,EKIN,ENP(1),ENP(3),EKIN1,EKIN2
+      INTCT=INTCT+1.
+      NMODE=3
+      IF(SPALL.LT.0.5.AND.ATNO2.GT.1.5) NMODE=14
+      CALL SETCUR(NT)
+      NTK=NTK+1
+      IF(NT.EQ.1) GOTO 300
+      DO 50 II=2,NT
+      I=II-1
+      IF(NTOT.LT.NSIZE/12) GOTO 43
+      GO TO 9999
+   43 CALL SETTRK(I)
+   50 CONTINUE
+ 300  CONTINUE
+      GO TO 9999
+C**
+C** IT IS NOT POSSIBLE TO PRODUCE A PROPER TWO CLUSTER FINAL STATE.
+C** CONTINUE WITH QUASI ELASTIC SCATTERING
+C**
+   60 IF(NPRT(4)) WRITE(NEWBCD,2005)
+      DO 61 I=3,MXGKCU
+   61 IPA(I)=0
+      IPA(1)=IPART
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      CALL TWOB(IPPP,NFL,AVERN)
+      GO TO 9999
+C
+ 2000 FORMAT(' *COHERT* CMS PARAMETERS OF FINAL STATE PARTICLES',
+     $ ' AFTER ',I3,' TRIALS')
+ 2001 FORMAT(' *COHERT* TRACK',2X,I3,2X,10F8.2,2X,I3,2X,F3.0)
+ 2002 FORMAT(' *COHERT* MOMENTUM ',F8.3,' MASSES ',2F8.4,' RS ',F8.4)
+ 2003 FORMAT(' *COHERT* TETA,EKIN0,EKIN1,EKIN ',4F10.4)
+ 2004 FORMAT(' *COHERT* TECM,NPB,MASSES: ',F10.4,1X,I3,1X,8F10.4/
+     $ 1H ,26X,15X,8F10.4)
+ 2005 FORMAT(' *COHERT* NUMBER OF FINAL STATE PARTICLES',
+     $ ' LESS THAN 2 ==> CONTINUE WITH 2-BODY SCATTERING')
+ 2006 FORMAT(' *COHERT*  COMP.',1X,I5,1X,5F7.2)
+ 3001 FORMAT(' *COHERT* NUCLEAR EXCITATION ',I5,' PARTICLES PRODUCED',
+     $ ' IN ADDITION TO',I5,' NORMAL PARTICLES')
+ 3003 FORMAT(' *COHERT* ',I3,' BLACK TRACK PARTICLES PRODUCED',
+     $ ' WITH TOTAL KINETIC ENERGY OF ',F8.3,' GEV')
+ 3004 FORMAT(' *COHERT* ',I5,' HEAVY FRAGMENTS WITH TOTAL ENERGY OF ',
+     $ F8.4,' GEV')
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE CORANH(NIHIL,NFL)
+C
+C *** NUCLEAR INTERACTIONS FOR HEAVY FRAGMENTS ***
+C *** NVE 06-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (09-JULY-1987)
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+C
+      NIHIL=0
+      IF(AMAS.GT.0.)   GO TO 9999
+      IF(IPART.LT.14)  GO TO 9999
+      IF(IPA(1).GE.14) GO TO 9999
+      IF(IPA(2).GE.14) GO TO 9999
+      NIHIL=1
+C**
+C**  DO NOT BE CONFUSED, THIS HAS NOTHING TO DO WITH RELATIVISTIC
+C**  KINEMATIC
+C
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      EKCOR=1.
+      IF(EK.GT.1.) EKCOR=1./EK
+      EK=2.*TARMAS+EK*(1.+EKCOR/ATNO2)
+      EN=EK+ABS(AMAS)
+      P =SQRT(ABS(EN*EN-AMAS*AMAS))
+      S =AMAS*AMAS+TARMAS**2+2.0*TARMAS*EN
+      RS=SQRT(S)
+      ENP(5)=EK
+      ENP(6)=EN
+      ENP(7)=P
+      ENP(8)=S
+      ENP(9)=RS
+C**
+C**  EVAPORATION
+C**
+      TKIN=EXNU(EK)
+      ENP(5)=EK-TKIN
+      IF(ENP(5).LT.0.0001) ENP(5)=0.0001
+      ENP(6)=ENP(5)+ABS(AMAS)
+      ENP(7)=ENP(6)*ENP(6)-AMASQ
+      ENP(7)=SQRT(ABS(ENP(7)))
+      ENP(8)=AMASQ+RMASS(14)**2+2.*RMASS(14)*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+C**  CHECK AVAILABLE ENERGY FOR FIRST INTERACTION
+      IF(ENP(5).GT.CENG(3)) GO TO 9999
+      ENP(5)=0.
+      ENP(6)=ABS(AMAS)
+      ENP(7)=0.
+      ENP(8)=4.*RMASS(14)**2
+      ENP(9)=2.*RMASS(14)
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE COSCAT
+C
+C *** MOMENTUM GENERATION FOR COHERENT ELASTIC SCATTERING ***
+C *** NVE 13-JUL-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (03-DEC-1986)
+C
+C APPROXIMATION OF BESSEL FUNCTION FOR TETA(LAB)<=20 DEG.
+C IS USED . THE NUCLEAR RADIUS IS TAKEN AS R=1.25*E-13*(A)**1/3FM
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      COMMON/COSCOM/AA,BB,CC,DD,RR
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C
+      EXTERNAL FCTCOS
+      DIMENSION FF(20),ATNOX(3)
+      DIMENSION RNDM(1)
+C
+      DATA ATNOX/9.,56.,207./
+C
+C --- INITIALIZATION INDICATED BY KGINIT(14) ---
+      IF (KGINIT(14) .NE. 0) GO TO 10
+      KGINIT(14)=1
+C
+      IF(.NOT.NPRT(10)) GOTO 10
+      WRITE(NEWBCD,2001)
+ 2001 FORMAT(1H ,'*COSCAT* DS/DT FOR COHERENT ELASTIC SCATTERING')
+      DO 3 L=1,3
+      WRITE(NEWBCD,2003) ATNOX(L),P
+ 2003 FORMAT(1H ,'*COSCAT* CALCULATED CROSS SECTIONS FOR A=',
+     *             F5.1,' AND P=',F8.2)
+      DO 2 I=1,20
+      TETA=(I-1)*PI/360.
+      T=2.*P**2*(1.-COS(TETA*1.D0))
+      IF(ATNOX(L).GT.62.) GOTO 4
+      FF(I)=TWPI*ATNOX(L)**1.63*EXP(-14.5D0*ATNOX(L)**0.65*T)
+     *     +TWPI*1.4*ATNOX(L)**0.33*EXP(-10.D0*T)
+      GOTO 2
+    4 FF(I)=TWPI*ATNOX(L)**1.33*EXP(-60.0D0*ATNOX(L)**0.33*T)
+     *     +TWPI*0.4*ATNOX(L)**0.40*EXP(-10.D0*T)
+    2 CONTINUE
+      WRITE(NEWBCD,2004) FF
+ 2004 FORMAT(1H ,10E12.3)
+    3 CONTINUE
+   10 IF(P.LT.0.01) GO TO 9999
+      IF(ATNO2.LT.0.5) GO TO 9999
+      IER(46)=IER(46)+1
+      RAN=RANRES(DUM)
+      CALL VZERO(IPA(1),MXGKCU)
+      IPA(1)=IPART
+      IF(ATNO2.GT.62.) GOTO 11
+      AA=ATNO2**1.63
+      BB=14.5*ATNO2**0.66
+      CC=1.4*ATNO2**0.33
+      DD=10.
+      AA=AA/BB
+      CC=CC/DD
+      RR=(AA+CC)*RAN
+      GOTO 12
+   11 AA=ATNO2**1.33
+      BB=60.*ATNO2**0.33
+      CC=0.4*ATNO2**0.40
+      DD=10.
+      AA=AA/BB
+      CC=CC/DD
+      RR=(AA+CC)*RAN
+   12 T1=-LOG(RAN)/BB
+      T2=-LOG(RAN)/DD
+      EPS=0.001
+      IND1=10
+      CALL RTMI(T,VAL,FCTCOS,T1,T2,EPS,IND1,IER1)
+      IF(IER1.EQ.0) GOTO 14
+      T=0.25*(3.*T1+T2)
+      IER(68)=IER(68)+1
+   14 CALL GRNDM(RNDM,1)
+      PHI=RNDM(1)*TWPI
+      RR=0.5*T/P**2
+      IF(RR.GT.1.) RR=0.
+      COST=1.-RR
+*     SINT=SQRT(MAX((1.-COST)*(1.+COST),0.))
+      SINT=SQRT(MAX(RR*(2.-RR),0.))
+      IF(SINT.NE.0.) THEN
+      PV( 1,MXGKPV-1)=P*PX
+      PV( 2,MXGKPV-1)=P*PY
+      PV( 3,MXGKPV-1)=P*PZ
+      PV( 4,MXGKPV-1)=EN
+      PV( 5,MXGKPV-1)=AMAS
+      PV( 6,MXGKPV-1)=NCH
+      PV( 7,MXGKPV-1)=TOF
+      PV( 8,MXGKPV-1)=IPART
+      PV( 9,MXGKPV-1)=0.
+      PV(10,MXGKPV-1)=USERW
+      PV(1,1)=P*SINT*SIN(PHI)
+      PV(2,1)=P*SINT*COS(PHI)
+      PV(3,1)=P*COST
+      PV(4,1)=EN
+      PV(5,1)=AMAS
+      PV(6,1)=NCH
+      PV(7,1)=TOF
+      PV(8,1)=IPART
+      PV(9,1)=0.
+      PV(10,1)=0.
+      CALL DEFS1(1,MXGKPV-1,1)
+      SINL1=SINL
+      COSL1=COSL
+      SINP1=SINP
+      COSP1=COSP
+      CALL SETCUR(1)
+      ELSE
+      SINL1=SINL
+      COSL1=COSL
+      SINP1=SINP
+      COSP1=COSP
+      ENDIF
+      IF(NPRT(4))
+     *WRITE(NEWBCD,1004) AMAS,P,SINL1,COSL1,SINP1,COSP1,SINL,COSL,
+     *                   SINP,COSP,T1,T,T2,IER1
+C
+ 1004 FORMAT(1H ,'*COSCAT* COHERENT ELASTIC SCATTERING    MASS '
+     * ,F8.3,' MOMENTUM '
+     * ,F8.3/,'   DIRECTION ',4F10.4,' CHANGED TO ',4F10.4/
+     *1H ,'T1,T,T2 ',3E10.3,' IER1 ',I2)
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE DEFS1(I,J,K)
+C
+C *** NVE 16-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (15-JAN-1984)
+C
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DATA PI/3.141592653589793/
+      PX=PV(1,I)
+      PY=PV(2,I)
+      PZ=PV(3,I)
+      PT2 = PV(1,J)**2+PV(2,J)**2
+      IF(PT2.GT.0.) THEN
+      CALL LENGTX(J,P)
+      COST=PV(3,J)/P
+      SINT1=SQRT(ABS((1.-COST)*(1.+COST)))
+      SINT2=SQRT(PT2)/P
+      SINT=0.5*(SINT1+SINT2)
+      PH=PI*0.5
+      IF(PV(2,J).LT.0.) PH=PI*1.5
+      IF(ABS(PV(1,J)).GT.1.E-6) PH=ATAN2(PV(2,J),PV(1,J))
+      COSP=COS(PH)
+      SINP=SIN(PH)
+      PV(1,K)= COST*COSP*PX-     SINP*PY+SINT*COSP*PZ
+      PV(2,K)= COST*SINP*PX+     COSP*PY+SINT*SINP*PZ
+      PV(3,K)=-SINT     *PX             +COST     *PZ
+      ELSE
+      PV(1,K)=PX
+      PV(2,K)=PY
+      PV(3,K)=PZ
+C --- TAKE THE CASE OF THETA=PI INTO ACCOUNT (MR/NVE 27-SEP-1990) ---
+      IF (PV(3,J) .LT. 0.) PV(3,K)=-PZ
+      ENDIF
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE DLPNUC(A,N)
+C
+C CALLED BY : PHPNUC
+C ORIGIN    : H.FESEFELDT
+C
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+C
+      DIMENSION A(N)
+      DIMENSION LT(20),RT(20)
+      INTEGER R,RT
+C
+      LEVEL=1
+      LT(1)=1
+      RT(1)=N
+   10 L=LT(LEVEL)
+      R=RT(LEVEL)
+      LEVEL=LEVEL-1
+   20 IF(R.LE.L) IF(LEVEL) 50,50,10
+C
+C   SUBDIVIDE THE INTERVAL L,R
+C     L : LOWER LIMIT OF THE INTERVAL (INPUT)
+C     R : UPPER LIMIT OF THE INTERVAL (INPUT)
+C     J : UPPER LIMIT OF LOWER SUB-INTERVAL (OUTPUT)
+C     I : LOWER LIMIT OF UPPER SUB-INTERVAL (OUTPUT)
+C
+      I=L
+      J=R
+      M=(L+R)/2
+      X=A(M)
+  220 IF(A(I).GE.X) GO TO 230
+      I=I+1
+      GO TO 220
+  230 IF(A(J).LE.X) GO TO 231
+      J=J-1
+      GO TO 230
+C
+  231 IF(I.GT.J) GO TO 232
+      W=A(I)
+      A(I)=A(J)
+      A(J)=W
+      I=I+1
+      J=J-1
+      IF(I.LE.J) GO TO 220
+C
+  232 LEVEL=LEVEL+1
+      IF((R-I).GE.(J-L)) GO TO 30
+      LT(LEVEL)=L
+      RT(LEVEL)=J
+      L=I
+      GO TO 20
+   30 LT(LEVEL)=I
+      RT(LEVEL)=R
+      R=J
+      GO TO 20
+   50 RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE DOTNUC(C,S,C2,S2,PR,I)
+C
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION PR(50)
+      K1 = 5*I - 4
+      K2 = K1 + 1
+      SA = PR(K1)
+      SB = PR(K2)
+      A      = SA*C - SB*S
+      PR(K2) = SA*S + SB*C
+      K2 = K2 + 1
+      B = PR(K2)
+      PR(K1) = A*C2 - B*S2
+      PR(K2) = A*S2 + B*C2
+      RETURN
+      END
+*-- AUTHOR :
+      FUNCTION DPDNUC(A,B,C)
+C
+C CALLED BY : PHPNUC
+C ORIGIN    : H.FESEFELDT
+C
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+C
+C     DPDK = SQRT(A*A+(B*B-C*C)**2/(A*A) - 2.0*(B*B+C*C))/2.0
+      A2 = A*A
+      B2 = B*B
+      C2 = C*C
+      IF(A2) 21,21,61
+   61 CONTINUE
+      ARG=A2+(B2-C2)**2/A2-2.0*(B2+C2)
+      IF (ARG) 21,21,31
+   21 DPDNUC=0.0
+      GOTO 41
+   31 CONTINUE
+      DPDNUC = 0.5*SQRT(A2 + (B2-C2)**2/A2 - 2.0*(B2+C2))
+   41 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      FUNCTION EXNU(EK1)
+C
+C *** NUCLEAR EVAPORATION AS FUNCTION OF ATOMIC NUMBER ATNO ***
+C *** AND KINETIC ENERGY EKIN OF PRIMARY PARTICLE ***
+C *** NVE 04-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (10-DEC-1986)
+C
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DIMENSION RNDM(2)
+C
+      EXNU=0.
+      IF(ATNO2.LT.1.5) GO TO 9999
+      MAGIC=0
+      IF(INT(ZNO2+0.1).EQ.82) MAGIC=1
+      EKIN1=EK1
+      IF(EKIN1.LT.0.1) EKIN1=0.1
+      IF(EKIN1.GT.4.) EKIN1=4.
+C**   0.35 VALUE AT 1 GEV
+C**   0.05 VALUE AT 0.1 GEV
+      CFA=(0.35-0.05)/2.3
+      CFA= 0.35+CFA*LOG(EKIN1)
+      IF(CFA.LT.0.15) CFA=0.15
+      EXNU=7.716*CFA*EXP(-CFA)
+      ATNO3=ATNO2
+      IF(ATNO3.GT.120.) ATNO3=120.
+      CFA=((ATNO3-1.)/120.)*EXP(-(ATNO3-1.)/120.)
+      EXNU=EXNU*CFA
+      FPDIV=1.-0.25*EKIN1**2
+      IF(FPDIV.LT.0.50) FPDIV=0.50
+      GFA=2.0*((ATNO2-1.)/70.)*EXP(-(ATNO2-1.)/70.)
+      ENP(1)=EXNU*FPDIV
+      ENP(3)=EXNU-ENP(1)
+    4 CALL NORMAL(RAN1)
+      CALL NORMAL(RAN2)
+      IF(MAGIC.EQ.1) THEN
+         RAN1=0.
+         RAN2=0.
+      ENDIF
+      ENP(1)=ENP(1)*(1.+RAN1*GFA)
+      IF(ENP(1).LT.0.) ENP(1)=0.
+      ENP(3)=ENP(3)*(1.+RAN2*GFA)
+      IF(ENP(3).LT.0.) ENP(3)=0.
+    5 EXNU=ENP(1)+ENP(3)
+      IF(EXNU.LT.EK1) GOTO 10
+      CALL GRNDM(RNDM,2)
+      ENP(1)=ENP(1)*(1.-0.5*RNDM(1))
+      ENP(3)=ENP(3)*(1.-0.5*RNDM(2))
+      GOTO 5
+ 10   CONTINUE
+      IF (NPRT(4))
+     $ WRITE(NEWBCD,1001) XEND,YEND,ZEND,EXNU,ENP(1),ENP(3)
+ 1001 FORMAT(' *EXNU* NUCLEAR EXCITATION AT X,Y,Z = ',3(G12.5,1X)/
+     $ 1H ,7X,'EXNU,ENP(1),ENP(3) = ',3(G12.5,1X))
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      REAL FUNCTION FCTCOS(T)
+C
+C *** NVE 01-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (27-OCT-1983)
+C
+      COMMON/COSCOM/AA,BB,CC,DD,RR
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      DOUBLE PRECISION TEST1,TEST2
+C
+      TEST1=-BB*T*1.0D0
+      IF (TEST1 .GT. EXPXU) TEST1=EXPXU
+      IF (TEST1 .LT. EXPXL) TEST1=EXPXL
+      TEST2=-DD*T*1.0D0
+      IF (TEST2 .GT. EXPXU) TEST2=EXPXU
+      IF (TEST2 .LT. EXPXL) TEST2=EXPXL
+C
+      FCTCOS=AA*EXP(TEST1)+CC*EXP(TEST2)-RR
+C
+      RETURN
+      END
+*-- AUTHOR :
+      FUNCTION FERMI(EK1)
+C
+C *** NVE 16-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (23-AUG-1985)
+C
+      FERMI=0.
+      RETURN
+      END
+*-- AUTHOR :
+      FUNCTION FISSIO(EK1)
+C
+C *** GENERATION OF PHOTONS AND NEUTRONS BY FISSION ***
+C *** NVE 04-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (21-MAR-1987)
+C
+C THE PHYSICS IS BASED ON U(238)
+C FOR OTHER MATERIALS EXTRAPOLATIONS ARE USED
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+C
+C
+      DIMENSION SPNEUT(10)
+      DIMENSION RNDM(2)
+      SAVE SPNEUT
+      DATA SPNEUT/10*0./
+C
+C --- INITIALIZATION INDICATED BY KGINIT(15) ---
+      IF (KGINIT(15) .NE. 0) GO TO 10
+      KGINIT(15)=1
+C
+      XX=1.-0.5
+      XXX=SQRT(2.29*XX)
+      SPNEUT(1)=EXP(-XX/0.965)*(EXP(XXX)-EXP(-XXX))/2.
+      DO 1 I=2,10
+      XX=I*1.-0.5
+      XXX=SQRT(2.29*XX)
+    1 SPNEUT(I)=SPNEUT(I-1)+EXP(-XX/0.965)*(EXP(XXX)-EXP(-XXX))/2.
+      DO 2 I=1,10
+    2 SPNEUT(I)=SPNEUT(I)/SPNEUT(10)
+C** IN THIS ROUTINE WE USE MEV AS UNIT FOR ENERGY AND MOMENTUM
+   10 NT=0
+      IER(82)=IER(82)+1
+      ND=IND+1
+      PV( 1,MXGKPV)=PX*P
+      PV( 2,MXGKPV)=PY*P
+      PV( 3,MXGKPV)=PZ*P
+      PV( 4,MXGKPV)=EN
+      PV( 5,MXGKPV)=ABS(AMAS)
+      PV( 6,MXGKPV)=NCH
+      PV( 7,MXGKPV)=TOF
+      PV( 8,MXGKPV)=IPART
+      PV( 9,MXGKPV)=0.
+      PV(10,MXGKPV)=USERW
+      PV( 1,MXGKPV-1)=0.
+      PV( 2,MXGKPV-1)=0.
+      PV( 3,MXGKPV-1)=0.
+      PV( 4,MXGKPV-1)=ATOMAS(ATNO(ND),ZNO(ND))
+      PV( 5,MXGKPV-1)=PV(4,MXGKPV-1)
+      PV( 6,MXGKPV-1)=ZNO(ND)
+      PV( 7,MXGKPV-1)=TOF
+      PV( 8,MXGKPV-1)=0.
+      PV( 9,MXGKPV-1)=0.
+      PV(10,MXGKPV-1)=0.
+      CALL ADD(MXGKPV,MXGKPV-1,MXGKPV-2)
+      PV(1,MXGKPV-2)=-PV(1,MXGKPV-2)
+      PV(2,MXGKPV-2)=-PV(2,MXGKPV-2)
+      PV(3,MXGKPV-2)=-PV(3,MXGKPV-2)
+C** NUMBER OF NEUTRONS AND PHOTONS
+      FISSIO=0.
+      E1=EK1*1000.
+      IF(E1.LT.1.0) E1=1.0
+      AVERN=2.569+0.559*LOG(E1)
+C**   TAKE THE FOLLOWING VALUE IF PHOTOFISSION IS NOT INCLUDED
+      IF(IFIX(PARMAT(IND+1,8)).EQ.0)
+     *AVERN=2.569+0.900*LOG(E1)
+      AVERG=9.500+0.600*LOG(E1)
+      CALL NORMAL(RAN)
+      NN=IFIX(AVERN+RAN*1.23+0.5)
+      CALL NORMAL(RAN)
+      NG=IFIX(AVERG+RAN*3.+0.5)
+      IF(NN.LT.1) NN=1
+      IF(NG.LT.1) NG=1
+      EXN=0.
+      EXG=0.
+C** DISTRIBUTE KINETIC ENERGY
+      DO 15 I=1,NN
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      DO 11 J=1,10
+      IF(RAN.LT.SPNEUT(J)) GOTO 12
+   11 CONTINUE
+      J=10
+   12 CALL GRNDM(RNDM,1)
+      EKIN=(J-1)*1.+RNDM(1)
+      EXN=EXN+EKIN
+      PV(4,I)=EKIN+RMASS(16)*1000.
+      PV(5,I)=RMASS(16)*1000.
+      PV(6,I)=0.
+C** EMISSION TIME FOR NEUTRONS =0.
+      PV(7,I)=TOF
+      PV(8,I)=16.
+      PV(9,I)=0.
+      PV(10,I)=0.
+   15 CONTINUE
+      NT=NN
+      DO 20 I=1,NG
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      NT=NT+1
+      PV(4,NT)=-0.87*LOG(RAN)
+      EXG=EXG+PV(4,NT)
+      PV(5,NT)=0.
+      PV(6,NT)=0.
+C     RAN=RNDM(1)
+C** EMISSION TIME FOR PHOTONS= 2.5 E-8 SEC
+C     PV(7,NT)=TOF-500.*LOG(RAN)
+C** CHANGED 30.7.85
+      PV(7,NT)=TOF
+      PV(8,NT)=1.
+      PV(9,NT)=0.
+      PV(10,NT)=0.
+   20 CONTINUE
+      IF(NT.EQ.0) GO TO 9999
+      EX=EXN+EXG
+      IF(NPRT(4))
+     *WRITE(NEWBCD,2000) ATNO(IND+1),NN,NG,EX
+      FISSIO=EX/1000.
+      DO 49 I=1,NT
+      PV(5,I)=PV(5,I)/1000.
+      PV(4,I)=PV(4,I)/1000.
+      CALL GRNDM(RNDM,2)
+      COST=-1.+2.*RNDM(1)
+      SINT=SQRT(ABS(1.-COST*COST))
+      PHI=RNDM(2)*TWPI
+      PP=SQRT(ABS(PV(4,I)**2-PV(5,I)**2))
+      PV(1,I)=PP*SINT*SIN(PHI)
+      PV(2,I)=PP*SINT*COS(PHI)
+      PV(3,I)=PP*COST
+      CALL LOR(I,MXGKPV-2,I)
+   49 CONTINUE
+      INTCT=INTCT+1.
+      DO 50 I=1,NT
+      IF(NTOT.LT.NSIZE/12) GOTO 43
+      IER(39)=IER(39)+1
+      GO TO 9999
+   43 CALL SETTRK(I)
+   50 CONTINUE
+C
+ 2000 FORMAT(1H ,'*FISSIO* NUCLEAR FISSION ON MATERIAL ',F6.1,/,
+     *'         NEUTRONS, PHOTONS PRODUCED= ',2I3,' WITH ',F8.4,
+     *' MEV TOTAL ENERGY')
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE GENXPT(IPPP,NFL,AVERN)
+C
+C *** GENERATION OF X- AND PT- VALUES FOR ALL PRODUCED PARTICLES ***
+C *** NVE 02-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT 11-OCT-1987
+C
+C A SIMPLE SINGLE VARIABLE DESCRIPTION E D3S/DP3= F(Q) WITH
+C Q**2 = (M*X)**2 + PT**2 IS USED. FINAL STATE KINEMATIC IS PRODUCED
+C BY AN FF-TYPE ITERATIVE CASCADE METHOD
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      COMMON/GENIN /TECM,AMASS(18),NPG,KGENEV
+      COMMON/GENOUT/PCM(5,18),WGT
+C
+C
+      REAL MASPAR,LAMB,NUCSUP
+      DIMENSION MASPAR(8),BP(8),PTEX(8),C1PAR(5),G1PAR(5),TAVAI(2),
+     $          SIDE(MXGKCU),IAVAI(2),BINL(20),DNDL(20),TWSUP(8),
+     $          NUCSUP(6),PSUP(6),IPAX(100)
+      DIMENSION RNDM(3)
+      DATA MASPAR/0.75,0.70,0.65,0.60,0.50,0.40,0.75,0.20/
+      DATA     BP/3.50,3.50,3.50,6.00,5.00,4.00,3.50,3.50/
+      DATA   PTEX/1.70,1.70,1.50,1.70,1.40,1.20,1.70,1.20/
+      DATA  C1PAR/0.6,0.6,0.35,0.15,0.10/
+      DATA  G1PAR/2.6,2.6,1.80,1.30,1.20/
+      DATA BINL/0.,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.11,1.25
+     $         ,1.43,1.67,2.0,2.5,3.33,5.00,10.00/
+      DATA TWSUP/1.,1.,0.7,0.5,0.3,0.2,0.1,0.0/
+      DATA NUCSUP/1.00,0.7,0.5,0.4,0.35,0.3/
+      DATA   PSUP/3.,6.,20.,50.,100.,1000./
+C
+C**
+      CALL HIGSEL(ISEL)
+      IF(ISEL.EQ.1) THEN
+         CALL HIGXPT(IPPP,NFL,AVERN)
+         RETURN
+      ENDIF
+C**
+C**  FOR ANNIHILATION INTERACTIONS INTRODUCE PROPER KINEMATICS
+C**
+      CALL CORANH(NIHIL,NFL)
+C**
+C**
+C** CHECK FIRST MASS-INDICES
+C**
+      EK=ENP(5)
+      EN=ENP(6)
+      P=ENP(7)
+      S=ENP(8)
+      RS=ENP(9)
+      NT=0
+      DO 1 I=1,100
+      IF(IPA(I).EQ.0) GOTO 1
+      NT=NT+1
+      IPA(NT)=IPA(I)
+    1 CONTINUE
+      CALL VZERO(IPA(NT+1),MXGKCU-NT)
+      CALL UCOPY(IPA(1),IPAX(1),100)
+C**
+C** FOR LOW MULTIPLICITY USE TWO-BODY RESONANCE MODEL OR SINGLE/DOUBLE
+C** DIFFRACTION MODEL (--> TWOCLU (--> TWOB (--> COSCAT)))
+C**
+      CFA=0.025*((ATNO2-1.)/120.)*EXP(-(ATNO2-1.)/120.)
+      IF(NIHIL.GT.0) GOTO 200
+      IF(NT.GE.8) GOTO 200
+      IF(EK.LT.1.) GOTO 60
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IF(IPART.GE.10.AND.IPART.LE.13.AND.RAN.LT.0.5) GOTO 200
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      WSUP=TWSUP(NT)
+      IF(RAN.GT.WSUP) GOTO 200
+   60 CALL UCOPY(IPAX,IPA,100)
+      CALL TWOCLU(IPPP,NFL,AVERN)
+      GO TO 9999
+C**
+C** SET EFFECTIVE 4-MOMENTUM OF PRIMARY PARTICLE
+C**
+  200 MX =MXGKPV-20
+      MX1=MX+1
+      MX2=MX+2
+      MX3=MX+3
+      MX4=MX+4
+      MX5=MX+5
+      MX6=MX+6
+      MX7=MX+7
+      MX8=MX+8
+      MX9=MX+9
+      PV( 1,MXGKPV-1)=P*PX
+      PV( 2,MXGKPV-1)=P*PY
+      PV( 3,MXGKPV-1)=P*PZ
+      PV( 4,MXGKPV-1)=EN
+      PV( 5,MXGKPV-1)=AMAS
+      PV( 6,MXGKPV-1)=NCH
+      PV( 7,MXGKPV-1)=TOF
+      PV( 8,MXGKPV-1)=IPART
+      PV( 9,MXGKPV-1)=0.
+      PV(10,MXGKPV-1)=USERW
+      IER(49)=IER(49)+1
+C**
+C** SOME RANDOMISATION OF ORDER OF FINAL STATE PARTICLES
+C**
+      DO 201 I=3,NT
+      CALL GRNDM(RNDM,1)
+      IPX=IFIX(3.+RNDM(1)*(NT-2.))
+      IF(IPX.GT.NT) IPX=NT
+      IPA1=IPA(IPX)
+      IPA(IPX)=IPA(I)
+  201 IPA(I)  =IPA1
+C**
+C** DISTRIBUTE IN FORWARD AND BACKWARD HEMISPHERE IN CMS
+C**
+      SIDE(1)= 1.
+      SIDE(2)=-1.
+      NTB=1
+      TARG=0.
+      IF(IPART.LT.10.OR.IPART.GT.13) GOTO 53
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.7) GOTO 53
+      IPA1=IPA(1)
+      IPA(1)=IPA(2)
+      IPA(2)=IPA1
+   53 LEAD=0
+      IF(IPART.LT.10.OR.IPART.EQ.14.OR.IPART.EQ.16) GOTO 532
+      IPA1=ABS(IPA(1))
+      IF(IPA1.LT.10.OR.IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 531
+      LEAD=IPA1
+      GOTO 532
+  531 IPA1=ABS(IPA(2))
+      IF(IPA1.LT.10.OR.IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 532
+      LEAD=IPA1
+  532 DO 3 I=1,NT
+      IF(I.LE.2) GOTO 54
+      SIDE(I)= 1.
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) SIDE(I)=-1.
+      IF(SIDE(I).LT.-0.5) NTB=NTB+1
+   54 CONTINUE
+    3 CONTINUE
+      TB=2.*NTB
+      CALL GRNDM(RNDM,1)
+      IF(RS.LT.(2.0+RNDM(1))) TB=(2.*NTB+NT)/2.
+C**
+C** ADD PARTICLES FROM INTRANUCLEAR CASCADE
+C**
+      AFC=0.312+0.200*LOG(LOG(S))+S**1.5/6000.
+      IF(AFC.GT.0.75) AFC=0.75
+      XTARG=AFC*(ATNO2**0.33 -1.0)*TB
+      IF(XTARG.LE.0.) XTARG=0.01
+      CALL POISSO(XTARG,NTARG)
+      NT2=NT+NTARG
+      IF(NT2.LE.MX) GOTO 2
+      NT2=MX
+      NTARG=NT2-NT
+    2 CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,3001) NTARG,NT
+      NT1=NT+1
+      IF(NTARG.EQ.0) GOTO 51
+C**
+C** CHECK NUMBER OF EXTRA NUCLEONS AND PIONS
+C**
+      DO 881 IPX=1,6
+      IF(P.LE.PSUP(IPX)) GOTO 882
+  881 CONTINUE
+      IPX=6
+  882 DO 4 I=NT1,NT2
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IF(RAN.LT.NUCSUP(IPX)) GOTO 52
+      CALL GRNDM(RNDM,1)
+      IPA(I)=-(7+IFIX(RNDM(1)*3.0))
+      GOTO 4
+   52 IPA(I)=-16
+      PNRAT=1.-ZNO2/ATNO2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.PNRAT) IPA(I)=-14
+      TARG=TARG+1.
+    4 SIDE(I)=-2.
+      NT=NT2
+C**
+C** CHOOSE MASSES AND CHARGES FOR ALL PARTICLES
+C**
+   51 DO 5 I=1,NT
+      IPA1=ABS(IPA(I))
+      PV(5,I)=RMASS(IPA1)
+      PV(6,I)=RCHARG(IPA1)
+      PV(7,I)=1.
+      IF(PV(5,I).LT.0.) PV(7,I)=-1.
+      PV(5,I)=ABS(PV(5,I))
+    5 CONTINUE
+C**
+C** CHECK AVAILABLE KINETIC ENERGY, IN THIS MODEL CONSERVATION OF
+C** KINETIC ENERGY IN FORWARD AND BACKWARD HEMISPHERE IS ASSUMED
+C**
+    6 IF(NT.LE.1) GOTO 60
+      TAVAI(1)=RS/2.
+      TAVAI(2)=(TARG+1.)*RS/2.
+      IAVAI(1)=0
+      IAVAI(2)=0
+      DO 7 I=1,NT
+      L=1
+      IF(SIDE(I).LT.0.) L=2
+      IAVAI(L)=IAVAI(L)+1
+      TAVAI(L)=TAVAI(L)-ABS(PV(5,I))
+    7 CONTINUE
+      NTH=NT
+      IF(NTH.GT.10) NTH=10
+      IF (NPRT(4))
+     $ WRITE(NEWBCD,3002) TAVAI,IAVAI,(IPA(I),SIDE(I),I=1,NTH)
+      IF(IAVAI(1).LE.0) GOTO 60
+      IF(IAVAI(2).LE.0) GOTO 60
+      IF(TAVAI(1).GT.0.) GOTO 11
+      CALL GRNDM(RNDM,1)
+      ISKIP=IFIX(RNDM(1)*(IAVAI(1)-1))+1
+      IS=0
+      DO 10  I=1,NT
+      II=NT-I+1
+      IF(SIDE(II).LT.0.) GOTO 10
+      IS=IS+1
+      IF(IS.NE.ISKIP) GOTO 10
+      IF(II.EQ.NT) GOTO 9
+      NT1=II+1
+      NT2=NT
+      DO 8 J=NT1,NT2
+      IPA(J-1)=IPA(J)
+      SIDE(J-1)=SIDE(J)
+      DO 71 K=1,10
+   71 PV(K,J-1)=PV(K,J)
+    8 CONTINUE
+      GOTO 9
+   10 CONTINUE
+    9 IPA(NT)=0
+      SIDE(NT)=0.
+      NT=NT-1
+      GOTO 6
+   11 IF(TAVAI(2).GT.0.) GOTO 15
+      CALL GRNDM(RNDM,1)
+      ISKIP=IFIX(RNDM(1)*(IAVAI(2)-1))+1
+      IS=0
+      DO 14  I=1,NT
+      II=NT-I+1
+      IF(SIDE(II).GT.0.) GOTO 14
+      IS=IS+1
+      IF(IS.NE.ISKIP) GOTO 14
+      IF(SIDE(II).LT.-1.5) NTARG=NTARG-1
+      IF(NTARG.LT.0) NTARG=0
+      IF(II.EQ.NT) GOTO 13
+      NT1=II+1
+      NT2=NT
+      DO 12 J=NT1,NT2
+      IPA(J-1)=IPA(J)
+      SIDE(J-1)=SIDE(J)
+      DO 74 K=1,10
+   74 PV(K,J-1)=PV(K,J)
+   12 CONTINUE
+      GOTO 13
+   14 CONTINUE
+   13 IPA(NT)=0
+      SIDE(NT)=0.
+      NT=NT-1
+      GOTO 6
+   15 IF(NT.LE.1) GOTO 60
+      IF(NT.EQ.MX) GOTO 29
+      NT1=NT+1
+      NT2=MX
+      DO 28 I=NT1,NT2
+   28 IPA(I)=0
+   29 CONTINUE
+C**
+C** NOW THE PREPARATION IS FINISHED.
+C** DEFINE INITIAL STATE VECTORS FOR LORENTZ TRANSFORMATIONS.
+C**
+      PV( 1,MX1)=0.
+      PV( 2,MX1)=0.
+      PV( 3,MX1)=P
+      PV( 4,MX1)=SQRT(P*P+AMAS*AMAS)
+      PV( 5,MX1)=ABS(AMAS)
+      PV( 1,MX2)=0.
+      PV( 2,MX2)=0.
+      PV( 3,MX2)=0.
+      PV( 4,MX2)=MP
+      PV( 5,MX2)=MP
+      PV( 1,MX4)=0.
+      PV( 2,MX4)=0.
+      PV( 3,MX4)=0.
+      PV( 4,MX4)=MP*(1.+TARG)
+      PV( 5,MX4)=PV(4,MX4)
+      PV( 1,MX8)=0.
+      PV( 2,MX8)=0.
+      PV( 3,MX8)=0.
+      PV( 1,MX9)=1.
+      PV( 2,MX9)=0.
+      PV( 3,MX9)=0.
+      CALL ADD(MX1,MX2,MX3)
+      CALL ADD(MX4,MX1,MX4)
+      CALL LOR(MX1,MX3,MX1)
+      CALL LOR(MX2,MX3,MX2)
+C**
+C** MAIN LOOP FOR 4-MOMENTUM GENERATION , SEE PITHA-REPORT (AACHEN)
+C** FOR A DETAILED DESCRIPTION OF THE METHOD.
+C**
+      CALL GRNDM(RNDM,1)
+      PHI=RNDM(1)*TWPI
+      EKIN1=0.
+      EKIN2=0.
+      DO 39 J=1,10
+      PV(J,MX5)=0.
+   39 PV(J,MX6)=0.
+      NPG=0
+      TARG1=0.
+      DO 16 III=1,NT
+      I=NT-III+1
+      IPA1=ABS(IPA(I))
+C**
+C** COUNT NUMBER OF BACKWARD NUCLEONS
+C**
+      IF(I.EQ.2) GOTO 301
+      IF(SIDE(I).LT.-1.5.AND.IPA1.GE.14) GOTO 301
+      GOTO 38
+  301 NPG=NPG+1
+      IF(NPG.GT.18) GOTO 38
+      SIDE(I)=-3.
+      TARG1=TARG1+1.
+      GOTO 16
+   38 J=3
+      IF(IPA1.LT.14) J=2
+      IF(IPA1.LT.10) J=1
+      IF(I.LE.2) J=J+3
+      IF(SIDE(I).LT.-1.5) J=7
+      IF(J.EQ.7.AND.IPA1.GE.14) J=8
+C**
+C** SET PT - AND PHI VALUES, THEY ARE CHANGED SOMEWHAT IN THE ITERATION
+C** LOOP, SET MASS PARAMETER FOR LAMBDA FRAGMENTATION MODEL
+C**
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      BPP=BP(J)
+      BPE=PTEX(J)
+      PT2=-LOG(1.-RAN)/BPP
+      ASPAR=MASPAR(J)
+      PT2=PT2**BPE
+      PT =SQRT(PT2)
+      IF(PT.LT.0.001) PT=0.001
+      PV(1,I)=PT*COS(PHI)
+      PV(2,I)=PT*SIN(PHI)
+      PV(10,I)=PT
+      BINL(1)=0.
+      RLMAX=1./PV(10,I)
+      DO 73 J=2,20
+   73 BINL(J)=RLMAX*(J-1)/19.
+      ET=PV(4,MX1)
+      IF(SIDE(I).LT.0.) THEN
+         ET=PV(4,MX2)
+      ENDIF
+      DNDL(1)=0.
+      NTRIAL=0
+C**
+C** START OF BIG ITERATION LOOP
+C**
+   30 NTRIAL=NTRIAL+1
+      IF(NTRIAL.GT. 2) GOTO 169
+      DO 17 L=2,20
+      DNDL(L)=0.
+      X=(BINL(L)+BINL(L-1))/2.
+      IF(PV(10,I).LT.0.001) PV(10,I)=0.001
+      IF(X.GT.1./PV(10,I)) GOTO 17
+      DX=BINL(L)-BINL(L-1)
+      DNDL(L)=ASPAR/SQRT((1.+(ASPAR*X)**2)**3)
+      DNDL(L)=ET*DNDL(L)/SQRT((X*PV(10,I)*ET)**2+PV(10,I)**2
+     *                             +PV(5,I)**2)
+      DNDL(L)=DNDL(L)*DX
+   17 DNDL(L)=DNDL(L-1)+DNDL(L)
+      NTRI=0
+   31 CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)*DNDL(20)
+      DO 18 L=2,20
+      IF(RAN.LT.DNDL(L)) GOTO 19
+   18 CONTINUE
+C**
+C** START OF SMALL ITERATION LOOP
+C**
+   19 NTRI=NTRI+1
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      DX=BINL(L)-BINL(L-1)
+      LAMB=BINL(L-1)+RAN*DX/2.
+      X=PV(10,I)*LAMB
+      IF(X.GT.1.) X=1.
+      X=X*SIDE(I)/ABS(SIDE(I))
+      PV(3,I)=X*ET
+      PV(4,I)=PV(3,I)**2+PV(10,I)**2+PV(5,I)**2
+      PV(4,I)=SQRT(PV(4,I))
+      IF(SIDE(I).LT.0.) GOTO 165
+      IF(I.GT.2) GOTO 20
+      EKIN=TAVAI(1)-EKIN1
+      CALL NORMAL(RAN)
+      IF(EKIN.LT.0.) EKIN=0.04*ABS(RAN)
+      PV(4,I)=ABS(PV(5,I))+EKIN
+      RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP=SQRT(RNVE)
+      CALL LENGTX(I,PP1)
+C
+      IF (PP1 .GE. 1.0E-6) GO TO 8000
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP*COS(RTHNVE)
+      GO TO 8001
+ 8000 CONTINUE
+      PV(1,I)=PV(1,I)*PP/PP1
+      PV(2,I)=PV(2,I)*PP/PP1
+      PV(3,I)=PV(3,I)*PP/PP1
+ 8001 CONTINUE
+C
+      CALL ADD(MX5,I,MX5)
+      GOTO 16
+   20 EKIN=EKIN1+PV(4,I)-ABS(PV(5,I))
+      IF(EKIN.LT.0.95*TAVAI(1)) GOTO 161
+      IF(NTRI.GT. 5) GOTO 167
+      PV(10,I)=PV(10,I)*0.9
+      PV( 1,I)=PV( 1,I)*0.9
+      PV( 2,I)=PV( 2,I)*0.9
+      DNDL(20)=DNDL(20)*0.9
+      IF((TAVAI(2)-ABS(PV(5,I))).LT.0.) GOTO 31
+      SIDE(I)=-1.
+      TAVAI(1)=TAVAI(1)+ABS(PV(5,I))
+      TAVAI(2)=TAVAI(2)-ABS(PV(5,I))
+      GOTO 31
+  161 CALL ADD(MX5,I,MX5)
+      EKIN1=EKIN1+PV(4,I)-ABS(PV(5,I))
+      GOTO 163
+  165 EKIN=EKIN2+PV(4,I)-ABS(PV(5,I))
+      XXX=0.95+0.05*TARG/20.
+      IF(XXX.GT.0.999) X=0.999
+      IF(EKIN.LT.XXX*TAVAI(2)) GOTO 166
+      IF(NTRI.GT. 5) GOTO 167
+      PV(10,I)=PV(10,I)*0.9
+      PV( 1,I)=PV( 1,I)*0.9
+      PV( 2,I)=PV( 2,I)*0.9
+      DNDL(20)=DNDL(20)*0.9
+      IF((TAVAI(1)-ABS(PV(5,I))).LT.0.) GOTO 31
+      SIDE(I)=+1.
+      TAVAI(1)=TAVAI(1)-ABS(PV(5,I))
+      TAVAI(2)=TAVAI(2)+ABS(PV(5,I))
+      GOTO 31
+  166 CALL ADD(MX6,I,MX6)
+      EKIN2=EKIN2+PV(4,I)-ABS(PV(5,I))
+  163 CALL ADD(MX5,MX6,MX7)
+      PV(3,MX7)=0.
+      CALL ANG(MX7,MX9,COST,PHIS)
+      IF(PV(2,MX7).LT.0.) PHIS=TWPI-PHIS
+      CALL NORMAL(RAN)
+      RAN=RAN*PI/12.
+      PHI=PHIS+PI+RAN
+      IF(PHI.GT.TWPI) PHI=PHI-TWPI
+      IF(PHI.LT.0.) PHI=TWPI-PHI
+      GOTO 16
+C**
+C** PARTICLE MOMENTUM ZERO, REDUCE KINETIC ENERGY OF ALL OTHER
+C**
+  167 EKIN1=0.
+      EKIN2=0.
+      DO 162 J=1,10
+      PV(J,MX5)=0.
+  162 PV(J,MX6)=0.
+      II=I+1
+      DO 168 L=II,NT
+      IF(ABS(IPA(L)).GE.14.AND.SIDE(L).LT.0.) GOTO 168
+      PV(4,L)=PV(4,L)*0.95+0.05*ABS(PV(5,L))
+      IF(PV(4,L).LT.ABS(PV(5,L))) PV(4,L)=ABS(PV(5,L))
+      RNVE=ABS(PV(4,L)**2-PV(5,L)**2)
+      PP=SQRT(RNVE)
+      CALL LENGTX(L,PP1)
+C
+      IF (PP1 .GE. 1.0E-6) GO TO 8002
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,L)=PP*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,L)=PP*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,L)=PP*COS(RTHNVE)
+      GO TO 8003
+ 8002 CONTINUE
+      PV(1,L)=PV(1,L)*PP/PP1
+      PV(2,L)=PV(2,L)*PP/PP1
+      PV(3,L)=PV(3,L)*PP/PP1
+ 8003 CONTINUE
+C
+      PV(10,L)=SQRT(PV(1,L)**2+PV(2,L)**2)
+      IF(SIDE(L).LT.0.) GOTO 164
+      EKIN1=EKIN1+PV(4,L)-ABS(PV(5,L))
+      CALL ADD(MX5,L,MX5)
+      GOTO 168
+  164 EKIN2=EKIN2+PV(4,L)-ABS(PV(5,L))
+      CALL ADD(MX6,L,MX6)
+  168 CONTINUE
+C *** NEXT STMT. CHANGED TO PREVENT FROM INFINITE LOOPING ***
+C*************      GOTO 38
+      GO TO 30
+C**
+C** SKIP PARTICLE, IF NOT ENOUGH ENERGY
+C**
+  169 IPA(I)=0
+      DO 170 J=1,10
+  170 PV(J,I)=0.
+      GOTO 163
+   16 CONTINUE
+      NTRI=0
+      II=0
+      DO 320 I=1,NT
+      IF(IPA(I).EQ.0) GOTO 320
+      II=II+1
+      IPA(II)=IPA(I)
+      SIDE(II)=SIDE(I)
+      DO 321 J=1,10
+  321 PV(J,II)=PV(J,I)
+  320 CONTINUE
+      NT=II
+C**
+C** BACKWARD NUCLEONS PRODUCED WITH A CLUSTER MODEL
+C**
+      CALL LOR(MX4,MX3,MX7)
+      CALL SUB(MX7,MX5,MX7)
+      CALL SUB(MX7,MX6,MX7)
+      IF(TARG1.GT.1.5) GOTO 310
+  322 I=2
+      CALL NORMAL(RAN)
+      EKIN=TAVAI(2)-EKIN2
+      EKINM=RS/2.-MP
+      IF(EKIN.GT.EKINM) EKIN=EKINM
+      CALL NORMAL(RAN)
+      IF(EKIN.LT.0.04) EKIN=0.04*ABS(RAN)
+      PV(4,I)=ABS(PV(5,I))+EKIN
+      RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP=SQRT(RNVE)
+      CALL LENGTX(MX7,PP1)
+C
+      IF (PP1 .GE. 1.0E-6) GO TO 8004
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP*COS(RTHNVE)
+      GO TO 8005
+ 8004 CONTINUE
+      PV(1,I)=PV(1,MX7)*PP/PP1
+      PV(2,I)=PV(2,MX7)*PP/PP1
+      PV(3,I)=PV(3,MX7)*PP/PP1
+ 8005 CONTINUE
+C
+      CALL ADD(MX6,I,MX6)
+      GOTO 330
+  310 ITARG1=IFIX(TARG1+0.1)
+      IF(ITARG1.GT.5) ITARG1=5
+      RMB0=0.
+      NPG=0
+      DO 311 I=1,NT
+      IF(SIDE(I).GT.-2.5) GOTO 311
+      NPG=NPG+1
+      RMB0=RMB0+ABS(PV(5,I))
+  311 CONTINUE
+      IF(NPG.LT.2) GOTO 322
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      RMB=-LOG(1.-RAN)
+      GPAR=G1PAR(ITARG1)
+      CPAR=C1PAR(ITARG1)
+      RMB=RMB0+RMB**CPAR/GPAR
+      PV(5,MX7)=RMB
+      IF(PV(5,MX7).GT.PV(4,MX7)) PV(5,MX7)=PV(4,MX7)
+      RNVE=ABS(PV(4,MX7)**2-PV(5,MX7)**2)
+      PP=SQRT(RNVE)
+      CALL LENGTX(MX7,PP1)
+C
+      IF (PP1 .GE. 1.0E-6) GO TO 8006
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,MX7)=PP*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,MX7)=PP*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,MX7)=PP*COS(RTHNVE)
+      GO TO 8007
+ 8006 CONTINUE
+      PV(1,MX7)=PV(1,MX7)*PP/PP1
+      PV(2,MX7)=PV(2,MX7)*PP/PP1
+      PV(3,MX7)=PV(3,MX7)*PP/PP1
+ 8007 CONTINUE
+C
+      I=MX7
+      IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      PV(1,MX7)=-PV(1,MX7)
+      PV(2,MX7)=-PV(2,MX7)
+      PV(3,MX7)=-PV(3,MX7)
+      KGENEV=1
+      TECM=PV(5,MX7)
+      NPG=0
+      DO 312 I=1,NT
+      IF(SIDE(I).GT.-2.5)GOTO 312
+      NPG=NPG+1
+      AMASS(NPG)=ABS(PV(5,I))
+  312 CONTINUE
+      CALL PHASP
+      NPG=0
+      DO 314 I=1,NT
+      IF(SIDE(I).GT.-2.5) GOTO 314
+      NPG=NPG+1
+      PV(1,I)=PCM(1,NPG)
+      PV(2,I)=PCM(2,NPG)
+      PV(3,I)=PCM(3,NPG)
+      PV(4,I)=PCM(4,NPG)
+      CALL LOR(I,MX7,I)
+      CALL ADD(MX6,I,MX6)
+  314 CONTINUE
+  330 IF (NPRT(4))
+     $ WRITE(NEWBCD,2002) NTRIAL,EKIN1,EKIN2,TAVAI(1),TAVAI(2)
+  175 IF (.NOT.NPRT(4)) GOTO 36
+      CALL ADD(MX5,MX6,MX7)
+      EKIN1=PV(4,MX1)+PV(4,MX2)
+      EKIN2=PV(4,MX5)+PV(4,MX6)
+      WRITE(NEWBCD,2000) EKIN1,EKIN2
+      I=MX1
+      WRITE(NEWBCD,2001) I,(PV(J,I),J=1,4)
+      I=MX2
+      WRITE(NEWBCD,2001) I,(PV(J,I),J=1,4)
+      I=MX5
+      WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      I=MX6
+      WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      DO 37 I=1,NT
+   37 WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+C**
+C** LORENTZ TRANSFORMATION IN LAB SYSTEM
+C**
+   36 IF(NT.LE.2) GOTO 60
+      TARG=0.
+      DO 601 I=1,NT
+      IF(PV(5,I).GT.0.5) TARG=TARG+1.
+      CALL LOR(I,MX2,I)
+  601 CONTINUE
+      IF(TARG.LT.0.5) TARG=1.
+      IF(LEAD.EQ.0) GOTO 6085
+      DO 6081 I=1,NT
+      IF(ABS(IPA(I)).EQ.LEAD) GOTO 6085
+ 6081 CONTINUE
+      I=1
+      IF(LEAD.GE.14.AND.ABS(IPA(2)).GE.14) I=2
+      IF(LEAD.LT.14.AND.ABS(IPA(2)).LT.14) I=2
+      IPA(I)=LEAD
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      PV(5,I)=RMASS(LEAD)
+      PV(7,I)=1.
+      IF(PV(5,I).LT.0.) PV(7,I)=-1.
+      PV(5,I)=ABS(PV(5,I))
+      PV(6,I)=RCHARG(LEAD)
+      PV(4,I)=PV(5,I)+EKIN
+      CALL LENGTX(I,PP)
+      RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP1=SQRT(RNVE)
+      PV(1,I)=PP1*PV(1,I)/PP
+      PV(2,I)=PP1*PV(2,I)/PP
+      PV(3,I)=PP1*PV(3,I)/PP
+ 6085 KGENEV=1
+      PV(1,MX4)=0.
+      PV(2,MX4)=0.
+      PV(3,MX4)=P
+      PV(4,MX4)=SQRT(P*P+AMAS*AMAS)
+      PV(5,MX4)=ABS(AMAS)
+      EKIN0=PV(4,MX4)-PV(5,MX4)
+      PV(1,MX5)=0.
+      PV(2,MX5)=0.
+      PV(3,MX5)=0.
+      PV(4,MX5)=MP*TARG
+      PV(5,MX5)=PV(4,MX5)
+      EKIN=PV(4,MX4)+PV(4,MX5)
+      I=MX4
+      IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      I=MX5
+      IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      CALL ADD(MX4,MX5,MX6)
+      CALL LOR(MX4,MX6,MX4)
+      CALL LOR(MX5,MX6,MX5)
+      TECM=PV(4,MX4)+PV(4,MX5)
+      NPG=NT
+      PV(1,MX8)=0.
+      PV(2,MX8)=0.
+      PV(3,MX8)=0.
+      PV(4,MX8)=0.
+      PV(5,MX8)=0.
+      EKIN1=0.
+      DO 598 I=1,NPG
+      IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+      CALL ADD(MX8,I,MX8)
+      EKIN1=EKIN1+PV(4,I)-PV(5,I)
+      EKIN=EKIN-PV(5,I)
+      IF(I.GT.18) GOTO 598
+      AMASS(I)=PV(5,I)
+  598 CONTINUE
+      IF(NPG.GT.18) GOTO 597
+      CALL PHASP
+      EKIN=0.
+      DO 599 I=1,NPG
+      PV(1,MX7)=PCM(1,I)
+      PV(2,MX7)=PCM(2,I)
+      PV(3,MX7)=PCM(3,I)
+      PV(4,MX7)=PCM(4,I)
+      PV(5,MX7)=AMASS(I)
+      CALL LOR(MX7,MX5,MX7)
+  599 EKIN=EKIN+PV(4,MX7)-PV(5,MX7)
+      CALL ANG(MX8,MX4,COST,TETA)
+      IF (NPRT(4)) WRITE(NEWBCD,2003) TETA,EKIN0,EKIN1,EKIN
+C**
+C** MAKE SHURE, THAT  KINETIC ENERGIES ARE CORRECT.
+C** EKIN= KINETIC ENERGY THEORETICALLY
+C** EKIN1= KINETIC ENERGY SIMULATED
+C**
+  597 IF(EKIN1.EQ.0.) GOTO 600
+      PV(1,MX7)=0.
+      PV(2,MX7)=0.
+      PV(3,MX7)=0.
+      PV(4,MX7)=0.
+      PV(5,MX7)=0.
+      WGT=EKIN/EKIN1
+      EKIN1=0.
+      DO 602 I=1,NT
+      EKIN=PV(4,I)-PV(5,I)
+      EKIN=EKIN*WGT
+      PV(4,I)=EKIN+PV(5,I)
+      RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP=SQRT(RNVE)
+      CALL LENGTX(I,PP1)
+C
+      IF (PP1 .GE. 1.0E-6) GO TO 8008
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP*COS(RTHNVE)
+      GO TO 8009
+ 8008 CONTINUE
+      PV(1,I)=PV(1,I)*PP/PP1
+      PV(2,I)=PV(2,I)*PP/PP1
+      PV(3,I)=PV(3,I)*PP/PP1
+ 8009 CONTINUE
+C
+      EKIN1=EKIN1+EKIN
+      CALL ADD(MX7,I,MX7)
+  602 CONTINUE
+      CALL ANG(MX7,MX4,COST,TETA)
+      IF (NPRT(4)) WRITE(NEWBCD,2003) TETA,EKIN0,EKIN1
+C**
+C** ROTATE IN DIRECTION OF Z-AXIS, THIS DOES DISTURB IN SOME WAY OUR
+C** INCLUSIVE DISTRIBUTIONS, BUT IT IS NESSACARY FOR MOMENTUM CONSER-
+C** VATION.
+C**
+  600 PV(1,MX7)=0.
+      PV(2,MX7)=0.
+      PV(3,MX7)=0.
+      PV(4,MX7)=0.
+      PV(5,MX7)=0.
+      DO 596 I=1,NT
+      CALL ADD(MX7,I,MX7)
+  596 CONTINUE
+C**
+C** SOME SMEARING IN TRANSVERSE DIRECTION FROM FERMI MOTION
+C**
+*          CALL RANNOR(RAN1,RAN2)
+      CALL GRNDM(RNDM,2)
+      RY=RNDM(1)
+      RZ=RNDM(2)
+      RX=6.283185*RZ
+      A1=SQRT(-2.*LOG(RY))
+      RAN1=A1*SIN(RX)
+      RAN2=A1*COS(RX)
+      PV(1,MX7)=PV(1,MX7)+RAN1*0.020*TARG
+      PV(2,MX7)=PV(2,MX7)+RAN2*0.020*TARG
+      CALL DEFS(MX4,MX7,MX8)
+      PV(1,MX7)=0.
+      PV(2,MX7)=0.
+      PV(3,MX7)=0.
+      PV(4,MX7)=0.
+      PV(5,MX7)=0.
+      DO 595 I=1,NT
+      CALL TRAC(I,MX8,I)
+      CALL ADD(MX7,I,MX7)
+  595 CONTINUE
+      CALL ANG(MX7,MX4,COST,TETA)
+      IF (NPRT(4)) WRITE(NEWBCD,2003) TETA
+C**
+C** ROTATE IN DIRECTION OF PRIMARY PARTICLE, SUBTRACT BINDING ENERGIES
+C** AND MAKE SOME FURTHER CORRECTIONS IF REQUIRED (STEEP, STEEQ)
+C**
+      DEKIN=0.
+      NPIONS=0
+      EK1=0.
+      DO 21 I=1,NT
+      CALL DEFS1(I,MXGKPV-1,I)
+      IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+      IF(ATNO2.LT.1.5) GOTO 21
+      CALL LENGTX(I,PP)
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      CALL NORMAL(RAN)
+      EKIN=EKIN-CFA*(1.+0.5*RAN)
+      IF (EKIN .LT. 1.0E-6) EKIN=1.0E-6
+      CALL STEEQ(XXH,I)
+      DEKIN=DEKIN+EKIN*(1.-XXH)
+      EKIN=EKIN*XXH
+      IF(ABS(IPA(I)).GE.7.AND.ABS(IPA(I)).LE.9) NPIONS=NPIONS+1
+      IF(ABS(IPA(I)).GE.7.AND.ABS(IPA(I)).LE.9) EK1=EK1+EKIN
+      PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
+      PV(4,I)=EKIN+ABS(PV(5,I))
+C
+      IF (PP .GE. 1.0E-6) GO TO 8010
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP1*COS(RTHNVE)
+      GO TO 8011
+ 8010 CONTINUE
+      PV(1,I)=PV(1,I)*PP1/PP
+      PV(2,I)=PV(2,I)*PP1/PP
+      PV(3,I)=PV(3,I)*PP1/PP
+ 8011 CONTINUE
+C
+   21 CONTINUE
+      IF(EK1.EQ.0.) GOTO 23
+      IF(NPIONS.EQ.0) GOTO 23
+      DEKIN=1.+DEKIN/EK1
+      DO 22 I=1,NT
+      IF(ABS(IPA(I)).LT.7.OR.ABS(IPA(I)).GT.9) GOTO 22
+      CALL LENGTX(I,PP)
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      EKIN=EKIN*DEKIN
+      IF (EKIN .LT. 1.0E-6) EKIN=1.0E-6
+      PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
+      PV(4,I)=EKIN+ABS(PV(5,I))
+C
+      IF (PP .GE. 1.0E-6) GO TO 8012
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP1*COS(RTHNVE)
+      GO TO 8013
+ 8012 CONTINUE
+      PV(1,I)=PV(1,I)*PP1/PP
+      PV(2,I)=PV(2,I)*PP1/PP
+      PV(3,I)=PV(3,I)*PP1/PP
+ 8013 CONTINUE
+C
+   22 CONTINUE
+C**
+C** ADD BLACK TRACK PARTICLES, THE TOTAL NUMBER OF PARTICLES PRODUCED
+C** IS RESTRICTED TO 198, THIS MAY HAVE INFLUENCE ON VERY HIGH ENERGY
+C** FIRST PROTONS AND NEUTRONS
+C**
+   23 IF(ATNO2.LT.1.5) GOTO 40
+      CALL SELFAB(SPROB)
+      TEX=ENP(1)
+      SPALL=TARG
+      IF(TEX.LT.0.001) GOTO 445
+      BLACK=(1.5+1.25*TARG)*ENP(1)/(ENP(1)+ENP(3))
+      CALL POISSO(BLACK,NBL)
+      IF (NPRT(4)) WRITE(NEWBCD,3003) NBL,TEX
+      IF(IFIX(TARG)+NBL.GT.ATNO2) NBL=ATNO2-TARG
+      IF(NT+NBL.GT.MXGKPV-10) NBL=MXGKPV-10-NT
+      IF(NBL.LE.0) GOTO 445
+      EKIN=TEX/NBL
+      EKIN2=0.
+      CALL STEEP(XX)
+      DO 441 I=1,NBL
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SPROB) GOTO 441
+      IF(NT.EQ.MXGKPV-10) GOTO 441
+      IF(EKIN2.GT.TEX) GOTO 443
+      CALL GRNDM(RNDM,1)
+      RAN1=RNDM(1)
+      CALL NORMAL(RAN2)
+      EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
+      IF(EKIN1.LT.0.0) EKIN1=-0.010*LOG(RAN1)
+      EKIN1=EKIN1*XX
+      EKIN2=EKIN2+EKIN1
+      IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
+      IF (EKIN1 .LT. 0.0) EKIN1=1.0E-6
+      IPA1=16
+      PNRAT=1.-ZNO2/ATNO2
+      CALL GRNDM(RNDM,3)
+      IF(RNDM(1).GT.PNRAT) IPA1=14
+      NT=NT+1
+      SPALL=SPALL+1.
+      COST=-1.+RNDM(2)*2.
+      SINT=SQRT(ABS(1.-COST*COST))
+      PHI=TWPI*RNDM(3)
+      IPA(NT)=-IPA1
+      SIDE(NT)=-4.
+      PV(5,NT)=ABS(RMASS(IPA1))
+      PV(6,NT)=RCHARG(IPA1)
+      PV(7,NT)=1.
+      PV(4,NT)=EKIN1+PV(5,NT)
+      RNVE=ABS(PV(4,NT)**2-PV(5,NT)**2)
+      PP=SQRT(RNVE)
+      PV(1,NT)=PP*SINT*SIN(PHI)
+      PV(2,NT)=PP*SINT*COS(PHI)
+      PV(3,NT)=PP*COST
+  441 CONTINUE
+  443 IF(ATNO2.LT.10.) GOTO 445
+      IF(EK.GT.2.0) GOTO 445
+      II=NT+1
+      KK=0
+      EKA=EK
+      IF(EKA.GT.1.) EKA=EKA*EKA
+      IF(EKA.LT.0.1) EKA=0.1
+      IKA=3.6*EXP((ZNO2**2/ATNO2-35.56)/6.45)/EKA
+      IF(IKA.LE.0) GO TO 445
+      DO 444 I=1,NT
+      II=II-1
+      IF(IPA(II).NE.-14) GOTO 444
+      IPA(II)=-16
+      IPA1  = 16
+      PV(5,II)=ABS(RMASS(IPA1))
+      PV(6,II)=RCHARG(IPA1)
+      KK=KK+1
+      IF(KK.GT.IKA) GOTO 445
+  444 CONTINUE
+C**
+C** THEN ALSO DEUTERONS, TRITONS AND ALPHAS
+C**
+  445 TEX=ENP(3)
+      IF(TEX.LT.0.001) GOTO 40
+      BLACK=(1.5+1.25*TARG)*ENP(3)/(ENP(1)+ENP(3))
+      CALL POISSO(BLACK,NBL)
+      IF(NT+NBL.GT.MXGKPV-10) NBL=MXGKPV-10-NT
+      IF(NBL.LE.0) GOTO 40
+      EKIN=TEX/NBL
+      EKIN2=0.
+      CALL STEEP(XX)
+      IF (NPRT(4)) WRITE(NEWBCD,3004) NBL,TEX
+      DO 442 I=1,NBL
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SPROB) GOTO 442
+      IF(NT.EQ.MXGKPV-10) GOTO 442
+      IF(EKIN2.GT.TEX) GOTO 40
+      CALL GRNDM(RNDM,1)
+      RAN1=RNDM(1)
+      CALL NORMAL(RAN2)
+      EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
+      IF(EKIN1.LT.0.0) EKIN1=-0.010*LOG(RAN1)
+      EKIN1=EKIN1*XX
+      EKIN2=EKIN2+EKIN1
+      IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
+      IF (EKIN1 .LT. 0.0) EKIN1=1.0E-6
+      CALL GRNDM(RNDM,3)
+      COST=-1.+RNDM(1)*2.
+      SINT=SQRT(ABS(1.-COST*COST))
+      PHI=TWPI*RNDM(2)
+      RAN=RNDM(3)
+      IPA(NT+1)=-30
+      IF(RAN.GT.0.60) IPA(NT+1)=-31
+      IF(RAN.GT.0.90) IPA(NT+1)=-32
+      SIDE(NT+1)=-4.
+      PV(5,NT+1)=(ABS(IPA(NT+1))-28)*MP
+      SPALL=SPALL+PV(5,NT+1)*1.066
+      IF(SPALL.GT.ATNO2) GOTO 40
+      NT=NT+1
+      PV(6,NT)=1.
+      IF(IPA(NT).EQ.-32) PV(6,NT)=2.
+      PV(7,NT)=1.
+      PV(4,NT)=PV(5,NT)+EKIN1
+      RNVE=ABS(PV(4,NT)**2-PV(5,NT)**2)
+      PP=SQRT(RNVE)
+      PV(1,NT)=PP*SINT*SIN(PHI)
+      PV(2,NT)=PP*SINT*COS(PHI)
+      PV(3,NT)=PP*COST
+  442 CONTINUE
+C**
+C** STORE ON EVENT COMMON
+C**
+   40 CALL GRNDM(RNDM,1)
+      IF(RS.GT.(4.+RNDM(1))) GOTO 42
+      DO 41 I=1,NT
+      CALL LENGTX(I,ETB)
+      IF(ETB.LT.P) GOTO 41
+      ETF=P
+      PV(4,I)=SQRT(PV(5,I)**2+ETF**2)
+      ETF=ETF/ETB
+      PV(1,I)=PV(1,I)*ETF
+      PV(2,I)=PV(2,I)*ETF
+      PV(3,I)=PV(3,I)*ETF
+   41 CONTINUE
+   42 EKIN=PV(4,MXGKPV)-ABS(PV(5,MXGKPV))
+      EKIN1=PV(4,MXGKPV-1)-ABS(PV(5,MXGKPV-1))
+      EKIN2=0.
+      CALL TDELAY(TOF1)
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      TOF=TOF-TOF1*LOG(RAN)
+      DO 44 I=1,NT
+      EKIN2=EKIN2+PV(4,I)-ABS(PV(5,I))
+      IF(PV(7,I).LT.0.) PV(5,I)=-PV(5,I)
+      PV(7,I)=TOF
+      PV(8,I)=ABS(IPA(I))
+      PV(9,I)=0.
+   44 PV(10,I)=0.
+      IF (NPRT(4)) WRITE(NEWBCD,2006) NT,EKIN,ENP(1),ENP(3),EKIN1,EKIN2
+      INTCT=INTCT+1.
+      CALL SETCUR(NT)
+      NTK=NTK+1
+      IF(NT.EQ.1) GO TO 9999
+      DO 50 II=2,NT
+      I=II-1
+      IF(NTOT.LT.NSIZE/12) GOTO 43
+      GO TO 9999
+   43 CALL SETTRK(I)
+   50 CONTINUE
+C
+ 2002 FORMAT(' *GENXPT* PRODUCTION OF FINAL STATE KINEMATIC AFTER ',I3,
+     $ ' TRIALS.',/,'      KINETIC ENERGIES ',2F6.2,' OUT OF ',2F6.2)
+ 2000 FORMAT(' *GENXPT* CMS PARAMETERS OF FINAL STATE PARTICLES,',/,
+     $ '           ENERGIES IN INITIAL AND FINAL STATE ',2F6.2)
+ 2001 FORMAT(' *GENXPT* TRACK',2X,I3,2X,10F8.3,2X,I3,2X,F4.0)
+ 2003 FORMAT(' *GENXPT* TETA,EKIN0,EKIN1,EKIN ',4F10.4)
+ 2006 FORMAT(' *GENXPT* COMP.',1X,I5,1X,5F7.2)
+ 3001 FORMAT(' *GENXPT* NUCLEAR EXCITATION',I5,
+     $ ' PARTICLES PRODUCED IN ADDITION  TO ',I5,' NORMAL PARTICLES')
+ 3002 FORMAT(' *GENXPT* AVAILABLE ENERGIES ',2F10.4,
+     $ ' FOR ',2I3,' PARTICLES IN BEAM/TARGET FRAGM. REGION',
+     $ ' WITH IPA/SIDE ARRAY '/
+     $ 1H ,5X,10(I3,2X,F3.0,4X))
+ 3003 FORMAT(' *GENXPT* ',I3,' BLACK TRACK PARTICLES PRODUCED',
+     $ ' WITH TOTAL KINETIC ENERGY OF ',F8.3,' GEV')
+ 3004 FORMAT(' *GENXPT* ',I5,' HEAVY FRAGMENTS PRODUCED',
+     $ ' WITH TOTAL ENERGY OF',F8.4,' GEV')
+C
+ 9999 CONTINUE
+C
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE GHEPEC(LEDPAR)
+C**
+C** MOMENTUM CONSERVATION AT HIGH ENERGIES
+C**
+      PARAMETER (MXGKGH=100)
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DOUBLE PRECISION AHMF,BHMF
+C**
+      IF(LEDPAR.LE.0) RETURN
+C**
+      MX=MXGKPV-10
+      MX5=MX+5
+      MX6=MX+6
+      MX7=MX+7
+      MX9=MX+9
+C**
+C** APPLY CORRECTION ON LEADING PARTICLE
+C**
+        IF(NPRT(4))
+     $     WRITE(NEWBCD,1002) LEDPAR,(PV(J,LEDPAR),J=1,10)
+C**
+        CALL SUB3(MX9,MXGKPV,MX5)
+        CALL ANG(MXGKPV,LEDPAR,COST,TETA)
+        CALL LENGTX(LEDPAR,PPP)
+        PTLED=PPP*SQRT(1.-COST**2)
+        CALL SUB3(LEDPAR,MX5,LEDPAR)
+        CALL ANG(MXGKPV,LEDPAR,COST,TETA)
+        CALL LENGTX(LEDPAR,PPP)
+        PPP=PPP*COST
+        CALL LENGTX(MXGKPV,PBEAM)
+        PV(1,MX6)=PV(1,MXGKPV)*PPP/PBEAM
+        PV(2,MX6)=PV(2,MXGKPV)*PPP/PBEAM
+        PV(3,MX6)=PV(3,MXGKPV)*PPP/PBEAM
+        CALL CROSS3(MXGKPV,LEDPAR,MX7)
+        CALL CROSS3(MX7,MXGKPV,MX7)
+        CALL LENGTX(MX7,PPP)
+CDH  TO AVOID DIVISION BY 0, SET PPP TO A SMALL POSITIVE VALUE
+        IF ( PPP .LE. 0. ) PPP = 1.E-20
+        PV(1,MX7)=PV(1,MX7)*PTLED/PPP
+        PV(2,MX7)=PV(2,MX7)*PTLED/PPP
+        PV(3,MX7)=PV(3,MX7)*PTLED/PPP
+        CALL ADD3(MX6,MX7,LEDPAR)
+        CALL LENGTX(LEDPAR,PPP)
+        AHMF=PPP
+        BHMF=PV(5,LEDPAR)
+        PV(4,LEDPAR)=DSQRT(AHMF**2+BHMF**2)
+C**
+      IF(NPRT(4)) THEN
+         WRITE(NEWBCD,1003) LEDPAR,(PV(J,LEDPAR),J=1,10)
+      ENDIF
+C**
+      RETURN
+ 1002 FORMAT(1H ,'*GHEPEC* LEADING PARTICLE ',I3,2X,10F8.3)
+ 1003 FORMAT(1H ,'*GHEPEC* CORRECTED 4-VECT ',I3,2X,10F8.3)
+
+      END
+*-- AUTHOR :
+      SUBROUTINE GHETUN(NT)
+C**
+C** TUNING OF THE HIGH ENERGY COLLISION MODEL:
+C**
+C** 1. AVOID THAT PI0 IS LEADING PARTICLE.
+C** 2. SOME FINE-TUNING FOR THE NUMBER OF PRODUCED PROTONS AND
+C**    NEUTRONS.
+C** 3. INTRODUCE A FLAVOUR DEPENDENT CORRECTION FOR SINGLE PARTICLE
+C**    SPECTRA.
+C** 4. FINE-TUNING OF LEADING PARTICLE SPECTRA AND MOMENTUM
+C**    CONSERVATION.
+C**
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+C
+      DOUBLE PRECISION AHMF,BHMF
+      DIMENSION RNDM(4),SNUM(34),BNUM(34),REDDEC(7)
+      DATA SNUM/9*0.,1.,0.,0.,-1.,4*0.,-1.,1.,-1.,-1.,-1.,1.,1.,1.,
+     $          -2.,-2.,2.,2.,3*0.,-3.,3./
+      DATA BNUM/13*0.,1.,-1.,1.,-1.,1.,-1.,1.,1.,1.,-1.,-1.,-1.,
+     $          1.,1.,-1.,-1.,2.,3.,4.,1.,-1./
+C**
+      MX=MXGKPV-10
+      MX1=MX+1
+      MX2=MX+2
+      MX3=MX+3
+      MX4=MX+4
+      MX5=MX+5
+      MX6=MX+6
+      MX7=MX+7
+      MX8=MX+8
+      MX9=MX+9
+      NT1=NT
+      IF(NT1.GT.MXGKPV-10) NT1=MXGKPV-10
+      NT=NT1
+C
+      CALL GRNDM(RNDM,1)
+      IF(EK.LT.(25.+RNDM(1)*75.)) GOTO 15
+C
+C**  IF PI0 IS THE HIGHEST MOMENTUM PARTICLE, INTERCHANGE IT WITH A
+C**  CHARGED PION.
+C
+      CALL GRNDM(RNDM,4)
+      REDEN = -0.7 + 0.29*LOG10(EK)
+      REDAT = 1. - 0.4000*LOG10(ATNO2)
+      PMAX  = -200.
+      PMAPIP= -200.
+      PMAPI0= -200.
+      PMAPIM= -200.
+      IPMAX = 0
+      MAXPIP= 0
+      MAXPI0= 0
+      MAXPIM= 0
+      IF(RNDM(1).GT.(ATNO2/100.-0.28).AND.ABS(NCH).GT.0.5) THEN
+         DO 46 I=1,NT1
+            IPHMF=IFIX(PV(8,I)+0.1)
+            CALL LENGTX(I,PPP)
+            IF(PPP.GT.PMAX) THEN
+               PMAX=PPP
+               IPMAX=I
+            ENDIF
+            IF(IPHMF.EQ.7) THEN
+               IF(PPP.GT.PMAPIP) THEN
+                  PMAPIP=PPP
+                  MAXPIP=I
+               ENDIF
+            ENDIF
+            IF(IPHMF.EQ.8) THEN
+               IF(PPP.GT.PMAPI0) THEN
+                  PMAPI0=PPP
+                  MAXPI0=I
+               ENDIF
+            ENDIF
+            IF(IPHMF.EQ.9) THEN
+               IF(PPP.GT.PMAPIM) THEN
+                  PMAPIM=PPP
+                  MAXPIM=I
+               ENDIF
+            ENDIF
+   46    CONTINUE
+      ENDIF
+C**
+C**   SOME ADDITIONAL TUNING OF THE NUMBER OF GREY TRACK PARTICLES
+C**
+      IF(NT1.GT.2) THEN
+      DO 47 I=3,NT1
+         IPHMF=IFIX(PV(8,I)+0.1)
+         IF(IPHMF.EQ.14.OR.IPHMF.EQ.16.OR.IPHMF.GE.30) THEN
+            CALL LENGTX(I,PPP)
+            IF(PPP.LT.1.5) THEN
+               IF(RNDM(2).LT.REDEN.OR.RNDM(3).LT.REDAT) THEN
+                  PV(1,I) = 0.
+                  PV(2,I) = 0.
+                  PV(3,I) = 0.
+                  PV(4,I) = ABS(PV(5,I))
+               ENDIF
+            ENDIF
+         ENDIF
+   47 CONTINUE
+      ENDIF
+C**
+      IF(MAXPI0.EQ.0)    GOTO 10
+      IF(PMAPI0.LT.PMAX) GOTO 10
+      IF(RNDM(4).LT.PMAPI0/P) THEN
+      IF(NCH.GT.0.5.AND.MAXPIP.NE.0) THEN
+         DO 49 J=5,10
+           PV(J,MX1)=PV(J,MAXPI0)
+           PV(J,MAXPI0)=PV(J,MAXPIP)
+           PV(J,MAXPIP)=PV(J,MX1)
+   49    CONTINUE
+      ENDIF
+      IF(NCH.LT.-0.5.AND.MAXPIM.NE.0) THEN
+         DO 56 J=5,10
+           PV(J,MX1)=PV(J,MAXPI0)
+           PV(J,MAXPI0)=PV(J,MAXPIM)
+           PV(J,MAXPIM)=PV(J,MX1)
+   56    CONTINUE
+      ENDIF
+      ENDIF
+C
+   10 CONTINUE
+C**
+C** CHECK TOTAL BARYON- NUMBER AND
+C** SKIP ZERO MOMENTUM PARTICLES
+C**
+      BNTOT=-BNUM(IPART)-ATNO2
+      DO 57 I=1,NT1
+         IPHMF=IFIX(PV(8,I)+0.1)
+         BNTOT=BNTOT+BNUM(IPHMF)
+   57 CONTINUE
+      BNTOT=1.+BNTOT/ATNO2
+      IF(ATNO2.LT.1.5) BNTOT=0.
+      CALL GRNDM(RNDM,1)
+      IF(ATNO2.GT.(75.+RNDM(1)*25.)) BNTOT=0.
+C**
+      II=0
+      DO 12 I=1,NT1
+         CALL LENGTX(I,PPP)
+         IF(PPP.GT.1.E-6) THEN
+            IPHMF=IFIX(PV(8,I)+0.1)
+            IF(BNTOT.GT.0.3) THEN
+            IF(IPHMF.EQ.14.OR.IPHMF.EQ.16.OR.IPHMF.GE.30) THEN
+               CALL GRNDM(RNDM,1)
+               IF(RNDM(1).LT.0.5.AND.PPP.LT.1.2) GOTO 12
+            ENDIF
+            ENDIF
+            II=II+1
+            DO 11 J=1,10
+               PV(J,II)=PV(J,I)
+   11       CONTINUE
+         ENDIF
+   12 CONTINUE
+      NT1=II
+      NT=NT1
+C**
+C**   EXACT MOMENTUM CONSERVATION AND SOME CORRECTIONS FOR SINGLE
+C**   PARTICLE SPECTRA AT HIGH ENERGIES ONLY
+C
+   15 PV(1,MX1) = P*PX
+      PV(2,MX1) = P*PY
+      PV(3,MX1) = P*PZ
+      PV(4,MX1) = EN
+      PV(5,MX1) = ABS(AMAS)
+      PV(6,MX1) = NCH
+      PV(1,MX2) = 0.
+      PV(2,MX2) = 0.
+      PV(3,MX2) = 0.
+      PV(4,MX2) = MP
+      PV(5,MX2) = MP
+      PV(6,MX2) = 0.
+C
+      IF(NPRT(4)) THEN
+         WRITE(NEWBCD,2000)
+         WRITE(NEWBCD,2001) MX1,(PV(J,MX1),J=1,6)
+         WRITE(NEWBCD,2001) MX2,(PV(J,MX2),J=1,6)
+      ENDIF
+C
+      DO 58 J=1,10
+         PV(J,MX9) = 0.
+   58 CONTINUE
+      CALL ADD(MX1,MX2,MX3)
+      CALL LOR(MX1,MX3,MX4)
+      CALL LOR(MX2,MX3,MX5)
+      LEDPAR=0
+      REDPAR=0.
+      GESPAR=0.
+      SNUM1=SNUM(IPART)
+      IF(IPART.EQ.11.OR.IPART.EQ.12) THEN
+        CALL GRNDM(RNDM,1)
+        SNUM1=1.
+        IF(RNDM(1).LT.0.5) SNUM1=-1.
+      ENDIF
+      DO 20 I=1,NT1
+         IPHMF=IFIX(PV(8,I)+0.1)
+         IF(IPHMF.LE.6.OR.IPHMF.GT.32) GOTO 19
+         CALL LENGTX(I,PPP)
+         IF(PPP.LT.1.E-3) GOTO 19
+         CALL LOR(I,MX3,MX6)
+         CALL ANG(MX4,MX6,COST,TETA)
+         SNUM2=SNUM(IPHMF)
+         IF(IPHMF.EQ.11.OR.IPHMF.EQ.12) THEN
+            CALL GRNDM(RNDM,1)
+            SNUM2=1.
+            IF(RNDM(1).LT.0.5) SNUM2=-1.
+         ENDIF
+         IF(COST.GT.0.) THEN
+            HFMAS=ABS(AMAS)
+            REDDEC(1)=ABS(HFMAS    -ABS(PV(5,I)))
+            REDDEC(2)=ABS(NCH-PV(6,I))
+            REDDEC(3)=ABS(SNUM1      -SNUM2)
+            REDDEC(4)=ABS(BNUM(IPART)-BNUM(IPHMF))
+         ELSE
+            HFMAS=MP
+            REDDEC(1)=ABS(HFMAS     -ABS(PV(5,I)))
+            REDDEC(2)=ABS(ZNO2/ATNO2-PV(6,I))
+            REDDEC(3)=ABS(SNUM2)
+            REDDEC(4)=ABS(1.-BNUM(IPHMF))
+         ENDIF
+         REDDEC(6)=REDDEC(1)+REDDEC(2)+REDDEC(3)+REDDEC(4)
+         SBQWGT=REDDEC(6)
+         IF(HFMAS.LT.0.2) THEN
+            SBQWGT=(SBQWGT-2.5)*0.10
+            IF(IPHMF.EQ.8) SBQWGT=0.15
+         ELSE IF (HFMAS.LT.0.6) THEN
+            SBQWGT=(SBQWGT-3.0)*0.10
+         ELSE
+            SBQWGT=(SBQWGT-2.0)*0.10
+            IF(IPHMF.EQ.8) SBQWGT=0.15
+         ENDIF
+         CALL LENGTX(MX6,PPP)
+         IF(SBQWGT.GT.0. .AND. PPP.GT.1.E-6) THEN
+         PLHMF=PPP*COST
+         PTHMF=PPP*SQRT(1.-COST*COST)
+         PLHMF=PLHMF*(1.-SBQWGT)
+         CALL CROSS3(MX4,MX6,MX8)
+         CALL CROSS3(MX8,MX4,MX8)
+         CALL LENGTX(MX4,PPP)
+         PV(1,MX7)=PV(1,MX4)*PLHMF/PPP
+         PV(2,MX7)=PV(2,MX4)*PLHMF/PPP
+         PV(3,MX7)=PV(3,MX4)*PLHMF/PPP
+         CALL LENGTX(MX8,PPP)
+         PV(1,MX8)=PV(1,MX8)*PTHMF/PPP
+         PV(2,MX8)=PV(2,MX8)*PTHMF/PPP
+         PV(3,MX8)=PV(3,MX8)*PTHMF/PPP
+         CALL ADD3(MX7,MX8,MX6)
+         CALL LENGTX(MX6,PPP)
+         AHMF=PPP
+         BHMF=PV(5,I)
+         PV(4,MX6)=DSQRT(AHMF**2+BHMF**2)
+C
+         IF(NPRT(4))
+     $      WRITE(NEWBCD,3001) I,(PV(J,I),J=1,8),SBQWGT
+C
+         CALL LOR(MX6,MX5,I)
+C
+         IF(NPRT(4))
+     $      WRITE(NEWBCD,3001) I,(PV(J,I),J=1,8),SBQWGT
+         ENDIF
+C
+         IF(IPHMF.EQ.8) GOTO 19
+         CALL SUB3(MXGKPV,I,MX8)
+         CALL LENGTX(MX8,PPP)
+         REDDEC(5) = PPP/P
+         REDDEC(7)=REDDEC(5)*2./3. + REDDEC(6)/12.
+         REDDEC(7) =  1.-REDDEC(7)
+         IF(REDDEC(7) .LT.  0.) REDDEC(7) =  0.
+         GESPAR=GESPAR+REDDEC(7)
+         IF(REDDEC(6).LE.3.75) THEN
+          IF(REDDEC(7) .GT.  REDPAR) THEN
+             LEDPAR=I
+             REDPAR=REDDEC(7)
+          ENDIF
+         ENDIF
+         IF(NPRT(4))
+     $      WRITE(NEWBCD,2001) I,(PV(J,I),J=1,6),PV(8,I),REDDEC
+C
+  19     CALL ADD3(MX9,I,MX9)
+C
+  20  CONTINUE
+      IF(NPRT(4))
+     $   WRITE(NEWBCD,1001) LEDPAR,REDPAR,GESPAR
+C**
+C** APPLY CORRECTION ON LEADING PARTICLE
+C**
+      CALL GHEPEC(LEDPAR)
+C**
+      RETURN
+ 1001 FORMAT(1H ,'*GHETUN* ',
+     $ 'SEARCH FOR LEADING PARTICLE, WEIGHT, TOTAL WEIGHT ',
+     $ I5,3X,2F10.4)
+ 2000 FORMAT(1H ,'*GHETUN* MOMENTUM CONSERVATION AT HIGH ENERGIES: ')
+ 2001 FORMAT(1H ,I3,2X,7F8.3/1H ,5X,7F8.3)
+ 3001 FORMAT(1H ,I3,2X,5F8.3,F5.1,F8.3,F5.1,F8.3)
+      END
+*-- AUTHOR :
+      SUBROUTINE GNSLWD(NUCFLG,INT,NFL,TEKLOW)
+C
+C *** NEUTRON TRACKING ROUTINE FOR ENERGIES BELOW THE CUT-OFF. ***
+C *** TAKE ONLY ELASTIC SCATTERING, NEUTRON CAPTURE            ***
+C *** AND NUCLEAR FISSION.                                     ***
+C *** NVE 11-MAY-1988 CERN GENEVA ***
+C
+C CALLED BY : GHEISH
+C ORIGIN : H.FESEFELDT (ROUTINE NSLDOW 20-OCT-1987)
+C
+      PARAMETER (MAXMEC=30)
+      COMMON/GCTRAK/VECT(7),GETOT,GEKIN,VOUT(7),NMEC,LMEC(MAXMEC)
+     + ,NAMEC(MAXMEC),NSTEP ,MAXNST,DESTEP,DESTEL,SAFETY,SLENG
+     + ,STEP  ,SNEXT ,SFIELD,TOFG  ,GEKRAT,UPWGHT,IGNEXT,INWVOL
+     + ,ISTOP ,IGAUTO,IEKBIN, ILOSL, IMULL,INGOTO,NLDOWN,NLEVIN
+     + ,NLVSAV,ISTORY
+      PARAMETER (MAXME1=30)
+      COMMON/GCTPOL/POLAR(3), NAMEC1(MAXME1)
+C
+C --- GHEISHA COMMONS ---
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      DIMENSION RNDM(2)
+C
+C --- FLAGS TO INDICATE THE NUCREC ACTION ---
+C NUCFLG = 0 ==> NO ACTION BY NUCREC
+C          1 ==> ACTION BY NUCREC ==> SPECIAL TREATMENT IN GHEISH
+      NOPT=0
+      NUCFLG=0
+C
+C --- IN ORDER TO AVOID TROUBLES CAUSED BY ARITHMETIC INCERTAINTIES, ---
+C --- RECALCULATE SOME QUANTITIES. TAKE KINETIC ENERGY EK AS MOST ---
+C --- RELEVANT QUANTITY. ---
+C
+C --- VERY LOW KINETIC ENERGY ==> NEUTRON CAPTURE ---
+      IF (EK .LT. 1.E-9) GO TO 22
+C
+      EN=EK+ABS(AMAS)
+      P=SQRT(ABS(EN*EN-AMAS*AMAS))
+      PU=SQRT(PX**2+PY**2+PZ**2)
+      IF (PU .GE. 1.E-9) GO TO 7
+C
+      PX=0.0
+      PY=0.0
+      PZ=0.0
+      GO TO 22
+C
+ 7    CONTINUE
+      PX=PX/PU
+      PY=PY/PU
+      PZ=PZ/PU
+C
+C --- SELECT PROCESS ACCORDING TO "INT" ---
+      GO TO (23,23,21,22), INT
+C
+C *** NUCLEAR FISSION ***
+ 21   CONTINUE
+      ISTOP=1
+      TKIN=FISSIO(EK)
+      GO TO 9999
+C
+C *** NEUTRON CAPTURE ***
+ 22   CONTINUE
+      ISTOP=1
+      CALL CAPTUR(NOPT)
+      GO TO 9999
+C
+C *** ELASTIC AND INELASTIC SCATTERING ***
+ 23   CONTINUE
+      PV( 1,MXGKPV)=P*PX
+      PV( 2,MXGKPV)=P*PY
+      PV( 3,MXGKPV)=P*PZ
+      PV( 4,MXGKPV)=EN
+      PV( 5,MXGKPV)=AMAS
+      PV( 6,MXGKPV)=NCH
+      PV( 7,MXGKPV)=TOF
+      PV( 8,MXGKPV)=IPART
+      PV( 9,MXGKPV)=0.0
+      PV(10,MXGKPV)=USERW
+C
+C --- SPECIAL TREATMENT FOR INELASTIC SCATTERING IN HEAVY MEDIA ---
+      IF ((INT .EQ. 2) .AND. (ATNO2 .GE. 1.5)) GO TO 29
+C
+C *** ELASTIC SCATTERING ***
+ 30   CONTINUE
+C
+      IF (NPRT(9)) PRINT 1000
+ 1000 FORMAT(' *GNSLWD* ELASTIC SCATTERING')
+C
+      DO 24 J=4,9
+      PV(J,1)=PV(J,MXGKPV)
+ 24   CONTINUE
+      PV(10,1)=0.0
+C
+C --- VERY SIMPLE SIMULATION OF SCATTERING ANGLE AND ENERGY ---
+C --- NONRELATIVISTIC APPROXIMATION WITH ISOTROPIC ANGULAR ---
+C --- DISTRIBUTION IN THE CMS SYSTEM ---
+  25  CALL GRNDM(RNDM,2)
+      RAN=RNDM(1)
+      COST1=-1.0+2.0*RAN
+      EKA=1.0+2.0*COST1*ATNO2+ATNO2**2
+      IF(EKA.LE.0.) GOTO 25
+      COST=(ATNO2*COST1+1.0)/SQRT(EKA)
+      IF (COST .LT. -1.0) COST=-1.0
+      IF (COST .GT. 1.0) COST=1.0
+      EKA=EKA/(1.0+ATNO2)**2
+      EK=EK*EKA
+      EN=EK+ABS(AMAS)
+      P=SQRT(ABS(EN*EN-AMAS*AMAS))
+      SINT=SQRT(ABS(1.0-COST*COST))
+      PHI=RNDM(2)*TWPI
+      PV(1,2)=SINT*SIN(PHI)
+      PV(2,2)=SINT*COS(PHI)
+      PV(3,2)=COST
+      CALL DEFS1(2,MXGKPV,2)
+      PU=SQRT(PV(1,2)**2+PV(2,2)**2+PV(3,2)**2)
+      PX=PV(1,2)/PU
+      PY=PV(2,2)/PU
+      PZ=PV(3,2)/PU
+      PV(1,1)=PX*P
+      PV(2,1)=PY*P
+      PV(3,1)=PZ*P
+      PV(4,1)=EN
+C
+C --- STORE BACKSCATTERED PARTICLE FOR ATNO < 4.5 ---
+      IF (ATNO2 .GT. 4.5) GO TO 27
+C
+      IF (NPRT(9)) PRINT 1001,ATNO2
+ 1001 FORMAT(' *GNSLWD* BACKSCATTERED PARTICLE STORED FOR ATNO ',G12.5)
+C
+      PV(1,2)=PV(1,MXGKPV)-PV(1,1)
+      PV(2,2)=PV(2,MXGKPV)-PV(2,1)
+      PV(3,2)=PV(3,MXGKPV)-PV(3,1)
+      CALL LENGTX(2,PP)
+      PV(9,2)=0.0
+      PV(10,2)=0.0
+      PV(7,2)=TOF
+C
+      IF (ATNO2 .GT. 3.5) GO TO 274
+      IF (ATNO2 .GT. 2.5) GO TO 273
+      IF (ATNO2 .GT. 1.5) GO TO 272
+C
+ 271  CONTINUE
+      PV(5,2)=RMASS(14)
+      PV(4,2)=SQRT(PP*PP+PV(5,2)*PV(5,2))
+      PV(6,2)=RCHARG(14)
+      PV(8,2)=14.0
+      GO TO 275
+C
+ 272  CONTINUE
+      PV(5,2)=RMASS(30)
+      PV(4,2)=SQRT(PP*PP+PV(5,2)*PV(5,2))
+      PV(6,2)=RCHARG(30)
+      PV(8,2)=30.0
+      GO TO 275
+C
+ 273  CONTINUE
+      PV(5,2)=RMASS(31)
+      PV(4,2)=SQRT(PP*PP+PV(5,2)*PV(5,2))
+      PV(6,2)=RCHARG(31)
+      PV(8,2)=31.0
+      GO TO 275
+C
+ 274  CONTINUE
+      PV(5,2)=RMASS(32)
+      PV(4,2)=SQRT(PP*PP+PV(5,2)*PV(5,2))
+      PV(6,2)=RCHARG(32)
+      PV(8,2)=32.0
+C
+ 275  CONTINUE
+      INTCT=INTCT+1.0
+      CALL SETCUR(1)
+      NTK=NTK+1
+      CALL SETTRK(2)
+      GO TO 9999
+C
+C --- PUT QUANTITIES IN COMMON /RESULT/ ---
+ 27   CONTINUE
+      IF (PV(10,1) .NE. 0.0) USERW=PV(10,1)
+      SINL=PZ
+      COSL=SQRT(ABS(1.0-SINL*SINL))
+      IF (ABS(COSL) .LT. 1.E-10) GO TO 28
+C
+      SINP=PY/COSL
+      COSP=PX/COSL
+      GO TO 9999
+C
+ 28   CONTINUE
+      CALL GRNDM(RNDM,1)
+      PHI=RNDM(1)*TWPI
+      SINP=SIN(PHI)
+      COSP=COS(PHI)
+      GO TO 9999
+C
+C *** INELASTIC SCATTERING ON HEAVY NUCLEI ***
+ 29   CONTINUE
+C
+      IF (NPRT(9)) PRINT 1002
+ 1002 FORMAT(' *GNSLWD* INELASTIC SCATTERING ON HEAVY NUCLEUS')
+C
+C --- DECIDE BETWEEN SPALLATION OR SIMPLE NUCLEAR REACTION ---
+      CALL GRNDM(RNDM,1)
+      TEST1=RNDM(1)
+      TEST2=4.5*(EK-0.01)
+      IF (TEST1 .GT. TEST2) GO TO 40
+C
+C *** SPALLATION ***
+C
+      IF (NPRT(9)) PRINT 1003
+ 1003 FORMAT(' *GNSLWD* SPALLATION')
+C
+      PV( 1,MXGKPV)=P*PX
+      PV( 2,MXGKPV)=P*PY
+      PV( 3,MXGKPV)=P*PZ
+      PV( 4,MXGKPV)=EN
+      PV( 5,MXGKPV)=AMAS
+      PV( 6,MXGKPV)=NCH
+      PV( 7,MXGKPV)=TOF
+      PV( 8,MXGKPV)=IPART
+      PV( 9,MXGKPV)=0.0
+      PV(10,MXGKPV)=USERW
+C
+C --- FERMI-MOTION AND EVAPORATION ---
+      TKIN=CINEMA(EK)
+      ENP(5)=EK+TKIN
+C --- CHECK FOR LOWERBOUND OF EKIN IN CROSS-SECTION TABLES ---
+      IF (ENP(5) .LE. TEKLOW) ENP(5)=TEKLOW
+      ENP(6)=ENP(5)+ABS(AMAS)
+      ENP(7)=ENP(6)*ENP(6)-AMASQ
+      ENP(7)=SQRT(ENP(7))
+      TKIN=FERMI(ENP(5))
+      ENP(5)=ENP(5)+TKIN
+C --- CHECK FOR LOWERBOUND OF EKIN IN CROSS-SECTION TABLES ---
+      IF (ENP(5) .LE. TEKLOW) ENP(5)=TEKLOW
+      ENP(6)=ENP(5)+ABS(AMAS)
+      ENP(7)=ENP(6)*ENP(6)-AMASQ
+      ENP(7)=SQRT(ENP(7))
+      TKIN=EXNU(ENP(5))
+      ENP(5)=ENP(5)-TKIN
+C --- CHECK FOR LOWERBOUND OF EKIN IN CROSS-SECTION TABLES ---
+      IF (ENP(5) .LE. TEKLOW) ENP(5)=TEKLOW
+      ENP(6)=ENP(5)+ABS(AMAS)
+      ENP(7)=ENP(6)*ENP(6)-AMASQ
+      ENP(7)=SQRT(ENP(7))
+C
+C --- NEUTRON CASCADE ---
+      K=2
+      CALL VZERO(IPA(1),MXGKCU)
+      CALL CASN(K,INT,NFL)
+      GO TO 9999
+C
+ 40   CONTINUE
+      IF (NPRT(9)) PRINT 1004
+ 1004 FORMAT(' *GNSLWD* NUCLEAR REACTION')
+      CALL NUCREC(NOPT,1)
+      IF (NOPT .NE. 0) NUCFLG=1
+      IF (NOPT .EQ. 0) GO TO 30
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      FUNCTION GPDK(A,B,C)
+C
+C *** NVE 16-MAR-1988 CERN GENEVA ***
+C
+C CALLED BY : PHASP
+C ORIGIN : H.FESEFELDT (27-OCT-1983)
+C
+C     GPDK = SQRT(A*A+(B*B-C*C)**2/(A*A) - 2.0*(B*B+C*C))/2.0
+C
+      A2 = A*A
+      B2 = B*B
+      C2 = C*C
+      IF(A2) 21,21,61
+   61 CONTINUE
+      ARG=A2+(B2-C2)**2/A2-2.0*(B2+C2)
+      IF (ARG) 21,21,31
+   21 GPDK=0.0
+      GOTO 41
+   31 CONTINUE
+      GPDK = 0.5*SQRT(ABS(A2 + (B2-C2)**2/A2 - 2.0*(B2+C2)))
+   41 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE HIGCLU(IPPP,NFL,AVERN)
+C
+C *** GENERATION OF X- AND PT- VALUES FOR ALL PRODUCED PARTICLES ***
+C *** NVE 01-AUG-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (11-OCT-1987)
+C
+C A SIMPLE TWO CLUSTER MODEL IS USED
+C THIS SHOULD BE SUFFICIENT FOR LOW ENERGY INTERACTIONS
+C
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      COMMON/GENIN /TECM,AMASS(18),NPG,KGENEV
+      COMMON/GENOUT/PCM(5,18),WGT
+C
+C
+      REAL NUCSUP
+      DIMENSION SIDE(MXGKCU),C1PAR(5),G1PAR(5),NUCSUP(6)
+      DIMENSION RNDM(3)
+      DIMENSION PSUP(6)
+      DATA C1PAR/0.6,0.6,0.35,0.15,0.10/
+      DATA G1PAR/2.6,2.6,1.8,1.30,1.20/
+      DATA NUCSUP/1.0,0.7,0.5,0.4,0.35,0.3/
+      DATA PSUP/3.,6.,20.,50.,100.,1000./
+C     DATA CB/3.0/
+      DATA CB/0.01/
+      BPP(X)=4.000+1.600*LOG(X)
+C
+      MX =MXGKPV-20
+      MX1=MX+1
+      MX2=MX+2
+      MX3=MX+3
+      MX4=MX+4
+      MX5=MX+5
+      MX6=MX+6
+      MX7=MX+7
+      MX8=MX+8
+      EK=ENP(5)
+      EN=ENP(6)
+      P=ENP(7)
+      S=ENP(8)
+      RS=ENP(9)
+      CFA=0.025*((ATNO2-1.)/120.)*EXP(-(ATNO2-1.)/120.)
+      IF(P.LT.0.001) GOTO 60
+      NT=0
+C**
+C** CHECK MASS-INDICES FOR ALL PARTICLES
+C**
+      DO 1 I=1,100
+      IF(IPA(I).EQ.0) GOTO 1
+      NT=NT+1
+      IPA(NT)=IPA(I)
+    1 CONTINUE
+      CALL VZERO(IPA(NT+1),MXGKCU-NT)
+C**
+C** SET THE EFFECTICE 4-MOMENTUM-VECTOR FOR INTERACTION
+C**
+      PV( 1,MXGKPV-1)=P*PX
+      PV( 2,MXGKPV-1)=P*PY
+      PV( 3,MXGKPV-1)=P*PZ
+      PV( 4,MXGKPV-1)=EN
+      PV( 5,MXGKPV-1)=AMAS
+      PV( 6,MXGKPV-1)=NCH
+      PV( 7,MXGKPV-1)=TOF
+      PV( 8,MXGKPV-1)=IPART
+      PV( 9,MXGKPV-1)=0.
+      PV(10,MXGKPV-1)=USERW
+      IER(48)=IER(48)+1
+C**
+C** DISTRIBUTE PARTICLES IN FORWARD AND BACKWARD HEMISPHERE OF CMS
+C** OF THE HADRON NUCLEON INTERACTION
+C**
+      SIDE(1)= 1.
+      SIDE(2)=-1.
+      TARG=0.
+      IFOR=1
+      IBACK=1
+      DO 3 I=1,NT
+      IF (I .LE. 2) GO TO 78
+      SIDE(I)=1.
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .LT. 0.5) SIDE(I)=-1.
+      IF (SIDE(I) .LT. 0.) GO TO 76
+C
+C --- PARTICLE IN FORWARD HEMISPHERE ---
+ 77   CONTINUE
+      IFOR=IFOR+1
+      IF (IFOR .LE. 18) GO TO 78
+C
+C --- CHANGE IT TO BACKWARD ---
+      SIDE(I)=-1.
+      IFOR=IFOR-1
+      IBACK=IBACK+1
+      GO TO 78
+C
+C --- PARTICLE IN BACKWARD HEMISPHERE ---
+ 76   CONTINUE
+      IBACK=IBACK+1
+      IF (IBACK .LE. 18) GO TO 78
+C
+C --- CHANGE IT TO FORWARD ---
+      SIDE(I)=1.
+      IBACK=IBACK-1
+      IFOR=IFOR+1
+C**
+C** SUPPRESSION OF CHARGED PIONS FOR VARIOUS REASONS
+C**
+   78 IF(IPART.EQ.15.OR.IPART.GE.17) GOTO 3
+      IF(ABS(IPA(I)).GE.10) GOTO 3
+      IF(ABS(IPA(I)).EQ. 8) GOTO 3
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.(10.-P)/6.) GOTO 3
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.ATNO2/300.) GOTO 3
+      IPA(I)=14
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.ZNO2/ATNO2) IPA(I)=16
+      TARG=TARG+1.
+    3 CONTINUE
+      TB=2.*IBACK
+      CALL GRNDM(RNDM,1)
+      IF(RS.LT.(2.0+RNDM(1))) TB=(2.*IBACK+NT)/2.
+C**
+C** NUCLEONS + SOME PIONS FROM INTRANUCLEAR CASCADE
+C**
+      AFC=0.312+0.200*LOG(LOG(S))+S**1.5/6000.
+      IF(AFC.GT.0.50) AFC= 0.50
+      XTARG=AFC*(ATNO2**0.33-1.0)*TB
+      IF(XTARG.LE.0.) XTARG=0.01
+      DO 881 IPX=1,6
+         IF(P.LE.PSUP(IPX)) GOTO 882
+  881 CONTINUE
+      IPX=6
+  882 XPNHMF = XTARG*NUCSUP(IPX)
+      XSHHMF = XTARG - XPNHMF
+      IF(XSHHMF.LT.0.01) XSHHMF=0.01
+      IF(XPNHMF.LT.0.01) XPNHMF=0.01
+      SSHHMF=0.5*XSHHMF
+      SPNHMF=0.9*XPNHMF
+      RSHHMF=SSHHMF**2/XSHHMF
+      RPNHMF=SPNHMF**2/XPNHMF
+      IF(RSHHMF.LT.1.1) THEN
+        CALL POISSO(XSHHMF,NSHHMF)
+        GOTO 541
+      ELSE
+        RSHHMF=XSHHMF/(RSHHMF-1.)
+        IF(RSHHMF.LE.20.) THEN
+          CALL SVGAM7(RSHHMF,XHMF)
+        ELSE
+          KRSHMF=IFIX(RSHHMF+0.5)
+          CALL SVERL2(KRSHMF,XHMF)
+        ENDIF
+        XSHHMF=XHMF*XSHHMF/RSHHMF
+        CALL POISSO(XSHHMF,NSHHMF)
+      ENDIF
+  541 IF(RPNHMF.LE.1.1) THEN
+        CALL POISSO(XPNHMF,NPNHMF)
+        GOTO 542
+      ELSE
+        RPNHMF=XPNHMF/(RPNHMF-1.)
+        IF(RPNHMF.LE.20.) THEN
+           CALL SVGAM7(RPNHMF,XHMF)
+        ELSE
+           KRPHMF=IFIX(RPNHMF+0.5)
+           CALL SVERL2(KRPHMF,XHMF)
+        ENDIF
+        XPNHMF=XHMF*XPNHMF/RPNHMF
+        CALL POISSO(XPNHMF,NPNHMF)
+      ENDIF
+  542 NTARG=NSHHMF+NPNHMF
+      NT2=NT+NTARG
+      IF(NT2.LE.MXGKPV-30) GOTO 2
+      NT2=MXGKPV-30
+      NTARG=NT2-NT
+    2 CONTINUE
+      IF(NPRT(4))
+     *WRITE(NEWBCD,3001) NTARG,NT
+      NT1=NT+1
+      IF(NTARG.EQ.0) GOTO 51
+      DO 4 I=NT1,NT2
+      IF(NPNHMF.GT.0) GOTO 52
+      CALL GRNDM(RNDM,1)
+      IPA(I)=-(7+IFIX(RNDM(1)*3.0))
+CJOK
+      SIDE(I)=-2.
+CJOK
+      GOTO 4
+   52 IPA(I)=-16
+      PNRAT=1.-ZNO2/ATNO2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.PNRAT) IPA(I)=-14
+      TARG=TARG+1.
+      SIDE(I)=-2.
+      NPNHMF=NPNHMF-1
+    4 CONTINUE
+      NT=NT2
+C**
+C** CHOOSE MASSES AND CHARGES FOR ALL PARTICLES
+C**
+   51 DO 5 I=1,NT
+      IPA1=ABS(IPA(I))
+      PV(5,I)=RMASS(IPA1)
+      PV(6,I)=RCHARG(IPA1)
+      PV(7,I)=1.
+      IF(PV(5,I).LT.0.) PV(7,I)=-1.
+      PV(5,I)=ABS(PV(5,I))
+    5 CONTINUE
+C**
+C** MARK LEADING STRANGE PARTICLES
+C**
+      LEAD=0
+      IF(IPART.LT.10.OR.IPART.EQ.14.OR.IPART.EQ.16) GOTO 6
+      IPA1=ABS(IPA(1))
+      IF(IPA1.LT.10.OR.IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 531
+      LEAD=IPA1
+      GOTO 6
+  531 IPA1=ABS(IPA(2))
+      IF(IPA1.LT.10.OR.IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 6
+      LEAD=IPA1
+C**
+C** CHECK AVAILABLE KINETIC ENERGY , CHANGE HEMISPHERE FOR PARTICLES
+C** UNTIL IT FITS
+C**
+    6 IF(NT.LE.1) GOTO 60
+      TAVAI=0.
+      DO 7 I=1,NT
+      IF(SIDE(I).LT.-1.5) GOTO 7
+      TAVAI=TAVAI+ABS(PV(5,I))
+    7 CONTINUE
+CJOK MODIFIED ACCORDING TO D.HECK
+      IF(TAVAI.LT.RS-0.00001) GOTO 12
+      IF(NPRT(4))
+     $ WRITE(NEWBCD,3002) (IPA(I),I=1,20),(SIDE(I),I=1,20),TAVAI,RS
+ 3002 FORMAT(' *HIGCLU* CHECK AVAILABLE ENERGIES'/
+     $ 1H ,20I5/1H ,20F5.0/1H ,'TAVAI,RS ',2F10.3)
+      DO 10 I=1,NT
+      II=NT-I+1
+      IF(SIDE(II).LT.-1.5) GOTO 10
+      IF(II.EQ.NT) GOTO 11
+      NT1=II+1
+      NT2=NT
+      DO 8 J=NT1,NT2
+      IPA(J-1)=IPA(J)
+      SIDE(J-1)=SIDE(J)
+      DO 8 K=1,10
+    8 PV(K,J-1)=PV(K,J)
+      GOTO 11
+   10 CONTINUE
+   11 SIDE(NT)=0.
+      IPA(NT)=0
+      NT=NT-1
+      GOTO 6
+   12 IF(NT.LE.1) GOTO 60
+      B=BPP(P)
+      IF(B.LT.CB) B=CB
+C**
+C** CHOOSE MASSES FOR THE 3 CLUSTER: 1. FORWARD CLUSTER
+C**   2. BACKWARD MESON CLUSTER  3. BACKWARD NUCLEON CLUSTER
+C**
+      RMC0=0.
+      RMD0=0.
+      RME0=0.
+      NTC=0
+      NTD=0
+      NTE=0
+      DO 31 I=1,NT
+      IF(SIDE(I).GT.0.) RMC0=RMC0+ABS(PV(5,I))
+      IF(SIDE(I).GT.0.) NTC =NTC +1
+      IF(SIDE(I).LT.0..AND.SIDE(I).GT.-1.5) RMD0=RMD0+ABS(PV(5,I))
+      IF(                  SIDE(I).LT.-1.5) RME0=RME0+ABS(PV(5,I))
+      IF(SIDE(I).LT.0..AND.SIDE(I).GT.-1.5) NTD =NTD +1
+      IF(                  SIDE(I).LT.-1.5) NTE =NTE +1
+   31 CONTINUE
+   32 CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      RMC=RMC0
+      IF(NTC.LE.1) GOTO 33
+      NTC1=NTC
+      IF(NTC1.GT.5) NTC1=5
+      RMC=-LOG(1.-RAN)
+      GPAR=G1PAR(NTC1)
+      CPAR=C1PAR(NTC1)
+      DUMNVE=GPAR
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      RMC=RMC0+RMC**CPAR/DUMNVE
+   33 RMD=RMD0
+      IF(NTD.LE.1) GOTO 34
+      NTD1=NTD
+      IF(NTD1.GT.5) NTD1=5
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      RMD=-LOG(1.-RAN)
+      GPAR=G1PAR(NTD1)
+      CPAR=C1PAR(NTD1)
+      DUMNVE=GPAR
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      RMD=RMD0+RMD**CPAR/DUMNVE
+   34 IF(RMC+RMD.LE.RS) GOTO 35
+      IF (RMC.LE.RMC0.AND.RMD.LE.RMD0) THEN
+         HNRMDC = 0.999*RS/(RMC+RMD)
+         RMD = RMD*HNRMDC
+         RMC = RMC*HNRMDC
+      ELSE
+         RMC=0.1*RMC0+0.9*RMC
+         RMD=0.1*RMD0+0.9*RMD
+      ENDIF
+      GOTO 34
+   35 IF(NTE.LE.0) GOTO 38
+      RME=RME0
+      IF(NTE.EQ.1) GOTO 38
+      NTE1=NTE
+      IF(NTE1.GT.5) NTE1=5
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      RME=-LOG(1.-RAN)
+      GPAR=G1PAR(NTE1)
+      CPAR=C1PAR(NTE1)
+      DUMNVE=GPAR
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      RME=RME0+RME**CPAR/DUMNVE
+C**
+C** SET BEAM , TARGET OF FIRST INTERACTION IN CMS
+C**
+   38 PV( 1,MX1) =0.
+      PV( 2,MX1) =0.
+      PV( 3,MX1) =P
+      PV( 5,MX1) =ABS(AMAS)
+      PV( 4,MX1) =SQRT(P*P+AMAS*AMAS)
+      PV( 1,MX2) =0.
+      PV( 2,MX2) =0.
+      PV( 3,MX2) =0.
+      PV( 4,MX2) =MP
+      PV( 5,MX2) =MP
+
+C** TRANSFORM INTO CMS.
+
+      CALL ADD(MX1,MX2,MX)
+      CALL LOR(MX1,MX,MX1)
+      CALL LOR(MX2,MX,MX2)
+      PF=(S+RMD*RMD-RMC*RMC)**2 - 4*S*RMD*RMD
+      IF(PF.LT.0.0001) PF=0.0001
+      DUMNVE=2.0*RS
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      PF=SQRT(PF)/DUMNVE
+      IF(NPRT(4)) WRITE(6,2002) PF,RMC,RMD,RS
+C**
+C** SET FINAL STATE MASSES AND ENERGIES IN CMS
+C**
+      PV(5,MX3) =RMC
+      PV(5,MX4) =RMD
+      PV(4,MX3) =SQRT(PF*PF+RMC*RMC)
+      PV(4,MX4) =SQRT(PF*PF+RMD*RMD)
+C**
+C** SET |T| AND |TMIN|
+C**
+      T=-1.0E10
+      CALL GRNDM(RNDM,1)
+      IF (B .NE. 0.0) T=LOG(1.-RNDM(1))/B
+      CALL LENGTX(MX1,PIN)
+      TACMIN=(PV(4,MX1) -PV(4,MX3))**2 -(PIN-PF)**2
+C**
+C** CACULATE (SIN(TETA/2.)**2 AND COS(TETA), SET AZIMUTH ANGLE PHI
+C**
+      DUMNVE=4.0*PIN*PF
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      CTET=-(T-TACMIN)/DUMNVE
+      CTET=1.0-2.0*CTET
+      IF (CTET .GT. 1.0) CTET=1.0
+      IF (CTET .LT. -1.0) CTET=-1.0
+      DUMNVE=1.0-CTET*CTET
+      IF (DUMNVE .LT. 0.0) DUMNVE=0.0
+      STET=SQRT(DUMNVE)
+      CALL GRNDM(RNDM,1)
+      PHI=RNDM(1)*TWPI
+C**
+C** CALCULATE FINAL STATE MOMENTA IN CMS
+C**
+      PV(1,MX3) =PF*STET*SIN(PHI)
+      PV(2,MX3) =PF*STET*COS(PHI)
+      PV(3,MX3) =PF*CTET
+      PV(1,MX4) =-PV(1,MX3)
+      PV(2,MX4) =-PV(2,MX3)
+      PV(3,MX4) =-PV(3,MX3)
+C**
+C** SIMULATE BACKWARD NUCLEON CLUSTER IN LAB. SYSTEM AND TRANSFORM IN
+C** CMS.
+C**
+      IF(NTE.EQ.0) GOTO 28
+      GA=1.2
+      EKIT1=0.04
+      EKIT2=0.6
+      IF(EK.GT.5.) GOTO 666
+      EKIT1=EKIT1*EK**2/25.
+      EKIT2=EKIT2*EK**2/25.
+  666 A=(1.-GA)/(EKIT2**(1.-GA)-EKIT1**(1.-GA))
+      DO 29 I=1,NT
+      IF(SIDE(I).GT.-1.5) GOTO 29
+      CALL GRNDM(RNDM,3)
+      RAN=RNDM(1)
+      EKIT=(RAN*(1.-GA)/A+EKIT1**(1.-GA))**(1./(1.-GA))
+      PV(4,I)=EKIT+PV(5,I)
+      DUMNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP=SQRT(DUMNVE)
+      RAN=RNDM(2)
+      COST=LOG(2.23*RAN+0.383)/0.96
+      IF (COST .LT. -1.0) COST=-1.0
+      IF (COST .GT. 1.0) COST=1.0
+      DUMNVE=1.0-COST*COST
+      IF (DUMNVE .LT. 0.0) DUMNVE=0.0
+      SINT=SQRT(DUMNVE)
+      PHI=TWPI*RNDM(3)
+      PV(1,I)=PP*SINT*SIN(PHI)
+      PV(2,I)=PP*SINT*COS(PHI)
+      PV(3,I)=PP*COST
+      CALL LOR(I,MX,I)
+   29 CONTINUE
+C**
+C** FRAGMENTATION OF FORWARD CLUSTER AND BACKWARD MESON CLUSTER
+C**
+   28 PV(1,1)=PV(1,MX3)
+      PV(2,1)=PV(2,MX3)
+      PV(3,1)=PV(3,MX3)
+      PV(4,1)=PV(4,MX3)
+      PV(1,2)=PV(1,MX4)
+      PV(2,2)=PV(2,MX4)
+      PV(3,2)=PV(3,MX4)
+      PV(4,2)=PV(4,MX4)
+      DO 17 I=MX5,MX6
+      DO 16 J=1,3
+   16 PV(J,I)=-PV(J,I-2)
+      DO 17 J=4,5
+   17 PV(J,I)= PV(J,I-2)
+      KGENEV=1
+      IF(NTC.LE.1) GOTO 26
+      TECM=PV(5,MX3)
+      NPG=0
+      DO 18 I=1,NT
+      IF(SIDE(I).LT.0.) GOTO 18
+      IF(NPG.EQ.18) THEN
+         SIDE(I)=-SIDE(I)
+         GOTO 18
+      ENDIF
+      NPG=NPG+1
+      AMASS(NPG)=ABS(PV(5,I))
+   18 CONTINUE
+      IF(NPRT(4)) WRITE(NEWBCD,2004) TECM,NPG,(AMASS(I),I=1,NPG)
+      CALL PHASP
+      NPG=0
+      DO 19 I=1,NT
+      IF(SIDE(I).LT.0.) GOTO 19
+      NPG=NPG+1
+      PV(1,I)=PCM(1,NPG)
+      PV(2,I)=PCM(2,NPG)
+      PV(3,I)=PCM(3,NPG)
+      PV(4,I)=PCM(4,NPG)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      CALL LOR(I,MX5,I)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+   19 CONTINUE
+   26 IF(NTD.LE.1) GOTO 27
+      TECM=PV(5,MX4)
+      NPG=0
+      DO 20 I=1,NT
+      IF(SIDE(I).GT.0..OR.SIDE(I).LT.-1.5) GOTO 20
+      IF(NPG.EQ.18) THEN
+         SIDE(I)=-2.
+         PV(4,I)=ABS(PV(5,I))
+         DO 48 J=1,3
+            PV(J,I)=0.
+   48    CONTINUE
+         GOTO 20
+      ENDIF
+      NPG=NPG+1
+      AMASS(NPG)=ABS(PV(5,I))
+   20 CONTINUE
+      IF(NPRT(4)) WRITE(NEWBCD,2004) TECM,NPG,(AMASS(I),I=1,NPG)
+      CALL PHASP
+      NPG=0
+      DO 21 I=1,NT
+      IF(SIDE(I).GT.0..OR.SIDE(I).LT.-1.5) GOTO 21
+      NPG=NPG+1
+      PV(1,I)=PCM(1,NPG)
+      PV(2,I)=PCM(2,NPG)
+      PV(3,I)=PCM(3,NPG)
+      PV(4,I)=PCM(4,NPG)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      CALL LOR(I,MX6,I)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+   21 CONTINUE
+C**
+C** LORENTZ TRANSFORMATION IN LAB SYSTEM
+C**
+   27 TARG=0.
+      DO 36 I=1,NT
+      IF(PV(5,I).GT.0.5) TARG=TARG+1.
+      CALL LOR(I,MX2,I)
+   36 CONTINUE
+      IF(TARG.LT.0.5) TARG=1.
+C**
+C** SOMETIMES THE LEADING STRANGE PARTICLES ARE LOST , SET THEM BACK
+C**
+      IF(LEAD.EQ.0) GOTO 6085
+      DO 6081 I=1,NT
+      IF(ABS(IPA(I)).EQ.LEAD) GOTO 6085
+ 6081 CONTINUE
+      I=1
+      IF(LEAD.GE.14.AND.ABS(IPA(2)).GE.14) I=2
+      IF(LEAD.LT.14.AND.ABS(IPA(2)).LT.14) I=2
+      IPA(I)=LEAD
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      PV(5,I)=RMASS(LEAD)
+      PV(7,I)=1.
+      IF(PV(5,I).LT.0.) PV(7,I)=-1.
+      PV(5,I)=ABS(PV(5,I))
+      PV(6,I)=RCHARG(LEAD)
+      PV(4,I)=PV(5,I)+EKIN
+      CALL LENGTX(I,PP)
+      DUMNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP1=SQRT(DUMNVE)
+C
+      IF (PP .GE. 1.0E-6) GO TO 8000
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP1*COS(RTHNVE)
+      GO TO 8001
+ 8000 CONTINUE
+      PV(1,I)=PV(1,I)*PP1/PP
+      PV(2,I)=PV(2,I)*PP1/PP
+      PV(3,I)=PV(3,I)*PP1/PP
+ 8001 CONTINUE
+C
+C** FOR VARIOUS REASONS, THE ENERGY BALANCE IS NOT SUFFICIENT,
+C** CHECK THAT,  ENERGY BALANCE, ANGLE OF FINAL SYSTEM E.T.C.
+ 6085 KGENEV=1
+      PV(1,MX4) =0.
+      PV(2,MX4) =0.
+      PV(3,MX4) =P
+      PV(4,MX4) =SQRT(P*P+AMAS*AMAS)
+      PV(5,MX4) =ABS(AMAS)
+      EKIN0=PV(4,MX4) -PV(5,MX4)
+      PV(1,MX5) =0.
+      PV(2,MX5) =0.
+      PV(3,MX5) =0.
+      PV(4,MX5) =MP*TARG
+      PV(5,MX5) =PV(4,MX5)
+      EKIN=PV(4,MX4) +PV(4,MX5)
+      I=MX4
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      I=MX5
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      CALL ADD(MX4,MX5,MX6)
+      CALL LOR(MX4,MX6,MX4)
+      CALL LOR(MX5,MX6,MX5)
+      TECM=PV(4,MX4) +PV(4,MX5)
+      NPG=NT
+      PV(1,MX8) =0.
+      PV(2,MX8) =0.
+      PV(3,MX8) =0.
+      PV(4,MX8) =0.
+      PV(5,MX8) =0.
+      EKIN1=0.
+      DO 598 I=1,NPG
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+      CALL ADD(MX8,I,MX8)
+      EKIN1=EKIN1+PV(4,I)-PV(5,I)
+      EKIN=EKIN-PV(5,I)
+      IF(I.GT.18) GOTO 598
+      AMASS(I)=PV(5,I)
+  598 CONTINUE
+      IF(NPG.GT.18) GOTO 597
+      CALL PHASP
+      EKIN=0.
+      DO 599 I=1,NPG
+      PV(1,MX7)=PCM(1,I)
+      PV(2,MX7)=PCM(2,I)
+      PV(3,MX7)=PCM(3,I)
+      PV(4,MX7)=PCM(4,I)
+      PV(5,MX7)=AMASS(I)
+      CALL LOR(MX7,MX5,MX7)
+  599 EKIN=EKIN+PV(4,MX7)-PV(5,MX7)
+      CALL ANG(MX8,MX4,COST,TETA)
+      IF(NPRT(4)) WRITE(NEWBCD,2003) TETA,EKIN0,EKIN1,EKIN
+C**
+C** MAKE SHURE, THAT  KINETIC ENERGIES ARE CORRECT
+C** THE 3. CLUSTER IS NOT PRODUCED WITHIN PROPER KINEMATICS!!!
+C** EKIN= KINETIC ENERGY THEORETICALLY
+C** EKIN1= KINETIC ENERGY SIMULATED
+C**
+  597 IF(EKIN1.EQ.0.) GOTO 600
+      PV(1,MX7) =0.
+      PV(2,MX7) =0.
+      PV(3,MX7) =0.
+      PV(4,MX7) =0.
+      PV(5,MX7) =0.
+      WGT=EKIN/EKIN1
+      EKIN1=0.
+      DO 602 I=1,NT
+      EKIN=PV(4,I)-PV(5,I)
+      EKIN=EKIN*WGT
+      PV(4,I)=EKIN+PV(5,I)
+      DUMNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP=SQRT(DUMNVE)
+      CALL LENGTX(I,PP1)
+C
+      IF (PP1 .GE. 1.0E-6) GO TO 8002
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP*COS(RTHNVE)
+      GO TO 8003
+ 8002 CONTINUE
+      PV(1,I)=PV(1,I)*PP/PP1
+      PV(2,I)=PV(2,I)*PP/PP1
+      PV(3,I)=PV(3,I)*PP/PP1
+ 8003 CONTINUE
+C
+      EKIN1=EKIN1+EKIN
+      CALL ADD(MX7,I,MX7)
+  602 CONTINUE
+      CALL ANG(MX7,MX4,COST,TETA)
+      IF(NPRT(4)) WRITE(NEWBCD,2003) TETA,EKIN0,EKIN1
+C**
+C** ROTATE IN DIRECTION OF Z-AXIS, SEE COMMENTS IN 'GENXPT'
+C**
+  600 PV(1,MX7)=0.
+      PV(2,MX7)=0.
+      PV(3,MX7)=0.
+      PV(4,MX7)=0.
+      PV(5,MX7)=0.
+      DO 596 I=1,NT
+      CALL ADD(MX7,I,MX7)
+  596 CONTINUE
+*          CALL RANNOR(RAN1,RAN2)
+      CALL GRNDM(RNDM,2)
+      RY=RNDM(1)
+      RZ=RNDM(2)
+      RX=6.283185*RZ
+      A1=SQRT(-2.*LOG(RY))
+      RAN1=A1*SIN(RX)
+      RAN2=A1*COS(RX)
+      PV(1,MX7)=PV(1,MX7)+RAN1*0.020*TARG
+      PV(2,MX7)=PV(2,MX7)+RAN2*0.020*TARG
+      CALL DEFS(MX4,MX7,MX8)
+      PV(1,MX7)=0.
+      PV(2,MX7)=0.
+      PV(3,MX7)=0.
+      PV(4,MX7)=0.
+      PV(5,MX7)=0.
+      DO 595 I=1,NT
+      CALL TRAC(I,MX8,I)
+      CALL ADD(MX7,I,MX7)
+  595 CONTINUE
+      CALL ANG(MX7,MX4,COST,TETA)
+      IF(NPRT(4)) WRITE(NEWBCD,2003) TETA
+C**
+C** ROTATE IN DIRECTION OF PRIMARY PARTICLE
+C**
+      DEKIN=0.
+      NPIONS=0
+      EK1=0.
+      DO 25 I=1,NT
+      CALL DEFS1(I,MXGKPV-1,I)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+      IF(ATNO2.LT.1.5) GOTO 25
+      CALL LENGTX(I,PP)
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      CALL NORMAL(RAN)
+      EKIN=EKIN-CFA*(1.+0.5*RAN)
+      IF (EKIN .LT. 1.0E-6) EKIN=1.0E-6
+      CALL STEEQ(XXH,I)
+      DEKIN=DEKIN+EKIN*(1.-XXH)
+      EKIN=EKIN*XXH
+      IF(ABS(IPA(I)).GE.7.AND.ABS(IPA(I)).LE.9) NPIONS=NPIONS+1
+      IF(ABS(IPA(I)).GE.7.AND.ABS(IPA(I)).LE.9) EK1=EK1+EKIN
+      PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
+      PV(4,I)=EKIN+ABS(PV(5,I))
+C
+      IF (PP .GE. 1.0E-6) GO TO 8004
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP1*COS(RTHNVE)
+      GO TO 8005
+ 8004 CONTINUE
+      PV(1,I)=PV(1,I)*PP1/PP
+      PV(2,I)=PV(2,I)*PP1/PP
+      PV(3,I)=PV(3,I)*PP1/PP
+ 8005 CONTINUE
+C
+   25 CONTINUE
+      IF(EK1.EQ.0.) GOTO 23
+      IF(NPIONS.LE.0) GOTO 23
+      DEKIN=1.+DEKIN/EK1
+      DO 22 I=1,NT
+      IF(ABS(IPA(I)).LT.7.OR.ABS(IPA(I)).GT.9) GOTO 22
+      CALL LENGTX(I,PP)
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      EKIN=EKIN*DEKIN
+      IF (EKIN .LT. 1.0E-6) EKIN=1.0E-6
+      PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
+      PV(4,I)=EKIN+ABS(PV(5,I))
+C
+      IF (PP .GE. 1.0E-6) GO TO 8006
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP1*COS(RTHNVE)
+      GO TO 8007
+ 8006 CONTINUE
+      PV(1,I)=PV(1,I)*PP1/PP
+      PV(2,I)=PV(2,I)*PP1/PP
+      PV(3,I)=PV(3,I)*PP1/PP
+ 8007 CONTINUE
+C
+   22 CONTINUE
+   23 IF(ATNO2.LT.1.5) GOTO 40
+C**
+C** ADD BLACK TRACK PARTICLES
+C**
+      CALL HIGHAB(SPROB)
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SPROB) GOTO 40
+      TEX=ENP(1)
+      SPALL=TARG
+      IF(TEX.LT.0.001) GOTO 445
+      BLACK=(1.5+1.25*TARG)*ENP(1)/(ENP(1)+ENP(3))
+      CALL POISSO(BLACK,NBL)
+      IF(NPRT(4))
+     *WRITE(NEWBCD,3003) NBL,TEX
+      IF(IFIX(TARG)+NBL.GT.ATNO2) NBL=ATNO2-TARG
+      IF(NT+NBL.GT.MXGKPV-2) NBL=MXGKPV-2-NT
+      IF(NBL.LE.0) GOTO 445
+      EKIN=TEX/NBL
+      EKIN2=0.
+      CALL STEEP(XX)
+      DO 441 I=1,NBL
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SPROB) GOTO 441
+      IF(NT.EQ.MXGKPV-2) GOTO 441
+      IF(EKIN2.GT.TEX) GOTO 443
+      CALL GRNDM(RNDM,1)
+      RAN1=RNDM(1)
+      CALL NORMAL(RAN2)
+      EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
+      IF(EKIN1.LT.0.0) EKIN1=-0.010*LOG(RAN1)
+      EKIN1=EKIN1*XX
+      EKIN2=EKIN2+EKIN1
+      IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
+      IF (EKIN1 .LT. 0.0) EKIN1=1.0E-6
+      IPA1=16
+      PNRAT=1.-ZNO2/ATNO2
+      CALL GRNDM(RNDM,3)
+      IF(RNDM(1).GT.PNRAT) IPA1=14
+      NT=NT+1
+      SPALL=SPALL+1.
+      COST=-1.0+RNDM(2)*2.0
+      DUMNVE=1.0-COST*COST
+      IF (DUMNVE .LT. 0.0) DUMNVE=0.0
+      SINT=SQRT(DUMNVE)
+      PHI=TWPI*RNDM(3)
+      IPA(NT)=-IPA1
+      SIDE(NT)=-4.
+      PV(5,NT)=ABS(RMASS(IPA1))
+      PV(6,NT)=RCHARG(IPA1)
+      PV(7,NT)=1.
+      PV(4,NT)=EKIN1+PV(5,NT)
+      DUMNVE=ABS(PV(4,NT)**2-PV(5,NT)**2)
+      PP=SQRT(DUMNVE)
+      PV(1,NT)=PP*SINT*SIN(PHI)
+      PV(2,NT)=PP*SINT*COS(PHI)
+      PV(3,NT)=PP*COST
+  441 CONTINUE
+  443 IF(ATNO2.LT.10.) GOTO 445
+      IF(EK.GT.2.0) GOTO 445
+      II=NT+1
+      KK=0
+      EKA=EK
+      IF(EKA.GT.1.) EKA=EKA*EKA
+      IF(EKA.LT.0.1) EKA=0.1
+      IKA=3.6*EXP((ZNO2**2/ATNO2-35.56)/6.45)/EKA
+      IF(IKA.LE.0) GO TO 445
+      DO 444 I=1,NT
+      II=II-1
+      IF(IPA(II).NE.-14) GOTO 444
+      IPA(II)=-16
+      IPA1  = 16
+      PV(5,II)=ABS(RMASS(IPA1))
+      PV(6,II)=RCHARG(IPA1)
+      KK=KK+1
+      IF(KK.GT.IKA) GOTO 445
+  444 CONTINUE
+  445 TEX=ENP(3)
+      IF(TEX.LT.0.001) GOTO 40
+      BLACK=(1.5+1.25*TARG)*ENP(3)/(ENP(1)+ENP(3))
+      CALL POISSO(BLACK,NBL)
+      IF(NT+NBL.GT.MXGKPV-2) NBL=MXGKPV-2-NT
+      IF(NBL.LE.0) GOTO 40
+      EKIN=TEX/NBL
+      EKIN2=0.
+      CALL STEEP(XX)
+      IF(NPRT(4))
+     *WRITE(NEWBCD,3004) NBL,TEX
+      DO 442 I=1,NBL
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SPROB) GOTO 442
+      IF(NT.EQ.MXGKPV-2) GOTO 442
+      IF(EKIN2.GT.TEX) GOTO 40
+      CALL GRNDM(RNDM,1)
+      RAN1=RNDM(1)
+      CALL NORMAL(RAN2)
+      EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
+      IF(EKIN1.LT.0.0) EKIN1=-0.005*LOG(RAN1)
+      EKIN1=EKIN1*XX
+      EKIN2=EKIN2+EKIN1
+      IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
+      IF (EKIN1 .LT. 0.0) EKIN1=1.0E-6
+      CALL GRNDM(RNDM,3)
+      COST=-1.0+RNDM(1)*2.0
+      DUMNVE=1.0-COST*COST
+      IF (DUMNVE .LT. 0.0) DUMNVE=0.0
+      SINT=SQRT(DUMNVE)
+      PHI=TWPI*RNDM(2)
+      RAN=RNDM(3)
+      IPA(NT+1)=-30
+      IF(RAN.GT.0.60) IPA(NT+1)=-31
+      IF(RAN.GT.0.90) IPA(NT+1)=-32
+      SIDE(NT+1)=-4.
+      PV(5,NT+1)=(ABS(IPA(NT+1))-28)*MP
+      SPALL=SPALL+PV(5,NT+1)*1.066
+      IF(SPALL.GT.ATNO2) GOTO 40
+      NT=NT+1
+      PV(6,NT)=1.
+      IF(IPA(NT).EQ.-32) PV(6,NT)=2.
+      PV(7,NT)=1.
+      PV(4,NT)=PV(5,NT)+EKIN1
+      DUMNVE=ABS(PV(4,NT)**2-PV(5,NT)**2)
+      PP=SQRT(DUMNVE)
+      PV(1,NT)=PP*SINT*SIN(PHI)
+      PV(2,NT)=PP*SINT*COS(PHI)
+      PV(3,NT)=PP*COST
+  442 CONTINUE
+C**
+C** STORE ON EVENT COMMON
+C**
+   40 CALL GRNDM(RNDM,1)
+      IF(RS.GT.(4.+RNDM(1)*1.)) GOTO 42
+      DO 41 I=1,NT
+      CALL LENGTX(I,ETB)
+      IF(ETB.LT.P) GOTO 41
+      ETF=P
+      PV(4,I)=SQRT(PV(5,I)**2+ETF**2)
+      DUMNVE=ETB
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      ETF=ETF/DUMNVE
+      PV(1,I)=PV(1,I)*ETF
+      PV(2,I)=PV(2,I)*ETF
+      PV(3,I)=PV(3,I)*ETF
+   41 CONTINUE
+   42 EKIN=PV(4,MXGKPV)-ABS(PV(5,MXGKPV))
+      EKIN1=PV(4,MXGKPV-1)-ABS(PV(5,MXGKPV-1))
+      EKIN2=0.
+      CALL TDELAY(TOF1)
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      TOF=TOF-TOF1*LOG(RAN)
+      DO 44 I=1,NT
+      IF(PV(7,I).LT.0.) PV(5,I)=-PV(5,I)
+      PV(7,I)=TOF
+      PV(8,I)=ABS(IPA(I))
+      PV(9,I)=0.
+   44 PV(10,I)=0.
+      CALL GHETUN(NT)
+      DO 45 I=1,NT
+         EKIN2=EKIN2+PV(4,I)-ABS(PV(5,I))
+   45 CONTINUE
+      EKIN2=(EKIN2-EKIN)/EKIN
+      IF(NPRT(4))
+     $            WRITE(NEWBCD,2006) NT,EKIN,ENP(1),ENP(3),EKIN1,EKIN2
+      IF(EKIN2.GT.0.2) GOTO 60
+      INTCT=INTCT+1.
+      NMODE=3
+      IF(SPALL.LT.0.5.AND.ATNO2.GT.1.5) NMODE=14
+      CALL SETCUR(NT)
+      NTK=NTK+1
+      IF(NT.EQ.1) GOTO 300
+      DO 50 II=2,NT
+      I=II-1
+      IF(NTOT.LT.NSIZE/12) GOTO 43
+      GO TO 9999
+   43 CALL SETTRK(I)
+   50 CONTINUE
+ 300  CONTINUE
+      GO TO 9999
+C**
+C** IT IS NOT POSSIBLE TO PRODUCE A PROPER TWO CLUSTER FINAL STATE.
+C** CONTINUE WITH QUASI ELASTIC SCATTERING
+C**
+   60 IF(NPRT(4)) WRITE(NEWBCD,2005)
+      DO 61 I=3,MXGKCU
+   61 IPA(I)=0
+      IPA(1)=IPART
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      CALL TWOB(IPPP,NFL,AVERN)
+      GO TO 9999
+C
+ 2000 FORMAT(' *HIGCLU* CMS PARAMETERS OF FINAL STATE PARTICLES',
+     $ ' AFTER ',I3,' TRIALS')
+ 2001 FORMAT(' *HIGCLU* TRACK',2X,I3,2X,10F8.2,2X,I3,2X,F3.0)
+ 2002 FORMAT(' *HIGCLU* MOMENTUM ',F8.3,' MASSES ',2F8.4,' RS ',F8.4)
+ 2003 FORMAT(' *HIGCLU* TETA,EKIN0,EKIN1,EKIN ',4F10.4)
+ 2004 FORMAT(' *HIGCLU* TECM,NPB,MASSES: ',F10.4,1X,I3,1X,8F10.4/
+     $ 1H ,26X,15X,8F10.4)
+ 2005 FORMAT(' *HIGCLU* NUMBER OF FINAL STATE PARTICLES',
+     $ ' LESS THAN 2 ==> CONTINUE WITH 2-BODY SCATTERING')
+ 2006 FORMAT(' *HIGCLU*  COMP.',1X,I5,1X,5F7.2)
+ 3001 FORMAT(' *HIGCLU* NUCLEAR EXCITATION ',I5,' PARTICLES PRODUCED',
+     $ ' IN ADDITION TO',I5,' NORMAL PARTICLES')
+ 3003 FORMAT(' *HIGCLU* ',I3,' BLACK TRACK PARTICLES PRODUCED',
+     $ ' WITH TOTAL KINETIC ENERGY OF ',F8.3,' GEV')
+ 3004 FORMAT(' *HIGCLU* ',I5,' HEAVY FRAGMENTS WITH TOTAL ENERGY OF ',
+     $ F8.4,' GEV')
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE HIGHAB(SPROB)
+C
+C *** SELF-ABSORBTION IN HEAVY MOLECULES ***
+C *** NVE 16-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (11-OCT-1987)
+C
+C
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      SPROB=0.
+      EKW=PV(4,MXGKPV)-ABS(PV(5,MXGKPV))
+      IF(EKW.LT.5.) RETURN
+      ALEKW=LOG(EKW-4.)
+      BLEKW=0.25-0.02*LOG(ATNO2)
+      SPROB=BLEKW*ALEKW
+      IF(SPROB.GT.1.) SPROB=1.
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE HIGSEL(ISEL)
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+C
+      DIMENSION RNDM(1)
+      CALL GRNDM(RNDM,1)
+      ISEL=1
+      IF(P.LT.25.+RNDM(1)*25.) ISEL=0
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE HIGXPT(IPPP,NFL,AVERN)
+C
+C *** GENERATION OF X- AND PT- VALUES FOR ALL PRODUCED PARTICLES ***
+C *** NVE 02-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT 11-OCT-1987
+C
+C A SIMPLE SINGLE VARIABLE DESCRIPTION E D3S/DP3= F(Q) WITH
+C Q**2 = (M*X)**2 + PT**2 IS USED. FINAL STATE KINEMATIC IS PRODUCED
+C BY AN FF-TYPE ITERATIVE CASCADE METHOD
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      COMMON/GENIN /TECM,AMASS(18),NPG,KGENEV
+      COMMON/GENOUT/PCM(5,18),WGT
+C
+C
+C
+      REAL MASPAR,LAMB,NUCSUP
+      DIMENSION MASPAR(8),BP(8),PTEX(8),C1PAR(5),G1PAR(5),TAVAI(2),
+     $          SIDE(MXGKCU),IAVAI(2),BINL(20),DNDL(20),TWSUP(8),
+     $          NUCSUP(6),PSUP(6),IPAX(100)
+      DIMENSION RNDM(3)
+      DATA MASPAR/0.75,0.70,0.65,0.60,0.50,0.40,0.20,0.10/
+      DATA     BP/4.00,2.50,2.20,3.00,3.00,1.70,3.50,3.50/
+      DATA   PTEX/1.70,1.70,1.50,1.70,1.40,1.20,1.70,1.20/
+      DATA  C1PAR/0.6,0.6,0.35,0.15,0.10/
+      DATA  G1PAR/2.6,2.6,1.80,1.30,1.20/
+      DATA BINL/0.,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.11,1.25
+     $         ,1.43,1.67,2.0,2.5,3.33,5.00,10.00/
+      DATA TWSUP/1.,1.,0.7,0.5,0.3,0.2,0.1,0.0/
+      DATA NUCSUP/1.00,0.7,0.5,0.4,0.5,0.5/
+      DATA   PSUP/3.,6.,20.,50.,100.,1000./
+C
+C**
+C**  FOR ANNIHILATION INTERACTIONS INTRODUCE PROPER KINEMATICS
+C**
+      CALL CORANH(NIHIL,NFL)
+C**
+C**
+C** CHECK FIRST MASS-INDICES
+C**
+      EK=ENP(5)
+      EN=ENP(6)
+      P=ENP(7)
+      S=ENP(8)
+      RS=ENP(9)
+      NT=0
+      DO 1 I=1,100
+      IF(IPA(I).EQ.0) GOTO 1
+      NT=NT+1
+      IPA(NT)=IPA(I)
+    1 CONTINUE
+      CALL VZERO(IPA(NT+1),MXGKCU-NT)
+      CALL UCOPY(IPA(1),IPAX(1),100)
+C**
+C** FOR LOW MULTIPLICITY USE TWO-BODY RESONANCE MODEL OR SINGLE/DOUBLE
+C** DIFFRACTION MODEL (--> HIGCLU (--> TWOB (--> COSCAT)))
+C**
+      CFA=0.025*((ATNO2-1.)/120.)*EXP(-(ATNO2-1.)/120.)
+      IF(NIHIL.GT.0) GOTO 200
+      IF(NT.GE.8) GOTO 200
+      IF(EK.LT.1.) GOTO 60
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IF(IPART.GE.10.AND.IPART.LE.13.AND.RAN.LT.0.5) GOTO 200
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      WSUP=TWSUP(NT)
+      IF(RAN.GT.WSUP) GOTO 200
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)*200.+50.
+      IF(EK.GT.RAN) GOTO 200
+   60 CALL UCOPY(IPAX,IPA,100)
+      CALL HIGCLU(IPPP,NFL,AVERN)
+      GO TO 9999
+C**
+C** SET EFFECTIVE 4-MOMENTUM OF PRIMARY PARTICLE
+C**
+  200 MX =MXGKPV-20
+      MX1=MX+1
+      MX2=MX+2
+      MX3=MX+3
+      MX4=MX+4
+      MX5=MX+5
+      MX6=MX+6
+      MX7=MX+7
+      MX8=MX+8
+      MX9=MX+9
+      PV( 1,MXGKPV-1)=P*PX
+      PV( 2,MXGKPV-1)=P*PY
+      PV( 3,MXGKPV-1)=P*PZ
+      PV( 4,MXGKPV-1)=EN
+      PV( 5,MXGKPV-1)=AMAS
+      PV( 6,MXGKPV-1)=NCH
+      PV( 7,MXGKPV-1)=TOF
+      PV( 8,MXGKPV-1)=IPART
+      PV( 9,MXGKPV-1)=0.
+      PV(10,MXGKPV-1)=USERW
+      IER(49)=IER(49)+1
+C**
+C** SOME RANDOMISATION OF ORDER OF FINAL STATE PARTICLES
+C**
+      DO 201 I=3,NT
+      CALL GRNDM(RNDM,1)
+      IPX=IFIX(3.+RNDM(1)*(NT-2.))
+      IF(IPX.GT.NT) IPX=NT
+      IPA1=IPA(IPX)
+      IPA(IPX)=IPA(I)
+  201 IPA(I)  =IPA1
+C**
+C** DISTRIBUTE IN FORWARD AND BACKWARD HEMISPHERE IN CMS
+C**
+      SIDE(1)= 1.
+      SIDE(2)=-1.
+      NTB=1
+      TARG=0.
+      IF(IPART.LT.10.OR.IPART.GT.13) GOTO 53
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.9) GOTO 53
+      IPA1=IPA(1)
+      IPA(1)=IPA(2)
+      IPA(2)=IPA1
+   53 LEAD=0
+      IF(IPART.LT.10.OR.IPART.EQ.14.OR.IPART.EQ.16) GOTO 532
+      IPA1=ABS(IPA(1))
+      IF(IPA1.LT.10.OR.IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 531
+      LEAD=IPA1
+      GOTO 532
+  531 IPA1=ABS(IPA(2))
+      IF(IPA1.LT.10.OR.IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 532
+      LEAD=IPA1
+  532 DO 3 I=1,NT
+      IF(I.LE.2) GOTO 54
+      SIDE(I)= 1.
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) SIDE(I)=-1.
+      IF(SIDE(I).LT.-0.5) NTB=NTB+1
+   54 CONTINUE
+    3 CONTINUE
+      TB=2.*NTB
+      CALL GRNDM(RNDM,1)
+      IF(RS.LT.(2.0+RNDM(1))) TB=(2.*NTB+NT)/2.
+C**
+C** ADD PARTICLES FROM INTRANUCLEAR CASCADE
+C**
+      AFC=0.312+0.200*LOG(LOG(S))+S**1.5/6000.
+      IF(AFC.GT.0.5) AFC=0.5
+      XTARG=AFC*(ATNO2**0.33 -1.0)*TB
+      IF(XTARG.LE.0.) XTARG=0.01
+C** SOME EXTRA STRANGE PARTICLES
+      XSTRAN=0.030*XTARG
+      CALL POISSO(XSTRAN,NSTRAN)
+C** NUCLEONS AND PIONS
+      DO 881 IPX=1,6
+         IF(P.LE.PSUP(IPX)) GOTO 882
+  881 CONTINUE
+      IPX = 6
+  882 XPNHMF = XTARG*NUCSUP(IPX)
+      XSHHMF = XTARG - XPNHMF
+      IF(XSHHMF.LT.0.01) XSHHMF=0.01
+      IF(XPNHMF.LT.0.01) XPNHMF=0.01
+      SSHHMF=0.5*XSHHMF
+      SPNHMF=0.9*XPNHMF
+      RSHHMF=SSHHMF**2/XSHHMF
+      RPNHMF=SPNHMF**2/XPNHMF
+      IF(RSHHMF.LT.1.1) THEN
+        CALL POISSO(XSHHMF,NSHHMF)
+        GOTO 541
+      ELSE
+        RSHHMF=XSHHMF/(RSHHMF-1.)
+        IF(RSHHMF.LE.20.) THEN
+           CALL SVGAM7(RSHHMF,XHMF)
+        ELSE
+           KRSHMF=IFIX(RSHHMF+0.5)
+           CALL SVERL2(KRSHMF,XHMF)
+        ENDIF
+        XSHHMF=XHMF*XSHHMF/RSHHMF
+        CALL POISSO(XSHHMF,NSHHMF)
+      ENDIF
+  541 IF(RPNHMF.LE.1.1) THEN
+        CALL POISSO(XPNHMF,NPNHMF)
+        GOTO 542
+      ELSE
+        RPNHMF=XPNHMF/(RPNHMF-1.)
+        IF(RPNHMF.LE.20.) THEN
+           CALL SVGAM7(RPNHMF,XHMF)
+        ELSE
+           KRPHMF=IFIX(RPNHMF+0.5)
+           CALL SVERL2(KRPHMF,XHMF)
+        ENDIF
+        XPNHMF=XHMF*XPNHMF/RPNHMF
+        CALL POISSO(XPNHMF,NPNHMF)
+      ENDIF
+  542 NTARG=NSHHMF+NPNHMF+NSTRAN
+      NT2=NT+NTARG
+      IF(NT2.LE.MX) GOTO 2
+      NT2=MX
+      NTARG=NT2-NT
+    2 CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,3001) NTARG,NT
+      NT1=NT+1
+      IF(NTARG.EQ.0) GOTO 51
+C**
+C** CHECK NUMBER OF EXTRA NUCLEONS AND PIONS
+C**
+      DO 4 I=NT1,NT2
+      IF(NPNHMF.GT.0) GOTO 52
+      IF(NSTRAN.GT.0) GOTO 59
+      CALL GRNDM(RNDM,2)
+      IPA(I)=-(7+IFIX(RNDM(1)*3.0))
+      SIDE(I)=-2.
+      IF(RNDM(2).LT.0.2) THEN
+        IPA(I)=IABS(IPA(I))
+        SIDE(I)=1.
+        NTARG=NTARG-1
+      ENDIF
+      GOTO 4
+   52 IPA(I)=-16
+      PNRAT=1.-ZNO2/ATNO2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.PNRAT) IPA(I)=-14
+      TARG=TARG+1.
+      SIDE(I)=-2.
+      NPNHMF=NPNHMF-1
+      GOTO 4
+   59 CALL GRNDM(RNDM,2)
+      IPA(I)=-18
+      IF(RNDM(1).GT.0.14) IPA(I)=-21
+      IF(RNDM(1).GT.0.20) IPA(I)=-10
+      IF(RNDM(1).GT.0.43) IPA(I)=-11
+      IF(RNDM(1).GT.0.66) IPA(I)=-12
+      IF(RNDM(1).GT.0.89) IPA(I)=-13
+      SIDE(I)=-2.
+      IF(RNDM(2).LT.0.2) THEN
+        IPA(I)=IABS(IPA(I))
+        SIDE(I)=1.
+        NTARG=NTARG-1
+      ENDIF
+      NSTRAN=NSTRAN-1
+    4 CONTINUE
+      NT=NT2
+C**
+C** CHOOSE MASSES AND CHARGES FOR ALL PARTICLES
+C**
+   51 DO 5 I=1,NT
+      IPA1=ABS(IPA(I))
+      PV(5,I)=RMASS(IPA1)
+      PV(6,I)=RCHARG(IPA1)
+      PV(7,I)=1.
+      IF(PV(5,I).LT.0.) PV(7,I)=-1.
+      PV(5,I)=ABS(PV(5,I))
+    5 CONTINUE
+C**
+C** CHECK AVAILABLE KINETIC ENERGY, IN THIS MODEL CONSERVATION OF
+C** KINETIC ENERGY IN FORWARD AND BACKWARD HEMISPHERE IS ASSUMED
+C**
+    6 IF(NT.LE.1) GOTO 60
+      TAVAI(1)=RS/2.
+      TAVAI(2)=(TARG+1.)*RS/2.
+      IAVAI(1)=0
+      IAVAI(2)=0
+      DO 7 I=1,NT
+      L=1
+      IF(SIDE(I).LT.0.) L=2
+      IAVAI(L)=IAVAI(L)+1
+      TAVAI(L)=TAVAI(L)-ABS(PV(5,I))
+    7 CONTINUE
+      NTH=NT
+      IF(NTH.GT.10) NTH=10
+      IF (NPRT(4))
+     $ WRITE(NEWBCD,3002) TAVAI,IAVAI,(IPA(I),SIDE(I),I=1,NTH)
+      IF(IAVAI(1).LE.0) GOTO 60
+      IF(IAVAI(2).LE.0) GOTO 60
+      IF(TAVAI(1).GT.0.) GOTO 11
+      CALL GRNDM(RNDM,1)
+      ISKIP=IFIX(RNDM(1)*(IAVAI(1)-1))+1
+      IS=0
+      DO 10  I=1,NT
+      II=NT-I+1
+      IF(SIDE(II).LT.0.) GOTO 10
+      IS=IS+1
+      IF(IS.NE.ISKIP) GOTO 10
+      IF(II.EQ.NT) GOTO 9
+      NT1=II+1
+      NT2=NT
+      DO 8 J=NT1,NT2
+      IPA(J-1)=IPA(J)
+      SIDE(J-1)=SIDE(J)
+      DO 71 K=1,10
+   71 PV(K,J-1)=PV(K,J)
+    8 CONTINUE
+      GOTO 9
+   10 CONTINUE
+    9 IPA(NT)=0
+      SIDE(NT)=0.
+      NT=NT-1
+      GOTO 6
+   11 IF(TAVAI(2).GT.0.) GOTO 15
+      CALL GRNDM(RNDM,1)
+      ISKIP=IFIX(RNDM(1)*(IAVAI(2)-1))+1
+      IS=0
+      DO 14  I=1,NT
+      II=NT-I+1
+      IF(SIDE(II).GT.0.) GOTO 14
+      IS=IS+1
+      IF(IS.NE.ISKIP) GOTO 14
+      IF(SIDE(II).LT.-1.5) NTARG=NTARG-1
+      IF(NTARG.LT.0) NTARG=0
+      IF(II.EQ.NT) GOTO 13
+      NT1=II+1
+      NT2=NT
+      DO 12 J=NT1,NT2
+      IPA(J-1)=IPA(J)
+      SIDE(J-1)=SIDE(J)
+      DO 74 K=1,10
+   74 PV(K,J-1)=PV(K,J)
+   12 CONTINUE
+      GOTO 13
+   14 CONTINUE
+   13 IPA(NT)=0
+      SIDE(NT)=0.
+      NT=NT-1
+      GOTO 6
+   15 IF(NT.LE.1) GOTO 60
+      IF(NT.EQ.MX) GOTO 29
+      NT1=NT+1
+      NT2=MX
+      DO 28 I=NT1,NT2
+   28 IPA(I)=0
+   29 CONTINUE
+C**
+C** NOW THE PREPARATION IS FINISHED.
+C** DEFINE INITIAL STATE VECTORS FOR LORENTZ TRANSFORMATIONS.
+C**
+      PV( 1,MX1)=0.
+      PV( 2,MX1)=0.
+      PV( 3,MX1)=P
+      PV( 4,MX1)=SQRT(P*P+AMAS*AMAS)
+      PV( 5,MX1)=ABS(AMAS)
+      PV( 1,MX2)=0.
+      PV( 2,MX2)=0.
+      PV( 3,MX2)=0.
+      PV( 4,MX2)=MP
+      PV( 5,MX2)=MP
+      PV( 1,MX4)=0.
+      PV( 2,MX4)=0.
+      PV( 3,MX4)=0.
+      PV( 4,MX4)=MP*(1.+TARG)
+      PV( 5,MX4)=PV(4,MX4)
+      PV( 1,MX8)=0.
+      PV( 2,MX8)=0.
+      PV( 3,MX8)=0.
+      PV( 1,MX9)=1.
+      PV( 2,MX9)=0.
+      PV( 3,MX9)=0.
+      CALL ADD(MX1,MX2,MX3)
+      CALL ADD(MX4,MX1,MX4)
+      CALL LOR(MX1,MX3,MX1)
+      CALL LOR(MX2,MX3,MX2)
+C**
+C** MAIN LOOP FOR 4-MOMENTUM GENERATION , SEE PITHA-REPORT (AACHEN)
+C** FOR A DETAILED DESCRIPTION OF THE METHOD.
+C**
+      CALL GRNDM(RNDM,1)
+      PHI=RNDM(1)*TWPI
+      EKIN1=0.
+      EKIN2=0.
+      DO 39 J=1,10
+      PV(J,MX5)=0.
+   39 PV(J,MX6)=0.
+      NPG=0
+      RMG0=0.
+      TARG1=0.
+      DO 16 III=1,NT
+      I=NT-III+1
+      IPA1=ABS(IPA(I))
+C**
+C** COUNT NUMBER OF BACKWARD NUCLEONS
+C**
+      IF(I.EQ.2) THEN
+         IF(IPA1.GT.16) THEN
+            CALL GRNDM(RNDM,1)
+            IF(RNDM(1).LT.0.2) GOTO 301
+         ELSE IF(IPA1.GE.14) THEN
+            GOTO 301
+         ENDIF
+      ENDIF
+      IF(SIDE(I).GT.-1.5) GOTO 38
+      IF(IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 301
+      GOTO 38
+  301 NPG=NPG+1
+      IF(NPG.GT.18) GOTO 38
+      RMG0=RMG0+ABS(PV(5,I))
+      SIDE(I)=-3.
+      TARG1=TARG1+1.
+      GOTO 16
+   38 J=3
+      IF(IPA1.LT.14) J=2
+      IF(IPA1.LT.10) J=1
+      IF(I.LE.2) J=J+3
+      IF(SIDE(I).LT.-1.5) J=7
+      IF(J.EQ.7.AND.IPA1.GE.14) J=8
+C**
+C** SET PT - AND PHI VALUES, THEY ARE CHANGED SOMEWHAT IN THE ITERATION
+C** LOOP, SET MASS PARAMETER FOR LAMBDA FRAGMENTATION MODEL
+C**
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      BPP=BP(J)
+      BPE=PTEX(J)
+      PT2=-LOG(1.-RAN)/BPP
+      ASPAR=MASPAR(J)
+      PT2=PT2**BPE
+      PT =SQRT(PT2)
+      IF(PT.LT.0.05) THEN
+        CALL GRNDM(RNDM,1)
+        PT=0.3*RNDM(1)
+      ENDIF
+      IF(PT.LT.0.001) PT=0.001
+      PV(1,I)=PT*COS(PHI)
+      PV(2,I)=PT*SIN(PHI)
+      PV(10,I)=PT
+      BINL(1)=0.
+      RLMAX=1./PV(10,I)
+      DO 73 J=2,20
+   73 BINL(J)=RLMAX*(J-1)/19.
+      ET=PV(4,MX1)
+      IF(SIDE(I).LT.0.) THEN
+         ET=PV(4,MX2)
+      ENDIF
+      DNDL(1)=0.
+      NTRIAL=0
+C**
+C** START OF BIG ITERATION LOOP
+C**
+   30 NTRIAL=NTRIAL+1
+      IF(NTRIAL.GT. 2) GOTO 169
+      DO 17 L=2,20
+      DNDL(L)=0.
+      X=(BINL(L)+BINL(L-1))/2.
+      IF(PV(10,I).LT.0.001) PV(10,I)=0.001
+      IF(X.GT.1./PV(10,I)) GOTO 17
+      DX=BINL(L)-BINL(L-1)
+      DNDL(L)=ASPAR/SQRT((1.+(ASPAR*X)**2)**3)
+      DNDL(L)=ET*DNDL(L)/SQRT((X*PV(10,I)*ET)**2+PV(10,I)**2
+     *                             +PV(5,I)**2)
+      DNDL(L)=DNDL(L)*DX
+   17 DNDL(L)=DNDL(L-1)+DNDL(L)
+      NTRI=0
+   31 CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)*DNDL(20)
+      DO 18 L=2,20
+      IF(RAN.LT.DNDL(L)) GOTO 19
+   18 CONTINUE
+C**
+C** START OF SMALL ITERATION LOOP
+C**
+   19 NTRI=NTRI+1
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      DX=BINL(L)-BINL(L-1)
+      LAMB=BINL(L-1)+RAN*DX/2.
+      X=PV(10,I)*LAMB
+      IF(X.GT.1.) X=1.
+      X=X*SIDE(I)/ABS(SIDE(I))
+      PV(3,I)=X*ET
+      PV(4,I)=PV(3,I)**2+PV(10,I)**2+PV(5,I)**2
+      PV(4,I)=SQRT(PV(4,I))
+      IF(SIDE(I).LT.0.) GOTO 165
+      IF(I.GT.2) GOTO 20
+      EKIN=TAVAI(1)-EKIN1
+      CALL NORMAL(RAN)
+      IF(EKIN.LT.0.) EKIN=0.04*ABS(RAN)
+      PV(4,I)=ABS(PV(5,I))+EKIN
+      RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP=SQRT(RNVE)
+      CALL LENGTX(I,PP1)
+C
+      IF (PP1 .GE. 1.0E-6) GO TO 8000
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP*COS(RTHNVE)
+      GO TO 8001
+ 8000 CONTINUE
+      PV(3,I) = PP**2 - PV(10,I)**2
+      IF(PV(3,I).LT.0.) PV(3,I)=0.
+      PV(3,I) = SQRT(PV(3,I))*SIDE(I)/ABS(SIDE(I))
+ 8001 CONTINUE
+C
+      CALL ADD(MX5,I,MX5)
+      GOTO 16
+   20 EKIN=EKIN1+PV(4,I)-ABS(PV(5,I))
+      IF(EKIN.LT.0.95*TAVAI(1)) GOTO 161
+      IF(NTRI.GT. 5) GOTO 167
+      PV(10,I)=PV(10,I)*0.9
+      PV( 1,I)=PV( 1,I)*0.9
+      PV( 2,I)=PV( 2,I)*0.9
+      DNDL(20)=DNDL(20)*0.9
+      IF((TAVAI(2)-ABS(PV(5,I))).LT.0.) GOTO 31
+      SIDE(I)=-1.
+      TAVAI(1)=TAVAI(1)+ABS(PV(5,I))
+      TAVAI(2)=TAVAI(2)-ABS(PV(5,I))
+      GOTO 31
+  161 CALL ADD(MX5,I,MX5)
+      EKIN1=EKIN1+PV(4,I)-ABS(PV(5,I))
+      GOTO 163
+  165 EKIN=EKIN2+PV(4,I)-ABS(PV(5,I))
+      XXX=0.95+0.05*TARG/20.
+      IF(XXX.GT.0.999) X=0.999
+      IF(EKIN.LT.XXX*TAVAI(2)) GOTO 166
+      IF(NTRI.GT. 5) GOTO 167
+      PV(10,I)=PV(10,I)*0.9
+      PV( 1,I)=PV( 1,I)*0.9
+      PV( 2,I)=PV( 2,I)*0.9
+      DNDL(20)=DNDL(20)*0.9
+      IF((TAVAI(1)-ABS(PV(5,I))).LT.0.) GOTO 31
+      SIDE(I)=+1.
+      TAVAI(1)=TAVAI(1)-ABS(PV(5,I))
+      TAVAI(2)=TAVAI(2)+ABS(PV(5,I))
+      GOTO 31
+  166 CALL ADD(MX6,I,MX6)
+      EKIN2=EKIN2+PV(4,I)-ABS(PV(5,I))
+  163 CALL ADD(MX5,MX6,MX7)
+      PV(3,MX7)=0.
+      CALL ANG(MX7,MX9,COST,PHIS)
+      IF(PV(2,MX7).LT.0.) PHIS=TWPI-PHIS
+      CALL NORMAL(RAN)
+      RAN=RAN*PI/12.
+      PHI=PHIS+PI+RAN
+      IF(PHI.GT.TWPI) PHI=PHI-TWPI
+      IF(PHI.LT.0.) PHI=TWPI-PHI
+      GOTO 16
+C**
+C** PARTICLE MOMENTUM ZERO, REDUCE KINETIC ENERGY OF ALL OTHER
+C**
+  167 EKIN1=0.
+      EKIN2=0.
+      DO 162 J=1,10
+      PV(J,MX5)=0.
+  162 PV(J,MX6)=0.
+      II=I+1
+      DO 168 L=II,NT
+      IF(ABS(IPA(L)).GE.14.AND.SIDE(L).LT.0.) GOTO 168
+      PV(4,L)=PV(4,L)*0.95+0.05*ABS(PV(5,L))
+      IF(PV(4,L).LT.ABS(PV(5,L))) PV(4,L)=ABS(PV(5,L))
+      RNVE=ABS(PV(4,L)**2-PV(5,L)**2)
+      PP=SQRT(RNVE)
+      CALL LENGTX(L,PP1)
+C
+      IF (PP1 .GE. 1.0E-6) GO TO 8002
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,L)=PP*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,L)=PP*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,L)=PP*COS(RTHNVE)
+      GO TO 8003
+ 8002 CONTINUE
+      PV(1,L)=PV(1,L)*PP/PP1
+      PV(2,L)=PV(2,L)*PP/PP1
+      PV(3,L)=PV(3,L)*PP/PP1
+ 8003 CONTINUE
+C
+      PV(10,L)=SQRT(PV(1,L)**2+PV(2,L)**2)
+      IF(SIDE(L).LT.0.) GOTO 164
+      EKIN1=EKIN1+PV(4,L)-ABS(PV(5,L))
+      CALL ADD(MX5,L,MX5)
+      GOTO 168
+  164 EKIN2=EKIN2+PV(4,L)-ABS(PV(5,L))
+      CALL ADD(MX6,L,MX6)
+  168 CONTINUE
+C *** NEXT STMT. CHANGED TO PREVENT FROM INFINITE LOOPING ***
+C*************      GOTO 38
+      GO TO 30
+C**
+C** SKIP PARTICLE, IF NOT ENOUGH ENERGY
+C**
+  169 IPA(I)=0
+      DO 170 J=1,10
+  170 PV(J,I)=0.
+      GOTO 163
+   16 CONTINUE
+      NTRI=0
+      II=0
+      DO 320 I=1,NT
+      IF(IPA(I).EQ.0) GOTO 320
+      II=II+1
+      IPA(II)=IPA(I)
+      SIDE(II)=SIDE(I)
+      DO 321 J=1,10
+  321 PV(J,II)=PV(J,I)
+  320 CONTINUE
+      NT=II
+C**
+C** BACKWARD NUCLEONS PRODUCED WITH A CLUSTER MODEL
+C**
+      IF(NPG.EQ.0) GOTO 330
+      RMG=RMG0
+      IF(NPG.EQ.1) GOTO 310
+      NPG1=NPG
+      IF(NPG1.GT.5) NPG1=5
+      CALL GRNDM(RNDM,1)
+      RMG=-LOG(1.-RNDM(1))
+      GPAR=G1PAR(NPG1)
+      CPAR=C1PAR(NPG1)
+      DUMNVE=GPAR
+      IF(DUMNVE.EQ.0.) DUMNVE=1.0E-10
+      RMG=RMG0+RMG**CPAR/DUMNVE
+  310 GA=1.2
+      EKIT1=0.04
+      EKIT2=0.6
+      IF(EK.GT.5.) GOTO 311
+      EKIT1=EKIT1*EK**2/25.
+      EKIT2=EKIT2*EK**2/25.
+  311 A=(1.-GA)/(EKIT2**(1.-GA)-EKIT1**(1.-GA))
+      DO 312 I=1,NT
+         IF(SIDE(I).GT.-2.5) GOTO 312
+         CALL GRNDM(RNDM,3)
+         EKIT=(RNDM(1)*(1.-GA)/A+EKIT1**(1.-GA))**(1./(1.-GA))
+         PV(4,I)=EKIT+PV(5,I)
+         DUMNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+         PP=SQRT(DUMNVE)
+         COST=LOG(2.23*RNDM(2)+0.383)/0.96
+         IF(COST.LT.-1.) COST=-1.
+         IF(COST.GT. 1.) COST= 1.
+         DUMNVE=1.0-COST*COST
+         IF(DUMNVE.LT.0.0) DUMNVE=0.0
+         SINT=SQRT(DUMNVE)
+         PHI=TWPI*RNDM(3)
+         PV(1,I)=PP*SINT*SIN(PHI)
+         PV(2,I)=PP*SINT*COS(PHI)
+         PV(3,I)=PP*COST
+         CALL LOR(I,MX3,I)
+         CALL ADD(MX6,I,MX6)
+  312 CONTINUE
+  330 IF (NPRT(4))
+     $ WRITE(NEWBCD,2002) NTRIAL,EKIN1,EKIN2,TAVAI(1),TAVAI(2)
+  175 IF (.NOT.NPRT(4)) GOTO 36
+      CALL ADD(MX5,MX6,MX7)
+      EKIN1=PV(4,MX1)+PV(4,MX2)
+      EKIN2=PV(4,MX5)+PV(4,MX6)
+      WRITE(NEWBCD,2000) EKIN1,EKIN2
+      I=MX1
+      WRITE(NEWBCD,2001) I,(PV(J,I),J=1,4)
+      I=MX2
+      WRITE(NEWBCD,2001) I,(PV(J,I),J=1,4)
+      I=MX5
+      WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      I=MX6
+      WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      DO 37 I=1,NT
+   37 WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+C**
+C** LORENTZ TRANSFORMATION IN LAB SYSTEM
+C**
+   36 IF(NT.LE.2) GOTO 60
+      TARG=0.
+      DO 601 I=1,NT
+      IF(PV(5,I).GT.0.5) TARG=TARG+1.
+      CALL LOR(I,MX2,I)
+  601 CONTINUE
+      IF(TARG.LT.0.5) TARG=1.
+      IF(LEAD.EQ.0) GOTO 6085
+      DO 6081 I=1,NT
+      IF(ABS(IPA(I)).EQ.LEAD) GOTO 6085
+ 6081 CONTINUE
+      I=1
+      IF(LEAD.GE.14.AND.ABS(IPA(2)).GE.14) I=2
+      IF(LEAD.LT.14.AND.ABS(IPA(2)).LT.14) I=2
+      IPA(I)=LEAD
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      PV(5,I)=RMASS(LEAD)
+      PV(7,I)=1.
+      IF(PV(5,I).LT.0.) PV(7,I)=-1.
+      PV(5,I)=ABS(PV(5,I))
+      PV(6,I)=RCHARG(LEAD)
+      PV(4,I)=PV(5,I)+EKIN
+      CALL LENGTX(I,PP)
+      RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP1=SQRT(RNVE)
+      PV(1,I)=PP1*PV(1,I)/PP
+      PV(2,I)=PP1*PV(2,I)/PP
+      PV(3,I)=PP1*PV(3,I)/PP
+ 6085 KGENEV=1
+      PV(1,MX4)=0.
+      PV(2,MX4)=0.
+      PV(3,MX4)=P
+      PV(4,MX4)=SQRT(P*P+AMAS*AMAS)
+      PV(5,MX4)=ABS(AMAS)
+      EKIN0=PV(4,MX4)-PV(5,MX4)
+      PV(1,MX5)=0.
+      PV(2,MX5)=0.
+      PV(3,MX5)=0.
+      PV(4,MX5)=MP*TARG
+      PV(5,MX5)=PV(4,MX5)
+      EKIN=PV(4,MX4)+PV(4,MX5)
+      I=MX4
+      IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      I=MX5
+      IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      CALL ADD(MX4,MX5,MX6)
+      CALL LOR(MX4,MX6,MX4)
+      CALL LOR(MX5,MX6,MX5)
+      TECM=PV(4,MX4)+PV(4,MX5)
+      NPG=NT
+      PV(1,MX8)=0.
+      PV(2,MX8)=0.
+      PV(3,MX8)=0.
+      PV(4,MX8)=0.
+      PV(5,MX8)=0.
+      EKIN1=0.
+      DO 598 I=1,NPG
+      IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+      CALL ADD(MX8,I,MX8)
+      EKIN1=EKIN1+PV(4,I)-PV(5,I)
+      EKIN=EKIN-PV(5,I)
+      IF(I.GT.18) GOTO 598
+      AMASS(I)=PV(5,I)
+  598 CONTINUE
+      IF(NPG.GT.18) GOTO 597
+      CALL PHASP
+      EKIN=0.
+      DO 599 I=1,NPG
+      PV(1,MX7)=PCM(1,I)
+      PV(2,MX7)=PCM(2,I)
+      PV(3,MX7)=PCM(3,I)
+      PV(4,MX7)=PCM(4,I)
+      PV(5,MX7)=AMASS(I)
+      CALL LOR(MX7,MX5,MX7)
+  599 EKIN=EKIN+PV(4,MX7)-PV(5,MX7)
+      CALL ANG(MX8,MX4,COST,TETA)
+      IF (NPRT(4)) WRITE(NEWBCD,2003) TETA,EKIN0,EKIN1,EKIN
+C**
+C** MAKE SHURE, THAT  KINETIC ENERGIES ARE CORRECT.
+C** EKIN= KINETIC ENERGY THEORETICALLY
+C** EKIN1= KINETIC ENERGY SIMULATED
+C**
+  597 IF(EKIN1.EQ.0.) GOTO 600
+      PV(1,MX7)=0.
+      PV(2,MX7)=0.
+      PV(3,MX7)=0.
+      PV(4,MX7)=0.
+      PV(5,MX7)=0.
+      WGT=EKIN/EKIN1
+      EKIN1=0.
+      DO 602 I=1,NT
+      EKIN=PV(4,I)-PV(5,I)
+      EKIN=EKIN*WGT
+      PV(4,I)=EKIN+PV(5,I)
+      RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP=SQRT(RNVE)
+      CALL LENGTX(I,PP1)
+C
+      IF (PP1 .GE. 1.0E-6) GO TO 8008
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP*COS(RTHNVE)
+      GO TO 8009
+ 8008 CONTINUE
+      PV(1,I)=PV(1,I)*PP/PP1
+      PV(2,I)=PV(2,I)*PP/PP1
+      PV(3,I)=PV(3,I)*PP/PP1
+ 8009 CONTINUE
+C
+      EKIN1=EKIN1+EKIN
+      CALL ADD(MX7,I,MX7)
+  602 CONTINUE
+      CALL ANG(MX7,MX4,COST,TETA)
+      IF (NPRT(4)) WRITE(NEWBCD,2003) TETA,EKIN0,EKIN1
+C**
+C** ROTATE IN DIRECTION OF Z-AXIS, THIS DOES DISTURB IN SOME WAY OUR
+C** INCLUSIVE DISTRIBUTIONS, BUT IT IS NESSACARY FOR MOMENTUM CONSER-
+C** VATION.
+C**
+  600 PV(1,MX7)=0.
+      PV(2,MX7)=0.
+      PV(3,MX7)=0.
+      PV(4,MX7)=0.
+      PV(5,MX7)=0.
+      DO 596 I=1,NT
+      CALL ADD(MX7,I,MX7)
+  596 CONTINUE
+C**
+C** SOME SMEARING IN TRANSVERSE DIRECTION FROM FERMI MOTION
+C**
+*          CALL RANNOR(RAN1,RAN2)
+      CALL GRNDM(RNDM,2)
+      RY=RNDM(1)
+      RZ=RNDM(2)
+      RX=6.283185*RZ
+      A1=SQRT(-2.*LOG(RY))
+      RAN1=A1*SIN(RX)
+      RAN2=A1*COS(RX)
+      PV(1,MX7)=PV(1,MX7)+RAN1*0.020*TARG
+      PV(2,MX7)=PV(2,MX7)+RAN2*0.020*TARG
+      CALL DEFS(MX4,MX7,MX8)
+      PV(1,MX7)=0.
+      PV(2,MX7)=0.
+      PV(3,MX7)=0.
+      PV(4,MX7)=0.
+      PV(5,MX7)=0.
+      DO 595 I=1,NT
+      CALL TRAC(I,MX8,I)
+      CALL ADD(MX7,I,MX7)
+  595 CONTINUE
+      CALL ANG(MX7,MX4,COST,TETA)
+      IF (NPRT(4)) WRITE(NEWBCD,2003) TETA
+C**
+C** ROTATE IN DIRECTION OF PRIMARY PARTICLE, SUBTRACT BINDING ENERGIES
+C** AND MAKE SOME FURTHER CORRECTIONS IF REQUIRED (STEEP, STEEQ)
+C**
+      DEKIN=0.
+      NPIONS=0
+      EK1=0.
+      EK2=0.
+      DO 21 I=1,NT
+      CALL DEFS1(I,MXGKPV-1,I)
+      IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+      IF(ATNO2.LT.1.5) GOTO 21
+      CALL LENGTX(I,PP)
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      CALL NORMAL(RAN)
+      EKIN=EKIN-CFA*(1.+0.5*RAN)
+      IF (EKIN .LT. 1.0E-6) EKIN=1.0E-6
+      CALL STEEQ(XXH,I)
+      DEKIN=DEKIN+EKIN*(1.-XXH)
+      EKIN=EKIN*XXH
+      IF(ABS(IPA(I)).GE.7.AND.ABS(IPA(I)).LE.9) NPIONS=NPIONS+1
+      IF(ABS(IPA(I)).GE.7.AND.ABS(IPA(I)).LE.9) EK1=EK1+EKIN
+      PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
+      PV(4,I)=EKIN+ABS(PV(5,I))
+C
+      IF (PP .GE. 1.0E-6) GO TO 8010
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP1*COS(RTHNVE)
+      GO TO 8011
+ 8010 CONTINUE
+      PV(1,I)=PV(1,I)*PP1/PP
+      PV(2,I)=PV(2,I)*PP1/PP
+      PV(3,I)=PV(3,I)*PP1/PP
+ 8011 CONTINUE
+C
+   21 CONTINUE
+      IF(EK1.EQ.0.) GOTO 23
+      IF(NPIONS.EQ.0) GOTO 23
+      DEKIN=1.+DEKIN/EK1
+      DO 22 I=1,NT
+      IF(ABS(IPA(I)).LT.7.OR.ABS(IPA(I)).GT.9) GOTO 22
+      CALL LENGTX(I,PP)
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      EKIN=EKIN*DEKIN
+      IF (EKIN .LT. 1.0E-6) EKIN=1.0E-6
+      PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
+      PV(4,I)=EKIN+ABS(PV(5,I))
+C
+      IF (PP .GE. 1.0E-6) GO TO 8012
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP1*COS(RTHNVE)
+      GO TO 8013
+ 8012 CONTINUE
+      PV(1,I)=PV(1,I)*PP1/PP
+      PV(2,I)=PV(2,I)*PP1/PP
+      PV(3,I)=PV(3,I)*PP1/PP
+ 8013 CONTINUE
+C
+   22 CONTINUE
+C**
+C** ADD BLACK TRACK PARTICLES, THE TOTAL NUMBER OF PARTICLES PRODUCED
+C** IS RESTRICTED TO 198, THIS MAY HAVE INFLUENCE ON VERY HIGH ENERGY
+C** FIRST PROTONS AND NEUTRONS
+C**
+   23 IF(ATNO2.LT.1.5) GOTO 40
+      CALL HIGHAB(SPROB)
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SPROB) GOTO 40
+      TEX=ENP(1)
+      SPALL=TARG
+      IF(TEX.LT.0.001) GOTO 445
+      BLACK=(1.5+1.25*TARG)*ENP(1)/(ENP(1)+ENP(3))
+      CALL POISSO(BLACK,NBL)
+      IF (NPRT(4)) WRITE(NEWBCD,3003) NBL,TEX
+      IF(IFIX(TARG)+NBL.GT.ATNO2) NBL=ATNO2-TARG
+      IF(NT+NBL.GT.MXGKPV-10) NBL=MXGKPV-10-NT
+      IF(NBL.LE.0) GOTO 445
+      EKIN=TEX/NBL
+      EKIN2=0.
+      CALL STEEP(XX)
+      DO 441 I=1,NBL
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SPROB) GOTO 441
+      IF(NT.EQ.MXGKPV-10) GOTO 441
+      IF(EKIN2.GT.TEX) GOTO 443
+      CALL GRNDM(RNDM,1)
+      RAN1=RNDM(1)
+      CALL NORMAL(RAN2)
+      EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
+      IF(EKIN1.LT.0.0) EKIN1=-0.010*LOG(RAN1)
+      EKIN1=EKIN1*XX
+      EKIN2=EKIN2+EKIN1
+      IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
+      IF (EKIN1 .LT. 0.0) EKIN1=1.0E-6
+      IPA1=16
+      PNRAT=1.-ZNO2/ATNO2
+      CALL GRNDM(RNDM,3)
+      IF(RNDM(1).GT.PNRAT) IPA1=14
+      NT=NT+1
+      SPALL=SPALL+1.
+      COST=-1.+RNDM(2)*2.
+      SINT=SQRT(ABS(1.-COST*COST))
+      PHI=TWPI*RNDM(3)
+      IPA(NT)=-IPA1
+      SIDE(NT)=-4.
+      PV(5,NT)=ABS(RMASS(IPA1))
+      PV(6,NT)=RCHARG(IPA1)
+      PV(7,NT)=1.
+      PV(4,NT)=EKIN1+PV(5,NT)
+      RNVE=ABS(PV(4,NT)**2-PV(5,NT)**2)
+      PP=SQRT(RNVE)
+      PV(1,NT)=PP*SINT*SIN(PHI)
+      PV(2,NT)=PP*SINT*COS(PHI)
+      PV(3,NT)=PP*COST
+  441 CONTINUE
+  443 IF(ATNO2.LT.10.) GOTO 445
+      IF(EK.GT.2.0) GOTO 445
+      II=NT+1
+      KK=0
+      EKA=EK
+      IF(EKA.GT.1.) EKA=EKA*EKA
+      IF(EKA.LT.0.1) EKA=0.1
+      IKA=3.6*EXP((ZNO2**2/ATNO2-35.56)/6.45)/EKA
+      IF(IKA.LE.0) GO TO 445
+      DO 444 I=1,NT
+      II=II-1
+      IF(IPA(II).NE.-14) GOTO 444
+      IPA(II)=-16
+      IPA1  = 16
+      PV(5,II)=ABS(RMASS(IPA1))
+      PV(6,II)=RCHARG(IPA1)
+      KK=KK+1
+      IF(KK.GT.IKA) GOTO 445
+  444 CONTINUE
+C**
+C** THEN ALSO DEUTERONS, TRITONS AND ALPHAS
+C**
+  445 TEX=ENP(3)
+      IF(TEX.LT.0.001) GOTO 40
+      BLACK=(1.5+1.25*TARG)*ENP(3)/(ENP(1)+ENP(3))
+      CALL POISSO(BLACK,NBL)
+      IF(NT+NBL.GT.MXGKPV-10) NBL=MXGKPV-10-NT
+      IF(NBL.LE.0) GOTO 40
+      EKIN=TEX/NBL
+      EKIN2=0.
+      CALL STEEP(XX)
+      IF (NPRT(4)) WRITE(NEWBCD,3004) NBL,TEX
+      DO 442 I=1,NBL
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SPROB) GOTO 442
+      IF(NT.EQ.MXGKPV-10) GOTO 442
+      IF(EKIN2.GT.TEX) GOTO 40
+      CALL GRNDM(RNDM,1)
+      RAN1=RNDM(1)
+      CALL NORMAL(RAN2)
+      EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
+      IF(EKIN1.LT.0.0) EKIN1=-0.010*LOG(RAN1)
+      EKIN1=EKIN1*XX
+      EKIN2=EKIN2+EKIN1
+      IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
+      IF (EKIN1 .LT. 0.0) EKIN1=1.0E-6
+      CALL GRNDM(RNDM,3)
+      COST=-1.+RNDM(1)*2.
+      SINT=SQRT(ABS(1.-COST*COST))
+      PHI=TWPI*RNDM(2)
+      RAN=RNDM(3)
+      IPA(NT+1)=-30
+      IF(RAN.GT.0.60) IPA(NT+1)=-31
+      IF(RAN.GT.0.90) IPA(NT+1)=-32
+      SIDE(NT+1)=-4.
+      PV(5,NT+1)=(ABS(IPA(NT+1))-28)*MP
+      SPALL=SPALL+PV(5,NT+1)*1.066
+      IF(SPALL.GT.ATNO2) GOTO 40
+      NT=NT+1
+      PV(6,NT)=1.
+      IF(IPA(NT).EQ.-32) PV(6,NT)=2.
+      PV(7,NT)=1.
+      PV(4,NT)=PV(5,NT)+EKIN1
+      RNVE=ABS(PV(4,NT)**2-PV(5,NT)**2)
+      PP=SQRT(RNVE)
+      PV(1,NT)=PP*SINT*SIN(PHI)
+      PV(2,NT)=PP*SINT*COS(PHI)
+      PV(3,NT)=PP*COST
+  442 CONTINUE
+C**
+C** STORE ON EVENT COMMON
+C**
+   40 CALL GRNDM(RNDM,1)
+      IF(RS.GT.(4.+RNDM(1))) GOTO 42
+      DO 41 I=1,NT
+      CALL LENGTX(I,ETB)
+      IF(ETB.LT.P) GOTO 41
+      ETF=P
+      PV(4,I)=SQRT(PV(5,I)**2+ETF**2)
+      ETF=ETF/ETB
+      PV(1,I)=PV(1,I)*ETF
+      PV(2,I)=PV(2,I)*ETF
+      PV(3,I)=PV(3,I)*ETF
+   41 CONTINUE
+   42 EKIN=PV(4,MXGKPV)-ABS(PV(5,MXGKPV))
+      EKIN1=PV(4,MXGKPV-1)-ABS(PV(5,MXGKPV-1))
+      EKIN2=0.
+      CALL TDELAY(TOF1)
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      TOF=TOF-TOF1*LOG(RAN)
+      DO 44 I=1,NT
+      IF(PV(7,I).LT.0.) PV(5,I)=-PV(5,I)
+      PV(7,I)=TOF
+      PV(8,I)=ABS(IPA(I))
+      PV(9,I)=0.
+   44 PV(10,I)=0.
+      CALL GHETUN(NT)
+      DO 55 I=1,NT
+         EKIN2=EKIN2+PV(4,I)-ABS(PV(5,I))
+   55 CONTINUE
+      EKIN2=(EKIN2-EKIN)/EKIN
+      IF(NPRT(4))
+     $             WRITE(NEWBCD,2006) NT,EKIN,ENP(1),ENP(3),EKIN1,EKIN2
+      IF(EKIN2.GT.0.2) GOTO 60
+C**
+      INTCT=INTCT+1.
+      CALL SETCUR(NT)
+      NTK=NTK+1
+      IF(NT.EQ.1) GO TO 9999
+      DO 50 II=2,NT
+      I=II-1
+      IF(NTOT.LT.NSIZE/12) GOTO 43
+      GO TO 9999
+   43 CALL SETTRK(I)
+   50 CONTINUE
+C
+ 2002 FORMAT(' *HIGXPT* PRODUCTION OF FINAL STATE KINEMATIC AFTER ',I3,
+     $ ' TRIALS.  KINETIC ENERGIES ',2F6.2,' OUT OF ',2F6.2)
+ 2000 FORMAT(' *HIGXPT* CMS PARAMETERS OF FINAL STATE PARTICLES,',
+     $ ' ENERGIES IN INITIAL AND FINAL STATE ',2F6.2)
+ 2001 FORMAT(' *HIGXPT* TRACK',2X,I3,2X,10F8.3,2X,I3,2X,F4.0)
+ 2003 FORMAT(' *HIGXPT* TETA,EKIN0,EKIN1,EKIN ',4F10.4)
+ 2006 FORMAT(' *HIGXPT* COMP.',1X,I5,1X,5F7.2)
+ 3001 FORMAT(' *HIGXPT* NUCLEAR EXCITATION',I5,
+     $ ' PARTICLES PRODUCED IN ADDITION  TO ',I5,' NORMAL PARTICLES')
+ 3002 FORMAT(' *HIGXPT* AVAILABLE ENERGIES ',2F10.4,
+     $ ' FOR ',2I3,' PARTICLES IN BEAM/TARGET FRAGM. REGION',
+     $ ' WITH IPA/SIDE ARRAY '/
+     $ 1H ,5X,10(I3,2X,F3.0,4X))
+ 3003 FORMAT(' *HIGXPT* ',I3,' BLACK TRACK PARTICLES PRODUCED',
+     $ ' WITH TOTAL KINETIC ENERGY OF ',F8.3,' GEV')
+ 3004 FORMAT(' *HIGXPT* ',I5,' HEAVY FRAGMENTS PRODUCED',
+     $ ' WITH TOTAL ENERGY OF',F8.4,' GEV')
+C
+ 9999 CONTINUE
+C
+      RETURN
+      END
+*-- AUTHOR :
+      INTEGER FUNCTION NFAC(N)
+C
+C *** NVE 16-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (27-OCT-1983)
+C
+      NFAC=1.
+      M=N
+      IF(M.LE.1) RETURN
+      IF(M.GT.10) M=10
+      DO 1 I=2,M
+    1 NFAC=NFAC*I
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE NORMAL(RAN)
+C
+C *** NVE 14-APR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (27-OCT-1983)
+C
+      DIMENSION RNDM(12)
+      RAN=-6.
+      CALL GRNDM(RNDM,12)
+      DO 1 I=1,12
+      RAN=RAN+RNDM(I)
+ 1    CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE NUCREC(NOPT,IREC)
+C
+C *** NUCLEAR REACTION KINEMATICS AT LOW ENERGIES ***
+C *** NVE 18-MAY-1988 CERN GENEVA ***
+C
+C CALLED BY : GHEISH, GNSLWD
+C ORIGIN    : H.FESEFELDT (12-FEB-1987)
+C
+C NOPT=1   N M(A,Z) --> G (G) M(A+1,Z  )    NEUTRON CAPTURE
+C NOPT=2   N M(A,Z) --> N (G) M(A  ,Z  )    INELASTIC NEUTRON SCATT.
+C NOPT=3   N M(A,Z) --> P (G) M(A  ,Z-1)
+C NOPT=4   N M(A,Z) --> D (G) M(A-1,Z-1)
+C NOPT=5   N M(A,Z) --> T (G) M(A-2,Z-1)
+C NOPT=6   N M(A,Z) --> ALP.  M(A-3,Z-2)
+C NOPT=7   N M(A,Z) --> N N   M(A-1,Z  )
+C NOPT=8   N M(A,Z) --> N P   M(A-1,Z-1)
+C NOPT=9   N M(A,Z) --> P P   M(A-1,Z-2)
+C NOPT=11  P M(A,Z) --> G (G) M(A+1,Z+1)    PROTON CAPTURE
+C NOPT=12  P M(A,Z) --> N (G) M(A  ,Z  )    INELASTIC PROTON SCATT.
+C NOPT=13  P M(A,Z) --> P (G) M(A  ,Z+1)
+C NOPT=14  P M(A,Z) --> D (G) M(A-1,Z  )
+C NOPT=15  P M(A,Z) --> T (G) M(A-2,Z  )
+C NOPT=16  P M(A,Z) --> ALP.  M(A-3,Z-1)
+C NOPT=17  P M(A,Z) --> N N   M(A-1,Z+1)
+C NOPT=18  P M(A,Z) --> N P   M(A-1,Z  )
+C NOPT=19  P M(A,Z) --> P P   M(A-1,Z-1)
+C SIMILAR FOR D,T,ALPHA SCATTERING ON NUCLEI
+C
+C NOTE : DOUBLE PRECISION CALCULATIONS ARE VITAL FOR THESE LOW
+C        ENERGY PROCESSES
+C        THEREFORE THE VARS OF /GENIO/ ARE DECLARED DOUBLE PRECISION
+C        ALSO A DOUBLE PRECISION VERSION OF THE PHASE SPACE PACKAGE
+C        "PHPNUC" HAS BEEN INTRODUCED
+C *** HMF 29-AUG-1989 RWTH AACHEN ***
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      COMMON/NUCIN /TECM,AMASS(18),NPG,KGENEV
+      COMMON/NUCOUT/PCM(5,18),WGT
+      DOUBLE PRECISION TECM,AMASS,PCM,WGT
+C
+C
+C
+      DIMENSION QVAL(10),TCH(10)
+      DIMENSION RNDM(2)
+C
+C** PROGRAM RETURNS WITH NOPT=0, IF INELASTIC SCATTERING ENERGETICALLY
+C** NOT POSSIBLE, OR IF WRONG PARTICLES ENTER THIS ROUTINE: ONLY FOR
+C** PROTONS,NEUTRONS, DEUTERIUM, TRITIUM AND ALPHAS.
+C** IF EK > 100 MEV, THIS ROUTINE IS CERTAINLY NOT ADEQUATE.
+C
+      NOPT=0
+      IF (IREC .EQ. 0) GO TO 9999
+C
+      IF (NPRT(9) .AND. (EK .GT. 0.1)) PRINT 9000,EK,IPART
+ 9000 FORMAT(' *NUCREC* ENERGY TOO HIGH EK = ',G12.5,' GEV ',
+     $ ' KPART = ',I3)
+      IF (EK .GT. 0.1) GO TO 9999
+C
+C%%%      IF(IPART.EQ.16) GOTO 2
+C%%%      IF(IPART.EQ.14) GOTO 3
+C%%%      IF(IPART.EQ.30) GOTO 4
+C%%%      IF(IPART.EQ.31) GOTO 5
+C%%%      IF(IPART.EQ.32) GOTO 6
+C%%%      GO TO 9999
+C%%%    2 AMAS = ATOMAS(1.,0.)
+C%%%      GOTO 8
+C%%%    3 AMAS = ATOMAS(1.,1.)
+C%%%      GOTO 8
+C%%%    4 AMAS = ATOMAS(2.,1.)
+C%%%      GOTO 8
+C%%%    5 AMAS = ATOMAS(3.,1.)
+C%%%      GOTO 8
+C%%%    6 AMAS = ATOMAS(4.,2.)
+C
+      IF (IPART .EQ. 16) GO TO 8
+      IF (IPART .EQ. 14) GO TO 8
+      IF (IPART .EQ. 30) GO TO 8
+      IF (IPART .EQ. 31) GO TO 8
+      IF( IPART .EQ. 32) GO TO 8
+      GO TO 9999
+C** SET BEAM PARTICLE, TAKE EK AS FUNDAMENTAL QUANTITY
+C** DUE TO THE DIFFICULT KINEMATIC, ALL MASSES HAVE TO BE ASSIGNED
+C** THE BEST MEASURED VALUES.
+ 8    CONTINUE
+      CALL VZERO(QVAL,10)
+      CALL VZERO(TCH ,10)
+C --- GET MASS WHICH MATCHES GEANT ---
+      AMAS=RMASS(IPART)
+      EN=EK+ABS(AMAS)
+      P =SQRT(ABS(EN*EN-AMAS*AMAS))
+      PP=SQRT(PX*PX+PY*PY+PZ*PZ)
+      IF (PP .GT. 1.0E-6) GO TO 8000
+      CALL GRNDM(RNDM,2)
+      PHINVE=TWPI*RNDM(1)
+      COST=-1.+2.*RNDM(2)
+      IF (COST .LE. -1.) COST=-1.
+      IF (COST .GE.  1.) COST= 1.
+      RTHNVE=ACOS(COST)
+      PX=SIN(RTHNVE)*COS(PHINVE)
+      PY=SIN(RTHNVE)*SIN(PHINVE)
+      PZ=COS(RTHNVE)
+      PP=1.
+ 8000 CONTINUE
+      PX=PX/PP
+      PY=PY/PP
+      PZ=PZ/PP
+      CALL VZERO(PV,10*MXGKPV)
+      PV(1,1) =PX*P
+      PV(2,1) =PY*P
+      PV(3,1) =PZ*P
+      PV(4,1) =EN
+      PV(5,1) =AMAS
+      PV(6,1) =NCH
+      PV(7,1) =TOF
+      PV(8,1) =IPART
+      PV(9,1) =0.
+      PV(10,1)=USERW
+      PV(1,2) =0.
+      PV(2,2) =0.
+      PV(3,2) =0.
+      PV(4,2) =0.
+      PV(5,2) =ATOMAS(ATNO2,ZNO2)
+      PV(6,2) =ZNO2
+      PV(7,2) =TOF
+      PV(8,2) =0.
+      PV(9,2) =0.
+      PV(10,2)=0.
+C** CALCULATE Q-VALUE OF REACTIONS
+      IF(IPART.EQ.16) GOTO 20
+      IF(IPART.EQ.14) GOTO 30
+      IF(IPART.EQ.30) GOTO 40
+      IF(IPART.EQ.31) GOTO 50
+      IF(IPART.EQ.32) GOTO 60
+   20 PV(5,11)=ATOMAS(ATNO2+1.,ZNO2   )
+      PV(6,11)=ZNO2
+      PV(5,21)=0.
+      PV(6,21)=0.
+      PV(8,21)=1.
+      PV(5,31)=0.
+      PV(6,31)=0.
+      PV(8,31)=1.
+C
+      PV(5,12)=PV(5,2)
+      PV(6,12)=PV(6,2)
+      PV(5,22)=RMASS(16)
+      PV(6,22)=0.
+      PV(8,22)=16.
+      PV(5,32)=0.
+      PV(6,32)=0.
+      PV(8,32)=1.
+C
+      PV(5,13)=ATOMAS(ATNO2   ,ZNO2-1.)
+      PV(6,13)=ZNO2-1.
+      PV(5,23)=RMASS(14)
+      PV(6,23)=1.
+      PV(8,23)=14.
+      PV(5,33)=0.
+      PV(6,33)=0.
+      PV(8,33)=1.
+C
+      PV(5,14)=ATOMAS(ATNO2-1.,ZNO2-1.)
+      PV(6,14)=ZNO2-1.
+      PV(5,24)=RMASS(30)
+      PV(6,24)=1.
+      PV(8,24)=30.
+      PV(5,34)=0.
+      PV(6,34)=0.
+      PV(8,34)=1.
+C
+      PV(5,15)=ATOMAS(ATNO2-2.,ZNO2-1.)
+      PV(6,15)=ZNO2-1.
+      PV(5,25)=RMASS(31)
+      PV(6,25)=1.
+      PV(8,25)=31.
+      PV(5,35)=0.
+      PV(6,35)=0.
+      PV(8,35)=1.
+C
+      PV(5,16)=ATOMAS(ATNO2-3.,ZNO2-2.)
+      PV(6,16)=ZNO2-2.
+      PV(5,26)=RMASS(32)
+      PV(6,26)=2.
+      PV(8,26)=32.
+      PV(5,36)=0.
+      PV(6,36)=0.
+      PV(8,36)=1.
+C
+      PV(5,17)=ATOMAS(ATNO2-1.,ZNO2   )
+      PV(6,17)=ZNO2
+      PV(5,27)=PV(5,22)
+      PV(6,27)=0.
+      PV(8,27)=16.
+      PV(5,37)=PV(5,22)
+      PV(6,37)=0.
+      PV(8,37)=16.
+C
+      PV(5,18)=PV(5,14)
+      PV(6,18)=PV(6,14)
+      PV(5,28)=PV(5,22)
+      PV(6,28)=0.
+      PV(8,28)=16.
+      PV(5,38)=PV(5,23)
+      PV(6,38)=1.
+      PV(8,38)=14.
+C
+      PV(5,19)=ATOMAS(ATNO2-1.,ZNO2-2.)
+      PV(6,19)=ZNO2-2.
+      PV(5,29)=PV(5,23)
+      PV(6,29)=1.
+      PV(8,29)=14.
+      PV(5,39)=PV(5,23)
+      PV(6,39)=1.
+      PV(8,39)=14.
+C
+      GOTO 70
+   30 PV(5,11)=ATOMAS(ATNO2+1.,ZNO2+1.)
+      PV(6,11)=ZNO2+1.
+      PV(5,21)=0.
+      PV(6,21)=0.
+      PV(8,21)=1.
+      PV(5,31)=0.
+      PV(6,31)=0.
+      PV(8,31)=1.
+C
+      PV(5,12)=ATOMAS(ATNO2   ,ZNO2+1.)
+      PV(6,12)=ZNO2+1.
+      PV(5,22)=RMASS(16)
+      PV(6,22)=0.
+      PV(8,22)=16.
+      PV(5,32)=0.
+      PV(6,32)=0.
+      PV(8,32)=1.
+C
+      PV(5,13)=PV(5,2)
+      PV(6,13)=PV(6,2)
+      PV(5,23)=RMASS(14)
+      PV(6,23)=1.
+      PV(8,23)=14.
+      PV(5,33)=0.
+      PV(6,33)=0.
+      PV(8,33)=1.
+C
+      PV(5,14)=ATOMAS(ATNO2-1.,ZNO2   )
+      PV(6,14)=ZNO2
+      PV(5,24)=RMASS(30)
+      PV(6,24)=1.
+      PV(8,24)=30.
+      PV(5,34)=0.
+      PV(6,34)=0.
+      PV(8,34)=1.
+C
+      PV(5,15)=ATOMAS(ATNO2-2.,ZNO2   )
+      PV(6,15)=ZNO2
+      PV(5,25)=RMASS(31)
+      PV(6,25)=1.
+      PV(8,25)=31.
+      PV(5,35)=0.
+      PV(6,35)=0.
+      PV(8,35)=1.
+C
+      PV(5,16)=ATOMAS(ATNO2-3.,ZNO2-1.)
+      PV(6,16)=ZNO2-1.
+      PV(5,26)=RMASS(32)
+      PV(6,26)=2.
+      PV(8,26)=32.
+      PV(5,36)=0.
+      PV(6,36)=0.
+      PV(8,36)=1.
+C
+      PV(5,17)=ATOMAS(ATNO2-1.,ZNO2+1.)
+      PV(6,17)=ZNO2+1.
+      PV(5,27)=PV(5,22)
+      PV(6,27)=0.
+      PV(8,27)=16.
+      PV(5,37)=PV(5,22)
+      PV(6,37)=0.
+      PV(8,37)=16.
+C
+      PV(5,18)=PV(5,14)
+      PV(6,18)=PV(6,14)
+      PV(5,28)=PV(5,22)
+      PV(6,28)=0.
+      PV(8,28)=16.
+      PV(5,38)=PV(5,23)
+      PV(6,38)=1.
+      PV(8,38)=14.
+C
+      PV(5,19)=ATOMAS(ATNO2-1.,ZNO2-1.)
+      PV(6,19)=ZNO2-1.
+      PV(5,29)=PV(5,23)
+      PV(6,29)=1.
+      PV(8,29)=14.
+      PV(5,39)=PV(5,23)
+      PV(6,39)=1.
+      PV(8,39)=14.
+C
+      NOPT=10
+      GOTO 70
+   40 PV(5,11)=ATOMAS(ATNO2+2.,ZNO2+1.)
+      PV(6,11)=ZNO2+1.
+      PV(5,21)=0.
+      PV(6,21)=0.
+      PV(8,21)=1.
+      PV(5,31)=0.
+      PV(6,31)=0.
+      PV(8,31)=1.
+C
+      PV(5,12)=ATOMAS(ATNO2+1.,ZNO2+1.)
+      PV(6,12)=ZNO2+1.
+      PV(5,22)=RMASS(16)
+      PV(6,22)=0.
+      PV(8,22)=16.
+      PV(5,32)=0.
+      PV(6,32)=0.
+      PV(8,32)=1.
+C
+      PV(5,13)=ATOMAS(ATNO2+1.,ZNO2   )
+      PV(6,13)=ZNO2
+      PV(5,23)=RMASS(14)
+      PV(6,23)=1.
+      PV(8,23)=14.
+      PV(5,33)=0.
+      PV(6,33)=0.
+      PV(8,33)=1.
+C
+      PV(5,14)=PV(5,2)
+      PV(6,14)=PV(6,2)
+      PV(5,24)=RMASS(30)
+      PV(6,24)=1.
+      PV(8,24)=30.
+      PV(5,34)=0.
+      PV(6,34)=0.
+      PV(8,34)=1.
+C
+      PV(5,15)=ATOMAS(ATNO2-1.,ZNO2   )
+      PV(6,15)=ZNO2
+      PV(5,25)=RMASS(31)
+      PV(6,25)=1.
+      PV(8,25)=31.
+      PV(5,35)=0.
+      PV(6,35)=0.
+      PV(8,35)=1.
+C
+      PV(5,16)=ATOMAS(ATNO2-2.,ZNO2-1.)
+      PV(6,16)=ZNO2-1.
+      PV(5,26)=RMASS(32)
+      PV(6,26)=2.
+      PV(8,26)=32.
+      PV(5,36)=0.
+      PV(6,36)=0.
+      PV(8,36)=1.
+C
+      PV(5,17)=ATOMAS(ATNO2   ,ZNO2+1.)
+      PV(6,17)=ZNO2+1.
+      PV(5,27)=PV(5,22)
+      PV(6,27)=0.
+      PV(8,27)=16.
+      PV(5,37)=PV(5,22)
+      PV(6,37)=0.
+      PV(8,37)=16.
+C
+      PV(5,18)=PV(5,14)
+      PV(6,18)=PV(6,14)
+      PV(5,28)=PV(5,22)
+      PV(6,28)=0.
+      PV(8,28)=16.
+      PV(5,38)=PV(5,23)
+      PV(6,38)=1.
+      PV(8,38)=14.
+C
+      PV(5,19)=ATOMAS(ATNO2   ,ZNO2-1.)
+      PV(6,19)=ZNO2-1.
+      PV(5,29)=PV(5,23)
+      PV(6,29)=1.
+      PV(8,29)=14.
+      PV(5,39)=PV(5,23)
+      PV(6,39)=1.
+      PV(8,39)=14.
+C
+      NOPT=20
+      GOTO 70
+   50 PV(5,11)=ATOMAS(ATNO2+3.,ZNO2+1.)
+      PV(6,11)=ZNO2+1.
+      PV(5,21)=0.
+      PV(6,21)=0.
+      PV(8,21)=1.
+      PV(5,31)=0.
+      PV(6,31)=0.
+      PV(8,31)=1.
+C
+      PV(5,12)=ATOMAS(ATNO2+2.,ZNO2+1.)
+      PV(6,12)=ZNO2+1.
+      PV(5,22)=RMASS(16)
+      PV(6,22)=0.
+      PV(8,22)=16.
+      PV(5,32)=0.
+      PV(6,32)=0.
+      PV(8,32)=1.
+C
+      PV(5,13)=ATOMAS(ATNO2+2.,ZNO2   )
+      PV(6,13)=ZNO2
+      PV(5,23)=RMASS(14)
+      PV(6,23)=1.
+      PV(8,23)=14.
+      PV(5,33)=0.
+      PV(6,33)=0.
+      PV(8,33)=1.
+C
+      PV(5,14)=ATOMAS(ATNO2+1.,ZNO2   )
+      PV(6,14)=ZNO2
+      PV(5,24)=RMASS(30)
+      PV(6,24)=1.
+      PV(8,24)=30.
+      PV(5,34)=0.
+      PV(6,34)=0.
+      PV(8,34)=1.
+C
+      PV(5,15)=PV(5,2)
+      PV(6,15)=PV(6,2)
+      PV(5,25)=RMASS(31)
+      PV(6,25)=1.
+      PV(8,25)=31.
+      PV(5,35)=0.
+      PV(6,35)=0.
+      PV(8,35)=1.
+C
+      PV(5,16)=ATOMAS(ATNO2-1.,ZNO2-1.)
+      PV(6,16)=ZNO2-1.
+      PV(5,26)=RMASS(32)
+      PV(6,26)=2.
+      PV(8,26)=32.
+      PV(5,36)=0.
+      PV(6,36)=0.
+      PV(8,36)=1.
+C
+      PV(5,17)=ATOMAS(ATNO2+1.,ZNO2+1.)
+      PV(6,17)=ZNO2+1.
+      PV(5,27)=PV(5,22)
+      PV(6,27)=0.
+      PV(8,27)=16.
+      PV(5,37)=PV(5,22)
+      PV(6,37)=0.
+      PV(8,37)=16.
+C
+      PV(5,18)=PV(5,14)
+      PV(6,18)=PV(6,14)
+      PV(5,28)=PV(5,22)
+      PV(6,28)=0.
+      PV(8,28)=16.
+      PV(5,38)=PV(5,23)
+      PV(6,38)=1.
+      PV(8,38)=14.
+C
+      PV(5,19)=ATOMAS(ATNO2+1.,ZNO2-1.)
+      PV(6,19)=ZNO2-1.
+      PV(5,29)=PV(5,23)
+      PV(6,29)=1.
+      PV(8,29)=14.
+      PV(5,39)=PV(5,23)
+      PV(6,39)=1.
+      PV(8,39)=14.
+C
+      NOPT=30
+      GOTO 70
+   60 PV(5,11)=ATOMAS(ATNO2+4.,ZNO2+2.)
+      PV(6,11)=ZNO2+2.
+      PV(5,21)=0.
+      PV(6,21)=0.
+      PV(8,21)=1.
+      PV(5,31)=0.
+      PV(6,31)=0.
+      PV(8,31)=1.
+C
+      PV(5,12)=ATOMAS(ATNO2+3.,ZNO2+2.)
+      PV(6,12)=ZNO2+2.
+      PV(5,22)=RMASS(16)
+      PV(6,22)=0.
+      PV(8,22)=16.
+      PV(5,32)=0.
+      PV(6,32)=0.
+      PV(8,32)=1.
+C
+      PV(5,13)=ATOMAS(ATNO2+3.,ZNO2+1.)
+      PV(6,13)=ZNO2+1.
+      PV(5,23)=RMASS(14)
+      PV(6,23)=1.
+      PV(8,23)=14.
+      PV(5,33)=0.
+      PV(6,33)=0.
+      PV(8,33)=1.
+C
+      PV(5,14)=ATOMAS(ATNO2+2.,ZNO2+1.)
+      PV(6,14)=ZNO2+1.
+      PV(5,24)=RMASS(30)
+      PV(6,24)=1.
+      PV(8,24)=30.
+      PV(5,34)=0.
+      PV(6,34)=0.
+      PV(8,34)=1.
+C
+      PV(5,15)=ATOMAS(ATNO2+1.,ZNO2+1.)
+      PV(6,15)=ZNO2+1.
+      PV(5,25)=RMASS(31)
+      PV(6,25)=1.
+      PV(8,25)=31.
+      PV(5,35)=0.
+      PV(6,35)=0.
+      PV(8,35)=1.
+C
+      PV(5,16)=PV(5,2)
+      PV(6,16)=PV(6,2)
+      PV(5,26)=RMASS(32)
+      PV(6,26)=2.
+      PV(8,26)=32.
+      PV(5,36)=0.
+      PV(6,36)=0.
+      PV(8,36)=1.
+C
+      PV(5,17)=ATOMAS(ATNO2+2.,ZNO2+2.)
+      PV(6,17)=ZNO2+2.
+      PV(5,27)=PV(5,22)
+      PV(6,27)=0.
+      PV(8,27)=16.
+      PV(5,37)=PV(5,22)
+      PV(6,37)=0.
+      PV(8,37)=16.
+C
+      PV(5,18)=PV(5,14)
+      PV(6,18)=PV(6,14)
+      PV(5,28)=PV(5,22)
+      PV(6,28)=0.
+      PV(8,28)=16.
+      PV(5,38)=PV(5,23)
+      PV(6,38)=1.
+      PV(8,38)=14.
+C
+      PV(5,19)=ATOMAS(ATNO2+2.,ZNO2   )
+      PV(6,19)=ZNO2
+      PV(5,29)=PV(5,23)
+      PV(6,29)=1.
+      PV(8,29)=14.
+      PV(5,39)=PV(5,23)
+      PV(6,39)=1.
+      PV(8,39)=14.
+C
+      NOPT=40
+   70 QV     =EK+PV(5,2)+PV(5,1)
+      TC     =   PV(6,2)+PV(6,1)
+      QVAL(1)=QV - PV(5,11)
+      TCH (1)=TC - PV(6,11)
+      QVAL(2)=QV - PV(5,12) - PV(5,22)
+      TCH (2)=TC - PV(6,12) - PV(6,22)
+      QVAL(3)=QV - PV(5,13) - PV(5,23)
+      TCH (3)=TC - PV(6,13) - PV(6,23)
+      QVAL(4)=QV - PV(5,14) - PV(5,24)
+      TCH (4)=TC - PV(6,14) - PV(6,24)
+      QVAL(5)=QV - PV(5,15) - PV(5,25)
+      TCH (5)=TC - PV(6,15) - PV(6,25)
+      QVAL(6)=QV - PV(5,16) - PV(5,26)
+      TCH (6)=TC - PV(6,16) - PV(6,26)
+      QVAL(7)=QV - PV(5,17) - PV(5,27) - PV(5,37)
+      TCH (7)=TC - PV(6,17) - PV(6,27) - PV(6,37)
+      QVAL(8)=QV - PV(5,18) - PV(5,28) - PV(5,38)
+      TCH (8)=TC - PV(6,18) - PV(6,28) - PV(6,38)
+      QVAL(9)=QV - PV(5,19) - PV(5,29) - PV(5,39)
+      TCH (9)=TC - PV(6,19) - PV(6,29) - PV(6,39)
+   74 QV = 0
+      IF(IREC.EQ.2) QVAL(1)=0.
+      IF(IPART.NE.16) GOTO 75
+      CALL GRNDM(RNDM,2)
+      IF(RNDM(1).GT.((ATNO2-1.)/230.)**2) QVAL(1)=0.
+      EKA=7.9254/ATNO2
+      IF(RNDM(2).LT.EK/EKA) GOTO 75
+      QVAL(3)=0.
+      QVAL(4)=0.
+      QVAL(5)=0.
+      QVAL(6)=0.
+      QVAL(9)=0.
+   75 DO 71 I=1,9
+      IF(PV(5,10+I).LT.0.5) QVAL(I)=0.
+      IF(QVAL(I).LT.0.    ) QVAL(I)=0.
+      IF(ABS(TCH(I)-0.1).GT.0.5 ) QVAL(I)=0.
+      QV=QV+QVAL(I)
+   71 CONTINUE
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      QV1=0.
+      DO 72 I=1,9
+      IF(QVAL(I).EQ.0.) GOTO 72
+      QV1=QV1+QVAL(I)/QV
+      IF(RAN.LE.QV1) GOTO 73
+   72 CONTINUE
+C** REACTION KINEMATICALLY NOT POSSIBLE
+      NOPT=0
+      GO TO 9999
+   73 NOPT=NOPT+I
+      PV(5,3)=PV(5,10+I)
+      PV(6,3)=PV(6,10+I)
+      PV(8,3)=0.
+      PV(5,4)=PV(5,20+I)
+      PV(6,4)=PV(6,20+I)
+      PV(8,4)=PV(8,20+I)
+      PV(5,5)=PV(5,30+I)
+      PV(6,5)=PV(6,30+I)
+      PV(8,5)=PV(8,30+I)
+      NT=2
+      RAN=EK*10.
+      IF(RAN.GT.0.5) RAN=0.5
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.RAN) NT=3
+      IF(MOD(NOPT,10).GE.7) NT=3
+C** CALCULATE CMS ENERGY
+   80 PV(4,2)=PV(5,2)
+      CALL ADD(1,2,MXGKPV)
+      PV(1,MXGKPV)=-PV(1,MXGKPV)
+      PV(2,MXGKPV)=-PV(2,MXGKPV)
+      PV(3,MXGKPV)=-PV(3,MXGKPV)
+C** SET QUANTITIES FOR PHASE SPACE ROUTINE IN CMS
+      TECM=PV(5,MXGKPV)
+      NPG=NT
+      KGENEV=1
+      DO 81 I=1,NPG
+   81 AMASS(I)=PV(5,2+I)
+C --- INVOKE DOUBLE PRECISION VERSION OF THE PHASE SPACE PACKAGE ---
+      CALL PHPNUC
+      DO 83 I=1,NPG
+      DO 82 J=1,4
+   82 PV(J,2+I)=PCM(J,I)
+C** TRANSFORM INTO LAB.SYSTEM
+      CALL LOR(2+I,MXGKPV,2+I)
+      PV(7,2+I)=TOF
+   83 CONTINUE
+C** SET CHARGES AND PARTICLE INDEX FOR LOW MASS FRAGMENTS
+      IF (ABS(PV(5,3)-RMASS(14)) .LT. 0.0001) GO TO 84
+      IF (ABS(PV(5,3)-RMASS(16)) .LT. 0.0001) GO TO 85
+      IF (ABS(PV(5,3)-RMASS(30)) .LT. 0.0001) GO TO 86
+      IF (ABS(PV(5,3)-RMASS(31)) .LT. 0.0001) GO TO 87
+      IF (ABS(PV(5,3)-RMASS(32)) .LT. 0.0001) GO TO 88
+      GOTO 89
+   84 PV(6,3)=1.
+      PV(8,3)=14.
+      GOTO 89
+   85 PV(6,3)=0.
+      PV(8,3)=16.
+      GOTO 89
+   86 PV(6,3)=1.
+      PV(8,3)=30.
+      GOTO 89
+   87 PV(6,3)=1.
+      PV(8,3)=31.
+      GOTO 89
+   88 PV(6,3)=2.
+      PV(8,3)=32.
+   89 NTT=2+NT
+      DO 90 I=1,NTT
+      IPP=IFIX(PV(8,I)+0.01)
+      IF(IPP.EQ.0) GOTO 90
+      EK=PV(4,I)-PV(5,I)
+      IF(I.LT.3) GOTO 92
+      IF(IPP.LT.30) GOTO 92
+      CALL GRNDM(RNDM,1)
+      EK=EK*0.5*RNDM(1)
+   92 IF(EK.LT.1.E-6) EK=1.E-6
+      PV(5,I)=RMASS(IPP)
+      PV(4,I)=EK+PV(5,I)
+      P=SQRT(ABS(PV(4,I)**2-PV(5,I)**2))
+      PP=SQRT(PV(1,I)**2+PV(2,I)**2+PV(3,I)**2)
+      IF(PP.GT.1.E-6) GOTO 91
+      CALL GRNDM(RNDM,2)
+      PHINVE=TWPI*RNDM(1)
+      COST=-1.+2.*RNDM(2)
+      IF (COST .LE. -1.) COST=-1.
+      IF (COST .GE.  1.) COST= 1.
+      RTHNVE=ACOS(COST)
+      PV(1,I)=SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=COS(RTHNVE)
+      PP=1.
+   91 PV(1,I)=PV(1,I)*P/PP
+      PV(2,I)=PV(2,I)*P/PP
+      PV(3,I)=PV(3,I)*P/PP
+   90 CONTINUE
+      IF(.NOT.NPRT(4)) GOTO 100
+      WRITE(NEWBCD,1000) XEND,YEND,ZEND,IND,NOPT
+ 1000 FORMAT(' *NUCREC* NUCLEAR REACTION AT (X,Y,Z) ',3(G12.5,1X)
+     $,/,'         MATERIAL ',I5,' NOPT ',I5)
+      DO 95 I=1,NTT
+         WRITE(NEWBCD,1001) I,(PV(J,I),J=1,10)
+   95 CONTINUE
+ 1001 FORMAT(1H ,I3,1X,10(G10.3,1X))
+  100 INTCT=INTCT+1.
+C** SET INTERACTION MODE ACCORDING TO GHEISHA-CONVENTION
+C** N-CAPTURE
+      IF(PV(8,3).GT.0.) GOTO 110
+      CALL SETCUR(4)
+      NTK=NTK+1
+      IF(NT.EQ.3) CALL SETTRK(5)
+      GO TO 9999
+ 110  CONTINUE
+      CALL SETCUR(4)
+      NTK=NTK+1
+      CALL SETTRK(3)
+      IF(NT.EQ.3) CALL SETTRK(5)
+      CALL SETTRK(3)
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE PHASP
+C
+C *** NVE 29-MAR-1988 CERN GENEVA ***
+C
+C CALLED BY : NUCREC TWOCLU GENXPT
+C ORIGIN : H.FESEFELDT (02-DEC-1986)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/GENIN /TECM,AMASS(18),NPG,KGENEV
+      COMMON/GENOUT/PCM(5,18),WGT
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+C
+      DOUBLE PRECISION WTMAX,WTMAXQ,WTFC,TWGT,ONE,TEXPXL,TEXPXU
+      PARAMETER (ONE=1.D0)
+      LOGICAL LZERO
+      DIMENSION EMM(18)
+      DIMENSION RNO(50)
+      DIMENSION EM(18),PD(18),EMS(18),SM(18),FFQ(18),PCM1(90)
+      EQUIVALENCE (NT,NPG),(AMASS(1),EM(1)),(PCM1(1),PCM(1,1))
+      SAVE KNT
+C
+      DATA  FFQ/0.,3.141592, 19.73921, 62.01255, 129.8788, 204.0131,
+     $                       256.3704, 268.4705, 240.9780, 189.2637,
+     $                       132.1308,  83.0202,  47.4210,  24.8295,
+     $                        12.0006,   5.3858,   2.2560,   0.8859/
+      DATA  KNT , TWOPI /  1 , 6.2831853073 /
+C
+C --- INITIALISE LOCAL ARRAYS AND THE RESULT ARRAY PCM ---
+      DO 10 JZERO=1,18
+         PCM(1,JZERO)=0.
+         PCM(2,JZERO)=0.
+         PCM(3,JZERO)=0.
+         PCM(4,JZERO)=0.
+         PCM(5,JZERO)=0.
+         EMM(JZERO)  =0.
+         PD(JZERO)   =0.
+         EMS(JZERO)  =0.
+         SM(JZERO)   =0.
+  10  CONTINUE
+C
+      KNT = KNT + 1
+      IF (.NOT.NPRT(3).AND..NOT.NPRT(4)) GOTO 100
+      WRITE(NEWBCD,1200) NPG,TECM,(AMASS(JK),JK=1,NPG)
+  100 CONTINUE
+  150 IF (NT .LT. 2)  GO TO 1001
+      IF (NT .GT. 18)  GO TO 1002
+      NTM1=NT-1
+      NTM2=NT-2
+      NTNM4 = 3*NT - 4
+      EMM(1)=EM(1)
+      TM=0.0
+      DO 200 I=1,NT
+      EMS(I)=EM(I)**2
+      TM=TM+EM(I)
+ 200  SM(I)=TM
+      WGT=1.
+ 210  TECMTM=TECM-TM
+      IF (TECMTM .LE. 0.0)  GO TO 1000
+      EMM(NT)=TECM
+      IF (KGENEV.GT.1) GO TO 400
+      EMMAX=TECMTM+EM(1)
+      EMMIN=0.0
+C
+C          FOR WEIGHT CALCULATION, FORM SUM OF LOG'S OF TERMS
+C          INSTEAD OF PRODUCT OF TERMS. NOTE THAT THEREBY WTMAX
+C          AND WTMAXQ ARE CHANGED IN THEIR CONTENTS; THEY ARE
+C          CURRENTLY NOT USED OUTSIDE THE RANGE FROM HERE TO
+C          LABEL 531. WE ALSO NEED TO CHECK FOR ZERO FACTORS NOW.
+C          NEGATIVE VALUES CANNOT APPEAR AS GPDK ALWAYS RETURNS A
+C          NONNEGATIVE NUMBER. AS CODED, EVEN THE EXOTIC CASES
+C          NT<2 (FIRST LOOP NOT EXECUTED) AND NTM1<1 (SECOND LOOP
+C          NOT EXECUTED) SHOULD BE SAFE AND GIVE THE SAME RESULT
+C          FOR WTG IN THE END AS THE OLD CODE.
+C
+      WTMAX=0.0
+      LZERO=.TRUE.
+      DO 350 I=2,NT
+      EMMIN=EMMIN+EM(I-1)
+      EMMAX=EMMAX+EM(I)
+      WTFC=GPDK(EMMAX,EMMIN,EM(I))
+      IF(WTFC.LE.0.) THEN
+      LZERO=.FALSE.
+      GOTO 351
+      ENDIF
+      WTMAX=WTMAX+LOG(WTFC)
+ 350  CONTINUE
+ 351  WTMAXQ= EXPXU
+      IF(LZERO) WTMAXQ= -WTMAX
+      GO TO 455
+  400 WTMAXQ=LOG(ONE*TECMTM**NTM2*FFQ(NT) / TECM)
+  455 CONTINUE
+      CALL GRNDM(RNO,NTNM4)
+      IF(NTM2) 900,509,460
+  460 CONTINUE
+      CALL FLPSOR(RNO,NTM2)
+      DO 508 J=2,NTM1
+  508 EMM(J)=RNO(J-1)*TECMTM+SM(J)
+  509 TWGT=WTMAXQ
+      IR=NTM2
+      LZERO=.TRUE.
+      DO 530 I=1,NTM1
+      PD(I)=GPDK(EMM(I+1),EMM(I),EM(I+1))
+      IF(PD(I).LE.0.0) THEN
+      LZERO=.FALSE.
+      ELSE
+      TWGT=TWGT+LOG(ONE*PD(I))
+      ENDIF
+  530 CONTINUE
+  531 WGT=0.0
+      IF(LZERO) THEN
+      TEXPXU=EXPXU
+      TEXPXL=EXPXL
+      WGT=EXP(MAX(MIN(TWGT,TEXPXU),TEXPXL))
+      ENDIF
+      PCM(1,1)=0.0
+      PCM(2,1)=PD(1)
+      PCM(3,1)=0.0
+      DO 570 I=2,NT
+      PCM(1,I)=0.0
+      PCM(2,I) = -PD(I-1)
+      PCM(3,I)=0.0
+      IR=IR+1
+      BANG=TWOPI*RNO(IR)
+      CB=COS(BANG)
+      SB=SIN(BANG)
+      IR=IR+1
+      C=2.0*RNO(IR)-1.0
+      S=SQRT(ABS(1.0-C*C))
+      IF(I.EQ.NT) GO TO 1567
+      ESYS=SQRT(PD(I)**2+EMM(I)**2)
+      BETA=PD(I)/ESYS
+      GAMA=ESYS/EMM(I)
+      DO 568 J=1,I
+      NDX = 5*J - 5
+      AA= PCM1(NDX+1)**2 + PCM1(NDX+2)**2 + PCM1(NDX+3)**2
+      PCM1(NDX+5) = SQRT(AA)
+      PCM1(NDX+4) = SQRT(AA+EMS(J))
+      CALL ROTES2(C,S,CB,SB,PCM,J)
+      PSAVE = GAMA*(PCM(2,J)+BETA*PCM(4,J))
+  568 PCM(2,J)=PSAVE
+      GO TO 570
+ 1567 DO 1568 J=1,I
+      AA=PCM(1,J)**2 + PCM(2,J)**2 + PCM(3,J)**2
+      PCM(5,J)=SQRT(AA)
+      PCM(4,J)=SQRT(AA+EMS(J))
+      CALL ROTES2(C,S,CB,SB,PCM,J)
+ 1568 CONTINUE
+  570 CONTINUE
+  900 CONTINUE
+      RETURN
+ 1000 DO 212 I=1,NPG
+      PCM(1,I)=0.
+      PCM(2,I)=0.
+      PCM(3,I)=0.
+      PCM(4,I)=AMASS(I)
+  212 PCM(5,I)=AMASS(I)
+      WGT=0.
+      RETURN
+ 1001 IF(NPRT(3).OR.NPRT(4)) WRITE(NEWBCD,1101)
+      GO TO 1050
+ 1002 WRITE(NEWBCD,1102)
+ 1050 WRITE(NEWBCD,1150) KNT
+      WRITE(NEWBCD,1200) NPG,TECM,(AMASS(JK),JK=1,NPG)
+      RETURN
+ 1100 FORMAT(1H ,'*PHASP* AVAILABLE ENERGY NEGATIVE')
+ 1101 FORMAT(1H ,'*PHASP* LESS THAN 2 OUTGOING PARTICLES')
+ 1102 FORMAT(1H ,'*PHASP* MORE THAN 18 OUTGOING PARTICLES')
+ 1150 FORMAT(1H ,'*PHASP* ABOVE ERROR DETECTED IN PHASP AT CALL NUMBER'
+     $ ,I7)
+ 1200 FORMAT(1H ,'*PHASP* INPUT DATA TO PHASP.         NPG= ' ,I6/
+     $ 2X,9H   TECM=  ,D15.7,18H  PARTICLE MASSES=,5D15.7/(42X,5D15.7)
+     $ )
+      END
+*-- AUTHOR :
+      SUBROUTINE PHPNUC
+C
+C *** DOUBLE PRECISION VERSION OF THE PHASE SPACE ROUTINE "PHASP"
+C *** THIS ROUTINE MUST BE CALLED BY THE NUCLEAR INTERACTION ROUTINE
+C *** "NUCREC" (SEE ALSO COMMENTS THEREIN). THE REASON IS SIMPLY THAT
+C *** ENERGY-MOMENTUM CALCULATIONS ARE NOT POSSIBLE WITHIN ONLY
+C *** 6 DIGITS OF ACCURACY FOR TOTAL ENERGIES
+C *** IN THE ORDER OF HUNDREDS OF GEV (URANIUM NUCLEUS), COMPARED WITH
+C *** KINETIC ENERGIES IN THE ORDER OF MEV (NEUTRONS, PROTONS AND
+C *** PHOTONS IN THE REACTIONS A(X,Y(GAMMA,GAMMA))A'). IN THE ORIGINAL
+C *** GHEISHA8 CODE ALL THESE CALCULATIONS ARE DONE IN DOUBLE PRECISION
+C *** HMF 29-AUG-1989 RWTH AACHEN
+C
+C CALLED BY : NUCREC
+C ORIGIN    : H.FESEFELDT
+C
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      REAL RNDM(1)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/NUCIN /TECM,AMASS(18),NPG,KGENEV
+      COMMON/NUCOUT/PCM(5,18),WGT
+      DOUBLE PRECISION TECM,AMASS,PCM,WGT
+C
+C
+      SAVE  KNT, TWOPI, FFQ
+      DIMENSION EMM(18)
+      DIMENSION RNO(50)
+      DIMENSION EM(18),PD(18),EMS(18),SM(18),FFQ(18),PCM1(90)
+      EQUIVALENCE (NT,NPG),(AMASS(1),EM(1)),(PCM1(1),PCM(1,1))
+      DATA  FFQ/0.,3.141592, 19.73921, 62.01255, 129.8788, 204.0131,
+     2                       256.3704, 268.4705, 240.9780, 189.2637,
+     3                       132.1308,  83.0202,  47.4210,  24.8295,
+     4                        12.0006,   5.3858,   2.2560,   0.8859/
+      DATA  KNT , TWOPI /  1 , 6.2831853073 /
+C
+C --- INITIALISE LOCAL ARRAYS AND THE RESULT ARRAY PCM ---
+CJOK  CALL VZERO(PCM,90)
+      DO 80 JZERO=1,18
+        DO 8080 IJK=1,5
+          PCM(IJK,JZERO) = 0.D0
+ 8080   CONTINUE
+        EMM(JZERO)=0.
+        PD(JZERO) =0.
+        EMS(JZERO)=0.
+        SM(JZERO) =0.
+  80  CONTINUE
+C
+      KNT = KNT + 1
+      IF (.NOT.NPRT(3).AND..NOT.NPRT(4)) GOTO 100
+      WRITE(NEWBCD,1200) NPG,TECM,(AMASS(JK),JK=1,NPG)
+  100 CONTINUE
+  150 IF (NT .LT. 2)  GO TO 1001
+      IF (NT .GT. 18)  GO TO 1002
+      NTM1=NT-1
+      NTM2=NT-2
+      NTP1=NT+1
+      NTNM4 = 3*NT - 4
+      EMM(1)=EM(1)
+      TM=0.0
+      DO 200 I=1,NT
+      EMS(I)=EM(I)**2
+      TM=TM+EM(I)
+ 200  SM(I)=TM
+      WGT=1.
+ 210  TECMTM=TECM-TM
+      IF (TECMTM .LE. 0.0)  GO TO 1000
+      EMM(NT)=TECM
+      IF (KGENEV.GT.1) GO TO 400
+      EMMAX=TECMTM+EM(1)
+      EMMIN=0.0
+      WTMAX=1.0
+      DO 350 I=2,NT
+      EMMIN=EMMIN+EM(I-1)
+      EMMAX=EMMAX+EM(I)
+  350 WTMAX=WTMAX*DPDNUC(EMMAX,EMMIN,EM(I))
+      WTMAXQ=1.0/WTMAX
+      GO TO 455
+  400 WTMAXQ=TECMTM**NTM2*FFQ(NT) / TECM
+  455 CONTINUE
+      DO 457 I= 1, NTNM4
+      CALL GRNDM(RNDM,1)
+  457 RNO(I) = DBLE(RNDM(1))
+      IF(NTM2) 900,509,460
+  460 CONTINUE
+      CALL DLPNUC(RNO,NTM2)
+      DO 508 J=2,NTM1
+  508 EMM(J)=RNO(J-1)*(TECMTM)+SM(J)
+  509 WGT=WTMAXQ
+      IR=NTM2
+      DO 530 I=1,NTM1
+      PD(I)=DPDNUC(EMM(I+1),EMM(I),EM(I+1))
+  530 WGT=WGT*PD(I)
+      PCM(1,1)=0.0
+      PCM(2,1)=PD(1)
+      PCM(3,1)=0.0
+      DO 570 I=2,NT
+      PCM(1,I)=0.0
+      PCM(2,I) = -PD(I-1)
+      PCM(3,I)=0.0
+      IR=IR+1
+      BANG=TWOPI*RNO(IR)
+      CB=COS(BANG)
+      SB=SIN(BANG)
+      IR=IR+1
+      C=2.0*RNO(IR)-1.0
+      S=SQRT(1.0-C*C)
+      IF(I.EQ.NT) GO TO 1567
+      ESYS=SQRT(PD(I)**2+EMM(I)**2)
+      BETA=PD(I)/ESYS
+      GAMA=ESYS/EMM(I)
+      DO 568 J=1,I
+      NDX = 5*J - 5
+      AA= PCM1(NDX+1)**2 + PCM1(NDX+2)**2 + PCM1(NDX+3)**2
+      PCM1(NDX+5) = SQRT(AA)
+      PCM1(NDX+4) = SQRT(AA+EMS(J))
+      CALL DOTNUC(C,S,CB,SB,PCM,J)
+      PSAVE = GAMA*(PCM(2,J)+BETA*PCM(4,J))
+  568 PCM(2,J)=PSAVE
+      GO TO 570
+ 1567 DO 1568 J=1,I
+      AA=PCM(1,J)**2 + PCM(2,J)**2 + PCM(3,J)**2
+      PCM(5,J)=SQRT(AA)
+      PCM(4,J)=SQRT(AA+EMS(J))
+      CALL DOTNUC(C,S,CB,SB,PCM,J)
+ 1568 CONTINUE
+  570 CONTINUE
+  900 CONTINUE
+      RETURN
+ 1000 DO 212 I=1,NPG
+      PCM(1,I)=0.
+      PCM(2,I)=0.
+      PCM(3,I)=0.
+      PCM(4,I)=AMASS(I)
+  212 PCM(5,I)=AMASS(I)
+      WGT=0.
+      RETURN
+ 1001 IF(NPRT(3).OR.NPRT(4)) WRITE(NEWBCD,1101)
+      GO TO 1050
+ 1002 WRITE(NEWBCD,1102)
+ 1050 WRITE(NEWBCD,1150) KNT
+      WRITE(NEWBCD,1200) NPG,TECM,(AMASS(JK),JK=1,NPG)
+      STOP
+ 1100 FORMAT(' *PHPNUC* AVAILABLE ENERGY NEGATIVE')
+ 1101 FORMAT(' *PHPNUC* LESS THAN 2 OUTGOING PARTICLES')
+ 1102 FORMAT(' *PHPNUC* MORE THAN 18 OUTGOING PARTICLES')
+ 1150 FORMAT(' *PHPNUC* ABOVE ERROR DETECTED IN PHASP',
+     $ ' AT CALL NUMBER ',I7)
+ 1200 FORMAT(' *PHPNUC* INPUT DATA TO PHPNUC. NPG = ',I6/
+     $ ' TECM = ',E15.7,' PARTICLE MASSES = ',5E15.7/(42X,5E15.7))
+      END
+*-- AUTHOR :
+      FUNCTION PMLTPC(NP,NM,NZ,N,B,C)
+C
+C *** NVE 03-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (14-SEP-1987)
+C
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+C
+      RLNNPF=0.
+      IF(NP.LE.1) GOTO 2
+      DO 1 I=2,NP
+    1 RLNNPF=RLNNPF+LOG(I*1.)
+    2 RLNNMF=0.
+      IF(NM.LE.1) GOTO 4
+      DO 3 I=2,NM
+    3 RLNNMF=RLNNMF+LOG(I*1.)
+    4 RLNNZF=0.
+      IF(NZ.LE.1) GOTO 6
+      DO 5 I=2,NZ
+    5 RLNNZF=RLNNZF+LOG(I*1.)
+    6 PMLTPC=-(NP-NM+NZ+B)**2/(2*(C*N)**2)-RLNNPF-RLNNMF-RLNNZF
+      IF(PMLTPC.LT.EXPXL) PMLTPC=EXPXL
+      PMLTPC=EXP(PMLTPC)
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE POISSO(XAV,IRAN)
+C
+C *** GENERATION OF POISSON DISTRIBUTION ***
+C *** NVE 16-MAR-1988 CERN GENEVA ***
+C
+      DIMENSION RNDM(1)
+C ORIGIN : H.FESEFELDT (27-OCT-1983)
+C
+C --- USE NORMAL DISTRIBUTION FOR <X> > 9.9 ---
+      IF(XAV.GT.9.9) GOTO 2
+C
+      MM=IFIX(5.*XAV)
+      IRAN=0
+      IF(MM.LE.0) GOTO 3
+      R=EXP(-XAV)
+      CALL GRNDM(RNDM,1)
+      RAN1=RNDM(1)
+      IF(RAN1.LE.R) RETURN
+      RR=R
+      DO 1 I=1,MM
+      IRAN=IRAN+1
+      IF(I.LE.5) RRR=XAV**I/NFAC(I)
+C** STIRLING' S FORMULA FOR LARGE NUMBERS
+      IF(I.GT.5) RRR=EXP(I*LOG(XAV)-(I+0.5)*LOG(I*1.)+I-0.9189385)
+      RR=RR+R*RRR
+      IF(RAN1.LE.RR) RETURN
+    1 CONTINUE
+      RETURN
+C** NORMAL DISTRIBUTION WITH SIGMA**2 = <X>
+    2 CALL NORMAL(RAN1)
+      RAN1=XAV+RAN1*SQRT(XAV)
+      IRAN=IFIX(RAN1)
+      IF(IRAN.LT.0) IRAN=0
+      RETURN
+C** FOR VERY SMALL XAV TRY IRAN=1,2,3
+    3 P1=XAV*EXP(-XAV)
+      P2=XAV*P1/2.
+      P3=XAV*P2/3.
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IRAN=3
+      IF(RAN.LT.P3) RETURN
+      IRAN=2
+      IF(RAN.LT.P2) RETURN
+      IRAN=1
+      IF(RAN.LT.P1) RETURN
+      IRAN=0
+      RETURN
+      END
+*-- AUTHOR :
+      FUNCTION RANRES(X)
+C
+C *** RESTRICTED RANDOM NUMBERS TO BE USED AS ARGUMENT IN LOG ETC... ***
+C *** NVE 13-JUL-1988 CERN GENEVA ***
+C
+C NOTE : 0 < RANRES < 1
+      DIMENSION RNDM(1)
+C
+ 1    CONTINUE
+      CALL GRNDM(RNDM,1)
+      RANRES=RNDM(1)
+      IF ((RANRES .LE. 0.) .OR. (RANRES .GE. 1.)) GO TO 1
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE ROTES2(C,S,C2,S2,PR,I)
+C
+C *** NVE 16-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (27-OCT-1983)
+C
+      DIMENSION PR(*)
+      K1 = 5*I - 4
+      K2 = K1 + 1
+      SA = PR(K1)
+      SB = PR(K2)
+      A      = SA*C - SB*S
+      PR(K2) = SA*S + SB*C
+      K2 = K2 + 1
+      B = PR(K2)
+      PR(K1) = A*C2 - B*S2
+      PR(K2) = A*S2 + B*C2
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE RTMI(X,F,FCT,XLI,XRI,EPS,IEND,IER)
+C
+C *** NVE 16-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (27-OCT-1983)
+C COPIED FROM R01UTL.SSP.S  23.4.82
+C
+      EXTERNAL FCT
+C --- PREPARE ITERATION ---
+      IER=0
+      XL=XLI
+      XR=XRI
+      X=XL
+      TOL=X
+      F=FCT(TOL)
+      IF(F)1,16,1
+    1 FL=F
+      X=XR
+      TOL=X
+      F=FCT(TOL)
+      IF(F)2,16,2
+    2 FR=F
+      IF(SIGN(1.,FL)+SIGN(1.,FR))25,3,25
+C
+C     BASIC ASSUMPTION FL*FR LESS THAN 0 IS SATISFIED.
+C     GENERATE TOLERANCE FOR FUNCTION VALUES.
+    3 I=0
+      TOLF=100.*EPS
+C
+C
+C     START ITERATION LOOP
+    4 I=I+1
+C
+C     START BISECTION LOOP
+      DO 13 K=1,IEND
+      X=.5*(XL+XR)
+      TOL=X
+      F=FCT(TOL)
+      IF(F)5,16,5
+    5 IF(SIGN(1.,F)+SIGN(1.,FR))7,6,7
+C
+C     INTERCHANGE XL AND XR IN ORDER TO GET THE SAME SIGN IN F AND FR
+    6 TOL=XL
+      XL=XR
+      XR=TOL
+      TOL=FL
+      FL=FR
+      FR=TOL
+    7 TOL=F-FL
+      A=F*TOL
+      A=A+A
+      IF(A-FR*(FR-FL))8,9,9
+    8 IF(I-IEND)17,17,9
+    9 XR=X
+      FR=F
+C
+C     TEST ON SATISFACTORY ACCURACY IN BISECTION LOOP
+      TOL=EPS
+      A=ABS(XR)
+      IF(A-1.)11,11,10
+   10 TOL=TOL*A
+   11 IF(ABS(XR-XL)-TOL)12,12,13
+   12 IF(ABS(FR-FL)-TOLF)14,14,13
+   13 CONTINUE
+C     END OF BISECTION LOOP
+C
+C     NO CONVERGENCE AFTER IEND ITERATION STEPS FOLLOWED BY IEND
+C     SUCCESSIVE STEPS OF BISECTION OR STEADILY INCREASING FUNCTION
+C     VALUES AT RIGHT BOUNDS. ERROR RETURN.
+      IER=1
+   14 IF(ABS(FR)-ABS(FL))16,16,15
+   15 X=XL
+      F=FL
+   16 RETURN
+C
+C     COMPUTATION OF ITERATED X-VALUE BY INVERSE PARABOLIC INTERPOLATION
+   17 A=FR-F
+      DX=(X-XL)*FL*(1.+F*(A-TOL)/(A*(FR-FL)))/TOL
+      XM=X
+      FM=F
+      X=XL-DX
+      TOL=X
+      F=FCT(TOL)
+      IF(F)18,16,18
+C
+C     TEST ON SATISFACTORY ACCURACY IN ITERATION LOOP
+   18 TOL=EPS
+      A=ABS(X)
+      IF(A-1.)20,20,19
+   19 TOL=TOL*A
+   20 IF(ABS(DX)-TOL)21,21,22
+   21 IF(ABS(F)-TOLF)16,16,22
+C
+C     PREPARATION OF NEXT BISECTION LOOP
+   22 IF(SIGN(1.,F)+SIGN(1.,FL))24,23,24
+   23 XR=X
+      FR=F
+      GO TO 4
+   24 XL=X
+      FL=F
+      XR=XM
+      FR=FM
+      GO TO 4
+C     END OF ITERATION LOOP
+C
+C
+C     ERROR RETURN IN CASE OF WRONG INPUT DATA
+   25 IER=2
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE SELFAB(SPROB)
+C
+C *** SELF-ABSORBTION IN HEAVY MOLECULES ***
+C *** NVE 16-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (11-OCT-1987)
+C
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      SPROB=0.
+      EKW=PV(4,MXGKPV)-ABS(PV(5,MXGKPV))
+      IF(EKW.LT.5.) RETURN
+      ALEKW=LOG(EKW-4.)
+      SPROB=0.6*ALEKW
+      IF(SPROB.GT.1.) SPROB=1.
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE SETCUR(NTR)
+C
+C *** STORAGE OF CURRENT TRACK PARAMETERS ***
+C *** NVE 16-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (26-JAN-1984)
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DIMENSION RNDM(1)
+C
+      CALL LENGTX(NTR,P)
+      AMAS=PV(5,NTR)
+      AMASQ=AMAS*AMAS
+      NCH=PV(6,NTR)
+      TOF=PV(7,NTR)
+      IPART=IFIX(PV(8,NTR)+0.1)
+      IF(PV(10,NTR).NE.0.) USERW=PV(10,NTR)
+      PX=0.
+      PY=0.
+      PZ=0.
+      IF(P.LT.1.E-10) GOTO 4
+      PX=PV(1,NTR)/P
+      PY=PV(2,NTR)/P
+      PZ=PV(3,NTR)/P
+    4 EN=PV(4,NTR)
+      EK=EN-ABS(AMAS)
+      SINL=PZ
+      COSL=SQRT(ABS(1.-SINL*SINL))
+      IF(ABS(COSL).LT.1.E-10) GOTO 1
+      SINP=PY/COSL
+      COSP=PX/COSL
+      GOTO 2
+    1 CALL GRNDM(RNDM,1)
+      PHI=RNDM(1)*TWPI
+      SINP=SIN(PHI)
+      COSP=COS(PHI)
+    2 IF(NPRT(3).OR.NPRT(4).OR.NPRT(5))
+     *WRITE(NEWBCD,1001) XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,LCALO,ICEL,
+     *SINL,COSL,SINP,COSP
+      RETURN
+ 1001 FORMAT(1H ,'*SETCUR* ','TRACK PARAMETER CHANGED: ',
+     $ 3F13.2,1X,2F7.0,1X,F8.3,1X,/,'       ',
+     $ F3.0,1X,F6.0,1X,3F6.3,1X,F10.0,1X,F5.0/10X,4F8.3,1X,F8.5,1X,6I5,
+     $ 4F8.3)
+      END
+*-- AUTHOR :
+      SUBROUTINE SETTRK(NTR)
+C
+C *** FILL THE STACK VIA COMMON /EVENT/ ***
+C *** INSTEAD OF THE USERWORD, THE PARTICLE INDEX IS STORED ***
+C *** NVE 01-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (10-NOV-1983)
+C
+      INTEGER MXGKIN
+      PARAMETER (MXGKIN=100)
+      COMMON/GCKING/KCASE,NGKINE,GKIN(5,MXGKIN),
+     +                           TOFD(MXGKIN),IFLGK(MXGKIN)
+      INTEGER       KCASE,NGKINE ,IFLGK,MXPHOT,NGPHOT
+      REAL          GKIN,TOFD,XPHOT
+C
+      PARAMETER (MXPHOT=800)
+      COMMON/GCKIN2/NGPHOT,XPHOT(11,MXPHOT)
+C
+      COMMON/GCKIN3/GPOS(3,MXGKIN)
+      REAL          GPOS
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+C
+C --- CHECK PV ARRAY BOUNDARY ---
+      IF(NTR .LE. MXGKPV) GOTO 10
+      PRINT 1000,NTR
+ 1000 FORMAT(' *SETTRK* NTR = ',I3,' WOULD ADRESS OUTSIDE PV ARRAY'/
+     $ ' ===> TRACK WILL NOT BE PUT ON STACK AND WILL BE LOST')
+      GO TO 9999
+C
+C --- CHECK TOTAL NUMBER OF PRODUCED PARTICLES ---
+ 10   CONTINUE
+      NVEDUM=NTOT+1
+      IF(NVEDUM .LE. MXEVEN) GOTO 20
+      IF(NVEDUM .EQ. MXEVEN+1) PRINT 1001, NVEDUM,MXEVEN
+ 1001 FORMAT(' *SETTRK* STORAGE OF PARTICLE NO. ',I4, 'NOT ALLOWED'/
+     $ ' MAXIMUM NUMBER OF GENERATED PARTICLES IS ',I4/
+     $ ' ===> FROM NOW ON ALL GENERATED PARTICLES WILL BE DISCARDED')
+      GO TO 9999
+C
+C --- STORE GENERATED PARTICLE ON THE STACK ---
+ 20   CONTINUE
+      EVE(NEXT   )=XEND
+      EVE(NEXT+ 1)=YEND
+      EVE(NEXT+ 2)=ZEND
+      EVE(NEXT+ 3)=RCA
+      EVE(NEXT+ 4)=RCE
+      EVE(NEXT+ 5)=PV(5,NTR)
+      EVE(NEXT+ 6)=PV(6,NTR)
+      EVE(NEXT+ 7)=PV(7,NTR)
+      EVE(NEXT+ 8)=PV(1,NTR)
+      EVE(NEXT+ 9)=PV(2,NTR)
+      EVE(NEXT+10)=PV(3,NTR)
+      EVE(NEXT+11)=PV(8,NTR)
+      NEXT=NEXT+12
+      NTOT=NTOT+1
+      NEXT1=NEXT-12
+      NEXT2=NEXT-1
+      NTOT1=NTOT-1
+      IF(NPRT(3).OR.NPRT(4).OR.NPRT(5))
+     $ WRITE(NEWBCD,2000) NTOT1,(EVE(I),I=NEXT1,NEXT2)
+ 2000 FORMAT(' *SETTRK* TRACK ON STACK:',I5,/,
+     $ 12X,3F12.2,1X,2F7.0,1X,
+     $ F8.3,1X,F3.0,1X,F6.0,1X,3F8.3,1X,F10.0)
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE STEEP(XX)
+C
+C *** NVE 16-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (22-FEB-1985)
+C
+      XX=1.
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE STEEQ(XXH,IPV)
+C
+C *** CORRECTIONS FOR SINGLE PARTICLE SPECTRA (SHOWER PARTICLES) ***
+C *** NVE 16-MAR-1988 CERN GENEVA
+C
+C ORIGIN : H.FESEFELDT (06-SEP-1985)
+C
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+C
+      DIMENSION ALEM(7),VAL0(7)
+      DIMENSION RNDM(1)
+C**   DATA   EM/ 4.0 , 10.  , 15.  , 20.  ,  30. , 100. , 1000./
+      DATA ALEM/ 1.40, 2.30 , 2.70 , 3.00 , 3.40 , 4.60 , 7.00 /
+      DATA VAL0/ 0.00, 0.40 , 0.48 , 0.51 , 0.54 , 0.60 , 0.65 /
+C
+      XXH=1.
+C
+      IF ((IPART .NE. 7) .AND. (IPART .NE. 9)) GO TO 9999
+      IF (ABS(IPA(IPV)) .NE. 8) GO TO 9999
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .GT. LOG(ATNO2)) GO TO 9999
+      EKW=PV(4,MXGKPV)-ABS(PV(5,MXGKPV))
+      ALEKW=LOG(EKW)
+      IF (ALEKW .LE. ALEM(1)) GO TO 9999
+C
+C --- GET ENERGY BIN ---
+      DO 1 I=2,7
+      IF (ALEKW .LT. ALEM(I)) GO TO 2
+ 1    CONTINUE
+      XXH=VAL0(7)
+      GO TO 3
+C
+C *** USE LINEAR INTERPOLATION OR EXTRAPOLATION BY Y=RC*X+B ***
+ 2    CONTINUE
+      I1=I-1
+      I2=I
+      DXNVE=ALEM(I2)-ALEM(I1)
+      DYNVE=VAL0(I2)-VAL0(I1)
+      RCNVE=DYNVE/DXNVE
+      BNVE=VAL0(I1)-RCNVE*ALEM(I1)
+      XXH=RCNVE*ALEKW+BNVE
+C
+ 3    CONTINUE
+      XXH=1.-XXH
+C
+ 9999 CONTINUE
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE STPAIR
+C
+C *** STRANGE PARTICLE PAIR PRODUCTION ***
+C *** NVE 14-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT 16-DEC-1987
+C
+C THE SAME FORMULA FOR <K KB> VS AVAILABLE ENERGY
+C                  AND <K Y>  VS AVAILABLE ENERGY
+C FOR ALL REACTIONS.
+C CHOOSE CHARGE COMBINATIONS K+ K- , K+ K0B, K0 K0B OR K0 K-
+C                            K+ Y0, K0 Y+, K0 Y-
+C FOR ANTIBARYON INDUCED REACTIONS HALF OF THE CROSS SECTIONS
+C KB YB PAIRS ARE PRODUCED
+C CHARGE IS NOT CONSERVED , NO EXPERIMENTAL DATA AVAILABLE FOR
+C EXCLUSIVE REACTIONS, THEREFORE SOME AVERAGE BEHAVIOUR ASSUMED.
+C THE RATIO L/SIGMA IS TAKEN AS 3:1 (FROM EXPERIMENTAL LOW ENERGY)
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+C
+      REAL KKB,KY
+      DIMENSION KKB(9),KY(12),IPAKKB(2,9),IPAKY(2,12),IPAKYB(2,12)
+      DIMENSION AVKKB(12),AVKY(12),AVNNB(12),AVRS(12)
+      DIMENSION RNDM(1)
+      DATA KKB/0.2500,0.3750,0.5000,0.5625,0.6250,0.6875,0.7500,
+     *         0.8750,1.000/
+      DATA KY /0.200,0.300,0.400,0.550,0.625,0.700,0.800,0.850,
+     *         0.900,0.950,0.975,1.000/
+      DATA IPAKKB/10,13,10,11,10,12,11,11,11,12,12,11,12,12,
+     *            11,13,12,13/
+      DATA IPAKY /18,10,18,11,18,12,20,10,20,11,20,12,21,10,
+     *            21,11,21,12,22,10,22,11,22,12/
+      DATA IPAKYB/19,13,19,12,19,11,23,13,23,12,23,11,24,13,
+     *            24,12,24,11,25,13,25,12,25,11/
+      DATA AVRS/3.,4.,5.,6.,7.,8.,9.,10.,20.,30.,40.,50./
+      DATA AVKKB/0.0015,0.005,0.012,0.0285,0.0525,0.075,0.0975,
+     *           0.123,0.28,0.398,0.495,0.573/
+      DATA AVKY /0.005,0.03,0.064,0.095,0.115,0.13,0.145,0.155,
+     *           0.20,0.205,0.210,0.212/
+      DATA AVNNB/0.00001,0.0001,0.0006,0.0025,0.01,0.02,0.04,
+     $           0.05,0.12,0.15,0.18,0.20/
+C
+      IF(IPA(3).LE.0) GO TO 9999
+      IER(50)=IER(50)+1
+      IPA1=ABS(IPA(1))
+      IPA2=ABS(IPA(2))
+C --- PROTECTION AGAINST ANNIHILATION PROCESSES ---
+      IF ((IPA1 .EQ. 0) .OR. (IPA2 .EQ. 0)) GO TO 9999
+      EAB=RS-ABS(RMASS(IPA1))-ABS(RMASS(IPA2))
+      IF(EAB.LT.1.) GO TO 9999
+C**
+C** CHOOSE RANDOM REPLACEMENT OF PRODUCED KAONS (16.12.87)
+      DO 111 I=1,60
+      IF(IPA(I).EQ.0) GOTO 112
+  111 CONTINUE
+  112 I=I-3
+      CALL GRNDM(RNDM,1)
+      I3=3+IFIX(RNDM(1)*I)
+  114 CALL GRNDM(RNDM,1)
+      I4=3+IFIX(RNDM(1)*I)
+      IF(I.EQ.1) I4=4
+      IF(I3.EQ.I4) GOTO 114
+C
+C *** CHOOSE RANDOM REPLACEMENT OF PRODUCED KAONS (16.12.87) ***
+C --- GET RS BIN ---
+      DO 1 I=2,12
+      IF (RS .LE. AVRS(I)) GO TO 2
+ 1    CONTINUE
+      I1=11
+      I2=12
+      GO TO 3
+C
+ 2    CONTINUE
+      I1=I-1
+      I2=I
+C
+C *** USE LINEAR INTERPOLATION OR EXTRAPOLATION BY Y=RC*X+B ***
+ 3    CONTINUE
+      DXNVE=AVRS(I2)-AVRS(I1)
+      DYNVE=LOG(AVKKB(I2))-LOG(AVKKB(I1))
+      RCNVE=DYNVE/DXNVE
+      BNVE=LOG(AVKKB(I1))-RCNVE*AVRS(I1)
+      AVK=RCNVE*RS+BNVE
+      DYNVE=LOG(AVKY(I2))-LOG(AVKY(I1))
+      RCNVE=DYNVE/DXNVE
+      BNVE=LOG(AVKY(I1))-RCNVE*AVRS(I1)
+      AVY=RCNVE*RS+BNVE
+      DYNVE=LOG(AVNNB(I2))-LOG(AVNNB(I1))
+      RCNVE=DYNVE/DXNVE
+      BNVE =LOG(AVNNB(I1))-RCNVE*AVRS(I1)
+      AVN  =RCNVE*RS+BNVE
+C
+      AVK=EXP(AVK)
+      AVY=EXP(AVY)
+      AVN=EXP(AVN)
+      IF(AVK+AVY+AVN.LE.0.) GOTO 9999
+      IF(IPA1.LT.14) AVY=AVY/2.
+      IF(IPA2.LT.14) AVY=0.
+      AVY=AVY+AVK+AVN
+      AVK=    AVK+AVN
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IF(RAN.LT.AVN) GOTO 5
+      IF(RAN.LT.AVK) GOTO 10
+      IF(RAN.LT.AVY) GOTO 20
+      GO TO 9999
+    5 IF((EAB-2.).LT.0.) GO TO 9999
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GO TO 6
+      IPA(I3)=14
+      IPA(I4)=15
+      GOTO 30
+    6 IPA(I3)=16
+      IPA(I4)=17
+      GOTO 30
+   10 IF((EAB-1.).LT.0.) GO TO 9999
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      DO 11 I=1,9
+      IF(RAN.LT.KKB(I)) GOTO 12
+   11 CONTINUE
+      GO TO 9999
+   12 IPA(I3)=IPAKKB(1,I)
+      IPA(I4)=IPAKKB(2,I)
+      GOTO 30
+   20 IF((EAB-1.6).LT.0.) GO TO 9999
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      DO 21 I=1,12
+      IF(RAN.LT.KY(I)) GOTO 22
+   21 CONTINUE
+      GO TO 9999
+   22 IF(IPA(1).LT.14) GOTO 23
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) GOTO 23
+      IPA1=ABS(IPA(1))
+      IPA(1)=IPAKY(1,I)
+      IF(IPA1.EQ.15) GOTO 25
+      IF(IPA1.EQ.17) GOTO 25
+      IF(IPA1.EQ.19) GOTO 25
+      IF(IPA1.GT.22) GOTO 25
+      GOTO 24
+   25 IPA(1)=IPAKYB(1,I)
+      IPA(I3)=IPAKYB(2,I)
+      GOTO 30
+   23 IPA(2)=IPAKY(1,I)
+   24 IPA(I3)=IPAKY(2,I)
+C** CHECK THE AVAILABLE ENERGY
+   30 EAB=RS
+      IJ=0
+      DO 31 I=1,60
+      IF(IPA(I).EQ.0) GOTO 31
+      IPA1=ABS(IPA(I))
+      EAB=EAB-ABS(RMASS(IPA1))
+      IJ=IJ+1
+      IF(EAB.LT.0.) GOTO 35
+   31 CONTINUE
+      IF (NPRT(4)) WRITE(NEWBCD,1003) (IPA(J),J=1,IJ)
+      GO TO 9999
+   35 I=I-1
+      L=I-1
+      IF(L.LE.0) GO TO 9999
+      DO 36 J=I,60
+   36 IPA(J)=0
+      IF (NPRT(4)) WRITE(NEWBCD,1002) (IPA(J),J=1,L)
+C
+ 1002 FORMAT(' *STPAIR* KKB/KY PAIR PRODUCTION NOT ENOUGH ENERGY',
+     $/,'      REDUCE NUMBER OF PARTICLES ',2X,20I3)
+ 1003 FORMAT(' *STPAIR* KKB/KY PAIR PRODUCTION ENERGY SUFFICIENT',
+     $/ '      NUMBER OF PARTICLES ',2X,20I3)
+C
+ 9999 CONTINUE
+C
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE SVERL2(M,X)
+      DIMENSION U(2)
+      CALL GRNDM(U,2)
+      X=0.62666*LOG((1.+U(1))/(1.-U(1)))
+      IF(U(2).LT.0.5) X=-X
+      X=M+X*SQRT(M*1.)
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE SVGAM7(A,X)
+      DIMENSION U(2)
+      REAL LA
+      GA=A-1.
+      LA=SQRT(2.*A-1.)
+      EP=1.570796327+ATAN(GA/LA)
+      RO=1.570796327-EP
+    1 CALL GRNDM(U,2)
+      X=GA+LA*TAN(EP*U(1)+RO)
+CDH
+      IF(X.LE.0.) GOTO 1
+CDH
+      Y=LOG(1.+((X-GA)/LA)**2) +GA*LOG(X/GA)-X+GA
+      IF(LOG(U(2)).GT.Y) GOTO 1
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE TDELAY(X)
+C
+C *** TIME DELAY FOR NUCLEAR REACTIONS ***
+C *** NVE 16-MAR-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (01-FEB-1984)
+C
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+C
+      X=0.
+      IF(ATNO2.LT.1.5) RETURN
+      IF(ATNO2.GT.230.) RETURN
+      IF(EK.GT.0.2) RETURN
+      X=500.*EXP(-EK/0.04)
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE TWOB(IPPP,NFL,AVERN)
+C
+C *** GENERATION OF MOMENTA FOR ELAST. AND QUASI ELAST. 2 BODY REACT. ***
+C *** NVE 04-MAY-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT 15-SEP-1987
+C
+C THE SIMPLE FORMULA DS/D|T| = S0* EXP(-B*|T|) IS USED.
+C THE B VALUES ARE PARAMETRIZATIONS FROM EXPERIMENTAL DATA .
+C NOT AVAILABLE VALUES ARE TAKEN FROM THOSE OF SIMILAR REACTIONS
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      DIMENSION RNDM(3)
+C
+C     DATA CB/3./
+      DATA CB/0.01/
+C
+C --- STATEMENT FUNCTIONS ---
+      BPP(X)=4.225+1.795*LOG(X)
+C
+C**
+C**  FOR DIFFRACTION SCATTERING ON HEAVY NUCLEI USE BETTER ROUTINE
+C**  "COSCAT"
+C
+      TARMAS=RMASS(14)
+      IF (NFL .EQ. 2) TARMAS=RMASS(16)
+      ENP(8)=RMASS(IPPP)**2+TARMAS**2+2.0*TARMAS*ENP(6)
+      ENP(9)=SQRT(ENP(8))
+      EK=ENP(5)
+      EN=ENP(6)
+      P=ENP(7)
+      S=ENP(8)
+      RS=ENP(9)
+      CFA=0.025*((ATNO2-1.)/120.)*EXP(-(ATNO2-1.)/120.)
+      IF(ATNO2.LT.1.5) GOTO 500
+      IPA1=ABS(IPA(1))
+      IPA2=ABS(IPA(2))
+      RMC=RMASS(IPA1)
+      RMD=RMASS(IPA2)
+      RCHC=RCHARG(IPA1)
+      RCHD=RCHARG(IPA2)
+      IF(ABS(RMC-AMAS).GT.0.001) GOTO 500
+      RMNVE=RMASS(14)
+      IF (NFL .EQ. 2) RMNVE=RMASS(16)
+      IF(ABS(RMD-RMNVE).GT.0.001) GOTO 500
+      IF(ABS(RCHC-NCH).GT.0.5) GOTO 500
+      IF(NFL.EQ.1.AND.RCHD.LT.0.5) GOTO 500
+      IF(NFL.EQ.2.AND.ABS(RCHD).GT.0.5) GOTO 500
+      IF(ENP(1).GT.0.0001.OR.ENP(3).GT.0.0001) GOTO 500
+      CALL COSCAT
+      GO TO 9999
+C**
+C**  SET EFFECTIVE 4-MOMENTUM OF INITIAL PARTICLE
+C**
+  500 PV( 1,MXGKPV-1)=P*PX
+      PV( 2,MXGKPV-1)=P*PY
+      PV( 3,MXGKPV-1)=P*PZ
+      PV( 4,MXGKPV-1)=EN
+      PV( 5,MXGKPV-1)=AMAS
+      PV( 6,MXGKPV-1)=NCH
+      PV( 7,MXGKPV-1)=TOF
+      PV( 8,MXGKPV-1)=IPART
+      PV( 9,MXGKPV-1)=0.
+      PV(10,MXGKPV-1)=USERW
+      IER(47)=IER(47)+1
+      IF(NPRT(4))
+     $  WRITE(NEWBCD,4001) (PV(J,MXGKPV-1),J=1,10),IPA(1),IPA(2)
+      DO 2 J=1,6
+    2 PV(J,1)=PV(J,MXGKPV-1)
+      PV(7,1)=1.
+      IF(PV(5,1).LT.0.) PV(7,1)=-1.
+      PV(5,1)=ABS(PV(5,1))
+      NT=1
+C**
+C** TWO-BODY SCATTERING POSSIBLE?? IF NOT, CONTINUE WITH ORIGINAL
+C** PARTICLE, BUT SPEND THE NUCLEAR EVAPORATION ENERGY
+C**
+      IF(P.LT.0.1) GOTO 200
+      IF(RS.LT.0.01) GOTO 200
+C**
+C** CALCULATE SLOPE B FOR ELASTIC SCATTERING ON PROTON/NEUTRON
+C**
+      B=BPP(P)
+      IF(B.LT.CB) B=CB
+      IF(ABS(IPA(2)).GT.13) GOTO 9
+      IPA(2)=14
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.0.5) IPA(2)=16
+C**
+C** SET MASSES AND MOMENTA FOR FINAL STATE PARTICLES
+C**
+    9 RMC=RMASS(ABS(IPA(1)))
+      RMD=RMASS(ABS(IPA(2)))
+      PV(6,1)=RCHARG(ABS(IPA(1)))
+      PV(6,2)=RCHARG(ABS(IPA(2)))
+      PF=(S+RMD*RMD-RMC*RMC)**2 - 4*S*RMD*RMD
+      IF(NPRT(4)) WRITE(NEWBCD,4002) RMC,RMD,PV(6,1),PV(6,2),RS,S,PF
+      IF(PF.LT.0.001) GO TO 9999
+      PF=SQRT(PF)/(2.*RS)
+C**
+C** SET BEAM AND TARGET IN CMS
+C**
+      PV(1,3)=0.
+      PV(2,3)=0.
+      PV(3,3)=P
+      PV(5,3)=ABS(AMAS)
+      PV(4,3)=SQRT(P*P+AMAS*AMAS)
+      PV(1,4)=0.
+      PV(2,4)=0.
+      PV(3,4)=0.
+      RMNVE=RMASS(14)
+      IF (NFL .EQ. 2) RMNVE=RMASS(16)
+      PV(4,4)=RMNVE
+      PV(5,4)=RMNVE
+C**
+C** TRANSFORM INTO CMS.
+C**
+      CALL ADD(3,4,10)
+      CALL LOR(3,10,3)
+      CALL LOR(4,10,4)
+C**
+C** SET FINAL STATE MASSES AND ENERGIES IN CMS
+C**
+      PV(5,1)=ABS(RMC)
+      PV(5,2)=ABS(RMD)
+      PV(7,1)=1.
+      PV(7,2)=1.
+      IF(RMC.LT.0.) PV(7,1)=-1.
+      IF(RMD.LT.0.) PV(7,2)=-1.
+      PV(4,1)=SQRT(PF*PF+PV(5,1)*PV(5,1))
+      PV(4,2)=SQRT(PF*PF+PV(5,2)*PV(5,2))
+C**
+C** SET |T| AND |TMIN|
+C**
+      CALL GRNDM(RNDM,2)
+      CALL LENGTX(3,PIN)
+      BTRANG=B*4.*PIN*PF
+C**
+C** SIMPLY A PROTECTION AGAINST EXPONENT OVERFLOW 1.E20 IS BIG ENOUGH
+C**
+      EXINDT=-1.
+      IF(BTRANG.LT.46) EXINDT=EXINDT+EXP(-BTRANG)
+      TDN=LOG(1.+RNDM(1)*EXINDT)/BTRANG
+C**
+C** CACULATE (SIN(TETA/2.)**2 AND COS(TETA), SET AZIMUTH ANGLE PHI
+C**
+      CTET=1.+2.*TDN
+      IF(ABS(CTET).GT.1.) CTET=SIGN(1.,CTET)
+      STET=SQRT((1.-CTET)*(1.+CTET))
+      PHI=RNDM(2)*TWPI
+C**
+C** CALCULATE FINAL STATE MOMENTA IN CMS
+C**
+      PV(1,1)=PF*STET*SIN(PHI)
+      PV(2,1)=PF*STET*COS(PHI)
+      PV(3,1)=PF*CTET
+      PV(1,2)=-PV(1,1)
+      PV(2,2)=-PV(2,1)
+      PV(3,2)=-PV(3,1)
+C**
+C** TRANSFORM INTO LAB
+C**
+      DO 11 I=1,2
+      CALL LOR(I,4,I)
+      CALL DEFS1(I,MXGKPV-1,I)
+      IF(ATNO2.LT.1.5) GOTO 11
+      CALL LENGTX(I,PP)
+      IF(PP.LT.0.001) GOTO 11
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      CALL NORMAL(RAN)
+      EKIN=EKIN-CFA*(1.+0.5*RAN)
+      IF(EKIN.LT.0.0001) EKIN=0.0001
+      PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
+      PV(4,I)=EKIN+ABS(PV(5,I))
+      PV(1,I)=PV(1,I)*PP1/PP
+      PV(2,I)=PV(2,I)*PP1/PP
+      PV(3,I)=PV(3,I)*PP1/PP
+   11 CONTINUE
+      NT=2
+C**
+C** ADD BLACK TRACK PARTICLES .
+C** HERE THE PROCEDURE IS SOMEWHAT DIFFERENT AS IN 'TWOCLU' AND 'GENXPT'
+C** THE REASON IS, THAT WE HAVE TO SIMULATE ALSO THE NUCLEAR REACTIONS
+C** AT LOW ENERGIES LIKE A(H,P)B, A(H,P P)B, A(H,N)B E.T.C.
+C**
+  200 IF(ENP(1).LE.0.0001.AND.ENP(3).LE.0.0001) GOTO 40
+      SPALL=0.
+      TEX=ENP(1)
+      IF(TEX.LT.0.0001) GOTO 445
+      BLACK=TEX/0.02
+      CALL POISSO(BLACK,NBL)
+      IF(NBL.GT.ATNO2) NBL=ATNO2
+      IF(ENP(1).GT.0.0001.AND.NBL.LE.0) NBL=1
+      IF (NPRT(4)) WRITE(NEWBCD,3003) NBL,TEX
+      IF(NT+NBL.GT.MXGKPV-2) NBL=MXGKPV-2-NT
+      IF(NBL.LE.0) GOTO 445
+      EKIN=TEX/NBL
+      EKIN2=0.
+      CALL STEEP(XX)
+      DO 441 I=1,NBL
+      IF(NT.EQ.MXGKPV-2) GOTO 441
+      IF(EKIN2.GT.TEX) GOTO 443
+      CALL GRNDM(RNDM,1)
+      RAN1=RNDM(1)
+      CALL NORMAL(RAN2)
+      EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
+      IF(EKIN1.LT.0.0) EKIN1=-0.010*LOG(RAN1)
+      EKIN1=EKIN1*XX
+      EKIN2=EKIN2+EKIN1
+      IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
+      IF(EKIN1.LT.0.) EKIN1=0.0001
+      IPA1=16
+      PNRAT=1.-ZNO2/ATNO2
+      CALL GRNDM(RNDM,3)
+      IF(RNDM(1).GT.PNRAT) IPA1=14
+      NT=NT+1
+      SPALL=SPALL+1.
+      COST=-1.+RNDM(2)*2.
+      SINT=SQRT(ABS(1.-COST*COST))
+      PHI=TWPI*RNDM(3)
+      IPA(NT)=-IPA1
+      PV(5,NT)=ABS(RMASS(IPA1))
+      PV(6,NT)=RCHARG(IPA1)
+      PV(7,NT)=2.
+      PV(4,NT)=EKIN1+PV(5,NT)
+      PP=SQRT(ABS(PV(4,NT)**2-PV(5,NT)**2))
+      PV(1,NT)=PP*SINT*SIN(PHI)
+      PV(2,NT)=PP*SINT*COS(PHI)
+      PV(3,NT)=PP*COST
+  441 CONTINUE
+  443 IF(ATNO2.LT.10.) GOTO 445
+      IF(EK.GT.2.0) GOTO 445
+      II=NT+1
+      KK=0
+      EKA=EK
+      IF(EKA.GT.1.) EKA=EKA*EKA
+      IF(EKA.LT.0.1) EKA=0.1
+      IKA=3.6*EXP((ZNO2**2/ATNO2-35.56)/6.45)/EKA
+      IF(IKA.LE.0) GO TO 445
+      DO 444 I=1,NT
+      II=II-1
+      IF(IPA(II).NE.-14) GOTO 444
+      IPA(II)=-16
+      IPA1  = 16
+      PV(5,II)=ABS(RMASS(IPA1))
+      PV(6,II)=RCHARG(IPA1)
+      KK=KK+1
+      IF(KK.GT.IKA) GOTO 445
+  444 CONTINUE
+  445 TEX=ENP(3)
+      IF(TEX.LT.0.0001) GOTO 40
+      NBL=IFIX(2.*LOG(ATNO2))
+      IF(NT+NBL.GT.MXGKPV-2) NBL=MXGKPV-2-NT
+      IF(NBL.LE.0) GOTO 40
+      EKIN=TEX/NBL
+      EKIN2=0.
+      CALL STEEP(XX)
+      IF (NPRT(4)) WRITE(NEWBCD,3004) NBL,TEX
+      DO 442 I=1,NBL
+      IF(NT.EQ.MXGKPV-2) GOTO 442
+      IF(EKIN2.GT.TEX) GOTO 40
+      CALL GRNDM(RNDM,1)
+      RAN1=RNDM(1)
+      CALL NORMAL(RAN2)
+      EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
+      IF(EKIN1.LT.0.0) EKIN1=-0.010*LOG(RAN1)
+      EKIN1=EKIN1*XX
+      EKIN2=EKIN2+EKIN1
+      IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
+      IF(EKIN1.LT.0.) EKIN1=0.0001
+      CALL GRNDM(RNDM,3)
+      COST=-1.+RNDM(1)*2.
+      SINT=SQRT(ABS(1.-COST*COST))
+      PHI=TWPI*RNDM(2)
+      RAN=RNDM(3)
+      IPA(NT+1)=-30
+      IF(RAN.GT.0.60) IPA(NT+1)=-31
+      IF(RAN.GT.0.90) IPA(NT+1)=-32
+      INVE=ABS(IPA(NT+1))
+      PV(5,NT+1)=RMASS(INVE)
+      SPALL=SPALL+PV(5,NT+1)*1.066
+      IF(SPALL.GT.ATNO2) GOTO 40
+      NT=NT+1
+      PV(6,NT)=RCHARG(INVE)
+      PV(7,NT)=2.
+      PV(4,NT)=PV(5,NT)+EKIN1
+      PP=SQRT(ABS(PV(4,NT)**2-PV(5,NT)**2))
+      PV(1,NT)=PP*SINT*SIN(PHI)
+      PV(2,NT)=PP*SINT*COS(PHI)
+      PV(3,NT)=PP*COST
+  442 CONTINUE
+C**
+C** STORE ON EVENT COMMON
+C**
+   40 EKIN=PV(4,MXGKPV)-ABS(PV(5,MXGKPV))
+      EKIN1=PV(4,MXGKPV-1)-ABS(PV(5,MXGKPV-1))
+      EKIN2=0.
+      CALL TDELAY(TOF1)
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      TOF=TOF-TOF1*LOG(RAN)
+      DO 1 I=1,NT
+      EKIN2=EKIN2+PV(4,I)-ABS(PV(5,I))
+      IF(PV(7,I).LT.0.) PV(5,I)=-PV(5,I)
+      PV(7,I)=TOF
+      PV(8,I)=ABS(IPA(I))
+      PV(9,I)=0.
+    1 PV(10,I)=0.
+      IF (NPRT(4)) WRITE(NEWBCD,1003) NT,EKIN,EKIN1,EKIN2
+      INTCT=INTCT+1.
+      CALL SETCUR(NT)
+      NTK=NTK+1
+      IF(NT.EQ.1) GO TO 9999
+      DO 50 II=2,NT
+      I=II-1
+      IF(NTOT.LT.NSIZE/12) GOTO 43
+      RETURN
+   43 CALL SETTRK(I)
+   50 CONTINUE
+C
+ 1002 FORMAT(' *TWOB* ',5F10.4,10X,5F10.4/1H ,7X,5F10.4,10X,5F10.4/
+     $ ' LAB SYSTEM FINAL STATE FOUR VECTORS')
+ 1003 FORMAT(' *TWOB* COMPARISON',2X,I5,2X,3F10.4)
+ 4001 FORMAT(' *TWOB* ',10F10.4,2X,2I3)
+ 4002 FORMAT(' *TWOB* ',7F10.4)
+ 3003 FORMAT(' *TWOB* ',I3,' BLACK TRACK PARTICLES PRODUCED',
+     $ ' WITH TOTAL KINETIC ENERGY OF ',F8.3,' GEV')
+ 3004 FORMAT(' *TWOB* ',I5,' HEAVY FRAGMENTS PRODUCED',
+     $ ' WITH TOTAL ENERGY OF',F8.4,' GEV')
+C
+ 9999 CONTINUE
+C
+      RETURN
+      END
+*-- AUTHOR :
+      SUBROUTINE TWOCLU(IPPP,NFL,AVERN)
+C
+C *** GENERATION OF X- AND PT- VALUES FOR ALL PRODUCED PARTICLES ***
+C *** NVE 01-AUG-1988 CERN GENEVA ***
+C
+C ORIGIN : H.FESEFELDT (11-OCT-1987)
+C
+C A SIMPLE TWO CLUSTER MODEL IS USED
+C THIS SHOULD BE SUFFICIENT FOR LOW ENERGY INTERACTIONS
+C
+      PARAMETER (MXGKGH=100)
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+C
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+C
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON/CURPAR/WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,NEVENT,SHFLAG,
+     *              ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     *              RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     *              ATNO2,ZNO2
+C
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+C
+      COMMON/MAT   / LMAT,
+     *               DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSL(21),
+     *               CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     *               MATID(21),MATID1(21,24),PARMAT(21,10),
+     *               IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     *               ATNO1(21,10),ZNO1(21,10)
+C
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+C
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+C
+      COMMON/ERRCOM/ IER(100)
+C
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+C
+C
+      COMMON/GENIN /TECM,AMASS(18),NPG,KGENEV
+      COMMON/GENOUT/PCM(5,18),WGT
+C
+C
+      REAL NUCSUP
+      DIMENSION SIDE(MXGKCU),C1PAR(5),G1PAR(5),NUCSUP(5)
+      DIMENSION RNDM(3)
+      DATA C1PAR/0.6,0.6,0.35,0.15,0.10/
+      DATA G1PAR/2.6,2.6,1.8,1.30,1.20/
+      DATA NUCSUP/1.0,0.8,0.6,0.5,0.4/
+C     DATA CB/3.0/
+      DATA CB/0.01/
+      BPP(X)=4.000+1.600*LOG(X)
+C
+      MX =MXGKPV-20
+      MX1=MX+1
+      MX2=MX+2
+      MX3=MX+3
+      MX4=MX+4
+      MX5=MX+5
+      MX6=MX+6
+      MX7=MX+7
+      MX8=MX+8
+      EK=ENP(5)
+      EN=ENP(6)
+      P=ENP(7)
+      S=ENP(8)
+      RS=ENP(9)
+      CFA=0.025*((ATNO2-1.)/120.)*EXP(-(ATNO2-1.)/120.)
+      IF(P.LT.0.001) GOTO 60
+      NT=0
+C**
+C** CHECK MASS-INDICES FOR ALL PARTICLES
+C**
+      DO 1 I=1,100
+      IF(IPA(I).EQ.0) GOTO 1
+      NT=NT+1
+      IPA(NT)=IPA(I)
+    1 CONTINUE
+      CALL VZERO(IPA(NT+1),MXGKCU-NT)
+C**
+C** SET THE EFFECTICE 4-MOMENTUM-VECTOR FOR INTERACTION
+C**
+      PV( 1,MXGKPV-1)=P*PX
+      PV( 2,MXGKPV-1)=P*PY
+      PV( 3,MXGKPV-1)=P*PZ
+      PV( 4,MXGKPV-1)=EN
+      PV( 5,MXGKPV-1)=AMAS
+      PV( 6,MXGKPV-1)=NCH
+      PV( 7,MXGKPV-1)=TOF
+      PV( 8,MXGKPV-1)=IPART
+      PV( 9,MXGKPV-1)=0.
+      PV(10,MXGKPV-1)=USERW
+      IER(48)=IER(48)+1
+C**
+C** DISTRIBUTE PARTICLES IN FORWARD AND BACKWARD HEMISPHERE OF CMS
+C** OF THE HADRON NUCLEON INTERACTION
+C**
+      SIDE(1)= 1.
+      SIDE(2)=-1.
+      TARG=0.
+      IFOR=1
+      IBACK=1
+      DO 3 I=1,NT
+      IF (I .LE. 2) GO TO 78
+      SIDE(I)=1.
+      CALL GRNDM(RNDM,1)
+      IF (RNDM(1) .LT. 0.5) SIDE(I)=-1.
+      IF (SIDE(I) .LT. 0.) GO TO 76
+C
+C --- PARTICLE IN FORWARD HEMISPHERE ---
+ 77   CONTINUE
+      IFOR=IFOR+1
+      IF (IFOR .LE. 18) GO TO 78
+C
+C --- CHANGE IT TO BACKWARD ---
+      SIDE(I)=-1.
+      IFOR=IFOR-1
+      IBACK=IBACK+1
+      GO TO 78
+C
+C --- PARTICLE IN BACKWARD HEMISPHERE ---
+ 76   CONTINUE
+      IBACK=IBACK+1
+      IF (IBACK .LE. 18) GO TO 78
+C
+C --- CHANGE IT TO FORWARD ---
+      SIDE(I)=1.
+      IBACK=IBACK-1
+      IFOR=IFOR+1
+C**
+C** SUPPRESSION OF CHARGED PIONS FOR VARIOUS REASONS
+C**
+   78 IF(IPART.EQ.15.OR.IPART.GE.17) GOTO 3
+      IF(ABS(IPA(I)).GE.10) GOTO 3
+      IF(ABS(IPA(I)).EQ. 8) GOTO 3
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.(10.-P)/6.) GOTO 3
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.ATNO2/300.) GOTO 3
+      IPA(I)=14
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.ZNO2/ATNO2) IPA(I)=16
+      TARG=TARG+1.
+    3 CONTINUE
+      TB=2.*IBACK
+      CALL GRNDM(RNDM,1)
+      IF(RS.LT.(2.0+RNDM(1))) TB=(2.*IBACK+NT)/2.
+C**
+C** NUCLEONS + SOME PIONS FROM INTRANUCLEAR CASCADE
+C**
+      AFC=0.312+0.200*LOG(LOG(S))
+      XTARG=AFC*(ATNO2**0.33-1.0)*TB
+      IF(XTARG.LE.0.) XTARG=0.01
+      CALL POISSO(XTARG,NTARG)
+      NT2=NT+NTARG
+      IF(NT2.LE.MXGKPV-30) GOTO 2
+      NT2=MXGKPV-30
+      NTARG=NT2-NT
+    2 CONTINUE
+      IF(NPRT(4))
+     *WRITE(NEWBCD,3001) NTARG,NT
+      NT1=NT+1
+      IF(NTARG.EQ.0) GOTO 51
+      IPX=IFIX(P/3.)+1
+      IF(IPX.GT.5) IPX=5
+      DO 4 I=NT1,NT2
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      IF(RAN.LT.NUCSUP(IPX)) GOTO 52
+      CALL GRNDM(RNDM,1)
+      IPA(I)=-(7+IFIX(RNDM(1)*3.0))
+      GOTO 4
+   52 IPA(I)=-16
+      PNRAT=1.-ZNO2/ATNO2
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).GT.PNRAT) IPA(I)=-14
+      TARG=TARG+1.
+    4 SIDE(I)=-2.
+      NT=NT2
+C**
+C** CHOOSE MASSES AND CHARGES FOR ALL PARTICLES
+C**
+   51 DO 5 I=1,NT
+      IPA1=ABS(IPA(I))
+      PV(5,I)=RMASS(IPA1)
+      PV(6,I)=RCHARG(IPA1)
+      PV(7,I)=1.
+      IF(PV(5,I).LT.0.) PV(7,I)=-1.
+      PV(5,I)=ABS(PV(5,I))
+    5 CONTINUE
+C**
+C** MARK LEADING STRANGE PARTICLES
+C**
+      LEAD=0
+      IF(IPART.LT.10.OR.IPART.EQ.14.OR.IPART.EQ.16) GOTO 6
+      IPA1=ABS(IPA(1))
+      IF(IPA1.LT.10.OR.IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 531
+      LEAD=IPA1
+      GOTO 6
+  531 IPA1=ABS(IPA(2))
+      IF(IPA1.LT.10.OR.IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 6
+      LEAD=IPA1
+C**
+C** CHECK AVAILABLE KINETIC ENERGY , CHANGE HEMISPHERE FOR PARTICLES
+C** UNTIL IT FITS
+C**
+    6 IF(NT.LE.1) GOTO 60
+      TAVAI=0.
+      DO 7 I=1,NT
+      IF(SIDE(I).LT.-1.5) GOTO 7
+      TAVAI=TAVAI+ABS(PV(5,I))
+    7 CONTINUE
+CJOK MODIFIED ACCORDING TO D.HECK
+      IF(TAVAI.LT.RS-0.00001) GOTO 12
+      IF(NPRT(4))
+     $ WRITE(NEWBCD,3002) (IPA(I),I=1,20),(SIDE(I),I=1,20),TAVAI,RS
+ 3002 FORMAT(' *TWOCLU* CHECK AVAILABLE ENERGIES'/
+     $       1H ,20I5/1H ,20F5.0/1H ,'TAVAI,RS ',2F10.3)
+      DO 10 I=1,NT
+      II=NT-I+1
+      IF(SIDE(II).LT.-1.5) GOTO 10
+      IF(II.EQ.NT) GOTO 11
+      NT1=II+1
+      NT2=NT
+      DO 8 J=NT1,NT2
+      IPA(J-1)=IPA(J)
+      SIDE(J-1)=SIDE(J)
+      DO 8 K=1,10
+    8 PV(K,J-1)=PV(K,J)
+      GOTO 11
+   10 CONTINUE
+   11 SIDE(NT)=0.
+      IPA(NT)=0
+      NT=NT-1
+      GOTO 6
+   12 IF(NT.LE.1) GOTO 60
+      B=BPP(P)
+      IF(B.LT.CB) B=CB
+C**
+C** CHOOSE MASSES FOR THE 3 CLUSTER: 1. FORWARD CLUSTER
+C**   2. BACKWARD MESON CLUSTER  3. BACKWARD NUCLEON CLUSTER
+C**
+      RMC0=0.
+      RMD0=0.
+      RME0=0.
+      NTC=0
+      NTD=0
+      NTE=0
+      DO 31 I=1,NT
+      IF(SIDE(I).GT.0.) RMC0=RMC0+ABS(PV(5,I))
+      IF(SIDE(I).GT.0.) NTC =NTC +1
+      IF(SIDE(I).LT.0..AND.SIDE(I).GT.-1.5) RMD0=RMD0+ABS(PV(5,I))
+      IF(                  SIDE(I).LT.-1.5) RME0=RME0+ABS(PV(5,I))
+      IF(SIDE(I).LT.0..AND.SIDE(I).GT.-1.5) NTD =NTD +1
+      IF(                  SIDE(I).LT.-1.5) NTE =NTE +1
+   31 CONTINUE
+   32 CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      RMC=RMC0
+      IF(NTC.LE.1) GOTO 33
+      NTC1=NTC
+      IF(NTC1.GT.5) NTC1=5
+      RMC=-LOG(1.-RAN)
+      GPAR=G1PAR(NTC1)
+      CPAR=C1PAR(NTC1)
+      DUMNVE=GPAR
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      RMC=RMC0+RMC**CPAR/DUMNVE
+   33 RMD=RMD0
+      IF(NTD.LE.1) GOTO 34
+      NTD1=NTD
+      IF(NTD1.GT.5) NTD1=5
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      RMD=-LOG(1.-RAN)
+      GPAR=G1PAR(NTD1)
+      CPAR=C1PAR(NTD1)
+      DUMNVE=GPAR
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      RMD=RMD0+RMD**CPAR/DUMNVE
+   34 IF(RMC+RMD.LE.RS) GOTO 35
+      IF (RMC.LE.RMC0.AND.RMD.LE.RMD0) THEN
+         HNRMDC = 0.999*RS/(RMC+RMD)
+         RMD = RMD*HNRMDC
+         RMC = RMC*HNRMDC
+      ELSE
+         RMC=0.1*RMC0+0.9*RMC
+         RMD=0.1*RMD0+0.9*RMD
+      ENDIF
+      GOTO 34
+   35 CONTINUE
+      IF(NTE.LE.0) GOTO 38
+      RME=RME0
+      IF(NTE.EQ.1) GOTO 38
+      NTE1=NTE
+      IF(NTE1.GT.5) NTE1=5
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      RME=-LOG(1.-RAN)
+      GPAR=G1PAR(NTE1)
+      CPAR=C1PAR(NTE1)
+      DUMNVE=GPAR
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      RME=RME0+RME**CPAR/DUMNVE
+C**
+C** SET BEAM , TARGET OF FIRST INTERACTION IN CMS
+C**
+   38 PV( 1,MX1) =0.
+      PV( 2,MX1) =0.
+      PV( 3,MX1) =P
+      PV( 5,MX1) =ABS(AMAS)
+      PV( 4,MX1) =SQRT(P*P+AMAS*AMAS)
+      PV( 1,MX2) =0.
+      PV( 2,MX2) =0.
+      PV( 3,MX2) =0.
+      PV( 4,MX2) =MP
+      PV( 5,MX2) =MP
+
+C** TRANSFORM INTO CMS.
+
+      CALL ADD(MX1,MX2,MX)
+      CALL LOR(MX1,MX,MX1)
+      CALL LOR(MX2,MX,MX2)
+      PF=(S+RMD*RMD-RMC*RMC)**2 - 4*S*RMD*RMD
+      IF(PF.LT.0.0001) PF=0.0001
+      DUMNVE=2.0*RS
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      PF=SQRT(PF)/DUMNVE
+      IF(NPRT(4)) WRITE(6,2002) PF,RMC,RMD,RS
+C**
+C** SET FINAL STATE MASSES AND ENERGIES IN CMS
+C**
+      PV(5,MX3) =RMC
+      PV(5,MX4) =RMD
+      PV(4,MX3) =SQRT(PF*PF+RMC*RMC)
+      PV(4,MX4) =SQRT(PF*PF+RMD*RMD)
+C**
+C** SET |T| AND |TMIN|
+C**
+      T=-1.0E10
+      CALL GRNDM(RNDM,1)
+      IF (B .NE. 0.0) T=LOG(1.-RNDM(1))/B
+      CALL LENGTX(MX1,PIN)
+      TACMIN=(PV(4,MX1) -PV(4,MX3))**2 -(PIN-PF)**2
+C**
+C** CACULATE (SIN(TETA/2.)**2 AND COS(TETA), SET AZIMUTH ANGLE PHI
+C**
+      DUMNVE=4.0*PIN*PF
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      CTET=-(T-TACMIN)/DUMNVE
+      CTET=1.0-2.0*CTET
+      IF (CTET .GT. 1.0) CTET=1.0
+      IF (CTET .LT. -1.0) CTET=-1.0
+      DUMNVE=1.0-CTET*CTET
+      IF (DUMNVE .LT. 0.0) DUMNVE=0.0
+      STET=SQRT(DUMNVE)
+      CALL GRNDM(RNDM,1)
+      PHI=RNDM(1)*TWPI
+C**
+C** CALCULATE FINAL STATE MOMENTA IN CMS
+C**
+      PV(1,MX3) =PF*STET*SIN(PHI)
+      PV(2,MX3) =PF*STET*COS(PHI)
+      PV(3,MX3) =PF*CTET
+      PV(1,MX4) =-PV(1,MX3)
+      PV(2,MX4) =-PV(2,MX3)
+      PV(3,MX4) =-PV(3,MX3)
+C**
+C** SIMULATE BACKWARD NUCLEON CLUSTER IN LAB. SYSTEM AND TRANSFORM IN
+C** CMS.
+C**
+      IF(NTE.EQ.0) GOTO 28
+      GA=1.2
+      EKIT1=0.04
+      EKIT2=0.6
+      IF(EK.GT.5.) GOTO 666
+      EKIT1=EKIT1*EK**2/25.
+      EKIT2=EKIT2*EK**2/25.
+  666 A=(1.-GA)/(EKIT2**(1.-GA)-EKIT1**(1.-GA))
+      DO 29 I=1,NT
+      IF(SIDE(I).GT.-1.5) GOTO 29
+      CALL GRNDM(RNDM,3)
+      RAN=RNDM(1)
+      EKIT=(RAN*(1.-GA)/A+EKIT1**(1.-GA))**(1./(1.-GA))
+      PV(4,I)=EKIT+PV(5,I)
+      DUMNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP=SQRT(DUMNVE)
+      RAN=RNDM(2)
+      COST=LOG(2.23*RAN+0.383)/0.96
+      IF (COST .LT. -1.0) COST=-1.0
+      IF (COST .GT. 1.0) COST=1.0
+      DUMNVE=1.0-COST*COST
+      IF (DUMNVE .LT. 0.0) DUMNVE=0.0
+      SINT=SQRT(DUMNVE)
+      PHI=TWPI*RNDM(3)
+      PV(1,I)=PP*SINT*SIN(PHI)
+      PV(2,I)=PP*SINT*COS(PHI)
+      PV(3,I)=PP*COST
+      CALL LOR(I,MX,I)
+   29 CONTINUE
+C**
+C** FRAGMENTATION OF FORWARD CLUSTER AND BACKWARD MESON CLUSTER
+C**
+   28 PV(1,1)=PV(1,MX3)
+      PV(2,1)=PV(2,MX3)
+      PV(3,1)=PV(3,MX3)
+      PV(4,1)=PV(4,MX3)
+      PV(1,2)=PV(1,MX4)
+      PV(2,2)=PV(2,MX4)
+      PV(3,2)=PV(3,MX4)
+      PV(4,2)=PV(4,MX4)
+      DO 17 I=MX5,MX6
+      DO 16 J=1,3
+   16 PV(J,I)=-PV(J,I-2)
+      DO 17 J=4,5
+   17 PV(J,I)= PV(J,I-2)
+      KGENEV=1
+      IF(NTC.LE.1) GOTO 26
+      TECM=PV(5,MX3)
+      NPG=0
+      DO 18 I=1,NT
+      IF(SIDE(I).LT.0.) GOTO 18
+      IF(NPG.EQ.18) THEN
+         SIDE(I)=-SIDE(I)
+         GOTO 18
+      ENDIF
+      NPG=NPG+1
+      AMASS(NPG)=ABS(PV(5,I))
+   18 CONTINUE
+      IF(NPRT(4)) WRITE(NEWBCD,2004) TECM,NPG,(AMASS(I),I=1,NPG)
+      CALL PHASP
+      NPG=0
+      DO 19 I=1,NT
+      IF(SIDE(I).LT.0.) GOTO 19
+      NPG=NPG+1
+      PV(1,I)=PCM(1,NPG)
+      PV(2,I)=PCM(2,NPG)
+      PV(3,I)=PCM(3,NPG)
+      PV(4,I)=PCM(4,NPG)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      CALL LOR(I,MX5,I)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+   19 CONTINUE
+   26 IF(NTD.LE.1) GOTO 27
+      TECM=PV(5,MX4)
+      NPG=0
+      DO 20 I=1,NT
+      IF(SIDE(I).GT.0..OR.SIDE(I).LT.-1.5) GOTO 20
+      IF(NPG.EQ.18) THEN
+         SIDE(I)=-2.
+         PV(4,I)=ABS(PV(5,I))
+         DO 24 J=1,3
+            PV(J,I)=0.
+   24    CONTINUE
+         GOTO 20
+      ENDIF
+      NPG=NPG+1
+      AMASS(NPG)=ABS(PV(5,I))
+   20 CONTINUE
+      IF(NPRT(4)) WRITE(NEWBCD,2004) TECM,NPG,(AMASS(I),I=1,NPG)
+      CALL PHASP
+      NPG=0
+      DO 21 I=1,NT
+      IF(SIDE(I).GT.0..OR.SIDE(I).LT.-1.5) GOTO 21
+      NPG=NPG+1
+      PV(1,I)=PCM(1,NPG)
+      PV(2,I)=PCM(2,NPG)
+      PV(3,I)=PCM(3,NPG)
+      PV(4,I)=PCM(4,NPG)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      CALL LOR(I,MX6,I)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+   21 CONTINUE
+C**
+C** LORENTZ TRANSFORMATION IN LAB SYSTEM
+C**
+   27 TARG=0.
+      DO 36 I=1,NT
+      IF(PV(5,I).GT.0.5) TARG=TARG+1.
+      CALL LOR(I,MX2,I)
+   36 CONTINUE
+      IF(TARG.LT.0.5) TARG=1.
+C**
+C** SOMETIMES THE LEADING STRANGE PARTICLES ARE LOST , SET THEM BACK
+C**
+      IF(LEAD.EQ.0) GOTO 6085
+      DO 6081 I=1,NT
+      IF(ABS(IPA(I)).EQ.LEAD) GOTO 6085
+ 6081 CONTINUE
+      I=1
+      IF(LEAD.GE.14.AND.ABS(IPA(2)).GE.14) I=2
+      IF(LEAD.LT.14.AND.ABS(IPA(2)).LT.14) I=2
+      IPA(I)=LEAD
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      PV(5,I)=RMASS(LEAD)
+      PV(7,I)=1.
+      IF(PV(5,I).LT.0.) PV(7,I)=-1.
+      PV(5,I)=ABS(PV(5,I))
+      PV(6,I)=RCHARG(LEAD)
+      PV(4,I)=PV(5,I)+EKIN
+      CALL LENGTX(I,PP)
+      DUMNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP1=SQRT(DUMNVE)
+C
+      IF (PP .GE. 1.0E-6) GO TO 8000
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP1*COS(RTHNVE)
+      GO TO 8001
+ 8000 CONTINUE
+      PV(1,I)=PV(1,I)*PP1/PP
+      PV(2,I)=PV(2,I)*PP1/PP
+      PV(3,I)=PV(3,I)*PP1/PP
+ 8001 CONTINUE
+C
+C** FOR VARIOUS REASONS, THE ENERGY BALANCE IS NOT SUFFICIENT,
+C** CHECK THAT,  ENERGY BALANCE, ANGLE OF FINAL SYSTEM E.T.C.
+ 6085 KGENEV=1
+      PV(1,MX4) =0.
+      PV(2,MX4) =0.
+      PV(3,MX4) =P
+      PV(4,MX4) =SQRT(P*P+AMAS*AMAS)
+      PV(5,MX4) =ABS(AMAS)
+      EKIN0=PV(4,MX4) -PV(5,MX4)
+      PV(1,MX5) =0.
+      PV(2,MX5) =0.
+      PV(3,MX5) =0.
+      PV(4,MX5) =MP*TARG
+      PV(5,MX5) =PV(4,MX5)
+      EKIN=PV(4,MX4) +PV(4,MX5)
+      I=MX4
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      I=MX5
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
+      CALL ADD(MX4,MX5,MX6)
+      CALL LOR(MX4,MX6,MX4)
+      CALL LOR(MX5,MX6,MX5)
+      TECM=PV(4,MX4) +PV(4,MX5)
+      NPG=NT
+      PV(1,MX8) =0.
+      PV(2,MX8) =0.
+      PV(3,MX8) =0.
+      PV(4,MX8) =0.
+      PV(5,MX8) =0.
+      EKIN1=0.
+      DO 598 I=1,NPG
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+      CALL ADD(MX8,I,MX8)
+      EKIN1=EKIN1+PV(4,I)-PV(5,I)
+      EKIN=EKIN-PV(5,I)
+      IF(I.GT.18) GOTO 598
+      AMASS(I)=PV(5,I)
+  598 CONTINUE
+      IF(NPG.GT.18) GOTO 597
+      CALL PHASP
+      EKIN=0.
+      DO 599 I=1,NPG
+      PV(1,MX7)=PCM(1,I)
+      PV(2,MX7)=PCM(2,I)
+      PV(3,MX7)=PCM(3,I)
+      PV(4,MX7)=PCM(4,I)
+      PV(5,MX7)=AMASS(I)
+      CALL LOR(MX7,MX5,MX7)
+  599 EKIN=EKIN+PV(4,MX7)-PV(5,MX7)
+      CALL ANG(MX8,MX4,COST,TETA)
+      IF(NPRT(4)) WRITE(NEWBCD,2003) TETA,EKIN0,EKIN1,EKIN
+C**
+C** MAKE SHURE, THAT  KINETIC ENERGIES ARE CORRECT
+C** THE 3. CLUSTER IS NOT PRODUCED WITHIN PROPER KINEMATICS!!!
+C** EKIN= KINETIC ENERGY THEORETICALLY
+C** EKIN1= KINETIC ENERGY SIMULATED
+C**
+  597 IF(EKIN1.EQ.0.) GOTO 600
+      PV(1,MX7) =0.
+      PV(2,MX7) =0.
+      PV(3,MX7) =0.
+      PV(4,MX7) =0.
+      PV(5,MX7) =0.
+      WGT=EKIN/EKIN1
+      EKIN1=0.
+      DO 602 I=1,NT
+      EKIN=PV(4,I)-PV(5,I)
+      EKIN=EKIN*WGT
+      PV(4,I)=EKIN+PV(5,I)
+      DUMNVE=ABS(PV(4,I)**2-PV(5,I)**2)
+      PP=SQRT(DUMNVE)
+      CALL LENGTX(I,PP1)
+C
+      IF (PP1 .GE. 1.0E-6) GO TO 8002
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP*COS(RTHNVE)
+      GO TO 8003
+ 8002 CONTINUE
+      PV(1,I)=PV(1,I)*PP/PP1
+      PV(2,I)=PV(2,I)*PP/PP1
+      PV(3,I)=PV(3,I)*PP/PP1
+ 8003 CONTINUE
+C
+      EKIN1=EKIN1+EKIN
+      CALL ADD(MX7,I,MX7)
+  602 CONTINUE
+      CALL ANG(MX7,MX4,COST,TETA)
+      IF(NPRT(4)) WRITE(NEWBCD,2003) TETA,EKIN0,EKIN1
+C**
+C** ROTATE IN DIRECTION OF Z-AXIS, SEE COMMENTS IN 'GENXPT'
+C**
+  600 PV(1,MX7)=0.
+      PV(2,MX7)=0.
+      PV(3,MX7)=0.
+      PV(4,MX7)=0.
+      PV(5,MX7)=0.
+      DO 596 I=1,NT
+      CALL ADD(MX7,I,MX7)
+  596 CONTINUE
+*          CALL RANNOR(RAN1,RAN2)
+      CALL GRNDM(RNDM,2)
+      RY=RNDM(1)
+      RZ=RNDM(2)
+      RX=6.283185*RZ
+      A1=SQRT(-2.*LOG(RY))
+      RAN1=A1*SIN(RX)
+      RAN2=A1*COS(RX)
+      PV(1,MX7)=PV(1,MX7)+RAN1*0.020*TARG
+      PV(2,MX7)=PV(2,MX7)+RAN2*0.020*TARG
+      CALL DEFS(MX4,MX7,MX8)
+      PV(1,MX7)=0.
+      PV(2,MX7)=0.
+      PV(3,MX7)=0.
+      PV(4,MX7)=0.
+      PV(5,MX7)=0.
+      DO 595 I=1,NT
+      CALL TRAC(I,MX8,I)
+      CALL ADD(MX7,I,MX7)
+  595 CONTINUE
+      CALL ANG(MX7,MX4,COST,TETA)
+      IF(NPRT(4)) WRITE(NEWBCD,2003) TETA
+C**
+C** ROTATE IN DIRECTION OF PRIMARY PARTICLE
+C**
+      DEKIN=0.
+      NPIONS=0
+      EK1=0.
+      DO 25 I=1,NT
+      CALL DEFS1(I,MXGKPV-1,I)
+      IF(NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
+      IF(ATNO2.LT.1.5) GOTO 25
+      CALL LENGTX(I,PP)
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      CALL NORMAL(RAN)
+      EKIN=EKIN-CFA*(1.+0.5*RAN)
+      IF (EKIN .LT. 1.0E-6) EKIN=1.0E-6
+      CALL STEEQ(XXH,I)
+      DEKIN=DEKIN+EKIN*(1.-XXH)
+      EKIN=EKIN*XXH
+      IF(ABS(IPA(I)).GE.7.AND.ABS(IPA(I)).LE.9) NPIONS=NPIONS+1
+      IF(ABS(IPA(I)).GE.7.AND.ABS(IPA(I)).LE.9) EK1=EK1+EKIN
+      PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
+      PV(4,I)=EKIN+ABS(PV(5,I))
+C
+      IF (PP .GE. 1.0E-6) GO TO 8004
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP1*COS(RTHNVE)
+      GO TO 8005
+ 8004 CONTINUE
+      PV(1,I)=PV(1,I)*PP1/PP
+      PV(2,I)=PV(2,I)*PP1/PP
+      PV(3,I)=PV(3,I)*PP1/PP
+ 8005 CONTINUE
+C
+   25 CONTINUE
+      IF(EK1.EQ.0.) GOTO 23
+      IF(NPIONS.LE.0) GOTO 23
+      DEKIN=1.+DEKIN/EK1
+      DO 22 I=1,NT
+      IF(ABS(IPA(I)).LT.7.OR.ABS(IPA(I)).GT.9) GOTO 22
+      CALL LENGTX(I,PP)
+      EKIN=PV(4,I)-ABS(PV(5,I))
+      EKIN=EKIN*DEKIN
+      IF (EKIN .LT. 1.0E-6) EKIN=1.0E-6
+      PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
+      PV(4,I)=EKIN+ABS(PV(5,I))
+C
+      IF (PP .GE. 1.0E-6) GO TO 8006
+      CALL GRNDM(RNDM,2)
+      RTHNVE=PI*RNDM(1)
+      PHINVE=TWPI*RNDM(2)
+      PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
+      PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
+      PV(3,I)=PP1*COS(RTHNVE)
+      GO TO 8007
+ 8006 CONTINUE
+      PV(1,I)=PV(1,I)*PP1/PP
+      PV(2,I)=PV(2,I)*PP1/PP
+      PV(3,I)=PV(3,I)*PP1/PP
+ 8007 CONTINUE
+C
+   22 CONTINUE
+   23 IF(ATNO2.LT.1.5) GOTO 40
+C**
+C** ADD BLACK TRACK PARTICLES
+C**
+      CALL SELFAB(SPROB)
+      TEX=ENP(1)
+      SPALL=TARG
+      IF(TEX.LT.0.001) GOTO 445
+      BLACK=(1.5+1.25*TARG)*ENP(1)/(ENP(1)+ENP(3))
+      CALL POISSO(BLACK,NBL)
+      IF(NPRT(4))
+     *WRITE(NEWBCD,3003) NBL,TEX
+      IF(IFIX(TARG)+NBL.GT.ATNO2) NBL=ATNO2-TARG
+      IF(NT+NBL.GT.MXGKPV-2) NBL=MXGKPV-2-NT
+      IF(NBL.LE.0) GOTO 445
+      EKIN=TEX/NBL
+      EKIN2=0.
+      CALL STEEP(XX)
+      DO 441 I=1,NBL
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SPROB) GOTO 441
+      IF(NT.EQ.MXGKPV-2) GOTO 441
+      IF(EKIN2.GT.TEX) GOTO 443
+      CALL GRNDM(RNDM,1)
+      RAN1=RNDM(1)
+      CALL NORMAL(RAN2)
+      EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
+      IF(EKIN1.LT.0.0) EKIN1=-0.010*LOG(RAN1)
+      EKIN1=EKIN1*XX
+      EKIN2=EKIN2+EKIN1
+      IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
+      IF (EKIN1 .LT. 0.0) EKIN1=1.0E-6
+      IPA1=16
+      PNRAT=1.-ZNO2/ATNO2
+      CALL GRNDM(RNDM,3)
+      IF(RNDM(1).GT.PNRAT) IPA1=14
+      NT=NT+1
+      SPALL=SPALL+1.
+      COST=-1.0+RNDM(2)*2.0
+      DUMNVE=1.0-COST*COST
+      IF (DUMNVE .LT. 0.0) DUMNVE=0.0
+      SINT=SQRT(DUMNVE)
+      PHI=TWPI*RNDM(3)
+      IPA(NT)=-IPA1
+      SIDE(NT)=-4.
+      PV(5,NT)=ABS(RMASS(IPA1))
+      PV(6,NT)=RCHARG(IPA1)
+      PV(7,NT)=1.
+      PV(4,NT)=EKIN1+PV(5,NT)
+      DUMNVE=ABS(PV(4,NT)**2-PV(5,NT)**2)
+      PP=SQRT(DUMNVE)
+      PV(1,NT)=PP*SINT*SIN(PHI)
+      PV(2,NT)=PP*SINT*COS(PHI)
+      PV(3,NT)=PP*COST
+  441 CONTINUE
+  443 IF(ATNO2.LT.10.) GOTO 445
+      IF(EK.GT.2.0) GOTO 445
+      II=NT+1
+      KK=0
+      EKA=EK
+      IF(EKA.GT.1.) EKA=EKA*EKA
+      IF(EKA.LT.0.1) EKA=0.1
+      IKA=3.6*EXP((ZNO2**2/ATNO2-35.56)/6.45)/EKA
+      IF(IKA.LE.0) GO TO 445
+      DO 444 I=1,NT
+      II=II-1
+      IF(IPA(II).NE.-14) GOTO 444
+      IPA(II)=-16
+      IPA1  = 16
+      PV(5,II)=ABS(RMASS(IPA1))
+      PV(6,II)=RCHARG(IPA1)
+      KK=KK+1
+      IF(KK.GT.IKA) GOTO 445
+  444 CONTINUE
+  445 TEX=ENP(3)
+      IF(TEX.LT.0.001) GOTO 40
+      BLACK=(1.5+1.25*TARG)*ENP(3)/(ENP(1)+ENP(3))
+      CALL POISSO(BLACK,NBL)
+      IF(NT+NBL.GT.MXGKPV-2) NBL=MXGKPV-2-NT
+      IF(NBL.LE.0) GOTO 40
+      EKIN=TEX/NBL
+      EKIN2=0.
+      CALL STEEP(XX)
+      IF(NPRT(4))
+     *WRITE(NEWBCD,3004) NBL,TEX
+      DO 442 I=1,NBL
+      CALL GRNDM(RNDM,1)
+      IF(RNDM(1).LT.SPROB) GOTO 442
+      IF(NT.EQ.MXGKPV-2) GOTO 442
+      IF(EKIN2.GT.TEX) GOTO 40
+      CALL GRNDM(RNDM,1)
+      RAN1=RNDM(1)
+      CALL NORMAL(RAN2)
+      EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
+      IF(EKIN1.LT.0.0) EKIN1=-0.005*LOG(RAN1)
+      EKIN1=EKIN1*XX
+      EKIN2=EKIN2+EKIN1
+      IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
+      IF (EKIN1 .LT. 0.0) EKIN1=1.0E-6
+      CALL GRNDM(RNDM,3)
+      COST=-1.0+RNDM(1)*2.0
+      DUMNVE=1.0-COST*COST
+      IF (DUMNVE .LT. 0.0) DUMNVE=0.0
+      SINT=SQRT(DUMNVE)
+      PHI=TWPI*RNDM(2)
+      RAN=RNDM(3)
+      IPA(NT+1)=-30
+      IF(RAN.GT.0.60) IPA(NT+1)=-31
+      IF(RAN.GT.0.90) IPA(NT+1)=-32
+      SIDE(NT+1)=-4.
+      PV(5,NT+1)=(ABS(IPA(NT+1))-28)*MP
+      SPALL=SPALL+PV(5,NT+1)*1.066
+      IF(SPALL.GT.ATNO2) GOTO 40
+      NT=NT+1
+      PV(6,NT)=1.
+      IF(IPA(NT).EQ.-32) PV(6,NT)=2.
+      PV(7,NT)=1.
+      PV(4,NT)=PV(5,NT)+EKIN1
+      DUMNVE=ABS(PV(4,NT)**2-PV(5,NT)**2)
+      PP=SQRT(DUMNVE)
+      PV(1,NT)=PP*SINT*SIN(PHI)
+      PV(2,NT)=PP*SINT*COS(PHI)
+      PV(3,NT)=PP*COST
+  442 CONTINUE
+C**
+C** STORE ON EVENT COMMON
+C**
+   40 CALL GRNDM(RNDM,1)
+      IF(RS.GT.(4.+RNDM(1)*1.)) GOTO 42
+      DO 41 I=1,NT
+      CALL LENGTX(I,ETB)
+      IF(ETB.LT.P) GOTO 41
+      ETF=P
+      PV(4,I)=SQRT(PV(5,I)**2+ETF**2)
+      DUMNVE=ETB
+      IF (DUMNVE .EQ. 0.0) DUMNVE=1.0E-10
+      ETF=ETF/DUMNVE
+      PV(1,I)=PV(1,I)*ETF
+      PV(2,I)=PV(2,I)*ETF
+      PV(3,I)=PV(3,I)*ETF
+   41 CONTINUE
+   42 EKIN=PV(4,MXGKPV)-ABS(PV(5,MXGKPV))
+      EKIN1=PV(4,MXGKPV-1)-ABS(PV(5,MXGKPV-1))
+      EKIN2=0.
+      CALL TDELAY(TOF1)
+      CALL GRNDM(RNDM,1)
+      RAN=RNDM(1)
+      TOF=TOF-TOF1*LOG(RAN)
+      DO 44 I=1,NT
+      EKIN2=EKIN2+PV(4,I)-ABS(PV(5,I))
+      IF(PV(7,I).LT.0.) PV(5,I)=-PV(5,I)
+      PV(7,I)=TOF
+      PV(8,I)=ABS(IPA(I))
+      PV(9,I)=0.
+   44 PV(10,I)=0.
+      IF(NPRT(4)) WRITE(NEWBCD,2006) NT,EKIN,ENP(1),ENP(3),EKIN1,EKIN2
+      INTCT=INTCT+1.
+      CALL SETCUR(NT)
+      NTK=NTK+1
+      IF(NT.EQ.1) GOTO 300
+      DO 50 II=2,NT
+      I=II-1
+      IF(NTOT.LT.NSIZE/12) GOTO 43
+      GO TO 9999
+   43 CALL SETTRK(I)
+   50 CONTINUE
+ 300  CONTINUE
+      GO TO 9999
+C**
+C** IT IS NOT POSSIBLE TO PRODUCE A PROPER TWO CLUSTER FINAL STATE.
+C** CONTINUE WITH QUASI ELASTIC SCATTERING
+C**
+   60 IF(NPRT(4)) WRITE(NEWBCD,2005)
+      DO 61 I=3,MXGKCU
+   61 IPA(I)=0
+      IPA(1)=IPART
+      IPA(2)=14
+      IF(NFL.EQ.2) IPA(2)=16
+      CALL TWOB(IPPP,NFL,AVERN)
+      GO TO 9999
+C
+ 2000 FORMAT(' *TWOCLU* CMS PARAMETERS OF FINAL STATE PARTICLES',
+     $ ' AFTER ',I3,' TRIALS')
+ 2001 FORMAT(' *TWOCLU* TRACK',2X,I3,2X,10F8.2,2X,I3,2X,F3.0)
+ 2002 FORMAT(' *TWOCLU* MOMENTUM ',F8.3,' MASSES ',2F8.4,' RS ',F8.4)
+ 2003 FORMAT(' *TWOCLU* TETA,EKIN0,EKIN1,EKIN ',4F10.4)
+ 2004 FORMAT(' *TWOCLU* TECM,NPB,MASSES: ',F10.4,1X,I3,1X,8F10.4/
+     $ 1H ,26X,15X,8F10.4)
+ 2005 FORMAT(' *TWOCLU* NUMBER OF FINAL STATE PARTICLES',
+     $ ' LESS THAN 2 ==> CONTINUE WITH 2-BODY SCATTERING')
+ 2006 FORMAT(' *TWOCLU*  COMP.',1X,I5,1X,5F7.2)
+ 3001 FORMAT(' *TWOCLU* NUCLEAR EXCITATION ',I5,' PARTICLES PRODUCED',
+     $ ' IN ADDITION TO',I5,' NORMAL PARTICLES')
+ 3003 FORMAT(' *TWOCLU* ',I3,' BLACK TRACK PARTICLES PRODUCED',
+     $ ' WITH TOTAL KINETIC ENERGY OF ',F8.3,' GEV')
+ 3004 FORMAT(' *TWOCLU* ',I5,' HEAVY FRAGMENTS WITH TOTAL ENERGY OF ',
+     $ F8.4,' GEV')
+C
+ 9999 CONTINUE
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/Makefile
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/Makefile	(revision 4308)
@@ -0,0 +1,154 @@
+#============================================================
+# Makefile to compile modified 5.20 version of CORSIKA.
+#
+# Copyright (c) J C Gonzalez, 1998
+#============================================================
+
+DESTDIR = .
+
+F77 = f77
+CC = cc
+CERNDIR = CERN
+ADDFLAGS =
+
+EXE_VERSION = c520
+
+###
+#   compiler & linker options section
+###
+
+# machine dependencies
+SYSTEM = GENERIC
+
+## generic (alpha)
+GENERIC_CFLAGS   = -I. -I/usr/include -DJC_UNDERSCORES ${ADDFLAGS}
+GENERIC_FFLAGS   = ${GENERIC_CFLAGS}
+GENERIC_EXE      = ${EXE_VERSION}-generic
+GENERIC_LIBS     = -lm -lc
+GENERIC_CC       = cc
+GENERIC_F77      = f77
+
+## osf (alpha)
+OSF_CFLAGS   = -I. -I/usr/include -DJC_UNDERSCORES ${ADDFLAGS}
+OSF_FFLAGS   = ${OSF_CFLAGS}
+OSF_EXE      = ${EXE_VERSION}-osf
+OSF_LIBS     = -lm -lc
+OSF_CC       = cc
+OSF_F77      = f77
+
+## linux
+LINUX_CFLAGS = -I. -I/usr/include -funderscoring -DJC_UNDERSCORES \
+		-m486 -DCPU=686 ${ADDFLAGS}
+LINUX_FFLAGS = ${LINUX_CFLAGS}
+LINUX_EXE    = ${EXE_VERSION}-linux
+LINUX_LIBS   = -lm -lc
+LINUX_CC     = gcc
+LINUX_F77    = g77
+
+## aix (ibm rs6000)
+AIX_CFLAGS   = -I. -I/usr/include -DJC_NO_UNDERSCORES ${ADDFLAGS}
+AIX_FFLAGS   = ${AIX_CFLAGS}
+AIX_EXE      = ${EXE_VERSION}-aix
+AIX_LIBS     = -lm -lc -lbsd
+AIX_CC       = cc
+AIX_F77      = xlf
+
+# choose this machine values
+F77    = ${${SYSTEM}_F77}
+CC     = ${${SYSTEM}_CC}
+CFLAGS = ${${SYSTEM}_CFLAGS}
+FFLAGS = ${${SYSTEM}_FFLAGS}
+LIBS   = ${${SYSTEM}_LIBS}
+
+###
+#   miscelanea
+###
+
+CERNDIR = CERN
+
+###
+#   files section
+###
+
+HEADERS =
+
+FSRCS = \
+	GHEISHA.f VENUS.f addang.f addani.f age.f amoeba.f  \
+	amotry.f annih.f ausgab.f ausgb2.f avage.f avept.f  \
+	bhabha.f block1.f box2.f box3.f box60.f box61.f  \
+	box62.f box63.f box65.f box66.f box67.f box68.f  \
+	box69.f box70.f box71.f box72.f box73.f box74.f  \
+	brems.f cerenkov.f cghei.f cghini.f cghsig.f  \
+	chisq.f compt.f coorin.f datac.f decay1.f decay6.f  \
+	difrac.f dpfunc.f egs4.f egs4bd.f egsini.f electr.f  \
+	em.f etadec.f flpsor.f fstack.f gam.f garndm.f  \
+	gbrsgm.f gprsgm.f granor.f grndm.f hatch.f hdpm.f  \
+	heigh.f hmeson.f howfar.f ininkg.f inprm.f isobar.f  \
+	istack.f jadach.f kdecay.f leaddf.f ledeny.f  \
+	lepacx.f longft.f lowup.f lpm.f main.f mitage.f  \
+	mmol4.f mmolie.f moller.f mpoiss.f mpprop.f mscat.f  \
+	mubrem.f mucoul.f mudecy.f mupair.f muprpr.f  \
+	mutrac.f nihila.f nkg.f nsd.f nucint.f outend.f  \
+	output.f pair.f pamaf.f parnum.f parrap.f pcl.f  \
+	photo.f photon.f pi0dec.f pigen.f pigen1.f pigen2.f  \
+	pparam.f prange.f prtime.f ptram.f ptran.f ptrans.f  \
+	rangen.f rannor.f resdec.f rhof.f rmmaq.f rmmar.f  \
+	rnegbi.f sdpm.f selcor.f shower.f single.f sobseq.f  \
+	staend.f stankg.f start.f strdec.f tarint.f thick.f  \
+	tobuf.f tstack.f tstend.f tstini.f tstout.f ucopy.f  \
+	update.f uphi.f utqsea.f utqval.f vapor.f vendat.f  \
+	venini.f venlnk.f vhmeso.f vstore.f vzero.f
+
+CSRCS = \
+	jcio.c jcdate.c
+
+ALLOBJS = ${FSRCS:.f=.o} ${CSRCS:.c=.o}
+
+PROGRAM = ${${SYSTEM}_EXE}
+
+help:
+	@echo ''
+	@echo 'Usage::'
+	@echo ''
+	@echo '  make help              shows this help            or' 
+	@echo '  make clean             cleans-up garbage          or'
+	@echo '  make all [ SYSTEM = { OSF | LINUX | AIX | GENERIC} ]'
+	@echo '                         compiles with pre-defined flags for'
+	@echo '                         OSF, Linux or AIX flavour of Unix'
+	@echo ''
+	@echo 'Additionally, you can add to your command line ADDFLAGS=<flags>"
+	@echo 'to include any new flag you want.'
+	@echo ''
+	@echo 'In case of problems, please contact to <gonzalez@mppmu.mpg.de>'
+	@echo ''
+
+all: message ${PROGRAM} 
+
+message:
+	@echo "============================================================"
+	@echo " Compilation of CORSIKA ("${EXE_VERSION}")"
+	@echo " Target machine => `uname -a`"
+	@echo " System choosed => "${SYSTEM}
+	@echo " Date: `date`"
+	@echo "============================================================"
+	@echo ''
+
+${PROGRAM}: ${ALLOBJS}
+	@echo -n "   . . . and linking -> "${PROGRAM}" . . . "
+	$(F77) ${FFLAGS} -o ${PROGRAM} ${ALLOBJS} ${LIBS} ${XLIB}
+	@echo "done."
+
+.f.o:
+	@echo "Compiling "$<" . . ."
+	$(F77) -c $(FFLAGS) $< -o $@
+
+.c.o:
+	@echo "Compiling "$<" . . ."
+	$(CC) -c $(CFLAGS) $< -o $@
+
+script:
+	@sh ./c-script.sh
+
+clean: 
+	@echo "Cleaning . . ."
+	@rm *.o *~ core *.BAK > /dev/null 2>&1 || echo "...already clean."
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/NUCNUCCS
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/NUCNUCCS	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/NUCNUCCS	(revision 4308)
@@ -0,0 +1,2873 @@
+ .2364000000E+03 .4192455465E+03 .4869287370E+03 .5033423627E+03 .0000000000E+00
+ .7340329246E+03 .7372974817E+03 .0000000000E+00 .8270120942E+03 .8362345422E+03
+ .8517021299E+03 .8859238526E+03 .8970539414E+03 .9429513425E+03 .9809473505E+03
+ .1035655313E+04 .1028833214E+04 .1064293860E+04 .1134839684E+04 .1158022931E+04
+ .1123861966E+04 .1150858032E+04 .1178502930E+04 .1206812065E+04 .1221328328E+04
+ .1212237443E+04 .1221910612E+04 .1271085324E+04 .1271661610E+04 .1308604233E+04
+ .1341535033E+04 .1367527954E+04 .1394024048E+04 .1421033569E+04 .1448566980E+04
+ .1401984750E+04 .1463388968E+04 .1483764648E+04 .1504424402E+04 .1498792169E+04
+ .1511763184E+04 .1524847778E+04 .1538044678E+04 .1551355713E+04 .1564781860E+04
+ .1578325317E+04 .1591985962E+04 .1605764042E+04 .1639553955E+04 .1674055420E+04
+ .1610349161E+04 .1669523211E+04 .1698150284E+04 .1733824641E+04 .1690624557E+04
+ .1750644689E+04 .2988000000E+03 .5151232717E+03 .5816478896E+03 .5915378260E+03
+ .0000000000E+00 .8537041607E+03 .8515776262E+03 .0000000000E+00 .9475330648E+03
+ .9548342237E+03 .9697707891E+03 .1006302071E+04 .1016764987E+04 .1066593752E+04
+ .1107425824E+04 .1166785778E+04 .1157591538E+04 .1195443423E+04 .1271671837E+04
+ .1297543314E+04 .1257348445E+04 .1285877930E+04 .1315056030E+04 .1344896220E+04
+ .1361194278E+04 .1348583995E+04 .1360535416E+04 .1411374495E+04 .1410733474E+04
+ .1451247403E+04 .1486545507E+04 .1514613037E+04 .1543208008E+04 .1572344849E+04
+ .1602031407E+04 .1547334726E+04 .1615979591E+04 .1636914795E+04 .1658121889E+04
+ .1651913041E+04 .1665506226E+04 .1679210937E+04 .1693029541E+04 .1706960693E+04
+ .1721006348E+04 .1735168945E+04 .1749446899E+04 .1763843999E+04 .1800036377E+04
+ .1836971786E+04 .1764793072E+04 .1829835412E+04 .1861060657E+04 .1900326700E+04
+ .1852989091E+04 .1916282473E+04 .3498000000E+03 .5902901864E+03 .6564631910E+03
+ .6622844790E+03 .0000000000E+00 .9466567719E+03 .9411527612E+03 .0000000000E+00
+ .1041597871E+04 .1047773834E+04 .1062481566E+04 .1100618132E+04 .1110740598E+04
+ .1163140249E+04 .1205769033E+04 .1267879825E+04 .1257342194E+04 .1296545497E+04
+ .1375631674E+04 .1406938982E+04 .1362635150E+04 .1392301025E+04 .1422613525E+04
+ .1453585407E+04 .1471273446E+04 .1456237897E+04 .1469912083E+04 .1521904393E+04
+ .1520476433E+04 .1563597672E+04 .1600578924E+04 .1630183105E+04 .1660335327E+04
+ .1691044189E+04 .1722321828E+04 .1661944757E+04 .1735731109E+04 .1757088013E+04
+ .1778706844E+04 .1772195265E+04 .1786275757E+04 .1800468262E+04 .1814773682E+04
+ .1829192627E+04 .1843726196E+04 .1858375244E+04 .1873140625E+04 .1888023690E+04
+ .1925959595E+04 .1964658810E+04 .1886519843E+04 .1955752712E+04 .1988855784E+04
+ .2030704840E+04 .1980467561E+04 .2046118139E+04 .2716000000E+03 .4700201601E+03
+ .5462645754E+03 .5685367473E+03 .0000000000E+00 .8098696423E+03 .8159294428E+03
+ .0000000000E+00 .9111460402E+03 .9224263586E+03 .9398161389E+03 .9758561309E+03
+ .9885875496E+03 .1035961536E+04 .1075229385E+04 .1130877826E+04 .1125339419E+04
+ .1161608864E+04 .1232165962E+04 .1264631243E+04 .1230968046E+04 .1259349365E+04
+ .1288386230E+04 .1318091577E+04 .1333405051E+04 .1325343879E+04 .1335301915E+04
+ .1386657727E+04 .1388070373E+04 .1426185237E+04 .1460244545E+04 .1487285156E+04
+ .1514825317E+04 .1542876465E+04 .1571447499E+04 .1525453057E+04 .1587745343E+04
+ .1609147217E+04 .1630837274E+04 .1625571969E+04 .1639243896E+04 .1653029785E+04
+ .1666932617E+04 .1680953369E+04 .1695089966E+04 .1709346558E+04 .1723723022E+04
+ .1738220454E+04 .1773049316E+04 .1808576343E+04 .1744922232E+04 .1805087228E+04
+ .1834410006E+04 .1870804444E+04 .1827099646E+04 .1889047855E+04 .3426000000E+03
+ .5749447318E+03 .6499914687E+03 .6657299443E+03 .0000000000E+00 .9380060686E+03
+ .9388017284E+03 .0000000000E+00 .1039842068E+04 .1049240755E+04 .1066068889E+04
+ .1104195355E+04 .1116243225E+04 .1167126690E+04 .1208825804E+04 .1268365777E+04
+ .1260683455E+04 .1298821196E+04 .1373688038E+04 .1413765211E+04 .1374098629E+04
+ .1404057373E+04 .1434668457E+04 .1465947538E+04 .1482971817E+04 .1471484020E+04
+ .1483567732E+04 .1536798966E+04 .1537023937E+04 .1578682701E+04 .1615132240E+04
+ .1644245850E+04 .1673884644E+04 .1704057617E+04 .1734775083E+04 .1680841769E+04
+ .1750257075E+04 .1772274780E+04 .1794570080E+04 .1788680473E+04 .1802980225E+04
+ .1817394287E+04 .1831925049E+04 .1846570557E+04 .1861333252E+04 .1876215088E+04
+ .1891213501E+04 .1906334966E+04 .1943578369E+04 .1981550311E+04 .1909583526E+04
+ .1975539069E+04 .2007422338E+04 .2047345196E+04 .1999490853E+04 .2064818897E+04
+ .3997000000E+03 .6565616744E+03 .7312411780E+03 .7429428142E+03 .0000000000E+00
+ .1036679985E+04 .1034252783E+04 .0000000000E+00 .1139270151E+04 .1147587019E+04
+ .1164145632E+04 .1203605489E+04 .1215288496E+04 .1268240345E+04 .1311262853E+04
+ .1372691947E+04 .1363908231E+04 .1402806888E+04 .1479046363E+04 .1530123851E+04
+ .1486363864E+04 .1517487183E+04 .1549262939E+04 .1581704494E+04 .1600069425E+04
+ .1586216775E+04 .1599923164E+04 .1654448749E+04 .1653906020E+04 .1698150713E+04
+ .1736302173E+04 .1766951172E+04 .1798140625E+04 .1829880859E+04 .1862180971E+04
+ .1802687790E+04 .1877165447E+04 .1899643311E+04 .1922390041E+04 .1916161496E+04
+ .1930951538E+04 .1945856201E+04 .1960875977E+04 .1976011719E+04 .1991264038E+04
+ .2006634277E+04 .2022123047E+04 .2037732028E+04 .2076722900E+04 .2116459947E+04
+ .2038656068E+04 .2108739605E+04 .2142469317E+04 .2184922414E+04 .2134173787E+04
+ .2201918377E+04 .5065000000E+03 .7857980391E+03 .8664114439E+03 .8721725227E+03
+ .0000000000E+00 .1203015806E+04 .1195258303E+04 .0000000000E+00 .1310815639E+04
+ .1316649206E+04 .1332643992E+04 .1376591018E+04 .1387278975E+04 .1448688337E+04
+ .1498841402E+04 .1573568526E+04 .1559092518E+04 .1606230522E+04 .1705227875E+04
+ .1732777215E+04 .1689660865E+04 .1722626099E+04 .1756234497E+04 .1790499760E+04
+ .1807561710E+04 .1788432878E+04 .1803917060E+04 .1861415012E+04 .1857422331E+04
+ .1905625505E+04 .1946635017E+04 .1979545532E+04 .2013014160E+04 .2047047119E+04
+ .2081657447E+04 .2013157446E+04 .2094626954E+04 .2118005371E+04 .2141646658E+04
+ .2133820878E+04 .2149218262E+04 .2164727051E+04 .2180349121E+04 .2196082520E+04
+ .2211927979E+04 .2227889404E+04 .2243967285E+04 .2260159621E+04 .2302171143E+04
+ .2344964467E+04 .2256113614E+04 .2333932030E+04 .2370755866E+04 .2417515836E+04
+ .2361223486E+04 .2433566823E+04 .5986000000E+03 .9119966706E+03 .9871783096E+03
+ .9831529581E+03 .0000000000E+00 .1349952643E+04 .1335045244E+04 .0000000000E+00
+ .1457295592E+04 .1460468510E+04 .1475554825E+04 .1522104023E+04 .1531784025E+04
+ .1597934688E+04 .1651618981E+04 .1732576201E+04 .1714777664E+04 .1765250898E+04
+ .1873078719E+04 .1896297180E+04 .1871661754E+04 .1905733398E+04 .1940425415E+04
+ .1975750074E+04 .1991821492E+04 .1967831436E+04 .1986249350E+04 .2044060845E+04
+ .2035727794E+04 .2087444640E+04 .2129442323E+04 .2164314941E+04 .2199757080E+04
+ .2235779297E+04 .2272393564E+04 .2197254377E+04 .2279729181E+04 .2302878906E+04
+ .2326263732E+04 .2318134243E+04 .2333981934E+04 .2349939941E+04 .2366005371E+04
+ .2382182373E+04 .2398468262E+04 .2414867187E+04 .2431376465E+04 .2448000457E+04
+ .2490516846E+04 .2533773595E+04 .2434431683E+04 .2519537019E+04 .2558544570E+04
+ .2609119894E+04 .2548090572E+04 .2623814694E+04 .6698000000E+03 .1008844387E+04
+ .1081626462E+04 .1071726419E+04 .0000000000E+00 .1464110178E+04 .1444648382E+04
+ .0000000000E+00 .1572008303E+04 .1573555377E+04 .1588192603E+04 .1636690403E+04
+ .1645815196E+04 .1715376736E+04 .1771639251E+04 .1857065733E+04 .1837057961E+04
+ .1889977425E+04 .2004113377E+04 .2024710745E+04 .2019860538E+04 .2054869873E+04
+ .2090486572E+04 .2126721111E+04 .2143905203E+04 .2116192549E+04 .2137538986E+04
+ .2195481145E+04 .2185326995E+04 .2239870180E+04 .2282800963E+04 .2319211426E+04
+ .2356200684E+04 .2393781494E+04 .2431959896E+04 .2351527778E+04 .2435918685E+04
+ .2459008057E+04 .2482316450E+04 .2474194852E+04 .2490401611E+04 .2506714844E+04
+ .2523134766E+04 .2539662354E+04 .2556298340E+04 .2573042969E+04 .2589899170E+04
+ .2606861783E+04 .2649013916E+04 .2691846198E+04 .2584857913E+04 .2675864704E+04
+ .2715618830E+04 .2768477779E+04 .2703602090E+04 .2782486391E+04
+ .6505744621E+00 .4916157708E+00 .7999651792E+00 .4013802989E+00 .6433631874E+00
+ .8470697844E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .3776118115E+00 .5878626461E+00 .7457607779E+00 .8739412365E+00 .9637804410E+00
+ .3458821034E+00 .5349612453E+00 .6750290658E+00 .7932319916E+00 .8950571984E+00
+ .9691065292E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .0000000000E+00 .0000000000E+00 .0000000000E+00 .3194229914E+00 .4904556202E+00
+ .6132635165E+00 .7137729773E+00 .8022406194E+00 .8813573260E+00 .9461227083E+00
+ .9865259212E+00 .3052164481E+00 .4673741148E+00 .5826706543E+00 .6758939354E+00
+ .7572897988E+00 .8316643353E+00 .8993104230E+00 .9546657723E+00 .9887981872E+00
+ .2945087630E+00 .4500729517E+00 .5598421946E+00 .6477153899E+00 .7235544351E+00
+ .7924703191E+00 .8568284411E+00 .9155359339E+00 .9628070408E+00 .9910734884E+00
+ .2878109856E+00 .4392941175E+00 .5455393822E+00 .6299285301E+00 .7020338489E+00
+ .7668423383E+00 .8271485331E+00 .8836972273E+00 .9341091923E+00 .9725988645E+00
+ .9938830827E+00 .2796461156E+00 .4262525519E+00 .5285807762E+00 .6093612846E+00
+ .6778462418E+00 .7388374702E+00 .7952148393E+00 .8486103296E+00 .8989929955E+00
+ .9435989046E+00 .9770126865E+00 .9949919134E+00 .2760136152E+00 .4205887192E+00
+ .5210919721E+00 .6000353339E+00 .6665420307E+00 .7253016892E+00 .7791113632E+00
+ .8296990721E+00 .8777000433E+00 .9219941492E+00 .9591430941E+00 .9846802714E+00
+ .9969815285E+00 .2720102844E+00 .4144402784E+00 .5131194091E+00 .5903117447E+00
+ .6550138973E+00 .7118197159E+00 .7634514548E+00 .8116533926E+00 .8573899419E+00
+ .9005214933E+00 .9392043308E+00 .9699413048E+00 .9895107663E+00 .9980993322E+00
+ .2695821775E+00 .4111341035E+00 .5089264566E+00 .5851606578E+00 .6487920895E+00
+ .7043705562E+00 .7545692842E+00 .8011005238E+00 .8450017573E+00 .8865051438E+00
+ .9246215158E+00 .9569321523E+00 .9804651193E+00 .9938534001E+00 .9990099457E+00
+ .2630441770E+00 .4006008826E+00 .4954008629E+00 .5690897917E+00 .6303843701E+00
+ .6836988096E+00 .7316172056E+00 .7758171648E+00 .8174472088E+00 .8572018501E+00
+ .8951151974E+00 .9301425880E+00 .9599604819E+00 .9817633139E+00 .9942288653E+00
+ .9990631674E+00 .2599104139E+00 .3960607374E+00 .4896938882E+00 .5622928452E+00
+ .6225016228E+00 .6746860826E+00 .7213888869E+00 .7642498904E+00 .8044001816E+00
+ .8425993872E+00 .8791608814E+00 .9136706082E+00 .9446758740E+00 .9698441664E+00
+ .9870838273E+00 .9961933071E+00 .9994288701E+00 .2586415060E+00 .3953753350E+00
+ .4892497388E+00 .5618746590E+00 .6219499385E+00 .6738609044E+00 .7201509062E+00
+ .7624472175E+00 .8018583685E+00 .8391235406E+00 .8745793556E+00 .9079667208E+00
+ .9382082404E+00 .9634923291E+00 .9820107839E+00 .9931601953E+00 .9982380612E+00
+ .9997717891E+00 .2502535115E+00 .3810073497E+00 .4719552753E+00 .5431373917E+00
+ .6026386708E+00 .6545537899E+00 .7012698986E+00 .7443218845E+00 .7847566077E+00
+ .8232640626E+00 .8601398175E+00 .8951106488E+00 .9271467461E+00 .9545369861E+00
+ .9754962768E+00 .9891749810E+00 .9963646215E+00 .9991826628E+00 .9999084336E+00
+ .2421278549E+00 .3685097464E+00 .4563833446E+00 .5251116592E+00 .5825000338E+00
+ .6324970842E+00 .6774005938E+00 .7186876606E+00 .7573823422E+00 .7942261104E+00
+ .8297272659E+00 .8640936388E+00 .8970496113E+00 .9276271114E+00 .9541754732E+00
+ .9748706279E+00 .9886733636E+00 .9961087232E+00 .9991028918E+00 .9998967304E+00
+ .2389925330E+00 .3626560178E+00 .4495273511E+00 .5175753158E+00 .5743730353E+00
+ .6237959987E+00 .6681065278E+00 .7087572963E+00 .7467517608E+00 .7828168461E+00
+ .8174693676E+00 .8509744293E+00 .8832373583E+00 .9136466765E+00 .9410018370E+00
+ .9637762352E+00 .9807141821E+00 .9915167618E+00 .9971307946E+00 .9993413678E+00
+ .9999235544E+00 .2358572111E+00 .3581753090E+00 .4440950439E+00 .5113714584E+00
+ .5674841085E+00 .6162590120E+00 .6599269020E+00 .6999165923E+00 .7372118058E+00
+ .7725258812E+00 .8063801798E+00 .8391093298E+00 .8707489052E+00 .9009718673E+00
+ .9288857842E+00 .9531630495E+00 .9724540028E+00 .9860094941E+00 .9941328885E+00
+ .9981012099E+00 .9995796613E+00 .9999524376E+00 .2327218892E+00 .3548885373E+00
+ .4399007223E+00 .5063262983E+00 .5616717641E+00 .6097343045E+00 .6527163551E+00
+ .6920234002E+00 .7286202206E+00 .7632073206E+00 .7963072910E+00 .8282870411E+00
+ .8593136825E+00 .8892427563E+00 .9174810019E+00 .9429440612E+00 .9642690284E+00
+ .9803291970E+00 .9908280292E+00 .9965513763E+00 .9990267018E+00 .9998177974E+00
+ .9999831114E+00 .2330224700E+00 .3542500804E+00 .4381708841E+00 .5034709281E+00
+ .5576729271E+00 .6045695590E+00 .6463527636E+00 .6844149818E+00 .7197066082E+00
+ .7529147250E+00 .7845571679E+00 .8150249600E+00 .8445776197E+00 .8732835821E+00
+ .9009092571E+00 .9268067259E+00 .9499151551E+00 .9690028772E+00 .9831509428E+00
+ .9922454869E+00 .9971213625E+00 .9991972784E+00 .9998513537E+00 .9999863509E+00
+ .2259484982E+00 .3442119778E+00 .4263445501E+00 .4903908128E+00 .5436355729E+00
+ .5897581229E+00 .6308872991E+00 .6683762861E+00 .7031488794E+00 .7358734739E+00
+ .7670570525E+00 .7970942299E+00 .8262800466E+00 .8547801641E+00 .8825498303E+00
+ .9092158896E+00 .9339899999E+00 .9557340634E+00 .9732726279E+00 .9858866730E+00
+ .9937142760E+00 .9977494958E+00 .9993964506E+00 .9998927699E+00 .9999905722E+00
+ .2287020159E+00 .3467863590E+00 .4281333057E+00 .4911599022E+00 .5432574528E+00
+ .5881420455E+00 .6279540989E+00 .6640468784E+00 .6973378027E+00 .7284847457E+00
+ .7579824691E+00 .7862178768E+00 .8134989466E+00 .8400585146E+00 .8660247565E+00
+ .8913491239E+00 .9157014848E+00 .9383880134E+00 .9583957654E+00 .9746533364E+00
+ .9864654026E+00 .9938905628E+00 .9977781219E+00 .9993934417E+00 .9998900826E+00
+ .9999901245E+00 .2222539261E+00 .3388217882E+00 .4197767511E+00 .4828606620E+00
+ .5352450713E+00 .5805527720E+00 .6208781498E+00 .6575495780E+00 .6914702818E+00
+ .7232897214E+00 .7534970827E+00 .7824735199E+00 .8105163326E+00 .8378350973E+00
+ .8645129750E+00 .8904312055E+00 .9151791726E+00 .9380127638E+00 .9579483582E+00
+ .9740379286E+00 .9857471894E+00 .9932318413E+00 .9973140122E+00 .9991493382E+00
+ .9997993275E+00 .9999687676E+00 .9999976014E+00 .2188088385E+00 .3336382129E+00
+ .4133865931E+00 .4755136743E+00 .5270798046E+00 .5716519043E+00 .6112914648E+00
+ .6473049758E+00 .6805795117E+00 .7117515390E+00 .7412994642E+00 .7695969407E+00
+ .7969420204E+00 .8235653936E+00 .8496130627E+00 .8750965208E+00 .8998136008E+00
+ .9232710744E+00 .9446757755E+00 .9630690866E+00 .9776192348E+00 .9879647500E+00
+ .9944111809E+00 .9978337324E+00 .9993304874E+00 .9998459489E+00 .9999766194E+00
+ .9999982491E+00 .2192208589E+00 .3337689209E+00 .4131503169E+00 .4748919425E+00
+ .5260660060E+00 .5702400533E+00 .6094730963E+00 .6450679778E+00 .6779074968E+00
+ .7086233195E+00 .7376885384E+00 .7654712949E+00 .7922652430E+00 .8183015628E+00
+ .8437398869E+00 .8686320883E+00 .8928582195E+00 .9160534394E+00 .9375747152E+00
+ .9565732967E+00 .9722084804E+00 .9839496197E+00 .9918183304E+00 .9964148214E+00
+ .9986935783E+00 .9996215461E+00 .9999185691E+00 .9999884634E+00 .9999991946E+00
+ .2179886631E+00 .3321001016E+00 .4111846978E+00 .4726733325E+00 .5236076540E+00
+ .5675412631E+00 .6065250027E+00 .6418557822E+00 .6744112759E+00 .7048181674E+00
+ .7335443467E+00 .7609525425E+00 .7873316053E+00 .8129111915E+00 .8378588902E+00
+ .8622549239E+00 .8860417419E+00 .9089589207E+00 .9304975687E+00 .9499287615E+00
+ .9664500172E+00 .9794341796E+00 .9886802028E+00 .9945243467E+00 .9977312352E+00
+ .9992205254E+00 .9997875748E+00 .9999570731E+00 .9999942953E+00 .9999996267E+00
+ .2172533451E+00 .3298693802E+00 .4084235894E+00 .4695398337E+00 .5201451645E+00
+ .5637633473E+00 .6024336779E+00 .6374467625E+00 .6696756446E+00 .6997428637E+00
+ .7281122770E+00 .7551282775E+00 .7810903540E+00 .8062324076E+00 .8307235150E+00
+ .8546587275E+00 .8780213950E+00 .9006308737E+00 .9220996625E+00 .9418372337E+00
+ .9591384217E+00 .9733357626E+00 .9840480992E+00 .9914082806E+00 .9959161928E+00
+ .9983283694E+00 .9994291163E+00 .9998443407E+00 .9999683230E+00 .9999957344E+00
+ .9999997156E+00 .2165180270E+00 .3282725846E+00 .4063241799E+00 .4670289348E+00
+ .5172627471E+00 .5605300912E+00 .5988598993E+00 .6335358511E+00 .6654256025E+00
+ .6951470219E+00 .7231595172E+00 .7498174296E+00 .7754021815E+00 .8001403310E+00
+ .8242092030E+00 .8477281627E+00 .8707323675E+00 .8930728737E+00 .9144743816E+00
+ .9344298074E+00 .9522923593E+00 .9674197918E+00 .9793662946E+00 .9880408879E+00
+ .9937515155E+00 .9971092892E+00 .9988424058E+00 .9996107021E+00 .9998947039E+00
+ .9999785852E+00 .9999970980E+00 .9999998041E+00 .2157827089E+00 .3272520848E+00
+ .4048263237E+00 .4650840518E+00 .5149076790E+00 .5577919904E+00 .5957566265E+00
+ .6300777846E+00 .6616170191E+00 .6909870067E+00 .7186425065E+00 .7449336063E+00
+ .7701146893E+00 .7944441071E+00 .8180970677E+00 .8411975530E+00 .8637963718E+00
+ .8858339822E+00 .9070966097E+00 .9271895361E+00 .9455578564E+00 .9615792708E+00
+ .9747199219E+00 .9846193511E+00 .9914689855E+00 .9957448914E+00 .9981217080E+00
+ .9992808983E+00 .9997677365E+00 .9999392466E+00 .9999879497E+00 .9999983931E+00
+ .9999998924E+00 .2150473908E+00 .3267570380E+00 .4038769497E+00 .4636552445E+00
+ .5130334397E+00 .5555053633E+00 .5930823516E+00 .6270326093E+00 .6582109563E+00
+ .6872243956E+00 .7145228084E+00 .7404519945E+00 .7652861134E+00 .7892473687E+00
+ .8125156955E+00 .8352277603E+00 .8574623447E+00 .8792098110E+00 .9003293840E+00
+ .9205101458E+00 .9392648980E+00 .9559883360E+00 .9700900132E+00 .9811698392E+00
+ .9891635226E+00 .9943822323E+00 .9974192802E+00 .9989693917E+00 .9996505130E+00
+ .9999023864E+00 .9999784824E+00 .9999964956E+00 .9999996256E+00 .9999999803E+00
+ .2059353022E+00 .3140837798E+00 .3891556159E+00 .4475634652E+00 .4959479695E+00
+ .5376633095E+00 .5746456033E+00 .6081183469E+00 .6389078084E+00 .6676018161E+00
+ .6946369526E+00 .7203496511E+00 .7450078141E+00 .7688308708E+00 .7920016067E+00
+ .8146701850E+00 .8369482602E+00 .8588895683E+00 .8804550479E+00 .9014677567E+00
+ .9215755689E+00 .9402518671E+00 .9568638527E+00 .9708139194E+00 .9817161707E+00
+ .9895335074E+00 .9946036343E+00 .9975345327E+00 .9990206668E+00 .9996695893E+00
+ .9999081527E+00 .9999798415E+00 .9999967297E+00 .9999996518E+00 .9999999818E+00
+ .2102814847E+00 .3198352173E+00 .3955255425E+00 .4542010976E+00 .5026547817E+00
+ .5443088401E+00 .5811342006E+00 .6143735011E+00 .6448637728E+00 .6731985256E+00
+ .6998166334E+00 .7250543864E+00 .7491775939E+00 .7724020113E+00 .7949058338E+00
+ .8168352182E+00 .8383015903E+00 .8593679942E+00 .8800224210E+00 .9001409093E+00
+ .9194528192E+00 .9375314278E+00 .9538359875E+00 .9678169103E+00 .9790633296E+00
+ .9874381440E+00 .9931361846E+00 .9966318175E+00 .9985388356E+00 .9994499315E+00
+ .9998243745E+00 .9999538512E+00 .9999904335E+00 .9999985350E+00 .9999998528E+00
+ .9999999927E+00 .2078590099E+00 .3160447042E+00 .3912201598E+00 .4495983542E+00
+ .4978460671E+00 .5393420660E+00 .5760374379E+00 .6091640143E+00 .6395521633E+00
+ .6677908226E+00 .6943154038E+00 .7194593712E+00 .7434860616E+00 .7666089418E+00
+ .7890041473E+00 .8108164507E+00 .8321578358E+00 .8530965612E+00 .8736350099E+00
+ .8936782888E+00 .9130029652E+00 .9312440091E+00 .9479215623E+00 .9625201934E+00
+ .9746100726E+00 .9839716846E+00 .9906718566E+00 .9950535187E+00 .9976409773E+00
+ .9990032213E+00 .9996334624E+00 .9998853043E+00 .9999703526E+00 .9999939306E+00
+ .9999990784E+00 .9999999078E+00 .9999999955E+00 .2054365352E+00 .3131968739E+00
+ .3878713407E+00 .4458652391E+00 .4938153788E+00 .5350723196E+00 .5715683729E+00
+ .6045229311E+00 .6347578130E+00 .6628557607E+00 .6892474331E+00 .7142624832E+00
+ .7381610812E+00 .7611540867E+00 .7834158936E+00 .8050913582E+00 .8262963445E+00
+ .8471099830E+00 .8675564086E+00 .8875760599E+00 .9069927329E+00 .9254913425E+00
+ .9426277689E+00 .9578885387E+00 .9707995789E+00 .9810550714E+00 .9886161133E+00
+ .9937327063E+00 .9968754875E+00 .9986075901E+00 .9994535164E+00 .9998144347E+00
+ .9999466837E+00 .9999874147E+00 .9999976594E+00 .9999996787E+00 .9999999711E+00
+ .9999999987E+00 .2047279880E+00 .3115476335E+00 .3853844678E+00 .4426249991E+00
+ .4898817847E+00 .5304878972E+00 .5663632225E+00 .5987179966E+00 .6283669474E+00
+ .6558870216E+00 .6817039328E+00 .7061429456E+00 .7294601984E+00 .7518628843E+00
+ .7735225209E+00 .7945831382E+00 .8151646791E+00 .8353605970E+00 .8552276568E+00
+ .8747663261E+00 .8938930794E+00 .9124119061E+00 .9299995880E+00 .9462231590E+00
+ .9606022931E+00 .9727116502E+00 .9822945400E+00 .9893438804E+00 .9941130265E+00
+ .9970486304E+00 .9986742751E+00 .9994742394E+00 .9998191360E+00 .9999472163E+00
+ .9999873110E+00 .9999975904E+00 .9999996614E+00 .9999999687E+00 .9999999986E+00
+ .2036434490E+00 .3090528796E+00 .3823924716E+00 .4393057268E+00 .4862910816E+00
+ .5266497547E+00 .5622726291E+00 .5943542542E+00 .6237478291E+00 .6510212911E+00
+ .6765943765E+00 .7007878786E+00 .7238460903E+00 .7459790578E+00 .7673619426E+00
+ .7881359319E+00 .8084196986E+00 .8283089018E+00 .8478656634E+00 .8671132116E+00
+ .8860035863E+00 .9043953942E+00 .9220362596E+00 .9385614011E+00 .9535100819E+00
+ .9664821070E+00 .9771607025E+00 .9854185873E+00 .9913594095E+00 .9952883895E+00
+ .9976579281E+00 .9989537087E+00 .9995860417E+00 .9998575185E+00 .9999582951E+00
+ .9999898806E+00 .9999980509E+00 .9999997214E+00 .9999999738E+00 .9999999988E+00
+ .2025589101E+00 .3068199167E+00 .3796796368E+00 .4362546669E+00 .4829553544E+00
+ .5230556714E+00 .5584510741E+00 .5903261603E+00 .6194537052E+00 .6464727776E+00
+ .6717968661E+00 .6957421660E+00 .7185576503E+00 .7404443259E+00 .7615627499E+00
+ .7820512935E+00 .8020407327E+00 .8216284368E+00 .8408882860E+00 .8598603362E+00
+ .8785341655E+00 .8968045807E+00 .9144586051E+00 .9312006420E+00 .9466376182E+00
+ .9603507600E+00 .9719797967E+00 .9813098403E+00 .9882922262E+00 .9931674699E+00
+ .9963229616E+00 .9981938161E+00 .9991999038E+00 .9996849939E+00 .9998917560E+00
+ .9999679669E+00 .9999921186E+00 .9999984579E+00 .9999997754E+00 .9999999784E+00
+ .9999999990E+00 .2014743712E+00 .3048300056E+00 .3772260208E+00 .4334526630E+00
+ .4798563876E+00 .5196881873E+00 .5548323000E+00 .5864793476E+00 .6154312962E+00
+ .6422187655E+00 .6672890779E+00 .6909837542E+00 .7135480056E+00 .7351797627E+00
+ .7560424139E+00 .7762468800E+00 .7959481935E+00 .8152411211E+00 .8341985372E+00
+ .8528776889E+00 .8712819219E+00 .8893513536E+00 .9069421043E+00 .9238135412E+00
+ .9396343066E+00 .9540158863E+00 .9665053929E+00 .9768523172E+00 .9849523917E+00
+ .9907806770E+00 .9947396993E+00 .9972268018E+00 .9986615385E+00 .9994152318E+00
+ .9997706700E+00 .9999202414E+00 .9999761410E+00 .9999940485E+00 .9999988150E+00
+ .9999998240E+00 .9999999827E+00 .9999999992E+00 .2003898323E+00 .3030662043E+00
+ .3750135367E+00 .4308823405E+00 .4769776603E+00 .5165315196E+00 .5514174775E+00
+ .5828193721E+00 .6115344031E+00 .6381266141E+00 .6630110903E+00 .6864765489E+00
+ .7087401773E+00 .7300883907E+00 .7506770841E+00 .7706383244E+00 .7900854117E+00
+ .8091152669E+00 .8278078049E+00 .8462210790E+00 .8643812651E+00 .8822669662E+00
+ .8997629202E+00 .9166533781E+00 .9326611343E+00 .9474241091E+00 .9605662436E+00
+ .9717692962E+00 .9808432589E+00 .9877725431E+00 .9927218871E+00 .9960000069E+00
+ .9979937937E+00 .9990548088E+00 .9995885193E+00 .9998383077E+00 .9999436407E+00
+ .9999829842E+00 .9999956918E+00 .9999991259E+00 .9999998674E+00 .9999999867E+00
+ .9999999993E+00 .1993052933E+00 .3015130984E+00 .3730257567E+00 .4285279012E+00
+ .4743041728E+00 .5135712827E+00 .5481926980E+00 .5793453267E+00 .6078214449E+00
+ .6341631957E+00 .6587500812E+00 .6819730622E+00 .7040686618E+00 .7252283524E+00
+ .7456103376E+00 .7653414118E+00 .7845339051E+00 .8033002560E+00 .8217159455E+00
+ .8398455813E+00 .8577347704E+00 .8753752899E+00 .8926991209E+00 .9095608193E+00
+ .9257282784E+00 .9408907550E+00 .9546904641E+00 .9667193405E+00 .9767051192E+00
+ .9845755604E+00 .9903643461E+00 .9943588012E+00 .9969349772E+00 .9984694740E+00
+ .9993058998E+00 .9997182876E+00 .9998921295E+00 .9999624746E+00 .9999885872E+00
+ .9999970681E+00 .9999993936E+00 .9999999060E+00 .9999999903E+00 .9999999995E+00
+ .1982207544E+00 .3001566526E+00 .3712476853E+00 .4263749393E+00 .4718222223E+00
+ .5107943968E+00 .5451452858E+00 .5760448313E+00 .6042350363E+00 .6303011604E+00
+ .6546944367E+00 .6777163937E+00 .6996046447E+00 .7205507063E+00 .7407123251E+00
+ .7602219435E+00 .7791728067E+00 .7976907996E+00 .8158578385E+00 .8337406543E+00
+ .8513850014E+00 .8688052904E+00 .8859694358E+00 .9027618185E+00 .9189764575E+00
+ .9343464473E+00 .9485329999E+00 .9611864557E+00 .9720106107E+00 .9808256977E+00
+ .9876102435E+00 .9924320985E+00 .9956757557E+00 .9977048387E+00 .9988781204E+00
+ .9995004434E+00 .9998001556E+00 .9999294432E+00 .9999770468E+00 .9999930327E+00
+ .9999981951E+00 .9999996210E+00 .9999999401E+00 .9999999937E+00 .9999999997E+00
+ .1971362155E+00 .2989840214E+00 .3696656554E+00 .4244103452E+00 .4695193307E+00
+ .5081888756E+00 .5422636811E+00 .5728778573E+00 .6008257641E+00 .6266958830E+00
+ .6508862626E+00 .6737007641E+00 .6953776394E+00 .7161082476E+00 .7360348306E+00
+ .7553074502E+00 .7740398841E+00 .7923279877E+00 .8102546643E+00 .8278893538E+00
+ .8452822126E+00 .8624571568E+00 .8794031462E+00 .8960468881E+00 .9122421439E+00
+ .9277625079E+00 .9423107327E+00 .9555247606E+00 .9670812891E+00 .9767475749E+00
+ .9844219124E+00 .9901661351E+00 .9941924818E+00 .9968118786E+00 .9983668441E+00
+ .9992300584E+00 .9996690493E+00 .9998718724E+00 .9999560393E+00 .9999869182E+00
+ .9999963961E+00 .9999990892E+00 .9999998107E+00 .9999999701E+00 .9999999969E+00
+ .9999999998E+00 .1960516766E+00 .2979834712E+00 .3682671506E+00 .4226220644E+00
+ .4673840643E+00 .5057438090E+00 .5395372906E+00 .5699201602E+00 .5976686719E+00
+ .6233309695E+00 .6473098007E+00 .6699107941E+00 .6913725039E+00 .7118859482E+00
+ .7316075454E+00 .7506679701E+00 .7691784774E+00 .7872353014E+00 .8049221922E+00
+ .8223108367E+00 .8394584676E+00 .8564015746E+00 .8731448163E+00 .8896454590E+00
+ .9057960845E+00 .9214114582E+00 .9362279031E+00 .9499231463E+00 .9621597258E+00
+ .9726460827E+00 .9811998420E+00 .9877927992E+00 .9925608538E+00 .9957742686E+00
+ .9977787124E+00 .9989278736E+00 .9995289127E+00 .9998133749E+00 .9999340856E+00
+ .9999795210E+00 .9999944950E+00 .9999987467E+00 .9999997652E+00 .9999999653E+00
+ .9999999962E+00 .9999999997E+00 .1000000000E+01 .1955208940E+00 .2968454942E+00
+ .3669506250E+00 .4212130582E+00 .4659146780E+00 .5042306152E+00 .5379906074E+00
+ .5683472335E+00 .5960750236E+00 .6217209419E+00 .6456869070E+00 .6682780443E+00
+ .6897325357E+00 .7102410288E+00 .7299596441E+00 .7490188743E+00 .7675298242E+00
+ .7855885178E+00 .8032783857E+00 .8206705915E+00 .8378214803E+00 .8547661768E+00
+ .8715076341E+00 .8880016810E+00 .9041409572E+00 .9197434848E+00 .9345535699E+00
+ .9482618954E+00 .9605468169E+00 .9711307900E+00 .9798377567E+00 .9866336396E+00
+ .9916358389E+00 .9950880632E+00 .9973092743E+00 .9986339904E+00 .9993618550E+00
+ .9997278538E+00 .9998950180E+00 .9999637633E+00 .9999889543E+00 .9999970751E+00
+ .9999993414E+00 .9999998775E+00 .9999999819E+00 .9999999980E+00 .9999999999E+00
+ .1000000000E+01 .1949901115E+00 .2963741383E+00 .3663081222E+00 .4204152539E+00
+ .4649909350E+00 .5032052156E+00 .5368821357E+00 .5671699260E+00 .5948399780E+00
+ .6204368735E+00 .6443607227E+00 .6669153488E+00 .6883379232E+00 .7088182102E+00
+ .7285115903E+00 .7475479961E+00 .7660381247E+00 .7840777706E+00 .8017504919E+00
+ .8191282821E+00 .8362695098E+00 .8532131003E+00 .8699680444E+00 .8864983572E+00
+ .9027058779E+00 .9184164075E+00 .9333772607E+00 .9472742765E+00 .9597719517E+00
+ .9705718849E+00 .9794752552E+00 .9864296805E+00 .9915436175E+00 .9950624820E+00
+ .9973149888E+00 .9986486289E+00 .9993746747E+00 .9997358772E+00 .9998989844E+00
+ .9999653363E+00 .9999894415E+00 .9999971821E+00 .9999993516E+00 .9999998740E+00
+ .9999999799E+00 .9999999975E+00 .9999999998E+00 .1000000000E+01 .1000000000E+01
+ .1883070435E+00 .2870917914E+00 .3554878960E+00 .4085214986E+00 .4522767946E+00
+ .4898265524E+00 .5229425196E+00 .5527418351E+00 .5799757929E+00 .6051751313E+00
+ .6287301379E+00 .6509373447E+00 .6720281017E+00 .6921873640E+00 .7115665386E+00
+ .7302921760E+00 .7484719881E+00 .7661993118E+00 .7835563850E+00 .8006163141E+00
+ .8174434277E+00 .8340914176E+00 .8505982519E+00 .8669767775E+00 .8832007044E+00
+ .8991875820E+00 .9147832533E+00 .9297551047E+00 .9438023688E+00 .9565888473E+00
+ .9677961791E+00 .9771863398E+00 .9846549763E+00 .9902571315E+00 .9941954536E+00
+ .9967747816E+00 .9983392720E+00 .9992128464E+00 .9996590659E+00 .9998661524E+00
+ .9999528079E+00 .9999852174E+00 .9999959394E+00 .9999990376E+00 .9999998073E+00
+ .9999999683E+00 .9999999959E+00 .9999999996E+00 .1000000000E+01 .1000000000E+01
+ .1906928381E+00 .2902208128E+00 .3589764014E+00 .4122121033E+00 .4560872146E+00
+ .4937073201E+00 .5268608959E+00 .5566744570E+00 .5839051255E+00 .6090874123E+00
+ .6326139050E+00 .6547826422E+00 .6758261284E+00 .6959300748E+00 .7152462082E+00
+ .7339011523E+00 .7520025808E+00 .7696436147E+00 .7869059721E+00 .8038618310E+00
+ .8205740187E+00 .8370938604E+00 .8534557634E+00 .8696676781E+00 .8856974492E+00
+ .9014569876E+00 .9167888709E+00 .9314623296E+00 .9451858916E+00 .9576406946E+00
+ .9685315404E+00 .9776444363E+00 .9848937445E+00 .9903429512E+00 .9941912921E+00
+ .9967307227E+00 .9982881040E+00 .9991710028E+00 .9996311121E+00 .9998502193E+00
+ .9999449413E+00 .9999818412E+00 .9999946835E+00 .9999986359E+00 .9999996982E+00
+ .9999999436E+00 .9999999913E+00 .9999999990E+00 .9999999999E+00 .1000000000E+01
+ .1000000000E+01 .1912676070E+00 .2908349045E+00 .3595285316E+00 .4126676486E+00
+ .4564305398E+00 .4939298269E+00 .5269569243E+00 .5566395473E+00 .5837352720E+00
+ .6087787015E+00 .6321622017E+00 .6541833965E+00 .6750743308E+00 .6950201801E+00
+ .7141719793E+00 .7326555349E+00 .7505776382E+00 .7680304665E+00 .7850947483E+00
+ .8018417760E+00 .8183339554E+00 .8346233137E+00 .8507471511E+00 .8667199947E+00
+ .8825216172E+00 .8980824134E+00 .9132697651E+00 .9278813631E+00 .9416523620E+00
+ .9542811936E+00 .9654733529E+00 .9749949343E+00 .9827214777E+00 .9886664936E+00
+ .9929795874E+00 .9959145408E+00 .9977782619E+00 .9988771250E+00 .9994756273E+00
+ .9997751408E+00 .9999120646E+00 .9999688797E+00 .9999901217E+00 .9999972171E+00
+ .9999993130E+00 .9999998538E+00 .9999999737E+00 .9999999961E+00 .9999999995E+00
+ .1000000000E+01 .1000000000E+01 .1000000000E+01 .1925827137E+00 .2924402082E+00
+ .3612013543E+00 .4143222274E+00 .4580240722E+00 .4954372347E+00 .5283616606E+00
+ .5579295073E+00 .5849007860E+00 .6098115079E+00 .6330547631E+00 .6549284096E+00
+ .6756644705E+00 .6954479363E+00 .7144294476E+00 .7327342085E+00 .7504682706E+00
+ .7677229696E+00 .7845780993E+00 .8011040085E+00 .8173623988E+00 .8334053190E+00
+ .8492716280E+00 .8649801420E+00 .8805191079E+00 .8958328748E+00 .9108086535E+00
+ .9252684582E+00 .9389725270E+00 .9516393016E+00 .9629827075E+00 .9727608606E+00
+ .9808241111E+00 .9871478863E+00 .9918392532E+00 .9951146830E+00 .9972564686E+00
+ .9985619421E+00 .9993001631E+00 .9996855610E+00 .9998703543E+00 .9999512760E+00
+ .9999834351E+00 .9999949503E+00 .9999986340E+00 .9999996763E+00 .9999999338E+00
+ .9999999886E+00 .9999999984E+00 .9999999998E+00 .1000000000E+01 .1000000000E+01
+ .1000000000E+01 .1909929133E+00 .2899185882E+00 .3579477117E+00 .4104320701E+00
+ .4535516556E+00 .4904157593E+00 .5228117616E+00 .5518635811E+00 .5783253571E+00
+ .6027284510E+00 .6254621313E+00 .6468210978E+00 .6670345094E+00 .6862845012E+00
+ .7047188727E+00 .7224600407E+00 .7396112131E+00 .7562607261E+00 .7724853371E+00
+ .7883527613E+00 .8039233933E+00 .8192510814E+00 .8343826971E+00 .8493559438E+00
+ .8641946082E+00 .8789005761E+00 .8934426702E+00 .9077438281E+00 .9216701353E+00
+ .9350270238E+00 .9475683175E+00 .9590215772E+00 .9691281800E+00 .9776902091E+00
+ .9846114213E+00 .9899192445E+00 .9937600382E+00 .9963689010E+00 .9980240233E+00
+ .9989998954E+00 .9995319138E+00 .9997986632E+00 .9999209574E+00 .9999718948E+00
+ .9999910293E+00 .9999974567E+00 .9999993677E+00 .9999998643E+00 .9999999754E+00
+ .9999999963E+00 .9999999996E+00 .1000000000E+01 .1000000000E+01 .1000000000E+01
+ .1886998981E+00 .2869838669E+00 .3548078557E+00 .4072784191E+00 .4504896905E+00
+ .4875124689E+00 .5201143455E+00 .5494079717E+00 .5761407293E+00 .6008401063E+00
+ .6238930937E+00 .6455928970E+00 .6661679793E+00 .6858006147E+00 .7046392112E+00
+ .7228070051E+00 .7404083440E+00 .7575331524E+00 .7742600996E+00 .7906588184E+00
+ .8067911415E+00 .8227109732E+00 .8384621922E+00 .8540738547E+00 .8695521044E+00
+ .8848688827E+00 .8999489731E+00 .9146588802E+00 .9288027685E+00 .9421310094E+00
+ .9543647295E+00 .9652349919E+00 .9745292217E+00 .9821328462E+00 .9880535623E+00
+ .9924202344E+00 .9954566632E+00 .9974387515E+00 .9986482183E+00 .9993351976E+00
+ .9996968517E+00 .9998725083E+00 .9999508367E+00 .9999827295E+00 .9999945141E+00
+ .9999984379E+00 .9999996054E+00 .9999999127E+00 .9999999833E+00 .9999999973E+00
+ .9999999996E+00 .1000000000E+01 .1000000000E+01 .1000000000E+01 .1000000000E+01
+ .5697614876E+00 .4276250300E+00 .7177325737E+00 .3545906286E+00 .5703467898E+00
+ .7686532633E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .3326349646E+00 .5189542657E+00 .6618018412E+00 .7905547689E+00 .9131727737E+00
+ .3074456896E+00 .4761358366E+00 .6015919660E+00 .7101546182E+00 .8150814079E+00
+ .9205625798E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .0000000000E+00 .0000000000E+00 .0000000000E+00 .2852661271E+00 .4387806273E+00
+ .5491237102E+00 .6397109446E+00 .7208181864E+00 .7988056799E+00 .8775746579E+00
+ .9526526750E+00 .2737275734E+00 .4198543592E+00 .5238404887E+00 .6080074243E+00
+ .6818142565E+00 .7507648975E+00 .8190480396E+00 .8893814784E+00 .9571101916E+00
+ .2648934564E+00 .4054955855E+00 .5047880768E+00 .5843286061E+00 .6530700094E+00
+ .7159410236E+00 .7764339993E+00 .8375954184E+00 .9012339731E+00 .9621873931E+00
+ .2591017873E+00 .3962542853E+00 .4925232584E+00 .5690329231E+00 .6344540236E+00
+ .6934024466E+00 .7489152040E+00 .8034672391E+00 .8592732789E+00 .9168783702E+00
+ .9697412653E+00 .2523402987E+00 .3853885350E+00 .4783257220E+00 .5517338523E+00
+ .6140006623E+00 .6695036954E+00 .7209915706E+00 .7705407942E+00 .8200480903E+00
+ .8712829015E+00 .9243702583E+00 .9727517349E+00 .2488626608E+00 .3801868901E+00
+ .4715468901E+00 .5433448073E+00 .6038583442E+00 .6573542705E+00 .7064337474E+00
+ .7529463721E+00 .7984425305E+00 .8443897307E+00 .8918549805E+00 .9395478726E+00
+ .9798534496E+00 .2451052290E+00 .3746245925E+00 .4644260812E+00 .5347069442E+00
+ .5936391385E+00 .6454011967E+00 .6924935406E+00 .7366264778E+00 .7791434390E+00
+ .8212564152E+00 .8640821028E+00 .9080489575E+00 .9508276217E+00 .9846538467E+00
+ .2422394809E+00 .3710466507E+00 .4601063889E+00 .5295624621E+00 .5875564659E+00
+ .6382288141E+00 .6840269753E+00 .7265829678E+00 .7671198986E+00 .8066723476E+00
+ .8461827458E+00 .8863234010E+00 .9265906732E+00 .9634461052E+00 .9896754775E+00
+ .2371212589E+00 .3625404560E+00 .4490435729E+00 .5163128728E+00 .5722875201E+00
+ .6209899877E+00 .6647786020E+00 .7051997609E+00 .7433771533E+00 .7802215802E+00
+ .8165620067E+00 .8532039524E+00 .8907600579E+00 .9288121320E+00 .9641069635E+00
+ .9896893771E+00 .2339608780E+00 .3582147911E+00 .4437396107E+00 .5100792902E+00
+ .5651153614E+00 .6128302984E+00 .6555454504E+00 .6947653240E+00 .7315593358E+00
+ .7667620373E+00 .8010945188E+00 .8352400464E+00 .8698327557E+00 .9051613257E+00
+ .9402264047E+00 .9713042135E+00 .9922817729E+00 .2313207825E+00 .3561509659E+00
+ .4419565680E+00 .5083637861E+00 .5633116157E+00 .6108038183E+00 .6531643134E+00
+ .6918868701E+00 .7280170016E+00 .7623486677E+00 .7955385000E+00 .8281741326E+00
+ .8607822764E+00 .8936761052E+00 .9264433168E+00 .9570474044E+00 .9814435496E+00
+ .9956391489E+00 .2275734012E+00 .3461419563E+00 .4283969887E+00 .4926093997E+00
+ .5461446688E+00 .5927286451E+00 .6345305616E+00 .6729486357E+00 .7089633409E+00
+ .7433188289E+00 .7766270434E+00 .8094287898E+00 .8422048397E+00 .8752714883E+00
+ .9084312988E+00 .9403317177E+00 .9679848724E+00 .9876199054E+00 .9974580416E+00
+ .2208378062E+00 .3357279301E+00 .4153829023E+00 .4775132582E+00 .5292512180E+00
+ .5742001002E+00 .6144526027E+00 .6513511387E+00 .6858287667E+00 .7185831767E+00
+ .7501760381E+00 .7810964521E+00 .8118031476E+00 .8427351662E+00 .8742318145E+00
+ .9062290366E+00 .9376231925E+00 .9656230577E+00 .9862578431E+00 .9970658450E+00
+ .2179952765E+00 .3304040462E+00 .4091395796E+00 .4706409685E+00 .5218301078E+00
+ .5662446971E+00 .6059459270E+00 .6422542931E+00 .6760825172E+00 .7081054369E+00
+ .7388560519E+00 .7687801043E+00 .7983011163E+00 .8278140590E+00 .8576483946E+00
+ .8879259721E+00 .9182078185E+00 .9470027644E+00 .9715860391E+00 .9888948248E+00
+ .9976532006E+00 .2151527468E+00 .3263365979E+00 .4042002635E+00 .4649913033E+00
+ .5155477836E+00 .5593632537E+00 .5984708369E+00 .6341695554E+00 .6673527897E+00
+ .6986753135E+00 .7286467801E+00 .7576892719E+00 .7861688110E+00 .8144667110E+00
+ .8429050067E+00 .8717128680E+00 .9008198865E+00 .9294748924E+00 .9558760724E+00
+ .9773494548E+00 .9915663595E+00 .9983001949E+00 .2123102172E+00 .3233617084E+00
+ .4003948641E+00 .4604048024E+00 .5102557065E+00 .5534157057E+00 .5918927779E+00
+ .6269648948E+00 .6595069936E+00 .6901561343E+00 .7194033725E+00 .7476495768E+00
+ .7752422009E+00 .8025006589E+00 .8297287918E+00 .8571959870E+00 .8850392903E+00
+ .9130179895E+00 .9401229839E+00 .9643091050E+00 .9829392993E+00 .9942679612E+00
+ .9989990476E+00 .2130285612E+00 .3234869368E+00 .3997330291E+00 .4589012394E+00
+ .5078836266E+00 .5501514430E+00 .5877080566E+00 .6218233871E+00 .6533619600E+00
+ .6829480523E+00 .7110569234E+00 .7380696227E+00 .7643084713E+00 .7900619102E+00
+ .8156020656E+00 .8411906440E+00 .8670533563E+00 .8932773321E+00 .9195733209E+00
+ .9449221229E+00 .9673711282E+00 .9845060497E+00 .9948278346E+00 .9991018528E+00
+ .2066923036E+00 .3144671088E+00 .3890707816E+00 .4470665939E+00 .4951346044E+00
+ .5366448101E+00 .5735440164E+00 .6070664384E+00 .6380516318E+00 .6671046908E+00
+ .6946843672E+00 .7211559415E+00 .7468252881E+00 .7719623561E+00 .7968188548E+00
+ .8216405059E+00 .8466662501E+00 .8720903677E+00 .8979389241E+00 .9238113264E+00
+ .9485411972E+00 .9700854670E+00 .9861348625E+00 .9955056972E+00 .9992457743E+00
+ .2097269301E+00 .3176839229E+00 .3918638408E+00 .4492013700E+00 .4964873614E+00
+ .5371332816E+00 .5731021737E+00 .6056330813E+00 .6355642071E+00 .6634951414E+00
+ .6898755720E+00 .7150581724E+00 .7393321738E+00 .7629457438E+00 .7861226085E+00
+ .8090754685E+00 .8320157123E+00 .8551536831E+00 .8786698745E+00 .9026140940E+00
+ .9266809544E+00 .9498865807E+00 .9703989075E+00 .9859980465E+00 .9953477644E+00
+ .9991964744E+00 .2033133364E+00 .3095355366E+00 .3830575855E+00 .4401680397E+00
+ .4874448799E+00 .5282073522E+00 .5643716711E+00 .5971506478E+00 .6273661159E+00
+ .6556065882E+00 .6823140157E+00 .7078348260E+00 .7324524191E+00 .7564091871E+00
+ .7799221761E+00 .8031948608E+00 .8264244296E+00 .8497978845E+00 .8734590638E+00
+ .8974144228E+00 .9213491771E+00 .9443921210E+00 .9650177307E+00 .9813886415E+00
+ .9922369072E+00 .9977685038E+00 .9996718685E+00 .2003340164E+00 .3050561279E+00
+ .3775380724E+00 .4338241437E+00 .4803962780E+00 .5205255470E+00 .5560999165E+00
+ .5883136433E+00 .6179748856E+00 .6456609581E+00 .6718039528E+00 .6967407325E+00
+ .7207445077E+00 .7440462990E+00 .7668499467E+00 .7893433810E+00 .8117074345E+00
+ .8341200930E+00 .8567480867E+00 .8797066523E+00 .9029564206E+00 .9261175300E+00
+ .9482561005E+00 .9678406185E+00 .9831397964E+00 .9930854114E+00 .9980493106E+00
+ .9997188614E+00 .2008785745E+00 .3054140922E+00 .3776045153E+00 .4335705203E+00
+ .4798104839E+00 .5195988091E+00 .5548226698E+00 .5866740635E+00 .6159583043E+00
+ .6432490335E+00 .6689739013E+00 .6934647582E+00 .7169887572E+00 .7397693301E+00
+ .7620009689E+00 .7838599673E+00 .8055127388E+00 .8271212458E+00 .8488410141E+00
+ .8707999707E+00 .8930362146E+00 .9153711142E+00 .9372283466E+00 .9575019420E+00
+ .9746796310E+00 .9873791493E+00 .9951160406E+00 .9987083247E+00 .9998264043E+00
+ .1996539731E+00 .3037628949E+00 .3756703964E+00 .4314009246E+00 .4774224833E+00
+ .5169959497E+00 .5520007915E+00 .5836236022E+00 .6126655061E+00 .6396962708E+00
+ .6651393247E+00 .6893219609E+00 .7125062210E+00 .7349092880E+00 .7567179347E+00
+ .7780989726E+00 .7992071014E+00 .8201906055E+00 .8411926352E+00 .8623409692E+00
+ .8837116282E+00 .9052459519E+00 .9266130191E+00 .9470620744E+00 .9653970556E+00
+ .9802434583E+00 .9906297415E+00 .9965712383E+00 .9991469986E+00 .9998926121E+00
+ .1991050041E+00 .3018965043E+00 .3733507338E+00 .4287625409E+00 .4744993867E+00
+ .5137970741E+00 .5485258358E+00 .5798672990E+00 .6086189517E+00 .6353474250E+00
+ .6604729117E+00 .6843049979E+00 .7071152591E+00 .7291226351E+00 .7505067848E+00
+ .7714263451E+00 .7920266786E+00 .8124449908E+00 .8328130339E+00 .8532521680E+00
+ .8738523351E+00 .8946196453E+00 .9153693257E+00 .9356167655E+00 .9545089234E+00
+ .9709127461E+00 .9837398324E+00 .9924227052E+00 .9972593555E+00 .9993206890E+00
+ .9999140126E+00 .1985560350E+00 .3006106401E+00 .3716362071E+00 .4266931456E+00
+ .4721063566E+00 .5110960932E+00 .5455243575E+00 .5765672106E+00 .6050177616E+00
+ .6314389517E+00 .6562473641E+00 .6797627426E+00 .7022389088E+00 .7238836914E+00
+ .7448725401E+00 .7653584935E+00 .7854795997E+00 .8053578312E+00 .8251381562E+00
+ .8449363319E+00 .8648493087E+00 .8849207854E+00 .9050732193E+00 .9250087591E+00
+ .9441180982E+00 .9614810981E+00 .9760470150E+00 .9869933125E+00 .9941041460E+00
+ .9979167629E+00 .9994920787E+00 .9999362113E+00 .1980070659E+00 .2998525269E+00
+ .3704718120E+00 .4251410273E+00 .4701952152E+00 .5088477531E+00 .5429533215E+00
+ .5736818802E+00 .6018214608E+00 .6279307744E+00 .6524226150E+00 .6756129742E+00
+ .6977291636E+00 .7190076159E+00 .7396173208E+00 .7597051140E+00 .7794025869E+00
+ .7988315202E+00 .8181072953E+00 .8373401836E+00 .8566297794E+00 .8760466654E+00
+ .8955903217E+00 .9151136460E+00 .9342081810E+00 .9521626886E+00 .9680217695E+00
+ .9808345352E+00 .9900259498E+00 .9956842018E+00 .9985462553E+00 .9996613750E+00
+ .9999591353E+00 .1974580969E+00 .2995756048E+00 .3698090140E+00 .4240605457E+00
+ .4687234520E+00 .5070121226E+00 .5407747541E+00 .5711747140E+00 .5989943363E+00
+ .6247876018E+00 .6489633101E+00 .6718337136E+00 .6936451655E+00 .7145980005E+00
+ .7348596451E+00 .7545740064E+00 .7738686529E+00 .7928602268E+00 .8116584417E+00
+ .8303684800E+00 .8490897999E+00 .8679063820E+00 .8868597811E+00 .9058949570E+00
+ .9247773601E+00 .9430064594E+00 .9597908399E+00 .9741690223E+00 .9853059040E+00
+ .9928572484E+00 .9971718189E+00 .9991502971E+00 .9998287657E+00 .9999827209E+00
+ .1891286131E+00 .2879808978E+00 .3563234313E+00 .4092958822E+00 .4530171995E+00
+ .4905744323E+00 .5237472443E+00 .5536579505E+00 .5810622661E+00 .6064963356E+00
+ .6303563630E+00 .6529448251E+00 .6745003399E+00 .6952172787E+00 .7152580925E+00
+ .7347620087E+00 .7538521435E+00 .7726409988E+00 .7912344634E+00 .8097349744E+00
+ .8282434669E+00 .8468576459E+00 .8656612749E+00 .8846955498E+00 .9039022332E+00
+ .9230371482E+00 .9415802630E+00 .9587094998E+00 .9734246202E+00 .9848519095E+00
+ .9926198894E+00 .9970702335E+00 .9991171206E+00 .9998214583E+00 .9999819113E+00
+ .1931814080E+00 .2933861012E+00 .3623598846E+00 .4156449504E+00 .4595014272E+00
+ .4970798968E+00 .5301928046E+00 .5599812366E+00 .5872120622E+00 .6124276564E+00
+ .6360278467E+00 .6583172156E+00 .6795347221E+00 .6998735022E+00 .7194938612E+00
+ .7385319897E+00 .7571066251E+00 .7753243627E+00 .7932836392E+00 .8110777215E+00
+ .8287967300E+00 .8465273614E+00 .8643468813E+00 .8823052071E+00 .9003868308E+00
+ .9184477683E+00 .9361385684E+00 .9528538530E+00 .9677748242E+00 .9800564456E+00
+ .9891278685E+00 .9949585744E+00 .9981030374E+00 .9994600195E+00 .9998971325E+00
+ .9999902033E+00 .1909013154E+00 .2898128230E+00 .3582834293E+00 .4112665812E+00
+ .4549054666E+00 .4923103191E+00 .5252750549E+00 .5549307085E+00 .5820380526E+00
+ .6071350865E+00 .6306182632E+00 .6527896879E+00 .6738861668E+00 .6940985228E+00
+ .7135847304E+00 .7324787374E+00 .7508968056E+00 .7689425503E+00 .7867109234E+00
+ .8042911872E+00 .8217689021E+00 .8392261731E+00 .8567377685E+00 .8743585815E+00
+ .8920961461E+00 .9098633528E+00 .9274157922E+00 .9442976452E+00 .9598420722E+00
+ .9732746951E+00 .9839277423E+00 .9914917250E+00 .9961659814E+00 .9985950680E+00
+ .9996092298E+00 .9999269459E+00 .9999931380E+00 .1886212228E+00 .2871104433E+00
+ .3550918940E+00 .4076946576E+00 .4510335626E+00 .4881925164E+00 .5209478508E+00
+ .5504190609E+00 .5773591246E+00 .6023001979E+00 .6256342133E+00 .6476599296E+00
+ .6686113468E+00 .6886765032E+00 .7080107052E+00 .7267454283E+00 .7449943638E+00
+ .7628581881E+00 .7804285342E+00 .7977910285E+00 .8150274319E+00 .8322166787E+00
+ .8494333733E+00 .8667404135E+00 .8841703510E+00 .9016894366E+00 .9191428352E+00
+ .9361935080E+00 .9522892885E+00 .9667081589E+00 .9787151965E+00 .9878019370E+00
+ .9938987308E+00 .9974249814E+00 .9991240848E+00 .9997758439E+00 .9999617791E+00
+ .9999967532E+00 .1883041310E+00 .2861018757E+00 .3534398803E+00 .4054550417E+00
+ .4482495149E+00 .4848958580E+00 .5171617692E+00 .5461602173E+00 .5726389223E+00
+ .5971256626E+00 .6200087881E+00 .6415839485E+00 .6620821007E+00 .6816882317E+00
+ .7005547096E+00 .7188100861E+00 .7365648495E+00 .7539160383E+00 .7709512414E+00
+ .7877516330E+00 .8043941304E+00 .8209529984E+00 .8375004344E+00 .8541043670E+00
+ .8708202109E+00 .8876717453E+00 .9046161289E+00 .9214928279E+00 .9379691682E+00
+ .9535141449E+00 .9674441331E+00 .9790682317E+00 .9879062683E+00 .9938833152E+00
+ .9973808427E+00 .9990927911E+00 .9997626915E+00 .9999584789E+00 .9999963666E+00
+ .1873815005E+00 .2839227321E+00 .3508335708E+00 .4025718411E+00 .4451373786E+00
+ .4815749521E+00 .5136262518E+00 .5423900148E+00 .5686504013E+00 .5929273709E+00
+ .6156039260E+00 .6369718433E+00 .6572512078E+00 .6766301012E+00 .6952646288E+00
+ .7132802609E+00 .7307847255E+00 .7478722523E+00 .7646238875E+00 .7811219100E+00
+ .7974398355E+00 .8136475503E+00 .8298128824E+00 .8460011174E+00 .8622720216E+00
+ .8786618721E+00 .8951643999E+00 .9116925211E+00 .9280320268E+00 .9437925493E+00
+ .9584110843E+00 .9712603705E+00 .9817655472E+00 .9895958806E+00 .9947981471E+00
+ .9977855163E+00 .9992326688E+00 .9997981717E+00 .9999643049E+00 .9999968265E+00
+ .1864588701E+00 .2819837023E+00 .3484823568E+00 .3999329083E+00 .4422567239E+00
+ .4784749339E+00 .5103344772E+00 .5389254943E+00 .5649574192E+00 .5890171139E+00
+ .6114819890E+00 .6326397515E+00 .6527159007E+00 .6718907699E+00 .6903059832E+00
+ .7080829805E+00 .7253404622E+00 .7421699757E+00 .7586530038E+00 .7748636649E+00
+ .7908714162E+00 .8067400317E+00 .8225399964E+00 .8383375967E+00 .8541908870E+00
+ .8701467656E+00 .8862252767E+00 .9023921505E+00 .9185112975E+00 .9343023328E+00
+ .9493353903E+00 .9630532784E+00 .9748692284E+00 .9843167021E+00 .9912000908E+00
+ .9956372119E+00 .9981514281E+00 .9993601788E+00 .9998309842E+00 .9999698181E+00
+ .9999972773E+00 .1855362397E+00 .2802675989E+00 .3463680148E+00 .3975207969E+00
+ .4395910137E+00 .4755800008E+00 .5072251867E+00 .5356228906E+00 .5615106308E+00
+ .5853742668E+00 .6076227372E+00 .6285677103E+00 .6484316643E+00 .6673926457E+00
+ .6855957474E+00 .7031349889E+00 .7201513531E+00 .7367308348E+00 .7529472630E+00
+ .7688832299E+00 .7846045338E+00 .8001737429E+00 .8156512200E+00 .8310957538E+00
+ .8465639571E+00 .8621069219E+00 .8777652756E+00 .8935377661E+00 .9093613299E+00
+ .9250565783E+00 .9402975256E+00 .9546177437E+00 .9674589227E+00 .9782854787E+00
+ .9866961771E+00 .9926201502E+00 .9963842521E+00 .9984813417E+00 .9994762016E+00
+ .9998613210E+00 .9999750410E+00 .9999977198E+00 .1846136093E+00 .2787588827E+00
+ .3444740172E+00 .3953196836E+00 .4371252494E+00 .4728758686E+00 .5042999276E+00
+ .5324879288E+00 .5581733641E+00 .5818742204E+00 .6039699963E+00 .6247223429E+00
+ .6443259872E+00 .6630434010E+00 .6810130747E+00 .6983511812E+00 .7151575571E+00
+ .7315193373E+00 .7475134806E+00 .7632091346E+00 .7786700253E+00 .7939562163E+00
+ .8091224683E+00 .8242328374E+00 .8393469818E+00 .8545156187E+00 .8697798721E+00
+ .8851584510E+00 .9006258019E+00 .9160815008E+00 .9313166965E+00 .9459909401E+00
+ .9596389858E+00 .9715759201E+00 .9813500845E+00 .9887637682E+00 .9938835052E+00
+ .9970527535E+00 .9987777714E+00 .9995815403E+00 .9998893532E+00 .9999799936E+00
+ .9999981545E+00 .1836909789E+00 .2774434157E+00 .3427853524E+00 .3933151805E+00
+ .4348458135E+00 .4703495177E+00 .5015461497E+00 .5295202439E+00 .5550010502E+00
+ .5784865318E+00 .6003227886E+00 .6208676033E+00 .6403357686E+00 .6589003708E+00
+ .6767026663E+00 .6938531892E+00 .7104492610E+00 .7265925689E+00 .7423518470E+00
+ .7577962643E+00 .7729993323E+00 .7880182103E+00 .8029076504E+00 .8177207360E+00
+ .8325093202E+00 .8473235051E+00 .8622088842E+00 .8772033000E+00 .8923127195E+00
+ .9074853909E+00 .9225758466E+00 .9373117325E+00 .9513034797E+00 .9640688537E+00
+ .9751160353E+00 .9840572173E+00 .9906208006E+00 .9950104001E+00 .9976480550E+00
+ .9990430046E+00 .9996769219E+00 .9999152390E+00 .9999846946E+00 .9999985820E+00
+ .1827683484E+00 .2763083247E+00 .3412883176E+00 .3914941679E+00 .4327402658E+00
+ .4679891098E+00 .4989524154E+00 .5267086976E+00 .5519406736E+00 .5751864763E+00
+ .5968600600E+00 .6172360361E+00 .6365301996E+00 .6549159835E+00 .6725347364E+00
+ .6895032631E+00 .7059001317E+00 .7218389060E+00 .7373935982E+00 .7526302061E+00
+ .7676085759E+00 .7823844191E+00 .7970107284E+00 .8115365385E+00 .8260173888E+00
+ .8405056011E+00 .8550467749E+00 .8696786383E+00 .8844206171E+00 .8992560411E+00
+ .9141065309E+00 .9287894949E+00 .9429990451E+00 .9563188552E+00 .9682695030E+00
+ .9784026179E+00 .9864140545E+00 .9922336385E+00 .9960099118E+00 .9981750515E+00
+ .9992791138E+00 .9997630123E+00 .9999391211E+00 .9999891606E+00 .9999990028E+00
+ .1818457180E+00 .2753418278E+00 .3399704239E+00 .3898447064E+00 .4307972778E+00
+ .4657837967E+00 .4965082939E+00 .5240164612E+00 .5490397267E+00 .5721199078E+00
+ .5936220368E+00 .6138230134E+00 .6329391623E+00 .6511440087E+00 .6685643409E+00
+ .6853340058E+00 .7015525385E+00 .7173036792E+00 .7326612138E+00 .7476907018E+00
+ .7624493298E+00 .7769909111E+00 .7913719358E+00 .8056415578E+00 .8198475066E+00
+ .8340365025E+00 .8482538279E+00 .8625421803E+00 .8769325394E+00 .8914300839E+00
+ .9059954350E+00 .9205169371E+00 .9347836544E+00 .9484682541E+00 .9611193304E+00
+ .9722733359E+00 .9815273314E+00 .9886554442E+00 .9936804189E+00 .9968701500E+00
+ .9986381871E+00 .9994880009E+00 .9998404155E+00 .9999611303E+00 .9999934069E+00
+ .9999994172E+00 .1809230876E+00 .2745331632E+00 .3388202339E+00 .3883558181E+00
+ .4290064695E+00 .4637237043E+00 .4942042266E+00 .5215141382E+00 .5463684452E+00
+ .5692719178E+00 .5905944094E+00 .6106145911E+00 .6295489513E+00 .6475708740E+00
+ .6648215607E+00 .6814169329E+00 .6974539592E+00 .7130162105E+00 .7281772298E+00
+ .7430021409E+00 .7575491131E+00 .7718712991E+00 .7860186150E+00 .8000388304E+00
+ .8139781927E+00 .8278819359E+00 .8417944270E+00 .8557580145E+00 .8698091412E+00
+ .8839698058E+00 .8982322496E+00 .9125358107E+00 .9267384276E+00 .9405914761E+00
+ .9537332711E+00 .9657185777E+00 .9760929895E+00 .9845005617E+00 .9907887372E+00
+ .9950630245E+00 .9976593429E+00 .9990415437E+00 .9996714060E+00 .9999096868E+00
+ .9999813859E+00 .9999974477E+00 .9999998257E+00 .1804508555E+00 .2734904362E+00
+ .3375965804E+00 .3870271265E+00 .4276000615E+00 .4622529165E+00 .4926767625E+00
+ .5199353140E+00 .5447419521E+00 .5675996964E+00 .5888775666E+00 .6088543661E+00
+ .6277461822E+00 .6457251352E+00 .6629315786E+00 .6794815412E+00 .6954721015E+00
+ .7109861656E+00 .7260962580E+00 .7408668527E+00 .7553558219E+00 .7696158575E+00
+ .7836960114E+00 .7976429812E+00 .8115019392E+00 .8253169935E+00 .8391311967E+00
+ .8529854450E+00 .8669149773E+00 .8809416956E+00 .8950604551E+00 .9092185062E+00
+ .9232902962E+00 .9370549556E+00 .9501891908E+00 .9622899471E+00 .9729346561E+00
+ .9817711212E+00 .9886100662E+00 .9934829732E+00 .9966365483E+00 .9984623731E+00
+ .9993913439E+00 .9997975622E+00 .9999457835E+00 .9999890563E+00 .9999985224E+00
+ .9999999001E+00 .1799786234E+00 .2730659875E+00 .3369987024E+00 .3862671594E+00
+ .4267031510E+00 .4612398324E+00 .4915631120E+00 .5187331258E+00 .5434603897E+00
+ .5662451125E+00 .5874545188E+00 .6073667945E+00 .6261972162E+00 .6441163642E+00
+ .6612633290E+00 .6777537901E+00 .6936847124E+00 .7091383331E+00 .7241861021E+00
+ .7388916122E+00 .7533121922E+00 .7674999770E+00 .7815031664E+00 .7953673728E+00
+ .8091366510E+00 .8228540827E+00 .8365619252E+00 .8503009540E+00 .8641079576E+00
+ .8780096941E+00 .8920112822E+00 .9060775315E+00 .9201080660E+00 .9339118311E+00
+ .9471926672E+00 .9595614409E+00 .9705865769E+00 .9798806496E+00 .9871998297E+00
+ .9925173512E+00 .9960354178E+00 .9981257392E+00 .9992239945E+00 .9997250422E+00
+ .9999191132E+00 .9999810682E+00 .9999966998E+00 .9999996196E+00 .9999999783E+00
+ .1737908653E+00 .2645026840E+00 .3270468003E+00 .3753567767E+00 .4150682286E+00
+ .4490241504E+00 .4788627235E+00 .5056157513E+00 .5299746744E+00 .5524270326E+00
+ .5733322469E+00 .5929625111E+00 .6115272365E+00 .6291922378E+00 .6460938316E+00
+ .6623459221E+00 .6780432496E+00 .6932652595E+00 .7080809279E+00 .7225521484E+00
+ .7367348621E+00 .7506794727E+00 .7644319798E+00 .7780356414E+00 .7915322574E+00
+ .8049627888E+00 .8183677085E+00 .8317873297E+00 .8452617029E+00 .8588290734E+00
+ .8725214354E+00 .8863552674E+00 .9003154769E+00 .9143319492E+00 .9282519312E+00
+ .9418176254E+00 .9546642131E+00 .9663539556E+00 .9764520297E+00 .9846295065E+00
+ .9907576350E+00 .9949507764E+00 .9975333362E+00 .9989425555E+00 .9996113653E+00
+ .9998812259E+00 .9999710788E+00 .9999947485E+00 .9999993688E+00 .9999999624E+00
+ .1760702459E+00 .2674887044E+00 .3303711206E+00 .3788684783E+00 .4186886637E+00
+ .4527062992E+00 .4825750415E+00 .5093357814E+00 .5336865414E+00 .5561182220E+00
+ .5769911503E+00 .5965790643E+00 .6150939206E+00 .6327026942E+00 .6495409171E+00
+ .6657217891E+00 .6813406769E+00 .6964779621E+00 .7112025251E+00 .7255752592E+00
+ .7396511989E+00 .7534803500E+00 .7671083815E+00 .7805777811E+00 .7939291141E+00
+ .8072018928E+00 .8204350188E+00 .8336669539E+00 .8469354066E+00 .8602757157E+00
+ .8737165703E+00 .8872713396E+00 .9009234024E+00 .9146052204E+00 .9281742281E+00
+ .9413937071E+00 .9539314653E+00 .9653892774E+00 .9753678168E+00 .9835554525E+00
+ .9898119678E+00 .9942118121E+00 .9970243456E+00 .9986368776E+00 .9994536906E+00
+ .9998127716E+00 .9999467553E+00 .9999879572E+00 .9999979718E+00 .9999997742E+00
+ .9999999875E+00 .1766783538E+00 .2681705974E+00 .3310215263E+00 .3794504079E+00
+ .4191851503E+00 .4531081977E+00 .4828764476E+00 .5095321968E+00 .5337745973E+00
+ .5560950970E+00 .5768535397E+00 .5963231991E+00 .6147163430E+00 .6322001736E+00
+ .6489095456E+00 .6649566457E+00 .6804363770E+00 .6954290782E+00 .7100032644E+00
+ .7242188961E+00 .7381299148E+00 .7517854254E+00 .7652302706E+00 .7785058745E+00
+ .7916513897E+00 .8047046748E+00 .8177028562E+00 .8306825621E+00 .8436797967E+00
+ .8567289346E+00 .8698597689E+00 .8830911329E+00 .8964195281E+00 .9098019247E+00
+ .9231341707E+00 .9362304719E+00 .9488140040E+00 .9605308991E+00 .9709958978E+00
+ .9798662247E+00 .9869242818E+00 .9921385249E+00 .9956749186E+00 .9978508572E+00
+ .9990499101E+00 .9996330171E+00 .9998789154E+00 .9999668773E+00 .9999927987E+00
+ .9999988348E+00 .9999998754E+00 .9999999934E+00 .1779908188E+00 .2697988844E+00
+ .3327447119E+00 .3811829052E+00 .4208842067E+00 .4547490899E+00 .4844431674E+00
+ .5110131223E+00 .5351609361E+00 .5573800953E+00 .5780311486E+00 .5973872974E+00
+ .6156611932E+00 .6330207525E+00 .6496008514E+00 .6655129316E+00 .6808512682E+00
+ .6956961025E+00 .7101158796E+00 .7241699878E+00 .7379114001E+00 .7513882671E+00
+ .7646446134E+00 .7777209603E+00 .7906552575E+00 .8034838604E+00 .8162422061E+00
+ .8289651307E+00 .8416868486E+00 .8544402966E+00 .8672550452E+00 .8801525431E+00
+ .8931372625E+00 .9061826925E+00 .9192126599E+00 .9320815261E+00 .9445608746E+00
+ .9563432959E+00 .9670726532E+00 .9764024145E+00 .9840704509E+00 .9899662136E+00
+ .9941630091E+00 .9968993326E+00 .9985150234E+00 .9993682409E+00 .9997654609E+00
+ .9999256998E+00 .9999805019E+00 .9999959360E+00 .9999993699E+00 .9999999355E+00
+ .9999999967E+00 .1766654880E+00 .2677324884E+00 .3301125399E+00 .3780686005E+00
+ .4173360833E+00 .4507975261E+00 .4801081904E+00 .5063086571E+00 .5300962477E+00
+ .5519602113E+00 .5722584110E+00 .5912628448E+00 .6091846242E+00 .6261891356E+00
+ .6424090006E+00 .6579546096E+00 .6729196732E+00 .6873831954E+00 .7014115835E+00
+ .7150621450E+00 .7283862517E+00 .7414306836E+00 .7542377579E+00 .7668457056E+00
+ .7792897840E+00 .7916035011E+00 .8038193319E+00 .8159689804E+00 .8280835885E+00
+ .8401940178E+00 .8523308641E+00 .8645235620E+00 .8767977111E+00 .8891694525E+00
+ .9016355107E+00 .9141580018E+00 .9266449960E+00 .9389313419E+00 .9507684738E+00
+ .9618343318E+00 .9717717729E+00 .9802540253E+00 .9870613087E+00 .9921412951E+00
+ .9956266789E+00 .9977991555E+00 .9990134579E+00 .9996131676E+00 .9998702914E+00
+ .9999639037E+00 .9999920084E+00 .9999986820E+00 .9999998562E+00 .9999999922E+00
+ .1744025656E+00 .2647500997E+00 .3268203491E+00 .3746456404E+00 .4138796805E+00
+ .4473683904E+00 .4767476642E+00 .5030458469E+00 .5269534302E+00 .5489567332E+00
+ .5694105392E+00 .5885828306E+00 .6066828556E+00 .6238769730E+00 .6402984895E+00
+ .6560563027E+00 .6712422376E+00 .6859352950E+00 .7002034284E+00 .7141051065E+00
+ .7276916422E+00 .7410094308E+00 .7541011829E+00 .7670063668E+00 .7797616534E+00
+ .7924017040E+00 .8049600333E+00 .8174695957E+00 .8299630016E+00 .8424723459E+00
+ .8550283387E+00 .8676579648E+00 .8803795128E+00 .8931937233E+00 .9060703014E+00
+ .9189305787E+00 .9316298946E+00 .9439466849E+00 .9555874935E+00 .9662155987E+00
+ .9755039969E+00 .9832023629E+00 .9891973710E+00 .9935432073E+00 .9964481998E+00
+ .9982212663E+00 .9991989473E+00 .9996802179E+00 .9998887957E+00 .9999670475E+00
+ .9999919203E+00 .9999984279E+00 .9999997726E+00 .9999999783E+00 .9999999990E+00
+ .5180308273E+00 .3911409433E+00 .6623065771E+00 .3275839077E+00 .5276830711E+00
+ .7154100900E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .3064829269E+00 .4790404367E+00 .6116645349E+00 .7335119896E+00 .8644633765E+00
+ .2847780314E+00 .4417229868E+00 .5585875942E+00 .6599588880E+00 .7598329290E+00
+ .8732626067E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .0000000000E+00 .0000000000E+00 .0000000000E+00 .2646878980E+00 .4080337687E+00
+ .5111711389E+00 .5959093218E+00 .6718722435E+00 .7454229644E+00 .8231646462E+00
+ .9124178201E+00 .2546033114E+00 .3913489905E+00 .4887573172E+00 .5676597540E+00
+ .6368986717E+00 .7016670220E+00 .7663178755E+00 .8362788136E+00 .9181661252E+00
+ .2467729378E+00 .3785679295E+00 .4717338221E+00 .5464216594E+00 .6110104604E+00
+ .6701223172E+00 .7270866420E+00 .7852449699E+00 .8492767395E+00 .9248928954E+00
+ .2413825414E+00 .3700834490E+00 .4605077067E+00 .5324218467E+00 .5939494757E+00
+ .6494196758E+00 .7016924582E+00 .7531846666E+00 .8066605495E+00 .8661287676E+00
+ .9354167189E+00 .2353858201E+00 .3603992909E+00 .4478085379E+00 .5168975524E+00
+ .5755345234E+00 .6278290414E+00 .6763648641E+00 .7231065900E+00 .7699437594E+00
+ .8192703167E+00 .8747318121E+00 .9396919885E+00 .2318174748E+00 .3552985933E+00
+ .4412849551E+00 .5089020020E+00 .5659213984E+00 .6163516407E+00 .6626384852E+00
+ .7065253223E+00 .7494994205E+00 .7931440602E+00 .8395760654E+00 .8917652882E+00
+ .9506868735E+00 .2280253825E+00 .3499059512E+00 .4344956591E+00 .5007362468E+00
+ .5563073008E+00 .6051378190E+00 .6495803708E+00 .6912459849E+00 .7314072774E+00
+ .7712593419E+00 .8121779568E+00 .8560463960E+00 .9051956201E+00 .9587821006E+00
+ .2245887789E+00 .3458772700E+00 .4298365568E+00 .4953495830E+00 .5500747730E+00
+ .5979089372E+00 .6411566811E+00 .6813559051E+00 .7196623147E+00 .7570716078E+00
+ .7945952227E+00 .8334553746E+00 .8752474667E+00 .9212871218E+00 .9682970367E+00
+ .2203696922E+00 .3385897732E+00 .4202174709E+00 .4837300552E+00 .5366022091E+00
+ .5826230187E+00 .6240149915E+00 .6622362636E+00 .6983473300E+00 .7332105254E+00
+ .7676266955E+00 .8024665650E+00 .8388430885E+00 .8782888896E+00 .9222485013E+00
+ .9680627395E+00 .2169762745E+00 .3341782833E+00 .4149508010E+00 .4776367867E+00
+ .5296633747E+00 .5747854170E+00 .6151924615E+00 .6523042279E+00 .6871304816E+00
+ .7204603416E+00 .7529806730E+00 .7853714334E+00 .8184116299E+00 .8531180059E+00
+ .8908055821E+00 .9322363945E+00 .9735146960E+00 .2129798830E+00 .3307772795E+00
+ .4119065804E+00 .4747251279E+00 .5267224541E+00 .5716785253E+00 .6117881187E+00
+ .6484624944E+00 .6826898748E+00 .7152215099E+00 .7466820384E+00 .7776482663E+00
+ .8087217518E+00 .8406107084E+00 .8741895741E+00 .9102598341E+00 .9480824823E+00
+ .9818461334E+00 .2139559932E+00 .3253326980E+00 .4025195312E+00 .4627106869E+00
+ .5128367731E+00 .5564023578E+00 .5954463265E+00 .6312809155E+00 .6648241637E+00
+ .6967707176E+00 .7276914416E+00 .7581014754E+00 .7885175352E+00 .8195166552E+00
+ .8517844312E+00 .8860318974E+00 .9223521780E+00 .9583491078E+00 .9869886422E+00
+ .2079887342E+00 .3160756060E+00 .3909294150E+00 .4492484121E+00 .4977554813E+00
+ .5398458104E+00 .5774899214E+00 .6119499535E+00 .6441013436E+00 .6745966142E+00
+ .7039586604E+00 .7326417265E+00 .7610780817E+00 .7897231857E+00 .8191099582E+00
+ .8499084239E+00 .8829025517E+00 .9184917022E+00 .9548828945E+00 .9852817476E+00
+ .2053290422E+00 .3110796618E+00 .3850640717E+00 .4427848696E+00 .4907680501E+00
+ .5323475860E+00 .5694647521E+00 .6033616675E+00 .6348950656E+00 .6646965414E+00
+ .6932628432E+00 .7210067758E+00 .7483236611E+00 .7756045724E+00 .8032679181E+00
+ .8318115679E+00 .8618299525E+00 .8938685005E+00 .9277564161E+00 .9610530422E+00
+ .9875563221E+00 .2026693502E+00 .3072688845E+00 .3804297756E+00 .4374769293E+00
+ .4848586120E+00 .5258677867E+00 .5624196457E+00 .5957366454E+00 .6266577687E+00
+ .6557961481E+00 .6836272434E+00 .7105427681E+00 .7368800330E+00 .7630008922E+00
+ .7892477772E+00 .8160095373E+00 .8437527799E+00 .8730058214E+00 .9041221108E+00
+ .9364829019E+00 .9670799404E+00 .9899924800E+00 .2000096582E+00 .3044886928E+00
+ .3768659533E+00 .4331738723E+00 .4798865577E+00 .5202735907E+00 .5562267683E+00
+ .5889492285E+00 .6192630631E+00 .6477650166E+00 .6749135953E+00 .7010811363E+00
+ .7265885076E+00 .7517316518E+00 .7768044908E+00 .8021229083E+00 .8280527939E+00
+ .8550328267E+00 .8835331792E+00 .9137562384E+00 .9447413003E+00 .9729823242E+00
+ .9925691421E+00 .2009209231E+00 .3049795503E+00 .3767231016E+00 .4323320859E+00
+ .4783138555E+00 .5179447010E+00 .5531144115E+00 .5850204042E+00 .6144767624E+00
+ .6420697806E+00 .6682448301E+00 .6933577339E+00 .7177077049E+00 .7415616369E+00
+ .7651735794E+00 .7888027981E+00 .8127345111E+00 .8373044910E+00 .8629169855E+00
+ .8899975254E+00 .9186965195E+00 .9480400284E+00 .9746682844E+00 .9930500128E+00
+ .1950278135E+00 .2965775128E+00 .3667754917E+00 .4212724084E+00 .4663790175E+00
+ .5052777129E+00 .5398053947E+00 .5711262208E+00 .6000313286E+00 .6270887019E+00
+ .6527277199E+00 .6772894705E+00 .7010573458E+00 .7242793157E+00 .7471860423E+00
+ .7700058156E+00 .7929801123E+00 .8163832259E+00 .8405454006E+00 .8658656536E+00
+ .8927467810E+00 .9212572114E+00 .9502426509E+00 .9761588165E+00 .9936149257E+00
+ .1981493393E+00 .3000435369E+00 .3699869467E+00 .4239962432E+00 .4684934776E+00
+ .5067038993E+00 .5404821860E+00 .5709991533E+00 .5990466215E+00 .6251891085E+00
+ .6498493917E+00 .6733592307E+00 .6959891513E+00 .7179695971E+00 .7395080424E+00
+ .7608015978E+00 .7820482312E+00 .8034605522E+00 .8252832100E+00 .8478142060E+00
+ .8714219924E+00 .8965054713E+00 .9232251572E+00 .9507099706E+00 .9758346487E+00
+ .9933261384E+00 .1918523917E+00 .2919378681E+00 .3611117165E+00 .4147679900E+00
+ .4591221511E+00 .4973096518E+00 .5311395274E+00 .5617553572E+00 .5899318563E+00
+ .6162231841E+00 .6410434223E+00 .6647158949E+00 .6875045421E+00 .7096333869E+00
+ .7313010535E+00 .7526934381E+00 .7739943771E+00 .7953961026E+00 .8171120253E+00
+ .8393913493E+00 .8625269540E+00 .8868205263E+00 .9124036129E+00 .9387531249E+00
+ .9639228774E+00 .9842769057E+00 .9962620033E+00 .1891368960E+00 .2878567004E+00
+ .3560840151E+00 .4089901348E+00 .4527029471E+00 .4903140861E+00 .5236071506E+00
+ .5537086472E+00 .5813806528E+00 .6071677410E+00 .6314753992E+00 .6546179238E+00
+ .6768501633E+00 .6983865770E+00 .7194140022E+00 .7401033237E+00 .7606194826E+00
+ .7811297224E+00 .8018129682E+00 .8228719623E+00 .8445464562E+00 .8671177437E+00
+ .8908657385E+00 .9158759663E+00 .9415491496E+00 .9658783142E+00 .9853048038E+00
+ .9965567872E+00 .1897512283E+00 .2883371174E+00 .3563151762E+00 .4089378592E+00
+ .4523520190E+00 .4896538068E+00 .5226272357E+00 .5523977642E+00 .5797245497E+00
+ .6051487501E+00 .6290729850E+00 .6518073829E+00 .6736007022E+00 .6946608010E+00
+ .7151669718E+00 .7352797093E+00 .7551500484E+00 .7749273151E+00 .7947662182E+00
+ .8148356043E+00 .8353290343E+00 .8564732770E+00 .8785184708E+00 .9016592439E+00
+ .9257844309E+00 .9499749992E+00 .9719834790E+00 .9885613375E+00 .9974876627E+00
+ .1885403501E+00 .2867053477E+00 .3544064628E+00 .4068006979E+00 .4500049805E+00
+ .4871020405E+00 .5198682532E+00 .5494245001E+00 .5765259981E+00 .6017096043E+00
+ .6253745074E+00 .6478276517E+00 .6693130347E+00 .6900326013E+00 .7101594360E+00
+ .7298463578E+00 .7492338560E+00 .7684575132E+00 .7876541903E+00 .8069684231E+00
+ .8265603996E+00 .8466142291E+00 .8673395800E+00 .8889431317E+00 .9115113196E+00
+ .9347182434E+00 .9573628599E+00 .9770964553E+00 .9911234228E+00 .9981667646E+00
+ .1880971549E+00 .2850501090E+00 .3523426140E+00 .4044492002E+00 .4473945285E+00
+ .4842390828E+00 .5167510963E+00 .5460472575E+00 .5728801402E+00 .5977836681E+00
+ .6211537207E+00 .6432808891E+00 .6644190254E+00 .6847717649E+00 .7045055210E+00
+ .7237661784E+00 .7426860184E+00 .7613897674E+00 .7800006438E+00 .7986454717E+00
+ .8174605108E+00 .8366014861E+00 .8562490308E+00 .8765809374E+00 .8977331030E+00
+ .9196425426E+00 .9417617197E+00 .9627329469E+00 .9803804800E+00 .9925129028E+00
+ .9984631190E+00 .1876539596E+00 .2839427303E+00 .3508494646E+00 .4026340915E+00
+ .4452836783E+00 .4818454096E+00 .5140803304E+00 .5431002628E+00 .5696543472E+00
+ .5942732360E+00 .6173491723E+00 .6391831310E+00 .6600128835E+00 .6800315577E+00
+ .6994015831E+00 .7182641883E+00 .7367454210E+00 .7549522917E+00 .7730203297E+00
+ .7910626147E+00 .8091981288E+00 .8275570948E+00 .8462859276E+00 .8655461712E+00
+ .8854913793E+00 .9061877992E+00 .9274352811E+00 .9484936019E+00 .9678768013E+00
+ .9835659608E+00 .9939007698E+00 .9987755429E+00 .1872107644E+00 .2833334059E+00
+ .3498751401E+00 .4013066228E+00 .4436270211E+00 .4798783670E+00 .5118153825E+00
+ .5405444188E+00 .5668104432E+00 .5911404952E+00 .6139230329E+00 .6354555870E+00
+ .6559510123E+00 .6756303028E+00 .6946497298E+00 .7131447026E+00 .7312357131E+00
+ .7490330280E+00 .7666410413E+00 .7841629713E+00 .8017045100E+00 .8193781551E+00
+ .8373075468E+00 .8556461302E+00 .8745362825E+00 .8941009870E+00 .9143377216E+00
+ .9349203048E+00 .9549421488E+00 .9728149887E+00 .9866618706E+00 .9952871511E+00
+ .9991025673E+00 .1867675692E+00 .2831781957E+00 .3493738681E+00 .4004237691E+00
+ .4423844896E+00 .4783003184E+00 .5099204512E+00 .5383452145E+00 .5643147437E+00
+ .5883521470E+00 .6108419232E+00 .6320778886E+00 .6522920826E+00 .6716716651E+00
+ .6903713535E+00 .7085237616E+00 .7262461578E+00 .7436444842E+00 .7608172756E+00
+ .7778600003E+00 .7948688254E+00 .8119439757E+00 .8291936435E+00 .8467380888E+00
+ .8647106847E+00 .8832464988E+00 .9024363065E+00 .9222097786E+00 .9421247667E+00
+ .9611324047E+00 .9775656571E+00 .9896761221E+00 .9966722100E+00 .9994429128E+00
+ .1789174416E+00 .2722468287E+00 .3366538183E+00 .3864887097E+00 .4275498560E+00
+ .4627620146E+00 .4938093339E+00 .5217531537E+00 .5473095208E+00 .5709848723E+00
+ .5931504119E+00 .6140902723E+00 .6340303073E+00 .6531524104E+00 .6716053392E+00
+ .6895161622E+00 .7069980140E+00 .7241529862E+00 .7410745858E+00 .7578521206E+00
+ .7745750099E+00 .7913356571E+00 .8082323327E+00 .8253733998E+00 .8428819463E+00
+ .8608973786E+00 .8795647927E+00 .8989896592E+00 .9191195260E+00 .9395252319E+00
+ .9591466548E+00 .9762552813E+00 .9889846035E+00 .9964164427E+00 .9993938692E+00
+ .1827783213E+00 .2774143240E+00 .3424452454E+00 .3926036599E+00 .4338219039E+00
+ .4690850622E+00 .5001094980E+00 .5279744359E+00 .5534055339E+00 .5769162829E+00
+ .5988832486E+00 .6195921345E+00 .6392681953E+00 .6580935787E+00 .6762173307E+00
+ .6937644996E+00 .7108442966E+00 .7275547305E+00 .7439849092E+00 .7602179234E+00
+ .7763345243E+00 .7924161411E+00 .8085472361E+00 .8248181547E+00 .8413286330E+00
+ .8581902397E+00 .8755229650E+00 .8934338655E+00 .9119536579E+00 .9309020757E+00
+ .9496866989E+00 .9671468540E+00 .9816892384E+00 .9919169731E+00 .9975151029E+00
+ .9996051389E+00 .1805971966E+00 .2739919426E+00 .3385315793E+00 .3883898436E+00
+ .4293879716E+00 .4644724902E+00 .4953424011E+00 .5230676324E+00 .5483673999E+00
+ .5717508323E+00 .5935922318E+00 .6141751454E+00 .6337217487E+00 .6524117088E+00
+ .6703928576E+00 .6877886851E+00 .7047055138E+00 .7212381094E+00 .7374727401E+00
+ .7534892756E+00 .7693639094E+00 .7851721593E+00 .8009913545E+00 .8169029029E+00
+ .8329949349E+00 .8493647105E+00 .8661178850E+00 .8833574275E+00 .9011474063E+00
+ .9194300516E+00 .9378844551E+00 .9557667229E+00 .9718658297E+00 .9847665897E+00
+ .9934711366E+00 .9980477487E+00 .9996969924E+00 .1784160718E+00 .2713958753E+00
+ .3354582551E+00 .3849428531E+00 .4256437505E+00 .4604821659E+00 .4911406922E+00
+ .5186785687E+00 .5438068814E+00 .5670290077E+00 .5887159611E+00 .6091483658E+00
+ .6285447286E+00 .6470817240E+00 .6649055884E+00 .6821381588E+00 .6988829501E+00
+ .7152314903E+00 .7312672140E+00 .7470670710E+00 .7627033273E+00 .7782463675E+00
+ .7937673637E+00 .8093402788E+00 .8250439268E+00 .8409644246E+00 .8571966713E+00
+ .8738408177E+00 .8909845463E+00 .9086541427E+00 .9267144134E+00 .9447193207E+00
+ .9617823478E+00 .9766254418E+00 .9879640337E+00 .9951544004E+00 .9986567350E+00
+ .9998093251E+00 .1782989297E+00 .2707192639E+00 .3342415761E+00 .3832267932E+00
+ .4234622310E+00 .4578611360E+00 .4880995236E+00 .5152311252E+00 .5399626977E+00
+ .5627944211E+00 .5840944648E+00 .6041404426E+00 .6231480096E+00 .6412915943E+00
+ .6587155019E+00 .6755391840E+00 .6918630822E+00 .7077755030E+00 .7233568576E+00
+ .7386807739E+00 .7538151856E+00 .7688250234E+00 .7837750978E+00 .7987318806E+00
+ .8137648913E+00 .8289487898E+00 .8443658696E+00 .8601071476E+00 .8762682329E+00
+ .8929314691E+00 .9101187687E+00 .9276975177E+00 .9452420175E+00 .9619124016E+00
+ .9764932225E+00 .9877388088E+00 .9949763691E+00 .9985752725E+00 .9997919273E+00
+ .1774688962E+00 .2687227483E+00 .3318571131E+00 .3805930949E+00 .4206227854E+00
+ .4548337785E+00 .4848776930E+00 .5117955485E+00 .5363290502E+00 .5589702962E+00
+ .5800826097E+00 .5999412323E+00 .6187515040E+00 .6366896607E+00 .6539035742E+00
+ .6705110361E+00 .6866108219E+00 .7022882315E+00 .7176163750E+00 .7326708902E+00
+ .7475176032E+00 .7622176368E+00 .7768306968E+00 .7914173642E+00 .8060420282E+00
+ .8207709196E+00 .8356758322E+00 .8508357921E+00 .8663362731E+00 .8822649534E+00
+ .8986810361E+00 .9155543180E+00 .9326826829E+00 .9495710525E+00 .9653605662E+00
+ .9788764186E+00 .9890829773E+00 .9955488335E+00 .9987361034E+00 .9998138388E+00
+ .1766388627E+00 .2669531337E+00 .3297132464E+00 .3781893645E+00 .4180008852E+00
+ .4520136923E+00 .4818847231E+00 .5086476331E+00 .5329733245E+00 .5554169173E+00
+ .5763364212E+00 .5960044268E+00 .6146321714E+00 .6323876020E+00 .6494037929E+00
+ .6657956488E+00 .6816739393E+00 .6971212651E+00 .7122111502E+00 .7270113624E+00
+ .7415848899E+00 .7559860644E+00 .7702758303E+00 .7845149592E+00 .7987603515E+00
+ .8130714098E+00 .8275114881E+00 .8421497817E+00 .8570694468E+00 .8723505762E+00
+ .8880619788E+00 .9042352743E+00 .9208002368E+00 .9374917236E+00 .9537530666E+00
+ .9686402942E+00 .9811169262E+00 .9903489680E+00 .9960930036E+00 .9988920867E+00
+ .9998358861E+00 .1758088292E+00 .2653941782E+00 .3277927883E+00 .3759991769E+00
+ .4155809889E+00 .4493860492E+00 .4790625158E+00 .5056505571E+00 .5298486441E+00
+ .5521148977E+00 .5728368944E+00 .5923113184E+00 .6107473331E+00 .6283100696E+00
+ .6451353486E+00 .6613118778E+00 .6769731024E+00 .6921966807E+00 .7070474894E+00
+ .7216018461E+00 .7359197440E+00 .7500568503E+00 .7640654205E+00 .7779965265E+00
+ .7919020312E+00 .8058356301E+00 .8198582026E+00 .8340304572E+00 .8484180673E+00
+ .8631123569E+00 .8781775860E+00 .8936735881E+00 .9096081337E+00 .9258700073E+00
+ .9421241373E+00 .9577059369E+00 .9717235633E+00 .9832249072E+00 .9915423355E+00
+ .9966109268E+00 .9990435669E+00 .9998580587E+00 .1749787957E+00 .2640311979E+00
+ .3260801506E+00 .3740076351E+00 .4133490009E+00 .4469374454E+00 .4764127530E+00
+ .5028100288E+00 .5268245155E+00 .5489450466E+00 .5695305307E+00 .5888302998E+00
+ .6070277082E+00 .6243685433E+00 .6409814876E+00 .6569767591E+00 .6724490931E+00
+ .6874786308E+00 .7021340706E+00 .7164773575E+00 .7305666503E+00 .7444563703E+00
+ .7581921284E+00 .7718287077E+00 .7854209161E+00 .7990181188E+00 .8126717691E+00
+ .8264363695E+00 .8403709200E+00 .8545399470E+00 .8690124265E+00 .8838556111E+00
+ .8991187936E+00 .9148184286E+00 .9307625279E+00 .9465369208E+00 .9614584830E+00
+ .9746371687E+00 .9852096241E+00 .9926681605E+00 .9971044071E+00 .9991908590E+00
+ .9998803499E+00 .1741487623E+00 .2628508326E+00 .3245611749E+00 .3722011936E+00
+ .4112921234E+00 .4446556637E+00 .4739236747E+00 .5001259268E+00 .5239542851E+00
+ .5458785831E+00 .5662252605E+00 .5853352330E+00 .6034126392E+00 .6206186888E+00
+ .6370835544E+00 .6529108224E+00 .6681935984E+00 .6830276831E+00 .6974736155E+00
+ .7115922740E+00 .7254514509E+00 .7391032291E+00 .7525960973E+00 .7659755281E+00
+ .7792859757E+00 .7925727190E+00 .8058826455E+00 .8192685463E+00 .8327866171E+00
+ .8464931216E+00 .8604591621E+00 .8747499796E+00 .8894194696E+00 .9044920044E+00
+ .9199142547E+00 .9354890525E+00 .9507741185E+00 .9650328602E+00 .9773926054E+00
+ .9870795075E+00 .9937310367E+00 .9975751269E+00 .9993342477E+00 .9999027503E+00
+ .1733187288E+00 .2618409176E+00 .3232229373E+00 .3705675007E+00 .4093986653E+00
+ .4425295959E+00 .4715845634E+00 .4975878350E+00 .5211876711E+00 .5428923618E+00
+ .5630925481E+00 .5820495021E+00 .5999692459E+00 .6170143171E+00 .6333146683E+00
+ .6489791030E+00 .6640823588E+00 .6787327047E+00 .6929972856E+00 .7069341783E+00
+ .7205967478E+00 .7340359092E+00 .7472995943E+00 .7604286590E+00 .7734700275E+00
+ .7864707993E+00 .7994745861E+00 .8125267732E+00 .8256751140E+00 .8389709651E+00
+ .8524702650E+00 .8662474463E+00 .8803554554E+00 .8948410310E+00 .9097076895E+00
+ .9248654651E+00 .9400639417E+00 .9548328934E+00 .9684408912E+00 .9800004890E+00
+ .9888421674E+00 .9947351840E+00 .9980245947E+00 .9994739940E+00 .9999252523E+00
+ .1724886953E+00 .2609903194E+00 .3220536587E+00 .3690953160E+00 .4076579802E+00
+ .4405490623E+00 .4693856453E+00 .4951608959E+00 .5185701051E+00 .5401257092E+00
+ .5601710536E+00 .5789689846E+00 .5967268934E+00 .6136086273E+00 .6297299338E+00
+ .6452148461E+00 .6601580679E+00 .6746399825E+00 .6887288667E+00 .7024826216E+00
+ .7159512052E+00 .7291829406E+00 .7422298748E+00 .7551353443E+00 .7679398275E+00
+ .7806828913E+00 .7934050176E+00 .8061491947E+00 .8189610533E+00 .8318872187E+00
+ .8449783302E+00 .8582894923E+00 .8718790715E+00 .8858039928E+00 .9001096292E+00
+ .9147724417E+00 .9296686174E+00 .9444997378E+00 .9587439233E+00 .9716764473E+00
+ .9824703838E+00 .9905046101E+00 .9956844065E+00 .9984542063E+00 .9996103353E+00
+ .9999478502E+00 .1716586618E+00 .2602888683E+00 .3210425518E+00 .3677743042E+00
+ .4060603128E+00 .4387047975E+00 .4673179633E+00 .4929123872E+00 .5161686652E+00
+ .5375646057E+00 .5574473264E+00 .5760805869E+00 .5936727383E+00 .6103889245E+00
+ .6263589448E+00 .6416882481E+00 .6564682988E+00 .6707802788E+00 .6846936992E+00
+ .6982664270E+00 .7115487502E+00 .7245880351E+00 .7374301470E+00 .7501181793E+00
+ .7626917562E+00 .7751884932E+00 .7876462564E+00 .8001043975E+00 .8126039069E+00
+ .8251876807E+00 .8379015549E+00 .8507955500E+00 .8639241404E+00 .8773439157E+00
+ .8911055977E+00 .9052349752E+00 .9196959972E+00 .9343332560E+00 .9488052750E+00
+ .9625444617E+00 .9748004935E+00 .9848111392E+00 .9920732559E+00 .9965822201E+00
+ .9988652181E+00 .9997434906E+00 .9999705375E+00 .1712286725E+00 .2593166536E+00
+ .3198930272E+00 .3665172071E+00 .4047198849E+00 .4372927168E+00 .4658415819E+00
+ .4913758461E+00 .5145733266E+00 .5359119515E+00 .5557400837E+00 .5743198474E+00
+ .5918562500E+00 .6085138901E+00 .6244250470E+00 .6396963381E+00 .6544168608E+00
+ .6686646587E+00 .6825087369E+00 .6960086622E+00 .7092155633E+00 .7221752638E+00
+ .7349311408E+00 .7475248645E+00 .7599958453E+00 .7723813030E+00 .7847175475E+00
+ .7970415176E+00 .8093916679E+00 .8218083516E+00 .8343343581E+00 .8470157437E+00
+ .8599022206E+00 .8730455984E+00 .8864937304E+00 .9002757919E+00 .9143735975E+00
+ .9286760350E+00 .9429232967E+00 .9566650851E+00 .9692740952E+00 .9800535740E+00
+ .9884369079E+00 .9942056031E+00 .9976003319E+00 .9992329309E+00 .9998323459E+00
+ .9999812683E+00 .1707986832E+00 .2589324325E+00 .3193389515E+00 .3658018629E+00
+ .4038655700E+00 .4363182232E+00 .4647618718E+00 .4902016669E+00 .5133113244E+00
+ .5345675839E+00 .5543193291E+00 .5728269071E+00 .5902915891E+00 .6068764312E+00
+ .6227154154E+00 .6379165233E+00 .6525671218E+00 .6667420751E+00 .6805090108E+00
+ .6939284679E+00 .7070525968E+00 .7199263908E+00 .7325910508E+00 .7450864365E+00
+ .7574512270E+00 .7697222188E+00 .7819345922E+00 .7941232718E+00 .8063242858E+00
+ .8185754692E+00 .8309168485E+00 .8433912231E+00 .8560447757E+00 .8689266536E+00
+ .8820855235E+00 .8955596850E+00 .9093557006E+00 .9234107188E+00 .9375395606E+00
+ .9513822210E+00 .9643872384E+00 .9758758203E+00 .9852076622E+00 .9920045190E+00
+ .9963175394E+00 .9986200715E+00 .9996074637E+00 .9999249703E+00 .9999927985E+00
+ .1649111334E+00 .2507977032E+00 .3098998750E+00 .3554679488E+00 .3928591565E+00
+ .4247768616E+00 .4527768086E+00 .4778354135E+00 .5006102683E+00 .5215689783E+00
+ .5410511671E+00 .5593076943E+00 .5765347773E+00 .5928951361E+00 .6085222084E+00
+ .6235200151E+00 .6379706050E+00 .6519459542E+00 .6655139974E+00 .6787361793E+00
+ .6916635279E+00 .7043378705E+00 .7167972181E+00 .7290797854E+00 .7412237839E+00
+ .7532651843E+00 .7652370222E+00 .7771711024E+00 .7891002244E+00 .8010591814E+00
+ .8130846915E+00 .8252154997E+00 .8374932738E+00 .8499637860E+00 .8626773184E+00
+ .8756868803E+00 .8890416487E+00 .9027708841E+00 .9168520778E+00 .9311599020E+00
+ .9454041437E+00 .9590859749E+00 .9715218744E+00 .9819781728E+00 .9899039245E+00
+ .9951616131E+00 .9981067447E+00 .9994358794E+00 .9998867515E+00 .9999885572E+00
+ .1671234511E+00 .2536960143E+00 .3131247755E+00 .3588727265E+00 .3963672632E+00
+ .4283414788E+00 .4563679370E+00 .4814335943E+00 .5041990295E+00 .5251325558E+00
+ .5445789416E+00 .5627948972E+00 .5799760649E+00 .5962804222E+00 .6118405676E+00
+ .6267652888E+00 .6411407703E+00 .6550376064E+00 .6685191786E+00 .6816446877E+00
+ .6944669360E+00 .7070304180E+00 .7193732637E+00 .7315312025E+00 .7435398115E+00
+ .7554340012E+00 .7672467761E+00 .7790093694E+00 .7907527354E+00 .8025090127E+00
+ .8143121294E+00 .8261979418E+00 .8382046369E+00 .8503734686E+00 .8627490881E+00
+ .8753781179E+00 .8883037478E+00 .9015526694E+00 .9151095534E+00 .9288761217E+00
+ .9426200461E+00 .9559343763E+00 .9682442562E+00 .9788974459E+00 .9873409440E+00
+ .9933223273E+00 .9970048382E+00 .9989088361E+00 .9996986482E+00 .9999441347E+00
+ .9999948033E+00 .1677447873E+00 .2544092120E+00 .3138223582E+00 .3595164508E+00
+ .3969395118E+00 .4288322289E+00 .4567708151E+00 .4817450145E+00 .5044160782E+00
+ .5252510543E+00 .5445949250E+00 .5627066473E+00 .5797825355E+00 .5959781929E+00
+ .6114239939E+00 .6262294955E+00 .6404831015E+00 .6542556851E+00 .6676083352E+00
+ .6805978685E+00 .6932767205E+00 .7056904135E+00 .7178773997E+00 .7298720576E+00
+ .7417078430E+00 .7534180888E+00 .7650349846E+00 .7765889061E+00 .7881091782E+00
+ .7996255440E+00 .8111691724E+00 .8227729645E+00 .8344717361E+00 .8463027165E+00
+ .8583060693E+00 .8705244771E+00 .8830001967E+00 .8957669659E+00 .9088328931E+00
+ .9221504998E+00 .9355741400E+00 .9488153393E+00 .9614213489E+00 .9728115455E+00
+ .9823941849E+00 .9897435474E+00 .9947622899E+00 .9977318758E+00 .9992041111E+00
+ .9997886953E+00 .9999624021E+00 .9999966474E+00 .1690448842E+00 .2560372350E+00
+ .3155587637E+00 .3612758500E+00 .3986794172E+00 .4305277941E+00 .4584055810E+00
+ .4833081221E+00 .5059000921E+00 .5266488126E+00 .5458990925E+00 .5639120172E+00
+ .5808862568E+00 .5969767685E+00 .6123113854E+00 .6269989197E+00 .6411296671E+00
+ .6547762089E+00 .6679987953E+00 .6808517934E+00 .6933861293E+00 .7056476930E+00
+ .7176757978E+00 .7295044917E+00 .7411655685E+00 .7526904931E+00 .7641102438E+00
+ .7754544131E+00 .7867511967E+00 .7980284524E+00 .8093148867E+00 .8206406624E+00
+ .8320375869E+00 .8435393872E+00 .8551821575E+00 .8670044004E+00 .8790454888E+00
+ .8913406478E+00 .9039095140E+00 .9167347100E+00 .9297285406E+00 .9426921998E+00
+ .9552832006E+00 .9670182798E+00 .9773393530E+00 .9857471722E+00 .9919629942E+00
+ .9960396434E+00 .9983496620E+00 .9994440080E+00 .9998585501E+00 .9999759201E+00
+ .9999979482E+00 .1678526733E+00 .2541968556E+00 .3132334887E+00 .3585430461E+00
+ .3955834513E+00 .4270972446E+00 .4546605062E+00 .4792616247E+00 .5015598465E+00
+ .5220210643E+00 .5409901319E+00 .5587252304E+00 .5754203026E+00 .5912283892E+00
+ .6062790495E+00 .6206825648E+00 .6345273433E+00 .6478819922E+00 .6608041153E+00
+ .6733482188E+00 .6855665287E+00 .6975049174E+00 .7092005590E+00 .7206844633E+00
+ .7319861453E+00 .7431360328E+00 .7541644315E+00 .7650994620E+00 .7759666577E+00
+ .7867905060E+00 .7975962572E+00 .8084106179E+00 .8192614993E+00 .8301778585E+00
+ .8411902225E+00 .8523315995E+00 .8636380919E+00 .8751485527E+00 .8869023013E+00
+ .8989328038E+00 .9112537375E+00 .9238333815E+00 .9365560984E+00 .9491782011E+00
+ .9612993492E+00 .9723823406E+00 .9818486773E+00 .9892421867E+00 .9943980672E+00
+ .9975210256E+00 .9991092924E+00 .9997574161E+00 .9999556489E+00 .9999959303E+00
+ .1656458112E+00 .2512502469E+00 .3099369454E+00 .3550671967E+00 .3920215223E+00
+ .4235062479E+00 .4510771826E+00 .4757136417E+00 .4980706855E+00 .5186067371E+00
+ .5376589105E+00 .5554855060E+00 .5722856452E+00 .5882122109E+00 .6033872899E+00
+ .6179152577E+00 .6318869017E+00 .6453775421E+00 .6584473260E+00 .6711466123E+00
+ .6835220343E+00 .6956183327E+00 .7074762765E+00 .7191307785E+00 .7306119347E+00
+ .7419479177E+00 .7531669871E+00 .7642974383E+00 .7753666150E+00 .7864006286E+00
+ .7974251982E+00 .8084668220E+00 .8195534797E+00 .8307148402E+00 .8419824178E+00
+ .8533898698E+00 .8649730016E+00 .8767684403E+00 .8888093132E+00 .9011154766E+00
+ .9136753538E+00 .9264176571E+00 .9391759974E+00 .9516581743E+00 .9634415684E+00
+ .9740183359E+00 .9828994468E+00 .9897537882E+00 .9945240116E+00 .9974540763E+00
+ .9990028958E+00 .9996853127E+00 .9999252011E+00 .9999881289E+00 .9999990586E+00
+ .6441321461E+00 .4869430259E+00 .7949981370E+00 .3996743476E+00 .6410416300E+00
+ .8451421048E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .3706064816E+00 .5779282459E+00 .7345329894E+00 .8642184611E+00 .9591373438E+00
+ .3405739657E+00 .5273909345E+00 .6660161608E+00 .7837352698E+00 .8871216454E+00
+ .9653643800E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .0000000000E+00 .0000000000E+00 .0000000000E+00 .3138584252E+00 .4827765839E+00
+ .6041517169E+00 .7036430573E+00 .7916792157E+00 .8716674655E+00 .9394161352E+00
+ .9840366059E+00 .3002759554E+00 .4605948748E+00 .5746439129E+00 .6669301268E+00
+ .7476636742E+00 .8219008799E+00 .8906043383E+00 .9488234084E+00 .9866953744E+00
+ .2898869628E+00 .4437819402E+00 .5524213183E+00 .6394378879E+00 .7146078143E+00
+ .7830900512E+00 .8475520874E+00 .9075328332E+00 .9576559077E+00 .9893048496E+00
+ .2829882405E+00 .4328329246E+00 .5379719323E+00 .6215209701E+00 .6929549326E+00
+ .7572488468E+00 .8173256279E+00 .8743258587E+00 .9264686481E+00 .9680501453E+00
+ .9924613647E+00 .2750900629E+00 .4201897655E+00 .5215028650E+00 .6015135501E+00
+ .6693790927E+00 .7298635220E+00 .7858697579E+00 .8391885514E+00 .8901883587E+00
+ .9366186617E+00 .9729964930E+00 .9937825821E+00 .2709008651E+00 .4139318522E+00
+ .5133991576E+00 .5915568050E+00 .6574298736E+00 .7156637523E+00 .7690540111E+00
+ .8194122100E+00 .8676345511E+00 .9130656261E+00 .9526045287E+00 .9812895824E+00
+ .9960774729E+00 .2664704564E+00 .4073612262E+00 .5050134274E+00 .5814274526E+00
+ .6455017489E+00 .7017832449E+00 .7529788129E+00 .8008676809E+00 .8465633539E+00
+ .8902640280E+00 .9305659786E+00 .9640584210E+00 .9867212890E+00 .9974269346E+00
+ .2631653347E+00 .4031407343E+00 .4998941188E+00 .5753415623E+00 .6383384338E+00
+ .6933860296E+00 .7431374534E+00 .7893225034E+00 .8330792960E+00 .8748940278E+00
+ .9141801155E+00 .9488063027E+00 .9754786174E+00 .9917640815E+00 .9985707461E+00
+ .2571779713E+00 .3932928047E+00 .4871408959E+00 .5601099711E+00 .6208247764E+00
+ .6736538189E+00 .7211567405E+00 .7650037785E+00 .8063680405E+00 .8460444357E+00
+ .8843051082E+00 .9204698800E+00 .9524633355E+00 .9771727514E+00 .9923047674E+00
+ .9986573772E+00 .2535555174E+00 .3882783569E+00 .4809795151E+00 .5528744276E+00
+ .6125166076E+00 .6642268710E+00 .7105229628E+00 .7530332392E+00 .7928972112E+00
+ .8309300417E+00 .8675993222E+00 .9027806452E+00 .9353534163E+00 .9630453414E+00
+ .9832214255E+00 .9947064100E+00 .9991426989E+00 .2508486559E+00 .3861022720E+00
+ .4790453242E+00 .5509682534E+00 .6104792377E+00 .6619184109E+00 .7078041738E+00
+ .7497523022E+00 .7888790325E+00 .8259743806E+00 .8615135240E+00 .8954984598E+00
+ .9271724747E+00 .9548627673E+00 .9764130486E+00 .9903917262E+00 .9973244993E+00
+ .9996226299E+00 .2476807555E+00 .3768702919E+00 .4665584794E+00 .5366206496E+00
+ .5950733492E+00 .6459738098E+00 .6916853336E+00 .7337295289E+00 .7731600797E+00
+ .8107237811E+00 .8468761740E+00 .8816526400E+00 .9144310013E+00 .9437757524E+00
+ .9677125764E+00 .9846302856E+00 .9943819284E+00 .9986134588E+00 .9998282969E+00
+ .2402333746E+00 .3654102106E+00 .4522591124E+00 .5200414617E+00 .5765203934E+00
+ .6256202808E+00 .6696218291E+00 .7099889453E+00 .7477377054E+00 .7836166813E+00
+ .8181836995E+00 .8517883458E+00 .8844372722E+00 .9155544404E+00 .9437908627E+00
+ .9672110889E+00 .9840991911E+00 .9940623727E+00 .9984991558E+00 .9998092258E+00
+ .2372142839E+00 .3596905855E+00 .4455308112E+00 .5126207692E+00 .5684954786E+00
+ .6170077977E+00 .6604038637E+00 .7001236040E+00 .7371617470E+00 .7722471356E+00
+ .8059280631E+00 .8385724194E+00 .8703081859E+00 .9008484443E+00 .9293114503E+00
+ .9542529827E+00 .9740678518E+00 .9877381975E+00 .9955024036E+00 .9988713607E+00
+ .9998557713E+00 .2341951931E+00 .3553384264E+00 .4402228089E+00 .5065321103E+00
+ .5617112226E+00 .6095650241E+00 .6523089092E+00 .6913593451E+00 .7276906269E+00
+ .7620136054E+00 .7948666608E+00 .8266476902E+00 .8575553756E+00 .8875379335E+00
+ .9160415296E+00 .9419628183E+00 .9638342341E+00 .9803682602E+00 .9911345031E+00
+ .9968902986E+00 .9992495382E+00 .9999069085E+00 .2311761024E+00 .3521753747E+00
+ .4361498469E+00 .5016017554E+00 .5560057986E+00 .6031394079E+00 .6451904865E+00
+ .6835525310E+00 .7191802349E+00 .7527678857E+00 .7848437511E+00 .8158124610E+00
+ .8459469101E+00 .8753159021E+00 .9036458874E+00 .9301754105E+00 .9536527541E+00
+ .9726495486E+00 .9861848266E+00 .9943197487E+00 .9982328502E+00 .9996329118E+00
+ .9999620385E+00 .2311494540E+00 .3511896748E+00 .4341159391E+00 .4985108969E+00
+ .5518548188E+00 .5979171075E+00 .6388742876E+00 .6761070761E+00 .7105562201E+00
+ .7429012780E+00 .7736577038E+00 .8032289790E+00 .8319234637E+00 .8599286746E+00
+ .8872294272E+00 .9134763147E+00 .9378715779E+00 .9592133569E+00 .9762304895E+00
+ .9881546731E+00 .9951969505E+00 .9985261774E+00 .9996978423E+00 .9999691306E+00
+ .2247441756E+00 .3420696504E+00 .4233357934E+00 .4865486615E+00 .5389740440E+00
+ .5842787135E+00 .6245816733E+00 .6612273655E+00 .6951312880E+00 .7269539344E+00
+ .7571961490E+00 .7862533798E+00 .8144421595E+00 .8419970810E+00 .8690258067E+00
+ .8954111135E+00 .9206795753E+00 .9439215903E+00 .9639031699E+00 .9794586456E+00
+ .9900423927E+00 .9960856344E+00 .9988388663E+00 .9997704224E+00 .9999774247E+00
+ .2268279382E+00 .3438535952E+00 .4243434660E+00 .4866025143E+00 .5379797784E+00
+ .5821696936E+00 .6212991848E+00 .6567117590E+00 .6893169939E+00 .7197659836E+00
+ .7485476149E+00 .7760449120E+00 .8025683543E+00 .8283711365E+00 .8536418096E+00
+ .8784619479E+00 .9027180431E+00 .9259828986E+00 .9474386377E+00 .9659654726E+00
+ .9804828018E+00 .9904478494E+00 .9962015381E+00 .9988580112E+00 .9997707315E+00
+ .9999770680E+00 .2210740672E+00 .3366678491E+00 .4167221027E+00 .4789435245E+00
+ .5304846546E+00 .5749555515E+00 .6144408551E+00 .6502605524E+00 .6833100816E+00
+ .7142314596E+00 .7435072041E+00 .7715149487E+00 .7985586138E+00 .8248801390E+00
+ .8506470080E+00 .8759056900E+00 .9004974109E+00 .9239605967E+00 .9454904287E+00
+ .9640530633E+00 .9786996456E+00 .9889772986E+00 .9951923647E+00 .9983144438E+00
+ .9995571357E+00 .9999228452E+00 .9999933400E+00 .2178648986E+00 .3318297870E+00
+ .4107485356E+00 .4720664926E+00 .5228330196E+00 .5666062750E+00 .6054403685E+00
+ .6406349958E+00 .6730705982E+00 .7033770085E+00 .7320260664E+00 .7593859367E+00
+ .7857538152E+00 .8113732966E+00 .8364353538E+00 .8610556519E+00 .8852191360E+00
+ .9086939238E+00 .9309477034E+00 .9511406836E+00 .9682786240E+00 .9815382606E+00
+ .9906350221E+00 .9960023545E+00 .9986298288E+00 .9996483329E+00 .9999401776E+00
+ .9999949588E+00 .2179975083E+00 .3316172603E+00 .4101491350E+00 .4710785395E+00
+ .5214584490E+00 .5648443281E+00 .6032863074E+00 .6380798063E+00 .6701007707E+00
+ .6999742298E+00 .7281667786E+00 .7550408132E+00 .7808875386E+00 .8059458213E+00
+ .8304075155E+00 .8544043881E+00 .8779687246E+00 .9009649937E+00 .9230106123E+00
+ .9434374168E+00 .9613669933E+00 .9759412171E+00 .9866485262E+00 .9935759025E+00
+ .9974104845E+00 .9991649526E+00 .9997989381E+00 .9999679855E+00 .9999974791E+00
+ .2167316546E+00 .3298584630E+00 .4080510417E+00 .4686952644E+00 .5188109416E+00
+ .5619380865E+00 .6001178169E+00 .6346392570E+00 .6663731859E+00 .6959398052E+00
+ .7238007954E+00 .7503133012E+00 .7757630028E+00 .8003838699E+00 .8243664071E+00
+ .8478514335E+00 .8709030041E+00 .8934558439E+00 .9152456157E+00 .9357559835E+00
+ .9542411564E+00 .9698755217E+00 .9820182571E+00 .9904830235E+00 .9956517674E+00
+ .9983415697E+00 .9994954197E+00 .9998856244E+00 .9999828834E+00 .9999987347E+00
+ .2159120505E+00 .3275372039E+00 .4052040340E+00 .4654840003E+00 .5152802681E+00
+ .5581023719E+00 .5959796837E+00 .6301950286E+00 .6616146938E+00 .6908549235E+00
+ .7183735364E+00 .7445088013E+00 .7695567188E+00 .7937539033E+00 .8172868572E+00
+ .8402984442E+00 .8628698165E+00 .8849816344E+00 .9064597679E+00 .9269248801E+00
+ .9457861604E+00 .9622988759E+00 .9757644760E+00 .9858585338E+00 .9926628192E+00
+ .9966991265E+00 .9987533536E+00 .9996220059E+00 .9999140356E+00 .9999870064E+00
+ .9999990238E+00 .2150924464E+00 .3258480444E+00 .4030160833E+00 .4628921533E+00
+ .5123260979E+00 .5548074550E+00 .5923549971E+00 .6262445971E+00 .6573372627E+00
+ .6862447281E+00 .7134205149E+00 .7392134203E+00 .7639005022E+00 .7877077640E+00
+ .8108219259E+00 .8333932745E+00 .8555267399E+00 .8772255481E+00 .8984074932E+00
+ .9187837988E+00 .9378638152E+00 .9550022359E+00 .9695371755E+00 .9809888274E+00
+ .9892351951E+00 .9945719426E+00 .9976184168E+00 .9991181353E+00 .9997360978E+00
+ .9999403314E+00 .9999909680E+00 .9999993159E+00 .2142728422E+00 .3247335207E+00
+ .4014272839E+00 .4608634285E+00 .5098960326E+00 .5520041821E+00 .5891970893E+00
+ .6227430908E+00 .6534971738E+00 .6820660193E+00 .7088986310E+00 .7343395768E+00
+ .7586376984E+00 .7820500892E+00 .8047580970E+00 .8269098011E+00 .8486135360E+00
+ .8699177291E+00 .8907744027E+00 .9109935621E+00 .9302070992E+00 .9478756678E+00
+ .9633671438E+00 .9760305366E+00 .9856089586E+00 .9921903856E+00 .9962350065E+00
+ .9984212803E+00 .9994401847E+00 .9998388313E+00 .9999647042E+00 .9999947827E+00
+ .9999996108E+00 .2134532381E+00 .3241429364E+00 .4003847766E+00 .4593481409E+00
+ .5079438376E+00 .5496491813E+00 .5864647810E+00 .6196509017E+00 .6500558515E+00
+ .6782807565E+00 .7047698548E+00 .7298634522E+00 .7538306303E+00 .7768901603E+00
+ .7992236402E+00 .8209819541E+00 .8422836858E+00 .8632020463E+00 .8837366630E+00
+ .9037711000E+00 .9230282796E+00 .9410511303E+00 .9572435645E+00 .9709919402E+00
+ .9818446762E+00 .9896782038E+00 .9947612961E+00 .9976737230E+00 .9991179907E+00
+ .9997232738E+00 .9999312085E+00 .9999873239E+00 .9999984635E+00 .9999999082E+00
+ .2053791509E+00 .3128720467E+00 .3872555849E+00 .4449612530E+00 .4926329767E+00
+ .5336237477E+00 .5698669187E+00 .6025825485E+00 .6325931181E+00 .6604821773E+00
+ .6866814430E+00 .7115220076E+00 .7352660295E+00 .7581272156E+00 .7802843542E+00
+ .8018896232E+00 .8230714795E+00 .8439299560E+00 .8645204589E+00 .8848225464E+00
+ .9046954806E+00 .9238341820E+00 .9417539015E+00 .9578378383E+00 .9714645906E+00
+ .9821890049E+00 .9899028254E+00 .9948898192E+00 .9977368756E+00 .9991440044E+00
+ .9997319867E+00 .9999334826E+00 .9999877570E+00 .9999985170E+00 .9999999114E+00
+ .2089859989E+00 .3176226001E+00 .3924938466E+00 .4503961692E+00 .4981007328E+00
+ .5390173704E+00 .5751085587E+00 .6076104448E+00 .6373546458E+00 .6649297650E+00
+ .6907698785E+00 .7152064697E+00 .7385005599E+00 .7608634260E+00 .7824703086E+00
+ .8034691354E+00 .8239845181E+00 .8441156204E+00 .8639249439E+00 .8834148637E+00
+ .9024920009E+00 .9209279951E+00 .9383372505E+00 .9542000876E+00 .9679517411E+00
+ .9791277770E+00 .9875160994E+00 .9932434550E+00 .9967457956E+00 .9986320880E+00
+ .9995099505E+00 .9998549172E+00 .9999659964E+00 .9999940954E+00 .9999993257E+00
+ .9999999621E+00 .2067350976E+00 .3140405085E+00 .3884039468E+00 .4460049247E+00
+ .4934939972E+00 .5342397840E+00 .5701860358E+00 .6025587030E+00 .6321830704E+00
+ .6596433925E+00 .6853704693E+00 .7096930732E+00 .7328698134E+00 .7551096977E+00
+ .7765857439E+00 .7974437612E+00 .8178067790E+00 .8377741390E+00 .8574129717E+00
+ .8767394470E+00 .8956894097E+00 .9140841824E+00 .9316065927E+00 .9478095990E+00
+ .9621768663E+00 .9742353906E+00 .9836896595E+00 .9905229471E+00 .9950151727E+00
+ .9976635989E+00 .9990422134E+00 .9996644279E+00 .9999025114E+00 .9999774952E+00
+ .9999961357E+00 .9999995619E+00 .9999999754E+00 .2044841962E+00 .3113980429E+00
+ .3852684783E+00 .4424827477E+00 .4896665700E+00 .5301625307E+00 .5658967029E+00
+ .5980832192E+00 .6275391702E+00 .6548428735E+00 .6804205950E+00 .7045974294E+00
+ .7276288525E+00 .7497211039E+00 .7710447412E+00 .7917436386E+00 .8119401780E+00
+ .8317360537E+00 .8512068232E+00 .8703875090E+00 .8892474966E+00 .9076573793E+00
+ .9253586424E+00 .9419560717E+00 .9569551016E+00 .9698540436E+00 .9802737412E+00
+ .9880778596E+00 .9934277873E+00 .9967408498E+00 .9985687844E+00 .9994536669E+00
+ .9998228289E+00 .9999526364E+00 .9999899951E+00 .9999984364E+00 .9999998395E+00
+ .9999999919E+00 .2037126614E+00 .3097428738E+00 .3828420223E+00 .4393690176E+00
+ .4859240871E+00 .5258324956E+00 .5610083428E+00 .5926570755E+00 .6215891673E+00
+ .6483776395E+00 .6734442849E+00 .6971102384E+00 .7196273403E+00 .7411983816E+00
+ .7619906232E+00 .7821450296E+00 .8017822915E+00 .8210056833E+00 .8398998069E+00
+ .8585232604E+00 .8768928994E+00 .8949588957E+00 .9125744276E+00 .9294712757E+00
+ .9452595001E+00 .9594693059E+00 .9716403656E+00 .9814395503E+00 .9887644724E+00
+ .9937853818E+00 .9969014318E+00 .9986287966E+00 .9994712496E+00 .9998263462E+00
+ .9999528631E+00 .9999898636E+00 .9999983831E+00 .9999998301E+00 .9999999912E+00
+ .2026463810E+00 .3072877374E+00 .3799067560E+00 .4361216718E+00 .4824194451E+00
+ .5220940090E+00 .5570307633E+00 .5884196204E+00 .6171098710E+00 .6436657325E+00
+ .6685032774E+00 .6919394484E+00 .7142141110E+00 .7355330897E+00 .7560676305E+00
+ .7759555141E+00 .7953146864E+00 .8142467083E+00 .8328335257E+00 .8511436158E+00
+ .8692089071E+00 .8870093360E+00 .9044484204E+00 .9213263489E+00 .9373134903E+00
+ .9520166618E+00 .9650010077E+00 .9758914481E+00 .9844708087E+00 .9907350441E+00
+ .9949320300E+00 .9974947304E+00 .9988977608E+00 .9995762704E+00 .9998609539E+00
+ .9999620264E+00 .9999917383E+00 .9999986621E+00 .9999998568E+00 .9999999924E+00
+ .2015801006E+00 .3050931568E+00 .3772487494E+00 .4331401040E+00 .4791668683E+00
+ .5185962121E+00 .5533184965E+00 .5845140532E+00 .6129514807E+00 .6392665871E+00
+ .6638694327E+00 .6870726287E+00 .7091213094E+00 .7302124849E+00 .7505022135E+00
+ .7701245249E+00 .7892089160E+00 .8078551272E+00 .8261489653E+00 .8441600386E+00
+ .8619355040E+00 .8794767735E+00 .8967242946E+00 .9135387290E+00 .9296693792E+00
+ .9447667819E+00 .9584210267E+00 .9702343758E+00 .9798674448E+00 .9872425505E+00
+ .9925040182E+00 .9959595921E+00 .9980269181E+00 .9991399858E+00 .9996715692E+00
+ .9998914824E+00 .9999700582E+00 .9999934038E+00 .9999989146E+00 .9999998816E+00
+ .9999999936E+00 .2005138202E+00 .3031404815E+00 .3748481960E+00 .4304053315E+00
+ .4761483490E+00 .5153218859E+00 .5498053880E+00 .5807855390E+00 .6090607505E+00
+ .6351578071E+00 .6595207768E+00 .6824881089E+00 .7043013883E+00 .7251547215E+00
+ .7452075562E+00 .7645651247E+00 .7833808923E+00 .8017493460E+00 .8197504073E+00
+ .8374656072E+00 .8549454146E+00 .8722105614E+00 .8892351305E+00 .9059254865E+00
+ .9221006996E+00 .9374842318E+00 .9516655631E+00 .9642677610E+00 .9749572371E+00
+ .9834068898E+00 .9897139784E+00 .9940857987E+00 .9968765747E+00 .9985023540E+00
+ .9993535482E+00 .9997515567E+00 .9999174918E+00 .9999770392E+00 .9999948751E+00
+ .9999991425E+00 .9999999047E+00 .9999999947E+00 .1994475399E+00 .3014128493E+00
+ .3726871320E+00 .4279001376E+00 .4733475550E+00 .5122554654E+00 .5464929144E+00
+ .5772400312E+00 .6052906709E+00 .6312056565E+00 .6553970196E+00 .6781498793E+00
+ .6996765476E+00 .7202610904E+00 .7400556044E+00 .7591883352E+00 .7777692859E+00
+ .7958941174E+00 .8136465122E+00 .8310984382E+00 .8483077061E+00 .8653114702E+00
+ .8821021645E+00 .8986159642E+00 .9147199613E+00 .9301807535E+00 .9446810934E+00
+ .9578540882E+00 .9693437713E+00 .9788792424E+00 .9863402651E+00 .9917914077E+00
+ .9954712881E+00 .9976671714E+00 .9988921491E+00 .9995242222E+00 .9998181763E+00
+ .9999395357E+00 .9999830428E+00 .9999961657E+00 .9999993477E+00 .9999999261E+00
+ .9999999958E+00 .1983812595E+00 .2998949185E+00 .3707492414E+00 .4256088673E+00
+ .4707496579E+00 .5093827638E+00 .5433673931E+00 .5738769516E+00 .6017005675E+00
+ .6273771915E+00 .6512828262E+00 .6738058929E+00 .6951797204E+00 .7155922935E+00
+ .7351981768E+00 .7541199034E+00 .7724654850E+00 .7903458620E+00 .8078369006E+00
+ .8250126463E+00 .8419446014E+00 .8586734847E+00 .8752122157E+00 .8915305783E+00
+ .9075368077E+00 .9230611536E+00 .9378494193E+00 .9515351283E+00 .9637397112E+00
+ .9741625052E+00 .9825494062E+00 .9889072165E+00 .9934256554E+00 .9964025729E+00
+ .9982038468E+00 .9991934500E+00 .9996634684E+00 .9998729122E+00 .9999578842E+00
+ .9999881357E+00 .9999972879E+00 .9999995315E+00 .9999999460E+00 .9999999969E+00
+ .1973149791E+00 .2985727200E+00 .3690196309E+00 .4235172458E+00 .4683411113E+00
+ .5066908817E+00 .5404163547E+00 .5706841529E+00 .5982331393E+00 .6236454541E+00
+ .6473696275E+00 .6697044270E+00 .6908844712E+00 .7110979548E+00 .7304991084E+00
+ .7492167308E+00 .7673390695E+00 .7849900964E+00 .8022511473E+00 .8191939280E+00
+ .8358799806E+00 .8523577675E+00 .8686560301E+00 .8847635037E+00 .9006170459E+00
+ .9160891736E+00 .9309636016E+00 .9449481447E+00 .9577042840E+00 .9688998152E+00
+ .9782741086E+00 .9856156407E+00 .9910553310E+00 .9948155914E+00 .9972237222E+00
+ .9986410698E+00 .9994001256E+00 .9997652599E+00 .9999165555E+00 .9999727839E+00
+ .9999923785E+00 .9999982530E+00 .9999996955E+00 .9999999644E+00 .9999999979E+00
+ .1962486987E+00 .2974334689E+00 .3674847266E+00 .4216122821E+00 .4661095795E+00
+ .5041679983E+00 .5376284274E+00 .5676217665E+00 .5949394606E+00 .6201672446E+00
+ .6437004238E+00 .6658402279E+00 .6868221084E+00 .7068342581E+00 .7260149988E+00
+ .7445111327E+00 .7624328988E+00 .7798728866E+00 .7969123089E+00 .8136229371E+00
+ .8300654997E+00 .8462905129E+00 .8623374465E+00 .8782138700E+00 .8938865907E+00
+ .9092648381E+00 .9241856297E+00 .9383934679E+00 .9515770887E+00 .9634063117E+00
+ .9735831813E+00 .9819099562E+00 .9883376208E+00 .9929744158E+00 .9960510901E+00
+ .9979528767E+00 .9990306034E+00 .9995856785E+00 .9998426354E+00 .9999479669E+00
+ .9999844595E+00 .9999958268E+00 .9999990713E+00 .9999998409E+00 .9999999816E+00
+ .9999999989E+00 .1951824184E+00 .2964654870E+00 .3661320972E+00 .4198820316E+00
+ .4640437592E+00 .5018033542E+00 .5349931900E+00 .5647659034E+00 .5918951363E+00
+ .6169263751E+00 .6402596777E+00 .6621981570E+00 .6829777538E+00 .7027864660E+00
+ .7217774025E+00 .7400778122E+00 .7577953817E+00 .7750227917E+00 .7918410812E+00
+ .8083219100E+00 .8245285309E+00 .8405149958E+00 .8563227147E+00 .8719732053E+00
+ .8874561891E+00 .9027135652E+00 .9176223926E+00 .9319832797E+00 .9455228994E+00
+ .9579183876E+00 .9688454965E+00 .9780424093E+00 .9853712781E+00 .9908557600E+00
+ .9946790887E+00 .9971420001E+00 .9985959198E+00 .9993754966E+00 .9997514558E+00
+ .9999127060E+00 .9999733982E+00 .9999931170E+00 .9999985311E+00 .9999997520E+00
+ .9999999690E+00 .9999999974E+00 .9999999999E+00 .1946013215E+00 .2952601664E+00
+ .3647362121E+00 .4183831245E+00 .4624741958E+00 .5001794689E+00 .5333248630E+00
+ .5630597474E+00 .5901558501E+00 .6151574653E+00 .6384637793E+00 .6603771798E+00
+ .6811330665E+00 .7009190384E+00 .7198878141E+00 .7381662317E+00 .7558616065E+00
+ .7730662869E+00 .7898609551E+00 .8063168505E+00 .8224967376E+00 .8384541141E+00
+ .8542298208E+00 .8698450257E+00 .8852899016E+00 .9005086381E+00 .9153838306E+00
+ .9297261680E+00 .9432772095E+00 .9557319157E+00 .9667822664E+00 .9761747089E+00
+ .9837659537E+00 .9895585728E+00 .9937029686E+00 .9964642350E+00 .9981656185E+00
+ .9991280398E+00 .9996238533E+00 .9998543753E+00 .9999500750E+00 .9999850931E+00
+ .9999962056E+00 .9999992001E+00 .9999998660E+00 .9999999833E+00 .9999999986E+00
+ .9999999999E+00 .1940202246E+00 .2947212972E+00 .3640146997E+00 .4174963645E+00
+ .4614519454E+00 .4990459172E+00 .5320983091E+00 .5617539606E+00 .5887812852E+00
+ .6137221903E+00 .6369740438E+00 .6588377648E+00 .6795476090E+00 .6992902862E+00
+ .7182177356E+00 .7364560667E+00 .7541119467E+00 .7712771700E+00 .7880319552E+00
+ .8044472412E+00 .8205858798E+00 .8365022557E+00 .8522395246E+00 .8678233941E+00
+ .8832515239E+00 .8984786881E+00 .9134001083E+00 .9278384624E+00 .9415426275E+00
+ .9542060622E+00 .9655081130E+00 .9751726991E+00 .9830291878E+00 .9890552190E+00
+ .9933850340E+00 .9962791596E+00 .9980663822E+00 .9990788820E+00 .9996012061E+00
+ .9998445900E+00 .9999460919E+00 .9999835760E+00 .9999956769E+00 .9999990376E+00
+ .9999998239E+00 .9999999746E+00 .9999999973E+00 .9999999998E+00 .1000000000E+01
+ .1881384766E+00 .2865114597E+00 .3544143737E+00 .4069184241E+00 .4501225799E+00
+ .4871050505E+00 .5196393421E+00 .5488424490E+00 .5754649170E+00 .6000364625E+00
+ .6229456038E+00 .6444866438E+00 .6648888077E+00 .6843347560E+00 .7029729593E+00
+ .7209265163E+00 .7382994782E+00 .7551812932E+00 .7716500548E+00 .7877750098E+00
+ .8036183767E+00 .8192362712E+00 .8346783703E+00 .8499856306E+00 .8651850210E+00
+ .8802801918E+00 .8952377628E+00 .9099707845E+00 .9243237962E+00 .9380667848E+00
+ .9509063162E+00 .9625191220E+00 .9726058865E+00 .9809531674E+00 .9874842222E+00
+ .9922800324E+00 .9955615376E+00 .9976390422E+00 .9988472477E+00 .9994878408E+00
+ .9997949491E+00 .9999268499E+00 .9999770579E+00 .9999937781E+00 .9999985716E+00
+ .9999997303E+00 .9999999598E+00 .9999999956E+00 .9999999997E+00 .1000000000E+01
+ .1900833807E+00 .2890576310E+00 .3572469285E+00 .4099084653E+00 .4532027837E+00
+ .4902348653E+00 .5227918972E+00 .5519986150E+00 .5786101503E+00 .6031591592E+00
+ .6260362009E+00 .6475368680E+00 .6678911190E+00 .6872821221E+00 .7058587203E+00
+ .7237441438E+00 .7410423376E+00 .7578425222E+00 .7742224813E+00 .7902510025E+00
+ .8059896129E+00 .8214934348E+00 .8368107357E+00 .8519804846E+00 .8670269667E+00
+ .8819505785E+00 .8967147292E+00 .9112305967E+00 .9253441101E+00 .9388319387E+00
+ .9514137438E+00 .9627848380E+00 .9726664396E+00 .9808621627E+00 .9873035249E+00
+ .9920682150E+00 .9953636158E+00 .9974810447E+00 .9987368848E+00 .9994198258E+00
+ .9997579314E+00 .9999091184E+00 .9999696339E+00 .9999910887E+00 .9999977405E+00
+ .9999995153E+00 .9999999145E+00 .9999999881E+00 .9999999988E+00 .9999999999E+00
+ .1000000000E+01 .1904805627E+00 .2894442076E+00 .3575502724E+00 .4101057970E+00
+ .4532847821E+00 .4901968434E+00 .5226309092E+00 .5517123315E+00 .5781963050E+00
+ .6026152940E+00 .6253595911E+00 .6467244252E+00 .6669392648E+00 .6861867470E+00
+ .7046151827E+00 .7223472025E+00 .7394860424E+00 .7561201347E+00 .7723264243E+00
+ .7881728069E+00 .8037199020E+00 .8190220727E+00 .8341273469E+00 .8490756596E+00
+ .8638945918E+00 .8785917426E+00 .8931433960E+00 .9074805470E+00 .9214755925E+00
+ .9349353604E+00 .9476072719E+00 .9592036892E+00 .9694441921E+00 .9781079080E+00
+ .9850814596E+00 .9903865718E+00 .9941769399E+00 .9967048491E+00 .9982691260E+00
+ .9991617639E+00 .9996284855E+00 .9998505344E+00 .9999459220E+00 .9999825945E+00
+ .9999950813E+00 .9999987993E+00 .9999997521E+00 .9999999579E+00 .9999999944E+00
+ .9999999994E+00 .1000000000E+01 .1000000000E+01 .1915290602E+00 .2907064429E+00
+ .3588461202E+00 .4113670910E+00 .4544780613E+00 .4913027907E+00 .5236369104E+00
+ .5526092722E+00 .5789769541E+00 .6032734058E+00 .6258894485E+00 .6471205501E+00
+ .6671961449E+00 .6862986513E+00 .7045760789E+00 .7221506683E+00 .7391251272E+00
+ .7555872321E+00 .7716131851E+00 .7872700648E+00 .8026176149E+00 .8177093614E+00
+ .8325927882E+00 .8473080728E+00 .8618846640E+00 .8763348975E+00 .8906441863E+00
+ .9047584129E+00 .9185710300E+00 .9319145814E+00 .9445627664E+00 .9562483510E+00
+ .9666982553E+00 .9756806238E+00 .9830521560E+00 .9887909883E+00 .9930034906E+00
+ .9959019873E+00 .9977608668E+00 .9988657278E+00 .9994707973E+00 .9997742261E+00
+ .9999126242E+00 .9999696056E+00 .9999905983E+00 .9999974474E+00 .9999994015E+00
+ .9999998813E+00 .9999999807E+00 .9999999975E+00 .9999999998E+00 .1000000000E+01
+ .1000000000E+01 .1900687978E+00 .2883811977E+00 .3558443859E+00 .4077807389E+00
+ .4503604125E+00 .4866874636E+00 .5185458724E+00 .5470567923E+00 .5729718445E+00
+ .5968204390E+00 .6189901335E+00 .6397735608E+00 .6593977150E+00 .6780428781E+00
+ .6958549972E+00 .7129541965E+00 .7294410483E+00 .7454011938E+00 .7609086275E+00
+ .7760281049E+00 .7908170493E+00 .8053270478E+00 .8196048350E+00 .8336926092E+00
+ .8476273862E+00 .8614388380E+00 .8751448364E+00 .8887439860E+00 .9022050482E+00
+ .9154544972E+00 .9283654122E+00 .9407528310E+00 .9523813512E+00 .9629888694E+00
+ .9723254697E+00 .9801998972E+00 .9865207407E+00 .9913186738E+00 .9947413712E+00
+ .9970222693E+00 .9984337424E+00 .9992399055E+00 .9996621625E+00 .9998635925E+00
+ .9999504298E+00 .9999839628E+00 .9999954410E+00 .9999988796E+00 .9999997669E+00
+ .9999999601E+00 .9999999946E+00 .9999999995E+00 .1000000000E+01 .1000000000E+01
+ .1879571048E+00 .2856632510E+00 .3529172447E+00 .4048175858E+00 .4474558379E+00
+ .4839006679E+00 .5159176326E+00 .5446174980E+00 .5707456079E+00 .5948273056E+00
+ .6172476494E+00 .6382978831E+00 .6582041163E+00 .6771460459E+00 .6952695001E+00
+ .7126949371E+00 .7295234729E+00 .7458413945E+00 .7617235458E+00 .7772358027E+00
+ .7924368813E+00 .8073796091E+00 .8221115460E+00 .8366745997E+00 .8511030859E+00
+ .8654195280E+00 .8796275363E+00 .8937016340E+00 .9075751101E+00 .9211288083E+00
+ .9341855802E+00 .9465158788E+00 .9578584696E+00 .9679560340E+00 .9765995143E+00
+ .9836698703E+00 .9891644011E+00 .9931985608E+00 .9959822321E+00 .9977782211E+00
+ .9988561858E+00 .9994549706E+00 .9997611258E+00 .9999043678E+00 .9999652985E+00
+ .9999886888E+00 .9999967229E+00 .9999991669E+00 .9999998171E+00 .9999999661E+00
+ .9999999948E+00 .9999999994E+00 .9999999999E+00 .1000000000E+01 .1000000000E+01
+ .5633596892E+00 .4235470933E+00 .7123019817E+00 .3529771612E+00 .5680046648E+00
+ .7662228666E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .3264031686E+00 .5103746276E+00 .6516433313E+00 .7798075886E+00 .9052116818E+00
+ .3026030729E+00 .4694927123E+00 .5937064713E+00 .7013601301E+00 .8060422940E+00
+ .9138710076E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .0000000000E+00 .0000000000E+00 .0000000000E+00 .2799075011E+00 .4317812338E+00
+ .5410057046E+00 .6307344790E+00 .7111607406E+00 .7887435338E+00 .8681238255E+00
+ .9467192316E+00 .2688828988E+00 .4135717964E+00 .5165804840E+00 .5999993829E+00
+ .6732012212E+00 .7416655853E+00 .8097022797E+00 .8807233473E+00 .9517477229E+00
+ .2602787193E+00 .3995737111E+00 .4979802380E+00 .5768442642E+00 .6450384153E+00
+ .7074543719E+00 .7675857752E+00 .8286240686E+00 .8930728697E+00 .9572705588E+00
+ .2541775087E+00 .3900624124E+00 .4854783971E+00 .5613378193E+00 .6262331435E+00
+ .6847420105E+00 .7398849763E+00 .7941627752E+00 .8500027756E+00 .9087506169E+00
+ .9651667688E+00 .2476176938E+00 .3794997752E+00 .4716538014E+00 .5444656512E+00
+ .6062509287E+00 .6613513902E+00 .7124965029E+00 .7617571540E+00 .8110657465E+00
+ .8624153687E+00 .9167067511E+00 .9685286875E+00 .2434311283E+00 .3735853202E+00
+ .4641715637E+00 .5353815831E+00 .5954208817E+00 .6485202846E+00 .6972610388E+00
+ .7434826440E+00 .7887418790E+00 .8345826590E+00 .8824128180E+00 .9318315270E+00
+ .9759953721E+00 .2390939745E+00 .3674660450E+00 .4565229014E+00 .5262392627E+00
+ .5847168386E+00 .6360992063E+00 .6828671588E+00 .7267197177E+00 .7689970403E+00
+ .8109322693E+00 .8537668749E+00 .8983723786E+00 .9433219498E+00 .9811987813E+00
+ .2351105073E+00 .3627682994E+00 .4511142442E+00 .5200314340E+00 .5775927043E+00
+ .6279045888E+00 .6733954398E+00 .7156859263E+00 .7559936730E+00 .7953599575E+00
+ .8347825690E+00 .8751577511E+00 .9165725955E+00 .9562897281E+00 .9867583398E+00
+ .2305505748E+00 .3549146289E+00 .4407560177E+00 .5075254184E+00 .5630986004E+00
+ .6114666186E+00 .6549699740E+00 .6951442299E+00 .7331064668E+00 .7697647971E+00
+ .8059555743E+00 .8425342236E+00 .8803134763E+00 .9194120476E+00 .9573366230E+00
+ .9868890546E+00 .2267221837E+00 .3499443709E+00 .4348475921E+00 .5007192709E+00
+ .5553803468E+00 .6027835898E+00 .6452334686E+00 .6842241622E+00 .7208185938E+00
+ .7558476581E+00 .7900332366E+00 .8240756551E+00 .8586902357E+00 .8944356680E+00
+ .9309053006E+00 .9649717135E+00 .9898655197E+00 .2222660667E+00 .3460335353E+00
+ .4312817963E+00 .4972745139E+00 .5518923458E+00 .5991121286E+00 .6412425308E+00
+ .6797679942E+00 .7157281495E+00 .7499135497E+00 .7829808737E+00 .8155290147E+00
+ .8481379961E+00 .8812995427E+00 .9150259486E+00 .9478840313E+00 .9759345010E+00
+ .9938471366E+00 .2254601925E+00 .3427898547E+00 .4240749730E+00 .4874465882E+00
+ .5402130236E+00 .5860697383E+00 .6271666987E+00 .6648879233E+00 .7002020151E+00
+ .7338422406E+00 .7664109479E+00 .7984467686E+00 .8304617796E+00 .8629099400E+00
+ .8959624715E+00 .9289091694E+00 .9592974094E+00 .9828896008E+00 .9961131889E+00
+ .2192667925E+00 .3332137130E+00 .4120922334E+00 .4735241098E+00 .5246058343E+00
+ .5689213232E+00 .6085505188E+00 .6448259175E+00 .6786718756E+00 .7107775828E+00
+ .7416958098E+00 .7719065296E+00 .8018632159E+00 .8320235389E+00 .8628313245E+00
+ .8945355740E+00 .9266421482E+00 .9569859321E+00 .9813560051E+00 .9956046439E+00
+ .2165439227E+00 .3280334204E+00 .4059924426E+00 .4667891829E+00 .5173138921E+00
+ .5610863629E+00 .6001558239E+00 .6358334945E+00 .6690239745E+00 .7003942962E+00
+ .7304693729E+00 .7596858043E+00 .7884600116E+00 .8171937231E+00 .8462711710E+00
+ .8759940956E+00 .9063185839E+00 .9363203310E+00 .9636146724E+00 .9845856441E+00
+ .9964089351E+00 .2138210529E+00 .3241039085E+00 .4011923329E+00 .4612745411E+00
+ .5111604299E+00 .5543270208E+00 .5927962221E+00 .6278583914E+00 .6603993132E+00
+ .6910665342E+00 .7203623141E+00 .7487008249E+00 .7764388727E+00 .8039553350E+00
+ .8315917761E+00 .8596682590E+00 .8883621407E+00 .9173853325E+00 .9454632418E+00
+ .9700150427E+00 .9878627897E+00 .9973027647E+00 .2110981831E+00 .3212620377E+00
+ .3975223786E+00 .4568210292E+00 .5059969489E+00 .5485030159E+00 .5863367015E+00
+ .6207678979E+00 .6526644247E+00 .6826565937E+00 .7112286525E+00 .7387741190E+00
+ .7656325459E+00 .7921163294E+00 .8185305447E+00 .8451790004E+00 .8723257402E+00
+ .9000391712E+00 .9278291367E+00 .9541406490E+00 .9762167880E+00 .9911812732E+00
+ .9982744519E+00 .2114771818E+00 .3210015973E+00 .3964884683E+00 .4549819392E+00
+ .5033379998E+00 .5450086000E+00 .5819849890E+00 .6155285928E+00 .6464970631E+00
+ .6755085944E+00 .7030327506E+00 .7294447325E+00 .7550606378E+00 .7801624809E+00
+ .8050175327E+00 .8298926261E+00 .8550545837E+00 .8807251018E+00 .9069214531E+00
+ .9331090311E+00 .9577503998E+00 .9782441651E+00 .9919946713E+00 .9984453865E+00
+ .2057360379E+00 .3128030574E+00 .3867678975E+00 .4441610629E+00 .4916474684E+00
+ .5325874424E+00 .5689206967E+00 .6018760385E+00 .6322880774E+00 .6607568710E+00
+ .6877362326E+00 .7135860967E+00 .7386061499E+00 .7630593920E+00 .7871900332E+00
+ .8112382400E+00 .8354504096E+00 .8600729807E+00 .8852936068E+00 .9110596479E+00
+ .9367167120E+00 .9605990027E+00 .9800983550E+00 .9928523861E+00 .9986514748E+00
+ .2081133507E+00 .3152150215E+00 .3887270633E+00 .4454823053E+00 .4922342263E+00
+ .5323753766E+00 .5678574072E+00 .5999120364E+00 .6293718177E+00 .6568313749E+00
+ .6827362674E+00 .7074351948E+00 .7312130424E+00 .7543135320E+00 .7769556667E+00
+ .7993469949E+00 .8216954592E+00 .8442183005E+00 .8671382522E+00 .8906363744E+00
+ .9146976083E+00 .9387847822E+00 .9614302215E+00 .9802078746E+00 .9927489436E+00
+ .9985989850E+00 .2024041067E+00 .3078968028E+00 .3807561454E+00 .4372425373E+00
+ .4839192760E+00 .5240960977E+00 .5596821031E+00 .5918844380E+00 .6215203852E+00
+ .6491740565E+00 .6752827978E+00 .7001884846E+00 .7241696176E+00 .7474629227E+00
+ .7702791394E+00 .7928152869E+00 .8152645949E+00 .8378226498E+00 .8606809300E+00
+ .8839835980E+00 .9077036622E+00 .9314020010E+00 .9539360062E+00 .9734080029E+00
+ .9877694011E+00 .9960664255E+00 .9993447071E+00 .1996273325E+00 .3037123807E+00
+ .3755903927E+00 .4312955665E+00 .4773020690E+00 .5168748998E+00 .5518968771E+00
+ .5835576945E+00 .6126618880E+00 .6397832636E+00 .6653498563E+00 .6896944991E+00
+ .7130862800E+00 .7357512975E+00 .7578876932E+00 .7796771577E+00 .8012942532E+00
+ .8229141887E+00 .8447164884E+00 .8668741994E+00 .8895031817E+00 .9125294702E+00
+ .9354493027E+00 .9570688279E+00 .9755184806E+00 .9889048900E+00 .9964912708E+00
+ .9994261899E+00 .1998987644E+00 .3037323386E+00 .3752963560E+00 .4306750478E+00
+ .4763509166E+00 .5155889746E+00 .5502698789E+00 .5815803001E+00 .6103212895E+00
+ .6370629894E+00 .6622292601E+00 .6861479059E+00 .7090821595E+00 .7312511279E+00
+ .7528441753E+00 .7740318762E+00 .7949746771E+00 .8158300441E+00 .8367574039E+00
+ .8579156731E+00 .8794387581E+00 .9013604670E+00 .9234564640E+00 .9450171600E+00
+ .9646975498E+00 .9807341706E+00 .9917142504E+00 .9975321124E+00 .9996222749E+00
+ .1986693915E+00 .3020335150E+00 .3732802192E+00 .4283962932E+00 .4738320677E+00
+ .5128377894E+00 .5472857333E+00 .5783568828E+00 .6068476621E+00 .6333241403E+00
+ .6582062613E+00 .6818174639E+00 .7044159606E+00 .7262150862E+00 .7473971931E+00
+ .7681240416E+00 .7885449796E+00 .8088035483E+00 .8290425920E+00 .8494055122E+00
+ .8700255437E+00 .8909849876E+00 .9122172691E+00 .9333379808E+00 .9534610981E+00
+ .9711803386E+00 .9849479828E+00 .9938493931E+00 .9982703194E+00 .9997513175E+00
+ .1980316815E+00 .3000683185E+00 .3708634747E+00 .4256664467E+00 .4708247503E+00
+ .5095627828E+00 .5437432504E+00 .5745421758E+00 .6027524182E+00 .6289368019E+00
+ .6535121851E+00 .6767844742E+00 .6990215550E+00 .7204387640E+00 .7412117682E+00
+ .7614946337E+00 .7814277181E+00 .8011434791E+00 .8207715446E+00 .8404409764E+00
+ .8602760079E+00 .8803762018E+00 .9007521459E+00 .9212072823E+00 .9412042301E+00
+ .9597687348E+00 .9756006526E+00 .9874970451E+00 .9949636282E+00 .9985934639E+00
+ .9997973028E+00 .1973939714E+00 .2986821644E+00 .3690496196E+00 .4235027630E+00
+ .4683442004E+00 .5067819696E+00 .5406701782E+00 .5711792311E+00 .5990976831E+00
+ .6249845891E+00 .6492532577E+00 .6722202813E+00 .6941360348E+00 .7152048020E+00
+ .7355984161E+00 .7554658281E+00 .7749404111E+00 .7941368640E+00 .8131981525E+00
+ .8322418403E+00 .8513838499E+00 .8707269652E+00 .8903256839E+00 .9101114761E+00
+ .9297760414E+00 .9486544618E+00 .9657131527E+00 .9797642453E+00 .9899153690E+00
+ .9960401489E+00 .9989161221E+00 .9998456874E+00 .1967562613E+00 .2978224125E+00
+ .3677838537E+00 .4218537872E+00 .4663425402E+00 .5044504322E+00 .5380238514E+00
+ .5682269965E+00 .5958434231E+00 .6214279033E+00 .6453899315E+00 .6680425878E+00
+ .6896096695E+00 .7103243298E+00 .7303520966E+00 .7498360426E+00 .7689034423E+00
+ .7876713839E+00 .8062509577E+00 .8247509190E+00 .8432787770E+00 .8619371070E+00
+ .8808065420E+00 .8999104435E+00 .9190999880E+00 .9379618401E+00 .9557265158E+00
+ .9713273697E+00 .9836944143E+00 .9922148391E+00 .9970823884E+00 .9992383343E+00
+ .9998962521E+00 .1961185513E+00 .2974426215E+00 .3670178227E+00 .4206741058E+00
+ .4647775237E+00 .5025285360E+00 .5357666223E+00 .5656492353E+00 .5929543142E+00
+ .6182318735E+00 .6418873107E+00 .6642301413E+00 .6855038275E+00 .7059053661E+00
+ .7255988322E+00 .7447247185E+00 .7634066561E+00 .7817567806E+00 .7998801684E+00
+ .8178783860E+00 .8358519199E+00 .8538998629E+00 .8721120817E+00 .8905442888E+00
+ .9091626430E+00 .9277504447E+00 .9457984711E+00 .9624537739E+00 .9766405231E+00
+ .9874117814E+00 .9944059432E+00 .9980933743E+00 .9995601465E+00 .9999488058E+00
+ .1887432101E+00 .2871357633E+00 .3549955436E+00 .4074793968E+00 .4507103245E+00
+ .4877755850E+00 .5204532734E+00 .5498641744E+00 .5767626066E+00 .6016821562E+00
+ .6250163880E+00 .6470661690E+00 .6680680802E+00 .6882131525E+00 .7076603232E+00
+ .7265456023E+00 .7449882552E+00 .7630958047E+00 .7809684416E+00 .7987026304E+00
+ .8163940203E+00 .8341395645E+00 .8520370463E+00 .8701769858E+00 .8886171400E+00
+ .9073258589E+00 .9260862833E+00 .9443824643E+00 .9613427953E+00 .9758572865E+00
+ .9869328957E+00 .9941642209E+00 .9979997633E+00 .9995356256E+00 .9999455709E+00
+ .1921193091E+00 .2916224587E+00 .3599885626E+00 .4127123549E+00 .4560349985E+00
+ .4930969270E+00 .5257038449E+00 .5549919187E+00 .5817246153E+00 .6064412057E+00
+ .6295382822E+00 .6513179384E+00 .6720171183E+00 .6918263376E+00 .7109028071E+00
+ .7293798110E+00 .7473731273E+00 .7649857688E+00 .7823120008E+00 .7994407406E+00
+ .8164582834E+00 .8334503486E+00 .8505025784E+00 .8676965189E+00 .8850947342E+00
+ .9027049894E+00 .9204140240E+00 .9378958032E+00 .9545342705E+00 .9694425762E+00
+ .9816607751E+00 .9905177525E+00 .9959759577E+00 .9986953042E+00 .9997145395E+00
+ .9999685605E+00 .1900102405E+00 .2882611356E+00 .3561363907E+00 .4085601533E+00
+ .4516619569E+00 .4885440453E+00 .5209948047E+00 .5501408991E+00 .5767398481E+00
+ .6013269789E+00 .6242958888E+00 .6459460125E+00 .6665120333E+00 .6861825373E+00
+ .7051126849E+00 .7234334067E+00 .7412579750E+00 .7586866880E+00 .7758105843E+00
+ .7927146422E+00 .8094804443E+00 .8261881858E+00 .8429175201E+00 .8597453892E+00
+ .8767365620E+00 .8939196975E+00 .9112408857E+00 .9284934969E+00 .9452439106E+00
+ .9608040402E+00 .9743192769E+00 .9850049622E+00 .9924611710E+00 .9968861005E+00
+ .9990149037E+00 .9997888988E+00 .9999771183E+00 .1879011718E+00 .2857674954E+00
+ .3531663739E+00 .4052126070E+00 .4480123169E+00 .4846434964E+00 .5168781623E+00
+ .5458319606E+00 .5722547488E+00 .5966764811E+00 .6194866304E+00 .6409811075E+00
+ .6613916929E+00 .6809045768E+00 .6996725597E+00 .7178240369E+00 .7354696888E+00
+ .7527071271E+00 .7696243429E+00 .7863027149E+00 .8028196477E+00 .8192506618E+00
+ .8356707444E+00 .8521540445E+00 .8687692004E+00 .8855649161E+00 .9025380157E+00
+ .9195778222E+00 .9363927358E+00 .9524508513E+00 .9669950934E+00 .9791919373E+00
+ .9884072593E+00 .9944888277E+00 .9978675243E+00 .9993740099E+00 .9998766996E+00
+ .9999878298E+00 .1874852662E+00 .2846914762E+00 .3514911430E+00 .4029954247E+00
+ .4452956500E+00 .4814582148E+00 .5132466035E+00 .5417700467E+00 .5677734951E+00
+ .5917829456E+00 .6141844142E+00 .6352707451E+00 .6552710319E+00 .6743689308E+00
+ .6927145856E+00 .7104335775E+00 .7276336959E+00 .7444094821E+00 .7608454264E+00
+ .7770188255E+00 .7930023960E+00 .8088663578E+00 .8246800102E+00 .8405127047E+00
+ .8564330877E+00 .8725037712E+00 .8887663548E+00 .9052099366E+00 .9217183585E+00
+ .9380029044E+00 .9535503059E+00 .9676401998E+00 .9794836160E+00 .9884762317E+00
+ .9944600365E+00 .9978248307E+00 .9993496592E+00 .9998690218E+00 .9999867284E+00
+ .1865738463E+00 .2825399162E+00 .3489253249E+00 .4001640253E+00 .4422456744E+00
+ .4782091676E+00 .5097922880E+00 .5380903739E+00 .5638847168E+00 .5876934739E+00
+ .6098978293E+00 .6307870455E+00 .6505788623E+00 .6694600096E+00 .6875850356E+00
+ .7050768160E+00 .7220402991E+00 .7385672541E+00 .7547356567E+00 .7706246628E+00
+ .7863039107E+00 .8018392917E+00 .8172952445E+00 .8327359815E+00 .8482273019E+00
+ .8638298690E+00 .8795932200E+00 .8955360661E+00 .9116110701E+00 .9276494704E+00
+ .9432994285E+00 .9580205749E+00 .9711247658E+00 .9819290083E+00 .9899792028E+00
+ .9952233927E+00 .9981300148E+00 .9994396214E+00 .9998862384E+00 .9999883135E+00
+ .1856624263E+00 .2806274393E+00 .3466130546E+00 .3975749395E+00 .4394248745E+00
+ .4751783911E+00 .5065787695E+00 .5347131856E+00 .5602880678E+00 .5838883514E+00
+ .6058900964E+00 .6265788891E+00 .6461777566E+00 .6648654628E+00 .6827823804E+00
+ .7000476671E+00 .7167774158E+00 .7330606598E+00 .7489766262E+00 .7645966130E+00
+ .7799864474E+00 .7952046663E+00 .8103175811E+00 .8253900164E+00 .8404814261E+00
+ .8556505959E+00 .8709513673E+00 .8864212213E+00 .9020591438E+00 .9177734762E+00
+ .9333412542E+00 .9483685589E+00 .9622914391E+00 .9744550942E+00 .9842750324E+00
+ .9913760386E+00 .9959222819E+00 .9984112576E+00 .9995236339E+00 .9999026832E+00
+ .9999898833E+00 .1847510064E+00 .2789369321E+00 .3445362194E+00 .3952108606E+00
+ .4368168780E+00 .4723502702E+00 .5035450054E+00 .5314947901E+00 .5569343661E+00
+ .5803472173E+00 .6021412672E+00 .6226266316E+00 .6420231394E+00 .6605069701E+00
+ .6782224123E+00 .6952613320E+00 .7117624660E+00 .7278089628E+00 .7434719003E+00
+ .7588320723E+00 .7739520134E+00 .7888905107E+00 .8037041460E+00 .8184484603E+00
+ .8331787380E+00 .8479502520E+00 .8628214619E+00 .8778376377E+00 .8930224742E+00
+ .9083576352E+00 .9237092844E+00 .9388108193E+00 .9532265365E+00 .9663770916E+00
+ .9776039687E+00 .9863938014E+00 .9926407047E+00 .9965612993E+00 .9986702630E+00
+ .9996021255E+00 .9999184111E+00 .9999914388E+00 .1838395864E+00 .2774529220E+00
+ .3426783917E+00 .3930560916E+00 .4344068358E+00 .4697106898E+00 .5006927315E+00
+ .5284411520E+00 .5536868244E+00 .5769453449E+00 .5985952676E+00 .6188971031E+00
+ .6380424183E+00 .6562918185E+00 .6737829904E+00 .6906311198E+00 .7069337832E+00
+ .7227753497E+00 .7382305035E+00 .7533663528E+00 .7682439547E+00 .7829198939E+00
+ .7974435221E+00 .8118748234E+00 .8262724187E+00 .8406880617E+00 .8551729732E+00
+ .8697745492E+00 .8845277465E+00 .8994379203E+00 .9144525416E+00 .9294229034E+00
+ .9440650799E+00 .9578400823E+00 .9701403844E+00 .9804222515E+00 .9883199573E+00
+ .9937933852E+00 .9971446270E+00 .9989085858E+00 .9996754773E+00 .9999334722E+00
+ .9999929812E+00 .1829281665E+00 .2761613316E+00 .3410246510E+00 .3910963600E+00
+ .4321812658E+00 .4672467844E+00 .4980095710E+00 .5255521174E+00 .5506012826E+00
+ .5736525037E+00 .5950506967E+00 .6151529586E+00 .6341719771E+00 .6522782841E+00
+ .6696119204E+00 .6862828078E+00 .7023863660E+00 .7180217222E+00 .7332547769E+00
+ .7481525102E+00 .7627866255E+00 .7772111250E+00 .7914771106E+00 .8056340499E+00
+ .8197306613E+00 .8338155109E+00 .8479372105E+00 .8621474272E+00 .8764912829E+00
+ .8909923894E+00 .9056399253E+00 .9203396874E+00 .9348866680E+00 .9489381236E+00
+ .9620183353E+00 .9735788605E+00 .9830175955E+00 .9900789461E+00 .9948416873E+00
+ .9976760708E+00 .9991276334E+00 .9997440423E+00 .9999479118E+00 .9999945113E+00
+ .1820167466E+00 .2750493430E+00 .3395613777E+00 .3893186509E+00 .4301278519E+00
+ .4649468562E+00 .4954842442E+00 .5228167259E+00 .5476249179E+00 .5704442486E+00
+ .5916873764E+00 .6116285361E+00 .6304819378E+00 .6484183716E+00 .6655775512E+00
+ .6820758939E+00 .6979904098E+00 .7134325041E+00 .7284735193E+00 .7431774704E+00
+ .7576023503E+00 .7718012539E+00 .7858237508E+00 .7997140567E+00 .8135239292E+00
+ .8273042064E+00 .8411008648E+00 .8549595523E+00 .8689232083E+00 .8830256854E+00
+ .8972785935E+00 .9116516240E+00 .9260154275E+00 .9401284713E+00 .9536131199E+00
+ .9659793105E+00 .9767041342E+00 .9853573651E+00 .9916818818E+00 .9957925963E+00
+ .9981590752E+00 .9993286953E+00 .9998081384E+00 .9999617716E+00 .9999960298E+00
+ .1811053266E+00 .2741052251E+00 .3382761587E+00 .3877111205E+00 .4282353784E+00
+ .4628001854E+00 .4931064644E+00 .5201983322E+00 .5448054084E+00 .5674667869E+00
+ .5885458863E+00 .6083195120E+00 .6270030053E+00 .6447672272E+00 .6617366482E+00
+ .6780447067E+00 .6937904364E+00 .7090555891E+00 .7239111807E+00 .7384205229E+00
+ .7526389570E+00 .7666178516E+00 .7804109013E+00 .7940637106E+00 .8076205159E+00
+ .8211249930E+00 .8346208056E+00 .8481528112E+00 .8617654104E+00 .8754966873E+00
+ .8893717014E+00 .9033859763E+00 .9174802174E+00 .9315069327E+00 .9451869477E+00
+ .9581124211E+00 .9697846233E+00 .9797075887E+00 .9875202251E+00 .9931144397E+00
+ .9966524437E+00 .9985968041E+00 .9995129400E+00 .9998680579E+00 .9999750892E+00
+ .9999975377E+00 .1801939067E+00 .2733182619E+00 .3371576260E+00 .3862628787E+00
+ .4264935687E+00 .4607970149E+00 .4908668048E+00 .5177676272E+00 .5422131620E+00
+ .5647053822E+00 .5856121000E+00 .6052121426E+00 .6237216931E+00 .6413115117E+00
+ .6581200485E+00 .6742625432E+00 .6898360657E+00 .7049227578E+00 .7195932878E+00
+ .7339102010E+00 .7479300225E+00 .7617042133E+00 .7752800324E+00 .7887018065E+00
+ .8020122147E+00 .8152531650E+00 .8284663316E+00 .8416935268E+00 .8549765971E+00
+ .8683558225E+00 .8818650798E+00 .8955212957E+00 .9093054805E+00 .9231342642E+00
+ .9368259517E+00 .9500737499E+00 .9624473300E+00 .9734442800E+00 .9825969726E+00
+ .9896084112E+00 .9944594912E+00 .9974270541E+00 .9989921530E+00 .9996814425E+00
+ .9999240665E+00 .9999878995E+00 .9999990354E+00 .1796722612E+00 .2722124186E+00
+ .3358625543E+00 .3848563582E+00 .4250035087E+00 .4592371140E+00 .4892450044E+00
+ .5160886995E+00 .5404802581E+00 .5629209145E+00 .5837774326E+00 .6033273849E+00
+ .6217865141E+00 .6393257293E+00 .6560830573E+00 .6721726428E+00 .6876907722E+00
+ .7027194969E+00 .7173293993E+00 .7315823490E+00 .7455338556E+00 .7592345443E+00
+ .7727310530E+00 .7860669386E+00 .7992837456E+00 .8124219760E+00 .8255217614E+00
+ .8386232201E+00 .8517663195E+00 .8649895079E+00 .8783256500E+00 .8917931244E+00
+ .9053797650E+00 .9190186331E+00 .9325585824E+00 .9457393575E+00 .9581879162E+00
+ .9694539282E+00 .9790917186E+00 .9867727882E+00 .9923879857E+00 .9960900896E+00
+ .9982491711E+00 .9993372290E+00 .9997968628E+00 .9999528388E+00 .9999926420E+00
+ .9999994225E+00 .1791506157E+00 .2717244023E+00 .3351930575E+00 .3840186229E+00
+ .4240233123E+00 .4581356402E+00 .4880381859E+00 .5147881202E+00 .5390945534E+00
+ .5614568929E+00 .5822400669E+00 .6017197369E+00 .6201105736E+00 .6375831704E+00
+ .6542749331E+00 .6702987829E+00 .6857499479E+00 .7007100629E+00 .7152494788E+00
+ .7294294271E+00 .7433044119E+00 .7569240976E+00 .7703343516E+00 .7835779277E+00
+ .7966953046E+00 .8097256567E+00 .8227076574E+00 .8356799634E+00 .8486812919E+00
+ .8617496479E+00 .8749195692E+00 .8882154682E+00 .9016386284E+00 .9151459448E+00
+ .9286213573E+00 .9418469590E+00 .9544885943E+00 .9661153853E+00 .9762667455E+00
+ .9845601360E+00 .9908048413E+00 .9950698881E+00 .9976666065E+00 .9990483712E+00
+ .9996758683E+00 .9999117185E+00 .9999820152E+00 .9999975686E+00 .9999998367E+00
+ .1737220000E+00 .2641688159E+00 .3263810467E+00 .3743318262E+00 .4136704025E+00
+ .4472456728E+00 .4766971090E+00 .5030563908E+00 .5270168276E+00 .5490666699E+00
+ .5695622022E+00 .5887731874E+00 .6069106485E+00 .6241420080E+00 .6406011443E+00
+ .6563979035E+00 .6716256389E+00 .6863648017E+00 .7006842575E+00 .7146432091E+00
+ .7282941344E+00 .7416851101E+00 .7548606636E+00 .7678619826E+00 .7807275548E+00
+ .7934942962E+00 .8061985642E+00 .8188767428E+00 .8315655866E+00 .8443024728E+00
+ .8571251897E+00 .8700702553E+00 .8831681059E+00 .8964328200E+00 .9098438800E+00
+ .9233191147E+00 .9366828339E+00 .9496411565E+00 .9617840708E+00 .9726335248E+00
+ .9817417626E+00 .9888154878E+00 .9938146288E+00 .9969726960E+00 .9987203449E+00
+ .9995473179E+00 .9998717156E+00 .9999727644E+00 .9999961574E+00 .9999997303E+00
+ .1755799312E+00 .2666013149E+00 .3290846864E+00 .3771826021E+00 .4166034870E+00
+ .4502220500E+00 .4796913036E+00 .5060501656E+00 .5299958070E+00 .5520197716E+00
+ .5724811244E+00 .5916504239E+00 .6097383708E+00 .6269130534E+00 .6433098561E+00
+ .6590391514E+00 .6741934300E+00 .6888522874E+00 .7030846927E+00 .7169502962E+00
+ .7305013640E+00 .7437850327E+00 .7568448140E+00 .7697211827E+00 .7824519779E+00
+ .7950731410E+00 .8076196344E+00 .8201261635E+00 .8326275898E+00 .8451590846E+00
+ .8577557939E+00 .8704512169E+00 .8832728396E+00 .8962330094E+00 .9093129889E+00
+ .9224395622E+00 .9354575301E+00 .9481078434E+00 .9600272540E+00 .9707856417E+00
+ .9799660704E+00 .9872705033E+00 .9926116951E+00 .9961465075E+00 .9982285305E+00
+ .9992991362E+00 .9997686310E+00 .9999389652E+00 .9999879625E+00 .9999984250E+00
+ .9999998976E+00 .1760144460E+00 .2670609020E+00 .3294910285E+00 .3775097826E+00
+ .4168402951E+00 .4503626186E+00 .4797321509E+00 .5059888277E+00 .5298298890E+00
+ .5517469155E+00 .5720993316E+00 .5911575880E+00 .6091315938E+00 .6261888854E+00
+ .6424649637E+00 .6580702355E+00 .6730965192E+00 .6876224439E+00 .7017164007E+00
+ .7154378171E+00 .7288385387E+00 .7419648217E+00 .7548590856E+00 .7675607937E+00
+ .7801068170E+00 .7925319364E+00 .8048696300E+00 .8171528426E+00 .8294144911E+00
+ .8416876956E+00 .8540056656E+00 .8664007529E+00 .8789016009E+00 .8915267504E+00
+ .9042727803E+00 .9170956818E+00 .9298866588E+00 .9424483837E+00 .9544836828E+00
+ .9656118704E+00 .9754232574E+00 .9835670742E+00 .9898469299E+00 .9942839419E+00
+ .9971144435E+00 .9987184852E+00 .9995109430E+00 .9998444728E+00 .9999605180E+00
+ .9999925129E+00 .9999990587E+00 .9999999412E+00 .1770663795E+00 .2683546956E+00
+ .3308457617E+00 .3788562808E+00 .4181444177E+00 .4516046168E+00 .4808993380E+00
+ .5070724101E+00 .5308229707E+00 .5526435602E+00 .5728946123E+00 .5918473214E+00
+ .6097114506E+00 .6266540515E+00 .6428106723E+00 .6582920740E+00 .6731899175E+00
+ .6875820711E+00 .7015362095E+00 .7151114556E+00 .7283594343E+00 .7413258218E+00
+ .7540520936E+00 .7665766982E+00 .7789355626E+00 .7911624559E+00 .8032895888E+00
+ .8153483395E+00 .8273698291E+00 .8393852307E+00 .8514257771E+00 .8635221919E+00
+ .8757027838E+00 .8879889108E+00 .9003861367E+00 .9128695997E+00 .9253636166E+00
+ .9377190267E+00 .9496968362E+00 .9609709796E+00 .9711622529E+00 .9799060634E+00
+ .9869395774E+00 .9921773606E+00 .9957410546E+00 .9979252964E+00 .9991124792E+00
+ .9996742546E+00 .9999004959E+00 .9999757617E+00 .9999955931E+00 .9999994691E+00
+ .9999999683E+00 .1758581709E+00 .2664553039E+00 .3284189613E+00 .3759813026E+00
+ .4148675317E+00 .4479556796E+00 .4768985049E+00 .5027332925E+00 .5261550430E+00
+ .5476536527E+00 .5675868875E+00 .5862232219E+00 .6037707584E+00 .6203958792E+00
+ .6362331620E+00 .6513915496E+00 .6659608488E+00 .6800178532E+00 .6936296852E+00
+ .7068546016E+00 .7197426950E+00 .7323378237E+00 .7446798503E+00 .7568058435E+00
+ .7687502167E+00 .7805447857E+00 .7922193714E+00 .8038027006E+00 .8153230789E+00
+ .8268087027E+00 .8382878457E+00 .8497890679E+00 .8613412229E+00 .8729726711E+00
+ .8847087631E+00 .8965662293E+00 .9085427594E+00 .9206004318E+00 .9326436985E+00
+ .9444968657E+00 .9558915219E+00 .9664779406E+00 .9758713433E+00 .9837309651E+00
+ .9898503827E+00 .9942227228E+00 .9970475025E+00 .9986708984E+00 .9994852613E+00
+ .9998336896E+00 .9999570598E+00 .9999917096E+00 .9999989378E+00 .9999999324E+00
+ .1737723885E+00 .2636970230E+00 .3253620744E+00 .3727892655E+00 .4116291012E+00
+ .4447253360E+00 .4737129101E+00 .4996193173E+00 .5231327275E+00 .5447378120E+00
+ .5647899984E+00 .5835572379E+00 .6012460268E+00 .6180200622E+00 .6340127438E+00
+ .6493340020E+00 .6640745795E+00 .6783105039E+00 .6921074258E+00 .7055232509E+00
+ .7186090613E+00 .7314097728E+00 .7439654483E+00 .7563128398E+00 .7684863811E+00
+ .7805185477E+00 .7924400969E+00 .8042805551E+00 .8160688615E+00 .8278338870E+00
+ .8396046856E+00 .8514104210E+00 .8632797088E+00 .8752386789E+00 .8873065903E+00
+ .8994875341E+00 .9117570087E+00 .9240435321E+00 .9362084356E+00 .9480311964E+00
+ .9592111584E+00 .9693959285E+00 .9782392491E+00 .9854773656E+00 .9909989911E+00
+ .9948795050E+00 .9973614442E+00 .9987871078E+00 .9995116285E+00 .9998316357E+00
+ .9999517746E+00 .9999889995E+00 .9999981291E+00 .9999997894E+00 .9999999882E+00
+ .5119724156E+00 .3874081833E+00 .6569267245E+00 .3260460061E+00 .5253800226E+00
+ .7127712695E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .3003816381E+00 .4709825511E+00 .6022386036E+00 .7231347997E+00 .8549817939E+00
+ .2799538226E+00 .4353779888E+00 .5511817810E+00 .6517306811E+00 .7510266867E+00
+ .8652446706E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .0000000000E+00 .0000000000E+00 .0000000000E+00 .2590912326E+00 .4010896013E+00
+ .5033119849E+00 .5873439682E+00 .6627324555E+00 .7358203442E+00 .8133992683E+00
+ .9043940737E+00 .2494729236E+00 .3850372100E+00 .4816440498E+00 .5599288628E+00
+ .6286653312E+00 .6930150226E+00 .7573315152E+00 .8272263632E+00 .9107769497E+00
+ .2418159207E+00 .3725417327E+00 .4649849800E+00 .5391165772E+00 .6032531243E+00
+ .6619865954E+00 .7186328546E+00 .7765451150E+00 .8405979527E+00 .9179171245E+00
+ .2359985203E+00 .3636770429E+00 .4534220373E+00 .5248149223E+00 .5859196253E+00
+ .6410359336E+00 .6930087183E+00 .7442500410E+00 .7975495554E+00 .8571769264E+00
+ .9285152601E+00 .2301619008E+00 .3542394895E+00 .4410290303E+00 .5096425032E+00
+ .5678936619E+00 .6198650728E+00 .6681258727E+00 .7146333507E+00 .7612771765E+00
+ .8104810456E+00 .8661534585E+00 .9331500825E+00 .2257034090E+00 .3482627862E+00
+ .4336630927E+00 .5008327517E+00 .5574906380E+00 .6076191431E+00 .6536496185E+00
+ .6973175352E+00 .7401070899E+00 .7836068601E+00 .8299880289E+00 .8826087675E+00
+ .9441338488E+00 .2211645211E+00 .3421525329E+00 .4262029026E+00 .4920338341E+00
+ .5472751269E+00 .5958314341E+00 .6400417541E+00 .6815093468E+00 .7215029141E+00
+ .7612175155E+00 .8020400765E+00 .8459383089E+00 .8957490487E+00 .9523906251E+00
+ .2163469298E+00 .3367455281E+00 .4202298000E+00 .4853863672E+00 .5398269062E+00
+ .5874264602E+00 .6304774920E+00 .6705108600E+00 .7086784715E+00 .7459749374E+00
+ .7834151298E+00 .8222460616E+00 .8642177097E+00 .9113608285E+00 .9621563281E+00
+ .2127191056E+00 .3301279628E+00 .4113114778E+00 .4744891962E+00 .5270930798E+00
+ .5728919442E+00 .6140968562E+00 .6521591391E+00 .6881353043E+00 .7228857759E+00
+ .7572115129E+00 .7919871037E+00 .8283472168E+00 .8679570327E+00 .9128968803E+00
+ .9621783974E+00 .2084740352E+00 .3248801320E+00 .4052658897E+00 .4676634483E+00
+ .5194603323E+00 .5643936302E+00 .6046428671E+00 .6416217609E+00 .6763364997E+00
+ .7095743332E+00 .7420217413E+00 .7743601558E+00 .8073750794E+00 .8421172020E+00
+ .8800874474E+00 .9228007422E+00 .9679218139E+00 .2022848383E+00 .3192137602E+00
+ .4000666473E+00 .4626911785E+00 .5145380106E+00 .5593742892E+00 .5993877622E+00
+ .6359855621E+00 .6701535511E+00 .7026418784E+00 .7340751757E+00 .7650315222E+00
+ .7961165211E+00 .8280548362E+00 .8618024933E+00 .8985081778E+00 .9384137085E+00
+ .9768161798E+00 .2120904704E+00 .3223853102E+00 .3987342745E+00 .4582073523E+00
+ .5076847086E+00 .5506442060E+00 .5891081273E+00 .6243771084E+00 .6573598251E+00
+ .6887424688E+00 .7190874997E+00 .7489007771E+00 .7786885306E+00 .8090195693E+00
+ .8406002346E+00 .8743076696E+00 .9108457515E+00 .9490758207E+00 .9825761504E+00
+ .2065944908E+00 .3138611297E+00 .3880480562E+00 .4457741119E+00 .4937308585E+00
+ .5352963987E+00 .5724302219E+00 .6063867563E+00 .6380347392E+00 .6680203267E+00
+ .6968602047E+00 .7250014412E+00 .7528676868E+00 .7809039058E+00 .8096317221E+00
+ .8397268101E+00 .8720877593E+00 .9076208269E+00 .9457634228E+00 .9806888742E+00
+ .2040536841E+00 .3090104125E+00 .3823312036E+00 .4394561751E+00 .4868838338E+00
+ .5279326829E+00 .5645337087E+00 .5979215801E+00 .6289469602E+00 .6582356416E+00
+ .6862785900E+00 .7134820924E+00 .7402337997E+00 .7669160696E+00 .7939370091E+00
+ .8217894008E+00 .8511048527E+00 .8826343849E+00 .9168292272E+00 .9523397283E+00
+ .9833775220E+00 .2015128774E+00 .3053393638E+00 .3778407814E+00 .4342907101E+00
+ .4811132113E+00 .5215872450E+00 .5576184856E+00 .5904221798E+00 .6208316951E+00
+ .6494549715E+00 .6767620600E+00 .7031392044E+00 .7289166568E+00 .7544489187E+00
+ .7800690715E+00 .8061559976E+00 .8331769643E+00 .8617242521E+00 .8924327825E+00
+ .9254136087E+00 .9586791763E+00 .9862360465E+00 .1989720707E+00 .3026941193E+00
+ .3744168184E+00 .4301274064E+00 .4762785893E+00 .5161272821E+00 .5515565586E+00
+ .5837625693E+00 .6135620935E+00 .6415473335E+00 .6681717138E+00 .6938024217E+00
+ .7187549869E+00 .7433187439E+00 .7677795040E+00 .7924434822E+00 .8176670570E+00
+ .8438949113E+00 .8716838527E+00 .9015804894E+00 .9334552994E+00 .9648127165E+00
+ .9892422865E+00 .1995441354E+00 .3027894911E+00 .3738799852E+00 .4289149153E+00
+ .4743694671E+00 .5135031036E+00 .5481952410E+00 .5796355644E+00 .6086325224E+00
+ .6357682912E+00 .6614838272E+00 .6861304569E+00 .7100033497E+00 .7333646767E+00
+ .7564626262E+00 .7795497098E+00 .8029031435E+00 .8268516589E+00 .8518099107E+00
+ .8782959679E+00 .9068021661E+00 .9371450962E+00 .9668762673E+00 .9899111529E+00
+ .1942036339E+00 .2951512883E+00 .3648099631E+00 .4188024312E+00 .4634266115E+00
+ .5018569451E+00 .5359251202E+00 .5667902992E+00 .5952391722E+00 .6218372056E+00
+ .6470106709E+00 .6710961142E+00 .6943730827E+00 .7170857215E+00 .7394590806E+00
+ .7617145337E+00 .7840855145E+00 .8068362205E+00 .8302876543E+00 .8548503221E+00
+ .8810334488E+00 .9092878700E+00 .9393038812E+00 .9684292022E+00 .9905681100E+00
+ .1966856383E+00 .2978232748E+00 .3671846626E+00 .4206925777E+00 .4647348370E+00
+ .5025198107E+00 .5358927793E+00 .5660172855E+00 .5936794662E+00 .6194412139E+00
+ .6437225589E+00 .6668509083E+00 .6890937579E+00 .7106795634E+00 .7318121949E+00
+ .7526841700E+00 .7734891384E+00 .7944344383E+00 .8157576516E+00 .8377507210E+00
+ .8607917883E+00 .8853633651E+00 .9119379718E+00 .9403775191E+00 .9684249648E+00
+ .9903246258E+00 .1910838734E+00 .2905526801E+00 .3591691081E+00 .4123042748E+00
+ .4561616482E+00 .4938685815E+00 .5272283424E+00 .5573806570E+00 .5850960099E+00
+ .6109244898E+00 .6352779600E+00 .6584772140E+00 .6807820433E+00 .7024126349E+00
+ .7235642174E+00 .7444179434E+00 .7651514443E+00 .7859498459E+00 .8070181036E+00
+ .8285971700E+00 .8509840780E+00 .8745417502E+00 .8996334287E+00 .9262998775E+00
+ .9534286991E+00 .9776807196E+00 .9940166847E+00 .1885533210E+00 .2867399663E+00
+ .3544623603E+00 .4068853996E+00 .4501314274E+00 .4872870691E+00 .5201316025E+00
+ .5497891102E+00 .5770185770E+00 .6023603714E+00 .6262179866E+00 .6489045459E+00
+ .6706713146E+00 .6917285917E+00 .7122604552E+00 .7324344169E+00 .7524100513E+00
+ .7723483144E+00 .7924210524E+00 .8128222386E+00 .8337835007E+00 .8555927781E+00
+ .8785997867E+00 .9031396194E+00 .9291938977E+00 .9555680607E+00 .9789147239E+00
+ .9944189044E+00 .1888989369E+00 .2868867787E+00 .3543365370E+00 .4064684533E+00
+ .4494157190E+00 .4862666006E+00 .5187990091E+00 .5481345861E+00 .5750299577E+00
+ .6000222990E+00 .6235107504E+00 .6458042267E+00 .6671494757E+00 .6877503266E+00
+ .7077825692E+00 .7274040319E+00 .7467617950E+00 .7659996398E+00 .7852660600E+00
+ .8047226729E+00 .8245547967E+00 .8449854105E+00 .8662877274E+00 .8887704357E+00
+ .9126509648E+00 .9376468554E+00 .9621947265E+00 .9828795445E+00 .9957296001E+00
+ .1876976527E+00 .2852292527E+00 .3523726329E+00 .4042526081E+00 .4469708386E+00
+ .4836013555E+00 .5159140537E+00 .5450248500E+00 .5716862683E+00 .5964321681E+00
+ .6196576546E+00 .6416673171E+00 .6627040060E+00 .6829668088E+00 .7026249155E+00
+ .7218282252E+00 .7407143758E+00 .7594146138E+00 .7780603506E+00 .7967900918E+00
+ .8157570740E+00 .8351391168E+00 .8551501305E+00 .8760440101E+00 .8980748184E+00
+ .9213191995E+00 .9452242817E+00 .9679342416E+00 .9861351691E+00 .9967336499E+00
+ .1871631460E+00 .2834707176E+00 .3502057735E+00 .4018025211E+00 .4442679497E+00
+ .4806528420E+00 .5127188975E+00 .5415777430E+00 .5679786246E+00 .5924528941E+00
+ .6153931841E+00 .6370869488E+00 .6577863325E+00 .6776931990E+00 .6969708161E+00
+ .7157617483E+00 .7341954553E+00 .7523933285E+00 .7704740112E+00 .7885588676E+00
+ .8067780470E+00 .8252805788E+00 .8442448357E+00 .8638695134E+00 .8843765013E+00
+ .9059324391E+00 .9284305593E+00 .9510710656E+00 .9719147999E+00 .9880594135E+00
+ .9972106209E+00 .1866286394E+00 .2822587976E+00 .3486076321E+00 .3998862487E+00
+ .4420616031E+00 .4781701285E+00 .5099661894E+00 .5385565416E+00 .5646864405E+00
+ .5888840629E+00 .6115391662E+00 .6329494921E+00 .6533504634E+00 .6729339646E+00
+ .6918602190E+00 .7102670204E+00 .7282774352E+00 .7459945851E+00 .7635511296E+00
+ .7810551809E+00 .7986201531E+00 .8163701626E+00 .8344465406E+00 .8530148198E+00
+ .8722658030E+00 .8923891555E+00 .9134695959E+00 .9352371634E+00 .9566782795E+00
+ .9757792109E+00 .9899850722E+00 .9977167247E+00 .1860941327E+00 .2815438002E+00
+ .3475265145E+00 .3984552757E+00 .4403066680E+00 .4761108781E+00 .5076157147E+00
+ .5359225430E+00 .5617719586E+00 .5856883228E+00 .6080582973E+00 .6291764206E+00
+ .6492524391E+00 .6685059898E+00 .6870918780E+00 .7051426762E+00 .7227756531E+00
+ .7400983756E+00 .7572122974E+00 .7742165568E+00 .7912118249E+00 .8083050176E+00
+ .8256139326E+00 .8432874474E+00 .8614795285E+00 .8803683698E+00 .9001110701E+00
+ .9207154204E+00 .9417666447E+00 .9620677013E+00 .9795380518E+00 .9919119869E+00
+ .9982492987E+00 .1855596260E+00 .2812818850E+00 .3469168069E+00 .3974667836E+00
+ .4389633225E+00 .4744377335E+00 .5056319882E+00 .5336415846E+00 .5592018634E+00
+ .5828327803E+00 .6049176622E+00 .6257479736E+00 .6455520993E+00 .6645152169E+00
+ .6827914394E+00 .7005113554E+00 .7177887560E+00 .7347266452E+00 .7514212124E+00
+ .7679646760E+00 .7844486689E+00 .8009682306E+00 .8176259067E+00 .8345363911E+00
+ .8518319629E+00 .8696659395E+00 .8882031320E+00 .9075679148E+00 .9276956199E+00
+ .9480435024E+00 .9672585490E+00 .9832006503E+00 .9938400958E+00 .9988060231E+00
+ .1786157958E+00 .2715714191E+00 .3355831213E+00 .3850192456E+00 .4256824787E+00
+ .4604975171E+00 .4911489725E+00 .5186978599E+00 .5438565845E+00 .5671297363E+00
+ .5888903339E+00 .6094214548E+00 .6289438747E+00 .6476369731E+00 .6656508348E+00
+ .6831119790E+00 .7001291616E+00 .7168002676E+00 .7332168362E+00 .7494659189E+00
+ .7656323325E+00 .7818024645E+00 .7980682386E+00 .8145307955E+00 .8313051275E+00
+ .8485260722E+00 .8663527417E+00 .8849606878E+00 .9044926363E+00 .9249113669E+00
+ .9457031198E+00 .9655165009E+00 .9821383667E+00 .9933765824E+00 .9986994641E+00
+ .1818359477E+00 .2758699365E+00 .3403866912E+00 .3900757408E+00 .4308524247E+00
+ .4656921703E+00 .4963055212E+00 .5237687285E+00 .5488038273E+00 .5719202036E+00
+ .5934933154E+00 .6138088603E+00 .6330891591E+00 .6515125239E+00 .6692270506E+00
+ .6863580574E+00 .7030127042E+00 .7192852883E+00 .7352622414E+00 .7510249577E+00
+ .7666515069E+00 .7822191503E+00 .7978076092E+00 .8135022124E+00 .8293971903E+00
+ .8455998552E+00 .8622348306E+00 .8794434754E+00 .8973641047E+00 .9160604809E+00
+ .9353514796E+00 .9545336608E+00 .9721522008E+00 .9862124981E+00 .9951547442E+00
+ .9991051146E+00 .1798232751E+00 .2726581093E+00 .3366980308E+00 .3860912399E+00
+ .4266471943E+00 .4613051674E+00 .4917590315E+00 .5190759354E+00 .5439727388E+00
+ .5669550270E+00 .5883947236E+00 .6085751539E+00 .6277173434E+00 .6459977093E+00
+ .6635615638E+00 .6805319395E+00 .6970144420E+00 .7131011873E+00 .7288751807E+00
+ .7444138829E+00 .7597912726E+00 .7750795751E+00 .7903516966E+00 .8056840926E+00
+ .8211596369E+00 .8368707797E+00 .8529230212E+00 .8694364643E+00 .8865378511E+00
+ .9043249051E+00 .9227714852E+00 .9415463127E+00 .9597838527E+00 .9759972651E+00
+ .9884450282E+00 .9960501818E+00 .9992881104E+00 .1778106025E+00 .2702694344E+00
+ .3338467866E+00 .3828713419E+00 .4231302895E+00 .4575399615E+00 .4877784084E+00
+ .5149022487E+00 .5396216081E+00 .5624369019E+00 .5837153994E+00 .6037372210E+00
+ .6227215276E+00 .6408424934E+00 .6582423851E+00 .6750416690E+00 .6913442523E+00
+ .7072402317E+00 .7228094992E+00 .7381258394E+00 .7532594947E+00 .7682783994E+00
+ .7832498149E+00 .7982428583E+00 .8133311675E+00 .8285954742E+00 .8441265597E+00
+ .8600281555E+00 .8764163565E+00 .8934056972E+00 .9110605005E+00 .9292797206E+00
+ .9476016445E+00 .9650049602E+00 .9799365199E+00 .9908362753E+00 .9970689894E+00
+ .9995129737E+00 .1775786369E+00 .2694974131E+00 .3325685209E+00 .3811297321E+00
+ .4209590884E+00 .4549642410E+00 .4848165370E+00 .5115676007E+00 .5359235097E+00
+ .5583811281E+00 .5793048061E+00 .5989723920E+00 .6176009331E+00 .6353621759E+00
+ .6523957994E+00 .6688200102E+00 .6847367170E+00 .7002335821E+00 .7153872387E+00
+ .7302677599E+00 .7449415655E+00 .7594722478E+00 .7739214858E+00 .7883512657E+00
+ .8028264764E+00 .8174170220E+00 .8321999968E+00 .8472625891E+00 .8627048411E+00
+ .8786386272E+00 .8951735329E+00 .9123698628E+00 .9301298805E+00 .9480149942E+00
+ .9650571182E+00 .9797722115E+00 .9906324540E+00 .9969466945E+00 .9994800534E+00
+ .1767557912E+00 .2675220333E+00 .3302161965E+00 .3785377579E+00 .4181699322E+00
+ .4519952293E+00 .4816610818E+00 .5082057789E+00 .5323703507E+00 .5546449704E+00
+ .5753892717E+00 .5948769891E+00 .6133146774E+00 .6308781644E+00 .6477114141E+00
+ .6639291832E+00 .6796305432E+00 .6949015651E+00 .7098131895E+00 .7244372747E+00
+ .7388370764E+00 .7530725000E+00 .7672013624E+00 .7812805887E+00 .7953696097E+00
+ .8095305725E+00 .8238305771E+00 .8383440996E+00 .8531554541E+00 .8683637839E+00
+ .8840744586E+00 .9003706377E+00 .9172679534E+00 .9345987502E+00 .9518515544E+00
+ .9680041421E+00 .9816676161E+00 .9915696835E+00 .9972560683E+00 .9995298443E+00
+ .1759329455E+00 .2657726427E+00 .3281031002E+00 .3761740392E+00 .4155963315E+00
+ .4492311983E+00 .4787318709E+00 .5051288733E+00 .5290920752E+00 .5511760660E+00
+ .5717356504E+00 .5910403494E+00 .6093019230E+00 .6266897694E+00 .6433346709E+00
+ .6593466514E+00 .6748352501E+00 .6898848066E+00 .7045688138E+00 .7189515577E+00
+ .7330921637E+00 .7470427026E+00 .7608631956E+00 .7746123326E+00 .7883427951E+00
+ .8021095923E+00 .8159717455E+00 .8299937875E+00 .8442538809E+00 .8588345214E+00
+ .8738251581E+00 .8893187634E+00 .9053815362E+00 .9219884432E+00 .9389094131E+00
+ .9555269052E+00 .9708044006E+00 .9834701219E+00 .9924684451E+00 .9975587701E+00
+ .9995805012E+00 .1751100998E+00 .2642330649E+00 .3262121423E+00 .3740222733E+00
+ .4132228869E+00 .4466574834E+00 .4759709933E+00 .5022002217E+00 .5260420802E+00
+ .5479552784E+00 .5683252061E+00 .5874440246E+00 .6055202813E+00 .6227218315E+00
+ .6391840255E+00 .6549901712E+00 .6702707792E+00 .6851046219E+00 .6995580186E+00
+ .7137052948E+00 .7276022552E+00 .7413019039E+00 .7548556356E+00 .7683132108E+00
+ .7817233228E+00 .7951353814E+00 .8086048684E+00 .8221888847E+00 .8359488120E+00
+ .8499707826E+00 .8643262662E+00 .8791030902E+00 .8943852200E+00 .9102194673E+00
+ .9265452553E+00 .9430424983E+00 .9590287976E+00 .9734683387E+00 .9851863203E+00
+ .9933315327E+00 .9978552727E+00 .9996319601E+00 .1742872542E+00 .2628886749E+00
+ .3245278231E+00 .3720676740E+00 .4110356318E+00 .4442608292E+00 .4733803001E+00
+ .4994257177E+00 .5230903032E+00 .5448638630E+00 .5651045418E+00 .5840566202E+00
+ .6019006616E+00 .6188858049E+00 .6351420363E+00 .6507757146E+00 .6658768929E+00
+ .6805251328E+00 .6947913849E+00 .7087377199E+00 .7224186840E+00 .7358846230E+00
+ .7491787819E+00 .7623554594E+00 .7754680023E+00 .7885617946E+00 .8016840320E+00
+ .8148851910E+00 .8282200571E+00 .8417490536E+00 .8555399403E+00 .8696687003E+00
+ .8842173514E+00 .8993018152E+00 .9149253562E+00 .9309550964E+00 .9470145758E+00
+ .9623771286E+00 .9760054884E+00 .9868222522E+00 .9941613882E+00 .9981460102E+00
+ .9996841705E+00 .1734644085E+00 .2617261663E+00 .3230360646E+00 .3702967967E+00
+ .4090218854E+00 .4420291535E+00 .4709481857E+00 .4968054069E+00 .5202901242E+00
+ .5418732513E+00 .5618813135E+00 .5806508121E+00 .5983821491E+00 .6152381145E+00
+ .6313522754E+00 .6468265556E+00 .6617476876E+00 .6762088455E+00 .6902729031E+00
+ .7040025494E+00 .7174632669E+00 .7307027247E+00 .7437667314E+00 .7567001843E+00
+ .7695466680E+00 .7823486306E+00 .7951488359E+00 .8079951150E+00 .8209397725E+00
+ .8340353382E+00 .8473480253E+00 .8609451939E+00 .8748984393E+00 .8892828785E+00
+ .9041556673E+00 .9195139456E+00 .9352251596E+00 .9508394934E+00 .9655822808E+00
+ .9784245272E+00 .9883833746E+00 .9949603038E+00 .9984313741E+00 .9997370780E+00
+ .1726415628E+00 .2607334231E+00 .3217240166E+00 .3686973817E+00 .4071700637E+00
+ .4399514707E+00 .4686640730E+00 .4943290223E+00 .5175914963E+00 .5389604410E+00
+ .5588276489E+00 .5774511430E+00 .5950320739E+00 .6117330174E+00 .6276878750E+00
+ .6430058751E+00 .6577561358E+00 .6720425820E+00 .6859330575E+00 .6994886172E+00
+ .7127625074E+00 .7258015367E+00 .7386494238E+00 .7513451180E+00 .7639355122E+00
+ .7764664963E+00 .7889779121E+00 .8015109358E+00 .8141095013E+00 .8268211199E+00
+ .8396976273E+00 .8528093452E+00 .8662157670E+00 .8799883480E+00 .8941952198E+00
+ .9088771790E+00 .9239983210E+00 .9393668757E+00 .9545270025E+00 .9686538849E+00
+ .9807332706E+00 .9898747110E+00 .9957303264E+00 .9987117241E+00 .9997906344E+00
+ .1718187171E+00 .2598993566E+00 .3205799668E+00 .3672582723E+00 .4054696174E+00
+ .4380177137E+00 .4665183161E+00 .4919618874E+00 .5150398796E+00 .5362647991E+00
+ .5559824777E+00 .5744537880E+00 .5918802493E+00 .6084238238E+00 .6242042907E+00
+ .6393482294E+00 .6539465788E+00 .6680738253E+00 .6817966962E+00 .6951759950E+00
+ .7082634634E+00 .7211046302E+00 .7337471002E+00 .7462315589E+00 .7585981330E+00
+ .7708858441E+00 .7831326225E+00 .7953770625E+00 .8076609136E+00 .8200272598E+00
+ .8325228112E+00 .8451988530E+00 .8581127359E+00 .8713296588E+00 .8849269214E+00
+ .8989595672E+00 .9134533065E+00 .9283424374E+00 .9433859362E+00 .9580792569E+00
+ .9716005781E+00 .9829389285E+00 .9913007702E+00 .9964733607E+00 .9989873869E+00
+ .9998448006E+00 .1709958714E+00 .2592138380E+00 .3195931894E+00 .3659692100E+00
+ .4039108807E+00 .4362187194E+00 .4645020754E+00 .4897712684E+00 .5127023267E+00
+ .5337724594E+00 .5533325224E+00 .5716458383E+00 .5889140104E+00 .6052980163E+00
+ .6209314885E+00 .6359250333E+00 .6503681594E+00 .6643347603E+00 .6778902603E+00
+ .6910950265E+00 .7040032372E+00 .7166615465E+00 .7291108987E+00 .7413901072E+00
+ .7535378382E+00 .7655921415E+00 .7775896020E+00 .7895659934E+00 .8015580671E+00
+ .8136050171E+00 .8257491387E+00 .8380364216E+00 .8505177167E+00 .8632500796E+00
+ .8762968595E+00 .8897237695E+00 .9035854652E+00 .9178934215E+00 .9325552030E+00
+ .9472860987E+00 .9615249973E+00 .9744303870E+00 .9850481135E+00 .9926657359E+00
+ .9971911060E+00 .9992586656E+00 .9998995366E+00 .1705147924E+00 .2581781175E+00
+ .3183732752E+00 .3646368286E+00 .4024914901E+00 .4347244058E+00 .4629392793E+00
+ .4881443714E+00 .5110148067E+00 .5320256368E+00 .5515257059E+00 .5697789301E+00
+ .5869883456E+00 .6033137711E+00 .6188858105E+00 .6338139429E+00 .6481894155E+00
+ .6620876066E+00 .6755725921E+00 .6887018517E+00 .7015281168E+00 .7140987333E+00
+ .7264554403E+00 .7386360984E+00 .7506770762E+00 .7626143959E+00 .7744835273E+00
+ .7863192144E+00 .7981562668E+00 .8100309189E+00 .8219819430E+00 .8340513736E+00
+ .8462852735E+00 .8587346811E+00 .8714559345E+00 .8845082869E+00 .8979447720E+00
+ .9117895970E+00 .9259940898E+00 .9403688995E+00 .9545092244E+00 .9677609591E+00
+ .9792972370E+00 .9883461459E+00 .9945080948E+00 .9979789837E+00 .9994861641E+00
+ .9999325945E+00 .1700337134E+00 .2577298847E+00 .3177484381E+00 .3638459386E+00
+ .4015580958E+00 .4336678104E+00 .4617735538E+00 .4868803454E+00 .5096612803E+00
+ .5305883774E+00 .5500075065E+00 .5681822072E+00 .5853165329E+00 .6015692966E+00
+ .6170679955E+00 .6319202232E+00 .6462181820E+00 .6600387768E+00 .6734454046E+00
+ .6864929561E+00 .6992321750E+00 .7117103570E+00 .7239699532E+00 .7360484590E+00
+ .7479804619E+00 .7597998974E+00 .7715407661E+00 .7832367246E+00 .7949210463E+00
+ .8066275547E+00 .8183919104E+00 .8302525712E+00 .8422514738E+00 .8544348036E+00
+ .8668536814E+00 .8795635126E+00 .8926191655E+00 .9060607456E+00 .9198822503E+00
+ .9339765282E+00 .9480614818E+00 .9616187441E+00 .9739069089E+00 .9841125800E+00
+ .9916341754E+00 .9963678090E+00 .9987889609E+00 .9997260031E+00 .9999686139E+00
+ .1648856522E+00 .2505701807E+00 .3094080061E+00 .3546881658E+00 .3917811949E+00
+ .4233937432E+00 .4510841501E+00 .4758341377E+00 .4983002412E+00 .5189425363E+00
+ .5381007274E+00 .5560351899E+00 .5729453289E+00 .5889838955E+00 .6042745761E+00
+ .6189247545E+00 .6330272517E+00 .6466573333E+00 .6598746538E+00 .6727308882E+00
+ .6852758850E+00 .6975575361E+00 .7096181913E+00 .7214934194E+00 .7332148862E+00
+ .7448141478E+00 .7563238887E+00 .7677766707E+00 .7792037979E+00 .7906359942E+00
+ .8021051986E+00 .8136459283E+00 .8252957633E+00 .8370957150E+00 .8490911670E+00
+ .8613331455E+00 .8738787936E+00 .8867889383E+00 .9001185409E+00 .9138925131E+00
+ .9280575965E+00 .9424074235E+00 .9565005043E+00 .9696280278E+00 .9809122033E+00
+ .9895745467E+00 .9952834417E+00 .9983546129E+00 .9996091016E+00 .9999528378E+00
+ .1666847844E+00 .2529293363E+00 .3120303105E+00 .3574522671E+00 .3946239644E+00
+ .4262777176E+00 .4539838380E+00 .4787305753E+00 .5011808221E+00 .5217987976E+00
+ .5409233427E+00 .5588134684E+00 .5756717581E+00 .5916556053E+00 .6068886716E+00
+ .6214740859E+00 .6355022748E+00 .6490509982E+00 .6621837446E+00 .6749525382E+00
+ .6874039193E+00 .6995826584E+00 .7115309614E+00 .7232861500E+00 .7348806185E+00
+ .7463443649E+00 .7577074677E+00 .7690005706E+00 .7802540276E+00 .7914975393E+00
+ .8027610231E+00 .8140759733E+00 .8254763988E+00 .8369993049E+00 .8486852477E+00
+ .8605791442E+00 .8727306639E+00 .8851925178E+00 .8980134191E+00 .9112201678E+00
+ .9247817087E+00 .9385514895E+00 .9521989128E+00 .9651669740E+00 .9767161704E+00
+ .9861004852E+00 .9928429559E+00 .9969683135E+00 .9990156485E+00 .9997834421E+00
+ .9999759053E+00 .1671335250E+00 .2534225924E+00 .3124865727E+00 .3578437426E+00
+ .3949383060E+00 .4265086399E+00 .4541274364E+00 .4787834696E+00 .5011405368E+00
+ .5216641822E+00 .5406928101E+00 .5584835942E+00 .5752388717E+00 .5911178665E+00
+ .6062451284E+00 .6207219443E+00 .6346362620E+00 .6480655661E+00 .6610750173E+00
+ .6737175573E+00 .6860383507E+00 .6980797634E+00 .7098827060E+00 .7214847581E+00
+ .7329187148E+00 .7442137589E+00 .7553980395E+00 .7665002101E+00 .7775491839E+00
+ .7885733922E+00 .7996009315E+00 .8106606421E+00 .8217832420E+00 .8330019813E+00
+ .8443530564E+00 .8558761935E+00 .8676152485E+00 .8796178216E+00 .8919318024E+00
+ .9045950849E+00 .9176127319E+00 .9309159548E+00 .9443039630E+00 .9573869920E+00
+ .9695725833E+00 .9801476548E+00 .9884763820E+00 .9942506247E+00 .9976476165E+00
+ .9992642193E+00 .9998444096E+00 .9999833903E+00 .1681743394E+00 .2547197125E+00
+ .3138589426E+00 .3592216212E+00 .3962870429E+00 .4278084118E+00 .4553657040E+00
+ .4799509004E+00 .5022297518E+00 .5226702428E+00 .5416121078E+00 .5593114984E+00
+ .5759697227E+00 .5917472981E+00 .6067708151E+00 .6211413510E+00 .6349445020E+00
+ .6482561794E+00 .6611423815E+00 .6736577166E+00 .6858473957E+00 .6977519016E+00
+ .7094101482E+00 .7208591243E+00 .7321320595E+00 .7432581249E+00 .7542642383E+00
+ .7651771278E+00 .7760239894E+00 .7868319551E+00 .7976277158E+00 .8084380580E+00
+ .8192909207E+00 .8302162454E+00 .8412464442E+00 .8524168085E+00 .8637660282E+00
+ .8753363344E+00 .8871719217E+00 .8993131109E+00 .9117820677E+00 .9245548013E+00
+ .9375165616E+00 .9504076190E+00 .9627846593E+00 .9740406356E+00 .9835213475E+00
+ .9907300181E+00 .9955338540E+00 .9982409703E+00 .9994717954E+00 .9998930054E+00
+ .9999890784E+00 .1670987390E+00 .2530386565E+00 .3117240397E+00 .3567056204E+00
+ .3934325200E+00 .4246426356E+00 .4519068882E+00 .4762125054E+00 .4982221284E+00
+ .5183996568E+00 .5370813152E+00 .5545228284E+00 .5709264146E+00 .5864512124E+00
+ .6012201439E+00 .6153317210E+00 .6288720095E+00 .6419186095E+00 .6545374568E+00
+ .6667806613E+00 .6786904146E+00 .6903057586E+00 .7016659350E+00 .7128084796E+00
+ .7237658473E+00 .7345649628E+00 .7452300996E+00 .7557860072E+00 .7662586361E+00
+ .7766737944E+00 .7870559725E+00 .7974287661E+00 .8078163542E+00 .8182446694E+00
+ .8287417076E+00 .8393375272E+00 .8500646572E+00 .8609589828E+00 .8720605568E+00
+ .8834134597E+00 .8950632038E+00 .9070486161E+00 .9193829401E+00 .9320181158E+00
+ .9447909196E+00 .9573643253E+00 .9692007321E+00 .9796196271E+00 .9879711861E+00
+ .9938824785E+00 .9974425199E+00 .9991808775E+00 .9998222800E+00 .9999805000E+00
+ .1650591103E+00 .2503095152E+00 .3086618050E+00 .3534665584E+00 .3901011987E+00
+ .4212713566E+00 .4485313067E+00 .4728566407E+00 .4949022529E+00 .5151304550E+00
+ .5338774153E+00 .5513940951E+00 .5678763277E+00 .5834828502E+00 .5983417391E+00
+ .6125540125E+00 .6262012858E+00 .6393547960E+00 .6520794216E+00 .6644319827E+00
+ .6764591662E+00 .6881994239E+00 .6996875870E+00 .7109579264E+00 .7220436648E+00
+ .7329748943E+00 .7437779238E+00 .7544768387E+00 .7650956055E+00 .7756589338E+00
+ .7861918139E+00 .7967189506E+00 .8072650293E+00 .8178556497E+00 .8285182197E+00
+ .8392824584E+00 .8501807142E+00 .8612483356E+00 .8725238169E+00 .8840476713E+00
+ .8958580130E+00 .9079795649E+00 .9204018005E+00 .9330431751E+00 .9457049169E+00
+ .9580311512E+00 .9695074184E+00 .9795326683E+00 .9875733361E+00 .9933516945E+00
+ .9969692505E+00 .9988754992E+00 .9996830795E+00 .9999399304E+00 .9999942765E+00
+ .4947759637E+00 .3551678249E+00 .6395497183E+00 .2860091524E+00 .4808520903E+00
+ .6931686001E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .2777543836E+00 .4413818114E+00 .5744454374E+00 .7046652787E+00 .8522728402E+00
+ .2551499062E+00 .4018124348E+00 .5166935097E+00 .6220023455E+00 .7326205456E+00
+ .8642402640E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .0000000000E+00 .0000000000E+00 .0000000000E+00 .2387339286E+00 .3713055478E+00
+ .4702336707E+00 .5546792362E+00 .6334882591E+00 .7133529976E+00 .8021269817E+00
+ .9061118914E+00 .2286790323E+00 .3543357560E+00 .4468885461E+00 .5245409149E+00
+ .5951917986E+00 .6638903101E+00 .7356643748E+00 .8172611756E+00 .9137174789E+00
+ .2213122875E+00 .3418765058E+00 .4297347015E+00 .5024720338E+00 .5674873593E+00
+ .6290320400E+00 .6906122337E+00 .7563964131E+00 .8322849037E+00 .9218460029E+00
+ .2173780894E+00 .3349915804E+00 .4198900896E+00 .4893590565E+00 .5505883538E+00
+ .6074622953E+00 .6627521410E+00 .7191970446E+00 .7803735182E+00 .8511972580E+00
+ .9328816611E+00 .2116946447E+00 .3255719521E+00 .4072126774E+00 .4734610821E+00
+ .5312731086E+00 .5842900745E+00 .6348913262E+00 .6851326782E+00 .7373326213E+00
+ .7947057158E+00 .8616276548E+00 .9383657756E+00 .2102629617E+00 .3228951955E+00
+ .4031182154E+00 .4676607628E+00 .5234369826E+00 .5740257870E+00 .6216226328E+00
+ .6679114504E+00 .7145534148E+00 .7635536576E+00 .8176960953E+00 .8802549767E+00
+ .9490625263E+00 .2083351205E+00 .3195304369E+00 .3983365001E+00 .4613167724E+00
+ .5153151196E+00 .5638655402E+00 .6090654456E+00 .6523848448E+00 .6951270149E+00
+ .7387142859E+00 .7849309838E+00 .8361890391E+00 .8947994966E+00 .9569197661E+00
+ .2081026339E+00 .3188270960E+00 .3969796190E+00 .4590700753E+00 .5119166703E+00
+ .5590535912E+00 .6025655744E+00 .6438291068E+00 .6839351589E+00 .7239646076E+00
+ .7651709028E+00 .8091300428E+00 .8577412389E+00 .9119178141E+00 .9659214366E+00
+ .2029801128E+00 .3106586752E+00 .3864260829E+00 .4464112793E+00 .4972537176E+00
+ .5423867107E+00 .5838269463E+00 .6228700805E+00 .6604723792E+00 .6974983572E+00
+ .7348813032E+00 .7737464673E+00 .8155476972E+00 .8620760447E+00 .9142272434E+00
+ .9665861764E+00 .2016651809E+00 .3083781797E+00 .3832612765E+00 .4423230661E+00
+ .4921395858E+00 .5361125530E+00 .5762536196E+00 .6138439368E+00 .6497710962E+00
+ .6847557946E+00 .7195097242E+00 .7548468417E+00 .7917827174E+00 .8316326415E+00
+ .8758792096E+00 .9246716890E+00 .9717761716E+00 .2031079734E+00 .3102856988E+00
+ .3853190100E+00 .4442977697E+00 .4938106567E+00 .5372611284E+00 .5766754189E+00
+ .6133601616E+00 .6482025927E+00 .6818647682E+00 .7149254738E+00 .7479743891E+00
+ .7816812947E+00 .8168781767E+00 .8546230812E+00 .8958817391E+00 .9396962342E+00
+ .9789750069E+00 .1904600253E+00 .2919475424E+00 .3638432100E+00 .4210281119E+00
+ .4695175481E+00 .5123682249E+00 .5513726855E+00 .5877001487E+00 .6221806324E+00
+ .6554563972E+00 .6880728914E+00 .7205397609E+00 .7533882755E+00 .7872376591E+00
+ .8228677851E+00 .8612077215E+00 .9027974894E+00 .9457082908E+00 .9820597707E+00
+ .1838662398E+00 .2816176551E+00 .3509060578E+00 .4060464235E+00 .4528098582E+00
+ .4941203161E+00 .5316867750E+00 .5666213397E+00 .5997034154E+00 .6315241382E+00
+ .6625749206E+00 .6932968437E+00 .7241237057E+00 .7555317674E+00 .7880986900E+00
+ .8225777528E+00 .8599152257E+00 .9008003823E+00 .9436787246E+00 .9809544280E+00
+ .1816584226E+00 .2774147412E+00 .3459089058E+00 .4004453162E+00 .4466325221E+00
+ .4873466319E+00 .5242708302E+00 .5584947367E+00 .5907799699E+00 .6216943778E+00
+ .6516952364E+00 .6811781773E+00 .7105297508E+00 .7401411026E+00 .7704489903E+00
+ .8019909106E+00 .8354465894E+00 .8715536843E+00 .9104960789E+00 .9501043208E+00
+ .9833256847E+00 .1794506054E+00 .2742308314E+00 .3419804795E+00 .3958639375E+00
+ .4414275078E+00 .4815166749E+00 .5177929608E+00 .5513247083E+00 .5828568678E+00
+ .6129391070E+00 .6420024354E+00 .6704124959E+00 .6985029040E+00 .7266185650E+00
+ .7551049653E+00 .7843652300E+00 .8149004989E+00 .8473306065E+00 .8822458969E+00
+ .9194800802E+00 .9563523468E+00 .9859381889E+00 .1772427881E+00 .2719330174E+00
+ .3389813782E+00 .3921692908E+00 .4370679893E+00 .4765073663E+00 .5121308093E+00
+ .5449864682E+00 .5758036283E+00 .6051181493E+00 .6333417314E+00 .6608163580E+00
+ .6878462092E+00 .7147158414E+00 .7417125405E+00 .7691527126E+00 .7974110457E+00
+ .8269556794E+00 .8583581340E+00 .8921152210E+00 .9278451419E+00 .9624460258E+00
+ .9887604688E+00 .1783736970E+00 .2726537805E+00 .3389880908E+00 .3913555250E+00
+ .4353791256E+00 .4739045370E+00 .5085792163E+00 .5404463945E+00 .5702276788E+00
+ .5984518290E+00 .6255181956E+00 .6517503865E+00 .6774317336E+00 .7028199576E+00
+ .7281629124E+00 .7537208087E+00 .7797880475E+00 .8067191704E+00 .8349620431E+00
+ .8650609243E+00 .8974637429E+00 .9317144465E+00 .9646972154E+00 .9895312148E+00
+ .1722984724E+00 .2638470872E+00 .3285111406E+00 .3797079396E+00 .4228367902E+00
+ .4606357087E+00 .4946950177E+00 .5260140960E+00 .5552816794E+00 .5830087869E+00
+ .6095782085E+00 .6352901562E+00 .6604051276E+00 .6851596645E+00 .7097728347E+00
+ .7344631454E+00 .7594682220E+00 .7850620109E+00 .8115782354E+00 .8394395021E+00
+ .8691486865E+00 .9010729017E+00 .9346195925E+00 .9665648442E+00 .9902264300E+00
+ .1758691309E+00 .2678701940E+00 .3322145701E+00 .3827758131E+00 .4251027852E+00
+ .4619972338E+00 .4950781520E+00 .5253550412E+00 .5535208481E+00 .5800899961E+00
+ .6054425913E+00 .6298683395E+00 .6536160335E+00 .6769109738E+00 .6999546283E+00
+ .7229376864E+00 .7460606709E+00 .7695473620E+00 .7936586665E+00 .8187181940E+00
+ .8451434987E+00 .8734411360E+00 .9040030810E+00 .9363092509E+00 .9672782219E+00
+ .9903824535E+00 .1699679020E+00 .2604476004E+00 .3242806807E+00 .3747150469E+00
+ .4170975872E+00 .4541279994E+00 .4873817117E+00 .5178580506E+00 .5462247371E+00
+ .5729690216E+00 .5984685219E+00 .6230138170E+00 .6468369880E+00 .6701428607E+00
+ .6931204048E+00 .7159450202E+00 .7387890123E+00 .7618361262E+00 .7852931465E+00
+ .8094033709E+00 .8344651991E+00 .8608390351E+00 .8888721713E+00 .9185502225E+00
+ .9486091029E+00 .9753874439E+00 .9933986167E+00 .1672340286E+00 .2562593759E+00
+ .3190720161E+00 .3686958814E+00 .4103874230E+00 .4467955106E+00 .4794678482E+00
+ .5093908477E+00 .5372169120E+00 .5634163854E+00 .5883591017E+00 .6123316906E+00
+ .6355552922E+00 .6582196497E+00 .6805015539E+00 .7025639943E+00 .7245598260E+00
+ .7466453256E+00 .7689918947E+00 .7917944977E+00 .8152847441E+00 .8397484288E+00
+ .8655275453E+00 .8929344949E+00 .9218904938E+00 .9510534385E+00 .9767780630E+00
+ .9938455836E+00 .1683673279E+00 .2574727367E+00 .3201207496E+00 .3694788913E+00
+ .4108536802E+00 .4469121895E+00 .4792002739E+00 .5087108396E+00 .5361052539E+00
+ .5618461868E+00 .5862927576E+00 .6097326228E+00 .6323879787E+00 .6544386464E+00
+ .6760480832E+00 .6973697026E+00 .7185451186E+00 .7397113518E+00 .7610128509E+00
+ .7826097001E+00 .8046852275E+00 .8274584749E+00 .8511964260E+00 .8761992366E+00
+ .9026746858E+00 .9303233105E+00 .9575092590E+00 .9805737263E+00 .9950881713E+00
+ .1675997599E+00 .2565182791E+00 .3190157783E+00 .3682056505E+00 .4093872082E+00
+ .4452309338E+00 .4772754124E+00 .5065096288E+00 .5336031475E+00 .5590186557E+00
+ .5831041710E+00 .6061428550E+00 .6283600218E+00 .6499324982E+00 .6710128672E+00
+ .6917446536E+00 .7122619133E+00 .7326899876E+00 .7531546082E+00 .7737912931E+00
+ .7947512964E+00 .8162091832E+00 .8383740268E+00 .8614947256E+00 .8858253791E+00
+ .9114581379E+00 .9378683790E+00 .9631686138E+00 .9837848916E+00 .9960885569E+00
+ .1674579039E+00 .2553771391E+00 .3175044097E+00 .3663989025E+00 .4072913963E+00
+ .4428419450E+00 .4745858723E+00 .5035033086E+00 .5302628564E+00 .5553322151E+00
+ .5790544515E+00 .6016904538E+00 .6234753124E+00 .6445925724E+00 .6651878438E+00
+ .6853929834E+00 .7053327184E+00 .7251238508E+00 .7448789566E+00 .7647141099E+00
+ .7847556834E+00 .8051487849E+00 .8260657896E+00 .8476983908E+00 .8702662942E+00
+ .8939507799E+00 .9186919190E+00 .9437532142E+00 .9671673052E+00 .9857295757E+00
+ .9965753970E+00 .1673160478E+00 .2547117089E+00 .3164940324E+00 .3650704380E+00
+ .4056493032E+00 .4408874524E+00 .4723185265E+00 .5009140898E+00 .5273395708E+00
+ .5520664923E+00 .5754352504E+00 .5977095955E+00 .6191084667E+00 .6398108900E+00
+ .6599599607E+00 .6796788251E+00 .6990839317E+00 .7182798657E+00 .7373880811E+00
+ .7565100507E+00 .7757540232E+00 .7952393521E+00 .8151010691E+00 .8354966251E+00
+ .8566097074E+00 .8786329875E+00 .9016837499E+00 .9255725050E+00 .9493818106E+00
+ .9710635662E+00 .9877029582E+00 .9971077595E+00 .1671741918E+00 .2544787421E+00
+ .3159391086E+00 .3641767896E+00 .4044196907E+00 .4393279645E+00 .4704350012E+00
+ .4987040701E+00 .5247953932E+00 .5491832005E+00 .5722074406E+00 .5941240505E+00
+ .6151268785E+00 .6354212211E+00 .6551480815E+00 .6744247468E+00 .6933587957E+00
+ .7120534257E+00 .7306057464E+00 .7491084845E+00 .7676556875E+00 .7863485771E+00
+ .8052987493E+00 .8246486046E+00 .8445403276E+00 .8651455241E+00 .8866316362E+00
+ .9090599625E+00 .9321319249E+00 .9547774613E+00 .9748667287E+00 .9897023940E+00
+ .9976814883E+00 .1670323357E+00 .2546400854E+00 .3157994569E+00 .3636795931E+00
+ .4035661719E+00 .4381286348E+00 .4689014360E+00 .4968397932E+00 .5225968842E+00
+ .5466486228E+00 .5693364975E+00 .5909097444E+00 .6115725618E+00 .6315021950E+00
+ .6508433936E+00 .6697108033E+00 .6882049292E+00 .7064232097E+00 .7244589113E+00
+ .7423986786E+00 .7603267208E+00 .7783314602E+00 .7965093179E+00 .8149672091E+00
+ .8338270851E+00 .8532311018E+00 .8733389753E+00 .8942947322E+00 .9161108983E+00
+ .9383985688E+00 .9599607217E+00 .9785850229E+00 .9917256444E+00 .9982929537E+00
+ .1585249168E+00 .2426109500E+00 .3017493822E+00 .3482992139E+00 .3872391281E+00
+ .4211031592E+00 .4513468014E+00 .4788657312E+00 .5042820661E+00 .5280618430E+00
+ .5505339634E+00 .5719267025E+00 .5924285691E+00 .6122137723E+00 .6314278042E+00
+ .6501792670E+00 .6685571829E+00 .6866502239E+00 .7045479012E+00 .7223328487E+00
+ .7400807308E+00 .7578680761E+00 .7757783311E+00 .7939032638E+00 .8123447180E+00
+ .8312197059E+00 .8506659790E+00 .8708403385E+00 .8918893988E+00 .9138428471E+00
+ .9363535065E+00 .9582817532E+00 .9774320518E+00 .9911523766E+00 .9981421322E+00
+ .1632319790E+00 .2490914042E+00 .3090811124E+00 .3560531545E+00 .3951705625E+00
+ .4290436349E+00 .4591838230E+00 .4865262766E+00 .5116980430E+00 .5351649360E+00
+ .5572739492E+00 .5782701848E+00 .5983394542E+00 .6176465145E+00 .6363379668E+00
+ .6545303469E+00 .6723142907E+00 .6897719094E+00 .7069861203E+00 .7240369143E+00
+ .7409972805E+00 .7579369518E+00 .7749290700E+00 .7920534043E+00 .8093972830E+00
+ .8270583765E+00 .8451495683E+00 .8638016602E+00 .8831539270E+00 .9033068346E+00
+ .9241856606E+00 .9452655842E+00 .9652315154E+00 .9819444367E+00 .9932693518E+00
+ .9986677826E+00 .1612185066E+00 .2459655186E+00 .3055128516E+00 .3522118954E+00
+ .3911264358E+00 .4248259449E+00 .4548064212E+00 .4820032543E+00 .5070358529E+00
+ .5303556326E+00 .5523077399E+00 .5731456091E+00 .5930550701E+00 .6121901561E+00
+ .6306902086E+00 .6486743181E+00 .6662366845E+00 .6834557447E+00 .7004065118E+00
+ .7171637013E+00 .7337980939E+00 .7503756355E+00 .7669617427E+00 .7836260238E+00
+ .8004443411E+00 .8175001412E+00 .8348874114E+00 .8527141137E+00 .8711007924E+00
+ .8901616580E+00 .9099399940E+00 .9302548205E+00 .9504431211E+00 .9691188681E+00
+ .9842994183E+00 .9942691269E+00 .9988862732E+00 .1592050342E+00 .2435623545E+00
+ .3026810870E+00 .3490456153E+00 .3876929169E+00 .4211622029E+00 .4509360605E+00
+ .4779494945E+00 .5028115609E+00 .5259580485E+00 .5477323178E+00 .5683954180E+00
+ .5881323601E+00 .6070864678E+00 .6253897746E+00 .6431632985E+00 .6605046557E+00
+ .6774894518E+00 .6941855848E+00 .7106625058E+00 .7269888445E+00 .7432278269E+00
+ .7594389369E+00 .7756834509E+00 .7920278772E+00 .8085446856E+00 .8253136652E+00
+ .8424251955E+00 .8599828709E+00 .8780993202E+00 .8968706748E+00 .9162986722E+00
+ .9361198612E+00 .9555479807E+00 .9730965625E+00 .9868514224E+00 .9954414191E+00
+ .9991695174E+00 .1591098551E+00 .2428133467E+00 .3012903593E+00 .3470637614E+00
+ .3851636748E+00 .4181222172E+00 .4474177267E+00 .4739773270E+00 .4984011489E+00
+ .5211206351E+00 .5424793222E+00 .5627380437E+00 .5820772798E+00 .6006333423E+00
+ .6185342422E+00 .6359018093E+00 .6528348977E+00 .6694060053E+00 .6856765272E+00
+ .7017107011E+00 .7175750692E+00 .7333309965E+00 .7490331328E+00 .7647351723E+00
+ .7804952867E+00 .7963771182E+00 .8124493940E+00 .8287878719E+00 .8454790868E+00
+ .8626225317E+00 .8803257613E+00 .8986788924E+00 .9176791771E+00 .9370679274E+00
+ .9560858182E+00 .9733015275E+00 .9868599351E+00 .9953977915E+00 .9991498223E+00
+ .1584162142E+00 .2410746466E+00 .2991712093E+00 .3446790865E+00 .3825515771E+00
+ .4152978722E+00 .4443695231E+00 .4706874480E+00 .4948895158E+00 .5173948523E+00
+ .5385334559E+00 .5585662311E+00 .5776751106E+00 .5959998538E+00 .6136631840E+00
+ .6307789085E+00 .6474477507E+00 .6637470744E+00 .6797328577E+00 .6954659827E+00
+ .7110074662E+00 .7264168146E+00 .7417476385E+00 .7570492435E+00 .7723732592E+00
+ .7877755642E+00 .8033164006E+00 .8190609074E+00 .8350814307E+00 .8514635000E+00
+ .8683028646E+00 .8856905222E+00 .9036888169E+00 .9222451449E+00 .9410356745E+00
+ .9592331077E+00 .9754335824E+00 .9879868820E+00 .9957989284E+00 .9992194920E+00
+ .1577225734E+00 .2395359338E+00 .2972667525E+00 .3425027564E+00 .3801396236E+00
+ .4126677659E+00 .4415384232E+00 .4676689324E+00 .4916433109E+00 .5139318685E+00
+ .5348503371E+00 .5546577360E+00 .5735509121E+00 .5916675977E+00 .6091093992E+00
+ .6259784298E+00 .6423890844E+00 .6584237918E+00 .6741421053E+00 .6895934989E+00
+ .7048312463E+00 .7199092736E+00 .7348862264E+00 .7498130088E+00 .7647341155E+00
+ .7796979435E+00 .7947576402E+00 .8099702269E+00 .8254024411E+00 .8411240977E+00
+ .8572128054E+00 .8737559946E+00 .8908359670E+00 .9084907368E+00 .9266249200E+00
+ .9448364215E+00 .9622366835E+00 .9774745686E+00 .9890778224E+00 .9961969448E+00
+ .9992919956E+00 .1570289325E+00 .2381828924E+00 .2955616516E+00 .3405198903E+00
+ .3779135160E+00 .4102180019E+00 .4388720817E+00 .4648003231E+00 .4886193584E+00
+ .5107128648E+00 .5314111693E+00 .5509937859E+00 .5696644768E+00 .5875644955E+00
+ .6047940872E+00 .6214237843E+00 .6375859220E+00 .6533637700E+00 .6688148016E+00
+ .6839954039E+00 .6989520057E+00 .7137366284E+00 .7284013546E+00 .7429924527E+00
+ .7575511590E+00 .7721191701E+00 .7867453746E+00 .8014809272E+00 .8163790030E+00
+ .8315134498E+00 .8469429089E+00 .8627438117E+00 .8789981488E+00 .8957776956E+00
+ .9131049582E+00 .9308295967E+00 .9484694215E+00 .9651067668E+00 .9794309358E+00
+ .9901353908E+00 .9965920581E+00 .9993671271E+00 .1563352917E+00 .2370025804E+00
+ .2940419966E+00 .3387169922E+00 .3758602861E+00 .4079360197E+00 .4363709996E+00
+ .4620854119E+00 .4856996642E+00 .5076273684E+00 .5281657263E+00 .5475445058E+00
+ .5659523872E+00 .5836090649E+00 .6006094174E+00 .6170373669E+00 .6329827333E+00
+ .6485325827E+00 .6637555546E+00 .6786996221E+00 .6934049610E+00 .7079167199E+00
+ .7222811544E+00 .7365519707E+00 .7507748061E+00 .7649868397E+00 .7792285967E+00
+ .7935450167E+00 .8079841955E+00 .8225972702E+00 .8374403532E+00 .8525768202E+00
+ .8680782399E+00 .8840586806E+00 .9005641993E+00 .9175676899E+00 .9348715917E+00
+ .9519505701E+00 .9678526958E+00 .9813086108E+00 .9911618524E+00 .9969844730E+00
+ .9994447122E+00 .1556416508E+00 .2359832224E+00 .2926951537E+00 .3370817898E+00
+ .3739681602E+00 .4058103701E+00 .4340239071E+00 .4595229809E+00 .4829310671E+00
+ .5046484600E+00 .5249391751E+00 .5441086777E+00 .5623607455E+00 .5798508730E+00
+ .5966821007E+00 .6129245528E+00 .6286563541E+00 .6439800403E+00 .6589642249E+00
+ .6736601796E+00 .6881153231E+00 .7023686186E+00 .7164657906E+00 .7304532508E+00
+ .7443716545E+00 .7582561544E+00 .7721417102E+00 .7860703891E+00 .8000886287E+00
+ .8142412930E+00 .8285830240E+00 .8431687593E+00 .8580585807E+00 .8733209664E+00
+ .8890236656E+00 .9052126984E+00 .9218770493E+00 .9387622858E+00 .9552901223E+00
+ .9704829729E+00 .9831129406E+00 .9921593622E+00 .9973743713E+00 .9995245791E+00
+ .1549480099E+00 .2351140970E+00 .2915095901E+00 .3356030928E+00 .3722263817E+00
+ .4038306436E+00 .4318205331E+00 .4571028772E+00 .4802678764E+00 .5017551488E+00
+ .5218845094E+00 .5408809567E+00 .5589473790E+00 .5762476618E+00 .5928920187E+00
+ .6089548322E+00 .6244902911E+00 .6396057794E+00 .6543781604E+00 .6688644313E+00
+ .6831023993E+00 .6971249385E+00 .7109718268E+00 .7246856595E+00 .7383134744E+00
+ .7518942443E+00 .7654594827E+00 .7790434953E+00 .7926849702E+00 .8064255246E+00
+ .8203086121E+00 .8343927239E+00 .8487249917E+00 .8633658401E+00 .8783802955E+00
+ .8938282713E+00 .9097380824E+00 .9260497648E+00 .9425117016E+00 .9584976144E+00
+ .9730052407E+00 .9848488613E+00 .9931298283E+00 .9977619227E+00 .9996065716E+00
+ .1542543691E+00 .2343853906E+00 .2904747952E+00 .3342707184E+00 .3706251563E+00
+ .4019873001E+00 .4297515109E+00 .4547935067E+00 .4777496624E+00 .4990715362E+00
+ .5190348611E+00 .5378561942E+00 .5557357528E+00 .5728450858E+00 .5892902150E+00
+ .6051604147E+00 .6205214495E+00 .6354472011E+00 .6500157302E+00 .6642908267E+00
+ .6783128023E+00 .6921112500E+00 .7057248778E+00 .7191949528E+00 .7325637148E+00
+ .7458676852E+00 .7591376790E+00 .7724046033E+00 .7857039023E+00 .7990734001E+00
+ .8125531005E+00 .8261849193E+00 .8400146890E+00 .8540952104E+00 .8684930071E+00
+ .8832640698E+00 .8984616535E+00 .9140991905E+00 .9300863465E+00 .9461261000E+00
+ .9615815766E+00 .9754265618E+00 .9865207780E+00 .9940750470E+00 .9981472800E+00
+ .9996905571E+00 .1535607282E+00 .2337881398E+00 .2895811428E+00 .3330753020E+00
+ .3691555088E+00 .4002716573E+00 .4278082568E+00 .4526532966E+00 .4754353295E+00
+ .4965842325E+00 .5163771750E+00 .5350214404E+00 .5527129786E+00 .5696303252E+00
+ .5859021515E+00 .6016040520E+00 .6167909818E+00 .6315288394E+00 .6458962423E+00
+ .6599638582E+00 .6737788851E+00 .6873701607E+00 .7007651370E+00 .7140004547E+00
+ .7271186131E+00 .7401585071E+00 .7531512211E+00 .7661239806E+00 .7791063450E+00
+ .7921325187E+00 .8052396670E+00 .8184662161E+00 .8318526731E+00 .8454439911E+00
+ .8592912777E+00 .8734515244E+00 .8879835981E+00 .9029348371E+00 .9183064621E+00
+ .9339830013E+00 .9496228988E+00 .9645499554E+00 .9777534197E+00 .9881327993E+00
+ .9949965921E+00 .9985305902E+00 .9997764066E+00 .1534015421E+00 .2332572024E+00
+ .2889513250E+00 .3323827494E+00 .3683983244E+00 .3994508299E+00 .4269361418E+00
+ .4517266829E+00 .4744320270E+00 .4954941249E+00 .5152148339E+00 .5338013002E+00
+ .5514254192E+00 .5682500065E+00 .5844138904E+00 .6000133568E+00 .6151101154E+00
+ .6297577144E+00 .6440188187E+00 .6579604006E+00 .6716385070E+00 .6850913795E+00
+ .6983467073E+00 .7114335141E+00 .7243870530E+00 .7372447342E+00 .7500400888E+00
+ .7628015279E+00 .7755559910E+00 .7883328813E+00 .8011650197E+00 .8140874762E+00
+ .8271369593E+00 .8403528863E+00 .8537790877E+00 .8674645119E+00 .8814613486E+00
+ .8958173608E+00 .9105551539E+00 .9256271411E+00 .9408380618E+00 .9557480677E+00
+ .9696139438E+00 .9814698745E+00 .9904243048E+00 .9960946869E+00 .9988899525E+00
+ .9998360774E+00 .1532423559E+00 .2332392992E+00 .2888410700E+00 .3321645669E+00
+ .3680688026E+00 .3990170582E+00 .4264174726E+00 .4511265059E+00 .4737331228E+00
+ .4946887664E+00 .5143190071E+00 .5328326807E+00 .5503794007E+00 .5671047753E+00
+ .5831541063E+00 .5986425829E+00 .6136407351E+00 .6281932064E+00 .6423476748E+00
+ .6561649982E+00 .6697070013E+00 .6830207345E+00 .6961362702E+00 .7090774444E+00
+ .7218726839E+00 .7345564604E+00 .7471633961E+00 .7597232985E+00 .7722618833E+00
+ .7848049682E+00 .7973813912E+00 .8100229096E+00 .8227629969E+00 .8356368269E+00
+ .8486826243E+00 .8619430027E+00 .8754648448E+00 .8892959242E+00 .9034739225E+00
+ .9179991346E+00 .9327798538E+00 .9475477965E+00 .9617705216E+00 .9746356389E+00
+ .9852062493E+00 .9927745164E+00 .9972517329E+00 .9992820003E+00 .9999040494E+00
+ .1467459402E+00 .2241006569E+00 .2781704159E+00 .3204570007E+00 .3556063744E+00
+ .3859907846E+00 .4129395929E+00 .4372579945E+00 .4595350193E+00 .4802317360E+00
+ .4996540527E+00 .5179765503E+00 .5353333178E+00 .5518799449E+00 .5677773556E+00
+ .5831426673E+00 .5980332455E+00 .6124778315E+00 .6265173921E+00 .6402172721E+00
+ .6536478568E+00 .6668600877E+00 .6798800092E+00 .6927232378E+00 .7054121777E+00
+ .7179807512E+00 .7304664761E+00 .7429009368E+00 .7553079068E+00 .7677087114E+00
+ .7801280016E+00 .7925950214E+00 .8051413784E+00 .8177992835E+00 .8306023102E+00
+ .8435875438E+00 .8567971482E+00 .8702784924E+00 .8840821586E+00 .8982545920E+00
+ .9128173492E+00 .9277206061E+00 .9427617615E+00 .9574830767E+00 .9711121872E+00
+ .9826576366E+00 .9912374456E+00 .9965357250E+00 .9990552724E+00 .9998677334E+00
+ .1495251926E+00 .2278766648E+00 .2824415890E+00 .3250091262E+00 .3603094519E+00
+ .3907514002E+00 .4177218946E+00 .4420517987E+00 .4643003565E+00 .4849107776E+00
+ .5042221326E+00 .5224498475E+00 .5397266628E+00 .5561738718E+00 .5719302539E+00
+ .5871256978E+00 .6018468002E+00 .6161367714E+00 .6300259050E+00 .6435590407E+00
+ .6567967924E+00 .6697969289E+00 .6825985582E+00 .6952233662E+00 .7076891176E+00
+ .7200208538E+00 .7322510859E+00 .7444124100E+00 .7565316930E+00 .7686308065E+00
+ .7807314210E+00 .7928585147E+00 .8050403094E+00 .8173065345E+00 .8296878089E+00
+ .8422167968E+00 .8549298269E+00 .8678675944E+00 .8810741048E+00 .8945920150E+00
+ .9084493297E+00 .9226285372E+00 .9370090437E+00 .9512853543E+00 .9648947127E+00
+ .9770299412E+00 .9868213021E+00 .9936832559E+00 .9976469382E+00 .9993989245E+00
+ .9999215607E+00 .1504204413E+00 .2289956338E+00 .2836095034E+00 .3261567988E+00
+ .3613990946E+00 .3917513215E+00 .4186180758E+00 .4428474572E+00 .4649896670E+00
+ .4854710766E+00 .5046364869E+00 .5227229213E+00 .5398715915E+00 .5561899538E+00
+ .5717992937E+00 .5868282061E+00 .6013772851E+00 .6155024260E+00 .6292329378E+00
+ .6426021113E+00 .6556608155E+00 .6684669754E+00 .6810670695E+00 .6934887501E+00
+ .7057489238E+00 .7178668149E+00 .7298698292E+00 .7417895677E+00 .7536546792E+00
+ .7654880468E+00 .7773096756E+00 .7891411260E+00 .8010073575E+00 .8129356844E+00
+ .8249543554E+00 .8370926797E+00 .8493824160E+00 .8618590127E+00 .8745616606E+00
+ .8875312529E+00 .9008036951E+00 .9143927303E+00 .9282537412E+00 .9422227485E+00
+ .9559406400E+00 .9688049158E+00 .9800229914E+00 .9888259463E+00 .9947974619E+00
+ .9981236010E+00 .9995372078E+00 .9999418211E+00 .1520362107E+00 .2310961291E+00
+ .2858950548E+00 .3285029695E+00 .3637422706E+00 .3940431087E+00 .4208263079E+00
+ .4449652452E+00 .4670134797E+00 .4873795481E+00 .5064032005E+00 .5243402289E+00
+ .5413500146E+00 .5575360411E+00 .5730010946E+00 .5878633905E+00 .6022312798E+00
+ .6161760481E+00 .6297338002E+00 .6429310670E+00 .6558070112E+00 .6684141747E+00
+ .6808030646E+00 .6930087568E+00 .7050513181E+00 .7169467301E+00 .7287166468E+00
+ .7403893452E+00 .7519939017E+00 .7635549081E+00 .7750923874E+00 .7866255522E+00
+ .7981760948E+00 .8097686062E+00 .8214292088E+00 .8331847455E+00 .8450634576E+00
+ .8570963063E+00 .8693176978E+00 .8817647950E+00 .8944741610E+00 .9074723606E+00
+ .9207542195E+00 .9342414822E+00 .9477208573E+00 .9607797919E+00 .9727885011E+00
+ .9829940849E+00 .9907547244E+00 .9958320165E+00 .9985492572E+00 .9996556674E+00
+ .9999584400E+00 .1506550414E+00 .2289172930E+00 .2831179533E+00 .3252241822E+00
+ .3600162602E+00 .3899221049E+00 .4163511865E+00 .4401437304E+00 .4618424479E+00
+ .4818780359E+00 .5006060645E+00 .5182672035E+00 .5349936461E+00 .5508792112E+00
+ .5660398764E+00 .5806120334E+00 .5947091906E+00 .6083924181E+00 .6216829909E+00
+ .6345996902E+00 .6471846083E+00 .6594989714E+00 .6715998810E+00 .6835222197E+00
+ .6952800324E+00 .7068822747E+00 .7183471585E+00 .7297041873E+00 .7409856943E+00
+ .7522178338E+00 .7634187806E+00 .7746037396E+00 .7857907560E+00 .7970024657E+00
+ .8082639907E+00 .8196005039E+00 .8310370621E+00 .8426003468E+00 .8543204151E+00
+ .8662313345E+00 .8783707719E+00 .8907782337E+00 .9034894007E+00 .9165207934E+00
+ .9298364773E+00 .9432905745E+00 .9565532156E+00 .9690579186E+00 .9800414155E+00
+ .9887389501E+00 .9947034183E+00 .9980673821E+00 .9995171164E+00 .9999384241E+00
+ .1487189977E+00 .2263910981E+00 .2803537538E+00 .3223792718E+00 .3571801768E+00
+ .3871193669E+00 .4135891068E+00 .4374688895E+00 .4593054324E+00 .4794721565E+00
+ .4982849384E+00 .5160139130E+00 .5328462982E+00 .5488878270E+00 .5642136176E+00
+ .5789144555E+00 .5930980546E+00 .6068578927E+00 .6202496225E+00 .6332978045E+00
+ .6460221957E+00 .6584575410E+00 .6706522752E+00 .6826528311E+00 .6944906783E+00
+ .7061826679E+00 .7177414765E+00 .7291853044E+00 .7405393764E+00 .7518305843E+00
+ .7630819406E+00 .7743117186E+00 .7855367061E+00 .7967756784E+00 .8080503225E+00
+ .8193840617E+00 .8308009415E+00 .8423258729E+00 .8539857848E+00 .8658105162E+00
+ .8778326288E+00 .8900853703E+00 .9025967391E+00 .9153752563E+00 .9283813382E+00
+ .9414804345E+00 .9543851093E+00 .9666148646E+00 .9775244356E+00 .9864456200E+00
+ .9929266162E+00 .9969536583E+00 .9989912512E+00 .9997730114E+00 .9999740990E+00
+ .4242682527E+00 .3118318689E+00 .5573192349E+00 .2564309048E+00 .4265397270E+00
+ .6082971026E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .2498266272E+00 .3954425755E+00 .5125397531E+00 .6264643813E+00 .7660440755E+00
+ .2312441904E+00 .3628153360E+00 .4647408573E+00 .5572385640E+00 .6537128592E+00
+ .7783980600E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .0000000000E+00 .0000000000E+00 .0000000000E+00 .2175109663E+00 .3375483770E+00
+ .4263481231E+00 .5015240337E+00 .5712296425E+00 .6413449623E+00 .7196681507E+00
+ .8251176560E+00 .2091027841E+00 .3233747108E+00 .4068532838E+00 .4762983716E+00
+ .5390987112E+00 .5998050901E+00 .6626760351E+00 .7346105423E+00 .8335743247E+00
+ .2028964798E+00 .3129134317E+00 .3924949585E+00 .4578169161E+00 .5158289293E+00
+ .5705039093E+00 .6248551338E+00 .6823607572E+00 .7493876701E+00 .8429805239E+00
+ .1995081188E+00 .3070508796E+00 .3842251490E+00 .4468740217E+00 .5016996216E+00
+ .5524059136E+00 .6015134556E+00 .6512976562E+00 .7048125164E+00 .7680131193E+00
+ .8566633313E+00 .1946893203E+00 .2990782320E+00 .3735306535E+00 .4334966162E+00
+ .4854322262E+00 .5328283884E+00 .5779386737E+00 .6225179671E+00 .6684299307E+00
+ .7184813802E+00 .7783761303E+00 .8632836990E+00 .1933808595E+00 .2966779391E+00
+ .3699876319E+00 .4286170685E+00 .4789168284E+00 .5242670817E+00 .5668094599E+00
+ .6080910832E+00 .6494708297E+00 .6925768647E+00 .7400243239E+00 .7971909494E+00
+ .8776737523E+00 .1916891182E+00 .2937189291E+00 .3658460816E+00 .4232187239E+00
+ .4720917608E+00 .5157466100E+00 .5562321095E+00 .5949895277E+00 .6331520148E+00
+ .6718289934E+00 .7124892441E+00 .7576087089E+00 .8122859651E+00 .8887237573E+00
+ .1914522305E+00 .2930005117E+00 .3645656605E+00 .4212411383E+00 .4692361706E+00
+ .5117747969E+00 .5508328507E+00 .5877918554E+00 .6237016208E+00 .6594555739E+00
+ .6960139730E+00 .7347307592E+00 .7779342461E+00 .8303776195E+00 .9025335953E+00
+ .1870901541E+00 .2860559353E+00 .3555924633E+00 .4104735250E+00 .4567683446E+00
+ .4976007557E+00 .5348562716E+00 .5698370453E+00 .6035137765E+00 .6366586808E+00
+ .6699935030E+00 .7043835086E+00 .7411107360E+00 .7823914797E+00 .8328051102E+00
+ .9029063342E+00 .1859608627E+00 .2840469172E+00 .3528067819E+00 .4069145587E+00
+ .4523826168E+00 .4922974006E+00 .5284895790E+00 .5622045112E+00 .5943754557E+00
+ .6257318536E+00 .6568866703E+00 .6884569502E+00 .7212262530E+00 .7563884509E+00
+ .7960372135E+00 .8444932546E+00 .9111961270E+00 .1872286741E+00 .2856314586E+00
+ .3544540945E+00 .4084896618E+00 .4537401392E+00 .4932940075E+00 .5289676408E+00
+ .5619624685E+00 .5931719824E+00 .6233064758E+00 .6529465606E+00 .6826086431E+00
+ .7128475957E+00 .7443920419E+00 .7783428764E+00 .8166108890E+00 .8631093698E+00
+ .9252995312E+00 .1760399982E+00 .2691470778E+00 .3347107278E+00 .3865961617E+00
+ .4303939524E+00 .4689422863E+00 .5039135847E+00 .5363842207E+00 .5671130353E+00
+ .5967008855E+00 .6256523682E+00 .6544275725E+00 .6835139071E+00 .7134886765E+00
+ .7451137272E+00 .7795459820E+00 .8188132095E+00 .8668752072E+00 .9299637391E+00
+ .1704933925E+00 .2603568411E+00 .3236228672E+00 .3736905964E+00 .4159356721E+00
+ .4530828275E+00 .4867461374E+00 .5179455589E+00 .5473831552E+00 .5756239220E+00
+ .6031342457E+00 .6303042150E+00 .6575260482E+00 .6852481953E+00 .7140081525E+00
+ .7445331020E+00 .7779549965E+00 .8162828992E+00 .8635447594E+00 .9267206452E+00
+ .1684204463E+00 .2564330137E+00 .3189819187E+00 .3685141155E+00 .4102622777E+00
+ .4468999911E+00 .4800056021E+00 .5105971965E+00 .5393660015E+00 .5668338379E+00
+ .5934383823E+00 .6195480250E+00 .6455068063E+00 .6716747080E+00 .6984646330E+00
+ .7263876445E+00 .7561547530E+00 .7888866017E+00 .8265610914E+00 .8728678647E+00
+ .9329701133E+00 .1663475001E+00 .2534593045E+00 .3153333605E+00 .3642792835E+00
+ .4054803279E+00 .4415777176E+00 .4741155584E+00 .5041050443E+00 .5322339063E+00
+ .5589923344E+00 .5847859256E+00 .6099692227E+00 .6348429227E+00 .6597167702E+00
+ .6849159065E+00 .7108234825E+00 .7379238239E+00 .7669050903E+00 .7988584349E+00
+ .8357046838E+00 .8809180882E+00 .9386446961E+00 .1642745539E+00 .2513117899E+00
+ .3125477487E+00 .3608632867E+00 .4014735460E+00 .4370037742E+00 .4689650730E+00
+ .4983574086E+00 .5258714263E+00 .5519756606E+00 .5770408012E+00 .6014072725E+00
+ .6253661500E+00 .6491648583E+00 .6730636017E+00 .6973680093E+00 .7224365997E+00
+ .7487267371E+00 .7768976516E+00 .8079956222E+00 .8438615863E+00 .8878615286E+00
+ .9438193900E+00 .1656737865E+00 .2525634599E+00 .3133268688E+00 .3610464905E+00
+ .4009960133E+00 .4358255255E+00 .4670441791E+00 .4956441305E+00 .5223233479E+00
+ .5475480700E+00 .5716626153E+00 .5949863536E+00 .6178050596E+00 .6403453004E+00
+ .6628177701E+00 .6854691426E+00 .7085851960E+00 .7324972731E+00 .7576408959E+00
+ .7846546259E+00 .8145549768E+00 .8491359216E+00 .8916717548E+00 .9458129310E+00
+ .1601686539E+00 .2445370910E+00 .3037298463E+00 .3503192153E+00 .3893887968E+00
+ .4235010615E+00 .4540922199E+00 .4821079709E+00 .5082441067E+00 .5329621248E+00
+ .5565664782E+00 .5793397190E+00 .6015667141E+00 .6234752380E+00 .6452404182E+00
+ .6670548160E+00 .6891583277E+00 .7118205434E+00 .7353561957E+00 .7601924638E+00
+ .7869613999E+00 .8166687994E+00 .8510863032E+00 .8934100313E+00 .9470117858E+00
+ .1638722990E+00 .2489640080E+00 .3081238715E+00 .3543655118E+00 .3929211238E+00
+ .4264140636E+00 .4563049155E+00 .4835509418E+00 .5088613659E+00 .5327041044E+00
+ .5553695794E+00 .5771211302E+00 .5982418147E+00 .6189624611E+00 .6394362441E+00
+ .6598117822E+00 .6802893349E+00 .7010985801E+00 .7224780513E+00 .7447193823E+00
+ .7682368574E+00 .7936428581E+00 .8219129036E+00 .8547840847E+00 .8954504671E+00
+ .9475369783E+00 .1579255808E+00 .2412961391E+00 .2997449433E+00 .3456763551E+00
+ .3840849496E+00 .4175297991E+00 .4474742774E+00 .4748003727E+00 .5001431154E+00
+ .5240087883E+00 .5467441613E+00 .5685707035E+00 .5896934841E+00 .6103389991E+00
+ .6307040715E+00 .6509330981E+00 .6711668600E+00 .6915857068E+00 .7124012775E+00
+ .7338477658E+00 .7562169856E+00 .7799175407E+00 .8055531711E+00 .8340845296E+00
+ .8671657545E+00 .9074632418E+00 .9563369170E+00 .1555266093E+00 .2376145050E+00
+ .2951630899E+00 .3403801313E+00 .3781705253E+00 .4110571487E+00 .4404940477E+00
+ .4673367319E+00 .4921864999E+00 .5155487013E+00 .5377889991E+00 .5591200954E+00
+ .5797098192E+00 .5997639130E+00 .6194895829E+00 .6390351108E+00 .6585112191E+00
+ .6780555081E+00 .6978490006E+00 .7180902521E+00 .7389977724E+00 .7608556441E+00
+ .7840670272E+00 .8092259895E+00 .8372786838E+00 .8698520737E+00 .9095361743E+00
+ .9575053811E+00 .1567118014E+00 .2389573876E+00 .2964160864E+00 .3414526235E+00
+ .3790108700E+00 .4116066560E+00 .4407273817E+00 .4672622326E+00 .4917782443E+00
+ .5147411235E+00 .5365425884E+00 .5574375630E+00 .5775779900E+00 .5971184367E+00
+ .6162499542E+00 .6351441661E+00 .6539177857E+00 .6726724551E+00 .6915451765E+00
+ .7107069808E+00 .7303409114E+00 .7506554541E+00 .7719283130E+00 .7945523513E+00
+ .8191056897E+00 .8465080315E+00 .8783079562E+00 .9167676748E+00 .9620487923E+00
+ .1558571872E+00 .2378981563E+00 .2952121190E+00 .3401072689E+00 .3775220712E+00
+ .4099422592E+00 .4388513986E+00 .4651771211E+00 .4894856939E+00 .5121947100E+00
+ .5336823774E+00 .5542432114E+00 .5740512041E+00 .5932278839E+00 .6119237386E+00
+ .6303113619E+00 .6485290089E+00 .6666716074E+00 .6848381767E+00 .7031648061E+00
+ .7218118881E+00 .7409497716E+00 .7607802780E+00 .7815765363E+00 .8037232655E+00
+ .8277867215E+00 .8546654663E+00 .8858320994E+00 .9232164014E+00 .9660354469E+00
+ .1558244324E+00 .2369927611E+00 .2940079673E+00 .3386629464E+00 .3758474516E+00
+ .4080349447E+00 .4366843971E+00 .4627306242E+00 .4867689213E+00 .5092050731E+00
+ .5303768671E+00 .5505661809E+00 .5699935065E+00 .5887942083E+00 .6070842525E+00
+ .6250044890E+00 .6426976055E+00 .6602740816E+00 .6778208324E+00 .6954374748E+00
+ .7132533764E+00 .7314197036E+00 .7501054109E+00 .7695045715E+00 .7898869150E+00
+ .8116318650E+00 .8352988861E+00 .8617628865E+00 .8923683190E+00 .9285627673E+00
+ .9688098826E+00 .1557916775E+00 .2365295653E+00 .2932669654E+00 .3376580835E+00
+ .3745863362E+00 .4065221820E+00 .4349022180E+00 .4606616407E+00 .4844210120E+00
+ .5065843915E+00 .5274567253E+00 .5473168378E+00 .5663978112E+00 .5848500676E+00
+ .6027698688E+00 .6202646600E+00 .6374718162E+00 .6545140954E+00 .6714918334E+00
+ .6884803632E+00 .7055811641E+00 .7229214325E+00 .7406395911E+00 .7588898981E+00
+ .7778675686E+00 .7978380749E+00 .8191738070E+00 .8424242198E+00 .8684395326E+00
+ .8984635814E+00 .9335817406E+00 .9715922728E+00 .1557589227E+00 .2364683688E+00
+ .2929470149E+00 .3370527411E+00 .3737011420E+00 .4053681102E+00 .4334698844E+00
+ .4589358655E+00 .4824084436E+00 .5042990882E+00 .5248869281E+00 .5444273878E+00
+ .5631458672E+00 .5812388686E+00 .5988056570E+00 .6159300854E+00 .6327226168E+00
+ .6493074855E+00 .6657858898E+00 .6822302733E+00 .6987141579E+00 .7153373237E+00
+ .7322202954E+00 .7495068014E+00 .7673369128E+00 .7859021128E+00 .8054626939E+00
+ .8263824223E+00 .8491978085E+00 .8747336548E+00 .9041580155E+00 .9383029903E+00
+ .9743817701E+00 .1557261679E+00 .2367737060E+00 .2930109696E+00 .3368116691E+00
+ .3731587070E+00 .4045410864E+00 .4323565330E+00 .4575230178E+00 .4807016376E+00
+ .5023195953E+00 .5226365717E+00 .5418754414E+00 .5602763085E+00 .5780417810E+00
+ .5952867319E+00 .6120731777E+00 .6284819000E+00 .6446322704E+00 .6606411452E+00
+ .6765873792E+00 .6925274198E+00 .7085346814E+00 .7247126737E+00 .7411783257E+00
+ .7580524358E+00 .7754762733E+00 .7936371870E+00 .8127896004E+00 .8332871238E+00
+ .8556507407E+00 .8806790073E+00 .9094870066E+00 .9427529409E+00 .9771778724E+00
+ .1478600131E+00 .2256003288E+00 .2798989934E+00 .3223924973E+00 .3578042320E+00
+ .3884720817E+00 .4156957546E+00 .4403728820E+00 .4631698669E+00 .4844845295E+00
+ .5045253012E+00 .5234893565E+00 .5416311485E+00 .5591784454E+00 .5762463876E+00
+ .5928671862E+00 .6090892622E+00 .6250258065E+00 .6408120723E+00 .6565408647E+00
+ .6722560167E+00 .6880013068E+00 .7038593406E+00 .7199420433E+00 .7363622062E+00
+ .7532320673E+00 .7706902608E+00 .7889268062E+00 .8081986226E+00 .8288606970E+00
+ .8514372848E+00 .8767391009E+00 .9059341024E+00 .9398866302E+00 .9756181042E+00
+ .1522291179E+00 .2316848958E+00 .2868691491E+00 .3298514124E+00 .3655046812E+00
+ .3962878122E+00 .4235616877E+00 .4481880228E+00 .4708200996E+00 .4919264344E+00
+ .5117748982E+00 .5305330760E+00 .5483902305E+00 .5655652012E+00 .5822263151E+00
+ .5984493100E+00 .6142668938E+00 .6297435625E+00 .6449905831E+00 .6601187546E+00
+ .6751968433E+00 .6902637412E+00 .7053713892E+00 .7206051547E+00 .7360675199E+00
+ .7518591290E+00 .7680865950E+00 .7848868285E+00 .8024449073E+00 .8210084419E+00
+ .8409210522E+00 .8626901769E+00 .8870820255E+00 .9151033723E+00 .9471248932E+00
+ .9794386977E+00 .1502866889E+00 .2286670680E+00 .2834177234E+00 .3261319063E+00
+ .3615735095E+00 .3921769379E+00 .4193107605E+00 .4438120384E+00 .4662937612E+00
+ .4872306286E+00 .5069322746E+00 .5255760067E+00 .5433101118E+00 .5603147760E+00
+ .5767687569E+00 .5927886350E+00 .6084246564E+00 .6237150877E+00 .6387334185E+00
+ .6535813710E+00 .6683480172E+00 .6830882369E+00 .6978420423E+00 .7126667029E+00
+ .7276456229E+00 .7428734056E+00 .7584452688E+00 .7744674400E+00 .7910771835E+00
+ .8084577903E+00 .8268544386E+00 .8466085390E+00 .8682196202E+00 .8924120949E+00
+ .9200255309E+00 .9510128375E+00 .9813297032E+00 .1483442599E+00 .2263283246E+00
+ .2806579843E+00 .3230460355E+00 .3582134623E+00 .3885838300E+00 .4155354897E+00
+ .4398761502E+00 .4621762625E+00 .4829174550E+00 .5024507463E+00 .5209631573E+00
+ .5385635042E+00 .5553923330E+00 .5716338162E+00 .5874422984E+00 .6028899255E+00
+ .6179964007E+00 .6327988256E+00 .6473827822E+00 .6618511954E+00 .6762780760E+00
+ .6907012737E+00 .7051554037E+00 .7197020108E+00 .7344270200E+00 .7494204091E+00
+ .7647705958E+00 .7805806759E+00 .7969875047E+00 .8141726412E+00 .8323773115E+00
+ .8519378820E+00 .8733458342E+00 .8973027684E+00 .9245615189E+00 .9547879509E+00
+ .9834393601E+00 .1485598308E+00 .2260933584E+00 .2799343821E+00 .3218522677E+00
+ .3565803974E+00 .3865401360E+00 .4130954592E+00 .4370478618E+00 .4589719276E+00
+ .4793516426E+00 .4985349059E+00 .5167023509E+00 .5339541154E+00 .5504235967E+00
+ .5662962852E+00 .5817363213E+00 .5968226082E+00 .6115671167E+00 .6259882694E+00
+ .6401587511E+00 .6541855667E+00 .6681556033E+00 .6821094603E+00 .6960665283E+00
+ .7100669355E+00 .7241847822E+00 .7385075941E+00 .7531158247E+00 .7680888108E+00
+ .7835272764E+00 .7995684370E+00 .8163915533E+00 .8342326476E+00 .8534217741E+00
+ .8744425211E+00 .8979870913E+00 .9248128097E+00 .9546645743E+00 .9832127048E+00
+ .1479694263E+00 .2245616905E+00 .2780767999E+00 .3197758666E+00 .3543139578E+00
+ .3840846256E+00 .4104485505E+00 .4342119393E+00 .4559571086E+00 .4761359471E+00
+ .4951035827E+00 .5130758815E+00 .5301572670E+00 .5464509194E+00 .5621107346E+00
+ .5772997053E+00 .5921300842E+00 .6066421390E+00 .6208403709E+00 .6347642613E+00
+ .6484971016E+00 .6621331812E+00 .6757373078E+00 .6893381240E+00 .7029576634E+00
+ .7166431756E+00 .7304689483E+00 .7445152604E+00 .7588557683E+00 .7735705721E+00
+ .7887632405E+00 .8045663778E+00 .8211559321E+00 .8387638010E+00 .8577139535E+00
+ .8784991217E+00 .9017571648E+00 .9280802345E+00 .9569493145E+00 .9840954243E+00
+ .1473790217E+00 .2232163367E+00 .2764176999E+00 .3178906656E+00 .3522311254E+00
+ .3818075796E+00 .4079980087E+00 .4316217743E+00 .4531844943E+00 .4731625218E+00
+ .4919131246E+00 .5096839039E+00 .5266029279E+00 .5427465236E+00 .5582144104E+00
+ .5731589496E+00 .5877350594E+00 .6020126887E+00 .6159992956E+00 .6296987304E+00
+ .6431616273E+00 .6564795450E+00 .6697469315E+00 .6830075585E+00 .6962738954E+00
+ .7095704726E+00 .7229531294E+00 .7364972422E+00 .7502817385E+00 .7643725072E+00
+ .7788428575E+00 .7937948158E+00 .8093628178E+00 .8257189630E+00 .8430906599E+00
+ .8618347791E+00 .8823966188E+00 .9053662244E+00 .9312067105E+00 .9591653705E+00
+ .9849974315E+00 .1467886172E+00 .2220439599E+00 .2749429032E+00 .3161830086E+00
+ .3503187832E+00 .3796962304E+00 .4056959943E+00 .4291603029E+00 .4506126049E+00
+ .4704140191E+00 .4889463011E+00 .5065097008E+00 .5232524025E+00 .5392356923E+00
+ .5545302034E+00 .5692493375E+00 .5835776879E+00 .5976119421E+00 .6113727826E+00
+ .6248589577E+00 .6380933359E+00 .6511469868E+00 .6641099403E+00 .6770487164E+00
+ .6899902032E+00 .7029434853E+00 .7159377422E+00 .7290355794E+00 .7423113856E+00
+ .7558466463E+00 .7696915182E+00 .7839206435E+00 .7986365997E+00 .8139720900E+00
+ .8301090927E+00 .8472904431E+00 .8658196975E+00 .8861463177E+00 .9088256613E+00
+ .9342025248E+00 .9613176060E+00 .9859172869E+00 .1461982126E+00 .2210325028E+00
+ .2736395498E+00 .3146405100E+00 .3485650346E+00 .3777390373E+00 .4035431559E+00
+ .4268324384E+00 .4481251046E+00 .4677872442E+00 .4861595827E+00 .5035262460E+00
+ .5200451952E+00 .5358411444E+00 .5509609874E+00 .5655055855E+00 .5796179684E+00
+ .5934224451E+00 .6069763734E+00 .6202774458E+00 .6333174698E+00 .6461330814E+00
+ .6588070702E+00 .6714360106E+00 .6840662570E+00 .6967056643E+00 .7093652959E+00
+ .7220847873E+00 .7349289187E+00 .7479661904E+00 .7612549197E+00 .7748505671E+00
+ .7888244915E+00 .8033196054E+00 .8184586680E+00 .8343979614E+00 .8513631718E+00
+ .8696707083E+00 .8897585633E+00 .9121459590E+00 .9370765716E+00 .9634104913E+00
+ .9868539136E+00 .1456078081E+00 .2201709954E+00 .2724959601E+00 .3132519076E+00
+ .3469590787E+00 .3759254810E+00 .4015293204E+00 .4246381014E+00 .4457701031E+00
+ .4652576552E+00 .4834020968E+00 .5005615530E+00 .5169360752E+00 .5326124438E+00
+ .5476201949E+00 .5620112504E+00 .5759122542E+00 .5894858081E+00 .6028148978E+00
+ .6159068361E+00 .6287513133E+00 .6413604326E+00 .6537968721E+00 .6661476597E+00
+ .6784805491E+00 .6908218049E+00 .7031726543E+00 .7155492595E+00 .7280032039E+00
+ .7406015997E+00 .7534136015E+00 .7664895870E+00 .7798817339E+00 .7936659364E+00
+ .8079437967E+00 .8228413188E+00 .8385610764E+00 .8553119026E+00 .8733968313E+00
+ .8932427774E+00 .9153365695E+00 .9398372743E+00 .9654480553E+00 .9878060679E+00
+ .1450174035E+00 .2194494490E+00 .2715014719E+00 .3120069318E+00 .3454910476E+00
+ .3742459972E+00 .3996452162E+00 .4225684011E+00 .4435049422E+00 .4628070585E+00
+ .4808050944E+00 .4977885664E+00 .5139850241E+00 .5295062912E+00 .5443794700E+00
+ .5586368102E+00 .5723637114E+00 .5857271392E+00 .5988400092E+00 .6117438140E+00
+ .6244221331E+00 .6368566794E+00 .6490773283E+00 .6611636442E+00 .6732097896E+00
+ .6852641210E+00 .6973318926E+00 .7094125511E+00 .7215312873E+00 .7337436651E+00
+ .7461151771E+00 .7587129356E+00 .7715760670E+00 .7847601663E+00 .7983432534E+00
+ .8124270847E+00 .8271366636E+00 .8426293161E+00 .8591448386E+00 .8770065010E+00
+ .8966074041E+00 .9184062309E+00 .9424921131E+00 .9674340022E+00 .9887726654E+00
+ .1444269990E+00 .2188587212E+00 .2706463682E+00 .3108962376E+00 .3441519563E+00
+ .3726918208E+00 .3978823884E+00 .4205939823E+00 .4413678704E+00 .4605478128E+00
+ .4783970950E+00 .4952016355E+00 .5112136287E+00 .5265732521E+00 .5412994753E+00
+ .5554184081E+00 .5690006215E+00 .5821754019E+00 .5950755535E+00 .6077744315E+00
+ .6202704914E+00 .6325339301E+00 .6445736380E+00 .6564467574E+00 .6682383855E+00
+ .6800170717E+00 .6918094597E+00 .7036135513E+00 .7154354305E+00 .7273111304E+00
+ .7393002478E+00 .7514631400E+00 .7638476787E+00 .7764978193E+00 .7894781406E+00
+ .8028626430E+00 .8167530581E+00 .8312729882E+00 .8465796049E+00 .8628845345E+00
+ .8805072179E+00 .8998602668E+00 .9213627175E+00 .9450481008E+00 .9693716955E+00
+ .9897528616E+00 .1438365944E+00 .2183904614E+00 .2699217499E+00 .3099112314E+00
+ .3429335712E+00 .3712549743E+00 .3962330886E+00 .4187710743E+00 .4394154414E+00
+ .4584677002E+00 .4761660627E+00 .4927888888E+00 .5086104114E+00 .5238022646E+00
+ .5384073898E+00 .5524140030E+00 .5658548333E+00 .5788440920E+00 .5915311263E+00
+ .6040222043E+00 .6163400712E+00 .6284503687E+00 .6403265353E+00 .6519978512E+00
+ .6635455488E+00 .6750574505E+00 .6865834042E+00 .6981277653E+00 .7096800063E+00
+ .7212524617E+00 .7328925876E+00 .7446645964E+00 .7566239670E+00 .7688108527E+00
+ .7812653486E+00 .7940458514E+00 .8072342794E+00 .8209318461E+00 .8352603995E+00
+ .8503763675E+00 .8664930207E+00 .8839060084E+00 .9030085561E+00 .9242133005E+00
+ .9475114213E+00 .9712642607E+00 .9907457505E+00 .1436951619E+00 .2179028828E+00
+ .2693394358E+00 .3092558004E+00 .3422252580E+00 .3705176276E+00 .3954405413E+00
+ .4178736988E+00 .4384188544E+00 .4574345858E+00 .4751348545E+00 .4917193180E+00
+ .5074210900E+00 .5224522004E+00 .5369330742E+00 .5508899130E+00 .5643215923E+00
+ .5772714105E+00 .5898434293E+00 .6021585933E+00 .6142958993E+00 .6262692488E+00
+ .6380549078E+00 .6496422814E+00 .6610658096E+00 .6723960231E+00 .6837028710E+00
+ .6950247880E+00 .7063678625E+00 .7177314372E+00 .7291349641E+00 .7406238173E+00
+ .7522539575E+00 .7640744775E+00 .7761254499E+00 .7884504984E+00 .8011098102E+00
+ .8141836333E+00 .8277705946E+00 .8419914499E+00 .8570024179E+00 .8730146855E+00
+ .8903136570E+00 .9092527909E+00 .9301195492E+00 .9526250791E+00 .9748067424E+00
+ .9921652317E+00 .1435537294E+00 .2178987769E+00 .2692459547E+00 .3090452522E+00
+ .3419166078E+00 .3701429902E+00 .3949823831E+00 .4172853850E+00 .4377040909E+00
+ .4566575168E+00 .4743442003E+00 .4908879036E+00 .5064715021E+00 .5213340908E+00
+ .5356694965E+00 .5495520921E+00 .5629626445E+00 .5758805953E+00 .5883563495E+00
+ .6005084046E+00 .6124603106E+00 .6242775778E+00 .6359548494E+00 .6474566832E+00
+ .6587732759E+00 .6699465623E+00 .6810514881E+00 .6921543953E+00 .7032852726E+00
+ .7144439925E+00 .7256298329E+00 .7368659712E+00 .7481998901E+00 .7596853475E+00
+ .7713671492E+00 .7832829186E+00 .7954767610E+00 .8080099623E+00 .8209621775E+00
+ .8344300305E+00 .8485324622E+00 .8634243389E+00 .8793142324E+00 .8964790949E+00
+ .9152427451E+00 .9357971553E+00 .9576179864E+00 .9784035611E+00 .9937108173E+00
+ .1374691422E+00 .2093255086E+00 .2592107724E+00 .2980366653E+00 .3302129817E+00
+ .3578627421E+00 .3821982547E+00 .4041227599E+00 .4242911370E+00 .4430332620E+00
+ .4604664887E+00 .4767222816E+00 .4920527960E+00 .5067476448E+00 .5209881355E+00
+ .5347923881E+00 .5480899869E+00 .5608474812E+00 .5731398226E+00 .5851232479E+00
+ .5969461833E+00 .6086735560E+00 .6202779149E+00 .6316948555E+00 .6428949549E+00
+ .6539193892E+00 .6648593784E+00 .6758024770E+00 .6867897219E+00 .6978138307E+00
+ .7088537602E+00 .7199136721E+00 .7310355306E+00 .7422806842E+00 .7537025183E+00
+ .7653361329E+00 .7772109626E+00 .7893702111E+00 .8018789829E+00 .8148199410E+00
+ .8282897196E+00 .8424061245E+00 .8573241540E+00 .8732552634E+00 .8904872428E+00
+ .9093838282E+00 .9302585045E+00 .9528476778E+00 .9751295618E+00 .9924128514E+00
+ .1401120401E+00 .2129399293E+00 .2633322008E+00 .3024288454E+00 .3347488099E+00
+ .3625318619E+00 .3869832812E+00 .4089094582E+00 .4289682469E+00 .4476164309E+00
+ .4650622138E+00 .4813855467E+00 .4967107267E+00 .5112608853E+00 .5252719058E+00
+ .5388783062E+00 .5520834174E+00 .5648302465E+00 .5771028796E+00 .5889763295E+00
+ .6005859810E+00 .6120521790E+00 .6234223597E+00 .6346706810E+00 .6457478760E+00
+ .6566391521E+00 .6673880150E+00 .6780741082E+00 .6887681106E+00 .6995004661E+00
+ .7102653375E+00 .7210513349E+00 .7318709866E+00 .7427663063E+00 .7537912342E+00
+ .7649912041E+00 .7763987863E+00 .7880460828E+00 .7999792244E+00 .8122627352E+00
+ .8249760025E+00 .8382127285E+00 .8520892202E+00 .8667587078E+00 .8824273293E+00
+ .8993653971E+00 .9178781237E+00 .9381114406E+00 .9594598809E+00 .9795673198E+00
+ .9941348565E+00 .1410029112E+00 .2140777057E+00 .2645532780E+00 .3036562532E+00
+ .3359302760E+00 .3636614134E+00 .3880766571E+00 .4099412420E+00 .4298794546E+00
+ .4483839505E+00 .4657266085E+00 .4820002805E+00 .4972769758E+00 .5117196355E+00
+ .5255558590E+00 .5389685845E+00 .5520200613E+00 .5646726174E+00 .5768776673E+00
+ .5886553337E+00 .6001072447E+00 .6113637647E+00 .6225140057E+00 .6335716522E+00
+ .6444963343E+00 .6552482798E+00 .6658335973E+00 .6763098910E+00 .6867541387E+00
+ .6972216228E+00 .7077273532E+00 .7182604214E+00 .7288153113E+00 .7394134537E+00
+ .7501003208E+00 .7609258966E+00 .7719290021E+00 .7831386555E+00 .7945877288E+00
+ .8063243283E+00 .8184130097E+00 .8309311671E+00 .8439703261E+00 .8576453288E+00
+ .8721076912E+00 .8875592449E+00 .9042574102E+00 .9224688042E+00 .9422424344E+00
+ .9628055767E+00 .9816964749E+00 .9949078057E+00 .1425865404E+00 .2161637073E+00
+ .2668590437E+00 .3060592550E+00 .3383460235E+00 .3660517582E+00 .3904520892E+00
+ .4122942293E+00 .4321506228E+00 .4505173854E+00 .4677312067E+00 .4839336153E+00
+ .4991742701E+00 .5135492201E+00 .5272432445E+00 .5404590650E+00 .5533197841E+00
+ .5658357740E+00 .5779563834E+00 .5896557248E+00 .6009841701E+00 .6120535346E+00
+ .6229767235E+00 .6338116286E+00 .6445486058E+00 .6551447746E+00 .6655752848E+00
+ .6758638570E+00 .6860743930E+00 .6962753487E+00 .7065064975E+00 .7167719888E+00
+ .7270608465E+00 .7373751607E+00 .7477432957E+00 .7582110479E+00 .7688229822E+00
+ .7796122117E+00 .7906059391E+00 .8018385608E+00 .8133596016E+00 .8252327855E+00
+ .8375332158E+00 .8503503882E+00 .8637976661E+00 .8780242943E+00 .8932262181E+00
+ .9096436118E+00 .9274940623E+00 .9467129135E+00 .9663532033E+00 .9838853157E+00
+ .9956707121E+00 .1413958080E+00 .2143084439E+00 .2645051027E+00 .3032925878E+00
+ .3352466197E+00 .3626554047E+00 .3867334602E+00 .4082482477E+00 .4278426108E+00
+ .4460227097E+00 .4630547949E+00 .4790116610E+00 .4939464583E+00 .5080188090E+00
+ .5214723473E+00 .5345155008E+00 .5472272577E+00 .5595636914E+00 .5714478814E+00
+ .5828668183E+00 .5939068199E+00 .6047125784E+00 .6154086509E+00 .6260410986E+00
+ .6365754178E+00 .6469453536E+00 .6571149182E+00 .6671120493E+00 .6770157605E+00
+ .6869112341E+00 .6968469005E+00 .7068223015E+00 .7168110863E+00 .7267983541E+00
+ .7368038187E+00 .7468764251E+00 .7570697317E+00 .7674211035E+00 .7779510271E+00
+ .7886792698E+00 .7996409235E+00 .8108896198E+00 .8224908008E+00 .8345174378E+00
+ .8470554485E+00 .8602155139E+00 .8741455912E+00 .8890434725E+00 .9051652612E+00
+ .9227918731E+00 .9420308219E+00 .9622418276E+00 .9811216203E+00 .9946373816E+00
+ .1394722935E+00 .2117349179E+00 .2616394039E+00 .3002855612E+00 .3321279392E+00
+ .3594669544E+00 .3835959320E+00 .4052302439E+00 .4248619949E+00 .4429564309E+00
+ .4599093312E+00 .4759382866E+00 .4910946680E+00 .5053943809E+00 .5189354289E+00
+ .5319046520E+00 .5444905813E+00 .5567923238E+00 .5687992057E+00 .5804478376E+00
+ .5917051216E+00 .6026158213E+00 .6132876148E+00 .6238330389E+00 .6343135469E+00
+ .6447228935E+00 .6550158789E+00 .6651577233E+00 .6751589156E+00 .6850745566E+00
+ .6949737489E+00 .7049042683E+00 .7148777387E+00 .7248827271E+00 .7349120541E+00
+ .7449821409E+00 .7551316923E+00 .7654052354E+00 .7758382404E+00 .7864560704E+00
+ .7972847610E+00 .8083619497E+00 .8197395747E+00 .8314806469E+00 .8436581761E+00
+ .8563605054E+00 .8697008460E+00 .8838272568E+00 .8989289747E+00 .9152213079E+00
+ .9328484756E+00 .9515832639E+00 .9702515987E+00 .9862678322E+00 .9964787457E+00
+ .3856332881E+00 .2882381345E+00 .5115142184E+00 .2396823560E+00 .3968244418E+00
+ .5616751620E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .2336081440E+00 .3691901731E+00 .4774996536E+00 .5821837851E+00 .7109926971E+00
+ .2171561063E+00 .3402765761E+00 .4350540227E+00 .5205239917E+00 .6091416591E+00
+ .7239036409E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00 .0000000000E+00
+ .0000000000E+00 .0000000000E+00 .0000000000E+00 .2047659832E+00 .3175827483E+00
+ .4007714555E+00 .4708149321E+00 .5354224557E+00 .6001853486E+00 .6721854373E+00
+ .7703907559E+00 .1972343043E+00 .3048859432E+00 .3833241840E+00 .4482589595E+00
+ .5066494829E+00 .5628829320E+00 .6209689691E+00 .6870435822E+00 .7791508694E+00
+ .1916470240E+00 .2954660881E+00 .3704175327E+00 .4316911892E+00 .4858056208E+00
+ .5365672129E+00 .5869215184E+00 .6400579616E+00 .7015719870E+00 .7887975725E+00
+ .1885584863E+00 .2901074781E+00 .3628958746E+00 .4218122562E+00 .4731336922E+00
+ .5203439926E+00 .5659137192E+00 .6120563020E+00 .6615071081E+00 .7195172735E+00
+ .8027004259E+00 .1842090998E+00 .2829051375E+00 .3532382107E+00 .4097497526E+00
+ .4585065292E+00 .5027625897E+00 .5446953222E+00 .5860725921E+00 .6286537023E+00
+ .6748761550E+00 .7297530826E+00 .8094551496E+00 .1830003954E+00 .2806370278E+00
+ .3499161388E+00 .4052316498E+00 .4525652176E+00 .4950613888E+00 .5347174621E+00
+ .5730713859E+00 .6115015980E+00 .6515085493E+00 .6953433332E+00 .7478084095E+00
+ .8243279549E+00 .1814734738E+00 .2779057126E+00 .3460864222E+00 .4002619079E+00
+ .4463234246E+00 .4873463379E+00 .5252089149E+00 .5612825878E+00 .5967391613E+00
+ .6327037151E+00 .6704930718E+00 .7122128902E+00 .7624906512E+00 .8360640576E+00
+ .1812900723E+00 .2772171470E+00 .3448282208E+00 .3983570404E+00 .4436249533E+00
+ .4836741201E+00 .5203270794E+00 .5548392614E+00 .5882352824E+00 .6214611263E+00
+ .6554815149E+00 .6914975733E+00 .7315087742E+00 .7799325266E+00 .8506087067E+00
+ .1773407017E+00 .2709358181E+00 .3367235743E+00 .3886313281E+00 .4323532934E+00
+ .4708576582E+00 .5058982942E+00 .5386421626E+00 .5700014568E+00 .6007891394E+00
+ .6317776232E+00 .6637893157E+00 .6979325907E+00 .7361449735E+00 .7827322504E+00
+ .8512645053E+00 .1763515343E+00 .2691168890E+00 .3341533092E+00 .3853451145E+00
+ .4283109148E+00 .4659787338E+00 .5000833217E+00 .5317468700E+00 .5617969272E+00
+ .5909470001E+00 .6198694066E+00 .6492257129E+00 .6797554789E+00 .7124993029E+00
+ .7493116236E+00 .7943443528E+00 .8605357945E+00 .1775661957E+00 .2706126452E+00
+ .3356159067E+00 .3866862606E+00 .4294447888E+00 .4667759536E+00 .5004096743E+00
+ .5314677937E+00 .5607361911E+00 .5888447075E+00 .6163754729E+00 .6439032144E+00
+ .6720166392E+00 .7014026100E+00 .7330619508E+00 .7687949001E+00 .8125998015E+00
+ .8765986564E+00 .1672555456E+00 .2554103571E+00 .3173040706E+00 .3661474230E+00
+ .4072818928E+00 .4434156045E+00 .4761058259E+00 .5063870992E+00 .5350139133E+00
+ .5625282495E+00 .5893789812E+00 .6160244386E+00 .6429327951E+00 .6706211265E+00
+ .6997949690E+00 .7315405265E+00 .7677726239E+00 .8127143053E+00 .8787853556E+00
+ .1623076665E+00 .2475172416E+00 .3073100342E+00 .3544736126E+00 .3941782940E+00
+ .4290299123E+00 .4604950336E+00 .4895704905E+00 .5170011217E+00 .5432782392E+00
+ .5687731843E+00 .5938947360E+00 .6190601159E+00 .6446542072E+00 .6711481629E+00
+ .6992389025E+00 .7299880929E+00 .7652779598E+00 .8093078830E+00 .8747119414E+00
+ .1603255738E+00 .2437690243E+00 .3028853147E+00 .3495568432E+00 .3887906883E+00
+ .4231605593E+00 .4541394099E+00 .4826709456E+00 .5094563240E+00 .5350195015E+00
+ .5597283838E+00 .5838958323E+00 .6078857032E+00 .6320625786E+00 .6567831351E+00
+ .6825068388E+00 .7099124829E+00 .7400555613E+00 .7748463114E+00 .8185822835E+00
+ .8832035902E+00 .1583434810E+00 .2409280693E+00 .2994062166E+00 .3455367140E+00
+ .3842530234E+00 .4181049295E+00 .4485772025E+00 .4765777411E+00 .5027561385E+00
+ .5276452157E+00 .5516305466E+00 .5749801720E+00 .5979737504E+00 .6209546624E+00
+ .6442303334E+00 .6681278213E+00 .6930955320E+00 .7197927750E+00 .7492475807E+00
+ .7833378811E+00 .8262851240E+00 .8895778163E+00 .1563613883E+00 .2388760425E+00
+ .2967493961E+00 .3422962814E+00 .3804544364E+00 .4137568986E+00 .4437049225E+00
+ .4711856892E+00 .4967903974E+00 .5210399974E+00 .5443561761E+00 .5669978589E+00
+ .5891694729E+00 .6111431880E+00 .6332218959E+00 .6556722561E+00 .6787905553E+00
+ .7030147204E+00 .7289831483E+00 .7576782837E+00 .7908930429E+00 .8326214548E+00
+ .8941108476E+00 .1578739023E+00 .2403681926E+00 .2978869027E+00 .3429558052E+00
+ .3805701037E+00 .4132701136E+00 .4425772352E+00 .4693977768E+00 .4942952596E+00
+ .5177570092E+00 .5402209084E+00 .5619674755E+00 .5831616153E+00 .6040095183E+00
+ .6247909336E+00 .6457612790E+00 .6671356440E+00 .6891999852E+00 .7123893147E+00
+ .7373140168E+00 .7649181459E+00 .7969473067E+00 .8372985583E+00 .8969599038E+00
+ .1527197324E+00 .2328316965E+00 .2888527805E+00 .3328492099E+00 .3696163508E+00
+ .4015898627E+00 .4302701223E+00 .4565520559E+00 .4809374290E+00 .5038555631E+00
+ .5257590613E+00 .5469710908E+00 .5676323140E+00 .5878660204E+00 .6079090198E+00
+ .6280372023E+00 .6484536335E+00 .6693406897E+00 .6909919003E+00 .7138485546E+00
+ .7385105493E+00 .7659167319E+00 .7978177027E+00 .8381123301E+00 .8977213246E+00
+ .1564331923E+00 .2373795737E+00 .2934982367E+00 .3372824162E+00 .3736710596E+00
+ .4051592074E+00 .4332795323E+00 .4589489043E+00 .4826666549E+00 .5048435048E+00
+ .5259347722E+00 .5462891180E+00 .5660465073E+00 .5852815900E+00 .6041843041E+00
+ .6230311895E+00 .6420321129E+00 .6613094580E+00 .6810387572E+00 .7015380815E+00
+ .7232310098E+00 .7466700555E+00 .7727544166E+00 .8031808723E+00 .8417345107E+00
+ .8991902707E+00 .1505438979E+00 .2297059257E+00 .2850140453E+00 .3283701590E+00
+ .3645731426E+00 .3959763710E+00 .4239753906E+00 .4495509248E+00 .4733144562E+00
+ .4955891170E+00 .5166548569E+00 .5368613471E+00 .5565057681E+00 .5757239168E+00
+ .5945790387E+00 .6132151710E+00 .6318636513E+00 .6507298227E+00 .6699572081E+00
+ .6897243933E+00 .7103290190E+00 .7321847819E+00 .7558571251E+00 .7822592517E+00
+ .8130959715E+00 .8521280020E+00 .9092550108E+00 .1483377912E+00 .2263200088E+00
+ .2807958968E+00 .3234871261E+00 .3591325899E+00 .3900372629E+00 .4175473641E+00
+ .4426430121E+00 .4659670419E+00 .4878307486E+00 .5084521361E+00 .5281474967E+00
+ .5472517378E+00 .5659467478E+00 .5842704313E+00 .6022890800E+00 .6201943165E+00
+ .6382168247E+00 .6565115689E+00 .6751883533E+00 .6944338390E+00 .7145571200E+00
+ .7359603207E+00 .7591921690E+00 .7851577114E+00 .8155494102E+00 .8540937063E+00
+ .9105639231E+00 .1495392785E+00 .2277166654E+00 .2821500711E+00 .3246801794E+00
+ .3601113589E+00 .3908124488E+00 .4180853494E+00 .4428478896E+00 .4658040831E+00
+ .4873586967E+00 .5076970334E+00 .5270192319E+00 .5456274639E+00 .5637916540E+00
+ .5816238089E+00 .5991425948E+00 .6164322381E+00 .6336870124E+00 .6511085682E+00
+ .6688233394E+00 .6869383111E+00 .7056468544E+00 .7252500677E+00 .7461325322E+00
+ .7688304699E+00 .7942349741E+00 .8240067565E+00 .8617789578E+00 .9166980662E+00
+ .1486414131E+00 .2265974929E+00 .2808951734E+00 .3232882756E+00 .3585545085E+00
+ .3891091390E+00 .4162548933E+00 .4408279415E+00 .4635149945E+00 .4848105642E+00
+ .5049518302E+00 .5240653980E+00 .5423562447E+00 .5601039679E+00 .5775129259E+00
+ .5946428032E+00 .6115096960E+00 .6282173616E+00 .6449564818E+00 .6618992791E+00
+ .6791503481E+00 .6968187244E+00 .7151039378E+00 .7342985363E+00 .7547725469E+00
+ .7770536136E+00 .8020230713E+00 .8313184656E+00 .8684963708E+00 .9221088042E+00
+ .1486680791E+00 .2258213056E+00 .2798588803E+00 .3220535976E+00 .3571083642E+00
+ .3874322218E+00 .4143681751E+00 .4387393533E+00 .4611663295E+00 .4821421968E+00
+ .5019820504E+00 .5208350665E+00 .5388435465E+00 .5562169714E+00 .5731754818E+00
+ .5898549389E+00 .6062979850E+00 .6225443023E+00 .6387075037E+00 .6549532520E+00
+ .6714242751E+00 .6882223385E+00 .7054706055E+00 .7233653742E+00 .7421886426E+00
+ .7623039515E+00 .7842404236E+00 .8088829632E+00 .8378770787E+00 .8747120112E+00
+ .9269157091E+00 .1486947452E+00 .2254666193E+00 .2792623139E+00 .3212353165E+00
+ .3560561680E+00 .3861293436E+00 .4128347317E+00 .4369941824E+00 .4591723157E+00
+ .4798432602E+00 .4993754526E+00 .5179741852E+00 .5357392066E+00 .5527970828E+00
+ .5693507215E+00 .5855964435E+00 .6016271895E+00 .6174410494E+00 .6331010741E+00
+ .6487425991E+00 .6645240314E+00 .6805604686E+00 .6969380162E+00 .7137818237E+00
+ .7312945270E+00 .7497483760E+00 .7694978992E+00 .7910685148E+00 .8153393599E+00
+ .8439423774E+00 .8802893062E+00 .9312235926E+00 .1487214113E+00 .2254951153E+00
+ .2790655049E+00 .3207955891E+00 .3553621140E+00 .3851665078E+00 .4116224538E+00
+ .4355612224E+00 .4575007219E+00 .4778801365E+00 .4970990294E+00 .5154164052E+00
+ .5329144334E+00 .5496943733E+00 .5659055431E+00 .5817447913E+00 .5973573059E+00
+ .6127906152E+00 .6280533989E+00 .6432075315E+00 .6583878463E+00 .6737385043E+00
+ .6893560895E+00 .7053297589E+00 .7217832918E+00 .7389216021E+00 .7570077903E+00
+ .7763850662E+00 .7975704230E+00 .8214289409E+00 .8495592515E+00 .8852861871E+00
+ .9350775745E+00 .1487480774E+00 .2258729883E+00 .2792331857E+00 .3207010152E+00
+ .3549946086E+00 .3845137165E+00 .4107030084E+00 .4344129275E+00 .4561231090E+00
+ .4762232177E+00 .4951236560E+00 .5131455925E+00 .5304226219E+00 .5469795307E+00
+ .5628942288E+00 .5783538020E+00 .5935597133E+00 .6086115757E+00 .6235056608E+00
+ .6382404243E+00 .6529029887E+00 .6676459903E+00 .6825999616E+00 .6978370387E+00
+ .7134261332E+00 .7295023786E+00 .7462732551E+00 .7639933990E+00 .7829925230E+00
+ .8037749775E+00 .8271840741E+00 .8547672837E+00 .8897540309E+00 .9385179246E+00
+ .1412887110E+00 .2152511186E+00 .2667587394E+00 .3069698110E+00 .3403119368E+00
+ .3691016789E+00 .3947511217E+00 .4180204005E+00 .4393057974E+00 .4589981098E+00
+ .4775592505E+00 .4953321930E+00 .5124132440E+00 .5287646068E+00 .5444277699E+00
+ .5596043458E+00 .5745431711E+00 .5893781108E+00 .6040902326E+00 .6186209527E+00
+ .6330074203E+00 .6474026355E+00 .6619766579E+00 .6768223102E+00 .6919712653E+00
+ .7074899049E+00 .7235365446E+00 .7403325272E+00 .7581283266E+00 .7772502302E+00
+ .7982117028E+00 .8218728671E+00 .8498068159E+00 .8853228913E+00 .9352449195E+00
+ .1454365324E+00 .2210613862E+00 .2734270984E+00 .3141395044E+00 .3478101440E+00
+ .3767492278E+00 .4023823438E+00 .4256108939E+00 .4469125518E+00 .4665821084E+00
+ .4849593613E+00 .5024162433E+00 .5191946955E+00 .5353446056E+00 .5508443400E+00
+ .5657618034E+00 .5802864438E+00 .5946183784E+00 .6088476097E+00 .6229496471E+00
+ .6368918069E+00 .6507326262E+00 .6646157995E+00 .6786804669E+00 .6929976569E+00
+ .7076025149E+00 .7225749677E+00 .7380727565E+00 .7543004301E+00 .7714925200E+00
+ .7899670150E+00 .8102250546E+00 .8331000054E+00 .8601141166E+00 .8944089657E+00
+ .9418668294E+00 .1435506327E+00 .2181320734E+00 .2700662361E+00 .3105036192E+00
+ .3439851010E+00 .3727699598E+00 .3982266587E+00 .4212732005E+00 .4424499699E+00
+ .4620480623E+00 .4803242203E+00 .4975942566E+00 .5141440057E+00 .5301141628E+00
+ .5455133411E+00 .5603438858E+00 .5747042577E+00 .5887715842E+00 .6026981898E+00
+ .6165355129E+00 .6302589593E+00 .6438606924E+00 .6574137028E+00 .6710487656E+00
+ .6848808120E+00 .6989709838E+00 .7133632026E+00 .7281470150E+00 .7434772407E+00
+ .7595498119E+00 .7765970956E+00 .7949406642E+00 .8150843017E+00 .8378640473E+00
+ .8648014236E+00 .8989235720E+00 .9452746670E+00 .1416647330E+00 .2158544146E+00
+ .2673680703E+00 .3074738971E+00 .3407102915E+00 .3692912711E+00 .3945260683E+00
+ .4173527670E+00 .4383758011E+00 .4578810485E+00 .4760416946E+00 .4931142706E+00
+ .5094207869E+00 .5251895366E+00 .5404690457E+00 .5552110636E+00 .5694252915E+00
+ .5832487359E+00 .5968756116E+00 .6104330017E+00 .6239281942E+00 .6373115014E+00
+ .6505836785E+00 .6638410938E+00 .6772236266E+00 .6908321748E+00 .7047078040E+00
+ .7188885046E+00 .7334719397E+00 .7486188322E+00 .7645200961E+00 .7813999899E+00
+ .7995768200E+00 .8195516392E+00 .8421507970E+00 .8688748850E+00 .9027013457E+00
+ .9483449488E+00 .1420373674E+00 .2158823006E+00 .2669922153E+00 .3067059187E+00
+ .3395591478E+00 .3677689768E+00 .3926593063E+00 .4151627692E+00 .4358647386E+00
+ .4550444024E+00 .4728802102E+00 .4896308672E+00 .5056163816E+00 .5210674779E+00
+ .5360376143E+00 .5504731561E+00 .5643640323E+00 .5778286638E+00 .5910643633E+00
+ .6042234281E+00 .6173351032E+00 .6303409274E+00 .6432030813E+00 .6559820994E+00
+ .6688163967E+00 .6818341383E+00 .6950920665E+00 .7086017477E+00 .7224074125E+00
+ .7366281555E+00 .7514313754E+00 .7669960948E+00 .7835340282E+00 .8013599635E+00
+ .8209725068E+00 .8431878792E+00 .8694871063E+00 .9028248581E+00 .9480227894E+00
+ .1415054644E+00 .2144711683E+00 .2652870842E+00 .3047968756E+00 .3374776369E+00
+ .3655432369E+00 .3902749941E+00 .4125669361E+00 .4330610249E+00 .4520805856E+00
+ .4698012882E+00 .4864195986E+00 .5021950227E+00 .5173855551E+00 .5321194701E+00
+ .5463880041E+00 .5601543520E+00 .5734598237E+00 .5864409552E+00 .5992752521E+00
+ .6120602291E+00 .6247894871E+00 .6374112744E+00 .6499167654E+00 .6623845143E+00
+ .6749475996E+00 .6877086707E+00 .7007081649E+00 .7139609458E+00 .7275238627E+00
+ .7415218609E+00 .7561127645E+00 .7714680445E+00 .7877973633E+00 .8054144693E+00
+ .8248397458E+00 .8468891887E+00 .8730299936E+00 .9060721205E+00 .9501164267E+00
+ .1409735614E+00 .2132378078E+00 .2637710485E+00 .3030700102E+00 .3355686603E+00
+ .3634809025E+00 .3880755700E+00 .4102086318E+00 .4304859516E+00 .4493334377E+00
+ .4669306895E+00 .4834215070E+00 .4990175122E+00 .5139712015E+00 .5284678515E+00
+ .5425570724E+00 .5561944554E+00 .5693553199E+00 .5821208304E+00 .5946569961E+00
+ .6071193187E+00 .6195647948E+00 .6319430532E+00 .6441985862E+00 .6563561279E+00
+ .6685232730E+00 .6808265813E+00 .6933447983E+00 .7061034704E+00 .7191145702E+00
+ .7324457136E+00 .7462255787E+00 .7606071850E+00 .7757532554E+00 .7918703178E+00
+ .8093091899E+00 .8285564817E+00 .8504248942E+00 .8763800379E+00 .9091096307E+00
+ .9521154840E+00 .1404416584E+00 .2121694936E+00 .2624305996E+00 .3015123108E+00
+ .3338198920E+00 .3615702828E+00 .3860129930E+00 .4079809845E+00 .4281043550E+00
+ .4467874424E+00 .4642535096E+00 .4806213951E+00 .4960482707E+00 .5107773343E+00
+ .5250398897E+00 .5389188241E+00 .5524050693E+00 .5654392391E+00 .5780311332E+00
+ .5903254883E+00 .6024869373E+00 .6146221561E+00 .6267382607E+00 .6387780430E+00
+ .6507013684E+00 .6625481530E+00 .6744384678E+00 .6864989975E+00 .6987858404E+00
+ .7113117827E+00 .7240843276E+00 .7371868780E+00 .7507528781E+00 .7649279361E+00
+ .7798784613E+00 .7958266427E+00 .8130783912E+00 .8321334087E+00 .8538067171E+00
+ .8795512583E+00 .9119522994E+00 .9540265635E+00 .1399097554E+00 .2112547213E+00
+ .2612534861E+00 .3001119764E+00 .3322201529E+00 .3598008115E+00 .3840890589E+00
+ .4058874298E+00 .4258230359E+00 .4443559079E+00 .4617251781E+00 .4779928129E+00
+ .4932341979E+00 .5077417525E+00 .5217506109E+00 .5354078025E+00 .5487296955E+00
+ .5616543385E+00 .5741441063E+00 .5862599707E+00 .5981532531E+00 .6099833953E+00
+ .6218250411E+00 .6336350386E+00 .6453428591E+00 .6569403296E+00 .6685060823E+00
+ .6801631450E+00 .6920093832E+00 .7040797928E+00 .7163712442E+00 .7289049030E+00
+ .7417667196E+00 .7551339761E+00 .7691372989E+00 .7839115652E+00 .7996659832E+00
+ .8167234587E+00 .8355803125E+00 .8570454376E+00 .8825558821E+00 .9146137551E+00
+ .9558562816E+00 .1393778524E+00 .2104830236E+00 .2602285804E+00 .2988582762E+00
+ .3307592933E+00 .3581628567E+00 .3822943130E+00 .4039269833E+00 .4236771108E+00
+ .4420154952E+00 .4591807018E+00 .4753214081E+00 .4905057528E+00 .5048858571E+00
+ .5186911804E+00 .5321266214E+00 .5452725775E+00 .5580793087E+00 .5704561323E+00
+ .5824135344E+00 .5940866529E+00 .6056383004E+00 .6171840831E+00 .6287412137E+00
+ .6402491265E+00 .6516455153E+00 .6629408838E+00 .6742385981E+00 .6856712699E+00
+ .6973141740E+00 .7091837064E+00 .7212681502E+00 .7336041026E+00 .7462934624E+00
+ .7594673168E+00 .7732528492E+00 .7878289464E+00 .8033909278E+00 .8202527529E+00
+ .8389061053E+00 .8601507781E+00 .8854054065E+00 .9171063197E+00 .9576098338E+00
+ .1388459494E+00 .2098448700E+00 .2593457247E+00 .2977414251E+00 .3294280407E+00
+ .3566476615E+00 .3806201384E+00 .4020907814E+00 .4216275106E+00 .4397444056E+00
+ .4567701979E+00 .4728118768E+00 .4879085090E+00 .5021648412E+00 .5157893162E+00
+ .5290123015E+00 .5419486932E+00 .5546017078E+00 .5668876762E+00 .5787573601E+00
+ .5902665148E+00 .6015659498E+00 .6128199234E+00 .6241117444E+00 .6354048860E+00
+ .6466160446E+00 .6577066613E+00 .6687280187E+00 .6797979216E+00 .6910308875E+00
+ .7024796142E+00 .7141468677E+00 .7260224229E+00 .7381600711E+00 .7506678831E+00
+ .7636711696E+00 .7772897965E+00 .7916598119E+00 .8070090442E+00 .8236740935E+00
+ .8421187752E+00 .8631317207E+00 .8881100887E+00 .9194412829E+00 .9592922735E+00
+ .1383140464E+00 .2093315371E+00 .2585956616E+00 .2967525192E+00 .3282179518E+00
+ .3552471998E+00 .3790586770E+00 .4003512562E+00 .4197071286E+00 .4376539509E+00
+ .4545287231E+00 .4704632638E+00 .4854745906E+00 .4996196676E+00 .5130662866E+00
+ .5260644318E+00 .5387884562E+00 .5512768960E+00 .5634572127E+00 .5752432603E+00
+ .5866326170E+00 .5977405656E+00 .6087372120E+00 .6197460100E+00 .6307912769E+00
+ .6418108937E+00 .6527286481E+00 .6635333849E+00 .6743079408E+00 .6851747922E+00
+ .6962275055E+00 .7074934342E+00 .7189574313E+00 .7306240438E+00 .7425669767E+00
+ .7548955044E+00 .7677290535E+00 .7811792615E+00 .7953818432E+00 .8105419302E+00
+ .8269944330E+00 .8452257225E+00 .8659962679E+00 .8906794850E+00 .9216289147E+00
+ .9609084406E+00 .1377821435E+00 .2089350573E+00 .2579699128E+00 .2958833704E+00
+ .3271212896E+00 .3539541678E+00 .3776027276E+00 .3987593760E+00 .4179652070E+00
+ .4357325973E+00 .4524455148E+00 .4682653021E+00 .4831935634E+00 .4972391012E+00
+ .5105362499E+00 .5233248212E+00 .5358284653E+00 .5481414873E+00 .5602114876E+00
+ .5719233967E+00 .5832174975E+00 .5941573652E+00 .6049057744E+00 .6156324289E+00
+ .6264215181E+00 .6372426507E+00 .6480017036E+00 .6586318811E+00 .6691585495E+00
+ .6796928643E+00 .6903637551E+00 .7012450124E+00 .7123364080E+00 .7236109475E+00
+ .7350827475E+00 .7468342905E+00 .7589857829E+00 .7716503669E+00 .7849306180E+00
+ .7989608045E+00 .8139521880E+00 .8302202856E+00 .8482337491E+00 .8687518950E+00
+ .8931221034E+00 .9236786773E+00 .9624624515E+00 .1376568516E+00 .2084741428E+00
+ .2574221944E+00 .2952935548E+00 .3264655050E+00 .3531957540E+00 .3767820477E+00
+ .3979543562E+00 .4171702339E+00 .4348404832E+00 .4513622648E+00 .4670166484E+00
+ .4819062680E+00 .4960227485E+00 .5093820887E+00 .5221082531E+00 .5344049873E+00
+ .5464536070E+00 .5583253971E+00 .5699741284E+00 .5813082151E+00 .5922859992E+00
+ .6029673076E+00 .6134901470E+00 .6239943704E+00 .6345481896E+00 .6451277517E+00
+ .6556607573E+00 .6661000798E+00 .6764737076E+00 .6868768040E+00 .6974162750E+00
+ .7081544539E+00 .7190973248E+00 .7302337098E+00 .7415876582E+00 .7532375191E+00
+ .7652917476E+00 .7778569809E+00 .7910390683E+00 .8049780745E+00 .8198860891E+00
+ .8360761845E+00 .8540165228E+00 .8744649509E+00 .8987305065E+00 .9288785761E+00
+ .9659766401E+00 .1375315598E+00 .2084775491E+00 .2573430667E+00 .2951317424E+00
+ .3261971494E+00 .3527859200E+00 .3762724313E+00 .3974324833E+00 .4166475525E+00
+ .4342196341E+00 .4505402777E+00 .4659991332E+00 .4808103157E+00 .4949732047E+00
+ .5084028331E+00 .5211003056E+00 .5332212910E+00 .5450055901E+00 .5566413510E+00
+ .5681725663E+00 .5795113226E+00 .5905356877E+00 .6011988595E+00 .6115763187E+00
+ .6218262003E+00 .6320973341E+00 .6424507438E+00 .6528462077E+00 .6631980309E+00
+ .6734565495E+00 .6836565217E+00 .6939007423E+00 .7042970374E+00 .7149016266E+00
+ .7257137306E+00 .7367209774E+00 .7479514441E+00 .7594866848E+00 .7714331416E+00
+ .7838925954E+00 .7969686117E+00 .8108024144E+00 .8256064866E+00 .8416909597E+00
+ .8595190861E+00 .8798406171E+00 .9039350242E+00 .9337028085E+00 .9694536047E+00
+ .1317020897E+00 .2002641972E+00 .2477483653E+00 .2845677323E+00 .3148968722E+00
+ .3409868717E+00 .3641310532E+00 .3849330895E+00 .4037202962E+00 .4209087043E+00
+ .4370108554E+00 .4524020935E+00 .4671677609E+00 .4811871747E+00 .4943560955E+00
+ .5067525017E+00 .5186328034E+00 .5302898560E+00 .5418928385E+00 .5534195118E+00
+ .5647139606E+00 .5756195135E+00 .5860972334E+00 .5962599229E+00 .6063097014E+00
+ .6164257668E+00 .6266745773E+00 .6369956055E+00 .6472661562E+00 .6573994766E+00
+ .6674115741E+00 .6774154163E+00 .6875516449E+00 .6979088373E+00 .7084920983E+00
+ .7192602312E+00 .7301969423E+00 .7413554262E+00 .7528432581E+00 .7647728124E+00
+ .7772343522E+00 .7903200331E+00 .8041710371E+00 .8190070666E+00 .8351437854E+00
+ .8530473546E+00 .8734765607E+00 .8977614190E+00 .9280746606E+00 .9656756342E+00
+ .1342603285E+00 .2037636785E+00 .2517261429E+00 .2888669550E+00 .3194115330E+00
+ .3455421098E+00 .3686368549E+00 .3894918154E+00 .4084591494E+00 .4257690315E+00
+ .4417683896E+00 .4568776393E+00 .4713905199E+00 .4853604273E+00 .4986776241E+00
+ .5112527234E+00 .5231517305E+00 .5345924682E+00 .5458263070E+00 .5570024942E+00
+ .5681078437E+00 .5790125053E+00 .5895820595E+00 .5997803527E+00 .6097015467E+00
+ .6195187437E+00 .6293879170E+00 .6393697107E+00 .6494161590E+00 .6594260786E+00
+ .6693293113E+00 .6791434109E+00 .6889673242E+00 .6989213548E+00 .7090804437E+00
+ .7194507364E+00 .7300039018E+00 .7407367207E+00 .7517046792E+00 .7630059311E+00
+ .7747412612E+00 .7869970820E+00 .7998693512E+00 .8135022252E+00 .8281120771E+00
+ .8440077829E+00 .8616486888E+00 .8817798710E+00 .9056659082E+00 .9351413373E+00
+ .9703257802E+00 .1351434622E+00 .2049031729E+00 .2529486601E+00 .2901151406E+00
+ .3206706901E+00 .3467592122E+00 .3697451428E+00 .3905017828E+00 .4094497266E+00
+ .4267784624E+00 .4427294354E+00 .4576731626E+00 .4719628639E+00 .4857636510E+00
+ .4990303080E+00 .5116395856E+00 .5235558688E+00 .5349056744E+00 .5459229738E+00
+ .5568210103E+00 .5676849997E+00 .5784524938E+00 .5889845807E+00 .5991754435E+00
+ .6090307886E+00 .6186713651E+00 .6282662835E+00 .6379420953E+00 .6477245741E+00
+ .6575464840E+00 .6673120484E+00 .6769737573E+00 .6865713861E+00 .6962103524E+00
+ .7059989797E+00 .7159925354E+00 .7261848681E+00 .7365500525E+00 .7470964140E+00
+ .7578878581E+00 .7690206779E+00 .7805873441E+00 .7926684362E+00 .8053601349E+00
+ .8188085377E+00 .8332287187E+00 .8489252410E+00 .8663520791E+00 .8862438027E+00
+ .9098221303E+00 .9387319809E+00 .9725589811E+00 .1366984541E+00 .2069680990E+00
+ .2552333897E+00 .2925012569E+00 .3231259268E+00 .3492392965E+00 .3721609858E+00
+ .3928105288E+00 .4117096189E+00 .4290685809E+00 .4450377199E+00 .4598876990E+00
+ .4739696249E+00 .4875462915E+00 .5006814672E+00 .5132823450E+00 .5252457016E+00
+ .5365875740E+00 .5474686835E+00 .5581133541E+00 .5686894959E+00 .5792315448E+00
+ .5896501520E+00 .5998141960E+00 .6096492018E+00 .6191924826E+00 .6285764587E+00
+ .6379562048E+00 .6474288463E+00 .6569938890E+00 .6665757987E+00 .6760907786E+00
+ .6855129293E+00 .6948974771E+00 .7043490456E+00 .7139610712E+00 .7237718314E+00
+ .7337682553E+00 .7439304279E+00 .7542776520E+00 .7648789077E+00 .7758259722E+00
+ .7872030722E+00 .7990866344E+00 .8115739091E+00 .8248121451E+00 .8390138831E+00
+ .8544786257E+00 .8716540436E+00 .8912609495E+00 .9144659318E+00 .9426884429E+00
+ .9749480802E+00 .1356037107E+00 .2052708444E+00 .2531096369E+00 .2900285281E+00
+ .3203081791E+00 .3461134179E+00 .3688325792E+00 .3893355069E+00 .4080181924E+00
+ .4250536915E+00 .4406896993E+00 .4553182589E+00 .4693139899E+00 .4828508125E+00
+ .4958737622E+00 .5082335771E+00 .5198638902E+00 .5308729613E+00 .5415027352E+00
+ .5520008575E+00 .5624967148E+00 .5729557425E+00 .5832303043E+00 .5931685231E+00
+ .6027149046E+00 .6119481946E+00 .6210412868E+00 .6301715435E+00 .6394346402E+00
+ .6488095426E+00 .6581911554E+00 .6674682729E+00 .6765993673E+00 .6856416708E+00
+ .6947185921E+00 .7039494481E+00 .7133893935E+00 .7230195811E+00 .7327914572E+00
+ .7426893367E+00 .7527627695E+00 .7631072443E+00 .7738176856E+00 .7849623879E+00
+ .7966015439E+00 .8088283143E+00 .8217941329E+00 .8357129915E+00 .8508788360E+00
+ .8677307517E+00 .8869866831E+00 .9098625465E+00 .9381036745E+00 .9717550211E+00
+ .1337198350E+00 .2027298863E+00 .2502219537E+00 .2869418928E+00 .3171762707E+00
+ .3429813643E+00 .3655828893E+00 .3859012345E+00 .4045529034E+00 .4217995302E+00
+ .4377136913E+00 .4524277481E+00 .4662290518E+00 .4794520471E+00 .4923059990E+00
+ .5047979144E+00 .5168010926E+00 .5282021467E+00 .5390170341E+00 .5494059300E+00
+ .5595918040E+00 .5697449700E+00 .5799066327E+00 .5899919861E+00 .5998632916E+00
+ .6094253160E+00 .6186880003E+00 .6277644570E+00 .6368108163E+00 .6459462567E+00
+ .6552000642E+00 .6645143498E+00 .6737972730E+00 .6829919680E+00 .6921183673E+00
+ .7012637997E+00 .7105322729E+00 .7199896247E+00 .7296431187E+00 .7394674280E+00
+ .7494533624E+00 .7596394314E+00 .7701040891E+00 .7809334686E+00 .7922007921E+00
+ .8039780615E+00 .8163661362E+00 .8295166778E+00 .8436428042E+00 .8590430561E+00
+ .8761650884E+00 .8957230660E+00 .9188238772E+00 .9466043281E+00 .9773882864E+00
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/QGSJET.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/QGSJET.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/QGSJET.f	(revision 4308)
@@ -0,0 +1,7156 @@
+
+C======================================================================C
+C                                                                      C
+C      QQQ         GGG       SSSS     JJJJJJJ    EEEEEEE    TTTTTTT    C
+C     Q   Q       G   G     S    S          J    E             T       C
+C    Q     Q     G          S               J    E             T       C
+C    Q     Q     G   GGG     SSSS           J    EEEEE         T       C
+C    Q   Q Q     G     G         S          J    E             T       C
+C     Q   Q       G   G     S    S     J   J     E             T       C
+C      QQQ QQ      GGG       SSSS       JJJ      EEEEEEE       T       C
+C                                                                      C
+C                                                                      C
+C----------------------------------------------------------------------C
+C                                                                      C
+C                    QUARK - GLUON - STRING - MODEL                    C
+C                                                                      C
+C                HIGH ENERGY HADRON INTERACTION PROGRAM                C
+C                                                                      C
+C                                  BY                                  C
+C                                                                      C
+C                 N. N. KALMYKOV AND S. S. OSTAPCHENKO                 C
+C                                                                      C
+C               MOSCOW STATE UNIVERSITY,  MOSCOW, RUSSIA               C
+C                      e-mail: serg@eas.npi.msu.su                     C
+C----------------------------------------------------------------------C
+C                 SUBROUTINE VERSION TO BE LINKED WITH                 C
+C                             C O R S I K A                            C
+C               KARLSRUHE  AIR SHOWER SIMULATION PROGRAM               C
+C                          WITH MODIFICATIONS                          C
+C                                  BY                                  C
+C                      D. HECK  IK3 FZK KARLSRUHE                      C
+C----------------------------------------------------------------------C
+C             last modification:  feb  21, 1997                        C
+C----------------------------------------------------------------------C
+ 
+C=======================================================================
+
+      SUBROUTINE PSAINI
+c Common initialization procedure
+c-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INTEGER DEBUG
+      CHARACTER *7 TY
+      LOGICAL LCALC,LSECT
+********************************************
+      DIMENSION EQ(17),MIJ(17,17,4),NIJ(17,17,4),CSJET(17,17,68),
+     *CS1(17,17,68),GZ0(2),GZ1(3)
+      COMMON /XSECT/  GSECT(10,5,4)
+      COMMON /AREA1/  IA(2),ICZ,ICP
+      COMMON /AREA5/  RD(2),CR1(2),CR2(2),CR3(2)
+********************************************
+      COMMON /AREA6/  PI,BM,AM
+      COMMON /AREA7/  RP1
+      COMMON /AREA10/ STMASS,AM0,AMN,AMK,AMC,AMLAMC,AMLAM,AMETA
+      COMMON /AREA15/ FP(5),RQ(5),CD(5)
+      COMMON /AREA16/ CC(5)
+      COMMON /AREA17/ DEL,RS,RS0,FS,ALFP,RR,SH,DELH
+      COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+      COMMON /AREA19/ AHL(5)
+********************************************
+      COMMON /AREA22/ SJV0,FJS0(5,3)
+********************************************
+      COMMON /AREA23/ RJV(50)
+      COMMON /AREA24/ RJS(50,5,10)
+      COMMON /AREA27/ FP0(5)
+      COMMON /AREA28/ ARR(4)
+      COMMON /AREA29/ CSTOT(17,17,68)
+      COMMON /AREA30/ CS0(17,17,68)
+      COMMON /AREA31/ CSBORN(17,68)
+      COMMON /AREA32/ CSQ(17,2,2),CSBQ(17,2,2)
+      COMMON /AREA33/ FSUD(10,2)
+      COMMON /AREA34/ QRT(10,101,2)
+      COMMON /AREA35/ SJV(10,5),FJS(10,5,15)
+      COMMON /AREA39/ JCALC
+      COMMON /AREA41/ TY(5)
+      COMMON /AREA43/ MONIOU
+      COMMON /DEBUG/  DEBUG
+********************************************
+      COMMON /AREA44/ GZ(10,5,4)
+c Auxiliary common blocks to calculate hadron-nucleus cross-sections
+      COMMON /AR1/    ANORM
+      COMMON /AR2/    RRR,RRRM
+********************************************
+
+c-------------------------------------------------
+        WRITE(MONIOU,100)
+ 100    FORMAT(' ',
+     *           '====================================================',
+     *     /,' ','|                                                  |',
+     *     /,' ','|           QUARK GLUON STRING JET MODEL           |',
+     *     /,' ','|                                                  |',
+     *     /,' ','|         HADRONIC INTERACTION MONTE CARLO         |',
+     *     /,' ','|                        BY                        |',
+     *     /,' ','|        N.N. KALMYKOV AND S.S. OSTAPCHENKO        |',
+     *     /,' ','|                                                  |',
+     *     /,' ','|            e-mail: serg@eas.npi.msu.su           |',
+     *     /,' ','|                                                  |',
+     *     /,' ','| last modification:  feb. 21, 1997  by    D. Heck |',
+     *     /,' ','====================================================',
+     *     /)
+        IF(DEBUG.GE.1)WRITE (MONIOU,210)
+210     FORMAT(2X,'PSAINI - MAIN INITIALIZATION PROCEDURE')
+
+c AHL(i) - parameter for the energy sharing procedure (govern leading hadronic state
+c inelasticity for primary pion, nucleon, kaon, D-meson, Lambda_C correspondingly)
+      AHL(1)=1.D0-2.D0*ARR(1)
+      AHL(2)=1.D0-ARR(1)-ARR(2)
+      AHL(3)=1.D0-ARR(1)-ARR(3)
+      AHL(4)=1.D0-ARR(1)-ARR(4)
+      AHL(5)=AHL(2)+ARR(1)-ARR(4)
+
+c-------------------------------------------------
+c 1/CC(i) = C_i - shower enhancement coefficients for one vertex
+c (C_ab=C_a*C_b) (i - ICZ)
+      CC(2)=1.D0/DSQRT(CD(2))
+      CC(1)=1.D0/CC(2)/CD(1)
+      CC(3)=1.D0/CC(2)/CD(3)
+      CC(4)=1.D0/CC(2)/CD(4)
+      CC(5)=1.D0/CC(2)/CD(5)
+
+c FP0(i) - vertex constant (FP_ij=FP0_i*FP0_j) for pomeron-hadron interaction (i - ICZ)
+      FP0(2)=DSQRT(FP(2))
+      FP0(1)=FP(1)/FP0(2)
+      FP0(3)=FP(3)/FP0(2)
+      FP0(4)=FP(4)/FP0(2)
+      FP0(5)=FP(5)/FP0(2)
+
+c SH - hard interaction effective squared (SH=pi*R_h>2, R_h>2=4/Q0>2)
+      SH=4.D0/QT0*PI
+c Auxiliary constants for the hard interaction
+      AQT0=DLOG(4.D0*QT0)
+      QLOG=DLOG(QT0/ALM)
+      QLL=DLOG(QLOG)
+
+********************************************
+      INQUIRE(FILE='QGSDATA4',EXIST=LCALC)
+      IF(LCALC)then
+        IF(DEBUG.GE.1)WRITE (MONIOU,211)
+211     FORMAT(2X,'PSAINI: HARD CROSS SECTION RATIOS READOUT FROM THE'
+     *   '  FILE QGSDATA4')
+        OPEN(1,FILE='QGSDATA4',STATUS='OLD')
+        READ (1,*)CSBORN,CS0,CSTOT,CSQ,CSBQ,
+     *  FSUD,QRT,SJV,FJS,RJV,RJS,GZ,GSECT
+        CLOSE(1)
+      ELSE
+********************************************
+
+        IF(DEBUG.GE.1)WRITE (MONIOU,201)
+201     FORMAT(2X,'PSAINI: HARD CROSS SECTIONS CALCULATION')
+c--------------------------------------------------
+c Hard pomeron inclusive cross sections calculation
+c--------------------------------------------------
+c EQ(I) - energy squared tabulation (Q0>2, 4*Q0>2, ...)
+      DO 1 I=1,17
+1     EQ(I)=QT0*4.D0**FLOAT(I-1)
+
+      DO 2 I=1,17
+c QI - effective momentum (Qt**2/(1-z)**2) cutoff for the Born process
+      QI=EQ(I)
+c M, L define parton types (1-g, 2-q)
+      DO 2 M=1,2
+      DO 2 L=1,2
+c K defines c.m. energy squared for the process (for current energy tabulation)
+      DO 2 K=1,17
+      K1=K+17*(M-1)+34*(L-1)
+      IF(K.LE.I.OR.K.EQ.2)THEN
+        CSBORN(I,K1)=0.D0
+      ELSE
+c SK - c.m. energy squared for the hard interaction
+        SK=EQ(K)
+c CSBORN(I,K1) - Born cross-section (2->2 process) - procedure PSBORN
+        CSBORN(I,K1)=PSBORN(QI,SK,M-1,L-1)
+      ENDIF
+2     CONTINUE
+
+c Cross-sections initialization
+      DO 3 I=1,17
+      DO 3 J=1,17
+      N=MAX(I,J)
+      DO 3 M=1,2
+      DO 3 L=1,2
+      ML=M+2*L-2
+      DO 3 K=1,17
+      K1=K+17*(M-1)+34*(L-1)
+      CSJET(I,J,K1)=0.D0
+      IF(K.LE.N.OR.K.EQ.2)THEN
+        CSTOT(I,J,K1)=-80.D0
+        CS0(I,J,K1)=-80.D0
+        MIJ(I,J,ML)=K+1
+        NIJ(I,J,ML)=K+1
+      ELSE
+        CSTOT(I,J,K1)=DLOG(CSBORN(N,K1))
+        CS0(I,J,K1)=CSTOT(I,J,K1)
+      ENDIF
+3     CONTINUE
+
+c N-maximal number of ladder runs taken into account
+      N=2
+4     CONTINUE
+        IF(DEBUG.GE.2)WRITE (MONIOU,202)N,EQ(MIJ(1,1,1)),EQ(NIJ(1,1,1))
+202     FORMAT(2X,'PSAINI: NUMBER OF LADDER RUNS TO BE CONSIDERED:',I2/
+     *  4X,'MINIMAL MASSES SQUARED FOR THE UNORDERED AND STRICTLY',
+     *  ' ORDERED LADDERS:'/4X,E10.3,3X,E10.3)
+      DO 6 I=1,17
+c QI - effective momentum cutoff for upper end of the ladder
+      QI=EQ(I)
+      DO 6 J=1,17
+c QJ - effective momentum cutoff for lower end of the ladder
+      QJ=EQ(J)
+c QQ - maximal effective momentum cutoff
+      QQ=MAX(QI,QJ)
+c S2MIN - minimal energy squared for 2->2 subprocess
+      S2MIN=MAX(QQ,4.D0*QT0)
+      SM=DSQRT(QT0/S2MIN)
+c SMIN - minimal energy squared for 2->3 subprocess
+      SMIN=S2MIN*(1.D0+SM)/(1.D0-SM)
+
+c M, L define parton types (1-g, 2-q)
+      DO 6 M=1,2
+      DO 6 L=1,2
+      ML=M+2*L-2
+c KMIN corresponds to minimal energy at which more runs are to be considered -
+c stored in array NIJ(I,J,ML) - for strictly ordered ladder
+      KMIN=NIJ(I,J,ML)
+      IF(KMIN.LE.17)THEN
+        DO 5 K=KMIN,17
+        SK=EQ(K)
+        IF(SK.LE.SMIN)THEN
+          NIJ(I,J,ML)=NIJ(I,J,ML)+1
+        ELSE
+          K1=K+17*(M-1)+34*(L-1)
+c CS1(I,J,K1) - cross-section for strictly ordered ladder (highest virtuality run
+c is the lowest one) - procedure PSJET1
+          CS1(I,J,K1)=PSJET1(QI,QJ,SK,S2MIN,M-1,L)
+        ENDIF
+5       CONTINUE
+      ENDIF
+6     CONTINUE
+
+      DO 8 I=1,17
+      DO 8 J=1,17
+      DO 8 M=1,2
+      DO 8 L=1,2
+      ML=M+2*L-2
+      KMIN=NIJ(I,J,ML)
+      IF(KMIN.LE.17)THEN
+        DO 7 K=KMIN,17
+        K1=K+17*(M-1)+34*(L-1)
+c CSJ - cross-section for strictly ordered ladder (highest virtuality run is the
+c lowest one) - Born contribution is added
+        CSJ=CS1(I,J,K1)+CSBORN(MAX(I,J),K1)
+        IF(DEBUG.GE.2)WRITE (MONIOU,204)CSJ,EXP(CS0(I,J,K1))
+204     FORMAT(2X,'PSAINI: NEW AND OLD VALUES OF THE CONTRIBUTION',
+     *  ' OF THE STRICTLY ORDERED LADDER:'/4X,E10.3,3X,E10.3)
+        IF(CSJ.EQ.0.D0.OR.ABS(1.D0-EXP(CS0(I,J,K1))/CSJ).LT.1.D-2)THEN
+     	  NIJ(I,J,ML)=NIJ(I,J,ML)+1
+        ELSE
+c CS0(I,J,K1) - cross-section logarithm for strictly ordered ladder
+          CS0(I,J,K1)=DLOG(CSJ)
+        ENDIF
+7       CONTINUE
+      ENDIF
+8     CONTINUE
+
+      DO 10 I=1,17
+      QI=EQ(I)
+      DO 10 J=1,17
+      QJ=EQ(J)
+      QQ=MAX(QI,QJ)
+      S2MIN=MAX(QQ,4.D0*QT0)
+      SM=DSQRT(QT0/S2MIN)
+c SMIN - minimal energy squared for 2->3 subprocess
+      SMIN=S2MIN*(1.D0+SM)/(1.D0-SM)
+
+      DO 10 M=1,2
+      DO 10 L=1,2
+      ML=M+2*L-2
+c KMIN corresponds to minimal energy at which more runs are to be considered
+c stored in array MIJ(I,J,ML) - for any ordering in the ladder
+      KMIN=MIJ(I,J,ML)
+      IF(KMIN.LE.17)THEN
+        DO 9 K=KMIN,17
+        SK=EQ(K)
+        IF(SK.LE.SMIN)THEN
+          MIJ(I,J,ML)=MIJ(I,J,ML)+1
+        ELSE
+          K1=K+17*(M-1)+34*(L-1)
+c CS1(I,J,K1) - cross-section for any ordering in the ladder (highest virtuality
+c run is somewhere in the middle; runs above and below it are strictly ordered
+c towards highest effective momentum run) - procedure PSJET
+          CS1(I,J,K1)=PSJET(QI,QJ,SK,S2MIN,M-1,L)
+        ENDIF
+9       CONTINUE
+      ENDIF
+10    CONTINUE
+
+      DO 12 I=1,17
+      DO 12 J=1,17
+      DO 12 M=1,2
+      DO 12 L=1,2
+      ML=M+2*L-2
+c KMIN corresponds to minimal energy at which more runs are to be considered
+      KMIN=MIJ(I,J,ML)
+      IF(KMIN.LE.17)THEN
+        DO 11 K=KMIN,17
+        K1=K+17*(M-1)+34*(L-1)
+        K2=K+17*(L-1)+34*(M-1)
+        CSJ=CS1(I,J,K1)+EXP(CS0(J,I,K2))
+        IF(CSJ.EQ.0.D0.OR.ABS(1.D0-EXP(CSTOT(I,J,K1))/CSJ).LT.1.D-2)
+     *  MIJ(I,J,ML)=MIJ(I,J,ML)+1
+        IF(DEBUG.GE.2)WRITE (MONIOU,203)CSJ,EXP(CSTOT(I,J,K1))
+203     FORMAT(2X,'PSAINI: NEW AND OLD VALUES OF THE UNORDERED LADDER',
+     *  ' CROSS SECTION:'/4X,E10.3,3X,E10.3)
+11      CSTOT(I,J,K1)=DLOG(CSJ)
+      ENDIF
+12    CONTINUE
+
+c One more run
+      N=N+1
+      DO 13 L=1,4
+13    IF(MIJ(1,1,L).LE.17.OR.NIJ(1,1,L).LE.17)GOTO 4
+
+c Logarithms of the Born cross-section are calculated - to be interpolated in the
+c PSBINT procedure
+      DO 14 I=1,17
+      DO 14 K=1,17
+      DO 14 M=1,2
+      DO 14 L=1,2
+      K1=K+17*(M-1)+34*(L-1)
+      IF(K.LE.I.OR.K.EQ.2)THEN
+        CSBORN(I,K1)=-80.D0
+      ELSE
+        CSBORN(I,K1)=DLOG(CSBORN(I,K1))
+      ENDIF
+14    CONTINUE
+
+c Total and Born hard cross-sections logarithms for minimal cutoff (QT0) - to be
+c interpolated in the PSJINT0 procedure
+      DO 15 M=1,2
+      DO 15 L=1,2
+      DO 15 K=1,17
+      IF(K.LE.2)THEN
+        CSQ(K,M,L)=-80.D0
+        CSBQ(K,M,L)=-80.D0
+      ELSE
+        K1=K+17*(M-1)+34*(L-1)
+        CSBQ(K,M,L)=CSBORN(1,K1)
+        CSQ(K,M,L)=CSTOT(1,1,K1)
+      ENDIF
+15    CONTINUE
+
+c-------------------------------------------------
+c FSUD(K,M)=-ln(SUD) - timelike Sudakov formfactor logarithm - procedure
+c PSUDT(QMAX,M-1), M=1 - g, M=2 - q
+      DO 17 M=1,2
+      FSUD(1,M)=0.D0
+      DO 17 K=2,10
+c QMAX is the maximal effective momentum ( Qt**2/z**2/(1-z)**2 in case of the timelike
+c evolution )
+      QMAX=QTF*4.D0**(1.D0+K)
+17    FSUD(K,M)=PSUDT(QMAX,M-1)
+
+c QRT(K,L,M) - effective momentum logarithm for timelike branching ( ln QQ/16/QTF )
+c for given QMAX (defined by K, QLMAX = ln QMAX/16/QTF ) and a number
+c of random number values (defined by L) - to be interpolated by the PSQINT
+c procedure; M=1 - g, M=2 - q
+      DO 18 M=1,2
+      DO 18 K=1,10
+      QLMAX=1.38629D0*(K-1)
+      QRT(K,1,M)=0.D0
+      QRT(K,101,M)=QLMAX
+      DO 18 I=1,99
+      IF(K.EQ.1)THEN
+        QRT(K,I+1,M)=0.D0
+      ELSE
+        QRT(K,I+1,M)=PSROOT(QLMAX,.01D0*I,M)
+      ENDIF
+18    CONTINUE
+c-------------------------------------------------
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,205)
+205     FORMAT(2X,'PSAINI: PRETABULATION OF THE INTERACTION EIKONALS')
+c-------------------------------------------------
+************************************************************************
+c-------------------------------------------------
+c Interaction cross sections
+c Factors for interaction eikonals calculation
+c (convolution of the hard cross-sections with partons structure functions)
+c - to be used in the PSPSFAZ procedure
+c-------------------------------------------------
+      IA(1)=1          
+c-------------------------------------------------
+      DO 21 IE=1,10
+c Energy of the interaction (per nucleon)
+      E0N=10.D0**IE
+c-------------------------------------------------
+c Energy dependent factors:
+c WP0, WM0 - initial light cone momenta for the interaction (E+-p)
+      S=2.D0*E0N*AMN
+c Y0 - total rapidity range for the interaction
+      Y0=DLOG(S)
+
+c Type of the incident hadron (icz = 1: pion, 2: nucleon, 3: kaon, etc
+      DO 21 ICZ=1,5
+c RS - soft pomeron elastic scattering slope (lambda_ab)
+      RS=RQ(ICZ)+ALFP*Y0
+c RS0 - initial slope (sum of the pomeron-hadron vertices slopes squared - R_ab)
+      RS0=RQ(ICZ)
+c FS - factor for pomeron eikonal calculation 
+c                            (gamma_ab * s**del /lambda_ab * C_ab
+      FS=FP(ICZ)*EXP(Y0*DEL)/RS*CD(ICZ)
+c RP1 - factor for the impact parameter dependence of the eikonal ( in fm>2 )
+      RP1=RS*4.D0*.0391D0/AM**2
+c Factor for cross-sections calculation ( in mb )
+      G0=PI*RP1/CD(ICZ)*AM**2*10.D0
+c SJV - valence-valence cross-section (divided by 8*pi*lambda_ab)
+      SJV(IE,ICZ)=PSHARD(S,ICZ)
+      SJV0=SJV(IE,ICZ)
+
+      DO 19 I=1,5
+      DO 19 M=1,3
+      Z=.2D0*I
+c Eikonals for gluon-gluon and valence-gluon semihard interactions
+c (m=1 - gg, 2 - qg, 3 - gq);
+c Z - impact parameter factor ( exp(-b**2/R_p) )
+      M1=M+3*(ICZ-1)
+      FJS(IE,I,M1)=DLOG(PSFSH(S,Z,ICZ,M-1)/Z)
+      FJS0(I,M)=FJS(IE,I,M1)
+19    CONTINUE	
+
+      DO 20 IIA=1,4
+c Target mass number IA(2)
+      IA(2)=4**(IIA-1)
+      IF(DEBUG.GE.1)WRITE (MONIOU,206)E0N,TY(ICZ),IA(2)
+206   FORMAT(2X,'PSAINI: INITIAL PARTICLE ENERGY:',E10.3,2X,
+     *'ITS TYPE:',A7,2X,'TARGET MASS NUMBER:',I2)
+c-------------------------------------------------
+c Nuclear radii 
+      IF(IA(2).GT.10)THEN
+c RD - Wood-Saxon density radius (fit to the data of Murthy et al.)
+        RD(2)=0.7D0*FLOAT(IA(2))**.446/AM
+      ELSE
+c RD - gaussian density radius (for light nucleus)
+        RD(2)=.9D0*FLOAT(IA(2))**.3333/AM
+      ENDIF
+      
+      IF(IA(2).EQ.1)THEN
+c Hadron-proton interaction
+c BM - impact parameter cutoff value
+        BM=2.D0*DSQRT(RP1)
+c XXFZ - impact parameter integration for the hadron-nucleon interaction eikonal;
+c GZ0 - total and absorptive cross-sections (up to a factor); first parameter is
+c used only in case of hadron-nucleus interaction (to make convolution with target
+c nucleus profile function)
+        CALL XXFZ(0.D0,GZ0)
+        write (*,*)gz0
+c GTOT - total cross-section
+        GTOT=G0*GZ0(1)
+c GABS - cut pomerons cross-section
+        GABS=G0*GZ0(2)*.5D0
+c GD0 - cross-section for the cut between pomerons
+        GD0=GTOT-GABS
+c GDP - projectile diffraction cross section
+        GDP=(1.D0-CC(ICZ))*CC(2)*GD0
+c GDT - target diffraction cross section
+        GDT=(1.D0-CC(2))*CC(ICZ)*GD0
+c  GDD - double diffractive cross section
+        GDD=(1.D0-CC(ICZ))*(1.D0-CC(2))*GD0
+c GIN - inelastic cross section
+        GIN=GABS+GDP+GDT+GDD
+        GEL=GD0*CC(ICZ)*CC(2)
+c
+        IF(DEBUG.GE.1)WRITE (MONIOU,225)GTOT,GIN,GEL,GDP,GDT,GDD
+c
+225     FORMAT(2X,'PSAINI: HADRON-PROTON CROSS SECTIONS:'/
+     *  4X,'GTOT=',E10.3,2X,'GIN=',E10.3,2X,'GEL=',E10.3/4X,
+     *  'GDIFR_PROJ=',E10.3,2X,'GDIFR_TARG=',E10.3,2X,
+     *  'G_DOUBLE_DIFR',E10.3)
+c GZ - probability to have target diffraction
+        GZ(IE,ICZ,IIA)=GDT/GIN
+C??????
+        GSECT(IE,ICZ,IIA)=LOG(GIN)
+C??????
+      ELSE
+
+c Hadron-nucleus interaction
+c BM - impact parameter cutoff value
+        BM=RD(2)+DLOG(29.D0)
+c RRR - Wood-Saxon radius for the target nucleus
+        RRR=RD(2)
+c RRRM - auxiliary parameter for numerical integration
+        RRRM=RRR+DLOG(9.D0)
+c ANORM - nuclear density normalization factor multiplied by RP1
+        ANORM=1.5D0/PI/RRR**3/(1.D0+(PI/RRR)**2)*RP1
+
+c GAU(GZ) - cross sections calculation ( integration over impact parameters less than
+c BM )
+        CALL XXGAU(GZ1)
+c GAU1(GZ) - cross sections calculation ( integration over impact 
+c parameters greater than BM )
+        CALL XXGAU1(GZ1)
+c GIN - total inelastic cross section
+        GIN=GZ1(1)+GZ1(2)+GZ1(3)
+c
+        IF(DEBUG.GE.1)WRITE (MONIOU,224)
+     *  GIN*10.D0,GZ1(1)*10.D0,GZ1(2)*10.D0
+c
+224     FORMAT(2X,'PSAINI: HADRON-NUCLEUS CROSS SECTIONS:'/
+     *  4X,'GIN=',E10.3,2X,'GDIFR_TARG=',E10.3,2X,
+     *  'GDIFR_PROJ=',E10.3)
+c GZ - probability to have target diffraction
+        GZ(IE,ICZ,IIA)=GZ1(1)/GIN
+C??????
+        GIN=GIN*10.
+        GSECT(IE,ICZ,IIA)=LOG(GIN)
+C??????
+      ENDIF
+20    CONTINUE
+21    CONTINUE
+
+c Rejection functions calculation - to be interpolated in the RJINT procedure
+      DO 23 I=1,50
+c Rapidity range tabulation for the hard interaction
+      YJ=AQT0+.5D0*I
+c Rejection function for valence quark energy distribution
+      RJV(I)=PSREJV(EXP(YJ))
+
+      DO 22 J=1,5
+      DO 22 M=1,2
+      Z=.2D0*J
+      DO 22 ICZ=1,5
+c RS0 - initial slope (sum of the pomeron-hadron vertices slopes squared - R_ab)
+      RS0=RQ(ICZ)
+      M1=M+2*(ICZ-1)
+c Rejection function for semihard block energy distribution  (m=1 - gg,
+c 2 - qg)
+      RJS(I,J,M1)=PSREJS(EXP(YJ),Z,M-1)
+22    CONTINUE
+23    CONTINUE
+
+        IF(DEBUG.GE.1)WRITE (MONIOU,212)
+212     FORMAT(2X,'PSAINI: HARD CROSS SECTIONS ARE WRITTEN TO THE FILE'
+     *  ,' QGSDATA4')
+        OPEN(1,FILE='QGSDATA4',STATUS='unknown')
+        WRITE (1,*)CSBORN,CS0,CSTOT,CSQ,CSBQ,
+     *  FSUD,QRT,SJV,FJS,RJV,RJS,GZ,GSECT
+        CLOSE(1)
+      ENDIF
+************************************************************************
+
+      IF(DEBUG.GE.3)WRITE (MONIOU,218)
+218   FORMAT(2X,'PSAINI - END')
+      RETURN
+      END
+C=======================================================================
+
+        FUNCTION PSAPINT(X,J,L)
+c PSAPINT - integrated Altarelli-Parisi function
+c X - light cone momentum share value,
+c J - type of initial parton (0 - g, 1 - q)
+c L - type of final parton (0 - g, 1 - q)
+C-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)X,J,L
+201     FORMAT(2X,'PSAPINT: X=',E10.3,2X,'J= ',I1,2X,'L= ',I1)
+        IF(J.EQ.0)THEN
+          IF(L.EQ.0)THEN
+            PSAPINT=6.D0*(DLOG(X/(1.D0-X))-X**3/3.D0+X**2/2.D0-2.D0*X)
+          ELSE
+            PSAPINT=3.D0*(X+X**3/1.5D0-X*X)
+          ENDIF
+        ELSE
+          IF(L.EQ.0)THEN
+            PSAPINT=(DLOG(X)-X+.25D0*X*X)/.375D0
+          ELSE
+            Z=1.D0-X
+            PSAPINT=-(DLOG(Z)-Z+.25D0*Z*Z)/.375D0
+          ENDIF
+        ENDIF
+        IF(DEBUG.GE.2)WRITE (MONIOU,202)PSAPINT
+202     FORMAT(2X,'PSAPINT=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+      SUBROUTINE PSASET
+c Common model parameters setting
+c-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INTEGER DEBUG
+      CHARACTER*7 TY
+      COMMON /AREA15/ FP(5),RQ(5),CD(5)
+      COMMON /AREA17/ DEL,RS,RS0,FS,ALFP,RR,SH,DELH
+      COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+      COMMON /AREA25/ AHV(5)
+      COMMON /AREA26/ FACTORK
+      COMMON /AREA41/ TY(5)
+      COMMON /AREA43/ MONIOU
+      COMMON /DEBUG/  DEBUG
+        IF(DEBUG.GE.1)WRITE (MONIOU,210)
+210     FORMAT(2X,'PSASET - COMMON MODEL PARAMETERS SETTING')
+
+c Soft pomeron parameters:
+c DEL - overcriticity,
+c ALFP - trajectory slope;
+c FP(i) - vertices for pomeron-hadrons interaction (gamma(i)*gamma(proton)),
+c RQ(i) - vertices slopes (R(i)**2+R(proton)**2),
+c CD(i) - shower enhancement coefficients
+c (i=1,...5 - pion,proton,kaon,D-meson,Lambda_C ),
+c (Kaidalov et al., Sov.J.Nucl.Phys.,1984 - proton and pion parameters)
+      DEL=.07D0
+      ALFP=.21D0
+
+      FP(1)=2.43D0
+      RQ(1)=2.4D0
+      CD(1)=1.6D0
+
+      FP(2)=3.64D0
+      RQ(2)=3.56D0
+      CD(2)=1.5D0
+
+      FP(3)=1.75D0
+      RQ(3)=2.D0
+      CD(3)=1.7D0
+
+      FP(4)=1.21D0
+      RQ(4)=1.78D0
+      CD(4)=2.0D0
+
+      FP(5)=2.43D0
+      RQ(5)=2.4D0
+      CD(5)=2.0D0
+
+c-------------------------------------------------
+c Hard interaction parameters:
+c ALM  - Lambda_QCD squared,
+c QT0  - Q**2 cutoff,
+c RR   - vertex constant square for soft pomeron interaction with the hard block (r**2),;
+c BET  - gluon structure function parameter for the soft pomeron ((1-x)**BET),
+c AMJ0 - jet mass,
+c QTF  - Q**2 cutoff for the timelike evolution,
+c FACTORK - K-factor value;
+c DELH is not a parameter of the model; it is used only for energy sharing
+c procedure - initially energy is shared according to s**DELH dependence
+c for the hard interaction cross-section and then rejection is used according
+c to real Sigma_hard(s) dependence.
+      ALM=.04D0
+      RR=.35D0
+      QT0=4.D0
+      BET=1.D0
+      DELH=0.25D0
+      AMJ0=0.D0
+      QTF=.5D0
+      FACTORK=2.D0
+
+c-------------------------------------------------
+c Valence quark structure functions for the hard scattering
+c (~1/sqrt(x)*(1-x)**AHV(i), i=1,...5 corresponds to pion, nucleon etc.)
+      AHV(1)=1.5D0
+      AHV(2)=2.5D0
+      AHV(3)=2.D0
+      AHV(4)=4.D0
+      AHV(5)=5.D0
+c Initial particle types
+      TY(1)='pion   '
+      TY(2)='nucleon'
+      TY(3)='kaon   '
+      TY(4)='D-meson'
+      TY(5)='LambdaC'
+      RETURN
+      END
+C=======================================================================
+
+        FUNCTION PSBINT(QQ,S,M,L)
+C PSBINT - Born cross-section interpolation
+c QQ - effective momentum cutoff for the scattering,
+c S - total c.m. energy squared for the scattering,
+c M - parton type at current end of the ladder (1 - g, 2 - q)
+c L - parton type at opposite end of the ladder (1 - g, 2 - q)
+C-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION WI(3),WK(3)
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA31/ CSJ(17,68)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)QQ,S,M,L
+201     FORMAT(2X,'PSBINT: QQ=',E10.3,2X,'S= ',E10.3,2X,'M= ',I1,2X,
+     *  'L= ',I1)
+        PSBINT=0.D0
+        IF(S.LE.MAX(4.D0*QT0,QQ))THEN
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSBINT
+202     FORMAT(2X,'PSBINT=',E10.3)
+          RETURN
+        ENDIF
+
+        ML=17*(M-1)+34*(L-1)
+        QLI=DLOG(QQ/QT0)/1.38629d0
+        SL=DLOG(S/QT0)/1.38629d0
+        SQL=SL-QLI
+        I=INT(QLI)
+        K=INT(SL)
+        IF(I.GT.13)I=13
+
+        IF(SQL.GT.10.D0)THEN
+          IF(K.GT.14)K=14
+          WI(2)=QLI-I
+          WI(3)=WI(2)*(WI(2)-1.D0)*.5D0
+          WI(1)=1.D0-WI(2)+WI(3)
+          WI(2)=WI(2)-2.D0*WI(3)
+          WK(2)=SL-K
+          WK(3)=WK(2)*(WK(2)-1.D0)*.5D0
+          WK(1)=1.D0-WK(2)+WK(3)
+          WK(2)=WK(2)-2.D0*WK(3)
+
+          DO 1 I1=1,3
+          DO 1 K1=1,3
+1         PSBINT=PSBINT+CSJ(I+I1,K+K1+ML)*WI(I1)*WK(K1)
+          PSBINT=EXP(PSBINT)
+        ELSEIF(SQL.LT.1.D0.AND.I.NE.0)THEN
+          SQ=(S/QQ-1.D0)/3.D0
+          WI(2)=QLI-I
+          WI(3)=WI(2)*(WI(2)-1.D0)*.5D0
+          WI(1)=1.D0-WI(2)+WI(3)
+          WI(2)=WI(2)-2.D0*WI(3)
+
+          DO 2 I1=1,3
+          I2=I+I1
+          K2=I2+1+ML
+2         PSBINT=PSBINT+CSJ(I2,K2)*WI(I1)
+          PSBINT=EXP(PSBINT)*SQ
+        ELSEIF(K.EQ.1)THEN
+          SQ=(S/QT0/4.D0-1.D0)/3.D0
+          WI(2)=QLI
+          WI(1)=1.D0-QLI
+
+          DO 3 I1=1,2
+3         PSBINT=PSBINT+CSJ(I1,3+ML)*WI(I1)
+          PSBINT=EXP(PSBINT)*SQ
+        ELSEIF(K.LT.15)THEN
+          KL=INT(SQL)
+          IF(I+KL.GT.12)I=12-KL
+          IF(I+KL.EQ.1)KL=2
+          WI(2)=QLI-I
+          WI(3)=WI(2)*(WI(2)-1.D0)*.5D0
+          WI(1)=1.D0-WI(2)+WI(3)
+          WI(2)=WI(2)-2.D0*WI(3)
+          WK(2)=SQL-KL
+          WK(3)=WK(2)*(WK(2)-1.D0)*.5D0
+          WK(1)=1.D0-WK(2)+WK(3)
+          WK(2)=WK(2)-2.D0*WK(3)
+
+          DO 4 I1=1,3
+          I2=I+I1
+          DO 4 K1=1,3
+          K2=I2+KL+K1-1+ML
+4         PSBINT=PSBINT+CSJ(I2,K2)*WI(I1)*WK(K1)
+          PSBINT=EXP(PSBINT)
+
+        ELSE
+          K=15
+          IF(I.GT.K-3)I=K-3
+          WI(2)=QLI-I
+          WI(3)=WI(2)*(WI(2)-1.D0)*.5D0
+          WI(1)=1.D0-WI(2)+WI(3)
+          WI(2)=WI(2)-2.D0*WI(3)
+          WK(2)=SL-K
+          WK(1)=1.D0-WK(2)
+
+          DO 5 I1=1,3
+          DO 5 K1=1,2
+5         PSBINT=PSBINT+CSJ(I+I1,K+K1+ML)*WI(I1)*WK(K1)
+          PSBINT=EXP(PSBINT)
+        ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSBINT
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSBORN(QQ,S,IQ1,IQ2)
+c PSFBORN -hard 2->2 parton scattering Born cross-section
+c S is the c.m. energy square for the scattering process,
+c IQ1 - parton type at current end of the ladder (0 - g, 1,2 - q)
+c IQ2 - parton type at opposite end of the ladder (0 - g, 1,2 - q)
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA6/  PI,BM,AM
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA26/ FACTORK
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        COMMON /AR3/  X1(7),A1(7)
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)QQ,S,IQ1,IQ2
+201     FORMAT(2X,'PSBORN: QQ=',E10.3,2X,'S= ',E10.3,2X,'IQ1= ',I1,2X,
+     *  'IQ2= ',I1)
+        TMIN=S*(.5D0-DSQRT(.25D0-QT0/S))
+        TMIN=MAX(TMIN,S*QQ/(S+QQ))
+
+        IF(IQ1*IQ2.EQ.0)THEN
+          IQ=IQ2
+        ELSE
+          IQ=2
+        ENDIF
+
+        PSBORN=0.D0
+        DO 1 I=1,7
+        DO 1 M=1,2
+        T=2.D0*TMIN/(1.D0+2.D0*TMIN/S-X1(I)*(2*M-3)*(1.D0-2.D0*TMIN/S))
+        QT=T*(1.D0-T/S)
+        FB=PSFBORN(S,T,IQ1,IQ)+PSFBORN(S,S-T,IQ1,IQ)
+1       PSBORN=PSBORN+A1(I)*FB/DLOG(QT/ALM)**2*T**2
+        PSBORN=PSBORN*(.5D0/TMIN-1.D0/S)*FACTORK*PI**3/2.25D0**2/S**2
+        IF(IQ1.EQ.0.AND.IQ2.EQ.0)PSBORN=PSBORN*.5D0
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSBORN
+202     FORMAT(2X,'PSBORN=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE PSCAJET(QQ,IQ1,QV,ZV,QM,IQV,LDAU,LPAR,JQ)
+c Final state emission process (all branchings as well as parton masses
+c are determined)
+C-----------------------------------------------------------------------
+c QQ - maximal effective momentum transfer for the first branching
+c IQ1, IQ2 - initial jet flavours in forward and backward direction
+c (0 - for gluon)
+c QV(i,j) - effective momentum for the branching of the parton in i-th row
+c on j-th level (0 - in case of no branching)  - to be determined
+c ZV(i,j) - Z-value for the branching of the parton in i-th row
+c on j-th level - to be determined
+c QM(i,j) - mass squared for the parton in i-th row
+c on j-th level - to be determined
+c IQV(i,j) - flavour for the parton in i-th row on j-th level 
+c - to be determined
+c LDAU(i,j) - first daughter row for the branching of the parton in i-th row
+c on j-th level - to be determined
+c LPAR(i,j) - the parent row for the parton in i-th row
+c on j-th level - to be determined
+	IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION QMAX(30,50),IQM(2),LNV(50),
+     *  QV(30,50),ZV(30,50),QM(30,50),IQV(30,50),
+     *  LDAU(30,49),LPAR(30,50)
+
+        COMMON /AREA11/ B10
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)QQ,IQ1,JQ
+201     FORMAT(2X,'PSCAJET: QQ=',E10.3,2X,'IQ1= ',I1,2X,'JQ=',I1)
+
+        DO 1 I=2,20
+1	LNV(I)=0
+        LNV(1)=1
+        QMAX(1,1)=QQ
+        IQV(1,1)=IQ1
+        NLEV=1
+        NROW=1
+
+2        QLMAX=DLOG(QMAX(NROW,NLEV)/QTF/16.D0)
+         IQ=MIN(1,IABS(IQV(NROW,NLEV)))+1
+
+        IF(PSRAN(B10).GT.PSUDINT(QLMAX,IQ))THEN
+          Q=PSQINT(QLMAX,PSRAN(B10),IQ)
+          Z=PSZSIM(Q,IQ)
+
+          LL=LNV(NLEV+1)+1
+          LDAU(NROW,NLEV)=LL
+          LPAR(LL,NLEV+1)=NROW
+          LPAR(LL+1,NLEV+1)=NROW
+          LNV(NLEV+1)=LL+1
+
+          IF(IQ.NE.1)THEN
+            IF((3-2*JQ)*IQV(NROW,NLEV).GT.0)THEN
+              IQM(1)=0
+              IQM(2)=IQV(NROW,NLEV)
+            ELSE
+              IQM(2)=0
+              IQM(1)=IQV(NROW,NLEV)
+              Z=1.D0-Z
+            ENDIF
+          ELSE
+*********************************************************
+            WG=PSFAP(Z,0,0)
+*********************************************************
+            WG=WG/(WG+PSFAP(Z,0,1))
+            IF(PSRAN(B10).LT.WG)THEN
+              IQM(1)=0
+              IQM(2)=0
+            ELSE
+              IQM(1)=INT(3.D0*PSRAN(B10)+1.D0)*(3-2*JQ)
+              IQM(2)=-IQM(1)
+            ENDIF
+            IF(PSRAN(B10).LT..5D0)Z=1.D0-Z
+          ENDIF
+
+          QV(NROW,NLEV)=Q
+          ZV(NROW,NLEV)=Z
+        
+          NROW=LL
+          NLEV=NLEV+1
+          QMAX(NROW,NLEV)=Q*Z**2
+          QMAX(NROW+1,NLEV)=Q*(1.D0-Z)**2
+          IQV(NROW,NLEV)=IQM(1)
+          IQV(NROW+1,NLEV)=IQM(2)
+        IF(DEBUG.GE.3)WRITE (MONIOU,203)NLEV,NROW,Q,Z
+203     FORMAT(2X,'PSCAJET: NEW BRANCHING AT LEVEL NLEV=',I2,
+     *  ' NROW=',I2/4X,' EFFECTIVE MOMENTUM Q=',E10.3,2X,' Z=',E10.3)
+          GOTO 2
+        ELSE
+
+          QV(NROW,NLEV)=0.D0
+          ZV(NROW,NLEV)=0.D0
+          QM(NROW,NLEV)=AMJ0
+        IF(DEBUG.GE.3)WRITE (MONIOU,204)NLEV,NROW
+204     FORMAT(2X,'PSCAJET: NEW FINAL JET AT LEVEL NLEV=',I2,
+     *  ' NROW=',I2)
+        ENDIF
+
+4       CONTINUE
+      IF(NLEV.EQ.1)THEN
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'PSCAJET - END')
+        RETURN
+      ENDIF
+        LPROW=LPAR(NROW,NLEV)
+
+        IF(LDAU(LPROW,NLEV-1).EQ.NROW)THEN
+          NROW=NROW+1
+          GOTO 2
+        ELSE
+          Z=ZV(LPROW,NLEV-1)
+          QM(LPROW,NLEV-1)=Z*(1.D0-Z)*QV(LPROW,NLEV-1)
+     *	  +QM(NROW-1,NLEV)/Z+QM(NROW,NLEV)/(1.D0-Z)
+          NROW=LPROW
+          NLEV=NLEV-1
+        IF(DEBUG.GE.3)WRITE (MONIOU,205)NLEV,NROW,QM(LPROW,NLEV)
+205     FORMAT(2X,'PSCAJET: JET MASS AT LEVEL NLEV=',I2,
+     *  ' NROW=',I2,' - QM=',E10.3)
+          GOTO 4
+        ENDIF
+        END
+C=======================================================================
+
+      SUBROUTINE PSCONF
+c Simulation of the interaction configuration: impact parameter, nucleons positions,
+c numbers of cut soft pomerons and semihard blocks, their connections.
+c-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INTEGER DEBUG
+c XA(56,3),XB(56,3) - arrays for projectile and target nucleons positions recording,
+c FHARD(i) give the factors to the scattering amplitude due to
+c valence quark-gluon (i=1),  gluon-valence quark (i=2) and
+c valence quark-valence quark (i=3) interactions
+      DIMENSION XA(56,3),XB(56,3),FHARD(3)
+      COMMON /AREA1/  IA(2),ICZ,ICP
+      COMMON /AREA2/  S,Y0,WP0,WM0
+      COMMON /AREA6/  PI,BM,AM
+c Arrays for interaction configuration recording:
+c LQA(i) (LQB(j)) - numbers of cut soft pomerons, connected to i-th projectile
+c (j-th target) nucleon (hadron);
+c LHA(i) (LHB(j)) - the same for hard pomerons numbers;
+c IAS(k) (IBS(k)) - number (position in array) of the projectile (target) nucleon,
+c connected to k-th block of soft pomerons;
+c NQS(k) - number of soft pomerons in k-th block;
+c IAH(k) (IBH(k)) - number (position in array) of the projectile (target) nucleon,
+c connected to k-th hard pomeron;
+c ZH(k) - impact parameter between the two nucleons connected to k-th hard pomeron
+c (more exactly exp(-b**2/RP1));
+c LVA(i)=1 if valence quark from i-th nucleon (i=1 for hadron) is involved into
+c the hard interaction and LVA(i)=0 otherwise, LVB(j) - similar.
+      COMMON /AREA9/  LQA(56),LQB(56),NQS(1000),IAS(1000),IBS(1000),
+     *                LHA(56),LHB(56),ZH(1000),IAH(1000),IBH(1000),
+     *                IQH(1000),LVA(56),LVB(56)
+      COMMON /AREA11/ B10
+c NSP - number of secondary particles
+      COMMON /AREA12/ NSP
+      COMMON /AREA16/ CC(5)
+      COMMON /AREA40/ JDIFR
+      COMMON /AREA43/ MONIOU
+**************************************************
+      COMMON /AREA45/ GDT
+**************************************************
+      COMMON /AREA99/ NWT
+      COMMON /DEBUG/  DEBUG
+      SAVE
+      DIMENSION IWT(56)
+
+        IF(DEBUG.GE.1)WRITE (MONIOU,201)
+201     FORMAT(2X,'PSCONF - CONFIGURATION OF THE INTERACTION')
+
+        NSP=0
+
+        IF(IA(1).EQ.1)THEN
+**************************************************
+          IF(JDIFR.EQ.1.AND.PSRAN(B10).LT.GDT)THEN
+c Target diffraction
+            IF(IA(2).NE.1)THEN
+c ICT - partner target nucleon type (proton - 2 or neutron - 3)
+              ICT=INT(2.5+PSRAN(B10))
+            ELSE
+c Target proton
+              ICT=2
+            ENDIF
+            WPI=WP0
+            WMI=WM0
+c              write (*,*)'difr'
+            CALL XXDTG(WPI,WMI,ICP,ICT,0)
+            RETURN
+          ENDIF
+**************************************************
+c For hadron projectile we have given position in transverse plane;
+c initially primary hadron is positioned at (X,Y)=(0,0)
+          DO 1 I=1,3
+1          XA(1,I)=0.D0
+      ENDIF
+
+c-------------------------------------------------
+c Inelastic interaction at B<BM (usual case)
+c-------------------------------------------------
+c NW - number of wounded nucleons in the primary (NW=1 for hadron);
+c NT - number of target nucleons being in their active diffractive state;
+c LS - number of cut soft pomeron blocks (froissarons);
+c NHP - number of cut pomerons having hard block (referred below as hard blocks);
+c NQS(k) - number of cut soft pomerons in k-th block;
+c IAS(k) (IBS(k)) - number (position in array) of the projectile (target) nucleon,
+c connected to k-th block of soft pomerons;
+c IAH(k) (IBH(k)) - number 3(position in array) of the projectile (target) nucleon,
+c connected to k-th hard pomeron;
+c ZH(k) - impact parameter between the two nucleons connected to k-th hard pomeron
+c (more exactly exp(-b**2/RP1));
+c LQA(i) (LQB(j)) - total number of cut soft pomerons, connected to i-th projectile
+c (j-th target) nucleon (hadron);
+c LHA(i) (LHB(j)) - total number of cut hard blocks, connected to i-th projectile
+c (j-th target) nucleon (hadron);
+c LVA(i)=1 if valence quark from i-th nucleon (i=1 for hadron) is involved into
+c the hard interaction and LVA(i)=0 otherwise, LVB(j) - similar.
+c-------------------------------------------------
+c Initialization
+2         DO 3 I=1,IA(1)
+          LHA(I)=0
+        LVA(I)=0
+3       LQA(I)=0
+        DO 4 I=1,IA(2)
+        LHB(I)=0
+        LVB(I)=0
+4       LQB(I)=0
+
+c-------------------------------------------------
+c The beginning
+5       CONTINUE
+**************************************************
+        IF(IA(2).NE.1)THEN
+c For target nucleus number of target nucleons being in their active
+c diffractive state is simulated (for each nucleon probability equals
+c 1./C_n,  - shower enhancenment coefficient)
+          NT=0
+          DO 6 I=1,IA(2)
+6         NT=NT+INT(CC(2)+PSRAN(B10))
+c In case of no active target nucleon the event is rejected
+          IF(NT.EQ.0)GOTO 5
+        IF(DEBUG.GE.3)WRITE (MONIOU,203)NT
+203     FORMAT(2X,'PSCONF: NUMBER OF ACTIVE TARGET NUCLEONS NT=',
+     *  I2)
+c PSGEA(NT,XB,2) - target nucleons positions simulation:
+          CALL PSGEA(NT,XB,2)
+c NT - number of target nucleons being in their active diffractive state;
+c XB(i,n) - n-th nucleon coordinates (i=1,2,3 corresponds to x,y,z);
+c parameter 2 means target
+        ELSE
+          NT=1
+          XB(1,1)=0.D0
+          XB(1,2)=0.D0
+        ENDIF
+**************************************************
+
+c-------------------------------------------------
+c Impact parameter  square is simulated uniformly (B**2<BM**2)
+        B=BM*DSQRT(PSRAN(B10))
+        IF(DEBUG.GE.2)WRITE (MONIOU,204)B*AM
+204     FORMAT(2X,'PSCONF: IMPACT PARAMETER FOR THE INTERACTION:',
+     *  E10.3,' FM')
+c PSGEA(IA(1),XA,1) - projectile nucleons positions simulation:
+c IA(1) - projectile nucleus mass number;
+c XA(i,n) - n-th nucleon coordinates (i=1,2,3 corresponds to x,y,z);
+c parameter 1 means projectile
+        IF(IA(1).GT.1)CALL PSGEA(IA(1),XA,1)
+
+        NW=0
+        LS=0
+        NS=0
+        NHP=0
+        DO 101 IT = 1,NT
+          IWT(IT) = 0
+ 101    CONTINUE
+
+c-------------------------------------------------
+c Cycle over all projectile nucleons ( for projectile hadron we have only IN=1 )
+        DO 14 IN=1,IA(1)
+        IF(DEBUG.GE.2.AND.ICZ.EQ.2)WRITE (MONIOU,205)IN
+205     FORMAT(2X,'PSCONF: ',I2,'-TH PROJECTILE NUCLEON')
+c Only nucleons in their active diffractive state are considered (for each nucleon
+c probability equals 1./C_n, C_n = 1./CC(2) - shower enhancenment coefficient)
+        IF(IA(1).NE.1.AND.PSRAN(B10).GT.CC(2))GOTO 12
+c Projectile nucleons positions are shifted according the to impact parameter B
+        X=XA(IN,1)+B
+        Y=XA(IN,2)
+
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+c Projectile diffraction
+c For each projectile nucleon (hadron) diffractive dissociation probability is
+c (1.D0-CC(ICZ))*PSV(X,Y,XB,NT);
+c XXV(X,Y,XB,NT) - nucleon-nucleus scattering eikonal factor
+c ( (1-eikonal)**2 ) for given nucleons positions
+c (For projectile hadron only in case of JPERI=0, otherwise it was considered
+c before at any impact parameter )
+        IF(JDIFR.EQ.1.
+     *  AND.PSRAN(B10).LT.(1.D0-CC(ICZ))*PSV(X,Y,XB,NT))THEN
+**************************************************
+          IF(IA(2).NE.1)THEN
+c ICT - partner target nucleon type (proton - 2 or neutron - 3)
+            ICT=INT(2.5+PSRAN(B10))
+          ELSE
+c Target proton
+            ICT=2
+          ENDIF
+          IF(IA(1).EQ.1)THEN
+c Projectile hadron 
+        IF(DEBUG.GE.2)WRITE (MONIOU,206)
+206     FORMAT(2X,'PROJECTILE HADRON DIFFRACTION')
+            ICP0=ICP
+          ELSE
+c Projectile nucleon 
+        IF(DEBUG.GE.2)WRITE(MONIOU,207)IN
+207     FORMAT(2X,I2,'-TH PROJECTILE NUCLEON DIFFRACTION')
+            ICP0=INT(2.5+PSRAN(B10))
+          ENDIF
+          WPI=WP0
+          WMI=WM0
+          IF(IA(2).EQ.1)THEN
+            LQ=0
+          ELSE
+            LQ=1
+          ENDIF
+          CALL XXDPR(WPI,WMI,ICP0,ICT,LQ)
+          GOTO 14
+        ENDIF
+**************************************************
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+        IQS=0
+        NW=NW+1
+c-------------------------------------------------
+c Cycle over all target nucleons in active state
+        DO 11 M=1,NT
+c Z - b-factor for pomeron eikonal calculation (exp(-R_ij/R_p))
+        Z=PSDR(X-XB(M,1),Y-XB(M,2))
+c VV - eikonal for nucleon-nucleon (hadron-nucleon) interaction
+c (sum of the soft and semihard eikonals)
+        VV=2.D0*PSFAZ(Z,FSOFT,FHARD,FSHARD)
+        EV=EXP(-VV)
+c EH - eikonal contribution of valence quarks hard interactions
+        EH=FHARD(1)+FHARD(2)+FHARD(3)
+c	eh=0.d0
+        AKS=PSRAN(B10)
+c 1.-EXP(-VV)*(1.D0-2.D0*EH) is the probability for inelastic nucleon-nucleon
+c (hadron-nucleon) interaction (for given nucleons positions)
+        IF(AKS.GT.1.D0-EV*(1.D0-2.D0*EH))GOTO 11
+        IF(DEBUG.GE.2)WRITE (MONIOU,208)M
+208     FORMAT(2X,'PSCONF: INTERACTION WITH',I2,'-TH TARGET NUCLEON')
+C  INCREMENT THE NUMBER IWT OF WOUNDED TARGET NUCLEONS
+        IWT(M) = 1
+
+c-------------------------------------------------
+c IQV - type of the hard interaction: 0 - gg, 1 - qg, 2 - gq, 3 - qq
+        IQV=0
+
+c 2*EH*EV = 2*EH*EXP(-VV) - probability for only valence quarks hard interactions
+c (with no one soft or semihard)
+        SUM=2.D0*EH*EV
+
+c-------------------------------------------------
+        IF(AKS.LT.SUM)THEN
+          AKS1=EH*PSRAN(B10)
+          IF(AKS1.LT.FHARD(1))THEN
+c Rejection in case of valence quark already involved into the interaction
+            IF(LVA(NW).NE.0)GOTO 11
+c LVA(NW)=1 - valence quark-gluon interaction
+            LVA(NW)=1
+            IQV=1
+          ELSEIF(AKS1.LT.FHARD(1)+FHARD(2))THEN
+c Rejection in case of valence quark already involved into the interaction
+            IF(LVB(M).NE.0)GOTO 11
+c LVB(M)=1 - gluon-valence quark interaction
+            LVB(M)=1
+            IQV=2
+          ELSE
+c Rejection in case of valence quarks already involved into the interaction
+            IF(LVA(NW)+LVB(M).NE.0)GOTO 11
+c LVA(NW)=LVB(M)=1 - valence quark-valence quark interaction
+            LVA(NW)=1
+            LVB(M)=1
+            IQV=3
+          ENDIF
+          N=1
+c LNH - number of new hard blocks (resulted from current nucleon-nucleon interaction)
+          LNH=1
+          GOTO 22
+        ENDIF
+c-------------------------------------------------
+
+c LNH - number of new hard blocks - initialization
+        LNH=0
+c WH - probability to have semihard interaction
+        WH=2.D0*FSHARD/VV
+c N - number of cut pomerons (both soft ones and having hard blocks) for the
+c nucleon-nucleon (hadron-nucleon) interaction - is determined according to Poisson
+c with average value VV (twice the eikonal)
+        DO 7 N=1,45
+        EV=EV*VV/N
+        SUM=SUM+EV
+7       IF(AKS.LT.SUM)GOTO 8
+
+c LNH - number of hard blocks for nucleon-nucleon (hadron-nucleon)
+c interaction (according to WH probability)
+8       DO 9 I=1,N
+9       LNH=LNH+INT(WH+PSRAN(B10))
+
+c-------------------------------------------------
+        AKS1=.5D0*PSRAN(B10)
+c EH is the probability to have valence quarks interactions in addition to the
+c soft and semihard
+        IF(AKS1.LT.EH)THEN
+          IF(AKS1.LT.FHARD(1))THEN
+            IF(LVA(NW).NE.0)GOTO 22
+c Valence quark-gluon interaction
+            LVA(NW)=1
+            IQV=1
+          ELSEIF(AKS1.LT.FHARD(1)+FHARD(2))THEN
+            IF(LVB(M).NE.0)GOTO 22
+c Gluon-valence quark interaction
+            LVB(M)=1
+            IQV=2
+          ELSE
+            IF(LVA(NW)+LVB(M).NE.0)GOTO 22
+c Valence quark-valence quark interaction
+            LVA(NW)=1
+            LVB(M)=1
+            IQV=3
+          ENDIF
+          N=N+1
+          LNH=LNH+1
+        ENDIF
+
+22      IQS=1
+        IF(LNH.NE.0)THEN
+c-------------------------------------------------
+c New hard blocks recording:
+c LNH - number of new hard blocks,
+c LHA(i) (LHB(j)) - total number of cut hard blocks, connected to i-th projectile
+c (j-th target) nucleon (hadron);
+c IAH(k) (IBH(k)) - number (position in array) of the projectile (target) nucleon,
+c connected to k-th hard block;
+c ZH(k) - factor exp(-R_ij/R_p) for k-th hard block;
+c IQH(k) - type of the hard interaction: 0 - gg, 1 - qg, 2 - gq, 3 - qq
+c-------------------------------------------------
+c N - number of cut soft pomerons
+          N=N-LNH
+          LHA(NW)=LHA(NW)+LNH
+          LHB(M)=LHB(M)+LNH
+          DO 10 I=1,LNH
+          I1=NHP+I
+          IF(I.EQ.1.AND.IQV.NE.0)THEN
+            IQH(I1)=IQV
+          ELSE
+            IQH(I1)=0
+          ENDIF
+        IF(DEBUG.GE.2)WRITE (MONIOU,209)I1,NW,M,IQH(I1)
+209     FORMAT(2X,'PSCONF: ',I3,'-TH HARD BLOCK IS CONNECTED TO',1X,
+     *  I2,'-TH PROJECTILE NUCLEON (HADRON) AND'/4X,I2,
+     *  '-TH TARGET NUCLEON; TYPE OF THE SEMIHARD INTERACTION:',I1)
+          ZH(I1)=Z
+          IAH(I1)=NW
+10        IBH(I1)=M
+c-------------------------------------------------
+c NHP - total number of hard blocks
+          NHP=NHP+LNH
+        ENDIF
+
+c-------------------------------------------------
+        IF(N.GT.0)THEN
+c One more block of soft pomerons; soft block characteristics recording
+          LS=LS+1
+          IAS(LS)=NW
+          IBS(LS)=M
+          LQA(NW)=LQA(NW)+N
+          LQB(M)=LQB(M)+N
+          NQS(LS)=N
+        IF(DEBUG.GE.2)WRITE (MONIOU,210)LS,NW,M,N
+210     FORMAT(2X,'PSCONF: ',I3,'-TH SOFT BLOCK IS CONNECTED TO',1X,
+     *  I2,'-TH PROJECTILE NUCLEON (HADRON) AND'/4X,I2,
+     *  '-TH TARGET NUCLEON; NUMBER OF POMERONS IN THE BLOCK NP=',
+     *  I2)
+        ENDIF
+11      CONTINUE
+c-------------------------------------------------
+
+        IF(IQS.NE.0)GOTO 14
+c No interaction for projectile nucleon considered
+        NW=NW-1
+12      CONTINUE
+
+c One more projectile spectator (noninteracting) nucleon (spectator positions
+c are recorded to simulate nuclear fragmentation)
+        NS=NS+1
+        IF(NS.NE.IN)THEN
+          DO 13 L=1,3
+13          XA(NS,L)=XA(IN,L)
+        ENDIF
+14      CONTINUE
+
+c In case of no one interacting (or D-diffracted) nucleon the event is
+c rejected, new impact parameter is generated and all the procedure is
+c repeated
+      IF(NS.EQ.IA(1))THEN
+        IF(DEBUG.GE.3)WRITE (MONIOU,211)
+211     FORMAT(2X,'PSCONF: NO ONE NUCLEON (HADRON) INTERACTS - ',
+     *  'REJECTION')
+         GOTO 5
+      ENDIF
+c-------------------------------------------------
+      NWT = 0
+C  number of interacting target nucleons
+      DO 102 IT = 1,NT
+        NWT = NWT + IWT(IT)
+ 102  CONTINUE
+
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+c Fragmentation of the spectator part of the nucleus
+      CALL XXFRAGM(NS,XA)
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+c Inelastic interaction - energy sharing procedure
+20      IF(NW.NE.0)CALL PSSHAR(LS,NHP,NW,NT)
+        IF(DEBUG.GE.3)WRITE (MONIOU,212)
+212     FORMAT(2X,'PSCONF - END')
+        RETURN
+        END
+C=======================================================================
+
+       SUBROUTINE PSCS(C,S)
+c C,S - COS and SIN generation for uniformly distributed angle 0<fi<2*pi
+c-----------------------------------------------------------------------
+       IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+       COMMON /AREA11/ B10
+       COMMON /AREA43/ MONIOU
+       COMMON /DEBUG/  DEBUG
+       SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)
+201     FORMAT(2X,'PSCS - COS(FI) AND SIN(FI) ARE GENERATED',
+     *  ' (0<FI<2*PI)')
+1      S1=2.D0*PSRAN(B10)-1.D0
+       S2=2.D0*PSRAN(B10)-1.D0
+       S3=S1*S1+S2*S2
+       IF(S3.GT.1.D0)GOTO 1
+       S3=DSQRT(S3)
+       C=S1/S3
+       S=S2/S3
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)C,S
+202     FORMAT(2X,'PSCS: C=',E10.3,2X,'S=',E10.3)
+       RETURN
+       END
+C=======================================================================
+
+        SUBROUTINE PSDEFTR(S,EP,EY)
+c Determination of the parameters for the Lorentz transform to the rest frame
+c system for 4-vector EP
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EY(3),EP(4)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)EP,S
+201     FORMAT(2X,'PSDEFTR - LORENTZ BOOST PARAMETERS:'/
+     *  4X,'4-VECTOR EP=',4E10.3/4X,'4-VECTOR SQUARED S=',E10.3)
+        DO 2 I=1,3
+        IF(EP(I+1).EQ.0.D0)THEN
+          EY(I)=1.D0
+        ELSE
+            WP=EP(1)+EP(I+1)
+          WM=EP(1)-EP(I+1)
+          IF(WM/WP.LT.1.D-8)THEN
+            WW=S
+            DO 1 L=1,3
+1            IF(L.NE.I)WW=WW+EP(L+1)**2
+            WM=WW/WP
+          ENDIF
+          EY(I)=DSQRT(WM/WP)
+          EP(1)=WP*EY(I)
+          EP(I+1)=0.D0
+        ENDIF
+2       CONTINUE
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)EY
+202     FORMAT(2X,'PSDEFTR: LORENTZ BOOST PARAMETERS EY(I)=',2X,3E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE PSDEFROT(EP,S0X,C0X,S0,C0)
+c Determination of the parameters the spacial rotation to the lab. system
+c for 4-vector EP
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EP(4)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)EP
+201     FORMAT(2X,'PSDEFROT - SPACIAL ROTATION PARAMETERS'/4X,
+     *  '4-VECTOR EP=',2X,4(E10.3,1X))
+c Transverse momentum square for the current parton (EP)
+        PT2=EP(3)**2+EP(4)**2
+        IF(PT2.NE.0.D0)THEN
+          PT=DSQRT(PT2)
+c System rotation to get Pt=0 - Euler angles are determined (C0X = cos theta,
+c S0X = sin theta, C0 = cos phi, S0 = sin phi)
+          C0X=EP(3)/PT
+          S0X=EP(4)/PT
+c Total momentum for the gluon
+          PL=DSQRT(PT2+EP(2)**2)
+          S0=PT/PL
+          C0=EP(2)/PL
+        ELSE
+          C0X=1.D0
+          S0X=0.D0
+          PL=ABS(EP(2))
+          S0=0.D0
+          C0=EP(2)/PL
+        ENDIF
+
+        EP(2)=PL
+        EP(3)=0.D0
+        EP(4)=0.D0
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)S0X,C0X,S0,C0,EP
+202     FORMAT(2X,'PSDEFROT: SPACIAL ROTATION PARAMETERS'/
+     *  4X,'S0X=',E10.3,2X,'C0X=',E10.3,2X,'S0=',E10.3,2X,'C0=',E10.3/
+     *  4X,'ROTATED 4-VECTOR EP=',4(E10.3,1X))
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSDR(X,Y)
+c PSDR - impact parameter factor for eikonals calculation (exp(-Rij/Rp)=Z)
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA7/  RP
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)X,Y
+201     FORMAT(2X,'PSDR: NUCLEON COORDINATES - X=',E10.3,2X,'Y=',E10.3)
+        PSDR=EXP(-(X*X+Y*Y)/RP)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSDR
+202     FORMAT(2X,'PSDR=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSFAP(X,J,L)
+C PSFAP - Altarelli-Parisi function (multiplied by X)
+c X - light cone momentum share value,
+c J - type of the parent parton (0-g,1-q)
+c L - type of the daughter parton (0-g,1-q)
+C-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)X,J,L
+201     FORMAT(2X,'PSFAP - ALTARELLI-PARISI FUNCTION:',2X,
+     *  'X=',E10.3,2X,'J=',I1,2X,'L=',I1)
+        IF(J.EQ.0)THEN
+          IF(L.EQ.0)THEN
+            PSFAP=((1.D0-X)/X+X/(1.D0-X)+X*(1.D0-X))*6.d0
+          ELSE
+            PSFAP=(X**2+(1.D0-X)**2)*3.d0
+          ENDIF
+        ELSE
+          IF(l.EQ.0)THEN
+            PSFAP=(1.D0+(1.D0-X)**2)/X/.75D0
+          ELSE
+            PSFAP=(X**2+1.D0)/(1.D0-X)/.75D0
+          ENDIF
+        ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSFAP
+202     FORMAT(2X,'PSFAP=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSFAZ(Z,FSOFT,FHARD,FSHARD)
+c Interaction eikonal for hadron-nucleon (nucleon-nucleon) scattering
+c Z - impact parameter factor, Z=exp(-b**2/Rp),
+c FSOFT - soft pomeron eikonal - to be determined,
+c FSHARD - semihard interaction eikonal (gg) - to be determined,
+c FHARD(k) - hard interaction eikonal (k=1 - qg, 2 - gq, 3 - qq) -
+c to be determined,
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION FHARD(3)
+        COMMON /AREA17/ DEL,RS,RS0,FS,ALF,RR,SH,DELH
+        COMMON /AREA22/ SJV,FJS(5,3)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)Z
+201     FORMAT(2X,'PSFAZ - HADRON-NUCLEON (NUCLEON-NUCLEON)',
+     *  ' INTERACTION EIKONAL; Z=',E10.3)
+        FSOFT=FS*Z
+        FHARD(3)=SJV*Z**(RS/RS0)
+
+        JZ=INT(5.D0*Z)
+        IF(JZ.GT.3)JZ=3
+        WZ=5.D0*Z-JZ
+
+        DO 1 I=1,3
+        IF(JZ.EQ.0)THEN
+          FSR=(EXP(FJS(1,I))*WZ+(EXP(FJS(2,I))-2.D0*
+     *    EXP(FJS(1,I)))*WZ*(WZ-1.D0)*.5D0)*Z
+        ELSE
+          FSR=EXP(FJS(JZ,I)+(FJS(JZ+1,I)-FJS(JZ,I))*WZ
+     *    +(FJS(JZ+2,I)+FJS(JZ,I)-2.D0*FJS(JZ+1,I))
+     *    *WZ*(WZ-1.D0)*.5D0)*Z
+        ENDIF
+        IF(I.NE.1)THEN
+          FHARD(I-1)=FSR
+        ELSE
+          FSHARD=FSR
+        ENDIF
+1       CONTINUE
+
+        PSFAZ=FSOFT+FSHARD
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSFAZ,FSOFT,FSHARD,FHARD
+202     FORMAT(2X,'PSFAZ=',E10.3,2X,'FSOFT=',E10.3,2X,'FSHARD=',E10.3/4x,
+     *  'FHARD=',3E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSFBORN(S,T,IQ1,IQ2)
+c PSFBORN - integrand for the Born cross-section (matrix element squared)
+c S - total c.m. energy squared for the scattering,
+c T - invariant variable for the scattering abs[(p1-p3)**2],
+c IQ1 - parton type at current end of the ladder (0 - g, 1,2 - q)
+c IQ2 - parton type at opposite end of the ladder (0 - g, 1,2 - q)
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)S,T,IQ1,IQ2
+201     FORMAT(2X,'PSFBORN - HARD SCATTERING MATRIX ELEMENT SQUARED:'/
+     *  4X,'S=',E10.3,2X,'|T|=',E10.3,2X,'IQ1=',I2,2X,'IQ2=',I2)
+        U=S-T
+        IF(IQ1.EQ.0.AND.IQ2.EQ.0)THEN
+c Gluon-gluon
+          PSFBORN=(3.D0-T*U/S**2+S*U/T**2+S*T/U**2)*4.5D0
+        ELSEIF(IQ1*IQ2.EQ.0)THEN
+c Gluon-quark
+          PSFBORN=(S**2+U**2)/T**2+(S/U+U/S)/2.25D0
+        ELSEIF(IQ1.EQ.IQ2)THEN
+c Quark-quark (of the same flavor)
+          PSFBORN=((S**2+U**2)/T**2+(S**2+T**2)/U**2)/2.25D0
+     *	  -S**2/T/U/3.375D0
+        ELSEIF(IQ1+IQ2.EQ.0)THEN
+c Quark-antiquark (of the same flavor)
+          PSFBORN=((S**2+U**2)/T**2+(U**2+T**2)/S**2)/2.25D0
+     *	  -U**2/T/S/3.375D0
+        ELSE
+c Quark-quark (different flavors)
+          PSFBORN=(S**2+U**2)/T**2/2.25D0
+        ENDIF
+        IF(DEBUG.GE.2)WRITE (MONIOU,202)PSFBORN
+202     FORMAT(2X,'PSFBORN=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSFSH(S,Z,ICZ,IQQ)
+c PSFSH - semihard interaction eikonal
+c S - energy squared for the interaction (hadron-hadron),
+c ICZ - type of the primaty hadron (nucleon)
+c Z - impact parameter factor, Z=exp(-b**2/Rp),
+c IQQ - type of the hard interaction (0 - gg, 1 - qg, 2 - gq)
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA6/  PI,BM,AM
+        COMMON /AREA15/ FP(5),RQ(5),CD(5)
+        COMMON /AREA17/ DEL,RS,RS0,FS,ALF,RR,SH,DELH
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA19/ AHL(5)
+        COMMON /AREA25/ AHV(5)
+        COMMON /AREA27/ FP0(5)
+        COMMON /AR3/    X1(7),A1(7)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)S,Z,IQQ,ICZ
+201     FORMAT(2X,'PSFSH - SEMIHARD INTERACTION EIKONAL:'/
+     *  4X,'S=',E10.3,2X,'Z=',E10.3,2X,'IQQ=',I1,2X,'ICZ=',I1)
+        XMIN=4.D0*QT0/S
+        XMIN=XMIN**(DELH-DEL)
+        PSFSH=0.D0
+        IF(IQQ.EQ.1)THEN
+          ICV=ICZ
+          ICQ=2
+        ELSEIF(IQQ.EQ.2)THEN
+          ICV=2
+          ICQ=ICZ
+        ENDIF
+        IQ=(IQQ+1)/2
+
+c Numerical integration over Z1
+        DO 3 I=1,7
+        DO 3 M=1,2
+        Z1=(.5D0*(1.D0+XMIN-(2*M-3)*X1(I)*(1.D0-XMIN)))**(1.D0/
+     *  (DELH-DEL))
+c SJ is the DLA inclusive hard partonic (gluon-gluon) interaction
+c cross-section (inclusive cut ladder cross section) for minimal
+c 4-momentum transfer squre QT0 and c.m. energy square s_hard = exp YJ;
+c SJB - Born cross-section
+        CALL PSJINT0(Z1*S,SJ,SJB,IQ,0)
+c GY= Sigma_hard_tot(YJ,QT0) - total hard partonic (gluon-gluon)
+c interaction cross-section for minimal 4-momentum transfer square QT0 and
+c c.m. energy square s_hard = exp YJ; SH=pi*R_hard**2 (R_hard**2=4/QT0)
+        GY=2.D0*SH*PSGINT((SJ-SJB)/SH*.5D0)+SJB
+        IF(DEBUG.GE.3)WRITE (MONIOU,203)Z1*S,GY
+203     FORMAT(2X,'PSFSH:',2X,'S_HARD=',E10.3,2X,'SIGMA_HARD=',E10.3)
+
+        IF(IQQ.EQ.0)THEN
+          ST2=0.D0
+          DO 1 J=1,7
+          DO 1 K=1,2
+          XX=.5D0*(1.D0+X1(J)*(2*K-3))
+1         ST2=ST2+A1(J)*PSFTILD(Z1**XX,ICZ)*
+     *    PSFTILD(Z1**(1.D0-XX),2)
+
+          RH=RS0-ALF*DLOG(Z1)
+          PSFSH=PSFSH-A1(I)*DLOG(Z1)*GY/Z1**DELH*Z**(RS/RH)/RH*ST2
+        ELSE
+
+          ST2=0.D0
+          DO 2 J=1,7
+          DO 2 K=1,2
+          XX=.5D0*(1.D0+X1(J)*(2*K-3))
+          XAM=Z1**(DEL+.5D0)
+          XA=(XAM+(1.D0-XAM)*XX)**(1.D0/(DEL+.5D0))
+          RH=RS0+ALF*DLOG(XA/Z1)
+2         ST2=ST2+A1(J)*(1.D0-XA)**AHV(ICV)*Z**(RS/RH)/RH*
+     *    PSFTILD(Z1/XA,ICQ)
+          ST2=ST2*(1.D0-XAM)
+
+          PSFSH=PSFSH+A1(I)*GY/Z1**DELH*ST2
+        ENDIF
+3       CONTINUE
+
+        IF(IQQ.EQ.0)THEN
+          PSFSH=PSFSH*.125D0*RR*(1.D0-XMIN)/(DELH-DEL)*FP0(ICZ)*FP0(2)
+     *    *CD(ICZ)
+        ELSE
+          PSFSH=PSFSH*DSQRT(RR)/16.D0*FP0(ICQ)*(1.D0-XMIN)/(DELH-DEL)/
+     *    (DEL+.5D0)*GAMFUN(AHV(ICV)+1.5D0)
+     *    /GAMFUN(AHV(ICV)+1.D0)/PI*CD(ICZ)
+          IF(ICZ.EQ.2.OR.IQQ.EQ.2)THEN
+            PSFSH=PSFSH*3.D0
+          ELSEIF((ICZ-1)*(ICZ-3)*(ICZ-5).EQ.0)THEN
+            PSFSH=PSFSH*2.D0
+          ENDIF
+        ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSFSH
+202     FORMAT(2X,'PSFSH=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSFTILD(Z,ICZ)
+c PSFTILD - auxilliary function for semihard eikonals calculation -
+c integration over semihard block light cone momentum share x
+c Z - x-cutoff from below,
+c ICZ - type of the hadron to which the semihard block is connected
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA17/ DEL,RS,RS0,FS,ALFP,RR,SH,DELH
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA19/ AHL(5)
+        COMMON /AR3/  X1(7),A1(7)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)Z,ICZ
+201     FORMAT(2X,'PSFTILD:',2X,'Z=',E10.3,2X,'ICZ=',I1)
+        PSFTILD=0.
+        DO 1 I=1,7
+        DO 1 M=1,2
+        XB=1.D0-(1.D0-Z)*(.5D0*(1.D0+(2*M-3)*X1(I)))**(1.D0/
+     *  (AHL(ICZ)+1.D0))
+1       PSFTILD=PSFTILD+A1(I)*XB**DEL*(1.D0-Z/XB)**BET
+        PSFTILD=PSFTILD*.5D0*(1.D0-Z)**(AHL(ICZ)+1.D0)/(AHL(ICZ)+1.D0)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSFTILD
+202     FORMAT(2X,'PSFTILD=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+      SUBROUTINE PSGEA(IA,XA,JJ)
+c PSGEA - nuclear configuration simulation (nucleons positions)
+c IA - number of nucleons to be considered
+c-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INTEGER DEBUG
+      DIMENSION XA(56,3)
+      COMMON /AREA5/  RD(2),CA1(2),CA2(2),CA3(2)
+      COMMON /AREA11/ B10
+      COMMON /AREA43/ MONIOU
+      COMMON /DEBUG/  DEBUG
+      SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)JJ,IA
+201     FORMAT(2X,'PSGEA - CONFIGURATION OF THE NUCLEUS ',I1,';',2X,
+     *  'COORDINATES FOR ',I2,' NUCLEONS')
+        IF(JJ.EQ.2.OR.IA.GE.10)THEN
+
+          DO 7 I=1,IA
+1         ZUK=PSRAN(B10)*CA1(JJ)-1.D0
+          IF(ZUK)2,2,3
+2         TT=RD(JJ)*(PSRAN(B10)**.3333D0-1.D0)
+          GOTO 6
+3         IF(ZUK.GT.CA2(JJ))GOTO 4
+          TT=-DLOG(PSRAN(B10))
+          GOTO 6
+4         IF(ZUK.GT.CA3(JJ))GOTO 5
+          TT=-DLOG(PSRAN(B10))-DLOG(PSRAN(B10))
+          GOTO 6
+5         TT=-DLOG(PSRAN(B10))-DLOG(PSRAN(B10))-DLOG(PSRAN(B10))
+6         IF(PSRAN(B10).GT.1.D0/(1.D0+EXP(-ABS(TT))))GOTO 1
+          RIM=TT+RD(JJ)
+          Z=RIM*(2.D0*PSRAN(B10)-1.D0)
+          RIM=DSQRT(RIM*RIM-Z*Z)
+          XA(I,3)=Z
+          CALL PSCS(C,S)
+          XA(I,1)=RIM*C
+7         XA(I,2)=RIM*S
+        ELSE
+
+          DO 9 L=1,3
+          SUMM=0.D0
+          DO 8 I=1,IA-1
+          J=IA-I
+          AKS=RD(JJ)*(PSRAN(B10)+PSRAN(B10)+PSRAN(B10)-1.5D0)
+          K=J+1
+          XA(K,L)=SUMM-AKS*SQRT(FLOAT(J)/K)
+8         SUMM=SUMM+AKS/SQRT(FLOAT(J*K))
+9         XA(1,L)=SUMM
+        ENDIF
+        IF(DEBUG.GE.3)THEN
+          WRITE (MONIOU,203)
+          DO 206 I=1,IA
+206       WRITE (MONIOU,204)I,(XA(I,L),L=1,3)
+          WRITE (MONIOU,202)
+        ENDIF
+202     FORMAT(2X,'PSGEA - END')
+203     FORMAT(2X,'PSGEA:  POSITIONS OF THE NUCLEONS')
+204     FORMAT(2X,'PSGEA: ',I2,' - ',3(E10.3,1X))
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSGINT(Z)
+c Auxiliary function for eikonal cross-sections calculation
+c GINT = int(dt) [0<t<Z] (1-exp(-t))/t
+c-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INTEGER DEBUG
+      COMMON /AR3/  X1(7),A1(7)
+      COMMON /AREA43/ MONIOU
+      COMMON /DEBUG/  DEBUG
+        F(Z,X)=(1.-EXP(-.5*Z*(1.+X)))/(1.+X)
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)Z
+201     FORMAT(2X,'PSGINT:',2X,'Z=',E10.3)
+        PSGINT=0.
+        DO 5 I=1,7
+5       PSGINT=PSGINT+A1(I)*(F(Z,X1(I))+F(Z,-X1(I)))
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSGINT
+202     FORMAT(2X,'PSGINT=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSHARD(S,ICZ)
+c PSHARD - hard quark-quark interaction cross-section
+c S - energy squared for the interaction (hadron-hadron),
+c ICZ - type of the primaty hadron (nucleon)
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AR3/    X1(7),A1(7)
+        COMMON /AREA6/  PI,BM,AM
+        COMMON /AREA15/ FP(5),RQ(5),CD(5)
+        COMMON /AREA17/ DEL,RS,RS0,FS,ALF,RR,SH,DELH
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA19/ AHL(5)
+        COMMON /AREA25/ AHV(5)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)S,ICZ
+201     FORMAT(2X,'PSHARD - HARD QUARK-QUARK INTERACTION CROSS',
+     *  ' SECTION:',
+     *  2X,'S=',E10.3,2X,'ICZ=',I1)
+        XMIN=4.D0*QT0/S
+        XMIN=XMIN**(DELH+.5D0)
+        PSHARD=0.D0
+
+c Numerical integration over Z1
+        DO 2 I=1,7
+        DO 2 M=1,2
+        Z1=(.5D0*(1.D0+XMIN-(2*M-3)*X1(I)*(1.D0-XMIN)))**(1.D0/
+     *  (DELH+.5D0))
+
+        ST2=0.D0
+        DO 1 J=1,7
+        DO 1 K=1,2
+        XX=.5D0*(1.D0+X1(J)*(2*K-3))
+        ST2=ST2+A1(J)*(1.D0-Z1**XX)**AHV(ICZ)*
+     *  (1.D0-Z1**(1.D0-XX))**AHV(2)
+1       CONTINUE
+
+c SJ is the DLA inclusive hard partonic (gluon-gluon) interaction
+c cross-section (inclusive cut ladder cross section) for minimal
+c 4-momentum transfer squre QT0 and c.m. energy square s_hard = exp YJ;
+c SJB - Born cross-section
+        CALL PSJINT0(Z1*S,SJ,SJB,1,1)
+c GY= Sigma_hard_tot(YJ,QT0) - total hard partonic (quark-quark)
+c interaction cross-section for minimal 4-momentum transfer square QT0 and
+c c.m. energy square s_hard = exp YJ; SH=pi*R_hard**2 (R_hard**2=4/QT0)
+        GY=2.D0*SH*PSGINT((SJ-SJB)/SH*.5D0)+SJB
+
+        IF(DEBUG.GE.3)WRITE (MONIOU,203)Z1*S,GY
+203     FORMAT(2X,'PSHARD:',2X,'S_HARD=',E10.3,2X,'SIGMA_HARD=',E10.3)
+        PSHARD=PSHARD-A1(I)*DLOG(Z1)*GY/Z1**DELH*ST2
+2       CONTINUE
+
+        PSHARD=PSHARD*(1.D0-XMIN)/(.5D0+DELH)*.25D0
+        PSHARD=PSHARD/(GAMFUN(AHV(ICZ)+1.D0)*GAMFUN(AHV(2)+1.D0)*PI)*
+     *  GAMFUN(AHV(ICZ)+1.5D0)*GAMFUN(AHV(2)+1.5D0)
+
+        IF(ICZ.EQ.2)THEN
+          PSHARD=PSHARD*9.D0
+        ELSEIF((ICZ-1)*(ICZ-3)*(ICZ-5).EQ.0)THEN
+          PSHARD=PSHARD*6.D0
+        ELSE
+          PSHARD=PSHARD*3.D0
+        ENDIF
+
+c Hard cross-section is divided by Regge radius RS0 and multiplied by
+c shower enhancement coefficient CD(ICZ) - to be used for the eikonal
+c calculation
+        PSHARD=PSHARD/(8.D0*PI*RS0)*CD(ICZ)
+        IF(DEBUG.GE.2)WRITE (MONIOU,202)PSHARD
+202     FORMAT(2X,'PSHARD=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE PSHOT(WP0,WM0,Z,IPC,EPC,IZP,IZT,ICZ,IQQ)
+c Semihard jets production simulation (resulted from parton-parton
+c interaction);
+c WP0,WM0 - light cone momenta shares (E+-P_l) for the initial partons
+c IZP, IZT - types for target and projectile nucleons (hadron)
+c WPQ - light cone momenta for the soft preevolution - to be determined below
+c IQQ - type of the hard interaction: 0 - gg, 1 - qg, 2 - gq, 3 - qq
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        CHARACTER*2 TYQ
+        DIMENSION EP(4,2),EPT(4),EPT0(4),EP3(4),EPJ(4),EPJ1(4),EY(3),
+     *  QMIN(2),WP(2),IQC(2),IQP(2),
+     *  IPC(2,2),EPC(8,2),IQJ(2),EQJ(4,2),IPQ(2,2),EPQ(8,2),
+     *  ebal(4),
+     *  QV1(30,50),ZV1(30,50),QM1(30,50),IQV1(2,30,50),
+     *  LDAU1(30,49),LPAR1(30,50),
+     *  QV2(30,50),ZV2(30,50),QM2(30,50),IQV2(2,30,50),
+     *  LDAU2(30,49),LPAR2(30,50)
+        COMMON /AREA6/  PI,BM,AMMM
+        COMMON /AREA8/  WWM,BE(4),DC(5),DETA,ALMPT
+        COMMON /AREA10/ STMASS,AM(7)
+        COMMON /AREA11/ B10
+        COMMON /AREA17/ DEL,RS,RS0,FS,ALF,RR,SH,DELH
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA42/ TYQ(15)
+        COMMON /AREA43/ MONIOU
+        COMMON /AREA46/ EPJET(4,2,1000),IPJET(2,1000)
+        COMMON /AREA47/ NJTOT
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.1)WRITE (MONIOU,201)IQQ,WP0,WM0
+201     FORMAT(2X,'PSHOT - SEMIHARD INTERACTION SIMULATION:'/
+     *  4X,'TYPE OF THE INTERACTION:',I2/
+     *  4X,'INITIAL LIGHT CONE MOMENTA:',2E10.3)
+c S - total energy squared for the semihard interaction (including preevolution)
+        NJTOT0=NJTOT
+        IZP0=IZP
+        IZT0=IZT
+        
+301     S=WP0*WM0
+        NJTOT=NJTOT0
+        IZP=IZP0
+        IZT=IZT0
+
+        IF(IQQ.EQ.3)THEN
+c WPI,WMI - light cone momenta for the hard interaction
+          WPI=WP0
+          WMI=WM0
+c PSJINT0(S,SJ,SJB,1,1) - cross-sections interpolation:
+c SJ - inclusive hard quark-quark interaction
+c cross-section (inclusive cut ladder cross section) for minimal
+c 4-momentum transfer square QT0 and c.m. energy square s_hard = S;
+c SJB - Born cross-section
+          CALL PSJINT0(S,SJ,SJB,1,1)
+c GY= Sigma_hard_tot(YJ,QT0) - total hard quark-quark
+c interaction cross-section for minimal 4-momentum transfer square QT0 and
+c c.m. energy square s_hard = S
+          GY=2.D0*SH*PSGINT((SJ-SJB)/SH*.5D0)+SJB
+
+        ELSE
+c-------------------------------------------------
+c Rejection function normalization
+c-------------------------------------------------
+c XMIN corresponds to minimal energy squared for the hard interaction - 4.D0*(QT0+AMJ0)
+c AMJ0 - jet mass squared (could be put equal zero)
+          XMIN=4.D0*(QT0+AMJ0)/S
+          XMIN1=XMIN**(DELH-DEL)
+c S - maximal available energy for the rejection function normalization
+c Auxilliary type of parton (1 - gluon, 2 - (anti-)quark)
+          IQ=(IQQ+1)/2
+c Rejection function initialization (corresponding to maximal preevolution - minimal x):
+c Ysoft = - ln x, (1-x)**bet is due to gluon structure function in the soft pomeron
+          IF(IQQ.EQ.0)THEN
+             GB0=-DLOG(XMIN)*(1.D0-DSQRT(XMIN))**(2.D0*BET)
+          ELSE
+             GB0=(1.D0-XMIN)**BET
+          ENDIF
+
+c SJ0 is the inclusive hard (parton IQ - gluon) interaction
+c cross-section (inclusive cut ladder cross section) for minimal
+c 4-momentum transfer square QT0 and c.m. energy square s_hard = SI;
+c SJB0 - Born cross-section
+          CALL PSJINT0(S,SJ,SJB,IQ,0)
+c GY= Sigma_hard_tot(YJ,QT0) - total hard  (parton IQ - gluon)
+c interaction cross-section for minimal 4-momentum transfer square QT0 and
+c c.m. energy square s_hard = SI
+          GY0=2.D0*SH*PSGINT((SJ-SJB)/SH*.5D0)+SJB
+          GB0=GB0*GY0/S**DELH/RS0*Z
+c-------------------------------------------------
+c End of rejection function normalization
+c-------------------------------------------------
+
+c-------------------------------------------------
+c The sharing of the light cone momenta between soft preevolution and
+c hard interaction:
+c ( first energy-momentum is shared according to
+c f_hard(YJ)~ZPM**(DELH-DEL-1) and then rejected as
+c W_rej ~Sigma_hard_tot(YJ) / exp(DELH*YJ)
+c ZPM = s_hard / S
+c YJ = ln s_hard - rapidity range for the hard parton-parton interaction;
+c-------------------------------------------------
+1         ZPM=(XMIN1+PSRAN(B10)*(1.D0-XMIN1))**(1.D0/(DELH-DEL))
+c SJ is the DLA inclusive hard partonic (gluon-gluon) interaction
+c cross-section (inclusive cut ladder cross section) for minimal
+c 4-momentum transfer square QT0 and c.m. energy square s_hard = exp YJ;
+c SJB - Born cross-section
+          CALL PSJINT0(ZPM*S,SJ,SJB,IQ,0)
+          YJ=DLOG(ZPM*S)
+c RH - interaction radius due to soft preevolution
+          RH=RS0-ALF*DLOG(ZPM)
+
+          IF(IQQ.EQ.0)THEN
+c XP, XM - light cone momunta shares for the hard interaction
+            XP=ZPM**PSRAN(B10)
+            XM=ZPM/XP
+c Ysoft = - ln ZPM - part of rejection function,
+c (1-XP)**bet*(1-XM)**bet is due to gluon structure function in the soft pomeron
+            GBYJ=-DLOG(ZPM)*((1.-XP)*(1.-XM))**BET
+c WPI,WMI - light cone momenta for the hard interaction
+            WPI=WP0*XP
+            WMI=WM0*XM
+          ELSE
+            IF(IQQ.EQ.1)THEN
+              WPI=WP0
+              WMI=WM0*ZPM
+            ELSE
+              WPI=WP0*ZPM
+              WMI=WM0
+            ENDIF
+            GBYJ=(1.D0-ZPM)**BET
+          ENDIF
+
+c GY= Sigma_hard_tot(YJ,QT0) - total hard partonic
+c interaction cross-section for minimal 4-momentum transfer square QT0 and
+c c.m. energy square s_hard = exp YJ
+          GY=2.D0*SH*PSGINT((SJ-SJB)/SH*.5D0)+SJB
+
+c-------------------------------------------------
+c GBYJ - rejection function for the YJ (ZPM) simulation:
+c GBYJ ~  Sigma_hard_tot(YJ,QT0) / exp(DELH*YJ) * exp(-b**2/RH) / RH,
+          GBYJ=GBYJ*GY*EXP(-DELH*YJ)/GB0*Z**(RS/RH)/RH
+          IF(PSRAN(B10).GT.GBYJ)GOTO 1
+        ENDIF
+c-------------------------------------------------
+        S=WPI*WMI
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,203)S
+203     FORMAT(2X,'PSHOT: MASS SQUARED FOR THE HARD PARTON-PARTON',
+     *  ' INTERACTION:',E10.3)
+
+c In case of valence quark hard interaction the type of quark is determined by the
+c procedure PSVDEF - flavor combinatorics (not good here); IQC(1) - flavor
+c for the upper quark (0 in case of gluon),
+c IQC(2) - the same for the lower one
+        DO 302 I=1,8
+        DO 302 M=1,2
+302     EPC(I,M)=0.D0
+
+        IF((IQQ-1)*(IQQ-3).EQ.0)THEN
+          CALL PSVDEF(IZP,IC1,ICZ)
+          IQC(1)=IC1
+          IPC(1,1)=0
+          IPC(2,1)=0
+        ELSE
+          IQC(1)=0
+          IPC(1,1)=-INT(2.D0*PSRAN(B10)+1.D0)
+          IPC(2,1)=-IPC(1,1)
+          WP1=WP0-WPI
+          WP2=WP1*PSRAN(B10)
+          WP1=WP1-WP2
+          EPC(1,1)=.5D0*WP1
+          EPC(2,1)=EPC(1,1)
+          EPC(5,1)=.5D0*WP2
+          EPC(6,1)=EPC(5,1)
+       	ENDIF
+       	
+        IF((IQQ-2)*(IQQ-3).EQ.0)THEN
+          CALL PSVDEF(IZT,IC1,2)
+          IQC(2)=IC1
+          IPC(1,2)=0
+          IPC(2,2)=0
+        ELSE
+          IQC(2)=0
+          IPC(1,2)=-INT(2.D0*PSRAN(B10)+1.D0)
+          IPC(2,2)=-IPC(1,2)
+          WM1=WM0-WMI
+          WM2=WM1*PSRAN(B10)
+          WM1=WM1-WM2
+          EPC(1,2)=.5D0*WM1
+          EPC(2,2)=-EPC(1,2)
+          EPC(5,2)=.5D0*WM2
+          EPC(6,2)=-EPC(5,2)
+        ENDIF
+
+        EPT(1)=.5D0*(WPI+WMI)
+        EPT(2)=.5D0*(WPI-WMI)
+        EPT(3)=0.D0
+        EPT(4)=0.D0
+c Minimal 4-momentum transfer squares above and below current ladder run
+        QMIN(1)=QT0
+        QMIN(2)=QT0
+        DO 303 L=1,2
+        DO 303 M=1,2
+      	IPQ(L,M)=IPC(L,M)
+        DO 303 I=1,4
+303     EPQ(I+4*(L-1),M)=EPC(I+4*(L-1),M)
+c Minimal 4-momentum transfer square for gluon-gluon (virtual) interaction
+          QMINN=MAX(QMIN(1),QMIN(2))
+          SI=PSNORM(EPT)
+	  
+5         CONTINUE
+c 4-momentum squared (c.m. energy square for gluon-gluon (virtual)
+c interaction)
+        IF(DEBUG.GE.2)WRITE (MONIOU,208)ILAD, SI,IQC,EPT
+208     FORMAT(2X,'PSHOT: ',I2,'-TH HARD LADDER;',
+     *  ' MASS SQUARED FOR THE LADDDER:',E10.3/
+     *  4X,'LADDER END FLAVORS:',2I3/4X,
+     *  'LADDER 4-MOMENTUM: ',4E10.3)
+
+        ebal(1)=.5*(wp0+wm0)-ept(1)
+        ebal(2)=.5*(wp0-wm0)-ept(2)
+        ebal(3)=0.d0-ept(3)
+        ebal(4)=0.d0-ept(4)
+        do 503 l=1,4
+        do 501 m=1,2
+        ebal(l)=ebal(l)-epq(l,m)
+501     if(iqc(m).eq.0)   ebal(l)=ebal(l)-epq(l+4,m)
+        if(njtot.ne.0)then
+           do 502 i=1,njtot
+           do 502 m=1,2
+502        ebal(l)=ebal(l)-epjet(l,m,i)
+        endif
+503        continue
+c            write (*,*)'ebal',ebal,si,njtot
+            
+          PT2=EPT(3)**2+EPT(4)**2
+          PT=DSQRT(PT2)
+          WW=SI+PT2
+          SWW=DSQRT(WW)
+          
+          IQP(1)=MIN(1,IABS(IQC(1)))
+          IQP(2)=MIN(1,IABS(IQC(2)))
+
+c Longitudinal momenta for the interaction
+          WP(1)=EPT(1)+EPT(2)
+          WP(2)=EPT(1)-EPT(2)
+
+          S2MIN=MAX(QMINN,4.D0*(QT0+AMJ0))
+c WWMIN is the minimal energy square needed for triple s-channel gluons
+c production with transverse momentum squares q_t**2 above QMIN(JJ),QMINN
+          WWMIN=(S2MIN+(PT-DSQRT(QT0))**2+(QT0+AMJ0)*(DSQRT(S2MIN/QT0)-
+     *	  1.D0))/(1.D0-DSQRT(QT0/S2MIN))
+c SJB/SJ is the probability for the last pair of gluons production
+c (SJB is the Born cross-section and SJ is the inclusive interaction
+c (cut ladder) cross-section)
+          SJ=PSJINT(QMIN(1),QMIN(2),SI,IQP(1)+1,IQP(2)+1)
+          SJB=PSBINT(QMINN,SI,IQP(1)+1,IQP(2)+1)
+          
+        IF(DEBUG.GE.2)WRITE (MONIOU,251)S2MIN,WWMIN,SJ,SJB
+251     FORMAT(2X,'PSHOT: KINEMATICAL BOUNDS S2MIN=',E10.3,
+     *   2X,'WWMIN=',E10.3/4X,'JET CROSS SETION SJ=',E10.3,
+     *   2X,'BORN CROSS SECTION SJB=',E10.3)
+     
+          IF(PSRAN(B10).LT.SJB/SJ.
+     *	  OR.WW.LT.1.2D0*WWMIN)GOTO 12
+
+          IF((SJ-SJB)/SJ.GT..1D0)THEN
+            SJ1=PSJINT1(QMIN(1),QMIN(2),SI,IQP(1)+1,IQP(2)+1)
+            SJ2=PSJINT1(QMIN(2),QMIN(1),SI,IQP(2)+1,IQP(1)+1)
+            DSJ=(SJ2-SJ1)/(SJ-SJB)*.5D0
+          ELSE
+            DSJ=0.D0
+          ENDIF
+c Current s-channel gluon is simulated either above the run (JJ=1) or
+c below it (JJ=2)
+          JJ=INT(1.5D0+DSJ+PSRAN(B10))
+
+          AQ=-(SI+AMJ0+2.D0*PT*DSQRT(QT0))/WW
+          BQ=(QT0+AMJ0)/WW
+          CQ=QT0/WW
+          PQ=-AQ**2/3.D0+BQ
+          QQ=AQ**3/13.5D0-AQ*BQ/3.D0+CQ
+          PQ=DSQRT(-PQ/3.D0)
+          COSQ=-.5D0*QQ/PQ**3
+          FQ=ATAN(1.D0/COSQ**2-1.D0)
+          IF(COSQ.LT.0.D0)FQ=PI-FQ
+          FQ=FQ/3.D0
+
+c XMIN is the minimal longitudinal momentum transfer share in current
+c ladder run (corresponding to minimal 4-momentum transfer square QMIN(JJ))
+          XMIN=1.D0+AQ/3.D0-2.D0*PQ*COS(FQ)
+          XMAX=1.D0+AQ/3.D0-PQ*(DSQRT(3.D0)*SIN(FQ)-COS(FQ))
+c QQMAX is the maximal 4-momentum transfer square in the current run
+c (corresponding to X=XMIN and 4-momentum transfer at next simulation
+c step to be equal QMAX)
+          QQMAX=QT0/(1.D0-XMAX)**2
+          QQMIN=QT0/(1.D0-XMIN)**2
+
+          IF(QQMIN.LT.S2MIN)THEN
+            XMM=(SI-S2MIN+AMJ0+2.D0*PT*DSQRT(QT0))/WW*.5D0
+            XMIN=1.D0-XMM-DSQRT(XMM*XMM-(QT0+AMJ0)/WW)
+            QQMIN=QT0/(1.D0-XMIN)**2
+
+            IF(QQMIN.LT.QMIN(JJ))THEN
+              QQMIN=QMIN(JJ)
+              XMM1=WW-2.D0*PT*DSQRT(QQMIN)+QQMIN
+              XMM=(SI-S2MIN+AMJ0)/XMM1*.5D0
+              XMIN=1.D0-XMM-DSQRT(XMM*XMM-AMJ0/XMM1)
+            ENDIF
+          ENDIF
+
+*********************************************************
+          XM0=MAX(.5D0,1.D0-DSQRT(QT0/QMIN(JJ)))
+          IF(XM0.GT..95D0*XMAX.OR.XM0.LT.1.05D0*XMIN)
+     *    XM0=.5D0*(XMAX+XMIN)
+          QM0=QT0/(1.D0-XM0)**2
+          S2MAX=XM0*WW
+
+          SJ0=PSJINT(QM0,QMIN(3-JJ),S2MAX,1,IQP(3-JJ)+1)*
+     *    PSFAP(XM0,IQP(JJ),0)+
+     *    PSJINT(QM0,QMIN(3-JJ),S2MAX,2,IQP(3-JJ)+1)
+     *    *PSFAP(XM0,IQP(JJ),1)
+
+          GB0=SJ0*QM0/QLOG*PSUDS(QM0,IQP(JJ))*1.5D0
+          IF(XM0.LE..5D0)THEN
+            GB0=GB0*XM0**(1.D0-DELH)
+          ELSE
+            GB0=GB0*(1.D0-XM0)*2.D0**DELH
+          ENDIF
+c XMIN, XMAX are put into power DELH to simulate X value below
+          XMIN2=MAX(.5D0,XMIN)
+          XMIN1=XMIN**DELH
+          XMAX1=MIN(XMAX,.5D0)**DELH
+          IF(XMIN.GE..5D0)THEN
+            DJL=1.D0 
+          ELSEIF(XMAX.LT..5D0)THEN
+            DJL=0.D0 
+          ELSE
+            DJL=1.D0/(1.D0+((2.D0*XMIN)**DELH-1.D0)/DELH/
+     *      DLOG(2.D0*(1.D0-XMAX)))
+          ENDIF
+
+7         CONTINUE
+c Simulation of the longitudinal momentum transfer share in current
+c ladder run - from XMIN to XMAX according to dX * X**(DELH-1)
+          IF(PSRAN(B10).GT.DJL)THEN
+            X=(XMIN1+PSRAN(B10)*(XMAX1-XMIN1))**(1.D0/DELH)
+          ELSE
+            X=1.D0-(1.D0-XMIN2)*((1.D0-XMAX)/(1.D0-XMIN2))**PSRAN(B10)
+          ENDIF
+*********************************************************
+
+c Effective momentum squared QQ in the ladder run is simulated
+c first as dq**2/q**4 from QMIN(J) to QMAX
+          QQ=QQMIN/(1.D0+PSRAN(B10)*(QQMIN/QQMAX-1.D0))
+	  
+        IF(DEBUG.GE.2)WRITE (MONIOU,253)QQ,QQMIN,QQMAX
+253     FORMAT(2X,'PSHOT: QQ=',E10.3,2X,'QQMIN=',E10.3,2X,
+     *  'QQMAX=',E10.3)
+
+          QT2=QQ*(1.D0-X)**2
+          IF(QT2.LT.QT0)GOTO 7
+
+          IF(QQ.GT.QMINN)THEN
+            QMIN2=QQ
+          ELSE
+            QMIN2=QMINN
+          ENDIF
+
+          QT=DSQRT(QT2)
+          CALL PSCS(CCOS,SSIN)
+c EP3 is now 4-vector for s-channel gluon produced in current ladder run
+          EP3(3)=QT*CCOS
+          EP3(4)=QT*SSIN
+          PT2=(EPT(3)-EP3(3))**2+(EPT(4)-EP3(4))**2
+          S2MIN2=MAX(S2MIN,QMIN2)
+
+          ZMIN=(QT2+AMJ0)/WW/(1.D0-X)
+c S2 is the maximal c.m. energy square for the parton-parton interaction
+c in the next ladder run
+          S2=X*(1.D0-ZMIN)*WW-PT2
+c Rejection in case of too low WW2 (insufficient for elastic gluon-gluon
+c scattering with transverse momentum square q_t**2 above QMIN2)
+          IF(S2.LT.S2MIN2)GOTO 7
+
+          SJ1=PSJINT(QQ,QMIN(3-JJ),S2,1,IQP(3-jj)+1)
+     *    *PSFAP(X,IQP(JJ),0)
+          SJ2=PSJINT(QQ,QMIN(3-JJ),S2,2,IQP(3-jj)+1)
+     *    *PSFAP(X,IQP(JJ),1)
+
+c GB7 is the rejection function for X and Q**2 simulation. It consists
+c from factor
+c Q**2/Qmin**2 * ln(Qmin**2/Lambda_qcd**2)/ln(Q**2/Lambda_qcd**2)
+c from Q**2 simulation and factor SJ/(X*WW)**DELH * const from X simulation
+          GB7=(SJ1+SJ2)/DLOG(QT2/ALM)*QQ*PSUDS(QQ,IQP(JJ))/GB0
+
+*********************************************************
+          IF(X.LE..5D0)THEN
+            GB7=GB7*X**(1.D0-DELH)
+          ELSE
+            GB7=GB7*(1.D0-X)*2.D0**DELH
+          ENDIF
+*********************************************************
+          IF(PSRAN(B10).GT.GB7)GOTO 7
+
+           IF(PSRAN(B10).LT.SJ1/(SJ1+SJ2))THEN
+             IF(IQC(JJ).EQ.0)THEN
+               JT=1
+               JQ=INT(1.5D0+PSRAN(B10))
+               IQJ(1)=IPQ(JQ,JJ)
+               IQJ(2)=0
+               DO 31 I=1,4
+               EQJ(I,1)=EPQ(I+4*(JQ-1),JJ)
+31            EQJ(I,2)=0.D0
+            ELSE
+              JT=2
+              IF(IQC(JJ).GT.0)THEN
+                JQ=1
+              ELSE
+                JQ=2
+              ENDIF
+              IQJ(1)=0
+              DO 32 I=1,4
+32            EQJ(I,1)=0.D0
+
+              IPQ(JQ,JJ)=IPQ(1,JJ)
+              DO 135 I=1,4
+135           EPQ(I+4*(JQ-1),JJ)=EPQ(I,JJ)
+            ENDIF
+            IQ1=IQC(JJ)
+            IQC(JJ)=0
+            
+          ELSE
+            IF(IQP(JJ).NE.0)THEN
+              IQ1=0
+              JT=3
+              IF(IQC(JJ).GT.0)THEN
+                JQ=1
+              ELSE
+                JQ=2
+              ENDIF
+              IQJ(1)=IPQ(1,JJ)
+              IQJ(2)=0
+              DO 33 I=1,4
+              EQJ(I,1)=EPQ(I,JJ)
+33            EQJ(I,2)=0.D0
+
+            ELSE
+              IQ1=INT(3.D0*PSRAN(B10)+1.D0)*(2*INT(.5D0+PSRAN(B10))-1)
+              IQC(JJ)=-IQ1
+              JT=4
+              IF(IQ1.GT.0)THEN
+                JQ=1
+              ELSE
+                JQ=2
+              ENDIF
+              IQJ(1)=IPQ(JQ,JJ)
+              DO 34 I=1,4
+34            EQJ(I,1)=EPQ(I+4*(JQ-1),JJ)
+            ENDIF
+          ENDIF
+          IF(DEBUG.GE.3)WRITE (MONIOU,240)JT
+
+          CALL PSCAJET(QT2,IQ1,QV1,ZV1,QM1,IQV1,
+     *	  LDAU1,LPAR1,JQ)
+          Z=(QT2+QM1(1,1))/WW/(1.D0-X)
+          SI=X*(1.D0-Z)*WW-PT2
+
+          IF(SI.GT.S2MIN2)THEN
+            IQ=MIN(1,IABS(IQC(JJ)))+1
+            GB=PSJINT(QQ,QMIN(3-JJ),SI,IQ,IQP(3-JJ)+1)/
+     *      PSJINT(QQ,QMIN(3-JJ),S2,IQ,IQP(3-JJ)+1)
+            IF(PSRAN(B10).GT.GB)GOTO 301
+          ELSE
+            GOTO 301
+          ENDIF
+
+          WP3=WP(JJ)*(1.D0-X)
+          WM3=(QT2+QM1(1,1))/WP3
+          EP3(1)=.5D0*(WP3+WM3)
+          EP3(2)=.5D0*(WP3-WM3)*(3-2*JJ)
+
+          PT3=DSQRT(EP3(3)**2+EP3(4)**2)
+
+          CALL PSREC(EP3,QV1,ZV1,QM1,IQV1,LDAU1,LPAR1,IQJ,EQJ,JFL,JQ)
+          IF(JFL.EQ.0)GOTO 301
+	  
+          IF(JT.EQ.1)THEN
+            IPQ(JQ,JJ)=IQJ(2)
+            DO 35 I=1,4
+35          EPQ(I+4*(JQ-1),JJ)=EQJ(I,2)
+
+            IF(IPC(JQ,JJ).EQ.0)THEN	  
+              IPC(JQ,JJ)=IQJ(1)
+              DO 36 I=1,4
+36            EPC(I+4*(JQ-1),JJ)=EQJ(I,1)
+            ENDIF
+
+          ELSEIF(JT.EQ.2)THEN
+            IPQ(3-JQ,JJ)=IQJ(1)
+            DO 37 I=1,4
+37          EPQ(I+4*(2-JQ),JJ)=EQJ(I,1)
+
+          ELSEIF(JT.EQ.3)THEN
+            IPQ(1,JJ)=IQJ(2)
+            DO 38 I=1,4
+38          EPQ(I,JJ)=EQJ(I,2)
+
+            IF(IPC(JQ,JJ).EQ.0)THEN	  
+              IPC(JQ,JJ)=IQJ(1)
+              DO 39 I=1,4
+39            EPC(I+4*(JQ-1),JJ)=EQJ(I,1)
+            ENDIF
+	    
+          ELSEIF(JT.EQ.4)THEN
+            IF(IPC(JQ,JJ).EQ.0)THEN	  
+               IPC(JQ,JJ)=IQJ(1)
+               DO 40 I=1,4
+40            EPC(I+4*(JQ-1),JJ)=EQJ(I,1)
+            ENDIF
+            IF(JQ.EQ.1)THEN	  
+              IPQ(1,JJ)=IPQ(2,JJ)
+              DO 30 I=1,4
+30            EPQ(I,JJ)=EPQ(I+4,JJ)
+            ENDIF
+          ENDIF
+	  
+          IF(IABS(IQ1).EQ.3)THEN
+            IQQQ=8+IQ1/3*4
+          ELSE
+            IQQQ=8+IQ1
+          ENDIF
+        IF(DEBUG.GE.2)WRITE (MONIOU,209)TYQ(IQQQ),QT2,EP3
+209     FORMAT(2X,'PSHOT: NEW JET FLAVOR:',A2,
+     *  ' PT SQUARED FOR THE JET:',E10.3/
+     *  4X,'JET 4-MOMENTUM:',4E10.3)
+          DO 8 I=1,4
+8         EPT(I)=EPT(I)-EP3(I)
+c C.m. energy square, minimal  4-momentum transfer square and gluon 4-vector
+c for the next ladder run
+          QMIN(JJ)=QQ
+          QMINN=QMIN2
+	  
+c Next simulation step will be considered for current ladder
+          GOTO 5
+C------------------------------------------------
+
+C------------------------------------------------
+c The last gluon pair production (elastic scattering) in the ladder
+c is simulated
+12        CONTINUE
+          IF(DEBUG.GE.2)WRITE (MONIOU,211)SI
+211     FORMAT(2X,'PSHOT: HIGHEST VIRTUALITY SUBPROCESS IN THE LADDER'/
+     *  4X,'MASS SQUARED FOR THE PROCESS:',E10.3)
+
+          XMIN=QMINN/(QMINN+SI)
+          XMIN1=.5D0-DSQRT(.25D0-(QT0+AMJ0)/SI)
+          XMIN=MAX(XMIN,XMIN1)
+          TMIN=SI*XMIN
+
+          IF(IQC(1).NE.0.OR.IQC(2).NE.0)THEN
+            GB0=TMIN**2/DLOG(TMIN*(1.D0-XMIN)/ALM)**2*
+     *      PSFBORN(SI,TMIN,IQC(1),IQC(2))
+          ELSE
+            GB0=.25D0*SI**2/DLOG(TMIN*(1.D0-XMIN)/ALM)**2*
+     *      PSFBORN(SI,.5D0*SI,IQC(1),IQC(2))
+          ENDIF
+
+C------------------------------------------------
+c 4-momentum transfer squared is simulated first as dq_t**2/q_t**4 from
+c tmin to s/2
+13        Q2=TMIN/(1.D0-PSRAN(B10)*(1.D0-2.D0*TMIN/SI))
+          Z=Q2/SI
+          QT2=Q2*(1.D0-Z)
+          IF(PSRAN(B10).LT..5D0)THEN
+            JM=2
+            TQ=SI-Q2
+          ELSE
+            JM=1
+            TQ=Q2
+          ENDIF
+
+          GB=Q2**2/DLOG(QT2/ALM)**2/GB0*
+     *    PSFBORN(SI,TQ,IQC(1),IQC(2))
+          IF(DEBUG.GE.3)WRITE (MONIOU,241)Q2,GB
+241     FORMAT(2X,'PSHOT: Q2=',E10.3,' GB=',E10.3)
+
+          IF(PSRAN(B10).GT.GB)GOTO 13
+
+          IF(IQC(1).EQ.0.AND.IQC(2).EQ.0)THEN
+            JQ=INT(1.5D0+PSRAN(B10))
+            IQJ(1)=IPQ(JQ,JM)
+            DO 51 I=1,4
+51          EQJ(I,1)=EPQ(I+4*(JQ-1),JM)
+
+            IF(PSRAN(B10).LT..5D0)THEN
+              JT=1
+              IF(IPQ(3-JQ,JM)*IPQ(JQ,3-JM).NE.0)THEN
+                IPJ=IPQ(3-JQ,JM)
+                IPJ1=IPQ(JQ,3-JM)
+                IF(IABS(IPJ).EQ.3)IPJ=IPJ*4/3
+                IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                DO 52 I=1,4
+                EPJ(I)=EPQ(I+4*(2-JQ),JM)
+52              EPJ1(I)=EPQ(I+4*(JQ-1),3-JM)
+                CALL PSJDEF(IPJ,IPJ1,EPJ,EPJ1,JFL)
+                IF(JFL.EQ.0)GOTO 301
+              ELSEIF(IPQ(3-JQ,JM).NE.0)THEN
+                IPC(JQ,3-JM)=IPQ(3-JQ,JM)
+                DO 53 I=1,4
+53   	        EPC(I+4*(JQ-1),3-JM)=EPQ(I+4*(2-JQ),JM)
+              ELSEIF(IPQ(JQ,3-JM).NE.0)THEN
+                IPC(3-JQ,JM)=IPQ(JQ,3-JM)
+                DO 54 I=1,4
+54              EPC(I+4*(2-JQ),JM)=EPQ(I+4*(JQ-1),3-JM)
+              ENDIF
+ 	      
+              IQJ(2)=0
+       	      DO 55 I=1,4
+55            EQJ(I,2)=0.D0
+ 	    
+            ELSE
+              JT=2
+              IQJ(2)=IPQ(3-JQ,3-JM)
+              DO 56 I=1,4
+56            EQJ(I,2)=EPQ(I+4*(2-JQ),3-JM)
+            ENDIF
+              
+          ELSEIF(IQC(1)*IQC(2).EQ.0)THEN
+            IF(IQC(1)+IQC(2).GT.0)THEN
+              JQ=1
+            ELSE
+              JQ=2
+            ENDIF
+
+            IF(PSRAN(B10).LT..5D0)THEN
+              IF(IQC(JM).EQ.0)THEN
+                JT=3
+                IQJ(1)=IPQ(JQ,JM)
+                IQJ(2)=0
+                DO 57 I=1,4
+                EQJ(I,1)=EPQ(I+4*(JQ-1),JM)
+57              EQJ(I,2)=0.D0
+
+                IF(IPQ(3-JQ,JM)*IPQ(1,3-JM).NE.0)THEN
+                  IPJ=IPQ(3-JQ,JM)
+                  IPJ1=IPQ(1,3-JM)
+                  IF(IABS(IPJ).EQ.3)IPJ=IPJ*4/3
+                  IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                  DO 58 I=1,4
+                  EPJ(I)=EPQ(I+4*(2-JQ),JM)
+58                EPJ1(I)=EPQ(I,3-JM)
+                  CALL PSJDEF(IPJ,IPJ1,EPJ,EPJ1,JFL)
+                  IF(JFL.EQ.0)GOTO 301
+                ELSEIF(IPQ(3-JQ,JM).NE.0)THEN
+                  IPC(JQ,3-JM)=IPQ(3-JQ,JM)
+                  DO 59 I=1,4
+59                EPC(I+4*(JQ-1),3-JM)=EPQ(I+4*(2-JQ),JM)
+                ELSEIF(IPQ(1,3-JM).NE.0)THEN
+                  IPC(3-JQ,JM)=IPQ(1,3-JM)
+                  DO 60 I=1,4
+60                EPC(I+4*(2-JQ),JM)=EPQ(I,3-JM)
+                ENDIF
+ 	      
+              ELSE
+                JT=4
+                IQJ(1)=0
+                DO 61 I=1,4
+61              EQJ(I,1)=0.D0
+
+                IF(IPQ(1,JM)*IPQ(3-JQ,3-JM).NE.0)THEN
+                  IPJ=IPQ(1,JM)
+                  IPJ1=IPQ(3-JQ,3-JM)
+                  IF(IABS(IPJ).EQ.3)IPJ=IPJ*4/3
+                  IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                  DO 62 I=1,4
+                  EPJ(I)=EPQ(I,JM)
+62                EPJ1(I)=EPQ(I+4*(2-JQ),3-JM)
+                  CALL PSJDEF(IPJ,IPJ1,EPJ,EPJ1,JFL)
+                  IF(JFL.EQ.0)GOTO 301
+                ELSEIF(IPQ(3-JQ,3-JM).NE.0)THEN
+                  IPC(JQ,JM)=IPQ(3-JQ,3-JM)
+                  DO 63 I=1,4
+63                EPC(I+4*(JQ-1),JM)=EPQ(I+4*(2-JQ),3-JM)
+                ELSEIF(IPQ(1,JM).NE.0)THEN
+                  IPC(3-JQ,3-JM)=IPQ(1,JM)
+                  DO 64 I=1,4
+64                EPC(I+4*(2-JQ),3-JM)=EPQ(I,JM)
+                ENDIF
+              ENDIF
+            
+            ELSE
+              IF(IQC(JM).EQ.0)THEN
+                JT=5
+                IQJ(2)=IPQ(3-JQ,JM)
+                IQJ(1)=IPQ(1,3-JM)
+                DO 65 I=1,4
+                EQJ(I,2)=EPQ(I+4*(2-JQ),JM)
+65              EQJ(I,1)=EPQ(I,3-JM)
+              ELSE
+                JT=6
+                IQJ(1)=IPQ(JQ,3-JM)
+                DO 66 I=1,4
+66              EQJ(I,1)=EPQ(I+4*(JQ-1),3-JM)
+              ENDIF
+            ENDIF
+
+          ELSEIF(IQC(1)*IQC(2).GT.0)THEN
+            JT=7
+            IF(IQC(1).GT.0)THEN
+              JQ=1
+            ELSE
+              JQ=2
+            ENDIF
+            IQJ(1)=IPQ(1,3-JM)
+            DO 67 I=1,4
+67          EQJ(I,1)=EPQ(I,3-JM)
+
+          ELSE
+            JT=8
+            IF(IQC(JM).GT.0)THEN
+              JQ=1
+            ELSE
+              JQ=2
+            ENDIF
+            IQJ(1)=0
+            DO 68 I=1,4
+68          EQJ(I,1)=0.D0
+
+            IF(IPQ(1,JM)*IPQ(1,3-JM).NE.0)THEN
+              IPJ=IPQ(1,JM)
+              IPJ1=IPQ(1,3-JM)
+              IF(IABS(IPJ).EQ.3)IPJ=IPJ*4/3
+              IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+              DO 69 I=1,4
+              EPJ(I)=EPQ(I,JM)
+69            EPJ1(I)=EPQ(I,3-JM)
+              CALL PSJDEF(IPJ,IPJ1,EPJ,EPJ1,JFL)
+              IF(JFL.EQ.0)GOTO 301
+            ELSEIF(IPQ(1,3-JM).NE.0)THEN
+              IPC(JQ,JM)=IPQ(1,3-JM)
+              DO 70 I=1,4
+70            EPC(I+4*(JQ-1),JM)=EPQ(I,3-JM)
+            ELSEIF(IPQ(1,JM).NE.0)THEN
+              IPC(3-JQ,3-JM)=IPQ(1,JM)
+              DO 71 I=1,4
+71            EPC(I+4*(2-JQ),3-JM)=EPQ(I,JM)
+            ENDIF
+          ENDIF
+          IF(JT.NE.8)THEN
+            JQ2=JQ
+          ELSE
+            JQ2=3-JQ
+          ENDIF
+          IF(DEBUG.GE.3)WRITE (MONIOU,240)JT
+240       FORMAT(2X,'PSHOT: COLOUR CONNECTION JT=:',I1)
+       	       	      
+          CALL PSCAJET(QT2,IQC(JM),QV1,ZV1,QM1,IQV1,
+     *    LDAU1,LPAR1,JQ)
+          CALL PSCAJET(QT2,IQC(3-JM),QV2,ZV2,QM2,IQV2,
+     *    LDAU2,LPAR2,JQ2)
+
+          AMT1=QT2+QM1(1,1)
+          AMT2=QT2+QM2(1,1)
+
+          IF(DSQRT(SI).GT.DSQRT(AMT1)+DSQRT(AMT2))THEN
+            Z=XXTWDEC(SI,AMT1,AMT2)
+          ELSE
+            GOTO 301
+          ENDIF
+
+          CALL PSDEFTR(SI,EPT,EY)
+
+          WP3=Z*DSQRT(SI)
+          WM3=(QT2+QM1(1,1))/WP3
+          EP3(1)=.5D0*(WP3+WM3)
+          EP3(2)=.5D0*(WP3-WM3)
+          QT=DSQRT(QT2)
+          CALL PSCS(CCOS,SSIN)
+c ep3 is now 4-vector for first s-channel gluon produced in the ladder run
+          EP3(3)=QT*CCOS
+          EP3(4)=QT*SSIN
+
+          CALL PSTRANS(EP3,EY)
+          PT3=DSQRT(EP3(3)**2+EP3(4)**2)
+
+          CALL PSREC(EP3,QV1,ZV1,QM1,IQV1,LDAU1,LPAR1,IQJ,EQJ,JFL,JQ)
+          IF(JFL.EQ.0)GOTO 301
+          
+          if(iabs(IQC(JM)).eq.3)then
+            iqqq=8+IQC(JM)/3*4
+          else
+            iqqq=8+IQC(JM)
+          endif
+          IF(DEBUG.GE.2)WRITE (MONIOU,209)TYQ(IQQQ),QT2
+
+          WP3=(1.D0-Z)*DSQRT(SI)
+          WM3=(QT2+QM2(1,1))/WP3
+          EP3(1)=.5D0*(WP3+WM3)
+          EP3(2)=.5D0*(WP3-WM3)
+          EP3(3)=-QT*CCOS
+          EP3(4)=-QT*SSIN
+          CALL PSTRANS(EP3,EY)
+          PT3=DSQRT(EP3(3)**2+EP3(4)**2)
+
+          IF(JT.EQ.1)THEN
+            IF(IPC(JQ,JM).EQ.0)THEN
+              IPC(JQ,JM)=IQJ(1)
+              DO 72 I=1,4
+72            EPC(I+4*(JQ-1),JM)=EQJ(I,1)
+            ENDIF
+            
+            IQJ(1)=IQJ(2)
+            IQJ(2)=IPQ(3-JQ,3-JM)
+            DO 73 I=1,4
+            EQJ(I,1)=EQJ(I,2)
+73          EQJ(I,2)=EPQ(I+4*(2-JQ),3-JM)
+
+          ELSEIF(JT.EQ.2)THEN
+            IF(IPC(JQ,JM).EQ.0)THEN
+              IPC(JQ,JM)=IQJ(1)
+              DO 74 I=1,4
+74            EPC(I+4*(JQ-1),JM)=EQJ(I,1)
+            ENDIF
+            IF(IPC(3-JQ,3-JM).EQ.0)THEN
+              IPC(3-JQ,3-JM)=IQJ(2)
+              DO 75 I=1,4
+75            EPC(I+4*(2-JQ),3-JM)=EQJ(I,2)
+            ENDIF
+            
+            IQJ(2)=IPQ(3-JQ,JM)
+            IQJ(1)=IPQ(JQ,3-JM)
+            DO 76 I=1,4
+            EQJ(I,2)=EPQ(I+4*(2-JQ),JM)
+76          EQJ(I,1)=EPQ(I+4*(JQ-1),3-JM)
+
+          ELSEIF(JT.EQ.3)THEN
+            IF(IPC(JQ,JM).EQ.0)THEN
+              IPC(JQ,JM)=IQJ(1)
+              DO 77 I=1,4
+77            EPC(I+4*(JQ-1),JM)=EQJ(I,1)
+            ENDIF
+            IQJ(1)=IQJ(2)
+            DO 78 I=1,4
+78          EQJ(I,1)= EQJ(I,2)
+
+          ELSEIF(JT.EQ.4)THEN
+            IQJ(2)=IQJ(1)
+            IQJ(1)=IPQ(JQ,3-JM)
+            DO 79 I=1,4
+            EQJ(I,2)=EQJ(I,1)
+79          EQJ(I,1)=EPQ(I+4*(JQ-1),3-JM)
+
+          ELSEIF(JT.EQ.5)THEN
+            IF(IPC(3-JQ,JM).EQ.0)THEN
+              IPC(3-JQ,JM)=IQJ(2)
+              DO 80 I=1,4
+80            EPC(I+4*(2-JQ),JM)=EQJ(I,2)
+            ENDIF
+            IF(IPC(JQ,3-JM).EQ.0)THEN
+              IPC(JQ,3-JM)=IQJ(1)
+              DO 81 I=1,4
+81            EPC(I+4*(JQ-1),3-JM)=EQJ(I,1)
+            ENDIF
+            
+            IQJ(1)=IPQ(JQ,JM)
+            DO 82 I=1,4
+82          EQJ(I,1)=EPQ(I+4*(JQ-1),JM)
+
+          ELSEIF(JT.EQ.6)THEN
+            IF(IPC(JQ,3-JM).EQ.0)THEN
+              IPC(JQ,3-JM)=IQJ(1)
+              DO 83 I=1,4
+83            EPC(I+4*(JQ-1),3-JM)=EQJ(I,1)
+            ENDIF
+            
+            IQJ(2)=IPQ(3-JQ,3-JM)
+            IQJ(1)=IPQ(1,JM)
+            DO 84 I=1,4
+            EQJ(I,2)=EPQ(I+4*(2-JQ),3-JM)
+84          EQJ(I,1)=EPQ(I,JM)
+
+          ELSEIF(JT.EQ.7)THEN
+            IF(IPC(JQ,3-JM).EQ.0)THEN
+              IPC(JQ,3-JM)=IQJ(1)
+              DO 85 I=1,4
+85            EPC(I+4*(JQ-1),3-JM)=EQJ(I,1)
+            ENDIF
+            IQJ(1)=IPQ(1,JM)
+            DO 86 I=1,4
+86          EQJ(I,1)= EPQ(I,JM)
+          ENDIF
+
+          CALL PSREC(EP3,QV2,ZV2,QM2,IQV2,LDAU2,LPAR2,IQJ,EQJ,JFL,JQ2)
+          IF(JFL.EQ.0)GOTO 301
+
+          if(iabs(IQC(3-JM)).eq.3)then
+            iqqq=8+IQC(3-JM)/3*4
+          else
+            iqqq=8+IQC(3-JM)
+          endif
+          IF(DEBUG.GE.2)WRITE (MONIOU,209)TYQ(IQQQ),QT2
+          IF(DEBUG.GE.2)WRITE (MONIOU,212)NJTOT
+212       FORMAT(2X,'PSHOT: TOTAL NUMBER OF JETS:',I2)
+
+          IF(JT.EQ.1)THEN
+            IF(IPC(3-JQ,3-JM).EQ.0)THEN
+              IPC(3-JQ,3-JM)=IQJ(2)
+              DO 87 I=1,4
+87            EPC(I+4*(2-JQ),3-JM)=EQJ(I,2)
+            ENDIF
+            
+          ELSEIF(JT.EQ.2)THEN
+            IF(IPC(3-JQ,JM).EQ.0)THEN
+              IPC(3-JQ,JM)=IQJ(2)
+              DO 88 I=1,4
+88            EPC(I+4*(2-JQ),JM)=EQJ(I,2)
+            ENDIF
+            IF(IPC(JQ,3-JM).EQ.0)THEN
+              IPC(JQ,3-JM)=IQJ(1)
+              DO 89 I=1,4
+89            EPC(I+4*(JQ-1),3-JM)=EQJ(I,1)
+            ENDIF
+
+          ELSEIF(JT.EQ.4)THEN
+            IF(IPC(JQ,3-JM).EQ.0)THEN
+              IPC(JQ,3-JM)=IQJ(1)
+              DO 90 I=1,4
+90            EPC(I+4*(JQ-1),3-JM)=EQJ(I,1)
+            ENDIF
+
+          ELSEIF(JT.EQ.5)THEN
+            IF(IPC(JQ,JM).EQ.0)THEN
+              IPC(JQ,JM)=IQJ(1)
+              DO 91 I=1,4
+91            EPC(I+4*(JQ-1),JM)=EQJ(I,1)
+            ENDIF
+
+          ELSEIF(JT.EQ.6)THEN
+            IF(IPC(3-JQ,3-JM).EQ.0)THEN
+              IPC(3-JQ,3-JM)=IQJ(2)
+              DO 92 I=1,4
+92            EPC(I+4*(2-JQ),3-JM)=EQJ(I,2)
+            ENDIF
+            IF(IPC(JQ,JM).EQ.0)THEN
+              IPC(JQ,JM)=IQJ(1)
+              DO 93 I=1,4
+93            EPC(I+4*(JQ-1),JM)=EQJ(I,1)
+            ENDIF
+
+          ELSEIF(JT.EQ.7)THEN
+            IF(IPC(JQ,JM).EQ.0)THEN
+              IPC(JQ,JM)=IQJ(1)
+              DO 94 I=1,4
+94            EPC(I+4*(JQ-1),JM)=EQJ(I,1)
+            ENDIF
+          ENDIF
+C------------------------------------------------
+
+        IF(DEBUG.GE.3)WRITE (MONIOU,217)
+217     FORMAT(2X,'PSHOT - END')
+        ebal(1)=.5*(wp0+wm0)
+        ebal(2)=.5*(wp0-wm0)
+        ebal(3)=0.d0
+        ebal(4)=0.d0
+        do 500 i=1,njtot
+        do 500 m=1,2
+        do 500 l=1,4
+500        ebal(l)=ebal(l)-epjet(l,m,i)
+c            write (*,*)'ebal',ebal
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE PSJDEF(IPJ,IPJ1,EPJ,EPJ1,JFL)
+c Procedure for jet hadronization - each gluon is
+c considered to be splitted into quark-antiquark pair and usual soft
+c strings are assumed to be formed between quark and antiquark
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EPJ(4),EPJ1(4),EPT(4)
+        COMMON /AREA10/ STMASS,AM(7)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        COMMON /AREA46/ EPJET(4,2,1000),IPJET(2,1000)
+        COMMON /AREA47/ NJTOT
+c        if(ipj*ipj1.gt.0.and.iabs(ipj).ne.3.and.iabs(ipj).le.4.
+c     *  and.iabs(ipj1).ne.3.and.iabs(ipj1).le.4.or.
+c     *  ipj*ipj1.lt.0.and.(iabs(ipj).eq.3.or.iabs(ipj).gt.4.
+c     *  or.iabs(ipj1).eq.3.or.iabs(ipj1).eq.4))then
+c      write (*,*)'ipj,ipj1',ipj,ipj1
+c           read (*,*)
+c        endif
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)IPJ,IPJ1,EPJ,EPJ1
+201     FORMAT(2X,'PSJDEF: PARTON FLAVORS',
+     *  ': IPJ=',I2,2X,'IPJ1=',I2/
+     *  4X,'PARTON 4-MOMENTA:',2X,4(E10.3,1X))
+        DO 1 I=1,4
+1       EPT(I)=EPJ(I)+EPJ1(I)
+
+c Invariant mass squared for the jet
+        WW=PSNORM(EPt)
+c Minimal mass squared for the jet
+        IF(IABS(IPJ).LE.2)THEN
+          AM1=AM(1)
+        ELSEIF(IABS(IPJ).EQ.4)THEN
+          AM1=AM(3)
+        ELSE
+          AM1=AM(2)
+        ENDIF
+        IF(IABS(IPJ1).LE.2)THEN
+          AM2=AM(1)
+        ELSEIF(IABS(IPJ1).EQ.4)THEN
+          AM2=AM(3)
+        ELSE
+          AM2=AM(2)
+        ENDIF
+        AMJ=(AM1+AM2)**2
+        
+        IF(AMJ.GT.WW)THEN
+          JFL=0
+          RETURN
+        ELSE
+          JFL=1
+        ENDIF
+        
+        NJTOT=NJTOT+1        
+        IPJET(1,NJTOT)=IPJ
+        IPJET(2,NJTOT)=IPJ1
+        DO 2 I=1,4
+        EPJET(I,1,NJTOT)=EPJ(I)
+2       EPJET(I,2,NJTOT)=EPJ1(I)
+        
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'PSJDEF - END')
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSJET(Q1,Q2,S,S2MIN,J,L)
+C PSJET - inclusive hard cross-section calculation (one more run is added
+c to the ladder) - for any ordering
+c Q1 - effective momentum cutoff for current end of the ladder,
+c Q2 - effective momentum cutoff for opposide end of the ladder,
+c S - total c.m. energy squared for the ladder,
+c S2MIN - minimal c.m. energy squared for BORN process (above Q1 and Q2)
+c J - parton type at current end of the ladder (0 - g, 1 - q)
+c L - parton type at opposite end of the ladder (1 - g, 2 - q)
+C-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA6/  PI,BM,AM
+        COMMON /AREA17/ DEL,RS,RS0,FS,ALF,RR,SH,DELH
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON/AR3/X1(7),A1(7)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)S,Q1,Q2,S2MIN,J,L
+201     FORMAT(2X,'PSJET - UNORDERED LADDER CROSS SECTION:'/
+     *  4X,'S=',E10.3,2X,'Q1=',E10.3,2X,'Q2=',E10.3,2X,'S2MIN=',
+     *  E10.3,2X,'J=',I1,2X,'L=',I1)
+        PSJET=0.D0
+
+        P=DSQRT(1.D0-3.D0*QT0/S)
+        COSF=(1.D0-18.D0*QT0/S)/P**3
+        FI=ATAN(1.D0/COSF**2-1.D0)
+        IF(COSF.LT.0.D0)FI=PI-FI
+        FI=FI/3.D0
+        ZMAX=(2.D0-P*(DSQRT(3.D0)*SIN(FI)-COS(FI)))/3.D0
+        ZMIN=(1.D0-P*COS(FI))/1.5D0
+
+        IF(QT0/(1.D0-ZMIN)**2.LT.S2MIN)
+     *  ZMIN=.5D0*(1.D0+S2MIN/S-DSQRT((1.D0-S2MIN/S)**2-4.D0*QT0/S))
+
+***********************************************************
+        IF(1.D0-ZMIN.LT.DSQRT(QT0/Q1))THEN
+          QMIN=QT0/(1.D0-ZMIN)**2
+        ELSE
+          QMIN=Q1
+        ENDIF
+
+        QMAX=QT0/(1.D0-ZMAX)**2
+        SUD0=PSUDS(QMIN,J)
+***********************************************************
+
+        IF(DEBUG.GE.3)WRITE (MONIOU,203)QMIN,QMAX
+203     FORMAT(2X,'PSJET:',2X,'QMIN=',E10.3,2X,'QMAX=',E10.3)
+        IF(QMAX.GT.QMIN)THEN
+
+c Numerical integration over transverse momentum square;
+c Gaussian integration is used
+          DO 3 I=1,7
+          DO 3 M=1,2
+          QI=2.D0*QMIN/(1.D0+QMIN/QMAX+(2*M-3)*X1(I)*(1.D0-QMIN/QMAX))
+
+          ZMAX=(1.D0-DSQRT(QT0/QI))**DELH
+          ZMIN=((QI+MAX(QI,S2MIN))/(QI+S))**DELH
+
+          FSJ=0.D0
+
+        IF(DEBUG.GE.3)WRITE (MONIOU,204)QI,ZMIN,ZMAX
+204     FORMAT(2X,'PSJET:',2X,'QI=',E10.3,2X,'ZMIN=',E10.3,2X,
+     *  'ZMAX=',E10.3)
+          IF(ZMAX.GT.ZMIN)THEN
+            DO 2 I1=1,7
+            DO 2 M1=1,2
+            Z=(.5D0*(ZMAX+ZMIN+(2*M1-3)*X1(I1)*(ZMAX-ZMIN)))**
+     *      (1.D0/DELH)
+            QT=QI*(1.D0-Z)**2
+            S2=Z*S-QI*(1.D0-Z)
+
+            SJ=0.D0
+            DO 1 K=1,2
+1           SJ=SJ+PSJINT(QI,Q2,S2,K,L)*PSFAP(Z,J,K-1)*Z
+2           FSJ=FSJ+A1(I1)*SJ/DLOG(QT/ALM)/Z**DELH
+            FSJ=FSJ*(ZMAX-ZMIN)
+          ENDIF
+
+3         PSJET=PSJET+A1(I)*FSJ*QI*PSUDS(QI,J)
+          PSJET=PSJET*(1.D0/QMIN-1.D0/QMAX)/SUD0/DELH/18.D0
+        ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSJET
+202     FORMAT(2X,'PSJET=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSJET1(Q1,Q2,S,S2MIN,J,L)
+C PSJET1 - inclusive hard cross-section calculation (one more run is added
+c to the ladder) - for strict ordering
+c Q1 - effective momentum cutoff for current end of the ladder,
+c Q2 - effective momentum cutoff for opposide end of the ladder,
+c S - total c.m. energy squared for the ladder,
+c S2MIN - minimal c.m. energy squared for BORN process (above Q1 and Q2)
+c J - parton type at current end of the ladder (0 - g, 1 - q)
+c L - parton type at opposite end of the ladder (1 - g, 2 - q)
+C-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA6/  PI,BM,AM
+        COMMON /AREA17/ DEL,RS,RS0,FS,ALF,RR,SH,DELH
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON/AR3/X1(7),A1(7)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)S,Q1,Q2,S2MIN,J,L
+201     FORMAT(2X,'PSJET1 - STRICTLY ORDERED LADDER CROSS SECTION:'/
+     *  4X,'S=',E10.3,2X,'Q1=',E10.3,2X,'Q2=',E10.3,2X,'S2MIN=',
+     *  E10.3,2X,'J=',I1,2X,'L=',I1)
+        PSJET1=0.D0
+
+        P=DSQRT(1.D0-3.D0*QT0/S)
+        COSF=(1.D0-18.D0*QT0/S)/P**3
+        FI=ATAN(1.D0/COSF**2-1.D0)
+        IF(COSF.LT.0.D0)FI=PI-FI
+        FI=FI/3.D0
+        ZMAX=(2.D0-P*(DSQRT(3.D0)*SIN(FI)-COS(FI)))/3.D0
+        ZMIN=(1.D0-P*COS(FI))/1.5D0
+
+        IF(QT0/(1.D0-ZMIN)**2.LT.S2MIN)
+     *  ZMIN=.5D0*(1.D0+S2MIN/S-DSQRT((1.D0-S2MIN/S)**2-4.D0*QT0/S))
+
+***********************************************************
+        IF(1.D0-ZMIN.LT.DSQRT(QT0/Q1))THEN
+          QMIN=QT0/(1.D0-ZMIN)**2
+        ELSE
+          QMIN=Q1
+        ENDIF
+
+        QMAX=QT0/(1.D0-ZMAX)**2
+        SUD0=PSUDS(QMIN,J)
+***********************************************************
+
+        IF(DEBUG.GE.3)WRITE (MONIOU,203)QMIN,QMAX
+203     FORMAT(2X,'PSJET1:',2X,'QMIN=',E10.3,2X,'QMAX=',E10.3)
+        IF(QMAX.GT.QMIN)THEN
+
+c Numerical integration over transverse momentum square;
+c Gaussian integration is used
+          DO 3 I=1,7
+          DO 3 M=1,2
+          QI=2.D0*QMIN/(1.D0+QMIN/QMAX+(2*M-3)*X1(I)*(1.D0-QMIN/QMAX))
+
+          ZMAX=(1.D0-DSQRT(QT0/QI))**DELH
+          ZMIN=((QI+MAX(QI,S2MIN))/(QI+S))**DELH
+
+          FSJ=0.D0
+
+        IF(DEBUG.GE.3)WRITE (MONIOU,204)QI,ZMIN,ZMAX
+204     FORMAT(2X,'PSJET1:',2X,'QI=',E10.3,2X,'ZMIN=',E10.3,2X,
+     *  'ZMAX=',E10.3)
+          IF(ZMAX.GT.ZMIN)THEN
+            DO 2 I1=1,7
+            DO 2 M1=1,2
+            Z=(.5D0*(ZMAX+ZMIN+(2*M1-3)*X1(I1)*(ZMAX-ZMIN)))**
+     *      (1.D0/DELH)
+            QT=QI*(1.D0-Z)**2
+            S2=Z*S-QI*(1.D0-Z)
+
+            SJ=0.D0
+            DO 1 K=1,2
+1           SJ=SJ+PSJINT1(QI,Q2,S2,K,L)*PSFAP(Z,J,K-1)*Z
+
+2           FSJ=FSJ+A1(I1)*SJ/DLOG(QT/ALM)/Z**DELH
+            FSJ=FSJ*(ZMAX-ZMIN)
+          ENDIF
+
+3         PSJET1=PSJET1+A1(I)*FSJ*QI*PSUDS(QI,J)
+          PSJET1=PSJET1*(1.D0/QMIN-1.D0/QMAX)/SUD0/DELH/18.D0
+        ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSJET1
+202     FORMAT(2X,'PSJET1=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSJINT(Q1,Q2,S,M,L)
+C PSJINT - inclusive hard cross-section interpolation - for any ordering
+c in the ladder
+c Q1 - effective momentum cutoff for current end of the ladder,
+c Q2 - effective momentum cutoff for opposide end of the ladder,
+c S - total c.m. energy squared for the ladder,
+c M - parton type at current end of the ladder (1 - g, 2 - q)
+c L - parton type at opposite end of the ladder (1 - g, 2 - q)
+C-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION WI(3),WJ(3),WK(3)
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA29/ CSJ(17,17,68)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)S,Q1,Q2,M,L
+201     FORMAT(2X,'PSJINT - UNORDERED LADDER CROSS SECTION INTERPOL.:'/
+     *  4X,'S=',E10.3,2X,'Q1=',E10.3,2X,'Q2=',E10.3,2X,
+     *  2X,'M=',I1,2X,'L=',I1)
+        PSJINT=0.D0
+        QQ=MAX(Q1,Q2)
+      IF(S.LE.MAX(4.D0*QT0,QQ))THEN
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSJINT
+202     FORMAT(2X,'PSJINT=',E10.3)
+        RETURN
+      ENDIF
+
+        ML=17*(M-1)+34*(L-1)
+        QLI=DLOG(Q1/QT0)/1.38629D0
+        QLJ=DLOG(Q2/QT0)/1.38629D0
+        SL=DLOG(S/QT0)/1.38629D0
+        SQL=SL-MAX(QLI,QLJ)
+        I=INT(QLI)
+        J=INT(QLJ)
+        K=INT(SL)
+        IF(I.GT.13)I=13
+        IF(J.GT.13)J=13
+        
+        IF(SQL.GT.10.D0)THEN
+          IF(K.GT.14)K=14
+          IF(I.GT.K-3)I=K-3
+          IF(J.GT.K-3)J=K-3
+          WI(2)=QLI-I
+          WI(3)=WI(2)*(WI(2)-1.D0)*.5D0
+          WI(1)=1.D0-WI(2)+WI(3)
+          WI(2)=WI(2)-2.D0*WI(3)
+          WJ(2)=QLJ-J
+          WJ(3)=WJ(2)*(WJ(2)-1.D0)*.5D0
+          WJ(1)=1.D0-WJ(2)+WJ(3)
+          WJ(2)=WJ(2)-2.D0*WJ(3)
+          WK(2)=SL-K
+          WK(3)=WK(2)*(WK(2)-1.D0)*.5D0
+          WK(1)=1.D0-WK(2)+WK(3)
+          WK(2)=WK(2)-2.D0*WK(3)
+        
+          DO 1 I1=1,3
+          DO 1 J1=1,3
+          DO 1 K1=1,3
+1         PSJINT=PSJINT+CSJ(I+I1,J+J1,K+K1+ML)*WI(I1)*WJ(J1)*WK(K1)
+          PSJINT=EXP(PSJINT)
+        ELSEIF(SQL.LT.1.D0.AND.I+J.NE.0)THEN
+          SQ=(S/MAX(Q1,Q2)-1.D0)/3.D0
+          WI(2)=QLI-I
+          WI(3)=WI(2)*(WI(2)-1.D0)*.5D0
+          WI(1)=1.D0-WI(2)+WI(3)
+          WI(2)=WI(2)-2.D0*WI(3)
+          WJ(2)=QLJ-J
+          WJ(3)=WJ(2)*(WJ(2)-1.D0)*.5D0
+          WJ(1)=1.D0-WJ(2)+WJ(3)
+          WJ(2)=WJ(2)-2.D0*WJ(3)
+
+          DO 2 I1=1,3
+          I2=I+I1
+          DO 2 J1=1,3
+          J2=J+J1
+          K2=MAX(I2,J2)+1+ML
+2         PSJINT=PSJINT+CSJ(I2,J2,K2)*WI(I1)*WJ(J1)
+          PSJINT=EXP(PSJINT)*SQ
+        ELSEIF(K.EQ.1)THEN
+          SQ=(S/QT0/4.D0-1.D0)/3.D0
+          WI(2)=QLI
+          WI(1)=1.D0-QLI
+          WJ(2)=QLJ
+          WJ(1)=1.D0-QLJ
+
+          DO 3 I1=1,2
+          DO 3 J1=1,2
+3         PSJINT=PSJINT+CSJ(I1,J1,3+ML)*WI(I1)*WJ(J1)
+          PSJINT=EXP(PSJINT)*SQ
+        ELSEIF(K.LT.15)THEN
+          KL=INT(SQL)
+          IF(I+KL.GT.12)I=12-KL
+          IF(J+KL.GT.12)J=12-KL
+          IF(I+J+KL.EQ.1)KL=2
+          WI(2)=QLI-I
+          WI(3)=WI(2)*(WI(2)-1.D0)*.5D0
+          WI(1)=1.D0-WI(2)+WI(3)
+          WI(2)=WI(2)-2.D0*WI(3)
+          WJ(2)=QLJ-J
+          WJ(3)=WJ(2)*(WJ(2)-1.D0)*.5D0
+          WJ(1)=1.D0-WJ(2)+WJ(3)
+          WJ(2)=WJ(2)-2.D0*WJ(3)
+          WK(2)=SQL-KL
+          WK(3)=WK(2)*(WK(2)-1.D0)*.5D0
+          WK(1)=1.D0-WK(2)+WK(3)
+          WK(2)=WK(2)-2.D0*WK(3)
+        
+          DO 4 I1=1,3
+          I2=I+I1
+          DO 4 J1=1,3
+          J2=J+J1
+          DO 4 K1=1,3
+          K2=MAX(I2,J2)+KL+K1-1+ML
+4         PSJINT=PSJINT+CSJ(I2,J2,K2)*WI(I1)*WJ(J1)*WK(K1)
+          PSJINT=EXP(PSJINT)
+        ELSE
+          K=15
+          IF(I.GT.K-3)I=K-3
+          IF(J.GT.K-3)J=K-3
+          WI(2)=QLI-I
+          WI(3)=WI(2)*(WI(2)-1.D0)*.5D0
+          WI(1)=1.D0-WI(2)+WI(3)
+          WI(2)=WI(2)-2.D0*WI(3)
+          WJ(2)=QLJ-J
+          WJ(3)=WJ(2)*(WJ(2)-1.D0)*.5D0
+          WJ(1)=1.D0-WJ(2)+WJ(3)
+          WJ(2)=WJ(2)-2.D0*WJ(3)
+          WK(2)=SL-K
+          WK(1)=1.D0-WK(2)
+        
+          DO 5 I1=1,3
+          DO 5 J1=1,3
+          DO 5 K1=1,2
+5         PSJINT=PSJINT+CSJ(I+I1,J+J1,K+K1+ML)*WI(I1)*WJ(J1)*WK(K1)
+          PSJINT=EXP(PSJINT)
+        ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSJINT
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE PSJINT0(S,SJ,SJB,M,L)
+C PSJINT0 - inclusive hard cross-section interpolation - for minimal
+c effective momentum cutoff in the ladder
+c S - total c.m. energy squared for the ladder,
+c SJ - inclusive jet cross-section,
+c SJB - Born cross-section,
+c M - parton type at current end of the ladder (0 - g, 1 - q)
+c L - parton type at opposite end of the ladder (0 - g, 1 - q)
+C-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION WK(3)
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA32/ CSJ(17,2,2),CSB(17,2,2)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)S,M,L
+201     FORMAT(2X,'PSJINT0 - HARD CROSS SECTION INTERPOLATION:'/
+     *  4X,'S=',E10.3,2X,'M=',I1,2X,'L=',I1)
+        SJ=0.D0
+        SJB=0.D0
+      IF(S.LE.4.D0*QT0)THEN
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)SJ,SJB
+202     FORMAT(2X,'PSJINT0: SJ=',E10.3,2X,'SJB=',E10.3)
+        RETURN
+      ENDIF
+
+        SL=DLOG(S/QT0)/1.38629d0
+        K=INT(SL)
+        IF(K.EQ.1)THEN
+          SQ=(S/QT0/4.D0-1.D0)/3.D0
+          SJB=EXP(CSB(3,M+1,L+1))*SQ
+          SJ=EXP(CSJ(3,M+1,L+1))*SQ
+        ELSE
+          IF(K.GT.14)K=14
+          WK(2)=SL-K
+          WK(3)=WK(2)*(WK(2)-1.D0)*.5D0
+          WK(1)=1.D0-WK(2)+WK(3)
+          WK(2)=WK(2)-2.D0*WK(3)
+
+          DO 1 K1=1,3
+          SJ=SJ+CSJ(K+K1,M+1,L+1)*WK(K1)
+1         SJB=SJB+CSB(K+K1,M+1,L+1)*WK(K1)
+          SJB=EXP(SJB)
+          SJ=EXP(SJ)
+        ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)SJ,SJB
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSJINT1(Q1,Q2,S,M,L)
+C PSJINT1 - inclusive hard cross-section interpolation - for strict ordering
+c in the ladder
+c Q1 - effective momentum cutoff for current end of the ladder,
+c Q2 - effective momentum cutoff for opposide end of the ladder,
+c S - total c.m. energy squared for the ladder,
+c M - parton type at current end of the ladder (1 - g, 2 - q)
+c L - parton type at opposite end of the ladder (1 - g, 2 - q)
+C-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION WI(3),WJ(3),WK(3)
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA30/ CSJ(17,17,68)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)S,Q1,Q2,M,L
+201     FORMAT(2X,'PSJINT1 - STRICTLY ORDERED LADDER CROSS SECTION',
+     *  ' INTERPOLATION:'/
+     *  4X,'S=',E10.3,2X,'Q1=',E10.3,2X,'Q2=',E10.3,2X,
+     *  4X,'M=',I1,2X,'L=',I1)
+        PSJINT1=0.D0
+        QQ=MAX(Q1,Q2)
+      IF(S.LE.MAX(4.D0*QT0,QQ))THEN
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSJINT1
+202     FORMAT(2X,'PSJINT1=',E10.3)
+        RETURN
+      ENDIF
+
+        ML=17*(M-1)+34*(L-1)
+        QLI=DLOG(Q1/QT0)/1.38629d0
+        QLJ=DLOG(Q2/QT0)/1.38629d0
+        SL=DLOG(S/QT0)/1.38629d0
+        SQL=SL-MAX(QLI,QLJ)
+        I=INT(QLI)
+        J=INT(QLJ)
+        K=INT(SL)
+        IF(I.GT.13)I=13
+        IF(J.GT.13)J=13
+        
+        IF(SQL.GT.10.D0)THEN
+          IF(K.GT.14)K=14
+          IF(I.GT.K-3)I=K-3
+          IF(J.GT.K-3)J=K-3
+          WI(2)=QLI-I
+          WI(3)=WI(2)*(WI(2)-1.D0)*.5D0
+          WI(1)=1.D0-WI(2)+WI(3)
+          WI(2)=WI(2)-2.D0*WI(3)
+          WJ(2)=QLJ-J
+          WJ(3)=WJ(2)*(WJ(2)-1.D0)*.5D0
+          WJ(1)=1.D0-WJ(2)+WJ(3)
+          WJ(2)=WJ(2)-2.D0*WJ(3)
+          WK(2)=SL-K
+          WK(3)=WK(2)*(WK(2)-1.D0)*.5D0
+          WK(1)=1.D0-WK(2)+WK(3)
+          WK(2)=WK(2)-2.D0*WK(3)
+        
+          DO 1 I1=1,3
+          DO 1 J1=1,3
+          DO 1 K1=1,3
+1         PSJINT1=PSJINT1+CSJ(I+I1,J+J1,K+K1+ML)*WI(I1)*WJ(J1)*WK(K1)
+          PSJINT1=EXP(PSJINT1)
+        ELSEIF(SQL.LT.1.D0.AND.I+J.NE.0)THEN
+          SQ=(S/MAX(Q1,Q2)-1.D0)/3.D0
+          WI(2)=QLI-I
+          WI(3)=WI(2)*(WI(2)-1.D0)*.5D0
+          WI(1)=1.D0-WI(2)+WI(3)
+          WI(2)=WI(2)-2.D0*WI(3)
+          WJ(2)=QLJ-J
+          WJ(3)=WJ(2)*(WJ(2)-1.D0)*.5D0
+          WJ(1)=1.D0-WJ(2)+WJ(3)
+          WJ(2)=WJ(2)-2.D0*WJ(3)
+        
+          DO 2 I1=1,3
+          I2=I+I1
+          DO 2 J1=1,3
+          J2=J+J1
+          K2=MAX(I2,J2)+1+ML
+2         PSJINT1=PSJINT1+CSJ(I2,J2,K2)*WI(I1)*WJ(J1)
+          PSJINT1=EXP(PSJINT1)*SQ
+        ELSEIF(K.EQ.1)THEN
+          SQ=(S/QT0/4.D0-1.D0)/3.D0
+          WI(2)=QLI
+          WI(1)=1.D0-QLI
+          WJ(2)=QLJ
+          WJ(1)=1.D0-QLJ
+
+          DO 3 I1=1,2
+          DO 3 J1=1,2
+3         PSJINT1=PSJINT1+CSJ(I1,J1,3+ML)*WI(I1)*WJ(J1)
+          PSJINT1=EXP(PSJINT1)*SQ
+        ELSEIF(K.LT.15)THEN
+          KL=INT(SQL)
+          IF(I+KL.GT.12)I=12-KL
+          IF(J+KL.GT.12)J=12-KL
+          IF(I+J+KL.EQ.1)KL=2
+        
+          WI(2)=QLI-I
+          WI(3)=WI(2)*(WI(2)-1.D0)*.5D0
+          WI(1)=1.D0-WI(2)+WI(3)
+          WI(2)=WI(2)-2.D0*WI(3)
+          WJ(2)=QLJ-J
+          WJ(3)=WJ(2)*(WJ(2)-1.D0)*.5D0
+          WJ(1)=1.D0-WJ(2)+WJ(3)
+          WJ(2)=WJ(2)-2.D0*WJ(3)
+          WK(2)=SQL-KL
+          WK(3)=WK(2)*(WK(2)-1.D0)*.5D0
+          WK(1)=1.D0-WK(2)+WK(3)
+          WK(2)=WK(2)-2.D0*WK(3)
+        
+          DO 4 I1=1,3
+          I2=I+I1
+          DO 4 J1=1,3
+          J2=J+J1
+          DO 4 K1=1,3
+          K2=MAX(I2,J2)+KL+K1-1+ML
+4         PSJINT1=PSJINT1+CSJ(I2,J2,K2)*WI(I1)*WJ(J1)*WK(K1)
+          PSJINT1=EXP(PSJINT1)
+        ELSE
+          K=15
+          IF(I.GT.K-3)I=K-3
+          IF(J.GT.K-3)J=K-3
+          WI(2)=QLI-I
+          WI(3)=WI(2)*(WI(2)-1.D0)*.5D0
+          WI(1)=1.D0-WI(2)+WI(3)
+          WI(2)=WI(2)-2.D0*WI(3)
+          WJ(2)=QLJ-J
+          WJ(3)=WJ(2)*(WJ(2)-1.D0)*.5D0
+          WJ(1)=1.D0-WJ(2)+WJ(3)
+          WJ(2)=WJ(2)-2.D0*WJ(3)
+          WK(2)=SL-K
+          WK(1)=1.D0-WK(2)
+        
+          DO 5 I1=1,3
+          DO 5 J1=1,3
+          DO 5 K1=1,2
+5         PSJINT1=PSJINT1+CSJ(I+I1,J+J1,K+K1+ML)*WI(I1)*WJ(J1)*WK(K1)
+          PSJINT1=EXP(PSJINT1)
+        ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSJINT1
+        RETURN
+        END
+C=======================================================================
+
+       FUNCTION PSLAM(S,A,B)
+c Kinematical function for two particle decay - maximal Pt-value
+c A - first particle mass squared,
+C B - second particle mass squared,
+C S - two particle invariant mass
+c-----------------------------------------------------------------------
+       IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+       COMMON /AREA43/ MONIOU
+       COMMON /DEBUG/  DEBUG
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)S,A,B
+201     FORMAT(2X,'PSLAM - KINEMATICAL FUNCTION S=',E10.3,2X,'A=',
+     *  E10.3,2X,'B=',E10.3)
+       PSLAM=.25D0/S*(S+A-B)**2-A
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSLAM
+202     FORMAT(2X,'PSLAM=',E10.3)
+       RETURN
+       END
+C=======================================================================
+
+        FUNCTION PSNORM(EP)
+c 4-vector squared calculation
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EP(4)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)EP
+201     FORMAT(2X,'PSNORM - 4-VECTOR SQUARED FOR ',
+     *  'EP=',4(E10.3,1X))
+        PSNORM=EP(1)**2
+        DO 1 I=1,3
+1       PSNORM=PSNORM-EP(I+1)**2
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSNORM
+202     FORMAT(2X,'PSNORM=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE PSREC(EP,QV,ZV,QM,IQV,LDAU,LPAR,IQJ,EQJ,JFL,JQ)
+c Jet reconstructuring procedure - 4-momenta for all final jets are determined
+c EP(i) - jet 4-momentum
+C-----------------------------------------------------------------------
+c QV(i,j) - effective momentum for the branching of the parton in i-th row
+c on j-th level (0 - in case of no branching)
+c ZV(i,j) - Z-value for the branching of the parton in i-th row
+c on j-th level
+c QM(i,j) - mass squared for the parton in i-th row
+c on j-th level
+c IQV(i,j) - flavours for the parton in i-th row on j-th level
+c LDAU(i,j) - first daughter row for the branching of the parton in i-th row
+c on j-th level
+c LPAR(i,j) - the parent row for the parton in i-th row on j-th level
+C-----------------------------------------------------------------------
+       	IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EP(4),EP3(4),EPV(4,30,50),
+     *  QV(30,50),ZV(30,50),QM(30,50),IQV(30,50),
+     *  LDAU(30,49),LPAR(30,50),
+     *  IQJ(2),EQJ(4,2),IPQ(2,30,50),EPQ(8,30,50),
+     *  EPJ(4),EPJ1(4)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)JQ,EP,IQJ
+201     FORMAT(2X,'PSREC - JET RECONSTRUCTURING: JQ=',I1/
+     *  4X,'JET 4-MOMENTUM EP=',4(E10.3,1X)/4X,'IQJ=',2I2)
+        JFL = 1
+        DO 1 I=1,4
+        EPV(I,1,1)=EP(I)
+1       EPQ(I,1,1)=EQJ(I,1)
+        IPQ(1,1,1)=IQJ(1)
+
+        IF(IQV(1,1).EQ.0)THEN
+          DO 2 I=1,4
+2         EPQ(I+4,1,1)=EQJ(I,2)
+          IPQ(2,1,1)=IQJ(2)
+        ENDIF
+
+        NLEV=1
+        NROW=1
+
+3       CONTINUE
+
+        IF(QV(NROW,NLEV).EQ.0.D0)THEN
+           IPJ=IQV(NROW,NLEV)
+           IF(IPJ.NE.0)THEN
+             IF(EPQ(1,NROW,NLEV).NE.0.D0)THEN
+               IF(IABS(IPJ).EQ.3)IPJ=IPJ*4/3
+              DO 4 I=1,4
+              EPJ(I)=EPV(I,NROW,NLEV)
+4             EPJ1(I)=EPQ(I,NROW,NLEV)
+              IPJ1=IPQ(1,NROW,NLEV)
+              IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+              CALL PSJDEF(IPJ,IPJ1,EPJ,EPJ1,JFL)
+        IF(DEBUG.GE.3)WRITE (MONIOU,211)IPJ,IPJ1,JFL
+211     FORMAT(2X,'PSREC - NEW STRING FLAVOURS: ',2I3,' JFL=',I1)
+              IF(JFL.EQ.0)RETURN
+            ELSE
+              IPQ(1,NROW,NLEV)=IPJ
+              DO 5 I=1,4
+5             EPQ(I,NROW,NLEV)=EPV(I,NROW,NLEV)
+        IF(DEBUG.GE.3)WRITE (MONIOU,212)IPJ,
+     *  (EPV(I,NROW,NLEV),I=1,4),JFL
+212     FORMAT(2X,'PSREC: NEW FINAL JET FLAVOR: ',I3,2X,
+     *         'JET 4-MOMENTUM:', 4(E10.3,1X),' JFL=',I1)
+            ENDIF
+            
+           ELSE
+             IPJ=INT(2.D0*PSRAN(B10)+1.D0)*(3-2*JQ)
+            DO 6 I=1,4
+6           EPJ(I)=.5D0*EPV(I,NROW,NLEV)
+ 	      
+            DO 9 M=1,2
+            IF(EPQ(1+4*(M-1),NROW,NLEV).NE.0.D0)THEN
+              DO 7 I=1,4
+7             EPJ1(I)=EPQ(4*(M-1)+I,NROW,NLEV)
+              IPJ1=IPQ(M,NROW,NLEV)
+              IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+              CALL PSJDEF(IPJ,IPJ1,EPJ,EPJ1,JFL)
+              IF(JFL.EQ.0)RETURN
+            ELSE
+              IPQ(M,NROW,NLEV)=IPJ
+              DO 8 I=1,4
+8             EPQ(4*(M-1)+I,NROW,NLEV)=EPJ(I)
+            ENDIF
+9           IPJ=-IPJ
+          ENDIF
+
+        IF(DEBUG.GE.3)WRITE (MONIOU,204)NLEV,NROW,IQV(NROW,NLEV),
+     *  (EPV(I,NROW,NLEV),I=1,4)
+204     FORMAT(2X,'PSREC: FINAL JET AT LEVEL NLEV=',I2,
+     *  ' NROW=',I2/4X,'JET FLAVOR: ',I3,2X,'JET 4-MOMENTUM:',
+     *  4(E10.3,1X))
+         ELSE
+
+          DO 10 I=1,4
+10        EP3(I)=EPV(I,NROW,NLEV)
+          CALL PSDEFROT(EP3,S0X,C0X,S0,C0)
+          Z=ZV(NROW,NLEV)
+          QT2=(Z*(1.D0-Z))**2*QV(NROW,NLEV)
+          LDROW=LDAU(NROW,NLEV)
+
+          WP0=EP3(1)+EP3(2)
+          WPI=Z*WP0
+          WMI=(QT2+QM(LDROW,NLEV+1))/WPI
+          EP3(1)=.5D0*(WPI+WMI)
+          EP3(2)=.5D0*(WPI-WMI)
+          QT=DSQRT(QT2)
+          CALL PSCS(C,S)
+          EP3(3)=QT*C
+          EP3(4)=QT*S
+          CALL PSROTAT(EP3,S0X,C0X,S0,C0)
+
+          DO 11 I=1,4
+11        EPV(I,LDROW,NLEV+1)=EP3(I)
+        IF(DEBUG.GE.3)WRITE (MONIOU,206)NLEV+1,LDROW,EP3
+206     FORMAT(2X,'PSREC: JET AT LEVEL NLEV=',I2,
+     *  ' NROW=',I2/4X,'JET 4-MOMENTUM:',4(E10.3,1X))
+
+          WPI=(1.D0-Z)*WP0
+          WMI=(QT2+QM(LDROW+1,NLEV+1))/WPI
+          EP3(1)=.5D0*(WPI+WMI)
+          EP3(2)=.5D0*(WPI-WMI)
+          EP3(3)=-QT*C
+          EP3(4)=-QT*S
+          CALL PSROTAT(EP3,S0X,C0X,S0,C0)
+        IF(DEBUG.GE.3)WRITE (MONIOU,206)NLEV+1,LDROW+1,EP3
+
+          DO 12 I=1,4
+12        EPV(I,LDROW+1,NLEV+1)=EP3(I)
+
+          IF(IQV(NROW,NLEV).EQ.0)THEN
+            IF(IQV(LDROW,NLEV+1).NE.0)THEN
+              IPQ(1,LDROW,NLEV+1)=IPQ(1,NROW,NLEV)
+              IPQ(1,LDROW+1,NLEV+1)=IPQ(2,NROW,NLEV)
+              DO 13 I=1,4
+              EPQ(I,LDROW,NLEV+1)=EPQ(I,NROW,NLEV)
+13            EPQ(I,LDROW+1,NLEV+1)=EPQ(I+4,NROW,NLEV)
+            ELSE
+              IPQ(1,LDROW,NLEV+1)=IPQ(1,NROW,NLEV)
+              IPQ(2,LDROW,NLEV+1)=0
+              IPQ(1,LDROW+1,NLEV+1)=0
+              IPQ(2,LDROW+1,NLEV+1)=IPQ(2,NROW,NLEV)
+              DO 14 I=1,4
+              EPQ(I,LDROW,NLEV+1)=EPQ(I,NROW,NLEV)
+              EPQ(I+4,LDROW,NLEV+1)=0.D0
+              EPQ(I,LDROW+1,NLEV+1)=0.D0
+14            EPQ(I+4,LDROW+1,NLEV+1)=EPQ(I+4,NROW,NLEV)
+            ENDIF
+          ELSE
+            IF(IQV(LDROW,NLEV+1).EQ.0)THEN
+              IPQ(1,LDROW,NLEV+1)=IPQ(1,NROW,NLEV)
+              IPQ(2,LDROW,NLEV+1)=0
+              IPQ(1,LDROW+1,NLEV+1)=0
+              DO 15 I=1,4
+              EPQ(I,LDROW,NLEV+1)=EPQ(I,NROW,NLEV)
+              EPQ(I+4,LDROW,NLEV+1)=0.D0
+15            EPQ(I,LDROW+1,NLEV+1)=0.D0
+            ELSE
+              IPQ(1,LDROW,NLEV+1)=0
+              IPQ(1,LDROW+1,NLEV+1)=0
+              IPQ(2,LDROW+1,NLEV+1)=IPQ(1,NROW,NLEV)
+              DO 16 I=1,4
+              EPQ(I,LDROW,NLEV+1)=0.D0
+              EPQ(I,LDROW+1,NLEV+1)=0.D0
+16            EPQ(I+4,LDROW+1,NLEV+1)=EPQ(I,NROW,NLEV)
+            ENDIF
+          ENDIF
+
+          NROW=LDROW
+          NLEV=NLEV+1
+          GOTO 3
+        ENDIF
+
+17      CONTINUE
+        IF(NLEV.EQ.1)THEN
+          IQJ(1)=IPQ(1,1,1)
+          DO 18 I=1,4
+18        EQJ(I,1)=EPQ(I,1,1)
+          IF(IQV(1,1).EQ.0)THEN
+            IQJ(2)=IPQ(2,1,1)
+            DO 19 I=1,4
+19          EQJ(I,2)=EPQ(I+4,1,1)
+          ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)iqj
+202     FORMAT(2X,'PSREC - END',2x,'iqj=',2i2)
+        RETURN
+      ENDIF
+
+        LPROW=LPAR(NROW,NLEV)
+
+        IF(LDAU(LPROW,NLEV-1).EQ.NROW)THEN
+           IF(IQV(NROW,NLEV).EQ.0)THEN
+             IF(EPQ(1,LPROW,NLEV-1).EQ.0.D0)THEN
+              IPQ(1,LPROW,NLEV-1)=IPQ(1,NROW,NLEV)
+              DO 20 I=1,4
+20            EPQ(I,LPROW,NLEV-1)=EPQ(I,NROW,NLEV)
+            ENDIF
+            IPQ(1,NROW+1,NLEV)=IPQ(2,NROW,NLEV)
+            DO 21 I=1,4
+21          EPQ(I,NROW+1,NLEV)=EPQ(I+4,NROW,NLEV)
+          ELSE
+            IF(IQV(LPROW,NLEV-1).EQ.0)THEN
+              IF(EPQ(1,LPROW,NLEV-1).EQ.0.D0)THEN
+                IPQ(1,LPROW,NLEV-1)=IPQ(1,NROW,NLEV)
+                DO 22 I=1,4
+22              EPQ(I,LPROW,NLEV-1)=EPQ(I,NROW,NLEV)
+              ENDIF
+            ELSE
+              IPQ(1,NROW+1,NLEV)=IPQ(1,NROW,NLEV)
+              DO 23 I=1,4
+23            EPQ(I,NROW+1,NLEV)=EPQ(I,NROW,NLEV)
+            ENDIF
+          ENDIF
+          NROW=NROW+1
+          GOTO 3
+
+        ELSE
+          IF(IQV(NROW,NLEV).EQ.0)THEN
+            IF(IQV(LPROW,NLEV-1).EQ.0)THEN
+              IF(EPQ(5,LPROW,NLEV-1).EQ.0.D0)THEN
+                IPQ(2,LPROW,NLEV-1)=IPQ(2,NROW,NLEV)
+                DO 24 I=1,4
+24              EPQ(I+4,LPROW,NLEV-1)=EPQ(I+4,NROW,NLEV)
+              ENDIF
+            ELSE
+              IF(EPQ(1,LPROW,NLEV-1).EQ.0.D0)THEN
+                IPQ(1,LPROW,NLEV-1)=IPQ(2,NROW,NLEV)
+                DO 25 I=1,4
+25              EPQ(I,LPROW,NLEV-1)=EPQ(I+4,NROW,NLEV)
+              ENDIF
+            ENDIF
+          ELSE
+            IF(IQV(LPROW,NLEV-1).EQ.0.AND.
+     *      EPQ(5,LPROW,NLEV-1).EQ.0.D0)THEN
+                IPQ(2,LPROW,NLEV-1)=IPQ(1,NROW,NLEV)
+                DO 26 I=1,4
+26              EPQ(I+4,LPROW,NLEV-1)=EPQ(I,NROW,NLEV)
+            ENDIF
+          ENDIF
+
+          NROW=LPROW
+          NLEV=NLEV-1
+          GOTO 17
+        ENDIF
+        END
+C=======================================================================
+
+      FUNCTION PSREJS(S,Z,IQQ)
+c PSREJS - rejection function for the energy sharing for semihard
+c interaction (Hi_semihard(S)/S**delh)
+c S - energy squared for the semihard interaction,
+c Z - impact parameter factor, Z=exp(-b**2/Rp),
+c IQQ - type of the hard interaction (0 - gg, 1 - qg, 2 - gq)
+c-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+      COMMON /AREA17/ DEL,RS,RS0,FS,ALF,RR,SH,DELH
+      COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+      COMMON /AR3/    X1(7),A1(7)
+      COMMON /AREA43/ MONIOU
+      COMMON /DEBUG/  DEBUG
+      SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)S,Z,IQQ
+201     FORMAT(2X,'PSREJS - REJECTION FUNCTION TABULATION: '/
+     *  4X,'S=',E10.3,2X,'Z=',E10.3,2X,'IQQ=',I1)
+      XMIN=4.D0*(QT0+AMJ0)/S
+      XMIN=XMIN**(DELH-DEL)
+      PSREJS=0.D0
+
+c Numerical integration over Z1
+      DO 2 I=1,7
+      DO 2 M=1,2
+      Z1=(.5D0*(1.D0+XMIN-(2*M-3)*X1(I)*(1.D0-XMIN)))**(1.D0/
+     *(DELH-DEL))
+
+c SJ is the inclusive hard partonic interaction
+c cross-section (inclusive cut ladder cross section) for minimal
+c 4-momentum transfer squre QT0 and c.m. energy square s_hard = exp YJ;
+c SJB - Born cross-section
+      YJ=DLOG(Z1*S)
+      CALL PSJINT0(Z1*S,SJ,SJB,IQQ,0)
+c GY= Sigma_hard_tot(YJ,QT0) - total hard partonic
+c interaction cross-section for minimal 4-momentum transfer square QT0 and
+c c.m. energy square s_hard = exp YJ; SH=pi*R_hard**2 (R_hard**2=4/QT0)
+      GY=2.D0*SH*PSGINT((SJ-SJB)/SH*.5D0)+SJB
+      RH=RS0-ALF*DLOG(Z1)
+
+      IF(IQQ.NE.0)THEN
+        PSREJS=PSREJS+A1(I)*GY/(Z1*S)**DELH*Z**(RS0/RH)/RH*
+     *  (1.D0-Z1)*BET
+      ELSE
+        ST2=0.D0
+        DO 1 J=1,7
+1       ST2=ST2+A1(J)*((1.D0-Z1**(.5D0*(1.D0+X1(J))))*
+     *  (1.D0-Z1**(.5D0*(1.D0-X1(J)))))**BET
+
+        PSREJS=PSREJS-A1(I)*DLOG(Z1)*GY/(Z1*S)**DELH*Z**(RS0/RH)/RH*ST2
+      ENDIF
+2     CONTINUE
+      PSREJS=DLOG(PSREJS*(1.D0-XMIN)/Z)
+        IF(DEBUG.GE.2)WRITE (MONIOU,202)PSREJS
+202     FORMAT(2X,'PSREJS=',E10.3)
+      RETURN
+      END
+C=======================================================================
+
+        FUNCTION PSREJV(S)
+c PSREJV - rejection function for the energy sharing for quark-quark hard
+c interaction (sigma_hard(S)/S**delh)
+c S - energy squared for the hard interaction
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA17/ DEL,RS,RS0,FS,ALF,RR,SH,DELH
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)S
+201     FORMAT(2X,'PSREJV - REJECTION FUNCTION TABULATION: ',
+     *  'S=',E10.3)
+c SJ is the inclusive hard QUARK-QUARK interaction
+c cross-section (inclusive cut ladder cross section) for minimal
+c 4-momentum transfer squre QT0 and c.m. energy square s;
+c SJB - Born cross-section
+        CALL PSJINT0(S,SJ,SJB,1,1)
+
+c GY= Sigma_hard_tot(YJ,QT0) - total hard partonic (quark-quark)
+c interaction cross-section for minimal 4-momentum transfer square QT0 and
+c c.m. energy square s; SH=pi*R_hard**2 (R_hard**2=4/QT0)
+        GY=2.D0*SH*PSGINT((SJ-SJB)/SH*.5D0)+SJB
+        PSREJV=DLOG(GY/S**DELH)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSREJV
+202     FORMAT(2X,'PSREJV=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSRJINT(YJ,Z0,IQQ)
+c PSRJINT - Rejection function for the energy sharing (Hi_semih(S)/S**delh)
+c YJ=ln S,
+c Z0 - impact parameter factor, Z0=exp(-b**2/Rp),
+c IQQ - type of hard interaction (0 - gg; 1 - qg, 2 - gq; 3 - qq)
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION A(3)
+        COMMON /AREA1/  IA(2),ICZ,ICP
+        COMMON /AREA17/ DEL,RS,RS0,FS,ALF,RR,SH,DELH
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA23/ RJV(50)
+        COMMON /AREA24/ RJS(50,5,10)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)YJ,Z0,IQQ
+201     FORMAT(2X,'PSRJINT - REJECTION FUNCTION INTERPOLATION:'/
+     *  4X,'YJ=',E10.3,2X,'Z0=',E10.3,2X,'IQQ=',I1)
+        YY=(YJ-AQT0)*2.D0
+        JY=INT(YY)
+
+        IF(IQQ.EQ.3)THEN
+          IF(JY.EQ.0)THEN
+            PSRJINT=EXP(RJV(1))*YY+(EXP(RJV(2))-2.D0*
+     *      EXP(RJV(1)))*YY*(YY-1.D0)*.5D0
+          ELSE
+            PSRJINT=EXP(RJV(JY)+(RJV(JY+1)-RJV(JY))*(YY-JY)
+     *      +(RJV(JY+2)+RJV(JY)-2.D0*RJV(JY+1))*(YY-JY)*
+     *      (YY-JY-1.D0)*.5D0)
+          ENDIF
+        ELSE
+          Z=Z0**(RS/RS0)
+          IQ=(IQQ+1)/2+1+2*(ICZ-1)
+          JZ=INT(5.D0*Z)
+          IF(JZ.GT.3)JZ=3
+          WZ=5.D0*Z-JZ
+
+          IF(JZ.EQ.0)THEN
+            I1=2
+          ELSE
+            I1=1
+          ENDIF
+
+          DO 1 I=I1,3
+          J1=JZ+I-1
+          IF(JY.EQ.0)THEN
+            A(I)=EXP(RJS(1,J1,IQ))*YY+(EXP(RJS(2,J1,IQ))-2.D0*
+     *      EXP(RJS(1,J1,IQ)))*YY*(YY-1.D0)*.5D0
+            IF(A(I).GT.0.D0)THEN
+              A(I)=DLOG(A(I))
+            ELSE
+              A(I)=-80.D0
+            ENDIF
+          ELSE
+            A(I)=RJS(JY,J1,IQ)+(RJS(JY+1,J1,IQ)-
+     *      RJS(JY,J1,IQ))*(YY-JY)
+     *      +(RJS(JY+2,J1,IQ)+RJS(JY,J1,IQ)-2.D0*
+     *      RJS(JY+1,J1,IQ))*(YY-JY)*(YY-JY-1.D0)*.5D0
+          ENDIF
+1         CONTINUE
+
+          IF(JZ.NE.0)THEN
+            PSRJINT=EXP(A(1)+(A(2)-A(1))*WZ+(A(3)+A(1)-2.D0*A(2))*WZ*
+     *      (WZ-1.D0)*.5D0)*Z
+          ELSE
+            PSRJINT=(EXP(A(2))*WZ+(EXP(A(3))-2.D0*EXP(A(2)))*WZ*
+     *      (WZ-1.D0)*.5D0)*Z
+            IF(PSRJINT.LE.0.D0)PSRJINT=1.D-10
+          ENDIF
+        ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSRJINT
+202     FORMAT(2X,'PSRJINT=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSROOT(QLMAX,G,J)
+c PSROOT - effective momentum tabulation for given set of random number
+c values and maximal effective momentum QMAX values - according to the
+c probability of branching: (1 - timelike Sudakov formfactor)
+c QLMAX - ln QMAX/16/QTF,
+c G - dzeta number (some function of ksi)
+c J - type of the parton (1-g,2-q)
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)QLMAX,G,J
+201     FORMAT(2X,'PSQINT - BRANCHING MOMENTUM TABULATION:'/
+     *  4X,'QLMAX=',E10.3,2X,'G=',E10.3,2X,'J=',I1)
+        QL0=0.D0
+        QL1=QLMAX
+        F0=-G
+        F1=1.D0-G
+        SUD0=-DLOG(PSUDINT(QLMAX,J))
+
+1       QL2=QL1-(QL1-QL0)*F1/(F1-F0)
+        IF(QL2.LT.0.D0)THEN
+          QL2=0.D0
+          F2=-G
+        ELSEIF(QL2.GT.QLMAX)THEN
+          QL2=QLMAX
+          F2=1.D0-G
+        ELSE
+          F2=-DLOG(PSUDINT(QL2,J))/SUD0-G
+        ENDIF
+
+        IF(ABS(F2).GT.1.D-3)THEN
+          QL0=QL1
+          QL1=QL2
+          F0=F1
+          F1=F2
+          GOTO 1
+        ELSE
+          PSROOT=QL2
+        ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSROOT
+202     FORMAT(2X,'PSROOT=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE PSROTAT(EP,S0X,C0X,S0,C0)
+c Spacial rotation to the lab. system for 4-vector EP
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EP(4),EP1(3)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)EP,S0X,C0X,S0,C0
+201     FORMAT(2X,'PSROTAT - SPACIAL ROTATION:'/4X,
+     *  '4-VECTOR EP=',4(E10.3,1X)/4X,'S0X=',E10.3,'C0X=',E10.3,
+     *  2X,'S0=',E10.3,'C0=',E10.3)
+        EP1(3)=EP(4)
+        EP1(2)=EP(2)*S0+EP(3)*C0
+        EP1(1)=EP(2)*C0-EP(3)*S0
+
+        EP(2)=EP1(1)
+        EP(4)=EP1(2)*S0X+EP1(3)*C0X
+        EP(3)=EP1(2)*C0X-EP1(3)*S0X
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)EP
+202     FORMAT(2X,'PSROTAT: ROTATED 4-VECTOR EP=',
+     *  2X,4E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSQINT(QLMAX,G,J)
+c PSQINT - effective momentum interpolation for given random number G
+c and maximal effective momentum QMAX
+c QLMAX - ln QMAX/16/QTF,
+c G - random number (0<G<1)
+c J - type of the parton (1-g,2-q)
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION WI(3),WK(3)
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA34/ QRT(10,101,2)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)QLMAX,G,J
+201     FORMAT(2X,'PSQINT - BRANCHING MOMENTUM INTERPOLATION:'/
+     *  4X,'QLMAX=',E10.3,2X,'G=',E10.3,2X,'J=',I1)
+        QLI=QLMAX/1.38629d0
+        SUD0=1.D0/PSUDINT(QLMAX,J)
+        SL=100.D0*DLOG(1.D0-G*(1.D0-SUD0))/DLOG(SUD0)
+        I=INT(QLI)
+        K=INT(SL)
+        IF(K.GT.98)K=98
+        WK(2)=SL-K
+        WK(3)=WK(2)*(WK(2)-1.D0)*.5D0
+        WK(1)=1.D0-WK(2)+WK(3)
+        WK(2)=WK(2)-2.D0*WK(3)
+        PSQINT=0.D0
+
+        IF(I.GT.7)I=7
+        WI(2)=QLI-I
+        WI(3)=WI(2)*(WI(2)-1.D0)*.5D0
+        WI(1)=1.D0-WI(2)+WI(3)
+        WI(2)=WI(2)-2.D0*WI(3)
+
+        DO 1 K1=1,3
+        DO 1 I1=1,3
+1       PSQINT=PSQINT+QRT(I+I1,K+K1,J)*WI(I1)*WK(K1)
+        IF(PSQINT.LE.0.D0)PSQINT=0.D0
+        PSQINT=16.D0*QTF*EXP(PSQINT)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSQINT
+202     FORMAT(2X,'PSQINT=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE PSSHAR(LS,NHP,NW,NT)
+c Inelastic interaction - energy sharing procedure:
+c LS - total number of  cut soft pomeron blocks (froissarons),
+c NHP - total number of hard pomerons,
+c NW - number of interacting projectile nucleons (excluding diffracted),
+c NT - number of target nucleons in active state
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        REAL*16 GBH,GBH0
+        DIMENSION WP(56),WM(56),WHA(1000),WHB(1000),LHA0(56),
+     *  LHB0(56),IZP(56),IZT(56),WP0H(56),WM0H(56),
+     *  WPP(2),WMM(2),EP3(4),LQA0(56),LQB0(56),IPC(2,2),EPC(8,2),
+     *  ILA(56),ILB(56),ELA(4,56),ELB(4,56),EP(4),EP1(4)
+        COMMON /AREA1/  IA(2),ICZ,ICP
+        COMMON /AREA2/  S,Y0,WP0,WM0
+        COMMON /AREA9/  LQA(56),LQB(56),NQS(1000),IAS(1000),
+     *  IBS(1000),LHA(56),LHB(56),ZH(1000),IAH(1000),IBH(1000),
+     *  IQH(1000),LVA(56),LVB(56)
+        COMMON /AREA10/ STMASS,AM(7)
+        COMMON /AREA11/ B10
+        COMMON /AREA12/ NSH
+        COMMON /AREA17/ DEL,RS,RS0,FS,ALFP,RR,SH,DELH
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA19/ AHL(5)
+        COMMON /AREA20/ WPPP
+        COMMON /AREA25/ AHV(5)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        COMMON /AREA47/ NJTOT
+        SAVE
+        IF(DEBUG.GE.1)WRITE (MONIOU,201)NW,NT,NHP,LS
+201     FORMAT(2X,'PSSHARE - ENERGY SHARING PROCEDURE'/
+     *  4X,'NUMBER OF WOUNDED PROJECTILE NUCLEONS(HADRONS) NW=',I2/
+     *  4X,'NUMBER OF TARGET NUCLEONS IN THE ACTIVE STATE NT=',I2/
+     *  4X,'NUMBER OF SEMIHARD BLOCKS NHP=',I3/
+     *  4X,'NUMBER OF SOFT POMERON BLOCKS LS=',I3)
+        NSH1=NSH
+        DO 101 I=1,NW
+101     LQA0(I)=LQA(I)
+        DO 102 I=1,NT
+102     LQB0(I)=LQB(I)
+
+100     NSH=NSH1
+        NJTOT=0
+        DO 103 I=1,NW
+103     LQA(I)=LQA0(I)
+        DO 104 I=1,NT
+104     LQB(I)=LQB0(I)
+c-------------------------------------------------
+c Initial nucleons (hadrons) types recording
+        IF(IA(1).NE.1)THEN
+c IZP(i) - i-th projectile nucleons type (proton - 2, neutron - 3)
+          DO 1 I=1,NW
+1         IZP(I)=INT(2.5+PSRAN(B10))
+        ELSE
+c IZP(1)=ICP - projectile hadron type
+          IZP(1)=ICP
+        ENDIF
+        IF(IA(2).NE.1)THEN
+c IZT(j) - j-th target nucleon type (proton - 2 or neutron - 3)
+          DO 2 I=1,NT
+2         IZT(I)=INT(2.5+PSRAN(B10))
+        ELSE
+c Target proton
+         IZT(1)=2
+        ENDIF
+c-------------------------------------------------
+
+c WREJ - parameter for energy sharing (to minimise rejection)
+        WREJ=.0001D0
+
+3       CONTINUE
+
+        IF(NHP.NE.0)THEN
+        IF(DEBUG.GE.3)WRITE (MONIOU,211)NHP
+211     FORMAT(2X,'PSSHARE: NUMBER OF HARD POMERONS NHP=',I3)
+c-------------------------------------------------
+c-------------------------------------------------
+c Rejection function initialization:
+c-------------------------------------------------
+c energy-momentum will be shared between pomerons
+c according to s**DEL dependence for soft pomeron and
+c according to s**DELH dependence for pomeron with hard block,
+c then rejection is used according to real Sigma_hard(s) dependence.
+c Rejection is expected to be minimal for the uniform energy
+c distribution between pomerons ( s_hard = s / LHA(I) / LHB(J) )
+          GBH0=.6D0
+c NREJ - total number of rejections
+          NREJ=0
+          NHP1=NHP
+
+          DO 5 IH=1,NHP1
+        IF(DEBUG.GE.3)WRITE (MONIOU,212)IH
+212     FORMAT(2X,'PSSHARE: GBH-INI; CONTRIBUTION FROM ',I3,
+     *   '-TH HARD POMERON')
+c-------------------------------------------------
+c LHA(i) (LHB(j)) - total number of cut hard blocks, connected to i-th projectile
+c (j-th target) nucleon (hadron);
+c IAH(ih) (IBH(ih)) - number (position in array) of the projectile (target) nucleon,
+c connected to ih-th hard block;
+c ZH(ih) - factor exp(-R_ij/R_p) for ih-th hard block;
+c IQH(ih) - type of the hard interaction: 0 - gg, 1 - qg, 2 - gq, 3 - qq
+          IQQ=IQH(IH)
+          Z=ZH(IH)
+          I=IAH(IH)
+          J=IBH(IH)
+
+c Uniform energy distribution between hard pomerons
+          ZA=1.D0/LHA(I)
+          ZB=1.D0/LHB(J)
+c SI - c.m. energy squared for one hard block
+          SI=ZA*ZB*S
+
+          IF(SI.LT.4.D0*(QT0+AMJ0))THEN
+c-------------------------------------------------
+c One hard pomeron is removed (the energy is insufficient to simulate
+c great number of pomerons)
+c-------------------------------------------------
+            NHP=NHP-1
+            LHA(I)=LHA(I)-1
+            LHB(J)=LHB(J)-1
+
+            IF(IQQ.EQ.1)THEN
+              LVA(I)=0
+            ELSEIF(IQQ.EQ.2)THEN
+              LVB(J)=0
+            ELSEIF(IQQ.EQ.3)THEN
+              LVA(I)=0
+              LVB(J)=0
+            ENDIF
+c Rewriting of other hard pomerons characteristics
+            IF(NHP.GE.IH)THEN
+              DO 4 IH1=IH,NHP
+              IQH(IH1)=IQH(IH1+1)
+              ZH(IH1)=ZH(IH1+1)
+              IAH(IH1)=IAH(IH1+1)
+4             IBH(IH1)=IBH(IH1+1)
+            ENDIF
+c End of removing - event will be simulated from the very beginning
+c-------------------------------------------------
+            GOTO 3
+          ENDIF
+
+c Total rapidity for the interaction (for one hard block)
+          YI=DLOG(SI)
+          IF(YI.GT.17.D0)YI=17.D0
+c Rejection function normalization (on maximal available energy)
+          GBH0=GBH0/PSRJINT(YI,Z,IQQ)
+5         CONTINUE
+        IF(DEBUG.GE.3)WRITE (MONIOU,213)
+213     FORMAT(2X,'PSSHARE: GBH-INI - END')
+c-------------------------------------------------
+c End of rejection function normalization
+c-------------------------------------------------
+
+c-------------------------------------------------
+c LHA0(i), LHB0(j) arrays are used for energy sharing procedure
+c (they define number of remained cut hard blocks connected to given nucleon from
+c projectile or target respectively);
+c WP, WM - arrays for the rest of light cone momenta (E+-P_l) for those
+c nucleons (hadrons)
+c Hard pomerons connected to valence quarks are excluded from LHA0(i), LHB0(j)
+c (to be considered separetely)
+6         DO 7 I=1,NW
+          LHA0(I)=LHA(I)-LVA(I)
+7         WP(I)=WP0
+
+          DO 8 I=1,NT
+          LHB0(I)=LHB(I)-LVB(I)
+8         WM(I)=WM0
+
+c-------------------------------------------------
+c Projectile valence quarks light cone momenta are choosen according to
+c 1/sqrt(x) * x**delh * (1-x)**AHV(ICZ), ICZ is the type of the projectile
+          DO 10 I=1,NW
+          IF(LVA(I).NE.0)THEN
+9           XW=PSRAN(B10)**(1.D0/(.5D0+DELH))
+            IF(PSRAN(B10).GT.(1.D0-XW)**AHV(ICZ))GOTO 9
+        IF(DEBUG.GE.3)WRITE (MONIOU,214)I,XW
+214     FORMAT(2X,'PSSHARE: ',I2,'-TH PROJ. NUCLEON (HADRON); LIGHT',
+     *  ' CONE MOMENTUM SHARE XW=',E10.3)
+c WP0H(i) -  valence quark light cone momentum for i-th projectile nucleon
+            WP0H(I)=XW*WP(I)
+c WP(i) - the remainder of the light cone momentum for i-th projectile nucleon
+            WP(I)=WP(I)*(1.D0-XW)
+          ENDIF
+10        CONTINUE
+
+c Target valence quarks light cone momenta are choosen according to
+c 1/sqrt(x) * x**delh * (1-x)**AHV(2) (target nucleon)
+          DO 12 I=1,NT
+          IF(LVB(I).NE.0)THEN
+11          XW=PSRAN(B10)**(1.D0/(.5D0+DELH))
+            IF(PSRAN(B10).GT.(1.D0-XW)**AHV(2))GOTO 11
+        IF(DEBUG.GE.3)WRITE (MONIOU,215)I,XW
+215     FORMAT(2X,'PSSHARE: ',I2,'-TH TARGET NUCLEON (HADRON); LIGHT',
+     *  ' CONE MOMENTUM SHARE XW=',E10.3)
+c WM0H(i) -  valence quark light cone momentum for i-th target nucleon
+            WM0H(I)=XW*WM(I)
+c WM(i) - the remainder of the light cone momentum for i-th target nucleon
+            WM(I)=WM(I)*(1.D0-XW)
+          ENDIF
+12        CONTINUE
+c-------------------------------------------------
+
+          GBH=GBH0
+c-------------------------------------------------
+c Cycle over all cut hard blocks
+c-------------------------------------------------
+          DO 18 IH=1,NHP1
+c-------------------------------------------------
+c IAH(ih) (IBH(ih)) - number (position in array) of the projectile (target) nucleon,
+c connected to ih-th hard block;
+c ZH(ih) - factor exp(-R_ij/R_p) for ih-th hard block;
+c IQH(ih) - type of the hard interaction: 0 - gg, 1 - qg, 2 - gq, 3 - qq
+          IQQ=IQH(IH)
+          Z=ZH(IH)
+          I=IAH(IH)
+          J=IBH(IH)
+
+          IF((IQQ-3)*(IQQ-1).EQ.0)THEN
+c WHA(ih) - light cone momentum (E+P_l) for ih-th hard block
+c Read out of the valence quark light cone momentum
+            WHA(IH)=WP0H(I)
+          ELSE
+c LHA0(i) - number of remained cut hard blocks connected to i-th projectile nucleon
+            LHA0(I)=LHA0(I)-1
+c Energy is shared between pomerons according to s**DEL dependence for soft
+c pomeron and according to s**DELH dependence for the hard block;
+c AHL(ICZ) determines energetic spectrum of the leading hadronic state of
+c type ICZ
+            BPI=1.D0/(1.D0+AHL(ICZ)+
+     *      (1.D0+DELH)*LHA0(I))
+c            BPI=1.D0/(1.D0+AHL(ICZ)+(1.D0+DEL)*LQA(I)+
+c     *      (1.D0+DELH)*LHA0(I))
+15          XW=1.-PSRAN(B10)**BPI
+c Rejection according to XW**DELH
+            IF(PSRAN(B10).GT.XW**DELH)GOTO 15
+c WHA(ih) - light cone momentum (E+P_l) for ih-th hard block
+            WHA(IH)=WP(I)*XW
+c WP(i) - the remainder of the light cone momentum for i-th projectile nucleon
+            WP(I)=WP(I)*(1.D0-XW)
+          ENDIF
+
+          IF((IQQ-3)*(IQQ-2).EQ.0)THEN
+c WHB(ih) - light cone momentum (E-P_l) for ih-th hard block
+c Read out of the valence quark light cone momentum
+            WHB(IH)=WM0H(J)
+          ELSE
+c Energy is shared between pomerons - in the same way as above
+            LHB0(J)=LHB0(J)-1
+            BPI=1.D0/(1.D0+AHL(2)+(1.D0+DELH)
+     *      *LHB0(J))
+c            BPI=1.D0/(1.D0+AHL(2)+(1.D0+DEL)*LQB(J)+(1.D0+DELH)
+c     *      *LHB0(J))
+16          XW=1.-PSRAN(B10)**BPI
+            IF(PSRAN(B10).GT.XW**DELH)GOTO 16
+c WHB(ih) - light cone momentum (E-P_l) for ih-th hard block
+            WHB(IH)=WM(J)*XW
+c WM(j) - the remainder of the light cone momentum for j-th target nucleon
+            WM(J)=WM(J)*(1.D0-XW)
+          ENDIF
+
+c Invariant mass for ih-th hard block
+          SW=WHA(IH)*WHB(IH)
+          IF(SW.LT.4.D0*(QT0+AMJ0))THEN
+c Rejection in case of insufficient mass
+            NREJ=NREJ+1
+
+            IF(NREJ.GT.30)THEN
+c-------------------------------------------------
+c In case of great number of rejections number of hard blocks is put down
+c-------------------------------------------------
+c Number of remained hard blocks
+              NHP=NHP-1
+              LHA(I)=LHA(I)-1
+              LHB(J)=LHB(J)-1
+
+              IF(IQQ.EQ.1)THEN
+                LVA(I)=0
+              ELSEIF(IQQ.EQ.2)THEN
+                LVB(J)=0
+              ELSEIF(IQQ.EQ.3)THEN
+                LVA(I)=0
+                LVB(J)=0
+              ENDIF
+
+              IF(NHP.GE.IH)THEN
+                DO 17 IH1=IH,NHP
+                IQH(IH1)=IQH(IH1+1)
+                ZH(IH1)=ZH(IH1+1)
+                IAH(IH1)=IAH(IH1+1)
+17              IBH(IH1)=IBH(IH1+1)
+              ENDIF
+              GOTO 3
+c-------------------------------------------------
+c End of removing - event will be simulated from the very beginning
+c-------------------------------------------------
+
+            ELSE
+              GOTO 6
+            ENDIF
+          ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,216)IH,WHA(IH),WHB(IH),WP(I),WM(J)
+216     FORMAT(2X,'PSSHARE: ',I3,'-TH SEMIHARD BLOCK; LIGHT',
+     *  ' CONE MOMENTA SHARES:',2E10.3/
+     *  4X,'REMAINED LIGHT CONE MOMENTA:',2E10.3)
+
+          YH=DLOG(SW)
+c PSRINT(YH,Z,IQQ) - phi_hard(s_hard) / s_hard ** DELH;
+c YH = ln s_hard;
+c Z - factor exp(-R_ij/R_p) for the hard block;
+c IQQ - type of the hard interaction: 0 - gg, 1 - qg, 2 - gq, 3 - qq
+c Rejection function is multiplied by PSRINT(YH,Z,IQQ) for the ih-th block
+          GBH=GBH*PSRJINT(YH,Z,IQQ)
+18        CONTINUE
+c End of the loop for rejection function determination
+c-------------------------------------------------
+
+c-------------------------------------------------
+c Rejection procedure (due to the deviation of the  phi_hard(s_hard)
+c dependence from pure powerlike  s_hard ** DELH law)
+        IF(DEBUG.GE.2)WRITE (MONIOU,217)1.D0-GBH,NHP
+217     FORMAT(2X,'PSSHARE: REJECTION PROBABILITY:',E10.3,
+     *  2X,'NUMBER OF SEMIHARD BLOCKS:',I3)
+          IF(PSRAN(B10).GT.GBH)THEN
+            NREJ=NREJ+1
+
+            IF(NREJ.GT.30)THEN
+        IF(DEBUG.GE.2)WRITE (MONIOU,218)
+218     FORMAT(2X,'PSSHARE: MORE THAN 30 REJECTIONS - HARD POMERON',
+     *  ' NUMBER IS PUT DOWN')
+c-------------------------------------------------
+c In case of great number of rejections number of hard blocks is put down
+c LNH - number of hard blocks to be removed
+c-------------------------------------------------
+              LNH=1+NHP/20
+              DO 19 IHP=NHP-LNH+1,NHP
+              IIH=IAH(IHP)
+              JIH=IBH(IHP)
+              IQQ=IQH(IHP)
+
+              IF(IQQ.EQ.1)THEN
+                LVA(IIH)=0
+              ELSEIF(IQQ.EQ.2)THEN
+                LVB(JIH)=0
+              ELSEIF(IQQ.EQ.3)THEN
+                LVA(IIH)=0
+                LVB(JIH)=0
+              ENDIF
+
+              LHA(IIH)=LHA(IIH)-1
+19            LHB(JIH)=LHB(JIH)-1
+
+              NHP=NHP-LNH
+              GOTO 3
+c-------------------------------------------------
+c End of removing - event will be simulated from the very beginning
+c-------------------------------------------------
+            ELSE
+              GOTO 6
+            ENDIF
+          ENDIF
+
+***********************************************************************
+          DO 31 I=1,NW
+31        LHA0(I)=LHA(I)
+          DO 32 I=1,NT
+32        LHB0(I)=LHB(I)
+***********************************************************************
+
+c-------------------------------------------------
+c Particle production for all cut pomerons with hard blocks
+c-------------------------------------------------
+          DO 20 IH=1,NHP
+          IQQ=IQH(IH)
+          Z=ZH(IH)
+          I=IAH(IH)
+          J=IBH(IH)
+***********************************************************************
+          LHA0(I)=LHA0(I)-1
+          LHB0(J)=LHB0(J)-1
+***********************************************************************
+c WPI, WMI - light cone momenta for current (ih-th) hard pomeron
+          WPI=WHA(IH)
+          WMI=WHB(IH)
+        IF(DEBUG.GE.2)WRITE (MONIOU,219)IH,IQQ,WPI,WMI,WP(I),WM(J)
+219     FORMAT(2X,'PSSHARE: ',I3,
+     *  '-TH HARD BLOCK; TYPE OF THE INTERACTION:',I1/
+     *  4X,'INITIAL LIGHT CONE MOMENTA:',2E10.3/
+     *  4X,'REMAINED LIGHT CONE MOMENTA:',2E10.3)
+c-------------------------------------------------
+c PSHOT procedure is used for hard partonic interaction -
+c initial jets simulation
+          CALL PSHOT(WPI,WMI,Z,IPC,EPC,IZP(I),IZT(J),ICZ,IQQ)
+          IF(IQQ.EQ.1.OR.IQQ.EQ.3)THEN
+            IF((IABS(IZP(I)).GT.5.OR.IABS(IZP(I)).EQ.3).AND.
+     *      IZP(I).GT.0.OR.IABS(IZP(I)).NE.3.AND.
+     *      IABS(IZP(I)).LE.5.AND.IZP(I).LT.0)THEN
+              JQ=1
+            ELSE
+              JQ=2
+            ENDIF       
+            ILA(I)=IPC(JQ,1)
+            DO 330 L=1,4
+330         ELA(L,I)=EPC(L+4*(JQ-1),1)
+          ENDIF
+          IF(IQQ.EQ.2.OR.IQQ.EQ.3)THEN
+            IF((IABS(IZT(J)).GT.5.OR.IABS(IZT(J)).EQ.3).AND.
+     *      IZT(J).GT.0.OR.IABS(IZT(J)).NE.3.AND.
+     *      IABS(IZT(J)).LE.5.AND.IZT(J).LT.0)THEN
+              JQ=1
+            ELSE
+              JQ=2
+            ENDIF       
+            ILB(J)=IPC(JQ,2)
+            DO 331 L=1,4
+331         ELB(L,J)=EPC(L+4*(JQ-1),2)
+          ENDIF
+          IF(IQQ.EQ.3.AND.ILA(I)+ILB(J).EQ.0)NIAS=J
+c-------------------------------------------------
+c          SW=WP(I)*WM(J)
+c          IF(WP(I).LT.0.D0.OR.WM(J).LT.0.D0.OR.
+c     *    SW.LT.(AM(ICZ)+AM(2))**2)THEN
+c            NREJ=NREJ+1
+c          write (*,*)'i,j,WP(I),WM(J),sw',i,j,WP(I),WM(J),sw
+c            GOTO 100
+c          ENDIF
+
+c Leading hadronic state fragmentation is treated in the same way as low mass
+c diffraction (exhitation mass is determined by secodary reggeon intercept
+c dM**2~M**(-3))
+          IF(LQA(I)+LHA0(I).EQ.0.AND.LQB(J)+LHB0(J).EQ.0)THEN
+            IF(LVA(I).EQ.0.AND.LVB(J).EQ.0)THEN
+              CALL XXDDFR(WP(I),WM(J),IZP(I),IZT(J))
+            ELSEIF(LVA(I).EQ.0)THEN
+              CALL XXDPR(WP(I),WM(J),IZP(I),IZT(J),1)
+              IF(ILB(J).NE.0)THEN
+                DO 341 L=1,4
+341             EP1(L)=ELB(L,J)
+                EP(1)=.5D0*WM(J)
+                EP(2)=-EP(1)
+                EP(3)=0.D0
+                EP(4)=0.D0
+                IPJ1=ILB(J)
+                IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                CALL PSJDEF(IZT(J),IPJ1,EP,EP1,JFL)
+                IF(JFL.EQ.0)GOTO 100
+              ENDIF
+            ELSEIF(LVB(J).EQ.0)THEN
+              CALL XXDTG(WP(I),WM(J),IZP(I),IZT(J),1)
+              IF(ILA(I).NE.0)THEN
+                DO 342 L=1,4
+342             EP1(L)=ELA(L,I)
+                EP(1)=.5D0*WP(I)
+                EP(2)=EP(1)
+                EP(3)=0.D0
+                EP(4)=0.D0
+                IPJ1=ILA(I)
+                IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                CALL PSJDEF(IZP(I),IPJ1,EP,EP1,JFL)
+                IF(JFL.EQ.0)GOTO 100
+              ENDIF
+            ELSE
+              IF(ILA(I).NE.0)THEN
+                DO 343 L=1,4
+343             EP1(L)=ELA(L,I)
+                EP(1)=.5D0*WP(I)
+                EP(2)=EP(1)
+                EP(3)=0.D0
+                EP(4)=0.D0
+                IPJ1=ILA(I)
+                IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                CALL PSJDEF(IZP(I),IPJ1,EP,EP1,JFL)
+                IF(JFL.EQ.0)GOTO 100
+              ENDIF
+              IF(ILB(J).NE.0)THEN
+                DO 351 L=1,4
+351             EP1(L)=ELB(L,J)
+                EP(1)=.5D0*WM(J)
+                EP(2)=-EP(1)
+                EP(3)=0.D0
+                EP(4)=0.D0
+                IPJ1=ILB(J)
+                IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                CALL PSJDEF(IZT(J),IPJ1,EP,EP1,JFL)
+                IF(JFL.EQ.0)GOTO 100
+              ENDIF
+            ENDIF
+          ELSEIF(LQA(I)+LHA0(I).EQ.0)THEN
+            IF(LVA(I).EQ.0)THEN
+              CALL XXDPR(WP(I),WM(J),IZP(I),IZT(J),LQB(J)+LHB0(J))
+            ELSE
+              IF(ILA(I).NE.0)THEN
+                DO 344 L=1,4
+344             EP1(L)=ELA(L,I)
+                EP(1)=.5D0*WP(I)
+                EP(2)=EP(1)
+                EP(3)=0.D0
+                EP(4)=0.D0
+                IPJ1=ILA(I)
+                IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                CALL PSJDEF(IZP(I),IPJ1,EP,EP1,JFL)
+                IF(JFL.EQ.0)GOTO 100
+              ENDIF
+            ENDIF
+          ELSEIF(LQB(J)+LHB0(J).EQ.0)THEN
+            IF(LVB(J).EQ.0)THEN
+              CALL XXDTG(WP(I),WM(J),IZP(I),IZT(J),LQA(I)+LHA0(I))
+            ELSE
+              IF(ILB(J).NE.0)THEN
+                DO 345 L=1,4
+345             EP1(L)=ELB(L,J)
+                EP(1)=.5D0*WM(J)
+                EP(2)=-EP(1)
+                EP(3)=0.D0
+                EP(4)=0.D0
+                IPJ1=ILB(J)
+                IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                CALL PSJDEF(IZT(J),IPJ1,EP,EP1,JFL)
+                IF(JFL.EQ.0)GOTO 100
+              ENDIF
+            ENDIF
+          ENDIF
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+20        CONTINUE
+c-------------------------------------------------
+c End of the hard blocks loop
+c-------------------------------------------------
+
+        ELSE
+c-------------------------------------------------
+c Initial light cone momenta initialization in case of no one cut hard block
+          DO 21 I=1,NW
+21        WP(I)=WP0
+          DO 22 I=1,NT
+22        WM(I)=WM0
+        ENDIF
+
+        IF(LS.NE.0)THEN
+c-------------------------------------------------
+c The loop for all cut froissarons (blocks of soft pomerons)
+c-------------------------------------------------
+          DO 28 IS=1,LS
+c NP=NQS(is) - number of cut pomerons in is-th block;
+c IAS(is) (IBS(is)) - number (position in array) of the projectile (target) nucleon,
+c connected to is-th block of soft pomerons;
+c LQA(i) (LQB(j)) - total number of cut soft pomerons, connected to i-th projectile
+c (j-th target) nucleon (hadron);
+c WP(i) (WM(j)) - the remainder of the light cone momentum for i-th projectile
+c (j-th target) nucleon (hadron);
+c NP=NQS(is) - number of cut pomerons in is-th block;
+c LQ1, LQ2 define the numbers of the remained cut pomerons  connected
+c to given nucleons (hadrons)
+          I=IAS(IS)
+          J=IBS(IS)
+          LQ1=LQA(I)
+          LQ2=LQB(J)
+          WPN=WP(I)
+          WMN=WM(J)
+          NP=NQS(IS)
+      IF(DEBUG.GE.3)WRITE (MONIOU,222)IS,I,J,NP
+222   FORMAT(2X,'PSSHARE: ',I3,'-TH SOFT POMERON BLOCK IS',
+     *      ' CONNECTED TO ',I2,
+     *      '-TH PROJECTILE NUCLEON'/4x,'(HADRON) AND ',I2,
+     *      '-TH TARGET NUCLEON'/
+     *      4X,'NUMBER OF CUT SOFT POMERONS IN THE BLOCK:',I2)
+c-------------------------------------------------
+c The loop for all cut pomerons in the block
+          DO 27 IP=1,NP
+
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+c High mass diffraction - probability WPPP
+14        JPP=0
+          IF(LQ1.EQ.1.AND.WPN.EQ.WP0.AND.PSRAN(B10).LT.WPPP)THEN
+c In case of only one cut soft pomeron high mass diffraction is simulated with the
+c probability WPPP/2 or triple pomeron contribution - also WPPP/2 to have AGK cancell.
+c - only for projectile hadron (nucleons) (for target - neglected)
+c YW is the branching point position (in rapidity)
+            YW=1.D0+PSRAN(B10)*(Y0-2.D0)
+      IF(DEBUG.GE.3)WRITE (MONIOU,223)YW
+223   FORMAT(2X,'PSSHARE: TRIPLE POMERON CONTRIBUTION YW=',E10.3)
+c Light cone momentum (E+P_l) for the diffractive state (which is just usual cut
+c pomeron)
+            XPW=EXP(-YW)
+            JPP=1
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+          ELSE
+            LQ1=LQ1-1
+c Energy-momentum is shared between pomerons according to s**DEL dependence for soft
+c pomeron; AHL(ICZ) determines energy spectrum of leading hadronic
+c state of type ICZ
+            BPI=1.D0/(1.D0+AHL(ICZ)+(1.D0+DEL)*LQ1)
+23          XPW=1.-PSRAN(B10)**BPI
+c Rejection according to XW**DEL
+            IF(PSRAN(B10).GT.XPW**DEL)GOTO 23
+          ENDIF
+
+          LQ2=LQ2-1
+c Energy-momentum is shared between pomerons according to s**DEL dependence for soft
+c pomeron - similar to projectile case
+          BPI=1.D0/(1.D0+AHL(2)+(1.D0+DEL)*LQ2)
+24        XMW=1.-PSRAN(B10)**BPI
+c Rejection according to XW**DEL
+          IF(PSRAN(B10).GT.XMW**DEL)GOTO 24
+c-------------------------------------------------
+
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+c High mass diffraction is rejected in case of insufficient energy
+         IF(JPP.EQ.1.AND.XPW*XMW*WPN*WMN.LT.2.72D0)THEN
+            LQ2=LQ2+1
+            GOTO 14
+          ENDIF
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+c WPI is the light cone momentum (E+P_l) for the pomeron;
+c WPN is the remainder of the light cone momentum for given nucleon (hadron)
+          WPI=WPN*XPW
+          WPN=WPN-WPI
+          WMI=WMN*XMW
+          WMN=WMN-WMI
+
+************************************************************************
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+        IF(LQ1.EQ.0.AND.LVA(I).EQ.0)THEN
+          CALL IXXDEF(IZP(I),IC11,IC12,ICZ)
+        ELSE
+          IC11=0
+          IC12=0
+        ENDIF
+        IF(LQ2.EQ.0.AND.LVB(J).EQ.0)THEN
+          CALL IXXDEF(IZT(J),IC21,IC22,2)
+        ELSE
+          IC21=0
+          IC22=0
+        ENDIF
+
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+c Fragmentation process for the pomeron ( quarks and antiquarks types at the
+c ends of the two strings are determined, energy-momentum is shared
+c between them and strings fragmentation is simulated )
+      IF(DEBUG.GE.3)WRITE (MONIOU,224)IP,WPI,WMI
+224   FORMAT(2X,'PSSHARE: ',I2,'-TH SOFT POMERON IN THE BLOCK'/
+     *      4X,'LIGHT CONE MOMENTA FOR THE POMERON:',2E10.3)
+          CALL XXSTR(WPI,WMI,WPN,WMN,IC11,IC12,IC22,IC21)
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+c Triple pomeron contribution simulation 
+          IF(JPP.EQ.1)THEN
+            IF(PSRAN(B10).LT..5D0)THEN
+              SW=WPN*WMN
+              IF(WPN.LT.0.D0.OR.WMN.LT.0.D0.OR.
+     *        SW.LT.(AM(ICZ)+AM(2))**2)THEN
+          write (*,*)'difr,i,j,WPn,WMn,sw,lq1,lq2',
+     *      i,j,WPn,WMn,sw,lq1,lq2
+                NREJ=NREJ+1
+                GOTO 100
+              ENDIF
+
+              IF(LQ2.EQ.0)THEN
+                CALL XXDTG(WPN,WMN,IZP(I),IZT(J),0)
+              ELSE
+                WP1=WPN
+                WM1=AM(ICZ)**2/WP1
+                EP3(1)=.5D0*(WP1+WM1)
+                EP3(2)=.5D0*(WP1-WM1)
+                EP3(3)=0.D0
+                EP3(4)=0.D0
+                CALL XXREG(EP3,IZP(I))
+                WMN=WMN-WM1
+                WPN=0.D0
+              ENDIF
+              GOTO 30
+            ELSE
+
+c Triple pomeron contribution simulation (both pomerons are cut)	    	    
+      IF(DEBUG.GE.3)WRITE (MONIOU,225)
+225   FORMAT(2X,'PSSHARE: TRIPLE POMERON CONRITRIBUTION WITH 3 CUT',
+     *' POMERONS')
+              WMM(1)=1.D0/WPI
+              WMN=WMN-WMM(1)
+c Light cone momentum (E-P_l) sharing for the two pomerons
+              WMM(2)=WMM(1)*PSRAN(B10)
+              WMM(1)=WMM(1)-WMM(2)
+              LQ1=2
+              DO 26 L=1,2
+              LQ1=LQ1-1
+c Light cone momentum (E+P_l) sharing for the two pomerons
+              BPI=(1.D0+DEL)*LQ1+1.D0+AHL(ICZ)
+              BPI=1.D0/BPI
+25            XPW=1.-PSRAN(B10)**BPI
+              IF(PSRAN(B10).GT.XPW**DEL)GOTO 25
+              WPP(L)=WPN*XPW
+              WPN=WPN*(1.D0-XPW)
+c Fragmentation process for the pomerons
+26            CALL XXSTR(WPP(L),WMM(L),WPN,WMN,0,0,0,0)
+              SW=WPN*WMN
+              IF(WPN.LT.0.D0.OR.WMN.LT.0.D0.OR.
+     *        SW.LT.(AM(ICZ)+AM(2))**2)THEN
+                NREJ=NREJ+1
+                GOTO 100
+              ENDIF
+            ENDIF
+          ENDIF
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+27        CONTINUE
+c End of the pomeron loop
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+c          SW=WPN*WMN
+c          IF(WPN.LT.0.D0.OR.WMN.LT.0.D0.OR.
+c     *    SW.LT.(AM(ICZ)+AM(2))**2)THEN
+c            NREJ=NREJ+1
+c            GOTO 100
+c          ENDIF
+
+c Leading hadronic state fragmentation is treated in the same way as low mass
+c diffraction (exhitation mass is determined by secodary reggeon intercept
+c dM**2~M**(-3))
+          IF(LQ1.EQ.0.AND.LQ2.EQ.0)THEN
+            IF(LVA(I).EQ.0.AND.LVB(J).EQ.0)THEN
+              CALL XXDDFR(WPN,WMN,IZP(I),IZT(J))
+            ELSEIF(LVA(I).EQ.0)THEN
+              CALL XXDPR(WPN,WMN,IZP(I),IZT(J),1)
+              IF(ILB(J).NE.0)THEN
+                DO 346 L=1,4
+346             EP1(L)=ELB(L,J)
+                EP(1)=.5D0*WMN
+                EP(2)=-EP(1)
+                EP(3)=0.D0
+                EP(4)=0.D0
+                IPJ1=ILB(J)
+                IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                CALL PSJDEF(IZT(J),IPJ1,EP,EP1,JFL)
+                IF(JFL.EQ.0)GOTO 100
+              ENDIF
+            ELSEIF(LVB(J).EQ.0)THEN
+              CALL XXDTG(WPN,WMN,IZP(I),IZT(J),1)
+              IF(ILA(I).NE.0)THEN
+                DO 347 L=1,4
+347             EP1(L)=ELA(L,I)
+                EP(1)=.5D0*WPN
+                EP(2)=EP(1)
+                EP(3)=0.D0
+                EP(4)=0.D0
+                IPJ1=ILA(I)
+                IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                CALL PSJDEF(IZP(I),IPJ1,EP,EP1,JFL)
+               IF(JFL.EQ.0)GOTO 100
+              ENDIF
+            ELSE
+              IF(ILA(I).NE.0)THEN
+                DO 348 L=1,4
+348             EP1(L)=ELA(L,I)
+                EP(1)=.5D0*WPN
+                EP(2)=EP(1)
+                EP(3)=0.D0
+                EP(4)=0.D0
+                IPJ1=ILA(I)
+                IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                CALL PSJDEF(IZP(I),IPJ1,EP,EP1,JFL)
+                IF(JFL.EQ.0)GOTO 100
+              ENDIF
+              IF(ILB(J).NE.0)THEN
+                DO 349 L=1,4
+349             EP1(L)=ELB(L,J)
+                EP(1)=.5D0*WMN
+                EP(2)=-EP(1)
+                EP(3)=0.D0
+                EP(4)=0.D0
+                IPJ1=ILB(J)
+                IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                CALL PSJDEF(IZT(J),IPJ1,EP,EP1,JFL)
+                IF(JFL.EQ.0)GOTO 100
+              ENDIF
+            ENDIF
+            
+          ELSEIF(LQ1.EQ.0)THEN
+            IF(LVA(I).EQ.0)THEN
+              CALL XXDPR(WPN,WMN,IZP(I),IZT(J),LQ2)
+            ELSE
+              IF(ILA(I).NE.0)THEN
+                DO 350 L=1,4
+350             EP1(L)=ELA(L,I)
+                EP(1)=.5D0*WPN
+                EP(2)=EP(1)
+                EP(3)=0.D0
+                EP(4)=0.D0
+                IPJ1=ILA(I)
+                IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                CALL PSJDEF(IZP(I),IPJ1,EP,EP1,JFL)
+                IF(JFL.EQ.0)GOTO 100
+              ENDIF
+            ENDIF
+            
+          ELSEIF(LQ2.EQ.0)THEN
+            IF(LVB(J).EQ.0)THEN
+              CALL XXDTG(WPN,WMN,IZP(I),IZT(J),LQ1)
+            ELSE
+              IF(ILB(J).NE.0)THEN
+                DO 352 L=1,4
+352             EP1(L)=ELB(L,J)
+                EP(1)=.5D0*WMN
+                EP(2)=-EP(1)
+                EP(3)=0.D0
+                EP(4)=0.D0
+                IPJ1=ILB(J)
+                IF(IABS(IPJ1).EQ.3)IPJ1=IPJ1*4/3
+                CALL PSJDEF(IZT(J),IPJ1,EP,EP1,JFL)
+                IF(JFL.EQ.0)GOTO 100
+              ENDIF
+            ENDIF
+          ENDIF
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+c-------------------------------------------------
+c The numbers of the remained cut pomerons connected to given nucleons (hadrons)
+c as well as the rest of the longitudinal momenta for these nucleons are
+c recorded
+30        LQA(I)=LQ1
+          LQB(J)=LQ2
+          WP(I)=WPN
+28        WM(J)=WMN
+        ENDIF
+c-------------------------------------------------
+c End of the soft blocks loop
+c-------------------------------------------------
+        IF(IA(1).EQ.1.AND.LVA(1).NE.0.AND.ILA(1).EQ.0)THEN
+          EP(1)=.5D0*WP(1)
+          EP(2)=EP(1)
+          EP(3)=0.D0
+          EP(4)=0.D0
+          EP1(1)=.5D0*WM(NIAS)
+          EP1(2)=-EP1(1)
+          EP1(3)=0.D0
+          EP1(4)=0.D0
+          CALL PSJDEF(IZP(1),IZT(NIAS),EP,EP1,JFL)
+          IF(JFL.EQ.0)GOTO 100
+        ENDIF
+cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+        CALL XXJETSIM
+************************************************************************
+      IF(DEBUG.GE.3)WRITE (MONIOU,227)
+227   FORMAT(2X,'PSSHARE - END')
+        RETURN
+        END
+C=======================================================================
+
+      SUBROUTINE PSTRANS(EP,EY)
+c Lorentz transform according to parameters EY ( determining Lorentz shift
+c along the Z,X,Y-axis respectively (EY(1),EY(2),EY(3)))
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EY(3),EP(4)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)EP,EY
+201     FORMAT(2X,'PSTRANS - LORENTZ BOOST FOR 4-VECTOR'/4X,'EP=',
+     *  2X,4(E10.3,1X)/4X,'BOOST PARAMETERS EY=',3E10.3)
+c Lorentz transform to lab. system according to 1/EY(i) parameters
+        DO 1 I=1,3
+        IF(EY(4-I).NE.1.D0)THEN
+          WP=(EP(1)+EP(5-I))/EY(4-I)
+          WM=(EP(1)-EP(5-I))*EY(4-I)
+          EP(1)=.5D0*(WP+WM)
+          EP(5-I)=.5D0*(WP-WM)
+        ENDIF
+1       CONTINUE
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)EP
+202     FORMAT(2X,'PSTRANS: TRANSFORMED 4-VECTOR EP=',
+     *  2X,4(E10.3,1X))
+        RETURN
+        END
+C=======================================================================
+
+      SUBROUTINE PSTRANS1(EP,EY)
+c Lorentz transform according to parameters EY ( determining Lorentz shift
+c along the Z,X,Y-axis respectively (EY(1),EY(2),EY(3)))
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EY(3),EP(4)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)EP,EY
+201     FORMAT(2X,'PSTRANS1 - LORENTZ BOOST FOR 4-VECTOR'/4X,'EP=',
+     *  2X,4(E10.3,1X)/4X,'BOOST PARAMETERS EY=',3E10.3)
+c Lorentz transform to lab. system according to 1/EY(i) parameters
+          DO 2 I=1,3
+          IF(EY(I).NE.1.D0)THEN
+            WP=(EP(1)+EP(I+1))*EY(I)
+            WM=(EP(1)-EP(I+1))/EY(I)
+            EP(1)=.5D0*(WP+WM)
+            EP(I+1)=.5D0*(WP-WM)
+          ENDIF
+2         CONTINUE
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)EP
+202     FORMAT(2X,'PSTRANS1: TRANSFORMED 4-VECTOR EP=',
+     *  2X,4(E10.3,1X))
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSUDINT(QLMAX,J)
+c PSUDINT - timelike Sudakov formfactor interpolation
+c QLMAX - ln QMAX/16/QTF,
+c J - type of the parton (0-g,1-q)
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION WK(3)
+        COMMON /AREA33/ FSUD(10,2)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)J,QLMAX
+201     FORMAT(2X,'PSUDINT - SPACELIKE FORM FACTOR INTERPOLATION:'/
+     *  4X,'PARTON TYPE J=',
+     *  I1,2X,'MOMENTUM LOGARITHM QLMAX=',E10.3)
+        QL=QLMAX/1.38629d0
+
+        IF(QL.LE.0.D0)THEN
+          PSUDINT=1.D0
+        ELSE
+          K=INT(QL)
+          IF(K.GT.7)K=7
+          WK(2)=QL-K
+          WK(3)=WK(2)*(WK(2)-1.D0)*.5D0
+          WK(1)=1.D0-WK(2)+WK(3)
+          WK(2)=WK(2)-2.D0*WK(3)
+
+          PSUDINT=0.D0
+          DO 1 K1=1,3
+1         PSUDINT=PSUDINT+FSUD(K+K1,J)*WK(K1)
+          IF(PSUDINT.LE.0.D0)PSUDINT=0.D0
+          PSUDINT=EXP(-PSUDINT)
+        ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSUDINT
+202     FORMAT(2X,'PSUDINT=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSUDS(Q,J)
+c PSUDS - spacelike Sudakov formfactor
+c Q - maximal value of the effective momentum,
+c J - type of parton (0 - g, 1 - q)
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA6/  PI,BM,AM
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)J,Q
+201     FORMAT(2X,'PSUDS - SPACELIKE FORM FACTOR: PARTON TYPE J=',
+     *  I1,2X,'MOMENTUM Q=',E10.3)
+        IF(Q.GT.QT0)THEN
+          QLM=DLOG(Q/ALM)
+          PSUDS=(QLM*DLOG(QLM/QLOG)-DLOG(Q/QT0))/9.D0
+
+          IF(J.EQ.0)THEN
+            PSUDS=PSUDS*6.D0
+          ELSE
+            PSUDS=PSUDS/.375D0
+          ENDIF
+          PSUDS=EXP(-PSUDS)
+
+        ELSE
+          PSUDS=1.D0
+        ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSUDS
+202     FORMAT(2X,'PSUDS=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSUDT(QMAX,J)
+c PSUDT - timelike Sudakov formfactor
+c QMAX - maximal value of the effective momentum,
+c J - type of parton (0 - g, 1 - q)
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON/AR3/X1(7),A1(7)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)J,QMAX
+201     FORMAT(2X,'PSUDT - TIMELIKE FORM FACTOR: PARTON TYPE J=',
+     *  I1,2X,'MOMENTUM QMAX=',E10.3)
+        PSUDT=0.D0
+        QLMAX=DLOG(DLOG(QMAX/16.D0/ALM))
+        QFL=DLOG(DLOG(QTF/ALM))
+
+c Numerical integration over transverse momentum square;
+c Gaussian integration is used
+          DO 1 I=1,7
+          DO 1 M=1,2
+          QTL=.5D0*(QLMAX+QFL+(2*M-3)*X1(I)*(QLMAX-QFL))
+          QT=ALM*EXP(EXP(QTL))
+          IF(QT.GE.QMAX/16.D0)QT=QMAX/16.0001D0
+          ZMIN=.5D0-DSQRT((.25D0-DSQRT(QT/QMAX)))
+          ZMAX=1.D0-ZMIN
+          IF(J.EQ.0)THEN
+******************************************************
+            AP=(PSAPINT(ZMAX,0,0)-PSAPINT(ZMIN,0,0)+
+     *      PSAPINT(ZMAX,0,1)-PSAPINT(ZMIN,0,1))*.5D0
+******************************************************
+          ELSE
+            AP=PSAPINT(ZMAX,1,0)-PSAPINT(ZMIN,1,0)
+          ENDIF
+1         PSUDT=PSUDT+A1(I)*AP
+          PSUDT=PSUDT*(QLMAX-QFL)/9.D0
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSUDT
+202     FORMAT(2X,'PSUDT=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSV(X,Y,XB,IB)
+c XXV - eikonal dependent factor for hadron-nucleus interaction
+c (used for total and diffractive hadron-nucleus cross-sections calculation)
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION XB(56,3),FHARD(3)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)X,Y,IB
+201     FORMAT(2X,'PSV - EIKONAL FACTOR: NUCLEON COORDINATES X=',
+     *  E10.3,2X,'Y=',E10.3/4X,'NUMBER OF ACTIVE TARGET NUCLEONS IB='
+     *  ,I2)
+        DV=0.D0
+c????????????????????????????????????????????
+        DO 1 M=1,IB
+        Z=PSDR(X-XB(M,1),Y-XB(M,2))
+        DV=DV+PSFAZ(Z,FSOFT,FHARD,FSHARD)+FHARD(1)+FHARD(2)+FHARD(3)
+1       CONTINUE
+        PSV=(1.D0-EXP(-DV))**2
+
+C       DH=1.D0
+C       DO 1 M=1,IB
+C       Z=PSDR(X-XB(M,1),Y-XB(M,2))
+C       DV=DV+PSFAZ(Z,FSOFT,FHARD,FSHARD)
+C 1     DH=DH*(1.D0-FHARD(1)-FHARD(2)-FHARD(3))
+c????????????????????????????????????????????????
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSV
+202     FORMAT(2X,'PSV=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE PSVDEF(ICH,IC1,ICZ)
+c Determination of valence quark flavour -
+c for valence quark hard scattering
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA11/ B10
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+      SAVE
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)ICH,ICZ
+201     FORMAT(2X,'PSVDEF: HADRON TYPE ICH=',I2,' AUXILLIARY TYPE ICZ='
+     *  ,I1)
+     
+        IS=IABS(ICH)/ICH
+        IF(ICZ.EQ.1)THEN
+          IC1=ICH*(1-3*INT(.5+PSRAN(B10)))
+          ICH=-IC1-ICH
+        ELSEIF(ICZ.EQ.2)THEN
+          IF(PSRAN(B10).GT..33333D0.OR.ICH.LT.0)THEN
+            IC1=ICH-IS
+            ICH=3*IS
+          ELSE
+            IC1=4*IS-ICH
+            ICH=ICH+4*IS
+          ENDIF
+        ELSEIF(ICZ.EQ.3)THEN
+          IC1=ICH-3*IS
+          ICH=-4*IS
+        ELSEIF(ICZ.EQ.4)THEN
+          IC1=ICH-9*IS
+          ICH=5*IS
+        ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)IC1,ICH
+202     FORMAT(2X,'PSVDEF-END: QUARK FLAVOR IC1=',I2,
+     *  'DIQUARK TYPE ICH=',I2)
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION PSZSIM(QQ,J)
+c PSZSIM - light cone momentum share simulation (for the timelike
+c branching)
+c QQ - effective momentum value,
+c J - type of the parent parton (0-g,1-q)
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA11/ B10
+        COMMON /AREA18/ ALM,QT0,QLOG,QLL,AQT0,QTF,BET,AMJ0
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)QQ,J
+201     FORMAT(2X,'PSZSIM - Z-SHARE SIMULATION: QQ=',E10.3,2X,'J=',I1)
+        ZMIN=.5D0-DSQRT(.25D0-DSQRT(QTF/QQ))
+        QLF=DLOG(QTF/ALM)
+
+1       CONTINUE
+        IF(J.EQ.1)THEN
+          PSZSIM=.5D0*(2.D0*ZMIN)**PSRAN(B10)
+******************************************************
+          GB=PSZSIM*(PSFAP(PSZSIM,0,0)+PSFAP(PSZSIM,0,1))/7.5D0
+******************************************************
+        ELSE
+          PSZSIM=ZMIN*((1.D0-ZMIN)/ZMIN)**PSRAN(B10)
+          GB=PSZSIM*PSFAP(PSZSIM,1,0)*.375D0
+        ENDIF
+        QT=QQ*(PSZSIM*(1.D0-PSZSIM))**2
+        GB=GB/DLOG(QT/ALM)*QLF
+        IF(DEBUG.GE.3)WRITE (MONIOU,203)QT,GB
+203     FORMAT(2X,'PSZSIM: QT=',E10.3,2X,'GB=',E10.3)
+        IF(PSRAN(B10).GT.GB)GOTO 1
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)PSZSIM
+202     FORMAT(2X,'PSZSIM=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE IXXDEF(ICH,IC1,IC2,ICZ)
+c Determination of parton flavours in forward and backward direction -
+c for valence quark hard scattering
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA11/ B10
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+      SAVE
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)ICH,ICZ
+201     FORMAT(2X,'IXXDEF: HADRON TYPE ICH=',I2,' AUXILLIARY TYPE ICZ='
+     *  ,I1)
+        IS=IABS(ICH)/ICH
+        IF(ICZ.EQ.1)THEN
+          IC1=ICH*(1-3*INT(.5+PSRAN(B10)))
+          ICH1=ICH*INT(.5D0+PSRAN(B10))
+          IC2=-IC1*IABS(ICH1)-(ICH+IC1)*IABS(ICH-ICH1)
+
+        ELSEIF(ICZ.EQ.2)THEN
+c Valence quark type simulation ( for the proton )
+          IC1=INT(1.3333+PSRAN(B10))
+c Leading nucleon type simulation ( flavors combinatorics )
+          ICH1=(2-IC1)*INT(PSRAN(B10)+.5)+2
+c The type of the parton at the end of the rest string ( after the
+c leading nucleon ejection )
+          IC2=(3-ICH1)*(2-IC1)-2
+
+          IF(IABS(ICH).EQ.3)THEN
+            IC1=3-IC1
+            IC2=-3-IC2
+            ICH1=5-ICH1
+          ENDIF
+          IF(ICH.LT.0)THEN
+            IC1=-IC1
+            IC2=-IC2
+            ICH1=-ICH1
+          ENDIF
+
+        ELSEIF(ICZ.EQ.3)THEN
+          IC1=ICH-3*IS
+          IC2=-IS*INT(1.5+PSRAN(B10))
+          ICH1=3*IS-IC2
+        ELSEIF(ICZ.EQ.4)THEN
+          IC1=ICH-9*IS
+          IC2=IS*INT(1.5+PSRAN(B10))
+          ICH1=9*IS-IC2
+        ELSEIF(ICZ.EQ.5)THEN
+          IC1=IS*INT(1.5+PSRAN(B10))
+          IC2=-IC1
+          ICH1=ICH
+        ENDIF
+
+        ICH=ICH1
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)IC1,IC2,ICH
+202     FORMAT(2X,'IXXDEF-END: PARTON FLAVORS IC1=',I2,' IC2=',I2,
+     *  'NEW HADRON TYPE ICH=',I2)
+        RETURN
+        END
+C=======================================================================
+
+      FUNCTION IXXSON(NS,AW,G)
+c Poisson distribution:
+c AW - average value,
+c NS-1 - maximal allowed value,
+c G - random number
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)NS-1,AW,G
+201     FORMAT(2X,'IXXSON - POISSON DITR.: AVERAGE AW=',E10.3,
+     *  ' MAXIMAL VALUE NS=',I2,' RANDOM NUMBER G=',E10.3)
+      W=EXP(-AW)
+        SUMM=W
+        DO 1 I=1,NS
+        IF(G.LT.SUMM)GOTO 2
+        W=W*AW/I
+1       SUMM=SUMM+W
+2       IXXSON=I-1
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)IXXSON
+202     FORMAT(2X,'IXXSON=',I2)
+        RETURN
+        END
+C=======================================================================
+
+      SUBROUTINE XXAINI(E0N,ICP0,IAP,IAT)
+c Additional initialization procedure
+c-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INTEGER DEBUG
+******************************************************
+      DIMENSION WK(3),WA(3)
+******************************************************
+      COMMON /AREA1/  IA(2),ICZ,ICP
+      COMMON /AREA2/  S,Y0,WP0,WM0
+      COMMON /AREA4/  EY0(3)
+      COMMON /AREA5/  RD(2),CR1(2),CR2(2),CR3(2)
+      COMMON /AREA6/  PI,BM,AM
+      COMMON /AREA7/  RP1
+      COMMON /AREA10/ STMASS,AM0,AMN,AMK,AMC,AMLAMC,AMLAM,AMETA
+      COMMON /AREA15/ FP(5),RQ(5),CD(5)
+      COMMON /AREA17/ DEL,RS,RS0,FS,ALFP,RR,SH,DELH
+      COMMON /AREA22/ SJV,FJS(5,3)
+      COMMON /AREA35/  SJV0(10,5),FJS0(10,5,15)
+      COMMON /AREA43/ MONIOU
+******************************************************
+      COMMON /AREA44/ GZ(10,5,4)
+      COMMON /AREA45/ GDT
+******************************************************
+      COMMON /DEBUG/  DEBUG
+
+        IF(DEBUG.GE.1)WRITE (MONIOU,201)ICP0,IAP,IAT,E0N
+201     FORMAT(2X,'XXAINI - MINIINITIALIZATION: PARTICLE TYPE ICP0=',
+     *  I1,2X,'PROJECTILE MASS NUMBER IAP=',I2/4X,
+     *  'TARGET MASS NUMBER IAT=',I2,' INTERACTION ENERGY E0N=',E10.3)
+      ICP=ICP0
+      IA(1)=IAP
+      IA(2)=IAT
+c ICZ - auxiliary type for the primary particle (1- pion, 2 - nucleon, 3 - kaon,
+c 4 - D-meson, 5 - Lambda_C)
+      IF(IABS(ICP).LT.6)THEN
+        ICZ=IABS(ICP)/2+1
+      ELSE
+        ICZ=(IABS(ICP)+1)/2
+      ENDIF
+
+c Energy dependent factors:
+c WP0, WM0 - initial light cone momenta for the interaction (E+-p)
+      S=2.D0*E0N*AMN
+      WP0=DSQRT(S)
+      WM0=WP0
+c Y0 - total rapidity range for the interaction
+      Y0=DLOG(S)
+c RS - soft pomeron elastic scattering slope (lambda_ab)
+      RS=RQ(ICZ)+ALFP*Y0
+c RS0 - initial slope (sum of the pomeron-hadron vertices slopes squared - R_ab)
+      RS0=RQ(ICZ)
+c FS - factor for pomeron eikonal calculation (gamma_ab * s**del /lambda_ab * C_ab
+      FS=FP(ICZ)*EXP(Y0*DEL)/RS*CD(ICZ)
+c RP1 - factor for the impact parameter dependence of the eikonal ( in fm>2 )
+      RP1=RS*4.D0*.0391D0/AM**2
+
+      EY0(2)=1.D0
+      EY0(3)=1.D0
+      EY0(1)=DSQRT(AMN/E0N/2.D0)
+
+c-------------------------------------------------
+c Nuclear radii and weights for nuclear configurations simulation - procedure GEA
+      DO 1 I=1,2
+c RD(I) - Wood-Saxon density radius (fit to the data of Murthy et al.)
+      RD(I)=0.7D0*FLOAT(IA(I))**.446/AM
+      CR1(I)=1.D0+3.D0/RD(I)+6.D0/RD(I)**2+6.D0/RD(I)**3
+      CR2(I)=3.D0/RD(I)
+      CR3(I)=3.D0/RD(I)+6.D0/RD(I)**2
+      IF(IA(I).LT.10.AND.IA(I).NE.1)THEN
+c RD(I) - gaussian density radius (for light nucleus)
+        RD(I)=.9D0*FLOAT(IA(I))**.3333/AM
+        IF(IA(I).EQ.2)RD(I)=3.16D0
+c RD -> RD * A / (A-1) - to use Van Hove simulation method - procedure GEA
+        RD(I)=RD(I)*DSQRT(2.D0*IA(I)/(IA(I)-1.))
+      ENDIF
+1     CONTINUE
+
+      GDT=0.D0
+c-------------------------------------------------
+c Impact parameter cutoff setting
+c-------------------------------------------------
+      IF(IA(1).NE.1)THEN
+c Primary nucleus:
+c Impact parameter cutoff value ( only impact parameters less than BM are
+c simulated; probability to have larger impact parameter is less than 1% )
+        BM=RD(1)+RD(2)+5.D0
+      ELSE
+c Hadron-nucleus interaction
+c BM - impact parameter cutoff value
+        BM=RD(2)+5.D0
+      ENDIF
+
+      YE=DLOG10(E0N)
+      IF(YE.LT.1.D0)YE=1.D0
+      JE=INT(YE)
+      IF(JE.GT.8)JE=8
+
+******************************************************
+      WK(2)=YE-JE
+      WK(3)=WK(2)*(WK(2)-1.D0)*.5D0
+      WK(1)=1.D0-WK(2)+WK(3)
+      WK(2)=WK(2)-2.D0*WK(3)
+
+      SJV=SJV0(JE,ICZ)*WK(1)+SJV0(JE+1,ICZ)*WK(2)+SJV0(JE+2,ICZ)*WK(3)
+
+      DO 2 I=1,5
+      DO 2 M=1,3
+      M1=M+3*(ICZ-1)
+2     FJS(I,M)=FJS0(JE,I,M1)*WK(1)+FJS0(JE+1,I,M1)*WK(2)+
+     *FJS0(JE+2,I,M1)*WK(3)
+
+      GDT=0.D0
+      IF(IA(1).EQ.1)THEN
+        YA=IA(2)
+        YA=DLOG(YA)/1.38629D0+1.D0
+        JA=MIN(INT(YA),2)
+        WA(2)=YA-JA
+        WA(3)=WA(2)*(WA(2)-1.D0)*.5D0
+        WA(1)=1.D0-WA(2)+WA(3)
+        WA(2)=WA(2)-2.D0*WA(3)
+        DO 3 I=1,3
+        DO 3 M=1,3
+3       GDT=GDT+GZ(JE+I-1,ICZ,JA+M-1)*WK(I)*WA(M)
+      ENDIF
+c        write (*,*)'gdt=',gdt
+******************************************************
+
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'XXAINI - END')
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE XXASET
+c Particular model parameters setting
+c-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INTEGER DEBUG
+      CHARACTER *2 TYQ
+      COMMON /AREA3/  RMIN,EMAX,EEV
+      COMMON /AREA6/  PI,BM,AM
+      COMMON /AREA8/  WWM,BE(4),DC(5),DETA,ALMPT
+      COMMON /AREA10/ STMASS,AM0,AMN,AMK,AMC,AMLAMC,AMLAM,AMETA
+      COMMON /AREA11/ B10
+      COMMON /AREA20/ WPPP
+      COMMON /AREA21/ DMMIN(5)
+      COMMON /AREA28/ ARR(4)
+      COMMON /AREA40/ JDIFR
+      COMMON /AREA42/ TYQ(15)
+      COMMON /AREA43/ MONIOU
+      COMMON /DEBUG/  DEBUG
+
+        IF(DEBUG.GE.1)WRITE (MONIOU,201)
+201     FORMAT(2X,'XXASET - HADRONIZATION PARAMETERS SETTING')
+c Regge intercepts for the uu~, qqq~q~, us~, uc~ trajectories
+      ARR(1)=0.5D0
+      ARR(2)=-.5D0
+      ARR(3)=0.D0
+      ARR(4)=-2.D0
+c WPPP - Triple pomeron interaction probability (for two cut pomerons and cut
+c between them)
+      WPPP=0.4d0
+c      WPPP=0.d0
+c JDIFR - flag for the low mass diffraction (for JDIFR=0 not considered)
+      JDIFR=1
+
+c-------------------------------------------------
+c Parameters for the soft fragmentation:
+c DC(i) - relative probabilities for udu~d~(i=1), ss~(i=2), cc~(i=3)-pairs creation
+c from the vacuum for the quark (u,d,u~,d~) fragmentation;
+c ss~(i=4), cc~(i=5) - for the diquark (ud, u~d~) fragmentation
+      DC(1)=.06D0
+      DC(2)=.10D0
+*     DC(3)=.0003D0     ! To switch off charmed particles set to 0.000
+      DC(3)=.000D0
+      DC(4)=.36D0
+*     DC(5)=.01D0     ! To switch off charmed particles set to 0.000
+      DC(5)=.0D0
+cc  DETA - ratio of etas production density to all pions production density (1/9)
+      DETA=.11111D0
+c WWM defines mass threshold for string to decay into three or more hadrons
+c ( ajustable parameter for string fragmentation )
+      WWM=.53D0
+c BE(i) - parameter for Pt distribution (exponential) for uu~(dd~), ss~, qqq~q~,
+c cc~ pairs respectively (for the soft fragmentation)
+      BE(1)=.22D0
+      BE(2)=.35D0
+      BE(3)=.29D0
+      BE(4)=.40D0
+c ALMPT - parameter for the fragmentation functions (soft ones):
+c ALMPT = 1 + 2 * alfa_R * <pt**2> (Kaidalov proposed 0.5 value for ALMPT-1,
+c Sov.J.Nucl.Phys.,1987))
+      ALMPT=1.7D0
+
+c-------------------------------------------------
+c Parameters for nuclear spectator part fragmentation:
+c RMIN - coupling radius squared (fm>2),
+c EMAX - relative critical energy ( divided per mean excitation energy (~12.5 Mev)),
+c EEV - relative evaporation energy ( divided per mean excitation energy (~12.5 Mev))
+      RMIN=3.35D0
+      EMAX=.11D0
+      EEV=.25D0
+
+c-------------------------------------------------
+c DMMIN(i) - minimal diffractive mass for low-mass diffraction for pion, nucleon,
+c kaon, D-meson, Lambda_C corresp.
+      DMMIN(1)=.76D0
+      DMMIN(2)=1.24D0
+      DMMIN(3)=.89D0
+      DMMIN(4)=2.01D0
+      DMMIN(5)=2.45D0
+c Proton, kaon, pion, D-meson, Lambda, Lambda_C, eta masses
+      AMN=.939D0
+      AMK=.496D0
+      AM0=.14D0
+      AMC=1.868D0
+      AMLAM=1.116D0
+      AMLAMC=2.27D0
+      AMETA=.548D0
+
+c-------------------------------------------------
+c B10 - initial value of the pseudorandom number,
+c PI  - pi-number
+c AM  - diffusive radius for the Saxon-Wood nuclear density parametrization
+      B10=.43876194D0
+      PI=3.1416D0
+      AM=.523D0
+
+C STMASS - minimal string mass to produce secondary particles
+      STMASS=4.D0*AM0**2
+c Here and below all radii, distances and so on are divided by AM.
+      RMIN=RMIN/AM**2
+
+      TYQ(1)='DD'
+      TYQ(2)='UU'
+      TYQ(3)='C '
+      TYQ(4)='S '
+      TYQ(5)='UD '
+      TYQ(6)='D '
+      TYQ(7)='U '
+      TYQ(8)='G '
+      TYQ(9)='u '
+      TYQ(10)='d '
+      TYQ(11)='ud'
+      TYQ(12)='s '
+      TYQ(13)='c '
+      TYQ(14)='uu'
+      TYQ(15)='dd'
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'XXASET - END')
+      RETURN
+      END
+C=======================================================================
+
+        SUBROUTINE XXDDFR(WP0,WM0,ICP,ICT)
+c Double diffractive dissociation
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EP3(4),EP1(4),EP2(4),EY(3)
+        COMMON /AREA1/  IA(2),ICZ,ICP0
+        COMMON /AREA2/  S,Y0,WP00,WM00
+        COMMON /AREA8/  WWM,BE(4),DC(5),DETA,ALMPT
+        COMMON /AREA10/ STMASS,AM(7)
+        COMMON /AREA11/ B10
+        COMMON /AREA21/ DMMIN(5)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)ICP,ICT,WP0,WM0
+201     FORMAT(2X,'XXDDFR - LEADING CLUSTERS HADRONIZATION:'
+     *  /4X,'CLUSTER TYPES ICP=',I2,2X,
+     *  'ICT=',I2/4X,'AVAILABLE LIGHT CONE MOMENTA: WP0=',E10.3,
+     *  ' WM0=',E10.3)
+        DO 100 I=1,3
+100     EY(I)=1.D0
+
+        SD0=WP0*WM0
+        IF(SD0.LT.0.D0)SD0=0.D0
+        DDMIN1=DMMIN(ICZ)
+        DDMIN2=DMMIN(2)
+        DDMAX1=MIN(5.D0,DSQRT(SD0)-DDMIN2)
+
+        IF(DDMAX1.LT.DDMIN1)THEN
+c Registration of too slow "leading" hadron if its energy is insufficient for
+c diffractive exhitation
+          IF(DSQRT(SD0).LT.AM(ICZ)+AM(2))THEN
+            IF(WP0.GT.0.D0.AND.(AM(ICZ)+AM(2))**2/WP0.LT..5D0*WM00)THEN
+              SD0=(AM(ICZ)+AM(2))**2
+              WM0=SD0/WP0
+            ELSE
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+              RETURN
+            ENDIF
+          ENDIF
+
+          EP3(3)=0.D0
+          EP3(4)=0.D0
+          XW=XXTWDEC(SD0,AM(ICZ)**2,AM(2)**2)
+          WP1=XW*WP0
+          WM1=AM(ICZ)**2/WP1
+          EP3(1)=.5D0*(WP1+WM1)
+          EP3(2)=.5D0*(WP1-WM1)
+          CALL XXREG(EP3,ICP)
+          WM2=WM0-WM1
+          WP2=AM(2)**2/WM2
+          EP3(1)=.5D0*(WP2+WM2)
+          EP3(2)=.5D0*(WP2-WM2)
+          CALL XXREG(EP3,ICT)
+          WP0=0.D0
+          WM0=0.D0
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+          RETURN
+        ENDIF
+
+        DMASS1=(DDMIN1/(1.D0-PSRAN(B10)*(1.D0-DDMIN1/DDMAX1)))**2
+        DDMAX2=MIN(5.D0,DSQRT(SD0)-DSQRT(DMASS1))
+        DMASS2=(DDMIN2/(1.D0-PSRAN(B10)*(1.D0-DDMIN2/DDMAX2)))**2
+
+        WPD1=WP0*XXTWDEC(SD0,DMASS1,DMASS2)
+        WMD1=DMASS1/WPD1
+        WMD2=WM0-WMD1
+        WPD2=DMASS2/WMD2
+
+        IF(ICP.NE.0)IS=IABS(ICP)/ICP
+        IF(ICZ.EQ.5)THEN
+          ICH1=ICP
+          ICH2=0
+          AMH1=AM(5)**2
+          AMH2=AM(1)**2
+
+          PTMAX=PSLAM(DMASS1,AMH1,AMH2)
+          IF(PTMAX.LT.0.)PTMAX=0.
+          IF(PTMAX.LT.BE(4)**2)THEN
+1           PTI=PTMAX*PSRAN(B10)
+            IF(PSRAN(B10).GT.EXP(-DSQRT(PTI)/BE(4)))GOTO 1
+          ELSE
+2           PTI=(BE(4)*DLOG(PSRAN(B10)*PSRAN(B10)))**2
+            IF(PTI.GT.PTMAX)GOTO 2
+          ENDIF
+          AMT1=AMH1+PTI
+          AMT2=AMH2+PTI
+          Z=XXTWDEC(DMASS1,AMT1,AMT2)
+          WP1=WPD1*Z
+          WM1=AMT1/WP1
+          EP3(1)=.5D0*(WP1+WM1)
+          EP3(2)=.5D0*(WP1-WM1)
+          PT=DSQRT(PTI)
+          CALL PSCS(C,S)
+          EP3(3)=PT*C
+          EP3(4)=PT*S
+          CALL XXREG(EP3,ICH1)
+
+          WP1=WPD1*(1.D0-Z)
+          WM1=AMT2/WP1
+          EP3(1)=.5D0*(WP1+WM1)
+          EP3(2)=.5D0*(WP1-WM1)
+          EP3(3)=-PT*C
+          EP3(4)=-PT*S
+          CALL XXREG(EP3,ICH2)
+          GOTO 3
+        ENDIF
+
+        IF(ICZ.EQ.1)THEN
+          IF(ICP.NE.0)THEN
+            IC1=ICP*(1-3*INT(.5D0+PSRAN(B10)))
+            IC2=-ICP-IC1
+          ELSE
+            IC1=INT(1.5D0+PSRAN(B10))*(2*INT(.5D0+PSRAN(B10))-1)
+            IC2=-IC1
+          ENDIF
+        ELSEIF(ICZ.EQ.2)THEN
+          IF(PSRAN(B10).GT..33333D0)THEN
+            IC1=3*IS
+            IC2=ICP-IS
+          ELSE
+            IC1=ICP+4*IS
+            IC2=4*IS-ICP
+          ENDIF
+        ELSEIF(ICZ.EQ.3)THEN
+          IC1=-4*IS
+          IC2=ICP-3*IS
+        ELSEIF(ICZ.EQ.4)THEN
+          IC1=5*IS
+          IC2=ICP-9*IS
+        ENDIF
+        CALL XXGENER(WPD1,WMD1,EY,0.D0,1.D0,0.D0,1.D0,IC1,IC2)
+
+3       CONTINUE
+        IS=IABS(ICT)/ICT
+        IF(PSRAN(B10).GT..33333D0)THEN
+          IC1=3*IS
+          IC2=ICT-IS
+        ELSE
+          IC1=ICT+4*IS
+          IC2=4*IS-ICT
+        ENDIF
+        CALL XXGENER(WPD2,WMD2,EY,0.D0,1.D0,0.D0,1.D0,IC2,IC1)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'XXDDFR - END')
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE XXDEC2(EP,EP1,EP2,WW,A,B)
+c Two particle decay
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        dimension ep(4),ep1(4),ep2(4),EY(3)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        COMMON /AREA11/ B10
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)
+201     FORMAT(2X,'XXDEC2 - TWO PARTICLE DECAY')
+
+        PL=PSLAM(WW,A,B)
+        EP1(1)=DSQRT(PL+A)
+        EP2(1)=DSQRT(PL+B)
+        PL=DSQRT(PL)
+        COSZ=2.D0*PSRAN(B10)-1.D0
+        PT=PL*DSQRT(1.D0-COSZ**2)
+        EP1(2)=PL*COSZ
+        CALL PSCS(C,S)
+        EP1(3)=PT*C
+        EP1(4)=PT*S
+        do 1 I=2,4
+1       EP2(I)=-EP1(I)
+        CALL PSDEFTR(WW,EP,EY)
+        CALL PSTRANS(EP1,EY)
+        CALL PSTRANS(EP2,EY)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'XXDEC2 - END')
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE XXDEC3(EP,EP1,EP2,EP3,SWW,AM1,AM2,AM3)
+
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EP(4),EP1(4),EP2(4),EP3(4),EPT(4),EY(3)
+        COMMON/AREA11/B10
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)
+201     FORMAT(2X,'XXDEC3 - THREE PARTICLE DECAY')
+        AM12=AM1**2
+        AM23=(AM2+AM3)**2
+        AM32=(AM2-AM3)**2
+        S23MAX=(SWW-AM1)**2
+        EMAX=.25D0*(SWW+(AM12-AM23)/SWW)**2
+        GB0=DSQRT((EMAX-AM12)/EMAX*(1.D0-AM23/S23MAX)
+     *  *(1.D0-AM32/S23MAX))
+1       P1=PSRAN(B10)*(EMAX-AM12)
+        E1=DSQRT(P1+AM12)
+        S23=SWW**2+AM12-2.D0*E1*SWW
+        GB=DSQRT(P1*(1.D0-AM23/S23)*(1.D0-AM32/S23))/E1/GB0
+        IF(PSRAN(B10).GT.GB)GOTO 1
+
+        P1=DSQRT(P1)
+        EP1(1)=E1
+        COSZ=2.D0*PSRAN(B10)-1.D0
+        PT=P1*DSQRT(1.D0-COSZ**2)
+        EP1(2)=P1*COSZ
+        CALL PSCS(C,S)
+        EP1(3)=PT*C
+        EP1(4)=PT*S
+        do 2 I=2,4
+2       EPT(I)=-EP1(I)
+        EPT(1)=SWW-EP1(1)
+        CALL PSDEFTR(SWW**2,EP,EY)
+        CALL PSTRANS(EP1,EY)
+        CALL PSTRANS(EPT,EY)
+
+        CALL XXDEC2(EPT,EP2,EP3,S23,AM2**2,AM3**2)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'XXDEC3 - END')
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE XXDPR(WP0,WM0,ICP,ICT,LQ2)
+c Projectile hadron dissociation
+c Leading hadronic state hadronization
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EP3(4),EP1(4),EP2(4),EY(3)
+        COMMON /AREA1/  IA(2),ICZ,ICP0
+        COMMON /AREA2/  S,Y0,WP00,WM00
+        COMMON /AREA8/  WWM,BE(4),DC(5),DETA,ALMPT
+        COMMON /AREA10/ STMASS,AM(7)
+        COMMON /AREA11/ B10
+        COMMON /AREA17/ DEL,RS,RS0,FS,ALFP,RR,SH,DELH
+        COMMON /AREA21/ DMMIN(5)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)ICP,ICT,WP0,WM0
+201     FORMAT(2X,'XXDPR - LEADING (PROJECTILE) CLUSTER HADRONIZATION:'
+     *  /4X,'CLUSTER TYPE ICP=',I2,2X,'TARGET TYPE ',
+     *  'ICT=',I2/4X,'AVAILABLE LIGHT CONE MOMENTA: WP0=',E10.3,
+     *  ' WM0=',E10.3)
+        DO 100 I=1,3
+100     EY(I)=1.D0
+
+        SD0=WP0*WM0
+        IF(SD0.LT.0.D0)SD0=0.D0
+        DDMAX=MIN(5.D0,DSQRT(SD0)-AM(2))
+        DDMIN=DMMIN(ICZ)
+
+        IF(DDMAX.LT.DDMIN)THEN
+c Registration of too slow "leading" hadron if its energy is insufficient for
+c diffractive exhitation
+          EP3(3)=0.D0
+          EP3(4)=0.D0
+
+          IF(LQ2.NE.0)THEN
+            WPI=WP0
+            IF(AM(ICZ)**2.GT.WPI*WM0)THEN
+              IF(WPI.GT.0.D0.AND.AM(ICZ)**2/WPI.LT..5D0*WM00)THEN
+                WMI=AM(ICZ)**2/WPI
+                WM0=WMI
+              ELSE
+                RETURN
+              ENDIF
+            ENDIF
+            WM0=WM0-WMI
+            WP0=0.D0
+            EP3(1)=.5D0*(WPI+WMI)
+            EP3(2)=.5D0*(WPI-WMI)
+            CALL XXREG(EP3,ICP)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+            RETURN
+          ELSE
+
+            IF(DSQRT(SD0).LT.AM(ICZ)+AM(2))THEN
+              IF(WP0.GT.0.D0.AND.(AM(ICZ)+AM(2))**2/WP0.LT..5D0*WM00)
+     *        THEN
+                SD0=(AM(ICZ)+AM(2))**2
+                WM0=SD0/WP0
+              ELSE
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+                RETURN
+              ENDIF
+            ENDIF
+            XW=XXTWDEC(SD0,AM(ICZ)**2,AM(2)**2)
+            WP1=XW*WP0
+            WM1=AM(ICZ)**2/WP1
+            EP3(1)=.5D0*(WP1+WM1)
+            EP3(2)=.5D0*(WP1-WM1)
+            CALL XXREG(EP3,ICP)
+            WM2=WM0-WM1
+            WP2=AM(2)**2/WM2
+            EP3(1)=.5D0*(WP2+WM2)
+            EP3(2)=.5D0*(WP2-WM2)
+            CALL XXREG(EP3,ICT)
+            WP0=0.D0
+            WM0=0.D0
+          ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+          RETURN
+        ENDIF
+
+        IF(ICP.NE.0)IS=IABS(ICP)/ICP
+
+        DMASS=DDMIN**2/(1.D0-PSRAN(B10)*(1.D0-(DDMIN/DDMAX)))**2
+
+        IF(LQ2.NE.0)THEN
+          WPD=WP0
+          WMD=DMASS/WPD
+          WM0=WM0-WMD
+          WP0=0.D0
+        ELSE
+        IF(ICZ.EQ.5)THEN
+          WPD=WP0*XXTWDEC(SD0,DMASS,AM(2)**2)
+          WMD=DMASS/WPD
+          WM2=WM0-WMD
+          WP2=AM(2)**2/WM2
+          EP3(1)=.5D0*(WP2+WM2)
+          EP3(2)=.5D0*(WP2-WM2)
+          EP3(3)=0.D0
+          EP3(4)=0.D0
+          CALL XXREG(EP3,ICT)
+        ELSE
+          PTMAX=PSLAM(SD0,DMASS,AM(2)**2)
+          IF(PTMAX.LT.0.)PTMAX=0.
+          PTI=-1.D0/RS*DLOG(1.D0-PSRAN(B10)*(1.D0-EXP(-RS*PTMAX)))
+
+          AMT1=DMASS+PTI
+          AMT2=AM(2)**2+PTI
+          WPD=WP0*XXTWDEC(SD0,AMT1,AMT2)
+          WMD=AMT1/WPD
+          WM2=WM0-WMD
+          WP2=AMT2/WM2
+          PT=DSQRT(PTI)
+          CALL PSCS(CCOS,SSIN)
+          EP3(3)=PT*CCOS
+          EP3(4)=PT*SSIN
+          EP3(1)=.5D0*(WP2+WM2)
+          EP3(2)=.5D0*(WP2-WM2)
+          CALL XXREG(EP3,ICT)
+          EP3(3)=-EP3(3)
+          EP3(4)=-EP3(4)
+          EP3(1)=.5D0*(WPD+WMD)
+          EP3(2)=.5D0*(WPD-WMD)
+          CALL PSDEFTR(DMASS,EP3,EY)
+          WPD=DSQRT(DMASS)
+          WMD=WPD
+        ENDIF
+          WP0=0.D0
+          WM0=0.D0
+        ENDIF
+
+        IF(ICZ.EQ.5)THEN
+          ICH1=ICP
+          ICH2=0
+          AMH1=AM(5)**2
+          AMH2=AM(1)**2
+
+          PTMAX=PSLAM(DMASS,AMH1,AMH2)
+          IF(PTMAX.LT.0.)PTMAX=0.
+          IF(PTMAX.LT.BE(4)**2)THEN
+1           PTI=PTMAX*PSRAN(B10)
+            IF(PSRAN(B10).GT.EXP(-DSQRT(PTI)/BE(4)))GOTO 1
+          ELSE
+2           PTI=(BE(4)*DLOG(PSRAN(B10)*PSRAN(B10)))**2
+            IF(PTI.GT.PTMAX)GOTO 2
+          ENDIF
+          AMT1=AMH1+PTI
+          AMT2=AMH2+PTI
+          Z=XXTWDEC(DMASS,AMT1,AMT2)
+          WP1=WPD*Z
+          WM1=AMT1/WP1
+          EP3(1)=.5D0*(WP1+WM1)
+          EP3(2)=.5D0*(WP1-WM1)
+          PT=DSQRT(PTI)
+          CALL PSCS(C,S)
+          EP3(3)=PT*C
+          EP3(4)=PT*S
+          CALL XXREG(EP3,ICH1)
+
+          WP1=WPD*(1.D0-Z)
+          WM1=AMT2/WP1
+          EP3(1)=.5D0*(WP1+WM1)
+          EP3(2)=.5D0*(WP1-WM1)
+          EP3(3)=-PT*C
+          EP3(4)=-PT*S
+          CALL XXREG(EP3,ICH2)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+          RETURN
+        ENDIF
+
+        IF(ICZ.EQ.1)THEN
+          IF(ICP.NE.0)THEN
+            IC1=ICP*(1-3*INT(.5D0+PSRAN(B10)))
+            IC2=-ICP-IC1
+          ELSE
+            IC1=INT(1.5D0+PSRAN(B10))*(2*INT(.5D0+PSRAN(B10))-1)
+            IC2=-IC1
+          ENDIF
+        ELSEIF(ICZ.EQ.2)THEN
+          IF(PSRAN(B10).GT..33333D0)THEN
+            IC1=3*IS
+            IC2=ICP-IS
+          ELSE
+            IC1=ICP+4*IS
+            IC2=4*IS-ICP
+          ENDIF
+        ELSEIF(ICZ.EQ.3)THEN
+          IC1=-4*IS
+          IC2=ICP-3*IS
+        ELSEIF(ICZ.EQ.4)THEN
+          IC1=5*IS
+          IC2=ICP-9*IS
+        ENDIF
+        CALL XXGENER(WPD,WMD,EY,0.D0,1.D0,0.D0,1.D0,
+     *  IC1,IC2)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'XXDPR - END')
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE XXDTG(WP0,WM0,ICP,ICT,LQ1)
+c Target nucleon dissociation 
+c Leading hadronic state hadronization
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EP3(4),EY(3)
+        COMMON /AREA1/  IA(2),ICZ,ICP0
+        COMMON /AREA2/  S,Y0,WP00,WM00
+        COMMON /AREA10/ STMASS,AM(7)
+        COMMON /AREA11/ B10
+        COMMON /AREA17/ DEL,RS,RS0,FS,ALFP,RR,SH,DELH
+        COMMON /AREA21/ DMMIN(5)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)ICT,ICP,WP0,WM0
+201     FORMAT(2X,'XXDTG - LEADING (TARGET) CLUSTER HADRONIZATION:'
+     *  /4X,'CLUSTER TYPE ICT=',I2,2X,'PROJECTILE TYPE ',
+     *  'ICP=',I2/4X,'AVAILABLE LIGHT CONE MOMENTA: WP0=',E10.3,
+     *  ' WM0=',E10.3)
+        DO 100 I=1,3
+100     EY(I)=1.D0
+
+        SD0=WP0*WM0
+        IF(SD0.LT.0.D0)SD0=0.D0
+        DDMIN=DMMIN(2)
+        DDMAX=MIN(5.D0,DSQRT(SD0)-AM(ICZ))
+
+        IF(DDMAX.LT.DDMIN)THEN
+c Registration of too slow "leading" hadron if its energy is insufficient for
+c diffractive exhitation
+          EP3(3)=0.D0
+          EP3(4)=0.D0
+
+          IF(LQ1.NE.0)THEN
+            WMI=WM0
+            IF( WP0.LE.0.D0.OR.AM(2)**2.GT.WMI*WP0)RETURN
+            WPI=AM(2)**2/WMI
+            WP0=WP0-WPI
+            WM0=0.D0
+            EP3(1)=.5D0*(WPI+WMI)
+            EP3(2)=.5D0*(WPI-WMI)
+            CALL XXREG(EP3,ICT)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+            RETURN
+          ELSE
+
+            IF(DSQRT(SD0).LT.AM(ICZ)+AM(2))THEN
+              IF(WP0.GT.0.D0.AND.(AM(ICZ)+AM(2))**2/WP0.LT..5D0*WM00)
+     *        THEN
+                SD0=(AM(ICZ)+AM(2))**2
+                WM0=SD0/WP0
+              ELSE
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+                RETURN
+              ENDIF
+            ENDIF
+            XW=XXTWDEC(SD0,AM(ICZ)**2,AM(2)**2)
+            WP1=XW*WP0
+            WM1=AM(ICZ)**2/WP1
+            EP3(1)=.5D0*(WP1+WM1)
+            EP3(2)=.5D0*(WP1-WM1)
+            CALL XXREG(EP3,ICP)
+            WM2=WM0-WM1
+            WP2=AM(2)**2/WM2
+            EP3(1)=.5D0*(WP2+WM2)
+            EP3(2)=.5D0*(WP2-WM2)
+            CALL XXREG(EP3,ICT)
+            WP0=0.D0
+            WM0=0.D0
+          ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+          RETURN
+        ENDIF
+
+        DMASS=(DDMIN/(1.D0-PSRAN(B10)*(1.D0-DDMIN/DDMAX)))**2
+        IF(LQ1.NE.0)THEN
+          WMD=WM0
+          WPD=DMASS/WMD
+          WP0=WP0-WPD
+          WM0=0.D0
+        ELSE
+          PTMAX=PSLAM(SD0,DMASS,AM(ICZ)**2)
+          IF(PTMAX.LT.0.)PTMAX=0.
+          PTI=-1.D0/RS*DLOG(1.D0-PSRAN(B10)*(1.D0-EXP(-RS*PTMAX)))
+
+          AMT1=DMASS+PTI
+          AMT2=AM(ICZ)**2+PTI
+          WMD=WM0*XXTWDEC(SD0,AMT1,AMT2)
+          WPD=AMT1/WMD
+          WP2=WP0-WPD
+          WM2=AMT2/WP2
+          PT=DSQRT(PTI)
+          CALL PSCS(CCOS,SSIN)
+          EP3(3)=PT*CCOS
+          EP3(4)=PT*SSIN
+          EP3(1)=.5D0*(WP2+WM2)
+          EP3(2)=.5D0*(WP2-WM2)
+          CALL XXREG(EP3,ICP)
+          EP3(3)=-EP3(3)
+          EP3(4)=-EP3(4)
+          EP3(1)=.5D0*(WPD+WMD)
+          EP3(2)=.5D0*(WPD-WMD)
+          CALL PSDEFTR(DMASS,EP3,EY)
+          WPD=DSQRT(DMASS)
+          WMD=WPD
+          WP0=0.D0
+          WM0=0.D0
+        ENDIF
+
+        IS=IABS(ICT)/ICT
+        IF(PSRAN(B10).GT..33333D0)THEN
+          IC1=3*IS
+          IC2=ICT-IS
+        ELSE
+          IC1=ICT+4*IS
+          IC2=4*IS-ICT
+        ENDIF
+        CALL XXGENER(WPD,WMD,EY,
+     *  0.D0,1.D0,0.D0,1.D0,IC2,IC1)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'XXDTG - END')
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE XXFAU(B,GZ)
+c Integrands for hadron-hadron and hadron-nucleus cross-sections calculation
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION GZ(3),GZ0(2)
+        COMMON /AREA1/  IA(2),ICZ,ICP
+        COMMON /AREA16/ CC(5)
+        COMMON /AR1/    ANORM
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)
+201     FORMAT(2X,'XXFAU - INTEGRANDS FOR HADRON-HADRON AND '
+     *  'HADRON-NUCLEUS CROSS-SECTIONS CALCULATION')
+
+        CALL XXFZ(B,GZ0)
+        DO 1 L=1,2
+1       GZ0(L)=GZ0(L)*CC(2)*ANORM*.5D0
+
+        AB=FLOAT(IA(2))
+
+        GZ1=(1.D0-GZ0(1))**AB
+        GZ2=(1.D0-GZ0(2))**AB
+        GZ3=(1.D0-CC(2)*GZ0(2)-2.D0*(1.D0-CC(2))*GZ0(1))**AB
+
+
+        GZ(1)=CC(ICZ)**2*(GZ2-GZ3)
+        GZ(2)=CC(ICZ)*(1.D0-CC(ICZ))*(1.D0+GZ2-2.D0*GZ1)
+        GZ(3)=CC(ICZ)*(1.D0-GZ2)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'XXFAU - END')
+        RETURN
+        END
+C=======================================================================
+
+         SUBROUTINE XXFRAG(SA,NA,RC)
+c Connected nucleon clasters extraction - used for the nuclear spectator part
+c multifragmentation:
+c-----------------------------------------------------------------------
+         IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+         INTEGER DEBUG
+         DIMENSION SA(56,3)
+         COMMON /AREA13/ NSF,IAF(56)
+         COMMON /AREA43/ MONIOU
+         COMMON /DEBUG/  DEBUG
+         SAVE
+         IF(DEBUG.GE.2)WRITE (MONIOU,201)NA
+201      FORMAT(2X,'XXFRAG-MULTIFRAGMENTATION: NUCLEUS MASS NUMBER: NA='
+     *   ,I2)
+         IF(DEBUG.GE.3)THEN
+           WRITE (MONIOU,203)
+203        FORMAT(2X,'NUCLEONS COORDINATES:')
+204        FORMAT(2X,3E10.3)
+           DO 205 I=1,NA
+205        WRITE (MONIOU,204)(SA(I,L),L=1,3)
+         ENDIF
+
+         NI=1
+         NG=1
+         J=0
+1        J=J+1
+         J1=NI+1
+         DO 4 I=J1,NA
+         RI=0.D0
+         DO 2 M=1,3
+2        RI=RI+(SA(J,M)-SA(I,M))**2
+         IF(RI.GT.RC)GOTO 4
+         NI=NI+1
+         NG=NG+1
+         IF(I.EQ.NI)GOTO 4
+         DO 3 M=1,3
+         S0=SA(NI,M)
+         SA(NI,M)=SA(I,M)
+3        SA(I,M)=S0
+4        CONTINUE
+         IF(J.LT.NI.AND.NA-NI.GT.0)GOTO 1
+         NSF=NSF+1
+         IAF(NSF)=NG
+         IF(DEBUG.GE.3)WRITE (MONIOU,206)NSF,IAF(NSF)
+206      FORMAT(2X,'XXFRAG: FRAGMENT N',I2,2X,'FRAGMENT MASS - ',I2)
+         NG=1
+         J=NI
+         NI=NI+1
+         IF(NA-NI)6,5,1
+5        NSF=NSF+1
+         IAF(NSF)=1
+         IF(DEBUG.GE.3)WRITE (MONIOU,206)NSF,IAF(NSF)
+6        CONTINUE
+         IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202      FORMAT(2X,'XXFRAG - END')
+         RETURN
+         END
+C=======================================================================
+
+      SUBROUTINE XXFRAGM(NS,XA)
+c Fragmentation of the spectator part of the nucleus
+c XA(56,3) - arrays for spectator nucleons positions
+c NS - total number of spectators
+c-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION XA(56,3)
+      INTEGER DEBUG
+      COMMON /AREA1/  IA(2),ICZ,ICP
+      COMMON /AREA3/  RMIN,EMAX,EEV
+      COMMON /AREA11/ B10
+c NSF - number of secondary fragments;
+c IAF(i) - mass of the i-th fragment
+      COMMON /AREA13/ NSF,IAF(56)
+      COMMON /AREA43/ MONIOU
+      COMMON /DEBUG/  DEBUG
+      SAVE
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)NS
+201     FORMAT(2X,'XXFRAGM: NUMBER OF SPECTATORS: NS=',I2)
+
+        NSF=0
+
+        IF(NS-1)6,1,2
+c Single spectator nucleon is recorded
+1     NSF=NSF+1
+      IAF(NSF)=1
+        IF(DEBUG.GE.3)WRITE (MONIOU,205)
+205     FORMAT(2X,'XXFRAGM - SINGLE SPECTATOR')
+        GOTO 6
+2       EEX=0.D0
+c EEX - spectator part excitation energy; calculated as the sum of excitations
+c from all wounded nucleons ( including diffractively excited )
+        DO 3 I=1,IA(1)-NS
+c Partial excitation is simulated according to distribution f(E) ~ 1/sqrt(E)
+c * exp(-E/(2*<E>)), for sqrt(E) we have then normal distribution
+3     EEX=EEX+(PSRAN(B10)+PSRAN(B10)+PSRAN(B10)+
+     *      PSRAN(B10)+PSRAN(B10)-2.5D0)**2*2.4D0
+        IF(DEBUG.GE.3)WRITE (MONIOU,203)EEX
+203     FORMAT(2X,'XXFRAGM: EXCITATION ENERGY: EEX=',E10.3)
+
+c If the excitation energy per spectator is larger than EMAX
+c multifragmentation takes place ( percolation algorithm is used for it )
+        IF(EEX/NS.GT.EMAX)THEN
+c Multifragmentation
+          CALL XXFRAG(XA,NS,RMIN)
+        ELSE
+
+c Otherwise average number of eveporated nucleons equals EEX/EEV, where
+c EEV - mean excitation energy carried out by one nucleon
+          NF=IXXSON(NS,EEX/EEV,PSRAN(B10))
+          NSF=NSF+1
+c Recording of the fragment produced
+          IAF(NSF)=NS-NF
+        IF(DEBUG.GE.3)WRITE (MONIOU,206)IAF(NSF)
+206     FORMAT(2X,'XXFRAGM - EVAPORATION: MASS NUMBER OF THE FRAGMENT:'
+     *  ,I2)
+
+c Some part of excitation energy is carried out by alphas; we determine the
+c number of alphas simply as NF/4
+          NAL=NF/4
+          IF(NAL.NE.0)THEN
+c Recording of the evaporated alphas
+            DO 4 I=1,NAL
+            NSF=NSF+1
+4           IAF(NSF)=4
+          ENDIF
+
+          NF=NF-4*NAL
+          IF(NF.NE.0)THEN
+c Recording of the evaporated nucleons
+            DO 5 I=1,NF
+            NSF=NSF+1
+5           IAF(NSF)=1
+          ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,204)NF,NAL
+204     FORMAT(2X,'XXFRAGM - EVAPORATION: NUMBER OF NUCLEONS NF=',I2,
+     *  'NUMBER OF ALPHAS NAL=',I2)
+        ENDIF
+6       CONTINUE
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'XXFRAGM - END')
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE XXFZ(B,GZ)
+c Hadron-hadron and hadron-nucleus cross sections calculation
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION GZ(2),FHARD(3)
+        COMMON /AREA1/  IA(2),ICZ,ICP
+        COMMON /AREA2/  S,Y0,WP0,WM0
+        COMMON /AREA7/  RP1
+        COMMON /AR3/    X1(7),A1(7)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)
+201     FORMAT(2X,'XXFZ - HADRONIC CROSS-SECTIONS CALCULATION')
+
+        DO 1 L=1,2
+1       GZ(L)=0.D0
+        E1=EXP(-1.D0)
+
+        DO 2 I1=1,7
+        DO 2 M=1,2
+        Z=.5D0+X1(I1)*(M-1.5D0)
+        S1=DSQRT(RP1*Z)
+        ZV1=EXP(-Z)
+        S2=DSQRT(RP1*(1.D0-DLOG(Z)))
+        ZV2=E1*Z
+C??????????
+C       VV1=EXP(-PSFAZ(ZV1,FSOFT,FHARD,FSHARD))*(1.D0-FHARD(1)
+C    *  -FHARD(2)-FHARD(3))
+C       VV2=EXP(-PSFAZ(ZV2,FSOFT,FHARD,FSHARD))*(1.D0-FHARD(1)
+C    *  -FHARD(2)-FHARD(3))
+
+        VV1=EXP(-PSFAZ(ZV1,FSOFT,FHARD,FSHARD)-FHARD(1)
+     *  -FHARD(2)-FHARD(3))
+        VV2=EXP(-PSFAZ(ZV2,FSOFT,FHARD,FSHARD)-FHARD(1)
+     *  -FHARD(2)-FHARD(3))
+c???????????
+
+        IF(IA(2).EQ.1)THEN
+          CG1=1.D0
+          CG2=1.D0
+        ELSE
+          CG1=XXROT(B,S1)
+          CG2=XXROT(B,S2)
+        ENDIF
+
+        DO 2 L=1,2
+2       GZ(L)=GZ(L)+ A1(I1)*(CG1*(1.D0-VV1**L)+CG2*(1.D0-VV2**L)/Z)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'XXFZ - END')
+        RETURN
+        END
+C=======================================================================
+
+      SUBROUTINE XXGAU(GZ)
+c Impact parameter integration for impact parameters <BM -
+c for hadron-hadron and hadron-nucleus cross-sections calculation
+c-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INTEGER DEBUG
+      DIMENSION GZ(3),GZ0(3)
+      COMMON /AREA6/ PI,BM,AM
+      COMMON /AR3/   X1(7),A1(7)
+      COMMON /AR2/   R,RM
+      COMMON /AREA43/ MONIOU
+      COMMON /DEBUG/  DEBUG
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)
+201     FORMAT(2X,'XXGAU - NUCLEAR CROSS-SECTIONS CALCULATION')
+
+      DO 1 I=1,3
+1     GZ(I)=0.D0
+
+      DO 2 I=1,7
+      DO 2 M=1,2
+      B=BM*DSQRT(.5D0+X1(I)*(M-1.5D0))
+      CALL XXFAU(B,GZ0)
+      DO 2 L=1,3
+2     GZ(L)=GZ(L)+GZ0(L)*A1(I)
+      DO 3 L=1,3
+3     GZ(L)=GZ(L)*(BM*AM)**2*PI*.5D0
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'XXGAU - END')
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE XXGAU1(GZ)
+c Impact parameter integration for impact parameters >BM -
+c for hadron-hadron and hadron-nucleus cross-sections calculation
+c-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INTEGER DEBUG
+      DIMENSION GZ(3),GZ0(3)
+      COMMON /AREA6/ PI,BM,AM
+      COMMON /AR5/   X5(2),A5(2)
+      COMMON /AR2/   R,RM
+      COMMON /AREA43/ MONIOU
+      COMMON /DEBUG/  DEBUG
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)
+201     FORMAT(2X,'XXGAU1 - NUCLEAR CROSS-SECTIONS CALCULATION')
+
+      DO 1 I=1,2
+      B=BM+X5(I)
+      CALL XXFAU(B,GZ0)
+      DO 1 L=1,3
+1     GZ(L)=GZ(L)+GZ0(L)*A5(I)*EXP(X5(I))*B*2.D0*PI*AM*AM
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'XXGAU1 - END')
+      RETURN
+      END
+C=======================================================================
+
+        SUBROUTINE XXGENER(WP0,WM0,EY0,S0X,C0X,S0,C0,IC1,IC2)
+c To simulate the fragmentation of the string into secondary hadrons
+c The algorithm conserves energy-momentum;
+c WP0, WM0 are initial longitudinal momenta ( E+p, E-p ) of the quarks
+c at the ends of the string; IC1, IC2 - their types
+c The following partons types are used: 1 - u, -1 - U, 2 - d, -2 - D,
+c 3 - ud, -3 - UD, 4 - s, -4 - S, 5 - c, -5 - C,
+c  6 - uu, 7 - dd, -6 - UU, -7 - DD
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        CHARACTER *2 TYQ
+        DIMENSION WP(2),IC(2),EPT(4),EP(4),EY(3),EY0(3)
+c WP(1), WP(2) - current longitudinal momenta of the partons at the string
+c ends, IC(1), IC(2) - their types
+        COMMON /AREA8/  WWM,BEP,BEN,BEK,BEC,DC(5),DETA,ALMPT
+        COMMON /AREA10/ STMASS,AM0,AMN,AMK,AMC,AMLAMC,AMLAM,AMETA
+        COMMON /AREA11/ B10
+        COMMON /AREA19/ AHL(5)
+********************************************************
+        COMMON /AREA21/ DMMIN(5)
+********************************************************
+        COMMON /AREA28/ ARR(4)
+        COMMON /AREA42/ TYQ(15)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)TYQ(8+IC1),TYQ(8+IC2),
+     *  WP0,WM0,EY0,S0X,C0X,S0,C0
+201     FORMAT(2X,'XXGENER: PARTON FLAVORS AT THE ENDS OF THE STRING:',
+     *  2X,A2,2X,A2/4X,'LIGHT CONE MOMENTA OF THE STRING: ',E10.3,
+     *  2X,E10.3/4X,'EY0=',3E10.3/4X,
+     *  'S0X=',E10.3,2X,'C0X=',E10.3,2X,'S0=',E10.3,2X,'C0=',E10.3)
+
+        WW=WP0*WM0
+        EPT(1)=.5D0*(WP0+WM0)
+        EPT(2)=.5D0*(WP0-WM0)
+        EPT(3)=0.D0
+        EPT(4)=0.D0
+        IC(1)=IC1
+        IC(2)=IC2
+
+1     SWW=DSQRT(WW)
+      CALL PSDEFTR(WW,EPT,EY)
+      J=INT(2.D0*PSRAN(B10))+1
+      IF(DEBUG.GE.3)THEN
+        IQT=8+IC(J)
+        WRITE (MONIOU,203)J,TYQ(IQT),WW
+203     FORMAT(2X,'XXGENER: CURRENT PARTON FLAVOR AT THE END ',I1,
+     *  ' OF THE STRING: ',A2/4X,' STRING MASS: ',E10.3)
+      ENDIF
+
+      IAB=IABS(IC(J))
+      IS=IC(J)/IAB
+      IF(IAB.GT.5)IAB=3
+      IAJ=IABS(IC(3-J))
+      IF(IAJ.GT.5)IAJ=3
+      IF(IAJ.EQ.3)THEN
+        RESTM=AMN
+      ELSEIF(IAJ.EQ.4)THEN
+          RESTM=AMK
+      ELSEIF(IAJ.EQ.5)THEN
+        RESTM=AMC
+      ELSE
+        RESTM=AM0
+      ENDIF
+
+      IF(IAB.LE.2.AND.SWW.GT.RESTM+2.D0*AM0+WWM.OR.
+     *IAB.EQ.3.AND.SWW.GT.RESTM+AM0+AMN+WWM.OR.
+     *IAB.EQ.4.AND.SWW.GT.RESTM+AM0+AMK+WWM.OR.
+     *IAB.EQ.5.AND.SWW.GT.RESTM+AM0+AMC+WWM)THEN
+
+        IF(IAB.LE.2)THEN
+          IF(SWW.GT.RESTM+2.D0*AMC.AND.PSRAN(B10).LT.DC(3))THEN
+c D-meson generation
+            RESTM=(RESTM+AMC)**2
+            BET=BEC
+            AMI=AMC**2
+            ALF=ALMPT-ARR(4)
+            BLF=AHL(4)
+            IC0=IC(J)-9*IS
+            IC(J)=5*IS
+          ELSEIF(SWW.GT.RESTM+2.D0*AMN.AND.PSRAN(B10).LT.DC(1))THEN
+c Nucleon generation
+            RESTM=(RESTM+AMN)**2
+            BET=BEN
+            AMI=AMN**2
+            ALF=ALMPT-ARR(2)
+            BLF=AHL(2)
+            IC0=IC(J)+IS
+            IC(J)=-3*IS
+          ELSEIF(SWW.GT.RESTM+2.D0*AMK.AND.PSRAN(B10).LT.DC(2))THEN
+c Kaon generation
+            RESTM=(RESTM+AMK)**2
+            BET=BEK
+            AMI=AMK**2
+            ALF=ALMPT-ARR(3)
+            BLF=AHL(3)
+            IC0=IC(J)+3*IS
+            IC(J)=4*IS
+          ELSEIF(SWW.GT.RESTM+AMETA+AM0.AND.PSRAN(B10).LT.DETA)THEN
+c Eta generation
+            RESTM=(RESTM+AM0)**2
+            BET=BEK
+            AMI=AMETA**2
+            ALF=ALMPT-ARR(1)
+            BLF=AHL(1)
+            IC0=10
+          ELSE
+c Pion generation
+            RESTM=(RESTM+AM0)**2
+            BET=BEP
+            AMI=AM0**2
+            ALF=ALMPT-ARR(1)
+            BLF=AHL(1)
+
+            IF(PSRAN(B10).LT..3333D0)THEN
+              IC0=0
+            ELSE
+              IC0=3*IS-2*IC(J)
+              IC(J)=3*IS-IC(J)
+            ENDIF
+          ENDIF
+
+        ELSEIF(IAB.EQ.3)THEN
+          IF(SWW.GT.RESTM+AMC+AMLAMC.AND.PSRAN(B10).LT.DC(5).AND.
+     *    IABS(IC(J)).EQ.3)THEN
+c Lambda_C generation
+            RESTM=(RESTM+AMC)**2
+            BET=BEC
+            AMI=AMLAMC**2
+            ALF=ALMPT-ARR(4)
+            BLF=AHL(5)
+            IC0=9*IS
+            IC(J)=-5*IS
+          ELSEIF(SWW.GT.RESTM+AMK+AMLAM.AND.PSRAN(B10).LT.DC(4).AND.
+     *    IABS(IC(J)).EQ.3)THEN
+c Lambda generation
+            RESTM=(RESTM+AMK)**2
+            BET=BEK
+            AMI=AMLAM**2
+            ALF=ALMPT-ARR(3)
+            BLF=AHL(2)+ARR(1)-ARR(3)
+            IC0=6*IS
+            IC(J)=-4*IS
+          ELSE
+c Nucleon generation
+            RESTM=(RESTM+AM0)**2
+            BET=BEN
+            AMI=AMN**2
+            ALF=ALMPT-ARR(1)
+            BLF=AHL(2)
+            IF(IABS(IC(J)).EQ.3)THEN
+              IC0=IS*INT(2.5D0+PSRAN(B10))
+              IC(J)=IS-IC0
+            ELSE
+              IC0=IC(J)-4*IS
+              IC(J)=IC0-4*IS
+            ENDIF
+          ENDIF
+
+        ELSEIF(IAB.EQ.4)THEN
+          IF(SWW.GT.RESTM+AMN+AMLAM.AND.PSRAN(B10).LT.DC(1))THEN
+c Lambda generation
+            RESTM=(RESTM+AMN)**2
+            BET=BEN
+            AMI=AMLAM**2
+            ALF=ALMPT-ARR(2)
+            BLF=AHL(2)+ARR(1)-ARR(3)
+            IC0=6*IS
+            IC(J)=-3*IS
+          ELSE
+c Kaon generation
+            RESTM=(RESTM+AM0)**2
+            BET=BEP
+            AMI=AMK**2
+            ALF=ALMPT-ARR(1)
+            BLF=AHL(3)
+            IC(J)=IS*INT(1.5D0+PSRAN(B10))
+            IC0=-3*IS-IC(J)
+          ENDIF
+
+        ELSEIF(IAB.EQ.5)THEN
+          IF(SWW.GT.RESTM+AMN+AMLAMC.AND.PSRAN(B10).LT.DC(1))THEN
+c Lambda_C generation
+            RESTM=(RESTM+AMN)**2
+            BET=BEN
+            AMI=AMLAMC**2
+            ALF=ALMPT-ARR(2)
+            BLF=AHL(5)
+            IC0=9*IS
+            IC(J)=-3*IS
+          ELSE
+c D-meson generation
+            RESTM=(RESTM+AM0)**2
+            BET=BEP
+            AMI=AMC**2
+            ALF=ALMPT-ARR(1)
+            BLF=AHL(4)
+            IC(J)=IS*INT(1.5D0+PSRAN(B10))
+            IC0=9*IS-IC(J)
+          ENDIF
+        ENDIF
+
+********************************************************
+        PTMAX=PSLAM(WW,RESTM,AMI)
+        IF(PTMAX.LT.0.)PTMAX=0.
+
+        IF(PTMAX.LT.BET**2)THEN
+2         PTI=PTMAX*PSRAN(B10)
+          IF(PSRAN(B10).GT.EXP(-DSQRT(PTI)/BET))GOTO 2
+        ELSE
+3         PTI=(BET*DLOG(PSRAN(B10)*PSRAN(B10)))**2
+          IF(PTI.GT.PTMAX)GOTO 3
+        ENDIF
+
+        AMT=AMI+PTI
+        RESTM1=RESTM+PTI
+********************************************************
+c        ALF=ALF+2.*PTI
+
+        ZMIN=DSQRT(AMT/WW)
+        ZMAX=XXTWDEC(WW,AMT,RESTM1)
+        Z1=(1.-ZMAX)**ALF
+        Z2=(1.-ZMIN)**ALF
+4       Z=1.-(Z1+(Z2-Z1)*PSRAN(B10))**(1./ALF)
+        IF(PSRAN(B10).GT.(Z/ZMAX)**BLF)GOTO 4
+        WP(J)=Z*SWW
+        WP(3-J)=AMT/WP(J)
+        EP(1)=.5D0*(WP(1)+WP(2))
+        EP(2)=.5D0*(WP(1)-WP(2))
+        PTI=DSQRT(PTI)
+        CALL PSCS(C,S)
+        EP(3)=PTI*C
+        EP(4)=PTI*S
+
+        EPT(1)=SWW-EP(1)
+        DO 5 I=2,4
+5       EPT(I)=-EP(I)
+        WW=PSNORM(EPT)
+        IF(WW.LT.RESTM)GOTO 4
+
+        CALL PSTRANS(EP,EY)
+        CALL PSTRANS(EPT,EY)
+
+        IF(S0X.NE.0.D0.OR.S0.NE.0.D0)THEN
+          CALL PSROTAT(EP,S0X,C0X,S0,C0)
+        ENDIF
+        
+        IF(EY0(1)*EY0(2)*EY0(3).NE.1.D0)THEN
+          CALL PSTRANS(EP,EY0)
+        ENDIF
+        CALL XXREG(EP,IC0)
+      ELSE
+
+
+        AMI2=RESTM**2
+        BET=BEP
+        IF(IAB.LE.2.AND.IAJ.LE.2)THEN
+          AMI=AM0**2
+          IC0=-IC(1)-IC(2)
+          IF(IC0.NE.0)THEN
+            IC(J)=IC0*INT(.5D0+PSRAN(B10))
+            IC(3-J)=IC0-IC(J)
+          ELSE
+            IF(PSRAN(B10).LT..2D0)THEN
+              IC(J)=0
+              IC(3-J)=0
+            ELSE
+              IC(J)=3*IS-2*IC(J)
+              IC(3-J)=-IC(J)
+            ENDIF
+          ENDIF
+
+        ELSEIF(IAB.EQ.3.OR.IAJ.EQ.3)THEN
+          IF(IAB.EQ.3)THEN
+            AMI=AMN**2
+            IF(IABS(IC(J)).EQ.3)THEN
+              IF(IAJ.EQ.3)THEN
+                IF(IABS(IC(3-J)).EQ.3)THEN
+                  IC(J)=IS*INT(2.5D0+PSRAN(B10))
+                  IC(3-J)=-IC(J)
+	        ELSE
+                  IC(3-J)=IC(3-J)+4*IS
+                  IC(J)=5*IS+IC(3-J)
+	        ENDIF
+              ELSEIF(IAJ.LT.3)THEN
+                IF(PSRAN(B10).LT..3333D0)THEN
+                  IC(J)=IC(3-J)+IS
+                  IC(3-J)=0
+                ELSE
+                  IC(J)=IS*(4-IAJ)
+                  IC(3-J)=IS*(3-2*IAJ)
+                ENDIF
+              ELSEIF(IAJ.EQ.4)THEN
+                IC(J)=IS*INT(2.5D0+PSRAN(B10))
+                IC(3-J)=-IC(J)-2*IS
+              ELSEIF(IAJ.EQ.5)THEN
+                IC(J)=IS*INT(2.5D0+PSRAN(B10))
+                IC(3-J)=-IC(J)+10*IS
+              ENDIF
+            ELSE
+              IC(J)=IC(J)-4*IS
+              IC0=IC(J)-4*IS
+              IF(IAJ.EQ.3)THEN
+                IC(3-J)=IC0-IS
+              ELSEIF(IAJ.LT.3)THEN
+                IC(3-J)=-IC(3-J)-IC0
+              ELSEIF(IAJ.EQ.4)THEN
+                IC(3-J)=IC0-3*IS
+              ELSEIF(IAJ.EQ.5)THEN
+                IC(3-J)=IC0+9*IS
+              ENDIF
+            ENDIF
+          ELSE
+            IF(IABS(IC(3-J)).EQ.3)THEN
+              IF(IAB.LT.3)THEN
+                AMI=AM0**2
+                IF(PSRAN(B10).LT..3333D0)THEN
+                  IC(3-J)=IC(J)+IS
+                  IC(J)=0
+                ELSE
+                  IC(3-J)=IS*(4-IAB)
+                  IC(J)=IS*(3-2*IAB)
+                ENDIF
+              ELSEIF(IAB.EQ.4)THEN
+                AMI=AMK**2
+                IC(3-J)=IS*INT(2.5D0+PSRAN(B10))
+                IC(J)=-IC(3-J)-2*IS
+              ELSEIF(IAB.EQ.5)THEN
+                AMI=AMC**2
+                IC(3-J)=IS*INT(2.5D0+PSRAN(B10))
+                IC(J)=-IC(3-J)+10*IS
+              ENDIF
+            ELSE
+              IC(3-J)=IC(3-J)-4*IS
+              IC0=IC(3-J)-4*IS
+              IF(IAB.LT.3)THEN
+                AMI=AM0**2
+                IC(J)=-IC0-IC(J)
+              ELSEIF(IAB.EQ.4)THEN
+                AMI=AMK**2
+                IC(J)=IC0-3*IS
+              ELSEIF(IAB.EQ.5)THEN
+                AMI=AMC**2
+                IC(J)=IC0+9*IS
+              ENDIF
+            ENDIF
+          ENDIF
+
+        ELSEIF(IAB.EQ.4.OR.IAJ.EQ.4)THEN
+
+          IF(IAB.EQ.4)THEN
+            AMI=AMK**2
+
+            IF(IAJ.EQ.4)THEN
+              IC(J)=-IS*INT(4.5D0+PSRAN(B10))
+              IC(3-J)=-IC(J)
+            ELSEIF(IAJ.EQ.5)THEN
+              IC(J)=-IS*INT(4.5D0+PSRAN(B10))
+              IC(3-J)=-IC(J)-12*IS
+            ELSE
+              IC0=IC(3-J)+INT(.6667D0+PSRAN(B10))*(-3*IS-2*IC(3-J))
+              IC(J)=IC0-3*IS
+              IC(3-J)=IC0-IC(3-J)
+            ENDIF
+          ELSE
+            IF(IAB.LE.2)THEN
+              AMI=AM0**2
+              IC0=IC(J)+INT(.6667D0+PSRAN(B10))*(3*IS-2*IC(J))
+              IC(J)=IC0-IC(J)
+              IC(3-J)=IC0+3*IS
+            ELSEIF(IAB.EQ.5)THEN
+              AMI=AMC**2
+              IC(3-J)=IS*INT(4.5D0+PSRAN(B10))
+              IC(J)=-IC(3-J)+12*IS
+            ENDIF
+          ENDIF
+
+        ELSEIF(IAB.EQ.5.OR.IAJ.EQ.5)THEN
+
+          IF(IAB.EQ.5)THEN
+            AMI=AMC**2
+
+            IF(IAJ.EQ.5)THEN
+              IC(J)=IS*INT(7.5D0+PSRAN(B10))
+              IC(3-J)=-IC(J)
+            ELSE
+              IC0=IC(3-J)+INT(.6667D0+PSRAN(B10))*(-3*IS-2*IC(3-J))
+              IC(J)=IC0+9*IS
+              IC(3-J)=IC0-IC(3-J)
+            ENDIF
+          ELSE
+            AMI=AM0**2
+            IC0=IC(J)+INT(.6667D0+PSRAN(B10))*(3*IS-2*IC(J))
+            IC(J)=IC0-IC(J)
+            IC(3-J)=IC0-9*IS
+          ENDIF
+        ENDIF
+
+        PTMAX=PSLAM(WW,AMI2,AMI)
+        IF(PTMAX.LT.0.)PTMAX=0.
+        IF(PTMAX.LT.BET**2)THEN
+6         PTI=PTMAX*PSRAN(B10)
+          IF(PSRAN(B10).GT.EXP(-DSQRT(PTI)/BET))GOTO 6
+        ELSE
+7         PTI=(BET*DLOG(PSRAN(B10)*PSRAN(B10)))**2
+          IF(PTI.GT.PTMAX)GOTO 7
+        ENDIF
+
+        AMT1=AMI+PTI
+        AMT2=AMI2+PTI
+
+        Z=XXTWDEC(WW,AMT1,AMT2)
+        WP(J)=Z*SWW
+        WP(3-J)=AMT1/WP(J)
+        EP(1)=.5D0*(WP(1)+WP(2))
+        EP(2)=.5D0*(WP(1)-WP(2))
+        PTI=DSQRT(PTI)
+        CALL PSCS(C,S)
+        EP(3)=PTI*C
+        EP(4)=PTI*S
+
+        EPT(1)=SWW-EP(1)
+        DO 8 I=2,4
+8       EPT(I)=-EP(I)
+
+        CALL PSTRANS(EP,EY)
+        CALL PSTRANS(EPT,EY)
+
+        IF(S0X.NE.0.D0.OR.S0.NE.0.D0)THEN
+          CALL PSROTAT(EP,S0X,C0X,S0,C0)
+          CALL PSROTAT(EPT,S0X,C0X,S0,C0)
+        ENDIF
+        IF(EY0(1)*EY0(2)*EY0(3).NE.1.D0)THEN
+          CALL PSTRANS(EP,EY0)
+          CALL PSTRANS(EPT,EY0)
+        ENDIF
+        
+        CALL XXREG(EP,IC(J))
+        CALL XXREG(EPT,IC(3-J))
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'XXGENER - END')
+        RETURN
+      ENDIF
+      GOTO 1
+      END
+C=======================================================================
+
+        SUBROUTINE XXJETSIM
+c Procedure for jet hadronization - each gluon is
+c considered to be splitted into quark-antiquark pair and usual soft
+c strings are assumed to be formed between quark and antiquark
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EP(4),EP1(4),ey(3)
+        COMMON /AREA10/ STMASS,AM(7)
+        COMMON /AREA11/ B10
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        COMMON /AREA46/ EPJET(4,2,1000),IPJET(2,1000)
+        COMMON /AREA47/ NJTOT
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)NJTOT
+201     FORMAT(2X,'XXJETSIM: TOTAL NUMBER OF JETS NJTOT=',I4)
+        IF(NJTOT.EQ.0)RETURN     
+        DO 2 NJ=1,NJTOT
+        DO 1 I=1,4
+        EP1(I)=EPJET(I,1,NJ)
+1       EP(I)=EP1(I)+EPJET(I,2,NJ)
+        PT3=DSQRT(EP1(3)**2+EP1(4)**2)
+        PT4=DSQRT(EPJET(3,2,NJ)**2+EPJET(4,2,NJ)**2)
+
+c Invariant mass square for the jet
+        WW=PSNORM(EP)
+        SWW=DSQRT(WW)
+	
+        CALL PSDEFTR(WW,EP,EY)
+        CALL PSTRANS1(EP1,EY)
+        CALL PSDEFROT(EP1,S0X,C0X,S0,C0)
+
+2       CALL XXGENER(SWW,SWW,EY,S0X,C0X,S0,C0,IPJET(1,NJ),IPJET(2,NJ))
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)
+202     FORMAT(2X,'XXJETSIM - END')
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE XXREG(EP0,IC)
+c Registration of the produced hadron;
+c EP - 4-momentum,
+c IC - hadron type
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EP(4),EP0(4)
+        COMMON /AREA4/  EY0(3)
+        COMMON /AREA10/ STMASS,AM0,AMN,AMK,AMC,AMLAMC,AMLAM,AMETA
+        COMMON /AREA11/ B10
+        COMMON /AREA12/ NSH
+        COMMON /AREA14/ ESP(4,15000),ICH(15000)
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)IC,EP0
+201     FORMAT(2X,'XXREG: IC=',I2,2X,'C.M. 4-MOMENTUM:',2X,4(E10.3,1X))
+         pt=dsqrt(ep0(3)**2+ep0(4)**2)
+c         if(pt.gt.11.d0)write (MONIOU,*)'pt,ic,ep',pt,ic,ep0
+c         if(pt.gt.11.d0)write (*,*)'pt,ic,ep',pt,ic,ep0
+
+        NSH=NSH+1
+        IF (NSH .GT. 15000) THEN
+          WRITE(MONIOU,*)'XXREG: TOO MUCH SECONDARY PARTICLES'
+          WRITE(MONIOU,*)'XXREG: NSH = ',NSH
+          STOP
+        ENDIF
+        DO 4 I=1,4
+4       EP(I)=EP0(I)
+        CALL PSTRANS(EP,EY0)
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)EP
+202     FORMAT(2X,'XXREG: LAB. 4-MOMENTUM:',2X,4(E10.3,1X))
+
+        ICH(NSH)=IC
+        DO 3 I=1,4
+3       ESP(I,NSH)=EP(I)
+
+        IF(DEBUG.GE.3)WRITE (MONIOU,203)
+203     FORMAT(2X,'XXREG - END')
+        RETURN
+        END
+C=======================================================================
+
+        FUNCTION XXROT(S,B)
+c Convolution of nuclear profile functions (axial angle integration)
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AR8/  X2(4),A2
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)B
+201     FORMAT(2X,'XXROT - AXIAL ANGLE INTEGRATION OF THE ',
+     *  'NUCLEAR PROFILE FUNCTION'/4X,
+     *  'IMPACT PARAMETER B=',E10.3,2X,'NUCLEON COORDINATE S=',E10.3)
+
+        XXROT=0.
+        DO 1 I=1,4
+        SB1=B**2+S**2-2.*B*S*(2.*X2(I)-1.)
+        SB2=B**2+S**2-2.*B*S*(1.-2.*X2(I))
+1       XXROT=XXROT+(XXT(SB1)+XXT(SB2))
+        XXROT=XXROT*A2
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)XXROT
+202     FORMAT(2X,'XXROT=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+        SUBROUTINE XXSTR(WPI0,WMI0,WP0,WM0,IC10,IC120,IC210,IC20)
+**************************************************
+c Fragmentation process for the pomeron ( quarks and antiquarks types at the
+c ends of the two strings are determined, energy-momentum is shared
+c between them and strings fragmentation is simulated )
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        DIMENSION EY(3)
+        COMMON /AREA6/  PI,BM,AMMM
+        COMMON /AREA10/ STMASS,AM(7)
+        COMMON /AREA11/ B10
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+        SAVE
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)WPI0,WMI0,WP0,WM0
+201     FORMAT(2X,'XXSTR: WPI0=',E10.3,2X,'WMI0=',E10.3,2X,
+     *  'WP0=',E10.3,2X,'WM0=',E10.3)
+         DO 1 I=1,3
+1        EY(I)=1.D0
+
+         WPI=WPI0
+         WMI=WMI0
+c Quark-antiquark types (1 - u, 2 - d, -1 - u~, -2 - d~); s- and d- quarks are
+c taken into consideration at the fragmentation step
+**************************************************
+        IF(IC10.EQ.0)THEN
+          IC1=INT(1.5+PSRAN(B10))
+          IC12=-IC1
+        ELSEIF(IC10.GT.0)THEN
+          IC1=IC10
+          IC12=IC120
+        ELSE
+          IC1=IC120
+          IC12=IC10
+        ENDIF
+        IF(IC20.EQ.0)THEN
+          IC2=INT(1.5+PSRAN(B10))
+          IC21=-IC2
+        ELSEIF(IC20.gt.0)THEN
+          IC2=IC20
+          IC21=IC210
+        ELSE
+          IC2=IC210
+          IC21=IC20
+        ENDIF
+**************************************************
+
+c Longitudinal momenta for the strings
+        WP1=WPI*COS(PI*PSRAN(B10))**2
+        WM1=WMI*COS(PI*PSRAN(B10))**2
+        WPI=WPI-WP1
+        WMI=WMI-WM1
+c String masses
+        SM1=WP1*WM1
+        SM2=WPI*WMI
+c Too short strings are neglected (energy is given to partner string or to the hadron
+c (nucleon) to which the pomeron is connected)
+        IF(SM1.GT.STMASS.AND.SM2.GT.STMASS)THEN
+c Strings fragmentation is simulated - GENER
+          CALL XXGENER(WP1,WM1,EY,0.D0,1.D0,0.D0,1.D0,IC1,IC21)
+          CALL XXGENER(WPI,WMI,EY,0.D0,1.D0,0.D0,1.D0,IC12,IC2)
+        ELSEIF(SM1.GT.STMASS)THEN
+          CALL XXGENER(WP1+WPI,WM1+WMI,EY,0.D0,1.D0,0.D0,1.D0,IC1,IC21)
+        ELSEIF(SM2.GT.STMASS)THEN
+          CALL XXGENER(WPI+WP1,WMI+WM1,EY,0.D0,1.D0,0.D0,1.D0,IC12,IC2)
+        ELSE
+          WP0=WP0+WP1+WPI
+          WM0=WM0+WM1+WMI
+        ENDIF
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)WP0,WM0
+202     FORMAT(2X,'XXSTR - RETURNED LIGHT CONE MOMENTA:',
+     *  2X,'WP0=',E10.3,2X,'WM0=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+      FUNCTION XXT(B)
+c Nuclear profile function value at impact parameter squared B
+c-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      INTEGER DEBUG
+      COMMON /AREA6/ PI,BM,AM
+      COMMON /AR2/   R,RM
+      COMMON /AR5/   X5(2),A5(2)
+      COMMON /AR9/   X9(3),A9(3)
+      COMMON /AREA43/ MONIOU
+      COMMON /DEBUG/  DEBUG
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)B
+201     FORMAT(2X,'XXT - NUCLEAR PROFILE FUNCTION VALUE AT IMPACT',
+     *  ' PARAMETER SQUARED B=',E10.3)
+      XXT=0.
+      ZM=RM**2-B
+      IF(ZM.GT.4.*B)THEN
+        ZM=DSQRT(ZM)
+      ELSE
+        ZM=2.*DSQRT(B)
+      ENDIF
+
+      DO 1 I=1,3
+      Z1=ZM*(1.+X9(I))*0.5
+      Z2=ZM*(1.-X9(I))*0.5
+      QUQ=DSQRT(B+Z1**2)-R
+      IF (QUQ.LT.85.)XXT=XXT+A9(I)/(1.+EXP(QUQ))
+      QUQ=DSQRT(B+Z2**2)-R
+      IF (QUQ.LT.85.)XXT=XXT+A9(I)/(1.+EXP(QUQ))
+1     CONTINUE
+      XXT=XXT*ZM*0.5
+      DT=0.
+      DO 2 I=1,2
+      Z1=X5(I)+ZM
+      QUQ=DSQRT(B+Z1**2)-R-X5(I)
+      IF (QUQ.LT.85.)DT=DT+A5(I)/(EXP(-X5(I))+EXP(QUQ))
+2     CONTINUE
+      XXT=XXT+DT
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)XXROT
+202     FORMAT(2X,'XXT=',E10.3)
+      RETURN
+      END
+C=======================================================================
+
+        FUNCTION XXTWDEC(S,A,B)
+c Kinematical function for two particle decay -
+C light cone momentum share for
+c the particle of mass squared A,
+C B - partner's mass squared,
+C S - two particle invariant mass
+c-----------------------------------------------------------------------
+        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+        INTEGER DEBUG
+        COMMON /AREA43/ MONIOU
+        COMMON /DEBUG/  DEBUG
+
+        IF(DEBUG.GE.2)WRITE (MONIOU,201)S,A,B
+201     FORMAT(2X,'XXTWDEC: S=',E10.3,2X,'A=',E10.3,2X,'B=',E10.3)
+
+        X=.5D0*(1.D0+(A-B)/S)
+        DX=(X*X-A/S)
+        IF(DX.GT.0.D0)THEN
+          X=X+DSQRT(DX)
+        ELSE
+          X=DSQRT(A/S)
+        ENDIF
+        XXTWDEC=X
+        IF(DEBUG.GE.3)WRITE (MONIOU,202)XXTWDEC
+202     FORMAT(2X,'XXTWDEC=',E10.3)
+        RETURN
+        END
+C=======================================================================
+
+      DOUBLE PRECISION FUNCTION GAMFUN(Y)
+C     Gamma function : See Abramowitz, page 257, form. 6.4.40
+c-----------------------------------------------------------------------
+      IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+      DOUBLE PRECISION
+     +     Y,R,S,T,AFSPL,X,
+     +     COEF(10),PI,ZEROD,HALFD,ONED,TWOD,TEND
+C
+      DATA COEF/8.3333333333333334D-02,-2.7777777777777778D-03,
+     .          7.9365079365079365D-04,-5.9523809523809524D-04,
+     .          8.4175084175084175D-04,-1.9175269175269175D-03,
+     .          6.4102564102564103D-03,-2.9550653594771242D-02,
+     .          0.1796443723688306    ,-0.6962161084529506    /
+      DATA PI/  3.141592653589793D0/
+      DATA ZEROD/0.D0/,HALFD/0.5D0/,ONED/1.D0/,TWOD/2.D0/,TEND/10.D0/
+C
+      X=Y
+      AFSPL=ONED
+      N=INT(TEND-Y)
+      DO 10 I=0,N
+        AFSPL=AFSPL*X
+        X=X+ONED
+10    CONTINUE
+      R=(X-HALFD)* LOG(X)-X+HALFD* LOG(TWOD*PI)
+      S=X
+      T=ZEROD
+      DO 20 I=1,10
+        T=T+COEF(I)/S
+        S=S*X**2
+20    CONTINUE
+      GAMFUN = EXP(R+T)/AFSPL
+      END
+C=======================================================================
+
+       BLOCK DATA PSDATA
+c Constants for numerical integration (Gaussian weights)
+c-----------------------------------------------------------------------
+       IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+       COMMON /AR3/ X1(7),A1(7)
+       COMMON /AR5/ X5(2),A5(2)
+       COMMON /AR8/ X2(4),A2
+       COMMON /AR9/ X9(3),A9(3)
+
+       DATA X1/.9862838D0,.9284349D0,.8272013D0,.6872929D0,.5152486D0,
+     * .3191124D0,.1080549D0/
+       DATA A1/.03511946D0,.08015809D0,.1215186D0,.1572032D0,
+     * .1855384D0,.2051985D0,.2152639D0/
+       DATA X2/.00960736D0,.0842652D0,.222215D0,.402455D0/
+       DATA A2/.392699D0/
+       DATA X5/.585786D0,3.41421D0/
+       DATA A5/.853553D0,.146447D0/
+       DATA X9/.93247D0,.661209D0,.238619D0/
+       DATA A9/.171324D0,.360762D0,.467914D0/
+       END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/SIBYLL.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/SIBYLL.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/SIBYLL.f	(revision 4308)
@@ -0,0 +1,5779 @@
+C============================================================
+C    SSSSSS   IIIIIII  BBBBB   YY      YY   L        L
+C   S            I     B    B    YY  YY     L        L
+C    SSSSS       I     BBBBB       YY       L        L
+C         S      I     B    B      YY       L        L
+C   SSSSSS    IIIIIII  BBBBB       YY       LLLLLLL  LLLLLLL
+C=============================================================
+C  Code for SIBYLL:  hadronic interaction Montecarlo
+C=============================================================
+C
+C   Version 1.6   
+C
+C       By   R.S. Fletcher
+C            T.K. Gaisser
+C            Paolo Lipari
+C            Todor Stanev
+C
+C~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+C*****  Please  have people who want this code contact one of the authors.
+C*****  Please report any problems.       *******
+C
+C      For a correct copy contact:
+C      Decnet   6360::Gaisser
+C               6360::Stanev
+C               JHUP::Fletcher
+C               40808::Lipari
+C
+C      Internet  Gaisser@brivs2.bartol.udel.edu
+C                Stanev@udbri.bartol.udel.edu
+C                Fletcher@JHUP.pha.jhu.edu
+C                Lipari@roma1.infn.it
+C
+C       16-4-97  Bug in IFLAV eliminated by D.H.
+C 
+C       15-4-97  Bugs in PART_INT eliminated by D.H.
+C 
+C       17-3-97  Bounds_check fixed in FPNI, NJETR, SIB_SIGMA_HAIR,
+C                SIB_SIGMA_PIP, SIB_SIGMA_PP, SIGMA_PIP,SIGMA_PP by D.H.
+C
+C       18-6-96  Bugs in ZSAMPLE and NUC_CONF eliminated by D.H.
+C
+C       10-5-96  Bug in treatment of antinucleons eliminated
+C
+C       15-9-95  random  number generator  as RNDM(0)
+C                minor corrections
+C
+C       6-15-94: minor changes suggested by  O. Palamara 
+C                for compatiblility with 
+C                MACRO codes. Parameter statements made standard. 
+C                Bug in Parton found by S. Kashahara fixed.
+C                NUCLIB code moved to the end of the file for 
+C                easy removal.
+C       
+C      2-4-94: Bug fix to avoid infinite loop  at low energies. BEAM_SPLIT
+C      
+C      4-93 This version is the first to include the NUCLIB like
+C      treatment of the wounded nucleon distributions.
+C
+C=============================================================
+C==========SIBYLL=============================================
+C=============================================================
+C+++++ Code for SIBYLL:  hadronic interaction Montecarlo
+C=============================================================
+C
+C      SIBYLL is an hadronic interaction Monte Carlo simulation
+C      based on  the dual parton Model, String Fragmentation
+c      and the minijet model. It reproduces data 
+C      resonably well from around 200. GeV up.
+C      The program runs from Sqrt(s)=Sqrt(2.*Mp*E_beam)= 10 GeV
+C      up to sqrt(s)=10**6 GeV (around 10**21 eV in the laboratory system).
+C
+C      The program gets inefficient at low energies 
+C      (below sqrt[s] = 20 GeV or so)
+C      Results at very high energy are subject to all the  usual
+C      problems associated with extrapolating over several 
+C      orders of magnitude in energy.
+C===========================================================================
+      function A_pip (b)
+C...Convolution of parton distribution for pip interaction
+      IMPLICIT REAL*4 (A-Z)
+      COMMON /S_CH0CNV/ NU2, MU2, NUPI2, NU, MU, NUPI
+      data pi / 3.1415926/
+
+      eta = nu2/nupi2
+      c = nu2/(2.*pi) * 1./(1.-eta)
+
+      if (b .gt. 0.)  then
+         b1 = b*nu
+         b2 = b*nupi
+         f1 = 0.5*b1 * bessk1(b1)
+         f2 = eta/(1.-eta)*(bessk0(b2)- bessk0(b1))
+         A_pip = c*(f1+f2)
+      else
+         A_pip = c*(0.5 + eta/(1.-eta)*log(nu/nupi))
+      endif
+      return
+      end
+      function A_pp (b)
+C...Convolution of parton distribution for pp interaction
+      IMPLICIT REAL*4 (A-Z)
+      COMMON /S_CH0CNV/ NU2, MU2, NUPI2, NU, MU, NUPI
+      data pi / 3.1415926/
+      c = nu**5/(96.*pi)
+      if (b .gt. 0.)  then
+         A_pp = c*b**3 * bessk (3, b*nu)
+      else
+         A_pp = nu**2/(12.*pi)
+      endif
+      return
+      end
+      REAL FUNCTION BDIFFRACT(SQS,ipart)
+C
+C    INPUT    SQS (GeV)
+C             ipart is the code for the scattering particle(p,pi)
+C    OUTPUT:  DIFFRACT is the single diffractive cross
+C            section parameterized with a log.
+c            in mB
+C                                    RSF
+C......................................................
+      real a(2),b(2)
+      data a/0.0,1.2/
+      data b/1.56,0.66/
+      BDIFFRACT = (a(ipart)+b(ipart)*log(sqs))/2.0
+      RETURN
+      END
+      SUBROUTINE BEAM_SPLIT (L, NW, XX, IFL, XJET, LXBAD,stringmas0)
+C...This subroutine split a hadron of code L
+C.  into 2*NW partons, each of energy XX(j) and
+C.  flavor IFL.  The minimum fractional energy of
+C.  each parton is X_min = 2*stringmas0/sqrt(s)
+c.
+c.  Variable qmas changed to stringmas0 to agree with name in SIBYLL
+c.      and added to calling sequenceto insure symetry.
+c      Also a factor of (1-xjet) is added to the def. of xmin for nw=1
+c.                               RSF  Apr-2-92
+C---------------------------------------------------------------------
+      COMMON /S_RUN/ SQS, S, Q2MIN, XMIN, ZMIN , kb ,kt
+      DIMENSION XX(30), IFL(30)
+      DATA AC /-0.2761856692/             ! log(2) - gamma(Eulero)
+      DATA GAMMA /2./
+      DATA NBAD / 0 /
+c-------
+c  New code to handle low energy p nuc problem.
+c------
+      LXBAD = 0
+      XMIN = 2.*stringmas0/SQS
+      IF (1.-XJET .LT. FLOAT(2*NW)*XMIN)  THEN
+         NBAD = NBAD + 1
+         LXBAD = 1
+         IF (NBAD .LE. 100) THEN
+           WRITE (6, *) 'BEAM_SPLIT: kinematically forbidden situation'
+           WRITE (6, 5)  NBAD, SQS, XJET, NW
+         ENDIF
+ 5       FORMAT(1X,'NBAD = ',I3,3X,'sqs = ',E10.3,
+     &            3X, 'x_jet = ', F9.3, 3X, ' NW = ',I2)
+         IF (NBAD .eq. 100) THEN
+           WRITE (6, *)
+     &     ' BEAM_SPLIT : Last warning about bad splittings '
+           WRITE (6, *) ' The energy threshold is probably too low.'
+         ENDIF
+         RETURN
+      ENDIF
+
+      IF (NW .EQ. 1)  THEN
+         XVAL = 1.-XJET
+         GOTO 200
+      ENDIF
+
+C...Choose total energy of sea partons
+      N = 2*(NW-1)
+      Z1 = LOG(FLOAT(N))
+      Z2 = LOG(0.5*SQS*(1.-XJET)/stringmas0-2.)
+100   R=RNDM(0)
+      Z=(Z1+AC)*(1.+R*(((Z2+AC)/(Z1+AC))**N-1.))**(1./FLOAT(N))-AC
+      XSEA = XMIN*EXP(Z)
+      IF ( (1.-XSEA)**GAMMA .LT. RNDM(0)) GOTO 100
+C...Split the energy  of sea partons among the different partons
+      XREM = XSEA - FLOAT(N)*XMIN
+      DO J=3,N+1
+         XA = XREM*RNDM(0)
+         XREM = XREM - XA
+         XX(J) = XMIN + XA
+      ENDDO
+      XX(N+2) = XMIN + XREM
+      XVAL = 1.-XSEA-XJET
+C...Flavor of sea partons
+      DO J=1,N/2
+         J1 =  3 + (J-1)*2
+         IFL(J1) = INT(1.+1.99*RNDM(0))
+         IFL(J1+1) = -IFL(J1)
+      ENDDO
+C...Prepare the valence partons
+200   CALL HSPLI (L,IFL(1),IFL(2))
+      CHI = CHIDIS(L,IFL(1),IFL(2))
+      XX(1) = MAX(CHI*XVAL,XMIN)
+      XX(1) = MIN(XX(1),XVAL-XMIN)
+C      FOR MESONS, SPLIT ENERGY SYMETRICALLY.
+C????? SPLIT K'S WITH ENERGY TO S QUARK?
+C
+      if (abs(l).le.12.and.RNDM(0).le.0.5) xx(1)=XVAL-XX(1)
+      XX(2) = XVAL-XX(1)
+      RETURN
+      END
+
+      FUNCTION BESSI0(X)
+C----------------------------------------------------------------------------
+C  Bessel functions
+C----------------------------------------------------------------------------
+      REAL*8 Y,P1,P2,P3,P4,P5,P6,P7,
+     *    Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9
+      DATA P1,P2,P3,P4,P5,P6,P7/1.0D0,3.5156229D0,3.0899424D0,
+     *    1.2067492D0,
+     *    0.2659732D0,0.360768D-1,0.45813D-2/
+      DATA Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9/0.39894228D0,0.1328592D-1,
+     *    0.225319D-2,-0.157565D-2,0.916281D-2,-0.2057706D-1,
+     *    0.2635537D-1,-0.1647633D-1,0.392377D-2/
+      IF (ABS(X).LT.3.75) THEN
+        Y=(X/3.75)**2
+        BESSI0=P1+Y*(P2+Y*(P3+Y*(P4+Y*(P5+Y*(P6+Y*P7)))))
+      ELSE
+        AX=ABS(X)
+        Y=3.75/AX
+        BESSI0=(EXP(AX)/SQRT(AX))*(Q1+Y*(Q2+Y*(Q3+Y*(Q4
+     *      +Y*(Q5+Y*(Q6+Y*(Q7+Y*(Q8+Y*Q9))))))))
+      ENDIF
+      RETURN
+      END
+      FUNCTION BESSI1(X)
+C----------------------------------------------------------------------------
+C  Bessel functions
+C----------------------------------------------------------------------------
+      REAL*8 Y,P1,P2,P3,P4,P5,P6,P7,
+     *    Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9
+      DATA P1,P2,P3,P4,P5,P6,P7/0.5D0,0.87890594D0,0.51498869D0,
+     *    0.15084934D0,0.2658733D-1,0.301532D-2,0.32411D-3/
+      DATA Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9/0.39894228D0,-0.3988024D-1,
+     *    -0.362018D-2,0.163801D-2,-0.1031555D-1,0.2282967D-1,
+     *    -0.2895312D-1,0.1787654D-1,-0.420059D-2/
+      IF (ABS(X).LT.3.75) THEN
+        Y=(X/3.75)**2
+        BESSI1=X*(P1+Y*(P2+Y*(P3+Y*(P4+Y*(P5+Y*(P6+Y*P7))))))
+      ELSE
+        AX=ABS(X)
+        Y=3.75/AX
+        BESSI1=(EXP(AX)/SQRT(AX))*(Q1+Y*(Q2+Y*(Q3+Y*(Q4+
+     *      Y*(Q5+Y*(Q6+Y*(Q7+Y*(Q8+Y*Q9))))))))
+      ENDIF
+      RETURN
+      END
+      FUNCTION BESSK(N,X)
+C----------------------------------------------------------------------------
+C  Bessel functions
+C----------------------------------------------------------------------------
+      IF (N.LT.2) PAUSE 'bad argument N in BESSK'
+      TOX=2.0/X
+      BKM=BESSK0(X)
+      BK=BESSK1(X)
+      DO 11 J=1,N-1
+        BKP=BKM+J*TOX*BK
+        BKM=BK
+        BK=BKP
+11    CONTINUE
+      BESSK=BK
+      RETURN
+      END
+      FUNCTION BESSK0(X)
+C----------------------------------------------------------------------------
+C  Bessel functions
+C----------------------------------------------------------------------------
+      REAL*8 Y,P1,P2,P3,P4,P5,P6,P7,
+     *    Q1,Q2,Q3,Q4,Q5,Q6,Q7
+      DATA P1,P2,P3,P4,P5,P6,P7/-0.57721566D0,0.42278420D0,
+     *    0.23069756D0,0.3488590D-1,0.262698D-2,0.10750D-3,0.74D-5/
+      DATA Q1,Q2,Q3,Q4,Q5,Q6,Q7/1.25331414D0,-0.7832358D-1,
+     * 0.2189568D-1,-0.1062446D-1,0.587872D-2,-0.251540D-2,0.53208D-3/
+      IF (X.LE.2.0) THEN
+        Y=X*X/4.0
+        BESSK0=(-LOG(X/2.0)*BESSI0(X))+(P1+Y*(P2+Y*(P3+
+     *        Y*(P4+Y*(P5+Y*(P6+Y*P7))))))
+      ELSE
+        Y=(2.0/X)
+        BESSK0=(EXP(-X)/SQRT(X))*(Q1+Y*(Q2+Y*(Q3+
+     *        Y*(Q4+Y*(Q5+Y*(Q6+Y*Q7))))))
+      ENDIF
+      RETURN
+      END
+      FUNCTION BESSK1(X)
+C----------------------------------------------------------------------------
+C  Bessel functions
+C----------------------------------------------------------------------------
+      REAL*8 Y,P1,P2,P3,P4,P5,P6,P7,
+     *    Q1,Q2,Q3,Q4,Q5,Q6,Q7
+      DATA P1,P2,P3,P4,P5,P6,P7/1.0D0,0.15443144D0,-0.67278579D0,
+     *    -0.18156897D0,-0.1919402D-1,-0.110404D-2,-0.4686D-4/
+      DATA Q1,Q2,Q3,Q4,Q5,Q6,Q7/1.25331414D0,0.23498619D0,
+     *    -0.3655620D-1,0.1504268D-1,-0.780353D-2,0.325614D-2,
+     *    -0.68245D-3/
+      IF (X.LE.2.0) THEN
+        Y=X*X/4.0
+        BESSK1=(LOG(X/2.0)*BESSI1(X))+(1.0/X)*(P1+Y*(P2+
+     *      Y*(P3+Y*(P4+Y*(P5+Y*(P6+Y*P7))))))
+      ELSE
+        Y=2.0/X
+        BESSK1=(EXP(-X)/SQRT(X))*(Q1+Y*(Q2+Y*(Q3+
+     *      Y*(Q4+Y*(Q5+Y*(Q6+Y*Q7))))))
+      ENDIF
+      RETURN
+      END
+      SUBROUTINE BLOCK(SQS,SIG1,SIG2,SLOP1,SLOP2,
+     +                 RHO1,RHO2,SIGEL1,SIGEL2)
+C------------------------------------------------------------------------
+C.  Fit of Block and Cahn to pp and pbar-p cross sections
+C------------------------------------------------------------------------
+C...p-p and pbar-p cross sections
+C.  Parametrization of  Block and Cahn
+C
+C.  INPUT  : SQS   (GeV)  = c.m. energy
+C.
+C.  OUPUT : SIG1 (mbarn)    = pp  total  cross section
+C.          SLOP1 (GeV**2)  = slope of elastic scattering
+C.          RHO1            = Real/Imaginary part of the amplitude
+C.                            for forward elastic  scattering (pp)
+C.          SIGEL1 (mbarn)  = pp  elastic scattering  cross section
+C.          [1 -> 2   : pp -> pbar p]
+C-----------------------------------------------------------------------
+      DATA PI /3.1415926/
+      DATA CMBARN /0.389385/
+      S = SQS*SQS
+      CALL FPLUS  (S, FR, FI)
+      CALL FMINUS (S, GR, GI)
+      SIG1 = FI-GI
+      SIG2 = FI+GI
+      RHO1 = (FR-GR)/(FI-GI)
+      RHO2 = (FR+GR)/(FI+GI)
+      CALL SSLOPE (S, BP, BM)
+      SLOP1 = BP - GI/FI*(BM-BP)
+      SLOP2 = BP + GI/FI*(BM-BP)
+      SIGEL1 = SIG1**2*(1.+RHO1**2)/(16.*PI*SLOP1)/CMBARN
+      SIGEL2 = SIG2**2*(1.+RHO2**2)/(16.*PI*SLOP2)/CMBARN
+      RETURN
+      END
+
+      SUBROUTINE BLOCK_INI
+C...Parameters of fit IFIT=1 of Block and Cahn
+      COMMON /BLOCKC/ AA, BETA, S0, CC, AMU, DD, ALPHA, A0
+      COMMON /BLOCKD/ CP, DP, EP, CM, DM
+      AA = 41.74
+      BETA = 0.66
+      S0 = 338.5
+      CC = 0.
+      AMU = 0.
+      DD = -39.37
+      ALPHA = 0.48
+      A0 = 0.
+      CP = 10.90
+      DP = -0.08
+      EP = 0.043
+      CM = 23.27
+      DM = 0.93
+      RETURN
+      END
+
+      FUNCTION CHIDIS (KPARTin, IFL1, IFL2)
+C...Generate CHI (fraction of energy of a hadron carried by
+C.                the valence quark, or diquark, as specified by IFL1)
+C.  INPUT KPART = code of particle
+C.        IFL1, IFL2 = codes of partons (3, 3bar of color)
+C.........................................................
+      COMMON /S_RUN/ SQS, S, Q2MIN, XMIN, ZMIN , kb ,kt
+      COMMON /S_CPSPL/ CCHIK(3,7:14)
+      COMMON/S_cutof/stringmas0
+C O. Palamara 27/8/1993
+C      parameter QMAS=0.35
+      parameter (QMAS=0.35)
+      kpart=IABS(kpartin)
+      IFQ=IABS(IFL1)
+      IF (IFQ.GT.10) IFQ=IABS(IFL2)
+c      CUT=2.*QMAS/SQS
+      CUT=2.*stringmas0/SQS
+100      CHIDIS=RNDM(0)**2
+      if (chidis.lt.cut) goto 100
+      if (chidis.gt.(1.-cut)) goto 100
+c      IF((CHIDIS**2/(CHIDIS**2+CUT**2))**0.25
+      IF((CHIDIS**2/(CHIDIS**2+CUT**2))**0.5
+     +   *(1.-CHIDIS)**CCHIK(IFQ,KPART).LT.RNDM(0)) GOTO 100
+      CHIDIS = MAX(0.5*CUT,CHIDIS)
+      CHIDIS = MIN(1.-CUT,CHIDIS)
+      IF (IABS(IFL1).GT.10)  CHIDIS=1.-CHIDIS
+      RETURN
+      END
+      REAL FUNCTION DDIFFRACT(SQS,ipart)
+C... This routine only includes pp scattering.
+C    INPUT    SQS (GeV)
+C             ipart is the code for the scattering particle(p,pi)
+C    OUTPUT:  dDIFFRACT is the Double Diffractive cross
+C            section parameterized with a log.
+C            in mb.
+C                                    RSF
+C......................................................
+      real a(2),b(2)
+      data a/-1.23,.41/
+      data b/.7,0.12/
+      DDIFFRACT =( a(ipart)+b(ipart)*log(sqs))
+      RETURN
+      END
+      FUNCTION DENSA (Z)
+C....Woods Saxon nuclear density (normalised to 1)
+C.   for a nucleus of mass number A.
+C.   INPUT z = z coordinate (fm)
+C.         JA = integer mass number
+C.         B (in common /CC01/)  impact parameter  (fm)
+C.  OUTPUT (fm**-3)
+C--------------------------------------------------------
+      COMMON /CC01/  B
+      COMMON /CCDA/ JA
+      COMMON /CWOOD/ RR0(19:56), AA0(19:56), CC0(19:56)
+      R = SQRT (Z*Z + B*B)
+      DENSA = CC0(JA)/(1.+EXP((R-RR0(JA))/AA0(JA)))
+      RETURN
+      END
+
+      FUNCTION DENS_NUC (R, JA)
+C===========================================================================
+C.   Code about nuclear densities
+C===========================================================================
+C....Nuclear density (normalised to 1)
+C.   for a nucleus of mass number JA
+C.   INPUT R = radial coordinate  (fm)
+C.         JA = integer mass number
+C.  OUTPUT (fm**-3)
+C--------------------------------------------------------
+      COMMON /CWOOD/ RR0(19:56), AA0(19:56), CC0(19:56)
+      IF (JA .GT. 18)  THEN
+         DENS_NUC = WOOD_SAXON(R,JA)
+      ELSE IF (JA .NE. 4)  THEN
+         DENS_NUC = HELIUM(R)
+      ELSE
+         DENS_NUC = SHELL(R,JA)
+      ENDIF
+      RETURN
+      END
+
+      SUBROUTINE DIFDEC (L0, P0)
+C..."decay" of an excited state with the quantum numbers
+C.   of particle L0 and the 5-momentum P0
+C........................................................
+      COMMON /S_PLIST/ NP, P(5000,5), LLIST(5000)
+      COMMON /S_MASS1/ AM(49), AM2(49)
+      COMMON /S_CHP/ ICHP(49), ISTR(49), IBAR(49)
+      DIMENSION P0(5), LL(10), PD(10,5), BE(3), LCON(7:14)
+      DATA EMIN /0.7/
+      DATA LCON /6,6,11,11,9,9,14,13/
+      DATA PCHEX /0.33/            ! probability of charge exchange
+
+      LA = IABS(L0)
+      DELTAE = P0(5) - AM(LA)
+
+C..."string-like" decay
+      IF (DELTAE .GT. EMIN)  THEN
+           N1 = NP+1
+         CALL HSPLI(L0,IFL1,IFL2)
+         IF (P0(3) .GT. 0.)  THEN
+            IFLA = IFL2
+            IFL2 = IFL1
+            IFL1 = IFLA
+         ENDIF
+10         CALL STRING_FRAG (P0(5), IFL1, IFL2, 0.,0.,0.,0.,IFBAD)
+         IF (IFBAD .EQ. 1)  GOTO 10
+         DO J=1,3
+            BE(J)=P0(J)/P0(4)
+         ENDDO
+         GA=P0(4)/P0(5)
+         DO I=N1,NP
+            BEP=BE(1)*P(I,1)+BE(2)*P(I,2)+BE(3)*P(I,3)
+            DO J=1,3
+               P(I,J)=P(I,J)+GA*(GA*BEP/(1.+GA)+P(I,4))*BE(J)
+            ENDDO
+            P(I,4)=GA*(P(I,4)+BEP)
+         ENDDO
+
+C...Phase space decay of the excited state
+      ELSE
+        AV = 2.*SQRT(DELTAE)
+100        NPI = AV*(1.+0.5*GASDEV(0))
+        IF(NPI.LE.0.OR.NPI.GT.9.OR.AM(LA)+NPI*AM(7)+0.02
+     .            .GT.P0(5))  GOTO 100
+        IF (RNDM(0).LT.PCHEX)  THEN
+         LL(NPI+1) = LCON(LA)*ISIGN(1,L0)
+         IF(L0 .EQ. 11)  LL(NPI+1) = LL(NPI+1)+INT(2.*RNDM(0))
+        ELSE
+            LL(NPI+1) = L0
+        ENDIF
+        JQQ = ICHP(LA)*ISIGN(1,L0)-
+     .            ICHP(IABS(LL(NPI+1)))*ISIGN(1,LL(NPI+1))
+120        JQTOT = 0.
+        DO K=1,NPI-1
+           LL(K) = 6+INT(RNDM(0)*2.99999)
+           JQTOT = JQTOT + ICHP(LL(K))
+        ENDDO
+        JQR = JQQ-JQTOT
+        IF (JQR.LT.-1.OR.JQR.GT.1)  GOTO 120
+        LL(NPI) = 6+JQR
+        IF (LL(NPI) .EQ. 5)  LL(NPI)=8
+        CALL DECPAR (0,P0,NPI+1,LL, PD)
+        DO J=1,NPI+1
+           NP = NP+1
+           LLIST(NP) = LL(J)
+           DO K=1,5
+              P(NP,K) = PD(J,K)
+           ENDDO
+        ENDDO
+      ENDIF
+      RETURN
+      END
+
+
+      SUBROUTINE DIFF_GEN (L0, JDIF)
+C----------------------------------------------------------------------------
+C  Code for diffraction
+C----------------------------------------------------------------------------
+C...Single diffractive interaction
+C.  INPUT L0 = index of "beam particle"
+C.             the target is assumed to be a proton.
+C.        JDIF = 1  "beam diffraction"
+C.             = 2  "target diffraction"
+C.             = 3  "double diffraction"
+C......................................................
+      COMMON /S_PLIST/ NP, P(5000,5), LLIST(5000)
+      COMMON /S_RUN/ SQS, S, Q2MIN, XMIN, ZMIN , kb ,kt
+      COMMON /S_MASS1/ AM(49), AM2(49)
+      COMMON /S_CHIST/ NW,NJET,NNJET(15),XX1JET(100)
+     +   ,XX2JET(100),PPTJET(100),PHIJET(100),NNPJET(100),NNPSTR(30)
+     +   , JJDIF, XMB, XMT
+      DIMENSION XM2MIN(3), ALXMIN(3)
+      DIMENSION P0(5)
+      DIMENSION KK(7:14)
+
+      DATA PI /3.1415926/
+      DATA KK /2*2,4*3,2*1/
+      DATA XM2MIN /1.5, 0.2, 0.6/                  ! M_x**2(min) GeV**2
+      DATA ALXMIN /0.405465,-1.6094379,-0.5108256/      ! log[M_x**2(min)]
+      DATA SLOP0 /6.5/            ! b (slope_ for Mx**2 > 5 GeV**2
+      DATA ASLOP /31.10362/            ! fit to the slope parameter.
+      DATA BSLOP /-15.29012/
+
+      LA = IABS(L0)
+      XM2MAX = 0.10*S
+
+C...Double diffraction
+      IF (JDIF .EQ. 3)   THEN
+         K = KK(LA)
+         AL = LOG(XM2MAX/XM2MIN(K))
+         ALX = ALXMIN(K) + AL*RNDM(0)
+         XMB2 = EXP(ALX)
+         XMB = SQRT (XMB2)
+         AL = LOG(XM2MAX/XM2MIN(1))
+         ALX = ALXMIN(1) + AL*RNDM(0)
+         XMT2 = EXP(ALX)
+         XMT = SQRT (XMT2)
+         X1 = 1.+(XMB2-XMT2)/S
+         X2 = 2.-X1
+         SLOPE = MAX(SLOP0, ASLOP+BSLOP*ALX)
+50       T = -LOG(RNDM(0))/SLOPE
+         PT = SQRT(T)
+         PZ1 = 0.25*S*X1*X1-XMB2-PT*PT
+         PZ2 = 0.25*S*X2*X2-XMT2-PT*PT
+         IF (PZ1.LT.0. .OR. PZ2.LT.0.)   GOTO 50
+         PHI = PI*RNDM(0)
+         P0(5) = XMB
+         P0(4) = 0.5*SQS*X1
+         P0(1) = PT*COS(PHI)
+         P0(2) = PT*SIN(PHI)
+         P0(3) = SQRT(PZ1)
+         CALL DIFDEC (L0, P0)
+         P0(5) = XMT
+         P0(4) = 0.5*SQS*X2
+         P0(1) = -P0(1)
+         P0(2) = -P0(2)
+         P0(3) = -SQRT(PZ2)
+         CALL DIFDEC (13, P0)
+         RETURN
+      ENDIF
+
+C...Single diffraction
+      IF (JDIF.EQ. 1)  THEN
+         K = KK(LA)
+         EM  = AM(13)
+         EM2 = AM2(13)
+         L = 13
+         ZD = -1.
+      ELSE
+         K = 1
+         EM  = AM(LA)
+         EM2 = AM2(LA)
+         L = L0
+         ZD = +1.
+      ENDIF
+C      Generate the mass of the diffracted system Mx (1/Mx**2 distribution)
+      AL = LOG(XM2MAX/XM2MIN(K))
+      ALX = ALXMIN(K) + AL*RNDM(0)
+      XM2 = EXP(ALX)
+      XM = SQRT (XM2)
+      XMB = XM
+      XMT = XM
+C      Generate the Kinematics of the pseudoelastic hadron
+      X = 1.-(XM2-EM2)/S
+      NP = NP+1
+      P(NP,4) = 0.5*SQS*X
+      SLOPE = MAX(SLOP0, ASLOP+BSLOP*ALX)
+60      T = -LOG(MAX(1.E-10,RNDM(0)))/SLOPE
+      PT = SQRT(T*X)
+      PZ2 = P(NP,4)**2-EM2 - PT*PT
+      IF (PZ2 .LT.0.)   GOTO 60
+      PHI = PI*RNDM(0)
+      P(NP,3) = SQRT(PZ2)*ZD
+      P(NP,1) = PT*COS(PHI)
+      P(NP,2) = PT*SIN(PHI)
+      P(NP,5) = EM
+      LLIST(NP) = L
+C      Generating the hadronic system recoling against the produced particle
+      P0(5) = SQRT(XM2)
+      P0(4) = 0.5*SQS*(2.-X)
+      DO J=1,3
+         P0(J) = -P(NP,J)
+      ENDDO
+      CALL DIFDEC (L0, P0)
+      RETURN
+      END
+      function estar(ap,at,b)
+      implicit real*8(a-h,o-z)
+      real*4 ap,at,b,estar
+      sigma=4.5  !total n-n cross section in fm**2
+      rt=.82*at**.3333 !target radius
+      rp=.82*ap**.3333 !projectile radius
+      alpha=rt**2/rp**2
+      beta=b**2/rt**2
+      f=at*sigma/(3.14159*rt**2)
+      alf = log(f)
+      alalf = log(alpha)
+      gfac=0
+      gfac1=0
+      s1=0.
+      s2=0.
+      s3=0.
+      ii=1
+      do n=0,10 ! This limit may not need to be so high.
+         if(n.ge.2) then
+            gfac1=gfac
+            gfac=gfac+log(float(n))
+         endif
+         g0=n*alf -n*beta*alpha/(n+alpha)+alalf
+         g1=g0-log(alpha+n)-gfac
+         g2=(n+2)*log(f)-(n+2)*beta*alpha/(n+2+alpha)
+     >      +log(n+2+alpha+beta*alpha**2)-3*log(n+2+alpha)-gfac
+         g3=g0-2*log(n+alpha)-gfac1
+         ii=-ii
+         s1=s1+ii*exp(g1)
+         s2=s2+ii*exp(g2)
+         if(n.ge.1) s3=s3+ii*exp(g3)
+      enddo
+
+      pb=s1
+      e1b=197.**2/(2*938.*rp**2*pb) *s2
+c      a=b*(s3/pb-1)
+c      a=-b*s3/pb
+c      e2b=-.5* 938. * (41./(ap**.333))**2 * a**2 /(197.**2)
+c      estar=e1b+e2b
+      estar = e1b
+      return
+      end
+
+      FUNCTION ESTARP (NPF, NW)
+C CONTRIBUTION TO E* FROM ENERGY DEPOSITED BY SECONDARIES
+C VERY NAIVE VERSION INCORPORATING HUEFFNER'S IDEAS
+      APF = NPF
+      F1 = 15.3/APF**0.666666666
+C AVERAGE KINETIC ENERGY/NUCLEON IN PREFRAGMENT (MeV)
+C PER PATHLENGTH EQUAL TO THE PREFRAGMENT RADIUS
+      ESTARP = 0.
+      DO I=1,NW
+      IF (RNDM(0) .GT. 0.5) THEN
+      F2 = F1*RDIS(0)
+      ESTARP = ESTARP + F2
+      ENDIF
+      ENDDO
+C SAMPLE RANDOMLY PER WOUNDED NUCLEON, x NW
+      RETURN
+      END
+      SUBROUTINE ESUM(N1,N2,ETOT,PXT,PYT,PZT,NF)
+C...Return the energy,px,py,pz and the number of stable
+C.  particles in the list between N1 and N2
+      COMMON /S_PLIST/ NP, P(5000,5), LLIST(5000)
+      NF=0
+      ETOT=0.
+      PXT=0.
+      PYT=0.
+      PZT=0.
+      DO J=N1,N2
+         L = LLIST(J)
+         IF (IABS(L) .LT. 10000)  THEN
+           NF = NF+1
+           ETOT = ETOT + P(J,4)
+           PXT = PXT + P(J,1)
+           PYT = PYT + P(J,2)
+           PZT = PZT + P(J,3)
+         ENDIF
+      ENDDO
+      RETURN
+      END
+      subroutine evap(npf,eb,eps,nnuc,nalp)
+      eps=7.5+sqrt(8*eb)
+      n=min(npf*int(eb/eps),npf)
+      nalp=n/5
+      nnuc=n-4*nalp
+      return
+      end
+      SUBROUTINE FACT_INI
+      COMMON /S_CFACT/ FACT (0:20), CO_BIN(0:20,0:20)
+      FACT(0) = 1.
+      DO J=1,20
+         FACT(J) = FACT(J-1)*FLOAT(J)
+      ENDDO
+      DO J=0,20
+         DO K=0,J
+            CO_BIN(J,K) = FACT(J)/(FACT(K)*FACT(J-K))
+         ENDDO
+      ENDDO
+      RETURN
+      END
+      REAL FUNCTION FDIFFRACT(SQS,ipart)
+C==================================================================
+C..Diffractive cross sections
+C==================================================================
+C... This routine only includes pp scattering.
+C    INPUT    SQS (GeV)
+C             ipart is the code for the scattering particle(p,pi)
+C    OUTPUT:  DIFFRACT is the single diffractive cross
+C            section parameterized with a log.
+c            in mb.
+C                                    RSF
+C......................................................
+      real a(2),b(2)
+      data a/0.0,1.42/
+      data b/1.56,0.72/
+      FDIFFRACT =( a(ipart)+b(ipart)*log(sqs))/2.0
+      RETURN
+      END
+      FUNCTION FERMK(A)
+      DIMENSION AA(6), FK(6)
+      DATA AA/4., 6., 12., 24., 40., 57./
+      DATA FK/130.,169.,221.,235.,251.,260./
+      DO I=2,4
+      IF (A .LT. AA(I)) GO TO 25
+      ENDDO
+      I = 5
+   25      F11 = AA(I-1)
+      F12 = AA(I)
+      F13 = AA(I+1)
+      F21 = FK(I-1)
+      F22 = FK(I)
+      F23 = FK(I+1)
+      FERMK = QUAD_INT(A,F11,F12,F13, F21,F22,F23)
+      RETURN
+      END
+
+      SUBROUTINE FMINUS (S, FR, FI)
+      COMMON /BLOCKC/ AA, BETA, S0, CC, AMU, DD, ALPHA, A0
+      DATA PI /3.1415926/
+      F1 = S**(ALPHA-1.)
+      F2 = 0.5*PI*(1.-ALPHA)
+      FR = -DD*F1*COS(F2)
+      FI = -DD*F1*SIN(F2)
+      RETURN
+      END
+
+      SUBROUTINE FPLUS (S, FR, FI)
+      COMMON /BLOCKC/ AA, BETA, S0, CC, AMU, DD, ALPHA, A0
+      COMPLEX Z1, Z2, Z3
+      DATA PI /3.1415926/
+      F1 = LOG(S/S0)
+      Z1 = CMPLX(F1,-PI/2.)
+      Z1 = Z1*Z1
+      Z2 = 1. + A0*Z1
+      Z3 = Z1/Z2
+      F2 = CC*S**(AMU-1.)
+      F3 = 0.5*PI*(1.-AMU)
+      FI = AA + F2*COS(F3) + BETA*REAL(Z3)
+      FR = -BETA*AIMAG(Z3)+F2*SIN(F3)
+      RETURN
+      END
+
+      FUNCTION FPNI (E,L)
+C...This function  returns the interaction length
+C.  of an hadronic particle travelling in air
+C.  INPUT:   E (TeV)   particle energy
+C.           L         particle code
+C.  OUTPUT:  FPNI      (g cm-2)
+C...................................................
+        COMMON /CSAIR/ NSQS, ASQSMIN, ASQSMAX, DASQS,
+     +           SSIG0(41,2),SSIGA(41,2),ALINT(41,2)
+      DIMENSION KK(7:14)
+      DATA KK /6*2, 2*1/
+      SQS = SQRT(2000.*E*0.937)                        ! GeV
+      AL = LOG10 (SQS)
+      T = (AL-ASQSMIN)/DASQS
+      J = INT(T)
+C D.H.
+      J = MIN(J,39)
+      J = MAX(J,0)
+
+      T = T-FLOAT(J)
+      FPNI = (1.-T)*ALINT(J+1,KK(L)) + T*ALINT(J+2,KK(L))      ! g cm-2
+      RETURN
+      END
+
+      SUBROUTINE FRAGM (IAT,IAP, NW,B, NF, IAF)
+C...Nuclear Fragmentation, Abrasion-ablation model,
+C...Based on Jon Engel's routines ABRABL
+C...This most recent version adds for all prefragment
+C...masses > 10 the model calculation for the fragment
+C...mass distribution and the energy carried by the fragment
+C...of W. Friedmann
+C...The average values are used to implement the model
+C...in the montecarlo fashion / TSS, Dec '91
+C...Needs INITFRAG to fill in the model data from INITFRAG.TAB
+C.
+C.  INPUT: IAP = mass of incident nucleus
+C.         IAT = mass of target   nucleus
+C.         NW = number of wounded nucleons in the beam nucleus
+C.         B  = impact parameter in the interaction
+C.
+C.  OUTPUT : NF = number of fragments  of the spectator nucleus
+C.           IAF(1:NF) = mass number of each fragment
+C.           PF(3,60) in common block /FRAGMENTS/ contains
+C.           the three momentum components (MeV/c) of each
+C.           fragment in the projectile frame
+C..............................................................
+      COMMON /FRAGMENTS/ PPP(3,60)
+      COMMON /FRAGMOD/A(10,10,20),AE(10,10,20),ERES(10,10),NFLAGG(10,10)
+      DIMENSION IAF(60)
+      DIMENSION AA(10), EAA(10)
+      DATA AA/10.,15.,20.,25.,30.,35.,40.,45.,50.,56./
+      DATA EAA/1.,2.,4.,6.,8.,10.,12.,16.,20.,30/
+      AP=IAP
+      AT=IAT
+      NPF = IAP - NW
+      IF (NPF .EQ. 0) THEN
+         NF = 0
+         RETURN
+      ENDIF
+
+      EB = ESTAR(AP,AT, B)
+      EBP = ESTARP (NPF, NW)
+C CONTRIBUTION TO E* FROM ENERGY DEPOSITED BY SECONDARIES
+      EB = EB + EBP
+C TOTAL E* IS THE SUM OF THE TWO COMPONENTS
+
+C.....Prefragment transverse momentum (MeV/nucleon)...
+            FK = FERMK(AP)
+C FERMI MOMENTUM OF THE PROJECTILE NUCLEUS
+            IF (NW .LT. IAP) THEN
+            SIG = FK*SQRT(NW*NPF/(AP-1.))/3.162
+C GAUSSIAN SIGMA IN ALL THREE DIRECTION
+            ELSE
+            SIG = FK/3.162
+C THIS IS NOT CORRECT, TOO LARGE !!!!!!!!!!!!!!
+            ENDIF
+             PPFX = SIG*GASDEV(0)/NPF
+             PPFY = SIG*GASDEV(0)/NPF
+C THREE MOMENTUM COMPONENTS PER NUCLEON FOR THE PREFRAGMENT
+
+C.............Crude model for small prefragment mass .......
+            IF (NPF .LT. 10) THEN
+                 CALL EVAP(NPF, EB, EPS, NNUC, NALP)
+C                  EPS IS THE KINETIC ENERGY CARRIED BY THE EVAPORATED NUCLEONS
+               ETOT = 938. + EPS
+                 PP = SQRT((ETOT*ETOT - 8.79844E5)/3.)
+C                  AVERAGE MOMENTUM OF EVAPORATED NUCLEONS IN EACH DIRECTION
+                 NUC = NPF - NNUC - 4*NALP
+                 NF = 0
+                 IF (NUC .GT. 0) THEN
+                    NF = NF + 1
+                    IAF(NF) = NUC
+                    PPP(1,NF) = NUC*PPFX
+                    PPP(2,NF) = NUC*PPFY
+                 ENDIF
+                 IF (NALP .NE. 0) THEN
+                 DO I=1,NALP
+                   NF = NF + 1
+                    IAF(NF) = 4
+                   CALL SINCO(S1,C1)
+                   CALL SINCO(S2,C2)
+                   PXE = 4.*PP*S1*S2
+                   PYE = 4.*PP*S1*C2
+                   PPP(1,NF) = 4.*PPFX + PXE
+                   PPP(2,NF) = 4.*PPFY + PYE
+                   PPP(1,1) = PPP(1,1) - PXE
+                   PPP(2,1) = PPP(2,1) - PYE
+                 ENDDO
+                 ENDIF
+                 IF (NNUC .NE. 0) THEN
+                 DO I=1,NNUC
+                    NF = NF + 1
+                    IAF(NF) = 1
+                    CALL SINCO(S1,C1)
+                    CALL SINCO(S2,C2)
+                    PXE = PP*S1*S2
+                    PYE = PP*S1*C2
+                    PPP(1,NF) = 4.*PPFX + PXE
+                    PPP(2,NF) = 4.*PPFY + PYE
+                    PPP(1,1) = PPP(1,1) - PXE
+                    PPP(2,1) = PPP(2,1) - PYE
+                 ENDDO
+                 ENDIF
+                 RETURN
+            ENDIF
+
+C.........More refined model calculation .............
+      JA = NPF/5 -1
+      IF (JA .LT. 10) THEN
+      IF ((NPF - AA(JA)) .GT. (AA(JA+1)-NPF)) JA = JA + 1
+      ENDIF
+      ARAT = FLOAT(NPF)/AA(JA)
+      DO J=1,10
+      IF (EB .LT. EAA(J)) GO TO 29
+      ENDDO
+      JE = 10
+      GO TO 39
+   29      JE = J
+   39      IF (JE .GT. 1 .AND. JE .NE. 10) THEN
+      IF ((EB - EAA(J-1)) .LT. (EAA(J)-EB)) JE = J - 1
+      ENDIF
+      ERAT = EB/EAA(JE)
+        IF (EB .LT. 1.) THEN
+        ERAT = EB
+        ENDIF
+C INTERPOLATE BETWEEN EB=0. (NOTHING HAPPENS) AND EB = 1. MeV
+
+         IF (JA .EQ. 10 .AND. JE .GT. 6) THEN
+         WRITE(*,*)' JA=',JA,',   JE=',JE
+         ENDIF
+   43      ESUM = 0.
+      NSUM = 0
+      JF = 0
+      DO J=20,1,-1
+      FR =  A(JA, JE, J)*ARAT*ERAT
+      N1 = 1 + FR
+      FR1 = FR/FLOAT(N1)
+      DO K=1, N1
+      IF (RNDM(0) .LT. FR1) THEN
+      JF = JF + 1
+      IAF(JF) = J
+      NSUM = NSUM + J
+      EKIN = ERAT*AE(JA,JE, J)
+         IF (EKIN .GT. 0.) THEN
+         ESUM = ESUM + EKIN
+         ETOT = 938.*IAF(JF) + EKIN
+           PP = SQRT(2.*(ETOT*ETOT - IAF(JF)**2*8.79844E5)/3.)
+         CALL SINCO(S1,C1)
+         CALL SINCO(S2,C2)
+         PPP(1,JF) = PP*S1*S2 + IAF(JF)*PPFX
+         PPP(2,JF) = PP*S1*C2 + IAF(JF)*PPFY
+         ENDIF
+        IF (NSUM .GT. NPF) THEN
+C        WRITE(*,*)' WARNING, NSUM=', NSUM,',  NPF=',NPF
+C        WRITE(*,*)'  ARAT =', ARAT
+        GO TO 43
+        ELSE
+        IF (NSUM .EQ. NPF) THEN
+        GO TO 44
+        ENDIF
+        ENDIF
+      ENDIF
+      ENDDO
+      ENDDO
+      IF (NFLAGG(JA,JE) .EQ. 0) THEN
+C 'THE RESIDUE' IS A NUCLEAR FRAGMENT
+      JF = JF + 1
+      IAF(JF) = NPF - NSUM
+      F1 = NPF*EB - ESUM
+      IF (F1 .LT. 0.) F1 = 0.
+C GIVE THE REST OF EB TO THE FRAGMENT
+      EKIN = F1
+         IF (EKIN .GT. 0.) THEN
+         ETOT = 938.*IAF(JF) + EKIN
+           PP = SQRT(2.*(ETOT*ETOT - IAF(JF)**2*8.79844E5)/3.)
+         CALL SINCO(S1,C1)
+         CALL SINCO(S2,C2)
+         PPP(1,JF) = PP*S1*S2 + IAF(JF)*PPFX
+         PPP(2,JF) = PP*S1*C2 + IAF(JF)*PPFY
+         ENDIF
+      ELSE
+C 'THE RESIDUE' CONSISTS OF SPECTATOR NUCLEONS
+      N1 = NPF - NSUM
+      DO K=1,N1
+      JF = JF + 1
+      IAF(JF) = 1
+      EKIN = ERAT*ERES(JA,JE)
+         IF (EKIN .GT. 0.) THEN
+         ETOT = 938.*IAF(JF) + EKIN
+           PP = SQRT(2.*(ETOT*ETOT - IAF(JF)**2*8.79844E5)/3.)
+         CALL SINCO(S1,C1)
+         CALL SINCO(S2,C2)
+         PPP(1,JF) = PP*S1*S2 + PPFX
+         PPP(2,JF) = PP*S1*C2 + PPFY
+         ENDIF
+      ENDDO
+      ENDIF
+   44      NF = JF
+      RETURN
+      END
+      SUBROUTINE FRAGM1 (IA,NW, NF, IAF)
+C...Nuclear Fragmentation
+C.  total dissolution of nucleus
+C..........................................
+      DIMENSION IAF(60)
+      NF = IA-NW
+      DO J=1,NF
+         IAF(J) = 1
+      ENDDO
+      RETURN
+      END
+      SUBROUTINE FRAGM2 (IA,NW, NF, IAF)
+C...Nuclear Fragmentation
+C.  Spectator in one single fragment
+C..........................................
+      DIMENSION IAF(60)
+      IF (IA-NW .GT. 0)  THEN
+         NF = 1
+         IAF(1) = IA-NW
+      ELSE
+         NF = 0
+      ENDIF
+      RETURN
+      END
+      BLOCK DATA FRAG_DATA
+C====================================================================
+C...Code of fragmentation  of spectator nucleons
+C.  based on Jon Engel  abrasion-ablation algorithms
+C...Data for the fragmentation of  nucleus  projectiles
+      COMMON /FRAGMOD/A(10,10,20),AE(10,10,20),ERES(10,10),NFLAGG(10,10)
+      DATA (NFLAGG(I, 1),I=1,10)  /
+     +    0,  0,  0,  0,  0,  0,  0,  0,  0,  0 /
+      DATA (NFLAGG(I, 2),I=1,10)  /
+     +    0,  0,  0,  0,  0,  0,  0,  0,  0,  0 /
+      DATA (NFLAGG(I, 3),I=1,10)  /
+     +    0,  0,  0,  0,  0,  0,  0,  0,  0,  0 /
+      DATA (NFLAGG(I, 4),I=1,10)  /
+     +    0,  0,  0,  0,  0,  0,  0,  0,  0,  0 /
+      DATA (NFLAGG(I, 5),I=1,10)  /
+     +    0,  0,  0,  0,  0,  0,  0,  0,  0,  0 /
+      DATA (NFLAGG(I, 6),I=1,10)  /
+     +    0,  0,  0,  0,  0,  0,  0,  1,  1,  1 /
+      DATA (NFLAGG(I, 7),I=1,10)  /
+     +    1,  1,  1,  1,  1,  1,  1,  1,  1,  1 /
+      DATA (NFLAGG(I, 8),I=1,10)  /
+     +    1,  1,  1,  1,  1,  1,  1,  1,  1,  1 /
+      DATA (NFLAGG(I, 9),I=1,10)  /
+     +    1,  1,  1,  1,  1,  1,  1,  1,  1,  1 /
+      DATA (NFLAGG(I,10),I=1,10)  /
+     +    1,  1,  1,  1,  1,  1,  1,  1,  1,  1 /
+      DATA (A(I, 1, 1),I=1,10)  /
+     +  .438E-01,.172    ,.283    ,.511    ,.715    ,.920    ,1.19    ,
+     +  1.37    ,1.65    ,2.14     /
+      DATA (A(I, 1, 2),I=1,10)  /
+     +  .147E-01,.249E-01,.439E-01,.592E-01,.776E-01,.886E-01,.108    ,
+     +  .117    ,.126    ,.128     /
+      DATA (A(I, 1, 3),I=1,10)  /
+     +  .216E-02,.627E-02,.834E-02,.108E-01,.144E-01,.152E-01,.196E-01,
+     +  .200E-01,.210E-01,.224E-01 /
+      DATA (A(I, 1, 4),I=1,10)  /
+     +  .593E-01,.653E-01,.116    ,.145    ,.184    ,.204    ,.234    ,
+     +  .257    ,.271    ,.248     /
+      DATA (A(I, 1, 5),I=1,10)  /
+     +  .000E+00,.918E-02,.362E-02,.805E-02,.436E-02,.728E-02,.466E-02,
+     +  .707E-02,.932E-02,.130E-01 /
+      DATA (A(I, 1, 6),I=1,10)  /
+     +  .000E+00,.180E-02,.247E-02,.208E-02,.224E-02,.214E-02,.226E-02,
+     +  .233E-02,.230E-02,.194E-02 /
+      DATA (A(I, 1, 7),I=1,10)  /
+     +  .000E+00,.106E-02,.703E-03,.687E-03,.739E-03,.674E-03,.819E-03,
+     +  .768E-03,.756E-03,.720E-03 /
+      DATA (A(I, 1, 8),I=1,10)  /
+     +  .000E+00,.000E+00,.188E-02,.130E-02,.138E-02,.117E-02,.124E-02,
+     +  .119E-02,.111E-02,.829E-03 /
+      DATA (A(I, 1, 9),I=1,10)  /
+     +  .000E+00,.000E+00,.302E-03,.258E-03,.249E-03,.208E-03,.248E-03,
+     +  .222E-03,.210E-03,.187E-03 /
+      DATA (A(I, 1,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.235E-03,.222E-03,.172E-03,.181E-03,
+     +  .166E-03,.152E-03,.124E-03 /
+      DATA (A(I, 1,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.238E-03,.179E-03,.145E-03,.156E-03,
+     +  .138E-03,.129E-03,.111E-03 /
+      DATA (A(I, 1,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.368E-03,.400E-03,.255E-03,.262E-03,
+     +  .221E-03,.182E-03,.112E-03 /
+      DATA (A(I, 1,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.753E-04,.712E-04,.527E-04,
+     +  .537E-04,.538E-04,.487E-04 /
+      DATA (A(I, 1,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.103E-03,.589E-04,.578E-04,
+     +  .468E-04,.385E-04,.269E-04 /
+      DATA (A(I, 1,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.444E-04,.372E-04,
+     +  .318E-04,.284E-04,.218E-04 /
+      DATA (A(I, 1,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.487E-04,.473E-04,
+     +  .338E-04,.243E-04,.122E-04 /
+      DATA (A(I, 1,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.121E-04,.117E-04,
+     +  .932E-05,.792E-05,.583E-05 /
+      DATA (A(I, 1,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.147E-04,
+     +  .101E-04,.756E-05,.496E-05 /
+      DATA (A(I, 1,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.755E-05,
+     +  .612E-05,.505E-05,.341E-05 /
+      DATA (A(I, 1,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  .630E-05,.444E-05,.282E-05 /
+      DATA (A(I, 2, 1),I=1,10)  /
+     +  .269    ,.510    ,.738    ,1.12    ,1.46    ,1.83    ,2.22    ,
+     +  2.57    ,3.00    ,3.67     /
+      DATA (A(I, 2, 2),I=1,10)  /
+     +  .121    ,.133    ,.190    ,.234    ,.293    ,.332    ,.395    ,
+     +  .431    ,.468    ,.502     /
+      DATA (A(I, 2, 3),I=1,10)  /
+     +  .227E-01,.374E-01,.474E-01,.578E-01,.722E-01,.794E-01,.960E-01,
+     +  .102    ,.110    ,.120     /
+      DATA (A(I, 2, 4),I=1,10)  /
+     +  .287    ,.196    ,.270    ,.314    ,.373    ,.408    ,.462    ,
+     +  .498    ,.529    ,.523     /
+      DATA (A(I, 2, 5),I=1,10)  /
+     +  .000E+00,.433E-01,.218E-01,.384E-01,.263E-01,.385E-01,.298E-01,
+     +  .405E-01,.504E-01,.671E-01 /
+      DATA (A(I, 2, 6),I=1,10)  /
+     +  .000E+00,.151E-01,.177E-01,.159E-01,.173E-01,.173E-01,.187E-01,
+     +  .196E-01,.201E-01,.191E-01 /
+      DATA (A(I, 2, 7),I=1,10)  /
+     +  .000E+00,.457E-02,.607E-02,.610E-02,.677E-02,.670E-02,.784E-02,
+     +  .787E-02,.806E-02,.803E-02 /
+      DATA (A(I, 2, 8),I=1,10)  /
+     +  .000E+00,.000E+00,.702E-02,.536E-02,.558E-02,.510E-02,.554E-02,
+     +  .546E-02,.538E-02,.489E-02 /
+      DATA (A(I, 2, 9),I=1,10)  /
+     +  .000E+00,.000E+00,.190E-02,.199E-02,.205E-02,.191E-02,.221E-02,
+     +  .214E-02,.213E-02,.204E-02 /
+      DATA (A(I, 2,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.226E-02,.219E-02,.195E-02,.208E-02,
+     +  .204E-02,.203E-02,.194E-02 /
+      DATA (A(I, 2,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.213E-02,.195E-02,.175E-02,.191E-02,
+     +  .183E-02,.179E-02,.166E-02 /
+      DATA (A(I, 2,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.588E-03,.186E-02,.137E-02,.141E-02,
+     +  .128E-02,.117E-02,.947E-03 /
+      DATA (A(I, 2,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.554E-03,.562E-03,.454E-03,
+     +  .485E-03,.505E-03,.509E-03 /
+      DATA (A(I, 2,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.490E-03,.533E-03,.531E-03,
+     +  .476E-03,.437E-03,.369E-03 /
+      DATA (A(I, 2,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.427E-03,.382E-03,
+     +  .358E-03,.340E-03,.294E-03 /
+      DATA (A(I, 2,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.239E-03,.298E-03,
+     +  .238E-03,.196E-03,.134E-03 /
+      DATA (A(I, 2,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.299E-04,.893E-04,
+     +  .796E-04,.744E-04,.683E-04 /
+      DATA (A(I, 2,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.127E-03,
+     +  .107E-03,.916E-04,.720E-04 /
+      DATA (A(I, 2,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.397E-04,
+     +  .630E-04,.565E-04,.461E-04 /
+      DATA (A(I, 2,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  .511E-04,.459E-04,.402E-04 /
+      DATA (A(I, 3, 1),I=1,10)  /
+     +  .708    ,1.02    ,1.41    ,1.91    ,2.42    ,3.00    ,3.53    ,
+     +  4.09    ,4.71    ,5.57     /
+      DATA (A(I, 3, 2),I=1,10)  /
+     +  .397    ,.410    ,.539    ,.648    ,.795    ,.910    ,1.06    ,
+     +  1.17    ,1.29    ,1.42     /
+      DATA (A(I, 3, 3),I=1,10)  /
+     +  .845E-01,.122    ,.157    ,.190    ,.232    ,.262    ,.307    ,
+     +  .335    ,.366    ,.402     /
+      DATA (A(I, 3, 4),I=1,10)  /
+     +  .210    ,.379    ,.450    ,.490    ,.574    ,.636    ,.709    ,
+     +  .769    ,.820    ,.849     /
+      DATA (A(I, 3, 5),I=1,10)  /
+     +  .000E+00,.102    ,.675E-01,.104    ,.858E-01,.115    ,.102    ,
+     +  .129    ,.154    ,.194     /
+      DATA (A(I, 3, 6),I=1,10)  /
+     +  .000E+00,.392E-01,.615E-01,.593E-01,.649E-01,.674E-01,.735E-01,
+     +  .779E-01,.817E-01,.828E-01 /
+      DATA (A(I, 3, 7),I=1,10)  /
+     +  .000E+00,.539E-02,.222E-01,.238E-01,.269E-01,.280E-01,.320E-01,
+     +  .334E-01,.350E-01,.361E-01 /
+      DATA (A(I, 3, 8),I=1,10)  /
+     +  .000E+00,.000E+00,.838E-02,.130E-01,.133E-01,.131E-01,.141E-01,
+     +  .144E-01,.149E-01,.152E-01 /
+      DATA (A(I, 3, 9),I=1,10)  /
+     +  .000E+00,.000E+00,.228E-02,.647E-02,.688E-02,.687E-02,.772E-02,
+     +  .786E-02,.811E-02,.824E-02 /
+      DATA (A(I, 3,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.664E-02,.828E-02,.802E-02,.845E-02,
+     +  .869E-02,.902E-02,.930E-02 /
+      DATA (A(I, 3,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.338E-02,.735E-02,.710E-02,.767E-02,
+     +  .767E-02,.776E-02,.756E-02 /
+      DATA (A(I, 3,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.280E-03,.262E-02,.349E-02,.342E-02,
+     +  .322E-02,.312E-02,.291E-02 /
+      DATA (A(I, 3,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.618E-03,.161E-02,.138E-02,
+     +  .148E-02,.155E-02,.166E-02 /
+      DATA (A(I, 3,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.313E-03,.128E-02,.161E-02,
+     +  .150E-02,.144E-02,.134E-02 /
+      DATA (A(I, 3,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.645E-03,.118E-02,
+     +  .115E-02,.111E-02,.103E-02 /
+      DATA (A(I, 3,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.117E-03,.497E-03,
+     +  .581E-03,.501E-03,.401E-03 /
+      DATA (A(I, 3,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.115E-04,.997E-04,
+     +  .202E-03,.203E-03,.206E-03 /
+      DATA (A(I, 3,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.877E-04,
+     +  .242E-03,.263E-03,.226E-03 /
+      DATA (A(I, 3,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.158E-04,
+     +  .881E-04,.152E-03,.136E-03 /
+      DATA (A(I, 3,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  .358E-04,.997E-04,.117E-03 /
+      DATA (A(I, 4, 1),I=1,10)  /
+     +  .945    ,1.29    ,1.40    ,1.98    ,2.73    ,3.17    ,3.77    ,
+     +  4.29    ,4.78    ,5.54     /
+      DATA (A(I, 4, 2),I=1,10)  /
+     +  .581    ,.599    ,.645    ,.839    ,1.10    ,1.25    ,1.47    ,
+     +  1.64    ,1.78    ,1.99     /
+      DATA (A(I, 4, 3),I=1,10)  /
+     +  .127    ,.182    ,.202    ,.264    ,.344    ,.387    ,.455    ,
+     +  .504    ,.549    ,.611     /
+      DATA (A(I, 4, 4),I=1,10)  /
+     +  .183    ,.464    ,.351    ,.444    ,.642    ,.659    ,.772    ,
+     +  .830    ,.882    ,.930     /
+      DATA (A(I, 4, 5),I=1,10)  /
+     +  .000E+00,.122    ,.803E-01,.136    ,.134    ,.173    ,.164    ,
+     +  .203    ,.239    ,.300     /
+      DATA (A(I, 4, 6),I=1,10)  /
+     +  .000E+00,.393E-01,.766E-01,.872E-01,.108    ,.111    ,.123    ,
+     +  .132    ,.139    ,.145     /
+      DATA (A(I, 4, 7),I=1,10)  /
+     +  .000E+00,.416E-02,.289E-01,.360E-01,.454E-01,.477E-01,.549E-01,
+     +  .583E-01,.618E-01,.654E-01 /
+      DATA (A(I, 4, 8),I=1,10)  /
+     +  .000E+00,.000E+00,.761E-02,.157E-01,.214E-01,.205E-01,.233E-01,
+     +  .241E-01,.255E-01,.271E-01 /
+      DATA (A(I, 4, 9),I=1,10)  /
+     +  .000E+00,.000E+00,.238E-02,.803E-02,.123E-01,.123E-01,.140E-01,
+     +  .145E-01,.153E-01,.160E-01 /
+      DATA (A(I, 4,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.695E-02,.150E-01,.154E-01,.166E-01,
+     +  .172E-01,.181E-01,.192E-01 /
+      DATA (A(I, 4,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.355E-02,.104E-01,.143E-01,.156E-01,
+     +  .158E-01,.164E-01,.165E-01 /
+      DATA (A(I, 4,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.112E-03,.276E-02,.568E-02,.736E-02,
+     +  .684E-02,.691E-02,.661E-02 /
+      DATA (A(I, 4,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.740E-03,.222E-02,.339E-02,
+     +  .352E-02,.382E-02,.409E-02 /
+      DATA (A(I, 4,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.369E-03,.160E-02,.322E-02,
+     +  .375E-02,.375E-02,.355E-02 /
+      DATA (A(I, 4,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.750E-03,.190E-02,
+     +  .298E-02,.319E-02,.299E-02 /
+      DATA (A(I, 4,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.260E-03,.673E-03,
+     +  .117E-02,.156E-02,.126E-02 /
+      DATA (A(I, 4,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.283E-05,.131E-03,
+     +  .363E-03,.618E-03,.690E-03 /
+      DATA (A(I, 4,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.205E-03,
+     +  .378E-03,.709E-03,.844E-03 /
+      DATA (A(I, 4,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.654E-05,
+     +  .150E-03,.341E-03,.527E-03 /
+      DATA (A(I, 4,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  .957E-04,.197E-03,.406E-03 /
+      DATA (A(I, 5, 1),I=1,10)  /
+     +  1.16    ,1.70    ,2.19    ,2.79    ,3.33    ,3.90    ,4.49    ,
+     +  5.07    ,5.66    ,6.38     /
+      DATA (A(I, 5, 2),I=1,10)  /
+     +  .779    ,.899    ,1.09    ,1.28    ,1.51    ,1.71    ,1.96    ,
+     +  2.18    ,2.39    ,2.62     /
+      DATA (A(I, 5, 3),I=1,10)  /
+     +  .167    ,.263    ,.334    ,.408    ,.482    ,.548    ,.632    ,
+     +  .700    ,.767    ,.840     /
+      DATA (A(I, 5, 4),I=1,10)  /
+     +  .203    ,.565    ,.845    ,.867    ,.906    ,.961    ,1.08    ,
+     +  1.13    ,1.21    ,1.25     /
+      DATA (A(I, 5, 5),I=1,10)  /
+     +  .000E+00,.129    ,.152    ,.237    ,.208    ,.268    ,.258    ,
+     +  .312    ,.368    ,.450     /
+      DATA (A(I, 5, 6),I=1,10)  /
+     +  .000E+00,.460E-01,.126    ,.174    ,.182    ,.188    ,.208    ,
+     +  .219    ,.233    ,.239     /
+      DATA (A(I, 5, 7),I=1,10)  /
+     +  .000E+00,.289E-02,.380E-01,.611E-01,.788E-01,.845E-01,.974E-01,
+     +  .103    ,.111    ,.117     /
+      DATA (A(I, 5, 8),I=1,10)  /
+     +  .000E+00,.000E+00,.137E-01,.223E-01,.374E-01,.436E-01,.488E-01,
+     +  .488E-01,.524E-01,.547E-01 /
+      DATA (A(I, 5, 9),I=1,10)  /
+     +  .000E+00,.000E+00,.162E-02,.114E-01,.198E-01,.263E-01,.315E-01,
+     +  .323E-01,.348E-01,.364E-01 /
+      DATA (A(I, 5,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.149E-01,.240E-01,.320E-01,.428E-01,
+     +  .436E-01,.469E-01,.493E-01 /
+      DATA (A(I, 5,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.562E-02,.194E-01,.290E-01,.408E-01,
+     +  .460E-01,.492E-01,.500E-01 /
+      DATA (A(I, 5,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.476E-04,.106E-01,.134E-01,.191E-01,
+     +  .227E-01,.264E-01,.253E-01 /
+      DATA (A(I, 5,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.281E-02,.679E-02,.879E-02,
+     +  .123E-01,.165E-01,.190E-01 /
+      DATA (A(I, 5,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.542E-04,.847E-02,.125E-01,
+     +  .144E-01,.173E-01,.192E-01 /
+      DATA (A(I, 5,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.652E-02,.982E-02,
+     +  .129E-01,.159E-01,.192E-01 /
+      DATA (A(I, 5,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.109E-03,.688E-02,
+     +  .751E-02,.845E-02,.905E-02 /
+      DATA (A(I, 5,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.823E-06,.237E-02,
+     +  .318E-02,.446E-02,.569E-02 /
+      DATA (A(I, 5,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.604E-03,
+     +  .610E-02,.673E-02,.827E-02 /
+      DATA (A(I, 5,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.716E-06,
+     +  .412E-02,.519E-02,.617E-02 /
+      DATA (A(I, 5,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  .710E-03,.543E-02,.674E-02 /
+      DATA (A(I, 6, 1),I=1,10)  /
+     +  1.36    ,2.08    ,2.67    ,3.30    ,3.94    ,4.62    ,5.18    ,
+     +  3.60    ,3.64    ,3.95     /
+      DATA (A(I, 6, 2),I=1,10)  /
+     +  1.07    ,1.33    ,1.58    ,1.82    ,2.10    ,2.44    ,2.74    ,
+     +  1.78    ,1.73    ,1.80     /
+      DATA (A(I, 6, 3),I=1,10)  /
+     +  .158    ,.276    ,.402    ,.506    ,.609    ,.700    ,.802    ,
+     +  .638    ,.629    ,.658     /
+      DATA (A(I, 6, 4),I=1,10)  /
+     +  .308    ,.739    ,1.02    ,1.12    ,1.26    ,1.35    ,1.57    ,
+     +  1.94    ,1.71    ,1.55     /
+      DATA (A(I, 6, 5),I=1,10)  /
+     +  .000E+00,.217    ,.183    ,.324    ,.276    ,.395    ,.393    ,
+     +  .558    ,.602    ,.681     /
+      DATA (A(I, 6, 6),I=1,10)  /
+     +  .000E+00,.658E-01,.251    ,.267    ,.299    ,.326    ,.386    ,
+     +  .452    ,.475    ,.409     /
+      DATA (A(I, 6, 7),I=1,10)  /
+     +  .000E+00,.198E-02,.774E-01,.136    ,.149    ,.164    ,.187    ,
+     +  .210    ,.238    ,.256     /
+      DATA (A(I, 6, 8),I=1,10)  /
+     +  .000E+00,.000E+00,.290E-01,.122    ,.139    ,.128    ,.129    ,
+     +  .137    ,.147    ,.167     /
+      DATA (A(I, 6, 9),I=1,10)  /
+     +  .000E+00,.000E+00,.699E-03,.617E-01,.750E-01,.801E-01,.905E-01,
+     +  .974E-01,.105    ,.122     /
+      DATA (A(I, 6,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.310E-01,.112    ,.127    ,.140    ,
+     +  .143    ,.155    ,.176     /
+      DATA (A(I, 6,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.277E-02,.889E-01,.143    ,.150    ,
+     +  .175    ,.184    ,.208     /
+      DATA (A(I, 6,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.202E-04,.343E-01,.959E-01,.109    ,
+     +  .115    ,.112    ,.116     /
+      DATA (A(I, 6,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.186E-02,.435E-01,.512E-01,
+     +  .744E-01,.856E-01,.103     /
+      DATA (A(I, 6,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.144E-04,.427E-01,.786E-01,
+     +  .911E-01,.993E-01,.108     /
+      DATA (A(I, 6,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.466E-02,.518E-01,
+     +  .848E-01,.109    ,.119     /
+      DATA (A(I, 6,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.655E-05,.330E-01,
+     +  .586E-01,.617E-01,.594E-01 /
+      DATA (A(I, 6,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.228E-06,.328E-02,
+     +  .190E-01,.301E-01,.454E-01 /
+      DATA (A(I, 6,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.218E-04,
+     +  .272E-01,.501E-01,.707E-01 /
+      DATA (A(I, 6,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.146E-06,
+     +  .441E-02,.378E-01,.556E-01 /
+      DATA (A(I, 6,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  .160E-03,.204E-01,.679E-01 /
+      DATA (A(I, 7, 1),I=1,10)  /
+     +  .522    ,.862    ,1.14    ,1.40    ,1.70    ,1.94    ,2.26    ,
+     +  2.48    ,2.72    ,3.95     /
+      DATA (A(I, 7, 2),I=1,10)  /
+     +  .314    ,.450    ,.588    ,.692    ,.834    ,.936    ,1.09    ,
+     +  1.18    ,1.28    ,1.80     /
+      DATA (A(I, 7, 3),I=1,10)  /
+     +  .814E-01,.147    ,.189    ,.226    ,.272    ,.302    ,.351    ,
+     +  .378    ,.406    ,.658     /
+      DATA (A(I, 7, 4),I=1,10)  /
+     +  .252    ,.864    ,1.01    ,.851    ,.837    ,.774    ,.763    ,
+     +  .757    ,.748    ,1.55     /
+      DATA (A(I, 7, 5),I=1,10)  /
+     +  .000E+00,.225    ,.180    ,.276    ,.193    ,.240    ,.190    ,
+     +  .228    ,.259    ,.681     /
+      DATA (A(I, 7, 6),I=1,10)  /
+     +  .000E+00,.485E-01,.272    ,.273    ,.253    ,.216    ,.206    ,
+     +  .197    ,.191    ,.409     /
+      DATA (A(I, 7, 7),I=1,10)  /
+     +  .000E+00,.137E-02,.752E-01,.137    ,.152    ,.134    ,.125    ,
+     +  .119    ,.116    ,.256     /
+      DATA (A(I, 7, 8),I=1,10)  /
+     +  .000E+00,.000E+00,.220E-01,.155    ,.175    ,.155    ,.116    ,
+     +  .977E-01,.858E-01,.167     /
+      DATA (A(I, 7, 9),I=1,10)  /
+     +  .000E+00,.000E+00,.326E-03,.695E-01,.881E-01,.106    ,.897E-01,
+     +  .782E-01,.706E-01,.122     /
+      DATA (A(I, 7,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.261E-01,.124    ,.131    ,.156    ,
+     +  .141    ,.121    ,.176     /
+      DATA (A(I, 7,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.785E-03,.864E-01,.130    ,.170    ,
+     +  .182    ,.172    ,.208     /
+      DATA (A(I, 7,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.896E-05,.225E-01,.105    ,.126    ,
+     +  .126    ,.135    ,.116     /
+      DATA (A(I, 7,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.542E-03,.427E-01,.553E-01,
+     +  .744E-01,.980E-01,.103     /
+      DATA (A(I, 7,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.515E-05,.377E-01,.831E-01,
+     +  .985E-01,.104    ,.108     /
+      DATA (A(I, 7,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.285E-02,.495E-01,
+     +  .871E-01,.106    ,.119     /
+      DATA (A(I, 7,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.110E-05,.284E-01,
+     +  .588E-01,.657E-01,.594E-01 /
+      DATA (A(I, 7,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.722E-07,.176E-02,
+     +  .170E-01,.305E-01,.454E-01 /
+      DATA (A(I, 7,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.148E-05,
+     +  .213E-01,.492E-01,.707E-01 /
+      DATA (A(I, 7,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.323E-07,
+     +  .722E-02,.359E-01,.556E-01 /
+      DATA (A(I, 7,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  .461E-05,.155E-01,.679E-01 /
+      DATA (A(I, 8, 1),I=1,10)  /
+     +  .630    ,.974    ,1.29    ,1.58    ,1.89    ,2.16    ,2.49    ,
+     +  2.75    ,3.02    ,3.95     /
+      DATA (A(I, 8, 2),I=1,10)  /
+     +  .328    ,.459    ,.613    ,.735    ,.879    ,.994    ,1.15    ,
+     +  1.27    ,1.38    ,1.80     /
+      DATA (A(I, 8, 3),I=1,10)  /
+     +  .748E-01,.121    ,.164    ,.197    ,.235    ,.265    ,.310    ,
+     +  .339    ,.370    ,.658     /
+      DATA (A(I, 8, 4),I=1,10)  /
+     +  .194    ,.211    ,.337    ,.344    ,.339    ,.351    ,.390    ,
+     +  .419    ,.442    ,1.55     /
+      DATA (A(I, 8, 5),I=1,10)  /
+     +  .000E+00,.869E-01,.725E-01,.113    ,.810E-01,.106    ,.951E-01,
+     +  .120    ,.143    ,.681     /
+      DATA (A(I, 8, 6),I=1,10)  /
+     +  .000E+00,.288E-01,.102    ,.922E-01,.857E-01,.845E-01,.932E-01,
+     +  .983E-01,.102    ,.409     /
+      DATA (A(I, 8, 7),I=1,10)  /
+     +  .000E+00,.668E-03,.533E-01,.575E-01,.493E-01,.482E-01,.539E-01,
+     +  .558E-01,.582E-01,.256     /
+      DATA (A(I, 8, 8),I=1,10)  /
+     +  .000E+00,.000E+00,.205E-01,.808E-01,.510E-01,.409E-01,.406E-01,
+     +  .394E-01,.389E-01,.167     /
+      DATA (A(I, 8, 9),I=1,10)  /
+     +  .000E+00,.000E+00,.999E-04,.647E-01,.385E-01,.325E-01,.325E-01,
+     +  .316E-01,.314E-01,.122     /
+      DATA (A(I, 8,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.169E-01,.834E-01,.611E-01,.565E-01,
+     +  .533E-01,.519E-01,.176     /
+      DATA (A(I, 8,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.107E-03,.769E-01,.922E-01,.805E-01,
+     +  .745E-01,.711E-01,.208     /
+      DATA (A(I, 8,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.180E-05,.143E-01,.983E-01,.775E-01,
+     +  .627E-01,.541E-01,.116     /
+      DATA (A(I, 8,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.157E-04,.346E-01,.507E-01,
+     +  .479E-01,.455E-01,.103     /
+      DATA (A(I, 8,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.752E-06,.248E-01,.721E-01,
+     +  .728E-01,.611E-01,.108     /
+      DATA (A(I, 8,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.686E-04,.356E-01,
+     +  .731E-01,.791E-01,.119     /
+      DATA (A(I, 8,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.838E-07,.151E-01,
+     +  .470E-01,.567E-01,.594E-01 /
+      DATA (A(I, 8,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.759E-08,.400E-04,
+     +  .193E-01,.313E-01,.454E-01 /
+      DATA (A(I, 8,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.385E-07,
+     +  .921E-02,.353E-01,.707E-01 /
+      DATA (A(I, 8,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.219E-08,
+     +  .348E-03,.226E-01,.556E-01 /
+      DATA (A(I, 8,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  .212E-07,.149E-01,.679E-01 /
+      DATA (A(I, 9, 1),I=1,10)  /
+     +  .736    ,1.13    ,1.49    ,1.82    ,2.20    ,2.49    ,2.86    ,
+     +  3.17    ,3.49    ,3.95     /
+      DATA (A(I, 9, 2),I=1,10)  /
+     +  .339    ,.492    ,.658    ,.789    ,.958    ,1.08    ,1.25    ,
+     +  1.37    ,1.50    ,1.80     /
+      DATA (A(I, 9, 3),I=1,10)  /
+     +  .680E-01,.110    ,.150    ,.180    ,.222    ,.247    ,.289    ,
+     +  .318    ,.349    ,.658     /
+      DATA (A(I, 9, 4),I=1,10)  /
+     +  .110    ,.104    ,.157    ,.156    ,.210    ,.205    ,.246    ,
+     +  .274    ,.300    ,1.55     /
+      DATA (A(I, 9, 5),I=1,10)  /
+     +  .000E+00,.379E-01,.347E-01,.477E-01,.486E-01,.576E-01,.569E-01,
+     +  .732E-01,.893E-01,.681     /
+      DATA (A(I, 9, 6),I=1,10)  /
+     +  .000E+00,.223E-01,.354E-01,.312E-01,.436E-01,.400E-01,.489E-01,
+     +  .548E-01,.600E-01,.409     /
+      DATA (A(I, 9, 7),I=1,10)  /
+     +  .000E+00,.338E-03,.149E-01,.142E-01,.215E-01,.188E-01,.248E-01,
+     +  .278E-01,.307E-01,.256     /
+      DATA (A(I, 9, 8),I=1,10)  /
+     +  .000E+00,.000E+00,.553E-02,.862E-02,.150E-01,.106E-01,.145E-01,
+     +  .165E-01,.181E-01,.167     /
+      DATA (A(I, 9, 9),I=1,10)  /
+     +  .000E+00,.000E+00,.375E-04,.641E-02,.111E-01,.792E-02,.112E-01,
+     +  .127E-01,.140E-01,.122     /
+      DATA (A(I, 9,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.112E-01,.200E-01,.127E-01,.176E-01,
+     +  .200E-01,.220E-01,.176     /
+      DATA (A(I, 9,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.244E-04,.261E-01,.162E-01,.232E-01,
+     +  .263E-01,.287E-01,.208     /
+      DATA (A(I, 9,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.455E-06,.635E-02,.121E-01,.186E-01,
+     +  .201E-01,.207E-01,.116     /
+      DATA (A(I, 9,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.146E-05,.922E-02,.116E-01,
+     +  .145E-01,.165E-01,.103     /
+      DATA (A(I, 9,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.135E-06,.128E-01,.202E-01,
+     +  .215E-01,.220E-01,.108     /
+      DATA (A(I, 9,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.237E-05,.229E-01,
+     +  .259E-01,.271E-01,.119     /
+      DATA (A(I, 9,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.100E-07,.534E-02,
+     +  .210E-01,.193E-01,.594E-01 /
+      DATA (A(I, 9,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.915E-09,.847E-06,
+     +  .119E-01,.125E-01,.454E-01 /
+      DATA (A(I, 9,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.298E-08,
+     +  .101E-01,.242E-01,.707E-01 /
+      DATA (A(I, 9,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.196E-09,
+     +  .243E-05,.234E-01,.556E-01 /
+      DATA (A(I, 9,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  .575E-09,.364E-02,.679E-01 /
+      DATA (A(I,10, 1),I=1,10)  /
+     +  .959    ,1.46    ,1.92    ,2.34    ,2.80    ,3.24    ,3.64    ,
+     +  4.05    ,4.48    ,3.95     /
+      DATA (A(I,10, 2),I=1,10)  /
+     +  .343    ,.516    ,.692    ,.836    ,1.01    ,1.16    ,1.31    ,
+     +  1.46    ,1.61    ,1.80     /
+      DATA (A(I,10, 3),I=1,10)  /
+     +  .512E-01,.837E-01,.115    ,.138    ,.169    ,.195    ,.220    ,
+     +  .245    ,.270    ,.658     /
+      DATA (A(I,10, 4),I=1,10)  /
+     +  .274E-01,.361E-01,.510E-01,.562E-01,.703E-01,.828E-01,.877E-01,
+     +  .996E-01,.111    ,1.55     /
+      DATA (A(I,10, 5),I=1,10)  /
+     +  .000E+00,.850E-02,.875E-02,.118E-01,.124E-01,.170E-01,.154E-01,
+     +  .194E-01,.237E-01,.681     /
+      DATA (A(I,10, 6),I=1,10)  /
+     +  .000E+00,.345E-02,.519E-02,.533E-02,.691E-02,.842E-02,.844E-02,
+     +  .987E-02,.113E-01,.409     /
+      DATA (A(I,10, 7),I=1,10)  /
+     +  .000E+00,.722E-04,.130E-02,.135E-02,.189E-02,.240E-02,.235E-02,
+     +  .281E-02,.331E-02,.256     /
+      DATA (A(I,10, 8),I=1,10)  /
+     +  .000E+00,.000E+00,.283E-03,.272E-03,.394E-03,.557E-03,.480E-03,
+     +  .616E-03,.775E-03,.167     /
+      DATA (A(I,10, 9),I=1,10)  /
+     +  .000E+00,.000E+00,.457E-05,.122E-03,.192E-03,.275E-03,.225E-03,
+     +  .292E-03,.373E-03,.122     /
+      DATA (A(I,10,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.119E-03,.185E-03,.278E-03,.201E-03,
+     +  .274E-03,.364E-03,.176     /
+      DATA (A(I,10,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.140E-05,.129E-03,.200E-03,.137E-03,
+     +  .188E-03,.252E-03,.208     /
+      DATA (A(I,10,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.207E-07,.307E-04,.518E-04,.278E-04,
+     +  .421E-04,.608E-04,.116     /
+      DATA (A(I,10,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.306E-07,.252E-04,.111E-04,
+     +  .188E-04,.295E-04,.103     /
+      DATA (A(I,10,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.321E-08,.220E-04,.104E-04,
+     +  .162E-04,.243E-04,.108     /
+      DATA (A(I,10,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.770E-08,.632E-05,
+     +  .105E-04,.162E-04,.119     /
+      DATA (A(I,10,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.117E-09,.199E-05,
+     +  .321E-05,.492E-05,.594E-01 /
+      DATA (A(I,10,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.888E-11,.323E-09,
+     +  .106E-05,.192E-05,.454E-01 /
+      DATA (A(I,10,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.174E-10,
+     +  .131E-05,.218E-05,.707E-01 /
+      DATA (A(I,10,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.994E-12,
+     +  .233E-09,.104E-05,.556E-01 /
+      DATA (A(I,10,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  .144E-11,.724E-06,.679E-01 /
+      DATA (AE(I, 1, 1),I=1,10)  /
+     +  7.27    ,6.29    ,7.76    ,6.70    ,8.17    ,7.34    ,8.70    ,
+     +  8.02    ,7.37    ,6.18     /
+      DATA (AE(I, 1, 2),I=1,10)  /
+     +  7.41    ,7.52    ,8.14    ,8.20    ,8.96    ,9.05    ,9.96    ,
+     +  10.0    ,10.1    ,9.86     /
+      DATA (AE(I, 1, 3),I=1,10)  /
+     +  7.72    ,7.69    ,9.17    ,8.99    ,10.6    ,10.5    ,12.1    ,
+     +  12.1    ,12.0    ,11.5     /
+      DATA (AE(I, 1, 4),I=1,10)  /
+     +  7.90    ,8.48    ,9.50    ,9.94    ,10.8    ,11.4    ,12.2    ,
+     +  12.8    ,13.3    ,13.8     /
+      DATA (AE(I, 1, 5),I=1,10)  /
+     +  .000E+00,8.52    ,9.59    ,10.1    ,11.1    ,11.8    ,12.7    ,
+     +  13.3    ,13.8    ,14.4     /
+      DATA (AE(I, 1, 6),I=1,10)  /
+     +  .000E+00,9.00    ,10.7    ,11.7    ,13.2    ,14.2    ,15.6    ,
+     +  16.5    ,17.3    ,18.0     /
+      DATA (AE(I, 1, 7),I=1,10)  /
+     +  .000E+00,9.01    ,11.1    ,11.9    ,14.3    ,15.0    ,17.4    ,
+     +  18.0    ,18.6    ,18.8     /
+      DATA (AE(I, 1, 8),I=1,10)  /
+     +  .000E+00,.000E+00,11.2    ,12.4    ,14.5    ,15.7    ,17.6    ,
+     +  18.8    ,19.9    ,20.9     /
+      DATA (AE(I, 1, 9),I=1,10)  /
+     +  .000E+00,.000E+00,11.4    ,12.7    ,15.5    ,16.6    ,19.3    ,
+     +  20.2    ,21.1    ,21.7     /
+      DATA (AE(I, 1,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,13.2    ,15.8    ,17.3    ,19.9    ,
+     +  21.2    ,22.4    ,23.2     /
+      DATA (AE(I, 1,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,13.2    ,16.3    ,17.8    ,20.8    ,
+     +  22.1    ,23.3    ,24.2     /
+      DATA (AE(I, 1,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,13.4    ,16.2    ,18.2    ,21.0    ,
+     +  22.8    ,24.4    ,25.9     /
+      DATA (AE(I, 1,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,16.5    ,18.4    ,21.6    ,
+     +  23.2    ,24.8    ,26.2     /
+      DATA (AE(I, 1,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,16.7    ,19.0    ,22.3    ,
+     +  24.3    ,26.1    ,27.4     /
+      DATA (AE(I, 1,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,19.1    ,22.8    ,
+     +  24.7    ,26.6    ,28.2     /
+      DATA (AE(I, 1,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,19.2    ,23.0    ,
+     +  25.3    ,27.5    ,29.5     /
+      DATA (AE(I, 1,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,19.6    ,23.3    ,
+     +  25.6    ,27.8    ,29.6     /
+      DATA (AE(I, 1,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,23.6    ,
+     +  26.2    ,28.5    ,30.4     /
+      DATA (AE(I, 1,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,23.7    ,
+     +  26.3    ,28.8    ,31.0     /
+      DATA (AE(I, 1,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  26.5    ,29.2    ,31.5     /
+      DATA (AE(I, 2, 1),I=1,10)  /
+     +  8.74    ,8.16    ,9.25    ,8.45    ,9.46    ,8.90    ,9.83    ,
+     +  9.38    ,8.96    ,8.15     /
+      DATA (AE(I, 2, 2),I=1,10)  /
+     +  8.96    ,9.30    ,9.95    ,10.0    ,10.8    ,10.9    ,11.7    ,
+     +  11.8    ,11.9    ,11.8     /
+      DATA (AE(I, 2, 3),I=1,10)  /
+     +  9.44    ,9.66    ,11.0    ,11.0    ,12.3    ,12.5    ,13.7    ,
+     +  13.9    ,14.0    ,13.8     /
+      DATA (AE(I, 2, 4),I=1,10)  /
+     +  8.86    ,9.81    ,10.8    ,11.2    ,12.0    ,12.6    ,13.4    ,
+     +  14.0    ,14.5    ,15.1     /
+      DATA (AE(I, 2, 5),I=1,10)  /
+     +  .000E+00,10.2    ,11.4    ,12.0    ,12.9    ,13.6    ,14.5    ,
+     +  15.1    ,15.7    ,16.3     /
+      DATA (AE(I, 2, 6),I=1,10)  /
+     +  .000E+00,10.7    ,12.5    ,13.5    ,15.1    ,16.0    ,17.5    ,
+     +  18.3    ,19.2    ,19.9     /
+      DATA (AE(I, 2, 7),I=1,10)  /
+     +  .000E+00,11.5    ,12.9    ,13.9    ,16.1    ,17.0    ,19.1    ,
+     +  19.8    ,20.6    ,21.0     /
+      DATA (AE(I, 2, 8),I=1,10)  /
+     +  .000E+00,.000E+00,12.4    ,13.8    ,15.9    ,17.2    ,19.1    ,
+     +  20.3    ,21.4    ,22.3     /
+      DATA (AE(I, 2, 9),I=1,10)  /
+     +  .000E+00,.000E+00,13.4    ,14.5    ,17.1    ,18.3    ,20.9    ,
+     +  21.9    ,23.0    ,23.7     /
+      DATA (AE(I, 2,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,14.9    ,17.5    ,19.1    ,21.6    ,
+     +  22.9    ,24.1    ,25.0     /
+      DATA (AE(I, 2,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,15.0    ,18.0    ,19.6    ,22.4    ,
+     +  23.8    ,25.2    ,26.2     /
+      DATA (AE(I, 2,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,16.2    ,17.3    ,19.4    ,22.2    ,
+     +  24.0    ,25.7    ,27.2     /
+      DATA (AE(I, 2,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,17.8    ,19.8    ,22.9    ,
+     +  24.6    ,26.2    ,27.7     /
+      DATA (AE(I, 2,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,19.1    ,20.4    ,23.7    ,
+     +  25.7    ,27.6    ,29.1     /
+      DATA (AE(I, 2,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,20.5    ,24.1    ,
+     +  26.1    ,28.1    ,29.9     /
+      DATA (AE(I, 2,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,20.9    ,23.9    ,
+     +  26.4    ,28.7    ,30.7     /
+      DATA (AE(I, 2,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,22.4    ,24.2    ,
+     +  26.7    ,29.0    ,30.9     /
+      DATA (AE(I, 2,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,24.8    ,
+     +  27.3    ,29.7    ,31.8     /
+      DATA (AE(I, 2,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,26.1    ,
+     +  27.3    ,29.9    ,32.3     /
+      DATA (AE(I, 2,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  27.4    ,30.1    ,32.6     /
+      DATA (AE(I, 3, 1),I=1,10)  /
+     +  11.0    ,11.0    ,11.7    ,11.3    ,11.9    ,11.4    ,12.1    ,
+     +  11.7    ,11.5    ,11.0     /
+      DATA (AE(I, 3, 2),I=1,10)  /
+     +  11.2    ,12.0    ,12.7    ,12.9    ,13.6    ,13.7    ,14.4    ,
+     +  14.6    ,14.7    ,14.6     /
+      DATA (AE(I, 3, 3),I=1,10)  /
+     +  12.1    ,12.6    ,13.7    ,13.9    ,15.0    ,15.2    ,16.3    ,
+     +  16.5    ,16.7    ,16.7     /
+      DATA (AE(I, 3, 4),I=1,10)  /
+     +  12.6    ,11.3    ,12.4    ,13.0    ,13.8    ,14.2    ,15.0    ,
+     +  15.6    ,16.1    ,16.6     /
+      DATA (AE(I, 3, 5),I=1,10)  /
+     +  .000E+00,12.6    ,13.7    ,14.4    ,15.3    ,16.0    ,16.8    ,
+     +  17.5    ,18.1    ,18.6     /
+      DATA (AE(I, 3, 6),I=1,10)  /
+     +  .000E+00,14.0    ,14.6    ,15.8    ,17.4    ,18.4    ,19.8    ,
+     +  20.6    ,21.5    ,22.2     /
+      DATA (AE(I, 3, 7),I=1,10)  /
+     +  .000E+00,16.0    ,15.2    ,16.3    ,18.3    ,19.3    ,21.1    ,
+     +  22.0    ,22.8    ,23.5     /
+      DATA (AE(I, 3, 8),I=1,10)  /
+     +  .000E+00,.000E+00,15.6    ,15.1    ,17.2    ,18.6    ,20.6    ,
+     +  21.8    ,22.9    ,23.8     /
+      DATA (AE(I, 3, 9),I=1,10)  /
+     +  .000E+00,.000E+00,17.8    ,16.3    ,18.8    ,20.1    ,22.5    ,
+     +  23.6    ,24.7    ,25.6     /
+      DATA (AE(I, 3,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,17.5    ,19.0    ,20.7    ,23.1    ,
+     +  24.5    ,25.8    ,26.8     /
+      DATA (AE(I, 3,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,19.2    ,19.4    ,21.1    ,23.8    ,
+     +  25.4    ,26.8    ,28.0     /
+      DATA (AE(I, 3,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,20.7    ,19.6    ,19.7    ,22.4    ,
+     +  24.4    ,26.2    ,27.9     /
+      DATA (AE(I, 3,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,21.6    ,20.4    ,23.2    ,
+     +  25.1    ,26.9    ,28.5     /
+      DATA (AE(I, 3,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,23.5    ,22.0    ,23.8    ,
+     +  26.1    ,28.1    ,29.9     /
+      DATA (AE(I, 3,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,23.7    ,24.2    ,
+     +  26.3    ,28.5    ,30.4     /
+      DATA (AE(I, 3,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,25.4    ,24.8    ,
+     +  25.6    ,28.1    ,30.5     /
+      DATA (AE(I, 3,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,26.9    ,26.8    ,
+     +  26.1    ,28.4    ,30.8     /
+      DATA (AE(I, 3,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,28.8    ,
+     +  27.6    ,29.0    ,31.5     /
+      DATA (AE(I, 3,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,30.5    ,
+     +  29.2    ,28.9    ,31.5     /
+      DATA (AE(I, 3,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  31.0    ,30.0    ,31.7     /
+      DATA (AE(I, 4, 1),I=1,10)  /
+     +  13.0    ,13.2    ,14.8    ,14.2    ,14.2    ,14.1    ,14.5    ,
+     +  14.4    ,14.3    ,14.0     /
+      DATA (AE(I, 4, 2),I=1,10)  /
+     +  13.5    ,14.5    ,16.1    ,15.9    ,16.0    ,16.3    ,16.8    ,
+     +  17.0    ,17.1    ,17.2     /
+      DATA (AE(I, 4, 3),I=1,10)  /
+     +  14.9    ,15.3    ,17.2    ,17.1    ,17.5    ,17.8    ,18.6    ,
+     +  18.9    ,19.1    ,19.3     /
+      DATA (AE(I, 4, 4),I=1,10)  /
+     +  15.1    ,13.5    ,16.4    ,16.7    ,16.4    ,17.3    ,17.8    ,
+     +  18.5    ,19.0    ,19.6     /
+      DATA (AE(I, 4, 5),I=1,10)  /
+     +  .000E+00,15.6    ,17.5    ,17.7    ,17.8    ,18.6    ,19.2    ,
+     +  19.9    ,20.3    ,21.1     /
+      DATA (AE(I, 4, 6),I=1,10)  /
+     +  .000E+00,18.0    ,18.4    ,19.2    ,19.8    ,20.9    ,22.0    ,
+     +  23.1    ,23.6    ,24.7     /
+      DATA (AE(I, 4, 7),I=1,10)  /
+     +  .000E+00,27.4    ,19.1    ,19.8    ,20.7    ,21.8    ,23.2    ,
+     +  24.4    ,24.9    ,25.9     /
+      DATA (AE(I, 4, 8),I=1,10)  /
+     +  .000E+00,.000E+00,18.9    ,18.9    ,19.3    ,21.1    ,22.5    ,
+     +  24.0    ,24.7    ,26.0     /
+      DATA (AE(I, 4, 9),I=1,10)  /
+     +  .000E+00,.000E+00,21.1    ,19.7    ,20.7    ,22.3    ,24.0    ,
+     +  25.6    ,26.3    ,27.7     /
+      DATA (AE(I, 4,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,21.0    ,21.1    ,22.9    ,24.6    ,
+     +  26.5    ,27.3    ,29.0     /
+      DATA (AE(I, 4,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,21.3    ,22.4    ,23.1    ,25.0    ,
+     +  27.1    ,27.9    ,29.8     /
+      DATA (AE(I, 4,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,36.6    ,21.5    ,22.2    ,23.1    ,
+     +  25.6    ,26.8    ,29.1     /
+      DATA (AE(I, 4,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,22.9    ,23.1    ,23.7    ,
+     +  26.2    ,27.3    ,29.6     /
+      DATA (AE(I, 4,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,30.5    ,23.6    ,25.0    ,
+     +  26.9    ,28.2    ,30.7     /
+      DATA (AE(I, 4,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,25.4    ,26.2    ,
+     +  27.2    ,28.3    ,31.0     /
+      DATA (AE(I, 4,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,24.5    ,25.9    ,
+     +  27.4    ,27.6    ,30.7     /
+      DATA (AE(I, 4,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,43.3    ,28.4    ,
+     +  27.5    ,27.9    ,30.9     /
+      DATA (AE(I, 4,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,27.2    ,
+     +  29.1    ,29.0    ,31.4     /
+      DATA (AE(I, 4,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,51.3    ,
+     +  30.6    ,29.5    ,31.4     /
+      DATA (AE(I, 4,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  28.8    ,30.6    ,32.4     /
+      DATA (AE(I, 5, 1),I=1,10)  /
+     +  15.0    ,14.9    ,15.5    ,15.4    ,15.9    ,15.8    ,16.2    ,
+     +  16.2    ,16.1    ,15.9     /
+      DATA (AE(I, 5, 2),I=1,10)  /
+     +  15.4    ,16.1    ,17.0    ,17.4    ,18.0    ,18.2    ,18.7    ,
+     +  18.9    ,19.0    ,19.1     /
+      DATA (AE(I, 5, 3),I=1,10)  /
+     +  17.1    ,17.2    ,18.3    ,18.7    ,19.3    ,19.6    ,20.3    ,
+     +  20.6    ,20.8    ,20.9     /
+      DATA (AE(I, 5, 4),I=1,10)  /
+     +  14.7    ,14.8    ,15.0    ,16.0    ,17.0    ,17.7    ,18.1    ,
+     +  19.0    ,19.4    ,20.0     /
+      DATA (AE(I, 5, 5),I=1,10)  /
+     +  .000E+00,16.7    ,17.6    ,18.1    ,18.6    ,19.2    ,19.7    ,
+     +  20.4    ,20.8    ,21.2     /
+      DATA (AE(I, 5, 6),I=1,10)  /
+     +  .000E+00,17.8    ,18.2    ,19.2    ,20.0    ,21.0    ,21.9    ,
+     +  23.0    ,23.6    ,24.3     /
+      DATA (AE(I, 5, 7),I=1,10)  /
+     +  .000E+00,35.2    ,18.9    ,20.3    ,20.6    ,21.5    ,22.6    ,
+     +  23.7    ,24.2    ,24.7     /
+      DATA (AE(I, 5, 8),I=1,10)  /
+     +  .000E+00,.000E+00,16.4    ,18.9    ,18.8    ,19.6    ,20.7    ,
+     +  22.3    ,23.1    ,23.9     /
+      DATA (AE(I, 5, 9),I=1,10)  /
+     +  .000E+00,.000E+00,33.9    ,19.8    ,20.3    ,20.7    ,21.9    ,
+     +  23.4    ,24.1    ,24.8     /
+      DATA (AE(I, 5,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,18.0    ,20.0    ,21.4    ,22.0    ,
+     +  23.8    ,24.6    ,25.4     /
+      DATA (AE(I, 5,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,26.4    ,20.4    ,21.2    ,22.3    ,
+     +  23.8    ,24.7    ,25.5     /
+      DATA (AE(I, 5,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,41.7    ,18.2    ,19.8    ,21.1    ,
+     +  22.6    ,23.4    ,24.6     /
+      DATA (AE(I, 5,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,22.5    ,20.0    ,21.7    ,
+     +  22.8    ,23.7    ,24.7     /
+      DATA (AE(I, 5,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,54.1    ,19.9    ,21.9    ,
+     +  23.2    ,24.3    ,25.3     /
+      DATA (AE(I, 5,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,21.2    ,22.2    ,
+     +  23.6    ,24.9    ,25.5     /
+      DATA (AE(I, 5,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,44.9    ,21.9    ,
+     +  23.8    ,25.2    ,25.6     /
+      DATA (AE(I, 5,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,47.8    ,22.7    ,
+     +  23.8    ,24.9    ,26.3     /
+      DATA (AE(I, 5,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,35.5    ,
+     +  23.9    ,25.9    ,26.6     /
+      DATA (AE(I, 5,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,64.3    ,
+     +  24.1    ,25.7    ,27.1     /
+      DATA (AE(I, 5,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  34.0    ,25.7    ,27.7     /
+      DATA (AE(I, 6, 1),I=1,10)  /
+     +  16.6    ,16.5    ,16.8    ,16.7    ,17.0    ,16.5    ,16.7    ,
+     +  18.3    ,18.9    ,19.0     /
+      DATA (AE(I, 6, 2),I=1,10)  /
+     +  16.2    ,16.6    ,17.2    ,17.4    ,17.9    ,17.4    ,17.7    ,
+     +  20.7    ,22.0    ,22.6     /
+      DATA (AE(I, 6, 3),I=1,10)  /
+     +  18.9    ,18.7    ,18.8    ,18.6    ,18.9    ,18.6    ,18.9    ,
+     +  21.0    ,22.3    ,22.9     /
+      DATA (AE(I, 6, 4),I=1,10)  /
+     +  18.3    ,12.7    ,14.2    ,15.0    ,15.7    ,16.1    ,16.3    ,
+     +  16.5    ,17.9    ,19.0     /
+      DATA (AE(I, 6, 5),I=1,10)  /
+     +  .000E+00,15.7    ,15.1    ,15.3    ,16.5    ,16.4    ,16.4    ,
+     +  17.0    ,18.3    ,19.4     /
+      DATA (AE(I, 6, 6),I=1,10)  /
+     +  .000E+00,22.9    ,14.9    ,15.2    ,16.2    ,16.9    ,17.4    ,
+     +  18.2    ,19.5    ,21.1     /
+      DATA (AE(I, 6, 7),I=1,10)  /
+     +  .000E+00,40.7    ,18.4    ,15.9    ,17.1    ,17.7    ,18.9    ,
+     +  19.5    ,20.3    ,21.1     /
+      DATA (AE(I, 6, 8),I=1,10)  /
+     +  .000E+00,.000E+00,23.3    ,16.2    ,16.3    ,17.3    ,18.7    ,
+     +  19.5    ,20.3    ,21.1     /
+      DATA (AE(I, 6, 9),I=1,10)  /
+     +  .000E+00,.000E+00,49.2    ,19.0    ,19.1    ,19.4    ,20.2    ,
+     +  20.8    ,21.6    ,22.0     /
+      DATA (AE(I, 6,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,27.2    ,21.2    ,20.8    ,21.4    ,
+     +  22.3    ,22.8    ,23.3     /
+      DATA (AE(I, 6,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,45.6    ,25.0    ,22.8    ,23.9    ,
+     +  23.6    ,24.3    ,24.4     /
+      DATA (AE(I, 6,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,45.8    ,29.7    ,25.1    ,25.3    ,
+     +  25.3    ,26.0    ,26.3     /
+      DATA (AE(I, 6,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,42.7    ,29.0    ,28.0    ,
+     +  27.0    ,27.2    ,27.6     /
+      DATA (AE(I, 6,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,62.0    ,32.0    ,30.0    ,
+     +  29.8    ,29.5    ,29.6     /
+      DATA (AE(I, 6,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,44.5    ,34.4    ,
+     +  32.7    ,31.5    ,31.8     /
+      DATA (AE(I, 6,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,75.6    ,37.1    ,
+     +  34.6    ,34.4    ,34.4     /
+      DATA (AE(I, 6,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,51.2    ,45.2    ,
+     +  39.0    ,37.5    ,36.4     /
+      DATA (AE(I, 6,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,74.9    ,
+     +  42.3    ,39.9    ,38.3     /
+      DATA (AE(I, 6,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,69.5    ,
+     +  50.7    ,42.3    ,41.4     /
+      DATA (AE(I, 6,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  66.3    ,48.0    ,43.4     /
+      DATA (AE(I, 7, 1),I=1,10)  /
+     +  27.0    ,25.8    ,26.3    ,26.2    ,26.7    ,26.7    ,27.1    ,
+     +  27.1    ,27.2    ,19.0     /
+      DATA (AE(I, 7, 2),I=1,10)  /
+     +  29.1    ,28.9    ,29.7    ,30.3    ,31.0    ,31.4    ,32.0    ,
+     +  32.3    ,32.7    ,22.6     /
+      DATA (AE(I, 7, 3),I=1,10)  /
+     +  31.6    ,29.7    ,30.9    ,31.4    ,32.5    ,33.1    ,34.0    ,
+     +  34.6    ,35.1    ,22.9     /
+      DATA (AE(I, 7, 4),I=1,10)  /
+     +  27.4    ,19.9    ,20.8    ,22.8    ,24.6    ,26.4    ,28.2    ,
+     +  29.6    ,30.8    ,19.0     /
+      DATA (AE(I, 7, 5),I=1,10)  /
+     +  .000E+00,24.6    ,24.1    ,25.0    ,27.2    ,28.7    ,30.7    ,
+     +  31.8    ,32.9    ,19.4     /
+      DATA (AE(I, 7, 6),I=1,10)  /
+     +  .000E+00,35.6    ,25.2    ,25.6    ,27.9    ,30.4    ,32.7    ,
+     +  34.6    ,36.3    ,21.1     /
+      DATA (AE(I, 7, 7),I=1,10)  /
+     +  .000E+00,45.4    ,30.9    ,28.2    ,29.0    ,31.2    ,34.0    ,
+     +  35.8    ,37.4    ,21.1     /
+      DATA (AE(I, 7, 8),I=1,10)  /
+     +  .000E+00,.000E+00,38.2    ,29.6    ,29.4    ,30.3    ,33.2    ,
+     +  35.5    ,37.6    ,21.1     /
+      DATA (AE(I, 7, 9),I=1,10)  /
+     +  .000E+00,.000E+00,59.3    ,34.5    ,33.7    ,32.9    ,35.4    ,
+     +  37.6    ,39.6    ,22.0     /
+      DATA (AE(I, 7,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,44.5    ,37.8    ,37.5    ,37.2    ,
+     +  39.0    ,41.4    ,23.3     /
+      DATA (AE(I, 7,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,67.0    ,43.6    ,42.0    ,40.8    ,
+     +  41.4    ,43.0    ,24.4     /
+      DATA (AE(I, 7,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,49.9    ,50.9    ,44.6    ,43.9    ,
+     +  44.2    ,44.2    ,26.3     /
+      DATA (AE(I, 7,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,67.2    ,50.5    ,48.7    ,
+     +  48.1    ,47.2    ,27.6     /
+      DATA (AE(I, 7,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,68.1    ,55.2    ,52.3    ,
+     +  51.5    ,51.6    ,29.6     /
+      DATA (AE(I, 7,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,68.7    ,58.6    ,
+     +  56.5    ,55.7    ,31.8     /
+      DATA (AE(I, 7,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,89.3    ,62.9    ,
+     +  60.0    ,59.1    ,34.4     /
+      DATA (AE(I, 7,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,56.0    ,72.9    ,
+     +  66.3    ,64.2    ,36.4     /
+      DATA (AE(I, 7,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,105.    ,
+     +  71.3    ,68.3    ,38.3     /
+      DATA (AE(I, 7,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,73.4    ,
+     +  76.8    ,72.4    ,41.4     /
+      DATA (AE(I, 7,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  107.    ,79.9    ,43.4     /
+      DATA (AE(I, 8, 1),I=1,10)  /
+     +  35.5    ,35.3    ,35.7    ,35.7    ,36.3    ,36.3    ,36.7    ,
+     +  36.7    ,36.7    ,19.0     /
+      DATA (AE(I, 8, 2),I=1,10)  /
+     +  40.6    ,41.4    ,41.9    ,42.3    ,43.2    ,43.5    ,44.0    ,
+     +  44.3    ,44.5    ,22.6     /
+      DATA (AE(I, 8, 3),I=1,10)  /
+     +  45.4    ,45.7    ,46.4    ,47.0    ,48.1    ,48.7    ,49.4    ,
+     +  49.8    ,50.2    ,22.9     /
+      DATA (AE(I, 8, 4),I=1,10)  /
+     +  43.9    ,44.3    ,43.4    ,45.1    ,47.3    ,48.7    ,49.6    ,
+     +  50.5    ,51.3    ,19.0     /
+      DATA (AE(I, 8, 5),I=1,10)  /
+     +  .000E+00,49.3    ,49.6    ,50.5    ,53.2    ,54.2    ,55.4    ,
+     +  56.1    ,56.8    ,19.4     /
+      DATA (AE(I, 8, 6),I=1,10)  /
+     +  .000E+00,59.1    ,53.0    ,55.4    ,58.0    ,60.0    ,61.2    ,
+     +  62.5    ,63.6    ,21.1     /
+      DATA (AE(I, 8, 7),I=1,10)  /
+     +  .000E+00,54.5    ,57.1    ,59.2    ,62.3    ,64.4    ,66.0    ,
+     +  67.3    ,68.5    ,21.1     /
+      DATA (AE(I, 8, 8),I=1,10)  /
+     +  .000E+00,.000E+00,65.9    ,62.1    ,65.1    ,67.6    ,69.4    ,
+     +  71.1    ,72.6    ,21.1     /
+      DATA (AE(I, 8, 9),I=1,10)  /
+     +  .000E+00,.000E+00,72.2    ,67.1    ,70.5    ,73.1    ,75.1    ,
+     +  76.8    ,78.4    ,22.0     /
+      DATA (AE(I, 8,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,80.1    ,75.0    ,78.0    ,80.0    ,
+     +  82.1    ,83.9    ,23.3     /
+      DATA (AE(I, 8,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,94.5    ,82.2    ,82.8    ,85.1    ,
+     +  87.3    ,89.2    ,24.4     /
+      DATA (AE(I, 8,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,56.8    ,92.5    ,87.2    ,89.4    ,
+     +  91.9    ,94.1    ,26.3     /
+      DATA (AE(I, 8,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,116.    ,96.2    ,94.4    ,
+     +  97.0    ,99.2    ,27.6     /
+      DATA (AE(I, 8,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,78.1    ,104.    ,102.    ,
+     +  102.    ,105.    ,29.6     /
+      DATA (AE(I, 8,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,128.    ,111.    ,
+     +  109.    ,110.    ,31.8     /
+      DATA (AE(I, 8,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,104.    ,118.    ,
+     +  117.    ,115.    ,34.4     /
+      DATA (AE(I, 8,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,64.4    ,138.    ,
+     +  124.    ,122.    ,36.4     /
+      DATA (AE(I, 8,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,133.    ,
+     +  133.    ,132.    ,38.3     /
+      DATA (AE(I, 8,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,83.6    ,
+     +  146.    ,139.    ,41.4     /
+      DATA (AE(I, 8,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  166.    ,147.    ,43.4     /
+      DATA (AE(I, 9, 1),I=1,10)  /
+     +  43.3    ,43.2    ,43.6    ,43.8    ,44.1    ,44.3    ,44.7    ,
+     +  44.8    ,44.8    ,19.0     /
+      DATA (AE(I, 9, 2),I=1,10)  /
+     +  50.9    ,51.4    ,52.0    ,52.6    ,53.1    ,53.6    ,54.2    ,
+     +  54.5    ,54.7    ,22.6     /
+      DATA (AE(I, 9, 3),I=1,10)  /
+     +  58.0    ,58.4    ,59.3    ,60.1    ,60.7    ,61.5    ,62.3    ,
+     +  62.7    ,63.1    ,22.9     /
+      DATA (AE(I, 9, 4),I=1,10)  /
+     +  62.0    ,63.9    ,63.7    ,65.7    ,65.5    ,67.5    ,68.2    ,
+     +  68.9    ,69.7    ,19.0     /
+      DATA (AE(I, 9, 5),I=1,10)  /
+     +  .000E+00,72.2    ,72.5    ,74.2    ,74.2    ,76.1    ,77.0    ,
+     +  77.8    ,78.6    ,19.4     /
+      DATA (AE(I, 9, 6),I=1,10)  /
+     +  .000E+00,80.4    ,80.5    ,83.1    ,83.0    ,85.5    ,86.8    ,
+     +  88.1    ,89.2    ,21.1     /
+      DATA (AE(I, 9, 7),I=1,10)  /
+     +  .000E+00,63.4    ,88.5    ,91.3    ,91.1    ,94.0    ,95.8    ,
+     +  97.3    ,98.6    ,21.1     /
+      DATA (AE(I, 9, 8),I=1,10)  /
+     +  .000E+00,.000E+00,98.8    ,98.6    ,97.8    ,102.    ,104.    ,
+     +  106.    ,108.    ,21.1     /
+      DATA (AE(I, 9, 9),I=1,10)  /
+     +  .000E+00,.000E+00,84.1    ,107.    ,107.    ,111.    ,113.    ,
+     +  116.    ,117.    ,22.0     /
+      DATA (AE(I, 9,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,116.    ,115.    ,119.    ,122.    ,
+     +  125.    ,127.    ,23.3     /
+      DATA (AE(I, 9,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,111.    ,123.    ,127.    ,131.    ,
+     +  134.    ,137.    ,24.4     /
+      DATA (AE(I, 9,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,65.6    ,136.    ,135.    ,140.    ,
+     +  143.    ,146.    ,26.3     /
+      DATA (AE(I, 9,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,146.    ,144.    ,149.    ,
+     +  152.    ,155.    ,27.6     /
+      DATA (AE(I, 9,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,88.7    ,152.    ,158.    ,
+     +  162.    ,165.    ,29.6     /
+      DATA (AE(I, 9,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,181.    ,167.    ,
+     +  171.    ,174.    ,31.8     /
+      DATA (AE(I, 9,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,117.    ,174.    ,
+     +  180.    ,183.    ,34.4     /
+      DATA (AE(I, 9,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,72.0    ,201.    ,
+     +  189.    ,192.    ,36.4     /
+      DATA (AE(I, 9,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,151.    ,
+     +  198.    ,201.    ,38.3     /
+      DATA (AE(I, 9,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,95.2    ,
+     +  220.    ,210.    ,41.4     /
+      DATA (AE(I, 9,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  192.    ,217.    ,43.4     /
+      DATA (AE(I,10, 1),I=1,10)  /
+     +  62.1    ,62.1    ,62.6    ,62.9    ,63.3    ,63.3    ,64.0    ,
+     +  64.0    ,64.0    ,19.0     /
+      DATA (AE(I,10, 2),I=1,10)  /
+     +  75.1    ,75.4    ,76.3    ,76.8    ,77.6    ,77.9    ,78.8    ,
+     +  79.0    ,79.3    ,22.6     /
+      DATA (AE(I,10, 3),I=1,10)  /
+     +  87.5    ,88.3    ,89.4    ,90.2    ,91.3    ,91.9    ,93.0    ,
+     +  93.5    ,93.9    ,22.9     /
+      DATA (AE(I,10, 4),I=1,10)  /
+     +  104.    ,104.    ,105.    ,106.    ,107.    ,108.    ,109.    ,
+     +  110.    ,110.    ,19.0     /
+      DATA (AE(I,10, 5),I=1,10)  /
+     +  .000E+00,122.    ,122.    ,123.    ,124.    ,125.    ,126.    ,
+     +  127.    ,128.    ,19.4     /
+      DATA (AE(I,10, 6),I=1,10)  /
+     +  .000E+00,138.    ,139.    ,140.    ,142.    ,143.    ,144.    ,
+     +  146.    ,147.    ,21.1     /
+      DATA (AE(I,10, 7),I=1,10)  /
+     +  .000E+00,85.3    ,158.    ,159.    ,161.    ,162.    ,164.    ,
+     +  166.    ,167.    ,21.1     /
+      DATA (AE(I,10, 8),I=1,10)  /
+     +  .000E+00,.000E+00,176.    ,177.    ,179.    ,181.    ,183.    ,
+     +  184.    ,186.    ,21.1     /
+      DATA (AE(I,10, 9),I=1,10)  /
+     +  .000E+00,.000E+00,114.    ,199.    ,201.    ,202.    ,205.    ,
+     +  206.    ,207.    ,22.0     /
+      DATA (AE(I,10,10),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,218.    ,219.    ,220.    ,224.    ,
+     +  225.    ,226.    ,23.3     /
+      DATA (AE(I,10,11),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,150.    ,238.    ,238.    ,243.    ,
+     +  244.    ,245.    ,24.4     /
+      DATA (AE(I,10,12),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,85.8    ,255.    ,255.    ,261.    ,
+     +  262.    ,263.    ,26.3     /
+      DATA (AE(I,10,13),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,195.    ,272.    ,279.    ,
+     +  279.    ,280.    ,27.6     /
+      DATA (AE(I,10,14),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,115.    ,290.    ,296.    ,
+     +  297.    ,298.    ,29.6     /
+      DATA (AE(I,10,15),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,263.    ,313.    ,
+     +  314.    ,315.    ,31.8     /
+      DATA (AE(I,10,16),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,150.    ,330.    ,
+     +  331.    ,332.    ,34.4     /
+      DATA (AE(I,10,17),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,90.0    ,319.    ,
+     +  349.    ,349.    ,36.4     /
+      DATA (AE(I,10,18),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,196.    ,
+     +  366.    ,367.    ,38.3     /
+      DATA (AE(I,10,19),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,122.    ,
+     +  387.    ,384.    ,41.4     /
+      DATA (AE(I,10,20),I=1,10)  /
+     +  .000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,.000E+00,
+     +  247.    ,401.    ,43.4     /
+      DATA (ERES(I, 1),I=1,10)  / 10*0./
+      DATA (ERES(I, 2),I=1,10)  / 10*0./
+      DATA (ERES(I, 3),I=1,10)  / 10*0./
+      DATA (ERES(I, 4),I=1,10)  / 10*0./
+      DATA (ERES(I, 5),I=1,10)  / 10*0./
+      DATA (ERES(I, 6),I=1,10)  /
+     +     0.000,   0.000,   0.000,   0.000,   0.000,   0.000,   0.000,
+     +     2.780,   2.880,   2.890 /
+      DATA (ERES(I, 7),I=1,10)  /
+     +     1.500,   2.460,   2.510,   2.610,   2.700,   2.920,   3.070,
+     +     3.200,   3.330,   2.890 /
+      DATA (ERES(I, 8),I=1,10)  /
+     +     4.470,   4.350,   4.390,   4.550,   4.660,   4.890,   4.980,
+     +     5.100,   5.220,   2.890 /
+      DATA (ERES(I, 9),I=1,10)  /
+     +     7.480,   7.380,   7.370,   7.480,   7.510,   7.630,   7.660,
+     +     7.750,   7.820,   2.890 /
+      DATA (ERES(I,10),I=1,10)  /
+     +    15.270,  15.190,  15.200,  15.370,  15.380,  15.430,  15.540,
+     +    15.590,  15.630,   2.890 /
+      END
+      FUNCTION GASDEV(IDUMMY)
+C...Gaussian deviation
+      SAVE GSET
+      DATA ISET/0/
+      IF (ISET.EQ.0) THEN
+1       V1=2.*RNDM(0)-1.
+        V2=2.*RNDM(0)-1.
+        R=V1**2+V2**2
+        IF(R.GE.1.)GO TO 1
+        FAC=SQRT(-2.*LOG(R)/R)
+        GSET=V1*FAC
+        GASDEV=V2*FAC
+        ISET=1
+      ELSE
+        GASDEV=GSET
+        ISET=0
+      ENDIF
+      RETURN
+      END
+
+      FUNCTION GAUSS (FUN, A,B)
+C...Returns the  8 points Gauss-Legendre integral
+C.  of function FUN from A to B
+C...........................................................
+      DIMENSION X(8), W(8)
+      DATA X / .0950125098, .2816035507, .4580167776, .6178762444
+     1          ,.7554044083, .8656312023, .9445750230, .9894009349/
+      DATA W / .1894506104, .1826034150, .1691565193, .1495959888
+     1          ,.1246289712, .0951585116, .0622535239, .0271524594/
+      XM = 0.5*(B+A)
+      XR = 0.5*(B-A)
+      SS = 0.
+      DO J=1,8
+        DX = XR*X(J)
+        SS = SS + W(J) * (FUN(XM+DX) + FUN(XM-DX))
+      ENDDO
+      GAUSS = XR*SS
+      RETURN
+      END
+
+      SUBROUTINE GG_FRAG (E0)
+C...This routine fragments a  gluon-gluon system
+C.  of mass E0 (GeV)
+C.  the particles produced are in the  jet-jet frame
+C.  oriented along the z axis
+C...........................................................
+      COMMON /S_PLIST/ NP, P(5000,5), LLIST(5000)
+      COMMON /S_MASS1/ AM(49), AM2(49)
+      DIMENSION WW(2,2),PTOT(4),PX(3),PY(3),IFL(3),PMQ(3)
+
+C...Generate the 'forward' leading particle.
+100   I = NP+1
+      I0 = -1 + 2.*INT(1.9999*RNDM(0))
+      CALL IFLAV(I0,0,IFL1, LDUM)
+      CALL IFLAV(IFL1,0,IFL2, LLIST(I))
+      CALL PTDIS(IFL1,PX1,PY1)
+      CALL PTDIS(IFL2,PX2,PY2)
+      P(I,1) = PX1+PX2
+      P(I,2) = PY1+PY2
+      P(I,5) = AM(IABS(LLIST(I)))
+      XM1 = P(I,5)**2+P(I,1)**2+P(I,2)**2
+      Z1 = ZDIS (IFL1,1,0.25*XM1)
+      Z2 = ZDIS (IFL2,1,0.25*XM1)
+      T1  = 4.*XM1/(E0*E0*(Z1+Z2))
+      P(I,4) = 0.25*E0*(Z1+Z2 + T1)
+      P(I,3) = 0.25*E0*(Z1+Z2 - T1)
+
+C...Generate the 'backward' leading particle.
+      I = I+1
+      CALL IFLAV(-I0,0,IFL3, LDUM)
+      CALL IFLAV(IFL3,0,IFL4, LLIST(I))
+      CALL PTDIS(IFL3,PX3,PY3)
+      CALL PTDIS(IFL4,PX4,PY4)
+      P(I,1) = PX3+PX4
+      P(I,2) = PY3+PY4
+      P(I,5) = AM(IABS(LLIST(I)))
+      XM2 = P(I,5)**2+P(I,1)**2+P(I,2)**2
+      Z3 = ZDIS (IFL3,1,0.25*XM2)
+      Z4 = ZDIS (IFL4,1,0.25*XM2)
+      T2  = 4.*XM2/(E0*E0*(Z3+Z4))
+      P(I,4) = 0.25*E0*( Z3+Z4 + T2)
+      P(I,3) = 0.25*E0*(-Z3-Z4 + T2)
+
+C...Fragment the two remaning strings
+      N0 = 0
+      DO KS=1,2
+
+      NTRY = 0
+200      NTRY = NTRY+1
+      I = NP+2+N0
+      IF (NTRY .GT. 30)  GOTO 100
+
+      IF (KS .EQ. 1)  THEN
+         WW(1,1) = 0.5 * (1 - Z1 - 0.5*T2)
+         WW(2,1) = 0.5 * (1 - Z3 - 0.5*T1)
+         PX(1) = -PX1
+         PY(1) = -PY1
+         PX(2) = -PX3
+         PY(2) = -PY3
+         IFL(1) = -IFL1
+         IFL(2) = -IFL3
+      ELSE
+         WW(1,1) = 0.5 * (1 - Z2 - 0.5*T2)
+         WW(2,1) = 0.5 * (1 - Z4 - 0.5*T1)
+         PX(1) = -PX2
+         PY(1) = -PY2
+         PX(2) = -PX4
+         PY(2) = -PY4
+         IFL(1) = -IFL2
+         IFL(2) = -IFL4
+      ENDIF
+      PX(3) = 0.
+      PY(3) = 0.
+      PTOT (1) = PX(1)+PX(2)
+      PTOT (2) = PY(1)+PY(2)
+      PTOT (3) = 0.5*E0*(WW(1,1)-WW(2,1))
+      PTOT (4) = 0.5*E0*(WW(1,1)+WW(2,1))
+
+      PMQ(1) = QMASS(IFL(1))
+      PMQ(2) = QMASS(IFL(2))
+
+C...produce new particle: side, pT
+300      I=I+1
+      JT=1.5+RNDM(0)
+      JR=3-JT
+c      CALL PTDIS (IFL(JT), PX(3),PY(3))
+
+C...particle ID
+      CALL IFLAV (IFL(JT), 0, IFL(3), LLIST(I))
+      PMQ(3) = QMASS(IFL(3))
+      P(I,5) = AM(IABS(LLIST(I)))
+
+      CALL PTDIS (IFL(3), PX(3),PY(3))
+
+C...test end of fragmentation
+      WREM2 = PTOT(4)**2-PTOT(1)**2-PTOT(2)**2-PTOT(3)**2
+      IF (WREM2 .LT. 0.1)  GOTO 200
+      WMIN = PMQ(1)+PMQ(2)+2.*PMQ(3)+1.1 + (2.*RNDM(0)-1.)*0.2
+      IF (WREM2 .LT. WMIN**2)  GOTO 400
+
+C...fill transverse momentum
+      P(I,1) = PX(JT) + PX(3)
+      P(I,2) = PY(JT) + PY(3)
+
+C...Choose z
+      XMT2 = P(I,5)**2+P(I,1)**2+P(I,2)**2
+      Z = ZDIS (ifl(3),IFL(JT), XMT2)
+
+      WW(JT,2) = Z*WW(JT,1)
+      WW(JR,2) = XMT2/(WW(JT,2)*E0**2)
+
+      P(I,3) = WW(1,2)*0.5*E0 - WW(2,2)*0.5*E0
+      P(I,4) = WW(1,2)*0.5*E0 + WW(2,2)*0.5*E0
+
+      DO J=1,4
+         PTOT (J) = PTOT(J) - P(I,J)
+      ENDDO
+      DO K=1,2
+         WW(K,1) = WW(K,1) - WW(K,2)
+      ENDDO
+
+C...Reset pT and flavor at ends of the string
+      PX(JT) = -PX(3)
+      PY(JT) = -PY(3)
+      IFL(JT) =-IFL(3)
+      PMQ(JT) = PMQ(3)
+      GOTO 300
+
+C...Final two hadrons
+400   IF (IFL(JR)*IFL(3) .GT. 100)  GOTO 200
+      CALL IFLAV (IFL(JR), -IFL(3), IFLA, LLIST(I+1))
+      P(I+1,5) = AM(IABS(LLIST(I+1)))
+      P(I,1)   = PX(JT)+PX(3)
+      P(I,2)   = PY(JT)+PY(3)
+      I1 = I+1
+      P(I1,1) = PX(JR)-PX(3)
+      P(I1,2) = PY(JR)-PY(3)
+      XM1 = P(I,5)**2+P(I,1)**2+P(I,2)**2
+      XM2 = P(I1,5)**2+P(I1,1)**2+P(I1,2)**2
+      IF (SQRT(XM1)+SQRT(XM2) .GT. SQRT(WREM2)) GOTO 200
+      if (ptot(4).le.0) goto 200
+      WREM = SQRT(WREM2)
+      EA1 = (WREM2+XM1-XM2)/(2.*WREM)
+      PA2 = (EA1**2-XM1)
+      if (pa2.ge.0.0) then
+        PA = SQRT(pa2)
+      else
+       goto 200
+      endif
+      BA = PTOT(3)/PTOT(4)
+      GA = PTOT(4)/WREM
+      S = FLOAT(3-2*JT)
+      P(I,3) = GA*(BA*EA1+S*PA)
+      P(I,4) = GA*(EA1+BA*S*PA)
+      P(I+1,3) = PTOT(3)-P(I,3)
+      P(I+1,4) = PTOT(4)-P(I,4)
+      N0 = I-NP-1
+      ENDDO                  ! loop on two `remaining strings'
+      NP = I+1
+      RETURN
+      END
+      SUBROUTINE GLAUBER(JA,SSIG,SLOPE,ALPHA,SIGT,SIGEL,SIGQEL)
+C...Subroutine to compute hadron-Nucleus cross sections
+C.  according to:
+C.  R.J. Glauber and G.Matthiae  Nucl.Phys. B21, 135, (1970)
+C.
+C.  This formulas assume that the target nucleus  density is
+C.  modeled by a shell-model form.  A reasonable range of models
+C   is  4 < JA < 18
+C.
+C.  INPUT :  A = mass number of the nucleus
+C.           SSIG  (mbarn) total pp cross section
+C.           SLOPE (GeV**-2)  elastic scattering slope for pp
+C.           ALPHA    real/imaginary part of the forward pp elastic
+C.                                               scattering amplitude
+C.  OUTPUT : SIGT  = Total cross section
+C.           SIGEL = Elastic cross section
+C.           SIGQEL  = Elastic + Quasi elastic cross section
+C.
+C. Internally  everything is computed in GeV (length = GeV**-1)
+C......................................................................
+      COMMON /CA0SH/ R0, R02
+      COMPLEX  ZZ, ZS, ZP, ZC
+      DIMENSION RR(18)
+      DATA CMBARN /0.389385/
+      DATA PI /3.1415926/
+      DATA BMAX /50./            ! GeV**-1
+      DATA NB /100/
+C...data on Sqrt[<r**2>] (fm). (A=5,8 are not correct). From Barett and Jackson
+      DATA RR /0.81,2.095,1.88,1.674, 2.56,2.56,2.41,2.5,2.519,2.45
+     +          ,2.37, 2.460, 2.440, 2.54, 2.58, 2.718, 2.662,2.789 /
+      A = FLOAT(JA)
+C...Parameter of shell model density
+      R0 = RR(JA)/0.197/SQRT(5./2. - 4./A)         ! GeV**-1
+      R02 = R0*R0
+      SIG = SSIG/CMBARN                           ! GeV**-2
+      DB = BMAX/FLOAT(NB)
+      SUM = 0.
+      SUM1 = 0.
+      SUM2 = 0.
+      DO JB=1,NB
+         B = DB*(FLOAT(JB)-0.5)
+         GS = GLAUBGS (B,SLOPE, SIG)
+         GP = GLAUBGP (B,SLOPE, SIG)
+         XS = (1.- GS)
+         YS =  GS*ALPHA
+         ZS = CMPLX(XS,YS)
+         XP = (1.- GP)
+         YP =  GP*ALPHA
+         ZP = CMPLX(XP,YP)
+         ZZ = ZS**4. * ZP**(A-4.)
+         X = REAL (ZZ)
+         Y = AIMAG(ZZ)
+         ZC = CMPLX(X,-Y)
+         SUM = SUM + (1.-X)*B
+         SUM1 = SUM1 + ((1.-X)**2 + Y**2)*B
+         OMS = OMEGAS(B,SIG,SLOPE,ALPHA)
+         OMP = OMEGAP(B,SIG,SLOPE,ALPHA)
+         OM = (1.- 2.*GS + OMS)**4. * (1. -2.*GP + OMP)**(A-4.)
+         SUM2 = SUM2 + (1.-2.*X + OM)*B
+      ENDDO
+      SIGT =   SUM  * DB * 4.*PI * CMBARN
+      SIGEL =  SUM1 * DB * 2.*PI * CMBARN
+      SIGQEL = SUM2 * DB * 2.*PI * CMBARN
+      RETURN
+      END
+      FUNCTION GLAUBGP (B,SLOPE, SIG)
+      COMMON /CA0SH/ A0, A02
+      DATA PI /3.1415926/
+      GAMMA2 = A02/4. + 0.5*SLOPE
+      ARG = B**2/(4.*GAMMA2)
+      C1 = 1.- A02/(6.*GAMMA2)*(1.-ARG)
+      GLAUBGP = SIG/(8.*PI*GAMMA2) *  C1 * EXP(-ARG)
+      RETURN
+      END
+      FUNCTION GLAUBGS (B,SLOPE, SIG)
+      COMMON /CA0SH/ A0, A02
+      DATA PI /3.1415926/
+      GAMMA2 = A02/4. + 0.5*SLOPE
+      ARG = B**2/(4.*GAMMA2)
+      GLAUBGS = SIG/(8.*PI*GAMMA2) * EXP(-ARG)
+      RETURN
+      END
+      SUBROUTINE HAD_CONV
+C----------------------------------------------------------------------------
+C  Code for the convolution of hadrons
+C----------------------------------------------------------------------------
+C...Convolution of hadrons profile
+C.  [function A(b) of Durand and Pi]
+C.  precalculate and put  in COMMON block
+C.........................................
+      COMMON /S_CHDCNV/NB,DB,ABPP(200),ABPIP(200),ABPPH(200),
+     +        ABPIPH(200)
+      REAL*4 NU2, MU2, NUPI2, NU, MU, NUPI
+
+      COMMON /S_CH0CNV/ NU2, MU2, NUPI2, NU, MU, NUPI
+
+      NU2 = 0.71
+      MU2 = 0.88
+      NUPI2 = 0.54
+
+      NU = SQRT(NU2)
+      MU = SQRT(MU2)
+      NUPI = SQRT(NUPI2)
+
+C...integration constants
+      BMAX = 15.
+      NB  = 200
+      DB = BMAX/FLOAT(NB)
+
+      DO JB=1,NB
+         B = DB*FLOAT(JB-1)
+         ABPP(JB)    = A_PP(B)
+         ABPIP(JB)   = A_PIP(B)
+      ENDDO
+      NU2 = 0.71
+      MU2 = 0.88
+      NUPI2 = 0.54
+
+      NU = SQRT(NU2)
+      MU = SQRT(MU2)
+      NUPI = SQRT(NUPI2)
+
+      DB = BMAX/FLOAT(NB)
+      DO JB=1,NB
+         B = DB*FLOAT(JB-1)
+         ABPPh(JB)    = A_PP(B)
+         ABPIPh(JB)   = A_PIP(B)
+      ENDDO
+      RETURN
+      END
+      FUNCTION HELIUM (R)
+C... Helium density from Barrett and Jackson
+C.   INPUT R = r coordinate (fm)
+C.   OUTPUT (fm**-3)
+C........................................................
+      DATA R0 /0.964/, CA /0.322/   ! fm
+      DATA W /0.517/, CC /5.993224E-02/
+      HELIUM = CC*(1.+W*(R/R0)**2)/(1. + EXP((R-R0)/CA))
+      RETURN
+      END
+
+      SUBROUTINE HSPLI (KF, KP1,KP2)
+C...This subroutine splits one hadron of code KF
+C.  into 2 partons of code KP1 and KP2
+C.  KP1 refers to a color triplet [q or (qq)bar]
+C.  KP2 to a a color anti-triplet [qbar or (qq)]
+C.  allowed inputs:
+C.  KF = 7:14 pi+-,k+-,k0L,k0s, p,n
+C.     = -13,-14  pbar,nbar
+C.................................................
+
+      L = IABS(KF)-6
+      GOTO (100,200,300,400,500,500,600,700), L
+
+100      KP1 = 1                  ! pi+
+      KP2 = -2
+      RETURN
+200      KP1 = 2                  ! pi-
+      KP2 = -1
+      RETURN
+300      KP1 = 1                  ! k+
+      KP2 = -3
+      RETURN
+400      KP1 = 3                  ! k-
+      KP2 = -1
+      RETURN
+500      KP1 = 2                  ! k0l, k0s
+      KP2 = -3
+      IF (RNDM(0).GT. 0.5)  THEN
+        KP1 = 3
+        KP2 = -2
+      ENDIF
+      return       ! bug fix 5-91
+600      R = 6.*RNDM(0)            ! p/pbar
+      IF (R .LT.3.)       THEN
+        KP1 = 1
+        KP2 = 12
+      ELSEIF (R .LT. 4.)  THEN
+        KP1 = 1
+        KP2 = 21
+      ELSE
+        KP1 = 2
+        KP2 = 11
+      ENDIF
+      IF (KF .LT. 0)      THEN
+        KPP = KP1
+        KP1 = -KP2
+        KP2 = -KPP
+      ENDIF
+      RETURN
+
+700      R = 6.*RNDM(0)                  ! n/nbar
+      IF (R .LT.3.)       THEN
+         KP1 = 2
+         KP2 = 12
+      ELSEIF (R .LT. 4.)  THEN
+        KP1 = 2
+        KP2 = 21
+      ELSE
+        KP1 = 1
+        KP2 = 22
+      ENDIF
+      IF (KF .LT. 0)      THEN
+        KPP = KP1
+        KP1 = -KP2
+        KP2 = -KPP
+      ENDIF
+      RETURN
+      END
+      SUBROUTINE IFLAV (IFL1,IFL2A, IFL2, KF)
+C...This subroutine receives as input IFL1 the flavor code
+C.  of a quark (antiquark) and  generates the antiquark (quark)
+C.  of flavor code IFL2 that combine with the original parton
+C.  to compose an hadron of code KF. ONLY 3 FLAVORS
+C.  If (IFL2A.NE.0) returns an hadron KF composed of IFL1 and IFL2A
+C...................................................................
+      COMMON /S_CFLAFR/ PAR(8)
+      DIMENSION KFLA(3,3,2), CDIAG(12), KDIAG(6)
+      DIMENSION KBAR(30), CFR(12), KFR(80)
+      DATA KFLA /0,8,10,7,0,22,9,21,0,0,26,29,25,0,31,28,30,0/
+      DATA CDIAG /0.5,0.25,0.5,0.25,1.,0.5,0.5,0.,0.5,0.,1.,1./
+      DATA KDIAG /6,23,24,27,32,33/
+      DATA KBAR /13,14,34,35,36,37,38,9*0,39,3*0,40,41,42,43,44,
+     +             45,46,47,48,49/
+      DATA CFR /0.75,0.,0.5,0.,0.,1.,0.1667,0.3333,0.0833,0.6667,
+     +            0.1667,0.3333/
+      DATA KFR/0,16,17,19,100,104,109,115,0,26,27,29,122,126,131,137
+     +  ,0,40,42,47,144,158,178,205,0,1,3,6,10,15,21,28,0,0,56,57,240,
+     +  246,256,271,0,0,1,3,6,10,15,21,60,61,64,70,292,307,328,356,
+     +  0,1,3,6,10,15,21,28,16*0/
+
+
+      IFLA = IABS(IFL1)
+      IF (IFL2A .NE. 0)  THEN
+         IFL2A = MOD(IFL2A,100)
+         IFL2 = IFL2A
+         IFLB = IABS(IFL2A)
+         MB = 0
+         IF (IFLB .GT. 10)   MB=1
+         IF (IFLA .GT. 10)   MB=2
+      ELSE
+          MB = 2
+         IF (IFLA .LT. 10)   THEN
+             MB = 1
+             IF ((1.+PAR(1))*RNDM(0).LT. 1.)  MB=0
+         ENDIF
+      ENDIF
+
+      IF (MB .EQ. 0)  THEN
+         IF (IFL2A.EQ.0)
+     +        IFL2=ISIGN(1+INT((2.+PAR(2))*RNDM(0)),-IFL1)
+         IFLD = MAX(IFL1,IFL2)
+         IFLE = MIN(IFL1,IFL2)
+         GOTO 100
+      ENDIF
+
+C...Decide if the diquark must be split
+      IF (MB .EQ. 2 .AND. IFLA .GT. 100)   THEN
+         IFLA = MOD(IFLA,100)
+           GOTO 200
+      ENDIF
+      IF (MB .EQ. 2 .AND. IFLA .EQ. 0)   THEN
+          IF (RNDM(0) .LT. PAR(8))  THEN
+             MB = 0
+             IFLG = MOD(IFL1,10)
+             IFLH =(IFL1-IFLG)/10
+             IF (RNDM(0) .GT. 0.5)  THEN
+                IFLDUM = IFLG
+                IFLG = IFLH
+                IFLH = IFLDUM
+             ENDIF
+             IFL11=IFLG
+             IFL22=ISIGN(1+INT((2.+PAR(2))*RNDM(0)),-IFL1)
+             IFLD = MAX(IFL11,IFL22)
+             IFLE = MIN(IFL11,IFL22)
+             IFL2 = -IFLH*10+IFL22
+             IF (RNDM(0) .GT. 0.5)  IFL2 = IFL22*10-IFLH
+             IFL2 = IFL2+ISIGN(100,IFL2)
+          ENDIF
+      ENDIF
+
+C...Form a meson: consider spin and flavor mixing for the diagonal states
+100      IF (MB .EQ. 0)  THEN
+         IF1 = IABS(IFLD)
+         IF2 = IABS(IFLE)
+         IFLC = MAX(IF1,IF2)
+         KSP = INT(PAR(5)+RNDM(0))
+         IF (IFLC.EQ.3)  KSP = INT(PAR(6)+RNDM(0))
+C D.H.
+         KSP = MIN(KSP,1)
+
+         IF (IF1 .NE. IF2)   THEN
+            KF = KFLA(IF1,IF2,KSP+1)
+         ELSE
+            R = RNDM(0)
+            JF=1+INT(R+CDIAG(6*KSP+2*IF1-1))+
+     +             INT(R+CDIAG(6*KSP+2*IF1))
+C D.H.
+            JF = MIN(JF,3)
+
+            KF=KDIAG(JF+3*KSP)
+         ENDIF
+         RETURN
+      ENDIF
+
+C...Form a baryon
+200      IF (IFL2A .NE. 0)   THEN
+          IF (MB .EQ. 1)  THEN
+             IFLD = IFLA
+             IFLE = IFLB/10
+             IFLF = MOD(IFLB,10)
+          ELSE
+             IFLD = IFLB
+             IFLE = IFLA/10
+             IFLF = MOD(IFLA,10)
+          ENDIF
+          LFR = 3+2*((2*(IFLE-IFLF))/(1+IABS(IFLE-IFLF)))
+          IF(IFLD.NE.IFLE.AND.IFLD.NE.IFLF)  LFR=LFR+1
+      ELSE
+110          CONTINUE
+          IF(MB.EQ.1)   THEN            ! generate diquark
+             IFLD = IFLA
+120             IFLE = 1+INT((2.+PAR(2)*PAR(3))*RNDM(0))
+             IFLF = 1+INT((2.+PAR(2)*PAR(3))*RNDM(0))
+             IF(IFLE.GE.IFLF.AND.PAR(4).LT.RNDM(0))    GOTO 120
+             IF(IFLE.LT.IFLF.AND.PAR(4)*RNDM(0).GT.1.) GOTO 120
+             IFL2=ISIGN(10*IFLE+IFLF,IFL1)
+          ELSE                  ! generate quark
+             IFL2=ISIGN(1+INT((2.+PAR(2))*RNDM(0)),IFL1)
+             IFLD=IABS(IFL2)
+             IFLE=IFLA/10
+             IFLF=MOD(IFLA,10)
+          ENDIF
+C...SU(6) factors for baryon formation
+             LFR=3+2*((2*(IFLE-IFLF))/(1+IABS(IFLE-IFLF)))
+          IF(IFLD.NE.IFLE.AND.IFLD.NE.IFLF)  LFR=LFR+1
+          WT = CFR(2*LFR-1)+PAR(7)*CFR(2*LFR)
+          IF(IFLE.LT.IFLF)   WT=WT/3.
+          IF (WT.LT.RNDM(0)) GOTO 110
+      ENDIF
+
+C...Form Baryon
+      IFLG=MAX(IFLD,IFLE,IFLF)
+      IFLI=MIN(IFLD,IFLE,IFLF)
+      IFLH=IFLD+IFLE+IFLF-IFLG-IFLI
+      KSP=2+2*INT(1.-CFR(2*LFR-1)+(CFR(2*LFR-1)+PAR(7)*
+     1       CFR(2*LFR))*RNDM(0))
+
+C...Distinguish Lambda- and Sigma- like particles
+      IF (KSP.EQ.2.AND.IFLG.GT.IFLH.AND.IFLH.GT.IFLI)  THEN
+      IF(IFLE.GT.IFLF.AND.IFLD.NE.IFLG) KSP=2+INT(0.75+RNDM(0))
+       IF(IFLE.LT.IFLF.AND.IFLD.EQ.IFLG) KSP=3
+       IF(IFLE.LT.IFLF.AND.IFLD.NE.IFLG) KSP=2+INT(0.25+RNDM(0))
+      ENDIF
+      KF=KFR(16*KSP-16+IFLG)+KFR(16*KSP-8+IFLH)+IFLI
+      KF=ISIGN(KBAR(KF-40),IFL1)
+
+      RETURN
+      END
+      SUBROUTINE INI_WRITE (LUN)
+C...This subroutine prints on unit LUN
+C.  a table of the cross sections  used in the program
+C.  and of the average number of jets, and the average
+C.  number of wounded nucleons in a hadron-air interaction
+C---------------------------------------------------------
+      COMMON /S_CCSIG/ NSQS, ASQSMIN, ASQSMAX, DASQS,
+     +    SSIG(51,2), PJETC(0:20,51,2),SSIGN(51,2), ALINT(51,2)
+      DIMENSION PJ(2), PW(2)
+      DATA ATARG /14.514/
+C      CALL PARAM_PRINT(LUN)
+      WRITE (LUN, 10)
+      WRITE (LUN, 15)
+      WRITE (LUN, 16)
+      WRITE (LUN, 18)
+10    FORMAT(//,' Table of cross sections, and average number',
+     +         ' of minijets and wounded nucleons ')
+15    FORMAT('        [sqrt(s) in GeV, cross sections in mbarn]. ')
+16    FORMAT(' sqrt(s)  sig(pp) sig(pAir)  <n_j>  <n_w>   ',
+     +    ' sig(pip) sig(piAir) <n_j> <n_w> ')
+18    FORMAT(1X,77('-') )
+      DO J=1,51,1
+         SQS = 10.**(ASQSMIN + DASQS*FLOAT(J-1))
+         DO K=1,2
+            PW(K) = ATARG*SSIG(J,K)/SSIGN(J,K)
+            PJ(K) = 0.
+            DO JJ=1,20
+              PJ(K)=PJ(K)+FLOAT(JJ)*(PJETC(JJ,J,K)-PJETC(JJ-1,J,K))
+            ENDDO
+         ENDDO
+         WRITE(LUN,20) SQS,SSIG(J,1),SSIGN(J,1),PJ(1),PW(1)
+     +                      ,SSIG(J,2),SSIGN(J,2),PJ(2),PW(2)
+      ENDDO
+      WRITE (LUN, 18)
+20    FORMAT (1X,E8.2, 2(2F8.1,2X,2F7.2,3X))
+      RETURN
+      END
+      SUBROUTINE INT_H_NUC (IA, SIGT, SLOPE, RHO)
+C...Compute with a montecarlo method the "multiple interaction structure"
+C.  of an hadron-nucleus collision.
+C.
+C.
+C.  INPUT : IA               = mass of target nucleus
+C.          SIGT (mbarn)     = total hp cross section
+C.          SLOPE (GeV**-2)  = slope of hp elastic scattering
+C.          RHO              = real/imaginary part of forward elastic
+C.                             scattering amplitude
+C.
+C.  OUTPUT : in COMMON block /CNCMS0/
+C.           B = impact parameter (fm)
+C.           BMAX = maximum impact parameter for generation
+C.           NTRY = number of "trials" before one interaction
+C.           NA = number of wounded nucleons in A
+C. Author : P.Lipari  (may 1993)
+C---------------------------------------------------------------------------
+C D.H.PARAMETER (IAMAX=110)
+      PARAMETER (IAMAX=56)
+      COMMON /S_CNCM0/ B, BMAX, NTRY, NA
+      DIMENSION XA(IAMAX), YA(IAMAX)
+      DATA PI /3.1415926/
+      DATA CMBARN /0.389385/
+      CC = SIGT/(4.*PI*SLOPE*CMBARN)
+      DEN = 2.*SLOPE*CMBARN*0.1
+      BMAX = 10.                             ! fm
+      NTRY = 0
+      CALL NUC_CONF (IA, XA, YA)
+1000  B = BMAX*SQRT(RNDM(0))
+      PHI = 2.*PI*RNDM(0)
+      BX = B*COS(PHI)
+      BY = B*SIN(PHI)
+      NTRY = NTRY+1
+      NA = 0
+      DO JA=1,IA
+         S = (XA(JA)-BX)**2 + (YA(JA)-BY)**2
+         F = EXP(-S/DEN)
+         PEL = CC*CC*(1.+RHO*RHO)*F*F
+         PINEL  = 2.*CC*F-PEL
+         R = RNDM(0)
+         IF (R .LT. PINEL)  THEN
+            NA = NA + 1
+         ENDIF
+      ENDDO
+      IF (NA .EQ. 0)  GOTO 1000
+      RETURN
+      END
+
+      SUBROUTINE INT_NUC (IA, IB, SIG0, SIGEL)
+C========================================================================
+C. Multiple interaction structure
+C========================================================================
+C...Compute with a montecarlo code  the  "multiple interaction structure"
+C.  of a nucleus-nucleus interaction
+C.
+C.  INPUT : IA            = mass of target nucleus
+C.          IB            = mass of projectile nucleus
+C.          SIG0 (mbarn)  = inelastic pp cross section
+C.          SIGEL(mbarn)  = elastic pp cross section
+C.
+C.  OUTPUT : in common block /CNUCMS/
+C.           B = impact parameter (fm)
+C.           BMAX = maximum impact parameter for generation
+C.           NTRY = number of "trials" before one interaction
+C.           NA = number of wounded nucleons in A
+C.           NB =    "        "        "     in B
+C.           NI = number of nucleon-nucleon inelastic interactions
+C.           NAEL = number of elastically scattered nucleons in  A
+C.           NBEL =    "         "           "          "    in  B
+C.           JJA(J)  [J=1:IA]   = number of inelastic interactions
+C.                                of J-th nucleon of nucleus A
+C.           JJB(J)  [J=1:IB]   = number of inelastic interactions
+C.                                of J-th nucleon of nucleus B
+C.           JJAEL(J)  [J=1:IA]   = number of elastic interactions
+C.                                of J-th nucleon of nucleus A
+C.           JJBEL(J)  [J=1:IB]   = number of elastic interactions
+C.                                of J-th nucleon of nucleus B
+C.           JJINT(J,K)  [J=1:NB, K=1:NA]  (0 = no interaction)
+C.                                         (1 = interaction )
+C.                                         between nucleon J of A and K of B
+C-----------------------------------------------------------------------------
+      PARAMETER (IAMAX=56)
+      COMMON /CNUCMS/ B, BMAX, NTRY, NA, NB, NI, NAEL, NBEL
+     +         ,JJA(IAMAX), JJB(IAMAX), JJINT(IAMAX,IAMAX)
+     +         ,JJAEL(IAMAX), JJBEL(IAMAX)
+      DIMENSION XA(IAMAX), YA(IAMAX), XB(IAMAX), YB(IAMAX)
+      DATA PI /3.1415926/
+      SIGT = SIG0 + SIGEL
+      R2  = 0.1 * SIG0/PI
+      R2T = 0.1 * SIGT/PI
+      BMAX = 15.                             ! fm
+      NTRY = 0
+      CALL NUC_CONF (IA, XA, YA)
+      CALL NUC_CONF (IB, XB, YB)
+      NI = 0
+      NIEL = 0
+      DO JA=1,IA
+         JJA(JA) = 0
+         JJAEL(JA) = 0
+      ENDDO
+      DO JB=1,IB
+         JJB(JB) = 0
+         JJBEL(JB) = 0
+         DO JA=1,IA
+            JJINT(JB,JA) = 0
+         ENDDO
+      ENDDO
+1000      B = BMAX*SQRT(RNDM(0))
+      PHI = 2.*PI*RNDM(0)
+      BX = B*COS(PHI)
+      BY = B*SIN(PHI)
+      NTRY = NTRY+1
+      DO JA=1,IA
+         DO JB=1,IB
+            S = (XA(JA)-XB(JB)-BX)**2 + (YA(JA)-YB(JB)-BY)**2
+            IF (S .LT. R2)  THEN
+               NI = NI + 1
+               JJA(JA) = JJA(JA)+1
+               JJB(JB) = JJB(JB)+1
+               JJINT(JB,JA) = 1
+            ELSE IF (S .LT. R2T)  THEN
+               NIEL = NIEL + 1
+               JJAEL(JA) = JJAEL(JA)+1
+               JJBEL(JB) = JJBEL(JB)+1
+            ENDIF
+         ENDDO
+      ENDDO
+      IF (NI + NIEL .EQ. 0)  GOTO 1000
+      NA = 0
+      NB = 0
+      NAEL = 0
+      NBEL = 0
+      DO JA=1,IA
+         IF (JJA(JA) .GT. 0)  THEN
+            NA = NA + 1
+         ELSE
+            IF (JJAEL(JA) .GT. 0)  NAEL = NAEL+1
+         ENDIF
+      ENDDO
+      DO JB=1,IB
+         IF (JJB(JB) .GT. 0)  THEN
+            NB = NB + 1
+         ELSE
+            IF (JJBEL(JB) .GT. 0)  NBEL = NBEL+1
+         ENDIF
+      ENDDO
+      RETURN
+      END
+
+      subroutine invert_array (yy, xmin, dx, n, xnew, ymin, dy)
+C..    This subroutine receives one   array
+C      of n y values in input yy(1:n)
+C      that correspond to  equispaced values of x_j = xmin + dx*(j-1)
+C
+C      and "reverse" the array returning an array of  x values
+C      xnew (1:n) that  corresponds to equispaced values of y
+C      The relation is assumed monotonous but can be
+C      increasing or decreasing
+C..............................................................
+      dimension  yy(n), xnew (n)
+      ymin = yy(1)
+      ymax = yy(n)
+      dy = (ymax - ymin)/float(n-1)
+      xnew (1) = xmin
+      xnew (n) = xmin + dx*float(n-1)
+      k0 = 1
+      do j=2,n-1
+         y = ymin + float(j-1)*dy
+         do k=k0,n
+            if((yy(k) .gt. y) .eqv. (yy(n) .gt. yy(1))) goto 100
+         enddo
+100      y2 = yy(k)
+         y1 = yy(k-1)
+         k0 = k-1
+         x1 = xmin + dx*float(k-2)
+         x2 = x1+dx
+         xnew (j)  = x1 + dx* (y-y1)/(y2-y1)
+      enddo
+      return
+      end
+      SUBROUTINE JET_FRAG (X1J,X2J,PTJET)
+C....Fragmentation of a jet-jet system
+C.   Input : Kinematical variables of a
+C.           jet-jet system
+C............................................
+      REAL*8 DX1J, DX2J, DBETJ
+      COMMON /S_PLIST/ NP, P(5000,5), LLIST(5000)
+      COMMON /S_RUN/ SQS, S, Q2MIN, XMIN, ZMIN , kb ,kt
+      COMMON /S_CHIST/ NW,NJET,NNJET(15),XX1JET(100)
+     +   ,XX2JET(100),PPTJET(100),PHIJET(100),NNPJET(100),NNPSTR(30)
+     +   ,JDIF, EMXB, EMXT
+      DATA PGG /1./
+      E0 = SQRT(S*X1J*X2J)
+      TH = ASIN(MIN(0.999999,2.*PTJET/E0))
+      FI = 6.283185*RNDM(0)
+      NOLD = NP
+      IF ( (E0.LT.8.) .OR. (RNDM(0).GT.PGG)) THEN
+         IS = -1 + 2.*INT(1.9999*RNDM(0))
+         IFL1 = IS*(INT((2.+0.3)*RNDM(0))+1)
+         CALL STRING_FRAG (E0,IFL1,-IFL1,0.,0.,0.,0.,IFBAD)
+      ELSE
+         CALL GG_FRAG(E0)
+      ENDIF
+      DX1J = X1J
+      DX2J = X2J
+      DBETJ = (DX1J-DX2J)/(DX1J+DX2J)
+      CALL SIROBO (NOLD+1,NP,TH,FI,0.D0,0.D0,DBETJ)
+      NNPJET (NJET) = NP-NOLD
+      XX1JET (NJET) = X1J
+      XX2JET (NJET) = X2J
+      PPTJET (NJET) = PTJET
+      PHIJET (NJET) = FI
+      RETURN
+      END
+      SUBROUTINE JET_INI
+C...Compute table of cross sections, and table of probability
+C.  for the production of N (jet pairs)
+C.  The OUTPUT of this routine  is the COMMON block /CCSIG/
+C.  that contains  the cross sections h-p, h-Air, and the
+C.  cumulative probability of n_jets.
+C------------------------------------------------------------
+      COMMON /S_CSIGINP/ QQ2MIN, SSQCD (51,2), SSQCD2 (51,2),SSIG0(2),
+     @                 factork(2),isfchoice
+      COMMON /S_CCSIG2/ SSIG_TOT(51,2),SSIG_B(51,2)
+      COMMON /S_CCSIG/ NSQS, ASQSMIN, ASQSMAX, DASQS,
+     +    SSIG(51,2), PJETC(0:20,51,2),SSIGN(51,2), ALINT(51,2)
+      COMMON /S_RUN/ SQS, S, Q2MIN, XMIN, ZMIN , kb ,kt
+      DIMENSION PJET (0:20)
+
+      DATA CMBARN /0.389385/
+
+      Q2MIN = QQ2MIN
+      CALL FACT_INI            ! Initialise the factorial
+      CALL HAD_CONV            ! Initialise profile convolution
+
+C...spacing in energy  for the table of cross sections.
+      NSQS = 51
+      ASQSMIN = 1.
+      ASQSMAX = 6.
+      DASQS = (ASQSMAX-ASQSMIN)/FLOAT(NSQS-1)
+
+      DO KK=1,2
+         JINT = KK
+         DO J=1, NSQS
+            ASQS = ASQSMIN + DASQS*FLOAT(J-1)
+          if (isfchoice.eq.1) then
+                    SIG_QCD  =factork(1)* SSQCD(J,KK)
+             else  if (isfchoice.eq.2) then
+                    SIG_QCD  =factork(2)* SSQCD2(J,KK)
+          endif
+            SIG_SOFT = SSIG0(KK)
+            CALL SIG_JET (SIG_QCD,SIG_SOFT,JINT,SIG_inel,PJET,
+     +                    SIG_TOT,B_EL)
+            SSIG(J,KK) = SIG_inel*CMBARN
+c            SSIG_TOT(J,KK) = SIG_TOT*CMBARN
+c            SSIG_B(J,KK) = B_EL
+            PJETC (0,J,KK) = PJET(0)
+            DO NJET=1,20
+               PJETC(NJET,J,KK) = PJETC(NJET-1,J,KK) + PJET(NJET)
+            ENDDO
+         ENDDO
+      ENDDO
+      RETURN
+      END
+      SUBROUTINE KCODE (J,CODE,NC)
+C...Produce the code for parton J
+C.  Input K, Output CODE, NC=number of characters
+C..................................................
+      CHARACTER*5 CODE
+      CHARACTER*1 NAMQ(3)
+      DATA NAMQ /'U','D','S'/
+      CODE = '     '
+      IF(J.EQ.0)  THEN
+         CODE(1:3) = 'GLU'
+         NC = 3
+         RETURN
+      ENDIF
+      JA = IABS(J)
+      J1 = MOD(JA,10)
+      J2 = (JA-J1)/10
+      IF(JA .GT. 10) THEN
+         CODE(1:1) = NAMQ(J2)
+         CODE(2:2) = NAMQ(J1)
+         NC = 2
+      ELSE
+         CODE(1:1) = NAMQ(J1)
+         NC = 1
+      ENDIF
+      IF (J .LT. 0)  THEN
+         CODE(NC+1:NC+3) = 'bar'
+         NC = NC+3
+      ENDIF
+      RETURN
+      END
+
+      FUNCTION NJETR (K,SQS)
+C...Generate a number of jet-pairs for a 'projectile'
+C.  (K=1:p),(K=2:pi) interacting with a nucleon at sqrt(s)=SQS(GeV)
+C..................................................................
+      COMMON /S_CCSIG/ NSQS, ASQSMIN, ASQSMAX, DASQS,
+     +    SSIG(51,2), PJETC(0:20,51,2),SSIGN(51,2), ALINT(51,2)
+      AL = LOG10 (SQS)
+      IF (AL .LT. ASQSMIN)  THEN
+          NJETR = 0
+          RETURN
+      ENDIF
+      IF (AL .GT. ASQSMAX)  THEN
+          WRITE(*,*)  ' NJETR:  sqrt(s) out of bounds ', SQS
+          NJETR = 0
+          RETURN
+      ENDIF
+      J1 = (AL - ASQSMIN)/DASQS + 1
+C D.H.
+      J1 = MIN(J1,50)
+      J1 = MAX(J1,1)
+
+      J2 = J1+1
+      T = (AL-ASQSMIN)/DASQS - FLOAT(J1-1)
+      R = 0.999*RNDM(0)
+      DO J=0,20
+         IF (R .LT. (1.-T)*PJETC(J,J1,K)+T*PJETC(J,J2,K))  GOTO 100
+      ENDDO
+100   NJETR = J
+      RETURN
+      END
+      SUBROUTINE NUC1_PROFIL (AA)
+C...Compute the profile function T(b)
+C.  normalised as INT[d2b T(b) = 1]
+C.  INPUT : AA = mass number of nucleus
+C...............................................
+      PARAMETER (NB=401)
+      EXTERNAL DENSA
+      COMMON /CC01/  B
+      COMMON /CCDA/ JJA
+      COMMON /CPROF/ DB, BMAX, BB(NB), TB(NB), A
+      A = AA
+      IA1 = INT(AA)
+      IA2 = IA1 + 1
+      U = AA - FLOAT(IA1)
+      BMAX = 7.5
+      DB = BMAX/FLOAT(NB-1)
+      DO JB=1,NB
+         B = DB*FLOAT(JB-1)
+         BB(JB) = B
+         IF (A .LE. 18.)  THEN
+             T1 = PROFNUC (B, IA1)
+             T2 = PROFNUC (B, IA2)
+          ELSE
+             JJA = IA1
+             T1 = 2.*GAUSS (DENSA,0.,BMAX)
+             JJA = IA2
+             T2 = 2.*GAUSS (DENSA,0.,BMAX)
+          ENDIF
+          TB(JB) = (1.-U)*T1  + U*T2
+      ENDDO
+      RETURN
+      END
+
+       SUBROUTINE NUC_CONF (IA, XX, YY)
+C...This routine generates the configuration  of a nucleus
+C.  need an initialization call to NUC_GEOM_INI
+C.
+C.  INPUT  : IA = mass number of the nucleus
+C.  OUTPUT : XX(1:IA), YY(1:IA) (fm) = position in impact parameter
+C.                                     space of the IA nucleons
+C...................................................................
+      PARAMETER (IAMAX=56)
+      DIMENSION XX(IAMAX), YY(IAMAX)
+      PARAMETER (NB=401)
+      COMMON /CPROFA/ ZMIN, DZ, BBZ(NB,IAMAX)
+      DATA PI /3.1415926/
+      DO J=1,IA
+         Z = RNDM(0)
+         JZ = INT((Z-ZMIN)/DZ)+1
+C D.H.
+         JZ = MIN(JZ,400)
+         
+         T = (Z-ZMIN)/DZ - FLOAT(JZ-1)
+         B = BBZ(JZ,IA)*(1.-T) + BBZ(JZ+1,IA)*T
+         PHI = 2.*PI*RNDM(0)
+         XX(J) = B*COS(PHI)
+         YY(J) = B*SIN(PHI)
+      ENDDO
+      RETURN
+      END
+
+      SUBROUTINE NUC_GEOM_INI
+C...Initialize all nucleus profiles
+      PARAMETER (NB=401)
+      PARAMETER (IAMAX=56)
+      COMMON /CPROF/ DB, BMAX, BB(NB), TB(NB), A
+      COMMON /CPROFA/ ZMIN, DZ, BBZ(NB,IAMAX)
+      DIMENSION FFB(NB), GGB(NB)
+      DATA PI /3.1415926/
+      CALL SHELL_INI
+      CALL WOOD_SAXON_INI
+      DO IA= 2,IAMAX
+           JA = IA
+         CALL NUC_PROFIL(JA)
+         DO K=1,NB
+           FFB(K) = BB(K)*TB(K) * (2.*PI)
+         ENDDO
+         GGB(1) = 0.
+         GGB(NB) = 1.
+         DO K=2,NB-1
+           GGB(K) = GGB(K-1) + FFB(K-1)*DB
+         ENDDO
+         CALL INVERT_ARRAY(GGB,0.,DB,NB, BBZ(1,IA), ZMIN, DZ)
+      ENDDO
+      RETURN
+      END
+
+       SUBROUTINE NUC_NUC_INI
+C...Initialization for the generation of nucleus-nucleus interactions
+C.  INPUT : E0 (TeV) Energy per nucleon of the beam nucleus
+C........................................................................
+      CALL NUC_GEOM_INI                         ! nucleus profiles
+      CALL SIGMA_INI                          ! initialize pp cross sections
+      RETURN
+      END
+      SUBROUTINE NUC_PROFIL (JA)
+C...Compute the profile function T(b)
+C.  normalised as INT[d2b T(b) = 1]
+C.  INPUT : JA = integer mass number of nucleus
+C...............................................
+      PARAMETER (NB=401)
+      EXTERNAL DENSA
+      COMMON /CC01/  B
+      COMMON /CCDA/ JJA
+      COMMON /CPROF/ DB, BMAX, BB(NB), TB(NB), A
+      BMAX = 7.5
+      DB = BMAX/FLOAT(NB-1)
+      JJA = JA
+      A = JA
+      DO JB=1,NB
+        B = DB*FLOAT(JB-1)
+        BB(JB) = B
+        IF (JA .LE. 18)  THEN
+            TB(JB) = PROFNUC (B, JA)
+         ELSE
+            TB(JB) = 2.*GAUSS (DENSA,0.,BMAX)
+         ENDIF
+      ENDDO
+      RETURN
+      END
+
+      FUNCTION OMEGAP (B, SIG, SLOPE, RHO)
+      COMMON /CA0SH/ A0, A02
+      DATA PI /3.1415926/
+      ETA2 = 0.25*(A02 + SLOPE)
+      F02 = SIG*SIG*(1.+RHO*RHO)/(16.*PI**2)
+      ARG = -B*B/(4.*ETA2)
+      OMEGAP=F02/(4.*ETA2*SLOPE)*(1.-A02/(6.*ETA2)*(1.+ARG))*EXP(ARG)
+      RETURN
+      END
+
+      FUNCTION OMEGAS (B, SIG, SLOPE, RHO)
+      COMMON /CA0SH/ A0, A02
+      DATA PI /3.1415926/
+      ETA2 = 0.25*(A02 + SLOPE)
+      F02 = SIG*SIG*(1.+RHO*RHO)/(16.*PI**2)
+      ARG = -B*B/(4.*ETA2)
+      OMEGAS = F02/(4.*ETA2*SLOPE) *EXP(ARG)
+      RETURN
+      END
+      BLOCK DATA PARAM_INI
+C....This block data contains default values
+C.   of the parameters used in fragmentation
+C................................................
+      COMMON /S_CZDIS/ FA, FB0
+      COMMON /S_CZDISs/ FAs1, fAs2
+      COMMON /S_CZLEAD/ CLEAD, FLEAD
+      COMMON /S_CPSPL/ CCHIK(3,7:14)
+      COMMON /S_CQDIS/ PPT0 (33),ptflag
+      COMMON /S_CDIF0/ FFD, FBD, FDD
+      COMMON /S_CFLAFR/ PAR(8)
+      COMMON/S_cutof/stringmas0
+      data stringmas0/.35/
+C...Diffraction
+c not used in this version.DATA FFD /0.09/, FBD /0.09/, FDD /0.04/
+c      see function fdiffract
+C...Longitudinal Fragmentation function
+      DATA FA /0.5/, FB0 /0.8/
+C...Longitudinal Fragmentation function for leading baryons
+       DATA CLEAD  /0.6/, FLEAD  /0.6/
+c      strange fragmentation
+      data FAs1 /3./, fAs2 /3./
+c      data FAs1 /0./, fAs2 /0./
+C...pT of sea partons
+      DATA PTFLAG /1./
+      DATA PPT0 /0.30,0.30,0.450,30*0.60/
+C...Splitting parameters
+c      DATA CCHIK /18*2.,1.5,2.5,2.5,1.5,2.5,2.5/
+      DATA CCHIK /18*2.,6*3./
+C...Parameters of flavor formation
+      DATA PAR /0.04,0.25,0.25,0.14,0.3,0.3,0.15,0./
+      END
+      SUBROUTINE PARAM_PRINT(LUN)
+      COMMON /S_CZDIS/ FA, FB0
+      COMMON /S_CZLEAD/ CLEAD, FLEAD
+      COMMON /S_CPSPL/ CCHIK(3,7:14)
+      COMMON /S_RUN/ SQS, S, Q2MIN, XMIN, ZMIN , kb ,kt
+      COMMON /S_CQDIS/ PPT0 (33),ptflag
+      COMMON /S_CDIF0/ FFD, FBD, FDD
+      COMMON /S_CFLAFR/ PAR(8)
+
+      WRITE (LUN, 25)
+25      FORMAT( //,1x,40('-'), /
+     +   ' SIBYLL MONTECARLO PROGRAM. Version 1.00',/,1x,40('-'),/
+     +   ' List of parameters: ' )
+
+      WRITE (LUN, 27) FFD, FBD, FDD
+27      FORMAT(' Fraction of beam/target/double  diffraction = ',
+     +         3F8.3)
+
+      WRITE (LUN, 28) Q2MIN
+28      FORMAT (' Q2min = ', F10.2, ' GeV**2 ')
+      WRITE (LUN, 31) FA, FB0
+31      FORMAT (' Parameters of longitudinal fragmentation: ', /,
+     +          '  f(z) = (1-z)**a * exp(-b * mt**2/z) ', /,
+     +          '  a = ', f9.3, 3x, ' b = ', f9.3, ' GeV**-2' )
+      WRITE (LUN, 32) CLEAD, 1./FLEAD-1.
+32      FORMAT (' Parameters of leading fragmentation: ', /,
+     +   '  f(z) = c + (1-z)**a ', /,
+     +   '  c = ',f9.3,3x,' a = ',f9.3)
+
+      WRITE (LUN, 35) PPT0(1), PPT0(3), PPT0(11),ppt0(10)
+35      FORMAT (' <pT> of sea partons ', /,
+     +   2x,'<pT>(u/d) ',F8.3,2x,'<pT>(s) ',f8.3,2x,'<pT>(qq) ',f8.3,
+     +     2x,'<pT>(val) ',f8.3)
+
+      WRITE (LUN, 120) PAR
+120      FORMAT (1x, 'Parameters of flavor formation: ',/,
+     +   3x,'PAR(1) = Prob(qq)/Prob(q) =              ',F10.2,/,
+     +   3x,'PAR(2) = Prob(s)/Prob(u)  =              ',F10.2,/,
+     +   3x,'PAR(3) = Prob(us)/Prob(ud) =             ',F10.2,/,
+     +   3x,'PAR(4) = Prob(ud_0)/Prob(ud_1) =         ',F10.2,/,
+     +   3x,'PAR(5) = Prob(Vector)/Prob(Scalar) =     ',F10.2,/,
+     +   3x,'PAR(6) = Prob(K*)/Prob(K) =              ',F10.2,/,
+     +   3x,'PAR(7) = Prob(spin 3/2)/Prob(spin=1/2) = ',F10.2,/,
+     +   3x,'PAR(8) = Prob(B-M-Bbar)/Prob(B-Bbar) =   ',F10.2)
+
+      WRITE (LUN, 40)
+      WRITE (LUN, 41) CCHIK (1,13), CCHIK(2,13)
+40      FORMAT(' Parameters of hadron splitting ' )
+41      FORMAT('   p -> [(ud) u] splitting: alpha = ', F10.3, /,
+     +         '   p -> [(uu) d] splitting: alpha = ', F10.3 )
+
+      RETURN
+      END
+      FUNCTION PARTON(X,L)
+C...This function returns the structure function
+C.   f(x) = x * [ g(x) + 4/9 *(q(x) + qbar(x)) ]
+C.  for a proton. In COMMON /S_CSTR/ JSTR controls
+C.  the choice of structure function
+C................................................
+      COMMON /S_CSTR/ JSTR, JSTRPI
+C O. Palamara 27/8/1993
+c      parameter beta=1.925978
+      parameter (beta=1.925978)
+      IF (L .EQ. 2)  GOTO 1000
+
+C...Eichten et al.  (set 1)
+100      uv = 1.78 * x**0.5 * (1.-x**1.51)**3.5
+      dv = 0.67 * x**0.4 * (1.-x**1.51)**4.5
+      us = 0.182 * (1.-x)**8.54
+      ss = 0.081 * (1.-x)**8.54
+      qq0 = uv + dv + 4.*us + 2.*ss
+      glu0 = (2.62 + 9.17*x)* (1.-x)**5.90
+      parton = glu0 + 4./9.*qq0
+      return
+
+
+1000      continue   ! goto (1100,1200),  jstrpi
+
+C...Owens set 1   from STRF from Wisc. Pheno. group. for q2=q2_min
+      AV=.4
+      BV=.7
+c      BETA=GGAMMA(AV)*GGAMMA(BV+1.)/GGAMMA(AV+BV+1.)  =1.925978
+      uv=X**(AV)*(1.-X)**BV/BETA
+      dv=uv
+c
+      A=.9
+      BET=5.
+      us=(A*(1.-X)**BET)/6.
+c
+      A=.888
+      BET=3.11
+      GA1=6.0
+      glu0=A*(1.-X)**BET*(1.+GA1*X)
+c   Bug Fix thanks to Sue Kashahara- correct factor in front of
+c   sea quarks for Owens S.F.  5-94
+      qq0 = uv + dv + 6.*us
+      parton = (glu0 + 4./9.*qq0)
+      return
+      end
+
+      FUNCTION PART_INT (ZMIN,L)
+C...This function returns as output the integral of
+C.  the parton structure function:
+C.     f(x) = g(x) + 4/9 *(q(x) + qbar(x))
+C.  from xmin = exp(zmin) to 1
+C.  for a proton (L=1) or a pi (L=2)
+C.  needs to be initialised with: CALL ZSAMPLE_INI
+C.....................................................
+      COMMON /S_CZGEN/ XA,XB,XMAX,ZA,ZB,ZMAX,DX,DZ,NX,NZ,APART(2),
+     +   FFA(2),FFB(2),
+     +   DFX(2),DFZ(2),XX(200,2),ZZ(200,2),FFX(200,2),FFZ(200,2)
+
+C D.H.IF (ZMIN .LT. ZA)  THEN
+      IF (ZMIN .LE. ZA)  THEN
+         PART_INT = FFA(L) + APART(L)*(ZA-ZMIN)
+C D.H.ELSE IF (ZMIN .LT. ZB) THEN
+      ELSE IF (ZMIN .LE. ZB) THEN
+         JZ = (ZB-ZMIN)/DZ+1
+         Z0 = ZB-DZ*FLOAT(JZ-1)
+         T = (Z0-ZMIN)/DZ
+         PART_INT = FFZ(JZ,L)*(1.-T) + FFZ(JZ+1,L)*T
+      ELSE
+         X = EXP(ZMIN)
+         JX = (XMAX-X)/DX+1
+         X0 = XMAX-DX*FLOAT(JX-1)
+         T = (X0-X)/DX
+         PART_INT = FFX(JX,L)*(1.-T) + FFX(JX+1,L)*T
+      ENDIF
+      RETURN
+      END
+      SUBROUTINE PJET_PRINT (L,SQS, LUN)
+C...Write the jet probability:
+C.  L = particle code, SQS = sqrt(s), LUN = unit of output
+C..................................................................
+      COMMON /S_CCSIG/ NSQS, ASQSMIN, ASQSMAX, DASQS,
+     +    SSIG(51,2), PJETC(0:20,51,2),SSIGN(51,2), ALINT(51,2)
+      DIMENSION LL(7:14)
+      DATA LL /6*2,2*1/
+      AL = LOG10 (SQS)
+      IF (AL .LT. ASQSMIN .OR. AL .GT. ASQSMAX)  RETURN
+
+      K = LL(IABS(L))
+      J1 = (AL - ASQSMIN)/DASQS + 1
+      J2 = J1+1
+      T = (AL-ASQSMIN)/DASQS - FLOAT(J1-1)
+      R = 0.999*RNDM(0)
+      J = 0
+      P = (1.-T)*PJETC(0,J1,K)+T*PJETC(0,J2,K)
+      WRITE (LUN, 20)
+      WRITE (LUN, 25) J, P
+      AMED = 0.
+      ASUM = P
+      DO J=0,19
+         PA = (1.-T)*PJETC(J,J1,K)+T*PJETC(J,J2,K)
+         PB = (1.-T)*PJETC(J+1,J1,K)+T*PJETC(J+1,J2,K)
+         P = PB-PA
+         IF (P .GT. 1.E-04)  WRITE (LUN, 25) J+1, P
+         AMED = AMED + FLOAT(J+1)*P
+         ASUM = ASUM + P
+      ENDDO
+      WRITE (LUN, 26) AMED, ASUM
+      RETURN
+20    FORMAT (/,'  Minijet expected frequencies: ')
+25    FORMAT ('    n(jet-pairs)   = ',i3,  F12.4)
+26    FORMAT ('    <n(jet-pairs)> = ',F10.2, '   norm = ', F9.3)
+      END
+      FUNCTION PROFNUC (B, JA)
+C...This function return
+C.  the profile T(b) for a nucleus of mass number A
+C.  INPUT B = impact parameter (GeV**-1)
+C.        JA = integer mass number
+C.  OUTPUT  (fm**-2)
+C.
+C.  The  density of the nucleus is the `shell model density'
+C.  the parameter r0 must beinitialized in the common block
+C.............................................................
+      COMMON /CSHELL/ RR0(18), RR02(18)
+      DATA PI /3.1415926/
+      B2 = B*B
+      ARG = B2/RR02(JA)
+      TS = EXP(-ARG)
+      TP = TS*(2.*B2+RR02(JA))/(3.*RR02(JA))
+      CS = MIN(1.,4./FLOAT(JA))
+      PROFNUC = (CS*TS + (1.-CS)*TP)/(PI*RR02(JA))
+      RETURN
+      END
+
+      SUBROUTINE PTDIS (IFL,PX,PY)
+C...Generate pT
+      COMMON /S_CQDIS/ PPT0(33),ptflag
+      PT = PPT0(IABS(IFL))*SQRT(-ALOG(MAX(1E-10,RNDM(0))))
+      PHI= 6.2831853*RNDM(0)
+      PX=PT*COS(PHI)
+      PY=PT*SIN(PHI)
+      RETURN
+      END
+      FUNCTION QMASS(IFL)
+C...Return quark or diquark constituent masses
+      DIMENSION QMAS(3)
+      DATA QMAS /0.325,0.325,0.5/
+      IFLA = IABS(IFL)
+      IF (IFLA .LE. 3)       THEN
+         QMASS = QMAS(IFLA)
+      ELSE
+         QMA = QMAS(IFLA/10)
+         QMB = QMAS(MOD(IFLA,10))
+         QMASS = QMA+QMB
+      ENDIF
+      RETURN
+      END
+       SUBROUTINE QNUM (JQ,JS,JB,JBA, NC, NF)
+C...Return the quantum numbers of one event
+C.  JQ = charge, JB = baryon number, JS = strangeness
+C.  JBA = (number of baryons+antibaryons)
+C.  NC  = number of charged particles
+C.  NF  = number of final particles
+C..................................................
+      COMMON /S_PLIST/ NP, P(5000,5), LLIST(5000)
+      COMMON /S_CHP/ ICHP(49), ISTR(49), IBAR(49)
+      JQ = 0
+      JB = 0
+      JS = 0
+      JBA= 0
+      NC = 0
+      NF = 0
+      DO J=1,NP
+          L = LLIST(J)
+          LL = IABS(L)
+          IF (LL .LT. 10000)  THEN
+              IF(ICHP(LL) .NE. 0) NC = NC + 1
+              NF = NF + 1
+              JQ = JQ + ICHP(LL)*ISIGN(1,L)
+              JB = JB + IBAR(LL)*ISIGN(1,L)
+              JBA= JBA+ IBAR(LL)
+              JS = JS + ISTR(LL)*ISIGN(1,L)
+          ENDIF
+      ENDDO
+      RETURN
+      END
+      FUNCTION QUAD_INT (R,X0,X1,X2,V0,V1,V2)
+c  quadratic interpolation?
+      R0=R-X0
+      R1=R-X1
+      R2=R-X2
+      S0=X0-X1
+      S1=X0-X2
+      S2=X1-X2
+      QUAD_INT = V0*R1*R2/(S0*S1)-V1*R0*R2/(S0*S2)+V2*R0*R1/(S1*S2)
+      RETURN
+      END
+
+      function rdis(idummy)
+      dimension probr(20)
+      data probr/
+     *      0.10000, 0.15748, 0.21778, 0.28605, 0.36060,
+     *      0.43815, 0.51892, 0.60631, 0.70002, 0.79325,
+     *      0.88863, 0.98686, 1.10129, 1.21202, 1.32932,
+     *      1.44890, 1.57048, 1.70139, 1.83417, 2.00000/
+      nr = 20.*RNDM(0) + 1
+      if (nr .eq. 1) then
+      f1 = 0.
+      else
+      f1 = probr(nr-1)
+      endif
+      dr = probr(nr) - f1
+      rdis = f1 + dr*RNDM(0)
+      return
+      end
+      SUBROUTINE SAMPLE (L, X1,X2,PT)
+C...Routine for the sampling the kinematical variables
+C.  that determine a  jet-jet  system (x1,x2, pT)
+C.  from the differential cross section:
+C.     d3sigma/(dx1 dx2 dpT)
+C.  This version assumes the `single parton approximation'
+C.  INPUT:  L=1 incident proton, L=2  incident pi
+C.  OUTPUT:  X1, X2, PT (GeV)
+C.................................................................
+      COMMON /S_RUN/ SQS, S, Q2MIN, XMIN, ZMIN , kb ,kt
+100   Z1=ZSAMPLE (ZMIN,L)
+      Z2=ZSAMPLE (ZMIN,1)
+      SIG=1.-XMIN*EXP(-Z1-Z2)
+      IF (SIG .LT. RNDM(0))  GOTO 100
+      X1=EXP(Z1)
+      X2=EXP(Z2)
+      Q2=Q2MIN/(1.-RNDM(0)*SIG)
+      PT=SQRT(Q2*(1.-Q2/(S*X1*X2)))
+      RETURN
+      END
+      FUNCTION SHELL (R,JA)
+C...Density in the shell model
+      COMMON /CSHELL/ RR0(18), RR02(18)
+      DATA PI /3.1415926/
+      R0 = RR0(JA)
+      C1 = MIN(1.,4./FLOAT(JA))
+      CS = 1./(R0**3*PI**(1.5))
+      CP = 2.*CS/3.
+      FS = EXP(-(R/R0)**2)
+      FP = (R/R0)**2 * FS
+      SHELL = C1*CS*FS + (1.-C1)*CP*FP
+      RETURN
+      END
+
+      SUBROUTINE SHELL_INI
+C...Initialize the parameter  of the shell model
+C.  for the nuclei with    6 < A < 18
+C..............................................
+      COMMON /CSHELL/ RR0(18), RR02(18)
+      DIMENSION RR(18)
+C...Data on Sqrt[<r**2>]  in fermi
+      DATA RR /0.81,2.095,1.88,1.674, -1.,2.56,2.41,-1.,2.519,2.45
+     +          ,2.37, 2.460, 2.440, 2.54, 2.58, 2.718, 2.662,2.789 /
+      DO JA=1,18
+         A = FLOAT(JA)
+         RMED = RR(JA)
+         IF (RMED .LE. 0.)   RMED = 0.5*(RR(JA-1) + RR(JA+1))
+         C = MAX(1.5,(5./2. - 4./A) )
+         R0 = RMED/SQRT(C)
+         RR0 (JA) = R0
+         RR02(JA) = R0*R0
+      ENDDO
+      RETURN
+      END
+      SUBROUTINE SIBLIST(LUN)
+C...This routine prints the event record for the
+C.  current event on unit LUN
+C.................................................
+      COMMON /S_PLIST/ NP, P(5000,5), LLIST(5000)
+      COMMON /S_PLIST1/ LLIST1(5000)
+      COMMON /S_RUN/ SQS, S, Q2MIN, XMIN, ZMIN , kb ,kt
+      COMMON /S_CHIST/ NW,NJET,NNJET(15),XX1JET(100)
+     +   ,XX2JET(100),PPTJET(100),PHIJET(100),NNPJET(100),NNPSTR(30)
+     +   , JDIF, EMXB, EMXT
+      COMMON /S_CCSTR/ X1(30),X2(30),IFLB(30),IFLT(30),PXB(30),
+     +    PYB(30),PXT(30),PYT(30)
+      COMMON /S_CNAM/ NAMP (0:49)
+      CHARACTER*6 NAMP
+      CHARACTER CODE*18, COD1*5, COD2*5
+      CHARACTER*18 NAMDIF(3)
+      DATA NAMDIF /'Beam diffraction  ','Target diffraction',
+     +               'Double diffraction'/
+*     WRITE (LUN,*)
+      WRITE (LUN,*) ' Event record '
+      WRITE (LUN,100)
+      IF(JDIF .GT. 0)  THEN
+         WRITE (LUN,*) '  ',NAMDIF(JDIF)
+         GOTO 10
+      ENDIF
+      NA = -(NJET+2*NW+1)
+      N  = 0
+      DO J=1,NJET
+         NA = NA+1
+         DO K=1,NNPJET(J)
+            N=N+1
+            LLIST1(N) = NA
+         ENDDO
+      ENDDO
+      DO J=1,2*NW
+         NA = NA+1
+         DO K=1,NNPSTR(J)
+            N=N+1
+            LLIST1(N) = NA
+         ENDDO
+      ENDDO
+C...Jet-Jet strings
+      K = 0
+      JA = -(NJET+2*NW+1)
+      DO J=1,NJET
+         JA = JA+1
+         CODE = 'Jet-Jet           '
+         PX = PPTJET(J)
+         PY = 0.
+         PZ = SQS*(XX1JET(J)-XX2JET(J))
+         EE = SQS*(XX1JET(J)+XX2JET(J))
+         WRITE (LUN,120) JA, CODE, K, PX,PY,PZ,EE
+      ENDDO
+C...Beam strings
+      DO J=1,2*NW
+         JA = JA+1
+         CALL KCODE(IFLT(J),COD1,NC1)
+         CALL KCODE(IFLB(J),COD2,NC2)
+         CODE(1:7)  = 'String '
+         CODE(7+1:18) = '              '
+         CODE(7+1:7+6)=COD1
+         CODE(NC1+1+7:NC1+1+7) = '-'
+         CODE(NC1+2+7:NC1+6+7) = COD2
+         PX = PXB(J)+PXT(J)
+         PY = PYB(J)+PYT(J)
+         PZ = SQS*(X1(J)-X2(J))
+         EE = SQS*(X1(J)+X2(J))
+         WRITE (LUN,120) JA, CODE, K, PX,PY,PZ,EE
+      ENDDO
+C...Print particle list
+10      DO J=1,NP
+          L = MOD(LLIST(J),10000)
+          CODE = '                  '
+          CODE(1:6) = NAMP(IABS(L))
+          IF (L .LT. 0) CODE(7:9) = 'bar'
+          IF(IABS(LLIST(J)) .GT. 10000)   CODE(10:10) = '*'
+          WRITE (LUN,120) J, CODE, LLIST1(J), (P(J,K),K=1,4)
+      ENDDO
+      CALL ESUM(1,NP,EE,PX,PY,PZ,NF)
+      WRITE(LUN,140) PX,PY,PZ,EE
+100      FORMAT(3X,'N  Particle',12X,'Ori',6x,'PX',9x,'PY',9x,'PZ'
+     +         ,9x,'E', /, 3X,70('-'))
+120      FORMAT(1X,I4,1X,A18,1X,I4,2X,2(F9.3,2X),2(E9.3,2X))
+140      FORMAT(1X,'Tot = ',24X,2(F9.3,2X),G9.3,2X,E9.3)
+      RETURN
+      END
+      SUBROUTINE  SIBNUC (IAB, IAT, SQS)
+C...Routine that generates the interaction of a nucleus of
+C.  mass number IAB with a  target nucleus  of mass IAT
+C.  (IAT=0 : air).
+C.  SQS (GeV) is the  center of mass energy of each
+C.  nucleon - nucleon cross section
+C---------------------------------------------------------------
+      COMMON /S_PLIST/ NP, P(5000,5), LLIST(5000)
+      COMMON /S_PLNUC/ NPA, PA(5000,5), LLA(5000)
+      COMMON /S_MASS1/ AM(49), AM2(49)
+      COMMON /CKFRAG/ KODFRAG
+      PARAMETER (IAMAX=56)
+      COMMON /CNUCMS/ B, BMAX, NTRY, NA, NB, NI, NAEL, NBEL
+     +         ,JJA(IAMAX), JJB(IAMAX), JJINT(IAMAX,IAMAX)
+     +         ,JJAEL(IAMAX), JJBEL(IAMAX)            
+      COMMON /FRAGMENTS/ PPP(3,60)
+      DIMENSION  IAF(60)
+      DATA RPOX /0.3624/
+
+C...Target mass
+      IF (IAT .EQ. 0) THEN
+         IATARGET = 14 + 2*INT((1.+RPOX)*RNDM(0))
+      ELSE
+          IATARGET = IAT
+      ENDIF
+       
+C...Single nucleon (proton) case
+      IF (IAB .EQ. 1)  THEN
+         NPA = 0
+         CALL SIBYLL (13,IATARGET, SQS)
+         CALL DECSIB
+         DO J=1,NP
+            LA = IABS(LLIST(J))
+            IF (LA .LT. 10000)  THEN
+               NPA = NPA + 1
+               LLA(NPA) = LLIST(J)
+               DO K=1,5
+                  PA(NPA,K) = P(J,K)                                                                               (J,K)
+               ENDDO
+            ENDIF
+         ENDDO
+         RETURN
+      ENDIF
+
+
+C...Nuclei
+      E0 = (SQS*SQS-2.*AM2(13))/(2.*AM(13))
+      E0 = E0*1.E-03         ! TeV
+      CALL SIGMA_PP (E0, SIGT, SIGEL, SIG0, SLOPE, RHO)
+      CALL INT_NUC (IATARGET, IAB, SIG0, SIGEL) 
+C...fragment the spectator nucleons
+      NBT = NB + NBEL
+      IF (KODFRAG .EQ. 1)  THEN
+          CALL FRAGM1(IAB,NBT, NF, IAF)
+      ELSE IF(KODFRAG .EQ. 2)  THEN
+          CALL FRAGM2(IAB,NBT, NF, IAF)
+      ELSE 
+          CALL FRAGM (IATARGET, IAB, NBT,B, NF, IAF)
+      ENDIF
+     
+C...Spectator fragments
+      NPA = 0
+      DO J=1,NF
+         NPA = NPA+1
+         LLA(NPA) = 1000+IAF(J)
+         PA(NPA,1) = 0.
+         PA(NPA,2) = 0.
+         PA(NPA,3) = SQS/2.
+         PA(NPA,4) = SQS/2.
+         PA(NPA,5) = FLOAT(IAF(J))*0.5*(AM(13)+AM(14))
+      ENDDO
+C...Elastically scattered   fragments
+      DO J=1,NBEL
+         NPA = NPA+1
+         LLA(NPA) = 1001
+         PA(NPA,1) = 0.
+         PA(NPA,2) = 0.
+         PA(NPA,3) = SQS/2.
+         PA(NPA,4) = SQS/2.
+         PA(NPA,5) = 0.5*(AM(13)+AM(14))
+      ENDDO
+C...Superimpose NB  nucleon interactions
+      DO JJ=1,NB
+          CALL SIBYLL (13,IATARGET, SQS)
+          CALL DECSIB
+          DO J=1,NP
+             LA = IABS(LLIST(J))
+             IF (LA .LT. 10000)   THEN
+                NPA = NPA + 1
+                LLA(NPA) = LLIST(J)
+                DO K=1,5
+                    PA(NPA,K) = P(J,K)
+                ENDDO
+            ENDIF
+         ENDDO
+      ENDDO
+      RETURN
+      END
+      SUBROUTINE SIBYLL (KB, IATARG, SQS)
+C...Main routine for the production of hadronic events,
+C.  Generates an inelastic hadronic interaction of
+C.  a `projectile particle' of code KB with a
+C.  target nucleus of mass number A = IATARG (integer)
+C.  IATARG = 0 is an "air" nucleus  (superposition of oxygen and nitrogen)
+C.  with c.m. energy for the hadron-nucleon system SQS (GeV)
+C.
+C.  Allowed values of KB: 7,8,9,10,11,12,13,14,-13,-14
+C.                        pi+-,K+-,KL,KS,p,n,pbar,nbar
+C.
+C.  The output is contained in COMMON /S_PLIST/ that contains:
+C.
+C.     NP           number of final particles
+C.     P(1:NP, 1:5) 4-momenta + masses of the final particles
+C.     LLIST (1:NP) codes of final particles.
+C.  the reaction is studied in the c.m. of  hadron-nucleon system
+C.
+C.  The COMMON block /S_CHIST/ contains information about the
+C.  the structure of the  generated event:
+C.    NW   = number of wounded nucleons
+C.    NJET = number of jet pairs
+C.    NNJET (1:NW) = number of minijets produced in each interaction
+C.    XX1JET (1:NJET) = x1  for each jet-pair
+C.    XX2JET (1:NJET) = x2   "   "     "
+C.    PPTJET (1:NJET) = pT   "   "     "
+C.    NNPJET (1:NJET) = total number of particles in each jet pair
+C.    NNPSTR (1:2*NW) = number of particles in each `beam string'
+C.    JDIF  = diffraction code
+C----------------------------------------------------------------------
+      COMMON /S_PLIST/ NP, P(5000,5), LLIST(5000)
+      COMMON /S_RUN/ SQSA, S, Q2MIN, XMIN, ZMIN , kbc ,kt
+      COMMON /S_CHIST/ NW,NJET,NNJET(15),XX1JET(100),XX2JET(100)
+     +   ,PPTJET(100),PHIJET(100),NNPJET(100),NNPSTR(30)
+     +   ,JDIF, EMXB, EMXT
+      COMMON /S_CLDIF/ LDIFF
+      COMMON /S_CCSTR/ X1(30),X2(30),IFLB(30),IFLT(30),PXB(30),
+     +    PYB(30),PXT(30),PYT(30)
+      COMMON /S_CQDIS/ PPT0 (33),ptflag
+      DIMENSION QMAS(33),X2JET(30),LL(7:14),BET(30),GAM(30),EE(30)
+      DATA QMAS
+     .  /2*0.35,0.6,7*0.,2*1.1,1.25,7*0.,1.25,1.1,1.25,7*0,2*1.25,1.5/
+      DATA LL /6*2,2*1/
+      DATA  FOX /0.257/
+      COMMON/S_cutof/stringmas0
+
+      kbc=kb
+      SQSA = SQS
+      S = SQS*SQS
+      XMIN = 2.*Q2MIN/S
+      ZMIN = LOG(XMIN)
+
+C...`soft increase of pT'
+C Setting ptflag = 0 will result in
+C underestimating the P_t at high energies.
+      if (ptflag.gt.0.0) then
+            ptu=.3+.08*log10(sqs/30.)
+            pts=.45+.08*log10(sqs/30.)
+            ptqq=.6+.08*log10(sqs/30.)
+            PPT0 (1) = PTU
+            PPT0 (2) = PTU
+            PPT0 (3) = PTS
+            PPT0 (10) = PTQQ
+            DO J=11,33
+                PPT0(J) = PTQQ
+            ENDDO
+      endif
+
+      NP = 0
+      NJET = 0
+      IATARGET = IATARG
+C
+C      Generate an 'air' interaction by choosing Nitrogen or Oxygen
+C
+      IF (IATARGET .EQ. 0) THEN
+          R = RNDM(0)
+          IATARGET = 14
+          IF (R .LT. FOX)  IATARGET = 16
+      ENDIF
+      IATARG = IATARGET
+      L = LL(IABS(KB))
+C
+C     Generate number ow wounded nucleons, and diffraction code.
+C
+1000  CALL SIB_START_EV (SQS,L,IATARGET, NW,JDIF)
+      IF (LDIFF .NE. 0)  THEN
+         IF((LDIFF.EQ.-1) .AND. (JDIF.NE.0) ) GOTO 1000
+         IF((LDIFF.EQ. 1) .AND. ((JDIF.NE.0).AND.(JDIF.NE.3)))
+     +     GOTO 1000
+         IF((LDIFF.EQ. 5) .AND. (JDIF.EQ.2)) GOTO 1000
+         IF((LDIFF.GE. 2) .AND. (LDIFF.LE.4)) THEN
+             NW = 1
+             JDIF = LDIFF-1
+         ENDIF
+      ENDIF
+C...Diffractive interactions
+      IF (JDIF .NE. 0)  THEN
+        CALL DIFF_GEN (KB, JDIF)
+        RETURN
+      ENDIF
+
+C...Non-diffractive interactions
+2000  L = LL(IABS(KB))
+C...Production of minijets
+3000  NP = 0
+      NJET = 0
+      X1JET = 0.
+      DO JW=1,NW
+         NNJET (JW) = NJETR (L,SQS)
+         X2JET(JW) = 0.
+         DO JJ=1,NNJET(JW)
+           NJET=NJET+1
+           NOLD=NP
+           CALL SAMPLE (L,X1J,X2J,PTJET)
+           CALL JET_FRAG (X1J,X2J,PTJET)
+           X1JET = X1JET + X1J
+           X2JET(JW) = X2JET(JW)+X2J
+         ENDDO
+         IF (X2JET (JW) .GT. 0.7)   GOTO 3000
+      ENDDO
+      IF (X1JET .GT. 0.7)           GOTO 3000
+C
+C ...Prepare 2*NW color strings.
+C
+      CALL BEAM_SPLIT (KB, NW, X1, IFLB, X1JET, LXBAD,stringmas0)
+C     IF (LXBAD .EQ. 1)  GOTO 2000 Bug fix 2-4-94 PL/RSF
+      IF (LXBAD .EQ. 1)  GOTO 1000
+      DO J=1,NW
+         J1=2*(J-1)+1
+         J2=J1+1
+         KT=13
+         IF (IATARGET .GT. 1)  KT = 13+INT(2.*RNDM(0))
+         CALL HSPLI (KT,IFLT(J2),IFLT(J1))
+         XMINA = 2.*stringmas0/(SQS*(1.-X2JET(J)))
+C        XMINA = 2.*0.20/(SQS*(1.-X2JET(J)))  ! change RSF. 5-92
+         CHI=CHIDIS (KT,IFLT(J2),IFLT(J1))
+         XVAL=1.-X2JET(J)
+         IF (XVAL.LT.XMINA) GOTO 3000
+         X2(J2) = MAX(CHI*XVAL,XMINA)
+         X2(J2) = MIN(X2(J2),XVAL-XMINA)
+         X2(J1) = XVAL-X2(J2)
+      ENDDO
+C...Generates primordial pT for the partons
+      DO J=1,NW
+         J1 = 2*(J-1)+1
+         J2 = J1+1
+         CALL PTDIS (10,PXT(J1),PYT(J1))
+         if (j.eq.1) then
+            CALL PTDIS (10,PXB(J2),PYB(J2))
+         else
+            CALL PTDIS (IFLB(J2),PXB(J2),PYB(J2))
+         endif
+         PXB(J1) = -PXB(J2)
+         PYB(J1) = -PYB(J2)
+         PXT(J2) = -PXT(J1)
+         PYT(J2) = -PYT(J1)
+      ENDDO
+C...Check consistency of kinematics
+      DO J=1,2*NW
+         EE(J) = SQS*SQRT(X1(J)*X2(J))
+         XM1 = SQRT(PXB(J)**2+PYB(J)**2+QMAS(IABS(IFLB(J)))**2)
+         XM2 = SQRT(PXT(J)**2+PYT(J)**2+QMAS(IABS(IFLT(J)))**2)
+         IF (EE(J) .LT. XM1+XM2+0.3)  GOTO 2000
+      ENDDO
+C...Fragment the 2*NW color strings
+      DO J=1,2*NW
+         EE (J) = SQS*SQRT(X1(J)*X2(J))
+         BET(J) = (X1(J)-X2(J))/(X1(J)+X2(J))
+         GAM(J) = (X1(J)+X2(J))/(2.*SQRT(X1(J)*X2(J)))
+         NOLD=NP
+         CALL STRING_FRAG
+     +     (EE(J),IFLB(J),IFLT(J),PXB(J),PYB(J),PXT(J),PYT(J),IFBAD)
+         IF (IFBAD .EQ. 1)   GOTO 2000
+         DO K=NOLD+1,NP
+           PZ = P(K,3)
+           P(K,3) = GAM(J)*(PZ+BET(J)*P(K,4))
+           P(K,4) = GAM(J)*(P(K,4)+BET(J)*PZ)
+         ENDDO
+         NNPSTR(J) = NP-NOLD
+      ENDDO
+
+C...Check energy conservation
+      CALL ESUM(1,NP,ETOT,PXT,PYT,PZT,NF)
+      IF (ABS(ETOT/(0.5*SQS*FLOAT(NW+1)) - 1.) .GT. 1.E-03)  THEN
+         WRITE(*,*) ' Energy non conserved. L, SQS : ',L,SQS
+         WRITE(*,*) ' sqs = ', SQS, ' E_f = ', ETOT
+         WRITE(*,*) ' diff/N_w/N_j = ', JDIF, NW, NJET
+      ENDIF
+      RETURN
+      END
+
+      SUBROUTINE SIBYLL_INI
+C   Initialization routine for the   the routine
+C.  SYBILL   for simulation of hadronic interactions
+C.
+C.  the routine fills the COMMON block /CCSIG/ that contains
+C.  important information for the generation of events
+C.
+C*      COMMON /S_CCSIG/ NSQS, ASQSMIN, ASQSMAX, DASQS,
+C*     +    SSIG(51,2), PJETC(0:20,51,2),SSIGN(51,2), ALINT(51,2)
+C.
+C.  NSQS = number of energy points  (51 is current version)
+C.  ASQSMIN = log_10 [sqrt(s) GeV]   minimum value
+C.  ASQSMIN = log_10 [sqrt(s) GeV]   maximum value
+C.  DASQS   = step  in log_10[sqrt(s)]
+C.            DASQS = (ASQSMAX - ASQSMIN)/(NSQS-1)
+C.
+C.  SSIG(J,1) inelastic cross section for pp interaction
+C.            at energy: sqrt(s)(GeV) = 10**[ASQSMIN+DASQS*(J-1)]
+C.  SSIG(J,2)  inelastic cross section for pi-p interaction
+C.  SSIGN(J,1) inelastic cross section for p-Air interaction
+C.  SSIGN(J,2) inelastic cross section for pi-Air interaction
+C.
+C.  PJETC(n_j,J,1) Cumulative  probability distribution
+C.                 for the production of n_j (n_j=0:20) jet pairs
+C.                 at sqrt(s) labeled by J, for p-p interaction
+C.  PJETC(n_j,J,2) Same as above for pi-p interaction
+C.  ALINT(J,1)   proton-air  interaction length (g cm-2)
+C.  ALINT(J,2)   pi-air  interaction length (g cm-2)
+C------------------------------------------------------------------
+      WRITE(*,*) ' Initialization of the SIBYLL event  generator '
+      WRITE(*,100)
+ 100  FORMAT(' ','====================================================',
+     *     /,' ','|                                                  |',
+     *     /,' ','|                 S I B Y L L  1.6                 |',
+     *     /,' ','|                                                  |',
+     *     /,' ','|         HADRONIC INTERACTION MONTE CARLO         |',
+     *     /,' ','|                        BY                        |',
+     *     /,' ','|           R.S. FLETCHER, T.K. GAISSER            |',
+     *     /,' ','|               P. LIPARI, T. STANEV               |',
+     *     /,' ','|                                                  |',
+     *     /,' ','| LAST MODIFICATIONS: Apr  15, 1997     by D. Heck |',
+     *     /,' ','====================================================',
+     *     /)
+      CALL JET_INI
+      CALL ZSAMPLE_INI
+      CALL BLOCK_INI
+      CALL NUC_GEOM_INI
+      CALL SIG_AIR_INI
+      RETURN
+      END
+      SUBROUTINE sib_SIGMA_HAIR (SQS,L0,SIGINEL)
+C
+C      Sibyll P-air cross section
+C
+C...pi,p air  cross sections
+C. INPUT: SQS = c.m.s. energy (GeV)
+C.
+C. OUTPUT:
+C.         SIGINEL = inelastic cross section
+C---------------------------------------------------------------------------
+      COMMON /S_CCSIG/ NSQS, ASQSMIN, ASQSMAX, DASQS,
+     +    SSIG(51,2), PJETC(0:20,51,2),SSIGN(51,2), ALINT(51,2)
+      AL = LOG10(SQS)
+      J1 = (AL - 1.)*10. + 1
+C D.H.
+      J1 = MAX(J1,1)
+      J1 = MIN(J1,50)
+
+      T = (AL-1.)*10. - FLOAT(J1-1)
+      SIGINEL = SSIGN(J1,L0)*(1.-T) + SSIGN(J1+1,L0)*T
+      RETURN
+      END
+      SUBROUTINE sib_SIGMA_PIP (SQS, SIGT, SIGEL, SIGINEL, SLOPE, RHO)
+C...pip cross sections
+C. INPUT: SQS = c.m.s. energy (GeV)
+C.
+C. OUTPUT: SIGT = total cross section
+C.         SIGEL = elastic cross section
+C.         SIGINEL = inelastic cross section
+C.         SLOPE = slope of elastic scattering (GeV**-2)
+C.         RHO = Imaginary/Real part of forward elastic scattering amplitude
+C---------------------------------------------------------------------------
+      COMMON /S_CCSIG/ NSQS, ASQSMIN, ASQSMAX, DASQS,
+     +    SSIG(51,2), PJETC(0:20,51,2),SSIGN(51,2), ALINT(51,2)
+      DATA PI /3.1415926/
+      DATA CMBARN /0.389385/
+      AL = LOG10(SQS)
+      J1 = (AL - 1.)*10. + 1
+C D.H.
+      J1 = MAX(J1,1)
+      J1 = MIN(J1,50)
+
+      T = (AL-1.)*10. - FLOAT(J1-1)
+      SIGINEL = SSIG(J1,2)*(1.-T) + SSIG(J1+1,2)*T
+      CALL BLOCK(SQS,SIGT1,SIGT2,SLOP1,SLOP2,RHO1,RHO2,SIGEL1,SIGEL2)
+      R = SIGEL1/SIGT1
+      RHO = RHO1
+      SIGT  = SIGINEL/(1.-R)
+      SIGEL = SIGINEL*R/(1.-R)
+      SLOPE = SIGT**2/(SIGEL * 16.*PI) * (1.+RHO1**2) /CMBARN
+      RETURN
+      END
+      SUBROUTINE sib_SIGMA_PP (SQS, SIGT, SIGEL, SIGINEL, SLOPE, RHO)
+C...pp cross sections
+C. INPUT: SQS = c.m.s. energy (GeV)
+C.
+C. OUTPUT: SIGT = total cross section
+C.         SIGEL = elastic cross section
+C.         SIGINEL = inelastic cross section
+C.         SLOPE = slope of elastic scattering (GeV**-2)
+C.         RHO = Imaginary/Real part of forward elastic scattering amplitude
+C---------------------------------------------------------------------------
+      COMMON /S_CCSIG/ NSQS, ASQSMIN, ASQSMAX, DASQS,
+     +    SSIG(51,2), PJETC(0:20,51,2),SSIGN(51,2), ALINT(51,2)
+      COMMON /S_CCSIG2/ SSIG_TOT(51,2),SSIG_B(51,2)
+      DATA PI /3.1415926/
+      DATA CMBARN /0.389385/
+      common/s_icr/icross_fit
+      ICROSS_FIT = 1
+      AL = LOG10(SQS)
+      J1 = (AL - 1.)*10. + 1
+C D.H.
+      J1 = MAX(J1,1)
+      J1 = MIN(J1,50)
+
+      T = (AL-1.)*10. - FLOAT(J1-1)
+      SIGINEL = SSIG(J1,1)*(1.-T) + SSIG(J1+1,1)*T
+      IF (ICROSS_FIT.EQ.1) THEN
+              CALL BLOCK(SQS,SIGT1,SIGT2,SLOP1,SLOP2,RHO1,RHO2,
+     +               SIGEL1,SIGEL2)
+              R = SIGEL1/SIGT1
+              RHO = RHO1
+              SIGT  = SIGINEL/(1.-R)
+              SIGEL = SIGINEL*R/(1.-R)
+              SLOPE = SIGT**2/(SIGEL * 16.*PI) * (1.+RHO1**2) /CMBARN
+      ELSE
+              SIGT = SSIG_TOT(J1,1)*(1.-T) + SSIG_TOT(J1+1,1)*T
+              SLOPE  =  SSIG_B(J1,1) *(1.-T) + SSIG_B(J1+1,1)  *T
+              RHO=0.0
+              SIGEL=SIGT-SIGINEL
+      ENDIF
+      RETURN
+      END
+      SUBROUTINE SIB_START_EV (SQS,L,IA, NW,JDIF)
+C=======================================================================
+C. Code for the wounded nucleon distribution
+C=======================================================================
+C..Beginning of a SIBYLL  interaction
+C. INPUT : SQS = c.m.s. energy (GeV)
+C.         L = 1:proton, 2:charged pion
+C.         IA = mass of target nucleon
+C.
+C. OUTPUT: NW    = number of wounded nucleons
+C.         JDIF  = diffraction code
+C.                 (0 : non diffractive)
+C.                 (1 : forward diffraction)
+C.                 (2 : backward diffraction)
+C.                 (0 : double  diffraction)
+C. Author : P.Lipari  (may 1993)
+C------------------------------------------------
+      COMMON /S_CNCM0/ B, BMAX, NTRY, NA
+      CALL SIGMA_HP (L, SQS, SIGT, SIGEL, SIGINEL, SLOPE, RHO)
+      IF (IA .GT. 1)  THEN
+         CALL INT_H_NUC (IA, SIGT, SLOPE, RHO)
+      ELSE
+         NA = 1
+      ENDIF
+C...diffraction
+      PF = FDIFFRACT(SQS,L)/SIGINEL
+      PB = BDIFFRACT(SQS,L)/SIGINEL
+      PD = DDIFFRACT(SQS,L)/SIGINEL
+      P0 = 1.-PF-PB-PD
+      P1 = P0 + PF
+      P2 = P1 + PB
+      NW = 0
+      JF = 0
+      JB = 0
+      JD = 0
+      DO K=1, NA
+         R = RNDM(0)
+         IF (R .LT. P0)  THEN
+            NW = NW + 1
+         ELSE IF (R .LT. P1)  THEN
+            JF = 1
+         ELSE IF (R .LT. P2)  THEN
+            JB = 1
+         ELSE
+            JD = 1
+         ENDIF
+      ENDDO
+      JDIF = 0
+      IF (NW .EQ. 0)  THEN
+         NW = 1
+         JDIF = 3
+         IF((JF.EQ.1) .AND. (JB.EQ.0) .AND. (JD.EQ.0)) JDIF=1
+         IF((JF.EQ.0) .AND. (JB.EQ.1) .AND. (JD.EQ.0)) JDIF=2
+      ENDIF
+      RETURN
+      END
+      SUBROUTINE SIGMA_AIR (IB,SIG0,SIGEL,NINT,
+     +                            SIGMA,DSIGMA,SIGQE,DSIGQE)
+C==========================================================================
+C. Cross sections
+C==========================================================================
+C...Compute with a montecarlo method the "production"
+C.  and "quasi-elastic" cross section for
+C.  a nucleus-air  interaction
+C.
+C.  INPUT : IB            = mass of projectile nucleus
+C.          SIG0 (mbarn)  = inelastic pp cross section
+C.          NINT            = number  of interactions to generate
+C.  OUTPUT : SIGMA (mbarn) = "production" cross section
+C.           DSIGMA   "    = error
+C.           SIGQE    "    = "quasi-elastic" cross section
+C.           DSIGQE   "    = error
+C.           additional output is in the common block  /CPROBAB/
+C..........................................................................
+      PARAMETER (IAMAX=56)
+      PARAMETER (IAMAX2=3136)          ! IAMAX*IAMAX
+      COMMON  /CPROBAB/ PROBA(IAMAX), DPROBA(IAMAX),
+     +   PROBB(IAMAX), DPROBB(IAMAX), PROBI(IAMAX2), DPROBI(IAMAX2),
+     +   P1AEL(0:IAMAX),DP1AEL(0:IAMAX),P1BEL(0:IAMAX), DP1BEL(0:IAMAX),
+     +   P2AEL(0:IAMAX),DP2AEL(0:IAMAX),P2BEL(0:IAMAX), DP2BEL(0:IAMAX)
+      COMMON /CNUCMS/ B, BMAX, NTRY, NA, NB, NI, NAEL, NBEL
+     +         ,JJA(IAMAX), JJB(IAMAX), JJINT(IAMAX,IAMAX)
+     +         ,JJAEL(IAMAX), JJBEL(IAMAX)
+      DIMENSION  MMA(0:IAMAX), MMB(0:IAMAX), MMI(0:IAMAX2)
+      DIMENSION  M1AEL(0:IAMAX), M1BEL(0:IAMAX)
+      DIMENSION  M2AEL(0:IAMAX), M2BEL(0:IAMAX)
+      DATA WOX /0.346/
+      DATA PI /3.1415926/
+      R2 = 0.1 * SIG0/PI
+      BMAX = 15.                             ! fm
+      SIGMA0 = PI*BMAX*BMAX*10.              ! mbarn
+      IA = 16
+      DO J=1,IA
+         MMA(J) = 0
+         M1AEL(J) = 0
+         M2AEL(J) = 0
+      ENDDO
+      DO J=1,IB
+         MMB(J) = 0
+         M1BEL(J) = 0
+         M2BEL(J) = 0
+      ENDDO
+      DO J=1,IA*IB
+         MMI(J) = 0
+      ENDDO
+      NN = 0
+      M = 0
+      DO KK=1,NINT
+         IA = 14 + 2*INT((1.+WOX)*RNDM(0))
+         CALL INT_NUC (IA, IB, SIG0, SIGEL)
+         NN = NN + NTRY
+         MMI(NI) = MMI(NI) + 1
+         MMA(NA) = MMA(NA)+1
+         MMB(NB) = MMB(NB)+1
+         IF (NI .GT. 0)  THEN
+            M = M+1
+            M1AEL(NAEL) = M1AEL(NAEL)+1
+            M1BEL(NBEL) = M1BEL(NBEL)+1
+         ELSE
+            M2AEL(NAEL) = M2AEL(NAEL)+1
+            M2BEL(NBEL) = M2BEL(NBEL)+1
+         ENDIF
+      ENDDO
+      MQE = NINT - M
+      SIGMA  = SIGMA0 * FLOAT(M)/FLOAT(NN)
+      DSIGMA = SIGMA0 * SQRT(FLOAT(M))/FLOAT(NN)
+      SIGQE  = SIGMA0 * FLOAT(MQE)/FLOAT(NN)
+      DSIGQE = SIGMA0 * SQRT(FLOAT(MQE))/FLOAT(NN)
+      DO J=1,IA
+         PROBA(J) = FLOAT(MMA(J))/FLOAT(M)
+         DPROBA(J) = SQRT(FLOAT(MMA(J)))/FLOAT(M)
+      ENDDO
+      DO J=1,IB
+         PROBB(J) = FLOAT(MMB(J))/FLOAT(M)
+         DPROBB(J) = SQRT(FLOAT(MMB(J)))/FLOAT(M)
+      ENDDO
+      DO J=1,IA*IB
+         PROBI(J) = FLOAT(MMI(J))/FLOAT(M)
+         DPROBI(J) = SQRT(FLOAT(MMI(J)))/FLOAT(M)
+      ENDDO
+      DO J=0,IA
+         P1AEL(J) = FLOAT(M1AEL(J))/FLOAT(M)
+         DP1AEL(J) = SQRT(FLOAT(M1AEL(J)))/FLOAT(M)
+         P2AEL(J) = FLOAT(M2AEL(J))/FLOAT(MQE)
+         DP2AEL(J) = SQRT(FLOAT(M2AEL(J)))/FLOAT(MQE)
+      ENDDO
+      DO J=0,IB
+         P1BEL(J) = FLOAT(M1BEL(J))/FLOAT(M)
+         DP1BEL(J) = SQRT(FLOAT(M1BEL(J)))/FLOAT(M)
+         P2BEL(J) = FLOAT(M2BEL(J))/FLOAT(MQE)
+         DP2BEL(J) = SQRT(FLOAT(M2BEL(J)))/FLOAT(MQE)
+      ENDDO
+      RETURN
+      END
+      SUBROUTINE SIGMA_HP (L, SQS, SIGT, SIGEL, SIGINEL, SLOPE, RHO)
+C--------------------------------------------------------------------------
+C. Hadron-proton cross sections
+C--------------------------------------------------------------------------
+      IF(L .EQ. 2) THEN
+         CALL sib_SIGMA_PIP(SQS,SIGT,SIGEL,SIGINEL,SLOPE,RHO)
+      ELSE
+         CALL sib_SIGMA_PP(SQS,SIGT,SIGEL,SIGINEL,SLOPE,RHO)
+      ENDIF
+      RETURN
+      END
+
+      SUBROUTINE SIGMA_INI
+C...Initialize the cross section and interaction lengths  on air
+        COMMON /CSAIR/ NSQS, ASQSMIN, ASQSMAX, DASQS,
+     +           SSIG0(41,2),SSIGA(41,2),ALINT(41,2)
+      DATA AVOG /6.0221367E-04/
+      CALL BLOCK_INI
+      ATARGET = 14.514
+C...Loop on c.m. energy
+      NSQS = 41
+      SQSMIN = 10.
+      SQSMAX = 1.E+05
+      ASQSMIN = LOG10(SQSMIN)
+      ASQSMAX = LOG10(SQSMAX)
+      DASQS = (ASQSMAX-ASQSMIN)/FLOAT(NSQS-1)
+      DO J=1,NSQS
+         ASQS = ASQSMIN + DASQS*FLOAT(J-1)
+         SQS = 10.**ASQS
+         E0 = SQS*SQS/(2.*0.938) * 1.E-03
+         CALL SIGMA_PP (E0, SIGT, SIGEL, SIGINEL, SLOPE, RHO)
+         CALL SIG_H_AIR (SIGT, SLOPE, RHO, SSIGT, SSIGEL, SSIGQE)
+         SSIGA(J,1) = SSIGT-SSIGQE
+         SSIG0(J,1) = SIGINEL
+         ALINT(J,1) = 1./(AVOG*SSIGA(J,1)/ATARGET)
+         CALL SIGMA_PIP (E0, SIGT, SIGEL, SIGINEL, SLOPE, RHO)
+         CALL  SIG_H_AIR (SIGT, SLOPE, RHO, SSIGT, SSIGEL, SSIGQE)
+         SSIGA(J,2) = SSIGT-SSIGQE
+         SSIG0(J,2) = SIGINEL
+         ALINT(J,2) = 1./(AVOG*SSIGA(J,2)/ATARGET)
+      ENDDO
+      RETURN
+      END
+
+      SUBROUTINE SIGMA_MC (IA,IB,SIG0,SIGEL,NINT,
+     +                            SIGMA,DSIGMA,SIGQE,DSIGQE)
+C...Compute with a montecarlo method the "production"
+C.  and "quasi-elastic" cross section for
+C.  a nucleus-nucleus interaction
+C.
+C.  INPUT : IA            = mass of target nucleus
+C.          IB            = mass of projectile nucleus
+C.          SIG0 (mbarn)  = inelastic pp cross section
+C.          NINT            = number  of interactions to generate
+C.  OUTPUT : SIGMA (mbarn) = "production" cross section
+C.           DSIGMA   "    = error
+C.           SIGQE    "    = "quasi-elastic" cross section
+C.           DSIGQE   "    = error
+C.           additional output is in the common block  /CPROBAB/
+C.           Prob(n_A), Prob(n_B), Prob(n_int)
+C..........................................................................
+      PARAMETER (IAMAX=56)
+      PARAMETER (IAMAX2=3136)          ! IAMAX*IAMAX
+      COMMON  /CPROBAB/ PROBA(IAMAX), DPROBA(IAMAX),
+     +   PROBB(IAMAX), DPROBB(IAMAX), PROBI(IAMAX2), DPROBI(IAMAX2),
+     +   P1AEL(0:IAMAX),DP1AEL(0:IAMAX),P1BEL(0:IAMAX), DP1BEL(0:IAMAX),
+     +   P2AEL(0:IAMAX),DP2AEL(0:IAMAX),P2BEL(0:IAMAX), DP2BEL(0:IAMAX)
+      COMMON /CNUCMS/ B, BMAX, NTRY, NA, NB, NI, NAEL, NBEL
+     +         ,JJA(IAMAX), JJB(IAMAX), JJINT(IAMAX,IAMAX)
+     +         ,JJAEL(IAMAX), JJBEL(IAMAX)
+      DIMENSION  MMA(0:IAMAX), MMB(0:IAMAX), MMI(0:IAMAX2)
+      DIMENSION  M1AEL(0:IAMAX), M1BEL(0:IAMAX)
+      DIMENSION  M2AEL(0:IAMAX), M2BEL(0:IAMAX)
+      DATA PI /3.1415926/
+      R2 = 0.1 * SIG0/PI
+      BMAX = 15.                             ! fm
+      SIGMA0 = PI*BMAX*BMAX*10.              ! mbarn
+      DO J=1,IA
+         MMA(J) = 0
+         M1AEL(J) = 0
+         M2AEL(J) = 0
+      ENDDO
+      DO J=1,IB
+         MMB(J) = 0
+         M1BEL(J) = 0
+         M2BEL(J) = 0
+      ENDDO
+      DO J=1,IA*IB
+         MMI(J) = 0
+      ENDDO
+      NN = 0
+      M = 0
+      DO KK=1,NINT
+         CALL INT_NUC (IA, IB, SIG0, SIGEL)
+         NN = NN + NTRY
+         MMI(NI) = MMI(NI) + 1
+         MMA(NA) = MMA(NA)+1
+         MMB(NB) = MMB(NB)+1
+         IF (NI .GT. 0)  THEN
+            M = M+1
+            M1AEL(NAEL) = M1AEL(NAEL)+1
+            M1BEL(NBEL) = M1BEL(NBEL)+1
+         ELSE
+            M2AEL(NAEL) = M2AEL(NAEL)+1
+            M2BEL(NBEL) = M2BEL(NBEL)+1
+         ENDIF
+      ENDDO
+      MQE = NINT - M
+      SIGMA  = SIGMA0 * FLOAT(M)/FLOAT(NN)
+      DSIGMA = SIGMA0 * SQRT(FLOAT(M))/FLOAT(NN)
+      SIGQE  = SIGMA0 * FLOAT(MQE)/FLOAT(NN)
+      DSIGQE = SIGMA0 * SQRT(FLOAT(MQE))/FLOAT(NN)
+      DO J=1,IA
+         PROBA(J) = FLOAT(MMA(J))/FLOAT(M)
+         DPROBA(J) = SQRT(FLOAT(MMA(J)))/FLOAT(M)
+      ENDDO
+      DO J=1,IB
+         PROBB(J) = FLOAT(MMB(J))/FLOAT(M)
+         DPROBB(J) = SQRT(FLOAT(MMB(J)))/FLOAT(M)
+      ENDDO
+      DO J=1,IA*IB
+         PROBI(J) = FLOAT(MMI(J))/FLOAT(M)
+         DPROBI(J) = SQRT(FLOAT(MMI(J)))/FLOAT(M)
+      ENDDO
+      DO J=0,IA
+         P1AEL(J) = FLOAT(M1AEL(J))/FLOAT(M)
+         DP1AEL(J) = SQRT(FLOAT(M1AEL(J)))/FLOAT(M)
+         P2AEL(J) = FLOAT(M2AEL(J))/FLOAT(MQE)
+         DP2AEL(J) = SQRT(FLOAT(M2AEL(J)))/FLOAT(MQE)
+      ENDDO
+      DO J=0,IB
+         P1BEL(J) = FLOAT(M1BEL(J))/FLOAT(M)
+         DP1BEL(J) = SQRT(FLOAT(M1BEL(J)))/FLOAT(M)
+         P2BEL(J) = FLOAT(M2BEL(J))/FLOAT(MQE)
+         DP2BEL(J) = SQRT(FLOAT(M2BEL(J)))/FLOAT(MQE)
+      ENDDO
+      RETURN
+      END
+
+      SUBROUTINE SIGMA_PIP (E0, SIGT, SIGEL, SIGINEL, SLOPE, RHO)
+C=============================================================
+C.  Cross sections
+C=============================================================
+C...pp cross sections
+C. INPUT: E0 = Laboratory Energy  (TeV)
+C.
+C. OUTPUT: SIGT = total cross section
+C.         SIGEL = elastic cross section
+C.         SIGINEL = inelastic cross section
+C.         SLOPE = slope of elastic scattering (GeV**-2)
+C.         RHO = Imaginary/Real part of forward elastic scattering amplitude
+C...........................................................................
+      DIMENSION SSIG0(41)
+      DATA PI /3.1415926/
+      DATA CMBARN /0.389385/
+C...pi-p inelastic cross sections (mbarn)
+      DATA (SSIG0(J),J=1,41) /
+     +     20.28,    20.36,    20.48,    20.66,    20.91,    21.22,
+     +     21.62,    22.09,    22.64,    23.27,    23.99,    24.79,
+     +     25.66,    26.62,    27.65,    28.76,    29.94,    31.21,
+     +     32.55,    33.97,    35.47,    37.04,    38.70,    40.46,
+     +     42.29,    44.23,    46.26,    48.40,    50.64,    53.01,
+     +     55.48,    58.12,    60.87,    63.75,    66.78,    69.98,
+     +     73.38,    76.91,    80.62,    84.56,    88.68 /
+      SQS = SQRT(2000.*0.938*E0)
+      AL = LOG10(SQS)
+      J1 = (AL - 1.)*10. + 1
+C D.H.
+      J1 = MAX(J1,1)
+      J1 = MIN(J1,40)
+
+      T = (AL-1.)*10. - FLOAT(J1-1)
+      SIGINEL = SSIG0(J1)*(1.-T) + SSIG0(J1+1)*T
+      CALL BLOCK(SQS,SIGT1,SIGT2,SLOP1,SLOP2,RHO1,RHO2,SIGEL1,SIGEL2)
+      R = SIGEL1/SIGT1
+      RHO = RHO1
+      SIGT  = SIGINEL/(1.-R)
+      SIGEL = SIGINEL*R/(1.-R)
+      SLOPE = SIGT**2/(SIGEL * 16.*PI) * (1.+RHO1**2) /CMBARN
+      RETURN
+      END
+
+      SUBROUTINE SIGMA_PP (E0, SIGT, SIGEL, SIGINEL, SLOPE, RHO)
+C...pp cross sections
+C. INPUT: E0 = Laboratory Energy  (TeV)
+C.
+C. OUTPUT: SIGT = total cross section
+C.         SIGEL = elastic cross section
+C.         SIGINEL = inelastic cross section
+C.         SLOPE = slope of elastic scattering (GeV**-2)
+C.         RHO = Imaginary/Real part of forward elastic scattering amplitude
+C...........................................................................
+      DIMENSION SSIG0(41)
+      DATA PI /3.1415926/
+      DATA CMBARN /0.389385/
+C...p-p inelastic cross sections (mbarn)
+      DATA (SSIG0(J),J=1,41) /
+     +     32.08,    32.15,    32.26,    32.45,    32.73,    33.12,
+     +     33.63,    34.28,    35.08,    36.01,    37.09,    38.31,
+     +     39.67,    41.15,    42.75,    44.47,    46.29,    48.22,
+     +     50.24,    52.35,    54.55,    56.81,    59.15,    61.57,
+     +     64.04,    66.57,    69.17,    71.81,    74.51,    77.27,
+     +     80.06,    82.93,    85.82,    88.74,    91.71,    94.76,
+     +     97.86,   100.97,   104.12,   107.31,   110.54 /
+      SQS = SQRT(2000.*0.938*E0)
+      AL = LOG10(SQS)
+      J1 = (AL - 1.)*10. + 1
+C D.H.
+      J1 = MAX(J1,1)
+      J1 = MIN(J1,40)
+
+      T = (AL-1.)*10. - FLOAT(J1-1)
+      SIGINEL = SSIG0(J1)*(1.-T) + SSIG0(J1+1)*T
+      CALL BLOCK(SQS,SIGT1,SIGT2,SLOP1,SLOP2,RHO1,RHO2,SIGEL1,SIGEL2)
+      R = SIGEL1/SIGT1
+      RHO = RHO1
+      SIGT  = SIGINEL/(1.-R)
+      SIGEL = SIGINEL*R/(1.-R)
+      SLOPE = SIGT**2/(SIGEL * 16.*PI) * (1.+RHO1**2) /CMBARN
+      RETURN
+      END
+
+      SUBROUTINE SIGNUC_INI (IA,E0)
+C=============================================================
+C.  Nucleus-nucleus cross sections
+C=============================================================
+C...This subroutine receives in INPUT E0 (TeV)
+C.  energy per nucleon and computes the cross sections
+C.  and interactions lengths for  all nuclei
+C.  with A  between 2 and IA
+C.  The output is contained in common block /CLENNN/
+C........................................................
+      COMMON /CLENNN/ SSIGNUC(60), ALNUC(60)
+      DIMENSION SIGMA(5,56), SIGQE(5,56)
+      DIMENSION AA(5)
+      DATA NE /5/, AMIN /1./, DA /1./
+      DATA AA /1.,2.,3.,4.,5./
+      DATA AVOG /6.0221367E-04/
+      DATA ATARGET /14.514/               ! effective masss of air
+C...Data on `inelastic-production' nucleus-air cross section
+      DATA (SIGMA(J, 2),J=1,5) / 396., 427., 497., 603., 702./
+      DATA (SIGMA(J, 3),J=1,5) / 464., 490., 570., 680., 794./
+      DATA (SIGMA(J, 4),J=1,5) / 497., 524., 600., 711., 813./
+      DATA (SIGMA(J, 5),J=1,5) / 593., 629., 708., 826., 934./
+      DATA (SIGMA(J, 6),J=1,5) / 701., 739., 839., 954.,1066./
+      DATA (SIGMA(J, 7),J=1,5) / 708., 755., 845., 985.,1102./
+      DATA (SIGMA(J, 8),J=1,5) / 777., 790., 909.,1015.,1130./
+      DATA (SIGMA(J, 9),J=1,5) / 808., 845., 952.,1051.,1186./
+      DATA (SIGMA(J,10),J=1,5) / 809., 862., 958.,1077.,1193./
+      DATA (SIGMA(J,11),J=1,5) / 821., 870., 955.,1085.,1191./
+      DATA (SIGMA(J,12),J=1,5) / 861., 897., 985.,1132.,1251./
+      DATA (SIGMA(J,13),J=1,5) / 875., 909., 989.,1129.,1272./
+      DATA (SIGMA(J,14),J=1,5) / 919., 952.,1043.,1202.,1315./
+      DATA (SIGMA(J,15),J=1,5) / 954., 969.,1085.,1217.,1370./
+      DATA (SIGMA(J,16),J=1,5) /1014.,1041.,1148.,1308.,1430./
+      DATA (SIGMA(J,17),J=1,5) /1005.,1028.,1139.,1277.,1434./
+      DATA (SIGMA(J,18),J=1,5) /1065.,1088.,1178.,1324.,1494./
+      DATA (SIGMA(J,19),J=1,5) /1113.,1122.,1238.,1397.,1532./
+      DATA (SIGMA(J,20),J=1,5) /1143.,1169.,1321.,1471.,1615./
+      DATA (SIGMA(J,21),J=1,5) /1167.,1194.,1315.,1488.,1650./
+      DATA (SIGMA(J,22),J=1,5) /1183.,1195.,1318.,1454.,1638./
+      DATA (SIGMA(J,23),J=1,5) /1206.,1264.,1394.,1524.,1653./
+      DATA (SIGMA(J,24),J=1,5) /1244.,1297.,1400.,1557.,1672./
+      DATA (SIGMA(J,25),J=1,5) /1272.,1298.,1449.,1600.,1712./
+      DATA (SIGMA(J,26),J=1,5) /1269.,1332.,1459.,1603.,1743./
+      DATA (SIGMA(J,27),J=1,5) /1262.,1312.,1443.,1598.,1723./
+      DATA (SIGMA(J,28),J=1,5) /1309.,1333.,1469.,1619.,1763./
+      DATA (SIGMA(J,29),J=1,5) /1433.,1505.,1621.,1802.,1935./
+      DATA (SIGMA(J,30),J=1,5) /1346.,1391.,1536.,1678.,1844./
+      DATA (SIGMA(J,31),J=1,5) /1376.,1432.,1556.,1696.,1878./
+      DATA (SIGMA(J,32),J=1,5) /1392.,1418.,1582.,1713.,1857./
+      DATA (SIGMA(J,33),J=1,5) /1412.,1438.,1602.,1742.,1944./
+      DATA (SIGMA(J,34),J=1,5) /1414.,1471.,1633.,1774.,1928./
+      DATA (SIGMA(J,35),J=1,5) /1444.,1498.,1634.,1773.,1944./
+      DATA (SIGMA(J,36),J=1,5) /1455.,1507.,1638.,1815.,1943./
+      DATA (SIGMA(J,37),J=1,5) /1458.,1526.,1660.,1781.,1992./
+      DATA (SIGMA(J,38),J=1,5) /1520.,1515.,1671.,1838.,2052./
+      DATA (SIGMA(J,39),J=1,5) /1492.,1545.,1707.,1863.,2049./
+      DATA (SIGMA(J,40),J=1,5) /1511.,1577.,1719.,1878.,2032./
+      DATA (SIGMA(J,41),J=1,5) /1541.,1581.,1729.,1878.,2072./
+      DATA (SIGMA(J,42),J=1,5) /1540.,1591.,1718.,1919.,2075./
+      DATA (SIGMA(J,43),J=1,5) /1590.,1610.,1783.,1925.,2077./
+      DATA (SIGMA(J,44),J=1,5) /1582.,1614.,1785.,1961.,2106./
+      DATA (SIGMA(J,45),J=1,5) /1580.,1629.,1774.,1939.,2115./
+      DATA (SIGMA(J,46),J=1,5) /1628.,1673.,1812.,1981.,2089./
+      DATA (SIGMA(J,47),J=1,5) /1594.,1672.,1820.,1999.,2163./
+      DATA (SIGMA(J,48),J=1,5) /1639.,1695.,1824.,1986.,2150./
+      DATA (SIGMA(J,49),J=1,5) /1647.,1728.,1856.,2008.,2188./
+      DATA (SIGMA(J,50),J=1,5) /1637.,1714.,1902.,2040.,2210./
+      DATA (SIGMA(J,51),J=1,5) /1682.,1741.,1918.,2042.,2258./
+      DATA (SIGMA(J,52),J=1,5) /1673.,1746.,1933.,2067.,2238./
+      DATA (SIGMA(J,53),J=1,5) /1705.,1763.,1880.,2102.,2249./
+      DATA (SIGMA(J,54),J=1,5) /1699.,1748.,1917.,2142.,2265./
+      DATA (SIGMA(J,55),J=1,5) /1751.,1764.,1934.,2129.,2289./
+      DATA (SIGMA(J,56),J=1,5) /1753.,1828.,1973.,2187.,2335./
+C...Data on `quasi-elastic' nucleus-air cross section
+      DATA (SIGQE(J, 2),J=1,5) /  41.,  42.,  75., 138., 236./
+      DATA (SIGQE(J, 3),J=1,5) /  41.,  41.,  79., 138., 244./
+      DATA (SIGQE(J, 4),J=1,5) /  39.,  41.,  78., 145., 246./
+      DATA (SIGQE(J, 5),J=1,5) /  44.,  47.,  83., 152., 256./
+      DATA (SIGQE(J, 6),J=1,5) /  48.,  53.,  96., 169., 288./
+      DATA (SIGQE(J, 7),J=1,5) /  53.,  52.,  95., 171., 282./
+      DATA (SIGQE(J, 8),J=1,5) /  53.,  52.,  95., 179., 295./
+      DATA (SIGQE(J, 9),J=1,5) /  51.,  49.,  94., 180., 301./
+      DATA (SIGQE(J,10),J=1,5) /  52.,  52.,  93., 183., 308./
+      DATA (SIGQE(J,11),J=1,5) /  52.,  51.,  91., 179., 301./
+      DATA (SIGQE(J,12),J=1,5) /  53.,  53.,  92., 179., 284./
+      DATA (SIGQE(J,13),J=1,5) /  55.,  55.,  97., 184., 308./
+      DATA (SIGQE(J,14),J=1,5) /  54.,  55., 102., 182., 310./
+      DATA (SIGQE(J,15),J=1,5) /  57.,  53., 102., 193., 305./
+      DATA (SIGQE(J,16),J=1,5) /  56.,  53., 105., 195., 331./
+      DATA (SIGQE(J,17),J=1,5) /  57.,  54., 101., 192., 327./
+      DATA (SIGQE(J,18),J=1,5) /  53.,  54., 107., 204., 328./
+      DATA (SIGQE(J,19),J=1,5) /  59.,  63., 105., 209., 345./
+      DATA (SIGQE(J,20),J=1,5) /  59.,  64., 109., 195., 343./
+      DATA (SIGQE(J,21),J=1,5) /  55.,  64., 114., 212., 348./
+      DATA (SIGQE(J,22),J=1,5) /  60.,  63., 117., 206., 340./
+      DATA (SIGQE(J,23),J=1,5) /  63.,  68., 119., 202., 345./
+      DATA (SIGQE(J,24),J=1,5) /  59.,  61., 114., 213., 354./
+      DATA (SIGQE(J,25),J=1,5) /  60.,  65., 121., 216., 357./
+      DATA (SIGQE(J,26),J=1,5) /  61.,  66., 124., 232., 342./
+      DATA (SIGQE(J,27),J=1,5) /  63.,  61., 119., 222., 365./
+      DATA (SIGQE(J,28),J=1,5) /  63.,  68., 121., 218., 354./
+      DATA (SIGQE(J,29),J=1,5) /  67.,  77., 119., 239., 371./
+      DATA (SIGQE(J,30),J=1,5) /  63.,  63., 120., 230., 379./
+      DATA (SIGQE(J,31),J=1,5) /  67.,  66., 124., 223., 371./
+      DATA (SIGQE(J,32),J=1,5) /  62.,  68., 125., 230., 357./
+      DATA (SIGQE(J,33),J=1,5) /  65.,  70., 128., 227., 377./
+      DATA (SIGQE(J,34),J=1,5) /  63.,  70., 120., 222., 359./
+      DATA (SIGQE(J,35),J=1,5) /  66.,  71., 124., 233., 358./
+      DATA (SIGQE(J,36),J=1,5) /  70.,  70., 118., 228., 376./
+      DATA (SIGQE(J,37),J=1,5) /  69.,  73., 131., 209., 381./
+      DATA (SIGQE(J,38),J=1,5) /  68.,  73., 128., 221., 369./
+      DATA (SIGQE(J,39),J=1,5) /  68.,  72., 129., 224., 377./
+      DATA (SIGQE(J,40),J=1,5) /  72.,  73., 123., 232., 384./
+      DATA (SIGQE(J,41),J=1,5) /  67.,  73., 131., 240., 384./
+      DATA (SIGQE(J,42),J=1,5) /  71.,  72., 131., 236., 392./
+      DATA (SIGQE(J,43),J=1,5) /  69.,  76., 137., 249., 395./
+      DATA (SIGQE(J,44),J=1,5) /  71.,  73., 136., 235., 385./
+      DATA (SIGQE(J,45),J=1,5) /  71.,  67., 127., 236., 401./
+      DATA (SIGQE(J,46),J=1,5) /  76.,  68., 133., 241., 399./
+      DATA (SIGQE(J,47),J=1,5) /  73.,  69., 133., 227., 382./
+      DATA (SIGQE(J,48),J=1,5) /  67.,  81., 131., 247., 402./
+      DATA (SIGQE(J,49),J=1,5) /  69.,  78., 133., 247., 400./
+      DATA (SIGQE(J,50),J=1,5) /  73.,  76., 131., 239., 401./
+      DATA (SIGQE(J,51),J=1,5) /  73.,  75., 131., 246., 394./
+      DATA (SIGQE(J,52),J=1,5) /  72.,  77., 135., 242., 408./
+      DATA (SIGQE(J,53),J=1,5) /  75.,  76., 136., 236., 394./
+      DATA (SIGQE(J,54),J=1,5) /  76.,  78., 137., 228., 398./
+      DATA (SIGQE(J,55),J=1,5) /  75.,  82., 133., 238., 390./
+      DATA (SIGQE(J,56),J=1,5) /  76.,  71., 136., 255., 408./
+      ASQS = 0.5*LOG10(1.876E+03*E0)
+      JE = MIN(INT((ASQS-AMIN)/DA)+1,NE-2)
+      DO JA=2,IA
+         ABEAM = FLOAT(JA)
+         S1 = QUAD_INT(ASQS, AA(JE),AA(JE+1),AA(JE+2),
+     +                   SIGMA(JE,JA),SIGMA(JE+1,JA),SIGMA(JE+2,JA))
+         S2 = QUAD_INT(ASQS, AA(JE),AA(JE+1),AA(JE+2),
+     +                   SIGQE(JE,JA),SIGQE(JE+1,JA),SIGQE(JE+2,JA))
+         SSIGNUC(JA) = S1 + S2
+         ALNUC(JA) = ATARGET/(AVOG*SSIGNUC(JA))
+      ENDDO
+      ALNUC(1) = FPNI(E0, 13)
+      SSIGNUC(1) = ATARGET/(AVOG*ALNUC(1))
+      RETURN
+      END
+      SUBROUTINE SIG_AIR_INI
+C==========================================================================
+C. Cross sections
+C==========================================================================
+C...Initialize the cross section and interaction lengths  on air
+      COMMON /S_CCSIG/ NSQS, ASQSMIN, ASQSMAX, DASQS,
+     +    SSIG(51,2), PJETC(0:20,51,2),SSIGN(51,2), ALINT(51,2)
+      COMMON /S_CCSIG2/ SSIG_TOT(51,2),SSIG_B(51,2)
+      COMMON /S_SIGEL/ielastic,FIN(51,2),FEL(51,2),FQE(0:6,51,2)
+      DATA AVOG /6.0221367E-04/
+      parameter (pi=3.1415927)
+      ATARGET = 14.514
+C...Loop on c.m. energy
+      DO J=1,NSQS
+         ASQS = ASQSMIN + DASQS*FLOAT(J-1)
+         IF (J .EQ. NSQS) ASQS = ASQS-1.E-04
+         SQS = 10.**ASQS
+         CALL sib_SIGMA_PP (SQS, SIGT, SIGEL, SIGINEL, SLOPE, RHO)
+         CALL SIG_H_AIR (SIGT, SLOPE, RHO, SSIGT, SSIGEL, SSIGQE)
+         SSIGN(J,1) = SSIGT-SSIGQE
+       if (ielastic.eq.1)  then
+            ALINT(J,1) = 1./(AVOG*SSIGT/ATARGET)
+        else
+             ALINT(J,1) = 1./(AVOG*SSIGn(j,1)/ATARGET)
+       endif
+       ssig_tot(j,1) = sigt
+       ssig_B(j,1) = slope
+       FIN(J,1) = ssign(j,1)/SSIGT
+       FEL(J,1) = SSIGEL/SSIGT
+       FQE(0,J,1) = (SSIGQE-SSIGEL)/SSIGT
+       eps=ssigt/slope/16./pi*(1+rho**2)
+       FQE(1,J,1) = eps
+       do nqe=2,6
+          FQE(nqe,J,1) = eps**nqe/nqe + fqe(nqe-1,j,1)
+       enddo
+       do nqe=1,6
+          FQE(nqe,J,1) = fqe(nqe,j,1)/fqe(6,j,1)
+       enddo
+
+         CALL sib_SIGMA_PIP (SQS, SIGT, SIGEL, SIGINEL, SLOPE, RHO)
+         CALL  SIG_H_AIR (SIGT, SLOPE, RHO, SSIGT, SSIGEL, SSIGQE)
+         SSIGN(J,2) = SSIGT-SSIGQE
+       if (ielastic.eq.1)  then
+            ALINT(J,2) = 1./(AVOG*SSIGT/ATARGET)
+        else
+             ALINT(J,2) = 1./(AVOG*SSIGn(j,2)/ATARGET)
+       endif
+       ssig_tot(J,2) = sigt
+       ssig_B(J,2) = slope
+
+       FIN(j,2) = ssign(J,2)/SSIGT
+       FEL(j,2) = ssigEL/SSIGT
+       FQE(0,J,2) = SSIGQE/SSIGT
+       eps=ssigt/slope/16./pi*(1+rho**2)
+       FQE(1,J,2) = eps
+       do nqe=2,6
+          FQE(nqe,J,2) = eps**nqe/nqe + fqe(nqe-1,j,2)
+       enddo
+       do nqe=1,6
+          FQE(nqe,J,2) = fqe(nqe,j,2)/fqe(6,j,2)
+       enddo
+
+      ENDDO
+      RETURN
+      END
+      BLOCK DATA  SIG_DAT
+C...Precalculated table of cross sections
+      COMMON /S_CSIGINP/ QQ2MIN, SSQCD (51,2), SSQCD2 (51,2),
+     @                       SSIG0(2), factork(2),isfchoice
+C...Structure functions
+      COMMON /S_CSTR/ JSTR, JSTRPI
+C...EHLQ set 1 for proton Duke-Owens set 1 for pion
+      DATA JSTR /1/, JSTRPI /1/
+C...Q2min (GeV**2) for minijets
+      DATA QQ2MIN /5.0/
+C...Soft cross section in the eikonal factor
+      DATA SSIG0 /123., 73./
+      DATA factork/1.7,2.2/
+      data isfchoice/1/
+C...Sigma_qcd (GeV**-2) for p-p computed with EHLQ set 1 Q2min = 5. GeV**2
+c... with scaling violations. THis is the default choice in SIBYLL.
+c... A K-factor of 1.7 should be used to fit. the Tevatron data.
+      DATA (SSQCD(K,1),K=1,51)  /
+     @  1.1983993E-02, 4.4127252E-02, 0.1238399, 0.2868755, 0.5772045,
+     @   1.045294,    1.744142,    2.731708,    4.065390,    5.807725,
+     @   8.020122,    10.77380,    14.13659,    18.20087,    23.08322,
+     @   28.82062,    35.58009,    43.48313,    52.64074,    63.20496,
+     @   75.42126,    89.40395,    105.5904,    123.8777,    144.6305,
+     @   168.2220,    195.0619,    225.1132,    259.1954,    297.7083,
+     @   340.8559,    389.3647,    443.2799,    503.9778,    571.3537,
+     @   647.0132,    731.9388,    825.9186,    932.3583,    1049.230,
+     @   1178.351,    1320.911,    1479.186,    1656.306,    1851.798,
+     @   2071.153,    2311.224,    2576.411,    2869.631,    3194.693,
+     @   3556.603/
+C...Sigma_qcd (GeV**-2) for pi-p computed with EHLQ set 1  for p
+C                                Owens set 1 for pi Q2min = 5. GeV**2
+c... with scaling violations. THis is the default choice in SIBYLL.
+c... A K-factor of 1.7 should be used to fit. the Tevatron data.
+      DATA (SSQCD(K,2),K=1,51)  /
+     @ 2.6713109E-02, 7.6703623E-02, 0.1787110, 0.3587718, 0.6452169,
+     @ 1.067511,   1.656302,   2.442088,   3.459795,   4.740401,
+     @ 6.328330,   8.265375,   10.59707,   13.38726,   16.70245,
+     @ 20.60534,   25.20829,   30.61100,   36.92186,   44.27321,
+     @ 52.88524,   62.90113,   74.63335,   88.24413,   104.0870,
+     @ 122.5886,   144.2660,   169.4464,   199.1269,   233.9357,
+     @ 274.6917,   322.6675,   378.8712,   445.5984,   524.2751,
+     @ 617.7631,   729.1132,   860.6794,   1019.997,   1208.843,
+     @ 1433.871,   1703.056,   2026.311,   2417.850,   2889.604,
+     @ 3463.152,   4152.619,   4989.879,   6001.615,   7231.195,
+     @ 8747.169/
+C...Sigma_qcd (GeV**-2) for pi-p computed with EHLQ set 1  for p
+C                                Owens set 1 for pi Q2min = 5. GeV**2
+c... WITHOUT scaling violations. THis is an alternate choice in SIBYLL.
+c... A K-factor of 2.2 should be used to fit. the Tevatron data.
+      DATA (SSQCD2(K,1),K=1,51)  /
+     @ 1.4302040E-02, 5.3822853E-02,  0.1535475, 0.3596057, 0.7277440,
+     @ 1.318651,  2.191311,  3.401969,  4.996748,  7.020068,
+     @ 9.494884,  12.44863,  15.89774,  19.85705,  24.34084,
+     @ 29.32943,  34.83667,  40.86320,  47.40503,  54.46183,
+     @ 62.03970,  70.14349,  78.79037,  87.91505,  97.56121,
+     @ 107.7228,  118.4118,  129.5977,  141.3069,  153.5433,
+     @ 166.2887,  179.5711,  193.3551,  207.6443,  222.4576,
+     @ 237.7850,  253.7659,  270.1528,  287.0669,  304.5056,
+     @ 322.4221,  340.8359,  359.7802,  379.2549,  399.2404,
+     @ 419.7521,  440.7868,  462.3503,  484.4333,  507.0548,
+     @ 530.2106/
+      DATA (SSQCD2(K,2),K=1,51)  /
+     @  3.2613490E-02, 9.5264249E-02, 0.2243170, 0.4523652, 0.8127463,
+     @  1.336795,  2.052137,  2.981797,  4.145481,  5.557004,
+     @  7.229480,  9.172240,  11.39208,  13.89822,  16.69263,
+     @  19.78566,  23.18154,  26.88788,  30.90883,  35.25125,
+     @  39.92667,  44.94619,  50.30739,  56.02631,  62.11592,
+     @  68.57966,  75.43336,  82.67727,  90.33365,  98.41272,
+     @  106.9134,  115.8630,  125.2634,  135.1346,  145.4902,
+     @  156.3337,  167.7068,  179.5899,  192.0124,  204.9890,
+     @  218.5388,  232.6741,  247.4235,  262.8056,  278.8209,
+     @  295.4990,  312.8557,  330.9224,  349.6995,  369.2270,
+     @  389.5247/
+      END
+
+      SUBROUTINE SIG_H_AIR (SSIG, SLOPE, ALPHA,  SIGT, SIGEL, SIGQE)
+C...Subroutine to compute hadron-air cross sections
+C.  according to:
+C.  R.J. Glauber and G.Matthiae  Nucl.Phys. B21, 135, (1970)
+C.
+C.  Air is a linear combination of Nitrogen and oxygen
+C.
+C.  INPUT :  SSIG  (mbarn) total pp cross section
+C.           SLOPE (GeV**-2)  elastic scattering slope for pp
+C.           ALPHA    real/imaginary part of the forward pp elastic
+C.                                               scattering amplitude
+C.  OUTPUT : SIGT  = Total cross section
+C.           SIGEL = Elastic cross section
+C.           SIGQEL  = Elastic + Quasi elastic cross section
+C......................................................................
+      DATA  FOX /0.257/
+      CALL GLAUBER(14,SSIG,SLOPE,ALPHA,SIG1,SIGEL1,SIGQE1)
+      CALL GLAUBER(16,SSIG,SLOPE,ALPHA,SIG2,SIGEL2,SIGQE2)
+      SIGT  = (1.-FOX)*SIG1   + FOX*SIG2
+      SIGEL = (1.-FOX)*SIGEL1 + FOX*SIGEL2
+      SIGQE = (1.-FOX)*SIGQE1 + FOX*SIGQE2
+      RETURN
+      END
+
+      SUBROUTINE SIG_JET (SIG_QCD, SIG_SOFT, JINT, SIG_inel, PJET,
+     +                    SIG_TOT,B_EL)
+C...This subroutine  receives in INPUT:
+C.       sig_qcd (GeV-2)
+C.       sig_soft (GeV-2)
+C.       JINT (1 = pp interaction)    (2 pi-p interaction)
+C.
+C.  and returns as output:
+C.       SIG_inel
+C.       and PJET (1:20)   probability of n-jets
+C.
+C.  USES THE OLD GEOMETRY OF:
+C   L.Durand and H.Pi,
+c
+C....................................................................
+      COMMON /S_CFACT/ FACT (0:20), CO_BIN(0:20,0:20)
+      COMMON /S_CHDCNV/NB,DB,ABPP(200),ABPIP(200),ABPPH(200),
+     +        ABPIPH(200)
+c      COMMON /S_CHDCNV/NB,DB,ABPP(200),ABPIP(200)
+      DIMENSION PJET (0:20)
+      DATA PI /3.1415926/
+
+      DO J=1,20
+          PJET(J) = 0.
+      ENDDO
+      SUM = 0.
+      SUM_tot = 0.
+      SUM_B = 0.
+
+      DO JB=1,NB
+         B = DB*FLOAT(JB-1)
+         IF (JINT .EQ. 1)  THEN
+            ABSOFT = ABPP   (JB)
+            ABHARD = ABPPh (JB)
+         ENDIF
+         IF (JINT .EQ. 2)  THEN
+            ABSOFT = ABPIP   (JB)
+            ABHARD = ABPIPh (JB)
+         ENDIF
+         F1 = EXP(-ABHARD*SIG_QCD)
+         F2 = EXP(-ABSOFT*SIG_SOFT)
+         F = B*(1.-F1*F2)
+         SUM = SUM+F
+       f4= sqrt(f1*f2)
+       F_tot=B*(1-f4)
+       sum_tot=sum_tot+f_tot
+       F_B=B**3*(1-f4)
+       sum_B=sum_b+f_b
+         PJET(0) = PJET(0) + (1.-F2)*F1*B
+         G = SIG_QCD*ABHARD
+         F3 = G*F1*B
+         PJET(1) = PJET(1) + F3
+         DO J=2,20
+            F3 = F3*G
+            PJET (J) = PJET(J) + F3
+         ENDDO
+      ENDDO
+      SIG_inel = SUM*2.*PI*DB
+      sig_tot= SUM_TOT*4.*PI*DB
+      B_EL= SUM_B*PI*DB/sig_tot*2.
+      SA = 0.
+      DO J=0,20
+         SA = SA + PJET(J)/FACT(J)
+      ENDDO
+      DO J=0,20
+         PJET(J) = PJET(J)/FACT(J)/SA
+      ENDDO
+
+      RETURN
+      END
+
+      SUBROUTINE SINCO(S,C)
+      DATA PI /3.1415926/
+      F = 2.*PI*RNDM(0)
+      C = COS (F)
+      S = SIN (F)
+      RETURN
+      END
+
+
+       SUBROUTINE SIROBO( NBEG, NEND, THE, PHI, DBEX, DBEY, DBEZ)
+C **********************************************************************
+C   THIS IS A SLIGHTLY ALTERED VERSION OF "LUROBO" [JETSET63.PYTHIA]   *
+C SET TO WORK IN THE SIBYL ENVIROMENT. THE TRANSFORMATION IS PERFORMED *
+C ON PARTICLES NUMBER FROM NBEG TO NEND. COMMON BLOCKS CHANGED.        *
+C                                      TSS,   Oct '87                  *
+C  modification  use directly BETA in double precision in input (PL)   *
+C **********************************************************************
+      COMMON /S_PLIST/ NP, PLIST(5000,5), LLIST(5000)
+      DIMENSION ROT(3,3),PV(3)
+      DOUBLE PRECISION DP(4),DBEX,DBEY,DBEZ,DGA,DBEP,DGABEP
+      IF(THE**2+PHI**2 .LE. 1E-20) GO TO 131
+C...ROTATE (TYPICALLY FROM Z AXIS TO DIRECTION THETA,PHI)
+       ROT(1,1)=COS(THE)*COS(PHI)
+       ROT(1,2)=-SIN(PHI)
+       ROT(1,3)=SIN(THE)*COS(PHI)
+       ROT(2,1)=COS(THE)*SIN(PHI)
+       ROT(2,2)=COS(PHI)
+       ROT(2,3)=SIN(THE)*SIN(PHI)
+       ROT(3,1)=-SIN(THE)
+       ROT(3,2)=0.
+       ROT(3,3)=COS(THE)
+       DO 120 I=NBEG,NEND
+       DO 100 J=1,3
+ 100   PV(J)=PLIST(I,J)
+       DO 110 J=1,3
+ 110   PLIST(I,J)=ROT(J,1)*PV(1)+ROT(J,2)*PV(2)+ROT(J,3)*PV(3)
+ 120   CONTINUE
+ 131    IF(DBEX**2+DBEY**2+DBEZ**2 .LE. 1D-20) GO TO 151
+C...LORENTZ BOOST (TYPICALLY FROM REST TO MOMENTUM/ENERGY=BETA)
+       DGA=1D0/DSQRT(1D0-DBEX**2-DBEY**2-DBEZ**2)
+       DO 140 I=NBEG, NEND
+       DO 130 J=1,4
+ 130   DP(J)=PLIST(I,J)
+       DBEP=DBEX*DP(1)+DBEY*DP(2)+DBEZ*DP(3)
+       DGABEP=DGA*(DGA*DBEP/(1D0+DGA)+DP(4))
+       PLIST(I,1)=DP(1)+DGABEP*DBEX
+       PLIST(I,2)=DP(2)+DGABEP*DBEY
+       PLIST(I,3)=DP(3)+DGABEP*DBEZ
+       PLIST(I,4)=DGA*(DP(4)+DBEP)
+ 140   CONTINUE
+ 151   RETURN
+      END
+      SUBROUTINE SSLOPE (S, BP, BM)
+      COMMON /BLOCKD/ CP, DP, EP, CM, DM
+      AL = LOG(S)
+      BP = CP + DP*AL + EP*AL*AL
+      BM = CM + DM*AL
+      RETURN
+      END
+
+      SUBROUTINE STRING_FRAG(E0,IFL1,IFL2,PX1,PY1,PX2,PY2,IFBAD)
+C...This routine fragments a string of energy E0
+C.  the ends of the strings  have flavors IFL1 and IFL2
+C.  the particles produced are in the  jet-jet frame
+C.  with IFL1 going in the +z direction
+C.     E0 = total energy in jet-jet system
+C.  This version consider also a primordial pT attached
+C.  to the ends of the string PX1,PY1,  PX2,PY2
+C.  OUTPUT:  IFBAD =1  kinematically impossible decay
+c
+c      Modified Nov. 91.  RSF and TSS to fragment symetrically
+c      ie forward and backward are fragmented as leading.
+c      Change- Dec. 92  RSF.  call to ptdis moved- to use flavor
+c      of NEW quark in fragmentation.
+C...........................................................
+      COMMON /S_PLIST/ NP, P(5000,5), LLIST(5000)
+      COMMON /S_MASS1/ AM(49), AM2(49)
+      COMMON /S_diagnostics/ntry,Iflag(5000),xm(5000),zst(5000)
+      DIMENSION WW(2,2), PTOT(4), PX(3),PY(3),IFL(3)
+      DIMENSION LPOINT(3000), PMQ(3)
+      LOGICAL LRANK
+      DATA LRANK/.true./
+
+C...initialise
+      NTRY = 0
+      IFBAD = 0
+200      NTRY = NTRY + 1
+      IF (NTRY .GT. 50)  THEN
+         IFBAD = 1
+         RETURN
+      ENDIF
+      I = NP
+      DO K=1,2
+         WW(K,1) = 1.
+         WW(K,2) = 0.
+      ENDDO
+      PX(1) = PX1
+      PY(1) = PY1
+      PX(2) = PX2
+      PY(2) = PY2
+      PX(3) = 0.
+      PY(3) = 0.
+      PTOT (1) = PX1+PX2
+      PTOT (2) = PY1+PY2
+      PTOT (3) = 0.
+      PTOT (4) = E0
+      IFL(1) = IFL1
+      IFL(2) = IFL2
+      PMQ(1) = QMASS(IFL(1))
+      PMQ(2) = QMASS(IFL(2))
+
+      IBLEAD = 0
+C
+C      SET FLAG FOR GENERATION OF LEADING PARTICLES.
+C      "AND" IS FOR PPBAR ( DIQUARK AT BOTH ENDS)
+C      "OR" IS FOR PP, PPI, ( DIQUARK AT ONE END.)
+C
+      IF (IABS(IFL1) .GT. 10 .AND. IABS(IFL2) .GT. 10)  THEN
+         IBLEAD = 2
+         I = I+1
+         JT = 1.5+RNDM(0)
+         GOTO 350
+      ENDIF
+      IF (IABS(IFL1) .GT. 10 .OR. IABS(IFL2) .GT. 10)  THEN
+         IBLEAD = 1
+         I = I+1
+         JT = 1
+         IF (IABS(IFL2) .GT. 10) JT = 2
+         GOTO 350
+      ENDIF
+
+C...produce new particle: side, pT
+300      I=I+1
+      IF (IBLEAD .GT. 0)  THEN
+           JT = 3 - JT
+           GO TO 350
+       ENDIF
+c
+ 349     continue
+         JT=1.5+RNDM(0)
+ 350      JR=3-JT
+      LPOINT(I) = JT
+      Iflag(i)=0
+c      old call to Ptdis. pre Dec. 92
+c      CALL PTDIS (IFL(JT), PX(3),PY(3))
+
+C...particle ID and pt.
+ 999        continue
+      CALL IFLAV (IFL(JT), 0, IFL(3), LLIST(I))
+ 991    continue
+      PMQ(3) = QMASS(IFL(3))
+      P(I,5) = AM(IABS(LLIST(I)))
+      CALL PTDIS (IFL(3), PX(3),PY(3))
+C...fill transverse momentum
+      P(I,1) = PX(JT) + PX(3)
+      P(I,2) = PY(JT) + PY(3)
+      XMT2 = P(I,5)**2+P(I,1)**2+P(I,2)**2
+
+
+C...test end of fragmentation
+
+      WREM2 = PTOT(4)**2-PTOT(1)**2-PTOT(2)**2-PTOT(3)**2
+      IF (WREM2 .LT. 0.1)  GOTO 200
+      WMIN = PMQ(1)+PMQ(2)+2.*PMQ(3)+ 1.1 + (2.*RNDM(0)-1.)*0.2
+c      WMIN = PMQ(jr)+sqrt(xmt2)+pmq(3)+ 1.1 +(2.*RNDM(0)-1.)*0.2
+c      IF (WREM2 .LT. WMIN**2) goto 400
+      IF (WREM2 .LT. WMIN**2)    Then!   goto 400
+         if (abs(ifl(3)).ne.3) GOTO 400
+          goto 200
+      endif
+
+c
+C...Choose z
+      xm(i)=xmt2
+      IF (IBLEAD .GT. 0.and.abs(ifl(jt)).gt.10)  THEN
+c        Special frag. for leading Baryon only
+         Z = ZBLEAD (IABS(LLIST(I)))
+         IBLEAD = IBLEAD - 1
+      ELSE
+         Z = ZDIS (IFL(3),ifl(jt),XMT2)
+      ENDIF
+c       store z for spliting
+      if (z.le.0) WRITE (6,*) 'z less than 0 =',z
+      zst(i)=z
+      WW(JT,2) = Z*WW(JT,1)
+      WW(JR,2) = XMT2/(WW(JT,2)*E0**2)
+
+      P(I,3) = WW(1,2)*0.5*E0 - WW(2,2)*0.5*E0
+      P(I,4) = WW(1,2)*0.5*E0 + WW(2,2)*0.5*E0
+
+      DO J=1,4
+         PTOT (J) = PTOT(J) - P(I,J)
+      ENDDO
+      DO K=1,2
+         WW(K,1) = WW(K,1) - WW(K,2)
+      ENDDO
+
+C...Reset pT and flavor at ebds of the string
+      PX(JT) = -PX(3)
+      PY(JT) = -PY(3)
+      IFL(JT) =-IFL(3)
+      PMQ(JT) = PMQ(3)
+      GOTO 300
+
+C...Final two hadrons
+400      IF (IFL(JR)*IFL(3) .GT. 100)  GOTO 200
+c   debug- output ptot
+      iflag(i)=1
+      iflag(i+1)=1
+      do iii=1,4
+        p(4999,iii)=ptot(iii)
+      enddo
+c     p(4999,5)=sqrt(wrem2)
+      CALL IFLAV (IFL(JR), -IFL(3), IFLA, LLIST(I+1))
+      P(I+1,5) = AM(IABS(LLIST(I+1)))
+      P(I,1)   = PX(JT)+PX(3)
+      P(I,2)   = PY(JT)+PY(3)
+      I1 = I+1
+      P(I+1,1) = PX(JR)-PX(3)
+      P(I+1,2) = PY(JR)-PY(3)
+      XM1 = P(I,5)**2+P(I,1)**2+P(I,2)**2
+      XM2 = P(I1,5)**2+P(I1,1)**2+P(I1,2)**2
+      IF (SQRT(XM1)+SQRT(XM2) .GT. SQRT(WREM2)) GOTO 200
+      WREM = SQRT(WREM2)
+      EA1 = (WREM2+XM1-XM2)/(2.*WREM)
+      PA2 = (EA1**2-XM1)
+      if (pa2.gt.0)  then
+            PA = SQRT(PA2)
+      else
+            goto 200
+      endif
+      BA = PTOT(3)/PTOT(4)
+      GA = PTOT(4)/WREM
+      S = FLOAT(3-2*JT)
+      P(I,3) = GA*(BA*EA1+S*PA)
+      P(I,4) = GA*(EA1+BA*S*PA)
+      P(I+1,3) = PTOT(3)-P(I,3)
+      P(I+1,4) = PTOT(4)-P(I,4)
+      NA= NP+1
+      NP=I+1
+
+C...reorder  particles along chain (in rank)
+      IF (LRANK)  THEN
+      N1 = NA-1
+      N2 = 0
+      DO J=NA,NP
+         IF(LPOINT(J) .EQ. 2)  THEN
+            N2=N2+1
+            LLIST (NP+N2) = LLIST(J)
+            DO K=1,5
+               P(NP+N2,K)=P(J,K)
+            ENDDO
+         ELSE
+            N1= N1+1
+            IF (N1.LT.J)   THEN
+               LLIST(N1) = LLIST(J)
+               DO K=1,5
+                  P(N1,K) = P(J,K)
+               ENDDO
+            ENDIF
+         ENDIF
+      ENDDO
+      JJ=N1
+      DO J=NP+N2,NP+1,-1
+         JJ= JJ+1
+         LLIST(JJ) = LLIST(J)
+         DO K=1,5
+             P(JJ,K) = P(J,K)
+         ENDDO
+      ENDDO
+      ENDIF
+
+      RETURN
+      END
+      FUNCTION WOOD_SAXON (R, JA)
+C....Woods Saxon nuclear density (normalised to 1)
+C.   for a nucleus of mass number A.
+C.   INPUT R =  (fm)
+C.         JA = mass number
+C.   OUTPUT (fm**-3)
+C......................................................
+      COMMON /CWOOD/ RR0(19:56), AA0(19:56), CC0(19:56)
+      WOOD_SAXON = CC0(JA)/(1.+EXP((R-RR0(JA))/AA0(JA)))
+      RETURN
+      END
+
+      SUBROUTINE WOOD_SAXON_INI
+      COMMON /CWOOD/ RR0(19:56), AA0(19:56), CC0(19:56)
+      DATA PI /3.1415926/
+C...Wood-Saxon parameters from  table 6.2   of Barrett and Jackson
+      RR0 (19) = 2.59
+      AA0 (19) = 0.564
+      RR0 (20) = 2.74
+      AA0 (20) = 0.569
+      RR0 (22) = 2.782
+      AA0 (22) = 0.549
+      RR0 (24) = 2.99
+      AA0 (24) = 0.548
+      RR0 (27) = 2.84
+      AA0 (27) = 0.569
+      RR0 (28) = 3.14
+      AA0 (28) = 0.537
+      RR0 (29) = 3.77
+      AA0 (29) = 0.52
+      RR0 (48) = 3.912
+      AA0 (48) = 0.5234
+      RR0 (56) = 3.98
+      AA0 (56) = 0.569
+      DO J=19, 56
+         IF (RR0(J) .LE. 0.)  THEN
+            RR0(J) = 1.05*FLOAT(J)**0.333333
+            AA0(J) = 0.545
+         ENDIF
+         CC0(J)=3./(4.*PI*RR0(J)**3)/(1.+((AA0(J)*PI)/RR0(J))**2)
+      ENDDO
+      RETURN
+      END
+
+      FUNCTION ZBLEAD (LB)
+C...fragmentation function for leading baryon
+C.  simple form:  f(z) = a + x**b
+C   INPUT : LB = particle code.
+C..................................................
+      COMMON /S_CZLEAD/ CLEAD, FLEAD
+c      COMMON /S_SZLEAD/ CLEADs, FLEADs
+      COMMON /S_CHP/ ICHP(49), ISTR(49), IBAR(49)
+
+            IC = ICHP(Lb)*ISIGN(1,Lb)
+
+      if (lb.ge.34.and.lb.le.39)  then  ! Lambda's and Sigma's
+  665               ZBLEAD = RNDM(0)
+                if (zblead.le..01) goto 665
+c          zblead=zdisn(1) ! blead**2   ! soft
+      else if (ic.eq.0)     then
+          zblead=zdisn(1)   ! blead**2   !soft
+      else if (ic.eq.1)  then  ! fast protons only
+            if (abs(lb).eq.13) then
+              IF (RNDM(0) .LT. CLEAD)  THEN
+  666               ZBLEAD = RNDM(0)
+                if (zblead.le..01) goto 666
+              ELSE
+                  zblead=1.-zdisn(1)  ! zblead**2   !hard
+              ENDIF
+            continue
+           else
+               zblead=zdisn(1)  ! zblead**2   !hard
+           endif
+      else if (ic.eq.2)  then  ! fast delta++
+          zblead=1.- zdisn(1)  ! (zblead)**.3333
+      else
+               zblead=RNDM(0) ! zdisn(1)     !hard
+      endif
+       RETURN
+      END
+      FUNCTION ZDIS (IFL1,ifl2, XMT2)
+C...z distribution
+      COMMON /S_CZDIS/ FAin, FB0in
+      COMMON /S_CZDISs/ FAs1, fAs2
+      COMMON /S_RUN/ SQS, S, Q2MIN, XMIN, ZMIN , kb ,kt
+      fa=fain
+      fb0=fb0in
+C  following statement corrected by D.H. may 10, 1996
+      if (abs(kb).ge.13) then   ! baryons only
+          if (abs(ifl2).eq.3)  fa=fain+fas2
+          if (abs(ifl1).eq.3)  fa=fain+fas1
+      endif
+      FB = FB0*XMT2
+      IF(FA.GT.0.01.AND.ABS(FA-1.)/FB.LE.0.01) ZMAX=FB/(1.+FB)+
+     +  (1.-FA)*FB**2/(1.+FB)**3
+      IF(FA.GT.0.01.AND.ABS(FA-1.)/FB.GT.0.01) ZMAX=0.5*(1.+FB-
+     +  SQRT((1.-FB)**2+4.*FA*FB))/(1.-FA)
+      IF(ZMAX.LT.0.1)  ZDIV=2.75*ZMAX
+      IF(ZMAX.GT.0.85)
+     +     ZDIV=ZMAX-0.6/FB**2+(FA/FB)*ALOG((0.01+FA)/FB)
+C...Choice if z, preweighted for peaks at low or high z
+100      Z=RNDM(0)
+      IDIV=1
+      FPRE=1.
+      IF (ZMAX.LT.0.1)  THEN
+         IF(1..LT.RNDM(0)*(1.-ALOG(ZDIV)))  IDIV=2
+         IF (IDIV.EQ.1)  Z=ZDIV*Z
+         IF (IDIV.EQ.2)  Z=ZDIV**Z
+         IF (IDIV.EQ.2)  FPRE=ZDIV/Z
+      ELSEIF (ZMAX.GT.0.85)  THEN
+         IF(1..LT.RNDM(0)*(FB*(1.-ZDIV)+1.)) IDIV=2
+         IF (IDIV.EQ.1)  Z=ZDIV+ALOG(Z)/FB
+         IF (IDIV.EQ.1)  FPRE=EXP(FB*(Z-ZDIV))
+         IF (IDIV.EQ.2)  Z=ZDIV+Z*(1.-ZDIV)
+      ENDIF
+C...weighting according to the correct formula
+      IF (Z.LE.FB/(50.+FB).OR.Z.GE.1.)  GOTO 100
+      FVAL=(ZMAX/Z)*EXP(FB*(1./ZMAX-1./Z))
+      IF(FA.GT.0.01)  FVAL=((1.-Z)/(1.-ZMAX))**FA*FVAL
+      IF(FVAL.LT.RNDM(0)*FPRE)  GOTO 100
+      ZDIS=Z
+      RETURN
+      END
+      FUNCTION ZDISN (n)
+C...Generate (1-x)**n
+      continue
+666   rmin=1.1
+      do i=1,n+1
+         R1=RNDM(0)
+         IF (R1.LE.RMIN) RMIN=R1
+      ENDDO
+      ZDISn=RMIN
+      if (zdisn.le..01) goto 666
+      if (zdisn.ge..99) goto 666
+      END
+      FUNCTION ZSAMPLE (ZMIN,L)
+C...This function returns as output a value z=log(x)
+C.  distributed as f(x) = g(x) + 4/9 *(q(x) + qbar(x))
+C.  from a minimum value ZMIN to 0,
+C.  for a proton (L=1) or a pi (L=2)
+C.  needs to be initialised with: CALL ZSAMPLE_INI
+C.....................................................
+      COMMON /S_CZGEN/ XA,XB,XMAX,ZA,ZB,ZMAX,DX,DZ,NX,NZ,APART(2),
+     +   FFA(2),FFB(2),
+     +   DFX(2),DFZ(2),XX(200,2),ZZ(200,2),FFX(200,2),FFZ(200,2)
+
+      F = PART_INT(ZMIN,L)*RNDM(0)
+C D.H.
+      IF (F .GE. FFA(L))  THEN
+         ZSAMPLE = ZA - (F-FFA(L))/APART(L)
+C D.H.
+      ELSE IF (F .GE. FFB(L))  THEN
+         JF = (F-FFB(L))/DFZ(L) + 1
+         F0 = FFB(L) + DFZ(L)*FLOAT(JF-1)
+         T = (F-F0)/DFZ(L)
+         ZSAMPLE = ZZ(JF,L)*(1.-T)+ZZ(JF+1,L)*T
+      ELSE
+         JF = F/DFX(L)+1
+         F0 = DFX(L)*FLOAT(JF-1)
+         T = (F-F0)/DFX(L)
+         X = XX(JF,L)*(1.-T)+XX(JF+1,L)*T
+         ZSAMPLE = LOG(X)
+      ENDIF
+      RETURN
+      END
+      SUBROUTINE ZSAMPLE_INI
+C...This subroutine initialise the generation of
+C.  z = log(x)  for the generation  of z according
+C.  to the structure functions
+C..................................................
+      COMMON /S_CZGEN/ XA,XB,XMAX,ZA,ZB,ZMAX,DX,DZ,NX,NZ,APART(2),
+     +   FFA(2),FFB(2),
+     +   DFX(2),DFZ(2),XX(200,2),ZZ(200,2),FFX(200,2),FFZ(200,2)
+
+      XA = 1.E-04
+      XB = 1.E-01
+      XMAX = 0.80
+      ZA = LOG(XA)
+      ZB = LOG(XB)
+      ZMAX = LOG(XMAX)
+      NX = 200
+      NZ = 200
+      DX = (XMAX-XB)/FLOAT(NX-1)
+      DZ = (ZB-ZA)/FLOAT(NZ-1)
+
+      DO L=1,2
+C         very small x:  f(x) = A/x
+         APART(L) = PARTON(0.,L)
+
+C         large x: interpolation in x
+         FFX(1,L) = 0.
+         DO J=2,NX
+            X = XMAX - DX*(FLOAT(J)-0.5)
+             G = PARTON(X,L)/X
+            FFX(J,L) = FFX(J-1,L)+G*DX
+         ENDDO
+         CALL INVERT_ARRAY (FFX(1,L),XMAX,-DX,NX,XX(1,L),FMIN,
+     +                        DFX(L))
+
+C         small x: interpolation in log(x)
+         FFZ(1,L) = FFX(NX,L)
+         DO J=2,NZ
+            Z = ZB - DZ*(FLOAT(J)-0.5)
+            X = EXP(Z)
+            G = PARTON(X,L)
+            FFZ(J,L) = FFZ(J-1,L)+G*DZ
+         ENDDO
+         CALL INVERT_ARRAY (FFZ(1,L),ZB,-DZ,NZ,ZZ(1,L),FMIN,DFZ(L))
+         FFA(L) = FFZ(NZ,L)
+         FFB(L) = FFX(NX,L)
+      ENDDO
+      RETURN
+      END
+      BLOCK DATA DATDEC
+      COMMON /S_CSYDEC/ IDB(49), CBR(102), KDEC(612), LBARP(49)
+      COMMON /S_MASS1/ AM(49), AM2(49)
+      COMMON /S_CHP/ ICHP(49), ISTR(49), IBAR(49)
+      COMMON /S_CNAM/ NAMP (0:49)
+      CHARACTER NAMP*6
+      DATA CBR /3*1.,0.,1.,1.,0.6351,0.8468,0.9027,0.9200,0.9518,1.,
+     +   0.6351,0.8468,0.9027,0.9200,0.9518,1.,0.2160,0.3398,0.4748,
+     +   0.6098,0.8049,1.,0.6861,1.,3*0.,0.5,1.,0.5,1.,
+     +   0.3890,0.7080,0.9440,0.9930,1.,0.,0.4420,0.6470,0.9470,0.9770,
+     +   0.9990,4*1.,0.6670,1.,9*0.,0.6670,1.,0.6670,1.,0.6670,1.,
+     +   0.8880,0.9730,1.,0.4950,0.8390,0.9870,1.,0.5160,5*1.,0.6410,1.,
+     +   1.,0.67,1.,0.33,1.,1.,0.88,0.94,1.,0.88,0.94,1.,0.88,0.94,1.,
+     +   0.33,1.,0.67,1.,0.678,0.914,1./
+      DATA AM / 0.,2*0.511E-3, 2*0.10566, 0.13497, 2*0.13957,
+     +   2*0.49365, 2*0.49767, 0.93827, 0.93957, 4*0.,0.93827,
+     +   0.93957, 2*0.49767, 0.54880,0.95750,2*0.76830,0.76860,
+     +   2*0.89183,2*0.89610,0.78195,1.01941,1.18937,1.19255,
+     +   1.19743,1.31490,1.32132,1.11563,1.23100,1.23500,
+     +   1.23400,1.23300,1.38280,1.38370,1.38720,
+     +   1.53180,1.53500,1.67243 /
+      DATA AM2 /0.,2*2.61121E-07,2*0.011164,0.018217,0.019480,
+     + 0.019480,0.243690,0.243690,0.247675,0.247675,0.880351,0.882792,
+     + 0.000000,0.000000,0.000000,0.000000,0.880351,0.882792,0.247675,
+     + 0.247675,0.301181,0.916806,0.590285,0.590285,0.590746,0.795361,
+     + 0.795361,0.802995,0.802995,0.611446,1.039197,1.414601,1.422176,
+     + 1.433839,1.728962,1.745887,1.244630,1.515361,1.525225,1.522765,
+     + 1.520289,1.912136,1.914626,1.924324,2.346411,2.356225,2.797022/
+      DATA IDB /
+     +    0,0,0,1,2,3,5,6,7,13,19,25,8*0,30,32,34,40,46,47,48,49,60,62,
+     +    64,66,69,73,75,76,77,78,79,81,82,84,86,87,90,93,96,98,100/
+      DATA KDEC /
+     + 3,1,15,2,18,0,3,1,16,3,17,0,2,0,1,1,8*0,2,0,4,17,0,0,2,0,5,18,0,
+     + 0,2,0,4,17,0,0,2,0,7,6,0,0,3,0,7,7,8,0,3,0,7,6,6,0,3,1,17,4,6,0,
+     + 3,1,15,2,6,0,2,0,5,18,0,0,2,0,8,6,0,0,3,0,8,8,7,0,3,0,8,6,6,0,3,
+     + 1,18,5,6,0,3,1,16,3,6,0,3,0,6,6,6,0,3,0,7,8,6,0,3,1,18,5,7,0,3,
+     + 1,17,4,8,0,3,1,16,3,7,0,3,1,15,2,8,0,2,0,7,8,0,0,2,0,6,6,20*0,1,
+     + 0,11,3*0,1,0,12,0,0,0,1,0,11,0,0,0,1,0,12,0,0,0,2,0,1,1,0,0,3,0,
+     + 6,6,6,0,3,0,7,8,6,0,3,0,1,7,8,0,3,0,1,3,2,7*0,3,0,7,8,23,0,3,0,6
+     + ,6,23,0,2,0,1,27,0,0,2,0,1,32,0,0,2,0,1,1,0,0,3,0,6,6,6,0,2,0,7,
+     + 6,0,0,2,0,8,6,0,0,2,0,7,8,0,0,2,0,21,7,0,0,2,0,9,6,0,0,54*0,2,0,
+     + 22,8,0,0,2,0,10,6,0,0,2,0,9,8,0,0,2,0,21,6,0,0,2,0,10,7,0,0,
+     + 2,0,22,6,0,0,3,0,7,8,6,0,2,0,1,6,0,0,2,0,7,8,0,0,2,0,9,10,0,
+     + 0,2,0,11,12,0,0,3,0,7,
+     + 8,6,0,2,0,1,23,0,0,2,0,13,6,0,0,2,0,14,7,0,0,2,0,39,1,0,0,2,
+     + 0,14,8,0,0,2,0,39,6,0,0,2,0,39,8,0,0,2,0,13,8,0,0,2,0,
+     + 14,6,0,0,2,0,13,7,0,0,2,0,13,6,
+     + 0,0,2,0,14,7,0,0,2,0,13,8,0,0,2,0,14,6,0,0,2,0,14,8,0,0,2,0,
+     + 39,7,0,0,2,0,34,6,0,0,2,0,35,7,0,0,2,0,39,6,0,0,2,0,34,8,0,0,
+     + 2,0,36,7,0,0,2,0,39,8,0,0,2,
+     + 0,35,8,0,0,2,0,36,6,0,0,2,0,37,6,0,0,2,0,38,7,0,0,2,0,
+     + 37,8,0,0,2,0,38,6,0,0,2,0,39,10,0,0,2,0,37,8,0,0,2,0,38,6,0,0/
+      DATA LBARP/1,3,2,5,4,6,8,7,10,9,11,12,-13,-14,16,15,18,17,13,14,
+     +  22,21,23,24,26,25,27,29,28,31,30,32,33,-34,-35,-36,-37,-38,-39,
+     +  -40,-41,-42,-43,-44,-45,-46,-47,-48,-49/
+      DATA ICHP /0,1,-1,1,-1,0,1,-1,1,-1,0,0,1,0,4*0,-1,0,4*0,
+     +    1,-1,0,1,-1,4*0,1,0,-1,0,-1,0,2,1,0,-1,1,0,-1,0,-1,-1/
+      DATA ISTR /8*0,-1,+1,10,10,8*0,-1,+1,5*0,-1,+1,-1,+1,2*0,
+     +           3*1,2*2,1,4*0,3*1,2*2,3 /
+      DATA IBAR /12*0,2*1,4*0,2*-1,13*0,16*1/
+      DATA NAMP /
+     +     '     ','gam   ','e+','e-','mu+','mu-','pi0',
+     +     'pi+','pi-','k+', 'k-', 'k0l','k0s',
+     +     'p', 'n', 'nue', 'nueb', 'num', 'numb', 'pbar', 'nbar',
+     +     'k0', 'k0b', 'eta', 'etap', 'rho+', 'rho-','rho0',
+     +     'k*+','k*-','k*0','k*0b','omeg', 'phi', 'SIG+', 'SIG0',
+     +     'SIG-','XI0','XI-','LAM','DELT++','DELT+','DELT0','DELT-',
+     +     'SIG*+ ','SIG*0','SIG*-', 'XI*0', 'XI*-', 'OME*-'/
+      END
+      SUBROUTINE DECPAR (LA,P0,ND,LL,P)
+C...This subroutine generates the decay of a particle
+C.  with ID = LA, and 5-momentum P0(1:5)
+C.  into ND particles of 5-momenta P(j,1:5) (j=1:ND)
+C.
+C.  If the initial particle code is LA=0
+C.  then ND and LL(1:ND) are considered as  input and
+C.  the routine generates a phase space decay into ND
+C.  particles of codes LL(1:nd)
+C.
+C.  june 1992
+C.  This version  contains the decay of polarized muons
+C.  The muon codes are  L =  4 : mu+ R
+C.                          -4 : mu+ L
+C.                           5 : mu- L
+C.                          -5 : mu- R
+C------------------------------------------------------
+      COMMON /S_CSYDEC/ IDB(49), CBR(102), KDEC(612), LBARP(49)
+      COMMON /S_MASS1/ AM(49), AM2(49)
+      DIMENSION P0(5), LL(10), P(10,5)
+      DIMENSION PV(10,5), RORD(10), UE(3),BE(3), FACN(3:10)
+      DATA FACN /2.,5.,15.,60.,250.,1500.,12000.,120000./
+      DATA PI /3.1415926/
+
+C...c.m.s. Momentum in two particle decays
+      PAWT(A,B,C) = SQRT((A**2-(B+C)**2)*(A**2-(B-C)**2))/(2.*A)
+
+C...Phase space decay into the particles in the list
+      IF (LA .EQ. 0)  THEN
+          MAT = 0
+          MBST = 0
+          PS = 0.
+          DO J=1,ND
+             P (J,5) = AM(IABS(LL(J)))
+             PV(J,5) = AM(IABS(LL(J)))
+             PS = PS+P(J,5)
+          ENDDO
+          DO J=1,4
+             PV(1,J) = P0(J)
+          ENDDO
+          PV(1,5) = P0(5)
+          GOTO 140
+      ENDIF
+
+C...Choose decay channel
+      L = IABS(LA)
+      ND=0
+      IDC = IDB(L)-1
+      IF (IDC+1 .LE.0)  RETURN
+      RBR = RNDM(0)
+110   IDC=IDC+1
+      IF(RBR.GT.CBR(IDC))  GOTO 110
+
+      KD =6*(IDC-1)+1
+      ND = KDEC(KD)
+      MAT= KDEC(KD+1)
+      MBST=0
+      IF (MAT .GT.0 .AND. P0(4) .GT. 20*P0(5)) MBST=1
+      IF (MAT .GT.0 .AND. MBST .EQ. 0)
+     +        BETA = SQRT(P0(1)**2+P0(2)**2+P0(3)**2)/P0(4)
+      PS = 0.
+      DO J=1,ND
+         LL(J) = KDEC(KD+1+J)
+         P(J,5)  = AM(LL(J))
+         PV(J,5) = AM(LL(J))
+         PS = PS + P(J,5)
+      ENDDO
+      DO J=1,4
+         PV(1,J) = 0.
+         IF (MBST .EQ. 0)  PV(1,J) = P0(J)
+      ENDDO
+      IF (MBST .EQ. 1)  PV(1,4) = P0(5)
+      PV(1,5) = P0(5)
+
+140   IF (ND .EQ. 2) GOTO 280
+
+      IF (ND .EQ. 1)  THEN
+         DO J=1,4
+            P(1,J) = P0(J)
+         ENDDO
+         RETURN
+      ENDIF
+
+C...Calculate maximum weight for ND-particle decay
+      WWTMAX = 1./FACN(ND)
+      PMAX=PV(1,5)-PS+P(ND,5)
+      PMIN=0.
+      DO IL=ND-1,1,-1
+         PMAX = PMAX+P(IL,5)
+         PMIN = PMIN+P(IL+1,5)
+         WWTMAX = WWTMAX*PAWT(PMAX,PMIN,P(IL,5))
+      ENDDO
+
+C...generation of the masses, compute weight, if rejected try again
+240   RORD(1) = 1.
+      DO 260 IL1=2,ND-1
+        RSAV = RNDM(0)
+        DO 250 IL2=IL1-1,1,-1
+          IF(RSAV.LE.RORD(IL2))   GOTO 260
+250     RORD(IL2+1)=RORD(IL2)
+260     RORD(IL2+1)=RSAV
+      RORD(ND) = 0.
+      WT = 1.
+      DO 270 IL=ND-1,1,-1
+      PV(IL,5)=PV(IL+1,5)+P(IL,5)+(RORD(IL)-RORD(IL+1))*(PV(1,5)-PS)
+270   WT=WT*PAWT(PV(IL,5),PV(IL+1,5),P(IL,5))
+      IF (WT.LT.RNDM(0)*WWTMAX)   GOTO 240
+
+C...Perform two particle decays in respective cm frame
+280   DO 300 IL=1,ND-1
+      PA=PAWT(PV(IL,5),PV(IL+1,5),P(IL,5))
+      UE(3)=2.*RNDM(0)-1.
+      PHI=2.*PI*RNDM(0)
+      UT = SQRT(1.-UE(3)**2)
+      UE(1) = UT*COS(PHI)
+      UE(2) = UT*SIN(PHI)
+      DO 290 J=1,3
+      P(IL,J)=PA*UE(J)
+290   PV(IL+1,J)=-PA*UE(J)
+      P(IL,4)=SQRT(PA**2+P(IL,5)**2)
+300   PV(IL+1,4)=SQRT(PA**2+PV(IL+1,5)**2)
+
+C...Lorentz transform decay products to lab frame
+      DO 310 J=1,4
+310   P(ND,J)=PV(ND,J)
+      DO 340 IL=ND-1,1,-1
+      DO 320 J=1,3
+320   BE(J)=PV(IL,J)/PV(IL,4)
+      GA=PV(IL,4)/PV(IL,5)
+      DO 340 I=IL,ND
+      BEP = BE(1)*P(I,1)+BE(2)*P(I,2)+BE(3)*P(I,3)
+      DO 330 J=1,3
+330   P(I,J)=P(I,J)+GA*(GA*BEP/(1.+GA)+P(I,4))*BE(J)
+340   P(I,4)=GA*(P(I,4)+BEP)
+
+C...Weak decays
+      IF (MAT .EQ. 1)  THEN
+         F1=P(2,4)*P(3,4)-P(2,1)*P(3,1)-P(2,2)*P(3,2)-P(2,3)*P(3,3)
+         IF (MBST.EQ.1)  THEN
+C          WT = P0(5)*P(1,4)*F1
+           WT = P0(5)*(P(1,4)+FLOAT(LA/L)*P(1,3))*F1
+         ENDIF
+         IF (MBST.EQ.0)  THEN
+           WT=F1*(P(1,4)*P0(4)-P(1,1)*P0(1)-P(1,2)*P0(2)-P(1,3)*P0(3))
+           WT= WT-FLOAT(LA/L)*(P0(4)*BETA*P(1,4)-P0(4)*P(1,3))*F1
+         ENDIF
+         WTMAX = P0(5)**4/8.
+         IF(WT.LT.RNDM(0)*WTMAX)   GOTO 240
+      ENDIF
+
+C...Boost back for rapidly moving particle
+      IF (MBST .EQ. 1)   THEN
+         DO 440 J=1,3
+440      BE(J)=P0(J)/P0(4)
+         GA= P0(4)/P0(5)
+         DO 460 I=1,ND
+         BEP=BE(1)*P(I,1)+BE(2)*P(I,2)+BE(3)*P(I,3)
+         DO 450 J=1,3
+450         P(I,J)=P(I,J)+GA*(GA*BEP/(1.+GA)+P(I,4))*BE(J)
+460         P(I,4)=GA*(P(I,4)+BEP)
+      ENDIF
+
+C...labels for antiparticle decay
+      IF (LA .LT. 0 .AND. L .GT. 18)  THEN
+           DO J=1,ND
+            LL(J) = LBARP(LL(J))
+         ENDDO
+      ENDIF
+
+      RETURN
+      END
+      SUBROUTINE DECPR (LUN)
+C...Print on unit LUN the list of particles and decay channels
+      COMMON /S_CSYDEC/ IDB(49), CBR(102), KDEC(612), LBARP(49)
+      COMMON /S_MASS1/ AM(49), AM2(49)
+      COMMON /S_CNAM/ NAMP (0:49)
+      CHARACTER*6 NAMP
+      DIMENSION LL(3)
+
+      DO L=1,49
+         IDC = IDB(L)-1
+         NC = 0
+         WRITE (LUN,10) L,NAMP(L), AM(L)
+         IF(IDC+1 .GT. 0)  THEN
+            CB = 0.
+110         IDC=IDC+1
+            NC = NC+1
+            CBOLD = CB
+            CB = CBR(IDC)
+            BR = CB-CBOLD
+            KD = 6*(IDC-1)+1
+            ND = KDEC(KD)
+            MAT= KDEC(KD+1)
+            DO J=1,ND
+              LL(J) = KDEC(KD+1+J)
+            ENDDO
+            WRITE (LUN,15) NC,BR,ND,MAT, (NAMP(LL(J)),J=1,ND)
+            IF (CB .LT. 1.)  GOTO 110
+         ENDIF
+      ENDDO
+      RETURN
+10    FORMAT(1X,I3,2X,A6,3X,F10.4)
+15    FORMAT(5X,I2,2X,F9.4,I4,I4,2X,3(A6,2X))
+      END
+      SUBROUTINE DECSIB
+C----------------------------------------------------------------------------
+C  Code for Decay  developed for the SIBYLL montecarlo
+C----------------------------------------------------------------------------
+C...Decay all unstable particle in Sibyll
+C.  decayed particle have the code increased by 10000
+      COMMON /S_CSYDEC/ IDB(49), CBR(102), KDEC(612), LBARP(49)
+      COMMON /S_PLIST/ NP, P(5000,5), LLIST(5000)
+      COMMON /S_PLIST1/ LLIST1(5000)
+      DIMENSION P0(5), LL(10), PD(10,5)
+      NN = 1
+      DO J=1,NP
+         LLIST1(J) = 0
+      ENDDO
+      DO WHILE (NN .LE. NP)
+         L= LLIST(NN)
+         IF (IDB(IABS(L)) .GT. 0)  THEN
+            DO K=1,5
+              P0(K) = P(NN,K)
+            ENDDO
+            CALL DECPAR (L,P0,ND,LL,PD)
+            LLIST(NN) = LLIST(NN)+ISIGN(10000,LLIST(NN))
+            DO J=1,ND
+               DO K=1,5
+                  P(NP+J,K) = PD(J,K)
+               ENDDO
+               LLIST(NP+J)=LL(J)
+               LLIST1(NP+J)=NN
+            ENDDO
+            NP=NP+ND
+         ENDIF
+         NN = NN+1
+      ENDDO
+      RETURN
+      END
+      SUBROUTINE DEC_DEBUG (L,P0, ND, LL, PD)
+      COMMON /S_CNAM/ NAMP (0:49)
+      CHARACTER*6 NAMP
+      DIMENSION P0(5), LL(10), PD(10,5)
+      ETOT = 0.
+      DO J=1,ND
+         ETOT = ETOT + PD(J,4)
+      ENDDO
+      WRITE(*,*)  NAMP(IABS(L)),' -> ', (NAMP(IABS(LL(J))),J=1,ND)
+      WRITE(*,*)  ' Ei, Ef = ', P0(4), ETOT, ' L = ', L
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/VENUS.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/VENUS.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/VENUS.f	(revision 4308)
@@ -0,0 +1,17870 @@
+C=======================================================================
+C
+C                           V E N U S  4.12
+C                 (VERY ENERGETIC NUCLEAR SCATTERING)
+C                      SUBROUTINE-TURBO-VERSION            MAY 04, 1994
+C
+C-----------------------------------------------------------------------
+C
+C   AUTHOR:
+C   -------
+C
+C   KLAUS WERNER
+C
+C   UNIV. HEIDELBERG, INST. F. THEORETISCHE PHYSIK
+C   PHILOSOPHENWEG 19, 6900 HEIDELBERG, GERMANY
+C   WERNER@DHDMPI5.BITNET, WERNER@MINNIE.MPI-HD.MPG.DE, 28877::WERNER
+C
+C   NOW AT: 
+C   UNIVERSITE DE NANTES, SUBATECH - ECOLE DES MINES
+C   4, RUE ALFRED KASTLER, F44070 NANTES CEDEX 03, FRANCE
+C   E-MAIL: WERNER@NANHP2.IN2P3.FR
+C   FAX:    (33)  51 85 84 79
+C   TEL:    (33)  51 85 84 25
+C
+C
+C   SUBROUTINE-TURBO-VERSION 4.12/5:
+C   --------------------------------
+C   DIETER HECK
+C   FORSCHUNGSZENTRUM KARLSRUHE, INST. F. KERNPHYSIK 3
+C   POSTFACH 3640, D-76021 KARLSRUHE, GERMANY
+C   E-MAIL:  HECK@IK3.FZK.DE
+C   FAX:     07247-82-4075
+C   TEL:     07247-82-3777
+C
+C   LAST CHANGES:  OCT  05, 1995
+C-----------------------------------------------------------------------
+C
+C   VENUS:
+C   ------
+C
+C  VENUS IS A MONTE CARLO PROCEDURE TO SIMULATE HADRONIC INTERACTIONS AT
+C  ULTRARELATIVISTIC ENERGIES (HADRON-HADRON, HADRON-NUCLEUS, NUCLEUS-
+C  NUCLEUS SCATTERING), AND ALSO INTERACTIONS INVOLVING LEPTONS (E+E-
+C  ANNIHILATION, LEPTON-NUCLEON, LEPTON-NUCLEUS SCATTERING).
+C  VENUS IS BASED ON GRIBOV-REGGE THEORY (OF MULTIPLE POMERON EXCHANGE)
+C  AND CLASSICAL RELATIVISTIC STRING DYNAMICS. A DETAILED DESCRIPTION CA
+C  BE FOUND IN THE UNIV. HEIDELBERG PREPRINT HD-TVP-93-1 (270 PAGES),
+C  WHICH IS PUBLISHED IN PHYSICS REPORTS 232 (1993) 87-299.
+C
+C   DISTRIBUTION:
+C   -------------
+C
+C  THIS CODE SHOULD NOT BE DISTRIBUTED WITHOUT NOTIFYING THE AUTHOR, IN-
+C  DICATING WHAT THE CODE IS GOING TO BE USED FOR. DEPENDING ON THE TYPE
+C  OF REACTION AND THE KIND OF OBSERVABLES ANALYSED,  THE SYSTEMATIC UN-
+C  CERTAINTIES OF THE VENUS SIMULATIONS VARY STRONGLY,  AND THIS SHOULD
+C  BE CLARIFIED BEFORE USING VENUS.
+C
+C   IMPORTANT FEATURES:
+C   -------------------
+C
+C  COVARIANT TREATMENT OF SECONDARY INTERACTIONS. EACH PRODUCED PARTICLE
+C  IS ALLOWED TO REINTERACT WITH OTHER PRODUCED PARTICLES OR WITH
+C  SPECTATORS. IMPORTANT FOR HADRON-NUCLEUS, NUCLEUS-NUCLEUS AND
+C  LEPTON-NUCLEUS SCATTERING.
+C  NO FINAL STATE INTERACTION, IF 'RADIAC' IS SET ZERO.
+C
+C  PARTICIPATION OF ANTIQUARKS (IN ADDITION TO QUARKS) IN THE
+C  COLOUR EXCHANGE MECHANISM TO FORM STRINGS.
+C
+C  POSSIBILITY OF DIQUARK BREAKUP, LEADING TO MULTI-STRINGS, LIKE
+C  A FORWARD QUARK LINKED VIA TWO (!) STRINGS TO TWO BACKWARD
+C  QUARKS (DOUBLE-STRING). SUCH STRINGS FRAGMENT DIFFERENTLY THAN
+C  QUARK-DIQUARK STRINGS. IN CASE OF THE DOUBLE-STRING, THE FORWARD
+C  QUARK WILL FRAGMENT VIA TWO BREAKS INTO A LEADING BARYON.
+C
+C  SOPHISTICATED FRAGMENTATION PROCEDURE. SINCE SPACE-TIME
+C  EVOLUTION IS AN IMPORTANT ISSUE CONCERNING FINAL STATE INTER-
+C  ACTIONS, IT IS NOT ENOUGH TO HAVE A FRAGMENTATION MODEL WHICH
+C  WORKS, IT SHOULD HAVE THE RIGHT SPACE-TIME DESCRIPTION! THERE-
+C  FOR THE FIELD-FEYNMAN MODEL OF EARLIER VERSIONS (<3.00) HAS BEEN
+C  ABANDONED AND REPLACED BY A VERY POWERFUL AND APPEALING PROCEDURE
+C  SUGGESTED BY ARTRU/MENNESSIER.
+C
+C  VERY LARGE RESONANCE TABLE, INCLUDING FOR EXAMPLE ALL NUCLEON
+C  RESONANCES UP TO 2 GEV. THE DECAY TABLE INCLUDES ALSO KSHORT
+C  AND LAMBDA DECAYS. DECAY SUPPRESSION IS GOVERNED BY THE PARAMETERS
+C  'NDECAY' AND 'NDECAX'. SETTING 'NDECAY' TO 1 SUPPRESSES ALL DECAYS.
+C  FOR FURTHER DETAILS SEARCH FOR 'DECAY SUPPRESSION' IN SUBR. AINITL
+C
+C  FOR VERSION >= 4.01, WE USE GRIBOVS CUT-POMERON PROBABILITIES TO
+C  DETERMINE THE WEIGHTS FOR MULTI-COLOUR-EXCHANGE.
+C
+C-----------------------------------------------------------------------
+C
+C   PARTICLE ID (SAME AS ISAJET - SEE ISAJET.DOC, F.E.PAIGE)
+C   --------------------------------------------------------
+C
+C  QUARKS AND LEPTONS ARE NUMBERED IN ORDER OF MASS:
+C        UP=1 DN=2 ST=3 CH=4 BT=5 TP=6
+C        NUE=11 E-=12 NUM=13 MU-=14 NUT=15 TAU-=16
+C  WITH A NEGATIVE SIGN FOR ANTIPARTICLES.
+C  ARBITRARY CONVENTIONS ARE:
+C        GL=9 GM=10 KS=20 KL=-20 W+=80 Z0=90 .
+C  THE CODE FOR A MESON IS AN INTEGER +-JKL, WHERE J.LE.K ARE THE
+C  QUARKS AND L IS THE SPIN. THE SIGN IS FOR THE J QUARK.
+C  FLAVOR SINGLET MESONS ARE ORDERED BY MASS:
+C        PI0=110 ETA=220 ETAP=330 ETAC=440 .
+C  SIMILARLY, THE CODE FOR A BARYON IS A COMPOUND INTEGER +-IJKL
+C  FORMED FROM THE THREE QUARKS I,J,K AND A SPIN LABEL L=0,1.
+C  THE CODE FOR A DIQUARK IS +-IJ00.
+C
+C   LIST OF IDENT CODES:
+C
+C     IDENT     LABEL           MASS    CHARGE
+C         1     UP        .30000E+00       .67
+C        -1     UB        .30000E+00      -.67
+C         2     DN        .30000E+00      -.33
+C        -2     DB        .30000E+00       .33
+C         3     ST        .50000E+00      -.33
+C        -3     SB        .50000E+00       .33
+C         4     CH        .16000E+01       .67
+C        -4     CB        .16000E+01      -.67
+C         5     BT        .49000E+01      -.33
+C        -5     BB        .49000E+01       .33
+C         6     TP        .30000E+02       .67
+C        -6     TB        .30000E+02      -.67
+C
+C         9     GL       0.               0.00
+C
+C        10     GM       0.               0.00
+C
+C        11     NUE      0.               0.00
+C       -11     ANUE     0.               0.00
+C        12     E-        .51100E-03     -1.00
+C       -12     E+        .51100E-03      1.00
+C        13     NUM      0.               0.00
+C       -13     ANUM     0.               0.00
+C        14     MU-       .10566E+00     -1.00
+C       -14     MU+       .10566E+00      1.00
+C        15     NUT      0.               0.00
+C       -15     ANUT     0.               0.00
+C        16     TAU-      .18070E+01     -1.00
+C       -16     TAU+      .18070E+01      1.00
+C
+C        20     KS        .49767E+00      0.00
+C       -20     KL        .49767E+00      0.00
+C
+C        80     W+        SIN2W=.23       1.00
+C       -80     W-        SIN2W=.23      -1.00
+C        90     Z0        SIN2W=.23       0.00
+C
+C       110     PI0       .13496E+00      0.00
+C       120     PI+       .13957E+00      1.00
+C      -120     PI-       .13957E+00     -1.00
+C       220     ETA       .54880E+00      0.00
+C       130     K+        .49367E+00      1.00
+C      -130     K-        .49367E+00     -1.00
+C       230     K0        .49767E+00      0.00
+C      -230     AK0       .49767E+00      0.00
+C       330     ETAP      .95760E+00      0.00
+C       140     AD0       .18633E+01      0.00
+C      -140     D0        .18633E+01      0.00
+C       240     D-        .18683E+01     -1.00
+C      -240     D+        .18683E+01      1.00
+C       340     F-        .20300E+01     -1.00
+C      -340     F+        .20300E+01      1.00
+C       440     ETAC      .29760E+01      0.00
+C
+C       111     RHO0      .77000E+00      0.00
+C       121     RHO+      .77000E+00      1.00
+C      -121     RHO-      .77000E+00     -1.00
+C       221     OMEG      .78260E+00      0.00
+C       131     K*+       .88810E+00      1.00
+C      -131     K*-       .88810E+00     -1.00
+C       231     K*0       .89220E+00      0.00
+C      -231     AK*0      .89220E+00      0.00
+C       331     PHI       .10196E+01      0.00
+C       141     AD*0      .20060E+01      0.00
+C      -141     D*0       .20060E+01      0.00
+C       241     D*-       .20086E+01     -1.00
+C      -241     D*+       .20086E+01      1.00
+C       341     F*-       .21400E+01     -1.00
+C      -341     F*+       .21400E+01      1.00
+C       441     JPSI      .30970E+01      0.00
+C
+C      1120     P         .93828E+00      1.00
+C     -1120     AP        .93828E+00     -1.00
+C      1220     N         .93957E+00      0.00
+C     -1220     AN        .93957E+00      0.00
+C      1130     S+        .11894E+01      1.00
+C     -1130     AS-       .11894E+01     -1.00
+C      1230     S0        .11925E+01      0.00
+C     -1230     AS0       .11925E+01      0.00
+C      2130     L         .11156E+01      0.00
+C     -2130     AL        .11156E+01      0.00
+C      2230     S-        .11974E+01     -1.00
+C     -2230     AS+       .11974E+01      1.00
+C      1330     XI0       .13149E+01      0.00
+C     -1330     AXI0      .13149E+01      0.00
+C      2330     XI-       .13213E+01     -1.00
+C     -2330     AXI+      .13213E+01      1.00
+C      1140     SC++      .24300E+01      2.00
+C     -1140     ASC--     .24300E+01     -2.00
+C      1240     SC+       .24300E+01      1.00
+C     -1240     ASC-      .24300E+01     -1.00
+C      2140     LC+       .22600E+01      1.00
+C     -2140     ALC-      .22600E+01     -1.00
+C      2240     SC0       .24300E+01      0.00
+C     -2240     ASC0      .24300E+01      0.00
+C      1340     USC.      .25000E+01      1.00
+C     -1340     AUSC.     .25000E+01     -1.00
+C      3140     SUC.      .24000E+01      1.00
+C     -3140     ASUC.     .24000E+01     -1.00
+C      2340     DSC.      .25000E+01      0.00
+C     -2340     ADSC.     .25000E+01      0.00
+C      3240     SDC.      .24000E+01      0.00
+C     -3240     ASDC.     .24000E+01      0.00
+C      3340     SSC.      .26000E+01      0.00
+C     -3340     ASSC.     .26000E+01      0.00
+C      1440     UCC.      .35500E+01      2.00
+C     -1440     AUCC.     .35500E+01     -2.00
+C      2440     DCC.      .35500E+01      1.00
+C     -2440     ADCC.     .35500E+01     -1.00
+C      3440     SCC.      .37000E+01      1.00
+C     -3440     ASCC.     .37000E+01     -1.00
+C
+C      1111     DL++      .12320E+01      2.00
+C     -1111     ADL--     .12320E+01     -2.00
+C      1121     DL+       .12320E+01      1.00
+C     -1121     ADL-      .12320E+01     -1.00
+C      1221     DL0       .12320E+01      0.00
+C     -1221     ADL0      .12320E+01      0.00
+C      2221     DL-       .12320E+01     -1.00
+C     -2221     ADL+      .12320E+01      1.00
+C      1131     S*+       .13823E+01      1.00
+C     -1131     AS*-      .13823E+01     -1.00
+C      1231     S*0       .13820E+01      0.00
+C     -1231     AS*0      .13820E+01      0.00
+C      2231     S*-       .13875E+01     -1.00
+C     -2231     AS*+      .13875E+01      1.00
+C      1331     XI*0      .15318E+01      0.00
+C     -1331     AXI*0     .15318E+01      0.00
+C      2331     XI*-      .15350E+01     -1.00
+C     -2331     AXI*+     .15350E+01      1.00
+C      3331     OM-       .16722E+01     -1.00
+C     -3331     AOM+      .16722E+01      1.00
+C      1141     UUC*      .26300E+01      2.00
+C     -1141     AUUC*     .26300E+01     -2.00
+C      1241     UDC*      .26300E+01      1.00
+C     -1241     AUDC*     .26300E+01     -1.00
+C      2241     DDC*      .26300E+01      0.00
+C     -2241     ADDC*     .26300E+01      0.00
+C      1341     USC*      .27000E+01      1.00
+C     -1341     AUSC*     .27000E+01     -1.00
+C      2341     DSC*      .27000E+01      0.00
+C     -2341     ADSC*     .27000E+01      0.00
+C      3341     SSC*      .28000E+01      0.00
+C     -3341     ASSC*     .28000E+01      0.00
+C      1441     UCC*      .37500E+01      2.00
+C     -1441     AUCC*     .37500E+01     -2.00
+C      2441     DCC*      .37500E+01      1.00
+C     -2441     ADCC*     .37500E+01     -1.00
+C      3441     SCC*      .39000E+01      1.00
+C     -3441     ASCC*     .39000E+01     -1.00
+C      4441     CCC*      .48000E+01      2.00
+C     -4441     ACCC*     .48000E+01     -2.00
+C-----------------------------------------------------------------------
+C
+C   LIST OF SUBROUTINES AND FUNCTIONS OF SUBROUTINE-TURBO-VERSION 4.12
+C   ------------------------------------------------------------------
+C
+C     AVENUS  HAHABS  HAPAPA  HASI    HASTFC  HASTFL  HASTFR  HASTFS
+C     HASTFW  HASTPR  HDECMP  HRESCL  IDCOMJ  IDCOMK  IDCOMP  IDDECO
+C     IDENCO  IDFLAV  IDLABL  IDMASS  IDMIX   IDQUAC  IDRES   IDRESI
+C     IDSPIN  IDTAU   IDTRA   IDTRAI  IDTRB   IDTRBI  IDTR4
+C     JAMBR1  JAMBR2  JAMFRA  JCENTD  JCENTP  JCENTR  JCLUDE  JDECA
+C     JDECAY  JDECIN  JESTPR  JETGEN  JFRADE  JINTA1  JINTA2
+C     JINTCC  JINTCE  JINTCH  JINTCL  JINTEL  JINTFP  JINTFS
+C     JINTFU  JINTPA  JRESCL  JSPLIT  LEPEXP  LEPSTR  LEPTAR
+C     NUCINI  NUCLCO  NUCOGE  NUCOLL  NUCSTR  PVJPSF
+C     RACPRO  RANSTC  RANXQ   SBET    SDENSI  SGAM    SGAU
+C     SHOPAR  SJCENT  SJCEN4  SJCGAM  SMASS   SMASSI  SMASSP  SMASST
+C     SPTF    SPTH    SPTJ    SPTQ    SSE0    SSE1    SSPLIT  SSPLIX
+C     STAA    STXD    STXS    STXU    STXUS   STXZNE  STXZPR  SVA0
+C     SVA1    UINTEG  UTACOS  UTAMNU  UTAMNX  UTAMNY  UTAMNZ  UTAMST
+C     UTAXIS  UTCHM   UTCLEA  UTHIST  UTHSEA  UTINVT  UTKSIX
+C     UTKSTR  UTLOBO  UTLOB2  UTLOC   UTMSG   UTMSGF  UTOVEL  UTPAGE
+C     UTPART  UTPCM   UTQUAF  UTQZ    UTREMB  UTREPL  UTRESM  UTREST
+C     UTROTA  UTROT2  UTSTOP  UTTAIN  UTTAIX  UTTAUS  UTTAUT  UTTUCL
+C
+C-----------------------------------------------------------------------
+C
+C   SUBROUTINE-TURBO-VERSION 4.12:
+C   ------------------------------
+C
+C     IT IS TUNED FOR FASTER CALCULATION, ESPECIALLY IF ENERGY AND
+C   TARGET ARE VARYING FROM COLLISION TO COLLISION, AS IS THE CASE IN
+C   THE DEVELOPMENT OF AN AIR SHOWER CASCADE.
+C     IT NEEDS LINKING ROUTINES FOR INPUT AND OUTPUT AND A RANDOM
+C   GENERATOR. ALL PARAMETERS MUST BE SET IN THE LINKING ROUTINES.
+C   FOR CONNECTION WITH THE AIR SHOWER PROGRAM 'CORSIKA', SUCH ROUTINES
+C   ARE AVAILABLE:
+C        RANGEN:    RANDOM GENERATOR
+C        UTQSEA:    CALC. OF SEA     QUARK STRUCTURE FUNCTION INTEGRAL
+C        UTQVAL:    CALC. OF VALENCE QUARK STRUCTURE FUNCTION INTEGRAL
+C        VENDAT:    INITIALIZATION OF PARTICLE ID TABLE
+C        VENINI:    FOR FIRST INITIALIZATION OF PARAMETERS
+C        VENLNK:    FOR INITIALIZATION OF ENERGY DEPENDENT PARAMETERS
+C        VSTORE:    TO STORE THE GENERATED SECONDARY PARTICLES
+C
+C   NOTE: THE COMMONS ARE IN GENERAL DIFFERENT FROM THE UNTUNED
+C         VENUS VERSION 4.12
+C-----------------------------------------------------------------------
+C  COPYRIGHT AND ANY OTHER APPROPRIATE LEGAL PROTECTION OF THESE
+C  COMPUTER PROGRAMS AND ASSOCIATED DOCUMENTATION RESERVED IN ALL
+C  COUNTRIES OF THE WORLD.
+C
+C  FZK WELCOMES COMMENTS CONCERNING THE VENUS CODE BUT UNDERTAKES NO
+C  OBLIGATION FOR MAINTENANCE OF THE PROGRAMS, NOR RESPONSIBILITY FOR
+C  THEIR CORRECTNESS, AND ACCEPTS NO LIABILITY WHATSOEVER RESULTING
+C  FROM THE USE OF ITS PROGRAMS.
+C=======================================================================
+
+      SUBROUTINE AVENUS
+
+C-----------------------------------------------------------------------
+C  GENERATES ONE VENUS EVENT
+C-----------------------------------------------------------------------
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      DOUBLE PRECISION SEEDC,SEEDI
+      COMMON /CSEED/   SEEDC,SEEDI
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+C-----------------------------------------------------------------------
+      ISH0=ISH
+      ISHS0=ISHSUB
+      IF ( ISHEVT .NE. 0  .AND.  NREVT+1 .NE. ISHEVT ) THEN
+        ISH=0
+        ISHSUB=0
+      ENDIF
+CDH   IF ( NREVT.EQ.0 .AND. (ISH.EQ.13.OR.ISH.EQ.14) ) CALL UTTIMT
+CDH   IF ( ISH .EQ. 14 ) CALL UTTIMA('*** AVENUS *** ')
+      IF ( ISH .EQ. 17  .OR.  ISH .GT. 92 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'AVENUS (ENTRY)'
+      ENDIF
+      IPAGE=0
+      CALL UTPAGE
+      IF ( ISH .GE. 91 )
+     *  WRITE(IFCH,113)('-',L=1,79),IPAGE,NREVT+1,SEEDC,('-',L=1,79)
+113   FORMAT(/1X,79A1/1X,I5,'.PAGE            '
+     *  ,5X,'EVT:',I4,5X,'SEEDC:',D25.15/1X,79A1/)
+      IF ( ICHOIC. EQ. 4  .OR.  ICHOIC .EQ. 5 ) GOTO 1000
+      BIMEVT=-1
+      NTEVT0=NTEVT
+3     NTEVT=NTEVT0
+2     NTEVT=NTEVT+1
+      IF     ( ICHOIC .EQ. 1 ) THEN
+        CALL JETGEN(IER)
+        IF ( IER .EQ. 1 ) GOTO 3
+      ELSEIF ( ICHOIC .EQ. 2  .OR.  ICHOIC .EQ. 3 ) THEN
+        CALL NUCOLL
+      ENDIF
+      IF ( ICHOIC .EQ. 1  .OR.  ICHOIC .EQ. 2 ) THEN
+        CALL JFRADE(IER)
+        IF ( IER. EQ. 1 ) GOTO 3
+      ENDIF
+      IF ( (ICHOIC.EQ.2 .OR. ICHOIC.EQ.3) .AND. NEVT.EQ.0 ) THEN
+        BIMEVT=-1
+        GOTO 2
+      ENDIF
+      IF ( JERR .GT. 0 ) THEN
+        CALL UTSTOP('AVENUS: JERR > 0                        ')
+      ENDIF
+      NREVT=NREVT+1
+
+1000  CONTINUE
+CDH   IF ( ISH .EQ. 14 ) CALL UTTIMA('    AVENUS F   ')
+      IF ( ISH .EQ. 17  .OR.  ISH .GT. 92 ) THEN
+        WRITE(IFCH,*)'AVENUS (EXIT)'
+      ENDIF
+      ISH=ISH0
+      ISHSUB=ISHS0
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE HAHABS(PROJ,TARG,IAP,IAT,ISKIP,IRETHH)
+
+C-----------------------------------------------------------------------
+C  PERFORMS A BASIC (ONE COLOR EXCHANGE) HADRON-HADRON COLLISION
+C-----------------------------------------------------------------------
+      PARAMETER (KOLLMX=2500)
+      PARAMETER (MAMX=56)
+      PARAMETER (MXSTR=3000)
+      PARAMETER (NDEP=129)
+      PARAMETER (NDET=129)
+      PARAMETER (NFLAV=6)
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /CKOL/    KOL
+      COMMON /CLEAD/   COOAV3,COOAV4,LEAD
+      COMMON /CNCE/    NCES,NCOLEX
+      COMMON /CNEW/    KOTRI,NEWCOL,NEWICO
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /COL/     BIMP,BMAX,COORD(4,KOLLMX),DISTCE(KOLLMX)
+     *                ,QDEP(NDEP),QDET14(NDET),QDET16(NDET),QDET40(NDET)
+     *                ,QDET99(NDET),RMPROJ,RMTARG(4),XDEP(NDEP)
+     *                ,XDET14(NDET),XDET16(NDET),XDET40(NDET)
+     *                ,XDET99(NDET)
+     *                ,KOLL,LTARG,NORD(KOLLMX),NPROJ,NRPROJ(KOLLMX)
+     *                ,NRTARG(KOLLMX),NTARG
+      COMMON /CPROJA/  IPROJ,ITARG,KPROJA(NHA,MAMX),KTARGA(NHA,MAMX)
+      COMMON /CPZSTR/  ESTRL,PZSTRL,ISEA,ISTRL
+      COMMON /CSTR/    PSTR(5,MXSTR),ROTSTR(3,MXSTR),XORSTR(4,MXSTR)
+     *                ,ICSTR(4,MXSTR),IORSTR(MXSTR),IRLSTR(MXSTR),NSTR
+      COMMON /CSTSH/   NSTSH
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      REAL      PROJ(NSI,NHA),PSUM(5),PSUMX(5)
+     *         ,SIL(NSI),SILP(NSI),SILT(NSI)
+     *         ,SIX(NSI,NSIX),SIXP(NSI,NSIX),SIXT(NSI,NSIX)
+     *         ,STRAP(NSI,NSIX+1),STRAT(NSI,NSIX+1)
+     *         ,STRLP(NSI,NSIX+1),STRLT(NSI,NSIX+1)
+     *         ,STR0(NSI,NSIX+1),TARG(NSI,NHA)
+      INTEGER   ICVP(2),ICVT(2),JCVP(NFLAV,2),JCVT(NFLAV,2)
+      CHARACTER XFLAP*3,XFLAT*3,XFLBP*3,XFLBT*3
+C-----------------------------------------------------------------------
+      R=RANGEN()
+      NTRY=0
+      IRETHH=0
+      CALL UTREMB(PROJ,TARG,2)
+      GOTO 9
+
+9994  IRET=0
+      CALL UTREST(PROJ,TARG,2)
+ 9    CONTINUE
+      DO 8 NX=1,NSIX
+        DO 8 N=1,NSI
+          SIXP(N,NX)=0.
+          SIXT(N,NX)=0.
+ 8    CONTINUE
+      CALL HDECMP(PROJ,SIL,SIX)
+      CALL UTKSIX(SIX,KMAXP)
+      CALL HDECMP(TARG,SIL,SIX)
+      CALL UTKSIX(SIX,KMAXT)
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,100) ( (PROJ(I,J),I=1,NSI), J=2,KMAXP+2 )
+100     FORMAT ( ' PROJ:',4F13.5,2F8.0/,20('      ',4F13.5,2F8.0/) )
+        WRITE(IFCH,102) ( (TARG(I,J),I=1,NSI), J=2,KMAXT+2 )
+102     FORMAT ( ' TARG:',4F13.5,2F8.0/,50('      ',4F13.5,2F8.0/) )
+      ENDIF
+      IF ( ISKIP .EQ. 1 ) GOTO 9999
+
+9997  CALL HDECMP(PROJ,SILP,SIXP)
+      CALL HDECMP(TARG,SILT,SIXT)
+ 1    ICVP(1)=NINT(PROJ(5,1))
+      ICVP(2)=NINT(PROJ(6,1))
+      ICVT(1)=NINT(TARG(5,1))
+      ICVT(2)=NINT(TARG(6,1))
+      CALL HAPAPA(SILP,IFLAP,XFLAP,PTAP,PTAHP,IFLBP,XFLBP,PTBP,PTBHP
+     *            ,NQAQP,ICVP)
+      CALL HAPAPA(SILT,IFLAT,XFLAT,PTAT,PTAHT,IFLBT,XFLBT,PTBT,PTBHT
+     *            ,NQAQT,ICVT)
+      IF ( NQAQP*NQAQT .EQ. -1 ) GOTO 1
+
+9998  NTRY=NTRY+1
+      IF ( NTRY .GT. NTRYMX+1 ) THEN
+        ISKIP=1
+        GOTO 9999
+      ENDIF
+
+      CALL HDECMP(PROJ,SILP,SIXP)
+      CALL HDECMP(TARG,SILT,SIXT)
+      CALL HASTFS(SILP,SIXP,IFLAP,XFLAP,PTAP,PTAHP
+     *            ,SILT,SIXT,IFLBT,XFLBT,PTBT,PTBHT,STRAP,IRET,1)
+      IF ( IRET .EQ. 1 ) THEN
+        ISKIP=1
+        GOTO 9999
+      ENDIF
+      IF ( IRET .EQ. 2 ) GOTO 9997
+      IF ( IRET .EQ. 3 ) THEN
+        IF ( XFLBP(1:2) .EQ. 'VA' ) XFLBP(1:2)='SE'
+        IF ( XFLAT(1:2) .EQ. 'VA' ) XFLAT(1:2)='SE'
+        IFLAT=IFLBT
+        IFLBP=IFLAP
+        GOTO 9998
+      ENDIF
+      IF ( IRET .EQ. 5 ) THEN
+        IF ( XFLAP(1:2) .EQ. 'SE'  .AND.  XFLBP(1:2) .EQ. 'SE' ) THEN
+          IFLBP=-ABS(IFLBP)
+          IFLAP=IFLBP
+        ENDIF
+        IF ( XFLAT(1:2) .EQ. 'SE'  .AND.  XFLBT(1:2) .EQ. 'SE' ) THEN
+          IFLAT=-ABS(IFLAT)
+          IFLBT=IFLAT
+        ENDIF
+        GOTO 9998
+      ENDIF
+      CALL HASTFS(SILT,SIXT,IFLAT,XFLAT,PTAT,PTAHT
+     *,SILP,SIXP,IFLBP,XFLBP,PTBP,PTBHP,STRAT,IRET,2)
+      IF ( IRET .EQ. 1 ) THEN
+        ISKIP=1
+        GOTO 9999
+      ENDIF
+      IF ( IRET .EQ. 2 ) GOTO 9997
+      IF ( IRET .EQ. 3 ) THEN
+        IF ( XFLAP(1:2) .EQ. 'VA' ) XFLAP(1:2)='SE'
+        IF ( XFLBT(1:2) .EQ. 'VA' ) XFLBT(1:2)='SE'
+        IFLBT=IFLAT
+        IFLAP=IFLBP
+        GOTO 9998
+      ENDIF
+      IF ( IRET .EQ. 5 ) THEN
+        IF ( XFLAP(1:2) .EQ. 'SE'  .AND.  XFLBP(1:2) .EQ. 'SE' ) THEN
+          IFLAP=-ABS(IFLAP)
+          IFLBP=IFLAP
+        ENDIF
+        IF ( XFLAT(1:2) .EQ. 'SE'  .AND.  XFLBT(1:2) .EQ. 'SE' ) THEN
+          IFLBT=-ABS(IFLBT)
+          IFLAT=IFLBT
+        ENDIF
+        GOTO 9998
+      ENDIF
+
+      CALL HASTFC(SILP,SIXP,IRET)
+      IF     ( IRET .EQ. 0 ) THEN
+        CALL HASTFC(SILT,SIXT,IRET)
+      ELSEIF ( IRET .EQ. 1 ) THEN
+        IF ( ISH .GE. 91 ) WRITE(IFCH,*)'LIGHT STRING --> REDO HASTFS'
+        GOTO 9998
+      ELSEIF ( IRET .EQ. 2 ) THEN
+        IF ( ISH .GE. 91 ) WRITE(IFCH,*)'JC>9 --> REDO HAPAPA'
+        GOTO 9997
+      ENDIF
+
+9999  CONTINUE
+      IF ( ISKIP .EQ. 1 ) THEN
+        COLEVT=COLEVT-1./NCOLEX
+        CALL HDECMP(PROJ,SILP,SIXP)
+        CALL HDECMP(TARG,SILT,SIXT)
+        IF ( ISH .GE. 91 ) THEN
+          WRITE(IFCH,*)'SKIP'
+          CALL HASTFW(SILP,SIXP)
+          CALL HASTFW(SILT,SIXT)
+        ENDIF
+      ENDIF
+
+      CALL HASTFL(SILP,SIXP,STRLP)
+      CALL HASTFL(SILT,SIXT,STRLT)
+
+      IF ( ISKIP .EQ. 1 ) GOTO 9995
+
+      CALL IDDECO(ICVP,JCVP)
+      CALL IDDECO(ICVT,JCVT)
+      IF ( XFLAP(1:2).EQ.'VA') JCVP(IABS(IFLAP),1)=JCVP(IABS(IFLAP),1)-1
+      IF ( XFLBP(1:2).EQ.'VA') JCVP(IABS(IFLBP),2)=JCVP(IABS(IFLBP),2)-1
+      IF ( XFLAT(1:2).EQ.'VA') JCVT(IABS(IFLAT),1)=JCVT(IABS(IFLAT),1)-1
+      IF ( XFLBT(1:2).EQ.'VA') JCVT(IABS(IFLBT),2)=JCVT(IABS(IFLBT),2)-1
+      CALL IDENCO(JCVP,ICVP,IRETEN)
+      IF ( IRETEN .EQ. 1 ) THEN
+        CALL UTSTOP('HAPAPA: IDENCO RET CODE = 1             ')
+      ENDIF
+      CALL IDENCO(JCVT,ICVT,IRETEN)
+      IF ( IRETEN .EQ. 1 ) THEN
+        CALL UTSTOP('HAPAPA: IDENCO RET CODE = 1             ')
+      ENDIF
+
+      PROJ(5,1)=ICVP(1)
+      PROJ(6,1)=ICVP(2)
+      TARG(5,1)=ICVT(1)
+      TARG(6,1)=ICVT(2)
+      CALL UTKSIX(SIXP,KMAXPN)
+      CALL UTKSIX(SIXT,KMAXTN)
+      IF ( KMAXPN+1 .GT. NSIX ) THEN
+        CALL UTSTOP('HAHABS: DIMENSION NSIX TOO SMALL        ')
+      ENDIF
+      IF ( KMAXTN+1 .GT. NSIX ) THEN
+        CALL UTSTOP('HAHABS: DIMENSION NSIX TOO SMALL        ')
+      ENDIF
+      KMXP=KMAXPN+1
+      KMXT=KMAXTN+1
+      DO 5 N=1,NSI
+        PROJ(N,2)=STRLP(N,1)
+        TARG(N,2)=STRLT(N,1)
+        DO 6 J=1,KMXP
+          PROJ(N,2+J)=SIXP(N,J)
+ 6      CONTINUE
+        DO 7 J=1,KMXT
+          TARG(N,2+J)=SIXT(N,J)
+ 7      CONTINUE
+        KPROJA(2,IPROJ)=KOL
+        IF ( KMAXPN .GT. KMAXP ) THEN
+          DO 2 K=KMAXP+1,KMAXPN
+            KPROJA(2+K,IPROJ)=KOL
+ 2        CONTINUE
+        ENDIF
+        KTARGA(2,ITARG)=KOL
+        IF ( KMAXTN .GT. KMAXT ) THEN
+          DO 3 K=KMAXT+1,KMAXTN
+            KTARGA(2+K,ITARG)=KOL
+ 3        CONTINUE
+        ENDIF
+ 5    CONTINUE
+
+      NSTSH=0
+      LEAD=0
+      ISPLT=0
+11    CALL HASTPR(STRAP,ISPLT)
+      IF ( ISPLT .NE. 0 ) THEN
+        CALL UTSTOP('HAHABS: ISPLT /= 0                      ')
+      ENDIF
+      ISPLT=0
+12    CALL HASTPR(STRAT,ISPLT)
+      IF ( ISPLT .NE. 0 ) THEN
+        CALL UTSTOP('HAHABS: ISPLT /= 0                      ')
+      ENDIF
+
+      IF ( KMAXPN .GT. KMAXP ) THEN
+        PROJ(3,1)=PROJ(3,1)+COORD(3,KOL)
+        PROJ(4,1)=PROJ(4,1)+COORD(4,KOL)
+      ENDIF
+      IF ( KMAXTN .GT. KMAXT ) THEN
+        TARG(3,1)=TARG(3,1)+COORD(3,KOL)
+        TARG(4,1)=TARG(4,1)+COORD(4,KOL)
+      ENDIF
+      KMAXP=KMAXPN
+      KMAXT=KMAXTN
+
+9995  LEAD=1
+
+C  WRITE LEADING STRING (PROJ)
+C  ---------------------------
+
+      IF ( IAP .EQ. 1 ) THEN
+
+        IF ( KMAXP .GT. 0 ) THEN
+          COOAV3=PROJ(3,1)/KMAXP
+          COOAV4=PROJ(4,1)/KMAXP
+        ELSE
+          COOAV3=COORD(3,KOL)
+          COOAV4=COORD(4,KOL)
+        ENDIF
+        CALL UTKSTR(STRLP,KMAXOR)
+        PZSTRL=0.
+        ESTRL=0.
+        ISEA=1
+        PSUM(1)=0.
+        PSUM(2)=0.
+        PSUM(3)=0.
+        PSUM(4)=0.
+        DO 22 K=1,KMAXOR
+          PSUM(1)=PSUM(1)+STRLP(1,K)
+          PSUM(2)=PSUM(2)+STRLP(2,K)
+          PSUM(3)=PSUM(3)+STRLP(3,K)
+          PSUM(4)=PSUM(4)+STRLP(4,K)
+          AMPR=0.
+C-C       IF ( K .EQ. 1 ) AMPR=.94
+          PZSTRL=PZSTRL+STRLP(3,K)
+          ESTRL=ESTRL+SQRT(STRLP(4,K)**2+AMPR**2)
+          IF (K.GE.2.AND.STRLP(5,K).GT.0..AND.STRLP(6,K).GT.0.) ISEA=0
+22      CONTINUE
+        PSUM(5)=PSUM(4)**2-PSUM(3)**2-PSUM(2)**2-PSUM(1)**2
+        IF ( PSUM(5) .GT. 0. ) PSUM(5)=SQRT(PSUM(5))
+        IF ( PZSTRL/PNLLX.GT.1.-0.850/ENGY**2.AND.ISKIP.NE.1 ) GOTO 1002
+        ISTRL=0
+        IF ( NSTSH .EQ. 0 .AND. ISEA .EQ. 1  .AND.
+     *                     PZSTRL/PNLLX .GT. 1.-10.000/ENGY**2 ) ISTRL=1
+        DO 23 K=1,KMAXOR
+          DO 23 I=1,NSI
+            STR0(I,K)=STRLP(I,K)
+23      CONTINUE
+        NSTR0=NSTR
+17      NSTR=NSTR0
+        ISPLT=0
+15      CONTINUE
+        DO 24 K=1,KMAXOR
+          DO 24 I=1,NSI
+            STRLP(I,K)=STR0(I,K)
+24      CONTINUE
+13      CALL HASTPR(STRLP,ISPLT)
+        IF     ( ISPLT .EQ. -1 ) THEN
+          IF ( ISKIP .EQ. 1 ) GOTO 9996
+          GOTO 9994
+        ELSEIF ( ISPLT .EQ. -3 ) THEN
+          GOTO 15
+        ELSEIF ( ISPLT .EQ. -4 ) THEN
+          GOTO 1001
+        ELSEIF ( ISPLT .EQ. -5 ) THEN
+          GOTO 17
+        ELSEIF ( ISPLT .GT. 0 ) THEN
+          GOTO 13
+        ENDIF
+        IF ( NSTR .GT. NSTR0+1 ) THEN
+          PSUMX(1)=0.
+          PSUMX(2)=0.
+          PSUMX(3)=0.
+          PSUMX(4)=0.
+          DO 25 J=NSTR0+1,NSTR
+            PSUMX(1)=PSUMX(1)+PSTR(1,J)
+            PSUMX(2)=PSUMX(2)+PSTR(2,J)
+            PSUMX(3)=PSUMX(3)+PSTR(3,J)
+            PSUMX(4)=PSUMX(4)+PSTR(4,J)
+25        CONTINUE
+          PSUMX(5)=PSUMX(4)**2-PSUMX(3)**2-PSUMX(2)**2-PSUMX(1)**2
+          IF ( PSUMX(5) .GT. 0. ) PSUMX(5)=SQRT(PSUMX(5))
+C-C       WRITE(6,*)' '
+C-C       DO 26 J=NSTR0+1,NSTR
+C-C       WRITE(6,109) J,(ICSTR(K,J)/100,K=1,4)
+C-C  *      ,SQRT(PSTR(1,J)**2+PSTR(2,J)**2),PSTR(3,J)/PNLLX,PSTR(5,J)
+C-C  *      ,IRLSTR(J)
+C-C26     CONTINUE
+C-C       WRITE(6,*)PSUM
+C-C       WRITE(6,*)PSUMX
+          DO 27 J=NSTR0+1,NSTR
+            PSTR(1,J+NSTR-NSTR0)=PSTR(1,J)
+            PSTR(2,J+NSTR-NSTR0)=PSTR(2,J)
+            PSTR(3,J+NSTR-NSTR0)=PSTR(3,J)
+            PSTR(4,J+NSTR-NSTR0)=PSTR(4,J)
+27        CONTINUE
+          CALL HRESCL(NSTR0+1,NSTR,PSUM,IFAIL)
+          IF ( IFAIL .GT. 0 ) THEN
+C-C         WRITE(6,*)'RESCALE FAILED'
+            DO 28 J=NSTR0+1,NSTR
+              PSTR(1,J)=PSTR(1,J+NSTR-NSTR0)
+              PSTR(2,J)=PSTR(2,J+NSTR-NSTR0)
+              PSTR(3,J)=PSTR(3,J+NSTR-NSTR0)
+              PSTR(4,J)=PSTR(4,J+NSTR-NSTR0)
+28          CONTINUE
+          ENDIF
+          PSUMX(1)=0.
+          PSUMX(2)=0.
+          PSUMX(3)=0.
+          PSUMX(4)=0.
+          DO 29 J=NSTR0+1,NSTR
+            PSUMX(1)=PSUMX(1)+PSTR(1,J)
+            PSUMX(2)=PSUMX(2)+PSTR(2,J)
+            PSUMX(3)=PSUMX(3)+PSTR(3,J)
+            PSUMX(4)=PSUMX(4)+PSTR(4,J)
+29        CONTINUE
+          PSUMX(5)=PSUMX(4)**2-PSUMX(3)**2-PSUMX(2)**2-PSUMX(1)**2
+          IF ( PSUMX(5) .GT. 0. ) PSUMX(5)=SQRT(PSUMX(5))
+C-C       DO 30 J=NSTR0+1,NSTR
+C-C       WRITE(6,109) J,(ICSTR(K,J)/100,K=1,4)
+C-C  *      ,SQRT(PSTR(1,J)**2+PSTR(2,J)**2),PSTR(3,J)/PNLLX,PSTR(5,J)
+C-C  *      ,IRLSTR(J)
+C-C30     CONTINUE
+C-C       WRITE(6,*)PSUM
+C-C       WRITE(6,*)PSUMX
+109       FORMAT(' /CSTR/',I4,3X,4I5,2X,3(E10.3),I4)
+        ENDIF
+
+      ENDIF
+
+C  WRITE LEADING STRING (TARG)
+C  ---------------------------
+
+      IF ( IAT .EQ. 1 ) THEN
+
+        IF ( KMAXT .GT. 0 ) THEN
+          COOAV3=TARG(3,1)/KMAXT
+          COOAV4=TARG(4,1)/KMAXT
+        ELSE
+          COOAV3=COORD(3,KOL)
+          COOAV4=COORD(4,KOL)
+        ENDIF
+        CALL UTKSTR(STRLT,KMAXOR)
+        PZSTRL=0.
+        ESTRL=0.
+        ISEA=1
+        PSUM(1)=0.
+        PSUM(2)=0.
+        PSUM(3)=0.
+        PSUM(4)=0.
+        DO 33 K=1,KMAXOR
+          PSUM(1)=PSUM(1)+STRLT(1,K)
+          PSUM(2)=PSUM(2)+STRLT(2,K)
+          PSUM(3)=PSUM(3)+STRLT(3,K)
+          PSUM(4)=PSUM(4)+STRLT(4,K)
+          AMPR=0.
+C-C       IF ( K .EQ. 1 ) AMPR=.94
+          PZSTRL=PZSTRL+STRLT(3,K)
+          ESTRL=ESTRL+SQRT(STRLT(4,K)**2+AMPR**2)
+          IF ( K.GE.2.AND.STRLT(5,K).GT.0..AND.STRLT(6,K).GT.0. ) ISEA=0
+33      CONTINUE
+        PSUM(5)=PSUM(4)**2-PSUM(3)**2-PSUM(2)**2-PSUM(1)**2
+        IF ( PSUM(5) .GT. 0. ) PSUM(5)=SQRT(PSUM(5))
+        IF ( -PZSTRL/PNLLX.GT.1.-0.850/ENGY**2.AND.ISKIP.NE.1 )GOTO 1002
+        ISTRL=0
+        IF ( NSTSH .EQ. 0  .AND.  ISEA .EQ. 1 .AND.
+     *                 -PZSTRL/PNLLX .GT. 1.-10.000/ENGY**2 ) ISTRL=1
+        DO 34 K=1,KMAXOR
+          DO 34 I=1,NSI
+            STR0(I,K)=STRLT(I,K)
+34      CONTINUE
+        NSTR0=NSTR
+18      NSTR=NSTR0
+        ISPLT=0
+16      CONTINUE
+        DO 35 K=1,KMAXOR
+          DO 35 I=1,NSI
+            STRLT(I,K)=STR0(I,K)
+35      CONTINUE
+14      CALL HASTPR(STRLT,ISPLT)
+        IF     ( ISPLT .EQ. -1 ) THEN
+           IF ( ISKIP .EQ. 1 ) GOTO 9996
+           GOTO 9994
+        ELSEIF ( ISPLT .EQ. -3 ) THEN
+          GOTO 16
+        ELSEIF ( ISPLT .EQ. -4 ) THEN
+          GOTO 1001
+        ELSEIF ( ISPLT .EQ. -5 ) THEN
+          GOTO 18
+        ELSEIF ( ISPLT .GT.  0 ) THEN
+          GOTO 14
+        ENDIF
+        IF ( NSTR .GT. NSTR0+1 ) THEN
+          PSUMX(1)=0.
+          PSUMX(2)=0.
+          PSUMX(3)=0.
+          PSUMX(4)=0.
+          DO 36 J=NSTR0+1,NSTR
+            PSUMX(1)=PSUMX(1)+PSTR(1,J)
+            PSUMX(2)=PSUMX(2)+PSTR(2,J)
+            PSUMX(3)=PSUMX(3)+PSTR(3,J)
+            PSUMX(4)=PSUMX(4)+PSTR(4,J)
+36        CONTINUE
+          PSUMX(5)=PSUMX(4)**2-PSUMX(3)**2-PSUMX(2)**2-PSUMX(1)**2
+          IF ( PSUMX(5) .GT. 0. ) PSUMX(5)=SQRT(PSUMX(5))
+C-C       WRITE(6,*)' '
+C-C       DO 37 J=NSTR0+1,NSTR
+C-C       WRITE(6,109) J,(ICSTR(K,J)/100,K=1,4)
+C-C  *      ,SQRT(PSTR(1,J)**2+PSTR(2,J)**2),PSTR(3,J)/PNLLX,PSTR(5,J)
+C-C  *      ,IRLSTR(J)
+C-C37     CONTINUE
+C-C       WRITE(6,*)PSUM
+C-C       WRITE(6,*)PSUMX
+          DO 38 J=NSTR0+1,NSTR
+            PSTR(1,J+NSTR-NSTR0)=PSTR(1,J)
+            PSTR(2,J+NSTR-NSTR0)=PSTR(2,J)
+            PSTR(3,J+NSTR-NSTR0)=PSTR(3,J)
+            PSTR(4,J+NSTR-NSTR0)=PSTR(4,J)
+38        CONTINUE
+          CALL HRESCL(NSTR0+1,NSTR,PSUM,IFAIL)
+          IF ( IFAIL .GT. 0 ) THEN
+C-C         WRITE(6,*)'RESCALE FAILED'
+            DO 39 J=NSTR0+1,NSTR
+              PSTR(1,J)=PSTR(1,J+NSTR-NSTR0)
+              PSTR(2,J)=PSTR(2,J+NSTR-NSTR0)
+              PSTR(3,J)=PSTR(3,J+NSTR-NSTR0)
+              PSTR(4,J)=PSTR(4,J+NSTR-NSTR0)
+39          CONTINUE
+          ENDIF
+          PSUMX(1)=0.
+          PSUMX(2)=0.
+          PSUMX(3)=0.
+          PSUMX(4)=0.
+          DO 40 J=NSTR0+1,NSTR
+            PSUMX(1)=PSUMX(1)+PSTR(1,J)
+            PSUMX(2)=PSUMX(2)+PSTR(2,J)
+            PSUMX(3)=PSUMX(3)+PSTR(3,J)
+            PSUMX(4)=PSUMX(4)+PSTR(4,J)
+40        CONTINUE
+          PSUMX(5)=PSUMX(4)**2-PSUMX(3)**2-PSUMX(2)**2-PSUMX(1)**2
+          IF ( PSUMX(5) .GT. 0. ) PSUMX(5)=SQRT(PSUMX(5))
+C-C       DO 41 J=NSTR0+1,NSTR
+C-C       WRITE(6,109) J,(ICSTR(K,J)/100,K=1,4)
+C-C  *      ,SQRT(PSTR(1,J)**2+PSTR(2,J)**2),PSTR(3,J)/PNLLX,PSTR(5,J)
+C-C  *      ,IRLSTR(J)
+C-C41     CONTINUE
+C-C       WRITE(6,*)PSUM
+C-C       WRITE(6,*)PSUMX
+        ENDIF
+
+      ENDIF
+
+C  EXIT
+C  ----
+
+      IF ( ISH .LT. 91 ) RETURN
+
+      WRITE(IFCH,100) ( (PROJ(I,J),I=1,NSI), J=2,KMAXP+2 )
+      WRITE(IFCH,102) ( (TARG(I,J),I=1,NSI), J=2,KMAXT+2 )
+101   FORMAT ( '  ',I3,'. TRIAL')
+      RETURN
+
+9996  CONTINUE
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'SKIP IMPOSSIBLE, STRL CANT BE STORED'
+      ENDIF
+      ISKIP=2
+      RETURN
+
+1001  CONTINUE
+        IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)
+     *      'SR HAHABS: NOT JUSTIFIED COMPLETE ABSORPTION -> IRETHH=1'
+      ENDIF
+      IRETHH=1
+      IF ( ISKIP .EQ. 1 ) GOTO 9996
+      RETURN
+
+1002  CONTINUE
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'SR HAHABS: TOO FAST MULTI-STRING -> IRETHH=1'
+      ENDIF
+      IRETHH=1
+      IF ( ISKIP .EQ. 1 ) THEN
+        CALL UTSTOP('HAHABS: ISKIP=1 SHOULD NOT HAPPEN       ')
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE HAPAPA(SIL,IFLA,XFLA,PTA,PTAH,IFLB,XFLB,PTB,PTBH,NQAQ
+     *,ICV)
+
+C-----------------------------------------------------------------------
+C  DETERMINES MOMENTA AND FLAVOR OF PARTICIPATING PARTONS IN A HADRON
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      PARAMETER (NPTQ=129)
+      PARAMETER (NSI=6)
+      PARAMETER (NSTRU=2049)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /CNEW/    KOTRI,NEWCOL,NEWICO
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CPTQ/    QPTH(NPTQ),QPTQ(NPTQ),XPTQ(NPTQ),QPTQMX,QPTHMX
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      REAL      PROBAB(NFLAV),PROBSU(NFLAV+1),SIL(NSI)
+      INTEGER   ICV(2),ID(2),JC(NFLAV,2),JCV(NFLAV,2)
+      CHARACTER CHPT*1,XFLA*3,XFLB*3
+C-----------------------------------------------------------------------
+      SGN=SIGN(1.,SIL(3))
+      IF     ( SGN .GT. 0. ) THEN
+        QVALC=QVAPC
+        QSEAC=QSEPC
+        CHPT='P'
+        W=WPROJ
+      ELSE
+        QVALC=QVATC
+        QSEAC=QSETC
+        CHPT='T'
+        W=WTARG
+      ENDIF
+      CALL IDDECO(ICV,JCV)
+      NVQ=0
+      NVA=0
+      DO 12 I=1,NFLAV
+        IF ( ISH.GE.0  .AND.  (JCV(I,1).LT.0.OR.JCV(I,2).LT.0) ) THEN
+          CALL UTMSG('HAHABS')
+          WRITE(IFCH,*)'*****  NEGATIVE JCV'
+          WRITE(IFCH,*)'JCV:'
+          WRITE(IFCH,*)JCV
+          CALL UTMSGF
+        ENDIF
+        NVQ=NVQ+JCV(I,1)
+        NVA=NVA+JCV(I,2)
+12    CONTINUE
+      ID(1)=NINT(SIL(4+1))
+      ID(2)=NINT(SIL(4+2))
+      CALL IDDECO(ID,JC)
+      NQU=0
+      NAQ=0
+      DO 11 I=1,NFLAV
+        NQU=NQU+JC(I,1)
+        NAQ=NAQ+JC(I,2)
+11    CONTINUE
+      NEQ=NQU-NAQ
+
+C  DETERMINE NQAQ,IVAL1,IVAL2
+C  --------------------------
+      NQAQ=0
+      IVAL=0
+      IF ( RANGEN() .GT. W ) THEN
+        IF ( NEQ .GT. NEQMN ) THEN
+          PQ=1.
+        ELSE
+          PQ=0.
+        ENDIF
+        IF ( NEQ .LT. NEQMX ) THEN
+          PA=1.
+        ELSE
+          PA=0.
+        ENDIF
+        SUM=(NVQ*PQ+NVA*PA*IAQU)*QVALC+QSEAC*.5*(PQ+PA*IAQU)
+        IF ( SUM .EQ. 0. ) GOTO 14
+        SUMI = 1./SUM
+        PVQ=NVQ*PQ*QVALC*SUMI
+        PVA=NVA*PA*IAQU*QVALC*SUMI
+        PSQ=.5*PQ*QSEAC*SUMI
+        PSA=.5*PA*IAQU*QSEAC*SUMI
+        R=RANGEN()
+        IF ( R .LT. PVQ+PVA ) IVAL=1
+        NQAQ=-1
+        IF ( IVAL .EQ. 1  .AND.  R .LT. PVQ ) NQAQ=1
+        IF ( IVAL .EQ. 0  .AND.  R .LT. PVQ+PVA+PSQ ) NQAQ=1
+        IF ( NQU-NAQ-NQAQ .LT. NEQMN ) THEN
+          IF ( ISH .GE. 90 ) THEN
+            CALL UTMSG('HAPAPA')
+            WRITE(IFCH,*)'*****  NEQ < NEQMN'
+            WRITE(IFCH,*)'PVQ/A PSQ/A:',PVQ,PVA,PSQ,PSA
+            WRITE(IFCH,*)'NQAQ:',NQAQ
+            CALL UTMSGF
+          ENDIF
+          NQAQ=0
+        ENDIF
+        IF ( NQU-NAQ-NQAQ .GT. NEQMX ) THEN
+          IF ( ISH .GE. 90 ) THEN
+            IF ( ISH .GE. 91 ) WRITE(IFCH,*)' '
+            CALL UTMSG('HAPAPA')
+            WRITE(IFCH,*)'*****  NEQ > NEQMX'
+            WRITE(IFCH,*)'PVQ/A PSQ/A:',PVQ,PVA,PSQ,PSA
+            WRITE(IFCH,*)'NQAQ:',NQAQ
+            IF ( ISH .GE. 91 ) WRITE(IFCH,*)' '
+          ENDIF
+          NQAQ=0
+        ENDIF
+        IF ( NQU-NAQ-NQAQ .LT. NEQMN ) THEN
+          CALL UTSTOP('HAPAPA: NEQ.LT.NEQMN                    ')
+        ENDIF
+        IF ( NQU-NAQ-NQAQ .GT. NEQMX ) THEN
+          CALL UTSTOP('HAPAPA: NEQ.GT.NEQMX                    ')
+        ENDIF
+      ENDIF
+14    CONTINUE
+      IVAL1=IVAL
+      IVAL2=IVAL
+      IF ( NQAQ .EQ. 0 ) THEN
+        IVAL1=0
+        SUM=NVQ*QVALC+QSEAC*.5
+        IF ( SUM .EQ. 0. ) GOTO 15
+        SUMI = 1./SUM
+        PVQ=NVQ*QVALC*SUMI
+        PSQ=.5*QSEAC*SUMI
+        R=RANGEN()
+        IF ( R .LT. PVQ ) IVAL1=1
+15      CONTINUE
+C-C     IF ( NVQ.GT.0  .AND.  RANGEN().LT.PVALEN ) IVAL1=1
+        IVAL2=0
+        SUM=NVA*IAQU*QVALC+QSEAC*.5*IAQU
+        IF ( SUM .EQ. 0. ) GOTO 16
+        SUMI = 1./SUM
+        PVA=NVA*IAQU*QVALC*SUMI
+        PSA=.5*IAQU*QSEAC*SUMI
+        R=RANGEN()
+        IF ( R .LT. PVA ) IVAL2=1
+16      CONTINUE
+C-C     IF ( NVA.GT.0 .AND. RANGEN().LT.PVALEN ) IVAL2=1
+        IF ( IVAL1 .EQ. 1  .AND. IVAL2 .EQ. 1 ) THEN
+          R=RANGEN()
+          IF ( R .LT. 0.5 ) THEN
+            IVAL1=0
+          ELSE
+            IVAL2=0
+          ENDIF
+        ENDIF
+      ENDIF
+
+C  QUARK
+C  -----
+      XFLA='---'
+      IF ( NQAQ .GE. 0 ) THEN
+        IF ( IVAL1 .EQ. 1 ) THEN
+          PROBAB(1)=JCV(1,1)
+          PROBAB(2)=JCV(2,1)
+          PROBAB(3)=JCV(3,1)
+          PROBAB(4)=JCV(4,1)
+          SU=PROBAB(1)+PROBAB(2)+PROBAB(3)+PROBAB(4)
+          XFLA='VA'//CHPT
+        ELSE
+          PROBAB(1)=1.
+          PROBAB(2)=1.
+          PROBAB(3)=RSTRAS
+          PROBAB(4)=0.
+          SU=2.+PROBAB(3)
+          XFLA='SE'//CHPT
+        ENDIF
+        PROBSU(1)=0.
+        PROBSU(2)=1./SU*PROBAB(1)
+        PROBSU(3)=1./SU*PROBAB(2)+PROBSU(2)
+        PROBSU(4)=1./SU*PROBAB(3)+PROBSU(3)
+        PROBSU(5)=1./SU*PROBAB(4)+PROBSU(4)
+        R=RANGEN()
+        IF     ( R .LE. PROBSU(2) ) THEN
+          IFLA=1
+        ELSEIF ( R .LE. PROBSU(3) ) THEN
+          IFLA=2
+        ELSEIF ( R .LE. PROBSU(4) ) THEN
+          IFLA=3
+        ELSE
+          IFLA=4
+        ENDIF
+        R=RANGEN()
+        IF     ( IOPTQ .EQ. 2 ) THEN
+          PTA = SQRT( -4.*PTQ**2/PI * LOG(1.-R*QPTQMX) )
+        ELSEIF ( IOPTQ .EQ. 3 ) THEN
+          PTA = PTQ*SQRT( QPTQMX*R/(1.-QPTQMX*R) )
+        ELSE
+          PTA=UTINVT(NPTQ,XPTQ,QPTQ,R*QPTQ(NPTQ))
+        ENDIF
+        PTAH=PTH*SQRT( 1./SQRT(1.-2.*PTH**2*RANGEN()*QPTHMX) - 1. )
+      ENDIF
+
+C  ANTIQUARK
+C  ---------
+      XFLB='---'
+      IF ( NQAQ .LE. 0 ) THEN
+        IF ( IVAL2 .EQ. 1 ) THEN
+          PROBAB(1)=JCV(1,2)
+          PROBAB(2)=JCV(2,2)
+          PROBAB(3)=JCV(3,2)
+          PROBAB(4)=JCV(4,2)
+          SU=PROBAB(1)+PROBAB(2)+PROBAB(3)+PROBAB(4)
+          XFLB='VA'//CHPT
+        ELSE
+          PROBAB(1)=1.
+          PROBAB(2)=1.
+          PROBAB(3)=RSTRAS
+          SU=2.+RSTRAS
+          PROBAB(4)=0.
+          XFLB='SE'//CHPT
+        ENDIF
+        PROBSU(1)=0.
+        PROBSU(2)=1./SU*PROBAB(1)
+        PROBSU(3)=1./SU*PROBAB(2)+PROBSU(2)
+        PROBSU(4)=1./SU*PROBAB(3)+PROBSU(3)
+        PROBSU(5)=1./SU*PROBAB(4)+PROBSU(4)
+        R=RANGEN()
+        IF     ( R .LE. PROBSU(2) ) THEN
+          IFLB=1
+        ELSEIF ( R .LE. PROBSU(3) ) THEN
+          IFLB=2
+        ELSEIF ( R .LE. PROBSU(4) ) THEN
+          IFLB=3
+        ELSE
+          IFLB=4
+        ENDIF
+        IF ( NQAQ.EQ.0 .AND. IVAL1.EQ.0 .AND. IVAL2.EQ.0 ) IFLB=IFLA
+C-C     IF ( NQAQ.EQ.0 .AND. IVAL2.EQ.0 ) IFLB=IFLA
+C-C     IF ( NQAQ.EQ.0 .AND. IVAL1.EQ.0 ) IFLA=IFLB
+        R=RANGEN()
+        IF     ( IOPTQ .EQ. 2 ) THEN
+          PTB = SQRT( -4.*PTQ**2/PI * LOG(1.-QPTQMX*R) )
+        ELSEIF ( IOPTQ .EQ. 3 ) THEN
+          PTB = PTQ*SQRT( QPTQMX*R/(1.-QPTQMX*R) )
+        ELSE
+          PTB=UTINVT(NPTQ,XPTQ,QPTQ,R*QPTQ(NPTQ))
+        ENDIF
+        PTBH=PTH*SQRT( 1./SQRT(1.-2.*PTH**2*RANGEN()*QPTHMX) - 1. )
+      ENDIF
+
+      IF ( NQAQ.EQ.0 .AND. IVAL1.EQ.0 .AND. IVAL2.EQ.0 ) THEN
+        IFLA=-IFLA
+        IFLB=-IFLB
+      ENDIF
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE HASI(QAQ,SIL,IFL,XFL,PT0,PT0H,SI,IRET,JORD,IXFLAB
+     *               ,PTDIFF)
+
+C-----------------------------------------------------------------------
+C  DETERMINES STRING INGREDIENTS (=JETS)
+C  IRET=0: OK
+C  IRET=1: REMNANT CHANGES DIRECTION
+C  IRET=2: JC(,)=10
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      PARAMETER (NSI=6)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      REAL      PTDIFF(2),SI(NSI),SIL(NSI)
+      INTEGER   IC(2),ID(2),JC(NFLAV,2)
+      CHARACTER QAQ*5,XFL*3
+C-----------------------------------------------------------------------
+      IRET=0
+      IRETX=0
+      NTRY=0
+      PTDIFF(1)=0.
+      PTDIFF(2)=0.
+      IFLA=ABS(IFL)
+      IF ( XFL .EQ. '000' ) THEN
+        DO 11 J=3,NSI
+          SI(J)=0.
+11      CONTINUE
+      ELSE
+        DO 10 J=1,NSI
+          SI(J)=0.
+10      CONTINUE
+      ENDIF
+      IF ( XFL .EQ. '---' ) GOTO 1000
+      IF      ( JORD .EQ. 1 ) THEN
+        IF     ( QAQ .EQ. 'QUARK' ) THEN
+          AMS=AMPROJ
+        ELSEIF ( QAQ .EQ. 'ANTIQ' ) THEN
+          AMS=AMTARG
+        ENDIF
+      ELSEIF ( JORD .EQ. 2 ) THEN
+        IF     ( QAQ .EQ. 'ANTIQ' ) THEN
+          AMS=AMPROJ
+        ELSEIF ( QAQ .EQ. 'QUARK' ) THEN
+          AMS=AMTARG
+        ENDIF
+      ENDIF
+C-C   ENLL=SQRT(AMS**2+PNLLX**2)
+      ENLL=SIL(4)
+      SGN=SIGN(1.,SIL(3))
+      IF ( RANGEN() .LE. PHARD ) THEN
+        IHARD=1
+      ELSE
+        IHARD=0
+      ENDIF
+      ID(1)=NINT(SIL(4+1))
+      ID(2)=NINT(SIL(4+2))
+      CALL IDDECO(ID,JC)
+9999  NTRY=NTRY+1
+      IF ( NTRY .GT. 20 ) THEN
+        IRET=1
+        GOTO 1000
+      ENDIF
+      IF     ( IHARD .EQ. 0 ) THEN
+        PT=PT0
+        IF ( PT .GT. ENLL ) PT=RANGEN()*ENLL
+        ENMIN=0.
+      ELSE
+        PT=PT0H
+        IF ( PT .GT. ENLL ) PT=RANGEN()*ENLL
+        ENMIN=PT
+      ENDIF
+      PTFULL=PT
+      LO=0
+51    LO=LO+1
+      IF ( XFL .EQ. '000' ) THEN
+        EN=0.
+        PT=0.
+      ELSE
+        EN=RANSTC(XFL,ENMIN/ENLL)*ENLL
+      ENDIF
+      IF ( PT .GT. EN ) THEN
+        IF ( RANGEN() .LT. 0.5  .AND.  LO .LE. 10 ) GOTO 51
+        PT=RANGEN()*EN
+      ENDIF
+      PHI=2.*PI*RANGEN()
+      IF ( XFL .NE. '000' ) THEN
+        SI(1)=PT*COS(PHI)
+        SI(2)=PT*SIN(PHI)
+        SI(3)=SGN*SQRT(EN**2-PT**2)
+        IF ( SI(1).EQ.0.  .AND.  SI(2).EQ.0.  .AND.  SI(3).EQ.0. ) THEN
+          IRETX=1
+          IRET=1
+          GOTO 1000
+        ENDIF
+C-C     PTDIFF(1)=(PTFULL-PT)*COS(PHI)
+C-C     PTDIFF(2)=(PTFULL-PT)*SIN(PHI)
+      ENDIF
+      IF ( (SIL(3)-SI(3))*SIL(3) .LT. 0. ) THEN
+        IF ( ISH .GE. 94 ) WRITE(IFCH,*)'SIL,SI,ENLL,EN',SIL,SI,ENLL,EN
+        GOTO 9999
+      ENDIF
+      SI(4)=SQRT(SI(1)**2+SI(2)**2+SI(3)**2)
+      IF     ( QAQ .EQ. 'QUARK' ) THEN
+        SI(5)=10**(NFLAV-IFLA)
+      ELSEIF ( QAQ .EQ. 'ANTIQ' ) THEN
+        SI(6)=10**(NFLAV-IFLA)
+      ENDIF
+
+      IF ( IXFLAB .EQ. 0 ) THEN
+        SIL(1)=SIL(1)-SI(1)
+        SIL(2)=SIL(2)-SI(2)
+        SIL(3)=SIL(3)-SI(3)
+        SIL(4)=SQRT(SIL(1)**2+SIL(2)**2+SIL(3)**2)
+      ENDIF
+
+      IF ( JC(IFLA,1) .GT. 0 ) THEN
+        L1=1
+      ELSE
+        L1=0
+      ENDIF
+      IF ( JC(IFLA,2) .GT. 0 ) THEN
+        L2=1
+      ELSE
+        L2=0
+      ENDIF
+      IF     ( QAQ .EQ. 'QUARK' ) THEN
+        IF     ( L1 .EQ. 0 ) THEN
+          JC(IFLA,2)=JC(IFLA,2)+1
+        ELSE
+          JC(IFLA,1)=JC(IFLA,1)-1
+        ENDIF
+      ELSEIF ( QAQ .EQ. 'ANTIQ' ) THEN
+        IF     ( L2 .EQ. 0 ) THEN
+          JC(IFLA,1)=JC(IFLA,1)+1
+        ELSE
+          JC(IFLA,2)=JC(IFLA,2)-1
+        ENDIF
+      ENDIF
+      IF ( JC(IFLA,1) .EQ. 10  .OR.  JC(IFLA,2) .EQ. 10 ) GOTO 9998
+      CALL IDENCO(JC,IC,IRETEN)
+      IF ( IRETEN .EQ. 1 ) THEN
+        CALL UTSTOP('HASI  : IDENCO RET CODE = 1             ')
+      ENDIF
+      SIL(5)=IC(1)
+      SIL(6)=IC(2)
+      GOTO 1000
+
+9998  IRET=2
+      IF ( ISH .GE. 90 ) THEN
+        CALL UTMSG('HASI  ')
+        WRITE(IFCH,*)'*****  JC(,)=10'
+        WRITE(IFCH,*)JC
+        CALL UTMSGF
+      ENDIF
+
+1000  CONTINUE
+      IF ( ISH .GE. 90  .AND. IRETX .EQ. 1 ) THEN
+        CALL UTMSG('HASI  ')
+        WRITE(IFCH,*)'*****  SI(1/2/3)=0'
+        WRITE(IFCH,*)SI
+        CALL UTMSGF
+      ENDIF
+      IF ( ISH .GE. 93 ) THEN
+        IF ( IRET .NE. 0  .OR.  NTRY .GT. 1 )
+     *           WRITE(IFCH,*)'IRET=',IRET,'  NTRY=',NTRY
+        IF     ( NTRY .GT. 0 ) THEN
+          WRITE(IFCH,100)XFL,PT0,PT,EN,EN/ENLL
+100       FORMAT(' HASI: XFL=',A3
+     *          ,' PT0=',E10.3,' PT=',E10.3,' EN=',E10.3,' X=',E10.3)
+        ELSEIF ( NTRY .EQ. 0 ) THEN
+          WRITE(IFCH,101)XFL
+101       FORMAT(1X,'HASI: XFL=',A3)
+        ENDIF
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE HASTFC(SIL,SIX,IRET)
+
+C-----------------------------------------------------------------------
+C  CHECKS LONG STRINGS
+C  IRET=0: OK
+C  IRET=1: MASS .LT. MINIMAL MASS
+C  IRET=2: JC(,) .GT. 9
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CNCE/    NCES,NCOLEX
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      REAL    SI(NSI),SIL(NSI),SIX(NSI,NSIX)
+      INTEGER IC(2),JC(NFLAV,2),JCP(NFLAV,2)
+C-----------------------------------------------------------------------
+      IRET=0
+
+      CALL UTKSIX(SIX,KMAX)
+      IF ( KMAX .LT. 1 ) GOTO 9000
+
+      SI(1)=SIL(1)
+      SI(2)=SIL(2)
+      SI(3)=SIL(3)
+      SI(4)=SIL(4)
+      DO 110 K=1,KMAX
+        SI(1)=SI(1)+SIX(1,K)
+        SI(2)=SI(2)+SIX(2,K)
+        SI(3)=SI(3)+SIX(3,K)
+        SI(4)=SI(4)+SIX(4,K)
+110   CONTINUE
+      S=SI(4)**2-SI(1)**2-SI(2)**2-SI(3)**2
+
+      IC(1)=NINT(SIL(5))
+      IC(2)=NINT(SIL(6))
+      CALL IDDECO(IC,JC)
+      DO 130 K=1,KMAX
+        IC(1)=NINT(ABS(SIX(5,K)))
+        IC(2)=NINT(ABS(SIX(6,K)))
+        CALL IDDECO(IC,JCP)
+        DO 120 I=1,NFLAV
+          JC(I,1)=JC(I,1)+JCP(I,1)
+          JC(I,2)=JC(I,2)+JCP(I,2)
+120     CONTINUE
+130   CONTINUE
+
+      DO 125 I=1,NFLAV
+        IF ( JC(I,1)-JC(I,2) .GE.  10 ) IRET=2
+        IF ( JC(I,1)-JC(I,2) .LE. -10 ) IRET=2
+125   CONTINUE
+
+      IF ( IRET .EQ. 2 ) GOTO 9000
+
+      KEU=JC(1,1)-JC(1,2)
+      KED=JC(2,1)-JC(2,2)
+      KES=JC(3,1)-JC(3,2)
+      KEC=JC(4,1)-JC(4,2)
+      AMIN=UTAMNU(KEU,KED,KES,KEC,4)*0.5
+
+C-C   IF ( S .LT. AMIN**2 ) IRET=1
+
+9000  CONTINUE
+
+      IF ( ISH .GE. 94 ) THEN
+        WRITE(IFCH,*)' '
+        IF ( IRET .EQ. 0 ) THEN
+          WRITE(IFCH,*)('-',L=1,79)
+        ELSE
+          WRITE(IFCH,*)('#',L=1,79)
+        ENDIF
+        WRITE(IFCH,*)'IRET= ',IRET ,'  KMAX= ',KMAX,'  NREVT= ',NREVT
+     *        ,'  NCES= ',NCES
+        WRITE(IFCH,8004)SIL
+8004    FORMAT(' SIL: ',4F13.5,2F8.0)
+        IF ( KMAX .GT. 0 ) THEN
+          WRITE(IFCH,8007)(SIX(I,1),I=1,NSI)
+8007      FORMAT(' SIX: ',4F13.5,2F8.0)
+          IF ( KMAX .GT. 1 ) THEN
+            DO 1 J=2,KMAX
+              WRITE(IFCH,8008)(SIX(I,J),I=1,NSI)
+ 1          CONTINUE
+8008        FORMAT('      ',4F13.5,2F8.0)
+          ENDIF
+          WRITE(IFCH,8005)(SI(I),I=1,4)
+8005      FORMAT('  SI: ',4F13.5)
+          WRITE(IFCH,8006)(SI(I)**2,I=1,4)
+8006      FORMAT(' SI>2:',4F13.5)
+          WRITE(IFCH,*)'JC:'
+          WRITE(IFCH,*)JC
+          WRITE(IFCH,*)'KEU,KED,KES,KEC: ',KEU,KED,KES,KEC
+          WRITE(IFCH,*)'S= ',S,'    AMIN**2= ',AMIN**2,'   AMIN= ',AMIN
+        ENDIF
+        IF ( IRET .NE. 0 ) THEN
+          WRITE(IFCH,*)('#',L=1,79)
+        ELSE
+          WRITE(IFCH,*)('-',L=1,79)
+        ENDIF
+        WRITE(IFCH,*)' '
+      ENDIF
+
+      IF ( IRET .NE. 0 ) RETURN
+      IF ( ISH .GE. 91 ) CALL HASTFW (SIL,SIX)
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE HASTFL(SIL,SIX,STRL)
+
+C-----------------------------------------------------------------------
+C  FORMS A LEADING STRING
+C-----------------------------------------------------------------------
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+
+      REAL SIL(NSI),SIX(NSI,NSIX),STRL(NSI,NSIX+1)
+C-----------------------------------------------------------------------
+      DO 100 N=1,NSI
+        STRL(N,1)=SIL(N)
+        STRL(N,2)=0.
+100   CONTINUE
+      CALL UTKSIX(SIX,KMAX)
+      IF ( KMAX .EQ. 0 ) RETURN
+      DO 111 K=1,KMAX
+        DO 110 N=1,NSI
+          STRL(N,K+1)=SIX(N,K)
+110     CONTINUE
+111   CONTINUE
+      DO 120 N=1,NSI
+        STRL(N,KMAX+2)=0.
+120   CONTINUE
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE HASTFR(SILA,SILB,SIA,SIB,IRET)
+
+C-----------------------------------------------------------------------
+C  SUBTRACTS SIA-SIB FROM SILA-SILB (ONLY MOMENTUM COMPONENTS)
+C-----------------------------------------------------------------------
+      PARAMETER (NSI=6)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      DOUBLE PRECISION A,B,D,DAUXIL,PAB(4),PAM,PAP,PA3,PA4
+     *                ,PEM,PEP,PIM,PIP,PI3,PI4,PLAB(4)
+     *                ,POT,POX,POY,PUT,PUX,PUY,PYM,PYP,SLA
+     *                ,SSIA(NSI),SSIB(NSI),SSILA(NSI),SSILB(NSI)
+      REAL             SIA(NSI),SIB(NSI),SILA(NSI),SILB(NSI)
+C-----------------------------------------------------------------------
+      IRET=0
+      DO 12 I=1,4
+        SSILB(I)=SILB(I)
+        SSILA(I)=SILA(I)
+        PLAB(I)=SSILA(I)+SSILB(I)
+        SSIB(I)=SIB(I)
+        SSIA(I)=SIA(I)
+        PAB(I)=SSIA(I)+SSIB(I)
+12    CONTINUE
+      SLA=SIGN(1.D0, SSILA(3))
+
+      IF ( ISH.GE.0 .AND. SSIA(3)*SSILA(3) .LT. 0.D0 ) THEN
+        CALL UTMSG('HASTFR')
+        WRITE(IFCH,*)'*****  SSIA(3)*SSILA(3)<0'
+        WRITE(IFCH,*)SSIA(3),SSILA(3)
+        CALL UTMSGF
+      ENDIF
+
+      A=0.D0
+      D=0.D0
+      PYP=0.D0
+      PYM=0.D0
+      PIP=0.D0
+      PAM=0.D0
+
+      POX=SSILA(1)-SSIA(1)
+      POY=SSILA(2)-SSIA(2)
+      POT=SQRT(POX**2+POY**2)
+      PUX=SSILB(1)-SSIB(1)
+      PUY=SSILB(2)-SSIB(2)
+      PUT=SQRT(PUX**2+PUY**2)
+      DAUXIL = SLA*(PLAB(3)-PAB(3))
+      PEP= PLAB(4)-PAB(4) + DAUXIL
+      PEM= PLAB(4)-PAB(4) - DAUXIL
+      IF ( PEP .LT. 0.D0 ) GOTO 9001
+      IF ( PEM .LT. 0.D0 ) GOTO 9001
+      A=(PEM*PEP-PUT**2-POT**2)*0.5D0
+      D=PUT*POT
+      DAUXIL = A**2 - D**2
+      IF ( DAUXIL .LT. 0.D0 ) GOTO 9001
+      B=SQRT(DAUXIL)
+      PYP=(A+PUT**2-B)/PEM
+      PYM=(A+POT**2-B)/PEP
+      IF ( PYP .LT. 0.D0 ) GOTO 9001
+      IF ( PYM .LT. 0.D0 ) GOTO 9001
+      PIP=PEP-PYP
+      IF ( PIP .LT. 0.D0 ) GOTO 9001
+      PIM=PYM
+      PAP=PYP
+      PAM=PEM-PYM
+      IF ( PAM .LT. 0.D0 ) GOTO 9001
+      PI3=(PIP-PIM)*0.5D0*SLA
+      PI4=(PIP+PIM)*0.5D0
+      PA3=(PAP-PAM)*0.5D0*SLA
+      PA4=(PAP+PAM)*0.5D0
+      IF ( PI3*SSILA(3) .LT. 0.D0 ) GOTO 9001
+      IF ( PA3*SSILB(3) .LT. 0.D0 ) GOTO 9001
+      SSILA(1)=POX
+      SSILA(2)=POY
+      SSILA(3)=PI3
+      SSILA(4)=PI4
+      SSILB(1)=PUX
+      SSILB(2)=PUY
+      SSILB(3)=PA3
+      SSILB(4)=PA4
+
+      DO 13 I=1,4
+        SILA(I)=SSILA(I)
+        SILB(I)=SSILB(I)
+        SIA(I)=SSIA(I)
+        SIB(I)=SSIB(I)
+13    CONTINUE
+
+      IF ( ISH .LT. 90 ) GOTO 9000
+
+      IF ( ABS(PIP*PIM-POT**2) .GT. 1.D-4 ) THEN
+        CALL UTMSG('HASTFR')
+        WRITE(IFCH,*)'*****  PIP*PIM /= POT**2'
+        WRITE(IFCH,*)'PIP*PIM=',PIP*PIM
+        WRITE(IFCH,*)'POT**2=',POT**2
+        WRITE(IFCH,*)'PIP=',PIP
+        WRITE(IFCH,*)'PIM=',PIM
+        WRITE(IFCH,*)'POT=',POT
+        CALL UTMSGF
+      ENDIF
+      IF ( ABS(PAP*PAM-PUT**2) .GT. 1.D-4 ) THEN
+        CALL UTMSG('HASTFR')
+        WRITE(IFCH,*)'*****  PAP*PAM /= PUT**2'
+        WRITE(IFCH,*)'PAP*PAM=',PAP*PAM
+        WRITE(IFCH,*)'PUT**2=',PUT**2
+        WRITE(IFCH,*)'PAP=',PAP
+        WRITE(IFCH,*)'PAM=',PAM
+        WRITE(IFCH,*)'PUT=',PUT
+        CALL UTMSGF
+      ENDIF
+      IF ( ABS(SSILA(4)**2
+     *        -SSILA(1)**2-SSILA(2)**2-SSILA(3)**2) .GT. 1.D-4 ) THEN
+        CALL UTMSG('HASTFR')
+        WRITE(IFCH,*)'*****  MASS**2 OF SSILA NONZERO'
+        WRITE(IFCH,*)'MASS**2=',SSILA(4)**2
+     *                         -SSILA(1)**2-SSILA(2)**2-SSILA(3)**2
+        CALL UTMSGF
+      ENDIF
+      IF ( ABS(SSILB(4)**2
+     *         -SSILB(1)**2-SSILB(2)**2-SSILB(3)**2) .GT. 1.D-4 ) THEN
+        CALL UTMSG('HASTFR')
+        WRITE(IFCH,*)'*****  MASS**2 OF SSILB NONZERO'
+        WRITE(IFCH,*)'MASS**2=',SSILB(4)**2
+     *                         -SSILB(1)**2-SSILB(2)**2-SSILB(3)**2
+        CALL UTMSGF
+      ENDIF
+      DO 14 N=1,4
+        IF ( ABS(PLAB(N)
+     *         -SSILA(N)-SSILB(N)-SSIA(N)-SSIB(N)) .GT. 1.D-4 ) GOTO 15
+14    CONTINUE
+      GOTO 16
+15    CONTINUE
+      CALL UTMSG('HASTFR')
+      WRITE(IFCH,*)'***** SSILA+SSILB /= SSILA_NEW+SSILB_NEW+SSIA+SSIB'
+      WRITE(IFCH,*)'SSILA_OLD+SSILB_OLD:'
+      WRITE(IFCH,*)PLAB
+      WRITE(IFCH,*)'SSILA_NEW+SSILB_NEW+SSIA+SSIB:'
+      WRITE(IFCH,*)((SSILA(K)+SSILB(K)+SSIA(K)+SSIB(K)),K=1,4)
+      WRITE(IFCH,*)'SSILA_NEW:'
+      WRITE(IFCH,*)(SSILA(N),N=1,4)
+      WRITE(IFCH,*)'SSILB_NEW:'
+      WRITE(IFCH,*)(SSILB(N),N=1,4)
+      WRITE(IFCH,*)'SSIA:'
+      WRITE(IFCH,*)(SSIA(N),N=1,4)
+      WRITE(IFCH,*)'SSIB:'
+      WRITE(IFCH,*)(SSIB(N),N=1,4)
+      CALL UTMSGF
+16    CONTINUE
+
+9000  RETURN
+
+9001  IRET=1
+      IF ( ISH .LT. 90 ) RETURN
+      CALL UTMSG('HASTFR')
+      WRITE(IFCH,*)'STRING SUBTRACTION NOT POSSIBLE'
+      WRITE(IFCH,*)'SNGL(SSILA):'
+      WRITE(IFCH,*)(SNGL(SSILA(N)),N=1,4)
+      WRITE(IFCH,*)'SNGL(SSILB):'
+      WRITE(IFCH,*)(SNGL(SSILB(N)),N=1,4)
+      WRITE(IFCH,*)'SNGL(SSIA):'
+      WRITE(IFCH,*)(SNGL(SSIA(N)),N=1,4)
+      WRITE(IFCH,*)'SNGL(SSIB):'
+      WRITE(IFCH,*)(SNGL(SSIB(N)),N=1,4)
+      WRITE(IFCH,*)'PEP,PEM:',PEP,PEM
+      WRITE(IFCH,*)'POT,PUT:',POT,PUT
+      WRITE(IFCH,*)'A,D:',A,D
+      WRITE(IFCH,*)'A**2-D**2:',A**2-D**2
+      WRITE(IFCH,*)'PYP,PYM:',PYP,PYM
+      WRITE(IFCH,*)'PIP,PAM:',PIP,PAM
+      WRITE(IFCH,*)'PI3,SILA(3):',PI3,SILA(3)
+      WRITE(IFCH,*)'PA3,SILB(3):',PA3,SILB(3)
+      CALL UTMSGF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE HASTFS(SILA,SIXA,IFLA,XFLA,PTA,PTAH
+     *                 ,SILB,SIXB,IFLB,XFLB,PTB,PTBH  ,STR,IRET  ,JORD)
+
+C-----------------------------------------------------------------------
+C  FORMS A SHORT (=Q-QBAR) STRING
+C  IRET=0: OK
+C  IRET=1: IN SR HASI: REMNANT CHANGES DIRECTION OR ZERO SI().
+C  IRET=2: IN SR HASI: JC(,)=10 .
+C  IRET=3: STRING MASS TOO SMALL. NOT 4 , 5 .
+C  IRET=4: STRING MASS TOO SMALL. EQUAL FLAVOUR,ZERO MOMENTUM,XFL='000'.
+C  IRET=5: STRING MASS TOO SMALL. VALENCE QUARKS INVOLVED.
+C-----------------------------------------------------------------------
+      PARAMETER (NPTQ=129)
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CPTQ/    QPTH(NPTQ),QPTQ(NPTQ),XPTQ(NPTQ),QPTQMX,QPTHMX
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      REAL      PTDIFF(2),SIA(NSI),SIB(NSI),SILA(NSI),SILB(NSI)
+     *         ,SIXA(NSI,NSIX),SIXB(NSI,NSIX),STR(NSI,NSIX+1),STS(NSI,2)
+      CHARACTER XFLA*3,XFLB*3
+C-----------------------------------------------------------------------
+      DO 50 N=1,NSI
+        STR(N,1)=0.
+        STR(N,2)=0.
+        STR(N,3)=0.
+50    CONTINUE
+
+      CALL UTKSIX(SIXA,KMAXA)
+      CALL UTKSIX(SIXB,KMAXB)
+
+      R=RANGEN()
+      IF     ( IOPTQ .EQ. 2 ) THEN
+        PT = SQRT( -4.*PTQ**2/PI * LOG(1.-QPTQMX*R) )
+      ELSEIF ( IOPTQ .EQ. 3 ) THEN
+        PT = PTQ*SQRT( QPTQMX*R/(1.-QPTQMX*R) )
+      ELSE
+        PT=UTINVT(NPTQ,XPTQ,QPTQ,R*QPTQ(NPTQ))
+      ENDIF
+      PHI=2.*PI*RANGEN()
+      SIA(1)=PT*COS(PHI)
+      SIB(1)=-SIA(1)
+      SIA(2)=PT*SIN(PHI)
+      SIB(2)=-SIA(2)
+
+      IXFLAB=0
+      IF (  XFLA.NE.'---' .AND. XFLB.NE.'---' .AND.
+     *       (XFLA .NE. '000'  .OR.  XFLB .NE. '000') ) IXFLAB=1
+      CALL HASI('QUARK',SILA,IFLA,XFLA,PTA,PTAH,SIA,IRET,JORD,IXFLAB
+     *          ,PTDIFF)
+      IF ( IRET .EQ. 1 ) GOTO 9001
+      IF ( IRET .EQ. 2 ) GOTO 9002
+      SILA(1)=SILA(1)-PTDIFF(1)
+      SILA(2)=SILA(2)-PTDIFF(2)
+      SILB(1)=SILB(1)+PTDIFF(1)
+      SILB(2)=SILB(2)+PTDIFF(2)
+      CALL HASI('ANTIQ',SILB,IFLB,XFLB,PTB,PTBH,SIB,IRET,JORD,IXFLAB
+     *          ,PTDIFF)
+      IF ( IRET .EQ. 1 ) GOTO 9001
+      IF ( IRET .EQ. 2 ) GOTO 9002
+      SILB(1)=SILB(1)-PTDIFF(1)
+      SILB(2)=SILB(2)-PTDIFF(2)
+      SILA(1)=SILA(1)+PTDIFF(1)
+      SILA(2)=SILA(2)+PTDIFF(2)
+      IF ( SILA(5) .EQ. 0.  .AND.  SILA(6) .EQ. 0. ) THEN
+        SILA(5)=100000.
+        SILA(6)=100000.
+      ENDIF
+      IF ( SILB(5) .EQ. 0.  .AND.  SILB(6) .EQ. 0. ) THEN
+        SILB(5)=100000.
+        SILB(6)=100000.
+      ENDIF
+      IF     ( XFLA .EQ. '000'  .AND.  XFLB .EQ. '000' ) THEN
+        GOTO 9003
+      ELSEIF ( XFLA .NE. '---'  .AND.  XFLB .NE. '---' ) THEN
+        CALL HASTFR(SILA,SILB,SIA,SIB,IRET)
+        IF ( IRET .EQ. 1 ) GOTO 9003
+        DO 65 N=1,NSI
+          STS(N,1)=SIA(N)
+          STS(N,2)=SIB(N)
+65      CONTINUE
+        CALL UTAMST(STS,AM,AMIN,IRET)
+        IF ( IRET .NE. 0 ) GOTO 9003
+        DO 70 N=1,NSI
+          STR(N,1)=SIA(N)
+          STR(N,2)=SIB(N)
+70      CONTINUE
+      ELSEIF ( XFLA .NE. '---'  .AND.  XFLB .EQ. '---' ) THEN
+        IF ( KMAXB+1 .GT. NSIX ) THEN
+          CALL UTSTOP('HASTFS: NSIX TOO SMALL                  ')
+        ENDIF
+        DO 60 N=1,NSI
+          SIXB(N,KMAXB+1)=SIA(N)
+          IF ( KMAXB+2 .LE. NSIX ) SIXB(N,KMAXB+2)=0.
+60      CONTINUE
+        IF ( IFLA .LT. 0 ) THEN
+          SIXB(5,KMAXB+1)=-SIXB(5,KMAXB+1)
+          SIXB(6,KMAXB+1)=-SIXB(6,KMAXB+1)
+        ENDIF
+        KMAXB=KMAXB+1
+      ELSEIF ( XFLA .EQ. '---'  .AND.  XFLB .NE. '---' ) THEN
+        IF ( KMAXA+1 .GT. NSIX ) THEN
+          CALL UTSTOP('HASTFS: NSIX TOO SMALL                  ')
+        ENDIF
+        DO 80 N=1,NSI
+          SIXA(N,KMAXA+1)=SIB(N)
+          IF ( KMAXA+2 .LE. NSIX ) SIXA(N,KMAXA+2)=0.
+80      CONTINUE
+        IF ( IFLB .LT. 0 ) THEN
+          SIXA(5,KMAXA+1)=-SIXA(5,KMAXA+1)
+          SIXA(6,KMAXA+1)=-SIXA(6,KMAXA+1)
+        ENDIF
+        KMAXA=KMAXA+1
+      ELSEIF ( XFLA .EQ. '---'  .AND.  XFLB .EQ. '---' ) THEN
+C  NO ACTION
+      ELSE
+        CALL UTSTOP('HASTFS: IF/ELSE ERROR                   ')
+      ENDIF
+
+9000  IRET=0
+      IF ( ISH .GE. 91 ) WRITE(IFCH,102)SIA,XFLA,SIB,XFLB
+102   FORMAT(' SIA: ',4F13.5,2F8.0,2X,A3
+     *      /' SIB: ',4F13.5,2F8.0,2X,A3)
+      RETURN
+
+9001  IRET=1
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,102)SIA,XFLA,SIB,XFLB
+        WRITE(IFCH,*)'REMNANT CHANGES DIRECTION'
+        WRITE(IFCH,*)' OR ZERO SI(1/2/3)'
+        WRITE(IFCH,*)' '
+      ENDIF
+      RETURN
+
+9002  IRET=2
+C     JC(,)=10
+      IF ( ISH .GE. 91 ) WRITE(IFCH,102)SIA,XFLA,SIB,XFLB
+      RETURN
+
+9003  IRET=3
+      IF ( XFLA(1:2) .EQ. 'VA'  .OR.  XFLB(1:2) .EQ. 'VA' ) GOTO 9005
+      WT=ABS(SIA(1)+SIB(1))+ABS(SIA(2)+SIB(2))
+     *                              +ABS(SIA(3)+SIB(3))
+      IF ( ABS(IFLA).EQ.ABS(IFLB) .AND. WT.LT.1.E-3
+     *            .AND. XFLA.EQ.'000' .AND. XFLB.EQ.'000' ) GOTO 9004
+      IFLB=SIGN( IABS(IFLA), IFLB)
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,102)SIA,XFLA,SIB,XFLB
+        WRITE(IFCH,*)'STRING MASS TOO SMALL (3)'
+        WRITE(IFCH,*)' '
+      ENDIF
+      XFLA='000'
+      XFLB='000'
+      RETURN
+
+9004  IRET=4
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,102)SIA,XFLA,SIB,XFLB
+        WRITE(IFCH,*)'STRING MASS TOO SMALL (4)'
+        WRITE(IFCH,*)' '
+      ENDIF
+      RETURN
+
+9005  IRET=5
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,102)SIA,XFLA,SIB,XFLB
+        WRITE(IFCH,*)'STRING MASS TOO SMALL (5)'
+        WRITE(IFCH,*)' '
+      ENDIF
+      XFLA(1:2)='SE'
+      XFLB(1:2)='SE'
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE HASTFW(SIL,SIX)
+
+C-----------------------------------------------------------------------
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      REAL SIL(NSI),SIX(NSI,NSIX)
+C-----------------------------------------------------------------------
+      CALL UTKSIX(SIX,KMAX)
+      WRITE(IFCH,103)SIL,((SIX(I,J),I=1,NSI),J=1,KMAX)
+103   FORMAT(/' SIL: ',4F13.5,2F8.0/,' SIX: ',4F13.5,2F8.0/
+     *,50('      ',4F13.5,2F8.0/))
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE HASTPR(STRO,ISPLT)
+
+C-----------------------------------------------------------------------
+C  PROCESSES A STRING
+C  OUT: ISPLT=0 : PROCESSING OF STRO FINISHED
+C            >0 : HASTPR TO BE REDONE TO PROCESS REDUCED STRING
+C            -1 : ERROR
+C            -3 : HASTPR TO BE REDONE WITH NEW EPART,APART
+C            -4 : HAHA COLLISION TO BE REDONE BEC OF TOO FAST LD PTL
+C                             (ONLY FOR ICHOIC=2)
+C            -5 : HASTPR TO BE REDONE BECAUSE OF PRODUCED S=3/2 PARTICLE
+C-----------------------------------------------------------------------
+      PARAMETER (KOLLMX=2500)
+      PARAMETER (MAMX=56)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXSTR=3000)
+      PARAMETER (NDEP=129)
+      PARAMETER (NDET=129)
+      PARAMETER (NFLAV=6)
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /CJSPLI/  ALEAD,APART,ELEAD,EPART,SGNSIL,JPART,NSCC,NSCCX
+      COMMON /CKOL/    KOL
+      COMMON /CLEAD/   COOAV3,COOAV4,LEAD
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CNSUC/   NSUC
+      COMMON /COL/     BIMP,BMAX,COORD(4,KOLLMX),DISTCE(KOLLMX)
+     *                ,QDEP(NDEP),QDET14(NDET),QDET16(NDET),QDET40(NDET)
+     *                ,QDET99(NDET),RMPROJ,RMTARG(4),XDEP(NDEP)
+     *                ,XDET14(NDET),XDET16(NDET),XDET40(NDET)
+     *                ,XDET99(NDET)
+     *                ,KOLL,LTARG,NORD(KOLLMX),NPROJ,NRPROJ(KOLLMX)
+     *                ,NRTARG(KOLLMX),NTARG
+      COMMON /CPROJA/  IPROJ,ITARG,KPROJA(NHA,MAMX),KTARGA(NHA,MAMX)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CPZSTR/  ESTRL,PZSTRL,ISEA,ISTRL
+      COMMON /CSTR/    PSTR(5,MXSTR),ROTSTR(3,MXSTR),XORSTR(4,MXSTR)
+     *                ,ICSTR(4,MXSTR),IORSTR(MXSTR),IRLSTR(MXSTR),NSTR
+      COMMON /CSTSH/   NSTSH
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      DOUBLE PRECISION DAUXIL,PPE,PPM,PPP,PPX,PPY,PPZ,PP1(4),PP2(4)
+      REAL             P1(4),P2(4),STR(NSI,2),STRO(NSI,NSIX+1)
+      INTEGER          IC(2),IC1(2),IC1X(2),IC2(2)
+     *                ,JC(NFLAV,2),JC1(NFLAV,2),JC2(NFLAV,2)
+     *                ,JC3(NFLAV,2)
+C-----------------------------------------------------------------------
+      IF     ( ISPLT .EQ. -3 ) THEN
+        JPART=1
+        ISPLT=0
+      ELSEIF ( ISPLT .EQ.  0 ) THEN
+        JPART=0
+      ENDIF
+      ISPLT0=ISPLT
+
+      CALL UTKSTR(STRO,KMAX)
+
+C  ZERO STRING
+C  -----------
+      IF ( KMAX .EQ. 0 ) THEN
+        IF ( ISH .GE. 91 ) THEN
+          WRITE(IFCH,*)'ZERO STRING'
+          WRITE(IFCH,*)' '
+        ENDIF
+        ISPLT=0
+        RETURN
+      ENDIF
+
+C  PRINT
+C  -----
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,105)(STRO(I,1),I=1,4),(NINT(STRO(I,1)),I=5,6)
+105     FORMAT(' STR: ',4F13.5,2I8)
+        IF ( KMAX .GT. 1 ) THEN
+          DO 8 K=2,KMAX
+            WRITE(IFCH,104)(STRO(I,K),I=1,4),(NINT(STRO(I,K)),I=5,6)
+104         FORMAT('      ',4F13.5,2I8)
+ 8        CONTINUE
+        ENDIF
+        WRITE(IFCH,*)' '
+      ENDIF
+
+C  CHECK LEADING OBJECT
+C  --------------------
+      IC1(1)=NINT(STRO(4+1,1))
+      IC1(2)=NINT(STRO(4+2,1))
+      CALL IDCOMP(IC1,IC1X,JC3,1)
+      STRO(4+1,1)=IC1X(1)
+      STRO(4+2,1)=IC1X(2)
+      CALL IDDECO(IC1X,JC1)
+      NPA=0
+      DO 7 N=1,NFLAV
+        NPA=NPA+JC1(N,1)+JC1(N,2)
+ 7    CONTINUE
+
+C  SPLIT STRING
+C  ------------
+      IF ( KMAX .GT. 2  .OR. KMAX.EQ.2 .AND. ISPLT.GT.0
+     *                  .OR. KMAX.EQ.2 .AND. NPA.GT.3
+     *                  .OR. KMAX.EQ.2 .AND. LEAD.EQ.1 ) THEN
+        IF ( ISPLT .EQ. 0 ) THEN
+          NSUC=0
+          KMAXOR=KMAX
+          IF ( STRO(3,1) .LT. 0. ) THEN
+            SGNSIL=-1
+          ELSE
+            SGNSIL=1
+          ENDIF
+          DO 17 N=1,NFLAV
+            JC2(N,1)=0
+            JC2(N,2)=0
+17        CONTINUE
+          DO 15 K=1,KMAX
+            IC1(1)=NINT(ABS(STRO(4+1,K)))
+            IC1(2)=NINT(ABS(STRO(4+2,K)))
+            CALL IDDECO(IC1,JC1)
+            DO 16 N=1,NFLAV
+              JC2(N,1)=JC2(N,1)+JC1(N,1)
+              JC2(N,2)=JC2(N,2)+JC1(N,2)
+              IF ( N .GT. 4  .AND.  (JC2(N,1).NE.0 .OR.
+     *                               JC2(N,2) .NE. 0) ) THEN
+                 CALL UTSTOP('HASTPR: FLAVOUR > 4                     ')
+               ENDIF
+16          CONTINUE
+15        CONTINUE
+          KEU=JC2(1,1)-JC2(1,2)
+          KED=JC2(2,1)-JC2(2,2)
+          KES=JC2(3,1)-JC2(3,2)
+          KEC=JC2(4,1)-JC2(4,2)
+          ALEAD=UTAMNU(KEU,KED,KES,KEC,0)
+C-C       ALEAD=0.
+          ELEAD=STRO(4,1)
+          IF ( JPART .EQ. 0 ) THEN
+            NSCCX=KMAXOR-1
+            NSTR0=NSTR
+          ELSE
+            NSCCX=MAX(1,NSCC)
+            NSTR=NSTR0
+          ENDIF
+          APART=ALEAD/NSCCX
+          EPART=ELEAD/NSCCX
+          IF ( ALEAD .GT. ELEAD ) THEN
+            IF ( ISH .GE. 90 ) THEN
+              CALL UTMSG('HASTPR')
+              WRITE(IFCH,*)'*****  ALEAD > ELEAD  ==> RET CODE = -1'
+              WRITE(IFCH,*)'ALEAD=',ALEAD,'   ELEAD=',ELEAD
+              CALL UTMSGF
+            ENDIF
+            ISPLT=-1
+            RETURN
+          ENDIF
+        ENDIF
+        CALL JSPLIT(STRO,STR,KOLSP,IER,KMAXOR)
+        IF     ( IER .EQ. 1 ) THEN
+          ISPLT=-1
+          RETURN
+        ELSEIF ( IER .EQ. 3 ) THEN
+          ISPLT=-3
+          RETURN
+        ENDIF
+        ISPLT=ISPLT+1
+        IF ( IER .EQ. 2 ) THEN
+          IF ( ISH .GE. 91 ) THEN
+            WRITE(IFCH,*)'MULTISTRING: ABSORPTION OF ONE LEG'
+            WRITE(IFCH,*)' '
+          ENDIF
+          RETURN
+        ENDIF
+        KOLZ=KOLSP
+        IF ( KOLZ .LT. 1  .OR.  KOLZ .GT. KOLLMX ) THEN
+          WRITE(IFCH,*)'KOLZ=',KOLZ
+          CALL UTSTOP('HASTPR: KOLZ OUT OF RANGE (1)           ')
+        ENDIF
+        KIN=1
+      ELSE
+        IF ( ISPLT .GT. 0 ) THEN
+          KIN=1
+        ELSE
+          KIN=0
+        ENDIF
+        DO 5 N=1,NSI
+          IF ( N .LE. 4 ) THEN
+            STR(N,1)=STRO(N,1)
+            STR(N,2)=STRO(N,2)
+          ELSE
+            STR(N,1)=ABS(STRO(N,1))
+            STR(N,2)=ABS(STRO(N,2))
+          ENDIF
+ 5      CONTINUE
+        IF     ( ISPLT .GT. 0 ) THEN
+          IF ( SGNSIL .LT. 0. ) THEN
+            KOLZ=KTARGA(2,ITARG)
+          ELSE
+            KOLZ=KPROJA(2,IPROJ)
+          ENDIF
+        ELSEIF ( LEAD .EQ. 1  .AND.  KMAX .EQ. 2 ) THEN
+          IF ( STR(3,1) .LT. 0. ) THEN
+            KOLZ=KTARGA(2,ITARG)
+          ELSE
+            KOLZ=KPROJA(2,IPROJ)
+          ENDIF
+        ELSE
+          KOLZ=KOL
+        ENDIF
+        IF ( KOLZ .LT. 1  .OR.  KOLZ .GT. KOLLMX ) THEN
+          IF(ISH.GE.90)THEN
+            CALL UTMSG('HASTPR')
+            WRITE(IFCH,*)'*****  KOLZ OUT OF RANGE;   KOLZ:',KOLZ
+     *        ,'   SET TO:',KOL
+            WRITE(IFCH,105)(STR(I,1),I=1,4),(NINT(STR(I,1)),I=5,6)
+            WRITE(IFCH,104)(STR(I,2),I=1,4),(NINT(STR(I,2)),I=5,6)
+            CALL UTMSGF
+          ENDIF
+          KOLZ=KOL
+        ENDIF
+        ISPLT=0
+      ENDIF
+
+C  ADD TWO JETS
+C  ------------
+      IC1(1)=NINT(STR(4+1,1))
+      IC1(2)=NINT(STR(4+2,1))
+      IC2(1)=NINT(STR(4+1,2))
+      IC2(2)=NINT(STR(4+2,2))
+      IA1=IC1(1)+IC1(2)
+      IA2=IC2(1)+IC2(2)
+      IF ( IA1 .EQ. 0  .AND.  IA2 .EQ. 0 ) THEN
+        WRITE(IFCH,*)'STRO:'
+        WRITE(IFCH,105)(STRO(I,1),I=1,4),(NINT(STRO(I,1)),I=5,6)
+        IF ( KMAX .GT. 1 ) THEN
+          DO 18 K=2,KMAX
+            WRITE(IFCH,104)(STRO(I,K),I=1,4),(NINT(STRO(I,K)),I=5,6)
+18        CONTINUE
+        ENDIF
+        WRITE(IFCH,*)'STR:'
+        WRITE(IFCH,105)(STR(I,1),I=1,4),(NINT(STR(I,1)),I=5,6)
+        WRITE(IFCH,104)(STR(I,2),I=1,4),(NINT(STR(I,2)),I=5,6)
+        CALL UTSTOP('HASTPR: STR=0                           ')
+      ENDIF
+      CALL IDDECO(IC1,JC1)
+      CALL IDDECO(IC2,JC2)
+      N1=0
+      N2=0
+      DO 9 N=1,NFLAV
+        N1=N1+JC1(N,1)+JC1(N,2)
+        N2=N2+JC2(N,1)+JC2(N,2)
+        JC(N,1)=JC1(N,1)+JC2(N,1)
+        JC(N,2)=JC1(N,2)+JC2(N,2)
+        IF ( N .GT. 4 .AND. (JC(N,1) .NE. 0 .OR.
+     *                       JC(N,2) .NE. 0) ) THEN
+          CALL UTSTOP ('HASTPR: FLAVOUR > 4                     ')
+        ENDIF
+ 9    CONTINUE
+      KEU=JC(1,1)-JC(1,2)
+      KED=JC(2,1)-JC(2,2)
+      KES=JC(3,1)-JC(3,2)
+      KEC=JC(4,1)-JC(4,2)
+      AMSTR=UTAMNU(KEU,KED,KES,KEC,6)
+      CALL IDENCO(JC,IC,IRETEN)
+      IF ( IRETEN .EQ. 1 ) THEN
+        CALL UTSTOP('HASTPR: IDENCO RET CODE = 1             ')
+      ENDIF
+      IDSTR=IDTRA(IC,0,0,3)
+
+C  DETERMINE ROT
+C  -------------
+      PP1(1)=STR(1,1)
+      PP1(2)=STR(2,1)
+      PP1(3)=STR(3,1)
+      PP1(4)=STR(4,1)
+      PP2(1)=STR(1,2)
+      PP2(2)=STR(2,2)
+      PP2(3)=STR(3,2)
+      PP2(4)=STR(4,2)
+      PPX=PP1(1)+PP2(1)
+      PPY=PP1(2)+PP2(2)
+      PPZ=PP1(3)+PP2(3)
+      PPP=SQRT(PPX**2+PPY**2+PPZ**2)
+      IF ( IA1 .NE. 0  .AND.  IA2 .NE. 0 ) THEN
+        PP1(4)=SQRT(PP1(1)**2+PP1(2)**2+PP1(3)**2)
+        PP2(4)=SQRT(PP2(1)**2+PP2(2)**2+PP2(3)**2)
+        PPE=PP1(4)+PP2(4)
+        PPM=SQRT((PPE-PPP)*(PPE+PPP))
+        CALL UTLOB2(1,PPX,PPY,PPZ,PPE,PPM,PP1(1),PP1(2),PP1(3),PP1(4))
+        CALL UTLOB2(1,PPX,PPY,PPZ,PPE,PPM,PP2(1),PP2(2),PP2(3),PP2(4))
+      ELSE
+        PPE=PP1(4)+PP2(4)
+        DAUXIL=(PPE-PPP)*(PPE+PPP)
+        IF ( DAUXIL .GT. 0.D0 ) THEN
+          PPM=SQRT(DAUXIL)
+        ELSE
+          PPM=0.D0
+          PPE=PPP
+        ENDIF
+        PP1(1)=0.D0
+        PP1(2)=0.D0
+        PP1(3)=0.D0
+        PP1(4)=0.D0
+        PP2(1)=0.D0
+        PP2(2)=0.D0
+        PP2(3)=0.D0
+        PP2(4)=0.D0
+      ENDIF
+      PX=PPX
+      PY=PPY
+      PZ=PPZ
+      E=PPE
+      AM=PPM
+      P=PPP
+      P1(1)=PP1(1)
+      P1(2)=PP1(2)
+      P1(3)=PP1(3)
+      P1(4)=PP1(4)
+      P2(1)=PP2(1)
+      P2(2)=PP2(2)
+      P2(3)=PP2(3)
+      P2(4)=PP2(4)
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,107)(P1(I),I=1,4),IC1
+        WRITE(IFCH,107)(P2(I),I=1,4),IC2
+107     FORMAT(' JET: ',4F13.5,2I8)
+        WRITE(IFCH,*)' '
+      ENDIF
+CDH   IF ( P1(3) .NE. 0. ) THEN
+CDH     DIRCN=SIGN(1.,P1(3))
+CDH   ELSE
+CDH     DIRCN=1.
+CDH   ENDIF
+
+C  MASS ADJUSTMENT
+C  ---------------
+      AM0=AM
+      CALL IDRES(IDSTR,AM,IDSTRR,IADJ)
+
+C  DIFFRACTIVE PARTICLE:
+C-C   IF ( (IA1.EQ.0.OR.IA2.EQ.0) .AND. ISPLT0.EQ.0 ) THEN
+C-C     IF ( MOD(IDSTRR,10).EQ.0 .AND. RANGEN().LT.0.1 ) THEN
+C-C       AM=0.
+C-C       CALL IDRES(IDSTR,AM,IDSTRR,IADJ)
+C-C       AM=AM+.300
+C-C       CALL IDRES(IDSTR,AM,IDSTRR,IADJ)
+C-C     ENDIF
+C-C   ENDIF
+
+C  REMNANT:
+      IF ( (IA1.EQ.0 .OR. IA2.EQ.0) .AND. ISPLT0.GT.0 ) THEN
+        IF     ( NSUC .GT. 0 ) THEN
+          AM=0.
+          CALL IDRES(IDSTR,AM,IDSTRR,IADJ)
+          IF     ( N1+N2 .EQ. 2 ) THEN
+            IF ( RANGEN() .LT. 0.33 ) AM=AM+0.400
+          ELSEIF ( MOD(IDSTRR,10) .EQ. 0 ) THEN
+            IF ( RANGEN() .LT. 0.33 ) AM=AM+0.300
+          ELSE
+            IF ( RANGEN() .GT. 0.33 ) THEN
+              ISPLT=-5
+              RETURN
+            ENDIF
+          ENDIF
+          CALL IDRES(IDSTR,AM,IDSTRR,IADJ)
+
+C  ALL LEGS ABSORBED
+        ELSEIF ( NSUC .EQ. 0 ) THEN
+          IF ( ISEA .EQ. 0 ) THEN
+            ISPLT=-4
+            RETURN
+          ENDIF
+          AM=0.
+          IF ( ISTRL .EQ. 1 ) THEN
+            AM=SQRT(ENGY**2*(1-ABS(PZSTRL)/PNLLX)+.94**2 )
+          ELSE
+            CALL IDRES(IDSTR,AM,IDSTRR,IADJ)
+            IF ( MOD(IDSTRR,10) .EQ. 0 ) THEN
+              AM=AM+RANGEN()
+            ELSE
+              AM=AM+RANGEN()-0.30
+            ENDIF
+C-C         IF ( MOD(IDSTRR,10).EQ.0.AND.RANGEN().LT.0.33 ) AM=AM+0.30
+          ENDIF
+          CALL IDRES(IDSTR,AM,IDSTRR,IADJ)
+        ENDIF
+      ENDIF
+
+C  LEADING STRING = HADRON:
+      IF ( LEAD.EQ.1 .AND. IA1.NE.0 .AND.IA2.NE.0
+     *     .AND. ISPLT0.EQ.0 .AND. ISPLT.EQ.0 .AND. IDSTRR.NE.0 ) THEN
+        AM=0.
+        CALL IDRES(IDSTR,AM,IDSTRR,IADJ)
+        IF ( MOD(IDSTRR,10).EQ.0  .AND.  RANGEN().LT.0.33 ) AM=AM+0.300
+        CALL IDRES(IDSTR,AM,IDSTRR,IADJ)
+      ENDIF
+
+      IDSTR=IDSTRR
+      IF ( IDSTR .EQ. 0  .AND.  AM .LT. AMSTR ) AM=AMSTR
+      PPM=AM
+      E=SQRT(PPP**2+PPM**2)
+
+C  WRITE /CSTR/
+C  ------------
+      NSTR=NSTR+1
+      IF ( NSTR .GT. MXSTR ) THEN
+        CALL UTSTOP('HASTPR: NSTR>MXSTR                      ')
+      ENDIF
+      IF ( LEAD .EQ. 0 ) NSTSH=1
+      NSUC=NSUC+1
+      IRLSTR(NSTR)=NSUC
+      IF ( ISPLT0 .EQ. 0  .AND.  ISPLT .EQ. 0 ) IRLSTR(NSTR)=0
+      ICSTR(1,NSTR)=IC1(1)
+      ICSTR(2,NSTR)=IC1(2)
+      ICSTR(3,NSTR)=IC2(1)
+      ICSTR(4,NSTR)=IC2(2)
+      PSTR(1,NSTR)=PX
+      PSTR(2,NSTR)=PY
+      PSTR(3,NSTR)=PZ
+      PSTR(4,NSTR)=E
+      PSTR(5,NSTR)=AM
+      ROTSTR(1,NSTR)=P1(1)
+      ROTSTR(2,NSTR)=P1(2)
+      ROTSTR(3,NSTR)=P1(3)
+      IF ( P1(1) .EQ. 0.  .AND.  P1(2) .EQ. 0.  .AND.  P1(3) .EQ. 0. )
+     *                                                ROTSTR(3,NSTR)=1.
+      XORSTR(1,NSTR)=COORD(1,KOLZ)
+      XORSTR(2,NSTR)=COORD(2,KOLZ)
+      XORSTR(3,NSTR)=COORD(3,KOLZ)
+      XORSTR(4,NSTR)=COORD(4,KOLZ)
+      IORSTR(NSTR)=-KOLZ
+      AMSAC=AMSAC+AM
+      IF ( ISH .GE. 91 ) THEN
+        IF     ( ISPLT .GT. 0 ) THEN
+          WRITE(IFCH,*)'SPLIT OFF STRING:'
+        ELSEIF ( ISPLT0 .GT. 0 ) THEN
+          WRITE(IFCH,*)'REMAINDER:'
+        ELSEIF ( LEAD .EQ. 1 ) THEN
+          WRITE(IFCH,*)'ORDINARY BARYONIC STRING:'
+        ELSE
+          WRITE(IFCH,*)'ORDINARY MESONIC STRING:'
+        ENDIF
+        WRITE(IFCH,106)NSTR,(ICSTR(K,NSTR)/100,K=1,4)
+     *                      ,(PSTR(I,NSTR),I=3,5)
+106     FORMAT(/' /CSTR/',I4,3X,4I5,2X,3(E10.3)/)
+      ENDIF
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE HDECMP(BAR,SIL,SIX)
+
+C-----------------------------------------------------------------------
+C  DECOMPOSES BAR INTO SIL,SIX
+C-----------------------------------------------------------------------
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      REAL BAR(NSI,NHA),SIL(NSI),SIX(NSI,NSIX)
+C-----------------------------------------------------------------------
+      DO 1 N=1,NSI
+        SIL(N)=BAR(N,2)
+ 1    CONTINUE
+      DO 3 M=1,NSIX
+        SIXSQR=0.
+        DO 2 N=1,NSI
+          SIX(N,M)=BAR(N,2+M)
+          SIXSQR=SIXSQR+SIX(N,M)**2
+ 2      CONTINUE
+        IF ( SIXSQR .LE. 1.E-5 ) RETURN
+ 3    CONTINUE
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE HRESCL(J1,J2,PSUM,IFAIL)
+
+C-----------------------------------------------------------------------
+C  RESCALES STRING MOMENTA OF STRINGS J1-J2 TO HAVE TOTAL MOM PSUM.
+C-----------------------------------------------------------------------
+      PARAMETER (MXSTR=3000)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CSTR/    PSTR(5,MXSTR),ROTSTR(3,MXSTR),XORSTR(4,MXSTR)
+     *                ,ICSTR(4,MXSTR),IORSTR(MXSTR),IRLSTR(MXSTR),NSTR
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      DOUBLE PRECISION PADD(5),PP(5),PPSUM(5)
+      REAL             PSUM(5)
+      DATA             ERRLIM /.001/
+C-----------------------------------------------------------------------
+      IFAIL=1
+
+      PPSUM(1)=PSUM(1)
+      PPSUM(2)=PSUM(2)
+      PPSUM(3)=PSUM(3)
+      PPSUM(4)=PSUM(4)
+      PPSUM(5)=PSUM(5)
+
+      IF ( J1 .GE. J2 ) THEN
+        CALL UTSTOP('HRESCL: J1 .GE. J2                      ')
+      ENDIF
+
+      PADD(1)=0.D0
+      PADD(2)=0.D0
+      PADD(3)=0.D0
+      PADD(4)=0.D0
+      PADD(5)=0.D0
+      DO 110 J=J1,J2
+        PADD(1)=PADD(1)+PSTR(1,J)
+        PADD(2)=PADD(2)+PSTR(2,J)
+        PADD(3)=PADD(3)+PSTR(3,J)
+        PADD(4)=PADD(4)+PSTR(4,J)
+        PADD(5)=PADD(5)+PSTR(5,J)
+110   CONTINUE
+      IF ( PADD(5) .GE. PPSUM(5) ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('HRESCL')
+          WRITE(IFCH,*)'*****  SUM OF STR MASSES .GE. PSUM(5)'
+          DO 1 J=J1,J2
+            WRITE(IFCH,109)J,(ICSTR(K,J)/100,K=1,4)
+     *                       ,(PSTR(L,J),L=3,5)
+109         FORMAT(' /CSTR/',I4,3X,4I5,2X,3(E10.3))
+ 1        CONTINUE
+          WRITE(IFCH,*)'PPSUM(345):',(SNGL(PPSUM(K)),K=3,5)
+          CALL UTMSGF
+        ENDIF
+        RETURN
+      ENDIF
+      PADD(5)=PADD(4)**2-PADD(1)**2-PADD(2)**2-PADD(3)**2
+      IF ( PADD(5) .LE. 0.D0 ) THEN
+        DO 2 J=J1,J2
+          WRITE(IFCH,108)J,(PSTR(L,J),L=1,5)
+108       FORMAT(' /CSTR/',I4,2X,5(E10.3))
+ 2      CONTINUE
+        CALL UTSTOP('HRESCL: MASS**2 OF STRING-SUM NEGATIVE  ')
+      ENDIF
+      PADD(5)=SQRT(PADD(5))
+
+C  BOOST STRINGS TO REST
+C  ---------------------
+      DO 115 J=J1,J2
+        PP(1)=PSTR(1,J)
+        PP(2)=PSTR(2,J)
+        PP(3)=PSTR(3,J)
+        PP(4)=PSTR(4,J)
+        CALL UTLOB2(1,PADD(1),PADD(2),PADD(3),PADD(4),PADD(5)
+     *                ,PP(1),PP(2),PP(3),PP(4))
+        PSTR(1,J)=PP(1)
+        PSTR(2,J)=PP(2)
+        PSTR(3,J)=PP(3)
+        PSTR(4,J)=PP(4)
+115   CONTINUE
+
+C  RESCALE MOMENTA IN REST FRAME
+C  -----------------------------
+      SCAL=1.
+      DO 301 IPASS=1,200
+        SUM=0.
+        DO 310 J=J1,J2
+          PSTR(1,J)=SCAL*PSTR(1,J)
+          PSTR(2,J)=SCAL*PSTR(2,J)
+          PSTR(3,J)=SCAL*PSTR(3,J)
+          PSTR(4,J)=SQRT(PSTR(1,J)**2+PSTR(2,J)**2+PSTR(3,J)**2
+     *                  +PSTR(5,J)**2)
+          SUM=SUM+PSTR(4,J)
+310     CONTINUE
+        SCAL=PSUM(5)/SUM
+        IF ( ABS(SCAL-1.) .LE. ERRLIM ) GOTO 300
+301   CONTINUE
+      IF ( ISH .GE. 90 ) THEN
+        CALL UTMSG('HRESCL')
+        WRITE(IFCH,*)'*****  SCAL=',SCAL
+        CALL UTMSGF
+      ENDIF
+300   CONTINUE
+
+C  BOOST BACK WITH PPSUM
+C  ---------------------
+      DO 315 J=J1,J2
+        PP(1)=PSTR(1,J)
+        PP(2)=PSTR(2,J)
+        PP(3)=PSTR(3,J)
+        PP(4)=PSTR(4,J)
+        CALL UTLOB2(-1,PPSUM(1),PPSUM(2),PPSUM(3),PPSUM(4),PPSUM(5)
+     *             ,PP(1),PP(2),PP(3),PP(4))
+        PSTR(1,J)=PP(1)
+        PSTR(2,J)=PP(2)
+        PSTR(3,J)=PP(3)
+        PSTR(4,J)=PP(4)
+315   CONTINUE
+
+      IFAIL=0
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDCOMJ(JC)
+
+C-----------------------------------------------------------------------
+C  COMPACTIFIES JC
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      INTEGER IC(2),ICX(2),JC(NFLAV,2)
+C-----------------------------------------------------------------------
+      CALL IDCOMP(IC,ICX,JC,2)
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDCOMK(IC)
+
+C-----------------------------------------------------------------------
+C  COMPACTIFIES IC
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      INTEGER IC(2),ICX(2),JC(NFLAV,2)
+C-----------------------------------------------------------------------
+      CALL IDCOMP(IC,ICX,JC,1)
+      IC(1)=ICX(1)
+      IC(2)=ICX(2)
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDCOMP(IC,ICX,JC,IM)
+
+C-----------------------------------------------------------------------
+C  COMPACTIFIES IC,JC
+C  INPUT: IM (1 OR 2)
+C         IC (IF IM=1)
+C         JC (IF IM=2)
+C  OUTPUT: ICX (IF IM=1)
+C          JC
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      INTEGER IC(2),ICX(2),JC(NFLAV,2)
+C-----------------------------------------------------------------------
+      IF ( IM .EQ. 1 ) CALL IDDECO(IC,JC)
+      ICX(1)=0
+      ICX(2)=0
+      DO 2 N=1,NFLAV
+        IF ( JC(N,1) .NE. 0  .OR. JC(N,2) .NE. 0 ) GOTO 1
+ 2    CONTINUE
+      RETURN
+ 1    L=0
+      DO 3 N=1,NFLAV
+        K=MIN(JC(N,1),JC(N,2))
+        JC(N,1)=JC(N,1)-K
+        JC(N,2)=JC(N,2)-K
+        IF ( JC(N,1) .LT. 0  .OR.  JC(N,2) .LT. 0 ) THEN
+          CALL UTSTOP('IDCOMP: JC NEGATIVE                     ')
+        ENDIF
+        L=L+JC(N,1)+JC(N,2)
+ 3    CONTINUE
+      IF ( L .EQ. 0 ) THEN
+        JC(1,1)=1
+        JC(1,2)=1
+      ENDIF
+      IF ( IM .EQ. 1 ) THEN
+        CALL IDENCO(JC,ICX,IRETEN)
+        IF ( IRETEN .EQ. 1 ) THEN
+          CALL UTSTOP('IDCOMP: IDENCO RET CODE = 1             ')
+        ENDIF
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDDECO(IC,JC)
+
+C-----------------------------------------------------------------------
+C  DECODE PARTICLE ID
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      INTEGER IC(2),JC(NFLAV,2)
+C-----------------------------------------------------------------------
+      ICI=IC(1)
+      JC(6,1)=MOD(ICI,10)
+      JC(5,1)=MOD(ICI/10,10)
+      JC(4,1)=MOD(ICI/100,10)
+      JC(3,1)=MOD(ICI/1000,10)
+      JC(2,1)=MOD(ICI/10000,10)
+      JC(1,1)=MOD(ICI/100000,10)
+      ICI=IC(2)
+      JC(6,2)=MOD(ICI,10)
+      JC(5,2)=MOD(ICI/10,10)
+      JC(4,2)=MOD(ICI/100,10)
+      JC(3,2)=MOD(ICI/1000,10)
+      JC(2,2)=MOD(ICI/10000,10)
+      JC(1,2)=MOD(ICI/100000,10)
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDENCO(JC,IC,IRETEN)
+
+C-----------------------------------------------------------------------
+C  ENCODE PARTICLE ID
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      INTEGER IC(2),JC(NFLAV,2)
+C-----------------------------------------------------------------------
+      IRETEN=0
+      IC(1)=0
+      DO 20 I=1,NFLAV
+        IF ( JC(I,1) .GE. 10 ) GOTO 22
+        IC(1)=IC(1)+JC(I,1)*10**(NFLAV-I)
+20    CONTINUE
+      IC(2)=0
+      DO 21 I=1,NFLAV
+        IF ( JC(I,2) .GE. 10 ) GOTO 22
+        IC(2)=IC(2)+JC(I,2)*10**(NFLAV-I)
+21    CONTINUE
+      RETURN
+22    IRETEN=1
+      IC(1)=0
+      IC(2)=0
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDFLAV(ID,IFL1,IFL2,IFL3,JSPIN,INDEX)
+
+C-----------------------------------------------------------------------
+C  UNPACKS THE IDENT CODE ID=+/-IJKL
+C
+C          MESONS--
+C          I=0, J<=K, +/- IS SIGN FOR J
+C          ID=110 FOR PI0, ID=220 FOR ETA, ETC.
+C
+C          BARYONS--
+C          I<=J<=K IN GENERAL
+C          J<I<K FOR SECOND STATE ANTISYMMETRIC IN (I,J), EG. L = 2130
+C
+C          OTHER--
+C          ID=1,...,6 FOR QUARKS
+C          ID=9 FOR GLUON
+C          ID=10 FOR PHOTON
+C          ID=11,...,16 FOR LEPTONS
+C          ID=20 FOR KS, ID=-20 FOR KL
+C
+C          I=21...26 FOR SCALAR QUARKS
+C          I=29 FOR GLUINO
+C          I=30 FOR PHOTINO
+C          I=31...36 FOR SCALAR LEPTONS
+C          I=39 FOR WINO
+C          I=40 FOR ZINO
+C
+C          ID=80 FOR W+
+C          ID=81,...,89 FOR HIGGS MESONS
+C          ID=90 FOR Z0
+C
+C          DIQUARKS--
+C          ID=+/-IJ00, I<J FOR DIQUARK COMPOSED OF I,J.
+C
+C          INDEX IS A SEQUENCE NUMBER USED INTERNALLY
+C-----------------------------------------------------------------------
+      PARAMETER (NMES=2)
+      PARAMETER (NQLEP=41)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+C-----------------------------------------------------------------------
+      IDABS=ABS(ID)
+      I=IDABS/1000
+      J1=IDABS-I*1000
+      J = J1/100
+      ISI = SIGN(1,ID)
+      IF ( ID .NE. 0  .AND.  MOD(ID,100) .EQ. 0 ) GOTO 300
+      IF ( J .EQ. 0 ) GOTO 200
+      K1= J1 - J*100
+      K = K1/10
+      JSPIN= K1 - K*10
+      IF ( I .EQ. 0 ) GOTO 100
+C  BARYONS
+C  ONLY X,Y BARYONS ARE QQX, QQY, Q=U,D,S.
+      IFL1=ISI*I
+      IFL2=ISI*J
+      IFL3=ISI*K
+      IF ( K .LE. 6 ) THEN
+        INDEX=MAX(I-1,J-1)**2+I+MAX(I-J,0)+(K-1)*K*(2*K-1)/6
+     *                        +109*JSPIN+36*NMES+NQLEP+11
+      ELSE
+        INDEX=MAX(I-1,J-1)**2+I+MAX(I-J,0)+9*(K-7)+91
+     *                        +109*JSPIN+36*NMES+NQLEP+11
+      ENDIF
+      RETURN
+C  MESONS
+100   CONTINUE
+      IFL1=0
+      IFL2=ISI*J
+      IFL3=ISI*K
+      INDEX=J+K*(K-1)/2+36*JSPIN+NQLEP
+      INDEX=INDEX+11
+      RETURN
+C  QUARKS, LEPTONS, ETC
+200   CONTINUE
+      IFL1=0
+      IFL2=0
+      IFL3=0
+      JSPIN=0
+      INDEX=IDABS
+      IF ( IDABS .LT. 20 ) RETURN
+C  DEFINE INDEX=20 FOR KS, INDEX=21 FOR KL
+      INDEX=IDABS+1
+      IF ( ID .EQ. 20 ) INDEX=20
+C  INDEX=NQLEP+1,...,NQLEP+11 FOR W+, HIGGS, Z0
+      IF ( IDABS .LT. 80 ) RETURN
+      INDEX=NQLEP+IDABS-79
+      RETURN
+300   CONTINUE
+      IFL1=ISI*I
+      IFL2=ISI*J
+      IFL3=0
+      JSPIN=0
+      INDEX=0
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION IDLABL(ID)
+
+C-----------------------------------------------------------------------
+C  RETURNS THE CHARACTER*8 LABEL FOR THE PARTICLE ID
+C-----------------------------------------------------------------------
+      PARAMETER (NMES=2)
+      PARAMETER (NQLEP=41)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+
+      CHARACTER*8 IDLABL,LABAR0(109),LABAR1(109),LAQQ(21),LBAR0(109)
+     *           ,LBAR1(109),LLEP(104),LMES0(64),LMES1(64),LQQ(21)
+
+C          DIQUARK LABELS
+      DATA LQQ/
+     1'UU0. ','UD0. ','DD0. ','US0. ','DS0. ','SS0. ','UC0. ','DC0. ',
+     2'SC0. ','CC0. ','UB0. ','DB0. ','SB0. ','CB0. ','BB0. ','UT0. ',
+     3'DT0. ','ST0. ','CT0. ','BT0. ','TT0. '/
+      DATA LAQQ/
+     1'AUU0.','AUD0.','ADD0.','AUS0.','ADS0.','ASS0.','AUC0.','ADC0.',
+     2'ASC0.','ACC0.','AUB0.','ADB0.','ASB0.','ACB0.','ABB0.','AUT0.',
+     3'ADT0.','AST0.','ACT0.','ABT0.','ATT0.'/
+C          QUARK AND LEPTON LABELS
+      DATA LLEP/
+     *'     ','UP   ','UB   ','DN   ','DB   ','ST   ','SB   ','CH   ',
+     *'CB   ','BT   ','BB   ','TP   ','TB   ','Y    ','YB   ','X    ',
+     *'XB   ','GL   ','ERR  ','GM   ','ERR  ','NUE  ','ANUE ','E-   ',
+     *'E+   ','NUM  ','ANUM ','MU-  ','MU+  ','NUT  ','ANUT ','TAU- ',
+     *'TAU+ ','ERR  ','ERR  ','ERR  ','ERR  ','ERR  ','ERR  ','KS   ',
+     *'ERR  ','ERR  ','KL   ',
+     *'UPSS ','UBSS ','DNSS ','DBSS ','STSS ','SBSS ','CHSS ','CBSS ',
+     *'BTSS ','BBSS ','TPSS ','TBSS ','ERR  ','ERR  ','ERR  ','ERR  ',
+     *'GLSS ','ERR  ','GMSS ','ERR  ','NESS ','ANESS','E-SS ','E+SS ',
+     *'NMSS ','ANMSS','MU-SS','MU+SS','NTSS ','ANTSS','T-SS ','T+SS ',
+     *'ERR  ','ERR  ','ERR  ','ERR  ','W+SS ','W-SS ','Z0SS ','ERR  ',
+     *'W+   ','W-   ','H10  ','AH10 ','H20  ','AH20 ','H30  ','AH30 ',
+     *'H4+  ','H4-  ','H5+  ','H5-  ','H6+  ','H6-  ','H7++ ','H7-- ',
+     *'H8++ ','H8-- ','H9++ ','H9-- ','Z0   '/
+C          0- MESON LABELS
+      DATA LMES0/
+     1'PI0  ','PI+  ','ETA  ','PI-  ','K+   ','K0   ','ETAP ','AK0  ',
+     2'K-   ','AD0  ','D-   ','F-   ','ETAC ','F+   ','D+   ','D0   ',
+     2'UB.  ','DB.  ','SB.  ','CB.  ','BB.  ','BC.  ','BS.  ','BD.  ',
+     3'BU.  ','UT.  ','DT.  ','ST.  ','CT.  ','BT.  ','TT.  ','TB.  ',
+     4'TC.  ','TS.  ','TD.  ','TU.  ','UY.  ','DY.  ','SY.  ','CY.  ',
+     5'BY.  ','TY.  ','YY.  ','YT.  ','YB.  ','YC.  ','YS.  ','YD.  ',
+     6'YU.  ','UX.  ','DX.  ','SX.  ','CX.  ','BX.  ','TX.  ','YX.  ',
+     7'XX.  ','XY.  ','XT.  ','XB.  ','XC.  ','XS.  ','XD.  ','XU.  '/
+C          1- MESON LABELS
+      DATA LMES1/
+     1'RHO0 ','RHO+ ','OMEG ','RHO- ','K*+  ','K*0  ','PHI  ','AK*0 ',
+     2'K*-  ','AD*0 ','D*-  ','F*-  ','JPSI ','F*+  ','D*+  ','D*0  ',
+     3'UB*  ','DB*  ','SB*  ','CB*  ','UPSL ','BC*  ','BS*  ','BD*  ',
+     4'BU*  ','UT*  ','DT*  ','ST*  ','CT*  ','BT*  ','TT*  ','TB*  ',
+     5'TC*  ','TS*  ','TD*  ','TU*  ','UY*  ','DY*  ','SY*  ','CY*  ',
+     6'BY*  ','TY*  ','YY*  ','YT*  ','YB*  ','YC*  ','YS*  ','YD*  ',
+     7'YU*  ','UX*  ','DX*  ','SX*  ','CX*  ','BX*  ','TX*  ','YX*  ',
+     8'XX*  ','XY*  ','XT*  ','XB*  ','XC*  ','XS*  ','XD*  ','XU*  '/
+C          1/2+ BARYON LABELS
+      DATA LBAR0/
+     1'ERR  ','P    ','N    ','ERR  ','ERR  ','S+   ','S0   ','S-   ',
+     2'L    ','XI0  ','XI-  ','ERR  ','ERR  ','ERR  ','SC++ ','SC+  ',
+     3'SC0  ','LC+  ','USC. ','DSC. ','SSC. ','SDC. ','SUC. ','UCC. ',
+     4'DCC. ','SCC. ','ERR  ','ERR  ','ERR  ','ERR  ','UUB. ','UDB. ',
+     5'DDB. ','DUB. ','USB. ','DSB. ','SSB. ','SDB. ','SUB. ','UCB. ',
+     6'DCB. ','SCB. ','CCB. ','CSB. ','CDB. ','CUB. ','UBB. ','DBB. ',
+     7'SBB. ','CBB. ','ERR  ','ERR  ','ERR  ','ERR  ','ERR  ','UTT. ',
+     8'UDT. ','DDT. ','DUT. ','UST. ','DST. ','SST. ','SDT. ','SUT. ',
+     9'UCT. ','DCT. ','SCT. ','CCT. ','CST. ','CDT. ','CUT. ','UBT. ',
+     1'DBT. ','SBT. ','CBT. ','BBT. ','BCT. ','BST. ','BDT. ','BUT. ',
+     2'UTT. ','DTT. ','STT. ','CTT. ','BTT. ','ERR  ','ERR  ','ERR  ',
+     3'ERR  ','ERR  ','ERR  ','UUY. ','UDY. ','DDY. ','DUY. ','USY. ',
+     4'DSY. ','SSY. ','SDY. ','SUY. ','UUX. ','UDX. ','DDX. ','DUX. ',
+     5'USX. ','DSX. ','SSX. ','SDX. ','SUX. '/
+      DATA LABAR0/
+     1'ERR  ','AP   ','AN   ','ERR  ','ERR  ','AS-  ','AS0  ','AS+  ',
+     2'AL   ','AXI0 ','AXI+ ','ERR  ','ERR  ','ERR  ','ASC--','ASC- ',
+     3'ASC0 ','ALC- ','AUSC.','ADSC.','ASSC.','ASDC.','ASUC.','AUCC.',
+     4'ADCC.','ASCC.','ERR  ','ERR  ','ERR  ','ERR  ','AUUB.','AUDB.',
+     5'ADDB.','ADUB.','AUSB.','ADSB.','ASSB.','ASDB.','ASUB.','AUCB.',
+     6'ADCB.','ASCB.','ACCB.','ACSB.','ACDB.','ACUB.','AUBB.','ADBB.',
+     7'ASBB.','ACBB.','ERR  ','ERR  ','ERR  ','ERR  ','ERR  ','AUTT.',
+     8'AUDT.','ADDT.','ADUT.','AUST.','ADST.','ASST.','ASDT.','ASUT.',
+     9'AUCT.','ADCT.','ASCT.','ACCT.','ACST.','ACDT.','ACUT.','AUBT.',
+     1'ADBT.','ASBT.','ACBT.','ABBT.','ABCT.','ABST.','ABDT.','ABUT.',
+     2'AUTT.','ADTT.','ASTT.','ACTT.','ABTT.','ERR  ','ERR  ','ERR  ',
+     3'ERR  ','ERR  ','ERR  ','AUUY.','AUDY.','ADDY.','ADUY.','AUSY.',
+     4'ADSY.','ASSY.','ASDY.','ASUY.','AUUX.','AUDX.','ADDX.','ADUX.',
+     5'AUSX.','ADSX.','ASSX.','ASDX.','ASUX.'/
+C          3/2+ BARYON LABELS
+      DATA LBAR1/
+     1'DL++ ','DL+  ','DL0  ','DL-  ','ERR  ','S*+  ','S*0  ','S*-  ',
+     2'ERR  ','XI*0 ','XI*- ','OM-  ','ERR  ','ERR  ','UUC* ','UDC* ',
+     3'DDC* ','ERR  ','USC* ','DSC* ','SSC* ','ERR  ','ERR  ','UCC* ',
+     4'DCC* ','SCC* ','CCC* ','ERR  ','ERR  ','ERR  ','UUB* ','UDB* ',
+     5'DDB* ','ERR  ','USB* ','DSB* ','SSB* ','ERR  ','ERR  ','UCB* ',
+     6'DCB* ','SCB* ','CCB* ','ERR  ','ERR  ','ERR  ','UBB* ','DBB* ',
+     7'SBB* ','CBB* ','BBB* ','ERR  ','ERR  ','ERR  ','ERR  ','UTT* ',
+     8'UDT* ','DDT* ','ERR  ','UST* ','DST* ','SST* ','ERR  ','ERR  ',
+     9'UCT* ','DCT* ','SCT* ','CCT* ','ERR  ','ERR  ','ERR  ','UBT* ',
+     1'DBT* ','SBT* ','CBT* ','BBT* ','ERR  ','ERR  ','ERR  ','ERR  ',
+     2'UTT* ','DTT* ','STT* ','CTT* ','BTT* ','TTT* ','ERR  ','ERR  ',
+     3'ERR  ','ERR  ','ERR  ','UUY* ','UDY* ','DDY* ','ERR  ','USY* ',
+     4'DSY* ','SSY* ','ERR  ','ERR  ','UUX* ','UDX* ','DDX* ','ERR  ',
+     5'USX* ','DSX* ','SSX* ','ERR  ','ERR  '/
+      DATA LABAR1/
+     1'ADL--','ADL- ','ADL0 ','ADL+ ','ERR  ','AS*- ','AS*0 ','AS*+ ',
+     2'ERR  ','AXI*0','AXI*+','AOM+ ','ERR  ','ERR  ','AUUC*','AUDC*',
+     3'ADDC*','ERR  ','AUSC*','ADSC*','ASSC*','ERR  ','ERR  ','AUCC*',
+     4'ADCC*','ASCC*','ACCC*','ERR  ','ERR  ','ERR  ','AUUB*','AUDB*',
+     5'ADDB*','ERR  ','AUSB*','ADSB*','ASSB*','ERR  ','ERR  ','AUCB*',
+     6'ADCB*','ASCB*','ACCB*','ERR  ','ERR  ','ERR  ','AUBB*','ADBB*',
+     7'ASBB*','ACBB*','ABBB*','ERR  ','ERR  ','ERR  ','ERR  ','AUTT*',
+     8'AUDT*','ADDT*','ERR  ','AUST*','ADST*','ASST*','ERR  ','ERR  ',
+     9'AUCT*','ADCT*','ASCT*','ACCT*','ERR  ','ERR  ','ERR  ','AUBT*',
+     1'ADBT*','ASBT*','ACBT*','ABBT*','ERR  ','ERR  ','ERR  ','ERR  ',
+     2'AUTT*','ADTT*','ASTT*','ACTT*','ABTT*','ATTT*','ERR  ','ERR  ',
+     3'ERR  ','ERR  ','ERR  ','AUUY*','AUDY*','ADDY*','ERR  ','AUSY*',
+     4'ADSY*','ASSY*','ERR  ','ERR  ','AUUX*','AUDX*','ADDX*','ERR  ',
+     5'AUSX*','ADSX*','ASSX*','ERR  ','ERR  '/
+C-----------------------------------------------------------------------
+      CALL IDFLAV(ID,IFL1,IFL2,IFL3,JSPIN,INDEX)
+      IF ( ABS(ID) .LT.   100 ) GOTO 200
+      IF ( ABS(ID) .LT. 1000 ) GOTO 100
+      IF ( ID .NE. 0  .AND.  MOD(ID,100) .EQ. 0 ) GOTO 300
+C  BARYONS
+      INDEX=INDEX-109*JSPIN-36*NMES-NQLEP
+      INDEX=INDEX-11
+      IF     ( JSPIN .EQ. 0 ) THEN
+        IF     ( ID .GT. 0 ) THEN
+          IDLABL=LBAR0(INDEX)
+        ELSEIF ( ID .LT. 0 ) THEN
+          IDLABL=LABAR0(INDEX)
+        ENDIF
+      ELSEIF ( JSPIN .EQ. 1 ) THEN
+        IF     ( ID .GT. 0 ) THEN
+          IDLABL=LBAR1(INDEX)
+        ELSEIF ( ID .LT. 0 ) THEN
+          IDLABL=LABAR1(INDEX)
+        ENDIF
+      ENDIF
+      RETURN
+C  MESONS
+100   CONTINUE
+      I=MAX(IFL2,IFL3)
+      J=-MIN(IFL2,IFL3)
+      INDEX=MAX(I-1,J-1)**2+I+MAX(I-J,0)
+      IF     ( JSPIN .EQ. 0 ) THEN
+        IDLABL=LMES0(INDEX)
+      ELSEIF ( JSPIN .EQ. 1 ) THEN
+        IDLABL=LMES1(INDEX)
+      ENDIF
+      RETURN
+C  QUARKS, LEPTONS, ETC.
+200   CONTINUE
+      INDEX=2*INDEX
+      IF ( ID .LE. 0 ) INDEX=INDEX+1
+      IDLABL=LLEP(INDEX)
+      RETURN
+300   I=ABS(IFL1)
+      J=ABS(IFL2)
+      INDEX=I+J*(J-1)/2
+      IF ( ID .GT. 0 ) THEN
+        IDLABL=LQQ(INDEX)
+      ELSE
+        IDLABL=LAQQ(INDEX)
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDMASS(ID,AMASS)
+
+C-----------------------------------------------------------------------
+C  RETURNS THE MASS OF THE PARTICLE WITH IDENT CODE ID.
+C-----------------------------------------------------------------------
+      PARAMETER (NMES=2)
+      PARAMETER (NQLEP=41)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      REAL    AMBAR0(30),AMBAR1(30),AMLEP(52),AMMES0(10),AMMES1(10)
+
+      DATA AMLEP/.3,.3,.5,1.6,4.9,30.,-1.,-1.,0.,0.,
+     *0.,.511003E-3,0.,.105661,0.,1.807,3*-1.,.49767,.49767,
+     *100.3,100.3,100.5,101.6,104.9,130.,2*-1.,100.,0.,
+     *100.,100.005,100.,100.1,100.,101.8,2*-1.,100.,100.,
+     *11*0./
+C          0- MESON MASS TABLE
+      DATA AMMES0/.13496,.13957,.5488,.49367,.49767,.9576,1.8633
+     1,1.8683,2.030,2.976/
+C          1- MESON MASS TABLE
+      DATA AMMES1/.770,.770,.7826,.8881,.8922,1.0196,2.006,2.0086
+     1,2.140,3.097/
+C          1/2+ BARYON MASS TABLE
+      DATA AMBAR0/-1.,.93828,.93957,2*-1.,1.1894,1.1925,1.1974
+     1,1.1156,1.3149,1.3213,3*-1.,2.43,2.43,2.43,2.26
+     2,2.50,2.50,2.60,2.40,2.40,3.55,3.55,3.70,4*-1./
+C          3/2+ BARYON MASS TABLE
+      DATA AMBAR1/1.232,1.232,1.232,1.232,-1.,1.3823,1.3820
+     1,1.3875,-1.,1.5318,1.5350,1.6722,2*-1.
+     2,2.63,2.63,2.63,-1.,2.70,2.70,2.80,2*-1.,3.75,3.75
+     3,3.90,4.80,3*-1./
+C-----------------------------------------------------------------------
+      IDABS=ABS(ID)
+      I=IDABS/1000
+      J1=IDABS-I*1000
+      J = J1/100
+      IF ( ID .NE. 0  .AND.  MOD(ID,100) .EQ. 0 ) GOTO 400
+      K1= J1 - J*100
+      K = K1/10
+      JSPIN= K1 - K*10
+      IF ( I .GT. 4   .OR.  J .GT. 4   .OR. K .GT .4 ) GOTO 300
+      IF ( J .EQ. 0 ) GOTO 200
+      IF ( I .EQ. 0 ) GOTO 100
+C  BARYONS
+C  ONLY X,Y BARYONS ARE QQX, QQY, Q=U,D,S.
+      IF ( K .LE. 6 ) THEN
+        INDEX=MAX(I-1,J-1)**2+I+MAX(I-J,0)+(K-1)*K*(2*K-1)/6
+      ELSE
+        INDEX=MAX(I-1,J-1)**2+I+MAX(I-J,0)+9*(K-7)+91
+      ENDIF
+      AMASS=(1-JSPIN)*AMBAR0(INDEX)+JSPIN*AMBAR1(INDEX)
+      RETURN
+C  MESONS
+100   CONTINUE
+      INDEX = J + K*(K-1)/2
+      AMASS = (1-JSPIN)*AMMES0(INDEX) + JSPIN*AMMES1(INDEX)
+      RETURN
+C  QUARKS, LEPTONS, ETC
+200   CONTINUE
+      IF     ( IDABS .LT. 20 ) THEN
+        INDEX = IDABS
+C  DEFINE INDEX=20 FOR KS, INDEX=21 FOR KL
+      ELSEIF ( ID .EQ. 20 ) THEN
+        INDEX = 20
+C  INDEX=NQLEP+1,...,NQLEP+11 FOR W+, HIGGS, Z0
+      ELSEIF ( IDABS .LT. 80 ) THEN
+        INDEX = IDABS+1
+      ELSE
+        INDEX = NQLEP+IDABS-79
+      ENDIF
+      AMASS=AMLEP(INDEX)
+      RETURN
+C  B AND T PARTICLES
+300   CONTINUE
+      AMASS=AMLEP(J)+AMLEP(K)-.03+.04*JSPIN
+      IF ( I .NE. 0 ) AMASS=AMASS+AMLEP(I)
+      RETURN
+C  DIQUARKS
+400   CONTINUE
+      AMASS=AMLEP(I)+AMLEP(J)
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDMIX(IC,JSPIN,ICM,IDM)
+
+C-----------------------------------------------------------------------
+C  ACCOUNTS FOR FLAVOUR MIXING
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      REAL    PMIX1(3,2),PMIX2(3,2)
+      INTEGER IC(2),ICM(2)
+      DATA PMIX1 /.25,.25,.5,0.,.5,1./, PMIX2 /.5,.5,1.,0.,0.,1./
+C-----------------------------------------------------------------------
+      ICM(1)=0
+      ICM(2)=0
+      IDM=0
+      I=IC(1)
+      IF ( I .NE. IC(2) ) RETURN
+      ID=0
+      IF ( I .EQ. 100000 ) ID=1
+      IF ( I .EQ.  10000 ) ID=2
+      IF ( I .EQ.   1000 ) ID=3
+      IF ( ID .EQ. 0 ) RETURN
+      RND=RANGEN()
+      IDM=INT(PMIX1(ID,JSPIN+1)+RND)+INT(PMIX2(ID,JSPIN+1)+RND)+1
+      ICM(1)=10**(NFLAV-IDM)
+      ICM(2)=IC(1)
+      IDM=IDM*100+IDM*10+JSPIN
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDQUAC(I,NQ,NS,NA,JC)
+
+C-----------------------------------------------------------------------
+C  RETURNS QUARK CONTENT OF PTL I FROM /CPTL/ .
+C        NQ = # QUARKS - # ANTIQUARKS
+C        NS = # STRANGE QUARKS - # STRANGE ANTIQUARKS
+C        NA = # QUARKS + # ANTIQUARKS
+C        JC(NFLAV,2) = JC-TYPE PARTICLE IDENTIFICATION CODE.
+C-----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      PARAMETER (NFLAV=6)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      INTEGER IC(2),JC(NFLAV,2)
+C-----------------------------------------------------------------------
+      IF ( ABS(IDPTL(I)) .EQ. 20 ) THEN
+        IF ( RANGEN() .LT. .5 ) THEN
+          IDPTL(I)=-230
+        ELSE
+          IDPTL(I)=230
+        ENDIF
+        GOTO 9999
+      ENDIF
+
+      IF ( ABS(IDPTL(I)) .LT. 100 ) THEN
+        NQ=0
+        NS=0
+        DO 1 N=1,NFLAV
+          JC(N,1)=0
+          JC(N,2)=0
+ 1      CONTINUE
+      RETURN
+      ENDIF
+
+9999  IF ( IDPTL(I)/100000000 .NE. 7 ) THEN
+        CALL IDTR4(IDPTL(I),IC)
+        CALL IDDECO(IC,JC)
+      ELSE
+        CALL IDTRB(IBPTL(1,I),IBPTL(2,I),IBPTL(3,I),IBPTL(4,I),JC)
+      ENDIF
+      NA=0
+      NQ=0
+      DO 53 N=1,NFLAV
+        NA=NA+JC(N,1)+JC(N,2)
+        NQ=NQ+JC(N,1)-JC(N,2)
+53    CONTINUE
+      NS=JC(3,1)-JC(3,2)
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDRES(ID,AM,IDR,IADJ)
+
+C-----------------------------------------------------------------------
+C  RETURNS RESONANCE ID IDR CORRESPONDING TO MASS AM.
+C  PERFORMS MASS ADJUSTMENT, IF NECESSARY (IF SO IADJ=1, 0 ELSE)
+C-----------------------------------------------------------------------
+      PARAMETER (MXINDX=1000)
+      PARAMETER (MXMA=11)
+      PARAMETER (MXMX=6)
+      PARAMETER (MXRE=100)
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CREMA/   REMA(MXRE,MXMA),REWI(MXRE,MXMA)
+     *                ,ICRE1(MXRE,MXMA),ICRE2(MXRE,MXMA)
+     *                ,IDMX(MXMA,MXMX),INDX(MXINDX)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+C-----------------------------------------------------------------------
+      IF ( AM .EQ. 0. ) AM=1.E-5
+
+      IDI=ID
+      AMI=AM
+      IDR=0
+      IADJ=0
+
+      IF ( ID .EQ. 0 ) GOTO 9999
+      IDABS = ABS(ID)
+      DO 5 K=1,MXMX
+        DO 3 M=2,MXMA
+          IF ( IDABS .EQ. IDMX(M,K) ) THEN
+            ID=SIGN(IDMX(1,K)*10,ID)
+            GOTO 5
+          ENDIF
+3       CONTINUE
+5     CONTINUE
+
+      IX=IDABS/10
+      IF ( IX .LT. 1  .OR.  IX .GT. MXINDX ) THEN
+        CALL UTSTOP('IDRES: IX OUT OF RANGE.                 ')
+      ENDIF
+      I=INDX(IX)
+      IF ( I .LT. 1  .OR.  I .GT. MXRE ) THEN
+        CALL UTSTOP('IDRES: PARTICLE NOT IN TABLE            ')
+      ENDIF
+      DO 1 J=1,MXMA-1
+        IF ( AM .GE. REMA(I,J)  .AND.  AM .LE. REMA(I,J+1) ) THEN
+          IF ( J .GT. 10 ) THEN
+            CALL UTSTOP('IDRES: SPIN > 9                         ')
+          ENDIF
+          IDR=ID/10*10+SIGN(J-1,ID)
+          GOTO 2
+        ENDIF
+ 1    CONTINUE
+      GOTO 9999
+ 2    CONTINUE
+
+      DO 4 K=1,MXMX
+        IF ( IX .EQ. IDMX(1,K) ) THEN
+          IF ( J .LT. 1  .OR.  J .GT. MXMA-1 ) THEN
+            CALL UTSTOP('IDRES: INDEX J OUT OF RANGE             ')
+          ENDIF
+          IF ( IDMX(J+1,K) .NE. 0 ) IDR = SIGN(IDMX(J+1,K),ID)
+        ENDIF
+ 4    CONTINUE
+
+      IY=MOD(IABS(IDR),10)
+      IF ( IY .GT. MAXRES ) THEN
+        IADJ=0
+        IDR=0
+        GOTO 9999
+      ENDIF
+
+      IF ( IY .NE. 0  .AND.  IY .NE. 1 ) GOTO 9999
+
+      CALL IDMASS(IDR,AM)
+      IF ( AM .LT. 0. ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'*****  ERROR IN IDRES: '
+     *      ,'NEG MASS RETURNED FROM IDMASS'
+        WRITE(IFCH,*)'ID,AM(INPUT):',IDI,AMI
+        WRITE(IFCH,*)'IDR,AM:',IDR,AM
+        CALL UTSTOP('IDRES: NEG MASS RETURNED FROM IDMASS    ')
+      ENDIF
+      IADJ=1
+
+9999  ID=IDI
+      IF ( ISH .LT. 93 ) RETURN
+      WRITE(IFCH,*)' '
+      WRITE(IFCH,*)'RETURN FROM IDRES. ID,AMI,AM,IDR,IADJ:'
+      WRITE(IFCH,*)ID,AMI,AM,IDR,IADJ
+      WRITE(IFCH,*)' '
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDRESI
+
+C-----------------------------------------------------------------------
+C  INITIALIZES /CREMA/
+C-----------------------------------------------------------------------
+      PARAMETER (MXINDX=1000)
+      PARAMETER (MXMA=11)
+      PARAMETER (MXMX=6)
+      PARAMETER (MXRE=100)
+      PARAMETER (N=29)
+      COMMON /CREMA/   REMA(MXRE,MXMA),REWI(MXRE,MXMA)
+     *                ,ICRE1(MXRE,MXMA),ICRE2(MXRE,MXMA)
+     *                ,IDMX(MXMA,MXMX),INDX(MXINDX)
+      REAL    REMAI(N,MXMA),REWII(N,MXMA)
+      INTEGER ICREI(N,2*MXMA),IDMXI(MXMA,MXMX)
+
+      DATA (IDMXI(J,1),J=1,MXMA)/ 11, 110, 111,   0,   0,   0,   0, 4*0/
+      DATA (IDMXI(J,2),J=1,MXMA)/ 22, 220, 330, 331,   0,   0,   0, 4*0/
+      DATA (IDMXI(J,3),J=1,MXMA)/123,2130,1230,1231,   0,   0,   0, 4*0/
+      DATA (IDMXI(J,4),J=1,MXMA)/124,2140,1240,1241,   0,   0,   0, 4*0/
+      DATA (IDMXI(J,5),J=1,MXMA)/134,3140,1340,1341,   0,   0,   0, 4*0/
+      DATA (IDMXI(J,6),J=1,MXMA)/234,3240,2340,2341,   0,   0,   0, 4*0/
+      DATA ((ICREI(K,M),M=1,2*MXMA),K=1,10)/
+     *                 111,000000, 9*300000,    11*0,
+     *                 222,000000, 9*030000,    11*0,
+     *                 112,       10*210000,    11*0,
+     *                 122,       10*120000,    11*0,
+     *                 113,       10*201000,    11*0,
+     *                 223,       10*021000,    11*0,
+     *                 123,       10*111000,    11*0,
+     *                 133,       10*102000,    11*0,
+     *                 233,       10*012000,    11*0,
+     *                 333,000000, 9*003000,    11*0/
+      DATA ((ICREI(K,M),M=1,2*MXMA),K=11,20)/
+     *                 114,       10*200100,    11*0,
+     *                 124,       10*110100,    11*0,
+     *                 224,       10*020100,    11*0,
+     *                 134,       10*101100,    11*0,
+     *                 234,       10*011100,    11*0,
+     *                 334,       10*002100,    11*0,
+     *                 144,       10*100200,    11*0,
+     *                 244,       10*010200,    11*0,
+     *                 344,       10*001200,    11*0,
+     *                 444,000000, 9*000300,    11*0/
+      DATA ((ICREI(K,M),M=1,2*MXMA),K=21,29)/
+     *                  11,  10*100000,    0,   10*100000,
+     *                  22,  10*001000,    0,   10*001000,
+     *                  12,  10*100000,    0,   10*010000,
+     *                  13,  10*100000,    0,   10*001000,
+     *                  23,  10*010000,    0,   10*001000,
+     *                  14,  10*100000,    0,   10*000100,
+     *                  24,  10*010000,    0,   10*000100,
+     *                  34,  10*001000,    0,   10*000100,
+     *                  44,  10*000100,    0,   10*000100/
+
+      DATA ((REMAI(K,M),M=1,MXMA),K=1,10)/
+     *111.,0.000,1.425,1.660,1.825,2.000,0.000,0.000,0.000,0.000,0.000,
+     *222.,0.000,1.425,1.660,1.825,2.000,0.000,0.000,0.000,0.000,0.000,
+     *112.,1.080,1.315,1.485,1.575,1.645,1.685,1.705,1.825,2.000,0.000,
+     *122.,1.080,1.315,1.485,1.575,1.645,1.685,1.705,1.825,2.000,0.000,
+     *113.,1.300,1.500,1.700,1.850,2.000,0.000,0.000,0.000,0.000,0.000,
+     *223.,1.300,1.500,1.700,1.850,2.000,0.000,0.000,0.000,0.000,0.000,
+     *123.,1.117,1.300,1.395,1.465,1.540,1.655,1.710,1.800,1.885,2.000,
+     *133.,1.423,2.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     *233.,1.428,2.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     *333.,0.000,2.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000/
+      DATA ((REMAI(K,M),M=1,MXMA),K=11,20)/
+     *114.,2.530,2.730,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     *124.,2.345,2.530,2.730,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     *224.,2.530,2.730,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     *134.,2.450,2.600,2.800,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     *234.,2.450,2.600,2.800,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     *334.,2.700,2.900,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     *144.,3.650,3.850,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     *244.,3.650,3.850,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     *344.,3.800,4.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     *444.,0.000,5.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000/
+      DATA ((REMAI(K,M),M=1,MXMA),K=21,29)/
+     * 11.,0.450,0.950,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     * 22.,0.750,0.965,1.080,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     * 12.,0.450,0.950,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     * 13.,0.700,1.050,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     * 23.,0.700,1.050,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     * 14.,1.935,2.077,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     * 24.,1.938,2.079,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     * 34.,2.085,2.195,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,
+     * 44.,3.037,3.158,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000/
+
+      DATA ((REWII(K,M),M=1,MXMA),K=1,5)/
+     *111.,0.000E+00,0.115E+00,0.140E+00,0.250E+00,0.250E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     *222.,0.000E+00,0.115E+00,0.140E+00,0.250E+00,0.250E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     *112.,0.000E+00,0.115E+00,0.200E+00,0.140E+00,0.140E+00,
+     *     0.145E+00,0.250E+00,0.140E+00,0.250E+00,0.000E+00,
+     *122.,0.000E+00,0.115E+00,0.200E+00,0.140E+00,0.140E+00,
+     *     0.145E+00,0.250E+00,0.140E+00,0.250E+00,0.000E+00,
+     *113.,0.824E-14,0.036E+00,0.080E+00,0.100E+00,0.170E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00/
+      DATA ((REWII(K,M),M=1,MXMA),K=6,10)/
+     *223.,0.445E-14,0.039E+00,0.080E+00,0.100E+00,0.170E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     *123.,0.250E-14,0.890E-05,0.036E+00,0.040E+00,0.016E+00,
+     *     0.090E+00,0.080E+00,0.100E+00,0.145E+00,0.170E+00,
+     *133.,0.227E-14,0.009E+00,0.000E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     *233.,0.400E-14,0.010E+00,0.000E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     *333.,0.000E+00,0.800E-14,0.000E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00/
+      DATA ((REWII(K,M),M=1,MXMA),K=11,15)/
+     *114.,0.400E-11,0.010E+00,0.000E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     *124.,0.400E-11,0.400E-11,0.010E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     *224.,0.400E-11,0.010E+00,0.010E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     *134.,0.150E-11,0.400E-11,0.010E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     *234.,0.150E-11,0.400E-11,0.010E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00/
+      DATA ((REWII(K,M),M=1,MXMA),K=16,20)/
+     *334.,0.400E-11,0.010E+00,0.010E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     *144.,0.400E-11,0.010E+00,0.010E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     *244.,0.400E-11,0.010E+00,0.010E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     *344.,0.400E-11,0.010E+00,0.010E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     *444.,0.400E-11,0.010E+00,0.010E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00/
+      DATA ((REWII(K,M),M=1,MXMA),K=21,25)/
+     * 11.,0.757E-08,0.153E+00,0.057E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     * 22.,0.105E-05,0.210E-03,0.034E+00,0.004E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     * 12.,0.000E+00,0.153E+00,0.057E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     * 13.,0.000E+00,0.051E+00,0.000E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     * 23.,0.197E-02,0.051E+00,0.000E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00/
+      DATA ((REWII(K,M),M=1,MXMA),K=26,29)/
+     * 14.,0.154E-11,0.002E+00,0.000E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     * 24.,0.615E-12,0.002E+00,0.000E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     * 34.,0.150E-11,0.020E+00,0.000E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00,
+     * 44.,0.010E+00,0.068E-03,0.000E+00,0.000E+00,0.000E+00,
+     *     0.000E+00,0.000E+00,0.000E+00,0.000E+00,0.000E+00/
+C-----------------------------------------------------------------------
+      NN=N
+      DO 3 I=1,MXINDX
+        INDX(I)=0
+ 3    CONTINUE
+      DO 44 M=1,MXMA
+        DO 4 K=1,MXRE
+          REMA(K,M)=0.
+ 4      CONTINUE
+44    CONTINUE
+      DO 22 I=1,MXMX
+        DO 2 J=1,MXMA
+          IDMX(J,I)=IDMXI(J,I)
+ 2      CONTINUE
+22    CONTINUE
+
+      IF ( NN .GT. MXRE ) THEN
+        CALL UTSTOP('IDRESI: DIMENSION MXRE TOO SMALL        ')
+      ENDIF
+      DO 1 K=1,N
+        IX=NINT(REMAI(K,1))
+        IX2=NINT(REWII(K,1))
+        IX3=ICREI(K,1)
+        IF ( IX .NE. IX2 ) THEN
+          CALL UTSTOP('IDRESI: IX /= IX2                       ')
+        ENDIF
+        IF ( IX .NE. IX3 ) THEN
+          CALL UTSTOP('IDRESI: IX /= IX3                       ')
+        ENDIF
+        IF ( IX .LT. 1  .OR.  IX .GT. MXINDX ) THEN
+          CALL UTSTOP('IDRESI: IX OUT OF RANGE.                ')
+        ENDIF
+        INDX(IX)=K
+        REMA(K,1)=0.
+        REWI(K,1)=0.
+        ICRE1(K,1)=0
+        ICRE2(K,1)=0
+        DO 5 M=2,MXMA
+          REMA(K,M)=REMAI(K,M)
+          REWI(K,M)=REWII(K,M)
+          ICRE1(K,M)=ICREI(K,M)
+          ICRE2(K,M)=ICREI(K,MXMA+M)
+ 5      CONTINUE
+ 1    CONTINUE
+
+      INDX(33) =INDX(22)
+      INDX(213)=INDX(123)
+      INDX(214)=INDX(124)
+      INDX(314)=INDX(134)
+      INDX(324)=INDX(234)
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDSPIN(II,IC,ID,JSPIN)
+
+C-----------------------------------------------------------------------
+C  DETERMINES PARTICLE SPIN
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+
+      REAL    PSPIN1(8)
+      INTEGER IC(2),JC(NFLAV,2)
+C-----------------------------------------------------------------------
+      PSPIN1(1)=PSPINL
+      PSPIN1(2)=PSPINL
+      PSPIN1(3)=PSPINL
+      PSPIN1(4)=PSPINH
+      PSPIN1(5)=PSPINH
+      PSPIN1(6)=PSPINH
+      PSPIN1(7)=PSPINH
+      PSPIN1(8)=PSPINH
+      CALL IDDECO(IC,JC)
+      IHIGH=0
+      IF ( II .EQ. 1 ) THEN
+        DO 4 I=1,NFLAV
+          IF ( JC(I,1) .NE. 0 ) IHIGH=I
+          IF ( JC(I,2) .NE. 0 ) IHIGH=I
+ 4      CONTINUE
+      ELSE
+        CALL IDFLAV(ID,I1,I2,I3,IDU1,IDU2)
+        DO 5 I=1,NFLAV
+          IF ( I.EQ.ABS(I1)   .OR.  I .EQ. ABS(I2)
+     *                        .OR.  I .EQ. ABS(I3) ) IHIGH=I
+5       CONTINUE
+      ENDIF
+      JSPIN=INT(RANGEN()+PSPIN1(IHIGH))
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDTAU(ID,P4,P5,TAUGM)
+
+C-----------------------------------------------------------------------
+C  RETURNS LIFETIME*GAMMA FOR ID WITH ENERGY P4, MASS P5
+C-----------------------------------------------------------------------
+      PARAMETER (MXINDX=1000)
+      PARAMETER (MXMA=11)
+      PARAMETER (MXMX=6)
+      PARAMETER (MXRE=100)
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CREMA/   REMA(MXRE,MXMA),REWI(MXRE,MXMA)
+     *                ,ICRE1(MXRE,MXMA),ICRE2(MXRE,MXMA)
+     *                ,IDMX(MXMA,MXMX),INDX(MXINDX)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+C-----------------------------------------------------------------------
+      IDABS = ABS(ID)
+      IF     ( IDABS .LT. 100  .AND.  ID .NE. 20 ) THEN
+        WI=0.
+      ELSEIF ( ID .EQ. 20 ) THEN
+        WI=.197/2.675E13
+      ELSEIF ( IDABS .LT. 100000000 ) THEN
+        IX=IDABS/10
+        IF ( IX .LT. 1  .OR.  IX .GT. MXINDX ) THEN
+          CALL UTSTOP('IDTAU: IX OUT OF RANGE.                 ')
+        ENDIF
+        II=INDX(IX)
+        JJ=MOD(IDABS,10)+2
+        DO 75 IMX=1,MXMX
+          DO 76 IMA=2,MXMA
+            IF ( IDABS .EQ. IDMX(IMA,IMX) ) JJ=IMA
+76        CONTINUE
+75      CONTINUE
+        IF ( II.LT.1 .OR. II.GT.MXRE .OR. JJ.LT.1 .OR. JJ.GT.MXMA ) THEN
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,*)'ID,II,JJ:',ID,'   ',II,JJ
+          CALL UTSTOP('IDTAU: II OR JJ OUT OF RANGE            ')
+        ENDIF
+        WI=REWI(II,JJ)
+      ELSE
+        TAUZ=TAUNLL
+C-C     TAUZ=MIN( 9./P5**2, TAUZ )
+C-C     TAUZ=MAX( .2, TAUZ )
+        WI=.197/TAUZ
+      ENDIF
+      IF ( WI .EQ. 0. ) THEN
+        TAU=AINFIN
+        TAUGM=AINFIN
+        RETURN
+      ELSE
+        TAU=.197/WI
+        IF ( TAU .GE. AINFIN ) THEN
+          TAUGM = AINFIN
+          RETURN
+        ENDIF
+      ENDIF
+      IF ( P5 .EQ. 0. ) THEN
+        GM=AINFIN
+        TAUGM=AINFIN
+      ELSE
+        GM=P4/P5
+        IF ( GM .GE. AINFIN ) THEN
+          TAUGM = AINFIN
+          RETURN
+        ELSE
+          TAUGM=TAU*GM
+        ENDIF
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      INTEGER FUNCTION IDTRA(IC,IER,IRES,IMIX)
+
+C-----------------------------------------------------------------------
+C  TRANFORMS FROM WERNER-ID TO PAIGE-ID
+C-----------------------------------------------------------------------
+      PARAMETER (NIDT=44)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+
+      INTEGER IC(2),ICM(2),IDT(3,NIDT)
+      DATA IDT/
+     * 100000,000000,   1   ,010000,000000,   2   ,001000,000000,   3
+     *,000100,000000,   4
+     *,200000,000000,1100   ,110000,000000,1200   ,020000,000000,2200
+     *,101000,000000,1300   ,011000,000000,2300   ,002000,000000,3300
+     *,100100,000000,1400   ,010100,000000,2400   ,001100,000000,3400
+     *,000200,000000,4400
+     *,100000,100000, 110   ,100000,010000, 120   ,010000,010000, 220
+     *,100000,001000, 130   ,010000,001000, 230   ,001000,001000, 330
+     *,100000,000100, 140   ,010000,000100, 240   ,001000,000100, 340
+     *,000100,000100, 440
+     *,300000,000000,1111   ,210000,000000,1120   ,120000,000000,1220
+     *,030000,000000,2221   ,201000,000000,1130   ,111000,000000,1230
+     *,021000,000000,2230   ,102000,000000,1330   ,012000,000000,2330
+     *,003000,000000,3331   ,200100,000000,1140   ,110100,000000,1240
+     *,020100,000000,2240   ,101100,000000,1340   ,011100,000000,2340
+     *,002100,000000,3340   ,100200,000000,1440   ,010200,000000,2440
+     *,001200,000000,3440   ,000300,000000,4441/
+C-----------------------------------------------------------------------
+      IF ( IC(1) .EQ. 0  .AND.  IC(2) .EQ. 0 ) THEN
+        IDTRA=0
+        RETURN
+      ENDIF
+      DO 1 I=1,NIDT
+        IF ( IC(1).EQ.IDT(1,I) .AND. IC(2).EQ.IDT(2,I) ) THEN
+          IDTRA=IDT(3,I)
+          GOTO 2
+        ENDIF
+        IF ( IC(2).EQ.IDT(1,I) .AND. IC(1).EQ.IDT(2,I) ) THEN
+          IDTRA=-IDT(3,I)
+          GOTO 2
+        ENDIF
+ 1    CONTINUE
+      IDTRA=0
+ 2    CONTINUE
+      IF ( IDTRA .NE. 0 ) THEN
+        ISI=SIGN(1,IDTRA)
+        JSPIN=0
+        IF ( MOD(IDTRA,10).EQ.0 .AND. IRES.EQ.1 )
+     *                                     CALL IDSPIN(1,IC,IDU,JSPIN)
+      ELSE
+        ISI=1
+        JSPIN=0
+      ENDIF
+      IF     ( IMIX .EQ. 3 ) THEN
+        IF     ( IDTRA .EQ. 220 ) THEN
+          IDTRA=110
+        ELSEIF ( IDTRA .EQ. 330 ) THEN
+          IDTRA=220
+        ENDIF
+      ELSEIF ( IMIX .EQ. 2 ) THEN
+        IF     ( IDTRA .EQ. 220 ) THEN
+          IDTRA=110
+        ELSEIF ( IDTRA .EQ. 330 ) THEN
+          IDTRA=110
+        ENDIF
+      ELSEIF ( IMIX .EQ. 1 ) THEN
+        CALL IDMIX(IC,JSPIN,ICM,IDTRAM)
+        IF ( IDTRAM .NE. 0 ) IDTRA=IDTRAM
+        IF ( JSPIN .EQ. 0 ) THEN
+          IF ( RANGEN() .LT. PISPN ) THEN
+            IF     ( ABS(IDTRA). EQ. 1230 ) THEN
+              IDTRA=ISI*2130
+            ELSEIF ( ABS(IDTRA) .EQ. 1240 ) THEN
+              IDTRA=ISI*2140
+            ELSEIF ( ABS(IDTRA) .EQ. 1340 ) THEN
+              IDTRA=ISI*3140
+            ELSEIF ( ABS(IDTRA) .EQ. 2340 ) THEN
+              IDTRA=ISI*3240
+            ENDIF
+          ENDIF
+        ENDIF
+      ENDIF
+
+      IF ( IDTRA .NE. 0 ) IDTRA=IDTRA+JSPIN*ISI
+      IF ( IDTRA .NE. 0 ) RETURN
+      IF ( IER .NE. 1 ) RETURN
+      JERR=JERR+1
+      WRITE(IFCH,*)' '
+      WRITE(IFCH,*)'***** ERROR IN IDTRA: UNKNOWN CODE'
+      WRITE(IFCH,*)'IC = ',IC
+      WRITE(IFCH,*)' '
+      RETURN
+      END
+C=======================================================================
+
+      INTEGER FUNCTION IDTRAI(NUM,ID,IER)
+
+C-----------------------------------------------------------------------
+      PARAMETER (NIDT=44)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      INTEGER IDT(3,NIDT)
+
+      DATA IDT/
+     * 100000,000000,   1   ,010000,000000,   2   ,001000,000000,   3
+     *,000100,000000,   4
+     *,200000,000000,1100   ,110000,000000,1200   ,020000,000000,2200
+     *,101000,000000,1300   ,011000,000000,2300   ,002000,000000,3300
+     *,100100,000000,1400   ,010100,000000,2400   ,001100,000000,3400
+     *,000200,000000,4400
+     *,100000,100000, 110   ,100000,010000, 120   ,010000,010000, 220
+     *,100000,001000, 130   ,010000,001000, 230   ,001000,001000, 330
+     *,100000,000100, 140   ,010000,000100, 240   ,001000,000100, 340
+     *,000100,000100, 440
+     *,300000,000000,1111   ,210000,000000,1120   ,120000,000000,1220
+     *,030000,000000,2221   ,201000,000000,1130   ,111000,000000,1230
+     *,021000,000000,2230   ,102000,000000,1330   ,012000,000000,2330
+     *,003000,000000,3331   ,200100,000000,1140   ,110100,000000,1240
+     *,020100,000000,2240   ,101100,000000,1340   ,011100,000000,2340
+     *,002100,000000,3340   ,100200,000000,1440   ,010200,000000,2440
+     *,001200,000000,3440   ,000300,000000,4441/
+C-----------------------------------------------------------------------
+      IDABS = ABS(ID)
+      DO 1 I=1,NIDT
+        IF ( IDABS .EQ. IDT(3,I) ) THEN
+          IF ( ID .LT. 0 ) THEN
+            IDTRAI=IDT(3-NUM,I)
+          ELSE
+            IDTRAI=IDT(NUM,I)
+          ENDIF
+          RETURN
+        ENDIF
+1     CONTINUE
+      IDTRAI=0
+      IF ( IER .NE. 1 ) RETURN
+      JERR=JERR+1
+      WRITE(IFCH,*)' '
+      WRITE(IFCH,*)'***** ERROR IN IDTRAI: UNKNOWN CODE'
+      WRITE(IFCH,*)'ID = ',ID
+      WRITE(IFCH,*)' '
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDTRB(IB1,IB2,IB3,IB4,JC)
+
+C-----------------------------------------------------------------------
+C  ID TRANSFORMATION IB -> JC
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      INTEGER JC(NFLAV,2)
+C-----------------------------------------------------------------------
+      JC(1,1)=IB1/10000
+      JC(2,1)=IB2/10000
+      JC(3,1)=IB3/10000
+      JC(4,1)=IB4/10000
+      JC(5,1)=0
+      JC(6,1)=0
+      JC(1,2)=MOD(IB1,10000)
+      JC(2,2)=MOD(IB2,10000)
+      JC(3,2)=MOD(IB3,10000)
+      JC(4,2)=MOD(IB4,10000)
+      JC(5,2)=0
+      JC(6,2)=0
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDTRBI(JC,IB1,IB2,IB3,IB4)
+
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      INTEGER JC(NFLAV,2)
+C-----------------------------------------------------------------------
+      IB1=JC(1,1)*10000+JC(1,2)
+      IB2=JC(2,1)*10000+JC(2,2)
+      IB3=JC(3,1)*10000+JC(3,2)
+      IB4=JC(4,1)*10000+JC(4,2)
+      IB5=JC(5,1)*10000+JC(5,2)
+      IB6=JC(6,1)*10000+JC(6,2)
+      IF ( IB5 .NE. 0  .OR.  IB6 .NE. 0 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'***** ERROR IN IDTRBI: BOTTOM OR TOP QUARKS'
+        WRITE(IFCH,*)'JC:'
+        WRITE(IFCH,*)JC
+        CALL UTSTOP('IDTRBI: BOTTOM OR TOP QUARKS            ')
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE IDTR4(ID,IC)
+
+C-----------------------------------------------------------------------
+C  TRANSFORMS GENERALIZED PAIGE_ID -> WERNER_ID  (FOR < 4 FLV)
+C-----------------------------------------------------------------------
+      PARAMETER (MXINDX=1000)
+      PARAMETER (MXMA=11)
+      PARAMETER (MXMX=6)
+      PARAMETER (MXRE=100)
+      COMMON /CREMA/   REMA(MXRE,MXMA),REWI(MXRE,MXMA)
+     *                ,ICRE1(MXRE,MXMA),ICRE2(MXRE,MXMA)
+     *                ,IDMX(MXMA,MXMX),INDX(MXINDX)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      INTEGER IC(2)
+C-----------------------------------------------------------------------
+      IDABS = ABS(ID)
+      IF ( IDABS .LT. 100000000 ) THEN
+        IX=IDABS/10
+        IF ( IX .LT. 1  .OR.  IX .GT. MXINDX ) GOTO 9999
+        II=INDX(IX)
+        IF ( II .EQ. 0 ) GOTO 9998
+        JJ=IDABS-10*IX + 2
+        DO 28 IMX=1,MXMX
+          DO 27 IMA=2,MXMA
+            IF ( IDABS .EQ. IDMX(IMA,IMX) ) THEN
+              JJ=IMA
+              GOTO 29
+            ENDIF
+27        CONTINUE
+28      CONTINUE
+29      IF ( ID .GT. 0 ) THEN
+          IC(1)=ICRE1(II,JJ)
+          IC(2)=ICRE2(II,JJ)
+        ELSE
+          IC(2)=ICRE1(II,JJ)
+          IC(1)=ICRE2(II,JJ)
+        ENDIF
+        IF ( IC(1) .EQ. 100000  .AND.  IC(2) .EQ. 100000
+     *                          .AND.  RANGEN() .LT. 0.5 ) THEN
+          IC(1)=010000
+          IC(2)=010000
+        ENDIF
+      ELSEIF ( MOD(ID/100000000,10) .EQ. 8 ) THEN
+        IC(1)=MOD(ID,100000000)/10000*100
+        IC(2)=MOD(ID,10000)*100
+      ELSE
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'***** ID: ',ID
+        CALL UTSTOP('IDTR4: UNRECOGNIZED ID                  ')
+      ENDIF
+      RETURN
+
+9998  WRITE(IFCH,*)' '
+      WRITE(IFCH,*)'ID: ',ID
+      CALL UTSTOP('IDTR4: INDX=0.                          ')
+      RETURN
+
+9999  WRITE(IFCH,*)' '
+      WRITE(IFCH,*)'ID: ',ID
+      CALL UTSTOP('IDTR4: IX OUT OF RANGE.                 ')
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JAMBR1(NS,NSG,IRET)
+
+C-----------------------------------------------------------------------
+C  "AMOR" (KOCH+WERNER, 89)
+C  BREAKS STRING NS ACCORDING TO A-M MODEL.
+C  NS: POINTS TO THE CURRENT FRAGMENTING STRING.
+C  NSG: POINTS TO THE LAST PRODUCED SUBSTRING (SUCC INCREASED)
+C      INPUT:
+C  PSG(,NS): MOMENTUM OF STRING NS IN PP-CMS
+C  PJT(,2*NS-1),PJT(,2*NS): MOMENTUM OF END OF STRING NS IN PP-CMS
+C      OUTPUT:
+C  XORSG(,NSG): ORIGIN OF SUBSTRING NSG IN PP-CMS
+C  PJT(,2*NSG-1),PJT(,2*NSG): MOMENTUM OF END OF SUBSTRING NSG IN PP-CMS
+C  ICJT(,2*NSG-1),ICJT(,2*NSG): IC-CODE  OF END OF SUBSTRG NSG IN PP-CMS
+C  PSG(,NSG): MOMENTUM OF SUBSTRING NSG IN PP-CMS
+C  XBKPTL(,NPTLC-NPTL2): BREAKPOINT OF NS IN PP-CMS
+C  ISPTL(,NPTLC-NPTL2): 1 IF STRING NS BREAKS
+C-----------------------------------------------------------------------
+      PARAMETER (MXPC=500)
+      PARAMETER (MXSG=500)
+      PARAMETER (MXJT=2*MXSG)
+      PARAMETER (NFLAV=6)
+      PARAMETER (NPTF=129)
+      COMMON /CDELRE/  DELRER
+      COMMON /CJAMBR/  NPTLC,NPTL2
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      DOUBLE PRECISION XBKPTL
+      COMMON /CPC/     XBKPTL(2,MXPC),ISPTL(MXPC)
+      COMMON /CPTF/    FPTFS,FPTFSS,FPTFU,FPTFUS,FPTFUU
+     *                ,QPTFS(NPTF),QPTFSS(NPTF),QPTFU(NPTF),QPTFUS(NPTF)
+     *                ,QPTFUU(NPTF),XPTF(NPTF)
+      DOUBLE PRECISION PJT,PSG,ROTSG,XORSG
+      COMMON /CSG/     PJT(5,MXJT),PSG(5,MXSG),ROTSG(3,MXSG)
+     *                ,XORSG(4,MXSG)
+     *                ,ICJT(2,MXJT),IORSG(MXSG),ISG(MXSG)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /QUARKM/  SMAS,SSMAS,USMAS,UUMAS
+
+      DOUBLE PRECISION DAUXI1,DAUXI2,ETA,EETA,ETAM,ETAP
+     *                ,PM,PP,PT,PX,PY,P0M,P0P,XBK(4),XOR1(4),XOR2(4)
+      INTEGER          IC(2),ICM(2),ICMP(2),ICMS(2)
+     *                ,ICP(2),ICPM(2),ICPS(2),ICX(2),ICY(2)
+     *                ,JC(NFLAV,2)
+     *                ,JCM(NFLAV,2),JCMP(NFLAV,2),JCMS(NFLAV,2)
+     *                ,JCP(NFLAV,2),JCPM(NFLAV,2),JCPS(NFLAV,2)
+     *                ,JCX(NFLAV,2),JCY(NFLAV,2)
+C-----------------------------------------------------------------------
+      NCNT3=0
+      NSG0=NSG
+9993  NSG=NSG0
+
+      IRET=0
+      ICP(1)=ICJT(1,2*NS-1)
+      ICP(2)=ICJT(2,2*NS-1)
+      ICM(1)=ICJT(1,2*NS)
+      ICM(2)=ICJT(2,2*NS)
+      CALL IDDECO(ICP,JCP)
+      CALL IDDECO(ICM,JCM)
+      NP=0
+      DO 7 NF=1,NFLAV
+        JC(NF,1)=JCP(NF,1)+JCM(NF,1)
+        JC(NF,2)=JCP(NF,2)+JCM(NF,2)
+        NP=NP+JCP(NF,1)-JCP(NF,2)
+7     CONTINUE
+      CALL IDENCO(JC,IC,IRETEN)
+      ID=IDTRA(IC,0,0,3)
+      AMMS=UTAMNX(JCP,JCM)
+      AM=PSG(5,NS)
+
+C  SPLIT STRING
+C  ------------
+      J1 = 2*NS
+      J2 = J1-1
+      DAUXI1= PJT(4,J1)+PJT(4,J2)
+      DAUXI2= PJT(3,J1)+PJT(3,J2)
+      P0P = DAUXI1 + DAUXI2
+      P0M = DAUXI1 - DAUXI2
+9994  NCNT3=NCNT3+1
+      IF ( NCNT3 .GT. 100 ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JAMBR1')
+          WRITE(IFCH,*)'*****  SPLIT KINEM NOT POSSIBLE.'
+          WRITE(IFCH,112)
+     *     (ICJT(J,2*NS-1),J=1,2),(ICJT(J,2*NS),J=1,2),PSG(5,NS)
+112       FORMAT(1X,2I8,4X,2I8,4X,F7.2)
+          CALL UTMSGF
+        ENDIF
+        IF ( NS .EQ. 1 ) THEN
+          IRET=9999
+          RETURN
+        ENDIF
+        IRET=9996
+        RETURN
+      ENDIF
+      DO 17 NF=1,NFLAV
+        JCPM(NF,1)=0
+        JCPM(NF,2)=0
+        JCMP(NF,1)=0
+        JCMP(NF,2)=0
+17    CONTINUE
+
+C  DETERMINE FLAVOUR
+C  -----------------
+      NQU=0
+      IF ( ISH .GE. 93 ) THEN
+        WRITE(IFCH,*)'ORDINARY STRING FRAGMENTATION'
+        WRITE(IFCH,*)' '
+      ENDIF
+      IF ( RANGEN() .LE. PDIQUA ) THEN
+        NQU=2
+      ELSE
+        NQU=1
+      ENDIF
+      IF     ( MOD(NP+NQU,3) .EQ. 0 ) THEN
+        II=1
+      ELSEIF ( MOD(NP-NQU,3) .EQ. 0 ) THEN
+        II=2
+      ELSE
+        CALL UTSTOP('JAMBR1: NO SINGLET CONSTRUCTION POSSIBLE')
+      ENDIF
+      IFLTT=0
+      DO 8 N=1,NQU
+        IFL=INT(RANGEN()/PUD)+1
+        IFLTT=IFLTT*10+(IFL+1)/2
+        JCPM(IFL,II)=JCPM(IFL,II)+1
+        JCMP(IFL,3-II)=JCMP(IFL,3-II)+1
+8     CONTINUE
+      CALL IDENCO(JCPM,ICPM,IRETEN)
+      IF ( IRETEN .EQ. 1 ) THEN
+        CALL UTSTOP('JAMBR1: IDENCO(JCPM... RET.CODE=1       ')
+      ENDIF
+      CALL IDENCO(JCMP,ICMP,IRETEN)
+      IF ( IRETEN .EQ. 1 ) THEN
+        CALL UTSTOP('JAMBR1: IDENCO(JCMP... RET.CODE=1       ')
+      ENDIF
+      DO 25 NF=1,NFLAV
+        JCPS(NF,1)=JCP(NF,1)+JCPM(NF,1)
+        JCPS(NF,2)=JCP(NF,2)+JCPM(NF,2)
+        JCMS(NF,1)=JCM(NF,1)+JCMP(NF,1)
+        JCMS(NF,2)=JCM(NF,2)+JCMP(NF,2)
+25    CONTINUE
+      CALL IDENCO(JCPS,ICPS,IRETEN)
+      CALL IDENCO(JCMS,ICMS,IRETEN)
+      CALL IDCOMK(ICPS)
+      CALL IDCOMK(ICMS)
+
+C  CALCULATE P+,P-,PT OF STRING BREAKING
+C  -------------------------------------
+      IF ( ISH .GE. 93 ) THEN
+        WRITE(IFCH,109)ICM(1),ICMP(1),ICPM(1),ICP(1)
+     *     ,ICM(2),ICMP(2),ICPM(2),ICP(2)
+109     FORMAT(1X,'FLAVORS:',2(I11,I7)/9X,2(I11,I7)/)
+        WRITE(IFCH,*)'IFLTT:',IFLTT
+        WRITE(IFCH,*)' '
+      ENDIF
+      IDP=IDTRA(ICPS,0,0,3)
+      IDM=IDTRA(ICMS,0,0,3)
+      AMMP=UTAMNY(JCP,JCPM)
+      AMMM=UTAMNY(JCM,JCMP)
+      R = RANGEN()
+      IF     ( IFLTT .EQ .1 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFU ,R*QPTFU(NPTF))
+C##       WRITE(IFCH,*)'JAMBR1:PT(OLD)=',PT
+        ELSE
+          RPT = R*FPTFU
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(1.+RPT*2./AUXIL))
+        ENDIF
+      ELSEIF ( IFLTT .EQ. 2 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFS ,R*QPTFS(NPTF))
+        ELSE
+          RPT = R*FPTFS
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(EXP(SMAS**2/AUXIL)+RPT*2./AUXIL)-SMAS**2)
+        ENDIF
+      ELSEIF ( IFLTT .EQ. 11 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFUU,R*QPTFUU(NPTF))
+        ELSE
+          RPT = R*FPTFUU
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(EXP(UUMAS**2/AUXIL)+RPT*2./AUXIL)-UUMAS**2)
+        ENDIF
+      ELSEIF ( IFLTT .EQ. 12  .OR.  IFLTT .EQ. 21 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFUS,R*QPTFUS(NPTF))
+        ELSE
+          RPT = R*FPTFUS
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(EXP(USMAS**2/AUXIL)+RPT*2./AUXIL)-USMAS**2)
+        ENDIF
+      ELSEIF ( IFLTT .EQ. 22 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFSS,R*QPTFSS(NPTF))
+        ELSE
+          RPT = R*FPTFSS
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(EXP(SSMAS**2/AUXIL)+RPT*2./AUXIL)-SSMAS**2)
+        ENDIF
+      ENDIF
+      LO=1
+      GOTO 48
+47    LO=LO+1
+      PT=RANGEN()*PT
+48    CONTINUE
+      PHI=2.D0*PI*RANGEN()
+      PX=PT*COS(PHI)
+      PY=PT*SIN(PHI)
+      TMMP=    (PT**2+AMMP**2)
+      TMMM=    (PT**2+AMMM**2)
+      AREA=-LOG(RANGEN())/PAREA
+      AREART = SQRT(AREA)
+      ETAM=LOG((TMMM   +AREA)/(AREART    *P0M))
+      ETAP=LOG((AREART    *P0P)/(TMMP   +AREA))
+      IF ( ETAM .GT. ETAP ) THEN
+        IF ( LO .LT. 5 ) GOTO 47
+        GOTO 9994
+      ENDIF
+      ETA=ETAM+RANGEN()*(ETAP-ETAM)
+      AMP=SQRT(P0P*AREART    *EXP(-ETA)-AREA-PT**2)
+      AMM=SQRT(P0M*AREART    *EXP( ETA)-AREA-PT**2)
+      CALL IDRES(IDP,AMP,IDPR,IADJP)
+      CALL IDRES(IDM,AMM,IDMR,IADJM)
+      R=RANGEN()
+      IF ( IDPR .EQ. 110  .AND. R .LT. 0.5 ) THEN
+        IDP=220
+        AMP=.549
+        IF ( R .LT. 0.6666667 ) AMP=.958
+        CALL IDRES(IDP,AMP,IDPR,IADJP)
+        IADJP=1
+      ENDIF
+      R=RANGEN()
+      IF ( IDMR .EQ. 110 .AND. R .LT. 0.5 ) THEN
+        IDM=220
+        AMM=.549
+        IF ( R .LT. 0.6666667 ) AMM=.958
+        CALL IDRES(IDM,AMM,IDMR,IADJM)
+        IADJM=1
+      ENDIF
+      TMP2=(PT**2+AMP**2)
+      TMM2=(PT**2+AMM**2)
+      IF ( IADJP .EQ. 1  .AND.  IADJM .NE. 1 ) THEN
+        ETA=LOG((AREART  *P0P)/(TMP2+AREA))
+        IF ( ETA .LT. ETAM ) GOTO 9994
+        AMM=SQRT(P0M*AREART  *EXP(ETA)-AREA-PT**2)
+        CALL IDRES(IDM,AMM,IDMR,IADJM)
+        TMM2=(PT**2+AMM**2)
+      ENDIF
+      IF ( IADJP .NE. 1  .AND.  IADJM .EQ. 1 ) THEN
+        ETA=LOG((TMM2+AREA)/(AREART  *P0M))
+        IF ( ETA .GT. ETAP ) GOTO 9994
+        AMP=SQRT(P0P*AREART   *EXP(-ETA)-AREA-PT**2)
+        CALL IDRES(IDP,AMP,IDPR,IADJP)
+        TMP2=(PT**2+AMP**2)
+      ENDIF
+      IF ( IADJP .EQ. 1  .AND.  IADJM .EQ. 1 ) THEN
+        TM=(P0P*P0M-TMM2-TMP2)*0.5
+        IF ( TM .LT. 0. ) GOTO 9994
+        IF ( TM**2-TMP2*TMM2 .LT. 0. ) GOTO 9994
+        AREA=TM-SQRT(TM**2  -TMP2*TMM2)
+        AREART = SQRT(AREA)
+        EETA=P0P*AREART/(TMP2+AREA)
+        IF ( EETA .LE. 0.D0 ) GOTO 9994
+        ETA=LOG(EETA)
+      ENDIF
+
+      PP=AREART*EXP(ETA)
+      PM=AREART*EXP(-ETA)
+      IF ( P0P-PP-PT**2/PM .LT. 0.D0   .OR.
+     *     P0M-PM-PT**2/PP .LT. 0.D0 ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JAMBR1')
+          WRITE(IFCH,*)'*****  NEGATIVE JET ENERGY. SPLIT AGAIN.'
+          IF ( P0P-PP-PT**2/PM .LT. 0.D0 )
+     *      WRITE(IFCH,*)'P0P: ',P0P,'   PP+PT**2/PM: ',PP+PT**2/PM
+          IF ( P0M-PM-PT**2/PP .LT. 0.D0 )
+     *      WRITE(IFCH,*)'P0M: ',P0M,'   PM+PT**2/PP: ',PM+PT**2/PP
+          CALL UTMSGF
+        ENDIF
+        GOTO 9994
+      ENDIF
+
+C  DETERMINE BREAK PNT AND NEW ORIGINS
+C  -----------------------------------
+      XOR1(1)=0.D0
+      XOR1(2)=0.D0
+      XOR1(3)=PP*0.5D0/TENSN
+      XOR1(4)=PP*0.5D0/TENSN
+      IF ( ISH .GE. 93 ) WRITE(IFCH,118)XOR1
+118   FORMAT(' NEW ORIGIN +: ',13X,4F7.2)
+      CALL UTROT2(-1,ROTSG(1,NS),ROTSG(2,NS),ROTSG(3,NS)
+     *             ,XOR1(1),XOR1(2),XOR1(3))
+      CALL UTLOB2(-1,PSG(1,NS),PSG(2,NS),PSG(3,NS),PSG(4,NS),PSG(5,NS)
+     *             ,XOR1(1),XOR1(2),XOR1(3),XOR1(4))
+      XOR1(1)=XOR1(1)+XORSG(1,NS)
+      XOR1(2)=XOR1(2)+XORSG(2,NS)
+      XOR1(3)=XOR1(3)+XORSG(3,NS)
+      XOR1(4)=XOR1(4)+XORSG(4,NS)
+      IF ( ISH .GE. 93 ) WRITE(IFCH,117)XOR1
+      XBK(1)=0.D0
+      XBK(2)=0.D0
+      XBK(3)=0.5D0/TENSN*(PP-PM)
+      XBK(4)=0.5D0/TENSN*(PP+PM)
+      IF ( ISH .GE. 93 ) WRITE(IFCH,116)XBK
+116   FORMAT(' BREAKING PNT: ',13X,4F7.2)
+      CALL UTROT2(-1,ROTSG(1,NS),ROTSG(2,NS),ROTSG(3,NS)
+     *             ,XBK(1),XBK(2),XBK(3))
+      CALL UTLOB2(-1,PSG(1,NS),PSG(2,NS),PSG(3,NS),PSG(4,NS),PSG(5,NS)
+     *             ,XBK(1),XBK(2),XBK(3),XBK(4))
+      XBK(1)=XBK(1)+XORSG(1,NS)
+      XBK(2)=XBK(2)+XORSG(2,NS)
+      XBK(3)=XBK(3)+XORSG(3,NS)
+      XBK(4)=XBK(4)+XORSG(4,NS)
+      IF ( ISH .GE. 93 ) WRITE(IFCH,117)XBK
+117   FORMAT(28X,4F7.2/)
+      XOR2(1)=0.D0
+      XOR2(2)=0.D0
+      XOR2(3)=-PM*0.5D0/TENSN
+      XOR2(4)= PM*0.5D0/TENSN
+      IF ( ISH .GE. 93 ) WRITE(IFCH,119)XOR2
+119   FORMAT(' NEW ORIGIN -: ',13X,4F7.2)
+      CALL UTROT2(-1,ROTSG(1,NS),ROTSG(2,NS),ROTSG(3,NS)
+     *              ,XOR2(1),XOR2(2),XOR2(3))
+      CALL UTLOB2(-1,PSG(1,NS),PSG(2,NS),PSG(3,NS),PSG(4,NS),PSG(5,NS)
+     *              ,XOR2(1),XOR2(2),XOR2(3),XOR2(4))
+      XOR2(1)=XOR2(1)+XORSG(1,NS)
+      XOR2(2)=XOR2(2)+XORSG(2,NS)
+      XOR2(3)=XOR2(3)+XORSG(3,NS)
+      XOR2(4)=XOR2(4)+XORSG(4,NS)
+      IF ( ISH .GE. 93 ) WRITE(IFCH,117)XOR2
+
+C  STORE THE TWO SUBSTRINGS
+C  ------------------------
+      NSGB=NSG
+      DO 9998 M=1,2
+        NSG=NSG+1
+        IF ( NSG .GT. MXSG ) THEN
+          CALL UTSTOP('JAMBR1: NSG>MXSG                        ')
+        ENDIF
+        ISG(NSG)=NPTLC
+        IF ( M .EQ. 1 ) THEN
+          XORSG(1,NSG)=XOR1(1)
+          XORSG(2,NSG)=XOR1(2)
+          XORSG(3,NSG)=XOR1(3)
+          XORSG(4,NSG)=XOR1(4)
+          PJT(1,2*NSG-1)=0.D0
+          PJT(2,2*NSG-1)=0.D0
+          PJT(3,2*NSG-1)=(P0P-PP-PT**2/PM)*0.5D0
+          PJT(4,2*NSG-1)=(P0P-PP-PT**2/PM)*0.5D0
+          PJT(5,2*NSG-1)=0.D0
+          ICJT(1,2*NSG-1)=ICJT(1,2*NS-1)
+          ICJT(2,2*NSG-1)=ICJT(2,2*NS-1)
+          PJT(1,2*NSG)=PX
+          PJT(2,2*NSG)=PY
+          PJT(3,2*NSG)=(PT**2/PM-PM)*0.5D0
+          PJT(4,2*NSG)=(PT**2/PM+PM)*0.5D0
+          PJT(5,2*NSG)=0.D0
+          ICJT(1,2*NSG)=ICPM(1)
+          ICJT(2,2*NSG)=ICPM(2)
+          DO 11 NF=1,NFLAV
+            JC(NF,1)=JCPS(NF,1)
+            JC(NF,2)=JCPS(NF,2)
+11        CONTINUE
+        ELSE
+          XORSG(1,NSG)=XOR2(1)
+          XORSG(2,NSG)=XOR2(2)
+          XORSG(3,NSG)=XOR2(3)
+          XORSG(4,NSG)=XOR2(4)
+          PJT(1,2*NSG-1)=-PX
+          PJT(2,2*NSG-1)=-PY
+          PJT(3,2*NSG-1)=(PP-PT**2/PP)*0.5D0
+          PJT(4,2*NSG-1)=(PP+PT**2/PP)*0.5D0
+          PJT(5,2*NSG-1)=0.D0
+          ICJT(1,2*NSG-1)=ICMP(1)
+          ICJT(2,2*NSG-1)=ICMP(2)
+          DO 12 NF=1,NFLAV
+            JC(NF,1)=JCMS(NF,1)
+            JC(NF,2)=JCMS(NF,2)
+12        CONTINUE
+          PJT(1,2*NSG)=0.D0
+          PJT(2,2*NSG)=0.D0
+          PJT(3,2*NSG)=-(P0M-PM-PT**2/PP)*0.5D0
+          PJT(4,2*NSG)= (P0M-PM-PT**2/PP)*0.5D0
+          PJT(5,2*NSG)=0.D0
+          ICJT(1,2*NSG)=ICJT(1,2*NS)
+          ICJT(2,2*NSG)=ICJT(2,2*NS)
+        ENDIF
+        ICX(1)=ICJT(1,2*NSG-1)
+        ICX(2)=ICJT(2,2*NSG-1)
+        ICY(1)=ICJT(1,2*NSG)
+        ICY(2)=ICJT(2,2*NSG)
+        CALL IDDECO(ICX,JCX)
+        CALL IDDECO(ICY,JCY)
+        DO 28 N=1,NFLAV
+          DO 29 I=1,2
+            K=JCX(N,I)+JCY(N,I)-JC(N,I)
+            IF ( K .LE. 0 ) GOTO 28
+            DO 19 L=1,K
+              JX=JCX(N,I)
+              JY=JCY(N,I)
+              IF     ( JX .EQ. 0  .AND.  JY .GT. 0 ) THEN
+                JCY(N,I)=JCY(N,I)-1
+              ELSEIF ( JX .GT. 0  .AND.  JY .EQ. 0 ) THEN
+                JCX(N,I)=JCX(N,I)-1
+              ELSEIF ( JX .GT. 0  .AND.  JY .GT. 0 ) THEN
+                IF ( RANGEN() .LT. 0.5 ) THEN
+                  JCX(N,I)=JCX(N,I)-1
+                ELSE
+                  JCY(N,I)=JCY(N,I)-1
+                ENDIF
+              ELSE
+                WRITE(IFCH,*)('*',LP=1,71)
+                WRITE(IFCH,*)'*****  IC;  ',IC
+                WRITE(IFCH,*)'*****  ICX: ',ICX
+                WRITE(IFCH,*)'*****  ICY: ',ICY
+                WRITE(IFCH,*)'*****  N,I,K,L: ',N,I,K,L
+                WRITE(IFCH,*)'*****  JX,JY: ',JX,JY
+                WRITE(IFCH,*)('*',LP=1,71)
+                CALL UTSTOP('JAMBR1: ERROR DURING JET COMPACTIFICATN ')
+              ENDIF
+19          CONTINUE
+29        CONTINUE
+28      CONTINUE
+        CALL IDENCO(JCX,ICX,IRETEN)
+        IF ( IRETEN .EQ. 1 ) THEN
+          CALL UTSTOP('JAMBR1: IDENCO(JCX... RET.CODE=1        ')
+        ENDIF
+        CALL IDENCO(JCY,ICY,IRETEN)
+        IF ( IRETEN .EQ. 1 ) THEN
+          CALL UTSTOP('JAMBR1: IDENCO(JCY... RET.CODE=1        ')
+        ENDIF
+        ICJT(1,2*NSG-1)=ICX(1)
+        ICJT(2,2*NSG-1)=ICX(2)
+        ICJT(1,2*NSG)  =ICY(1)
+        ICJT(2,2*NSG)  =ICY(2)
+        IF ( ISH .GE. 93 ) THEN
+          WRITE(IFCH,108)NSG,NS
+     *       ,(ICJT(J,2*NSG-1),J=1,2),(SNGL(PJT(J,2*NSG-1)),J=1,5)
+108       FORMAT(1X,I5,I4,I9,I7,1P,5E10.2)
+          WRITE(IFCH,108)NSG,NS
+     *       ,(ICJT(J,2*NSG  ),J=1,2),(SNGL(PJT(J,2*NSG  )),J=1,5)
+        ENDIF
+        PSG(1,NSG)=PJT(1,2*NSG-1)+PJT(1,2*NSG)
+        PSG(2,NSG)=PJT(2,2*NSG-1)+PJT(2,2*NSG)
+        PSG(3,NSG)=PJT(3,2*NSG-1)+PJT(3,2*NSG)
+        PSG(4,NSG)=PJT(4,2*NSG-1)+PJT(4,2*NSG)
+        PSG(5,NSG)=
+     *     SQRT(PSG(4,NSG)**2-PSG(3,NSG)**2-PSG(2,NSG)**2-PSG(1,NSG)**2)
+        IF ( ISH .GE. 93 ) WRITE(IFCH,110)NSG,NS,(PSG(J,NSG),J=1,5)
+110     FORMAT(1X,I5,I4,16X,1P,5E10.2)
+        CALL UTROT2(-1,ROTSG(1,NS),ROTSG(2,NS),ROTSG(3,NS)
+     *             ,PSG(1,NSG),PSG(2,NSG),PSG(3,NSG))
+        CALL UTLOB2(-1,PSG(1,NS),PSG(2,NS),PSG(3,NS),PSG(4,NS),PSG(5,NS)
+     *          ,PSG(1,NSG),PSG(2,NSG),PSG(3,NSG),PSG(4,NSG))
+        IORSG(NSG)=NS
+        IF ( ISH .GE. 93 ) THEN
+          WRITE(IFCH,102)NSG,IORSG(NSG),(PSG(J,NSG),J=1,5)
+102       FORMAT(1X,I5,I4,16X,1P,5E10.2)
+          WRITE(IFCH,*)' '
+        ENDIF
+
+C-C   DO 56 I=1,2
+C-C     ICPZ(I)=ICJT(I,2*NSG-1)
+C-C56 ICMZ(I)=ICJT(I,2*NSG)
+C-C   CALL IDDECO(ICPZ,JCPZ)
+C-C   CALL IDDECO(ICMZ,JCMZ)
+C-C   DO 57 NF=1,NFLAV
+C-C     JCZ(NF,1)=JCPZ(NF,1)+JCMZ(NF,1)
+C-C57 JCZ(NF,2)=JCPZ(NF,2)+JCMZ(NF,2)
+C-C   CALL IDENCO(JCZ,ICZ,IRETEN)
+C-C   IDZ=IDTRA(ICZ,0,0,3)
+C-C   AMZ=PSG(5,NSG)
+C-C   CALL IDRES(IDZ,AMZ,IDRZ,IADJ)
+C-C   IF ( IDRZ.EQ.110 .AND. RANGEN().LT.0.5 ) GOTO 9993
+
+9998  CONTINUE
+      XBKPTL(1,NPTLC-NPTL2)=XBK(3)
+      XBKPTL(2,NPTLC-NPTL2)=XBK(4)
+      ISPTL(NPTLC-NPTL2)=1
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JAMBR2(NS,NSG,IRET)
+
+C-----------------------------------------------------------------------
+C  "SAMBA" (SCHOLTEN+WERNER, MAR 92)
+C  BREAKS STRING NS ACCORDING TO A-M MODEL.
+C  NS: POINTS TO THE CURRENT FRAGMENTING STRING.
+C  NSG: POINTS TO THE LAST PRODUCED SUBSTRING (SUCC INCREASED)
+C     INPUT:
+C  PSG(,NS): MOMENTUM OF STRING NS IN PP-CMS
+C  PJT(,2*NS-1),PJT(,2*NS): MOMENTUM OF END OF STRING NS IN PP-CMS
+C     OUTPUT:
+C  XORSG(,NSG): ORIGIN OF SUBSTRING NSG IN PP-CMS
+C  PJT(,2*NSG-1),PJT(,2*NSG): MOMENTUM OF END OF SUBSTRING NSG IN PP-CMS
+C  ICJT(,2*NSG-1),ICJT(,2*NSG): IC-CODE  OF END OF SUBSTRG NSG IN PP-CMS
+C  PSG(,NSG): MOMENTUM OF SUBSTRING NSG IN PP-CMS
+C  XBKPTL(,NPTLC-NPTL2): BREAKPOINT OF NS IN PP-CMS
+C  ISPTL(,NPTLC-NPTL2): 1 IF STRING NS BREAKS
+C-----------------------------------------------------------------------
+      PARAMETER (MXPC=500)
+      PARAMETER (MXSG=500)
+      PARAMETER (MXJT=2*MXSG)
+      PARAMETER (NBRM=99)
+      PARAMETER (NFLAV=6)
+      PARAMETER (NPTF=129)
+      DOUBLE PRECISION XBKPTL
+      COMMON /CDELRE/  DELRER
+      COMMON /CJAMBR/  NPTLC,NPTL2
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CPC/     XBKPTL(2,MXPC),ISPTL(MXPC)
+      COMMON /CPTF/    FPTFS,FPTFSS,FPTFU,FPTFUS,FPTFUU
+     *                ,QPTFS(NPTF),QPTFSS(NPTF),QPTFU(NPTF),QPTFUS(NPTF)
+     *                ,QPTFUU(NPTF),XPTF(NPTF)
+      DOUBLE PRECISION PJT,PSG,ROTSG,XORSG
+      COMMON /CSG/     PJT(5,MXJT),PSG(5,MXSG),ROTSG(3,MXSG)
+     *                ,XORSG(4,MXSG)
+     *                ,ICJT(2,MXJT),IORSG(MXSG),ISG(MXSG)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /QUARKM/  SMAS,SSMAS,USMAS,UUMAS
+
+      DOUBLE PRECISION A,AMAM,AMAX,ANEW,DA,DALFA,DATWID
+     *                ,DAUXIL,DR,DY,DYST,DYT,DY1,DY2,PHI,PM,PP,PT
+     *                ,PW(4),PX,PY,P0M,P0P,RA,RMX,RMY,XBK(4)
+     *                ,XBR,XOR2(4),XP,X2,YBR,YP,YTD,YNEW
+      REAL     PXBRAK(100),PYBRAK(100),XBREAK(100),YBREAK(100)
+      INTEGER  ICM(2),ICMP(2),ICMPBR(2,100),ICMZ(2)
+     *        ,ICP(2),ICPM(2),ICPMBR(2,100),ICPZ(2)
+     *        ,ICZ(2),ITRD(100),JC(NFLAV,2)
+     *        ,JCM(NFLAV,2),JCMP(NFLAV,2),JCMS(NFLAV,2),JCMZ(NFLAV,2)
+     *        ,JCP(NFLAV,2),JCPM(NFLAV,2),JCPZ(NFLAV,2),JCZ(NFLAV,2)
+      LOGICAL  LAST
+C-----------------------------------------------------------------------
+      NCNT3=0
+      NSG0=NSG
+9993  NSG=NSG0
+
+C  INITIALIZATION
+C  --------------
+
+      IRET=0
+      ICP(1)=ICJT(1,2*NS-1)
+      ICP(2)=ICJT(2,2*NS-1)
+      ICM(1)=ICJT(1,2*NS)
+      ICM(2)=ICJT(2,2*NS)
+      ICPMBR(1,1)=ICM(1)
+      ICPMBR(2,1)=ICM(2)
+
+      CALL IDDECO(ICP,JCP)
+      CALL IDDECO(ICM,JCM)
+      NP=0
+      DO 7 NF=1,NFLAV
+        NP=NP+JCP(NF,1)-JCP(NF,2)
+ 7    CONTINUE
+      AMMS=UTAMNX(JCP,JCM)
+      AM=PSG(5,NS)
+C
+      J = 2*NS
+      DAUXIL= PJT(3,J-1)+PJT(3,J)
+      P0P=PJT(4,J-1)+PJT(4,J)+DAUXIL
+      P0M=PJT(4,J-1)+PJT(4,J)-DAUXIL
+      XT=P0M
+      YT=P0P
+C
+      DALFA=DBLE(PAREA)
+C  INITIALIZE
+      XBREAK(1)=XT
+      YBREAK(1)=0.
+      PXBRAK(1)=0.
+      PYBRAK(1)=0.
+
+C  REDO
+C  ----
+
+      NCNT3=0
+9994  NCNT3=NCNT3+1
+      IBR=1
+      XP=XT
+      YP=0.D0
+      YTD=YT
+      IF ( NCNT3 .GT. 100 ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JAMBR2')
+          WRITE(IFCH,*)'*****  SPLIT KINEM NOT POSSIBLE.'
+          WRITE(IFCH,112)
+     *     (ICJT(J,2*NS-1),J=1,2),(ICJT(J,2*NS),J=1,2),PSG(5,NS)
+112       FORMAT(1X,2I8,4X,2I8,4X,F7.2)
+          CALL UTMSGF
+        ENDIF
+        IF ( NS .EQ. 1 ) THEN
+          IRET=9999
+          RETURN
+        ENDIF
+        IRET=9996
+        RETURN
+      ENDIF
+
+C  SEARCH FOR BREAKPOINTS
+C  ----------------------
+
+ 9    CONTINUE
+      DO 17 NF=1,NFLAV
+        JCPM(NF,1)=0
+        JCPM(NF,2)=0
+        JCMP(NF,1)=0
+        JCMP(NF,2)=0
+17    CONTINUE
+
+C  ORDINARY STRINGS
+C  ----------------
+C     NQU=0
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)'ORDINARY STRING FRAGMENTATION'
+        WRITE(IFCH,*)' '
+      ENDIF
+      IF ( RANGEN() .LE. PDIQUA ) THEN
+        NQU=2
+      ELSE
+        NQU=1
+      ENDIF
+      IF     ( MOD(NP+NQU,3) .EQ. 0 ) THEN
+        II=1
+      ELSEIF ( MOD(NP-NQU,3) .EQ. 0 ) THEN
+        II=2
+      ELSE
+        CALL UTSTOP('JAMBR2: NO SINGLET CONSTRUCTION POSSIBLE')
+      ENDIF
+      IFLTT=0
+      DO 18 N=1,NQU
+        IFL=INT(RANGEN()/PUD)+1
+        IFLTT=IFLTT*10+(IFL+1)/2
+        JCPM(IFL,II)=JCPM(IFL,II)+1
+        JCMP(IFL,3-II)=JCMP(IFL,3-II)+1
+18    CONTINUE
+      CALL IDENCO(JCPM,ICPM,IRETEN)
+      IF ( IRETEN .EQ. 1 ) THEN
+        CALL UTSTOP('JAMBR2: IDENCO(JCPM... RET.CODE=1       ')
+      ENDIF
+      CALL IDENCO(JCMP,ICMP,IRETEN)
+      IF ( IRETEN .EQ. 1 ) THEN
+        CALL UTSTOP('JAMBR2: IDENCO(JCMP... RET.CODE=1       ')
+      ENDIF
+
+C  CALCULATE PT OF STRING BREAKING
+C  -------------------------------------
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,109)ICM(1),ICMP(1),ICPM(1),ICP(1)
+     *                ,ICM(2),ICMP(2),ICPM(2),ICP(2)
+109     FORMAT(1X,'FLAVORS:',2(I11,I7)/9X,2(I11,I7)/)
+        WRITE(IFCH,*)'IFLTT:',IFLTT
+        WRITE(IFCH,*)' '
+      ENDIF
+      AMMP=UTAMNY(JCP,JCPM)
+      AMMM=UTAMNY(JCMP,JCM)
+      R = RANGEN()
+      IF     ( IFLTT .EQ. 1 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFU ,R*QPTFU(NPTF))
+C##       WRITE(IFCH,*)'JAMBR2:PT(OLD)=',PT
+        ELSE
+          RPT = R*FPTFU
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(1.+RPT*2./AUXIL))
+        ENDIF
+      ELSEIF ( IFLTT .EQ. 2 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFS ,R*QPTFS(NPTF))
+        ELSE
+          RPT = R*FPTFS
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(EXP(SMAS **2/AUXIL)+RPT*2./AUXIL)-SMAS **2)
+        ENDIF
+      ELSEIF ( IFLTT .EQ. 11 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFUU,R*QPTFUU(NPTF))
+        ELSE
+          RPT = R*FPTFUU
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(EXP(UUMAS**2/AUXIL)+RPT*2./AUXIL)-UUMAS**2)
+        ENDIF
+      ELSEIF ( IFLTT .EQ. 12  .OR.  IFLTT .EQ. 21 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFUS,R*QPTFUS(NPTF))
+        ELSE
+          RPT = R*FPTFUS
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(EXP(USMAS**2/AUXIL)+RPT*2./AUXIL)-USMAS**2)
+        ENDIF
+      ELSEIF ( IFLTT .EQ. 22 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFSS,R*QPTFSS(NPTF))
+        ELSE
+          RPT = R*FPTFSS
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(EXP(SSMAS**2/AUXIL)+RPT*2./AUXIL)-SSMAS**2)
+        ENDIF
+      ENDIF
+
+      IF ( IBR .EQ. 1 ) THEN
+        RMX=AMMM**2+PT**2
+      ELSE
+        RMX=0.001D0
+      ENDIF
+      RMY=AMMP**2+PT**2
+      IF ( RMY .GT. XP*(YTD-YP) ) GOTO 8
+
+C  SINGLE ARTRU-MENNESSIER BREAK (SAMB)
+C  ------------------------------------
+C  IN: XP,YP,YTD,RMX,RMY
+C  IN: DALFA
+C  OUT: XBR,YBR
+
+      DYT=YTD-YP
+C  Y-STEPPING RANGE
+      AMAM=1.D0+(RMX-RMY)/(XP*DYT)
+      A=(1.D0-4.D0*RMX/(AMAM*AMAM*XP*DYT))
+      IF ( A .LT. 0.D0 ) GOTO 8
+      A=SQRT(A)
+      DY1=DYT*AMAM*(1.D0-A)*0.5D0
+      DY2=DYT*AMAM*(1.D0+A)*0.5D0
+      DYST=0.0001D0*(DYT-DY2)
+ 3    CONTINUE
+      DR=DBLE(1.-RANGEN())
+      AMAX=XP*DYT*A*AMAM+RMX*LOG(DY1/DY2)+RMY*LOG((DYT-DY2)/(DYT-DY1))
+      RA=-LOG(DR)/DALFA
+      IF ( RA .GT. AMAX  .AND. IBR .GT. 1 ) GOTO 8
+      RA=MOD(RA,AMAX)
+      DY=DYT*SQRT(RMX)/(SQRT(RMX)+SQRT(RMY))
+      DATWID=XP*(DY-DY1)+RMX*LOG(DY1/DY)+RMY*LOG((DYT-DY)/(DYT-DY1))
+      ANEW=RA-DATWID
+      ICOUNT=0
+      IF ( ANEW .GT. 0.D0 ) GOTO 1
+ 2    CONTINUE
+      DA=XP - RMX/DY - RMY/(DYT-DY)
+      YNEW=DY+ANEW/DA
+      DY=INT(YNEW/DYST)*DYST
+      IF ( DY .LT. DY1 ) THEN
+        WRITE(IFCH,*) 'DY,DY1',DY,DY1
+        GOTO 4
+      ENDIF
+      ANEW=RA-XP*(DY-DY1)-RMX*LOG(DY1/DY)-RMY*LOG((DYT-DY)/(DYT-DY1))
+      IF ( ANEW .LT. 0.D0 ) GOTO 2
+      GOTO 4
+ 1    CONTINUE
+      DA=XP - RMX/DY - RMY/(DYT-DY)
+      YNEW=DY+ANEW/DA
+      DY=(INT(YNEW/DYST)+1)*DYST
+      ANEW=RA-XP*(DY-DY1)-RMX*LOG(DY1/DY)-RMY*LOG((DYT-DY)/(DYT-DY1))
+      IF ( ANEW .GT. 0.D0 ) GOTO 1
+      DY=DY-DYST
+      ANEW=RA-XP*(DY-DY1)-RMX*LOG(DY1/DY)-RMY*LOG((DYT-DY)/(DYT-DY1))
+ 4    CONTINUE
+      YBR=MIN( DY+RANGEN()*DYST, DY2 )
+      X2=(XP-RMX/YBR)
+      XBR=MIN( ANEW/DYST+RMY/(DYT-YBR), X2 )
+C  BETTER: SOLVE FOR YBR FROM ANEW=0
+C  FIND XBR FROM HOMOGENEOUS (NOT EXP) DISTR, X1<X<X2
+C        X1=RMY/(DYT-YBR)
+      YBR=YBR+YP
+C
+C  END SAMB
+C
+      IF ( IBR .GE. NBRM ) THEN
+        CALL UTSTOP('JAMBR2: IBR>NBRM                        ')
+      ENDIF
+      IBR=IBR+1
+      XBREAK(IBR)=XBR
+      YBREAK(IBR)=YBR
+      PHI=2.D0*PI*RANGEN()
+      PXBRAK(IBR)=PT*COS(PHI)
+      PYBRAK(IBR)=PT*SIN(PHI)
+      ICPMBR(1,IBR)=ICPM(1)
+      ICPMBR(2,IBR)=ICPM(2)
+      ICMPBR(1,IBR)=ICMP(1)
+      ICMPBR(2,IBR)=ICMP(2)
+      XP=XBR
+      YP=YBR
+      AMLEFT=SQRT(YBR*(XT-XBR))
+      AMRIGT=SQRT(XBR*(YT-YBR))
+      GOTO 9
+ 8    CONTINUE
+
+      IF ( IBR .EQ. 1 ) GOTO 9994
+
+C  INITIALIZE TAIL END
+C  -------------------
+      XBREAK(IBR+1)=0.
+      YBREAK(IBR+1)=YT
+      PXBRAK(IBR+1)=0.
+      PYBRAK(IBR+1)=0.
+      ICMPBR(1,IBR+1)=ICP(1)
+      ICMPBR(2,IBR+1)=ICP(2)
+
+C  PRINT
+C  -----
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'ICMPBR(1/2,)  X/YBREAK  PX/YBREAK:'
+        DO 52 IB=1,IBR+1
+          WRITE(IFCH,100)ICMPBR(1,IB),ICMPBR(2,IB)
+     *            ,XBREAK(IB),YBREAK(IB),PXBRAK(IB),PYBRAK(IB)
+100       FORMAT(1X,I10,I10,2E11.3,7X,2E11.3)
+          WRITE(IFCH,100)ICPMBR(1,IB),ICPMBR(2,IB)
+52      CONTINUE
+        WRITE(IFCH,*)' '
+      ENDIF
+
+C  TIME ORDER BREAKPOINTS
+C  ----------------------
+
+      T1=0.
+      DO 203 J=2,IBR
+        T2=2.
+        DO 20 I=2,IBR
+C         T=XBREAK(I)/XT+YBREAK(I)/YT
+          T=XBREAK(I)*YBREAK(I)/(XT*YT)
+          IF ( T .LE. T1  .OR.  T .GT. T2 ) GOTO 20
+          T2=T
+          NT=I
+20      CONTINUE
+        T1=T2
+        ITRD(J)=NT
+203   CONTINUE
+
+C  PRINT
+C  -----
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'ITRD:'
+        WRITE(IFCH,*)(ITRD(IB),IB=2,IBR)
+        WRITE(IFCH,*)' '
+      ENDIF
+
+C  CHECK ACCEPTANCE CRITERIUM
+C  --------------------------
+
+      NBR=0
+      DO 12 J=2,IBR
+        I=ITRD(J)
+        XBRI=XBREAK(I)
+        YBRI=YBREAK(I)
+C  FIND NEIGHBORING EARLIER BREAK POINTS
+        IR=IBR+1
+        IL=1
+        DO 204 JN=2,J
+          IN=ITRD(JN)
+          IF ( IN .GT. I  .AND.  IN .LT. IR ) IR=IN
+          IF ( IN .LT. I  .AND.  IN .GT. IL ) IL=IN
+204     CONTINUE
+        PML=(XBREAK(IL)-XBRI)
+        PPL=(YBRI-YBREAK(IL))
+        PMR=(XBRI-XBREAK(IR))
+        PPR=(YBREAK(IR)-YBRI)
+        PX=PXBRAK(I)
+        PY=PYBRAK(I)
+        PXL=PX-PXBRAK(IL)
+        PYL=PY-PYBRAK(IL)
+        AMMM=PML*PPL-(PXL*PXL+PYL*PYL)
+        PXR=PXBRAK(IR)-PX
+        PYR=PYBRAK(IR)-PY
+        AMMP=PMR*PPR-(PXR*PXR+PYR*PYR)
+        IF ( AMMP .LE. 0. ) GOTO 13
+        IF ( AMMM .LE. 0. ) GOTO 13
+        AMMP=SQRT(AMMP)
+        AMMM=SQRT(AMMM)
+        AMP=AMMP
+        AMM=AMMM
+        CALL UTRESM(ICMPBR(1,IR),ICMPBR(2,IR)
+     *             ,ICPMBR(1,I),ICPMBR(2,I),AMP,IDPR,IADJP,IRETEN)
+        CALL UTRESM(ICPMBR(1,IL),ICPMBR(2,IL)
+     *             ,ICMPBR(1,I),ICMPBR(2,I),AMM,IDMR,IADJM,IRETEN)
+        IF ( AMP .GT. AMMP ) GOTO 13
+        IF ( AMM .GT. AMMM ) GOTO 13
+        PT2=PX*PX+PY*PY
+        PTL2=PXBRAK(IL)**2+PYBRAK(IL)**2
+        PTR2=PXBRAK(IR)**2+PYBRAK(IR)**2
+        D=(PML*PPL-PTL2-PT2)*0.5
+        D=D*D-PT2*PTL2
+        IF ( D .LE. 0. ) GOTO 13
+        D=(PMR*PPR-PTR2-PT2)*0.5
+        D=D*D-PT2*PTR2
+        IF ( D .LE. 0. ) GOTO 13
+        NBR=NBR+1
+        GOTO 12
+13      CONTINUE
+        ITRD(J)=-1
+        XBREAK(I)=-1.
+        YBREAK(I)=-1.
+12    CONTINUE
+      IF ( NBR .EQ. 0 ) GOTO 9994
+
+C  PRINT
+C  -----
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'ICMPBR(1/2,)  X/YBREAK  PX/YBREAK:'
+        DO 53 IB=1,IBR+1
+          WRITE(IFCH,100)ICMPBR(1,IB),ICMPBR(2,IB)
+     *         ,XBREAK(IB),YBREAK(IB),PXBRAK(IB),PYBRAK(IB)
+          WRITE(IFCH,100)ICPMBR(1,IB),ICPMBR(2,IB)
+53      CONTINUE
+        WRITE(IFCH,*)' '
+      ENDIF
+
+C  BUILD NEW STRINGS
+C  -----------------
+      NBREAK=0
+      TAUAVE=0.
+      IL=1
+      IN=IL
+      IR=1
+      LAST=.FALSE.
+11    CONTINUE
+      IR=IR+1
+      IF ( IR .EQ. IBR+1 ) LAST=.TRUE.
+      IF ( XBREAK(IR) .LT. 0. ) GOTO 11
+      IF ( IN .EQ. 1 ) GOTO 14
+15    CONTINUE
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'IL IN IR:  ',IL,IN,IR
+        WRITE(IFCH,*)' '
+      ENDIF
+      PML=XBREAK(IL)-XBREAK(IN)
+      PPL=YBREAK(IN)-YBREAK(IL)
+      PMR=(XBREAK(IN)-XBREAK(IR))
+      PPR=(YBREAK(IR)-YBREAK(IN))
+      PX=PXBRAK(IN)
+      PY=PYBRAK(IN)
+      PXL=PX-PXBRAK(IL)
+      PYL=PY-PYBRAK(IL)
+      PTL2=(PXL*PXL+PYL*PYL)
+      AMM=SQRT(PML*PPL-PTL2)
+      PXR=PXBRAK(IR)-PX
+      PYR=PYBRAK(IR)-PY
+      PTR2=(PXR*PXR+PYR*PYR)
+      AMP=SQRT(PMR*PPR-PTR2)
+      CALL UTRESM(ICMPBR(1,IR),ICMPBR(2,IR)
+     *           ,ICPMBR(1,IN),ICPMBR(2,IN),AMP,IDPR,IADJP,IRETEN)
+      CALL UTRESM(ICPMBR(1,IL),ICPMBR(2,IL)
+     *           ,ICMPBR(1,IN),ICMPBR(2,IN),AMM,IDMR,IADJM,IRETEN)
+      AREA=PPL*PMR
+      P0P=PPL+PPR
+      P0M=PML+PMR
+      TMM2=(PTL2+AMM**2)
+      TMP2=(PTR2+AMP**2)
+      IF(ISH.GE.90)THEN
+        IF ( TMP2 .GT. PPR*PMR+1.E-4 ) THEN
+          CALL UTMSG('JAMBR2')
+          WRITE(IFCH,*)'*****  TMP*TMP.GT.PPR*PMR'
+          WRITE(IFCH,*)'TMP*TMP PPR*PMR: ',TMP2,PPR*PMR
+          CALL UTMSGF
+        ENDIF
+        IF ( TMM2. GT. PPL*PML+1.E-4 ) THEN
+          CALL UTMSG('JAMBR2')
+          WRITE(IFCH,*)'*****  TMM*TMM.GT.PPL*PML'
+          WRITE(IFCH,*)'TMM*TMM PPL*PML: ',TMM2,PPL*PML
+          CALL UTMSGF
+        ENDIF
+      ENDIF
+      ETA=0.5*LOG(PPL/PMR)
+C ------ ADJUST P NOT M
+      IF     ( IADJP .EQ. 1  .AND.  IADJM .NE. 1 ) THEN
+        IF ( ISH .GE. 92 ) WRITE(IFCH,*)'ADJUST P NOT M'
+        ETANEW=LOG((SQRT(AREA)*P0P)/(TMP2+AREA))
+        IF ( ETANEW .LT. ETA-1.E-4 ) THEN
+          CALL UTMSG('JAMBR2')
+          WRITE(IFCH,*)'*****  ETANEW.LT.ETA'
+          WRITE(IFCH,*)'ETANEW ETA: ',ETANEW,ETA
+          CALL UTMSGF
+          ETANEW=ETA
+        ENDIF
+        XBREAK(IN)=SQRT(AREA)*EXP(-ETANEW)+XBREAK(IR)
+        YBREAK(IN)=SQRT(AREA)*EXP(ETANEW)+YBREAK(IL)
+C ------ ADJUST M NOT P
+      ELSEIF ( IADJM .EQ. 1  .AND.  IADJP .NE. 1 ) THEN
+        IF ( ISH .GE. 92 ) WRITE(IFCH,*)'ADJUST M NOT P'
+        ETANEW=-LOG((SQRT(AREA)*P0M)/(TMM2+AREA))
+        IF ( ETANEW .GT. ETA+1.E-4 ) THEN
+          IF(ISH.GE.90)THEN
+            CALL UTMSG('JAMBR2')
+            WRITE(IFCH,*)'*****  ETANEW.GT.ETA'
+            WRITE(IFCH,*)'ETANEW ETA: ',ETANEW,ETA
+            CALL UTMSGF
+          ENDIF
+          ETANEW=ETA
+        ENDIF
+        XBREAK(IN)=SQRT(AREA)*EXP(-ETANEW)+XBREAK(IR)
+        YBREAK(IN)=SQRT(AREA)*EXP(ETANEW)+YBREAK(IL)
+C ------ ADJUST BOTH
+      ELSEIF ( IADJP .EQ. 1  .AND.  IADJM .EQ. 1 ) THEN
+        IF ( ISH .GE. 92 ) WRITE(IFCH,*)'ADJUST BOTH'
+        D=(P0P*P0M-TMP2-TMM2)**2-4*TMP2*TMM2
+        IF ( D .LT. 0. ) THEN
+          IF(ISH.GE.90)THEN
+            CALL UTMSG('JAMBR2')
+            WRITE(IFCH,*)'***** NEGATIVE D'
+            WRITE(IFCH,*)'D: ',D
+            CALL UTMSGF
+          ENDIF
+          D=0.
+        ENDIF
+        D=SQRT(D)
+        T=P0P*P0M-TMP2+TMM2
+        P1=(T+D)/(2.*P0M)
+        P2=(T-D)/(2.*P0M)
+        IF ( (P1+P2)*0.5 .GT. PPL ) THEN
+          P=P2
+        ELSE
+          P=P1
+        ENDIF
+        XBREAK(IN)=P0M-TMM2/P+XBREAK(IR)
+        YBREAK(IN)=P+YBREAK(IL)
+      ENDIF
+C  ------
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'X/YBREAK:',XBREAK(IN),YBREAK(IN)
+        WRITE(IFCH,*)' '
+      ENDIF
+
+C  WRITE SG
+C  --------
+      NBREAK=NBREAK+1
+      TAUAVE=TAUAVE+XBREAK(IN)*YBREAK(IN)
+      MM=1
+      IF ( LAST ) MM=2
+      DO 9998 M=1,MM
+        NSG=NSG+1
+        IF ( NSG .GT. MXSG ) THEN
+          CALL UTSTOP('JAMBR2: NSG>MXSG                        ')
+        ENDIF
+        IF ( ISH .GE. 92 ) WRITE(IFCH,*)'NSG LAST:  ',NSG,LAST
+        ISG(NSG)=NPTLC
+        IF ( M .EQ. 2 ) THEN
+          IL=IN
+          IN=IR
+        ENDIF
+        XOR2(1)=0.D0
+        XOR2(2)=0.D0
+        XOR2(3)=(YBREAK(IL)-XBREAK(IN))*0.5D0/TENSN
+        XOR2(4)=(YBREAK(IL)+XBREAK(IN))*0.5D0/TENSN
+        IF ( ISH .GE. 92 ) WRITE(IFCH,119)XOR2
+119     FORMAT(/' ORIGIN: ',13X,4F7.2/)
+        CALL UTROT2(-1,ROTSG(1,NS),ROTSG(2,NS),ROTSG(3,NS)
+     *              ,XOR2(1),XOR2(2),XOR2(3))
+        CALL UTLOB2(-1,PSG(1,NS),PSG(2,NS),PSG(3,NS),PSG(4,NS),PSG(5,NS)
+     *              ,XOR2(1),XOR2(2),XOR2(3),XOR2(4))
+        XOR2(1)=XOR2(1)+XORSG(1,NS)
+        XORSG(1,NSG)=XOR2(1)
+        XOR2(2)=XOR2(2)+XORSG(2,NS)
+        XORSG(2,NSG)=XOR2(2)
+        XOR2(3)=XOR2(3)+XORSG(3,NS)
+        XORSG(3,NSG)=XOR2(3)
+        XOR2(4)=XOR2(4)+XORSG(4,NS)
+        XORSG(4,NSG)=XOR2(4)
+C       IF ( ISH .GE. 92 ) WRITE(IFCH,117)XOR2
+        PP=YBREAK(IN)-YBREAK(IL)
+        PM=XBREAK(IL)-XBREAK(IN)
+        PSG(1,NSG)=PXBRAK(IN)-PXBRAK(IL)
+        PSG(2,NSG)=PYBRAK(IN)-PYBRAK(IL)
+        PSG(3,NSG)=(PP-PM)*0.5D0
+        PSG(4,NSG)=(PP+PM)*0.5D0
+        SS=PSG(4,NSG)**2-PSG(3,NSG)**2-PSG(2,NSG)**2-PSG(1,NSG)**2
+        PSG(5,NSG)=SQRT(SS)
+        IF ( ISH .GE. 92 ) WRITE(IFCH,110)NSG,NS,(PSG(J,NSG),J=1,5)
+110     FORMAT(1X,I5,I4,16X,1P,5E10.2)
+        PW(1)=PSG(1,NSG)
+        PW(2)=PSG(2,NSG)
+        PW(3)=PSG(3,NSG)
+        PW(4)=PSG(4,NSG)
+        CALL UTROT2(-1,ROTSG(1,NS),ROTSG(2,NS),ROTSG(3,NS)
+     *              ,PSG(1,NSG),PSG(2,NSG),PSG(3,NSG))
+        CALL UTLOB2(-1,PSG(1,NS),PSG(2,NS),PSG(3,NS),PSG(4,NS),PSG(5,NS)
+     *              ,PSG(1,NSG),PSG(2,NSG),PSG(3,NSG),PSG(4,NSG))
+        IORSG(NSG)=NS
+        IF ( ISH .GE. 92 ) THEN
+          WRITE(IFCH,102)NSG,IORSG(NSG),(PSG(J,NSG),J=1,5)
+102       FORMAT(1X,I5,I4,16X,1P,5E10.2)
+          WRITE(IFCH,*)' '
+        ENDIF
+
+C  WRITE JT
+C  --------
+        ICJT(1,2*NSG-1)=ICMPBR(1,IN)
+        ICJT(2,2*NSG-1)=ICMPBR(2,IN)
+        DO 41 NF=1,NFLAV
+CDH ########  JCMS IST NICHT GESETZT!!!!
+          JC(NF,1)=JCMS(NF,1)
+          JC(NF,2)=JCMS(NF,2)
+41      CONTINUE
+        ICJT(1,2*NSG)=ICPMBR(1,IL)
+        ICJT(2,2*NSG)=ICPMBR(2,IL)
+        IF ( M .EQ. 2 ) THEN
+          IDX=IADJP
+        ELSE
+          IDX=IADJM
+        ENDIF
+        IF ( IDX .EQ. 0 ) THEN
+          PJT(1,2*NSG-1)=PXBRAK(IN)
+          PJT(2,2*NSG-1)=PYBRAK(IN)
+          PTJR2=PXBRAK(IN)**2+PYBRAK(IN)**2
+          PTJL2=PXBRAK(IL)**2+PYBRAK(IL)**2
+          AA=PM*PP-PTJL2-PTJR2
+          AUXIL=SQRT(AA*AA*0.25-PTJL2*PTJR2)
+          PRM=(AA*0.5+PTJR2-AUXIL)/PP
+          PLP=(AA*0.5+PTJL2-AUXIL)/PM
+          PJT(3,2*NSG-1)=(PP-PLP-PRM)*0.5D0
+          PJT(4,2*NSG-1)=(PP-PLP+PRM)*0.5D0
+          PJT(5,2*NSG-1)=0.D0
+          PJT(1,2*NSG)=-PXBRAK(IL)
+          PJT(2,2*NSG)=-PYBRAK(IL)
+          PJT(3,2*NSG)=(PLP-PM+PRM)*0.5D0
+          PJT(4,2*NSG)=(PLP+PM-PRM)*0.5D0
+          PJT(5,2*NSG)=0.D0
+          IF ( ISH .GE. 92 ) THEN
+            WRITE(IFCH,108)NSG,NS
+     *          ,(ICJT(J,2*NSG-1),J=1,2),(SNGL(PJT(J,2*NSG-1)),J=1,5)
+108         FORMAT(2X,I3,I4,2X,2I7,5(E10.2))
+            WRITE(IFCH,108)NSG,NS
+     *          ,(ICJT(J,2*NSG  ),J=1,2),(SNGL(PJT(J,2*NSG  )),J=1,5)
+          ENDIF
+          ERR=    (PW(1)-PJT(1,2*NSG-1)-PJT(1,2*NSG))**2
+          ERR=ERR+(PW(2)-PJT(2,2*NSG-1)-PJT(2,2*NSG))**2
+          ERR=ERR+(PW(3)-PJT(3,2*NSG-1)-PJT(3,2*NSG))**2
+          ERR=ERR+(PW(4)-PJT(4,2*NSG-1)-PJT(4,2*NSG))**2
+        ENDIF
+        ICPZ(1)=ICJT(1,2*NSG-1)
+        ICPZ(2)=ICJT(2,2*NSG-1)
+        ICMZ(1)=ICJT(1,2*NSG)
+        ICMZ(2)=ICJT(2,2*NSG)
+        CALL IDDECO(ICPZ,JCPZ)
+        CALL IDDECO(ICMZ,JCMZ)
+        DO 57 NF=1,NFLAV
+          JCZ(NF,1)=JCPZ(NF,1)+JCMZ(NF,1)
+          JCZ(NF,2)=JCPZ(NF,2)+JCMZ(NF,2)
+57      CONTINUE
+        CALL IDENCO(JCZ,ICZ,IRETEN)
+        IDZ=IDTRA(ICZ,0,0,3)
+        AMZ=PSG(5,NSG)
+        CALL IDRES(IDZ,AMZ,IDRZ,IADJ)
+        IF ( IDRZ .EQ. 110  .AND.  RANGEN() .LT. 0.5 ) GOTO 9993
+9998  CONTINUE
+
+14    CONTINUE
+      IF ( LAST ) GOTO 10
+      IL=IN
+      IN=IR
+      GOTO 11
+10    CONTINUE
+C
+C  DETERMINE BREAK PNT
+C  -----------------------------------
+      TAUAVE=TAUAVE/NBREAK
+      XBK(1)=0.D0
+      XBK(2)=0.D0
+      AUXIL1=SQRT(TAUAVE*YT/XT)
+      AUXIL2=SQRT(TAUAVE*XT/YT)
+      XBK(3)=(AUXIL1-AUXIL2)*0.5D0/TENSN
+      XBK(4)=(AUXIL1+AUXIL2)*0.5D0/TENSN
+      IF ( ISH .GE. 92 ) WRITE(IFCH,116) XBK
+116   FORMAT(' BREAKING PNT: ',13X,4F7.2)
+      CALL UTROT2(-1,ROTSG(1,NS),ROTSG(2,NS),ROTSG(3,NS)
+     *             ,XBK(1),XBK(2),XBK(3))
+      CALL UTLOB2(-1,PSG(1,NS),PSG(2,NS),PSG(3,NS),PSG(4,NS),PSG(5,NS)
+     *             ,XBK(1),XBK(2),XBK(3),XBK(4))
+      XBK(1)=XBK(1)+XORSG(1,NS)
+      XBK(2)=XBK(2)+XORSG(2,NS)
+      XBK(3)=XBK(3)+XORSG(3,NS)
+      XBK(4)=XBK(4)+XORSG(4,NS)
+      IF ( ISH .GE. 92 ) WRITE(IFCH,117)XBK
+117   FORMAT(28X,4F7.2/)
+C
+      XBKPTL(1,NPTLC-NPTL2)=XBK(3)
+      XBKPTL(2,NPTLC-NPTL2)=XBK(4)
+      ISPTL(NPTLC-NPTL2)=1
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JAMFRA(JS,NEWEVT)
+
+C-----------------------------------------------------------------------
+C  FRAGMENTS STRING JS ACCORDING TO A-M MODEL.
+C  VERSION MAR-92 (CALLS JAMBR1 OR JAMBR2)
+C-----------------------------------------------------------------------
+      PARAMETER (MXPC=500)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXSG=500)
+      PARAMETER (MXJT=2*MXSG)
+      PARAMETER (MXSTR=3000)
+      PARAMETER (NFLAV=6)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CDELRE/  DELRER
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /CJAMBR/  NPTLC,NPTL2
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      DOUBLE PRECISION XBKPTL
+      COMMON /CPC/     XBKPTL(2,MXPC),ISPTL(MXPC)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      DOUBLE PRECISION PJT,PSG,ROTSG,XORSG
+      COMMON /CSG/     PJT(5,MXJT),PSG(5,MXSG),ROTSG(3,MXSG)
+     *                ,XORSG(4,MXSG)
+     *                ,ICJT(2,MXJT),IORSG(MXSG),ISG(MXSG)
+      COMMON /CSTR/    PSTR(5,MXSTR),ROTSTR(3,MXSTR),XORSTR(4,MXSTR)
+     *                ,ICSTR(4,MXSTR),IORSTR(MXSTR),IRLSTR(MXSTR),NSTR
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      DOUBLE PRECISION ARM(4),ARP(4),TOR,ZOR
+      INTEGER          IC(2),ICJ1(2),ICJ2(2)
+     *                ,ICM(2),ICP(2),ICUM(2),ICUP(2)
+     *                ,JC(NFLAV,2) ,JCJ1(NFLAV,2),JCJ2(NFLAV,2)
+     *                ,JCM(NFLAV,2),JCP(NFLAV,2)
+C-----------------------------------------------------------------------
+      DELREC=0.600
+      DELREX=0.050
+      NEWEVT=0
+
+      PSG(1,1)=PSTR(1,JS)
+      PSG(2,1)=PSTR(2,JS)
+      PSG(3,1)=PSTR(3,JS)
+      PSG(4,1)=PSTR(4,JS)
+      PSG(5,1)=PSTR(5,JS)
+      ROTSG(1,1)=ROTSTR(1,JS)
+      ROTSG(2,1)=ROTSTR(2,JS)
+      ROTSG(3,1)=ROTSTR(3,JS)
+      XORSG(1,1)=XORSTR(1,JS)
+      XORSG(2,1)=XORSTR(2,JS)
+      XORSG(3,1)=XORSTR(3,JS)
+      XORSG(4,1)=XORSTR(4,JS)
+      SQRTS=ABS(PSTR(5,JS))
+      S=PSTR(5,JS)**2
+      ISG(1)=IORSTR(JS)
+      IORSG(1)=0
+      PJT(1,1)=0.D0
+      PJT(1,2)=0.D0
+      PJT(2,1)=0.D0
+      PJT(2,2)=0.D0
+      PJT(3,1)=SQRTS*0.5D0
+      PJT(3,2)=-SQRTS*0.5D0
+      PJT(4,1)=SQRTS*0.5D0
+      PJT(4,2)=SQRTS*0.5D0
+      PJT(5,1)=0.D0
+      PJT(5,2)=0.D0
+      IF ( ROTSTR(3,JS) .LT. 0. ) THEN
+        ICJT(1,1)=ICSTR(3,JS)
+        ICJT(2,1)=ICSTR(4,JS)
+        ICJT(1,2)=ICSTR(1,JS)
+        ICJT(2,2)=ICSTR(2,JS)
+      ELSE
+        ICJT(1,1)=ICSTR(1,JS)
+        ICJT(2,1)=ICSTR(2,JS)
+        ICJT(1,2)=ICSTR(3,JS)
+        ICJT(2,2)=ICSTR(4,JS)
+      ENDIF
+      ICJ1(1)=ICJT(1,1)
+      ICJ1(2)=ICJT(2,1)
+      ICJ2(1)=ICJT(1,2)
+      ICJ2(2)=ICJT(2,2)
+      CALL IDDECO(ICJ1,JCJ1)
+      CALL IDDECO(ICJ2,JCJ2)
+      NQJ1=0
+      NQJ2=0
+      DO 4 NF=1,NFLAV
+        NQJ1=NQJ1+JCJ1(NF,1)-JCJ1(NF,2)
+        NQJ2=NQJ2+JCJ2(NF,1)-JCJ2(NF,2)
+4     CONTINUE
+      IF ( NQJ1 .GE. 0 ) THEN
+        IF ( NQJ2 .GE. 0 ) THEN
+          ISI = 0
+        ELSE
+          ISI = 1
+        ENDIF
+      ELSE
+        IF ( NQJ2 .GE. 0 ) THEN
+          ISI = 2
+        ELSE
+          ISI = 3
+        ENDIF
+      ENDIF
+      NQJSTR=ISI*1000000+ABS(NQJ1)*1000+ABS(NQJ2)
+
+C  ENTRY STRING FRAGMENTATION
+C  --------------------------
+      NPTL2=NPTL
+      NCNT2=0
+9996  NCNT2=NCNT2+1
+      NPTL=NPTL2
+      NSG=1
+      IF ( NCNT2 .GT. 1000 ) GOTO 1001
+
+C  ENTRY SUBSTRING PROCESSING
+C  --------------------------
+      NS=0
+9999  NS=NS+1
+      IF ( NS .GT. NSG ) GOTO 9997
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)'ENTRY SUBSTRING PROCESSING'
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,107)NS
+     *        ,(ICJT(J,2*NS-1 ),J=1,2),(SNGL(PJT(J,2*NS-1 )),J=1,5)
+107     FORMAT(2X,I3,3X,3X,2I7,5(E10.2))
+        WRITE(IFCH,107)NS
+     *        ,(ICJT(J,2*NS   ),J=1,2),(SNGL(PJT(J,2*NS   )),J=1,5)
+        WRITE(IFCH,101)NS,(PSG(J,NS),J=1,5)
+101     FORMAT(2X,I3,23X,5(E10.2)/)
+114     FORMAT(' LEFT BREAKING PNT: ',8X,4F7.2/)
+      ENDIF
+
+C  DETERMINE ID AND MIN.MASS
+C  -------------------------
+      DELRER=DELREX+RANGEN()*(DELREM-DELREX)
+      ICP(1)=ICJT(1,2*NS-1)
+      ICP(2)=ICJT(2,2*NS-1)
+      ICM(1)=ICJT(1,2*NS)
+      ICM(2)=ICJT(2,2*NS)
+      CALL IDCOMK(ICP)
+      CALL IDCOMK(ICM)
+      ICJT(1,2*NS-1)=ICP(1)
+      ICJT(2,2*NS-1)=ICP(2)
+      ICJT(1,2*NS)=ICM(1)
+      ICJT(2,2*NS)=ICM(2)
+      CALL IDDECO(ICP,JCP)
+      CALL IDDECO(ICM,JCM)
+      AMMS=UTAMNX(JCM,JCP)
+      NUBAR=0
+      DO 7 NF=1,NFLAV
+        JC(NF,1)=JCP(NF,1)+JCM(NF,1)
+        JC(NF,2)=JCP(NF,2)+JCM(NF,2)
+        IF ( NF .GT. 4  .AND.  (JC(NF,1).NE.0 .OR. JC(NF,2).NE.0) ) THEN
+          CALL UTSTOP('JAMFRA: FLAVOUR > 4                     ')
+        ENDIF
+        NUBAR=NUBAR+JC(NF,1)-JC(NF,2)
+7     CONTINUE
+      IF ( NS .EQ. 1 ) NUMBAR=NUBAR
+      CALL IDENCO(JC,IC,IRETEN)
+      CALL IDCOMK(IC)
+      ID=IDTRA(IC,0,0,3)
+      IDK=ID
+      AM=PSG(5,NS)
+      IREMN=0
+      IF ( ICP(1)+ICP(2) .EQ. 0  .OR.  ICM(1)+ICM(2) .EQ. 0 ) IREMN=1
+      IF ( AM .GT. AMMS+DELRER  .AND.  IREMN .EQ. 0 ) ID=0
+
+C  MASS ADJUSTMENT => FRAGMENT AGAIN
+C  ---------------------------------
+      AMC=PSG(5,NS)
+      CALL IDRES(ID,AMC,IDR,IADJ)
+      IF ( ABS(AMC-PSG(5,NS)) .GT. 1.E-3 ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JAMFRA')
+          WRITE(IFCH,*)'*****  MASS CHANGED. FRAGMENT AGAIN.'
+          WRITE(IFCH,*)'MASS BEFORE, AFTER: ',PSG(5,NS),AMC
+          WRITE(IFCH,*)'IC,ID,IDR: ',IC,ID,IDR
+          CALL UTMSGF
+        ENDIF
+        GOTO 9996
+      ENDIF
+
+C  IF MASS < MIN.MASS ==> AGAIN
+C  ----------------------------
+C-C   IF ( IDR.EQ.0.AND.AM.LT.AMMS-1.E-3 ) THEN
+C-C     IF ( ISH .GE. 90 ) THEN
+C-C       CALL UTMSG('JAMFRA')
+C-C       WRITE(IFCH,*)'*****  MASS < MIN MASS. ',AM,AMMS
+C-C       WRITE(IFCH,*)'IDK,ID,IDR,PSG(5,NS):'
+C-C       WRITE(IFCH,*)IDK,ID,IDR,PSG(5,NS)
+C-C       WRITE(IFCH,*)'P_JET:'
+C-C       WRITE(IFCH,107)NS
+C-C  *       ,(ICJT(J,2*NS-1 ),J=1,2),(SNGL(PJT(J,2*NS-1 )),J=1,5)
+C-C       WRITE(IFCH,107)NS
+C-C  *       ,(ICJT(J,2*NS   ),J=1,2),(SNGL(PJT(J,2*NS   )),J=1,5)
+C-C       WRITE(IFCH,*)'P_STR:'
+C-C       WRITE(IFCH,101)NS,(PSG(J,NS),J=1,5)
+C-C       CALL UTMSGF
+C-C     ENDIF
+C-C     IF ( NS .EQ. 1 ) GOTO 1001
+C-C     GOTO 9996
+C-C   ENDIF
+
+C  WRITE ON /CPTL/ (1)
+C  -------------------
+      IORI=ISG(NS)
+      NPTLB=NPTL
+9995  NPTL=NPTL+1
+      NPTLC=NPTL
+      IF ( NPTL .GT. MXPTL ) THEN
+        CALL UTSTOP('JAMFRA: NPTL>MXPTL                      ')
+      ENDIF
+      IF ( NPTL-NPTL2 .GT. MXPC ) THEN
+        CALL UTSTOP('JAMFRA: NPTL-NPTL2>MXPC                 ')
+      ENDIF
+
+      PPTL(1,NPTL)=PSG(1,NS)
+      PPTL(2,NPTL)=PSG(2,NS)
+      PPTL(3,NPTL)=PSG(3,NS)
+      PPTL(4,NPTL)=PSG(4,NS)
+      PPTL(5,NPTL)=PSG(5,NS)
+      XORPTL(1,NPTL)=XORSG(1,NS)
+      XORPTL(2,NPTL)=XORSG(2,NS)
+      XORPTL(3,NPTL)=XORSG(3,NS)
+      XORPTL(4,NPTL)=XORSG(4,NS)
+      XBKPTL(1,NPTL-NPTL2)=AINFIN
+      XBKPTL(2,NPTL-NPTL2)=AINFIN
+      TIVPTL(1,NPTL)=-AINFIN
+      TIVPTL(2,NPTL)=AINFIN
+      IFRPTL(1,NPTL)=0
+      IFRPTL(2,NPTL)=0
+      ICLPTL(NPTL)=0
+      ISPTL(NPTL-NPTL2)=0
+      IORPTL(NPTL)=IORI
+      JORPTL(NPTL)=0
+      IF     ( NPTL .GT. NPTL2+1 ) THEN
+        NQJPTL(NPTL)=-NQJSTR
+      ELSEIF ( NPTL .EQ. NPTL2+1 ) THEN
+        NQJPTL(NPTL)= NQJSTR
+      ENDIF
+      IDPTL(NPTL)=IDR
+      IF ( IDR .EQ. 0 ) THEN
+        IF ( IC(1) .EQ. 0  .AND.  IC(2) .EQ. 0 ) THEN
+          IDPTL(NPTL)=700000000
+          CALL IDTRBI(JC,IBPTL(1,NPTL),IBPTL(2,NPTL)
+     *                ,IBPTL(3,NPTL),IBPTL(4,NPTL))
+        ELSE
+          IB5=JC(5,1)*10000+JC(5,2)
+          IB6=JC(6,1)*10000+JC(6,2)
+          IF ( IB5 .NE. 0  .OR.  IB6 .NE. 0 ) THEN
+            WRITE(IFCH,*)' '
+            WRITE(IFCH,*)'***** ERROR IN JAMFRA: BOTTOM OR TOP QUARKS'
+            WRITE(IFCH,*)'JC:'
+            WRITE(IFCH,*)JC
+            CALL UTSTOP('JAMFRA: BOTTOM OR TOP QUARKS            ')
+          ENDIF
+          IDPTL(NPTL)=800000000+IC(1)*100+IC(2)/100
+        ENDIF
+      ENDIF
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,115)NPTL,IORPTL(NPTL),IDPTL(NPTL)
+     *                 ,(PPTL(J,NPTL),J=1,5)
+115     FORMAT(1X,'/CPTL/',I6,I7,I10,5(E10.2))
+        IF ( IDPTL(NPTL) .EQ. 700000000 )
+     *                               WRITE(IFCH,*)(IBPTL(I,NPTL),I=1,4)
+        IF ( ISH .GE. 92 ) WRITE(IFCH,*)' '
+      ENDIF
+      IF ( IDR .NE. 0 ) GOTO 9999
+
+      NQP=0
+      NQM=0
+      NAP=0
+      NAM=0
+      DO 23 NF=1,NFLAV
+        NQP=NQP+JCP(NF,1)
+        NQM=NQM+JCM(NF,1)
+        NAP=NAP+JCP(NF,2)
+        NAM=NAM+JCM(NF,2)
+23    CONTINUE
+      NP=NQP-NAP
+      NM=NQM-NAM
+      JP=NQP+NAP
+      JM=NQM+NAM
+
+C  QUARK-CLUSTER
+C  -------------
+      IF ( ICP(1)+ICP(2) .EQ. 0  .OR.  ICM(1)+ICM(2) .EQ. 0 ) GOTO 78
+      IF ( AM .GT. AMMS+DELRER ) GOTO 77
+      IF ( IDK .EQ. 0  .AND.  AM .GT. AMMS+DELREC ) GOTO 77
+      IF ( IDK .NE. 0  .AND.  AM .GT. AMMS+DELREX ) GOTO 77
+78    CONTINUE
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)'QUARK-CLUSTER'
+        WRITE(IFCH,*)' '
+      ENDIF
+      IF ( ICP(1)+ICP(2) .EQ. 0  .AND. ICM(1)+ICM(2) .EQ. 0 ) THEN
+        CALL UTSTOP('JAMFRA: ZERO STRING.                    ')
+      ENDIF
+      GOTO 9999
+77    CONTINUE
+
+C  JET TRAFOS
+C  ----------
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)'JET TRAFOS'
+        WRITE(IFCH,*)' '
+      ENDIF
+      ARP(1)=PJT(1,2*NS-1)
+      ARP(2)=PJT(2,2*NS-1)
+      ARP(3)=PJT(3,2*NS-1)
+      ARP(4)=PJT(4,2*NS-1)
+      ARM(1)=PJT(1,2*NS)
+      ARM(2)=PJT(2,2*NS)
+      ARM(3)=PJT(3,2*NS)
+      ARM(4)=PJT(4,2*NS)
+      IF ( ISH .GE. 90 ) CALL UTCHM(ARP,ARM,1)
+      NSO=IORSG(NS)
+      IF ( NSO .GT. 0 ) THEN
+        CALL UTROT2(-1,ROTSG(1,NSO),ROTSG(2,NSO),ROTSG(3,NSO)
+     *             ,ARP(1),ARP(2),ARP(3))
+        CALL UTLOB2(-1,PSG(1,NSO),PSG(2,NSO),PSG(3,NSO),PSG(4,NSO)
+     *              ,PSG(5,NSO),ARP(1),ARP(2),ARP(3),ARP(4))
+        CALL UTROT2(-1,ROTSG(1,NSO),ROTSG(2,NSO),ROTSG(3,NSO)
+     *               ,ARM(1),ARM(2),ARM(3))
+        CALL UTLOB2(-1,PSG(1,NSO),PSG(2,NSO),PSG(3,NSO),PSG(4,NSO)
+     *               ,PSG(5,NSO),ARM(1),ARM(2),ARM(3),ARM(4))
+        IF ( ISH .GE. 90 ) CALL UTCHM(ARP,ARM,2)
+        CALL UTLOB2(1,PSG(1,NS),PSG(2,NS),PSG(3,NS),PSG(4,NS),PSG(5,NS)
+     *              ,ARP(1),ARP(2),ARP(3),ARP(4))
+        CALL UTLOB2(1,PSG(1,NS),PSG(2,NS),PSG(3,NS),PSG(4,NS),PSG(5,NS)
+     *               ,ARM(1),ARM(2),ARM(3),ARM(4))
+        IF ( ISH .GE. 90 ) CALL UTCHM(ARP,ARM,3)
+        ROTSG(1,NS)=(ARP(1)-ARM(1))*0.5D0
+        ROTSG(2,NS)=(ARP(2)-ARM(2))*0.5D0
+        ROTSG(3,NS)=(ARP(3)-ARM(3))*0.5D0
+        CALL UTROT2(1,ROTSG(1,NS),ROTSG(2,NS),ROTSG(3,NS)
+     *              ,ARP(1),ARP(2),ARP(3))
+        CALL UTROT2(1,ROTSG(1,NS),ROTSG(2,NS),ROTSG(3,NS)
+     *              ,ARM(1),ARM(2),ARM(3))
+      ENDIF
+      ICUP(1)=ICJT(1,2*NS-1)
+      ICUP(2)=ICJT(2,2*NS-1)
+      ICUM(1)=ICJT(1,2*NS)
+      ICUM(2)=ICJT(2,2*NS)
+      IF ( ARP(3) .LT. 0.D0 ) THEN
+        ICJT(1,2*NS-1)=ICUM(1)
+        ICJT(2,2*NS-1)=ICUM(2)
+        PJT(1,2*NS-1)=ARM(1)
+        PJT(2,2*NS-1)=ARM(2)
+        PJT(3,2*NS-1)=ARM(3)
+        PJT(4,2*NS-1)=ARM(4)
+        ICJT(1,2*NS)=ICUP(1)
+        ICJT(2,2*NS)=ICUP(2)
+        PJT(1,2*NS)=ARP(1)
+        PJT(2,2*NS)=ARP(2)
+        PJT(3,2*NS)=ARP(3)
+        PJT(4,2*NS)=ARP(4)
+      ELSE
+        ICJT(1,2*NS-1)=ICUP(1)
+        ICJT(2,2*NS-1)=ICUP(2)
+        PJT(1,2*NS-1)=ARP(1)
+        PJT(2,2*NS-1)=ARP(2)
+        PJT(3,2*NS-1)=ARP(3)
+        PJT(4,2*NS-1)=ARP(4)
+        ICJT(1,2*NS)=ICUM(1)
+        ICJT(2,2*NS)=ICUM(2)
+        PJT(1,2*NS)=ARM(1)
+        PJT(2,2*NS)=ARM(2)
+        PJT(3,2*NS)=ARM(3)
+        PJT(4,2*NS)=ARM(4)
+      ENDIF
+      S=PSG(5,NS)**2
+      IF ( ISH .GE. 90 ) THEN
+
+        AUXIL=100.*ABS( SNGL(PJT(3,2*NS-1)-PJT(3,2*NS))-ABS(PSG(5,NS)) )
+        IF ( AUXIL .GT. 1.  .AND.  AUXIL .GT. ABS(PSG(5,NS)) ) THEN
+          CALL UTMSG('JAMFRA')
+          WRITE(IFCH,*)'*****  PZ1-PZ2-SQRT(S) NONZERO'
+          WRITE(IFCH,*)'VALUE:   '
+     *                 ,SNGL(PJT(3,2*NS-1)-PJT(3,2*NS))-SQRT(S)
+          WRITE(IFCH,*)'SQRT(S): ',SQRT(S)
+          WRITE(IFCH,*)(SNGL(PJT(I,2*NS-1)),I=1,4)
+          WRITE(IFCH,*)(SNGL(PJT(I,2*NS)),I=1,4)
+          CALL UTMSGF
+        ENDIF
+        IF ( ISH .GE. 92 ) THEN
+          WRITE(IFCH,103)NS,NSO
+     *      ,(ICJT(J,2*NS-1 ),J=1,2),(SNGL(PJT(J,2*NS-1 )),J=1,5)
+103       FORMAT(2X,I3,I3,3X,2I7,5(E10.2))
+          WRITE(IFCH,104)
+     *       (ICJT(J,2*NS   ),J=1,2),(SNGL(PJT(J,2*NS   )),J=1,5)
+104       FORMAT(2X,9X,2I7,5(E10.2)/)
+        ENDIF
+      ENDIF
+
+      IF     ( IOPBRK .EQ. 1 ) THEN
+        CALL JAMBR1(NS,NSG,IRET)
+      ELSEIF ( IOPBRK .EQ. 2 ) THEN
+        CALL JAMBR2(NS,NSG,IRET)
+      ENDIF
+      IF ( IRET .EQ. 9996 ) GOTO 9996
+      GOTO 9999
+
+C  WRITE ON /CPTL/ (2)
+C  -------------------
+9997  CONTINUE
+      IF ( NPTL .LE. NPTL2 ) THEN
+        CALL UTSTOP('JAMFRA: NPTL<=NPTL2                     ')
+      ENDIF
+      IF ( ISH .GE. 91 ) WRITE(IFCH,*)' '
+      DO 67 I=NPTL2+1,NPTL
+        ISTPTL(I)=ISPTL(I-NPTL2)
+        IO=IORPTL(I)
+        IF ( IO .GT. 0 ) THEN
+          IF ( IFRPTL(1,IO) .EQ. 0 ) IFRPTL(1,IO)=I
+          IFRPTL(2,IO)=I
+        ELSE
+          IORPTL(I)=0
+        ENDIF
+        ZOR=XORSG(3,1)
+        TOR=XORSG(4,1)
+        R=RANGEN()
+        TAURAN=-TAUREA*LOG(R)
+        CALL UTTAIX(I,TAURAN,ZOR,TOR,ZIS,TIS)
+        TIVPTL(1,I)=MAX(TIS,XORPTL(4,I))
+        IF     ( ISTPTL(I) .NE. 0 ) THEN
+          TAUBR=SQRT
+     *          ((XBKPTL(2,I-NPTL2)-TOR)**2-(XBKPTL(1,I-NPTL2)-ZOR)**2)
+          CALL UTTAIX(I,TAUBR,ZOR,TOR,ZIS,TIS)
+          TIVPTL(2,I)=TIS
+        ELSEIF ( IO .GT. 0 ) THEN
+          TAUBR=SQRT
+     *         ((XBKPTL(2,IO-NPTL2)-TOR)**2-(XBKPTL(1,IO-NPTL2)-ZOR)**2)
+          CALL UTTAIX(I,TAUBR,XORSG(3,1),XORSG(4,1),ZISBR,TISBR)
+          CALL IDTAU(IDPTL(I),PPTL(4,I),PPTL(5,I),TAUGM)
+          TIVPTL(2,I)=TISBR+TAUGM
+        ELSE
+          CALL IDTAU(IDPTL(I),PPTL(4,I),PPTL(5,I),TAUGM)
+          TIVPTL(2,I)=XORPTL(4,I)+TAUGM
+        ENDIF
+        IF ( ISH .GE. 92 ) WRITE(IFCH,120)I,IORPTL(I),IDPTL(I)
+     *               ,(SNGL(XBKPTL(J,I-NPTL2)),J=1,2)
+     *               ,(XORPTL(J,I),J=3,4),(TIVPTL(J,I),J=1,2)
+120     FORMAT(1X,'/CPTL/',I6,I7,I10
+     *         ,E10.2,E10.2,E10.2,E10.2,E10.2,E10.2)
+67    CONTINUE
+
+1000  RETURN
+
+1001  NEWEVT=1
+      GOTO 1000
+
+      END
+C=======================================================================
+
+      SUBROUTINE JCENTD
+
+C----------------------------------------------------------------------
+      PARAMETER (KPARX=15)
+      PARAMETER (NQUAX=12)
+      COMMON /CENTRO/  ENTRO(1+KPARX,1+NQUAX)
+      REAL ENTROX(1+KPARX,1+NQUAX)
+
+      DATA (ENTROX( 1,1+N),N=0,12)/
+     *.00000E+00,.00000E+00,.00000E+00,.00000E+00,.00000E+00,.00000E+00,
+     *.00000E+00,.00000E+00,.00000E+00,.00000E+00,.00000E+00,.00000E+00,
+     *.00000E+00/
+      DATA (ENTROX( 4,1+N),N=0,12)/
+     *.40254E+01,.59349E+01,.74855E+01,.87464E+01,.98267E+01,.10770E+02,
+     *.11611E+02,.12368E+02,.13058E+02,.13691E+02,.14277E+02,.14822E+02,
+     *.15332E+02/
+      DATA (ENTROX( 7,1+N),N=0,12)/
+     *.61944E+01,.89306E+01,.11114E+02,.12969E+02,.14595E+02,.16054E+02,
+     *.17380E+02,.18599E+02,.19728E+02,.20780E+02,.21767E+02,.22696E+02,
+     *.23574E+02/
+      DATA (ENTROX(10,1+N),N=0,12)/
+     *.68876E+01,.10183E+02,.12855E+02,.15159E+02,.17201E+02,.19046E+02,
+     *.20734E+02,.22296E+02,.23751E+02,.25115E+02,.26400E+02,.27616E+02,
+     *.28771E+02/
+      DATA (ENTROX(13,1+N),N=0,12)/
+     *.61944E+01,.99602E+01,.13068E+02,.15784E+02,.18208E+02,.20406E+02,
+     *.22425E+02,.24295E+02,.26041E+02,.27681E+02,.29228E+02,.30696E+02,
+     *.32092E+02/
+      DATA (ENTROX(16,1+N),N=0,12)/
+     *.40254E+01,.82375E+01,.11781E+02,.14923E+02,.17745E+02,.20311E+02,
+     *.22669E+02,.24853E+02,.26890E+02,.28803E+02,.30609E+02,.32320E+02,
+     *.33948E+02/
+C----------------------------------------------------------------------
+      KPH=KPARX
+      NQH=NQUAX
+      DO 2 N=1,1+NQUAX
+        DO 1 K=1,1+KPARX
+          ENTRO(K,N)=ENTROX(K,N)
+1       CONTINUE
+2     CONTINUE
+
+      IF ( KPH .NE. 15 ) THEN
+        CALL UTSTOP('ICENTD: INSUFFICIENT INITIALIZATION;   K')
+      ENDIF
+      IF ( NQH .NE. 12 ) THEN
+        CALL UTSTOP('ICENTD: INSUFFICIENT INITIALIZATION;   N')
+      ENDIF
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JCENTP
+
+C----------------------------------------------------------------------
+C  PLOTS ENTRO(,) AND FTN SJCENT
+C----------------------------------------------------------------------
+      PARAMETER (KPARX=15)
+      PARAMETER (NQUAX=12)
+      COMMON /CENTRO/  ENTRO(1+KPARX,1+NQUAX)
+      COMMON /CJCENT/  IGX,NSYMX
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      REAL      XPLOT(101),YPLOT(101)
+      INTEGER   IPLOT(5)
+      CHARACTER TEXT*50
+      DATA      IPLOT/0,0,0,1,1/
+C----------------------------------------------------------------------
+      ISH0=ISH
+      IF ( ISHSUB/100 .EQ. 13 ) ISH=MOD(ISHSUB,100)
+      IF ( ISH .LT. 95 ) GOTO 1000
+
+      IF ( IPLOT(1) .EQ. 1 ) THEN
+        TEXT='TITLE IG=     NSYM=     K= 3,6,9,12,15$       '
+        WRITE(TEXT(10:11),122)IGX
+        WRITE(TEXT(20:21),122)NSYMX
+122     FORMAT(I2)
+        DO 54 KX=1,5
+          K=3*KX
+          DO 55 N=1,13
+            XPLOT(N)=N-1
+            YPLOT(N)=ENTRO(1+K,N)
+55        CONTINUE
+          CALL UTHIST(0.,12.,0.,40.,1+12,XPLOT,YPLOT,'LIN','LINLIN'
+     *      ,'XAXIS ENERGY / OMEGA            $                 '
+     *      ,'YAXIS ENTROPY                   $                 ',TEXT)
+54      CONTINUE
+      ENDIF
+
+      IF ( IPLOT(2) .EQ. 1 ) THEN
+        TEXT='TITLE IG=     NSYM=     K= 3,6,9,12,15$       '
+        WRITE(TEXT(10:11),122)IGX
+        WRITE(TEXT(20:21),122)NSYMX
+        DO 64 KX=1,5
+          K=3*KX
+          DO 65 N=1,13
+            XPLOT(N)=(N-1.)/FLOAT(K)
+            YPLOT(N)=ENTRO(1+K,N)/K
+65        CONTINUE
+          CALL UTHIST(0.,5.,0.,6.,1+12,XPLOT,YPLOT,'LIN','LINLIN'
+     *      ,'XAXIS ENERGY / OMEGA / PARTICLE $                 '
+     *      ,'YAXIS ENTROPY / PARTICLE        $                 ',TEXT)
+64      CONTINUE
+      ENDIF
+
+      IF ( IPLOT(3) .EQ. 1 ) THEN
+        DO 62 KX=1,10
+          K=3*KX
+          DO 63 N=0,100
+            X=N*0.05
+            XPLOT(1+N)=X
+            YPLOT(1+N)=SJCENT(K,K,K*X)/K
+63        CONTINUE
+          CALL UTHIST(0.,5.,0.,6.,101,XPLOT,YPLOT,'LIN','LINLIN'
+     *        ,'XAXIS ENERGY / OMEGA / PARTICLE $                 '
+     *        ,'YAXIS ENTROPY / PARTICLE        $                 '
+     *        ,'TITLE INTER(EXTRA)POLATED       $                 ')
+62      CONTINUE
+      ENDIF
+
+      IF ( IPLOT(4) .EQ. 1 ) THEN
+        DO 58 KX=1,10
+          K=3*KX
+          DO 59 N=0,100
+            X=N*0.5
+            XPLOT(1+N)=X
+            YPLOT(1+N)=SJCENT(K,K,X)
+59        CONTINUE
+          CALL UTHIST(0.,50.,0.,80.,101,XPLOT,YPLOT,'LIN','LINLIN'
+     *      ,'XAXIS ENERGY / OMEGA            $                 '
+     *      ,'YAXIS ENTROPY                   $                 '
+     *      ,'TITLE INTER(EXTRA)POLATED  KU=K $                 ')
+58      CONTINUE
+      ENDIF
+
+      IF ( IPLOT(5) .EQ. 1 ) THEN
+        DO 48 KX=1,10
+          K=3*KX
+          DO 49 N=0,100
+            X=N*0.5
+            XPLOT(1+N)=X
+            YPLOT(1+N)=SJCENT(K,0,X)
+49        CONTINUE
+          CALL UTHIST(0.,50.,0.,80.,101,XPLOT,YPLOT,'LIN','LINLIN'
+     *      ,'XAXIS ENERGY / OMEGA            $                 '
+     *      ,'YAXIS ENTROPY                   $                 '
+     *      ,'TITLE INTER(EXTRA)POLATED  KU=0 $                 ')
+48      CONTINUE
+      ENDIF
+
+1000  CONTINUE
+      ISH=ISH0
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JCENTR(NSYM,IG,IDI,INIT)
+
+C----------------------------------------------------------------------
+C  FILLS ARRAY DEGEN(1+K,1+N) CONTAINING
+C    THE NUMBER OF MIXED SYMMETRIC (BOX OF WIDTH NSYM)
+C    K-PARTICLE STATES WITH ENERGY N (UNITS OF OMEGA), BASED ON
+C    OSCILLATOR (DIM: IDI) WAVEFUNCTIONS (ADDIT. DEGENERACY: IG) .
+C  FILLS ARRAY ENTRO(1+K,1+N) = LOG( DEGEN(1+K,1+N) )  .
+C  ENTRO(,) WRITTEN IN FORM OF DATA FOR JCENTD IF ISH=95
+C    (ISHSUB=12.. SELECTS THIS).
+C  INIT MUST BE SET 1 FOR THE FIRST CALL OF JCENTR
+C    (INIT=1 CALLS UTTUCL, UTPART, UTOVEL)
+C----------------------------------------------------------------------
+      PARAMETER (IOVMAX=100)
+      PARAMETER (ITAMAX=1000)
+      PARAMETER (JOVMAX=100)
+      PARAMETER (KPARX=15)
+      PARAMETER (KTUMAX=100)
+      PARAMETER (NQUAX=12)
+      PARAMETER (JPAMAX=NQUAX*NQUAX*NQUAX)
+      PARAMETER (KKPMAX=NQUAX*NQUAX*2)
+      PARAMETER (NSYMAX=20)
+      PARAMETER (NTUMAX=100)
+      PARAMETER (NYMAX=1000)
+      COMMON /CDEGEN/  DEGEN(1+KPARX,1+NQUAX)
+      COMMON /CENTRO/  ENTRO(1+KPARX,1+NQUAX)
+      COMMON /CJCENT/  IGX,NSYMX
+      COMMON /COVEL/   OVEL(1+IOVMAX,1+JOVMAX)
+      COMMON /CPARTA/  PARTA(NQUAX),IPART(NQUAX,JPAMAX)
+      DOUBLE PRECISION TUCL
+      COMMON /CTUCL/   TUCL(1+KTUMAX,1+NTUMAX)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      REAL      YOFA(ITAMAX)
+      INTEGER   IYO(NYMAX,KPARX),IYOL(ITAMAX),IYOM(ITAMAX),IYOO(ITAMAX)
+     *         ,IYOR(NSYMAX),IYOX(KPARX),IYOZ(ITAMAX,NSYMAX,2)
+     *         ,JYO(NYMAX),KKK(KPARX)
+      CHARACTER CIGA*7
+      CHARACTER*1 CYOX(1+NQUAX,KPARX),DELI(1+KPARX,1+NQUAX)
+C----------------------------------------------------------------------
+      IF ( INIT .EQ. 1 ) THEN
+        CALL UTTUCL
+        CALL UTPART
+        CALL UTOVEL
+      ENDIF
+
+      WRITE(IFMT,*)'EXECUTE SR JCENTR ...'
+      IF ( NSYM .GE. NSYMAX ) THEN
+        CALL UTSTOP('JCENTR: DIMENSION NSYMAX TOO SMALL      ')
+      ENDIF
+      IF ( MOD(KPARX,NSYM) .NE. 0 ) THEN
+        CALL UTSTOP('JCENTR: KPARX SHOULD BE MULTIPLE OF NSYM')
+      ENDIF
+      MMAX=1+(KPARX-1)/NSYM
+      IZERO=0
+      NSYMX=NSYM
+      IGX=IG
+
+C  LOOP OVER ENERGY
+C  ----------------
+      DO 6000 N=0,NQUAX
+        WRITE(IFMT,*)'SR JCENTR: N=',N
+        IF ( N .EQ. 0 ) THEN
+          KKP=1
+        ELSE
+          KKP=-IPART(N,1)
+          IF ( KKP .GT. KKPMAX ) THEN
+            CALL UTSTOP('JCENTR: DIMENSION KKPMAX TOO SMALL      ')
+          ENDIF
+          IF ( -IPART(N,1) .NE. NINT(PARTA(N)) ) THEN
+            CALL UTSTOP('JCENTR: # OF PARTITIONS DISAGREE        ')
+          ENDIF
+        ENDIF
+        IF ( ISH .GE. 93 ) THEN
+          WRITE(IFCH,103)('-',IC=1,79),N,KKP,('-',IC=1,79)
+103       FORMAT(/1X,79A1/7X,'N = ',I2,
+     *                       '   --->   ',I4,' PARTITION(S)'/1X,79A1/)
+          JJ=2
+          DO 8 KK=1,KKP
+            IF     ( N .EQ. 0 ) THEN
+              WRITE(IFCH,102)KK,IZERO
+            ELSEIF ( N .GT. 0 ) THEN
+              LL=-IPART(N,JJ)
+              WRITE(IFCH,102)KK,(IPART(N,I),I=JJ+1,JJ+MIN(20,LL))
+102           FORMAT(2X,I2,'. PARTITION:',3X,20I3)
+            ENDIF
+            JJ=JJ+LL+1
+ 8        CONTINUE
+        ENDIF
+
+C  ZERO PARTICLES
+C  --------------
+        DEGEN(1,1+N)=1.
+        ENTRO(1,1+N)=0.
+        IF ( N .EQ. NQUAX ) THEN
+          DELI(1,1+N)='/'
+        ELSE
+          DELI(1,1+N)=','
+        ENDIF
+
+C  LOOP OVER PARTICLE NUMBER
+C  -------------------------
+        DO 6001 KX=1,KPARX/3
+          K=3*KX
+          IF ( K .GT. KPARX ) THEN
+            CALL UTSTOP('JCENTR: DIMENSION KPARX TOO SMALL       ')
+          ENDIF
+          DEGEN(1+K,1+N)=0.
+          IF ( N .EQ. NQUAX ) THEN
+            DELI(1+K,1+N)='/'
+          ELSE
+            DELI(1+K,1+N)=','
+          ENDIF
+          KKK(K)=KKP
+          MMAXK=1+(K-1)/NSYM
+          IF ( K .LT. KPARX ) THEN
+            DO 5 L=K+1,KPARX
+              DO 5 NY=1,NYMAX
+                IYO(NY,L)=-1
+ 5          CONTINUE
+          ENDIF
+          IF ( ISH.GE.93 ) WRITE(IFCH,100)('-',IC=1,11),K,('-',IC=1,11)
+100       FORMAT(/1X,11A1/3X,'K = ',I2/1X,11A1/)
+
+C  LOOP OVER PARTITIONS
+C  --------------------
+          JJ=2
+          DO 6002 KK=1,KKP
+            IF     ( N .GT. 0 ) THEN
+              LL=-IPART(N,JJ)
+            ELSEIF ( N .EQ. 0 ) THEN
+              LL=1
+            ENDIF
+            IF ( LL .GT. K ) THEN
+              KKK(K)=KK-1
+              GOTO 6003
+            ENDIF
+            IF ( ISH .GE. 93 ) THEN
+              IF     ( N .EQ. 0 ) THEN
+                WRITE(IFCH,102)KK,IZERO
+              ELSEIF ( N .GT. 0 ) THEN
+                WRITE(IFCH,102)KK,(IPART(N,I),I=JJ+1,JJ+MIN(20,LL))
+              ENDIF
+              WRITE(IFCH,*)' '
+            ENDIF
+
+C  CONSTRUCT YOUNG TABLEAUS
+C  ------------------------
+            NY1=1
+            NY2=1
+            JYO(NY1)=1
+            DO 46 L=1,K
+              IYO(NY1,L)=0
+46          CONTINUE
+            IF ( N .GT. 0 ) THEN
+              IYO(NY1,K)=IPART(N,JJ+1)
+              NY1=NY1-1
+45            NY1=NY1+1
+              IF ( JYO(NY1) .EQ. LL ) GOTO 51
+              DO 43 LX=1,NSYM
+                L=NSYM+1-LX
+                DO 44 MX=1,MMAXK
+                  M=MMAXK+1-MX
+                  IF ( IYO(NY1,(M-1)*NSYM+L) .EQ. 0 ) THEN
+                    IF ( L.EQ.NSYM .OR. (L.NE.NSYM.AND.
+     *                           IYO(NY1,(M-1)*NSYM+L+1).NE.0) ) THEN
+                      NY2=NY2+1
+                      IF ( NY2 .GT. NYMAX ) THEN
+                        CALL UTSTOP
+     *                    ('JCENTR: DIMENSION NYMAX TOO SMALL       ')
+                      ENDIF
+                      JY=JYO(NY1)+1
+                      JYO(NY2)=JY
+                      DO 50 LP=1,K
+                        IYO(NY2,LP)=IYO(NY1,LP)
+50                    CONTINUE
+                      IYO(NY2,(M-1)*NSYM+L)=IPART(N,JJ+JY)
+                      IF ( NY2 .GT. 1 ) THEN
+                        DO 47 NY3=1,NY2-1
+                          IF ( JYO(NY3) .NE. JYO(NY2) ) GOTO 47
+                          DO 48 LP=1,K
+                            IF ( IYO(NY3,LP) .NE. IYO(NY2,LP) ) GOTO 47
+48                        CONTINUE
+                          NY2=NY2-1
+                          GOTO 49
+47                      CONTINUE
+49                      CONTINUE
+                      ENDIF
+                    ENDIF
+                    GOTO 43
+                  ENDIF
+44              CONTINUE
+43            CONTINUE
+              GOTO 45
+51            CONTINUE
+            ENDIF
+
+C  LOOP OVER YOUNG TABLEAUS
+C  ------------------------
+            DO 6005 NY=NY1,NY2
+
+              IF ( ISH .GE. 93  .AND.  NSYM .EQ. 3 ) THEN
+                WRITE(IFCH,117)NY-NY1+1,((IYO(NY,(M-1)*NSYM+I),
+     *                                               I=1,NSYM),M=1,1)
+117             FORMAT(2X,I2,'. TABLEAU:',5X,3I2)
+                IF ( MMAXK .GT. 1 ) WRITE(IFCH,110)
+     *               ((IYO(NY,(M-1)*NSYM+I),I=1,NSYM),M=2,MMAXK)
+110             FORMAT(19X,3I2)
+                WRITE(IFCH,*)' '
+              ENDIF
+
+C  SELECT NN-SUBTABLEAUS
+C  ---------------------
+              DITAB=1
+              DO 6004 NN=0,N
+                IGA=IG*NINT(EXP(TUCL(1+IDI,1+NN)))
+
+                DO 15 L=1,KPARX
+                  IYOX(L)=-1
+15              CONTINUE
+                DO 11 M=1,MMAXK
+                  MEMP=M-1
+                  MS=(M-1)*NSYM
+                  DO 11 I=1,NSYM
+                    IF ( IYO(NY,MS+I) .EQ. NN ) GOTO 12
+11              CONTINUE
+12              CONTINUE
+                MMAXKS=MMAXK-MEMP
+                DO 13 L=MS+1,K
+                  IF ( IYO(NY,L) .EQ. NN ) IYOX(L-MS)=IYO(NY,L)
+13              CONTINUE
+                IF ( NSYM .GT. 1 ) THEN
+                  DO 17 I=1,NSYM-1
+                    DO 16 M=1,MMAXK
+                      MS=(M-1)*NSYM
+                      IF ( IYOX(MS+1) .NE. -1 ) GOTO 18
+16                  CONTINUE
+                    DO 19 M=1,MMAXK
+                      MS=(M-1)*NSYM
+                      DO 20 L=1,NSYM-1
+                        IYOX(MS+L)=IYOX(MS+L+1)
+20                    CONTINUE
+                      IYOX(MS+NSYM)=-1
+19                  CONTINUE
+17                CONTINUE
+18                CONTINUE
+                ENDIF
+                DO 38 L=1,KPARX
+                  CYOX(1+NN,L)=' '
+                  IF ( IYOX(L) .GE. 0 ) CYOX(1+NN,L)='X'
+38              CONTINUE
+
+C  SKIP FOR EMPTY TABLEAUS
+C  -----------------------
+                DO 21 L=1,K
+                  IF ( IYOX(L) .NE. -1 ) GOTO 22
+21              CONTINUE
+                GOTO 6004
+22              CONTINUE
+
+C  PRINT
+C  -----
+                IF ( ISH .GE. 93  .AND.  NSYM .EQ .3 ) THEN
+                  IF ( IGA.GE.  1.AND.IGA.LT.  10 ) WRITE(CIGA,107)IGA
+107               FORMAT('GL(',I1,')  ')
+                  IF ( IGA.GT. 10.AND.IGA.LT. 100 ) WRITE(CIGA,108)IGA
+108               FORMAT('GL(',I2,') ')
+                  IF ( IGA.GT.100.AND.IGA.LT.1000 ) WRITE(CIGA,109)IGA
+109               FORMAT('GL(',I3,')')
+                  WRITE(IFCH,116)NN,((CYOX(1+NN,(M-1)*NSYM+I)
+     *                                        ,I=1,NSYM),M=1,1),CIGA
+116               FORMAT(2X,I2,'-SUBTABLEAU:',3X,3(1X,A1),3X,A7)
+                  IF ( MMAXKS .GT. 1 ) THEN
+                    DO 39 M=2,MMAXKS
+                      WRITE(IFCH,106)(CYOX(1+NN,(M-1)*NSYM+I),I=1,NSYM)
+106                   FORMAT(19X,3(1X,A1))
+39                  CONTINUE
+                  ENDIF
+                  IF ( ISH .GE. 94 ) WRITE(IFCH,*)' '
+                ENDIF
+
+C  REDUCTIONS OF TABLEAUS 1+IYOX()
+C  -------------------------------
+                DISUTA=0.
+                N1=1
+                N3=1
+                N300=1
+                DO 24 I=1,NSYM
+                  MA=0
+                  ME=0
+                  DO 25 M=1,MMAXK
+                    IF ( 1+IYOX((M-1)*NSYM+I) .LE. 0 ) GOTO 25
+                    IF ( MA .EQ. 0 ) MA=M
+                    ME=M
+25                CONTINUE
+                  IYOZ(N1,I,1)=MA
+                  IYOZ(N1,I,2)=ME
+24              CONTINUE
+                IYOL(N1)=0
+                YOFA(N1)=1.
+                IYOO(N1)=0
+                IYOM(N1)=1
+                N1=N1-1
+5000            N1=N1+1
+                N30=N3
+                IF ( N1.GT.1 .AND. IYOL(N1).GT.IYOL(N1-1) ) N300=N3
+                N2=N1
+                DO 26 I=1,NSYM
+                  IYOR(I)=MAX(0,IYOZ(N1,I,2)-1)
+26              CONTINUE
+                LEV=IYOL(N1)
+                FAC=YOFA(N1)
+                IF ( IGA-1.LE.IOVMAX .AND. LEV.LE.JOVMAX
+     *                                    .AND. LEV.LE.IGA-1 ) THEN
+                  FACX=EXP(OVEL(IGA,1+LEV))
+                  IF ( ABS(FACX-FAC) .GT. 1.E-5*FAC ) THEN
+                    WRITE(IFCH,*)' '
+                    WRITE(IFCH,*)'N=',N,'    K=',K,'    KK=',KK
+     *                                                ,'    NY=',NY
+                    WRITE(IFCH,*)'FACX=',FACX,'     FAC=',FAC
+                    CALL UTSTOP
+     *                     ('JCENTR: BINOMIALS DIFFER                ')
+                  ENDIF
+                ENDIF
+                IF ( LEV .GT. IGA-1 ) GOTO 5003
+                IHEIM=0
+                DO 32 I=1,NSYM
+                  IHEI=IYOZ(N1,I,2)-IYOZ(N1,I,1)
+                  IF ( IHEI .GT. IHEIM ) IHEIM=IHEI
+32              CONTINUE
+                IF ( IHEIM .EQ. 0 ) DISUTA=DISUTA+FAC*IYOM(N1)
+                IF ( ISH.GE.94 .AND. NSYM.EQ.3 ) THEN
+                  WRITE(IFCH,112)N1,(IYOZ(N1,I,1),I=1,NSYM),IYOO(N1)
+     *                ,LEV,FAC,IYOM(N1),IHEIM,DISUTA
+     *                ,(IYOZ(N1,I,2),I=1,NSYM)
+112               FORMAT(3X,I3,2X,3I2,2X,'ORI:',I3,3X
+     *                ,'LEV:',I2,3X,'FAC:',F8.1
+     *                ,3X,'MUL:',I2,3X,'HEI:',I2,3X,'SUM:',F8.1/8X,3I2/)
+                ENDIF
+                N2=N2-1
+5001            N2=N2+1
+                DO 27 I=1,NSYM
+                  IF ( IYOZ(N2,I,2)-1 .LT. IYOR(I) ) GOTO 27
+                  IF ( I.LT.NSYM  .AND.
+     *                         IYOZ(N2,I,2)-1.LT.IYOZ(N2,I+1,2) ) GOTO27
+                  N3=N3+1
+                  IF ( N3 .GT. ITAMAX ) THEN
+                    CALL UTSTOP
+     *                      ('JCENTR: DIMENSION ITAMAX TOO SMALL      ')
+                  ENDIF
+                  IYOL(N3)=IYOL(N1)+1
+                  YOFA(N3)=( YOFA(N1)*(IGA-IYOL(N3)) )/IYOL(N3)
+                  IYOO(N3)=N1
+                  IYOM(N3)=IYOM(N1)
+                  DO 28 J=1,NSYM
+                    IYOZ(N3,J,1)=IYOZ(N2,J,1)
+                    IYOZ(N3,J,2)=IYOZ(N2,J,2)
+28                CONTINUE
+                  IYOZ(N3,I,2)=IYOZ(N3,I,2)-1
+                  IF ( IYOZ(N3,I,2) .LT. IYOZ(N3,I,1) ) THEN
+                    IYOZ(N3,I,1)=0
+                    IYOZ(N3,I,2)=0
+                  ENDIF
+                  IF ( N30+1 .LT. N3 ) THEN
+                    DO 30 NCH=N30+1,N3-1
+                      DO 31 IJ=1,NSYM
+                        IF ( IYOZ(NCH,IJ,1).NE.IYOZ(N3,IJ,1) .OR.
+     *                      IYOZ(NCH,IJ,2).NE.IYOZ(N3,IJ,2) ) GOTO 30
+31                    CONTINUE
+                      N3=N3-1
+                      GOTO 27
+30                  CONTINUE
+                  ENDIF
+                  IF ( ISH .GE. 95  .AND.  NSYM .EQ. 3 ) THEN
+                    WRITE(IFCH,113)N1,(IYOZ(N1,IJ,1),IJ=1,NSYM),N2
+     *           ,(IYOZ(N2,IJ,1),IJ=1,NSYM),N3,(IYOZ(N3,IJ,1),IJ=1,NSYM)
+     *           ,(IYOZ(N1,IJ,2),IJ=1,NSYM)
+     *           ,(IYOZ(N2,IJ,2),IJ=1,NSYM),(IYOZ(N3,IJ,2),IJ=1,NSYM)
+113                 FORMAT(3X,'N1: ',I2,3X,3I2,4X,'N2: ',I2,3X,3I2,4X
+     *                 ,'N3: ',I2,3X,3I2/12X,3I2,13X,3I2,13X,3I2/)
+                  ENDIF
+27              CONTINUE
+                IF ( N2 .EQ. N1 ) N2=N30
+                IF ( N2 .LT. N3 ) GOTO 5001
+                IF ( N30 .LT. N3  .AND.  N300 .LT. N30 ) THEN
+                  N3S=N3
+                  N3M=N3
+                  N3=N30
+                  DO 33 NCH3=N30+1,N3S
+                    N3=N3+1
+                    DO 34 NCH=N300+1,N30
+                      DO 35 IJ=1,NSYM
+                        IF ( IYOZ(NCH,IJ,1).NE.IYOZ(N3,IJ,1) .OR.
+     *                       IYOZ(NCH,IJ,2).NE.IYOZ(N3,IJ,2) ) GOTO 34
+35                    CONTINUE
+                      IYOM(NCH)=IYOM(NCH)+IYOM(N3)
+                      N3=N3-1
+                      N3M=N3M-1
+                      IF ( N3+1 .LE. N3M ) THEN
+                        DO 36 NM=N3+1,N3M
+                          IYOL(NM)=IYOL(NM+1)
+                          YOFA(NM)=YOFA(NM+1)
+                          IYOO(NM)=IYOO(NM+1)
+                          IYOM(NM)=IYOM(NM+1)
+                          DO 37 J=1,NSYM
+                            IYOZ(NM,J,1)=IYOZ(NM+1,J,1)
+                            IYOZ(NM,J,2)=IYOZ(NM+1,J,2)
+37                        CONTINUE
+36                      CONTINUE
+                      ENDIF
+                      GOTO 33
+34                  CONTINUE
+33                CONTINUE
+                ENDIF
+                IF ( N1 .LT. N3 ) GOTO 5000
+5003            CONTINUE
+
+                DIALT=-99999.
+                IF ( IYOZ(1,1,1) .EQ. 1 ) THEN
+                  DIALT=1.
+                  DO 40 I=1,NSYM
+                    IF     ( IYOZ(1,I,1) .GT. 1 ) THEN
+                      CALL UTSTOP
+     *                     ('JCENTR: IYOZ(,,1).GT.1                  ')
+                    ELSEIF ( IYOZ(1,I,1) .EQ. 0 ) THEN
+                      GOTO 40
+                    ENDIF
+                    DO 41 M=1,IYOZ(1,I,2)
+                      HAK=IYOZ(1,I,2)-M+1
+                      IF ( I .LT. NSYM ) THEN
+                        DO 42 J=I+1,NSYM
+                          IF ( IYOZ(1,J,2) .GE. M ) HAK=HAK+1
+42                      CONTINUE
+                      ENDIF
+                      DIALT=DIALT*(IGA+I-M)/HAK
+41                  CONTINUE
+40                CONTINUE
+                ENDIF
+
+                IF ( DIALT.NE.-99999.  .AND.
+     *                   ABS(DIALT-DISUTA).GT.1.E-5*DIALT ) THEN
+                  WRITE(IFCH,*)' '
+                  WRITE(IFCH,*)'N=',N,'    K=',K,'    KK=',KK
+     *                                                   ,'    NY=',NY
+                  WRITE(IFCH,*)'DISUTA=',DISUTA,'     DIALT=',DIALT
+                  CALL UTSTOP
+     *                   ('JCENTR: DIMENSIONS DIFFER               ')
+                ENDIF
+
+                IF ( ISH .GE. 93 ) WRITE(IFCH,118)DISUTA
+118             FORMAT(28X,'SUBTAB.-DIMENSION:',F8.1/)
+
+                DITAB=DITAB*DISUTA
+
+6004          CONTINUE
+
+              IF ( ISH .GE. 93 ) WRITE(IFCH,119)DITAB
+119           FORMAT(35X,'TABLEAU-DIMENSION:',F11.1/)
+
+              DEGEN(1+K,1+N)=DEGEN(1+K,1+N)+DITAB
+
+6005        CONTINUE
+
+            JJ=JJ+LL+1
+6002      CONTINUE
+6003      CONTINUE
+          IF ( KKK(K) .EQ. 0 ) THEN
+            CALL UTSTOP('JCENTR: NO ALLOWED PARTITION            ')
+          ENDIF
+          ENTRO(1+K,1+N)=-9999999.
+          IF ( DEGEN(1+K,1+N) .GT. 0. )
+     *                         ENTRO(1+K,1+N)=LOG(DEGEN(1+K,1+N))
+          IF ( ISH .GE. 93 ) WRITE(IFCH,120)DEGEN(1+K,1+N)
+120       FORMAT(49X,'DEGENERACY:',F11.1/)
+
+6001    CONTINUE
+6000  CONTINUE
+
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,121)('-',IC=1,79)
+121     FORMAT(1X,79A1)
+        WRITE(IFCH,*)'   DEGENERACY(K,N)         IG=',IG,'          '
+     *                ,'NSYM=',NSYM
+        WRITE(IFCH,121)('-',IC=1,79)
+        WRITE(IFCH,*)'   K:','   3','   6','   9','   12'
+        WRITE(IFCH,121)('-',IC=1,79)
+        DO 52 N=0,NQUAX
+          WRITE(IFCH,*)N,(DEGEN(1+3*K,1+N),K=1,4)
+52      CONTINUE
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,121)('-',IC=1,79)
+        WRITE(IFCH,*)'   ENTROPY(K,N)            IG=',IG,'          '
+     *                ,'NSYM=',NSYM
+        WRITE(IFCH,121)('-',IC=1,79)
+        WRITE(IFCH,*)'   K:','   3','   6','   9','   12'
+        WRITE(IFCH,121)('-',IC=1,79)
+        DO 53 N=0,NQUAX
+          WRITE(IFCH,*)N,(ENTRO(1+3*K,1+N),K=1,4)
+53      CONTINUE
+      ENDIF
+
+      ISH0=ISH
+      IF ( ISHSUB/100 .EQ. 12 ) ISH=MOD(ISHSUB,100)
+      IF ( ISH .GE. 95 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,121)('-',IC=1,79)
+        WRITE(IFCH,*)'   ENTROPY(K,N)            IG=',IG
+     *                ,'          NSYM=',NSYM
+        WRITE(IFCH,121)('-',IC=1,79)
+        WRITE(IFCH,125)KPARX
+125     FORMAT(6X,'IF(KPARX.NE.',I2,')'/5X,
+     *      56H*CALL UTSTOP('JCENTD: INSUFFICIENT INITIALIZATION;   K'))
+        WRITE(IFCH,126)NQUAX
+126     FORMAT(6X,'IF(NQUAX.NE.',I2,')'/5X,
+     *      56H*CALL UTSTOP('JCENTD: INSUFFICIENT INITIALIZATION;   N'))
+        DO 58 KX=0,KPARX/3
+          K=3*KX
+          WRITE(IFCH,123)K+1,NQUAX
+123       FORMAT(6X,'DATA (ENTRO(',I2,',1+N),N=0,',I2,')/')
+          WRITE(IFCH,124)(ENTRO(1+K,1+N),DELI(1+K,1+N), N=0,NQUAX)
+124       FORMAT(10(5X,'*',6(E10.5,A1)/))
+58      CONTINUE
+      ENDIF
+      ISH=ISH0
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JCLUDE(IP,IRET)
+
+C-----------------------------------------------------------------------
+C  DECAYS CLUSTER IP FROM /CPTL/ .
+C  REQIRES JCENTR OR JCENTD TO BE CALLED BEFORE.
+C-----------------------------------------------------------------------
+      PARAMETER (IOMAX=54)
+      PARAMETER (IOMAXM=25)
+      PARAMETER (MOXMAX=30)
+      PARAMETER (MOMAX=MOXMAX*IOMAX)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (NFLAV=6)
+      COMMON /CENTEX/  ENTEXP
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CSCAL/   SCAL
+      COMMON /CSJCGA/  AMEGAM,AMNULL,ASUHA(7),ENTRPY,NOPHA,NSUHA(7)
+      COMMON /CTIMEL/  NTC
+      COMMON /CUTINV/  LUTINV
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      DOUBLE PRECISION PA(5),PE(5),PPT(5)
+      REAL             OO(1+MOMAX),PA0(5),POL(IOMAX)
+     *                ,QO(1+MOMAX),U(3),XO(1+MOMAX),YO(1+MOMAX)
+      INTEGER          ICA(2),IDOL(IOMAX),IDOLIS(IOMAX),IFOLIS(IOMAX)
+     *                ,JCA(NFLAV,2),JCA0(NFLAV,2),JCE(NFLAV,2)
+     *                ,JCO(NFLAV,2),KO(1+MOMAX)
+      DATA IDOLIS/
+     *             110,  120,-120,  220, 130, -130, 230, -230, 330
+     *           ,1120,-1120,1220,-1220,1130,-1130,1230,-1230,2130,-2130
+     *           ,2230,-2230,1330,-1330,2330,-2330
+     *           ,1111,-1111,2221,-2221,3331,-3331
+     *            ,111,  121,-121,  221, 131, -131, 231, -231, 331
+     *           ,1121,-1121,1221,-1221,1131,-1131,1231,-1231
+     *           ,2231,-2231,1331,-1331,2331,-2331/
+      DATA IFOLIS/9*1,16*2,6*4,9*3,14*4/
+C-----------------------------------------------------------------------
+      ISH0=ISH
+      IF ( ISHSUB/100 .EQ. 1 ) ISH=MOD(ISHSUB,100)
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)('-',L=1,79)
+        WRITE(IFCH,*)'   CLUSTER DECAY OF',IP,IDPTL(IP),PPTL(5,IP)
+        WRITE(IFCH,*)('-',L=1,79)
+        WRITE(IFCH,*)' '
+      ENDIF
+      DELPOX=.01
+      NPTLB=NPTL
+      LOOP=0
+      IRET=0
+      IPOXRA=0
+      ISTPFL=0
+      EBAMIN=1.5
+      LOOPMX=20
+      NOPHAX=20
+
+C  ORIGINAL CLUSTER --> PA,JCA
+C  ---------------------------
+
+6010  CONTINUE
+      PA(1)=PPTL(1,IP)
+      PA(2)=PPTL(2,IP)
+      PA(3)=PPTL(3,IP)
+      PA(4)=PPTL(4,IP)
+      PA(5)=PPTL(5,IP)
+      CALL IDQUAC(IP,NDU,NDU,NDU,JCA)
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)'INITIAL JCA:'
+        WRITE(IFCH,*)JCA
+      ENDIF
+      CALL IDCOMJ(JCA)
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)'INITIAL JCA AFTER COMPACTIFICATION:'
+        WRITE(IFCH,*)JCA
+      ENDIF
+
+      PA0(1)=PA(1)
+      PA0(2)=PA(2)
+      PA0(3)=PA(3)
+      PA0(4)=PA(4)
+      PA0(5)=PA(5)
+      NQN=0
+      DO 2 NF=1,NFLAV
+        NQN=NQN+JCA(NF,1)-JCA(NF,2)
+        JCA0(NF,1)=JCA(NF,1)
+        JCA0(NF,2)=JCA(NF,2)
+ 2    CONTINUE
+      NBA=ABS(NQN)/3
+      IF ( NBA .GT. 0 ) THEN
+        EBA=PA(5)/NBA
+      ELSE
+        EBA=AINFIN
+      ENDIF
+      ISH00=ISH
+
+C  INITIALIZATION FOR REDO
+C  -----------------------
+
+6001  LOOP=LOOP+1
+      IF ( ISH00 .EQ. 90 ) THEN
+        IF ( LOOP .EQ. LOOPMX ) THEN
+          ISH=92
+          WRITE(IFCH,117)('-',L=1,75),LOOP,ISH
+117       FORMAT(//1X,75A1/1X,I2,'. ATTEMPT TO DECAY THIS CLUSTER!'
+     *          /1X,'ISH SET TO: ',I2)
+        ENDIF
+      ENDIF
+      IF ( LOOP .GT. LOOPMX ) THEN
+        ISH=ISH00
+        GOTO 1001
+      ENDIF
+      NOPHA=0
+      ISMALL=0
+      NPTL=NPTLB
+      PA(1)=PA0(1)
+      PA(2)=PA0(2)
+      PA(3)=PA0(3)
+      PA(4)=PA0(4)
+      PA(5)=PA0(5)
+      DO 3 NF=1,NFLAV
+        JCA(NF,1)=JCA0(NF,1)
+        JCA(NF,2)=JCA0(NF,2)
+ 3    CONTINUE
+
+C  LOOP OVER SEQUENTIAL DECAYS
+C  ---------------------------
+
+6002  NPTL=NPTL+1
+      IF ( NPTL .GT. MXPTL ) THEN
+        CALL UTSTOP('JCLUDE: NPTL>MXPTL                      ')
+      ENDIF
+      ISJCA=0
+      DO 210 NF=1,NFLAV
+        ISJCA=ISJCA+ABS(JCA(NF,1))+ABS(JCA(NF,2))
+210   CONTINUE
+      IF ( ISJCA .EQ. 0 ) THEN
+        JCA(1,1)=1
+        JCA(1,2)=1
+      ENDIF
+      CALL IDCOMJ(JCA)
+      CALL IDENCO(JCA,ICA,IRETEN)
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,100)(PA(K),K=1,5)
+100     FORMAT(1X,'PA:',20X,5(E10.3,1X))
+        WRITE(IFCH,116)JCA
+116     FORMAT(1X,'JCA: ',6I5/6X,6I5)
+      ENDIF
+
+      KAU=JCA(1,1)-JCA(1,2)
+      KAD=JCA(2,1)-JCA(2,2)
+      KAS=JCA(3,1)-JCA(3,2)
+      KAC=JCA(4,1)-JCA(4,2)
+      AMICL=UTAMNU(KAU,KAD,KAS,KAC,5)
+
+      IF ( NOPHA.EQ.NOPHAX .OR. NOPHA.GT.1.AND.PA(5).GT.2.*AMICL ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JCLUDE')
+          IF     ( ISMALL .EQ. 0 ) THEN
+            WRITE(IFCH,*)'*****  NO PHASE SPACE --> REDO DECAY'
+          ELSEIF ( ISMALL .EQ. 1 ) THEN
+            WRITE(IFCH,*)'*****  SMALL PHASE SP --> REDO DECAY'
+          ELSE
+            WRITE(IFCH,*)'***** SMALL/NO PHASE SPACE --> REDO DECAY'
+            WRITE(IFCH,*)'ISMALL=',ISMALL
+          ENDIF
+          WRITE(IFCH,*)'NT=',NTC,'   LOOP=',LOOP,'   NOPHA=',NOPHA
+          IF ( ISMALL .EQ. 1 )
+     *            WRITE(IFCH,*)'YO_HIT=',YOHIT,'   YO_MAX=',YOMAX
+          WRITE(IFCH,*)'M_MIN=',AMICL,'   M=',PA(5)
+          WRITE(IFCH,100)(PA(K),K=1,5)
+          WRITE(IFCH,116)JCA
+          CALL UTMSGF
+        ENDIF
+        GOTO 6001
+      ENDIF
+
+      IF ( NOPHA .GT. 1 ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JCLUDE')
+          IF     ( ISMALL .EQ. 0 ) THEN
+            WRITE(IFCH,*)'*****  NO PHASE SPACE --> INCRS MASS'
+          ELSEIF ( ISMALL .EQ. 1 ) THEN
+            WRITE(IFCH,*)'*****  SMALL PHASE SP --> INCRS MASS'
+          ELSE
+            WRITE(IFCH,*)'***** SMALL/NO PHASE SPACE --> INCRS MASS'
+            WRITE(IFCH,*)'ISMALL=',ISMALL
+          ENDIF
+          WRITE(IFCH,*)'NT=',NTC,'   LOOP=',LOOP,'   NOPHA=',NOPHA
+          IF ( ISMALL .EQ. 1 )
+     *             WRITE(IFCH,*)'YO_HIT=',YOHIT,'   YO_MAX=',YOMAX
+          WRITE(IFCH,*)'M_MIN=',AMICL,'   M=',PA(5)
+          WRITE(IFCH,100)(PA(K),K=1,5)
+          WRITE(IFCH,116)JCA
+        ENDIF
+        PA(5)=PA(5)*1.05
+        PA(4)=SQRT(PA(1)**2+PA(2)**2+PA(3)**2+PA(5)**2)
+        IF ( ISH .GE. 90 ) THEN
+          WRITE(IFCH,100)(PA(K),K=1,5)
+          CALL UTMSGF
+        ENDIF
+      ENDIF
+
+      IDAR=0
+      IF ( NOPHA .EQ. 0 ) THEN
+        ICH=0
+        IF ( IRETEN .EQ. 0 ) THEN
+          IDA=IDTRA(ICA,0,0,3)
+        ELSE
+          IDA=0
+        ENDIF
+        AMA=PA(5)
+        CALL IDRES(IDA,AMA,IDAR,IADJ)
+        IF ( IDAR .NE. 0  .AND.  EBA .LT. EBAMIN ) THEN
+          AMA=0.
+          CALL IDRES(IDA,AMA,IDAR,IADJ)
+          IF ( MOD(IDAR,10) .NE. 0  .AND. LOOP .LT. LOOPMX/2 ) GOTO 6001
+        ENDIF
+        IF ( IDAR .NE. IDPTL(IP) ) ICH=1
+      ENDIF
+
+      IF ( IDAR .NE. 0 ) THEN
+        IF ( NPTL .GT. NPTLB+1  .OR.  ICH .EQ. 1 ) THEN
+          IDPTL(NPTL)=IDAR
+          PA(5)=AMA
+          PA(4)=SQRT(AMA**2+PA(1)**2+PA(2)**2+PA(3)**2)
+          PPTL(1,NPTL)=PA(1)
+          PPTL(2,NPTL)=PA(2)
+          PPTL(3,NPTL)=PA(3)
+          PPTL(4,NPTL)=PA(4)
+          PPTL(5,NPTL)=PA(5)
+          IF ( ISH .GE. 92 )
+     *            WRITE(IFCH,101)NPTL,IDPTL(NPTL),(PPTL(K,NPTL),K=1,5)
+101       FORMAT(1X,'/CPTL/',I6,I11,2X,5(E10.3,1X))
+        ELSE
+          NPTL=NPTL-1
+        ENDIF
+        GOTO 7001
+      ENDIF
+
+      AMA=PA(5)
+
+C  LOOP OVER HADRONS
+C  -----------------
+
+      MO=1
+      PO=0.
+      XO(1)=0.
+      QO(1)=0.
+      YO(1)=0.
+      OO(1)=0.
+      KO(1)=0
+      IOM=0
+      QOL=0.
+      IF ( ISH .GE. 92 ) WRITE(IFCH,106)
+106   FORMAT(' PARTIAL DECAY WIDTHS:')
+
+      DO 6003 IO=1,IOMAX
+        IF ( EBA .LT. EBAMIN  .AND.  IO .GT. IOMAXM ) GOTO 6003
+
+        IDO=IDOLIS(IO)
+        IOM=IOM+1
+        POL(IOM)=PO
+        IDOL(IOM)=IDO
+        CALL IDMASS(IDO,AMO)
+        IDPTL(NPTL)=IDO
+        CALL IDQUAC(NPTL,NDU,NDU,NDU,JCO)
+        DO 22 NF=1,NFLAV
+          JCE(NF,1)=JCA(NF,1)-JCO(NF,1)
+          JCE(NF,2)=JCA(NF,2)-JCO(NF,2)
+          IF ( JCE(NF,1) .LT. 0 ) THEN
+            JCE(NF,2)=JCE(NF,2)-JCE(NF,1)
+            JCE(NF,1)=0
+          ENDIF
+          IF ( JCE(NF,2) .LT. 0 ) THEN
+            JCE(NF,1)=JCE(NF,1)-JCE(NF,2)
+            JCE(NF,2)=0
+          ENDIF
+22      CONTINUE
+        DO 13 I=5,NFLAV
+          IF ( JCE(I,1).NE.0 .OR. JCE(I,2).NE.0 .OR. ISTPFL.GT.0 ) THEN
+            IF ( ISTPFL .EQ. 2 ) THEN
+              CALL UTSTOP('JCLUDE: MORE THAN 4 FLAVOURS            ')
+            ENDIF
+            ISTPFL=ISTPFL+1
+            ISH=93
+            IF ( ISTPFL .EQ. 2 ) GOTO 6010
+            GOTO 6001
+          ENDIF
+13      CONTINUE
+        KEU=JCE(1,1)-JCE(1,2)
+        KED=JCE(2,1)-JCE(2,2)
+        KES=JCE(3,1)-JCE(3,2)
+        KEC=JCE(4,1)-JCE(4,2)
+
+C  LOOP OVER HADRON MOMENTA
+C  ------------------------
+
+        IF ( MO+MOXMAX .GT. 1+MOMAX ) THEN
+          CALL UTSTOP('JCLUDE: DIMENSION MOMAX TOO SMALL       ')
+        ENDIF
+        POX=0.
+        MOM=MO
+        POM=PO
+        QOM=QO(MO)
+        GAMXM=0.
+        POXM=0.
+        GAMY=0.
+        DELPO=DELPOX
+        YOINT=0.
+
+        DO 6004 MOX=1,MOXMAX
+
+          MO=MO+1
+          DELPO=DELPO*1.2
+          POX=POX+DELPO
+          PO=PO+DELPO
+          XO(MO)=PO
+          IF ( MOX .GT. 1 ) THEN
+            KO(MO)=0
+          ELSE
+            KO(MO)=IDO
+          ENDIF
+          GAMX=SJCGAM(KEU,KED,KES,KEC,AMA,AMO,POX,MOX)
+          YO(MO)=IFOLIS(IO)*DELPO*GAMX
+          OO(MO)=ENTEXP
+          YOINT=YOINT+IFOLIS(IO)*DELPO*(GAMX+GAMY)*0.5
+          IF ( GAMX .EQ. 0. ) THEN
+            I6005=1
+          ELSE
+            IF ( GAMX .LT. 1.E-2*GAMXM  .AND.  GAMXM .GT. 0.
+     *        .AND.  MOX .GT. 1 ) THEN
+              I6005=1
+            ELSE
+              I6005=0
+            ENDIF
+          ENDIF
+          IF ( ISH.GE.93 .AND. (I6005.EQ.0 .OR. MOX.GT.1) ) THEN
+            IF ( MOX .EQ. 1 )
+     *         WRITE(IFCH,109)KEU,KED,KES,NSUHA,AMA,ASUHA,AMNULL,IDO,AMO
+109         FORMAT(/' U_D_S:',3I3,'  N:',7I5,11X,'  A:',F10.2
+     *             /18X,'M:',7F5.2,'  M0:',F6.2,'  O:',I5,F5.2
+     *             /'   MO     XO   POX      EO AMA-EO     ENTRPY     '
+     *             ,'  GAMX         YO         OO ')
+            WRITE(IFCH,105)MO,XO(MO),POX,SQRT(POX**2+AMO**2)
+     *                    ,AMA-SQRT(POX**2+AMO**2),ENTRPY,GAMX
+     *                    ,YO(MO),OO(MO)
+105         FORMAT(1X,I5,1X,F6.2,F6.2,2X,F6.2,F6.2
+     *             ,E12.3,E11.3,E11.3,E11.3)
+          ENDIF
+          IF ( I6005 .EQ. 1 ) GOTO 6005
+          IF ( GAMX .GT. GAMXM ) THEN
+            GAMXM=GAMX
+            POXM=POX
+          ENDIF
+          GAMY=GAMX
+
+6004    CONTINUE
+
+        IF ( ISH .GE. 90  .AND.  IPOXRA .EQ. 0 ) THEN
+          IPOXRA=1
+          CALL UTMSG('JCLUDE')
+          WRITE(IFCH,*)'*****  POX-RANGE TOO SMALL'
+          WRITE(IFCH,100)(PA(K),K=1,5)
+          WRITE(IFCH,*)'JCA:'
+          WRITE(IFCH,*)JCA
+          WRITE(IFCH,*)'POX= ',POX, '   GAMX= ',GAMX
+          WRITE(IFCH,*)'POXM=',POXM,'   GAMXM=',GAMXM
+          CALL UTMSGF
+        ENDIF
+
+6005    CONTINUE
+
+        IF ( YOINT .EQ. 0. ) THEN
+          IF ( ISH .GE. 94 ) THEN
+            WRITE(IFCH,*)' '
+            WRITE(IFCH,*)'NO PHASE SPACE FOR',IDO
+          ENDIF
+          MO=MOM
+          PO=POM
+          IOM=IOM-1
+        ELSE
+          IF ( ISH .GE. 92 ) WRITE(IFCH,107)IDO,POXM,YOINT,OO(MO)
+107       FORMAT(' IDO,POXM,YOINT,OO:',I6,3X,F5.2,E12.3,E12.3)
+        ENDIF
+
+6003  CONTINUE
+      IF ( ISH .GE. 92 ) WRITE(IFCH,*)' '
+
+C  NO PHASE SPACE
+C  --------------
+      IF ( IOM .EQ. 0 ) THEN
+        IF ( ISH .GE. 92 ) WRITE(IFCH,*)'NO PHASE SPACE'
+        NPTL=NPTL-1
+        NOPHA=NOPHA+1
+        GOTO 6002
+      ENDIF
+
+C  DETERMINE QO(M)
+C  ---------------
+      OOMAX=0.
+      DO 211 M=1,MO
+        IF ( OO(M) .GT. OOMAX ) OOMAX=OO(M)
+  211 CONTINUE
+      OOX=OOMAX-10.
+      DO 212 M=1,MO
+        IF ( OO(M) .LT. OOX ) THEN
+          YO(M)=0.
+        ELSE
+          YO(M)=YO(M)*EXP(OO(M)-OOX)
+        ENDIF
+  212 CONTINUE
+      QO(1)=0.
+      DO 213 M=2,MO
+        IF ( KO(M) .NE. 0 ) YOM=0.
+        QO(M)=QO(M-1)+(YOM+YO(M))*0.5
+        YOM=YO(M)
+  213 CONTINUE
+      YOMAX=0.
+      DO 214 M=1,MO
+        IF ( YO(M) .GT. YOMAX ) YOMAX=YO(M)
+  214 CONTINUE
+
+      IF ( ISH .GE. 93 ) THEN
+        IDO=0
+        XOX=0.
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'ACCUMULATED DECAY PROBABILITIES:'
+        WRITE(IFCH,*)' '
+        DO 215 M=1,MO
+          IF ( KO(M) .NE. 0 ) THEN
+            WRITE(IFCH,*)' '
+            IDO=KO(M)
+          ENDIF
+          WRITE(IFCH,110)M,IDO,XO(M)-XOX,QO(M)
+110       FORMAT(1X,'M,IDO,XO,QO: ',I6,I6,3X,F6.2,E12.3)
+          IF ( M .LT. MO  .AND.  KO(M+1) .NE. 0 ) XOX=XO(M)
+  215   CONTINUE
+      ENDIF
+
+C  SELECT RANDOMLY HADRON+MOMENTUM
+C  -------------------------------
+
+      LO=0
+24    LO=LO+1
+      IF ( LO .GT. 10 ) THEN
+        IF ( ISH.GE.92 ) WRITE(IFCH,*)'SMALL PHASE SPACE:',YOHIT,YOMAX
+        NPTL=NPTL-1
+        NOPHA=NOPHA+1
+        ISMALL=1
+        GOTO 6002
+      ENDIF
+
+      XOS=UTINVT(MO,XO,QO,RANGEN()*QO(MO))
+      MHIT=LUTINV
+      DO 28 I=2,IOM
+        IX=I-1
+        IF ( XOS .LT. POL(I) ) GOTO 29
+28    CONTINUE
+      IX=IOM
+29    CONTINUE
+      POS=XOS-POL(IX)
+      IDS=IDOL(IX)
+      CALL IDMASS(IDS,AMS)
+      IDPTL(NPTL)=IDS
+
+      CALL IDQUAC(NPTL,NDU,NDU,NDU,JCO)
+      DO 26 NF=1,NFLAV
+        JCE(NF,1)=JCA(NF,1)-JCO(NF,1)
+        JCE(NF,2)=JCA(NF,2)-JCO(NF,2)
+        IF ( JCE(NF,1) .LT. 0 ) THEN
+          JCE(NF,2)=JCE(NF,2)-JCE(NF,1)
+          JCE(NF,1)=0
+        ENDIF
+        IF ( JCE(NF,2) .LT. 0 ) THEN
+          JCE(NF,1)=JCE(NF,1)-JCE(NF,2)
+          JCE(NF,2)=0
+        ENDIF
+26    CONTINUE
+      DO 27 I=5,NFLAV
+        IF ( JCE(I,1) .NE. 0  .OR. JCE(I,2) .NE. 0 ) THEN
+          CALL UTSTOP('JCLUDE: FLAVOUR > 4                     ')
+        ENDIF
+27    CONTINUE
+
+      KEU=JCE(1,1)-JCE(1,2)
+      KED=JCE(2,1)-JCE(2,2)
+      KES=JCE(3,1)-JCE(3,2)
+      KEC=JCE(4,1)-JCE(4,2)
+      GAMXHT=SJCGAM(KEU,KED,KES,KEC,AMA,AMS,POS,1)
+      YOHIT=GAMXHT*(XO(MHIT+1)-XO(MHIT))*4.
+      IF ( YOHIT .LT. 1.E-5  .AND.  YOHIT .LT. 1.E-5*YOMAX ) GOTO 24
+
+      PPTL(5,NPTL)=AMS
+      U(3)=2.*RANGEN()-1.
+      PHI=2.*PI*RANGEN()
+      U(1)=SQRT(1.-U(3)**2)*COS(PHI)
+      U(2)=SQRT(1.-U(3)**2)*SIN(PHI)
+      PPT(1)=POS*U(1)
+      PPTL(1,NPTL)=PPT(1)
+      PPT(2)=POS*U(2)
+      PPTL(2,NPTL)=PPT(2)
+      PPT(3)=POS*U(3)
+      PPTL(3,NPTL)=PPT(3)
+      PPT(4)=SQRT(PPTL(5,NPTL)**2+POS**2)
+      PPTL(4,NPTL)=PPT(4)
+      IF ( ISH .GE. 93 )
+     *    WRITE(IFCH,101)NPTL,IDPTL(NPTL),(PPTL(K,NPTL),K=1,5)
+      CALL UTLOB2(-1,PA(1),PA(2),PA(3),PA(4),PA(5)
+     *        ,PPT(1),PPT(2),PPT(3),PPT(4))
+      PPTL(1,NPTL)=PPT(1)
+      PPTL(2,NPTL)=PPT(2)
+      PPTL(3,NPTL)=PPT(3)
+      PPTL(4,NPTL)=PPT(4)
+      IF ( ISH .GE. 92 )
+     *        WRITE(IFCH,101)NPTL,IDPTL(NPTL),(PPTL(K,NPTL),K=1,5)
+
+      PE(5)=AMEGAM
+      PE(1)=-POS*U(1)
+      PE(2)=-POS*U(2)
+      PE(3)=-POS*U(3)
+      PE(4)=SQRT(PE(5)**2+POS**2)
+      CALL UTLOB2(-1,PA(1),PA(2),PA(3),PA(4),PA(5)
+     *            ,PE(1),PE(2),PE(3),PE(4))
+
+      PA(1)=PE(1)
+      PA(2)=PE(2)
+      PA(3)=PE(3)
+      PA(4)=PE(4)
+      PA(5)=PE(5)
+      DO 23 NF=1,NFLAV
+        JCA(NF,1)=JCE(NF,1)
+        JCA(NF,2)=JCE(NF,2)
+23    CONTINUE
+      NOPHA=0
+
+      GOTO 6002
+
+7001  CONTINUE
+
+C  CHECK ENERGY CONSERVATION
+C  -------------------------
+      IF ( NPTL .LE. NPTLB ) GOTO 1000
+
+      IFAIL=1
+      IF ( NPTL .GT. NPTLB+1 ) THEN
+        ISHRSC=ISH
+        ISH=0
+        CALL JRESCL(NPTLB+1,NPTL,PA0,IFAIL)
+        ISH=ISHRSC
+C-C     IF ( IFAIL.NE.0 .AND. ISH.GE.90 ) THEN
+C-C       CALL UTMSG('JCLUDE')
+C-C       WRITE(IFCH,*)'*****  IFAIL_JRESCL=',IFAIL
+C-C       CALL UTMSGF
+C-C     ENDIF
+      ENDIF
+
+C-C   DO 114 N=NPTLB+1,NPTL
+C-C     P=PPTL(3,N)
+C-C     E=PPTL(4,N)
+C-C     Y=100.
+C-C     DY=3.
+C-C     IF ( E-P.NE.0. .AND. E+P.NE.0. ) Y=.5*LOG((E+P)/(E-P))+DY
+C-C     IDA=ABS(IDPTL(N))
+C-C     IF ( IDA.GT.1000 .AND. MOD(IDA,10).NE.0 .AND. Y.LT.10. ) THEN
+C-C       WRITE(6,*)('-',K=1,69)
+C-C       P=PPTL(3,IP)
+C-C       E=PPTL(4,IP)
+C-C       Y=100.
+C-C       DY=3.
+C-C       IF ( E-P.NE.0. .AND. E+P.NE.0. ) Y=.5*LOG((E+P)/(E-P))+DY
+C-C       WRITE(6,115)IP,IDPTL(IP)
+C-C  *         ,(PPTL(K,IP),K=3,5),Y
+C-C       WRITE(6,*)'-------> '
+C-C       DO 113 M=NPTLB+1,NPTL
+C-C         P=PPTL(3,M)
+C-C         E=PPTL(4,M)
+C-C         Y=100.
+C-C         DY=3.
+C-C         IF ( E-P.NE.0. .AND. E+P.NE.0. ) Y=.5*LOG((E+P)/(E-P))+DY
+C-C         WRITE(6,115)M,IDPTL(M)
+C-C  *            ,(PPTL(K,M),K=3,5),Y
+C113      CONTINUE
+C-C     ENDIF
+C114  CONTINUE
+ 115  FORMAT(1X,'/CPTL/',I6,I10
+     *,3(E10.2),2(E10.2))
+
+      IF ( ISH .GE. 0 ) THEN
+        PX=0.
+        PY=0.
+        PZ=0.
+        E=0.
+        DO 10 N=NPTLB+1,NPTL
+          PX=PX+PPTL(1,N)
+          PY=PY+PPTL(2,N)
+          PZ=PZ+PPTL(3,N)
+          E=E+  PPTL(4,N)
+10      CONTINUE
+      ENDIF
+
+      IF ( ISH .GE. 90 ) THEN
+        IF ( ISH .GE. 92 ) THEN
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,*)'CHECK ENERGY CONSERVATION'
+          DO 11 N=NPTLB+1,NPTL
+            WRITE(IFCH,101)N,IDPTL(N),(PPTL(K,N),K=1,5)
+11        CONTINUE
+          AM=SQRT(E**2-PX**2-PY**2-PZ**2)
+          WRITE(IFCH,103)PX,PY,PZ,E,AM
+103       FORMAT(1X,'P_SUM:  ',15X,5(E10.3,1X))
+          WRITE(IFCH,104)(PA0(K),K=1,5)
+104       FORMAT(1X,'P_CLU:  ',15X,5(E10.3,1X))
+        ENDIF
+
+        IF ( IFAIL.EQ.0 .AND.
+     *   (ABS(PX-PA0(1)).GT.1.E-2*ABS(PX).AND.ABS(PX-PA0(1)).GT.1.E-2
+     *.OR.ABS(PY-PA0(2)).GT.1.E-2*ABS(PY).AND.ABS(PY-PA0(2)).GT.1.E-2
+     *.OR.ABS(PZ-PA0(3)).GT.1.E-2*ABS(PZ).AND.ABS(PZ-PA0(3)).GT.1.E-2
+     *.OR.ABS(E -PA0(4)).GT.1.E-2*ABS(E ).AND.ABS(E -PA0(4)).GT.1.E-2)
+     *.OR.
+     *       IFAIL.NE.0 .AND.
+     *   (ABS(PX-PA0(1)).GT.1.E-2*ABS(PX).AND.ABS(PX-PA0(1)).GT.1.E-2
+     *.OR.ABS(PY-PA0(2)).GT.1.E-2*ABS(PY).AND.ABS(PY-PA0(2)).GT.1.E-2
+     *.OR.ABS(PZ-PA0(3)).GT.1.E-2*ABS(PZ).AND.ABS(PZ-PA0(3)).GT.1.E-2
+     *.OR.ABS(E -PA0(4)).GT.35.E-1*ABS(E ).AND.ABS(E -PA0(4)).GT.35.E-1)
+     *   ) THEN
+          CALL UTMSG('JCLUDE')
+          WRITE(IFCH,*)'*****  P_SUM /= P_CLU'
+          WRITE(IFCH,*)'IFAIL_JRESCL:',IFAIL,'   SCAL:',SCAL
+          DO 30 N=NPTLB+1,NPTL
+            WRITE(IFCH,101)N,IDPTL(N),(PPTL(K,N),K=1,5)
+30        CONTINUE
+          WRITE(IFCH,103)PX,PY,PZ,E
+          WRITE(IFCH,104)(PA0(K),K=1,4)
+          CALL UTMSGF
+        ENDIF
+      ENDIF
+
+1000  CONTINUE
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)('-',L=1,25)
+        WRITE(IFCH,*)'   RETURN FROM JCLUDE   '
+        WRITE(IFCH,*)('-',L=1,25)
+        WRITE(IFCH,*)' '
+      ENDIF
+      ISH=ISH0
+      RETURN
+
+1001  IRET=1
+      IF ( ISH .GE. 90 ) THEN
+        CALL UTMSG('JCLUDE')
+        WRITE(IFCH,*)'*****  CLUSTER DECAY NOT POSSIBLE  --> IRET=1'
+        WRITE(IFCH,100)(PA0(K),K=1,5)
+        WRITE(IFCH,*)'JCA:'
+        WRITE(IFCH,*)JCA0
+        CALL UTMSGF
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JDECA(I,IRET)
+
+C-----------------------------------------------------------------------
+C  DECAYS I (CALLS JDECAY)
+C-----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      PARAMETER (NFLAV=6)
+      COMMON /CCLUDE/  KCLUDE
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      DOUBLE PRECISION DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /CTTAUS/  DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      DOUBLE PRECISION TOR,ZOR
+      INTEGER          JCDU(NFLAV,2)
+C-----------------------------------------------------------------------
+      IRET=0
+      ISH0=ISH
+      IF ( ISHSUB/100 .EQ. 5 ) ISH=MOD(ISHSUB,100)
+      IF ( ISH .GE. 93 ) THEN
+        WRITE(IFCH,*)('-',L=1,79)
+        WRITE(IFCH,*)'ENTRY JDECA. DECAY OF',I,IDPTL(I),PPTL(5,I)
+      ENDIF
+CDH   CALL IDMASS(111,AMRHO0)
+CDH   CALL IDMASS(221,AMOMEG)
+      IOI=IORPTL(I)
+      IF ( .NOT.( IOI.GT.0 .AND. ABS(IDPTL(IOI)).LT.10000
+     *                    .AND. JORPTL(I).EQ.0 ) ) THEN
+        IF ( IDPTL(I) .EQ. 111 ) IDPTL(I)=221
+        IF ( IDPTL(I) .EQ. 221 .AND. RANGEN() .GT. 0.5 ) IDPTL(I)=111
+      ENDIF
+      IF ( MOD(NDECAY        ,10) .EQ.1 ) GOTO 1000
+      IDA=ABS(IDPTL(I))
+      IF ( MOD(NDECAY/10     ,10) .EQ.1 .AND. IDA .EQ.  20 ) GOTO 1000
+      IF ( MOD(NDECAY/100    ,10) .EQ.1 .AND. IDA .EQ.2130 ) GOTO 1000
+      IF ( MOD(NDECAY/1000   ,10) .EQ.1 ) THEN
+        IF ( IDA .EQ.1130 ) GOTO 1000
+        IF ( IDA .EQ.2230 ) GOTO 1000
+      ENDIF
+      IF ( MOD(NDECAY/10000  ,10) .EQ.1 ) THEN
+        IF ( IDA .EQ.2330 ) GOTO 1000
+        IF ( IDA .EQ.1330 ) GOTO 1000
+      ENDIF
+      IF ( MOD(NDECAY/100000 ,10) .EQ.1 .AND. IDA .EQ.3331 ) GOTO 1000
+      IF ( MOD(NDECAY/1000000,10) .EQ.1 .AND. IDA .EQ. 110 ) GOTO 1000
+      IF ( MOD(NDECAX        ,10) .EQ.1 .AND. IDA .EQ. 441 ) GOTO 1000
+      IF ( MOD(NDECAX/10     ,10) .EQ.1 .AND. IDA .EQ. 230 ) GOTO 1000
+      IF ( MOD(NDECAX/100    ,10) .EQ.1 ) THEN
+        IF ( IDA .EQ.1111 ) GOTO 1000
+        IF ( IDA .EQ.1121 ) GOTO 1000
+        IF ( IDA .EQ.1221 ) GOTO 1000
+        IF ( IDA .EQ.2221 ) GOTO 1000
+      ENDIF
+
+      IF ( MOD(NDECAX/1000   ,10) .EQ.1 ) THEN
+        IF ( IDA .EQ. 111 ) GOTO 1000
+        IF ( IDA .EQ. 121 ) GOTO 1000
+        IF ( IDA .EQ. 221 ) GOTO 1000
+        IF ( IDA .EQ. 331 ) GOTO 1000
+      ENDIF
+      IF ( MOD(NDECAX/10000  ,10) .EQ.1 .AND. IDA .EQ. 220 ) GOTO 1000
+      IF ( MOD(NDECAX/100000 ,10) .EQ.1 .AND. IDA .EQ. 330 ) GOTO 1000
+      IF ( MOD(NDECAX/1000000,10) .EQ.1 ) THEN
+        IF ( IDA .EQ. 112 ) GOTO 1000
+        IF ( IDA .EQ. 122 ) GOTO 1000
+      ENDIF
+      IF ( MOD(NDECAW        ,10) .EQ.1 .AND. IDA .EQ. 332 ) GOTO 1000
+      IF ( MOD(NDECAW/10     ,10) .EQ.1 ) THEN
+        IF ( IDA .EQ. 131 ) GOTO 1000
+        IF ( IDA .EQ.-131 ) GOTO 1000
+        IF ( IDA .EQ. 231 ) GOTO 1000
+        IF ( IDA .EQ.-231 ) GOTO 1000
+      ENDIF
+      T=TIVPTL(2,I)
+      NPTLB=NPTL
+      IF ( NPTL .GT. MXPTL-10 ) THEN
+        CALL UTSTOP('JDECA: MXPTL TOO SMALL                  ')
+      ENDIF
+      ISH=ISH0
+      CALL JDECAY(I,IRET)
+      IF ( ISHSUB/100 .EQ. 5 ) ISH=MOD(ISHSUB,100)
+      IF ( IRET .EQ. 1 ) GOTO 1000
+      IF ( NPTL .LE. NPTLB ) GOTO 1000
+      ISH00=ISH
+      IF ( ISHSUB/100.EQ.14 .AND. KCLUDE.EQ.1 ) ISH=MOD(ISHSUB,100)
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,101)SNGL(TTAUS)
+101     FORMAT(1X,'DECAY  AT TAU =',E10.3)
+        WRITE(IFCH,115)I,IDPTL(I)
+     *                 ,(PPTL(K,I),K=3,5),(TIVPTL(K,I),K=1,2)
+115     FORMAT(1X,'/CPTL/',I6,I10
+     *           ,1X,3(E10.2),1X,2(E10.2))
+      ENDIF
+      ISTPTL(I)=1
+      IFRPTL(1,I)=NPTLB+1
+      IFRPTL(2,I)=NPTL
+      X=XORPTL(1,I)+(T-XORPTL(4,I))*PPTL(1,I)/PPTL(4,I)
+      Y=XORPTL(2,I)+(T-XORPTL(4,I))*PPTL(2,I)/PPTL(4,I)
+      Z=XORPTL(3,I)+(T-XORPTL(4,I))*PPTL(3,I)/PPTL(4,I)
+      IF ( ISH .GE. 93 ) WRITE(IFCH,*)
+     *            'LOOP OVER DECAY PRODUCTS ',NPTLB+1,' - ',NPTL,' :'
+      DO 20 N=NPTLB+1,NPTL
+        IF ( ISH .GE. 93 ) WRITE(IFCH,*)'PARTICLE: ',N,IDPTL(N)
+        IORPTL(N)=I
+        JORPTL(N)=0
+        ISTPTL(N)=0
+        IFRPTL(1,N)=0
+        IFRPTL(2,N)=0
+        XORPTL(1,N)=X
+        XORPTL(2,N)=Y
+        XORPTL(3,N)=Z
+        XORPTL(4,N)=T
+        NQJPTL(N)=NQJPTL(I)
+        IO=N
+ 1      IO=IORPTL(IO)
+        IF ( ISH .GE. 93 ) WRITE(IFCH,*)'IO = ',IO
+        IF ( IORPTL(IO) .GT. 0 ) GOTO 1
+        IF ( ISH.GE. 93 ) WRITE(IFCH,*)'ORIGIN: ',IO,IDPTL(IO)
+        ZOR=XORPTL(3,IO)
+        TOR=XORPTL(4,IO)
+        CALL IDQUAC(IO,NQ,NDU,NDU,JCDU)
+        R=RANGEN()
+        TAURAN=-TAUREA*LOG(R)
+        CALL UTTAIX(N,TAURAN,ZOR,TOR,ZIS,TIS)
+        TIVPTL(1,N)=MAX(T,TIS)
+        CALL IDTAU(IDPTL(N),PPTL(4,N),PPTL(5,N),TAUGM)
+        TIVPTL(2,N)=T+TAUGM
+        ICLPTL(N)=1
+        IF ( ISH .GE. 91 ) WRITE(IFCH,115)N,IDPTL(N)
+     *                    ,(PPTL(K,N),K=3,5),(TIVPTL(K,N),K=1,2)
+20    CONTINUE
+      ISH=ISH00
+
+1000  CONTINUE
+      IF ( ISH .GE. 93 ) WRITE(IFCH,*)('-',L=1,79)
+      ISH=ISH0
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JDECAY(IP,IRET)
+
+C-----------------------------------------------------------------------
+C  DECAYS PARTICLE IP FROM /CPTL/
+C-----------------------------------------------------------------------
+      PARAMETER (MXDKY=2000)
+      PARAMETER (MXLOOK=10000)
+      PARAMETER (MXPTL=70000)
+      COMMON /CCLUDE/  KCLUDE
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /DKYTAB/  CBR(MXDKY),LOOK(MXLOOK),MODE(5,MXDKY)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /WCO/     WGAM2,WMASS2
+
+      REAL    BETA(3),PGEN(5,5),PREST(4,5)
+     *       ,REDUCE(5),RND(5),U(3)
+      DATA REDUCE/1.,1.,2.,5.,15./,TWOME/1.022006E-3/
+C-----------------------------------------------------------------------
+C  FCTN DEFINITIONS
+      DOT(I1,I2)=PREST(4,I1)*PREST(4,I2)-PREST(1,I1)*PREST(1,I2)
+     *          -PREST(2,I1)*PREST(2,I2)-PREST(3,I1)*PREST(3,I2)
+C  CHARGED W PROPAGATOR.
+      WPROP(Z)=(Z-WMASS2**2)**2+(WMASS2*WGAM2)**2
+C-----------------------------------------------------------------------
+
+      ISH0=ISH
+      IF ( ISHSUB/100 .EQ. 4 ) ISH=MOD(ISHSUB,100)
+      IF ( ISH .GE. 93 ) THEN
+        WRITE(IFCH,*)('-',L=1,79)
+        WRITE(IFCH,*)'DECAY OF',IP,IDPTL(IP),PPTL(5,IP)
+      ENDIF
+      ISH=ISH0
+
+      IRET=0
+      KCLUDE=0
+
+C  NO K_LONG DECAY
+C  ---------------
+      IF ( IDPTL(IP) .EQ. -20 ) GOTO 1000
+
+C  CLUSTER DECAY
+C  -------------
+      IF ( ABS(IDPTL(IP)) .GT. 100000000 ) THEN
+        KCLUDE=1
+        CALL JCLUDE(IP,IRET)
+        GOTO 1000
+      ENDIF
+
+      IF ( ISHSUB/100 .EQ. 4 ) ISH=MOD(ISHSUB,100)
+      IF ( ISH .GE. 93 ) WRITE(IFCH,*)'ORDINARY DECAY'
+
+C  SELECT DECAY MODE
+C  -----------------
+      NTRY=0
+ 2    NTRY=NTRY+1
+      IF ( NTRY .GT. 100 ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JDECAY')
+          WRITE(IFCH,*)'*****  DECAY NOT POSSIBLE. IRET = 1.'
+          WRITE(IFCH,*)'ID,MASS: ',IDPTL(IP),PPTL(5,IP)
+          CALL UTMSGF
+        ENDIF
+        IRET=1
+        GOTO 1000
+      ENDIF
+      IDLV1=IDPTL(IP)
+      AMSS=PPTL(5,IP)
+ 1    CONTINUE
+      IPOINT=LOOK(IABS(IDLV1))-1
+      IF ( IPOINT .LT. 0 ) GOTO 1000
+      TRY=RANGEN()
+100   IPOINT=IPOINT+1
+      IF ( ISH .GE. 93 ) WRITE(IFCH,*)'IPOINT,CBR,TRY'
+     *                                ,IPOINT,CBR(IPOINT),TRY
+      IF ( TRY .GT. CBR(IPOINT) ) GOTO 100
+      NADD=0
+      SUM=0.
+      NSTART=NPTL+1
+      DO 110 I=1,5
+        IF ( MODE(I,IPOINT) .EQ. 0 ) GOTO 110
+        IF ( NPTL+NADD+1 .GT. MXPTL ) GOTO 9999
+        NADD=NADD+1
+        NEW=NPTL+NADD
+        IDPTL(NEW)=MODE(I,IPOINT)
+        IDLV1=IDPTL(NEW)
+        CALL IDMASS(IDLV1,PPTL(5,NEW))
+        SUM=SUM+PPTL(5,NEW)
+110   CONTINUE
+      IF ( NADD .NE. 1  .AND.  SUM+1.E-2 .GE. AMSS ) GOTO 2
+      NADD1=NADD-1
+      DO 120 J=1,5
+        PGEN(J,1)=PPTL(J,IP)
+120   CONTINUE
+      PGEN(5,NADD)=PPTL(5,NPTL+NADD)
+      IF ( NADD .EQ. 1 ) GOTO 700
+      IF ( NADD .EQ. 2 ) GOTO 400
+
+C  USE KROLL-WADA DISTRIBUTION FOR DALITZ DECAYS.
+C  ----------------------------------------------
+      IF ( ISH .GE. 93 ) WRITE(IFCH,*)'>= 3 BODY DECAY'
+      IF ( .NOT. ( (IDPTL(IP).EQ.110 .OR. IDPTL(IP).EQ.220) .AND.
+     *             ABS(IDPTL(NPTL+2)).EQ.12 ) ) GOTO 130
+      NTRY=0
+125   NTRY=NTRY+1
+      IF ( NTRY .GT. 10 ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JDECAY')
+          WRITE(IFCH,*)'*****  NTRY > 10. IRET = 1.'
+          WRITE(IFCH,*)'AMEE,REE,WTEE',AMEE,REE,WTEE
+          CALL UTMSGF
+        ENDIF
+        IRET=1
+        GOTO 1000
+      ENDIF
+      AMEE=TWOME*(PPTL(5,IP)/TWOME)**RANGEN()
+      REE=(TWOME/AMEE)**2
+      WTEE=(1.-(AMEE/PPTL(5,IP))**2)**3*SQRT(1.-REE)*(1.+.5*REE)
+      IF ( WTEE .LT. RANGEN() ) GOTO 125
+      PGEN(5,2)=AMEE
+      GOTO 400
+130   CONTINUE
+
+C  CALCULATE MAXIMUM PHASE-SPACE WEIGHT
+C  ------------------------------------
+      WTMAX=1./REDUCE(NADD)
+      SUM1=PGEN(5,1)
+      SUM2=SUM-PPTL(5,NPTL+1)
+      DO 200 I=1,NADD1
+        WTMAX=WTMAX*UTPCM(SUM1,SUM2,PPTL(5,NPTL+I))
+        SUM1=SUM1-PPTL(5,NPTL+I)
+        SUM2=SUM2-PPTL(5,NPTL+I+1)
+200   CONTINUE
+
+C  GENERATE UNIFORM NADD-BODY PHASE SPACE
+C  --------------------------------------
+      NTRY=0
+300   NTRY=NTRY+1
+      IF ( NTRY .GT. 10000 ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JDECAY')
+          WRITE(IFCH,*)'*****  INFINITE LOOP (2). IRET = 1.'
+          WRITE(IFCH,*)'IP,IDPTL(IP),PPTL(5,IP):'
+     *                 ,IP,IDPTL(IP),PPTL(5,IP)
+          WRITE(IFCH,*)'WT,WTMAX:',WT,WTMAX
+          WRITE(IFCH,*)'I,PGEN(5,I),PPTL(5,NPTL+I),IDPTL(NPTL+I):'
+          DO 305 I=1,NADD
+            WRITE(IFCH,*)I,PGEN(5,I),PPTL(5,NPTL+I),IDPTL(NPTL+I)
+305       CONTINUE
+          CALL UTMSGF
+        ENDIF
+        IRET=1
+        GOTO 1000
+      ENDIF
+      RND(1)=1.
+      DO 310 I=2,NADD1
+        RNEW=RANGEN()
+        I1=I-1
+        DO 320 JJ1=1,I1
+          J=I-JJ1
+          JSAVE=J+1
+          IF ( RNEW .LE. RND(J) ) GOTO 315
+          RND(JSAVE)=RND(J)
+320     CONTINUE
+315     RND(JSAVE)=RNEW
+310   CONTINUE
+      RND(NADD)=0.
+      WT=1.
+      SUM1=SUM
+      DO 330 I=2,NADD
+        SUM1=SUM1-PPTL(5,NPTL+I-1)
+        PGEN(5,I)=SUM1+RND(I)*(PGEN(5,1)-SUM)
+        A=PGEN(5,I-1)
+        B=PGEN(5,I)
+        C=PPTL(5,NPTL+I-1)
+        WT=WT*UTPCM(A,B,C)
+330   CONTINUE
+      IF ( WT .LT. RANGEN()*WTMAX ) GOTO 300
+
+C  CARRY OUT TWO-BODY DECAYS IN PGEN FRAMES
+C  ----------------------------------------
+400   CONTINUE
+      IF ( ISH .GE. 93 ) WRITE(IFCH,*)'2 BODY DECAY'
+      DO 410 I=1,NADD1
+        QCM=UTPCM(PGEN(5,I),PGEN(5,I+1),PPTL(5,NPTL+I))
+        U(3)=2.*RANGEN()-1.
+        PHI=2.*PI*RANGEN()
+        U(1)=SQRT(1.-U(3)**2)*COS(PHI)
+        U(2)=SQRT(1.-U(3)**2)*SIN(PHI)
+        PPTL(1,NPTL+I)=QCM*U(1)
+        PGEN(1,I+1)=-PPTL(1,NPTL+I)
+        PPTL(2,NPTL+I)=QCM*U(2)
+        PGEN(2,I+1)=-PPTL(2,NPTL+I)
+        PPTL(3,NPTL+I)=QCM*U(3)
+        PGEN(3,I+1)=-PPTL(3,NPTL+I)
+        PPTL(4,NPTL+I)=SQRT(QCM**2+PPTL(5,NPTL+I)**2)
+        PGEN(4,I+1)=SQRT(QCM**2+PGEN(5,I+1)**2)
+410   CONTINUE
+      PPTL(1,NPTL+NADD)=PGEN(1,NADD)
+      PPTL(2,NPTL+NADD)=PGEN(2,NADD)
+      PPTL(3,NPTL+NADD)=PGEN(3,NADD)
+      PPTL(4,NPTL+NADD)=PGEN(4,NADD)
+
+C  BOOST PGEN FRAMES TO LAB FRAME
+C       ALSO SAVE MOMENTA IN REST FRAME (LAST FRAME)
+C  -------------------------------------------------
+      DO 500 II=1,NADD1
+        I=NADD-II
+        BETA(1)=1./PGEN(4,I)*PGEN(1,I)
+        BETA(2)=1./PGEN(4,I)*PGEN(2,I)
+        BETA(3)=1./PGEN(4,I)*PGEN(3,I)
+        GAMMA=PGEN(4,I)/PGEN(5,I)
+        DO 520 K=I,NADD
+          K1=NPTL+K
+          BP=BETA(1)*PPTL(1,K1)+BETA(2)*PPTL(2,K1)+BETA(3)*PPTL(3,K1)
+          AUXIL=GAMMA*(PPTL(4,K1)+BP*GAMMA/(GAMMA+1.))
+          PREST(1,K)=PPTL(1,K1)
+          PPTL(1,K1)=PPTL(1,K1)+BETA(1)*AUXIL
+          PREST(2,K)=PPTL(2,K1)
+          PPTL(2,K1)=PPTL(2,K1)+BETA(2)*AUXIL
+          PREST(3,K)=PPTL(3,K1)
+          PPTL(3,K1)=PPTL(3,K1)+BETA(3)*AUXIL
+          PREST(4,K)=PPTL(4,K1)
+          PPTL(4,K1)=GAMMA*(PPTL(4,K1)+BP)
+520     CONTINUE
+500   CONTINUE
+
+C  MATRIX ELEMENTS
+C  ---------------
+      IF ( NADD .EQ. 3 ) THEN
+        IF ( IDPTL(IP) .EQ. 221  .OR.  IDPTL(IP) .EQ. 331 ) GOTO 610
+        IF ( ABS(IDPTL(NPTL+1)) .LT. 20   .AND.
+     *             IDPTL(NPTL+1) .NE. 10 ) GOTO 620
+      ENDIF
+      GOTO 800
+
+C  OMEG AND PHI DECAY
+C       USE VECTORS IN REST FRAME
+C  ------------------------------
+610   WT=(PPTL(5,NPTL+1)*PPTL(5,NPTL+2)*PPTL(5,NPTL+3))**2
+     *                 -(PPTL(5,NPTL+1)*DOT(2,3))**2
+     *                 -(PPTL(5,NPTL+2)*DOT(1,3))**2
+     *                 -(PPTL(5,NPTL+3)*DOT(1,2))**2
+     *                +2.*DOT(1,2)*DOT(2,3)*DOT(1,3)
+      IF ( WT .LT. RANGEN()*PPTL(5,IP)**6/108. ) GOTO 300
+      GOTO 800
+
+C  SEMILEPTONIC AND QUARK DECAYS
+C       USE VECTORS IN REST FRAME, WHERE IP HAS (M,0,0,0)
+C       INCLUDE W PROPAGATOR
+C  ------------------------------------------------------
+620   WT=(PPTL(5,IP)*PREST(4,2))*DOT(1,3)
+      S12=PPTL(5,NPTL+1)**2+PPTL(5,NPTL+2)**2+2.*DOT(1,2)
+      S12MAX=PPTL(5,IP)**2
+      WT=WT*WPROP(S12MAX)/WPROP(S12)
+      IF ( WT .LT. RANGEN()*PPTL(5,IP)**4/16. ) GOTO 300
+      GOTO 800
+
+C  ONE-PARTICLE DECAYS
+C  -------------------
+700   CONTINUE
+      DO 710 J=1,5
+        PPTL(J,NPTL+1)=PPTL(J,IP)
+710   CONTINUE
+
+C  SWAP PARTICLES AND ANTIPARTICLES IF IDPTL(IP)<0
+C  -----------------------------------------------
+800   CONTINUE
+      IF ( IDPTL(IP).GE.0 .OR. ABS(IDPTL(IP)).EQ.20 ) GOTO 900
+      DO 810 I=1,NADD
+        IDABS=ABS(IDPTL(NPTL+I))
+        IFL1=IDABS/1000
+        IFL2=MOD(IDABS/100,10)
+        IFL3=MOD(IDABS/10,10)
+        IF ( IFL1.EQ.0 .AND. IFL2.NE.0 .AND. IFL2.EQ.IFL3 ) GOTO 810
+        IF ( IDABS.EQ.9  .OR. IDABS.EQ.10 .OR. IDABS.EQ.20 ) GOTO 810
+        IF ( IDABS.EQ.29 .OR. IDABS.EQ.30 .OR. IDABS.EQ.40 ) GOTO 810
+        IDPTL(NPTL+I)=-IDPTL(NPTL+I)
+810   CONTINUE
+
+900   CONTINUE
+      NPTL=NPTL+NADD
+      IF ( NPTL .GT. MXPTL ) THEN
+        CALL UTSTOP('JDECAY: NPTL>MXPTL                      ')
+      ENDIF
+      NQK=0
+      IF ( ABS(IDPTL(NPTL)).LT.10 .OR. MOD(IDPTL(NPTL),100).EQ.0 ) THEN
+        CALL UTSTOP('JDECAY: DECAY PTCL IS PARTON            ')
+      ENDIF
+
+1000  CONTINUE
+      IF ( ISH .GE. 93 ) WRITE(IFCH,*)('-',L=1,79)
+      ISH=ISH0
+      RETURN
+
+9999  CALL UTSTOP('JDECAY: MXPTL TOO SMALL                 ')
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JDECIN(LPRINT)
+
+C-----------------------------------------------------------------------
+C  SETS UP /DKYTAB/
+C-----------------------------------------------------------------------
+      PARAMETER (MXDKY=2000)
+      PARAMETER (MXLOOK=10000)
+      PARAMETER (NDECTB=1171)
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /DKYTAB/  CBR(MXDKY),LOOK(MXLOOK),MODE(5,MXDKY)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      LOGICAL          NODCAY,NOETA,NOEVOL,NOHADR,NONUNU,NOPI0
+      COMMON /NODCAY/  NODCAY,NOETA,NOEVOL,NOHADR,NONUNU,NOPI0
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /WCO/     WGAM2,WMASS2
+
+      REAL        DECTAB(7,NDECTB)
+      INTEGER     IMODE(6)
+      CHARACTER*8 IBLANK,IDLABL,LMODE(6),LRES
+      LOGICAL     LPRINT
+
+      DATA IBLANK/' '/
+      DATA ((DECTAB(I,J),I=1,7),J=  1, 18)/
+     *  110., .98850,  10.,  10.,   0.,   0.,   0.
+     *, 110.,1.00000,  10.,  12., -12.,   0.,   0.
+     *, 220., .38000,  10.,  10.,   0.,   0.,   0.
+     *, 220., .71000, 110., 110., 110.,   0.,   0.
+     *, 220., .94600, 120.,-120., 110.,   0.,   0.
+     *, 220., .99500, 120.,-120.,  10.,   0.,   0.
+     *, 220.,1.00000,  10.,  12., -12.,   0.,   0.
+     *, 330., .44100, 220., 120.,-120.,   0.,   0.
+     *, 330., .66100, 220., 110., 110.,   0.,   0.
+     *, 330., .95900, 111.,  10.,   0.,   0.,   0.
+     *, 330., .98000, 221.,  10.,   0.,   0.,   0.
+     *, 330.,1.00000,  10.,  10.,   0.,   0.,   0.
+     *, 121.,1.00000, 120., 110.,   0.,   0.,   0.
+     *, 111., .99989, 120.,-120.,   0.,   0.,   0.
+     *, 111., .99993,  12., -12.,   0.,   0.,   0.
+     *, 111.,1.00000,  14., -14.,   0.,   0.,   0.
+     *, 221., .89900, 120.,-120., 110.,   0.,   0.
+     *, 221., .91200, 120.,-120.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J= 19, 36)/
+     *  221., .99992, 110.,  10.,   0.,   0.,   0.
+     *, 221.,1.00000,  12., -12.,   0.,   0.,   0.
+     *, 331., .48600, 130.,-130.,   0.,   0.,   0.
+     *, 331., .83700, 230.,-230.,   0.,   0.,   0.
+     *, 331., .98400, 120.,-120., 110.,   0.,   0.
+     *, 331., .99944, 220.,  10.,   0.,   0.,   0.
+     *, 331., .99975,  12., -12.,   0.,   0.,   0.
+     *, 331.,1.00000,  14., -14.,   0.,   0.,   0.
+     *, 230., .50000,  20.,   0.,   0.,   0.,   0.
+     *, 230.,1.00000, -20.,   0.,   0.,   0.,   0.
+     *, 131., .66670, 230., 120.,   0.,   0.,   0.
+     *, 131.,1.00000, 130., 110.,   0.,   0.,   0.
+     *, 231., .66670, 130.,-120.,   0.,   0.,   0.
+     *, 231.,1.00000, 230., 110.,   0.,   0.,   0.
+     *, 240., .11000,  12., -11., 230.,   0.,   0.
+     *, 240., .17000,  12., -11., 231.,   0.,   0.
+     *, 240., .28000,  14., -13., 230.,   0.,   0.
+     *, 240., .34000,  14., -13., 231.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J= 37, 54)/
+     *  240., .37800, 230.,-120.,   0.,   0.,   0.
+     *, 240., .56300, 230.,-121.,   0.,   0.,   0.
+     *, 240., .60800, 231.,-120.,   0.,   0.,   0.
+     *, 240., .62100, 230.,-120., 110.,   0.,   0.
+     *, 240., .71000, 130.,-120.,-120.,   0.,   0.
+     *, 240., .80100, 230.,-120.,-120., 120.,   0.
+     *, 240., .87900, 130.,-120.,-120., 110.,   0.
+     *, 240., .95400, 230.,-120., 110., 110.,   0.
+     *, 240., .96600, 230.,-130.,   0.,   0.,   0.
+     *, 240., .97600, 331.,-120.,   0.,   0.,   0.
+     *, 240., .98800,-130., 231.,   0.,   0.,   0.
+     *, 240.,1.00000,-131., 230.,   0.,   0.,   0.
+     *, 140., .04500,  12., -11., 130.,   0.,   0.
+     *, 140., .07500,  12., -11., 131.,   0.,   0.
+     *, 140., .12000,  14., -13., 130.,   0.,   0.
+     *, 140., .15000,  14., -13., 131.,   0.,   0.
+     *, 140., .20300, 130.,-120.,   0.,   0.,   0.
+     *, 140., .22700, 230., 110.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J= 55, 72)/
+     *  140., .24700, 230., 220.,   0.,   0.,   0.
+     *, 140., .28900, 230., 221.,   0.,   0.,   0.
+     *, 140., .45100, 130.,-121.,   0.,   0.,   0.
+     *, 140., .53600, 131.,-120.,   0.,   0.,   0.
+     *, 140., .56200, 231., 110.,   0.,   0.,   0.
+     *, 140., .57600, 230., 111.,   0.,   0.,   0.
+     *, 140., .58700, 130.,-120., 110.,   0.,   0.
+     *, 140., .60300, 230.,-120., 120.,   0.,   0.
+     *, 140., .72700, 130.,-120.,-120., 120.,   0.
+     *, 140., .87600, 230.,-120., 120., 110.,   0.
+     *, 140., .96900, 130.,-120., 110., 110.,   0.
+     *, 140.,1.00000, 230., 110., 110., 110.,   0.
+     *, 340., .03250,  12., -11., 220.,   0.,   0.
+     *, 340., .06500,  12., -11., 331.,   0.,   0.
+     *, 340., .09750,  14., -13., 220.,   0.,   0.
+     *, 340., .13000,  14., -13., 331.,   0.,   0.
+     *, 340., .17900,-130., 230.,   0.,   0.,   0.
+     *, 340., .22800,-120., 220.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J= 73, 90)/
+     *  340., .33800,-131., 230.,   0.,   0.,   0.
+     *, 340., .44800,-130., 231.,   0.,   0.,   0.
+     *, 340., .55800,-120., 331.,   0.,   0.,   0.
+     *, 340., .57500,-130., 230., 110.,   0.,   0.
+     *, 340., .59200,-230., 230.,-120.,   0.,   0.
+     *, 340., .69400,-130., 230.,-120., 120.,   0.
+     *, 340., .79600,-130., 230., 110., 110.,   0.
+     *, 340., .89800,-130., 130.,-120., 110.,   0.
+     *, 340.,1.00000,-230., 230.,-120., 110.,   0.
+     *, 241., .64000, 140.,-120.,   0.,   0.,   0.
+     *, 241., .92000, 240., 110.,   0.,   0.,   0.
+     *, 241.,1.00000, 240.,  10.,   0.,   0.,   0.
+     *, 141., .55000, 140., 110.,   0.,   0.,   0.
+     *, 141.,1.00000, 140.,  10.,   0.,   0.,   0.
+     *, 341.,1.00000, 340.,  10.,   0.,   0.,   0.
+     *, 441., .07400,  12., -12.,   0.,   0.,   0.
+     *, 441., .14800,  14., -14.,   0.,   0.,   0.
+     *, 441., .15210,-121., 120.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J= 91,108)/
+     *  441., .15620, 111., 110.,   0.,   0.,   0.
+     *, 441., .16020, 121.,-120.,   0.,   0.,   0.
+     *, 441., .16300,-121., 111., 120.,   0.,   0.
+     *, 441., .16580, 121.,-121., 110.,   0.,   0.
+     *, 441., .16860, 121., 111.,-120.,   0.,   0.
+     *, 441., .28740, 120.,-120., 130.,-130.,   0.
+     *, 441., .40620, 110., 110., 130.,-130.,   0.
+     *, 441., .52500, 120.,-120., 120.,-120.,   0.
+     *, 441., .64380, 120.,-120., 110., 110.,   0.
+     *, 441., .76260, 110., 110., 110., 110.,   0.
+     *, 441., .88130, 120.,-120., 230.,-230.,   0.
+     *, 441.,1.00000, 110., 110., 230., 230.,   0.
+     *, 150., .06000, -12.,  11., 140.,   0.,   0.
+     *, 150., .12000, -12.,  11., 141.,   0.,   0.
+     *, 150., .18000, -14.,  13., 140.,   0.,   0.
+     *, 150., .24000, -14.,  13., 141.,   0.,   0.
+     *, 150., .25500, -16.,  15., 140.,   0.,   0.
+     *, 150., .27000, -16.,  15., 141.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=109,126)/
+     *  150., .28050, 140., 120.,   0.,   0.,   0.
+     *, 150., .29100, 140., 121.,   0.,   0.,   0.
+     *, 150., .30150, 141., 120.,   0.,   0.,   0.
+     *, 150., .31200, 141., 121.,   0.,   0.,   0.
+     *, 150., .32650, 140.,-340.,   0.,   0.,   0.
+     *, 150., .34100, 140.,-341.,   0.,   0.,   0.
+     *, 150., .35550, 141.,-340.,   0.,   0.,   0.
+     *, 150., .37000, 141.,-341.,   0.,   0.,   0.
+     *, 150., .39800, 140., 120., 110.,   0.,   0.
+     *, 150., .42600, 140., 120., 220.,   0.,   0.
+     *, 150., .45400, 140., 120., 111.,   0.,   0.
+     *, 150., .48200, 140., 120., 221.,   0.,   0.
+     *, 150., .51000, 140., 121., 110.,   0.,   0.
+     *, 150., .53800, 140., 121., 220.,   0.,   0.
+     *, 150., .56600, 140., 121., 111.,   0.,   0.
+     *, 150., .59400, 140., 121., 221.,   0.,   0.
+     *, 150., .62200, 141., 120., 110.,   0.,   0.
+     *, 150., .65000, 141., 120., 220.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=127,144)/
+     *  150., .67800, 141., 120., 111.,   0.,   0.
+     *, 150., .70600, 141., 120., 221.,   0.,   0.
+     *, 150., .73400, 141., 121., 110.,   0.,   0.
+     *, 150., .76200, 141., 121., 220.,   0.,   0.
+     *, 150., .79000, 141., 121., 111.,   0.,   0.
+     *, 150., .81800, 141., 121., 221.,   0.,   0.
+     *, 150., .83200, 140., 130.,-230.,   0.,   0.
+     *, 150., .84600, 140., 130.,-231.,   0.,   0.
+     *, 150., .86000, 140., 131.,-230.,   0.,   0.
+     *, 150., .87400, 140., 131.,-231.,   0.,   0.
+     *, 150., .88800, 141., 130.,-230.,   0.,   0.
+     *, 150., .90200, 141., 130.,-231.,   0.,   0.
+     *, 150., .91600, 141., 131.,-230.,   0.,   0.
+     *, 150., .93000, 141., 131.,-231.,   0.,   0.
+     *, 150., .93300, 140.,-140., 130.,   0.,   0.
+     *, 150., .93600, 140.,-140., 131.,   0.,   0.
+     *, 150., .93900, 140.,-141., 130.,   0.,   0.
+     *, 150., .94200, 140.,-141., 131.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=145,162)/
+     *  150., .94500, 141.,-140., 130.,   0.,   0.
+     *, 150., .94800, 141.,-140., 131.,   0.,   0.
+     *, 150., .95100, 141.,-141., 130.,   0.,   0.
+     *, 150., .95400, 141.,-141., 131.,   0.,   0.
+     *, 150., .95700, 140.,-240., 230.,   0.,   0.
+     *, 150., .96000, 140.,-240., 231.,   0.,   0.
+     *, 150., .96300, 140.,-241., 230.,   0.,   0.
+     *, 150., .96600, 140.,-241., 231.,   0.,   0.
+     *, 150., .96900, 141.,-240., 230.,   0.,   0.
+     *, 150., .97200, 141.,-240., 231.,   0.,   0.
+     *, 150., .97500, 141.,-241., 230.,   0.,   0.
+     *, 150., .97800, 141.,-241., 231.,   0.,   0.
+     *, 150., .97950, 140.,-340., 330.,   0.,   0.
+     *, 150., .98100, 140.,-340., 331.,   0.,   0.
+     *, 150., .98250, 140.,-341., 331.,   0.,   0.
+     *, 150., .98400, 140.,-341., 331.,   0.,   0.
+     *, 150., .98550, 141.,-340., 330.,   0.,   0.
+     *, 150., .98700, 141.,-340., 331.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=163,180)/
+     *  150., .98850, 141.,-341., 331.,   0.,   0.
+     *, 150., .99000, 141.,-341., 331.,   0.,   0.
+     *, 150., .99200, 441., 130., 110.,   0.,   0.
+     *, 150., .99400, 441., 131., 110.,   0.,   0.
+     *, 150., .99600, 441., 230., 120.,   0.,   0.
+     *, 150., .99800, 441., 231., 120.,   0.,   0.
+     *, 150., .99900, 441., 330., 130.,   0.,   0.
+     *, 150.,1.00000, 441., 331., 130.,   0.,   0.
+     *, 250., .06000, -12.,  11., 240.,   0.,   0.
+     *, 250., .12000, -12.,  11., 241.,   0.,   0.
+     *, 250., .18000, -14.,  13., 240.,   0.,   0.
+     *, 250., .24000, -14.,  13., 241.,   0.,   0.
+     *, 250., .25500, -16.,  15., 240.,   0.,   0.
+     *, 250., .27000, -16.,  15., 241.,   0.,   0.
+     *, 250., .28050, 240., 120.,   0.,   0.,   0.
+     *, 250., .29100, 240., 121.,   0.,   0.,   0.
+     *, 250., .30150, 241., 120.,   0.,   0.,   0.
+     *, 250., .31200, 241., 121.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=181,198)/
+     *  250., .32650, 240.,-340.,   0.,   0.,   0.
+     *, 250., .34100, 240.,-341.,   0.,   0.,   0.
+     *, 250., .35550, 241.,-340.,   0.,   0.,   0.
+     *, 250., .37000, 241.,-341.,   0.,   0.,   0.
+     *, 250., .39800, 240., 120., 110.,   0.,   0.
+     *, 250., .42600, 240., 120., 220.,   0.,   0.
+     *, 250., .45400, 240., 120., 111.,   0.,   0.
+     *, 250., .48200, 240., 120., 221.,   0.,   0.
+     *, 250., .51000, 240., 121., 110.,   0.,   0.
+     *, 250., .53800, 240., 121., 220.,   0.,   0.
+     *, 250., .56600, 240., 121., 111.,   0.,   0.
+     *, 250., .59400, 240., 121., 221.,   0.,   0.
+     *, 250., .62200, 241., 120., 110.,   0.,   0.
+     *, 250., .65000, 241., 120., 220.,   0.,   0.
+     *, 250., .67800, 241., 120., 111.,   0.,   0.
+     *, 250., .70600, 241., 120., 221.,   0.,   0.
+     *, 250., .73400, 241., 121., 110.,   0.,   0.
+     *, 250., .76200, 241., 121., 220.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=199,216)/
+     *  250., .79000, 241., 121., 111.,   0.,   0.
+     *, 250., .81800, 241., 121., 221.,   0.,   0.
+     *, 250., .83200, 240., 130.,-230.,   0.,   0.
+     *, 250., .84600, 240., 130.,-231.,   0.,   0.
+     *, 250., .86000, 240., 131.,-230.,   0.,   0.
+     *, 250., .87400, 240., 131.,-231.,   0.,   0.
+     *, 250., .88800, 241., 130.,-230.,   0.,   0.
+     *, 250., .90200, 241., 130.,-231.,   0.,   0.
+     *, 250., .91600, 241., 131.,-230.,   0.,   0.
+     *, 250., .93000, 241., 131.,-231.,   0.,   0.
+     *, 250., .93300, 240.,-140., 130.,   0.,   0.
+     *, 250., .93600, 240.,-140., 131.,   0.,   0.
+     *, 250., .93900, 240.,-141., 130.,   0.,   0.
+     *, 250., .94200, 240.,-141., 131.,   0.,   0.
+     *, 250., .94500, 241.,-140., 130.,   0.,   0.
+     *, 250., .94800, 241.,-140., 131.,   0.,   0.
+     *, 250., .95100, 241.,-141., 130.,   0.,   0.
+     *, 250., .95400, 241.,-141., 131.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=217,234)/
+     *  250., .95700, 240.,-240., 230.,   0.,   0.
+     *, 250., .96000, 240.,-240., 231.,   0.,   0.
+     *, 250., .96300, 240.,-241., 230.,   0.,   0.
+     *, 250., .96600, 240.,-241., 231.,   0.,   0.
+     *, 250., .96900, 241.,-240., 230.,   0.,   0.
+     *, 250., .97200, 241.,-240., 231.,   0.,   0.
+     *, 250., .97500, 241.,-241., 230.,   0.,   0.
+     *, 250., .97800, 241.,-241., 231.,   0.,   0.
+     *, 250., .97950, 240.,-340., 330.,   0.,   0.
+     *, 250., .98100, 240.,-340., 331.,   0.,   0.
+     *, 250., .98250, 240.,-341., 331.,   0.,   0.
+     *, 250., .98400, 240.,-341., 331.,   0.,   0.
+     *, 250., .98550, 241.,-340., 330.,   0.,   0.
+     *, 250., .98700, 241.,-340., 331.,   0.,   0.
+     *, 250., .98850, 241.,-341., 331.,   0.,   0.
+     *, 250., .99000, 241.,-341., 331.,   0.,   0.
+     *, 250., .99200, 441., 130.,-120.,   0.,   0.
+     *, 250., .99400, 441., 131.,-120.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=235,252)/
+     *  250., .99600, 441., 230., 220.,   0.,   0.
+     *, 250., .99800, 441., 231., 221.,   0.,   0.
+     *, 250., .99900, 441., 330., 230.,   0.,   0.
+     *, 250.,1.00000, 441., 331., 230.,   0.,   0.
+     *, 350., .06000, -12.,  11., 340.,   0.,   0.
+     *, 350., .12000, -12.,  11., 341.,   0.,   0.
+     *, 350., .18000, -14.,  13., 340.,   0.,   0.
+     *, 350., .24000, -14.,  13., 341.,   0.,   0.
+     *, 350., .25500, -16.,  15., 340.,   0.,   0.
+     *, 350., .27000, -16.,  15., 341.,   0.,   0.
+     *, 350., .28050, 340., 120.,   0.,   0.,   0.
+     *, 350., .29100, 340., 121.,   0.,   0.,   0.
+     *, 350., .30150, 341., 120.,   0.,   0.,   0.
+     *, 350., .31200, 341., 121.,   0.,   0.,   0.
+     *, 350., .32650, 340.,-340.,   0.,   0.,   0.
+     *, 350., .34100, 340.,-341.,   0.,   0.,   0.
+     *, 350., .35550, 341.,-340.,   0.,   0.,   0.
+     *, 350., .37000, 341.,-341.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=253,270)/
+     *  350., .39800, 340., 120., 110.,   0.,   0.
+     *, 350., .42600, 340., 120., 220.,   0.,   0.
+     *, 350., .45400, 340., 120., 111.,   0.,   0.
+     *, 350., .48200, 340., 120., 221.,   0.,   0.
+     *, 350., .51000, 340., 121., 110.,   0.,   0.
+     *, 350., .53800, 340., 121., 220.,   0.,   0.
+     *, 350., .56600, 340., 121., 111.,   0.,   0.
+     *, 350., .59400, 340., 121., 221.,   0.,   0.
+     *, 350., .62200, 341., 120., 110.,   0.,   0.
+     *, 350., .65000, 341., 120., 220.,   0.,   0.
+     *, 350., .67800, 341., 120., 111.,   0.,   0.
+     *, 350., .70600, 341., 120., 221.,   0.,   0.
+     *, 350., .73400, 341., 121., 110.,   0.,   0.
+     *, 350., .76200, 341., 121., 220.,   0.,   0.
+     *, 350., .79000, 341., 121., 111.,   0.,   0.
+     *, 350., .81800, 341., 121., 221.,   0.,   0.
+     *, 350., .83200, 340., 130.,-230.,   0.,   0.
+     *, 350., .84600, 340., 130.,-231.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=271,288)/
+     *  350., .86000, 340., 131.,-230.,   0.,   0.
+     *, 350., .87400, 340., 131.,-231.,   0.,   0.
+     *, 350., .88800, 341., 130.,-230.,   0.,   0.
+     *, 350., .90200, 341., 130.,-231.,   0.,   0.
+     *, 350., .91600, 341., 131.,-230.,   0.,   0.
+     *, 350., .93000, 341., 131.,-231.,   0.,   0.
+     *, 350., .93300, 340.,-140., 130.,   0.,   0.
+     *, 350., .93600, 340.,-140., 131.,   0.,   0.
+     *, 350., .93900, 340.,-141., 130.,   0.,   0.
+     *, 350., .94200, 340.,-141., 131.,   0.,   0.
+     *, 350., .94500, 341.,-140., 130.,   0.,   0.
+     *, 350., .94800, 341.,-140., 131.,   0.,   0.
+     *, 350., .95100, 341.,-141., 130.,   0.,   0.
+     *, 350., .95400, 341.,-141., 131.,   0.,   0.
+     *, 350., .95700, 340.,-240., 230.,   0.,   0.
+     *, 350., .96000, 340.,-240., 231.,   0.,   0.
+     *, 350., .96300, 340.,-241., 230.,   0.,   0.
+     *, 350., .96600, 340.,-241., 231.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=289,306)/
+     *  350., .96900, 341.,-240., 230.,   0.,   0.
+     *, 350., .97200, 341.,-240., 231.,   0.,   0.
+     *, 350., .97500, 341.,-241., 230.,   0.,   0.
+     *, 350., .97800, 341.,-241., 231.,   0.,   0.
+     *, 350., .97950, 340.,-340., 330.,   0.,   0.
+     *, 350., .98100, 340.,-340., 331.,   0.,   0.
+     *, 350., .98250, 340.,-341., 331.,   0.,   0.
+     *, 350., .98400, 340.,-341., 331.,   0.,   0.
+     *, 350., .98550, 341.,-340., 330.,   0.,   0.
+     *, 350., .98700, 341.,-340., 331.,   0.,   0.
+     *, 350., .98850, 341.,-341., 331.,   0.,   0.
+     *, 350., .99000, 341.,-341., 331.,   0.,   0.
+     *, 350., .99200, 441., 130.,-130.,   0.,   0.
+     *, 350., .99400, 441., 131.,-130.,   0.,   0.
+     *, 350., .99600, 441., 230.,-230.,   0.,   0.
+     *, 350., .99800, 441., 231.,-230.,   0.,   0.
+     *, 350., .99900, 441., 330., 330.,   0.,   0.
+     *, 350.,1.00000, 441., 331., 331.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=307,324)/
+     *  160., .33330,  -1.,   2.,  -5.,   0.,   0.
+     *, 160., .66660,  -4.,   3.,  -5.,   0.,   0.
+     *, 160., .77770, -11.,  12.,  -5.,   0.,   0.
+     *, 160., .88880, -13.,  14.,  -5.,   0.,   0.
+     *, 160.,1.00000, -15.,  16.,  -5.,   0.,   0.
+     *, 260., .33330,  -1.,   2.,  -5.,   0.,   0.
+     *, 260., .66660,  -4.,   3.,  -5.,   0.,   0.
+     *, 260., .77770, -11.,  12.,  -5.,   0.,   0.
+     *, 260., .88880, -13.,  14.,  -5.,   0.,   0.
+     *, 260.,1.00000, -15.,  16.,  -5.,   0.,   0.
+     *, 360., .33330,  -1.,   2.,  -5.,   0.,   0.
+     *, 360., .66660,  -4.,   3.,  -5.,   0.,   0.
+     *, 360., .77770, -11.,  12.,  -5.,   0.,   0.
+     *, 360., .88880, -13.,  14.,  -5.,   0.,   0.
+     *, 360.,1.00000, -15.,  16.,  -5.,   0.,   0.
+     *, 151.,1.00000, 150.,  10.,   0.,   0.,   0.
+     *, 251.,1.00000, 250.,  10.,   0.,   0.,   0.
+     *, 351.,1.00000, 350.,  10.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=325,342)/
+     *  161.,1.00000, 160.,  10.,   0.,   0.,   0.
+     *, 261.,1.00000, 260.,  10.,   0.,   0.,   0.
+     *, 361.,1.00000, 360.,  10.,   0.,   0.,   0.
+     *,1230.,1.00000,2130.,  10.,   0.,   0.,   0.
+     *,1111.,1.00000,1120., 120.,   0.,   0.,   0.
+     *,1121., .66670,1120., 110.,   0.,   0.,   0.
+     *,1121.,1.00000,1220., 120.,   0.,   0.,   0.
+     *,1221., .66670,1220., 110.,   0.,   0.,   0.
+     *,1221.,1.00000,1120.,-120.,   0.,   0.,   0.
+     *,2221.,1.00000,1220.,-120.,   0.,   0.,   0.
+     *,1131., .88000,2130., 120.,   0.,   0.,   0.
+     *,1131., .94000,1130., 110.,   0.,   0.,   0.
+     *,1131.,1.00000,1230., 120.,   0.,   0.,   0.
+     *,1231., .88000,2130., 110.,   0.,   0.,   0.
+     *,1231., .94000,1130.,-120.,   0.,   0.,   0.
+     *,1231.,1.00000,2230., 120.,   0.,   0.,   0.
+     *,2231., .88000,2130.,-120.,   0.,   0.,   0.
+     *,2231., .94000,1230.,-120.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=343,360)/
+     * 2231.,1.00000,2230., 110.,   0.,   0.,   0.
+     *,1331., .66670,2330., 120.,   0.,   0.,   0.
+     *,1331.,1.00000,1330., 110.,   0.,   0.,   0.
+     *,2331., .66670,1330.,-120.,   0.,   0.,   0.
+     *,2331.,1.00000,2330., 110.,   0.,   0.,   0.
+     *,  16., .18000,  12., -11.,  15.,   0.,   0.
+     *,  16., .36000,  14., -13.,  15.,   0.,   0.
+     *,  16., .45100,-120.,  15.,   0.,   0.,   0.
+     *,  16., .66000,-121.,  15.,   0.,   0.,   0.
+     *,  16., .78000, 110., 110.,-120.,  15.,   0.
+     *,  16., .83600, 120.,-120.,-120.,  15.,   0.
+     *,  16.,1.00000, 120., 110.,-120.,-120.,  15.
+     *,2140., .03750, -12.,  11.,2130.,   0.,   0.
+     *,2140., .07500, -12.,  11.,1231.,   0.,   0.
+     *,2140., .11250, -14.,  13.,2130.,   0.,   0.
+     *,2140., .15000, -14.,  13.,1231.,   0.,   0.
+     *,2140., .18200,2130., 120.,   0.,   0.,   0.
+     *,2140., .21300,1230., 110.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=361,378)/
+     * 2140., .24400,1120.,-230.,   0.,   0.,   0.
+     *,2140., .29500,1131., 110.,   0.,   0.,   0.
+     *,2140., .34600,1231., 120.,   0.,   0.,   0.
+     *,2140., .39700,1121.,-230.,   0.,   0.,   0.
+     *,2140., .44800,1111.,-130.,   0.,   0.,   0.
+     *,2140., .49900,1130., 111.,   0.,   0.,   0.
+     *,2140., .55000,1230., 121.,   0.,   0.,   0.
+     *,2140., .60100,1120.,-231.,   0.,   0.,   0.
+     *,2140., .65800,1120.,-230., 120.,-120.,   0.
+     *,2140., .71500,1120.,-230., 110., 110.,   0.
+     *,2140., .77200,1120.,-130., 120., 110.,   0.
+     *,2140., .82900,1220.,-230., 120., 110.,   0.
+     *,2140., .88600,1220.,-130., 120., 120.,   0.
+     *,2140., .94300,2130., 120., 120.,-120.,   0.
+     *,2140.,1.00000,2130., 120., 110., 110.,   0.
+     *,1140.,1.00000,2140., 120.,   0.,   0.,   0.
+     *,1240.,1.00000,2140., 110.,   0.,   0.,   0.
+     *,2240.,1.00000,2140.,-120.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=379,396)/
+     * 1340., .03750, -12.,  11.,1330.,   0.,   0.
+     *,1340., .07500, -12.,  11.,1331.,   0.,   0.
+     *,1340., .11250, -14.,  13.,1330.,   0.,   0.
+     *,1340., .15000, -14.,  13.,1331.,   0.,   0.
+     *,1340., .19900,1330., 120.,   0.,   0.,   0.
+     *,1340., .24800,1231.,-230.,   0.,   0.,   0.
+     *,1340., .28800,1330., 120.,   0.,   0.,   0.
+     *,1340., .32800,1131.,-230.,   0.,   0.,   0.
+     *,1340., .36800,1330., 121.,   0.,   0.,   0.
+     *,1340., .40800,1130.,-230.,   0.,   0.,   0.
+     *,1340., .44800,1330., 120., 110.,   0.,   0.
+     *,1340., .48800,2330., 120., 120.,   0.,   0.
+     *,1340., .52800,1130.,-130., 120.,   0.,   0.
+     *,1340., .56800,1130.,-230., 110.,   0.,   0.
+     *,1340., .60800,1230.,-230., 120.,   0.,   0.
+     *,1340., .66400,2130.,-230., 120., 110.,   0.
+     *,1340., .72000,2130.,-130., 120., 120.,   0.
+     *,1340., .77600,1130.,-230., 120., 120.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=397,414)/
+     * 1340., .83200,1130.,-230., 110., 110.,   0.
+     *,1340., .88800,1330., 120., 120.,-120.,   0.
+     *,1340., .94400,1330., 120., 110., 110.,   0.
+     *,1340.,1.00000,2330., 120., 120., 110.,   0.
+     *,3140., .03750, -12.,  11.,1330.,   0.,   0.
+     *,3140., .07500, -12.,  11.,1331.,   0.,   0.
+     *,3140., .11250, -14.,  13.,1330.,   0.,   0.
+     *,3140., .15000, -14.,  13.,1331.,   0.,   0.
+     *,3140., .19900,1330., 120.,   0.,   0.,   0.
+     *,3140., .24800,1231.,-230.,   0.,   0.,   0.
+     *,3140., .28800,1330., 120.,   0.,   0.,   0.
+     *,3140., .32800,1131.,-230.,   0.,   0.,   0.
+     *,3140., .36800,1330., 121.,   0.,   0.,   0.
+     *,3140., .40800,1130.,-230.,   0.,   0.,   0.
+     *,3140., .44800,1330., 120., 110.,   0.,   0.
+     *,3140., .48800,2330., 120., 120.,   0.,   0.
+     *,3140., .52800,1130.,-130., 120.,   0.,   0.
+     *,3140., .56800,1130.,-230., 110.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=415,432)/
+     * 3140., .60800,1230.,-230., 120.,   0.,   0.
+     *,3140., .66400,2130.,-230., 120., 110.,   0.
+     *,3140., .72000,2130.,-130., 120., 120.,   0.
+     *,3140., .77600,1130.,-230., 120., 120.,   0.
+     *,3140., .83200,1130.,-230., 110., 110.,   0.
+     *,3140., .88800,1330., 120., 120.,-120.,   0.
+     *,3140., .94400,1330., 120., 110., 110.,   0.
+     *,3140.,1.00000,2330., 120., 120., 110.,   0.
+     *,2340., .03750, -12.,  11.,2330.,   0.,   0.
+     *,2340., .07500, -12.,  11.,2331.,   0.,   0.
+     *,2340., .11250, -14.,  13.,2330.,   0.,   0.
+     *,2340., .15000, -14.,  13.,2331.,   0.,   0.
+     *,2340., .17500,2330., 120.,   0.,   0.,   0.
+     *,2340., .20000,1330., 110.,   0.,   0.,   0.
+     *,2340., .22500,1130.,-130.,   0.,   0.,   0.
+     *,2340., .25000,1230.,-230.,   0.,   0.,   0.
+     *,2340., .29500,2331., 120.,   0.,   0.,   0.
+     *,2340., .34000,1331., 110.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=433,450)/
+     * 2340., .38500,1131.,-130.,   0.,   0.,   0.
+     *,2340., .43000,1231.,-230.,   0.,   0.,   0.
+     *,2340., .47500,2330., 121.,   0.,   0.,   0.
+     *,2340., .52000,1330., 111.,   0.,   0.,   0.
+     *,2340., .56500,1130.,-131.,   0.,   0.,   0.
+     *,2340., .61000,1230.,-231.,   0.,   0.,   0.
+     *,2340., .64900,2130.,-230., 120.,-120.,   0.
+     *,2340., .68800,2130.,-230., 110., 110.,   0.
+     *,2340., .72700,2130.,-130., 120., 110.,   0.
+     *,2340., .76600,1130.,-230.,-120., 110.,   0.
+     *,2340., .80500,1130.,-130., 120.,-120.,   0.
+     *,2340., .84400,1130.,-130., 110., 110.,   0.
+     *,2340., .88300,1330., 120.,-120., 110.,   0.
+     *,2340., .92200,1330., 110., 110., 110.,   0.
+     *,2340., .96100,2330., 120., 120.,-120.,   0.
+     *,2340.,1.00000,2330., 120., 110., 110.,   0.
+     *,3240., .03750, -12.,  11.,2330.,   0.,   0.
+     *,3240., .07500, -12.,  11.,2331.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=451,468)/
+     * 3240., .11250, -14.,  13.,2330.,   0.,   0.
+     *,3240., .15000, -14.,  13.,2331.,   0.,   0.
+     *,3240., .17500,2330., 120.,   0.,   0.,   0.
+     *,3240., .20000,1330., 110.,   0.,   0.,   0.
+     *,3240., .22500,1130.,-130.,   0.,   0.,   0.
+     *,3240., .25000,1230.,-230.,   0.,   0.,   0.
+     *,3240., .29500,2331., 120.,   0.,   0.,   0.
+     *,3240., .34000,1331., 110.,   0.,   0.,   0.
+     *,3240., .38500,1131.,-130.,   0.,   0.,   0.
+     *,3240., .43000,1231.,-230.,   0.,   0.,   0.
+     *,3240., .47500,2330., 121.,   0.,   0.,   0.
+     *,3240., .52000,1330., 111.,   0.,   0.,   0.
+     *,3240., .56500,1130.,-131.,   0.,   0.,   0.
+     *,3240., .61000,1230.,-231.,   0.,   0.,   0.
+     *,3240., .64900,2130.,-230., 120.,-120.,   0.
+     *,3240., .68800,2130.,-230., 110., 110.,   0.
+     *,3240., .72700,2130.,-130., 120., 110.,   0.
+     *,3240., .76600,1130.,-230.,-120., 110.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=469,486)/
+     * 3240., .80500,1130.,-130., 120.,-120.,   0.
+     *,3240., .84400,1130.,-130., 110., 110.,   0.
+     *,3240., .88300,1330., 120.,-120., 110.,   0.
+     *,3240., .92200,1330., 110., 110., 110.,   0.
+     *,3240., .96100,2330., 120., 120.,-120.,   0.
+     *,3240.,1.00000,2330., 120., 110., 110.,   0.
+     *,3340., .07500, -12.,  11.,3331.,   0.,   0.
+     *,3340., .15000, -12.,  11.,3331.,   0.,   0.
+     *,3340., .25000,1330.,-230.,   0.,   0.,   0.
+     *,3340., .31000,3331., 120.,   0.,   0.,   0.
+     *,3340., .37000,1331.,-230.,   0.,   0.,   0.
+     *,3340., .43000,1330.,-231.,   0.,   0.,   0.
+     *,3340., .49000,2330.,-230., 120.,   0.,   0.
+     *,3340., .55000,1330.,-230., 110.,   0.,   0.
+     *,3340., .61000,1330.,-130., 120.,   0.,   0.
+     *,3340., .67500,3331., 120., 120.,-120.,   0.
+     *,3340., .74000,3331., 120., 110., 110.,   0.
+     *,3340., .80500,1330.,-230., 120.,-120.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=487,504)/
+     * 3340., .87000,1330.,-230., 110., 110.,   0.
+     *,3340., .93500,2330.,-230., 120., 110.,   0.
+     *,3340.,1.00000,2330.,-130., 120., 120.,   0.
+     *,1141.,1.00000,2140., 120.,   0.,   0.,   0.
+     *,1241.,1.00000,2140., 110.,   0.,   0.,   0.
+     *,2241.,1.00000,2140.,-120.,   0.,   0.,   0.
+     *,1341., .66670,2340., 120.,   0.,   0.,   0.
+     *,1341.,1.00000,1340., 110.,   0.,   0.,   0.
+     *,2341., .66670,1340.,-120.,   0.,   0.,   0.
+     *,2341.,1.00000,2340., 110.,   0.,   0.,   0.
+     *,3341.,1.00000,3340., 110.,   0.,   0.,   0.
+     *,1150., .06000,  12., -11.,1140.,   0.,   0.
+     *,1150., .12000,  12., -11.,1141.,   0.,   0.
+     *,1150., .18000,  14., -13.,1140.,   0.,   0.
+     *,1150., .24000,  14., -13.,1141.,   0.,   0.
+     *,1150., .25500,  16., -15.,1140.,   0.,   0.
+     *,1150., .27000,  16., -15.,1141.,   0.,   0.
+     *,1150., .28925,1140.,-120.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=505,522)/
+     * 1150., .30850,1140.,-121.,   0.,   0.,   0.
+     *,1150., .32775,1141.,-120.,   0.,   0.,   0.
+     *,1150., .34700,1141.,-121.,   0.,   0.,   0.
+     *,1150., .35775,1140., 340.,   0.,   0.,   0.
+     *,1150., .36850,1140., 341.,   0.,   0.,   0.
+     *,1150., .37925,1141., 340.,   0.,   0.,   0.
+     *,1150., .39000,1141., 341.,   0.,   0.,   0.
+     *,1150., .42050,1140.,-120., 110.,   0.,   0.
+     *,1150., .45100,1140.,-120., 220.,   0.,   0.
+     *,1150., .48150,1140.,-120., 111.,   0.,   0.
+     *,1150., .51200,1140.,-120., 221.,   0.,   0.
+     *,1150., .54250,1140.,-121., 110.,   0.,   0.
+     *,1150., .57300,1140.,-121., 220.,   0.,   0.
+     *,1150., .60350,1140.,-121., 111.,   0.,   0.
+     *,1150., .63400,1140.,-121., 221.,   0.,   0.
+     *,1150., .66450,1141.,-120., 110.,   0.,   0.
+     *,1150., .69500,1141.,-120., 220.,   0.,   0.
+     *,1150., .72550,1141.,-120., 111.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=523,540)/
+     * 1150., .75600,1141.,-120., 221.,   0.,   0.
+     *,1150., .78650,1141.,-121., 110.,   0.,   0.
+     *,1150., .81700,1141.,-121., 220.,   0.,   0.
+     *,1150., .84750,1141.,-121., 111.,   0.,   0.
+     *,1150., .87800,1141.,-121., 221.,   0.,   0.
+     *,1150., .89325,1140.,-130., 230.,   0.,   0.
+     *,1150., .90850,1140.,-130., 231.,   0.,   0.
+     *,1150., .92375,1140.,-131., 230.,   0.,   0.
+     *,1150., .93900,1140.,-131., 231.,   0.,   0.
+     *,1150., .95425,1141.,-130., 230.,   0.,   0.
+     *,1150., .96950,1141.,-130., 231.,   0.,   0.
+     *,1150., .98475,1141.,-131., 230.,   0.,   0.
+     *,1150.,1.00000,1141.,-131., 231.,   0.,   0.
+     *,1250., .06000,  12., -11.,1240.,   0.,   0.
+     *,1250., .12000,  12., -11.,1241.,   0.,   0.
+     *,1250., .18000,  14., -13.,1240.,   0.,   0.
+     *,1250., .24000,  14., -13.,1241.,   0.,   0.
+     *,1250., .25500,  16., -15.,1240.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=541,558)/
+     * 1250., .27000,  16., -15.,1241.,   0.,   0.
+     *,1250., .28925,1240.,-120.,   0.,   0.,   0.
+     *,1250., .30850,1240.,-121.,   0.,   0.,   0.
+     *,1250., .32775,1241.,-120.,   0.,   0.,   0.
+     *,1250., .34700,1241.,-121.,   0.,   0.,   0.
+     *,1250., .35775,1240., 340.,   0.,   0.,   0.
+     *,1250., .36850,1240., 341.,   0.,   0.,   0.
+     *,1250., .37925,1241., 340.,   0.,   0.,   0.
+     *,1250., .39000,1241., 341.,   0.,   0.,   0.
+     *,1250., .42050,1240.,-120., 110.,   0.,   0.
+     *,1250., .45100,1240.,-120., 220.,   0.,   0.
+     *,1250., .48150,1240.,-120., 111.,   0.,   0.
+     *,1250., .51200,1240.,-120., 221.,   0.,   0.
+     *,1250., .54250,1240.,-121., 110.,   0.,   0.
+     *,1250., .57300,1240.,-121., 220.,   0.,   0.
+     *,1250., .60350,1240.,-121., 111.,   0.,   0.
+     *,1250., .63400,1240.,-121., 221.,   0.,   0.
+     *,1250., .66450,1241.,-120., 110.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=559,576)/
+     * 1250., .69500,1241.,-120., 220.,   0.,   0.
+     *,1250., .72550,1241.,-120., 111.,   0.,   0.
+     *,1250., .75600,1241.,-120., 221.,   0.,   0.
+     *,1250., .78650,1241.,-121., 110.,   0.,   0.
+     *,1250., .81700,1241.,-121., 220.,   0.,   0.
+     *,1250., .84750,1241.,-121., 111.,   0.,   0.
+     *,1250., .87800,1241.,-121., 221.,   0.,   0.
+     *,1250., .89325,1240.,-130., 230.,   0.,   0.
+     *,1250., .90850,1240.,-130., 231.,   0.,   0.
+     *,1250., .92375,1240.,-131., 230.,   0.,   0.
+     *,1250., .93900,1240.,-131., 231.,   0.,   0.
+     *,1250., .95425,1241.,-130., 230.,   0.,   0.
+     *,1250., .96950,1241.,-130., 231.,   0.,   0.
+     *,1250., .98475,1241.,-131., 230.,   0.,   0.
+     *,1250.,1.00000,1241.,-131., 231.,   0.,   0.
+     *,1350., .06000,  12., -11.,1340.,   0.,   0.
+     *,1350., .12000,  12., -11.,1341.,   0.,   0.
+     *,1350., .18000,  14., -13.,1340.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=577,594)/
+     * 1350., .24000,  14., -13.,1341.,   0.,   0.
+     *,1350., .25500,  16., -15.,1340.,   0.,   0.
+     *,1350., .27000,  16., -15.,1341.,   0.,   0.
+     *,1350., .28925,1340.,-120.,   0.,   0.,   0.
+     *,1350., .30850,1340.,-121.,   0.,   0.,   0.
+     *,1350., .32775,1341.,-120.,   0.,   0.,   0.
+     *,1350., .34700,1341.,-121.,   0.,   0.,   0.
+     *,1350., .35775,1340., 340.,   0.,   0.,   0.
+     *,1350., .36850,1340., 341.,   0.,   0.,   0.
+     *,1350., .37925,1341., 340.,   0.,   0.,   0.
+     *,1350., .39000,1341., 341.,   0.,   0.,   0.
+     *,1350., .42050,1340.,-120., 110.,   0.,   0.
+     *,1350., .45100,1340.,-120., 220.,   0.,   0.
+     *,1350., .48150,1340.,-120., 111.,   0.,   0.
+     *,1350., .51200,1340.,-120., 221.,   0.,   0.
+     *,1350., .54250,1340.,-121., 110.,   0.,   0.
+     *,1350., .57300,1340.,-121., 220.,   0.,   0.
+     *,1350., .60350,1340.,-121., 111.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=595,612)/
+     * 1350., .63400,1340.,-121., 221.,   0.,   0.
+     *,1350., .66450,1341.,-120., 110.,   0.,   0.
+     *,1350., .69500,1341.,-120., 220.,   0.,   0.
+     *,1350., .72550,1341.,-120., 111.,   0.,   0.
+     *,1350., .75600,1341.,-120., 221.,   0.,   0.
+     *,1350., .78650,1341.,-121., 110.,   0.,   0.
+     *,1350., .81700,1341.,-121., 220.,   0.,   0.
+     *,1350., .84750,1341.,-121., 111.,   0.,   0.
+     *,1350., .87800,1341.,-121., 221.,   0.,   0.
+     *,1350., .89325,1340.,-130., 230.,   0.,   0.
+     *,1350., .90850,1340.,-130., 231.,   0.,   0.
+     *,1350., .92375,1340.,-131., 230.,   0.,   0.
+     *,1350., .93900,1340.,-131., 231.,   0.,   0.
+     *,1350., .95425,1341.,-130., 230.,   0.,   0.
+     *,1350., .96950,1341.,-130., 231.,   0.,   0.
+     *,1350., .98475,1341.,-131., 230.,   0.,   0.
+     *,1350.,1.00000,1341.,-131., 231.,   0.,   0.
+     *,2150., .06000,  12., -11.,2140.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=613,630)/
+     * 2150., .12000,  12., -11.,1241.,   0.,   0.
+     *,2150., .18000,  14., -13.,2140.,   0.,   0.
+     *,2150., .24000,  14., -13.,1241.,   0.,   0.
+     *,2150., .25500,  16., -15.,2140.,   0.,   0.
+     *,2150., .27000,  16., -15.,1241.,   0.,   0.
+     *,2150., .28925,2140.,-120.,   0.,   0.,   0.
+     *,2150., .30850,2140.,-121.,   0.,   0.,   0.
+     *,2150., .32775,1241.,-120.,   0.,   0.,   0.
+     *,2150., .34700,1241.,-121.,   0.,   0.,   0.
+     *,2150., .35775,2140., 340.,   0.,   0.,   0.
+     *,2150., .36850,2140., 341.,   0.,   0.,   0.
+     *,2150., .37925,1241., 340.,   0.,   0.,   0.
+     *,2150., .39000,1241., 341.,   0.,   0.,   0.
+     *,2150., .42050,2140.,-120., 110.,   0.,   0.
+     *,2150., .45100,2140.,-120., 220.,   0.,   0.
+     *,2150., .48150,2140.,-120., 111.,   0.,   0.
+     *,2150., .51200,2140.,-120., 221.,   0.,   0.
+     *,2150., .54250,2140.,-121., 110.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=631,648)/
+     * 2150., .57300,2140.,-121., 220.,   0.,   0.
+     *,2150., .60350,2140.,-121., 111.,   0.,   0.
+     *,2150., .63400,2140.,-121., 221.,   0.,   0.
+     *,2150., .66450,1241.,-120., 110.,   0.,   0.
+     *,2150., .69500,1241.,-120., 220.,   0.,   0.
+     *,2150., .72550,1241.,-120., 111.,   0.,   0.
+     *,2150., .75600,1241.,-120., 221.,   0.,   0.
+     *,2150., .78650,1241.,-121., 110.,   0.,   0.
+     *,2150., .81700,1241.,-121., 220.,   0.,   0.
+     *,2150., .84750,1241.,-121., 111.,   0.,   0.
+     *,2150., .87800,1241.,-121., 221.,   0.,   0.
+     *,2150., .89325,2140.,-130., 230.,   0.,   0.
+     *,2150., .90850,2140.,-130., 231.,   0.,   0.
+     *,2150., .92375,2140.,-131., 230.,   0.,   0.
+     *,2150., .93900,2140.,-131., 231.,   0.,   0.
+     *,2150., .95425,1241.,-130., 230.,   0.,   0.
+     *,2150., .96950,1241.,-130., 231.,   0.,   0.
+     *,2150., .98475,1241.,-131., 230.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=649,666)/
+     * 2150.,1.00000,1241.,-131., 231.,   0.,   0.
+     *,2250., .06000,  12., -11.,2240.,   0.,   0.
+     *,2250., .12000,  12., -11.,2241.,   0.,   0.
+     *,2250., .18000,  14., -13.,2240.,   0.,   0.
+     *,2250., .24000,  14., -13.,2241.,   0.,   0.
+     *,2250., .25500,  16., -15.,2240.,   0.,   0.
+     *,2250., .27000,  16., -15.,2241.,   0.,   0.
+     *,2250., .28925,2240.,-120.,   0.,   0.,   0.
+     *,2250., .30850,2240.,-121.,   0.,   0.,   0.
+     *,2250., .32775,2241.,-120.,   0.,   0.,   0.
+     *,2250., .34700,2241.,-121.,   0.,   0.,   0.
+     *,2250., .35775,2240., 340.,   0.,   0.,   0.
+     *,2250., .36850,2240., 341.,   0.,   0.,   0.
+     *,2250., .37925,2241., 340.,   0.,   0.,   0.
+     *,2250., .39000,2241., 341.,   0.,   0.,   0.
+     *,2250., .42050,2240.,-120., 110.,   0.,   0.
+     *,2250., .45100,2240.,-120., 220.,   0.,   0.
+     *,2250., .48150,2240.,-120., 111.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=667,684)/
+     * 2250., .51200,2240.,-120., 221.,   0.,   0.
+     *,2250., .54250,2240.,-121., 110.,   0.,   0.
+     *,2250., .57300,2240.,-121., 220.,   0.,   0.
+     *,2250., .60350,2240.,-121., 111.,   0.,   0.
+     *,2250., .63400,2240.,-121., 221.,   0.,   0.
+     *,2250., .66450,2241.,-120., 110.,   0.,   0.
+     *,2250., .69500,2241.,-120., 220.,   0.,   0.
+     *,2250., .72550,2241.,-120., 111.,   0.,   0.
+     *,2250., .75600,2241.,-120., 221.,   0.,   0.
+     *,2250., .78650,2241.,-121., 110.,   0.,   0.
+     *,2250., .81700,2241.,-121., 220.,   0.,   0.
+     *,2250., .84750,2241.,-121., 111.,   0.,   0.
+     *,2250., .87800,2241.,-121., 221.,   0.,   0.
+     *,2250., .89325,2240.,-130., 230.,   0.,   0.
+     *,2250., .90850,2240.,-130., 231.,   0.,   0.
+     *,2250., .92375,2240.,-131., 230.,   0.,   0.
+     *,2250., .93900,2240.,-131., 231.,   0.,   0.
+     *,2250., .95425,2241.,-130., 230.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=685,702)/
+     * 2250., .96950,2241.,-130., 231.,   0.,   0.
+     *,2250., .98475,2241.,-131., 230.,   0.,   0.
+     *,2250.,1.00000,2241.,-131., 231.,   0.,   0.
+     *,2350., .06000,  12., -11.,2340.,   0.,   0.
+     *,2350., .12000,  12., -11.,2341.,   0.,   0.
+     *,2350., .18000,  14., -13.,2340.,   0.,   0.
+     *,2350., .24000,  14., -13.,2341.,   0.,   0.
+     *,2350., .25500,  16., -15.,2340.,   0.,   0.
+     *,2350., .27000,  16., -15.,2341.,   0.,   0.
+     *,2350., .28925,2340.,-120.,   0.,   0.,   0.
+     *,2350., .30850,2340.,-121.,   0.,   0.,   0.
+     *,2350., .32775,2341.,-120.,   0.,   0.,   0.
+     *,2350., .34700,2341.,-121.,   0.,   0.,   0.
+     *,2350., .35775,2340., 340.,   0.,   0.,   0.
+     *,2350., .36850,2340., 341.,   0.,   0.,   0.
+     *,2350., .37925,2341., 340.,   0.,   0.,   0.
+     *,2350., .39000,2341., 341.,   0.,   0.,   0.
+     *,2350., .42050,2340.,-120., 110.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=703,720)/
+     * 2350., .45100,2340.,-120., 220.,   0.,   0.
+     *,2350., .48150,2340.,-120., 111.,   0.,   0.
+     *,2350., .51200,2340.,-120., 221.,   0.,   0.
+     *,2350., .54250,2340.,-121., 110.,   0.,   0.
+     *,2350., .57300,2340.,-121., 220.,   0.,   0.
+     *,2350., .60350,2340.,-121., 111.,   0.,   0.
+     *,2350., .63400,2340.,-121., 221.,   0.,   0.
+     *,2350., .66450,2341.,-120., 110.,   0.,   0.
+     *,2350., .69500,2341.,-120., 220.,   0.,   0.
+     *,2350., .72550,2341.,-120., 111.,   0.,   0.
+     *,2350., .75600,2341.,-120., 221.,   0.,   0.
+     *,2350., .78650,2341.,-121., 110.,   0.,   0.
+     *,2350., .81700,2341.,-121., 220.,   0.,   0.
+     *,2350., .84750,2341.,-121., 111.,   0.,   0.
+     *,2350., .87800,2341.,-121., 221.,   0.,   0.
+     *,2350., .89325,2340.,-130., 230.,   0.,   0.
+     *,2350., .90850,2340.,-130., 231.,   0.,   0.
+     *,2350., .92375,2340.,-131., 230.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=721,738)/
+     * 2350., .93900,2340.,-131., 231.,   0.,   0.
+     *,2350., .95425,2341.,-130., 230.,   0.,   0.
+     *,2350., .96950,2341.,-130., 231.,   0.,   0.
+     *,2350., .98475,2341.,-131., 230.,   0.,   0.
+     *,2350.,1.00000,2341.,-131., 231.,   0.,   0.
+     *,3150., .06000,  12., -11.,3140.,   0.,   0.
+     *,3150., .12000,  12., -11.,1341.,   0.,   0.
+     *,3150., .18000,  14., -13.,3140.,   0.,   0.
+     *,3150., .24000,  14., -13.,1341.,   0.,   0.
+     *,3150., .25500,  16., -15.,3140.,   0.,   0.
+     *,3150., .27000,  16., -15.,1341.,   0.,   0.
+     *,3150., .28925,3140.,-120.,   0.,   0.,   0.
+     *,3150., .30850,3140.,-121.,   0.,   0.,   0.
+     *,3150., .32775,1341.,-120.,   0.,   0.,   0.
+     *,3150., .34700,1341.,-121.,   0.,   0.,   0.
+     *,3150., .35775,3140., 340.,   0.,   0.,   0.
+     *,3150., .36850,3140., 341.,   0.,   0.,   0.
+     *,3150., .37925,1341., 340.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=739,756)/
+     * 3150., .39000,1341., 341.,   0.,   0.,   0.
+     *,3150., .42050,3140.,-120., 110.,   0.,   0.
+     *,3150., .45100,3140.,-120., 220.,   0.,   0.
+     *,3150., .48150,3140.,-120., 111.,   0.,   0.
+     *,3150., .51200,3140.,-120., 221.,   0.,   0.
+     *,3150., .54250,3140.,-121., 110.,   0.,   0.
+     *,3150., .57300,3140.,-121., 220.,   0.,   0.
+     *,3150., .60350,3140.,-121., 111.,   0.,   0.
+     *,3150., .63400,3140.,-121., 221.,   0.,   0.
+     *,3150., .66450,1341.,-120., 110.,   0.,   0.
+     *,3150., .69500,1341.,-120., 220.,   0.,   0.
+     *,3150., .72550,1341.,-120., 111.,   0.,   0.
+     *,3150., .75600,1341.,-120., 221.,   0.,   0.
+     *,3150., .78650,1341.,-121., 110.,   0.,   0.
+     *,3150., .81700,1341.,-121., 220.,   0.,   0.
+     *,3150., .84750,1341.,-121., 111.,   0.,   0.
+     *,3150., .87800,1341.,-121., 221.,   0.,   0.
+     *,3150., .89325,3140.,-130., 230.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=757,774)/
+     * 3150., .90850,3140.,-130., 231.,   0.,   0.
+     *,3150., .92375,3140.,-131., 230.,   0.,   0.
+     *,3150., .93900,3140.,-131., 231.,   0.,   0.
+     *,3150., .95425,1341.,-130., 230.,   0.,   0.
+     *,3150., .96950,1341.,-130., 231.,   0.,   0.
+     *,3150., .98475,1341.,-131., 230.,   0.,   0.
+     *,3150.,1.00000,1341.,-131., 231.,   0.,   0.
+     *,3250., .06000,  12., -11.,3240.,   0.,   0.
+     *,3250., .12000,  12., -11.,2341.,   0.,   0.
+     *,3250., .18000,  14., -13.,3240.,   0.,   0.
+     *,3250., .24000,  14., -13.,2341.,   0.,   0.
+     *,3250., .25500,  16., -15.,3240.,   0.,   0.
+     *,3250., .27000,  16., -15.,2341.,   0.,   0.
+     *,3250., .28925,3240.,-120.,   0.,   0.,   0.
+     *,3250., .30850,3240.,-121.,   0.,   0.,   0.
+     *,3250., .32775,2341.,-120.,   0.,   0.,   0.
+     *,3250., .34700,2341.,-121.,   0.,   0.,   0.
+     *,3250., .35775,3240., 340.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=775,792)/
+     * 3250., .36850,3240., 341.,   0.,   0.,   0.
+     *,3250., .37925,2341., 340.,   0.,   0.,   0.
+     *,3250., .39000,2341., 341.,   0.,   0.,   0.
+     *,3250., .42050,3240.,-120., 110.,   0.,   0.
+     *,3250., .45100,3240.,-120., 220.,   0.,   0.
+     *,3250., .48150,3240.,-120., 111.,   0.,   0.
+     *,3250., .51200,3240.,-120., 221.,   0.,   0.
+     *,3250., .54250,3240.,-121., 110.,   0.,   0.
+     *,3250., .57300,3240.,-121., 220.,   0.,   0.
+     *,3250., .60350,3240.,-121., 111.,   0.,   0.
+     *,3250., .63400,3240.,-121., 221.,   0.,   0.
+     *,3250., .66450,2341.,-120., 110.,   0.,   0.
+     *,3250., .69500,2341.,-120., 220.,   0.,   0.
+     *,3250., .72550,2341.,-120., 111.,   0.,   0.
+     *,3250., .75600,2341.,-120., 221.,   0.,   0.
+     *,3250., .78650,2341.,-121., 110.,   0.,   0.
+     *,3250., .81700,2341.,-121., 220.,   0.,   0.
+     *,3250., .84750,2341.,-121., 111.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=793,810)/
+     * 3250., .87800,2341.,-121., 221.,   0.,   0.
+     *,3250., .89325,3240.,-130., 230.,   0.,   0.
+     *,3250., .90850,3240.,-130., 231.,   0.,   0.
+     *,3250., .92375,3240.,-131., 230.,   0.,   0.
+     *,3250., .93900,3240.,-131., 231.,   0.,   0.
+     *,3250., .95425,2341.,-130., 230.,   0.,   0.
+     *,3250., .96950,2341.,-130., 231.,   0.,   0.
+     *,3250., .98475,2341.,-131., 230.,   0.,   0.
+     *,3250.,1.00000,2341.,-131., 231.,   0.,   0.
+     *,3350., .06000,  12., -11.,3340.,   0.,   0.
+     *,3350., .12000,  12., -11.,3341.,   0.,   0.
+     *,3350., .18000,  14., -13.,3340.,   0.,   0.
+     *,3350., .24000,  14., -13.,3341.,   0.,   0.
+     *,3350., .25500,  16., -15.,3340.,   0.,   0.
+     *,3350., .27000,  16., -15.,3341.,   0.,   0.
+     *,3350., .28925,3340.,-120.,   0.,   0.,   0.
+     *,3350., .30850,3340.,-121.,   0.,   0.,   0.
+     *,3350., .32775,3341.,-120.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=811,828)/
+     * 3350., .34700,3341.,-121.,   0.,   0.,   0.
+     *,3350., .35775,3340., 340.,   0.,   0.,   0.
+     *,3350., .36850,3340., 341.,   0.,   0.,   0.
+     *,3350., .37925,3341., 340.,   0.,   0.,   0.
+     *,3350., .39000,3341., 341.,   0.,   0.,   0.
+     *,3350., .42050,3340.,-120., 110.,   0.,   0.
+     *,3350., .45100,3340.,-120., 220.,   0.,   0.
+     *,3350., .48150,3340.,-120., 111.,   0.,   0.
+     *,3350., .51200,3340.,-120., 221.,   0.,   0.
+     *,3350., .54250,3340.,-121., 110.,   0.,   0.
+     *,3350., .57300,3340.,-121., 220.,   0.,   0.
+     *,3350., .60350,3340.,-121., 111.,   0.,   0.
+     *,3350., .63400,3340.,-121., 221.,   0.,   0.
+     *,3350., .66450,3341.,-120., 110.,   0.,   0.
+     *,3350., .69500,3341.,-120., 220.,   0.,   0.
+     *,3350., .72550,3341.,-120., 111.,   0.,   0.
+     *,3350., .75600,3341.,-120., 221.,   0.,   0.
+     *,3350., .78650,3341.,-121., 110.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=829,846)/
+     * 3350., .81700,3341.,-121., 220.,   0.,   0.
+     *,3350., .84750,3341.,-121., 111.,   0.,   0.
+     *,3350., .87800,3341.,-121., 221.,   0.,   0.
+     *,3350., .89325,3340.,-130., 230.,   0.,   0.
+     *,3350., .90850,3340.,-130., 231.,   0.,   0.
+     *,3350., .92375,3340.,-131., 230.,   0.,   0.
+     *,3350., .93900,3340.,-131., 231.,   0.,   0.
+     *,3350., .95425,3341.,-130., 230.,   0.,   0.
+     *,3350., .96950,3341.,-130., 231.,   0.,   0.
+     *,3350., .98475,3341.,-131., 230.,   0.,   0.
+     *,3350.,1.00000,3341.,-131., 231.,   0.,   0.
+     *,1160., .33300,   1.,  -2.,1500.,   0.,   0.
+     *,1160., .66700,   4.,  -3.,1500.,   0.,   0.
+     *,1160., .77800, -12.,  11.,1500.,   0.,   0.
+     *,1160., .88900, -14.,  13.,1500.,   0.,   0.
+     *,1160.,1.00000, -16.,  15.,1500.,   0.,   0.
+     *,1260., .33300,   1.,  -2.,2500.,   0.,   0.
+     *,1260., .66700,   4.,  -3.,2500.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=847,864)/
+     * 1260., .77800, -12.,  11.,2500.,   0.,   0.
+     *,1260., .88900, -14.,  13.,2500.,   0.,   0.
+     *,1260.,1.00000, -16.,  15.,2500.,   0.,   0.
+     *,2260., .33300,   1.,  -2.,2500.,   0.,   0.
+     *,2260., .66700,   4.,  -3.,2500.,   0.,   0.
+     *,2260., .77800, -12.,  11.,2500.,   0.,   0.
+     *,2260., .88900, -14.,  13.,2500.,   0.,   0.
+     *,2260.,1.00000, -16.,  15.,2500.,   0.,   0.
+     *,2160., .33300,   1.,  -2.,1500.,   0.,   0.
+     *,2160., .66700,   4.,  -3.,1500.,   0.,   0.
+     *,2160., .77800, -12.,  11.,1500.,   0.,   0.
+     *,2160., .88900, -14.,  13.,1500.,   0.,   0.
+     *,2160.,1.00000, -16.,  15.,1500.,   0.,   0.
+     *,1360., .33300,   1.,  -2.,3500.,   0.,   0.
+     *,1360., .66700,   4.,  -3.,3500.,   0.,   0.
+     *,1360., .77800, -12.,  11.,3500.,   0.,   0.
+     *,1360., .88900, -14.,  13.,3500.,   0.,   0.
+     *,1360.,1.00000, -16.,  15.,3500.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=865,882)/
+     * 2360., .33300,   1.,  -2.,3500.,   0.,   0.
+     *,2360., .66700,   4.,  -3.,3500.,   0.,   0.
+     *,2360., .77800, -12.,  11.,3500.,   0.,   0.
+     *,2360., .88900, -14.,  13.,3500.,   0.,   0.
+     *,2360.,1.00000, -16.,  15.,3500.,   0.,   0.
+     *,3360., .33300,   1.,  -2.,3500.,   0.,   0.
+     *,3360., .66700,   4.,  -3.,3500.,   0.,   0.
+     *,3360., .77800, -12.,  11.,3500.,   0.,   0.
+     *,3360., .88900, -14.,  13.,3500.,   0.,   0.
+     *,3360.,1.00000, -16.,  15.,3500.,   0.,   0.
+     *,1151.,1.00000,1150.,  10.,   0.,   0.,   0.
+     *,1251.,1.00000,1250.,  10.,   0.,   0.,   0.
+     *,2251.,1.00000,2250.,  10.,   0.,   0.,   0.
+     *,1351.,1.00000,1350.,  10.,   0.,   0.,   0.
+     *,2351.,1.00000,2350.,  10.,   0.,   0.,   0.
+     *,3351.,1.00000,3350.,  10.,   0.,   0.,   0.
+     *,1161.,1.00000,1160.,  10.,   0.,   0.,   0.
+     *,1261.,1.00000,1260.,  10.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=883,886)/
+     * 2261.,1.00000,2260.,  10.,   0.,   0.,   0.
+     *,1361.,1.00000,1360.,  10.,   0.,   0.,   0.
+     *,2361.,1.00000,2360.,  10.,   0.,   0.,   0.
+     *,3361.,1.00000,3360.,  10.,   0.,   0.,   0./
+C    *---------------------------------------------
+C    *    DELTA++ RESONANCES
+C    *---------------------------------------------
+      DATA ((DECTAB(I,J),I=1,7),J=887,900)/
+C    *--DL++(1620)---------------------------------
+     * 1112., .30000,1120., 120.,   0.,   0.,   0.
+     *,1112., .66000,1111., 110.,   0.,   0.,   0.
+     *,1112., .90000,1121., 120.,   0.,   0.,   0.
+     *,1112.,1.00000,1120., 120., 110.,   0.,   0.
+C    *--DL++(1700)---------------------------------
+     *,1113., .15000,1120., 120.,   0.,   0.,   0.
+     *,1113., .51000,1111., 110.,   0.,   0.,   0.
+     *,1113., .75000,1121., 120.,   0.,   0.,   0.
+     *,1113.,1.00000,1120., 120., 110.,   0.,   0.
+C    *--DL++(1925)---------------------------------
+     *,1114., .28000,1120., 120.,   0.,   0.,   0.
+     *,1114., .40600,1111., 110.,   0.,   0.,   0.
+     *,1114., .49000,1121., 120.,   0.,   0.,   0.
+     *,1114., .69000,1120., 121.,   0.,   0.,   0.
+     *,1114., .70000,1130., 130.,   0.,   0.,   0.
+     *,1114.,1.00000,1122., 120.,   0.,   0.,   0./
+C    *---------------------------------------------
+C    *    DELTA- RESONANCES
+C    *---------------------------------------------
+      DATA ((DECTAB(I,J),I=1,7),J=901,914)/
+C    *--DL-(1620)----------------------------------
+     * 2222., .30000,1220.,-120.,   0.,   0.,   0.
+     *,2222., .66000,2221., 110.,   0.,   0.,   0.
+     *,2222., .90000,1221.,-120.,   0.,   0.,   0.
+     *,2222.,1.00000,1220., 110.,-120.,   0.,   0.
+C    *--DL-(1700)----------------------------------
+     *,2223., .15000,1220.,-120.,   0.,   0.,   0.
+     *,2223., .51000,2221., 110.,   0.,   0.,   0.
+     *,2223., .75000,1221.,-120.,   0.,   0.,   0.
+     *,2223.,1.00000,1220., 110.,-120.,   0.,   0.
+C    *--DL-(1925)----------------------------------
+     *,2224., .28000,1220.,-120.,   0.,   0.,   0.
+     *,2224., .40600,2221., 110.,   0.,   0.,   0.
+     *,2224., .49000,1221.,-120.,   0.,   0.,   0.
+     *,2224., .69000,1220.,-121.,   0.,   0.,   0.
+     *,2224., .70000,2230., 230.,   0.,   0.,   0.
+     *,2224.,1.00000,1222.,-120.,   0.,   0.,   0./
+C    *---------------------------------------------
+C    *    N*+ RESONANCES + DELTA+ RESONANCES
+C    *---------------------------------------------
+      DATA ((DECTAB(I,J),I=1,7),J=915,931)/
+C    *--N*+(1440)----------------------------------
+     * 1122., .20000,1120., 110.,   0.,   0.,   0.
+     *,1122., .60000,1220., 120.,   0.,   0.,   0.
+     *,1122., .68000,1111.,-120.,   0.,   0.,   0.
+     *,1122., .73000,1121., 110.,   0.,   0.,   0.
+     *,1122., .76000,1221., 120.,   0.,   0.,   0.
+     *,1122., .84000,1120., 120.,-120.,   0.,   0.
+     *,1122., .87000,1120., 110., 110.,   0.,   0.
+     *,1122.,1.00000,1220., 120., 110.,   0.,   0.
+C    *--N*+(1530)----------------------------------
+     *,1123., .17000,1120., 110.,   0.,   0.,   0.
+     *,1123., .51000,1220., 120.,   0.,   0.,   0.
+     *,1123., .57000,1111.,-120.,   0.,   0.,   0.
+     *,1123., .61000,1121., 110.,   0.,   0.,   0.
+     *,1123., .63000,1221., 120.,   0.,   0.,   0.
+     *,1123., .67000,1120., 120.,-120.,   0.,   0.
+     *,1123., .68000,1120., 110., 110.,   0.,   0.
+     *,1123., .75000,1220., 120., 110.,   0.,   0.
+     *,1123.,1.00000,1120., 220.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=932,948)/
+C    *--DL+(1620)----------------------------------
+     * 1124., .20000,1120., 110.,   0.,   0.,   0.
+     *,1124., .30000,1220., 120.,   0.,   0.,   0.
+     *,1124., .54000,1111.,-120.,   0.,   0.,   0.
+     *,1124., .58000,1121., 110.,   0.,   0.,   0.
+     *,1124., .90000,1221., 120.,   0.,   0.,   0.
+     *,1124., .96000,1120., 120.,-120.,   0.,   0.
+     *,1124.,1.00000,1220., 120., 110.,   0.,   0.
+C    *--N*+(1665)----------------------------------
+     *,1125., .16700,1120., 110.,   0.,   0.,   0.
+     *,1125., .49970,1220., 120.,   0.,   0.,   0.
+     *,1125., .62470,1111.,-120.,   0.,   0.,   0.
+     *,1125., .70800,1121., 110.,   0.,   0.,   0.
+     *,1125., .74970,1221., 120.,   0.,   0.,   0.
+     *,1125., .82080,1120., 120.,-120.,   0.,   0.
+     *,1125., .85190,1120., 110., 110.,   0.,   0.
+     *,1125., .96300,1220., 120., 110.,   0.,   0.
+     *,1125., .97300,1120., 220.,   0.,   0.,   0.
+     *,1125.,1.00000,2130., 130.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=949,955)/
+C    *--DL+(1700)----------------------------------
+     * 1126., .10000,1120., 110.,   0.,   0.,   0.
+     *,1126., .15000,1220., 120.,   0.,   0.,   0.
+     *,1126., .39000,1111.,-120.,   0.,   0.,   0.
+     *,1126., .43000,1121., 110.,   0.,   0.,   0.
+     *,1126., .75000,1221., 120.,   0.,   0.,   0.
+     *,1126., .91500,1120., 120.,-120.,   0.,   0.
+     *,1126.,1.00000,1220., 120., 110.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=956,969)/
+C    *--N*+(1710)----------------------------------
+     * 1127., .04430,1120., 110.,   0.,   0.,   0.
+     *,1127., .13290,1220., 120.,   0.,   0.,   0.
+     *,1127., .23790,1111.,-120.,   0.,   0.,   0.
+     *,1127., .30790,1121., 110.,   0.,   0.,   0.
+     *,1127., .34290,1221., 120.,   0.,   0.,   0.
+     *,1127., .41190,1120., 120.,-120.,   0.,   0.
+     *,1127., .48090,1120., 110., 110.,   0.,   0.
+     *,1127., .54990,1220., 120., 110.,   0.,   0.
+     *,1127., .66070,1120., 220.,   0.,   0.,   0.
+     *,1127., .72800,2130., 130.,   0.,   0.,   0.
+     *,1127., .74930,1230., 130.,   0.,   0.,   0.
+     *,1127., .76000,1130., 230.,   0.,   0.,   0.
+     *,1127., .84000,1120., 111.,   0.,   0.,   0.
+     *,1127.,1.00000,1220., 121.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=970,980)/
+C    *--DL+(1925)----------------------------------
+     * 1128., .18700,1120., 110.,   0.,   0.,   0.
+     *,1128., .28000,1220., 120.,   0.,   0.,   0.
+     *,1128., .36400,1111.,-120.,   0.,   0.,   0.
+     *,1128., .37800,1121., 110.,   0.,   0.,   0.
+     *,1128., .49000,1221., 120.,   0.,   0.,   0.
+     *,1128., .62300,1120., 111.,   0.,   0.,   0.
+     *,1128., .69000,1220., 121.,   0.,   0.,   0.
+     *,1128., .69350,1130., 230.,   0.,   0.,   0.
+     *,1128., .69900,1230., 130.,   0.,   0.,   0.
+     *,1128., .89900,1122., 110.,   0.,   0.,   0.
+     *,1128.,1.00000,1222., 120.,   0.,   0.,   0./
+C    *---------------------------------------------
+C    *    N*0  RESONANCES + DELTA0 RESONANCES
+C    *---------------------------------------------
+      DATA ((DECTAB(I,J),I=1,7),J=981,997)/
+C    *----------N*0(1440)--------------------------
+     * 1222., .20000,1220., 110.,   0.,   0.,   0.
+     *,1222., .60000,1120.,-120.,   0.,   0.,   0.
+     *,1222., .68000,2221., 120.,   0.,   0.,   0.
+     *,1222., .73000,1221., 110.,   0.,   0.,   0.
+     *,1222., .76000,1121.,-120.,   0.,   0.,   0.
+     *,1222., .84000,1220., 120.,-120.,   0.,   0.
+     *,1222., .87000,1220., 110., 110.,   0.,   0.
+     *,1222.,1.00000,1120.,-120., 110.,   0.,   0.
+C    *----------N*0(1530)--------------------------
+     *,1223., .17000,1220., 110.,   0.,   0.,   0.
+     *,1223., .51000,1120.,-120.,   0.,   0.,   0.
+     *,1223., .57000,2221., 120.,   0.,   0.,   0.
+     *,1223., .61000,1221., 110.,   0.,   0.,   0.
+     *,1223., .63000,1121.,-120.,   0.,   0.,   0.
+     *,1223., .67000,1220., 120.,-120.,   0.,   0.
+     *,1223., .68000,1220., 110., 110.,   0.,   0.
+     *,1223., .75000,1120.,-120., 110.,   0.,   0.
+     *,1223.,1.00000,1220., 220.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=998,1014)/
+C    *----------DL0(1620)--------------------------
+     * 1224., .20000,1220., 110.,   0.,   0.,   0.
+     *,1224., .30000,1120.,-120.,   0.,   0.,   0.
+     *,1224., .54000,2221., 120.,   0.,   0.,   0.
+     *,1224., .58000,1221., 110.,   0.,   0.,   0.
+     *,1224., .90000,1121.,-120.,   0.,   0.,   0.
+     *,1224., .96500,1220., 120.,-120.,   0.,   0.
+     *,1224.,1.00000,1120.,-120., 110.,   0.,   0.
+C    *----------N*0(1665)--------------------------
+     *,1225., .16700,1220., 110.,   0.,   0.,   0.
+     *,1225., .49970,1120.,-120.,   0.,   0.,   0.
+     *,1225., .62470,2221., 120.,   0.,   0.,   0.
+     *,1225., .70800,1221., 110.,   0.,   0.,   0.
+     *,1225., .74970,1121.,-120.,   0.,   0.,   0.
+     *,1225., .82080,1220., 120.,-120.,   0.,   0.
+     *,1225., .85190,1220., 110., 110.,   0.,   0.
+     *,1225., .96300,1120.,-120., 110.,   0.,   0.
+     *,1225., .97300,1220., 220.,   0.,   0.,   0.
+     *,1225.,1.00000,2130., 230.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=1015,1021)/
+C    *----------DL0(1700)--------------------------
+     * 1226., .10000,1220., 110.,   0.,   0.,   0.
+     *,1226., .15000,1120.,-120.,   0.,   0.,   0.
+     *,1226., .39000,2221., 120.,   0.,   0.,   0.
+     *,1226., .43000,1221., 110.,   0.,   0.,   0.
+     *,1226., .75000,1121.,-120.,   0.,   0.,   0.
+     *,1226., .91500,1220., 120.,-120.,   0.,   0.
+     *,1226.,1.00000,1120.,-120., 110.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=1022,1035)/
+C    *----------N*0(1710)--------------------------
+     * 1227., .04430,1220., 110.,   0.,   0.,   0.
+     *,1227., .13290,1120.,-120.,   0.,   0.,   0.
+     *,1227., .23790,2221., 120.,   0.,   0.,   0.
+     *,1227., .30790,1221., 110.,   0.,   0.,   0.
+     *,1227., .34290,1121.,-120.,   0.,   0.,   0.
+     *,1227., .41190,1220., 120.,-120.,   0.,   0.
+     *,1227., .48090,1220., 110., 110.,   0.,   0.
+     *,1227., .54990,1120.,-120., 110.,   0.,   0.
+     *,1227., .66070,1220., 220.,   0.,   0.,   0.
+     *,1227., .72800,2130., 230.,   0.,   0.,   0.
+     *,1227., .73870,1230., 230.,   0.,   0.,   0.
+     *,1227., .76000,2230., 130.,   0.,   0.,   0.
+     *,1227., .92000,1120.,-121.,   0.,   0.,   0.
+     *,1227.,1.00000,1220., 111.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=1036,1046)/
+C    *----------DL0(1925)--------------------------
+     * 1228., .18700,1220., 110.,   0.,   0.,   0.
+     *,1228., .28000,1120.,-120.,   0.,   0.,   0.
+     *,1228., .36400,2221., 120.,   0.,   0.,   0.
+     *,1228., .37800,1221., 110.,   0.,   0.,   0.
+     *,1228., .49000,1121.,-120.,   0.,   0.,   0.
+     *,1228., .55700,1220., 111.,   0.,   0.,   0.
+     *,1228., .69000,1120.,-121.,   0.,   0.,   0.
+     *,1228., .69350,2230., 130.,   0.,   0.,   0.
+     *,1228., .70000,1230., 230.,   0.,   0.,   0.
+     *,1228., .80000,1122.,-120.,   0.,   0.,   0.
+     *,1228.,1.00000,1222., 110.,   0.,   0.,   0./
+C    *---------------------------------------------
+C    *   LAMBDA RESONANCES + SIGMA0 RESONANCES
+C    *---------------------------------------------
+      DATA ((DECTAB(I,J),I=1,7),J=1047,1059)/
+C    *----------LAMBDA(1405)-----------------------
+     * 1233., .33000,1230., 110.,   0.,   0.,   0.
+     *,1233., .66000,2230., 120.,   0.,   0.,   0.
+     *,1233.,1.00000,1130.,-120.,   0.,   0.,   0.
+C    *----------LAMBDA(1520)-----------------------
+     *,1234., .22500,1120.,-130.,   0.,   0.,   0.
+     *,1234., .48000,1220.,-230.,   0.,   0.,   0.
+     *,1234., .62000,1230., 110.,   0.,   0.,   0.
+     *,1234., .76000,2230., 120.,   0.,   0.,   0.
+     *,1234., .90000,1130.,-120.,   0.,   0.,   0.
+     *,1234., .96000,2130., 120.,-120.,   0.,   0.
+     *,1234., .99000,2130., 110., 110.,   0.,   0.
+     *,1234., .99330,1130.,-120., 110.,   0.,   0.
+     *,1234., .99660,2230., 120., 110.,   0.,   0.
+     *,1234.,1.00000,1230., 120.,-120.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=1060,1075)/
+C    *----------LAMBDA(1645)-----------------------
+     * 1235., .10000,1120.,-130.,   0.,   0.,   0.
+     *,1235., .20000,1220.,-230.,   0.,   0.,   0.
+     *,1235., .35000,1230., 110.,   0.,   0.,   0.
+     *,1235., .50000,2230., 120.,   0.,   0.,   0.
+     *,1235., .65000,1130.,-120.,   0.,   0.,   0.
+     *,1235., .75000,2130., 120.,-120.,   0.,   0.
+     *,1235., .80000,2130., 110., 110.,   0.,   0.
+     *,1235., .84500,1130.,-120., 110.,   0.,   0.
+     *,1235., .89000,2230., 120., 110.,   0.,   0.
+     *,1235., .93500,1230., 120.,-120.,   0.,   0.
+     *,1235.,1.00000,2130., 220.,   0.,   0.,   0.
+C    *----------SIGMA0(1665)-----------------------
+     *,1236., .10000,1120.,-130.,   0.,   0.,   0.
+     *,1236., .20000,1220.,-230.,   0.,   0.,   0.
+     *,1236., .40000,2230., 120.,   0.,   0.,   0.
+     *,1236., .60000,1130.,-120.,   0.,   0.,   0.
+     *,1236.,1.00000,2130., 110.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=1076,1084)/
+C    *----------SIGMA0(1776)-----------------------
+     * 1237., .17500,1120.,-130.,   0.,   0.,   0.
+     *,1237., .35000,1220.,-230.,   0.,   0.,   0.
+     *,1237., .38750,2230., 120.,   0.,   0.,   0.
+     *,1237., .42500,1130.,-120.,   0.,   0.,   0.
+     *,1237., .57500,2130., 110.,   0.,   0.,   0.
+     *,1237., .60000,2231., 120.,   0.,   0.,   0.
+     *,1237., .62500,1131.,-120.,   0.,   0.,   0.
+     *,1237., .75000,1234., 110.,   0.,   0.,   0.
+     *,1237.,1.00000,1230., 220.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=1085,1094)/
+C    *----------LAMBDA(1845)-----------------------
+     * 1238., .17000,1120.,-130.,   0.,   0.,   0.
+     *,1238., .34000,1220.,-230.,   0.,   0.,   0.
+     *,1238., .44000,1230., 110.,   0.,   0.,   0.
+     *,1238., .54000,2230., 120.,   0.,   0.,   0.
+     *,1238., .64000,1130.,-120.,   0.,   0.,   0.
+     *,1238., .70000,1231., 110.,   0.,   0.,   0.
+     *,1238., .76000,2231., 120.,   0.,   0.,   0.
+     *,1238., .82000,1131.,-120.,   0.,   0.,   0.
+     *,1238., .91000,1120.,-131.,   0.,   0.,   0.
+     *,1238.,1.00000,1220.,-231.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=1095,1106)/
+C    *----------SIGMA0(1930)-----------------------
+     * 1239., .07500,1120.,-130.,   0.,   0.,   0.
+     *,1239., .15000,1220.,-230.,   0.,   0.,   0.
+     *,1239., .20000,1121.,-130.,   0.,   0.,   0.
+     *,1239., .25000,1221.,-230.,   0.,   0.,   0.
+     *,1239., .32500,1120.,-131.,   0.,   0.,   0.
+     *,1239., .40000,1220.,-231.,   0.,   0.,   0.
+     *,1239., .47500,2230., 120.,   0.,   0.,   0.
+     *,1239., .55000,1130.,-120.,   0.,   0.,   0.
+     *,1239., .70000,2130., 110.,   0.,   0.,   0.
+     *,1239., .77500,2231., 120.,   0.,   0.,   0.
+     *,1239., .85000,1131.,-120.,   0.,   0.,   0.
+     *,1239.,1.00000,1234., 110.,   0.,   0.,   0./
+C    *---------------------------------------------
+C    *            SIGMA+ RESONANCES
+C    *---------------------------------------------
+      DATA ((DECTAB(I,J),I=1,7),J=1107,1118)/
+C    *----------SIGMA+(1665)-----------------------
+     * 1132., .20000,1120.,-230.,   0.,   0.,   0.
+     *,1132., .40000,1130., 110.,   0.,   0.,   0.
+     *,1132., .60000,1230., 120.,   0.,   0.,   0.
+     *,1132.,1.00000,2130., 120.,   0.,   0.,   0.
+C    *----------SIGMA+(1776)-----------------------
+     *,1133., .35000,1120.,-230.,   0.,   0.,   0.
+     *,1133., .38750,1130., 110.,   0.,   0.,   0.
+     *,1133., .42500,1230., 120.,   0.,   0.,   0.
+     *,1133., .57500,2130., 120.,   0.,   0.,   0.
+     *,1133., .60000,1131., 110.,   0.,   0.,   0.
+     *,1133., .62500,1231., 120.,   0.,   0.,   0.
+     *,1133., .75000,1234., 120.,   0.,   0.,   0.
+     *,1133.,1.00000,1130., 220.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=1119,1128)/
+C    *----------SIGMA+(1930)-----------------------
+     * 1134., .15000,1120.,-230.,   0.,   0.,   0.
+     *,1134., .22500,1111.,-130.,   0.,   0.,   0.
+     *,1134., .25000,1121.,-230.,   0.,   0.,   0.
+     *,1134., .40000,1120.,-231.,   0.,   0.,   0.
+     *,1134., .47500,1130., 110.,   0.,   0.,   0.
+     *,1134., .55000,1230., 120.,   0.,   0.,   0.
+     *,1134., .70000,2130., 120.,   0.,   0.,   0.
+     *,1134., .77500,1131., 110.,   0.,   0.,   0.
+     *,1134., .85000,1231., 120.,   0.,   0.,   0.
+     *,1134.,1.00000,1234., 120.,   0.,   0.,   0./
+C    *---------------------------------------------
+C    *            SIGMA- RESONANCES
+C    *---------------------------------------------
+      DATA ((DECTAB(I,J),I=1,7),J=1129,1140)/
+C    *----------SIGMA-(1665)-----------------------
+     * 2232., .20000,1220.,-130.,   0.,   0.,   0.
+     *,2232., .40000,2230., 110.,   0.,   0.,   0.
+     *,2232., .60000,1230.,-120.,   0.,   0.,   0.
+     *,2232.,1.00000,2130.,-120.,   0.,   0.,   0.
+C    *----------SIGMA-(1776)-----------------------
+     *,2233., .35000,1220.,-130.,   0.,   0.,   0.
+     *,2233., .38750,2230., 110.,   0.,   0.,   0.
+     *,2233., .42500,1230.,-120.,   0.,   0.,   0.
+     *,2233., .57500,2130.,-120.,   0.,   0.,   0.
+     *,2233., .60000,2231., 110.,   0.,   0.,   0.
+     *,2233., .62500,1231.,-120.,   0.,   0.,   0.
+     *,2233., .75000,1234.,-120.,   0.,   0.,   0.
+     *,2233.,1.00000,2230., 220.,   0.,   0.,   0./
+      DATA ((DECTAB(I,J),I=1,7),J=1141,1150)/
+C    *----------SIGMA-(1930)-----------------------
+     * 2234., .15000,1220.,-130.,   0.,   0.,   0.
+     *,2234., .17500,1221.,-130.,   0.,   0.,   0.
+     *,2234., .25000,2221.,-230.,   0.,   0.,   0.
+     *,2234., .40000,1220.,-131.,   0.,   0.,   0.
+     *,2234., .47500,2230., 110.,   0.,   0.,   0.
+     *,2234., .55000,1230.,-120.,   0.,   0.,   0.
+     *,2234., .70000,2130.,-120.,   0.,   0.,   0.
+     *,2234., .77500,2231., 110.,   0.,   0.,   0.
+     *,2234., .85000,1231.,-120.,   0.,   0.,   0.
+     *,2234.,1.00000,1234.,-120.,   0.,   0.,   0./
+C    *---------------------------------------------
+C    *      ADDITIONAL MESONRESONANCES
+C    *---------------------------------------------
+      DATA ((DECTAB(I,J),I=1,7),J=1151,1159)/
+C    *-----------F0(975)---------------------------
+     *  332., .50000, 120.,-120.,   0.,   0.,   0.
+     *, 332., .75000, 110., 110.,   0.,   0.,   0.
+     *, 332., .87500, 130.,-130.,   0.,   0.,   0.
+     *, 332.,1.00000, 230.,-230.,   0.,   0.,   0.
+C    *-----------A0(980)---------------------------
+     *, 112., .56000, 110., 220.,   0.,   0.,   0.
+     *, 112., .78000, 130.,-130.,   0.,   0.,   0.
+     *, 112.,1.00000, 230.,-230.,   0.,   0.,   0.
+C    *-----------A+(980)---------------------------
+     *, 122., .60000, 120., 220.,   0.,   0.,   0.
+     *, 122.,1.00000, 130.,-230.,   0.,   0.,   0./
+C    *---------------------------------------------
+C    *      WEAK BARYON DECAYS
+C    *---------------------------------------------
+      DATA ((DECTAB(I,J),I=1,7),J=1160,1169)/
+C    *-----------LAMBDA(1116)----------------------
+     * 2130.,0.64200,1120.,-120.,   0.,   0.,   0.
+     *,2130.,1.00000,1220., 110.,   0.,   0.,   0.
+C    *-----------SIGMA+(1180)----------------------
+     *,1130.,0.51580,1120., 110.,   0.,   0.,   0.
+     *,1130.,1.00000,1220., 120.,   0.,   0.,   0.
+C    *-----------SIGMA-(1180)----------------------
+     *,2230.,1.00000,1220.,-120.,   0.,   0.,   0.
+C    *---------KASKADE-(1360)----------------------
+     *,2330.,1.00000,2130.,-120.,   0.,   0.,   0.
+C    *---------KASKADE0(1360)----------------------
+     *,1330.,1.00000,2130., 110.,   0.,   0.,   0.
+C    *---------OMEGA-(1680)------------------------
+     *,3331.,0.68000,2130.,-130.,   0.,   0.,   0.
+     *,3331.,0.82000,1330.,-120.,   0.,   0.,   0.
+     *,3331.,1.00000,2330., 110.,   0.,   0.,   0./
+C    *---------------------------------------------
+C    *      WEAK MESON DECAYS
+C    *---------------------------------------------
+      DATA ((DECTAB(I,J),I=1,7),J=1170,1171)/
+C    *-----------K0S(975)--------------------------
+     *   20., .68610, 120.,-120.,   0.,   0.,   0.
+     *,  20.,1.00000, 110., 110.,   0.,   0.,   0./
+C    *---------------------------------------------
+      DATA ALFA /0.00729735/, GF /1.16570E-5/, SIN2W /.215/
+C  SINW = SQRT(SIN2W), COSW=SQRT(1.-SIN2W)
+      DATA SINW /.463681/,COSW /.886002/
+C-----------------------------------------------------------------------
+      IF     ( IENTRO .EQ. 1 ) THEN
+        CALL JCENTR(3,6,3,1)
+      ELSEIF ( IENTRO .EQ. 2 ) THEN
+        CALL JCENTD
+      ENDIF
+      CALL JCENTP
+
+      CALL IDRESI
+
+C  DETERMINE WMASS2,WGAM2
+C  ----------------------
+      AMW=SQRT(PI*ALFA/(.9304*1.41421356*GF))/SINW
+      WMASS2=AMW
+      CALL IDMASS(5,AMLEP5)
+      CALL IDMASS(6,AMLEP6)
+      IF ( AMLEP5+AMLEP6 .GT. AMW ) THEN
+        NGAM=9
+      ELSE
+        NGAM=12
+      ENDIF
+      WGAM2=GF*AMW**3/(6.*PI*1.41421356)*NGAM
+
+      IRD=0
+      DO 1 I=1,MXLOOK
+        LOOK(I)=0
+ 1    CONTINUE
+      DO 2 I=1,MXDKY
+        MODE(1,I)=0
+        MODE(2,I)=0
+        MODE(3,I)=0
+        MODE(4,I)=0
+        MODE(5,I)=0
+        CBR(I)=0.
+ 2    CONTINUE
+      NODCAY=.FALSE.
+      NOETA=.FALSE.
+      NOPI0=.FALSE.
+      NONUNU=.FALSE.
+      NOEVOL=.FALSE.
+      NOHADR=.FALSE.
+      IF ( LPRINT ) WRITE(IFCH,10)
+10    FORMAT('1',30('*')/' *',28X,'*'/
+     *        ' *',5X,'ISAJET DECAY TABLE',5X,'*'/
+     *        ' *',28X,'*'/' ',30('*')//
+     *        6X,'PART',18X,'DECAY MODE',19X,'CUM BR',15X,'IDENT',17X,
+     *        'DECAY IDENT'/)
+      LOOP=0
+      IOLD=0
+      IF ( NODCAY ) RETURN
+
+200   LOOP=LOOP+1
+      IF ( LOOP .GT. MXDKY ) GOTO 9999
+220   CONTINUE
+      IMODE(1)=0
+      IMODE(2)=0
+      IMODE(3)=0
+      IMODE(4)=0
+      IMODE(5)=0
+      LMODE(1)=IBLANK
+      LMODE(2)=IBLANK
+      LMODE(3)=IBLANK
+      LMODE(4)=IBLANK
+      LMODE(5)=IBLANK
+      IRD=IRD+1
+      IF ( IRD .GT. NDECTB ) RETURN
+      IRES=NINT(DECTAB(1,IRD))
+      BR=DECTAB(2,IRD)
+      IMODE(1)=NINT(DECTAB(2+1,IRD))
+      IMODE(2)=NINT(DECTAB(2+2,IRD))
+      IMODE(3)=NINT(DECTAB(2+3,IRD))
+      IMODE(4)=NINT(DECTAB(2+4,IRD))
+      IMODE(5)=NINT(DECTAB(2+5,IRD))
+      IF ( NOPI0  .AND.  IRES .EQ. 110 ) GOTO 220
+      IF ( NOETA  .AND.  IRES .EQ. 220 ) GOTO 220
+      IF ( IRES .EQ. IOLD ) GOTO 230
+      IF ( IRES .LT. 0  .OR.  IRES .GT. MXLOOK ) THEN
+        CALL UTSTOP('JDECIN: IRES OUT OF RANGE               ')
+      ENDIF
+      LOOK(IRES)=LOOP
+230   IOLD=IRES
+      CBR(LOOP)=BR
+      MODE(1,LOOP)=IMODE(1)
+      MODE(2,LOOP)=IMODE(2)
+      MODE(3,LOOP)=IMODE(3)
+      MODE(4,LOOP)=IMODE(4)
+      MODE(5,LOOP)=IMODE(5)
+      IF ( LPRINT ) THEN
+        IF ( IMODE(1) .NE. 0 ) LMODE(1)=IDLABL(IMODE(1))
+        IF ( IMODE(2) .NE. 0 ) LMODE(2)=IDLABL(IMODE(2))
+        IF ( IMODE(3) .NE. 0 ) LMODE(3)=IDLABL(IMODE(3))
+        IF ( IMODE(4) .NE. 0 ) LMODE(4)=IDLABL(IMODE(4))
+        IF ( IMODE(5) .NE. 0 ) LMODE(5)=IDLABL(IMODE(5))
+        LRES=IDLABL(IRES)
+        WRITE(IFCH,20) LRES,(LMODE(K),K=1,5), BR,IRES,(IMODE(K),K=1,5)
+20      FORMAT(6X,A5,6X,5(A5,2X),3X,F8.5,15X,I5,4X,5(I5,2X))
+      ENDIF
+      GOTO 200
+
+9999  WRITE(IFCH,*)'LOOP=', LOOP
+      CALL UTSTOP('JDECIN: LOOP > MXDKY                    ')
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JESTPR(IC1,IC2,AM,IER)
+
+C-----------------------------------------------------------------------
+C  PROCESSES STRINGS
+C-----------------------------------------------------------------------
+      PARAMETER (KOLLMX=2500)
+      PARAMETER (MAMX=56)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXSTR=3000)
+      PARAMETER (NDEP=129)
+      PARAMETER (NDET=129)
+      PARAMETER (NFLAV=6)
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /CKOL/    KOL
+      COMMON /CLEAD/   COOAV3,COOAV4,LEAD
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /COL/     BIMP,BMAX,COORD(4,KOLLMX),DISTCE(KOLLMX)
+     *                ,QDEP(NDEP),QDET14(NDET),QDET16(NDET),QDET40(NDET)
+     *                ,QDET99(NDET),RMPROJ,RMTARG(4),XDEP(NDEP)
+     *                ,XDET14(NDET),XDET16(NDET),XDET40(NDET)
+     *                ,XDET99(NDET)
+     *                ,KOLL,LTARG,NORD(KOLLMX),NPROJ,NRPROJ(KOLLMX)
+     *                ,NRTARG(KOLLMX),NTARG
+      COMMON /CPROJA/  IPROJ,ITARG,KPROJA(NHA,MAMX),KTARGA(NHA,MAMX)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CPZSTR/  ESTRL,PZSTRL,ISEA,ISTRL
+      COMMON /CSTR/    PSTR(5,MXSTR),ROTSTR(3,MXSTR),XORSTR(4,MXSTR)
+     *                ,ICSTR(4,MXSTR),IORSTR(MXSTR),IRLSTR(MXSTR),NSTR
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      REAL    STRO(NSI,NSIX+1)
+      INTEGER IC1(2),IC2(2),JC(NFLAV,2),JC1(NFLAV,2),JC2(NFLAV,2)
+C-----------------------------------------------------------------------
+      IER=0
+
+C  PMAX
+C  ----
+      CALL IDDECO(IC1,JC)
+      NQ=0
+      DO 7 NF=1,NFLAV
+        NQ=NQ+JC(NF,1)-JC(NF,2)
+ 7    CONTINUE
+      IF ( ABS(NQ) .GE. 2 ) THEN
+        AM1MIN=PROM
+      ELSE
+        AM1MIN=PIOM
+      ENDIF
+      CALL IDDECO(IC2,JC)
+      NQ=0
+      DO 8 NF=1,NFLAV
+        NQ=NQ+JC(NF,1)-JC(NF,2)
+ 8    CONTINUE
+      IF ( ABS(NQ) .GE. 2 ) THEN
+        AM2MIN=PROM
+      ELSE
+        AM2MIN=PIOM
+      ENDIF
+      IF ( AM .LE. AM1MIN+AM2MIN ) THEN
+        PMAX=AM*0.5
+      ELSE
+        PMAX=UTPCM(AM,AM1MIN,AM2MIN)
+      ENDIF
+
+C  HASTPR
+C  ------
+      IPROJ=1
+      ITARG=1
+      KPROJA(2,1)=1
+      KTARGA(2,1)=1
+      KPROJA(3,1)=1
+      KTARGA(3,1)=1
+      KOL=1
+      COORD(1,1)=0.
+      COORD(2,1)=0.
+      COORD(3,1)=0.
+      COORD(4,1)=0.
+      CALL IDDECO(IC1,JC1)
+      NPA1=0
+      DO 2 N=1,NFLAV
+        NPA1=NPA1+JC1(N,1)+JC1(N,2)
+ 2    CONTINUE
+      CALL IDDECO(IC2,JC2)
+      NPA2=0
+      DO 3 N=1,NFLAV
+        NPA2=NPA2+JC2(N,1)+JC2(N,2)
+ 3    CONTINUE
+      IF ( NPA2 .GT. NPA1 ) THEN
+        II=2
+      ELSE
+        II=1
+      ENDIF
+      IF ( NPA1 .GT. 1  .OR.  NPA2 .GT. 1 ) THEN
+        LEAD=1
+      ELSE
+        LEAD=0
+      ENDIF
+
+      NSTR0=NSTR
+17    NSTR=NSTR0
+
+      DO 15 N=1,NSI
+        STRO(N,1)=0.
+        STRO(N,2)=0.
+        STRO(N,3)=0.
+15    CONTINUE
+      STRO(3,II)=AM*0.5
+      STRO(4,II)=AM*0.5
+      STRO(5,II)=IC1(1)
+      STRO(6,II)=IC1(2)
+      STRO(3,3-II)=-AM*0.5
+      STRO(4,3-II)=AM*0.5
+      STRO(5,3-II)=IC2(1)
+      STRO(6,3-II)=IC2(2)
+
+      PZSTRL=STRO(3,1)
+      ESTRL=STRO(4,1)
+      PZSTRL=PZSTRL+STRO(3,2)
+      ESTRL=ESTRL+STRO(4,2)
+      ISTRL=0
+
+      CALL UTPAGE
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,110)('-',L=1,79),IPAGE,('-',L=1,79)
+110     FORMAT(1X,79A1/1X,I5,'.PAGE            '
+     *           ,'STRING GENERATION'/1X,79A1/)
+        WRITE(IFCH,105)(STRO(I,1),I=1,4),(NINT(STRO(I,1)),I=5,6)
+105     FORMAT(' STR: ',4F13.5,2I8)
+        WRITE(IFCH,104)(STRO(I,2),I=1,4),(NINT(STRO(I,2)),I=5,6)
+104     FORMAT('      ',4F13.5,2I8/)
+      ENDIF
+
+      ISEA=1
+      ISPLT=0
+14    CALL HASTPR(STRO,ISPLT)
+      IF ( ISPLT .EQ. -1 ) GOTO 9001
+      IF ( ISPLT .EQ. -3 ) GOTO 9001
+      IF ( ISPLT .EQ. -4 ) THEN
+        CALL UTSTOP('JESTPR: ISPLT=-4                        ')
+      ENDIF
+      IF ( ISPLT .EQ. -5 ) GOTO 17
+      IF ( ISPLT .GT.  0 ) GOTO 14
+
+      PMXEVT=PMAX
+      EGYEVT=AM
+
+      RETURN
+
+9001  IER=1
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JETGEN(IER)
+
+C-----------------------------------------------------------------------
+C  GENERATES STRINGS
+C-----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXSTR=3000)
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      PARAMETER (MAMX=56)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /CLEP/    ICINPU,IDSCAT
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CNTEVM/  NTEVM
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CSTR/    PSTR(5,MXSTR),ROTSTR(3,MXSTR),XORSTR(4,MXSTR)
+     *                ,ICSTR(4,MXSTR),IORSTR(MXSTR),IRLSTR(MXSTR),NSTR
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /PARTNR/  PEX,PEY,PEZET,PE0,PX4,PY4,SUMMAS
+     *                ,IC4,IPTNR,JS4,NPS
+
+      REAL    TARGA(NSI,NHA,MAMX)
+      INTEGER ICSTRI(4,18),IC1(2),IC2(2),IC4(2)
+
+      DATA ((ICSTRI(I,J),I=1,4),J=1,8)/
+     *100000,000000,110000,000000,
+     *010000,000000,200000,000000,
+     *100000,000000,210000,100000,
+     *010000,000000,210000,010000,
+     *001000,000000,210000,001000,
+     *000000,100000,310000,000000,
+     *000000,010000,220000,000000,
+     *000000,001000,211000,000000/
+      DATA ((ICSTRI(I,J),I=1,4),J=11,18)/
+     *100000,000000,020000,000000,
+     *010000,000000,110000,000000,
+     *100000,000000,120000,100000,
+     *010000,000000,120000,010000,
+     *001000,000000,120000,001000,
+     *000000,100000,220000,000000,
+     *000000,010000,130000,000000,
+     *000000,001000,121000,000000/
+C-----------------------------------------------------------------------
+      ISH0=ISH
+      IF ( ISHSUB/100 .EQ. 2 ) ISH=MOD(ISHSUB,100)
+      IF ( ISH .GE. 93 ) THEN
+        WRITE(IFCH,*)('-',L=1,79)
+        WRITE(IFCH,*)'STRING GENERATION. SR JETGEN.'
+      ENDIF
+
+      IER=0
+
+      NEVT=1
+      NSTR=0
+      NPTL=0
+
+      IF ( ICINPU .GE. 1 ) THEN
+3       CALL LEPEXP(XBJ,QSQ)
+        RNU=QSQ/(2.* PROM * XBJ)
+        WSQ=PROM**2 + 2.* PROM * RNU - QSQ
+        AMST=SQRT(WSQ)
+        ELEPTO=ELEPTI-RNU
+        COSANG=1.-QSQ/(2.*ELEPTI*ELEPTO)
+        IF ( ISH .GE. 93 ) THEN
+          WRITE(IFCH,*)'ELEPTI,ELEPTO,RNU: ',ELEPTI,ELEPTO,RNU
+          WRITE(IFCH,*)'XBJ,QSQ,COSANG=1-QSQ/2/ELEPTI/ELEPTO: '
+     *                 ,XBJ,QSQ,COSANG
+        ENDIF
+        IF ( RNU .GT. ELEPTI ) THEN
+          IF ( ISH .GE. 93 ) WRITE(IFCH,*)'*****  Q0 TOO LARGE: ',RNU
+          GOTO 3
+        ENDIF
+        IF     ( COSANG.GT.1.  .AND.  COSANG.LT.1.001 ) THEN
+          COSANG=1.
+        ELSEIF ( COSANG.LT.-1.  .OR.  COSANG.GT.1.    ) THEN
+          COSANO=COSANG
+          IF ( COSANG .GE. 0. ) COSANG= 1.
+          IF ( COSANG .LT. 0. ) COSANG=-1.
+          IF(ISH.GE.90)THEN
+            CALL UTMSG('JETGEN')
+            WRITE(IFCH,*)'*****  COSANG OUT OF RANGE'
+            WRITE(IFCH,*)'ELEPTI,ELEPTO,RNU: ',ELEPTI,ELEPTO,RNU
+            WRITE(IFCH,*)'XBJ,QSQ,COSANG=1-QSQ/2/ELEPTI/ELEPTO: '
+     *                   ,XBJ,QSQ,COSANO
+            WRITE(IFCH,*)'COSANG_NEW: ',COSANG
+            CALL UTMSGF
+          ENDIF
+        ENDIF
+        ANGMUE=ACOS(COSANG)
+        CALL LEPTAR(XBJ,QSQ,MATARG,LATARG,IDSCAT)
+      ENDIF
+
+      IF ( MATARG .GT. 0 ) THEN
+        CALL NUCOGE
+        NPTL=0
+        CALL NUCINI('STR',TARGA,LATARG,MATARG,-1)
+        CALL NUCSTR(IER)
+        IF ( IER .EQ. 1 ) GOTO 99999
+      ENDIF
+
+      IF     ( ICINPU .EQ. 0 ) THEN
+        R=RANGEN()
+        PS=0.
+        DO 1 K=1,99
+          PS=PS+PROB(K)
+          IF ( R .LE. PS ) GOTO 2
+ 1      CONTINUE
+        CALL UTSTOP('JETGEN: NO K FOUND                      ')
+ 2      CONTINUE
+        IC1(1)=ICFOR(K,1)
+        IC1(2)=ICFOR(K,2)
+        IC2(1)=ICBAC(K,1)
+        IC2(2)=ICBAC(K,2)
+        AMST=ENGY
+      ELSEIF ( ICINPU .GT. 0 ) THEN
+        CALL LEPSTR(IDSCAT,XBJ,QSQ,IDS)
+        IC1(1)=ICSTRI(1,IDS)
+        IC1(2)=ICSTRI(2,IDS)
+        IC2(1)=ICSTRI(3,IDS)
+        IC2(2)=ICSTRI(4,IDS)
+      ENDIF
+      CALL JESTPR(IC1,IC2,AMST,IER)
+
+99999 ISH=ISH0
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JFRADE(IER)
+
+C-----------------------------------------------------------------------
+C  PERFORMS STRING FRAGMENTATION/DECAY AND FIN. STATE INTERACTIONS
+C-----------------------------------------------------------------------
+      PARAMETER (KOLLMX=2500)
+      PARAMETER (MAMX=56)
+      PARAMETER (MXDKY=2000)
+      PARAMETER (MXINDX=1000)
+      PARAMETER (MXLOOK=10000)
+      PARAMETER (MXMA=11)
+      PARAMETER (MXMX=6)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXRE=100)
+      PARAMETER (MXSTR=3000)
+      PARAMETER (NDEP=129)
+      PARAMETER (NDET=129)
+      PARAMETER (NPRBMS=20)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /CKOL/    KOL
+      COMMON /CNCE/    NCES,NCOLEX
+      COMMON /CNFR/    NRFRA
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /COL/     BIMP,BMAX,COORD(4,KOLLMX),DISTCE(KOLLMX)
+     *                ,QDEP(NDEP),QDET14(NDET),QDET16(NDET),QDET40(NDET)
+     *                ,QDET99(NDET),RMPROJ,RMTARG(4),XDEP(NDEP)
+     *                ,XDET14(NDET),XDET16(NDET),XDET40(NDET)
+     *                ,XDET99(NDET)
+     *                ,KOLL,LTARG,NORD(KOLLMX),NPROJ,NRPROJ(KOLLMX)
+     *                ,NRTARG(KOLLMX),NTARG
+      COMMON /CPRBMS / PRBMS(NPRBMS)
+      COMMON /CPROJA/  IPROJ,ITARG,KPROJA(NHA,MAMX),KTARGA(NHA,MAMX)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CREMA/   REMA(MXRE,MXMA),REWI(MXRE,MXMA)
+     *                ,ICRE1(MXRE,MXMA),ICRE2(MXRE,MXMA)
+     *                ,IDMX(MXMA,MXMX),INDX(MXINDX)
+      COMMON /CSTR/    PSTR(5,MXSTR),ROTSTR(3,MXSTR),XORSTR(4,MXSTR)
+     *                ,ICSTR(4,MXSTR),IORSTR(MXSTR),IRLSTR(MXSTR),NSTR
+      COMMON /CTIMEL/  NTC
+      DOUBLE PRECISION DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /CTTAUS/  DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /C2PTL/   AMIPTL(MXPTL),RADPTL(MXPTL),IAAPTL(MXPTL)
+      COMMON /DIDIB/   NDIDIB
+      COMMON /DKYTAB/  CBR(MXDKY),LOOK(MXLOOK),MODE(5,MXDKY)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /PARTNR/  PEX,PEY,PEZET,PE0,PX4,PY4,SUMMAS
+     *                ,IC4,IPTNR,JS4,NPS
+
+      DOUBLE PRECISION DIFF,ZFI
+      REAL             PSUM(5)
+      INTEGER          IC4(2)
+C-----------------------------------------------------------------------
+C  INITIALIZATION
+C  --------------
+CDH   IF ( ISH .EQ. 13 .OR. ISH .EQ. 14 ) CALL UTTIMA('*** JFRADE *** ')
+      IER=0
+      IRET=0
+      ISH0=ISH
+      IF ( ISHSUB/100 .EQ. 16 ) ISH=MOD(ISHSUB,100)
+      IF ( NEVT .NE. 1  .OR.  IFRADE .EQ. 0 ) GOTO 1000
+      NPTLPT=ABS(MAPROJ)+ABS(MATARG)
+      IF ( ICHOIC .EQ. 1  .OR.  ICHOIC .EQ. 4 ) THEN
+        YCMMAX=LOG(EGYEVT*2.5)
+        ETAPRO=YCMMAX*.6667
+        ETATAR=-ETAPRO
+      ELSE
+        ETAPRO=(YPJTL-YHAHA)*.6667
+        ETATAR=-YHAHA*.6667
+      ENDIF
+      DETAP=ETAPRO
+      DETAT=ETATAR
+      TPRO=COSH(DETAP)
+      ZPRO=SINH(DETAP)
+      TTAR=COSH(DETAT)
+      ZTAR=SINH(DETAT)
+
+C  WRITE
+C  -----
+      CALL UTPAGE
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,110)('-',L=1,79),IPAGE,('-',L=1,79)
+110     FORMAT(1X,79A1/1X,I5,'.PAGE            '
+     *           ,'STRINGS BEFORE RESCALING'/1X,79A1/)
+        DO 9 J=1,NSTR
+          WRITE(IFCH,109)J,(ICSTR(K,J)/100,K=1,4)
+     *          ,SQRT(PSTR(1,J)**2+PSTR(2,J)**2),PSTR(3,J),PSTR(5,J)
+     *          ,IRLSTR(J)
+109       FORMAT(' /CSTR/',I4,3X,4I5,3(E11.3),I4)
+ 9      CONTINUE
+      ENDIF
+
+C  STRING RESCALING
+C  ----------------
+      IF ( ICHOIC.LE.2 .AND. NSTR.GT.1 .AND. IRESCL.EQ.1 ) THEN
+        PSUM(1)=0.
+        PSUM(2)=0.
+        IF ( ICHOIC .EQ. 1 ) THEN
+          PSUM(3)=0.
+          PSUM(4)=EGYEVT
+        ELSE
+          PSUM(3)=(NPJEVT-NTGEVT)*PNLLX
+          PSUM(4)=NPJEVT*SQRT(AMPROJ**2+PNLLX**2)
+     *           +NTGEVT*SQRT(AMTARG**2+PNLLX**2)
+        ENDIF
+        PSUM(5)=SQRT(PSUM(4)**2-PSUM(3)**2)
+        CALL HRESCL(1,NSTR,PSUM,IFAIL)
+        IF ( IFAIL .NE. 0 ) GOTO 1001
+      ENDIF
+
+C  WRITE
+C  -----
+      CALL UTPAGE
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,111)('-',L=1,79),IPAGE,('-',L=1,79)
+111     FORMAT(/1X,79A1/1X,I5,'.PAGE            '
+     *                       ,'STRINGS AFTER RESCALING'/1X,79A1/)
+        DO 10 J=1,NSTR
+          WRITE(IFCH,109)J,(ICSTR(K,J)/100,K=1,4)
+     *        ,SQRT(PSTR(1,J)**2+PSTR(2,J)**2),PSTR(3,J),PSTR(5,J)
+     *        ,IRLSTR(J)
+10      CONTINUE
+      ENDIF
+
+C  FRAGMENTATION
+C  -------------
+      IF ( ISHSUB/100 .EQ. 3 ) ISH=MOD(ISHSUB,100)
+CDH   IF ( ISH .EQ. 13 ) CALL UTTIMA('               ')
+      DO 3 J=1,NSTR
+        CALL UTPAGE
+        IF ( ISH .GE. 91 ) WRITE(IFCH,102)('-',L=1,79),IPAGE,J
+     *       ,(ICSTR(K,J),K=1,4),SQRT(PSTR(1,J)**2+PSTR(2,J)**2
+     *            +PSTR(3,J)**2),PSTR(4,J),PSTR(5,J),('-',L=1,79)
+102     FORMAT(/1X,79A1
+     *         /1X,I5,'.PAGE  STR:',I3,4I7,3(E10.2)/1X,79A1/)
+        CALL JAMFRA(J,NEWEVT)
+        IF ( NEWEVT .EQ. 1 ) GOTO 10011
+ 3    CONTINUE
+CDH   IF ( ISH .EQ. 13 ) CALL UTTIMA('FRAGMENTATION  ')
+
+C  PRINT /CPTL/
+C  ------------
+      IF ( ISHSUB/100 .EQ. 9 ) ISH=MOD(ISHSUB,100)
+      CALL UTPAGE
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,104)('-',L=1,79),IPAGE,('-',L=1,79)
+104     FORMAT(/1X,79A1/1X,I5,'.PAGE            '
+     *                       ,'PTLS AFTER FRAGMENTATION'/1X,79A1/)
+        DO 18 N=1,NPTL
+          IF ( N.GT.NPTLPT .OR. ISTPTL(N).NE.0 )
+     *      WRITE(IFCH,116)IORPTL(N),JORPTL(N),N,IFRPTL(1,N),IFRPTL(2,N)
+     *                 ,IDPTL(N),PPTL(3,N),PPTL(4,N),PPTL(5,N),ISTPTL(N)
+18      CONTINUE
+      ENDIF
+
+C  INITIAL DECAY
+C  -------------
+      IF ( ISHSUB/100 .EQ. 10 ) ISH=MOD(ISHSUB,100)
+      CALL UTPAGE
+CDH   IF ( ISH.EQ.13 ) CALL UTTIMA('               ')
+      IF ( RADIAC .GT. 0. ) THEN
+        TTAUS=TAUMIN
+        IACN=1
+      ELSE
+        TTAUS=AINFIN
+        IACN=0
+      ENDIF
+      TTP=TTAUS*TPRO
+      TTT=TTAUS*TTAR
+      ZZP=TTAUS*ZPRO
+      ZZT=TTAUS*ZTAR
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,119)('-',L=1,79),IPAGE,SNGL(TTAUS),('-',L=1,79)
+119     FORMAT(/1X,79A1/1X,I5,'.PAGE            '
+     *                       ,'DECAY BEFORE TAU =',E10.3/1X,79A1/)
+      ENDIF
+      NP1=1
+21    NP2=NPTL
+      DO 5 I=NP1,NP2
+        IF ( TTAUS .LE. 0.D0   ) THEN
+          DIFF = TIVPTL(2,I) - TTAUS
+        ELSE
+          ZFI=XORPTL(3,I)+(TIVPTL(2,I)-XORPTL(4,I))*PPTL(3,I)/PPTL(4,I)
+          CALL UTTAUT(SNGL(ZFI),TZFI)
+          DIFF = TIVPTL(2,I) - TZFI
+        ENDIF
+        IF ( DIFF .LE. 0. .OR. IACN.EQ.0 ) THEN
+          IF ( ISTPTL(I) .EQ. 0 ) THEN
+            CALL JDECA(I,IRET)
+            IF ( IRET .EQ. 1 ) GOTO 1001
+          ENDIF
+        ENDIF
+5     CONTINUE
+      NP1=NP2+1
+      IF ( NP1 .LE. NPTL ) GOTO 21
+CDH   IF ( ISH .EQ. 13 ) CALL UTTIMA('DECAY INI      ')
+
+C  INTERACTION AND DECAY
+C  ---------------------
+      IF ( IACN .EQ. 0 ) GOTO 5000
+      CALL UTPAGE
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,118)('-',L=1,79),IPAGE,('-',L=1,79)
+118     FORMAT(/1X,79A1/1X,I5,'.PAGE            '
+     *                       ,'INTERACTIONS AND DECAY'/1X,79A1/)
+      ENDIF
+      DTAUS=1./(NUMTAU-1.)*(TAUMAX-TAUMIN)
+      DO 23 NT=1,NUMTAU
+        NTC=NT
+        TTAUS=TAUMIN+(NT-1.)*DTAUS
+        TTP=TTAUS*TPRO
+        TTT=TTAUS*TTAR
+        ZZP=TTAUS*ZPRO
+        ZZT=TTAUS*ZTAR
+        IF     ( IOJINT .EQ. 1 ) THEN
+          CALL JINTA1
+        ELSEIF ( IOJINT .EQ. 2 ) THEN
+          CALL JINTA2
+        ENDIF
+        TTAUS=TTAUS+DTAUS
+        TTP=TTAUS*TPRO
+        TTT=TTAUS*TTAR
+        ZZP=TTAUS*ZPRO
+        ZZT=TTAUS*ZTAR
+        NP1=1
+36      NP2=NPTL
+        DO 37 IP=NP1,NP2
+          IF ( TTAUS .LE. 0.D0   ) THEN
+            DIFF = TIVPTL(2,IP) - TTAUS
+          ELSE
+            ZFI=XORPTL(3,IP)+(TIVPTL(2,IP)-XORPTL(4,IP))
+     *                                            *PPTL(3,IP)/PPTL(4,IP)
+            IF     ( ZFI .LE. ZZT ) THEN
+              DIFF = TIVPTL(2,IP) - TTT - (ZFI-ZZT)*ZZT/TTT
+            ELSEIF ( ZFI .GE. ZZP ) THEN
+              DIFF = TIVPTL(2,IP) - TTP - (ZFI-ZZP)*ZZP/TTP
+            ELSE
+              IF ( TTAUS .LT. AINFIN ) THEN
+                IF ( TIVPTL(2,IP) .GE. 0. ) THEN
+                  DIFF = TIVPTL(2,IP)
+                  DIFF = DIFF**2  - (TTAUS**2+ZFI**2)
+                ELSE
+                  DIFF = TIVPTL(2,IP) - SQRT(TTAUS**2+ZFI**2)
+                ENDIF
+              ELSE
+                DIFF = TIVPTL(2,IP) - TTAUS
+                IF ( ISH .GE. 90 ) THEN
+                  CALL UTMSG('JFRADE')
+                  WRITE(IFCH,*)'*****  LARGE TTAUS; SET TZ=TTAUS'
+                  WRITE(IFCH,*)'TTAUS=',TTAUS,'ZFI=',ZFI
+                  CALL UTMSGF
+                ENDIF
+              ENDIF
+            ENDIF
+          ENDIF
+
+          IF ( DIFF .LE. 0. ) THEN
+            IF ( ISTPTL(IP) .EQ. 0 ) THEN
+              CALL JDECA(IP,IRET)
+              IF ( IRET .EQ. 1 ) GOTO 1001
+            ENDIF
+          ENDIF
+37      CONTINUE
+        NP1=NP2+1
+        IF ( NP1 .LE. NPTL ) THEN
+          DO 4 IP=NP1,NPTL
+            IAAPTL(IP)=1
+ 4        CONTINUE
+          GOTO 36
+        ENDIF
+CDH     IF ( ISH .EQ. 13 ) CALL UTTIMA('DECAY          ')
+23    CONTINUE
+
+C  FINAL DECAY
+C  -----------
+      CALL UTPAGE
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,120)('-',L=1,79),IPAGE,('-',L=1,79)
+120     FORMAT(/1X,79A1/1X,I5,'.PAGE            '
+     *                        ,'FINAL DECAY'/1X,79A1/)
+      ENDIF
+      NBEF=NPTL
+CDH   N0BEF=NPTL0
+      NAFT=NPTL
+CDH   N0AFT=NPTL0
+      IF ( NCLEAN .GT. 0 ) THEN
+        CALL UTCLEA(NPTL0)
+        NAFT=NPTL
+CDH     N0AFT=NPTL0
+      ENDIF
+      ISHNPT=ISH
+      IF ( ISHSUB/100 .EQ. 19 ) ISH=MOD(ISHSUB,100)
+      IF ( ISH .EQ. 22 ) THEN
+        WRITE(IFMT,131)NBEF,NAFT
+131     FORMAT(1X,'BEF FIN DE: NBEF=',I8,4X,'NAFT=',I8)
+      ENDIF
+      ISH=ISHNPT
+      NP1=1
+41    NP2=NPTL
+      DO 42 IP=NP1,NP2
+        IF ( ISTPTL(IP) .EQ. 0 ) THEN
+          CALL JDECA(IP,IRET)
+          IF ( IRET .EQ. 1 ) GOTO 1001
+        ENDIF
+42    CONTINUE
+      NP1=NP2+1
+      IF ( NP1 .LE. NPTL ) THEN
+        DO 6 IP=NP1,NPTL
+          IAAPTL(IP)=1
+ 6      CONTINUE
+        GOTO 41
+      ENDIF
+      ISHNPT=ISH
+      IF ( ISHSUB/100 .EQ. 19 ) ISH=MOD(ISHSUB,100)
+      IF ( ISH .EQ. 22 ) THEN
+        WRITE(IFMT,132)NPTL
+132     FORMAT(1X,'AFT FIN DE: NPTL=',I8)
+      ENDIF
+      ISH=ISHNPT
+CDH   IF ( ISH .EQ. 13 ) CALL UTTIMA('DECAY FIN      ')
+
+C  PRINT /CPTL/
+C  ------------
+      CALL UTPAGE
+      IF ( ISHSUB/100 .EQ. 11 ) ISH=MOD(ISHSUB,100)
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,117)('-',L=1,79),IPAGE,('-',L=1,79)
+117     FORMAT(/1X,79A1/1X,I5,'.PAGE            '
+     *         ,'PTLS AFTER PERFORMING INTERACTIONS'/1X,79A1/
+     *         1X,' IOR',' JOR',4X,'   N',4X,'IFR1IFR2',10X,'ID',3X,
+     *         5X,'PTR',7X,'PZ',4X,'MASS ','IST'/)
+        DO 34 N=1,NPTL
+          IF ( N .GT. NPTLPT  .OR.  ISTPTL(N) .NE. 0 )
+     *      WRITE(IFCH,116)IORPTL(N),JORPTL(N),N,IFRPTL(1,N),IFRPTL(2,N)
+     *     ,IDPTL(N),SQRT(PPTL(1,N)**2+PPTL(2,N)**2),PPTL(3,N),PPTL(5,N)
+     *     ,ISTPTL(N),IAAPTL(N)
+116       FORMAT(1X,I7,I7,4X,I7,4X,I4,I4,I12,3(E10.2),1X,I2,I2)
+34      CONTINUE
+      ENDIF
+
+C  TRAFO -> LAB CM
+C  ---------------
+5000  CONTINUE
+      IF ( LABSYS .EQ. 1 ) THEN
+        DO 7 I=1,NPTL
+          AMT=SQRT(PPTL(5,I)**2+PPTL(1,I)**2+PPTL(2,I)**2)
+          PZ=PPTL(3,I)
+          E=PPTL(4,I)
+          YI=SIGN( LOG((E+ABS(PZ))/AMT), PZ )
+          Y=YI+YHAHA
+          PPTL(3,I)=AMT*SINH(Y)
+          PPTL(4,I)=AMT*COSH(Y)
+ 7      CONTINUE
+      ENDIF
+
+C  FINISH
+C  ------
+
+      CALL UTPAGE
+      IF     ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,113)('-',L=1,79),IPAGE,('-',L=1,79)
+113     FORMAT(/1X,79A1/1X,I5,'.PAGE            '
+     *                       ,'PARTICLE PRODUCTION FINISHED'/1X,79A1/)
+CDH   ELSEIF ( ISH .EQ. 13 ) THEN
+CDH     CALL UTTIMA('               ')
+      ENDIF
+      GOTO 1000
+
+10011 CONTINUE
+      IF ( ISH .GE. 90 ) THEN
+        CALL UTMSG('JFRADE')
+        WRITE(IFCH,*)'*****  FRAGMENTATION NOT POSSIBLE'
+        WRITE(IFCH,112)J,(ICSTR(K,J)/100,K=1,4)
+     *                  ,(PSTR(L,J),L=1,5)
+112     FORMAT( ' STR:',3X,I4,3X,3X,4I5,5F7.2,F7.2)
+        CALL UTMSGF
+      ENDIF
+      IER=1
+      GOTO 1000
+
+1001  CONTINUE
+      IER=1
+      GOTO 1000
+
+1000  CONTINUE
+      IF ( IER .EQ. 1 ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JFRADE')
+          WRITE(IFCH,*)'*****  REDO EVENT',NREVT+1
+          CALL UTMSGF
+        ENDIF
+      ENDIF
+CDH   IF ( ISH .EQ. 14 ) CALL UTTIMA('    JFRADE F   ')
+      ISH=ISH0
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JINTA1
+
+C----------------------------------------------------------------------
+C  SECONDARY INTERACTIONS
+C----------------------------------------------------------------------
+      PARAMETER (KOLLMX=2500)
+      PARAMETER (MAMX=56)
+      PARAMETER (MXDKY=2000)
+      PARAMETER (MXINDX=1000)
+      PARAMETER (MXLOOK=10000)
+      PARAMETER (MXMA=11)
+      PARAMETER (MXMX=6)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXIFR=MXPTL)
+      PARAMETER (MXRE=100)
+      PARAMETER (MXSTR=3000)
+      PARAMETER (NDEP=129)
+      PARAMETER (NDET=129)
+      PARAMETER (NFLAV=6)
+      PARAMETER (NPRBMS=20)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /CIFRIJ/  IFRIJ(MXIFR)
+      COMMON /CJINT/   BX,BY,RNUP,RNUT,VELP,VELT,XAVER(4),NPTL0
+      COMMON /CKOL/    KOL
+      COMMON /CNCE/    NCES,NCOLEX
+      COMMON /CNFR/    NRFRA
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /COL/     BIMP,BMAX,COORD(4,KOLLMX),DISTCE(KOLLMX)
+     *                ,QDEP(NDEP),QDET14(NDET),QDET16(NDET),QDET40(NDET)
+     *                ,QDET99(NDET),RMPROJ,RMTARG(4),XDEP(NDEP)
+     *                ,XDET14(NDET),XDET16(NDET),XDET40(NDET)
+     *                ,XDET99(NDET)
+     *                ,KOLL,LTARG,NORD(KOLLMX),NPROJ,NRPROJ(KOLLMX)
+     *                ,NRTARG(KOLLMX),NTARG
+      COMMON /CPRBMS/  PRBMS(NPRBMS)
+      COMMON /CPROJA/  IPROJ,ITARG,KPROJA(NHA,MAMX),KTARGA(NHA,MAMX)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CREMA/   REMA(MXRE,MXMA),REWI(MXRE,MXMA)
+     *                ,ICRE1(MXRE,MXMA),ICRE2(MXRE,MXMA)
+     *                ,IDMX(MXMA,MXMX),INDX(MXINDX)
+      COMMON /CSTR/    PSTR(5,MXSTR),ROTSTR(3,MXSTR),XORSTR(4,MXSTR)
+     *                ,ICSTR(4,MXSTR),IORSTR(MXSTR),IRLSTR(MXSTR),NSTR
+      COMMON /CTIMEL/  NTC
+      DOUBLE PRECISION DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /CTTAUS/  DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /C2PTL/   AMIPTL(MXPTL),RADPTL(MXPTL),IAAPTL(MXPTL)
+      COMMON /C4PTL/   OPTL(MXPTL),TPTL(MXPTL),UPTL(MXPTL)
+     *                ,XPTL(MXPTL),YPTL(MXPTL),ZPTL(MXPTL)
+      COMMON /DIDIB/   NDIDIB
+      COMMON /DKYTAB/  CBR(MXDKY),LOOK(MXLOOK),MODE(5,MXDKY)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /PARTNR/  PEX,PEY,PEZET,PE0,PX4,PY4,SUMMAS
+     *                ,IC4,IPTNR,JS4,NPS
+
+      DOUBLE PRECISION DD,DERR,TI1,TI2,TT,VV,VVP,VVT,XO3,XO4,ZZ,ZZA
+      INTEGER          IC4(2),JC(NFLAV,2),JCDU(NFLAV,2),JCI(NFLAV,2)
+      LOGICAL          IACPTL(MXPTL+10)
+      DATA DERR/1.D-2/
+C----------------------------------------------------------------------
+C  INITIALIZATION FOR NTC=1
+C  ------------------------
+      IF ( NTC .EQ. 1 ) THEN
+        IF ( OVERLP.GE.0. .AND. MAPROJ.NE.0 .AND. MATARG.NE.0 ) THEN
+          IF ( MAPROJ .EQ. 1 ) THEN
+            RNUP=0.
+          ELSE
+            RNUP=1.19*MAPROJ**(0.3333333)-1.61*MAPROJ**(-0.3333333)
+          ENDIF
+          IF ( MATARG .EQ. 1 ) THEN
+            RNUT=0.
+          ELSE
+            RNUT=1.19*MATARG**(0.3333333)-1.61*MATARG**(-0.3333333)
+          ENDIF
+          RNUP=RNUP+OVERLP
+          RNUT=RNUT+OVERLP
+          VELP=PPTL(3,1)/PPTL(4,1)
+          VELT=PPTL(3,IABS(MAPROJ)+1)/PPTL(4,IABS(MAPROJ)+1)
+          BX=COS(PHIEVT)*BIMEVT
+          BY=SIN(PHIEVT)*BIMEVT
+        ENDIF
+        NPTL0=NPTL
+        DO 51 I=1,NPTL0
+          IAAPTL(I)=1
+          CALL IDQUAC(I,NQI,NDUMMY,NDUMMY,JCI)
+          IF ( NQI .NE. 0 ) THEN
+            RADPTL(I)=RADIAC
+            AMIPTL(I)=PROM+AMSIAC
+          ELSE
+            RADPTL(I)=RADIAS
+            AMIPTL(I)=PIOM+AMSIAC
+          ENDIF
+51      CONTINUE
+      ENDIF
+
+C  INITIALIZATION FOR EACH NTC
+C  ---------------------------
+      NT=NTC
+      CALL UTPAGE
+CDH   IF ( ISH .EQ. 13 ) CALL UTTIMA('               ')
+      NBEF=NPTL
+CDH   N0BEF=NPTL0
+      NAFT=NPTL
+CDH   N0AFT=NPTL0
+      IF ( NCLEAN .GT. 0 ) THEN
+        IF ( MOD(NT-1,NCLEAN) .EQ. 0 ) THEN
+          CALL UTCLEA(NPTL0)
+          NAFT=NPTL
+CDH       N0AFT=NPTL0
+        ENDIF
+      ENDIF
+      TAUS=TTAUS
+      NPTLPT=ABS(MAPROJ)+ABS(MATARG)
+      IF ( NPTL .GT. NPTL0 ) THEN
+        DO 52 I=NPTL0+1,NPTL
+          CALL IDQUAC(I,NQI,NDUMMY,NDUMMY,JCI)
+          IF ( NQI .NE. 0 ) THEN
+            RADPTL(I)=RADIAC
+            AMIPTL(I)=PROM+AMSIAC
+          ELSE
+            RADPTL(I)=RADIAS
+            AMIPTL(I)=PIOM+AMSIAC
+          ENDIF
+52      CONTINUE
+      ENDIF
+      DO 44 I=1,NPTL
+        IF ( ICLPTL(I).EQ.0 .AND. PPTL(5,I).GT.AMIPTL(I) ) THEN
+          IACPTL(I)=.TRUE.
+        ELSE
+          IACPTL(I)=.FALSE.
+        ENDIF
+        IF ( IORPTL(I).EQ.-1 ) IACPTL(I)=.TRUE.
+C  CALL UTTAIN IS REPLACED HERE TO AVOID OVERHEAD
+C       CALL UTTAIN(I,X,Y,Z,T,N,0)
+        XO4=XORPTL(4,I)
+C*      IF     ( IOPT .EQ. 0 ) THEN
+          TI1=TIVPTL(1,I)
+C*      ELSEIF ( IOPT .EQ. 1 ) THEN
+C*        TI1=XO4
+C*      ENDIF
+        TI2=TIVPTL(2,I)
+        IF ( TI1 .GT. TI2 ) GOTO 1009
+        PPT4I = 1./PPTL(4,I)
+        VV=PPTL(3,I)*PPT4I
+        XO3=XORPTL(3,I)
+        ZZ=XO3+(TI2-XO4)*VV
+        IF ( TTAUS .LE. 0.D0 ) THEN
+          TZ=TTAUS
+        ELSE
+          IF     ( ZZ .LE. ZZT ) THEN
+            TZ=TTT+(ZZ-ZZT)*ZZT/TTT
+          ELSEIF ( ZZ .GE. ZZP ) THEN
+            TZ=TTP+(ZZ-ZZP)*ZZP/TTP
+          ELSE
+            IF ( TTAUS .GE. AINFIN ) THEN
+              TZ=TTAUS
+              IF ( ISH .GE. 90 ) THEN
+                CALL UTMSG('JINTA1')
+                WRITE(IFCH,*)'*****  LARGE TTAUS; SET TZ=TTAUS'
+                WRITE(IFCH,*)'TTAUS=',TTAUS,'ZZ=',ZZ
+                CALL UTMSGF
+              ENDIF
+            ELSE
+C*DH          TZ=SQRT(TTAUS**2+ZZ**2)
+              IF ( TI2 .LT. 0.D0 ) GOTO 1002
+              IF ( TTAUS**2+ZZ**2 .GE. TI2**2 ) GOTO 1002
+              GOTO 1006
+            ENDIF
+          ENDIF
+        ENDIF
+        IF ( TZ .GE. TI2 ) GOTO 1002
+ 1006   ZZ=XO3+(TI1-XO4)*VV
+        IF ( TTAUS .GT. 0.D0 ) THEN
+          IF     ( ZZ .LE. ZZT ) THEN
+            TZ=TTT+(ZZ-ZZT)*ZZT/TTT
+          ELSEIF ( ZZ .GE. ZZP ) THEN
+            TZ=TTP+(ZZ-ZZP)*ZZP/TTP
+          ELSE
+            IF ( TTAUS .GE. AINFIN ) THEN
+              TZ=TTAUS
+              IF ( ISH .GE. 90 ) THEN
+                CALL UTMSG('JINTA1')
+                WRITE(IFCH,*)'*****  LARGE TTAUS; SET TZ=TTAUS'
+                WRITE(IFCH,*)'TTAUS=',TTAUS,'ZZ=',ZZ
+                CALL UTMSGF
+              ENDIF
+            ELSE
+C*DH          TZ=SQRT(TTAUS**2+ZZ**2)
+              IF ( TI1 .LT. 0.D0 ) GOTO 1007
+              IF ( TTAUS**2+ZZ**2 .LE. TI1**2 ) GOTO 1001
+              GOTO 1007
+            ENDIF
+          ENDIF
+        ENDIF
+        IF ( TZ .LE. TI1 ) GOTO 1001
+ 1007   IF ( TTAUS .LE. 0.D0 ) THEN
+          TT=TTAUS
+          ZZ=XO3+(TT-XO4)*VV
+          IF ( TT.LT.TI1 .OR. TT.GE.TI2 ) GOTO 1031
+        ELSE
+          ZZA=XO3-XO4*VV
+          VVT=ZZT/TTT
+          TT=(TTT+(ZZA-ZZT)*VVT)/(1.D0-VV*VVT)
+          ZZ=XO3+(TT-XO4)*VV
+          IF ( ZZ .LE. ZZT ) THEN
+            IF ( TT.LT.TI1 .OR. TT.GE.TI2 ) GOTO 1032
+            GOTO 1000
+          ENDIF
+          VVP=ZZP/TTP
+          TT=(TTP+(ZZA-ZZP)*VVP)/(1.D0-VV*VVP)
+          ZZ=XO3+(TT-XO4)*VV
+          IF ( ZZ .GE. ZZP ) THEN
+            IF ( TT.LT.TI1 .OR. TT.GE.TI2 ) GOTO 1033
+            GOTO 1000
+          ENDIF
+          DD=1.D0-VV**2
+          IF ( DD .EQ. 0.D0 ) THEN
+            TT=-VV*(TTAUS**2+ZZA**2)*0.5D0/ZZA
+          ELSE
+            TT=(ZZA*VV+SQRT(ZZA**2+TTAUS**2*DD))/DD
+          ENDIF
+          ZZ=XO3+(TT-XO4)*VV
+          IF ( TT.LT.TI1 .OR. TT.GE.TI2 ) GOTO 1034
+          IF ( TT .LT. 0.D0 ) GOTO 1035
+          IF ( ZZ.LE.ZZT .OR. ZZ.GE.ZZP ) GOTO 1004
+          IF ( ABS(TTAUS**2-(TT+ZZ)*(TT-ZZ))
+     *                         .GT. DERR*TTAUS**2 ) GOTO 1005
+        ENDIF
+ 1000   N=0
+ 1011   T=TT
+        Z=ZZ
+        X=XORPTL(1,I)+(T-XO4)*PPTL(1,I)*PPT4I
+        Y=XORPTL(2,I)+(T-XO4)*PPTL(2,I)*PPT4I
+        GOTO 53
+ 1001   N=1
+        GOTO 53
+ 1002   N=2
+        GOTO 53
+ 1031   N=31
+        GOTO 1003
+
+ 1032   N=32
+        GOTO 1003
+ 1033   N=33
+        GOTO 1003
+ 1034   N=34
+ 1003   IF ( ABS(TT-TI1) .LE. DERR*ABS(TT) ) GOTO 1000
+        IF ( ABS(TT-TI2) .LE. DERR*ABS(TT) ) GOTO 1000
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JINTA1')
+          WRITE(IFCH,*)'*****  TI1 < TT < TI2   NOT FULFILLED - ',N
+          WRITE(IFCH,*)SNGL(TI1),SNGL(TT),SNGL(TI2)
+          CALL UTMSGF
+        ENDIF
+        GOTO 1011
+ 1035   CONTINUE
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JINTA1')
+          WRITE(IFCH,*)'*****  TT < 0     ( ',TT,' )'
+          WRITE(IFCH,*)'VV,DD:',VV,DD
+          WRITE(IFCH,*)'ZZA,TTAUS:',ZZA,TTAUS
+          CALL UTMSGF
+        ENDIF
+        GOTO 1011
+ 1004   N=4
+        IF ( ABS(ZZ-ZZT) .LE. DERR*ABS(ZZ) ) GOTO 1000
+        IF ( ABS(ZZ-ZZP) .LE. DERR*ABS(ZZ) ) GOTO 1000
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JINTA1')
+          WRITE(IFCH,*)'*****  ZZT < ZZ < ZZP   NOT FULFILLED'
+          WRITE(IFCH,*)SNGL(ZZT),SNGL(ZZ),SNGL(ZZP)
+          CALL UTMSGF
+        ENDIF
+        GOTO 1011
+ 1005   N=5
+        IF ( ABS(TTAUS**2-(TT+ZZ)*(TT-ZZ)) .LE. DERR ) GOTO 1000
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JINTA1')
+          WRITE(IFCH,*)'*****  TTAUS**2 .NE. (TT+ZZ)*(TT-ZZ)'
+          WRITE(IFCH,*)SNGL(TTAUS**2),SNGL((TT+ZZ)*(TT-ZZ))
+          CALL UTMSGF
+        ENDIF
+        GOTO 1011
+ 1009   N=9
+ 53     CONTINUE
+
+        IF ( N.EQ.2 ) THEN
+          IF ( NCLEAN .GT. 0 ) THEN
+            IF ( MOD(NT,NCLEAN).EQ.0 ) THEN
+              ISTPTL(I)=2
+            ENDIF
+          ENDIF
+          IACPTL(I)=.TRUE.
+          GOTO 54
+        ENDIF
+        IF ( N.EQ.9 ) THEN
+          IACPTL(I)=.TRUE.
+          GOTO 54
+        ENDIF
+        IF ( N.EQ.1 ) THEN
+          IACPTL(I)=.TRUE.
+          GOTO 54
+        ENDIF
+        IF ( IAAPTL(I) .EQ. 0 ) THEN
+          IACPTL(I)=.TRUE.
+          GOTO 54
+        ENDIF
+        IF ( ISTPTL(I) .EQ. 2 ) IACPTL(I)=.TRUE.
+        IF ( ABS(IDPTL(I)) .LT. 100
+     *       .AND.  ABS(IDPTL(I)) .NE. 20 ) IACPTL(I)=.TRUE.
+        IF ( IDPTL(I) .EQ. 441  .AND.  JPSIFI .EQ. 0 ) IACPTL(I)=.TRUE.
+ 54     XPTL(I)=X
+        YPTL(I)=Y
+        ZPTL(I)=Z
+        TPTL(I)=T
+        IF ( OVERLP.GE.0. .AND. MAPROJ.NE.0 .AND. MATARG.NE.0 ) THEN
+          IF ( (X-BX*0.5)**2+(Y-BY*0.5)**2+(Z-VELP*TAUS)**2
+     *                                    .LT. RNUP**2  .AND.
+     *         (X+BX*0.5)**2+(Y+BY*0.5)**2+(Z-VELT*TAUS)**2
+     *                                .LT. RNUT**2  )  IACPTL(I)=.TRUE.
+        ENDIF
+44    CONTINUE
+      NPTL0=NPTL
+      I=0
+
+C  I LOOP --> 24
+C  -------------
+9999  I=I+1
+      IF ( IACPTL(I) ) GOTO 24
+      J0=NPTLPT+1
+      IF ( I .GT. NPTLPT ) J0=I+1
+      IF ( I .GT. NPTL0 ) J0=1
+
+C  J LOOP --> 250
+C  -------------
+      J = J0-1
+25    J = J+1
+      IF ( J .GT. NPTL ) GOTO 24
+        IF ( IACPTL(J) ) THEN
+          IF ( IACPTL(J+1) ) THEN
+            IF ( IACPTL(J+2) ) THEN
+              IF ( IACPTL(J+3) ) THEN
+                IF ( IACPTL(J+4) ) THEN
+                  IF ( IACPTL(J+5) ) THEN
+                    IF ( IACPTL(J+6) ) THEN
+                      IF ( IACPTL(J+7) ) THEN
+                        IF ( IACPTL(J+8) ) THEN
+                          IF ( IACPTL(J+9) ) THEN
+                            IF ( IACPTL(J+10) ) THEN
+                              J=J+10
+                              GOTO 25
+                            ELSE
+                              J=J+10
+                              IF ( J .GT. NPTL ) GOTO 24
+                              GOTO 26
+                            ENDIF
+                          ELSE
+                            J=J+9
+                            IF ( J .GT. NPTL ) GOTO 24
+                            GOTO 26
+                          ENDIF
+                        ELSE
+                          J=J+8
+                          IF ( J .GT. NPTL ) GOTO 24
+                          GOTO 26
+                        ENDIF
+                      ELSE
+                        J=J+7
+                        IF ( J .GT. NPTL ) GOTO 24
+                        GOTO 26
+                      ENDIF
+                    ELSE
+                      J=J+6
+                      IF ( J .GT. NPTL ) GOTO 24
+                      GOTO 26
+                    ENDIF
+                  ELSE
+                    J=J+5
+                    IF ( J .GT. NPTL ) GOTO 24
+                    GOTO 26
+                  ENDIF
+                ELSE
+                  J=J+4
+                  IF ( J .GT. NPTL ) GOTO 24
+                  GOTO 26
+                ENDIF
+              ELSE
+                J=J+3
+                IF ( J .GT. NPTL ) GOTO 24
+                GOTO 26
+              ENDIF
+            ELSE
+              J=J+2
+              IF ( J .GT. NPTL ) GOTO 24
+              GOTO 26
+            ENDIF
+          ELSE
+            J=J+1
+            IF ( J .GT. NPTL ) GOTO 24
+            GOTO 26
+          ENDIF
+        ENDIF
+ 26     CONTINUE
+        RADSQR=(RADPTL(I)+RADPTL(J))**2
+        IF ( (ZPTL(I)-ZPTL(J))**2 .GT. RADSQR ) GOTO 25
+        IF ( (YPTL(I)-YPTL(J))**2 .GT. RADSQR ) GOTO 25
+        IF ( (XPTL(I)-XPTL(J))**2 .GT. RADSQR ) GOTO 25
+        IF ( I .EQ. J ) GOTO 25
+        IF ( IORPTL(I).GT.0 .AND. IORPTL(J).EQ.IORPTL(I) ) GOTO 25
+        IF ( IORPTL(I) .EQ. J ) GOTO 25
+        IF ( IORPTL(J) .EQ. I ) GOTO 25
+        PDE=(PPTL(3,I)+PPTL(3,J))/(PPTL(4,I)+PPTL(4,J))
+        GAM2I=1.-PDE**2
+        IF ( GAM2I .EQ. 0. ) GOTO 25
+        IF ( (ZPTL(I)-ZPTL(J)-(TPTL(I)-TPTL(J))*PDE)**2
+     *                                 .GT. RADSQR*GAM2I ) GOTO 25
+        IF ( (XPTL(I)-XPTL(J))**2+(YPTL(I)-YPTL(J))**2+
+     *    1./GAM2I*(ZPTL(I)-ZPTL(J)-(TPTL(I)-TPTL(J))*PDE)**2
+     *                                       .GT. RADSQR ) GOTO 25
+        CALL JINTCC(I,J,IRET)
+        IF ( IRET .EQ. 1 ) GOTO 25
+
+        IACTN=0
+        NPTL00=NPTL
+        NSTR00=NSTR
+        XAVER(1)=(XPTL(I)+XPTL(J))*0.5
+        XAVER(2)=(YPTL(I)+YPTL(J))*0.5
+        XAVER(3)=(ZPTL(I)+ZPTL(J))*0.5
+        XAVER(4)=(TPTL(I)+TPTL(J))*0.5
+
+        CALL JINTFS(I,J,NQIFUS,JC,AMIM,IRET)
+        IF ( IRET .EQ. 1 ) GOTO 25
+
+        CALL JINTCE(I,J,AMIM,IACTN,IRET)
+        IF ( IRET .EQ. 25 ) GOTO25
+
+        TIVPTL(2,I)=TPTL(I)
+        TIVPTL(2,J)=TPTL(J)
+        ISTPTL(I)=1
+        ISTPTL(J)=1
+        IACPTL(I)=.TRUE.
+        IACPTL(J)=.TRUE.
+
+        CALL JINTCH(I,J,KMAX)
+        DO 30 K=1,KMAX
+          N=IFRIJ(K)
+          ISTPTL(N)=2
+          IACPTL(N)=.TRUE.
+30      CONTINUE
+        CALL JINTPA(I,J,KMAX)
+        DO 31 K=1,KMAX
+          N=IFRIJ(K)
+          IACPTL(N)=.TRUE.
+31      CONTINUE
+
+        IF ( IACTN .EQ. 1 ) THEN
+          DO 32 N=NPTL00+1,NPTL
+            IAAPTL(N)=1
+            CALL IDQUAC(N,NQI,NDUMMY,NDUMMY,JCDU)
+            IF ( NQI .EQ. 0 ) THEN
+              RADPTL(N)=RADIAS
+              AMIPTL(N)=PIOM+AMSIAC
+            ELSE
+              RADPTL(N)=RADIAC
+              AMIPTL(N)=PROM+AMSIAC
+            ENDIF
+            IACPTL(N)=.FALSE.
+            IF ( PPTL(5,N) .GT. AMIPTL(N) ) IACPTL(N)=.TRUE.
+            CALL UTTAIN(N,X,Y,Z,T,K,0)
+            IF ( K.EQ.1 .OR. K.EQ.2 .OR. K.EQ.9 ) IACPTL(N)=.TRUE.
+            IF ( ABS(IDPTL(N)) .LT. 100
+     *           .AND. ABS(IDPTL(N)) .NE. 20 ) IACPTL(N)=.TRUE.
+            XPTL(N)=X
+            YPTL(N)=Y
+            ZPTL(N)=Z
+            TPTL(N)=T
+            IF ( OVERLP.GE.0. .AND. MAPROJ.NE.0 .AND. MATARG.NE.0 ) THEN
+              IF ( (X-BX*.5)**2+(Y-BY*.5)**2+(Z-VELP*TAUS)**2
+     *                                 .LT. RNUP**2  .AND.
+     *             (X+BX*.5)**2+(Y+BY*.5)**2+(Z-VELT*TAUS)**2
+     *                                 .LT. RNUT**2 )  IACPTL(N)=.TRUE.
+            ENDIF
+32        CONTINUE
+          GOTO 24
+        ENDIF
+
+        CALL JINTEL(I,J,AMIM,IACTN)
+        IF ( IACTN .EQ. 2 ) THEN
+          DO 33 N=NPTL00+1,NPTL
+            IF     ( N .EQ. NPTL00+1 ) THEN
+              IJ=I
+            ELSEIF ( N .EQ. NPTL00+2 ) THEN
+              IJ=J
+            ENDIF
+            RADPTL(N)=RADPTL(IJ)
+            AMIPTL(N)=AMIPTL(IJ)
+            XPTL(N)=XAVER(1)
+            YPTL(N)=XAVER(2)
+            ZPTL(N)=XAVER(3)
+            TPTL(N)=XAVER(4)
+            IACPTL(N)=.FALSE.
+            IAAPTL(N)=1
+33        CONTINUE
+          GOTO 24
+        ENDIF
+
+        CALL JINTFU(I,J,JC,IACTN)
+        DO 34 N=NPTL00+1,NPTL
+          IF ( NQIFUS .EQ. 0 ) THEN
+            RADPTL(N)=RADIAS
+            AMIPTL(N)=PIOM+AMSIAC
+          ELSE
+            RADPTL(N)=RADIAC
+            AMIPTL(N)=PROM+AMSIAC
+          ENDIF
+          XPTL(N)=XAVER(1)
+          YPTL(N)=XAVER(2)
+          ZPTL(N)=XAVER(3)
+          TPTL(N)=XAVER(4)
+          IACPTL(N)=.FALSE.
+          IAAPTL(N)=1
+34      CONTINUE
+*       GOTO 24
+
+*250   GOTO 25
+
+24    CONTINUE
+      IF ( I .LT. NPTL-1 ) GOTO 9999
+
+      ISHNPT=ISH
+      IF ( ISHSUB/100 .EQ. 19 ) ISH=MOD(ISHSUB,100)
+      IF ( ISH .EQ. 22 ) THEN
+        WRITE(IFMT,131)NT,NBEF,NAFT,NPTL
+131     FORMAT(1X,'NT=',I5,4X,'NBEF=',I8,4X,'NAFT=',I8,4X,'NPTL=',I8)
+      ENDIF
+      ISH=ISHNPT
+CDH   IF ( ISH .EQ. 13 ) CALL UTTIMA('INTERACTIONS   ')
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JINTA2
+
+C----------------------------------------------------------------------
+C  SECONDARY INTERACTIONS: PERCOLATION--CLUSTER MODEL
+C----------------------------------------------------------------------
+      PARAMETER (KOLLMX=2500)
+      PARAMETER (MAMX=56)
+      PARAMETER (MXDKY=2000)
+      PARAMETER (MXINDX=1000)
+      PARAMETER (MXLOOK=10000)
+      PARAMETER (MXMA=11)
+      PARAMETER (MXMX=6)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXIFR=MXPTL)
+      PARAMETER (MXRE=100)
+      PARAMETER (MXSTR=3000)
+      PARAMETER (NDEP=129)
+      PARAMETER (NDET=129)
+      PARAMETER (NFLAV=6)
+      PARAMETER (NPRBMS=20)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /CIFRIJ/  IFRIJ(MXIFR)
+      COMMON /CJINT/   BX,BY,RNUP,RNUT,VELP,VELT,XAVER(4),NPTL0
+      COMMON /CKOL/    KOL
+      COMMON /CNCE/    NCES,NCOLEX
+      COMMON /CNFR/    NRFRA
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /COL/     BIMP,BMAX,COORD(4,KOLLMX),DISTCE(KOLLMX)
+     *                ,QDEP(NDEP),QDET14(NDET),QDET16(NDET),QDET40(NDET)
+     *                ,QDET99(NDET),RMPROJ,RMTARG(4),XDEP(NDEP)
+     *                ,XDET14(NDET),XDET16(NDET),XDET40(NDET)
+     *                ,XDET99(NDET)
+     *                ,KOLL,LTARG,NORD(KOLLMX),NPROJ,NRPROJ(KOLLMX)
+     *                ,NRTARG(KOLLMX),NTARG
+      COMMON /CPRBMS/  PRBMS(NPRBMS)
+      COMMON /CPROJA/  IPROJ,ITARG,KPROJA(NHA,MAMX),KTARGA(NHA,MAMX)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CREMA/   REMA(MXRE,MXMA),REWI(MXRE,MXMA)
+     *                ,ICRE1(MXRE,MXMA),ICRE2(MXRE,MXMA)
+     *                ,IDMX(MXMA,MXMX),INDX(MXINDX)
+      COMMON /CSTR/    PSTR(5,MXSTR),ROTSTR(3,MXSTR),XORSTR(4,MXSTR)
+     *                ,ICSTR(4,MXSTR),IORSTR(MXSTR),IRLSTR(MXSTR),NSTR
+      COMMON /CTIMEL/  NTC
+      DOUBLE PRECISION DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /CTTAUS/  DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /C2PTL/   AMIPTL(MXPTL),RADPTL(MXPTL),IAAPTL(MXPTL)
+      COMMON /C3PTL/   DESPTL(MXPTL),DEZPTL(MXPTL)
+      COMMON /C4PTL/   OPTL(MXPTL),TPTL(MXPTL),UPTL(MXPTL)
+     *                ,XPTL(MXPTL),YPTL(MXPTL),ZPTL(MXPTL)
+      COMMON /DIDIB/   NDIDIB
+      COMMON /DKYTAB/  CBR(MXDKY),LOOK(MXLOOK),MODE(5,MXDKY)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /PARTNR/  PEX,PEY,PEZET,PE0,PX4,PY4,SUMMAS
+     *                ,IC4,IPTNR,JS4,NPS
+
+      INTEGER          IC4(2),JC(NFLAV,2),JCDU(NFLAV,2),JCI(NFLAV,2)
+      LOGICAL          IACPTL(MXPTL+10)
+C----------------------------------------------------------------------
+C  INITIALIZATION FOR NTC=1
+C  ------------------------
+      IF ( NTC .EQ. 1 ) THEN
+        IF ( OVERLP.GE.0. .AND. MAPROJ.NE.0 .AND. MATARG.NE.0 ) THEN
+          IF ( MAPROJ .EQ. 1 ) THEN
+            RNUP=0.
+          ELSE
+            RNUP=1.19*MAPROJ**(.3333333)-1.61*MAPROJ**(-.3333333)
+          ENDIF
+          RNUP=RNUP+OVERLP
+          IF ( MATARG .EQ. 1 ) THEN
+            RNUT=0.
+          ELSE
+            RNUT=1.19*MATARG**(.3333333)-1.61*MATARG**(-.3333333)
+          ENDIF
+          RNUT=RNUT+OVERLP
+          VELP=PPTL(3,1)/PPTL(4,1)
+          VELT=PPTL(3,IABS(MAPROJ)+1)/PPTL(4,IABS(MAPROJ)+1)
+          BX=COS(PHIEVT)*BIMEVT
+          BY=SIN(PHIEVT)*BIMEVT
+        ENDIF
+        NPTL0=NPTL
+        DO 51 I=1,NPTL0
+          IAAPTL(I)=1
+          CALL IDQUAC(I,NQI,NDUMMY,NDUMMY,JCI)
+          IF ( NQI .EQ. 0 ) THEN
+            RADPTL(I)=RADIAS
+            DESPTL(I)=RADIAS
+            DEZPTL(I)=0.
+            AMIPTL(I)=PIOM+AMSIAC
+          ELSE
+            RADPTL(I)=RADIAC
+            DESPTL(I)=RADIAC
+            DEZPTL(I)=0.
+            AMIPTL(I)=PROM+AMSIAC
+          ENDIF
+51      CONTINUE
+      ENDIF
+
+C  INITIALIZATION FOR EACH NTC
+C  ---------------------------
+      NT=NTC
+      CALL UTPAGE
+CDH   IF ( ISH .EQ. 13 ) CALL UTTIMA('               ')
+      NBEF=NPTL
+CDH   N0BEF=NPTL0
+      NAFT=NPTL
+CDH   N0AFT=NPTL0
+      IF ( NCLEAN .GT. 0 ) THEN
+        IF ( MOD(NT-1,NCLEAN) .EQ. 0 ) THEN
+          CALL UTCLEA(NPTL0)
+          NAFT=NPTL
+CDH       N0AFT=NPTL0
+        ENDIF
+      ENDIF
+      TAUS=TTAUS
+      NPTLPT=ABS(MAPROJ)+ABS(MATARG)
+      IF ( NPTL .GT. NPTL0 ) THEN
+        DO 52 I=NPTL0+1,NPTL
+          CALL IDQUAC(I,NQI,NDUMMY,NDUMMY,JCI)
+          IF ( NQI .EQ. 0 ) THEN
+            RADPTL(I)=RADIAS
+            DESPTL(I)=RADIAS
+            DEZPTL(I)=0.
+            AMIPTL(I)=PIOM+AMSIAC
+          ELSE
+            RADPTL(I)=RADIAC
+            DESPTL(I)=RADIAC
+            DEZPTL(I)=0.
+            AMIPTL(I)=PROM+AMSIAC
+          ENDIF
+52      CONTINUE
+      ENDIF
+      DO 44 I=1,NPTL
+        IF ( ICLPTL(I).EQ.0 .AND. PPTL(5,I).GT.AMIPTL(I) ) THEN
+          IACPTL(I)=.TRUE.
+        ELSE
+          IACPTL(I)=.FALSE.
+        ENDIF
+        IF ( IORPTL(I).EQ.-1 ) IACPTL(I)=.TRUE.
+        CALL UTTAIN(I,X,Y,Z,T,N,0)
+        IF ( N.EQ.2 ) THEN
+          IF ( NCLEAN .GT. 0 ) THEN
+            IF ( MOD(NT,NCLEAN).EQ.0 ) THEN
+              ISTPTL(I)=2
+            ENDIF
+          ENDIF
+          IACPTL(I)=.TRUE.
+          GOTO 54
+        ENDIF
+        IF ( N.EQ.9 ) THEN
+          IACPTL(I)=.TRUE.
+          GOTO 54
+        ENDIF
+        IF ( N.EQ.1 ) THEN
+          IACPTL(I)=.TRUE.
+          GOTO 54
+        ENDIF
+        IF ( IAAPTL(I) .EQ. 0 ) THEN
+          IACPTL(I)=.TRUE.
+          GOTO 54
+        ENDIF
+        IF ( ISTPTL(I) .EQ. 2 ) IACPTL(I)=.TRUE.
+        IF ( ABS(IDPTL(I)) .LT. 100
+     *       .AND.  ABS(IDPTL(I)) .NE. 20 ) IACPTL(I)=.TRUE.
+        IF ( IDPTL(I) .EQ. 441  .AND.  JPSIFI .EQ. 0 ) IACPTL(I)=.TRUE.
+ 54     XPTL(I)=X
+        YPTL(I)=Y
+        ZPTL(I)=Z
+        TPTL(I)=T
+        CALL UTTAUS(Z,SZ)
+        OPTL(I)=SZ+DESPTL(I)
+        UPTL(I)=SZ-DESPTL(I)
+        IF ( OVERLP.GE.0. .AND. MAPROJ.NE.0 .AND. MATARG.NE.0 ) THEN
+          IF ( (X-BX*.5)**2+(Y-BY*.5)**2+(Z-VELP*TAUS)**2 .LT. RNUP**2
+     *         .AND. (X+BX*.5)**2+(Y+BY*.5)**2+(Z-VELT*TAUS)**2
+     *                                  .LT. RNUT**2 ) IACPTL(I)=.TRUE.
+        ENDIF
+44    CONTINUE
+      NPTL0=NPTL
+      I=0
+
+C  I LOOP --> 24
+C  -------------
+9999  I=I+1
+      IF ( IACPTL(I) ) GOTO 24
+      J0=NPTLPT+1
+      IF ( I .GT. NPTLPT ) J0=I+1
+      IF ( I .GT. NPTL0 ) J0=1
+      UPTLI = UPTL(I)
+      OPTLI = OPTL(I)
+
+C  J LOOP --> 250
+C  -------------
+      J = J0-1
+25    J = J+1
+      IF ( J .GT. NPTL ) GOTO 24
+        IF ( IACPTL(J) ) THEN
+          IF ( IACPTL(J+1) ) THEN
+            IF ( IACPTL(J+2) ) THEN
+              IF ( IACPTL(J+3) ) THEN
+                IF ( IACPTL(J+4) ) THEN
+                  IF ( IACPTL(J+5) ) THEN
+                    IF ( IACPTL(J+6) ) THEN
+                      IF ( IACPTL(J+7) ) THEN
+                        IF ( IACPTL(J+8) ) THEN
+                          IF ( IACPTL(J+9) ) THEN
+                            IF ( IACPTL(J+10) ) THEN
+                              J=J+10
+                              GOTO 25
+                            ELSE
+                              J=J+10
+                              IF ( J .GT. NPTL ) GOTO 24
+                              GOTO 26
+                            ENDIF
+                          ELSE
+                            J=J+9
+                            IF ( J .GT. NPTL ) GOTO 24
+                            GOTO 26
+                          ENDIF
+                        ELSE
+                          J=J+8
+                          IF ( J .GT. NPTL ) GOTO 24
+                          GOTO 26
+                        ENDIF
+                      ELSE
+                        J=J+7
+                        IF ( J .GT. NPTL ) GOTO 24
+                        GOTO 26
+                      ENDIF
+                    ELSE
+                      J=J+6
+                      IF ( J .GT. NPTL ) GOTO 24
+                      GOTO 26
+                    ENDIF
+                  ELSE
+                    J=J+5
+                    IF ( J .GT. NPTL ) GOTO 24
+                    GOTO 26
+                  ENDIF
+                ELSE
+                  J=J+4
+                  IF ( J .GT. NPTL ) GOTO 24
+                  GOTO 26
+                ENDIF
+              ELSE
+                J=J+3
+                IF ( J .GT. NPTL ) GOTO 24
+                GOTO 26
+              ENDIF
+            ELSE
+              J=J+2
+              IF ( J .GT. NPTL ) GOTO 24
+              GOTO 26
+            ENDIF
+          ELSE
+            J=J+1
+            IF ( J .GT. NPTL ) GOTO 24
+            GOTO 26
+          ENDIF
+        ENDIF
+ 26     IF ( OPTLI .LT. UPTL(J) ) GOTO 25
+        IF ( UPTLI .GE. OPTL(J) ) GOTO 25
+        RADSQR=(RADPTL(I)+RADPTL(J))**2
+        IF ( (YPTL(I)-YPTL(J))**2 .GT. RADSQR ) GOTO 25
+        IF ( (XPTL(I)-XPTL(J))**2 .GT. RADSQR ) GOTO 25
+        IF ( I .EQ. J ) GOTO 25
+        IF ( IORPTL(I).GT.0 .AND. IORPTL(J).EQ.IORPTL(I) ) GOTO 25
+        IF ( IORPTL(I) .EQ. J ) GOTO 25
+        IF ( IORPTL(J) .EQ. I ) GOTO 25
+        IF ( (XPTL(I)-XPTL(J))**2+(YPTL(I)-YPTL(J))**2 .GT. RADSQR )
+     *                                                       GOTO 25
+        CALL JINTCC(I,J,IRET)
+        IF ( IRET .EQ. 1 ) GOTO 25
+
+        IACTN=0
+        NPTL00=NPTL
+        NSTR00=NSTR
+        XAVER(1)=(XPTL(I)+XPTL(J))*0.5
+        XAVER(2)=(YPTL(I)+YPTL(J))*0.5
+        XAVER(3)=(ZPTL(I)+ZPTL(J))*0.5
+        XAVER(4)=(TPTL(I)+TPTL(J))*0.5
+
+        CALL JINTFS(I,J,NQIFUS,JC,AMIM,IRET)
+        IF ( IRET .EQ. 1 ) GOTO 25
+
+        CALL JINTCE(I,J,AMIM,IACTN,IRET)
+        IF ( IRET .EQ. 25 ) GOTO 25
+
+        TIVPTL(2,I)=TPTL(I)
+        TIVPTL(2,J)=TPTL(J)
+        ISTPTL(I)=1
+        ISTPTL(J)=1
+        IACPTL(I)=.TRUE.
+        IACPTL(J)=.TRUE.
+
+        CALL JINTCH(I,J,KMAX)
+        DO 30 K=1,KMAX
+          N=IFRIJ(K)
+          ISTPTL(N)=2
+          IACPTL(N)=.TRUE.
+30      CONTINUE
+        CALL JINTPA(I,J,KMAX)
+        DO 31 K=1,KMAX
+          N=IFRIJ(K)
+          IACPTL(N)=.TRUE.
+31      CONTINUE
+
+        IF ( IACTN .EQ. 1 ) THEN
+          DO 32 N=NPTL00+1,NPTL
+            IAAPTL(N)=1
+            CALL IDQUAC(N,NQI,NDUMMY,NDUMMY,JCDU)
+            IF ( NQI .EQ. 0 ) THEN
+              RADPTL(N)=RADIAS
+              DESPTL(N)=RADIAS
+              DEZPTL(N)=0.
+              AMIPTL(N)=PIOM+AMSIAC
+            ELSE
+              RADPTL(N)=RADIAC
+              DESPTL(N)=RADIAC
+              DEZPTL(N)=0.
+              AMIPTL(N)=PROM+AMSIAC
+            ENDIF
+            IACPTL(N)=.FALSE.
+            IF ( PPTL(5,N) .GT. AMIPTL(N) ) IACPTL(N)=.TRUE.
+            CALL UTTAIN(N,X,Y,Z,T,K,0)
+            IF ( K.EQ.1 .OR. K.EQ.2 .OR. K.EQ.9 ) IACPTL(N)=.TRUE.
+            IF ( ABS(IDPTL(N)).LT.100 .AND. ABS(IDPTL(N)).NE.20 )
+     *                                              IACPTL(N)=.TRUE.
+            XPTL(N)=X
+            YPTL(N)=Y
+            ZPTL(N)=Z
+            TPTL(N)=T
+            CALL UTTAUS(Z,SZ)
+            OPTL(N)=SZ+DESPTL(N)
+            UPTL(N)=SZ-DESPTL(N)
+            IF ( OVERLP.GE.0. .AND. MAPROJ.NE.0 .AND. MATARG.NE.0 ) THEN
+              IF ( (X-BX*.5)**2+(Y-BY*.5)**2+(Z-VELP*TAUS)**2.LT.RNUP**2
+     *           .AND. (X+BX*.5)**2+(Y+BY*.5)**2+(Z-VELT*TAUS)**2
+     *                                    .LT.RNUT**2 ) IACPTL(N)=.TRUE.
+            ENDIF
+32        CONTINUE
+          GOTO 24
+        ENDIF
+
+        CALL JINTEL(I,J,AMIM,IACTN)
+        IF ( IACTN .EQ. 2 ) THEN
+          DO 33 N=NPTL00+1,NPTL
+            IF     ( N .EQ. NPTL00+1 ) THEN
+              IJ=I
+            ELSEIF ( N .EQ. NPTL00+2 ) THEN
+              IJ=J
+            ENDIF
+            RADPTL(N)=RADPTL(IJ)
+            DESPTL(N)=DESPTL(IJ)
+            DEZPTL(N)=DEZPTL(IJ)
+            AMIPTL(N)=AMIPTL(IJ)
+            XPTL(N)=XAVER(1)
+            YPTL(N)=XAVER(2)
+            ZPTL(N)=XAVER(3)
+            TPTL(N)=XAVER(4)
+            Z=ZPTL(N)
+            CALL UTTAUS(Z,SZ)
+            OPTL(N)=SZ+DESPTL(N)
+            UPTL(N)=SZ-DESPTL(N)
+            IACPTL(N)=.FALSE.
+            IAAPTL(N)=1
+33        CONTINUE
+          GOTO 24
+        ENDIF
+
+        CALL JINTFU(I,J,JC,IACTN)
+        DO 34 N=NPTL00+1,NPTL
+          IF ( NQIFUS .EQ. 0 ) THEN
+            RADPTL(N)=RADIAS
+            DESPTL(N)=RADIAS
+            DEZPTL(N)=0.
+            AMIPTL(N)=PIOM+AMSIAC
+          ELSE
+            RADPTL(N)=RADIAC
+            DESPTL(N)=RADIAC
+            DEZPTL(N)=0.
+            AMIPTL(N)=PROM+AMSIAC
+          ENDIF
+          XPTL(N)=XAVER(1)
+          YPTL(N)=XAVER(2)
+          ZPTL(N)=XAVER(3)
+          TPTL(N)=XAVER(4)
+          Z=ZPTL(N)
+          CALL UTTAUS(Z,SZ)
+          OPTL(N)=SZ+DESPTL(N)
+          UPTL(N)=SZ-DESPTL(N)
+          IACPTL(N)=.FALSE.
+          IAAPTL(N)=1
+34      CONTINUE
+        IF ( ISH .EQ. 23  .AND.  PPTL(5,NPTL) .GE. AMPRIF ) THEN
+          N=NPTL
+          CALL JINTFP(I,J,N,
+     *           XPTL(I),YPTL(I),RADPTL(I),OPTL(I),UPTL(I),
+     *           XPTL(J),YPTL(J),RADPTL(J),OPTL(J),UPTL(J),
+     *           XPTL(N),YPTL(N),RADPTL(N),OPTL(N),UPTL(N))
+        ENDIF
+*       GOTO 24
+
+*250  GOTO 25
+
+24    CONTINUE
+      IF ( I .LT. NPTL-1 ) GOTO 9999
+
+      IF ( ISH .EQ. 24 ) THEN
+        IF ( TAUS.EQ.1.  .OR.  TAUS.EQ.2.  .OR.
+     *       TAUS.EQ.4.  .OR.  TAUS.EQ.8.      ) THEN
+          DO 45 I=1,NPTL
+            IF ( IACPTL(I)  .AND.  I .NE. NPTL ) GOTO 45
+            CALL JINTCL(I,XPTL(I),YPTL(I),RADPTL(I)
+     *                                       ,OPTL(I),UPTL(I),IACPTL(I))
+45        CONTINUE
+        ENDIF
+      ENDIF
+
+      ISHNPT=ISH
+      IF ( ISHSUB/100 .EQ. 19 ) ISH=MOD(ISHSUB,100)
+      IF ( ISH .EQ. 22 ) THEN
+        WRITE(IFMT,131)NT,NBEF,NAFT,NPTL
+131     FORMAT(1X,'NT=',I5,4X,'NBEF=',I8,4X,'NAFT=',I8,4X,'NPTL=',I8)
+      ENDIF
+      ISH=ISHNPT
+CDH   IF ( ISH .EQ. 13 ) CALL UTTIMA('INTERACTIONS   ')
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JINTCC(I,J,IRET)
+
+C---------------------------------------------------------------------
+C  IRET=1 IF I = CHILD OF J
+C  IRET=1 IF J = CHILD OF I
+C  IRET=0 ELSE
+C---------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXIFR=MXPTL)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /C2PTL/   AMIPTL(MXPTL),RADPTL(MXPTL),IAAPTL(MXPTL)
+
+      INTEGER IFR(MXIFR)
+C---------------------------------------------------------------------
+      IRET=0
+      DO 57 KK=1,2
+        IF ( KK .EQ. 1 ) THEN
+          N=I
+          M=J
+        ELSE
+          N=J
+          M=I
+        ENDIF
+        K1=0
+        K2=0
+        LOOP=0
+55      LOOP=LOOP+1
+        IF ( IFRPTL(1,N) .GT. 0 ) THEN
+          DO 56 K=IFRPTL(1,N),IFRPTL(2,N)
+            IF ( K .EQ. M ) GOTO 1001
+            K2=K2+1
+            IF ( K2 .GT. MXIFR ) THEN
+              CALL UTSTOP('JINTCC: K2 > MXIFR                      ')
+            ENDIF
+            IFR(K2)=K
+56        CONTINUE
+        ENDIF
+        K1=K1+1
+        IF ( K1 .LE. K2 ) THEN
+          N=IFR(K1)
+          GOTO 55
+        ENDIF
+57    CONTINUE
+      GOTO 1000
+
+1001  IRET=1
+
+1000  RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JINTCE(I,J,AMIM,IACTN,IRET)
+
+C----------------------------------------------------------------------
+C  COLOUR EXCHANGE INTERACTION OF PTLS I,J
+C  INPUT:
+C  I,J: PTL NUMBERS; AMF: MASS, AMIM: MIN MASS, OF FUSED OBJ
+C  IACTN=1: CE DONE
+C  IRET=0: CE DONE  OR  CRITERIA FOR CE NOT FULFILLED
+C  IRET=25: SKIP
+C----------------------------------------------------------------------
+      PARAMETER (KOLLMX=2500)
+      PARAMETER (MAMX=56)
+      PARAMETER (MXDKY=2000)
+      PARAMETER (MXINDX=1000)
+      PARAMETER (MXLOOK=10000)
+      PARAMETER (MXMA=11)
+      PARAMETER (MXMX=6)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXRE=100)
+      PARAMETER (MXSTR=3000)
+      PARAMETER (NDEP=129)
+      PARAMETER (NDET=129)
+      PARAMETER (NPRBMS=20)
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /CJINT/   BX,BY,RNUP,RNUT,VELP,VELT,XAVER(4),NPTL0
+      COMMON /CKOL/    KOL
+      COMMON /CNCE/    NCES,NCOLEX
+      COMMON /CNFR/    NRFRA
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /COL/     BIMP,BMAX,COORD(4,KOLLMX),DISTCE(KOLLMX)
+     *                ,QDEP(NDEP),QDET14(NDET),QDET16(NDET),QDET40(NDET)
+     *                ,QDET99(NDET),RMPROJ,RMTARG(4),XDEP(NDEP)
+     *                ,XDET14(NDET),XDET16(NDET),XDET40(NDET)
+     *                ,XDET99(NDET)
+     *                ,KOLL,LTARG,NORD(KOLLMX),NPROJ,NRPROJ(KOLLMX)
+     *                ,NRTARG(KOLLMX),NTARG
+      COMMON /CPRBMS/  PRBMS(NPRBMS)
+      COMMON /CPROJA/  IPROJ,ITARG,KPROJA(NHA,MAMX),KTARGA(NHA,MAMX)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CREMA/   REMA(MXRE,MXMA),REWI(MXRE,MXMA)
+     *                ,ICRE1(MXRE,MXMA),ICRE2(MXRE,MXMA)
+     *                ,IDMX(MXMA,MXMX),INDX(MXINDX)
+      COMMON /CSTR/    PSTR(5,MXSTR),ROTSTR(3,MXSTR),XORSTR(4,MXSTR)
+     *                ,ICSTR(4,MXSTR),IORSTR(MXSTR),IRLSTR(MXSTR),NSTR
+      COMMON /CTIMEL/  NTC
+      DOUBLE PRECISION DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /CTTAUS/  DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /C2PTL/   AMIPTL(MXPTL),RADPTL(MXPTL),IAAPTL(MXPTL)
+      COMMON /DIDIB/   NDIDIB
+      COMMON /DKYTAB/  CBR(MXDKY),LOOK(MXLOOK),MODE(5,MXDKY)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /PARTNR/  PEX,PEY,PEZET,PE0,PX4,PY4,SUMMAS
+     *                ,IC4,IPTNR,JS4,NPS
+
+      DOUBLE PRECISION ARM(5),ARP(5),ARQ,BOO(5),ROT(3)
+      REAL             PROJ(NSI,NHA),PSUM(5),TARG(NSI,NHA)
+      INTEGER          IC(2),IC4(2)
+C----------------------------------------------------------------------
+C  INITIALIZATION
+C  --------------
+      IRET=0
+      DELRAP=1.5
+      DELAMF=1.0
+      ISH00=ISH
+      PNLLX0=PNLLX
+      TAUS=TTAUS
+      AMF=PPTL(5,NPTL+1)
+
+C  CHECK WHETHER CE CRITERIA FULFILLED
+C  -----------------------------------
+      VEI=PPTL(3,I)/PPTL(4,I)
+      VEJ=PPTL(3,J)/PPTL(4,J)
+      IF ( ABS(VEI) .LT. 1.  .AND.  ABS(VEJ) .LT. 1. ) THEN
+        RAI=0.5*LOG((1.+VEI)/(1.-VEI))
+        RAJ=0.5*LOG((1.+VEJ)/(1.-VEJ))
+      ELSE
+        RAI=0.
+        RAJ=0.
+      ENDIF
+      IF ( .NOT. (AMF.GT.AMIM+DELAMF .AND. ABS(RAI-RAJ).GT.DELRAP
+     *            .AND. ABS(IDPTL(I)).LT.10000
+     *            .AND. ABS(IDPTL(J)).LT.10000) ) GOTO 1000
+      IACTN=1
+
+C  PRINT
+C  -----
+      IF ( ISH .GE. 91 ) THEN
+        IF ( ISH .GE. 92 ) WRITE(IFCH,*)' '
+        WRITE(IFCH,101)NTC,TAUS
+101     FORMAT(1X,'CO.EX. INTERACTION --- NT=',I3,' --- TAUS=',F6.2)
+        IF ( ISH .GE. 92 ) WRITE(IFCH,*)' '
+        WRITE(IFCH,115)I,IDPTL(I)
+     *                  ,(PPTL(K,I),K=3,5),(XORPTL(K,I),K=3,4)
+115     FORMAT(1X,'/CPTL/',I8,I10
+     *            ,1X,2(E10.2),E10.2,1X,2(E10.2),2X,I4)
+        WRITE(IFCH,115)J,IDPTL(J)
+     *                  ,(PPTL(K,J),K=3,5),(XORPTL(K,J),K=3,4)
+        IF ( ISH .GE. 92 ) THEN
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,*)'AMF,AMIM: ',AMF,AMIM
+          WRITE(IFCH,*)'RAI,RAJ:  ',RAI,RAJ
+          WRITE(IFCH,*)' '
+        ENDIF
+      ENDIF
+
+C  INITIALIZATION
+C  --------------
+      NPTL00=NPTL
+      NSTR00=NSTR
+
+      IPROJ=1
+      ITARG=1
+      DO 11 L=1,NHA
+        KPROJA(L,1)=1
+        KTARGA(L,1)=1
+11    CONTINUE
+      KOL=1
+      COORD(1,1)=XAVER(1)
+      COORD(2,1)=XAVER(2)
+      COORD(3,1)=XAVER(3)
+      COORD(4,1)=XAVER(4)
+
+      IDP=IDPTL(I)
+      IDM=IDPTL(J)
+      DO 12 L=1,5
+        ARP(L)=PPTL(L,I)
+        ARM(L)=PPTL(L,J)
+        BOO(L)=PPTL(L,NPTL+1)
+12    CONTINUE
+      SROOT = ABS(PPTL(5,NPTL+1))
+      S=PPTL(5,NPTL+1)**2
+
+C  BOOSTS INTO I-J CM
+C  ------------------
+      CALL UTLOB2(1,BOO(1),BOO(2),BOO(3),BOO(4),BOO(5)
+     *             ,ARP(1),ARP(2),ARP(3),ARP(4))
+      CALL UTLOB2(1,BOO(1),BOO(2),BOO(3),BOO(4),BOO(5)
+     *             ,ARM(1),ARM(2),ARM(3),ARM(4))
+      IF ( ARP(3) .LT. 0.D0 ) THEN
+        IDQ=IDM
+        IDM=IDP
+        IDP=IDQ
+        DO 14 L=1,5
+          ARQ=ARM(L)
+          ARM(L)=ARP(L)
+          ARP(L)=ARQ
+14      CONTINUE
+      ENDIF
+      PNLLX=ARP(3)
+      ROT(1)=(ARP(1)-ARM(1))*0.5D0
+      ROT(2)=(ARP(2)-ARM(2))*0.5D0
+      ROT(3)=(ARP(3)-ARM(3))*0.5D0
+      CALL UTROT2(1,ROT(1),ROT(2),ROT(3)
+     *             ,ARP(1),ARP(2),ARP(3))
+      CALL UTROT2(1,ROT(1),ROT(2),ROT(3)
+     *             ,ARM(1),ARM(2),ARM(3))
+
+C  CHECKS
+C  ------
+      IF ( ARP(3) .LT. 0.D0 ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JINTCE')
+          WRITE(IFCH,*)'*****  Z-COMP OF +JET < 0.'
+          WRITE(IFCH,*)(SNGL(ARP(L)),L=1,4)
+          WRITE(IFCH,*)(SNGL(ARM(L)),L=1,4)
+          CALL UTMSGF
+        ENDIF
+        GOTO 10025
+      ENDIF
+      IF ( ABS(SNGL(ARP(4)+ARM(4))-SROOT) .GT.
+     *                                 2.E-2*SROOT ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JINTCE')
+          WRITE(IFCH,*)'*****  ARP(4)+ARM(4)-SQRT(S) NONZERO'
+          WRITE(IFCH,*)'VALUE:   ',SNGL(ARP(4)+ARM(4))-SROOT
+          WRITE(IFCH,*)'SQRT(S): ',SROOT
+          WRITE(IFCH,*)(SNGL(ARP(I)),I=1,4)
+          WRITE(IFCH,*)(SNGL(ARM(I)),I=1,4)
+          CALL UTMSGF
+        ENDIF
+      ENDIF
+
+C  FILL PROJ, TARG
+C  ---------------
+      CALL IDTR4(IDP,IC)
+      DO 25 M=1,NHA
+        DO 24 N=1,NSI
+          PROJ(N,M)=0.
+24      CONTINUE
+25    CONTINUE
+      PROJ(5,1)=IC(1)
+      PROJ(6,1)=IC(2)
+      PROJ(5,2)=IC(1)
+      PROJ(6,2)=IC(2)
+      PROJ(1,2)=ARP(1)
+      PROJ(2,2)=ARP(2)
+      PROJ(3,2)=ARP(3)
+      PROJ(4,2)=ARP(4)
+      CALL IDTR4(IDM,IC)
+      DO 28 M=1,NHA
+        DO 27 N=1,NSI
+          TARG(N,M)=0.
+27      CONTINUE
+28    CONTINUE
+      TARG(5,1)=IC(1)
+      TARG(6,1)=IC(2)
+      TARG(5,2)=IC(1)
+      TARG(6,2)=IC(2)
+      TARG(1,2)=ARM(1)
+      TARG(2,2)=ARM(2)
+      TARG(3,2)=ARM(3)
+      TARG(4,2)=ARM(4)
+
+C  REDO
+C  ----
+      CALL UTREMB(PROJ,TARG,1)
+      LOO=1
+      GOTO 58
+57    CONTINUE
+      LOO=LOO+1
+      IF ( LOO .GT. 20 ) GOTO 10025
+      IF ( ISH .GE. 91 ) WRITE(IFCH,*)'REDO HH COLLISION'
+      CALL UTREST(PROJ,TARG,1)
+58    CONTINUE
+
+C  NUMBER OF CE'S
+C  --------------
+      NCOLEX=1
+C-C   LO=0
+C-C16 LO=LO+1
+C-C   IF ( LO .EQ. 3 ) THEN
+C-C     IF ( ISH .GE. 90 ) THEN
+C-C       CALL UTMSG('JINTCE')
+C-C       WRITE(IFCH,*)'*****  LO=3'
+C-C       CALL UTMSGF
+C-C     ENDIF
+C-C   ENDIF
+C-C   R=RANGEN()
+C-C   NCOLEX=0
+C-C15 NCOLEX=NCOLEX+1
+C-C   IF ( NCOLEX .GT. NPRBMS ) GOTO 16
+C-C   IF ( R .GT. PRBMS(NCOLEX) ) GOTO 15
+
+C  DO NCOLEX CE'S
+C  --------------
+      ISKIP=0
+      DO 30 NCE=1,NCOLEX
+        IF ( ISH .GE. 92 .AND. NCE .GT. 1 ) THEN
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,*)NCE,'. COLOUR EXCHANGE'
+          WRITE(IFCH,*)' '
+        ENDIF
+        NCES=NCE
+        ISH=ISH-2
+        CALL HAHABS(PROJ,TARG,NCE/NCOLEX,NCE/NCOLEX,ISKIP,IRETHH)
+        ISH=ISH+2
+        IF ( ISKIP .NE. 0 ) GOTO 10025
+        IF ( IRETHH .EQ. 1 ) GOTO 57
+30    CONTINUE
+
+C  FRAGMENTATION
+C  -------------
+      IF ( NSTR .LE. NSTR00 ) GOTO 10050
+
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,123)
+123     FORMAT(/1X,'STRINGS BEFORE RESCALING'/)
+        DO 31 L=NSTR00+1,NSTR
+          WRITE(IFCH,109)L,(ICSTR(K,L)/100,K=1,4)
+     *          ,SQRT(PSTR(1,L)**2+PSTR(2,L)**2),PSTR(3,L),PSTR(5,L)
+     *          ,IRLSTR(L)
+109       FORMAT(' /CSTR/',I5,3X,4I5,3(E11.3),I5)
+31      CONTINUE
+      ENDIF
+
+      IF ( IRESCL .EQ. 1 ) THEN
+        PSUM(1)=0.
+        PSUM(2)=0.
+        PSUM(3)=0.
+        PSUM(4)=SROOT
+        PSUM(5)=SROOT
+        ISH=ISH-2
+        CALL HRESCL(NSTR00+1,NSTR,PSUM,IFAIL)
+        ISH=ISH+2
+        IF ( IFAIL .NE. 0 ) GOTO 57
+      ENDIF
+
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,124)
+124     FORMAT(/1X,'STRINGS AFTER RESCALING'/)
+        DO 32 L=NSTR00+1,NSTR
+          WRITE(IFCH,109)L,(ICSTR(K,L)/100,K=1,4)
+     *          ,SQRT(PSTR(1,L)**2+PSTR(2,L)**2),PSTR(3,L),PSTR(5,L)
+     *          ,IRLSTR(L)
+32      CONTINUE
+      ENDIF
+
+      DO 33 L=NSTR00+1,NSTR
+        IF ( ISH .GE. 92 ) WRITE(IFCH,122)L
+     *             ,(ICSTR(K,L),K=1,4)
+     *             ,SQRT(PSTR(1,L)**2+PSTR(2,L)**2),PSTR(3,L),PSTR(5,L)
+122     FORMAT(/' STR:',I7,4I7,3(E10.2)/)
+        ISH=ISH-2
+        CALL JAMFRA(L,NEWEVT)
+        ISH=ISH+2
+        IF ( NEWEVT .EQ. 1 ) GOTO 10025
+33    CONTINUE
+
+C  BOOST PARTICLES FROM STRING FRAGMENTATION
+C  -----------------------------------------
+      IF ( NPTL .LE. NPTL00 ) GOTO 10051
+
+      IORPTL(NPTL00+1)=I
+      JORPTL(NPTL00+1)=J
+      DO 34 L=1,5
+        PSUM(L)=0.
+34    CONTINUE
+
+      DO 38 N=NPTL00+1,NPTL
+
+        DO 35 L=1,5
+          ARP(L)=PPTL(L,N)
+35      CONTINUE
+        CALL UTROT2(-1,ROT(1),ROT(2),ROT(3)
+     *                ,ARP(1),ARP(2),ARP(3))
+        CALL UTLOB2(-1,BOO(1),BOO(2),BOO(3),BOO(4),BOO(5)
+     *                ,ARP(1),ARP(2),ARP(3),ARP(4))
+        DO 36 L=1,5
+          PPTL(L,N)=ARP(L)
+36      CONTINUE
+        NQJPTL(N)=0
+
+        IF ( ISTPTL(N) .EQ. 0 ) THEN
+          PSUM(1)=PSUM(1)+PPTL(1,N)
+          PSUM(2)=PSUM(2)+PPTL(2,N)
+          PSUM(3)=PSUM(3)+PPTL(3,N)
+          PSUM(4)=PSUM(4)+PPTL(4,N)
+        ENDIF
+
+        IF ( ISH .GE. 91 ) THEN
+          WRITE(IFCH,115)N,IDPTL(N)
+     *              ,(PPTL(K,N),K=3,5),(XORPTL(K,N),K=3,4),ISTPTL(N)
+        ENDIF
+
+38    CONTINUE
+
+      IF ( ISH .GE. 90 ) THEN
+        IF ( ISH .GE. 92 ) THEN
+          WRITE(IFCH,*)'P_FIN:',(PSUM(K),K=1,4)
+          WRITE(IFCH,*)'P_INI:',(BOO(K),K=1,4)
+        ENDIF
+
+        IF ( (ABS(BOO(1)-PSUM(1)) .GT. 5.E-3*ABS(BOO(1))
+     *         .OR. ABS(BOO(2)-PSUM(2)) .GT. 5.E-3*ABS(BOO(2))
+     *         .OR. ABS(BOO(3)-PSUM(3)) .GT. 5.E-3*ABS(BOO(3))
+     *         .OR. ABS(BOO(4)-PSUM(4)) .GT. 1.E-1*ABS(BOO(4)))
+     *    .AND.
+     *       (ABS(BOO(1)-PSUM(1)) .GT. 5.E-3
+     *         .OR. ABS(BOO(2)-PSUM(2)) .GT. 5.E-3
+     *         .OR. ABS(BOO(3)-PSUM(3)) .GT. 5.E-3
+     *         .OR. ABS(BOO(4)-PSUM(4)) .GT. 1.E-1) ) THEN
+          CALL UTMSG('JINTCE')
+          WRITE(IFCH,*)'*****  P_INI /= P_FIN'
+          WRITE(IFCH,*)'FINAL PARTICLES:'
+          DO 39 N=NPTL00+1,NPTL
+            WRITE(IFCH,125)N,IDPTL(N),(PPTL(K,N),K=1,5),ISTPTL(N)
+125         FORMAT(1X,'/CPTL/',I6,I10,5(E11.3),I2)
+39        CONTINUE
+          WRITE(IFCH,*)'P_FIN:',(PSUM(K),K=1,4)
+          WRITE(IFCH,*)'P_INI:',(SNGL(BOO(K)),K=1,4)
+          CALL UTMSGF
+        ENDIF
+      ENDIF
+      GOTO 1000
+
+C  FINISH
+C  ------
+
+10025 CONTINUE
+      IRET=25
+      IF ( ISH .GE. 91 ) WRITE(IFCH,*)'SKIP'
+      NPTL=NPTL00
+      NSTR=NSTR00
+      GOTO 1000
+
+10050 CONTINUE
+      CALL UTMSG('JINTCE')
+      WRITE(IFCH,*)'INCIDENT PARTICLES:'
+      WRITE(IFCH,115)I,IDPTL(I),(PPTL(K,I),K=3,5)
+      WRITE(IFCH,115)J,IDPTL(J),(PPTL(K,J),K=3,5)
+      WRITE(IFCH,*)'NSTR=',NSTR,'    NSTR00=',NSTR00
+      CALL UTMSGF
+      CALL UTSTOP('JINTCE: NSTR .LE. NSTR00                ')
+
+10051 CONTINUE
+      CALL UTMSG('JINTCE')
+      WRITE(IFCH,*)'INCIDENT PARTICLES:'
+      WRITE(IFCH,115)I,IDPTL(I),(PPTL(K,I),K=3,5)
+      WRITE(IFCH,115)J,IDPTL(J),(PPTL(K,J),K=3,5)
+      WRITE(IFCH,*)'NSTR=',NSTR,'    NSTR00=',NSTR00
+      WRITE(IFCH,*)'NPTL=',NPTL,'    NPTL00=',NPTL00
+      CALL UTMSGF
+      CALL UTSTOP('JINTCE: NPTL .LE. NPTL00                ')
+
+1000  CONTINUE
+      PNLLX=PNLLX0
+      ISH=ISH00
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JINTCH(I,J,KMAX)
+
+C----------------------------------------------------------------------
+C  WRITES CHILDREN OF I,J TO IFRIJ(1-KMAX)
+C----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXIFR=MXPTL)
+      COMMON /CIFRIJ/  IFRIJ(MXIFR)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+C----------------------------------------------------------------------
+      KCUR=0
+      KMAX=0
+      LOOP=0
+31    LOOP=LOOP+1
+      IF     ( LOOP .EQ. 1 ) THEN
+        N=I
+      ELSEIF ( LOOP .EQ. 2 ) THEN
+        N=J
+      ENDIF
+      IF ( IFRPTL(1,N) .GT. 0 ) THEN
+        IF ( ISH.GE.92 ) WRITE(IFCH,*)N,' ---> ',IFRPTL(1,N),IFRPTL(2,N)
+        DO 30 K=IFRPTL(1,N),IFRPTL(2,N)
+          KMAX=KMAX+1
+          IF ( KMAX .GT. MXIFR ) THEN
+            CALL UTSTOP('JINTCH: KMAX > MXIFR                    ')
+          ENDIF
+          IFRIJ(KMAX)=K
+30      CONTINUE
+      ENDIF
+      IF ( LOOP .EQ. 1 ) GOTO 31
+      KCUR=KCUR+1
+      IF ( KCUR .LE. KMAX ) THEN
+        N=IFRIJ(KCUR)
+        GOTO 31
+      ENDIF
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JINTCL(I,X,Y,RAD,O,U,IAC)
+
+C---------------------------------------------------------------------
+C  FILLS HISTOGRAM CONCERNING CLUSTER CHARACTERISTICS
+C---------------------------------------------------------------------
+      PARAMETER (MXEPS=10)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXTAU=4)
+      PARAMETER (MXVOL=10)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CJINTC/  CLUST(MXTAU,MXVOL,MXEPS)
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      DOUBLE PRECISION DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /CTTAUS/  DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /CVSN/    IVERSN
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /NEVNT/   NEVNT
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /PARO5/   DELEPS,DELVOL
+
+      CHARACTER AX*2
+      LOGICAL   IAC
+C---------------------------------------------------------------------
+      TAU=SNGL(TTAUS)
+CDH   ITAU=1+LOG(TAU)/LOG(2.)
+      ITAU=1+LOG(TAU)*1.442695
+
+      IF ( IAC ) GOTO 1
+
+      VOL=(O-U)*RAD**2*PI
+      IVOL=1+VOL/DELVOL
+      EPS=PPTL(5,I)/VOL
+      IEPS=1+EPS/DELEPS
+      IF ( ITAU.GE.1 .AND. ITAU.LE.MXTAU .AND.
+     *     IVOL.GE.1 .AND. IVOL.LE.MXVOL .AND.
+     *     IEPS.GE.1 .AND. IEPS.LE.MXEPS )
+     *                CLUST(ITAU,IVOL,IEPS)=CLUST(ITAU,IVOL,IEPS)+1
+
+ 1    CONTINUE
+      IF ( I .LT. NPTL  .OR.  NREVT+1 .LT. NEVNT ) GOTO 1000
+
+      IF ( ITAU .EQ. 1 ) WRITE(IFCH,105)MAPROJ,MATARG,ENGY,IVERSN/100.
+105   FORMAT(/1X,'PROJ=',I3,3X,'TARG=',I3,3X,'ENGY=',F7.2
+     *          ,3X,'VENUS ',F4.2,' (TURBOVENUS)')
+      WRITE(IFCH,100)TAU,ITAU,NEVNT,DELVOL,DELEPS
+100   FORMAT(/1X,'TAU=',F5.2,3X,'ITAU=',I1
+     *          ,3X,'NEVNT=',I4,3X,'DELVOL=',F5.1,3X,'DELEPS=',F5.1/)
+      WRITE(IFCH,101)
+101   FORMAT(9X,'IVOL=1 IVOL=2 IVOL=3 IVOL=4 IVOL=5 '
+     *         ,'IVOL=6 IVOL=7 IVOL=8 IVOL=9 IVOL=10 ')
+      DO 106 IE=1,MXEPS
+        IF ( IE .LE. 9 ) THEN
+          WRITE(AX,102)IE
+102       FORMAT('0',I1)
+        ELSE
+          WRITE(AX,103)IE
+103       FORMAT(I2)
+        ENDIF
+        WRITE(IFCH,104)AX,(NINT(CLUST(ITAU,IV,IE)),IV=1,MXVOL)
+104     FORMAT(' IEPS=',A2,10I7)
+106   CONTINUE
+
+1000  CONTINUE
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JINTEL(I,J,AMIM,IACTN)
+
+C----------------------------------------------------------------------
+C  ELASTIC SCATTERING OF PTLS I,J
+C  EL SCATT REQUIR NOT FULF: RETURN WITHOUT ACTION, IACTN UNCHANGED
+C    ELSE: ELASTIC SCATTERING DONE, IACTN=2
+C----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      PARAMETER (NPTQ=129)
+      COMMON /CJINT/   BX,BY,RNUP,RNUT,VELP,VELT,XAVER(4),NPTL0
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CPTQ/    QPTH(NPTQ),QPTQ(NPTQ),XPTQ(NPTQ),QPTQMX,QPTHMX
+      COMMON /CTIMEL/  NTC
+      DOUBLE PRECISION DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /CTTAUS/  DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      REAL             P(5),PEI(5),PEJ(5),U(5)
+C----------------------------------------------------------------------
+C  CHECK
+C  -----
+      AMF=PPTL(5,NPTL+1)
+      IF ( AMF .GE. AMIM ) GOTO 1000
+
+C  PRINT
+C  -----
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,101)NTC,SNGL(TTAUS)
+101     FORMAT(1X,'ELASTIC SCATTERING --- NT=',I3,' --- TAUS=',F6.2)
+        WRITE(IFCH,115)I,IDPTL(I)
+     *                  ,(PPTL(K,I),K=3,5),(XORPTL(K,I),K=3,4)
+        WRITE(IFCH,115)J,IDPTL(J)
+     *                  ,(PPTL(K,J),K=3,5),(XORPTL(K,I),K=3,4)
+115     FORMAT(1X,'/CPTL/',I6,I10
+     *           ,1X,2(E10.2),E11.2,1X,2(E10.2),2X,I4)
+      ENDIF
+
+C  INITIALIZATION
+C  --------------
+      IACTN=2
+      DO 125 K=1,5
+        P(K)=PPTL(K,NPTL+1)
+125   CONTINUE
+
+C  DETERMINE MOMENTA OF OUTGOING PARTICLES (PEI,PEJ)
+C  -------------------------------------------------
+      IF     ( P(5) .LE. (PPTL(5,I)+PPTL(5,J))*.99 ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JINTEL')
+          WRITE(IFCH,132)P(5),PPTL(5,I)+PPTL(5,J)
+132       FORMAT(1X,'*****  M_FUS < M_I+M_J ---> QCM SET ZERO    ( '
+     *             ,2F10.3,' )')
+          WRITE(IFCH,133)'P_I:  ',(PPTL(K,I),K=1,5)
+          WRITE(IFCH,133)'P_J:  ',(PPTL(K,J),K=1,5)
+          WRITE(IFCH,133)'P_FUS:',(P(K),K=1,5)
+133       FORMAT(1X,A6,3X,5F10.3)
+          CALL UTMSGF
+        ENDIF
+        QCM=0.
+      ELSEIF ( P(5) .LE. PPTL(5,I)+PPTL(5,J) ) THEN
+        QCM=0.
+      ELSE
+        QCM=UTPCM(P(5),PPTL(5,I),PPTL(5,J))
+      ENDIF
+
+C  ISOTROPIC
+      U(3)=2.*RANGEN()-1.
+      PHI=2.*PI*RANGEN()
+      AUXIL=SQRT(1.-U(3)**2)
+      U(1)=AUXIL*COS(PHI)
+      U(2)=AUXIL*SIN(PHI)
+      PEI(1)= QCM*U(1)
+      PEJ(1)=-QCM*U(1)
+      PEI(2)= QCM*U(2)
+      PEJ(2)=-QCM*U(2)
+      PEI(3)= QCM*U(3)
+      PEJ(3)=-QCM*U(3)
+
+C  NONISOTROPIC
+C-C   R=RANGEN()
+C-C   IF     ( IOPTQ .EQ. 2 ) THEN
+C-C     PT = SQRT( -4.*PTQ**2/PI * LOG(1.-QPTQMX*R) )
+C-C   ELSEIF ( IOPTQ .EQ. 3 ) THEN
+C-C     PT = PTQ*SQRT( QPTQMX*R/(1.-QPTQMX*R) )
+C-C   ELSE
+C-C     PT=UTINVT(NPTQ,XPTQ,QPTQ,R*QPTQ(NPTQ))
+C-C   ENDIF
+C-C   IF ( PT .GE. QCM ) PT=RANGEN()*QCM
+C-C   QPL=SQRT(QCM**2-PT**2)
+C-C   U(3)=QPL
+C-C   PHI=2.*PI*RANGEN()
+C-C   U(1)=PT*COS(PHI)
+C-C   U(2)=PT*SIN(PHI)
+C-C   CALL UTAXIS(I,J,A1,A2,A3)
+C-C   IVT=1
+C-C   IF ( A3 .LT. 0. ) THEN
+C-C     A1=-A1
+C-C     A2=-A2
+C-C     A3=-A3
+C-C     IVT=-1
+C-C   ENDIF
+C-C   CALL UTROTA(-1,A1,A2,A3,U(1),U(2),U(3))
+C-C   DO 47 K=1,3
+C-C     PEI(K)= U(K)*IVT
+C-C     PEJ(K)=-U(K)*IVT
+C-C47 CONTINUE
+      PEI(4)=SQRT(QCM**2+PPTL(5,I)**2)
+      PEJ(4)=SQRT(QCM**2+PPTL(5,J)**2)
+      PEI(5)=PPTL(5,I)
+      PEJ(5)=PPTL(5,J)
+      CALL UTLOBO(-1,P(1),P(2),P(3),P(4),P(5)
+     *            ,PEI(1),PEI(2),PEI(3),PEI(4))
+      CALL UTLOBO(-1,P(1),P(2),P(3),P(4),P(5)
+     *            ,PEJ(1),PEJ(2),PEJ(3),PEJ(4))
+
+C  FILL /CPTL/
+C  -----------
+      DO 49 LO=1,2
+        NPTL=NPTL+1
+        IF ( LO .EQ. 1 ) THEN
+          IJ=I
+          PPTL(1,NPTL)=PEI(1)
+          PPTL(2,NPTL)=PEI(2)
+          PPTL(3,NPTL)=PEI(3)
+          PPTL(4,NPTL)=PEI(4)
+          PPTL(5,NPTL)=PEI(5)
+        ELSE
+          IJ=J
+          PPTL(1,NPTL)=PEJ(1)
+          PPTL(2,NPTL)=PEJ(2)
+          PPTL(3,NPTL)=PEJ(3)
+          PPTL(4,NPTL)=PEJ(4)
+          PPTL(5,NPTL)=PEJ(5)
+        ENDIF
+        ISTPTL(NPTL) =0
+        IDPTL(NPTL)  =IDPTL(IJ)
+        IBPTL(1,NPTL)=IBPTL(1,IJ)
+        IBPTL(2,NPTL)=IBPTL(2,IJ)
+        IBPTL(3,NPTL)=IBPTL(3,IJ)
+        IBPTL(4,NPTL)=IBPTL(4,IJ)
+        XORPTL(1,NPTL)=XAVER(1)
+        XORPTL(2,NPTL)=XAVER(2)
+        XORPTL(3,NPTL)=XAVER(3)
+        XORPTL(4,NPTL)=XAVER(4)
+        IORPTL(NPTL)=I
+        JORPTL(NPTL)=J
+        TIVPTL(1,NPTL)=XAVER(4)
+        CALL IDTAU(IDPTL(NPTL),PPTL(4,NPTL),PPTL(5,NPTL),TAUGM)
+        TIVPTL(2,NPTL)=TIVPTL(1,NPTL)+TAUGM
+        IFRPTL(1,NPTL)=0
+        IFRPTL(2,NPTL)=0
+        ICLPTL(NPTL)=ICLPTL(IJ)
+        NQJPTL(NPTL)=NQJPTL(IJ)
+        IF ( ISH .GE. 91 ) WRITE(IFCH,115)NPTL,IDPTL(NPTL)
+     *                    ,(PPTL(K,NPTL),K=3,5),(XORPTL(K,NPTL),K=3,4)
+49    CONTINUE
+
+1000  RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JINTFP(I,J,N,     XPL1,YPL1,RADPL1,OPL1,UPL1,
+     *  XPL2,YPL2,RADPL2,OPL2,UPL2,XPL3,YPL3,RADPL3,OPL3,UPL3)
+
+C----------------------------------------------------------------------
+C  PRINTOUT
+C----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      DOUBLE PRECISION DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /CTTAUS/  DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+
+      REAL       OPL(3),RADPL(3),UPL(3),XPL(3),YPL(3)
+      CHARACTER  AX*10,LIN*59,MARK*1,TXT*8
+C----------------------------------------------------------------------
+      XPL(1)  =XPL1
+      YPL(1)  =YPL1
+      RADPL(1)=RADPL1
+      OPL(1)  =OPL1
+      UPL(1)  =UPL1
+      XPL(2)  =XPL2
+      YPL(2)  =YPL2
+      RADPL(2)=RADPL2
+      OPL(2)  =OPL2
+      UPL(2)  =UPL2
+      XPL(3)  =XPL3
+      YPL(3)  =YPL3
+      RADPL(3)=RADPL3
+      OPL(3)  =OPL3
+      UPL(3)  =UPL3
+
+      V1=(OPL1-UPL1)*RADPL1**2*PI
+      V2=(OPL2-UPL2)*RADPL2**2*PI
+      V3=(OPL3-UPL3)*RADPL3**2*PI
+
+      WRITE(IFCH,103)SNGL(TTAUS)
+103   FORMAT(' MONITORING FUSION INTERACTION AT TTAUS=',F5.2)
+      TX=TTAUS
+      TX=MAX(TX,1.)
+      WRITE(TXT(3:7),104)TX
+104   FORMAT(F5.2)
+      WRITE(IFCH,105)'INCOMING:',I,IDPTL(I),PPTL(5,I),V1,PPTL(5,I)/V1
+      WRITE(IFCH,105)'INCOMING:',J,IDPTL(J),PPTL(5,J),V2,PPTL(5,J)/V2
+      WRITE(IFCH,105)'FUSED:   ',N,IDPTL(N),PPTL(5,N),V3,PPTL(5,N)/V3
+105   FORMAT(1X,A9,2X,'NR=',I6,2X,'ID=',I9,2X,'MASS=',F5.1,2X
+     *         ,'VOL=',F5.1,2X,'EPS=',F4.1)
+
+      DO 110 MM=1,3
+        IF     ( MM .EQ. 1 ) THEN
+          TXT(1:2)='S/'
+          TXT(8:8)=':'
+        ELSEIF ( MM .EQ. 2 ) THEN
+          TXT='X:      '
+        ELSEIF ( MM .EQ. 3 ) THEN
+          TXT='Y:      '
+        ENDIF
+        AX='---------!'
+        WRITE(IFCH,100)TXT,(AX,L=1,6)
+100     FORMAT(2X,A8,3X,'-3',8X,'-2',8X,'-1',9X,'0',9X,'1',9X,'2',9X,'3'
+     *         /13X,' !',6A10)
+        DO 109 K=1,3
+          DO 108 L=1,59
+            WO=-3.+L*0.1 + 0.05
+            WU=-3.+L*0.1 - 0.05
+            IF     ( MM .EQ. 1 ) THEN
+              O=OPL(K)/TX
+              U=UPL(K)/TX
+            ELSEIF ( MM .EQ. 2 ) THEN
+              O=XPL(K)+RADPL(K)
+              U=XPL(K)-RADPL(K)
+            ELSEIF ( MM .EQ. 3 ) THEN
+              O=YPL(K)+RADPL(K)
+              U=YPL(K)-RADPL(K)
+            ENDIF
+            IF ( K .EQ. 3 ) THEN
+              MARK='X'
+            ELSE
+              MARK='O'
+            ENDIF
+            IF ( WU .LE. O  .AND.  WO .GE. U ) THEN
+              LIN(L:L)=MARK
+            ELSE
+              LIN(L:L)=' '
+            ENDIF
+108       CONTINUE
+          WRITE(IFCH,101)U,O,LIN
+101       FORMAT(1X,2F6.2,' !',A59,'!')
+109     CONTINUE
+        WRITE(IFCH,102)('-',L=1,59)
+102     FORMAT(13X,' !',59A1,'!')
+110   CONTINUE
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JINTFS(I,J,NQI,JC,AMIM,IRET)
+
+C----------------------------------------------------------------------
+C  INPUT: PTL NUMBERS I,J
+C  OUTPUT: PPFUS(5): MOMENTUM , NQI: NET QUARK NUMBER,
+C              JC: JC-CODE, AMIM: MINIMUM MASS,    OF FUSED PTL
+C          IRET=0 IF OK, 1 ELSE
+C          PPFUS() WRITTEN TO PPTL(,NPTL+1)
+C----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      PARAMETER (NFLAV=6)
+      COMMON /CJINT/   BX,BY,RNUP,RNUT,VELP,VELT,XAVER(4),NPTL0
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      DOUBLE PRECISION PPFUS(5),PP52
+      REAL             P(5)
+      INTEGER          JC(NFLAV,2),JCI(NFLAV,2),JCJ(NFLAV,2)
+C----------------------------------------------------------------------
+      IRET=0
+
+      P(1)=PPTL(1,I)+PPTL(1,J)
+      PPFUS(1)=P(1)
+      P(2)=PPTL(2,I)+PPTL(2,J)
+      PPFUS(2)=P(2)
+      P(3)=PPTL(3,I)+PPTL(3,J)
+      PPFUS(3)=P(3)
+      P(4)=PPTL(4,I)+PPTL(4,J)
+      PPFUS(4)=P(4)
+      PP52=PPFUS(4)**2-PPFUS(3)**2-PPFUS(2)**2-PPFUS(1)**2
+      IF ( PP52 .LE. 0.D0 ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JINTFS')
+          WRITE(IFCH,*)'*****  MFUS**2 < 0    (',PP52,' )'
+          WRITE(IFCH,*)(PPFUS(M),M=1,4)
+          CALL UTMSGF
+        ENDIF
+        GOTO 1001
+      ENDIF
+      PPFUS(5)=SQRT(PP52)
+      IF ( NPTL+1 .GT. MXPTL ) THEN
+        CALL UTSTOP('JINTFS: NPTL>MXPTL                      ')
+      ENDIF
+      DO 36 K=1,5
+        PPTL(K,NPTL+1)=PPFUS(K)
+36    CONTINUE
+      AMF=PPFUS(5)
+
+      ISTPTL(NPTL+1)=0
+
+      CALL IDQUAC(I,NDUMMY,NDUMMY,NDUMMY,JCI)
+      CALL IDQUAC(J,NDUMMY,NDUMMY,NDUMMY,JCJ)
+      NQI=0
+      DO 29 N=1,NFLAV
+        JC(N,1)=JCI(N,1)+JCJ(N,1)
+        JC(N,2)=JCI(N,2)+JCJ(N,2)
+        NQI=NQI+JC(N,1)-JC(N,2)
+29    CONTINUE
+
+      CALL IDCOMJ(JC)
+      AMIM=UTAMNZ(JC,5)+.200
+      IF ( AMF.LT.AMIM .AND. I.GT.NPTL0 .AND. J.GT.NPTL0 ) GOTO 1001
+      GOTO 1000
+
+1001  IRET=1
+
+1000  RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JINTFU(I,J,JC,IACTN)
+
+C----------------------------------------------------------------------
+C  FUSION OF PTLS I,J: DETERMINE CLUSTER
+C----------------------------------------------------------------------
+      PARAMETER (MXDKY=2000)
+      PARAMETER (MXLOOK=10000)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (NFLAV=6)
+      COMMON /CJINT/   BX,BY,RNUP,RNUT,VELP,VELT,XAVER(4),NPTL0
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CTIMEL/  NTC
+      DOUBLE PRECISION DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /CTTAUS/  DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /DKYTAB/  CBR(MXDKY),LOOK(MXLOOK),MODE(5,MXDKY)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      INTEGER IB(4),IC(2),JC(NFLAV,2)
+C----------------------------------------------------------------------
+C  PRINT
+C  -----
+      IF ( ISH .GE. 91 ) THEN
+        WRITE(IFCH,101)NTC,SNGL(TTAUS)
+101     FORMAT(1X,'FUSION INTERACTION --- NT=',I3,' --- TAUS=',F6.2)
+        WRITE(IFCH,115)I,IDPTL(I)
+     *                  ,(PPTL(K,I),K=3,5),(XORPTL(K,I),K=3,4)
+        WRITE(IFCH,115)J,IDPTL(J)
+     *                  ,(PPTL(K,J),K=3,5),(XORPTL(K,I),K=3,4)
+115     FORMAT(1X,'/CPTL/',I6,I10
+     *           ,1X,2(E10.2),E11.3,1X,2(E10.2),2X,I4)
+      ENDIF
+
+C  INITIALIZATION
+C  --------------
+      IACTN=3
+      AMF=PPTL(5,NPTL+1)
+      NPTL=NPTL+1
+
+C  DETERMINE IDR, IB(1-4)
+C  ----------------------
+      IDR=0
+      DO 40 NF=1,NFLAV
+        IF ( JC(NF,1) .GE. 10 ) IDR=700000000
+        IF ( JC(NF,2) .GE. 10 ) IDR=700000000
+40    CONTINUE
+      IF ( IDR/100000000 .NE. 7 ) THEN
+        CALL IDENCO(JC,IC,IRETEN)
+        IF ( IRETEN .EQ. 1 ) THEN
+          CALL UTSTOP('JINTFU: IDENCO RET CODE = 1             ')
+        ENDIF
+        ID=IDTRA(IC,0,0,3)
+43      AMC=AMF
+        CALL IDRES(ID,AMC,IDR,IADJ)
+        IF ( IDR .NE. 0 ) THEN
+          LID=LOOK(IABS(IDR))
+          IF ( LID.LE.0  .OR.  LID.GT.0 .AND. MODE(2,LID).EQ.0 ) THEN
+            IF ( PPTL(5,NPTL) .GT. AMC+1.E-3 ) THEN
+              AMF=AMF+0.010
+              GOTO 43
+            ENDIF
+            IF ( ABS(AMC-PPTL(5,NPTL)) .GT. 1.E-3 ) THEN
+              IF ( ISH .GE. 90 ) THEN
+                CALL UTMSG('JINTFU')
+                WRITE(IFCH,*)'*****  NOT ON MASS SHELL AFTER FUSION: '
+     *                       ,PPTL(5,NPTL),AMC
+                CALL UTMSGF
+              ENDIF
+            ENDIF
+          ENDIF
+        ENDIF
+        IF ( IDR .EQ. 0 ) THEN
+          IF ( MOD(IC(1),100).NE.0 .OR. MOD(IC(2),100).NE.0 ) THEN
+            IDR=900000000
+          ELSE
+            IDR=800000000+IC(1)*100+IC(2)/100
+          ENDIF
+        ENDIF
+      ELSE
+        CALL IDTRBI(JC,IB(1),IB(2),IB(3),IB(4))
+        IDR=IDR
+     *      +MOD(JC(1,1)+JC(2,1)+JC(3,1)+JC(4,1),10000)*10000
+     *      +MOD(JC(1,2)+JC(2,2)+JC(3,2)+JC(4,2),10000)
+        IF ( ISH .GE. 93 ) WRITE(IFCH,*) 'IB:',(IB(KK),KK=1,4)
+        IBPTL(1,NPTL)=IB(1)
+        IBPTL(2,NPTL)=IB(2)
+        IBPTL(3,NPTL)=IB(3)
+        IBPTL(4,NPTL)=IB(4)
+      ENDIF
+
+C  FILL /CPTL/
+C  -----------
+      IDPTL(NPTL)=IDR
+      XORPTL(1,NPTL)=XAVER(1)
+      XORPTL(2,NPTL)=XAVER(2)
+      XORPTL(3,NPTL)=XAVER(3)
+      XORPTL(4,NPTL)=XAVER(4)
+      IORPTL(NPTL)=I
+      JORPTL(NPTL)=J
+      TIVPTL(1,NPTL)=XAVER(4)
+      CALL IDTAU(IDPTL(NPTL),PPTL(4,NPTL),PPTL(5,NPTL),TAUGM)
+      TIVPTL(2,NPTL)=TIVPTL(1,NPTL)+TAUGM
+      IFRPTL(1,NPTL)=0
+      IFRPTL(2,NPTL)=0
+      ICLPTL(NPTL)=1
+      NQJPTL(NPTL)=0
+
+C  PRINT + RETURN
+C  --------------
+      IF ( ISH .GE. 91 ) THEN
+        N=NPTL
+        WRITE(IFCH,115)N,IDPTL(N)
+     *                  ,(PPTL(K,N),K=3,5),(XORPTL(K,N),K=3,4)
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JINTPA(I,J,KMAX)
+
+C----------------------------------------------------------------------
+C  WRITES PARENTS OF I,J TO IFRIJ(1-KMAX)
+C  SETS IAAPTL()=0 FOR PARENTS
+C----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXIFR=MXPTL)
+      COMMON /CIFRIJ/  IFRIJ(MXIFR)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /C2PTL/   AMIPTL(MXPTL),RADPTL(MXPTL),IAAPTL(MXPTL)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+C----------------------------------------------------------------------
+      KCUR=0
+      KMAX=0
+      LOOP=0
+12    LOOP=LOOP+1
+      IF     ( LOOP .EQ. 1 ) THEN
+        N=I
+      ELSEIF ( LOOP .EQ. 2 ) THEN
+        N=J
+      ENDIF
+      IF ( IORPTL(N) .GT. 0 ) THEN
+        IF ( ISH .GE. 92 ) WRITE(IFCH,*)N,' <--- ',IORPTL(N),JORPTL(N)
+        IF ( KMAX+2 .GT. MXIFR ) THEN
+          CALL UTSTOP('JINTPA: KMAX+2 > MXIFR                  ')
+        ENDIF
+        IF ( IAAPTL(IORPTL(N)) .NE. 0 ) THEN
+          KMAX=KMAX+1
+          IFRIJ(KMAX)=IORPTL(N)
+          IAAPTL(IORPTL(N))=0
+        ENDIF
+        IF ( JORPTL(N) .GT. 0 ) THEN
+          IF ( IAAPTL(JORPTL(N)) .NE. 0 ) THEN
+            KMAX=KMAX+1
+            IFRIJ(KMAX)=JORPTL(N)
+            IAAPTL(JORPTL(N))=0
+          ENDIF
+        ENDIF
+      ENDIF
+      IF ( LOOP .EQ. 1 ) GOTO 12
+8     KCUR=KCUR+1
+      IF ( KCUR .LE. KMAX ) THEN
+        N=IFRIJ(KCUR)
+        IF ( IAAPTL(N) .NE. 0 ) THEN
+          CALL UTSTOP('JINTPA: SHOULD NOT HAPPEN               ')
+        ENDIF
+        GOTO 12
+      ENDIF
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JRESCL(J1,J2,PSUM,IFAIL)
+
+C-----------------------------------------------------------------------
+C  RESCALES PTL MOMENTA OF PTLS J1-J2 TO HAVE TOTAL MOM PSUM.
+C-----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CSCAL/   SCAL
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      DOUBLE PRECISION ENE,PADD(5),PP(5),PPSUM(5)
+      REAL             PSUM(5)
+      DATA ERRLIM/.001/
+C-----------------------------------------------------------------------
+      IFAIL=1
+
+      IF ( J1 .GE. J2 ) THEN
+        CALL UTSTOP('JRESCL: J1 .GE. J2                      ')
+      ENDIF
+
+      DO 100 K=1,5
+        PPSUM(K)=PSUM(K)
+        PADD(K)=0.D0
+100   CONTINUE
+      DO 110 J=J1,J2
+        DO 110 K=1,5
+          PADD(K)=PADD(K)+PPTL(K,J)
+110   CONTINUE
+      IF ( PADD (5) .GE. PPSUM(5) ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JRESCL')
+          WRITE(IFCH,*)'*****  SUM OF PTL MASSES .GE. PPSUM(5)'
+          DO 1 J=J1,J2
+            WRITE(IFCH,109)J,IDPTL(J),(PPTL(L,J),L=3,5)
+109         FORMAT(' /CPTL/',I6,I10,3(E11.3))
+ 1        CONTINUE
+          WRITE(IFCH,*)'PPSUM(345):',(SNGL(PPSUM(K)),K=3,5)
+          CALL UTMSGF
+        ENDIF
+        RETURN
+      ENDIF
+      PADD(5)=PADD(4)**2-PADD(1)**2-PADD(2)**2-PADD(3)**2
+      IF ( PADD(5) .LE. 0.D0 ) THEN
+        ENE = 0.D0
+        DO 111 J=J1,J2
+          ENE = ENE + DSQRT( PPTL(1,J)**2 + PPTL(2,J)**2
+     *                + DBLE(PPTL(3,J))**2 + PPTL(5,J)**2 )
+111     CONTINUE
+        PADD(5) = ENE**2 - PADD(1)**2 - PADD(2)**2 - PADD(3)**2
+        IF ( PADD(5) .LE. 0.D0 ) THEN
+          DO 2 J=J1,J2
+            WRITE(IFCH,108)J,(PPTL(L,J),L=1,5)
+108         FORMAT(' /CPTL/',I4,5(E11.3))
+ 2        CONTINUE
+          CALL UTSTOP('JRESCL: MASS**2 OF STRING-SUM NEGATIVE  ')
+        ENDIF
+      ENDIF
+      PADD(5)=SQRT(PADD(5))
+
+C  BOOST PTLS TO REST
+C  ------------------
+      DO 200 J=J1,J2
+        PP(1)=PPTL(1,J)
+        PP(2)=PPTL(2,J)
+        PP(3)=PPTL(3,J)
+        PP(4)=PPTL(4,J)
+        CALL UTLOB2(1,PADD(1),PADD(2),PADD(3),PADD(4),PADD(5)
+     *                 ,PP(1),PP(2),PP(3),PP(4))
+        PPTL(1,J)=PP(1)
+        PPTL(2,J)=PP(2)
+        PPTL(3,J)=PP(3)
+        PPTL(4,J)=PP(4)
+200   CONTINUE
+
+C  RESCALE MOMENTA IN REST FRAME
+C  -----------------------------
+      SCAL=1.
+      DO 301 IPASS=1,200
+        SUM=0.
+        DO 310 J=J1,J2
+          PPTL(1,J)=SCAL*PPTL(1,J)
+          PPTL(2,J)=SCAL*PPTL(2,J)
+          PPTL(3,J)=SCAL*PPTL(3,J)
+          PPTL(4,J)=SQRT(PPTL(1,J)**2+PPTL(2,J)**2+PPTL(3,J)**2
+     *                  +PPTL(5,J)**2)
+          SUM=SUM+PPTL(4,J)
+310     CONTINUE
+        SCAL=PSUM(5)/SUM
+        IF ( ABS(SCAL-1.) .LE. ERRLIM ) GOTO 300
+301   CONTINUE
+      IF ( ISH .GE. 90 ) THEN
+        CALL UTMSG('JRESCL')
+        WRITE(IFCH,*)'*****  SCAL=',SCAL
+        CALL UTMSGF
+      ENDIF
+300   CONTINUE
+
+C  BOOST BACK WITH PPSUM
+C  ---------------------
+      DO 330 J=J1,J2
+        PP(1)=PPTL(1,J)
+        PP(2)=PPTL(2,J)
+        PP(3)=PPTL(3,J)
+        PP(4)=PPTL(4,J)
+        CALL UTLOB2(-1,PPSUM(1),PPSUM(2),PPSUM(3),PPSUM(4),PPSUM(5)
+     *                   ,PP(1),PP(2),PP(3),PP(4))
+        PPTL(1,J)=PP(1)
+        PPTL(2,J)=PP(2)
+        PPTL(3,J)=PP(3)
+        PPTL(4,J)=PP(4)
+330   CONTINUE
+
+      IFAIL=0
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE JSPLIT(STRO,STR,KOLSP,IER,KMAXOR)
+
+C-----------------------------------------------------------------------
+C  SPLITS STRING STRO INTO Q-QBAR STRING STR AND REMAINDER (->STRO)
+C  DIMENSIONS: STRO(NSI,NSIX+1),STR(NSI,2)
+C  IER=0: OK ; IER=1: ERROR ; IER=2: ABSORPTION ;
+C  IER=3: AGAIN WITH NEW APART, EPART
+C-----------------------------------------------------------------------
+      PARAMETER (MAMX=56)
+      PARAMETER (NFLAV=6)
+      PARAMETER (NPTF=129)
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      PARAMETER (NSPLIT=129)
+      COMMON /CJSPLI/  ALEAD,APART,ELEAD,EPART,SGNSIL,JPART,NSCC,NSCCX
+      COMMON /CNFUSN/  NFUSN(NSIX+1)
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CPROJA/  IPROJ,ITARG,KPROJA(NHA,MAMX),KTARGA(NHA,MAMX)
+      COMMON /CPTF/    FPTFS,FPTFSS,FPTFU,FPTFUS,FPTFUU
+     *                ,QPTFS(NPTF),QPTFSS(NPTF),QPTFU(NPTF),QPTFUS(NPTF)
+     *                ,QPTFUU(NPTF),XPTF(NPTF)
+      COMMON /CPZSTR/  ESTRL,PZSTRL,ISEA,ISTRL
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /QUARKM/  SMAS,SSMAS,USMAS,UUMAS
+
+      DOUBLE PRECISION A,D,DAUXIL,PAM,PAP,PEM,PEP,PIM,PIP,PNL3,PNL4
+     *                ,PM,PO(5),POM,POP,POT,POX,POY,PO123,PP
+     *                ,PUM,PUP,PUT,PUX,PUY,PYM,PYP,SSTR(NSI,2)
+      REAL             STR(NSI,2),STRO(NSI,NSIX+1),STRO0(NSI,NSIX+1)
+      INTEGER          IC(2),ICX(2),JC(NFLAV,2),JCX(NFLAV,2)
+C-----------------------------------------------------------------------
+      PUDX=PUD*.945
+      ISH0=ISH
+      IF ( ISHSUB/100 .EQ. 15 ) ISH=MOD(ISHSUB,100)
+
+      CALL UTKSTR(STRO,KMAX)
+      IF ( KMAX .EQ. KMAXOR ) THEN
+        NSCC=0
+        IF ( JPART .EQ. 0 ) THEN
+          DO  5 I=1,KMAXOR
+            NFUSN(I)=0
+ 5        CONTINUE
+        ENDIF
+      ENDIF
+      KMAX0=KMAX
+      DO 10 K=1,KMAX
+        DO 10 I=1,NSI
+          STRO0(I,K)=STRO(I,K)
+10    CONTINUE
+C-C   PDIQ=PDIQUA*0.5
+C-C   IF ( KMAXOR .GT. KUTDIQ ) PDIQ=0.
+C-C   PDIQ=PDIQUA*0.5*NSCCX/(KMAXOR-1.)
+      PDIQ=0.
+      LOOP=0
+      NCORN=0
+      XUNTER=0.
+      XOBER=1.
+      MESSCO=0
+      IF ( SGNSIL .LT. 0. ) THEN
+        KOLSP=KTARGA(KMAX+1,ITARG)
+      ELSE
+        KOLSP=KPROJA(KMAX+1,IPROJ)
+      ENDIF
+      PAP=2.D0*EPART
+      PAM=0.D0
+      PUX=STRO(1,KMAX)
+      PUY=STRO(2,KMAX)
+      PUT=SQRT(PUX**2+PUY**2)
+      PUP=STRO(4,KMAX)-ABS(STRO(3,KMAX))
+      PUM=STRO(4,KMAX)+ABS(STRO(3,KMAX))
+
+C  PRINT
+C  -----
+      IF ( ISH .GE. 92 ) THEN
+        IF ( ISH .GE. 93 ) WRITE(IFCH,*)('-',L=1,79)
+        WRITE(IFCH,*)'MULTI-STRING DETECTED. SPLIT OFF Q-QBAR STRING:'
+        IF ( ISH .GE. 93 ) WRITE(IFCH,*)('-',L=1,79)
+        WRITE(IFCH,*)' '
+        IF ( ISH .GE. 93 ) THEN
+          WRITE(IFCH,*)'INPUT STRING STRO:'
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,105)(STRO(I,1),I=1,4),(NINT(STRO(I,1)),I=5,6)
+          DO 8 K=2,KMAX
+            WRITE(IFCH,104)(STRO(I,K),I=1,4),(NINT(STRO(I,K)),I=5,6)
+ 8        CONTINUE
+          WRITE(IFCH,*)' '
+        ENDIF
+      ENDIF
+
+C  ABSORPTION
+C  ----------
+      IF ( ISTRL .EQ. 1 ) GOTO 1002
+
+C  RESET
+C  -----
+5001  LOOP=0
+5000  LOOP=LOOP+1
+      IF ( LOOP .GE. 5 ) GOTO 1002
+      KMAX=KMAX0
+      DO 11 I=1,NSI
+        DO 11 K=1,KMAX
+        STRO(I,K)=STRO0(I,K)
+11    CONTINUE
+
+C  SPLIT OFF HADRON + DETERMINE REMAINDER STRING (MOMENTA)
+C  -------------------------------------------------------
+      IF ( RANGEN() .LT. PDIQ ) THEN
+        NQU=2
+      ELSE
+        NQU=1
+      ENDIF
+      IFLTT=0
+      IFLTO=0
+      DO 24 I=1,NQU
+        IFL=INT(RANGEN()/PUDX)+1
+        IFLTO=IFLTO*10+IFL
+        IFLTT=IFLTT*10+(IFL+1)/2
+24    CONTINUE
+      R=RANGEN()
+      IF     ( IFLTT .EQ. 1 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFU ,R*QPTFU(NPTF))
+C##       WRITE(IFCH,*)'JSPLIT:PT(OLD)=',PT
+        ELSE
+          RPT = R*FPTFU
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(1.+RPT*2./AUXIL))
+        ENDIF
+      ELSEIF ( IFLTT .EQ. 2 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFS ,R*QPTFS(NPTF))
+        ELSE
+          RPT = R*FPTFS
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(EXP( SMAS**2/AUXIL)+RPT*2./AUXIL)- SMAS**2)
+        ENDIF
+      ELSEIF ( IFLTT .EQ. 11 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFUU,R*QPTFUU(NPTF))
+        ELSE
+          RPT = R*FPTFUU
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(EXP(UUMAS**2/AUXIL)+RPT*2./AUXIL)-UUMAS**2)
+        ENDIF
+      ELSEIF ( IFLTT .EQ. 12  .OR.  IFLTT .EQ. 21 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFUS,R*QPTFUS(NPTF))
+        ELSE
+          RPT = R*FPTFUS
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(EXP(USMAS**2/AUXIL)+RPT*2./AUXIL)-USMAS**2)
+        ENDIF
+      ELSEIF ( IFLTT .EQ. 22 ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          PT=UTINVT(NPTF,XPTF,QPTFSS,R*QPTFSS(NPTF))
+        ELSE
+          RPT = R*FPTFSS
+          AUXIL=-4.*PTF**2/PI
+          PT=SQRT(AUXIL*LOG(EXP(SSMAS**2/AUXIL)+RPT*2./AUXIL)-SSMAS**2)
+        ENDIF
+      ENDIF
+      AT=SQRT(APART**2+PT**2)
+      R=RANGEN()
+      AUXIL=2.*R-1.
+      IF ( AUXIL .LT. 0. ) THEN
+        X = SQRT( 0.5-COS( (ACOS(-AUXIL)+PI)*.33333333 ) )
+      ELSE
+        X = SQRT( 0.5+COS( (ACOS(AUXIL)+PI)*.33333333 ) )
+      ENDIF
+      IF ( ESTRL .LE. ABS(PZSTRL) ) THEN
+        XUNTER=1.
+      ELSE
+        YSTRL=.5*LOG((ESTRL+PZSTRL)/(ESTRL-PZSTRL))
+        XUNTER=ABS(0.94*SINH(YSTRL))/EPART
+        IF ( XUNTER .GT. 1. ) XUNTER=1.
+      ENDIF
+      XUNTER=XUNTER-(XOBER-XUNTER)
+      X=XUNTER+X*(XOBER-XUNTER)
+C-C   EN=APART+X*(EPART-APART)
+      PZ=X*EPART
+      IF ( PZ .LT. 0. ) THEN
+        SGNPO=-1.
+      ELSE
+        SGNPO=1.
+      ENDIF
+      EN=SQRT(PZ**2+AT**2)
+C-C   IF ( AT .GT. EN ) AT=APART+RANGEN()*(EN-APART)
+C-C   PT=SQRT((AT-APART)*(AT+APART))
+      PHI=2.*PI*RANGEN()
+      PO(1)=PT*COS(PHI)
+      PO(2)=PT*SIN(PHI)
+C-C   PO(3)=SGNSIL*SQRT(EN**2-AT**2)
+      PO(3)=SGNSIL*PZ
+      PO(4)=EN
+      PO123=SQRT(PO(3)**2+PO(2)**2+PO(1)**2)
+      IF ( PO(4)-PO123 .GT. 0.D0 ) THEN
+        PO(5)=SQRT((PO(4)-PO123)*(PO(4)+PO123))
+      ELSE
+        PO(5)=0.D0
+        IF ( PO(4)-PO123 .LT. -1.D-4*PO(4) ) THEN
+          IF(ISH.GE.90)THEN
+            CALL UTMSG('JSPLIT')
+            WRITE(IFCH,*)'*****  !PO123! > PO4'
+            WRITE(IFCH,*)'PO123,PO4:',PO123,PO(4)
+            WRITE(IFCH,*)'PO1:',PO(1)
+            WRITE(IFCH,*)'PO2:',PO(2)
+            WRITE(IFCH,*)'PO3:',PO(3)
+            WRITE(IFCH,*)'PO5:',PO(5)
+            CALL UTMSGF
+          ENDIF
+        ENDIF
+      ENDIF
+      POX=PO(1)
+      POY=PO(2)
+      POT=SQRT(POX**2+POY**2)
+      POP=PO(4)+ABS(PO(3))*SGNPO
+      POM=PO(4)-ABS(PO(3))*SGNPO
+      STRO(1,1)=STRO(1,1)+PO(1)
+      STRO(2,1)=STRO(2,1)+PO(2)
+      STRO(3,1)=STRO(3,1)-EPART*SGNSIL +PO(3)
+      STRO(4,1)=STRO(4,1)-EPART +PO(4)
+      STRO(1,KMAX)=0.
+      STRO(2,KMAX)=0.
+      STRO(3,KMAX)=0.
+      STRO(4,KMAX)=0.
+      IF ( PO(4)-ABS(PO(3)) .GT. 0.D0 ) THEN
+        YLD=0.5*LOG((PO(4)+ABS(PO(3)))/(PO(4)-ABS(PO(3))))
+      ELSE
+        YLD=100.
+      ENDIF
+
+C  DETERMINE SPLIT STRING (MOMENTA)
+C  --------------------------------
+      PP=PAP+PUP
+      PM=PAM+PUM
+      PEP=PP-POP
+      PEM=PM-POM
+      IF ( PEP .LE. 0.D0 ) GOTO 5000
+      IF ( PEM .LE. 0.D0 ) GOTO 5000
+      A=(PEM*PEP-PUT**2-POT**2)*0.5D0
+      D=PUT*POT
+      DAUXIL = A**2-D**2
+      IF ( DAUXIL .LT. 0.D0 ) GOTO 5000
+      DAUXIL=SQRT(DAUXIL)
+      PYP=A+PUT**2-DAUXIL
+      IF ( PYP .LT. 0.D0  .AND.  PYP .GT. -1.D-6 ) PYP=0.D0
+      PYP=PYP/PEM
+      PYM=A+POT**2-DAUXIL
+      IF ( PYM .LT. 0.D0  .AND.  PYM .GT. -1.D-6 ) PYM=0.D0
+      PYM=PYM/PEP
+      IF ( PYP .LT. 0.D0 ) GOTO 5000
+      IF ( PYM .LT. 0.D0 ) GOTO 5000
+      PIP=PEP-PYP
+      IF ( PIP .LT. 0.D0 ) GOTO 5000
+      PIM=PYM
+      PAP=PYP
+      PAM=PEM-PYM
+      IF ( PAM .LT. 0.D0 ) GOTO 5000
+      SSTR(1,1)=-POX
+      SSTR(2,1)=-POY
+      SSTR(3,1)=SGNSIL*(PIP-PIM)*0.5D0
+      SSTR(4,1)=(PIP+PIM)*0.5D0
+      SSTR(1,2)=PUX
+      SSTR(2,2)=PUY
+      SSTR(3,2)=SGNSIL*(PAP-PAM)*0.5D0
+      SSTR(4,2)=(PAP+PAM)*0.5D0
+      PNL3=SSTR(3,1)+SSTR(3,2)
+      PNL4=SSTR(4,1)+SSTR(4,2)
+      IF ( PNL4-ABS(PNL3) .NE. 0. ) THEN
+        YNL=0.5*LOG((PNL4+ABS(PNL3))/(PNL4-ABS(PNL3)))
+      ELSE
+        YNL=100.
+      ENDIF
+      STR(1,1)=SSTR(1,1)
+      STR(2,1)=SSTR(2,1)
+      STR(3,1)=SSTR(3,1)
+      STR(4,1)=SSTR(4,1)
+      STR(1,2)=SSTR(1,2)
+      STR(2,2)=SSTR(2,2)
+      STR(3,2)=SSTR(3,2)
+      STR(4,2)=SSTR(4,2)
+
+C  CHECKS
+C  ------
+      IF ( ISH .GE. 90 ) THEN
+        IF ( ABS(PIP*PIM-POT**2) .GT. 1.D-4 ) THEN
+          CALL UTMSG('JSPLIT')
+          WRITE(IFCH,*)'*****  PIP*PIM /= POT**2'
+          WRITE(IFCH,*)'PIP*PIM=',PIP*PIM
+          WRITE(IFCH,*)'POT**2=',POT**2
+          WRITE(IFCH,*)'PIP=',PIP
+          WRITE(IFCH,*)'PIM=',PIM
+          WRITE(IFCH,*)'POT=',POT
+          CALL UTMSGF
+        ENDIF
+        IF ( ABS(PAP*PAM-PUT**2) .GT. 1.D-4 ) THEN
+          CALL UTMSG('JSPLIT')
+          WRITE(IFCH,*)'*****  PAP*PAM /= PUT**2'
+          WRITE(IFCH,*)'PAP*PAM=',PAP*PAM
+          WRITE(IFCH,*)'PUT**2=',PUT**2
+          WRITE(IFCH,*)'PAP=',PAP
+          WRITE(IFCH,*)'PAM=',PAM
+          WRITE(IFCH,*)'PUT=',PUT
+          CALL UTMSGF
+        ENDIF
+        IF ( ABS(SSTR(4,1)**2
+     *     -SSTR(1,1)**2-SSTR(2,1)**2-SSTR(3,1)**2) .GT. 1.D-4 ) THEN
+          CALL UTMSG('JSPLIT')
+          WRITE(IFCH,*)'*****  MASS**2 OF STRING END 1 NONZERO'
+          WRITE(IFCH,*)'MASS**2=',SSTR(4,1)**2
+     *                         -SSTR(1,1)**2-SSTR(2,1)**2-SSTR(3,1)**2
+          CALL UTMSGF
+        ENDIF
+        IF ( ABS(SSTR(4,2)**2
+     *     -SSTR(1,2)**2-SSTR(2,2)**2-SSTR(3,2)**2) .GT. 1.D-4 ) THEN
+          CALL UTMSG('JSPLIT')
+          WRITE(IFCH,*)'*****  MASS**2 OF STRING END 2 NONZERO'
+          WRITE(IFCH,*)'MASS**2=',SSTR(4,2)**2
+     *                         -SSTR(1,2)**2-SSTR(2,2)**2-SSTR(3,2)**2
+          CALL UTMSGF
+        ENDIF
+        DO 14 N=1,4
+
+          IF ( ABS(STR(N,1)+STRO(N,1)-STRO0(N,1)
+     *            +STR(N,2)+STRO(N,KMAX)-STRO0(N,KMAX)) .GT. 1.E-4
+     *      .AND.  ABS(STR(N,1)+STRO(N,1)-STRO0(N,1)
+     *                +STR(N,2)+STRO(N,KMAX)-STRO0(N,KMAX))
+     *           .GT. 1.E-4*ABS(STRO0(N,1)+STRO0(N,KMAX)) ) GOTO 15
+14      CONTINUE
+        GOTO 16
+15      CONTINUE
+        CALL UTMSG('JSPLIT')
+        WRITE(IFCH,*)'*****  P_STR + P_STRO /= P_STRO0'
+        WRITE(IFCH,*)'P_STR + P_STRO:'
+        WRITE(IFCH,104)((STR(N,1)+STR(N,2)+STRO(N,1)
+     *                                    +STRO(N,KMAX)),N=1,4)
+        WRITE(IFCH,*)'P_STRO0:'
+        WRITE(IFCH,104)((STRO0(N,1)+STRO0(N,KMAX)),N=1,4)
+        WRITE(IFCH,*)'STR:'
+        WRITE(IFCH,104)(STR(N,1),N=1,4)
+        WRITE(IFCH,104)(STR(N,2),N=1,4)
+        WRITE(IFCH,*)'STRO:'
+        WRITE(IFCH,104)(STRO(N,1),N=1,4)
+        WRITE(IFCH,104)(STRO(N,KMAX),N=1,4)
+        WRITE(IFCH,*)'STRO0:'
+        WRITE(IFCH,104)(STRO0(N,1),N=1,4)
+        WRITE(IFCH,104)(STRO0(N,KMAX),N=1,4)
+        CALL UTMSGF
+16      CONTINUE
+        IF ( ISH .GE. 93 ) THEN
+          WRITE(IFCH,100)APART,EPART,EN,PT
+100       FORMAT(3X,'APART,EPART,EN,PT:',4F13.5)
+          WRITE(IFCH,101)(SNGL(PO(K)),K=1,5)
+101       FORMAT(3X,'PO:',5F11.5/)
+          IF ( NQU .EQ. 2 ) THEN
+            WRITE(IFCH,*)'DIQUARK-ANTIDIQUARK BREAK'
+            WRITE(IFCH,*)' '
+          ENDIF
+        ENDIF
+      ENDIF
+
+C  FLAVOUR
+C  -------
+      IC(1)=NINT(ABS(STRO(4+1,KMAX)))
+      IC(2)=NINT(ABS(STRO(4+2,KMAX)))
+      STR(4+1,2)=IC(1)
+      STR(4+2,2)=IC(2)
+      DO 4 N=1,NFLAV
+        JCX(N,1)=0
+        JCX(N,2)=0
+4     CONTINUE
+      M=0
+      IF     ( NQU .EQ. 1 ) THEN
+        IF ( IC(1) .GT. 0 ) M=2
+        IF ( IC(2) .GT. 0 ) M=1
+        NFL=MOD(IFLTO,10)
+        JCX(NFL,M)=JCX(NFL,M)+1
+      ELSEIF ( NQU .EQ. 2 ) THEN
+        IF ( IC(1) .GT. 0 ) M=1
+        IF ( IC(2) .GT. 0 ) M=2
+        NFL=MOD(IFLTO,10)
+        JCX(NFL,M)=JCX(NFL,M)+1
+        NFL=IFLTO/10
+        JCX(NFL,M)=JCX(NFL,M)+1
+      ENDIF
+      IF ( M .EQ. 0 ) THEN
+        CALL UTSTOP('JSPLIT: M = 0                           ')
+      ENDIF
+      CALL IDENCO(JCX,ICX,IRETEN)
+      IF ( IRETEN .EQ. 1 ) THEN
+        CALL UTSTOP('JSPLIT: IDENCO RET CODE = 1             ')
+      ENDIF
+      STR(4+1,1)=ICX(1)
+      STR(4+2,1)=ICX(2)
+      CALL UTAMST(STR,AM,AMIN,IRET)
+      IF ( IRET .NE. 0 ) GOTO 1002
+      IF ( NFUSN(KMAX) .EQ. 1 ) GOTO 1002
+      IC(1)=NINT(STRO(4+1,1))
+      IC(2)=NINT(STRO(4+2,1))
+      CALL IDDECO(IC,JC)
+      DO 26 N=1,NQU
+        IF ( N .EQ. 1 ) THEN
+          NFL=MOD(IFLTO,10)
+        ELSE
+          NFL=IFLTO/10
+        ENDIF
+        IF ( JC(NFL,M) .GT. 0 ) THEN
+          JC(NFL,M)=JC(NFL,M)-1
+        ELSE
+          JC(NFL,3-M)=JC(NFL,3-M)+1
+        ENDIF
+26    CONTINUE
+      NN=0
+      DO 27 N=1,NFLAV
+        NN=NN+JC(N,1)+JC(N,2)
+27    CONTINUE
+      IF ( NN .EQ. 0 ) THEN
+        NFL=INT(RANGEN()/PUDX)+1
+        JC(NFL,1)=1
+        JC(NFL,2)=1
+      ENDIF
+      CALL IDENCO(JC,IC,IRETEN)
+      IF ( IRETEN .EQ. 1 ) THEN
+        IF ( ISH .GE. 90  .AND.  MESSCO .EQ. 0 ) THEN
+          CALL UTMSG('JSPLIT')
+          WRITE(IFCH,*)'*****  IDENCO RET CODE = 1.   REDO JSPLIT'
+          WRITE(IFCH,*)'JC:'
+          WRITE(IFCH,*)JC
+          CALL UTMSGF
+          MESSCO=1
+        ENDIF
+        GOTO 5000
+      ENDIF
+      STRO(4+1,1)=IC(1)
+      STRO(4+2,1)=IC(2)
+      STRO(4+1,KMAX)=0.
+      STRO(4+2,KMAX)=0.
+
+C  OK
+C  --
+1000  IER=0
+      NSCC=NSCC+1
+      GOTO 10002
+
+C  ERROR
+C  -----
+1001  IER=1
+      IF ( ISH .GE. 90 ) THEN
+        CALL UTMSG('JSPLIT')
+        WRITE(IFCH,*)'*****  SPLIT NOT POSSIBLE'
+        CALL UTMSGF
+      ENDIF
+      GOTO 10001
+
+C  ABSORPTION
+C  ----------
+1002  IER=2
+      NFUSN(KMAX)=1
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)'ABSORPTION OF STRO(,KMAX)'
+        WRITE(IFCH,*)' '
+      ENDIF
+      DO 18 I=1,NSI
+        STR(I,1)=0.
+        STR(I,2)=0.
+18    CONTINUE
+      DO 17 K=1,KMAX
+        DO 17 I=1,NSI
+          STRO(I,K)=STRO0(I,K)
+17    CONTINUE
+      STRO(1,1)=STRO(1,1)+STRO(1,KMAX)
+      STRO(2,1)=STRO(2,1)+STRO(2,KMAX)
+      STRO(3,1)=STRO(3,1)+STRO(3,KMAX)
+      STRO(4,1)=STRO(4,1)+STRO(4,KMAX)
+      STRO(1,KMAX)=0.
+      STRO(2,KMAX)=0.
+      STRO(3,KMAX)=0.
+      STRO(4,KMAX)=0.
+      IC(1)=NINT(STRO(4+1,1))
+      IC(2)=NINT(STRO(4+2,1))
+      CALL IDDECO(IC,JC)
+      ICX(1)=NINT(ABS(STRO(4+1,KMAX)))
+      ICX(2)=NINT(ABS(STRO(4+2,KMAX)))
+      CALL IDDECO(ICX,JCX)
+      DO 22 NF=1,NFLAV
+        JC(NF,1)=JC(NF,1)+JCX(NF,1)
+        JC(NF,2)=JC(NF,2)+JCX(NF,2)
+22    CONTINUE
+      CALL IDENCO(JC,IC,IRETEN)
+      IF ( IRETEN .EQ. 1 ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('JSPLIT')
+          WRITE(IFCH,*)'*****  IDENCO RET CODE = 1'
+     *                ,'   (AFTER ABSORPTION)'
+          WRITE(IFCH,*)'JC:'
+          WRITE(IFCH,*)JC
+          CALL UTMSGF
+        ENDIF
+        GOTO 1001
+      ENDIF
+      STRO(5,1)=IC(1)
+      STRO(6,1)=IC(2)
+      STRO(5,KMAX)=0.
+      STRO(6,KMAX)=0.
+      GOTO 10002
+
+C  CHECK NSCC
+C  ----------
+10002 CONTINUE
+      IF ( KMAXOR.GT.2 .AND. KMAX.EQ.2 .AND. MAX(1,NSCC).NE.NSCCX ) THEN
+        IER=3
+        IF ( ISH .GE. 91 ) THEN
+          WRITE(IFCH,*)'REDO STRING PROCESSING WITH NEW APART, EPART'
+          WRITE(IFCH,*)' '
+        ENDIF
+        GOTO 10001
+      ENDIF
+
+C  PRINT
+C  -----
+      IF ( ISH .GE. 92 ) THEN
+        IF ( ISH .GE. 93 ) THEN
+          WRITE(IFCH,*)'REMAINDER STRING:'
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,105)(STRO(I,1),I=1,4),(NINT(STRO(I,1)),I=5,6)
+          DO 9 K=2,KMAX
+            WRITE(IFCH,104)(STRO(I,K),I=1,4),(NINT(STRO(I,K)),I=5,6)
+ 9        CONTINUE
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,*)'SPLIT STRING:'
+          WRITE(IFCH,*)' '
+        ENDIF
+        WRITE(IFCH,105)(STR(I,1),I=1,4),(NINT(STR(I,1)),I=5,6)
+105     FORMAT(' STR: ',4F13.5,2I8)
+        WRITE(IFCH,104)(STR(I,2),I=1,4),(NINT(STR(I,2)),I=5,6)
+104     FORMAT('      ',4F13.5,2I8)
+        WRITE(IFCH,*)' '
+      ENDIF
+10001 CONTINUE
+      IF ( ISH .GE. 93 ) THEN
+        WRITE(IFCH,*)('-',L=1,25)
+        WRITE(IFCH,*)'   RETURN FROM JSPLIT   '
+        WRITE(IFCH,*)('-',L=1,25)
+        WRITE(IFCH,*)' '
+      ENDIF
+      ISH=ISH0
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE LEPEXP(RXBJ,RQSQ)
+
+C-----------------------------------------------------------------------
+C  GENERATES X_BJORKEN AND Q**2 ACCORDING TO AN EXPERIMENTAL
+C  DISTRIBUTION ( GIVEN IN ARRAY XQ(NXBJ,NQSQ) ).
+C-----------------------------------------------------------------------
+      PARAMETER (NQSQ=10)
+      PARAMETER (NXBJ=10)
+      REAL  XQ(NXBJ,NQSQ),VXQ(NXBJ*NQSQ)
+      EQUIVALENCE (XQ(1,1),VXQ(1))
+
+      DATA VXQ/1304.02,   366.40,    19.84,    10.79,     6.42,
+     *            4.54,     4.15,     3.38,     2.03,     1.56,
+     *          241.63,  1637.26,   427.36,   164.51,    73.72,
+     *           43.07,    20.73,    12.78,     9.34,     5.83,
+     *            0.01,   724.66,   563.79,   275.08,   176.13,
+     *          106.44,    85.82,    54.52,    37.12,    28.65,
+     *            0.01,   202.40,   491.10,   245.13,   157.07,
+     *          104.43,    61.05,    49.42,    37.84,    26.79,
+     *            0.01,     3.77,   316.38,   226.92,   133.45,
+     *           90.30,    63.67,    48.42,    35.73,    28.04,
+     *            0.01,     0.01,   153.74,   213.09,   114.14,
+     *           76.26,    60.02,    43.15,    43.47,    25.60,
+     *            0.01,     0.01,    39.31,   185.74,   108.56,
+     *           88.40,    47.29,    39.35,    31.80,    22.91,
+     *            0.01,     0.01,     0.01,   104.61,   107.01,
+     *           66.24,    45.34,    37.45,    33.44,    23.78,
+     *            0.01,     0.01,     0.01,    56.58,    99.39,
+     *           67.78,    43.28,    35.98,    34.63,    18.31,
+     *            0.01,     0.01,     0.01,    13.56,    76.25,
+     *           64.30,    42.80,    28.56,    21.19,    20.75 /
+      DATA QSQMIN/4./,QSQWID/4./,XBJMIN/0./,XBJWID/.025/,INIT/0/
+C-----------------------------------------------------------------------
+      INIT=INIT+1
+      IF ( INIT .EQ. 1 ) THEN
+        N=NXBJ*NQSQ
+        SUM=VXQ(1)
+        DO 1 I=2,N
+          SUM=SUM+VXQ(I)
+          VXQ(I)=VXQ(I)+VXQ(I-1)
+ 1      CONTINUE
+        DO 3 I=1,N
+          VXQ(I)=VXQ(I)/SUM
+ 3      CONTINUE
+      ENDIF
+
+      N=NXBJ*NQSQ
+      R=RANGEN()
+      CALL UTLOC(VXQ,N,R,ILOC)
+      IF ( ILOC .GE. N ) ILOC=ILOC-1
+      I=MOD(ILOC,NXBJ)+1
+      IF ( I .EQ. 0 ) I=NXBJ
+      J=ILOC/NXBJ + 1
+      IF ( ILOC .GT. 0 ) THEN
+        DXINT=VXQ(ILOC+1)-VXQ(ILOC)
+      ELSE
+        DXINT=VXQ(1)
+      ENDIF
+      DXBJ=XBJWID*ABS(R-VXQ(ILOC+1))/DXINT
+      DY  =QSQWID*RANGEN()
+      RXBJ=XBJMIN+XBJWID*FLOAT(I-1)+DXBJ
+      RQSQ=QSQMIN+QSQWID*FLOAT(J-1)+DY
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE LEPSTR(NUCLON,XBJ,QSQ,NSTRNG)
+
+C-----------------------------------------------------------------------
+C  RETURNS STRING CODE NSTRNG FOR GIVEN NUCLON, XBJ, QSQ.
+C  NUCLON  : THE STRUCK NUCLEON (1120/1220 = PROTON/NEUTRON)
+C  XBJ,QSQ : X-BJORKEN AND Q**2
+C  NSTRNG  : STRING CODE:
+C        PROTON STRINGS:          NEUTRON STRINGS:
+C        1 : U  ---  UD           11 : U  ---  DD
+C        2 : D  ---  UU           12 : D  ---  UD
+C        3 : U  ---  UB(UUD)      13 : U  ---  UB(UDD)
+C        4 : D  ---  DB(UUD)      14 : D  ---  DB(UDD)
+C        5 : S  ---  SB(UUD)      15 : S  ---  SB(UDD)
+C        6 : UB ---  U(UUD)       16 : UB ---  U(UDD)
+C        7 : DB ---  D(UUD)       17 : DB ---  D(UDD)
+C        8 : SB ---  S(UUD)       18 : SB ---  S(UDD)
+C-----------------------------------------------------------------------
+      REAL QUARKS(9)
+C-----------------------------------------------------------------------
+      NSTRNG=0
+
+C  PROTON-STRING (VALENCE PART)
+      IF     ( NUCLON .EQ. 1120 ) THEN
+        QUARKS(1) = 4.* STXU(XBJ,QSQ)
+        QUARKS(2) =     STXD(XBJ,QSQ)
+
+C  NEUTRON-STRING (VALENCE PART)
+      ELSEIF ( NUCLON .EQ. 1220 ) THEN
+        QUARKS(1) = 4.* STXD(XBJ,QSQ)
+        QUARKS(2) =     STXU(XBJ,QSQ)
+
+      ELSE
+        RETURN
+      ENDIF
+
+C  THE SEA CONTRIBUTIONS (PROTON/NEUTRON)
+      UDSEA     =     STXUS(XBJ,QSQ)
+      SSEA      =     STXS(XBJ,QSQ)
+      QUARKS(3) = 4.* UDSEA
+      QUARKS(4) =     UDSEA
+      QUARKS(5) =     SSEA
+      QUARKS(6) = 4.* UDSEA
+      QUARKS(7) =     UDSEA
+      QUARKS(8) =     SSEA
+
+      QUARKS(9) = 0.
+      DO 11 I=1,8
+        QUARKS(9) = QUARKS(9)+QUARKS(I)
+11    CONTINUE
+
+      R = RANGEN() * QUARKS(9)
+      SUMQ = 0.
+      DO 12 I=1,8
+        NSTRNG = I
+        SUMQ = SUMQ + QUARKS(I)
+        IF ( R .LE. SUMQ ) GO TO 13
+12    CONTINUE
+13    CONTINUE
+
+      IF ( NUCLON .EQ. 1220 ) NSTRNG=NSTRNG+10
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE LEPTAR(XBJ,QSQ,MATARG,LATARG,NUCLON)
+
+C-----------------------------------------------------------------------
+C  RETURNS NUCLON = ID OF HIT TARGET NUCLEON.
+C  XBJ   : X BJORKEN
+C  QSQ   : Q SQUARED
+C  MATARG : A  OF TARGET
+C  LATARG : Z  OF TARGET
+C  NUCLON: ID OF TARGET NUCLEON (1120/1220 FOR PROTON/NEUTRON)
+C-----------------------------------------------------------------------
+C  PROTON PART OF THE STRUCTURE FUNCTION:
+      F2P = LATARG * STXZPR(XBJ,QSQ)
+C  NEUTRON PART OF THE STRUCTURE FUNCTION:
+      F2N = (MATARG-LATARG) * STXZNE(XBJ,QSQ)
+C  STRUCTURE FUNCTION OF NUCLEUS:
+      F2A = F2P + F2N
+C  SELECT  THE TARGET-NUCLEON  ( PROTON OR NEUTRON ):
+      RN = RANGEN()
+      F2RNDM = F2A * RN
+      IF ( F2RNDM .LT. F2N ) THEN
+        NUCLON = 1220
+      ELSE
+        NUCLON = 1120
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE NUCINI(OPT,ANUC,LA,MA,ISI)
+
+C-----------------------------------------------------------------------
+C  INITIALIZES NUCLEON-MOMENTA.
+C  WRITES NUCLEONS ON /CPTL/ (P,IFR,ICL).
+C-----------------------------------------------------------------------
+      PARAMETER (MAMX=56)
+      PARAMETER (MAMX2=MAMX*2)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      COMMON /CNNN/    NNNPTL(MAMX2)
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      REAL      ANUC(NSI,NHA,MAMX)
+      CHARACTER OPT*3
+C-----------------------------------------------------------------------
+      NHAX=3
+      IF ( NHA .LT. NHAX ) THEN
+        CALL UTSTOP('NUCINI: NHA TOO SMALL                   ')
+      ENDIF
+      LAS=0
+      MAS=0
+
+      DO 1 L=1,MA
+        DO 2 M=1,NHA
+          DO 3 N=1,NSI
+            ANUC(N,M,L)=0.
+ 3        CONTINUE
+ 2      CONTINUE
+
+        IF     ( OPT .EQ. 'NUC' ) THEN
+          IF     ( ISI .GT. 0  .AND.  LAPROJ .LT. 0 ) THEN
+            ID=IDPROJ
+          ELSEIF ( ISI .LT. 0  .AND.  LATARG .LT. 0 ) THEN
+            ID=IDTARG
+          ELSE
+            IF ( RANGEN() .LE. (LA-LAS)/FLOAT(MA-MAS)) THEN
+              ID=1120
+              LAS=LAS+1
+            ELSE
+              ID=1220
+            ENDIF
+            MAS=MAS+1
+          ENDIF
+          CALL IDMASS(ID,AMS)
+          IC1=IDTRAI(1,ID,1)
+          IC2=IDTRAI(2,ID,1)
+          P1=0.
+          P2=0.
+          P3=ISI*PNLLX
+          P0=SQRT(PNLLX**2+AMS**2)
+          P0X=PNLLX
+          P5=AMS
+
+        ELSEIF ( OPT .EQ. 'STR' ) THEN
+          IF ( RANGEN() .LE. (LA-LAS)/FLOAT(MA-MAS) ) THEN
+            ID=1120
+            LAS=LAS+1
+          ELSE
+            ID=1220
+          ENDIF
+          MAS=MAS+1
+          IC1=IDTRAI(1,ID,1)
+          IC2=IDTRAI(2,ID,1)
+          P1=0.
+          P2=0.
+          P3=0.
+          P0=PROM
+          P5=PROM
+        ENDIF
+
+        ANUC(5,1,L)=IC1
+        ANUC(6,1,L)=IC2
+        ANUC(3,2,L)=P3
+        ANUC(4,2,L)=P0X
+        ANUC(5,2,L)=IC1
+        ANUC(6,2,L)=IC2
+        NPTL=NPTL+1
+        IF ( NPTL .NE. NNNPTL(NPTL) ) THEN
+          CALL UTSTOP('NUCINI: NPTL AND NNNPTL DONT MATCH      ')
+        ENDIF
+        IDPTL(NPTL)=ID
+        PPTL(1,NPTL)=P1
+        PPTL(2,NPTL)=P2
+        PPTL(3,NPTL)=P3
+        PPTL(4,NPTL)=P0
+        PPTL(5,NPTL)=P5
+        IFRPTL(1,NPTL)=0
+        IFRPTL(2,NPTL)=0
+        ICLPTL(NPTL)=1
+        NQJPTL(NPTL)=0
+ 1    CONTINUE
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE NUCLCO(MASSNR,N,X,Y,Z,YNUC)
+
+C-----------------------------------------------------------------------
+C  CALCULATES COORDINATES OF THE NUCLEONS IN A NUCLEUS.
+C-----------------------------------------------------------------------
+      PARAMETER (KOLLMX=2500)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (NDEP=129)
+      PARAMETER (NDET=129)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /COL/     BIMP,BMAX,COORD(4,KOLLMX),DISTCE(KOLLMX)
+     *                ,QDEP(NDEP),QDET14(NDET),QDET16(NDET),QDET40(NDET)
+     *                ,QDET99(NDET),RMPROJ,RMTARG(4),XDEP(NDEP)
+     *                ,XDET14(NDET),XDET16(NDET),XDET40(NDET)
+     *                ,XDET99(NDET)
+     *                ,KOLL,LTARG,NORD(KOLLMX),NPROJ,NRPROJ(KOLLMX)
+     *                ,NRTARG(KOLLMX),NTARG
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      REAL X(N),Y(N),Z(N)
+C-----------------------------------------------------------------------
+      IF ( MASSNR .EQ. 0 ) RETURN
+      IF ( MASSNR .GT. N ) THEN
+        CALL UTSTOP('NUCLCO: MASSNR.GT.N                     ')
+      ENDIF
+      IF ( MASSNR .EQ. 1 ) THEN
+        X(1)=0.
+        Y(1)=0.
+        Z(1)=0.
+        RETURN
+      ENDIF
+      DO 3 I=1,MASSNR
+10      CONTINUE
+        IF ( MASSNR .EQ. MAPROJ )
+     *                      R=UTINVT(NDEP,XDEP,QDEP,RANGEN()*QDEP(NDEP))
+        IF ( MASSNR .EQ. MATARG ) THEN
+          IF     ( LTARG .EQ. 1 ) THEN
+            R=UTINVT(NDET,XDET14,QDET14,RANGEN()*QDET14(NDET))
+          ELSEIF ( LTARG .EQ. 2 ) THEN
+            R=UTINVT(NDET,XDET16,QDET16,RANGEN()*QDET16(NDET))
+          ELSEIF ( LTARG .EQ. 3 ) THEN
+            R=UTINVT(NDET,XDET40,QDET40,RANGEN()*QDET40(NDET))
+          ELSE
+            R=UTINVT(NDET,XDET99,QDET99,RANGEN()*QDET99(NDET))
+          ENDIF
+        ENDIF
+        IF ( MASSNR.NE.MAPROJ .AND. MASSNR.NE.MATARG ) THEN
+          CALL UTSTOP('NUCLCO: NUCLEUS NEITHER PROJ NOR TARG   ')
+        ENDIF
+        COSTHE=1.-2.*RANGEN()
+        SINTHE= SQRT(1. - COSTHE**2)
+        PHI=2.*PI*RANGEN()
+        X(I)=R*SINTHE*COS(PHI)
+        Y(I)=R*SINTHE*SIN(PHI)
+        Z(I)=R*COSTHE
+        IF ( I .EQ. 1 ) GOTO 3
+        IF ( CORE .EQ. 0. ) GOTO 3
+        DO 2 J=1,I-1
+          IF ( (X(I)-X(J))**2+(Y(I)-Y(J))**2+(Z(I)-Z(J))**2
+     *                               .LT. CORE**2 ) GOTO 10
+2       CONTINUE
+3     CONTINUE
+      IF ( ISH .GE. 93 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'NUCLEON COORDINATES:'
+      ENDIF
+      AUXIL = 1./COSH(YNUC)
+      DO 4 I=1,MASSNR
+        Z(I)=Z(I)*AUXIL
+4     CONTINUE
+      IF ( ISH .GE. 93 ) THEN
+        DO 5 I=1,MASSNR
+          WRITE(IFCH,*)'I X Y Z: ',I,X(I),Y(I),Z(I)
+5       CONTINUE
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE NUCOGE
+
+C-----------------------------------------------------------------------
+C  WRITES NUCLEONS ON /CPTL/ (XOR,TIV,IST,IOR,JOR,NST).
+C  DETERMINES SEQUENCE OF COLLISIONS ACCORDING TO NUCLEAR GEOMETRY
+C    IF MAPROJ>0.
+C-----------------------------------------------------------------------
+      PARAMETER (KOLLMX=2500)
+      PARAMETER (MAMX=56)
+      PARAMETER (MAMX2=MAMX*2)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (NDEP=129)
+      PARAMETER (NDET=129)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /CNCL/    XPROJ(MAMX),XTARG(MAMX),YPROJ(MAMX)
+     *                ,YTARG(MAMX),ZPROJ(MAMX),ZTARG(MAMX)
+      COMMON /CNNN/    NNNPTL(MAMX2)
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /COL/     BIMP,BMAX,COORD(4,KOLLMX),DISTCE(KOLLMX)
+     *                ,QDEP(NDEP),QDET14(NDET),QDET16(NDET),QDET40(NDET)
+     *                ,QDET99(NDET),RMPROJ,RMTARG(4),XDEP(NDEP)
+     *                ,XDET14(NDET),XDET16(NDET),XDET40(NDET)
+     *                ,XDET99(NDET)
+     *                ,KOLL,LTARG,NORD(KOLLMX),NPROJ,NRPROJ(KOLLMX)
+     *                ,NRTARG(KOLLMX),NTARG
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+C-----------------------------------------------------------------------
+      IF ( ISH .EQ. 17  .OR.  ISH .GT. 92 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'NUCOGE (ENTRY)'
+      ENDIF
+      VELI=1./TANH(YPJTL-YHAHA)+TANH(YHAHA)
+      NPROJ=1
+      NTARG=1
+      DO 15 N=1,KOLLMX
+        NORD(N)=N
+        COORD(1,N)=0.
+        COORD(2,N)=0.
+        COORD(3,N)=0.
+        COORD(4,N)=0.
+15    CONTINUE
+
+      IF     ( MATARG .LT. 0 ) THEN
+        KOLL=-MATARG
+        NTARG=KOLL
+        BIMP=0.
+        NPTL=NPTL+1
+        XORPTL(1,NPTL)=0.
+        XORPTL(2,NPTL)=0.
+        XORPTL(3,NPTL)=0.
+        XORPTL(4,NPTL)=0.
+        TIVPTL(1,NPTL)=-AINFIN
+        TIVPTL(2,NPTL)=0.
+        ISTPTL(NPTL)=1
+        IORPTL(NPTL)=-1
+        JORPTL(NPTL)=0
+        NNNPTL(NPTL)=NPTL
+        DO 1 K=1,KOLL
+          NRPROJ(K)=1
+          NRTARG(K)=K
+          NPTL=NPTL+1
+          XORPTL(1,NPTL)=0.
+          XORPTL(2,NPTL)=0.
+          XORPTL(3,NPTL)=0.
+          XORPTL(4,NPTL)=0.
+          TIVPTL(1,NPTL)=-AINFIN
+          TIVPTL(2,NPTL)=0.
+          ISTPTL(NPTL)=1
+          IORPTL(NPTL)=-1
+          JORPTL(NPTL)=0
+          NNNPTL(NPTL)=NPTL
+1       CONTINUE
+        GOTO 9999
+
+      ELSEIF ( MAPROJ .EQ. 1  .AND.  MATARG .EQ. 1 ) THEN
+        KOLL=1
+        BIMP=0.
+        NRPROJ(1)=1
+        NRTARG(1)=1
+        DO 5 II=1,2
+          NPTL=NPTL+1
+          XORPTL(1,NPTL)=0.
+          XORPTL(2,NPTL)=0.
+          XORPTL(3,NPTL)=0.
+          XORPTL(4,NPTL)=0.
+          TIVPTL(1,NPTL)=-AINFIN
+          TIVPTL(2,NPTL)= 0.
+          ISTPTL(NPTL)  = 1
+          IORPTL(NPTL)  =-1
+          JORPTL(NPTL)  = 0
+          NNNPTL(NPTL)  = NPTL
+ 5      CONTINUE
+        GOTO 9999
+      ENDIF
+
+      CALL NUCLCO(MAPROJ,MAMX,XPROJ,YPROJ,ZPROJ,YPJTL-YHAHA)
+      CALL NUCLCO(MATARG,MAMX,XTARG,YTARG,ZTARG,YHAHA)
+      BX=0.
+      BY=0.
+      IF ( MAPROJ .GT. 0 ) THEN
+        IF ( BIMEVT .LT. 0. ) THEN
+          B1=BMINIM
+          B2=MIN(RMPROJ+RMTARG(LTARG),BMAXIM)
+          IF ( B1 .GT. B2 ) THEN
+            CALL UTSTOP('NUCOGE: BMIN > BMAX                     ')
+          ENDIF
+          BIMP=SQRT(B1**2+(B2**2-B1**2)*RANGEN())
+          PHI=2.*PI*RANGEN()
+        ELSE
+          PHI=PHIEVT
+          BIMP=BIMEVT
+        ENDIF
+        BX=COS(PHI)*BIMP
+        BY=SIN(PHI)*BIMP
+        DO 6 I=1,MAPROJ
+          NPTL=NPTL+1
+          XORPTL(1,NPTL)=XPROJ(I)+BX*0.5
+          XORPTL(2,NPTL)=YPROJ(I)+BY*0.5
+          XORPTL(3,NPTL)=ZPROJ(I)
+          XORPTL(4,NPTL)=0.
+          TIVPTL(1,NPTL)=-AINFIN
+          TIVPTL(2,NPTL)= AINFIN
+          ISTPTL(NPTL)=0
+          IORPTL(NPTL)=0
+          JORPTL(NPTL)=0
+          NNNPTL(NPTL)=NPTL
+ 6      CONTINUE
+      ENDIF
+      DO 7 I=1,MATARG
+        NPTL=NPTL+1
+        XORPTL(1,NPTL)=XTARG(I)-BX*0.5
+        XORPTL(2,NPTL)=YTARG(I)-BY*0.5
+        XORPTL(3,NPTL)=ZTARG(I)
+        XORPTL(4,NPTL)=0.
+        TIVPTL(1,NPTL)=-AINFIN
+        TIVPTL(2,NPTL)= AINFIN
+        ISTPTL(NPTL)=0
+        IORPTL(NPTL)=0
+        JORPTL(NPTL)=0
+        NNNPTL(NPTL)=NPTL
+ 7    CONTINUE
+      IF ( MAPROJ .EQ. 0 ) GOTO 1000
+      KOLL=0
+      DO 12 I=1,MAPROJ
+        DO 12 J=1,MATARG
+          IF ( PI*( (XPROJ(I)+BX-XTARG(J))**2
+     *        +(YPROJ(I)+BY-YTARG(J))**2 ) .GT. SIGPPI ) GOTO 12
+          IF ( KOLL .GT. 0 ) THEN
+            KP=0
+            KT=0
+            DO 30 KL=1,KOLL
+              IF ( NRPROJ(KL) .EQ. I ) KP=1
+              IF ( NRTARG(KL) .EQ. J ) KT=1
+30          CONTINUE
+CDH         FTRSIG=1.0
+            FTR=1.0
+CDH         IF ( KP .EQ. 1 ) FTR=FTR*FTRSIG
+CDH         IF ( KT .EQ. 1 ) FTR=FTR*FTRSIG
+            IF ( KP.EQ.1 .OR. KT.EQ.1 ) THEN
+              IF ( PI*( (XPROJ(I)+BX-XTARG(J))**2
+     *           +(YPROJ(I)+BY-YTARG(J))**2 ) .GT. FTR*SIGPPI ) GOTO 12
+            ENDIF
+          ENDIF
+          KOLL=KOLL+1
+          IF ( KOLL .GT. KOLLMX ) THEN
+            CALL UTSTOP('NUCOGE: KOLLMX TOO SMALL                ')
+          ENDIF
+          NRPROJ(KOLL)=I
+          NRTARG(KOLL)=J
+          DISTCE(KOLL)=ZTARG(J)-ZPROJ(I)
+          COORD(1,KOLL)=(XPROJ(I)+XTARG(J))*0.5
+          COORD(2,KOLL)=(YPROJ(I)+YTARG(J))*0.5
+          COORD(3,KOLL)=(ZPROJ(I)+ZTARG(J))*0.5
+          COORD(4,KOLL)=DISTCE(KOLL)*VELI
+          ISTPTL(I)=1
+          IORPTL(I)=-1
+          TIVPTL(2,I)=COORD(4,KOLL)
+          ISTPTL(MAPROJ+J)=1
+          IORPTL(MAPROJ+J)=-1
+          TIVPTL(2,MAPROJ+J)=COORD(4,KOLL)
+12    CONTINUE
+      IF ( KOLL .LE. 1 ) GOTO 9999
+
+      DO 21 N=2,KOLL
+        DO 22 M=1,N-1
+          IF ( NRPROJ(M) .EQ. NRPROJ(N) ) GOTO 21
+22      CONTINUE
+        NPROJ=NPROJ+1
+21    CONTINUE
+      DO 23 N=2,KOLL
+        DO 24 M=1,N-1
+          IF ( NRTARG(M) .EQ. NRTARG(N) ) GOTO 23
+24      CONTINUE
+        NTARG=NTARG+1
+23    CONTINUE
+
+      DO 20 N=1,KOLL-1
+        DO 20 M=N+1,KOLL
+          IF ( DISTCE(NORD(M)) .LT. DISTCE(NORD(N)) ) THEN
+            NORDM=NORD(M)
+            NORD(M)=NORD(N)
+            NORD(N)=NORDM
+          ENDIF
+20    CONTINUE
+
+9999  CONTINUE
+      IF ( KOLL .LE. 0 ) GOTO 1000
+      IF ( KOLL .LT. KO1KO2/10000  .OR.  KOLL .GT. MOD(KO1KO2,10000) )
+     *                                                     GOTO 1000
+      NEVT=1
+      BIMEVT=BIMP
+      PHIEVT=PHI
+      KOLEVT=KOLL
+      NPJEVT=NPROJ
+      NTGEVT=NTARG
+      PMXEVT=PNLL
+      EGYEVT=ENGY
+
+1000  CONTINUE
+      IF ( ISH .EQ. 17  .OR.  ISH .GT. 92 ) THEN
+        WRITE(IFCH,*)'NUCOGE (EXIT)'
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE NUCOLL
+
+C-----------------------------------------------------------------------
+C  PERFORMS A  NUCLEUS-NUCLEUS COLLISION (INCL. NUCLEON-NUCLEON)
+C-----------------------------------------------------------------------
+      PARAMETER (KOLLMX=2500)
+      PARAMETER (MAMX=56)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXSTR=3000)
+      PARAMETER (NDEP=129)
+      PARAMETER (NDET=129)
+      PARAMETER (NPRBMS=20)
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /CIV/     IVP,IVP0,IVT,IVT0
+      COMMON /CKOL/    KOL
+      COMMON /CNCE/    NCES,NCOLEX
+      COMMON /CNEW/    KOTRI,NEWCOL,NEWICO
+      COMMON /CNFR/    NRFRA
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CNTEVM/  NTEVM
+      COMMON /COL/     BIMP,BMAX,COORD(4,KOLLMX),DISTCE(KOLLMX)
+     *                ,QDEP(NDEP),QDET14(NDET),QDET16(NDET),QDET40(NDET)
+     *                ,QDET99(NDET),RMPROJ,RMTARG(4),XDEP(NDEP)
+     *                ,XDET14(NDET),XDET16(NDET),XDET40(NDET)
+     *                ,XDET99(NDET)
+     *                ,KOLL,LTARG,NORD(KOLLMX),NPROJ,NRPROJ(KOLLMX)
+     *                ,NRTARG(KOLLMX),NTARG
+      COMMON /CPRBMS/  PRBMS(NPRBMS)
+      COMMON /CPROJA/  IPROJ,ITARG,KPROJA(NHA,MAMX),KTARGA(NHA,MAMX)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CSTR/    PSTR(5,MXSTR),ROTSTR(3,MXSTR),XORSTR(4,MXSTR)
+     *                ,ICSTR(4,MXSTR),IORSTR(MXSTR),IRLSTR(MXSTR),NSTR
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /PARTNR/  PEX,PEY,PEZET,PE0,PX4,PY4,SUMMAS
+     *                ,IC4,IPTNR,JS4,NPS
+
+      REAL      PROJ(NSI,NHA),PROJA(NSI,NHA,MAMX)
+     *         ,TARG(NSI,NHA),TARGA(NSI,NHA,MAMX)
+      INTEGER   IC4(2)
+      CHARACTER DASH*1
+      DATA DASH/'-'/
+C-----------------------------------------------------------------------
+      ISH0=ISH
+      IF ( ISHSUB/100 .EQ. 6 ) ISH=MOD(ISHSUB,100)
+      IF     ( ISH .EQ. 17  .OR.  ISH .GT. 92 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'NUCOLL (ENTRY)'
+CDH   ELSEIF ( ISH .EQ. 14 ) THEN
+CDH     CALL UTTIMA('*** NUCOLL *** ')
+      ENDIF
+
+      IF ( ISHSUB/100 .EQ. 7 ) ISH=MOD(ISHSUB,100)
+      NEVT=0
+      NPTL=0
+      CALL NUCOGE
+      IF ( ICHOIC .EQ. 3  .OR.  KOLL .EQ. 0 ) GOTO 1000
+      NAEVT=NAEVT+1
+      IF ( KOLL .LT. KO1KO2/10000  .OR.
+     *     KOLL .GT. MOD(KO1KO2,10000) ) GOTO 1000
+      COLEVT=KOLL
+      AMSEV=SQRT((NPJEVT*SQRT(AMPROJ**2+PNLLX**2)
+     *           +NTGEVT*SQRT(AMTARG**2+PNLLX**2))**2
+     *                -((NPJEVT-NTGEVT)*PNLLX)**2)
+      IF ( ISHSUB/100 .EQ. 7 ) ISH=ISH0
+
+      ITRY=0
+38    CONTINUE
+      ITRY=ITRY+1
+      NSTR=0
+      NPTL=0
+      SUMPT2=0.
+      AMSAC=0.
+      CALL NUCINI('NUC',PROJA,LAPROJ,MAPROJ,1)
+      CALL NUCINI('NUC',TARGA,LATARG,IABS(MATARG),-1)
+
+      KOLRAN=RANGEN()*KOLL+1
+      KOLRAN=MIN(KOLRAN,KOLL)
+      KOLRAN=MAX(KOLRAN,1)
+
+      DO 2 KOLS=1,KOLL
+        KOL=KOLS
+        ISKIP=0
+        I=NRPROJ(NORD(KOL))
+        J=NRTARG(NORD(KOL))
+        IPROJ=I
+        ITARG=J
+        NRECOP=0
+        NRECOT=0
+        IF ( KOL .LT. KOLL ) THEN
+          DO 33 K=KOL+1,KOLL
+            IF ( NRPROJ(NORD(K)) .EQ. I ) NRECOP=NRECOP+1
+            IF ( NRTARG(NORD(K)) .EQ. J ) NRECOT=NRECOT+1
+33        CONTINUE
+        ENDIF
+        NCOP=0
+        NCOT=0
+        IF ( KOL .GT. 1 ) THEN
+          DO 34 K=1,KOL-1
+            IF ( NRPROJ(NORD(K)) .EQ. I ) NCOP=NCOP+1
+            IF ( NRTARG(NORD(K)) .EQ. J ) NCOT=NCOT+1
+34        CONTINUE
+        ENDIF
+        IF ( NCOP.GE.NCOLMX  .OR.  NCOT.GE.NCOLMX ) ISKIP=1
+
+        DO 56 M=1,NHA
+          SM=0.
+          DO 57 N=1,NSI
+            PROJ(N,M)=PROJA(N,M,I)
+            SM=SM+PROJ(N,M)**2
+57        CONTINUE
+          IF ( M .GE. 3  .AND.  SM .LT. 1.E-5 ) GOTO 58
+56      CONTINUE
+58      CONTINUE
+        DO 53 M=1,NHA
+          SM=0.
+          DO 54 N=1,NSI
+            TARG(N,M)=TARGA(N,M,J)
+            SM=SM+TARG(N,M)**2
+54        CONTINUE
+          IF ( M .GE. 3  .AND.  SM .LT. 1.E-5 ) GOTO 55
+53      CONTINUE
+55      CONTINUE
+
+        IF ( KOL .EQ. KOLRAN  .AND.  JPSI .EQ. 1 ) THEN
+          CALL PVJPSF(PROJ,TARG)
+          ISKIP=1
+        ENDIF
+
+C  NR OF COLOUR EXCHANGES
+C  ----------------------
+
+        AMSAC0=AMSAC
+        ISKIP0=ISKIP
+        SMPT2=SUMPT2
+        CALL UTREMB(PROJ,TARG,1)
+        GOTO 4
+ 3      CONTINUE
+        IF ( ISH .GE. 91 ) WRITE(IFCH,*)'REDO HH COLLISION'
+        CALL UTREST(PROJ,TARG,1)
+        SUMPT2=SMPT2
+        ISKIP=ISKIP0
+        AMSAC=AMSAC0
+ 4      CONTINUE
+
+        NCOLEX=1
+        IF ( ISKIP .NE. 1 ) THEN
+          LO=0
+16        LO=LO+1
+          IF ( LO .EQ. 3 ) THEN
+            IF ( ISH .GE. 90 ) THEN
+              CALL UTMSG('NUCOLL')
+              WRITE(IFCH,*)'*****  LO=3'
+              CALL UTMSGF
+            ENDIF
+          ENDIF
+          R=RANGEN()
+          NCOLEX=0
+15        NCOLEX=NCOLEX+1
+          IF ( NCOLEX .GT. NPRBMS ) GOTO 16
+          IF ( R .GT. PRBMS(NCOLEX) ) GOTO 15
+        ENDIF
+
+C  HADRON-HADRON COLLISION
+C  -----------------------
+
+        DO 31 NCE=1,NCOLEX
+          NCES=NCE
+          CALL UTPAGE
+          IF ( ISH .GE. 91 ) THEN
+            WRITE(IFCH,101)(DASH,L=1,79),IPAGE,KOL,NCE
+     *        ,NRPROJ(NORD(KOL)),NRTARG(NORD(KOL)),(DASH,L=1,79)
+101         FORMAT(/1X,79A1/1X,I5,'.PAGE             COL: ',I2
+     *           ,'   CEX: ',I2,'   PRJ: ',I3,'   TRG: ',I3/1X,79A1/)
+          ENDIF
+          IF ( NRECOP .EQ. 0 ) THEN
+            ISTORP=1
+          ELSE
+            ISTORP=0
+          ENDIF
+          IF ( NRECOT .EQ. 0 ) THEN
+            ISTORT=1
+          ELSE
+            ISTORT=0
+          ENDIF
+          CALL HAHABS(PROJ,TARG
+     *           ,ISTORP*(NCE/NCOLEX),ISTORT*(NCE/NCOLEX),ISKIP,IRETHH)
+          IF ( ISKIP .GE. 2 ) GOTO 9997
+          IF ( IRETHH .EQ. 1 ) GOTO 3
+          IF ( IRESCL .EQ. 1  .AND.  AMSAC .GT. AMSEV ) GOTO 9998
+          SUMPT2=SUMPT2+
+     *            PROJ(1,2)**2+PROJ(2,2)**2+TARG(1,2)**2+TARG(2,2)**2
+          IF ( ISH .EQ. 11 ) WRITE(IFCH,*)'SUMPT2:',NREVT,KOL,NCE,SUMPT2
+          ISKIP=0
+31      CONTINUE
+
+        DO 40 M=1,NHA
+          SM=0.
+          DO 41 N=1,NSI
+            PROJA(N,M,I)=PROJ(N,M)
+            SM=SM+PROJ(N,M)**2
+41        CONTINUE
+          IF ( M .GE. 3  .AND.  SM .LT. 1.E-5 ) GOTO 42
+40      CONTINUE
+42      CONTINUE
+        DO 43 M=1,NHA
+          SM=0.
+          DO 44 N=1,NSI
+            TARGA(N,M,J)=TARG(N,M)
+            SM=SM+TARG(N,M)**2
+44        CONTINUE
+          IF ( M .GE. 3  .AND.  SM .LT. 1.E-5 ) GOTO 45
+43      CONTINUE
+45      CONTINUE
+  2   CONTINUE
+
+      IF ( SUMPT2 .LT. 1.E-5 ) GOTO 9999
+
+1000  CONTINUE
+CDH   IF ( ISH .EQ. 14 ) CALL UTTIMA('    NUCOLL F   ')
+      IF ( ISH .EQ. 17  .OR.  ISH .GT. 92 ) THEN
+        WRITE(IFCH,*)'NUCOLL (EXIT)'
+      ENDIF
+      ISH=ISH0
+      RETURN
+
+9999  INOIAC=INOIAC+1
+      IF ( ISH .GE. 91  .OR.  ISH .EQ. 11 ) THEN
+        CALL UTMSG('NUCOLL')
+        WRITE(IFCH,*)'*****  NO INTERACTION. REDO NUCOLL'
+        CALL UTMSGF
+      ENDIF
+      GOTO 38
+
+9998  ILAMAS=ILAMAS+1
+      IF ( ISH .GE. 91  .OR. ISH .EQ. 12 ) THEN
+        CALL UTMSG('NUCOLL')
+        WRITE(IFCH,*)'*****  AMSAC>AMSEV: ',AMSAC,AMSEV
+     *    ,' . REDO NUCOLL'
+        DO 1 NS=1,NSTR
+          WRITE(IFCH,109)NS,(ICSTR(L,NS)/100,L=1,4)
+     *              ,(PSTR(L,NS),L=3,5)
+109       FORMAT(1X,I3,3X,4I5,3(E11.3))
+1       CONTINUE
+        CALL UTMSGF
+      ENDIF
+      GOTO 38
+
+9997  CONTINUE
+      IF ( ISH .GE. 90 ) THEN
+        CALL UTMSG('NUCOLL')
+        WRITE(IFCH,*)'*****  ISKIP>=2. REDO NUCOLL'
+        CALL UTMSGF
+      ENDIF
+      GOTO 38
+
+      END
+C=======================================================================
+
+      SUBROUTINE NUCSTR(IER)
+
+C-----------------------------------------------------------------------
+C  PERFORMES X AND P TRAFOS FOR NUCLEONS FOR STRING DECAY IN NUCLEUS
+C-----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      COMMON /CLEP/    ICINPU,IDSCAT
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+C-----------------------------------------------------------------------
+      IF ( MATARG .NE. NPTL ) THEN
+        CALL UTSTOP('NUCSTR: MATARG /= NPTL                  ')
+      ENDIF
+      NCNT=0
+3     NCNT=NCNT+1
+      IF ( NCNT .GE. 10 ) GOTO 1001
+      N0=MIN(1+INT(RANGEN()*NPTL),NPTL)
+      IF ( ICINPU .GT. 0  .AND.  IDPTL(N0) .NE. IDSCAT ) GOTO 3
+      ISTPTL(N0)=1
+      IORPTL(N0)=-1
+      TIVPTL(2,N0)=0.
+      DO 2 N=1,NPTL
+        XORPTL(1,N)=XORPTL(1,N)-XORPTL(1,N0)
+        XORPTL(2,N)=XORPTL(2,N)-XORPTL(2,N0)
+        XORPTL(3,N)=XORPTL(3,N)-XORPTL(3,N0)
+        PHI=2.*PI*RANGEN()
+        P1=      -ELEPTO*SIN(ANGMUE)*SIN(PHI)
+        P2=      -ELEPTO*SIN(ANGMUE)*COS(PHI)
+        P3=ELEPTI-ELEPTO*COS(ANGMUE)
+        CALL UTROTA(1,P1,P2,P3,XORPTL(1,N),XORPTL(2,N),XORPTL(3,N))
+        P3=SQRT(P1**2+P2**2+P3**2)
+        P1=0.
+        P2=0.
+        P4=PROM+ELEPTI-ELEPTO
+        CALL UTLOBO(1,P1,P2,P3,P4,SQRT(P4**2-P3**2-P2**2-P1**2)
+     *        ,XORPTL(1,N),XORPTL(2,N),XORPTL(3,N),XORPTL(4,N))
+        CALL UTLOBO(1,P1,P2,P3,P4,SQRT(P4**2-P3**2-P2**2-P1**2)
+     *         ,PPTL(1,N),PPTL(2,N),PPTL(3,N),PPTL(4,N))
+2     CONTINUE
+      IER=0
+      RETURN
+
+1001  IER=1
+      IF ( ISH .GE. 90 ) THEN
+        CALL UTMSG('NUCSTR')
+        WRITE(IFCH,*)'*****  IDSCAT NOT POSSIBLE ==> REDO EVENT.'
+        CALL UTMSGF
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE PVJPSF(PROJ,TARG)
+
+C-----------------------------------------------------------------------
+C  FORMS A JPSI
+C-----------------------------------------------------------------------
+      PARAMETER (KOLLMX=2500)
+      PARAMETER (MAMX=56)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXSTR=3000)
+      PARAMETER (NDEP=129)
+      PARAMETER (NDET=129)
+      PARAMETER (NGAU=129)
+      PARAMETER (NPTJ=129)
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CGAU/    QGAU(NGAU),XGAU(NGAU)
+      COMMON /CKOL/    KOL
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /COL/     BIMP,BMAX,COORD(4,KOLLMX),DISTCE(KOLLMX)
+     *                ,QDEP(NDEP),QDET14(NDET),QDET16(NDET),QDET40(NDET)
+     *                ,QDET99(NDET),RMPROJ,RMTARG(4),XDEP(NDEP)
+     *                ,XDET14(NDET),XDET16(NDET),XDET40(NDET)
+     *                ,XDET99(NDET)
+     *                ,KOLL,LTARG,NORD(KOLLMX),NPROJ,NRPROJ(KOLLMX)
+     *                ,NRTARG(KOLLMX),NTARG
+      COMMON /CPROJA/  IPROJ,ITARG,KPROJA(NHA,MAMX),KTARGA(NHA,MAMX)
+      COMMON /CPTJ/    QPTJ(NPTJ),XPTJ(NPTJ)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CSTR/    PSTR(5,MXSTR),ROTSTR(3,MXSTR),XORSTR(4,MXSTR)
+     *                ,ICSTR(4,MXSTR),IORSTR(MXSTR),IRLSTR(MXSTR),NSTR
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      REAL PROJ(NSI,NHA),PR(4),TARG(NSI,NHA),TG(4)
+C-----------------------------------------------------------------------
+      PAX=0.19
+      PROX=PROJ(3,2)
+      TARX=TARG(3,2)
+      LOOP=0
+      PR(1)=PROJ(1,2)
+      PR(2)=PROJ(2,2)
+      PR(3)=PROJ(3,2)
+      PR(4)=PROJ(4,2)
+      TG(1)=TARG(1,2)
+      TG(2)=TARG(2,2)
+      TG(3)=TARG(3,2)
+      TG(4)=TARG(4,2)
+
+      CALL UTPAGE
+      IF ( ISH .GE. 91 ) WRITE(IFCH,110)('-',L=1,79),IPAGE,('-',L=1,79)
+110   FORMAT(1X,79A1/1X,I5,'.PAGE            '
+     *         ,'JPSI FORMATION'/1X,79A1/)
+
+5000  LOOP=LOOP+1
+      IF ( LOOP .GT. 100 ) THEN
+        IF(ISH.GE.90)THEN
+          CALL UTMSG('PVJPSF')
+          WRITE(IFCH,*)'*****  JPSI FORMATION NOT POSSIBLE'
+          CALL UTMSGF
+        ENDIF
+        GOTO 1000
+      ENDIF
+      PROJ(1,2)=PR(1)
+      PROJ(2,2)=PR(2)
+      PROJ(3,2)=PR(3)
+      PROJ(4,2)=PR(4)
+      TARG(1,2)=TG(1)
+      TARG(2,2)=TG(2)
+      TARG(3,2)=TG(3)
+      TARG(4,2)=TG(4)
+
+C  JPSI MOMENTA
+C  ------------
+      ID=441
+      CALL IDMASS(ID,AM)
+      S=AM**2
+      PT=UTINVT(NPTJ,XPTJ,QPTJ,RANGEN()*QPTJ(NPTJ))
+      PHI=2.*PI*RANGEN()
+      PX=PT*COS(PHI)
+      PY=PT*SIN(PHI)
+      LO=0
+ 1    LO=LO+1
+      IF ( LO .GT. 10 ) THEN
+        CALL UTSTOP('PVJPSF: LO > 10                         ')
+      ENDIF
+      Z=PAX*UTINVT(NGAU,XGAU,QGAU,RANGEN()*QGAU(NGAU))
+      IF ( Z .GT. 1. ) GOTO 1
+      IF ( RANGEN() .LE. 0.5 ) THEN
+        PZ=Z*PNLLX
+      ELSE
+        PZ=-Z*PNLLX
+      ENDIF
+      E=SQRT(S+PX**2+PY**2+PZ**2)
+      PP=E+PZ
+      PM=E-PZ
+
+C  PROJ AND TARG MOMENTA
+C  ---------------------
+      R=RANGEN()
+      POX=PROJ(1,2)-R*PX
+      POY=PROJ(2,2)-R*PY
+      POT2=(POX**2+POY**2)
+      R=1.-R
+      PUX=TARG(1,2)-R*PX
+      PUY=TARG(2,2)-R*PY
+      PUT2=(PUX**2+PUY**2)
+      POP=PROJ(4,2)+PROJ(3,2)
+      POM=PROJ(4,2)-PROJ(3,2)
+      PUP=TARG(4,2)+TARG(3,2)
+      PUM=TARG(4,2)-TARG(3,2)
+      PEP=POP+PUP-PP
+      PEM=POM+PUM-PM
+      A=(PEM*PEP-PUT2-POT2)*0.5
+      D2=PUT2*POT2
+      AUXIL = A**2 - D2
+      IF ( AUXIL .LT. 0. ) GOTO 5000
+      AUXIL = SQRT(AUXIL)
+      PYP=(A+PUT2-AUXIL)/PEM
+      PYM=(A+POT2-AUXIL)/PEP
+      IF ( PYP .LT. 0. ) GOTO 5000
+      IF ( PYM. LT. 0. ) GOTO 5000
+      PIP=PEP-PYP
+      IF ( PIP .LT. 0. ) GOTO 5000
+      PIM=PYM
+      PAP=PYP
+      PAM=PEM-PYM
+      IF ( PAM .LT. 0. ) GOTO 5000
+      PROJ(1,2)=POX
+      PROJ(2,2)=POY
+      PROJ(3,2)=(PIP-PIM)*0.5
+      PROJ(4,2)=(PIP+PIM)*0.5
+      TARG(1,2)=PUX
+      TARG(2,2)=PUY
+      TARG(3,2)=(PAP-PAM)*0.5
+      TARG(4,2)=(PAP+PAM)*0.5
+      KPROJA(2,IPROJ)=KOL
+      KTARGA(2,ITARG)=KOL
+      IF ( PROJ(3,2)*PROX .LT. 0. ) GOTO 5000
+      IF ( TARG(3,2)*TARX .LT. 0. ) GOTO 5000
+
+C  JPSI STRING
+C  -----------
+      NSTR=NSTR+1
+      IF ( NSTR .GT. MXSTR ) THEN
+        CALL UTSTOP('PVJPSF: NSTR>MXSTR                      ')
+      ENDIF
+      IORSTR(NSTR)=-KOL
+      ICSTR(1,NSTR)=000100
+      ICSTR(2,NSTR)=0
+      ICSTR(3,NSTR)=0
+      ICSTR(4,NSTR)=000100
+      PSTR(1,NSTR)=PX
+      PSTR(2,NSTR)=PY
+      PSTR(3,NSTR)=PZ
+      PSTR(4,NSTR)=E
+      PSTR(5,NSTR)=AM
+      ROTSTR(1,NSTR)=0.
+      ROTSTR(2,NSTR)=0.
+      ROTSTR(3,NSTR)=1.
+      XORSTR(1,NSTR)=COORD(1,KOL)
+      XORSTR(2,NSTR)=COORD(2,KOL)
+      XORSTR(3,NSTR)=COORD(3,KOL)
+      XORSTR(4,NSTR)=COORD(4,KOL)
+      IF ( ISH .GE. 90 ) THEN
+        IF ( ISH .GE. 91 ) THEN
+          J=NSTR
+          WRITE(IFCH,100)J,(ICSTR(K,J)/100,K=1,4)
+     *           ,PSTR(3,J),PSTR(4,J),PSTR(5,J)
+100       FORMAT(' /CSTR/',I4,3X,4I5,3(E11.3))
+        ENDIF
+
+C  CHECKS
+C  ------
+        IF ( ABS(PIP*PIM-POT2) .GT. 1.E-4 ) THEN
+          CALL UTMSG('PVJPSF')
+          WRITE(IFCH,*)'*****  PIP*PIM /= POT**2'
+          WRITE(IFCH,*)'PIP*PIM=',PIP*PIM,'POT**2=',POT2
+          WRITE(IFCH,*)'PIP=',PIP,'   PIM=',PIM
+          CALL UTMSGF
+        ENDIF
+        IF ( ABS(PAP*PAM-PUT2) .GT. 1.E-4 ) THEN
+          CALL UTMSG('PVJPSF')
+          WRITE(IFCH,*)'*****  PAP*PAM /= PUT**2'
+          WRITE(IFCH,*)'PAP*PAM=',PAP*PAM,'PUT**2=',PUT2
+          WRITE(IFCH,*)'PAP=',PAP,'   PAM=',PAM
+          CALL UTMSGF
+        ENDIF
+        IF ( ABS(PROJ(4,2)**2
+     *      -PROJ(1,2)**2-PROJ(2,2)**2-PROJ(3,2)**2) .GT. 1.E-4 ) THEN
+          CALL UTMSG('PVJPSF')
+          WRITE(IFCH,*)'*****  MASS**2 OF PROJ NONZERO'
+          WRITE(IFCH,*)'MASS**2=',PROJ(4,2)**2
+     *              -PROJ(1,2)**2-PROJ(2,2)**2-PROJ(3,2)**2
+          CALL UTMSGF
+        ENDIF
+        IF ( ABS(TARG(4,2)**2
+     *       -TARG(1,2)**2-TARG(2,2)**2-TARG(3,2)**2) .GT. 1.E-4 ) THEN
+          CALL UTMSG('PVJPSF')
+          WRITE(IFCH,*)'*****  MASS**2 OF TARG NONZERO'
+          WRITE(IFCH,*)'MASS**2=',TARG(4,2)**2
+     *             -TARG(1,2)**2-TARG(2,2)**2-TARG(3,2)**2
+          CALL UTMSGF
+        ENDIF
+        DO 14 N=1,4
+          IF ( ABS(PR(N)+TG(N)
+     *       -PROJ(N,2)-TARG(N,2)-PSTR(N,NSTR)) .GT. 1.E-4 ) GOTO 15
+14      CONTINUE
+        GOTO 16
+15      CONTINUE
+        CALL UTMSG('PVJPSF')
+        WRITE(IFCH,*)'*****  PROJ + TARG /= PROJ_NEW + TARG_NEW +JPSI'
+        WRITE(IFCH,*)'PROJ,TARG:'
+        WRITE(IFCH,*)PR
+        WRITE(IFCH,*)TG
+        WRITE(IFCH,*)'PROJ_NEW,TARG_NEW,JPSI:'
+        WRITE(IFCH,*)(PROJ(N,2),N=1,4)
+        WRITE(IFCH,*)(TARG(N,2),N=1,4)
+        WRITE(IFCH,*)(PSTR(N,NSTR),N=1,4)
+        CALL UTMSGF
+16      CONTINUE
+      ENDIF
+
+      AMSAC=AMSAC+AM
+
+1000  RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE RACPRO(TYP,QMU,N,ACPROB)
+
+C-----------------------------------------------------------------------
+C  RETURNS THE ARRAY ACPROB CONTAINING ACCUMULATED PROB FOR:
+C    EXPONENTIAL OR POISSON DISTRIBUTION (FOR TYP = EXP OR POI)
+C    MULTI POMERON CUTS ACC TO GRIBOV (FOR TYP = GRI).
+C-----------------------------------------------------------------------
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /PARO3/   ASUHAX(7),ASUHAY(7),OMEGA,SIGPPD,SIGPPE,UENTRO
+     *                ,IWZZZZ
+      COMMON /PARO4/   GRICEL,GRIDEL,GRIGAM,GRIRSQ,GRISLO
+
+      DOUBLE PRECISION DENOM,FZ,FZH,Q,QZ,QZH,Z
+      REAL             ACPROB(N)
+      CHARACTER        TYP*3
+C-----------------------------------------------------------------------
+      ISH0=ISH
+      IF ( ISHSUB/100 .EQ. 17 ) ISH=MOD(ISHSUB,100)
+
+C  GRIBOV-REGGE
+C  ------------
+      IF     ( TYP .EQ. 'GRI' ) THEN
+        XI=LOG(ENGY**2)
+        AUXIL = EXP(XI*GRIDEL)*GRIGAM
+        SIG=8.*PI*AUXIL
+        Z=2.D0*GRICEL/(GRIRSQ+GRISLO*XI)*AUXIL
+
+C  0-CUT-POMERON PROBABILITY
+C  -------------------------
+        QZ=-1.D0/Z
+        QZH=-2.D0/Z
+        FZ=0.D0
+        FZH=0.D0
+        DO 10 I=1,20
+          DENOM=1.D0/I
+          QZ=(-Z)*DENOM*QZ
+          QZH=(-Z)*DENOM*0.5*QZH
+          FZ=DENOM*QZ+FZ
+          FZH=DENOM*QZH+FZH
+10      CONTINUE
+        RELER=ABS( QZ/(I*FZ) )
+        RELERH=ABS( QZH/(I*FZH) )
+        SIGPPZ=SIG*(FZH-FZ)
+        SIGPPE=SIGPPZ/GRICEL
+        SIGPPD=SIGPPE*(GRICEL-1)
+
+C  N-CUT-POMERON PROBABILITIES, N>0
+C  --------------------------------
+        AUXIL = EXP(-Z)
+        Q=1.
+        R=1.
+        ACPROB(1)=SIG/Z*(1.-AUXIL)
+        DO 21 I=2,N
+          Q=Q*Z/(I-1)
+          R=R+Q
+          SI=SIG/(I*Z)*(1.-R*AUXIL)
+          ACPROB(I)=ACPROB(I-1)+SI
+21      CONTINUE
+        IF ( SIGPPI .LT. 0. ) SIGPPI=ACPROB(N)
+        AUXIL2 = 1./ACPROB(N)
+        DO 22 I=1,N
+          ACPROB(I)=AUXIL2*ACPROB(I)
+22      CONTINUE
+
+C  WARNINGS
+C  --------
+        IF ( ISH.GE.90 ) THEN
+          IF ( RELER .GT. 1.E-3 ) THEN
+            CALL UTMSG('RACPRO')
+            WRITE(IFCH,*)'*****  RELER TOO LARGE'
+            WRITE(IFCH,*)'RELER,QZ/I,FZ:',RELER,QZ/I,FZ
+            CALL UTMSGF
+          ENDIF
+          IF ( RELERH .GT. 1.E-3 ) THEN
+            CALL UTMSG('RACPRO')
+            WRITE(IFCH,*)'*****  RELERH TOO LARGE'
+            WRITE(IFCH,*)'RELERH,QZH/I,FZH:',RELERH,QZH/I,FZH
+            CALL UTMSGF
+          ENDIF
+          IF ( SIGPPZ .LT. 0. ) THEN
+            CALL UTMSG('RACPRO')
+            WRITE(IFCH,*)'*****  NEGATIVE SIGPPZ'
+            WRITE(IFCH,*)'SIGPPZ,SIG,FZH,FZ:',SIGPPZ,SIG,FZH,FZ
+            CALL UTMSGF
+          ENDIF
+          DO 24 I=1,N
+            IF ( ACPROB(I) .LT. 0. ) THEN
+              CALL UTMSG('RACPRO')
+              WRITE(IFCH,*)'*****  NEGATIVE ACPROB(I)'
+              WRITE(IFCH,*)'I,ACPROB(I):',I,ACPROB(I)
+              CALL UTMSGF
+            ENDIF
+24        CONTINUE
+          RELERN=ACPROB(N)-ACPROB(N-1)
+          IF ( RELERN .GT. 1.E-3 ) THEN
+            CALL UTMSG('RACPRO')
+            WRITE(IFCH,*)'*****  RELERN TOO LARGE'
+            WRITE(IFCH,*)'RELERN:',RELERN
+            CALL UTMSGF
+          ENDIF
+        ENDIF
+
+C  PRINT
+C  -----
+        IF ( ISH .GE. 92 ) THEN
+100       FORMAT(1X,79A1)
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,100)('-',IC=1,79)
+          WRITE(IFCH,*)'   CROSS SECTIONS AND',
+     *      ' CUT-POMERON WEIGHTS ACC TO GRIBOV-REGGE-THEORY'
+          WRITE(IFCH,100)('-',IC=1,79)
+          WRITE(IFCH,*)'   CMS-ENERGY (GEV):',ENGY
+          WRITE(IFCH,100)('-',IC=1,79)
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,*)'   PARAMETERS: '
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,*)'     GAMMA: ',GRIGAM
+          WRITE(IFCH,*)'     R**2:  ',GRIRSQ
+          WRITE(IFCH,*)'     DELTA: ',GRIDEL
+          WRITE(IFCH,*)'     SLOPE: ',GRISLO
+          WRITE(IFCH,*)'     C:     ',GRICEL
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,*)'   CROSS SECTIONS:'
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,*)'     ELASTIC:     ',SIGPPE
+          WRITE(IFCH,*)'     DIFFRACTIVE: ',SIGPPD
+          WRITE(IFCH,*)'     INELASTIC:   ',SIGPPI
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,*)'   WEIGHTS W(N) OF N CUT POMERONS:'
+          WRITE(IFCH,*)'      ( N - W(N) - W(N)_EXP )'
+          WRITE(IFCH,*)' '
+          A=QMU/(QMU+1.)
+          I=1
+          WRITE(IFCH,*)I,ACPROB(I),(1-A)*A**(I-1)
+          DO 25 I=2,N
+            WRITE(IFCH,*)I,ACPROB(I)-ACPROB(I-1),(1-A)*A**(I-1)
+25        CONTINUE
+          WRITE(IFCH,*)' '
+        ENDIF
+
+C  POISSON
+C  -------
+      ELSEIF ( TYP .EQ. 'POI' ) THEN
+        Z=QMU
+        IF ( Z .GE. N-1. ) THEN
+          CALL UTSTOP('RACPRO: Z >= N-1.                       ')
+        ENDIF
+        K=MAX( 0.D0, Z-(N-1-Z) )+1.
+        IF ( K .GE. N ) THEN
+          CALL UTSTOP('RACPRO: K >= N.                         ')
+        ENDIF
+        IF     ( K .EQ. 1 ) THEN
+          PRBAB=EXP(-Z)
+          ACPROB(1)=PRBAB
+          DO 1 I=2,N
+            PRBAB=PRBAB*Z/(I-1)
+            ACPROB(I)=ACPROB(I-1)+PRBAB
+1         CONTINUE
+        ELSEIF ( K .GT. 1 ) THEN
+          X=Z*EXP(-Z/(K-1.))
+          PRBAB=1.
+          DO 3 I=1,K-1
+            PRBAB=PRBAB*X/I
+            ACPROB(I)=0.
+3         CONTINUE
+          ACPROB(K)=PRBAB
+          DO 4 I=K+1,N
+            PRBAB=PRBAB*Z/(I-1)
+            ACPROB(I)=ACPROB(I-1)+PRBAB
+4         CONTINUE
+        ELSE
+          CALL UTSTOP('RACPRO: K <= 0.                         ')
+        ENDIF
+
+C  EXPONENTIAL
+C  -----------
+      ELSEIF ( TYP .EQ. 'EXP' ) THEN
+        A=QMU/(QMU+1.)
+        PRBAB=1.-A
+        ACPROB(1)=PRBAB
+        DO 2 I=2,N
+          PRBAB=PRBAB*A
+          ACPROB(I)=ACPROB(I-1)+PRBAB
+2       CONTINUE
+      ENDIF
+
+      ISH=ISH0
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION RANSTC(XFL,XMIN)
+
+C-----------------------------------------------------------------------
+C  RETURNS RANDOM NUMBER ACCORDING TO A QUARK STRUCTURE FCTN
+C  WITH X>=XMIN
+C
+C  CHANGES  : D. HECK    IK3  KFK KARLSRUHE
+C  DATE     : MAR  22, 1994
+C-----------------------------------------------------------------------
+      PARAMETER (NSTRU=2049)
+      COMMON /CIPIO/   IPIO
+      COMMON /CUTINV/  LUTINV
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /STRU/    QSEP(NSTRU),QSET(NSTRU),QVAP(NSTRU)
+     *                ,QVAT(NSTRU),XCUTAR,XSTRU(NSTRU)
+     *                ,IDTG
+      COMMON /STRU2/   DELTA0,DELTA1,QSEH(NSTRU),QSEPI(NSTRU)
+     *                ,QVAH(NSTRU),QVAPI(NSTRU),XSE(NSTRU),XVA(NSTRU)
+      CHARACTER XFL*3
+C ----------------------------------------------------------------------
+      NSTRUC = NSTRU
+      IF     ( XFL .EQ. 'SEP' ) THEN
+        RANSTC=RANXQ(NSTRUC,XSE  ,QSEP,XMIN)
+      ELSEIF ( XFL .EQ. 'SET' ) THEN
+        RANSTC=RANXQ(NSTRUC,XSE  ,QSET,XMIN)
+      ELSEIF ( XFL .EQ. 'VAP' ) THEN
+        RANSTC=RANXQ(NSTRUC,XVA  ,QVAP,XMIN)
+      ELSEIF ( XFL .EQ. 'VAT' ) THEN
+        RANSTC=RANXQ(NSTRUC,XVA  ,QVAT,XMIN)
+      ENDIF
+1     RETURN
+      END
+C=======================================================================
+
+      FUNCTION RANXQ(N,X,Q,XMIN)
+
+C-----------------------------------------------------------------------
+C  RETURNS RANDOM NUMBER ACCORDING TO X(I) Q(I) WITH X>=XMIN
+C-----------------------------------------------------------------------
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      REAL X(N),Q(N)
+      REAL XMIN,QRAN
+C-----------------------------------------------------------------------
+      IMIN=1
+      IF ( XMIN .EQ. 0. ) GOTO 3
+      I1=1
+      I2=N
+ 1    I=I1+(I2-I1)/2
+      IF     ( X(I) .LT. XMIN ) THEN
+        I1=I
+      ELSEIF ( X(I) .GT. XMIN ) THEN
+        I2=I
+      ELSE
+        IMIN=I
+        GOTO 3
+      ENDIF
+      IF ( I2-I1 .GT. 1 ) GOTO 1
+      IMIN=I2
+ 3    CONTINUE
+      IF ( Q(IMIN) .GT. Q(N)*.9999 ) THEN
+        RANXQ=XMIN
+        GOTO 4
+      ENDIF
+      QRAN=Q(IMIN)+RANGEN()*(Q(N)-Q(IMIN))
+      RANXQ=UTINVT(N,X,Q,QRAN)
+ 4    CONTINUE
+      IF ( RANXQ .LT. XMIN ) THEN
+        IF(ISH.GE.90)THEN
+          CALL UTMSG('RANXQ ')
+          WRITE(IFCH,*)'*****  RANXQ=',RANXQ,' <       XMIN=',XMIN
+          WRITE(IFCH,*)'Q(IMIN) Q Q(N):',Q(IMIN),QRAN,Q(N)
+          WRITE(IFCH,*)'X(IMIN) X X(N):',X(IMIN),RANXQ,X(N)
+          CALL UTMSGF
+        ENDIF
+        RANXQ=XMIN
+      ENDIF
+      IF ( ISH .GT. 91 ) THEN
+        WRITE(IFCH,*)'RANXQ:'
+        WRITE(IFCH,*)'   Q(IMIN) Q Q(N):',Q(IMIN),QRAN,Q(N)
+        WRITE(IFCH,*)'   X(IMIN) X X(N):',X(IMIN),RANXQ,X(N)
+      ENDIF
+
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION SBET(Z,W)
+
+C-----------------------------------------------------------------------
+      SBET=SGAM(Z)*SGAM(W)/SGAM(Z+W)
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION SDENSI(R)
+
+C-----------------------------------------------------------------------
+C  NUCLEAR DENSITY
+C-----------------------------------------------------------------------
+      COMMON /CDEN/   MASSNR,RMX,R0
+C  AI IS INVERSE OF A=0.54
+      REAL AI
+      DATA AI/1.85185185/
+C-----------------------------------------------------------------------
+      SDENSI=R**2 / ( 1. + EXP((R-R0)*AI) )
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION SGAM(X)
+
+C-----------------------------------------------------------------------
+C  GAMMA FUNCTION
+C-----------------------------------------------------------------------
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      DOUBLE PRECISION GC(13),GF,GP,GX,GY,GZ
+      DATA GC/
+     *  0.000539698958808D0, 0.002619307282746D0, 0.020449630823590D0,
+     *  0.073094836414370D0, 0.279643691578538D0, 0.553387692385769D0,
+     *  0.999999999999998D0,-0.000832724708684D0, 0.004698658079622D0,
+     *  0.022523834747260D0,-0.170447932874746D0,-0.056810335086194D0,
+     *  1.130603357286556D0/
+      DATA GP / 3.141592653589793D0 /
+C-----------------------------------------------------------------------
+      GF = 0.D0
+      GX = DBLE(X)
+      GZ = GX
+      IF ( GX .GT. 0.D0 ) GOTO 1
+      IF ( GX .EQ. DINT(GX) ) THEN
+        WRITE(IFCH,'('' ARGUMENT OF GAMMA FUNCTION ='',E20.5)') X
+        CALL UTSTOP('SGAM : NEGATIVE INTEGER ARGUMENT        ')
+         GOTO 5
+      ENDIF
+      GZ = 1.D0 - GZ
+ 1    CONTINUE
+      GY = 1.D0 / GZ
+      IF ( GZ .LE. 1.D0 ) GOTO 4
+      GY = 1.D0
+ 2    CONTINUE
+      IF ( GZ .LT. 2.D0 ) GOTO 3
+      GZ = GZ - 1.D0
+      GY = GY * GZ
+      GOTO 2
+ 3    CONTINUE
+      GZ = GZ - 1.D0
+ 4    CONTINUE
+      GF = GY * ((((((GC(1)*GZ+GC(2))*GZ+GC(3))*GZ+GC(4))*GZ+
+     *       GC(5))*GZ+GC(6))*GZ+GC(7))/((((((GC(8)*GZ+GC(9))*GZ+
+     *       GC(10))*GZ+GC(11))*GZ+GC(12))*GZ+GC(13))*GZ+1.D0)
+      IF ( GX .LE. 0.D0 ) GF = GP / ( SIN(GP*GX) * GF )
+ 5    CONTINUE
+      SGAM = GF
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION SGAU(X)
+
+C-----------------------------------------------------------------------
+C  RETURNS GAUSSIAN DISTRIBUTION (NOT NORMALIZED)
+C-----------------------------------------------------------------------
+      SGAU=EXP(-0.5*X**2)
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE SHOPAR
+
+C-----------------------------------------------------------------------
+      DOUBLE PRECISION SEEDC,SEEDI
+      COMMON /CSEED/   SEEDC,SEEDI
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /PARO3/   ASUHAX(7),ASUHAY(7),OMEGA,SIGPPD,SIGPPE,UENTRO
+     *                ,IWZZZZ
+      COMMON /PARO4/   GRICEL,GRIDEL,GRIGAM,GRIRSQ,GRISLO
+      COMMON /PARO5/   DELEPS,DELVOL
+      COMMON /QUARKM/  SMAS,SSMAS,USMAS,UUMAS
+C-----------------------------------------------------------------------
+      IF ( ISUP .NE. 1  .AND.  ISH .GE. 90 ) THEN
+        WRITE(IFMT,102)('*',I=1,69)
+     *    ,TAUNLL,MAXRES,PTF,PTQ,IOPTQ,PTMX,NEQMN,IAQU,WTARG
+     *    ,WPROJ,QMUST,SIGPPI,CORE,FCTRMX,NCOLMX,LABSYS,IRESCL,OVERLP
+     *    ,NTRYMX,DELMSS,SEEDI,GAUMX,BMAXIM,PUD,PSPINL,PSPINH,PISPN
+     *    ,NCLEAN,JPSI,CUTMSS,RSTRAS,ISTMAX,TENSN,NEQMX,IPAGI,NDECAY
+     *    ,PDIQUA,PAREA,DELREM,TAUMX,NSTTAU,SIGJ,JPSIFI,BMINIM
+     *    ,RADIAC,TAUMIN,TAUMAX,NUMTAU,THEMAS,AMSIAC,ELEPTI
+102     FORMAT(' ',69A1
+     */' *  TAUNLL=',F7.3,'  MAXRES=',I7,'  PTF   =',F7.3
+     *,'  PTQ   =',F7.3,'   *'/' *  IOPTQ =',I7,'  PTMX  =',F7.3
+     *,'  NEQMN =',I7,'  IAQU  =',I7,'   *'/' *  WTARG =',F7.3
+     *,'  WPROJ =',F7.3,'  QMUST =',F7.3,'  SIGPPI=',F7.3,'   *'
+     */' *  CORE  =',F7.3,'  FCTRMX=',F7.3,'  NCOLMX=',I7
+     *,'  LABSYS=',  I7,'   *'/' *  IRESCL=',I7,'  OVERLP=',F7.3
+     *,'  NTRYMX=',I7,'  DELMSS=',F7.3,'   *'/' *  SEEDI=',D24.17
+     *,'  GAUMX =',F7.3,'  BMAXIM=',F7.1,'   *'/' *  PUD   =',F7.3
+     *,'  PSPINL=',F7.3,'  PSPINH=',F7.3,'  PISPN =',F7.3,'   *'
+     */' *  NCLEAN=',I7,'  JPSI  =',I7,'  CUTMSS=',F7.3
+     *,'  RSTRAS=',F7.3,'   *'/' *  ISTMAX=',I7,'  TENSN =',F7.3
+     *,'  NEQMX =',I7,'  IPAGI =',I7,'   *'/' *  NDECAY=',I7
+     *,'  PDIQUA=',F7.3,'  PAREA =',F7.3,'  DELREM=',F7.3,'   *'
+     */' *  TAUMX =',F7.3,'  NSTTAU=',I7,'  SIGJ  =',F7.3
+     *,'  JPSIFI=',I7,'   *'/' *  BMINIM=',F7.1,'  RADIAC=',F7.3
+     *,'  TAUMIN=',F7.3,'  TAUMAX=',F7.3,'   *'/' *  NUMTAU=',I7
+     *,'  THEMAS=',F7.3,'  AMSIAC=',F7.3,'  ELEPTI=',F7.3,'   *')
+        WRITE(IFMT,108)
+     *    ELEPTO,ANGMUE,SMAS,UUMAS,USMAS,SSMAS,IOPBRK,NDECAW
+     *   ,IMIHIS,KENTRO,RADIAS,ISPHIS,RHOPHI,ICLHIS,ISHSUB,IOPENU
+     *   ,IOPENT,CUTMSQ,KUTDIQ,IDPM,TAUREA,ISPALL,YMXIMI,PTH,PHARD
+     *   ,IOPTF,PROSEA,NDECAX,WTMINI,WTSTEP,IWCENT,ISHEVT,PVALEN
+     *   ,IFRADE,IENTRO,GRIGAM,GRIRSQ,GRIDEL,GRISLO,GRICEL,IJPHIS
+     *   ,UENTRO,IWZZZZ,IOJINT,AMPRIF,DELVOL,DELEPS
+     *   ,('*',I=1,69)
+108     FORMAT(
+     * ' *  ELEPTO=',F7.3,'  ANGMUE=',F7.3,'  SMAS  =',F7.3
+     *,'  UUMAS =',F7.3,'   *'/' *  USMAS =',F7.3,'  SSMAS =',F7.3
+     *,'  IOPBRK=',I7,'  NDECAW=',I7  ,'   *'/' *  IMIHIS=',I7
+     *,'  KENTRO=',I7,'  RADIAS=',F7.3,'  ISPHIS=',I7  ,'   *'
+     */' *  RHOPHI=',F7.3,'  ICLHIS=',I7  ,'  ISHSUB=',I7
+     *,'  IOPENU=',I7  ,'   *'/' *  IOPENT=',I7,'  CUTMSQ=',F7.3
+     *,'  KUTDIQ=',I7  ,'  IDPM  =',I7  ,'   *'/' *  TAUREA=',F7.3
+     *,'  ISPALL=',I7  ,'  YMXIMI=',F7.3,'  PTH   =',F7.3,'   *'
+     */' *  PHARD =',F7.3,'  IOPTF =',I7  ,'  PROSEA=',F7.3
+     *,'  NDECAX=',I7  ,'   *'/' *  WTMINI=',F7.3,'  WTSTEP=',F7.3
+     *,'  IWCENT=',I7  ,'  ISHEVT=',I7  ,'   *'/' *  PVALEN=',F7.3
+     *,'  IFRADE=',I7  ,'  IENTRO=',I7  ,'  GRIGAM=',F7.3,'   *'
+     */' *  GRIRSQ=',F7.3,'  GRIDEL=',F7.3,'  GRISLO=',F7.3
+     *,'  GRICEL=',F7.3,'   *'/' *  IJPHIS=',I7  ,'  UENTRO=',F7.3
+     *,'  IWZZZZ=',I7  ,'  IOJINT=',I7  ,'   *'/' *  AMPRIF=',F7.3
+     *,'  DELVOL=',F7.3,'  DELEPS=',F7.3,'         ',7X  ,'   *'
+     */' ',69A1)
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION SJCENT(K,KU,U)
+
+C----------------------------------------------------------------------
+C  RETURNS ENTROPY.
+C  INPUT: QUARK NUMBER K; ENERGY U (GEV).
+C  IOPENT=1: OSCILLATOR MODEL.
+C    INTERPOLATES AND EXTRAPOLATES ENTRO(1+K,1+N)
+C    FROM SR JCENTR (JCENTD).
+C    SR JCENTR (JCENTD) HAS TO BE CALLED BEFORE!!
+C  IOPENT=2,3: FERMI GAS MODEL; JOERG  AICHELIN.
+C    IOPENT=2: CONST VOLUME, IOPENT=3: CONST DENSITY
+C  IOPENT=4: FERMI GAS (NEW)
+C  IOPENT=5: HAGEDORN
+C----------------------------------------------------------------------
+      PARAMETER (KPARX=15)
+      PARAMETER (NQUAX=12)
+      COMMON /CENTRO/  ENTRO(1+KPARX,1+NQUAX)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /PARO3/   ASUHAX(7),ASUHAY(7),OMEGA,SIGPPD,SIGPPE,UENTRO
+     *                ,IWZZZZ
+C----------------------------------------------------------------------
+      SJCENT=0.
+      IF     ( IOPENT .EQ. 0 ) THEN
+        RETURN
+
+      ELSEIF ( IOPENT .EQ. 1 ) THEN
+        IF ( K .LE. KENTRO ) RETURN
+        IF ( MOD(K,3) .NE. 0 ) THEN
+          CALL UTSTOP('SJCENT: K MUST BE MULTIPLE OF 3         ')
+        ENDIF
+        E=U/OMEGA
+        IF ( K .GT. KPARX ) GOTO 5001
+        N=INT(E)
+        IF ( N .LT. 0 ) THEN
+          CALL UTSTOP('SJCENT: NEGATIVE ENERGY                 ')
+        ENDIF
+        IF ( N .GE. NQUAX ) N=NQUAX-1
+        SJCENT=ENTRO(1+K,1+N)+(E-N)*(ENTRO(1+K,1+N+1)-ENTRO(1+K,1+N))
+        IF ( K .LE. 3 ) RETURN
+5002    E3=E*3./K
+        N3=INT(E3)
+        IF ( N3 .GE. NQUAX ) N3=NQUAX-1
+        SENTR3=ENTRO(1+3,1+N3)+(E3-N3)
+     *                              *(ENTRO(1+3,1+N3+1)-ENTRO(1+3,1+N3))
+        SJCENT=MIN(SJCENT,K/3.*SENTR3)
+        RETURN
+5001    CONTINUE
+        L=KPARX
+        EL=(E*L)/K
+        NL=INT(EL)
+        IF ( NL .GE. NQUAX ) NL=NQUAX-1
+        SENTRL=ENTRO(1+L,1+NL)+(EL-NL)
+     *                              *(ENTRO(1+L,1+NL+1)-ENTRO(1+L,1+NL))
+        SJCENT=FLOAT(K)/L*SENTRL
+        GOTO 5002
+
+      ELSEIF ( IOPENT .EQ. 2 ) THEN
+C  CONSTANT VOLUME 5 FM**3
+        IF ( K .LE. KENTRO ) RETURN
+        X1=12.96*K**(-.315)
+        IF ( K .LT. 19 ) THEN
+          X2=.785 + .005*K
+        ELSE
+          X2=.88
+        ENDIF
+        SJCENT=K*X1*(U/K)**X2
+        RETURN
+
+      ELSEIF ( IOPENT .EQ. 3 ) THEN
+C  CONSTANT DENSITY
+        IF ( K .LE. KENTRO ) RETURN
+        X1=9.785
+        X2=.7926
+        SJCENT=K*X1*(U/K)**X2
+        RETURN
+
+      ELSEIF ( IOPENT .EQ. 4 ) THEN
+C  CONSTANT VOLUME 15 FM**3
+        IF ( K .LE. KENTRO ) RETURN
+        SJCENT=SJCEN4(K,KU,U)
+        RETURN
+
+      ELSEIF ( IOPENT .EQ. 5 ) THEN
+C  HAGEDORN
+        IF ( U .LE. UENTRO  .AND.  K .LE. KENTRO ) THEN
+          RETURN
+        ENDIF
+CDH     THAGED=.250
+CDH     SJCENT = U/THAGED
+        SJCENT = U*4.
+
+      ELSE
+        CALL UTSTOP('SJCENT: INVALID OPTION IOPENT           ')
+      ENDIF
+
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION SJCEN4(K,KU,U)
+
+C----------------------------------------------------------------------
+C  RETURNS TOTAL ENTROPY.
+C  CONSTANT VOLUME 15 FM**3.
+C  INPUT: TOTAL QUARK NUMBER K; UP AND DOWN QUARKS KU;
+C  TOTAL EXCITATION ENERGY U(GEV).
+C  INITIAL CALL OF SJCEN0 REQUIRED!!!
+C----------------------------------------------------------------------
+      COMMON /CSJCEN/  ENT(16000)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+C----------------------------------------------------------------------
+      SJCEN4 = 0.
+
+      IF ( K .LT. KU ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('SJCEN4')
+          WRITE(IFCH,*)'*****  K < KU'
+          WRITE(IFCH,*)'*****  K: ',K,'   KU: ',KU
+          CALL UTMSGF
+        ENDIF
+        RETURN
+      ENDIF
+
+      IF ( K .GT. 45 ) THEN
+        KO=K
+        K=45
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('SJCEN4')
+          WRITE(IFCH,*)'*****  K > 45'
+          WRITE(IFCH,*)'*****  K: ',KO,'   K_NEW: ',K
+          CALL UTMSGF
+        ENDIF
+      ENDIF
+
+      IF ( MOD(K,3) .NE. 0 ) THEN
+        CALL UTSTOP('SJCEN4: NONINTEGER BARYON NUMBER        ')
+      ENDIF
+
+      IK=0
+      DO 1 I=3,K-3,3
+        IK=IK+I+1
+ 1    CONTINUE
+      IF ( U .LT. 10. ) THEN
+        DU=MOD(U,.25)
+        IU=INT(U/.25)+1
+        IENTRY=(IK+KU)*41+IU
+        SJCEN4=ENT(IENTRY)+(ENT(IENTRY+1)-ENT(IENTRY))*DU*4.
+      ELSE
+        IU=40
+        IENTRY=(IK+KU)*41+IU
+        SJCEN4=ENT(IENTRY)+(ENT(IENTRY+1)-ENT(IENTRY))*4.*(U-9.75)
+      ENDIF
+
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION SJCGAM(KEUX,KEDX,KESX,KECX,AMA,AMO,PO,MOX)
+
+C----------------------------------------------------------------------
+C  RETURNS PARTIAL DECAY WIDTH DGAMMA = PHASE SPACE * DENSITY
+C    FOR DECAY OF CLUSTER INTO CLUSTER AND HADRON.
+C  KE*X: NET QUARK NUMBER
+C  AMA: CLUSTER MASS;  AMO: HADRON MASS;  PO: HADRON MOMENTUM
+C----------------------------------------------------------------------
+      COMMON /CENTEX/  ENTEXP
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CSJCGA/  AMEGAM,AMNULL,ASUHA(7),ENTRPY,NOPHA,NSUHA(7)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO3/   ASUHAX(7),ASUHAY(7),OMEGA,SIGPPD,SIGPPE,UENTRO
+     *                ,IWZZZZ
+C----------------------------------------------------------------------
+      ENTRPY=-99.9
+      IF ( MOX .EQ. 1 ) THEN
+        ENTEXP=0.
+        AMNULL=UTAMNU(KEUX,KEDX,KESX,KECX,IOPENU)
+      ELSE
+        ENTRPY=ENTRPY-ENTEXP
+      ENDIF
+      EO=SQRT(AMO**2+PO**2)
+      IF ( EO .GT. AMA ) GOTO 999
+      AME2=(AMA-EO)**2-PO**2
+      IF ( AME2 .LT. 0. ) GOTO 999
+      AMEGAM=SQRT(AME2)
+      E=AMEGAM-AMNULL
+      IF ( E .LT. 0. ) GOTO 998
+      KE=ABS(KEUX+KEDX+KESX+KECX)
+
+      IF ( IOPENT .EQ. 5 ) THEN
+        IF ( E .LE. UENTRO  .AND.  KE .LE. KENTRO ) THEN
+          ENTRPY=0.
+        ELSE
+C  ENTROPY AFTER HAGEDORN
+          ENTRPY = E*4.
+        ENDIF
+      ELSE
+        KU=ABS(KEUX+KEDX)
+        ENTRPY=SJCENT(KE,KU,E)
+      ENDIF
+
+      IF ( MOX .EQ. 1 ) THEN
+        ENTEXP=ENTRPY
+        ENTRPY=0.
+        SJCGAM=.125* PO**2/( PI**2*AMA*EO )
+      ELSE
+        ENTRPY=ENTRPY-ENTEXP
+        SJCGAM=.125*EXP(ENTRPY)* PO**2/( PI**2*AMA*EO )
+      ENDIF
+      RETURN
+ 999  AMEGAM = 0.
+ 998  SJCGAM= 0.
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION SMASS(A,Y,Z)
+
+C-----------------------------------------------------------------------
+C  RETURNS CLUSTER MASS (IN GEV) (PER CLUSTER, NOT (!) PER NUCLEON)
+C  ACCORDING TO BERGER/JAFFE MASS FORMULA, PRC35(1987)213 EQ.2.31,
+C  SEE ALSO C. DOVER, BNL-46322, INTERSECTIONS-MEETING, TUCSON, 91.
+C  A: MASSNR, Y: HYPERCHARGE, Z: CHARGE,
+C-----------------------------------------------------------------------
+      COMMON /CMASS/   AC,AS,CZ,DY,DZ,EPSI,RZERO,SIGMA,THET,YM,ZM
+C-----------------------------------------------------------------------
+      YMIN=YM*A
+      ZMIN=CZ/(DZ/A+ZM/A**.3333333)
+      SMASS=EPSI*A +AS*A**.6666667
+     *             +(AC/A**.3333333 +DZ/A*0.5)*(Z-ZMIN)**2
+     *              +DY/A*0.5*(Y-YMIN)**2
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE SMASSI(THETA)
+
+C-----------------------------------------------------------------------
+C  INITIALIZATION FOR SMASS.
+C  CALCULATES PARAMETERS FOR BERGER/JAFFE MASS FORMULA
+C  (PRC35(1987)213 EQ.2.31, SEE ALSO C. DOVER, BNL-46322).
+C  THETA: PARAMETER THAT DETERMINES ALL PARAMETERS IN MASS FORMULA.
+C-----------------------------------------------------------------------
+      COMMON /CMASS/   AC,AS,CZ,DY,DZ,EPSI,RZERO,SIGMA,THET,YM,ZM
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      DATA ALP /0.007297145/
+C-----------------------------------------------------------------------
+      THET=THETA
+
+      ASTR=.150
+
+      CO=COS(THETA)
+      SI=SIN(THETA)
+      BET=(1.+CO**3)*0.5
+      RZERO=SI/ASTR/(0.6666667/PI*(1.+CO**3)  )**0.3333333
+      CS=ASTR/SI
+      CZ=CS*(1.-BET**0.3333333 )
+      SIGMA=0.75/PI*(ASTR/SI)**3*0.3333333*(CO**2*0.5 -SI**2*(1-SI)
+     *    -1./PI*(PI*0.5-THETA-SIN(2*THETA)+SI**3*LOG((1+CO)/SI) ) )
+
+      EPSI=ASTR*(BET**0.3333333+2.)/SI
+      AS=4.*PI*SIGMA*RZERO**2
+      AC=0.6*ALP/RZERO
+      DZ=ASTR/SI*BET**0.3333333 *CO**2 *
+     *  (CO**4*(1.+BET**0.3333333)+(1+BET)**2)/
+     *( (2.*CO**2+BET**.3333333)*(CO**4*(1+BET**.6666667)+(1.+BET)**2)-
+     *        (CO**4+BET**0.3333333*(1+BET))
+     *                     *( (2.*BET**0.6666667-1.)*CO**2+1.+BET) )
+      DY=ASTR/6.*(1.+CO**3)**3/SI*
+     *       (  1.+(1.+CO)/(4.*(1.+CO**3))**0.6666667  )/
+     *       ( CO**6 + CO + CO*(.5*(1+CO**3))**1.333333 )
+      ZM=6.*ALP/(5.*RZERO)
+      YM=(1.-CO**3)/(1.+CO**3)
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE SMASSP
+
+C-----------------------------------------------------------------------
+C  PRINTS SMASS.
+C-----------------------------------------------------------------------
+      COMMON /CMASS/   AC,AS,CZ,DY,DZ,EPSI,RZERO,SIGMA,THET,YM,ZM
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      REAL ENG(14),YMI(14),ZMI(14)
+C-----------------------------------------------------------------------
+      WRITE(IFCH,*)'PARAMETERS OF MASS FORMULA:'
+      WRITE(IFCH,*)'---------------------------'
+      WRITE(IFCH,*)' '
+      WRITE(IFCH,*)'THETA=',THET,'   EPSI=',EPSI
+      WRITE(IFCH,*)'AS=',AS,'   AC=',AC
+      WRITE(IFCH,*)'DY=',DY,'   DZ=',DZ
+      WRITE(IFCH,*)'YM=',YM
+      WRITE(IFCH,*)'CZ DZ ZM=',CZ,DZ,ZM
+      WRITE(IFCH,*)'SIGMA**1/3=',SIGMA**(1./3.),'   RZERO=',RZERO
+      WRITE(IFCH,*)' '
+      WRITE(IFCH,*)'MASS:'
+      WRITE(IFCH,*)'-----'
+      WRITE(IFCH,5000)(J,J=1,14)
+5000  FORMAT(/5X,'A:',14I5/)
+      DO 4 J=1,14
+        A=J
+        YMI(J)=YM*A
+        ZMI(J)=CZ/(DZ/A+ZM/A**0.3333333)
+ 4    CONTINUE
+      WRITE(IFCH,5002)(YMI(J),J=1,14)
+5002  FORMAT(1X,'YMIN: ',14F5.2/)
+      WRITE(IFCH,5003)(ZMI(J),J=1,14)
+5003  FORMAT(1X,'ZMIN: ',14F5.2/)
+      DO 2 I=1,15
+        NS=11-I
+        DO 3 J=1,14
+          A=J
+          Y=A-NS
+          Z=0.
+          ENG(J)=SMASS(A,Y,Z)/A
+ 3      CONTINUE
+        WRITE(IFCH,5001)NS,(ENG(J),J=1,14)
+5001    FORMAT(1X,'S=',I2,2X,14F5.2)
+ 2    CONTINUE
+      WRITE(IFCH,*)' '
+      WRITE(IFCH,*)'MASS-MASS(FREE):'
+      WRITE(IFCH,*)'----------------'
+      WRITE(IFCH,5000)(J,J=1,14)
+      DO 5 I=1,15
+        NS=11-I
+        DO 6 J=1,14
+          A=J
+          Y=A-NS
+          Z=0.
+          SG=SIGN(1.,A)
+          AX=SG*A
+          YX=SG*Y
+          ZX=SG*Z
+          KU=NINT(AX+ZX)
+          KD=NINT(AX-ZX+YX)
+          KS=NINT(AX-YX)
+          KC=0
+          ENG(J)=(SMASS(A,Y,Z)-UTAMNU(KU,KD,KS,KC,3))/A
+ 6      CONTINUE
+        WRITE(IFCH,5001)NS,(ENG(J),J=1,14)
+5     CONTINUE
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE SMASST(KUX,KDX,KSX,KCX,A,Y,Z)
+
+C-----------------------------------------------------------------------
+C  INPUT: KUX,KDX,KSX,KCX = NET QUARK NUMBERS (FOR U,D,S,C QUARKS).
+C  OUTPUT: MASSNR A, HYPERCHARGE Y AND CHARGE Z.
+C-----------------------------------------------------------------------
+      SG=1.
+      IF ( KUX+KDX+KSX+KCX .LT. 0 ) SG=-1.
+      KU=SG*KUX
+      KD=SG*KDX
+      KS=SG*KSX
+      KC=SG*KCX
+      K=KU+KD+KS+KC
+      IF ( MOD(K,3) .NE. 0 ) THEN
+        CALL UTSTOP('SMASST: NONINTEGER BARYON NUMBER        ')
+      ENDIF
+      A=K/3
+      Y=A-KS
+      NZ=2*KU-KD-KS+2*KC
+      IF ( MOD(NZ,3) .NE. 0 ) THEN
+        CALL UTSTOP('SMASST: NONINTEGER CHARGE               ')
+      ENDIF
+      Z=NZ/3
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION SPTF(X)
+
+C-----------------------------------------------------------------------
+C  RETURNS PT-DISTRIBUTION FOR FRAGMENTATION
+C-----------------------------------------------------------------------
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CQUAMA/  QUAMA
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+C-----------------------------------------------------------------------
+      IF     ( IOPTF .EQ. 1 ) THEN
+        SPTF = X * EXP(-2./PTF*SQRT(X**2+QUAMA**2))
+      ELSEIF ( IOPTF .EQ. 2 ) THEN
+        SPTF = X * EXP(-PI*0.25*(X**2+QUAMA**2)/PTF**2)
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION SPTH(X)
+
+C-----------------------------------------------------------------------
+C  RETURNS PT-DISTRIBUTION FOR HARD SCATTERING
+C-----------------------------------------------------------------------
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+C-----------------------------------------------------------------------
+      SPTH=PTH**2*2.*X/(X**2+PTH**2)**3
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION SPTJ(X)
+
+C-----------------------------------------------------------------------
+C  JPSI PT-DISTRIBUTION IN 200 GEV PP
+C-----------------------------------------------------------------------
+      DATA AI/1.052631579/, C/2.75482/, C1/1.75482/, CC/16.30716419/
+C  AI IS THE INVERSE OF A
+C-----------------------------------------------------------------------
+CDH   A=0.95
+CDH   C=1./0.363
+CDH   Z=X/A
+      Z=X*AI
+CDH   SPTJ=1./A*C**C/SGAM(C)*Z**(C-1.)*EXP(-C*Z)
+      SPTJ = AI * CC * 0.619299158 * Z**C1 * EXP(-C*Z)
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION SPTQ(X)
+
+C-----------------------------------------------------------------------
+C  RETURNS PT-DISTRIBUTION OF QUARKS IN NUCLEONS
+C-----------------------------------------------------------------------
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+C-----------------------------------------------------------------------
+      IF     ( IOPTQ .EQ. 2 ) THEN
+        AUXIL2 = PI/PTQ**2
+        SPTQ=(0.5*X)* AUXIL2 * EXP(-(0.5*X)**2*AUXIL2)
+      ELSEIF ( IOPTQ .EQ. 1 ) THEN
+        AUXIL1 = 2./PTQ
+        SPTQ=AUXIL1**2 * X * EXP(-X*AUXIL1)
+      ELSEIF ( IOPTQ .EQ. 3 ) THEN
+        SPTQ=PTQ**2 * 2. * X / (X**2+PTQ**2)**2
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      DOUBLE PRECISION FUNCTION SSE0(Z)
+
+C-----------------------------------------------------------------------
+C  SEA QUARK STRUCTURE FUNCTION FOR HADRONS
+C-----------------------------------------------------------------------
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      DOUBLE PRECISION Z
+C-----------------------------------------------------------------------
+      SSE0 = (1.D0-Z)**8.05D0 * 1.265D0 / SQRT(Z**2+XCUT**2)
+      RETURN
+      END
+C=======================================================================
+
+      DOUBLE PRECISION FUNCTION SSE1(Z)
+
+C-----------------------------------------------------------------------
+C  SEA QUARK STRUCTURE FUNCTION FOR PIONS
+C-----------------------------------------------------------------------
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      DOUBLE PRECISION Z
+C-----------------------------------------------------------------------
+      SSE1 = (1.D0-Z)**5.D0 * 0.9D0 / SQRT(Z**2+XCUT**2)
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION SSPLIT(X)
+
+C-----------------------------------------------------------------------
+C  RETURNS SPLITTING FUNCTION
+C-----------------------------------------------------------------------
+C-C   SSPLIT= ( 0.3 + 10.0*X**7 - 10.3*X**15 ) /SQRT(X**2+.2**2)
+C-C   SSPLIT=   0.2 +  2.4*X**2 -  2.6*X**5
+C-C   SSPLIT=   0.4 +  2.0*X    -  2.4*X**3
+C-C   SSPLIT= ( 0.8 +  2.0*X    -  2.8*X**3  ) /SQRT(X**2+.2**2)
+      SSPLIT= X**3 - X**5
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION SSPLIX(X)
+
+C-----------------------------------------------------------------------
+C  RETURNS SPLITTING FUNCTION
+C-----------------------------------------------------------------------
+C-C   SSPLIX= (1-X) - (1-X)**7
+C-C   SSPLIX= 1
+C-C   Z=2*X-.5
+C-C   SSPLIX= Z**3 - Z**5
+C-C   IF ( Z .LT. 0. ) SSPLIX=0.
+C-C   IF ( Z .GT. 1. ) SSPLIX=0.
+      SSPLIX= X**3 - X**5
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE STAA(X,Q2I,Z,S)
+
+C-----------------------------------------------------------------------
+C  STRUCTURE FUNCTIONS.
+C-----------------------------------------------------------------------
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+C-----------------------------------------------------------------------
+      Z=SQRT(X**2+XCUT**2)
+      Q2=MAX(4.00001,Q2I)
+CDH   S=LOG(LOG(Q2/.2**2)/LOG(4/.2**2))
+      S=LOG(LOG(Q2*25.  )*0.21714724)
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION STXD(X,Q2)
+
+C-----------------------------------------------------------------------
+C  VALENCE D-QUARK DISTRIBUTION.
+C  FROM GLUECK, HOFFMANN, REYA, Z. PHYS. C13 (1982) 119.
+C-----------------------------------------------------------------------
+      CALL STAA(X,Q2,Z,S)
+      A=.364-.0368*S
+      C=2.-.5414*S**.8
+      D=5.09+.3463*S
+      STXD=C*X**A*(1.-X**C)**D/SBET(D+1.,A/C)
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION STXS(X,Q2)
+
+C-----------------------------------------------------------------------
+C  S-SEA DISTRIBUTION.
+C  FROM GLUECK, HOFFMANN, REYA, Z. PHYS. C13 (1982) 119.
+C-----------------------------------------------------------------------
+      CALL STAA(X,Q2,Z,S)
+      A=.0625+.1132*S**1.3
+      B=12.64*S-51.70*S**1.8+38.02*S**2
+      C=4.448*S
+      D=7.+1.562*S
+      E=.3081*S**2.5
+      F=47.24+67.91*S
+      STXS=A*(1.+B*X+C*X**2)*(1.-X)**D + E*EXP(-F*X)
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION STXU(X,Q2)
+
+C-----------------------------------------------------------------------
+C  VALENCE U-QUARK DISTRIBUTION.
+C  FROM GLUECK, HOFFMANN, REYA, Z. PHYS. C13 (1982) 119.
+C-----------------------------------------------------------------------
+      CALL STAA(X,Q2,Z,S)
+      A=.421-.0412*S
+      C=2.-.6223*S**.8
+      D=3.37+.4319*S
+      STXU=2.*C*X**A*(1.-X**C)**D/SBET(D+1.,A/C)
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION STXUS(X,Q2)
+
+C-----------------------------------------------------------------------
+C  U-SEA DISTRIBUTION.
+C  FROM GLUECK, HOFFMANN, REYA, Z. PHYS. C13 (1982) 119.
+C-----------------------------------------------------------------------
+      CALL STAA(X,Q2,Z,S)
+      A=.25+.088*S**1.3
+      B=.8128*S-2.003*S**1.8+.0831*S**2
+      C=3.97*S
+      D=7.+1.666*S
+      E=.2487*S**2.5
+      F=27.8+59.68*S
+      STXUS=A*(1.+B*X+C*X**2)*(1.-X)**D + E*EXP(-F*X)
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION STXZNE(X,Q2)
+
+C-----------------------------------------------------------------------
+C  STRUCTURE FUNCTION OF NEUTRON
+C-----------------------------------------------------------------------
+      STXZNE=(4.*STXD(X,Q2) + STXU(X,Q2) +
+     *        10.*STXUS(X,Q2) + 2.*STXS(X,Q2))/9.
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION STXZPR(X,Q2)
+
+C-----------------------------------------------------------------------
+C  STRUCTURE FUNCTION OF PROTON
+C-----------------------------------------------------------------------
+      STXZPR=(4.*STXU(X,Q2) + STXD(X,Q2) +
+     *        10.*STXUS(X,Q2) + 2.*STXS(X,Q2))/9.
+      RETURN
+      END
+C=======================================================================
+
+      DOUBLE PRECISION FUNCTION SVA0(Z)
+
+C-----------------------------------------------------------------------
+C  VALENCE QUARK STRUCTURE FUNCTION FOR HADRONS
+C-----------------------------------------------------------------------
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      DOUBLE PRECISION Z
+C-----------------------------------------------------------------------
+      IF ( Z .NE. 0.D0 ) THEN
+        SVA0=(1.D0-Z)**3.46 * Z**0.419 * (2.74793064D0*Z + 0.62452969D0)
+     *                   / SQRT(Z**2+XCUT**2)
+      ELSE
+        SVA0=0.D0
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      DOUBLE PRECISION FUNCTION SVA1(Z)
+
+C-----------------------------------------------------------------------
+C  VALENCE QUARK STRUCTURE FUNCTION FOR PIONS
+C-----------------------------------------------------------------------
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      DOUBLE PRECISION Z
+C-----------------------------------------------------------------------
+      IF ( Z .NE. 0.D0 ) THEN
+        SVA1 = (1.D0-Z)**0.7D0 * Z**0.4D0 * 0.1730725D0
+     *                                   / SQRT(Z**2+XCUT**2)
+      ELSE
+        SVA1=0.D0
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UINTEG(VAL,FUNC,A,B,AERR,RERR,LEVEL,ERROR,IFLAG)
+
+C-----------------------------------------------------------------------
+C  CACLULATION OF DEFINITE INTEGRAL OF FUNC(X) FROM A TO B
+C-----------------------------------------------------------------------
+C        RELERR=1.D-12
+C        ABSERR=0.D0
+C        LEVEL=1
+C        CALL UINTEG(VALUE,FUNCTN,A,B,ABSERR,RELERR,LEVEL,ERROR,IFLAG)
+C        IF (IFLAG.GT.3) WRITE(*,'('' IFLAG ='',I7)') IFLAG
+C-----------------------------------------------------------------------
+      IMPLICIT  DOUBLE PRECISION (A-H,O-Z)
+      DIMENSION T(10,10),R(10),AIT(10),DIF(10),RN(4)
+      DIMENSION TS(2049),IBEGS(30),BEGIN(30),FINIS(30),EST(30)
+      LOGICAL   H2CONV,AITKEN,RIGHT,REGLAR,REGLSV(30)
+      DATA      TOLSAV,AITLOW,H2TOL,AITTOL,VJUMP,MAXTS,MAXTBL,MXSTGE
+     *          / 1.D-16, 1.1D0, .15D0, .1D0, .01D0, 2049, 10, 30 /
+      DATA      RN /.71420053D0,.34662815D0,.843751D0,.12633046D0 /
+      DATA      ALG402 /.3010299956639795D0 /
+C-----------------------------------------------------------------------
+      TOLMCH=TOLSAV
+      VAL=0.D0
+      ERROR=0.D0
+      IFLAG=1
+      VLONG=DABS(B-A)
+      IF ( VLONG .EQ. 0.D0 ) RETURN
+      ERRR=DMIN1( .1D0, DMAX1(DABS(RERR),1.D1*TOLMCH) )
+      ERRA=DABS(AERR)
+      STEPMN=DMAX1(VLONG/FLOAT(2**MXSTGE),
+     *   DMAX1(VLONG,DABS(A),DABS(B))*TOLMCH)
+      STAGE=.5D0
+      ISTAGE=1
+      CUREST=0.D0
+      FNSIZE=0.D0
+      PREVER=0.D0
+      REGLAR=.FALSE.
+      BEGI=A
+      FBEG=FUNC(A)/2.D0
+      TS(1)=FBEG
+      IBEG=1
+      ENDE=B
+      FEND=FUNC(B)/2.D0
+      TS(2)=FEND
+      IEND=2
+ 60   CONTINUE
+      RIGHT=.FALSE.
+ 61   CONTINUE
+      STEP=ENDE-BEGI
+      ASTEP=DABS(STEP)
+      IF ( ASTEP .LT. STEPMN ) GOTO 97
+      IF ( LEVEL .GE. 3 ) WRITE(*,101) BEGI,STEP,ISTAGE
+101   FORMAT(' BEGI,STEP',1P,2E16.7,I5)
+      T(1,1)=FBEG+FEND
+      TABS=DABS(FBEG)+DABS(FEND)
+      L=1
+      N=1
+      H2CONV=.FALSE.
+      AITKEN=.FALSE.
+      GOTO 63
+ 62   IF ( LEVEL .GE. 4 ) WRITE(*,102) L,T(1,LM1)
+102   FORMAT(1X,I5,7E16.8/1X,3E16.8)
+ 63   LM1=L
+      L=L+1
+      N2=N*2
+      FN=N2
+      ISTEP=(IEND-IBEG)/N
+      IF ( ISTEP .LE. 1 ) THEN
+        II=IEND
+        IEND=IEND+N
+        IF ( IEND .GT. MAXTS ) GOTO 96
+        HOVN=STEP/FN
+        III=IEND
+        DO  64  I=1,N2,2
+          TS(III)=TS(II)
+          TS(III-1)=FUNC(ENDE-FLOAT(I)*HOVN)
+          III=III-2
+          II=II-1
+ 64     CONTINUE
+        ISTEP=2
+      ENDIF
+      ISTEP2=IBEG+ISTEP/2
+      SUM=0.D0
+      SUMABS=0.D0
+      DO  65  I=ISTEP2,IEND,ISTEP
+        SUM=SUM+TS(I)
+        SUMABS=SUMABS+DABS(TS(I))
+ 65   CONTINUE
+      T(L,1)=T(L-1,1)/2.D0 + SUM/FN
+      TABS=TABS/2.D0+SUMABS/FN
+      ABSI=ASTEP*TABS
+      N=N2
+      IT=1
+      VINT=STEP*T(L,1)
+      TABTLM=TABS*TOLMCH
+      FNSIZE=DMAX1(FNSIZE,DABS(T(L,1)))
+      ERGOAL=DMAX1(ASTEP*TOLMCH*FNSIZE,
+     *       STAGE*DMAX1(ERRA,ERRR*DABS((CUREST)+VINT)))
+      FEXTRP=1.D0
+      DO  66  I=1,LM1
+        FEXTRP=FEXTRP*4.D0
+        T(I,L)=T(L,I)-T(L-1,I)
+        T(L,I+1)=T(L,I)+T(I,L)/(FEXTRP-1.D0)
+ 66   CONTINUE
+      ERRER=ASTEP*DABS(T(1,L))
+      IF ( L .LE. 2 ) THEN
+        IF ( DABS(T(1,2)) .LE. TABTLM)  GOTO 81
+        GOTO 63
+      ENDIF
+      DO  67  I=2,LM1
+        DIFF=0.D0
+        IF ( DABS(T(I-1,L)) .GT. TABTLM ) DIFF=T(I-1,LM1)/T(I-1,L)
+        T(I-1,LM1)=DIFF
+ 67   CONTINUE
+      IF ( DABS(4.D0-T(1,LM1)) .LE. H2TOL ) GOTO 69
+      IF ( T(1,LM1) .EQ. 0.D0 ) GOTO 68
+      IF ( DABS(2.D0-DABS(T(1,LM1))) .LT. VJUMP ) GOTO 80
+      IF ( L .EQ. 3 ) GOTO 62
+      H2CONV=.FALSE.
+      IF ( DABS((T(1,LM1)-T(1,L-2))/T(1,LM1)) .LE. AITTOL ) GOTO 72
+      IF ( REGLAR ) GOTO 68
+      IF ( L .EQ. 4 ) GOTO 62
+ 68   IF ( ERRER .LE. ERGOAL ) GOTO 83
+      IF ( LEVEL .GE. 4 ) WRITE(*,103) L,T(1,LM1)
+103   FORMAT(1X,I5,7E16.8/1X,3E16.8)
+      GOTO 90
+ 69   CONTINUE
+      IF ( LEVEL .GE. 4 ) WRITE(*,104) L,T(1,LM1)
+104   FORMAT(1X,I5,E16.8,5X,'H2CONV')
+      IF ( H2CONV ) GOTO 70
+      AITKEN=.FALSE.
+      H2CONV=.TRUE.
+      IF ( LEVEL .GE. 3 ) WRITE(*,105) L
+105   FORMAT(' H2 CONVERGENCE AT ROW',I4)
+ 70   FEXTRP=4.D0
+ 71   IT=IT+1
+      VINT=STEP*T(L,IT)
+      ERRER=DABS(STEP/(FEXTRP-1.D0)*T(IT-1,L))
+      IF ( ERRER .LE. ERGOAL ) GOTO 86
+      IF ( IT .EQ. LM1 ) GOTO 79
+      IF ( T(IT,LM1) .EQ. 0.D0 ) GOTO 71
+      IF ( T(IT,LM1) .LE. FEXTRP ) GOTO 79
+      IF ( DABS(T(IT,LM1)/4.D0-FEXTRP)/FEXTRP .LT. AITTOL )
+     *                                       FEXTRP=FEXTRP*4.D0
+      GOTO 71
+ 72   IF ( LEVEL .GE. 4 ) WRITE(*,106) L,T(1,LM1)
+106   FORMAT(1X,I5,E16.8,5X,'AITKEN')
+      IF ( T(1,LM1) .LT. AITLOW ) GOTO 90
+      IF ( AITKEN ) GOTO 73
+      H2CONV=.FALSE.
+      AITKEN=.TRUE.
+      IF ( LEVEL .GE. 3 ) WRITE(*,107) L
+107   FORMAT(' AITKEN AT ROW',I4)
+ 73   FEXTRP=T(L-2,LM1)
+      IF ( FEXTRP .GT. 4.5 ) GOTO 70
+      IF ( FEXTRP .LT. AITLOW ) GOTO 90
+      IF ( DABS(FEXTRP-T(L-3,LM1))/T(1,LM1) .GT. H2TOL ) GOTO 90
+      IF ( LEVEL .GE. 3 ) WRITE(*,108) FEXTRP
+108   FORMAT(' RATIO',F13.8)
+      SING=FEXTRP
+      FEXTM1=FEXTRP-1
+      AIT(1)=0.
+      DO  74  I=2,L
+        AIT(I)=T(I,1)+(T(I,1)-T(I-1,1))/FEXTM1
+        R(I)=T(1,I-1)
+        DIF(I)=AIT(I)-AIT(I-1)
+ 74   CONTINUE
+      IT=2
+ 75   VINT=STEP*AIT(L)
+      IF ( LEVEL .GE. 5 ) THEN
+        WRITE(*,109) (R(I+1),I=IT,LM1)
+109     FORMAT(1X,8E15.8)
+        WRITE(*,109) (AIT(I),I=IT,L)
+        WRITE(*,109) (DIF(I+1),I=IT,LM1)
+      ENDIF
+      ERRER=ERRER/FEXTM1
+      IF ( ERRER .GT. ERGOAL ) GOTO 76
+      ALPHA=DLOG10(SING)/ALG402-1.D0
+      IF ( LEVEL .GE. 2 ) WRITE(*,110) ALPHA,BEGI,ENDE
+110   FORMAT(11X,'INTEGRAND SHOWS SINGULAR ',
+     *   'BEHAVIOUR OF TYPE X**(',F5.2,') BETWEEN',1P,E15.7,
+     *   ' AND',1P,E15.7)
+      IFLAG=MAX0(IFLAG,2)
+      GOTO 86
+ 76   IT=IT+1
+      IF ( IT .EQ. LM1 ) GOTO 79
+      IF ( IT .LE. 3 ) THEN
+        H2NEXT=4.D0
+        SINGNX=2.D0*SING
+      ENDIF
+      IF ( H2NEXT .GE. SINGNX)  THEN
+        FEXTRP=SINGNX
+        SINGNX=2.D0*SINGNX
+      ELSE
+        FEXTRP=H2NEXT
+        H2NEXT=4.D0*H2NEXT
+      ENDIF
+      DO 77 I=IT,LM1
+        R(I+1)=0.D0
+        IF ( DABS(DIF(I+1)) .GT. TABTLM ) R(I+1)=DIF(I)/DIF(I+1)
+ 77   CONTINUE
+      IF ( LEVEL .GE. 4 ) WRITE(*,111) FEXTRP,R(L-1),R(L)
+111   FORMAT(' FEXTRP + RATIOS',1P,3E15.7)
+      H2TFEX=-H2TOL*FEXTRP
+      IF ( R(L)-FEXTRP .LT. H2TFEX ) GOTO 79
+      IF ( R(L-1)-FEXTRP .LT. H2TFEX ) GOTO 79
+      ERRER=ASTEP*DABS(DIF(L))
+      FEXTM1=FEXTRP-1.D0
+      DO 78 I=IT,L
+        AIT(I)=AIT(I)+DIF(I)/FEXTM1
+        DIF(I)=AIT(I)-AIT(I-1)
+ 78   CONTINUE
+      GOTO 75
+ 79   FEXTRP=DMAX1(PREVER/ERRER,AITLOW)
+      PREVER=ERRER
+      IF ( L .LT. 5 ) GOTO 63
+      IF ( LEVEL .GE. 3 ) WRITE(*,112)  ERRER,ERGOAL,FEXTRP,IT
+112   FORMAT(' ERRER,ERGOAL,FEXTRP,IT',1P,2E15.7,1P,E14.5,0P,I3)
+      IF ( L-IT .GT. 2  .AND.  ISTAGE .LT. MXSTGE ) GOTO 89
+      IF ( ERRER/FEXTRP**(MAXTBL-L) .LT. ERGOAL ) GOTO 63
+      GOTO 89
+ 80   IF ( LEVEL .GE. 4 ) WRITE(*,113) L,T(1,LM1)
+113   FORMAT(1X,I5,E16.8,5X,'JUMP')
+      IF ( ERRER .GT. ERGOAL ) GOTO 89
+      DIFF=DABS(T(1,L))*2.D0*FN
+      IF ( LEVEL .GE. 2 ) WRITE(*,114) DIFF,BEGI,ENDE
+114   FORMAT(13X,'INTEGRAND SEEMS TO HAVE JUMP OF SIZE',
+     *   1P,E15.7,' BETWEEN',1P,E15.7,' AND',1P,E15.7)
+      GOTO 86
+ 81   IF ( LEVEL .GE. 4 ) WRITE(*,115) L
+115   FORMAT(1X,I5,21X,'STRAIGHT LINE')
+      SLOPE=(FEND-FBEG)*2.D0
+      FBEG2=FBEG*2.D0
+      DO  82  I=1,4
+        DIFF=DABS(FUNC(BEGI+RN(I)*STEP)-FBEG2-RN(I)*SLOPE)
+        IF ( DIFF .GT. TABTLM)  GOTO 85
+ 82   CONTINUE
+      IF ( LEVEL .GE. 3 ) WRITE(*,116) BEGI,ENDE
+116   FORMAT(27X,'INTEGRAND SEEMS TO BE STRAIGHT LINE BETWEEN',
+     *       1P,E15.7,' AND',1P,E15.7)
+      GOTO 86
+ 83   IF ( LEVEL .GE. 4 ) WRITE(*,117) L,T(1,LM1)
+117   FORMAT(1X,I5,1P,E15.7,5X,'NOISE')
+      SLOPE=(FEND-FBEG)*2.D0
+      FBEG2=FBEG*2.D0
+      I=1
+ 84   DIFF=DABS(FUNC(BEGI+RN(I)*STEP)-FBEG2-RN(I)*SLOPE)
+ 85   ERRER=DMAX1(ERRER,ASTEP*DIFF)
+      IF ( ERRER .GT. ERGOAL ) GOTO 90
+      I=I+1
+      IF ( I .LE. 4 ) GOTO 84
+      IF ( LEVEL .GE. 3 ) WRITE(*,118) BEGI,ENDE
+118   FORMAT(' NOISE BETWEEN',1P,E15.7,' AND',1P,E15.7)
+      IFLAG=3
+ 86   VAL=VAL+VINT
+      ERROR=ERROR+ERRER
+      IF ( LEVEL .GE. 3 ) THEN
+        IF ( LEVEL .GE. 5 ) THEN
+          DO 87 I=1,L
+            IF ( LEVEL .GE. 4 ) WRITE(*,119) I,(T(I,J),J=1,L)
+119         FORMAT(1X,I5,7E16.8/1X,3E16.8)
+ 87       CONTINUE
+        ENDIF
+        WRITE(*,120) VINT,ERRER,L,IT
+120     FORMAT(' INTEGRAL IS',1P,E16.8,', ERROR',1P,E16.8,
+     *         '  FROM T(',I1,',',I1,'1H)')
+      ENDIF
+      IF ( RIGHT ) GOTO 88
+      ISTAGE=ISTAGE-1
+      IF ( ISTAGE .EQ. 0 ) RETURN
+      REGLAR=REGLSV(ISTAGE)
+      BEGI=BEGIN(ISTAGE)
+      ENDE=FINIS(ISTAGE)
+      CUREST=CUREST-EST(ISTAGE+1)+VINT
+      IEND=IBEG-1
+      FEND=TS(IEND)
+      IBEG=IBEGS(ISTAGE)
+      GOTO 92
+ 88   CUREST=CUREST+VINT
+      STAGE=STAGE*2.D0
+      IEND=IBEG
+      IBEG=IBEGS(ISTAGE)
+      ENDE=BEGI
+      BEGI=BEGIN(ISTAGE)
+      FEND=FBEG
+      FBEG=TS(IBEG)
+      GOTO 60
+ 89   REGLAR=.TRUE.
+ 90   IF ( ISTAGE .EQ. MXSTGE ) GOTO 97
+      IF ( LEVEL .GE. 5 ) THEN
+        DO 91 I=1,L
+          IF ( LEVEL .GE. 4 ) WRITE(*,121) I,(T(I,J),J=1,L)
+121       FORMAT(1X,I5,7E16.8/1X,3E16.8)
+ 91     CONTINUE
+      ENDIF
+      IF ( RIGHT ) GOTO 93
+      REGLSV(ISTAGE+1)=REGLAR
+      BEGIN(ISTAGE)=BEGI
+      IBEGS(ISTAGE)=IBEG
+      STAGE=STAGE/2.D0
+ 92   RIGHT=.TRUE.
+      BEGI=(BEGI+ENDE)/2.D0
+      IBEG=(IBEG+IEND)/2
+      TS(IBEG)=TS(IBEG)/2.D0
+      FBEG=TS(IBEG)
+      GOTO 61
+ 93   NNLEFT=IBEG-IBEGS(ISTAGE)
+      IF ( IEND+NNLEFT .GE. MAXTS ) GOTO 96
+      III=IBEGS(ISTAGE)
+      II=IEND
+      DO 94 I=III,IBEG
+        II=II+1
+        TS(II)=TS(I)
+ 94   CONTINUE
+      DO 95 I=IBEG,II
+        TS(III)=TS(I)
+        III=III+1
+ 95   CONTINUE
+      IEND=IEND+1
+      IBEG=IEND-NNLEFT
+      FEND=FBEG
+      FBEG=TS(IBEG)
+      FINIS(ISTAGE)=ENDE
+      ENDE=BEGI
+      BEGI=BEGIN(ISTAGE)
+      BEGIN(ISTAGE)=ENDE
+      REGLSV(ISTAGE)=REGLAR
+      ISTAGE=ISTAGE+1
+      REGLAR=REGLSV(ISTAGE)
+      EST(ISTAGE)=VINT
+      CUREST=CUREST+EST(ISTAGE)
+      GOTO 60
+ 96   CONTINUE
+      IF ( LEVEL .GE. 2 ) WRITE(*,122) BEGI,ENDE
+122   FORMAT(' TOO MANY FUNCTION EVALUATIONS AROUND'/
+     *       11X,1P,E15.7,' AND',1P,E15.7)
+      IFLAG=4
+      GOTO 99
+ 97   CONTINUE
+      IFLAG=5
+      IF ( LEVEL .GE. 2 ) THEN
+        IF ( LEVEL .GE. 5 ) THEN
+          DO  98  I =1,L
+            IF ( LEVEL .GE. 4 ) WRITE(*,123) I,(T(I,J),J=1,L)
+123         FORMAT(1X,I5,7E16.8/1X,3E16.8)
+ 98       CONTINUE
+        ENDIF
+        WRITE(*,124) BEGI,ENDE
+124     FORMAT(11X,'INTEGRAND SHOWS SINGULAR BEHAVIOUR OF ',
+     *      'UNKNOWN TYPE BETWEEN',1P,E15.7,' AND',1P,E15.7)
+      ENDIF
+ 99   CONTINUE
+      VAL=CUREST+VINT
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION UTACOS(X)
+
+C-----------------------------------------------------------------------
+C  RETURNS ACOS(X) FOR -1 <= X <= 1 , ACOS(+-1) ELSE
+C-----------------------------------------------------------------------
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+C-----------------------------------------------------------------------
+      ARGUM=X
+      IF     ( X .LT. -1. ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('UTACOS')
+          WRITE(IFCH,*)'*****  ARGUM = ',ARGUM,' SET -1'
+          CALL UTMSGF
+        ENDIF
+        ARGUM=-1.
+      ELSEIF ( X .GT.  1. ) THEN
+        IF ( ISH .GE .90 ) THEN
+          CALL UTMSG('UTACOS')
+          WRITE(IFCH,*)'*****  ARGUM = ',ARGUM,' SET 1'
+          CALL UTMSGF
+        ENDIF
+        ARGUM=1.
+      ENDIF
+      UTACOS=ACOS(ARGUM)
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION UTAMNU(KEUX,KEDX,KESX,KECX,MODUS)
+
+C----------------------------------------------------------------------
+C  RETURNS MIN MASS OF CLUSTER WITH GIVEN U,D,S,C CONTENT
+C  KEUX: NET U QUARK NUMBER
+C  KEDX: NET D QUARK NUMBER
+C  KESX: NET S QUARK NUMBER
+C  KECX: NET C QUARK NUMBER
+C  MODUS:0,1,2,3,4,5,6
+C----------------------------------------------------------------------
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CSJCGA/  AMEGAM,AMNULL,ASUHA(7),ENTRPY,NOPHA,NSUHA(7)
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO3/   ASUHAX(7),ASUHAY(7),OMEGA,SIGPPD,SIGPPE,UENTRO
+     *                ,IWZZZZ
+C----------------------------------------------------------------------
+      AMNULL=0.
+
+      IF     ( MODUS .EQ. 0 ) THEN
+        DO 21 I=1,7
+          ASUHA(I)=ASUHAY(I)
+          NSUHA(I)=0
+21      CONTINUE
+      ELSEIF ( MODUS .EQ. 1 ) THEN
+        IF     ( NOPHA .EQ. 0 ) THEN
+          DO 22 I=1,7
+            ASUHA(I)=ASUHAX(I)
+            NSUHA(I)=0
+22        CONTINUE
+        ELSEIF ( NOPHA .GE. 1 ) THEN
+          DO 23 I=1,7
+            ASUHA(I)=ASUHAY(I)
+            NSUHA(I)=0
+23        CONTINUE
+        ENDIF
+      ELSEIF ( MODUS .EQ. 2 ) THEN
+        DO 24 I=1,7
+          ASUHA(I)=ASUHAY(I)
+          NSUHA(I)=0
+24      CONTINUE
+      ELSEIF ( MODUS .EQ. 3 ) THEN
+        DO 25 I=1,7
+          ASUHA(I)=ASUHAY(I)
+          NSUHA(I)=0
+25      CONTINUE
+      ELSEIF ( MODUS .EQ. 4 ) THEN
+        DO 26 I=1,7
+          ASUHA(I)=ASUHAX(I)
+          NSUHA(I)=0
+26      CONTINUE
+      ELSEIF ( MODUS .EQ. 5 ) THEN
+        DO 27 I=1,7
+          ASUHA(I)=ASUHAY(I)
+          NSUHA(I)=0
+27      CONTINUE
+      ELSEIF ( MODUS .EQ. 6 ) THEN
+        DO 28 I=1,7
+          ASUHA(I)=SQRT(ASUHAY(I)**2+DELMSS**2)
+          NSUHA(I)=0
+28      CONTINUE
+      ENDIF
+      IAUX=KEUX+KEDX+KESX+KECX
+      KE=ABS(IAUX)
+
+      IF ( IAUX .GE. 0 ) THEN
+        KEU=KEUX
+        KED=KEDX
+        KES=KESX
+        KEC=KECX
+      ELSE
+        KEU=-KEUX
+        KED=-KEDX
+        KES=-KESX
+        KEC=-KECX
+      ENDIF
+
+      IF ( KEC .NE. 0 ) THEN
+10      CONTINUE
+        IF   ( KEC .LT. 0 ) THEN
+          KEC=KEC+1
+          IF ( KEU .GT. KED ) THEN
+            KEU=KEU-1
+          ELSE
+            KED=KED-1
+          ENDIF
+          AMNULL=AMNULL+1.87
+          GOTO 10
+        ENDIF
+11      CONTINUE
+        IF ( KEC .GT. 0 ) THEN
+          KEC=KEC-1
+          IF ( KEU .LT. KED ) THEN
+            KEU=KEU+1
+          ELSE
+            KED=KED+1
+          ENDIF
+          AMNULL=AMNULL+1.87
+          GOTO 11
+        ENDIF
+      ENDIF
+
+ 5    CONTINUE
+      IF ( KES .LT. 0 ) THEN
+        AMNULL=AMNULL+ASUHA(6)
+        IF ( KEU .GE. KED ) THEN
+          KEU=KEU-1
+        ELSE
+          KED=KED-1
+        ENDIF
+        KES=KES+1
+        GOTO 5
+      ENDIF
+
+ 6    CONTINUE
+      IF ( KED .LT. 0 ) THEN
+        IF ( KEU .GE. KES ) THEN
+          AMNULL=AMNULL+ASUHA(5)
+          KEU=KEU-1
+        ELSE
+          AMNULL=AMNULL+ASUHA(6)
+          KES=KES-1
+        ENDIF
+        KED=KED+1
+        GOTO 6
+      ENDIF
+
+ 7    CONTINUE
+      IF ( KEU .LT. 0 ) THEN
+        IF ( KED .GE. KES ) THEN
+          AMNULL=AMNULL+ASUHA(5)
+          KED=KED-1
+        ELSE
+          AMNULL=AMNULL+ASUHA(6)
+          KES=KES-1
+        ENDIF
+        KEU=KEU+1
+        GOTO 7
+      ENDIF
+
+      IF ( KEU+KED+KES+KEC .NE. KE ) THEN
+        CALL UTSTOP('UTAMNU: SUM_KEI /= KE                   ')
+      ENDIF
+      KEQ=KEU+KED
+      KEQX=KEQ
+
+      IF ( MODUS .EQ. 2  .AND.  KE .GT. 3 ) THEN
+        CALL SMASST(KEU,KED,KES,KEC,A,Y,Z)
+        AMNUZ=SMASS(A,Y,Z)
+      ENDIF
+
+      AMNUX=0.
+
+      I=4
+ 2    I=I-1
+ 3    CONTINUE
+      IF ( (4-I)*KES .GT. (I-1)*KEQ ) THEN
+        AMNUX=AMNUX+ASUHA(1+I)
+        KEQ=KEQ-3+I
+        KES=KES-I
+        IF ( KES .LT. 0 ) THEN
+          CALL UTSTOP('UTAMNU: NEGATIVE KES                    ')
+        ENDIF
+        IF ( KEQ .LT. 0 ) THEN
+          CALL UTSTOP('UTAMNU: NEGATIVE KEQ                    ')
+        ENDIF
+        GOTO 3
+      ENDIF
+      IF ( I .GT. 1 ) GOTO 2
+
+      IF ( KEQX .GT. KEQ ) THEN
+        DO 8 K=1,KEQX-KEQ
+          IF ( KEU .GE. KED ) THEN
+            KEU=KEU-1
+          ELSE
+            KED=KED-1
+          ENDIF
+ 8      CONTINUE
+      ENDIF
+      IF ( KEU+KED .NE. KEQ ) THEN
+        CALL UTSTOP('UTAMNU: KEU+KED /= KEQ                  ')
+      ENDIF
+
+ 9    CONTINUE
+      IF ( KEU .GT. 2*KED ) THEN
+        AMNUX=AMNUX+ASUHA(7)
+        KEU=KEU-3
+        IF ( KEU .LT. 0 ) THEN
+          CALL UTSTOP('UTAMNU: NEGATIVE KEU                    ')
+        ENDIF
+        GOTO 9
+      ENDIF
+      IF ( KED .GT. 2*KEU ) THEN
+        AMNUX=AMNUX+ASUHA(7)
+        KED=KED-3
+        IF ( KED .LT. 0 ) THEN
+          CALL UTSTOP('UTAMNU: NEGATIVE KED                    ')
+        ENDIF
+        GOTO 9
+      ENDIF
+
+      KEQ=KEU+KED
+      IF ( MOD(KEQ,3) .NE. 0 ) THEN
+        CALL UTSTOP('UTAMNU: MOD(KEQ,3) /= 0                 ')
+      ENDIF
+      AMNUX=AMNUX+ASUHA(1)*KEQ/3
+
+      AMNU=AMNUX
+      IF ( MODUS.EQ.2 .AND. KE.GT.3 ) AMNU=MIN(AMNUX,AMNUZ)
+      AMNULL=AMNULL+AMNU
+
+      IF ( AMNULL.EQ.0. .AND. MODUS.GT.0 ) AMNULL=ASUHA(5)
+
+1000  UTAMNU=AMNULL
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION UTAMNX(JCP,JCM)
+
+C-----------------------------------------------------------------------
+C  RETURNS MINIMUM MASS FOR THE DECAY OF JCP---JCM (BY CALLING UTAMNU).
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      INTEGER JCM(NFLAV,2),JCP(NFLAV,2)
+C-----------------------------------------------------------------------
+      DO 3 I=1,NFLAV
+        IF ( JCP(I,1) .NE. 0 ) GOTO 1
+        IF ( JCP(I,2) .NE. 0 ) GOTO 1
+ 3    CONTINUE
+      KEU=JCM(1,1)-JCM(1,2)
+      KED=JCM(2,1)-JCM(2,2)
+      KES=JCM(3,1)-JCM(3,2)
+      KEC=JCM(4,1)-JCM(4,2)
+      UTAMNX=UTAMNU(KEU,KED,KES,KEC,5)
+      RETURN
+ 1    CONTINUE
+
+      DO  4 I=1,NFLAV
+        IF ( JCM(I,1) .NE. 0 ) GOTO 2
+        IF ( JCM(I,2) .NE. 0 ) GOTO 2
+ 4    CONTINUE
+      KEU=JCP(1,1)-JCP(1,2)
+      KED=JCP(2,1)-JCP(2,2)
+      KES=JCP(3,1)-JCP(3,2)
+      KEC=JCP(4,1)-JCP(4,2)
+      UTAMNX=UTAMNU(KEU,KED,KES,KEC,5)
+      RETURN
+ 2    CONTINUE
+
+      KEU=JCP(1,1)-JCP(1,2)
+      KED=JCP(2,1)-JCP(2,2)
+      KES=JCP(3,1)-JCP(3,2)
+      KEC=JCP(4,1)-JCP(4,2)
+      KE=KEU+KED+KES+KEC
+      IF     ( MOD(KE+1,3) .EQ. 0 ) THEN
+        KEU=KEU+1
+      ELSEIF ( MOD(KE-1,3) .EQ. 0 ) THEN
+        KEU=KEU-1
+      ELSE
+        CALL UTSTOP('UTAMNX: NO SINGLET POSSIBLE (1)         ')
+      ENDIF
+      AMMS=UTAMNU(KEU,KED,KES,KEC,5)
+      KEU=JCM(1,1)-JCM(1,2)
+      KED=JCM(2,1)-JCM(2,2)
+      KES=JCM(3,1)-JCM(3,2)
+      KEC=JCM(4,1)-JCM(4,2)
+      KE=KEU+KED+KES+KEC
+      IF     ( MOD(KE+1,3) .EQ. 0 ) THEN
+        KEU=KEU+1
+      ELSEIF ( MOD(KE-1,3) .EQ. 0 ) THEN
+        KEU=KEU-1
+      ELSE
+        CALL UTSTOP('UTAMNX: NO SINGLET POSSIBLE (2)         ')
+      ENDIF
+      UTAMNX=AMMS+UTAMNU(KEU,KED,KES,KEC,5)
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION UTAMNY(JCP,JCM)
+
+C-----------------------------------------------------------------------
+C  RETURNS MINIMUM MASS OF JCP+JCM (BY CALLING UTAMNU).
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      INTEGER JC(NFLAV,2),JCM(NFLAV,2),JCP(NFLAV,2)
+C-----------------------------------------------------------------------
+      DO 7 NF=1,NFLAV
+        JC(NF,1)=JCP(NF,1)+JCM(NF,1)
+        JC(NF,2)=JCP(NF,2)+JCM(NF,2)
+ 7    CONTINUE
+      KEU=JC(1,1)-JC(1,2)
+      KED=JC(2,1)-JC(2,2)
+      KES=JC(3,1)-JC(3,2)
+      KEC=JC(4,1)-JC(4,2)
+      UTAMNY=UTAMNU(KEU,KED,KES,KEC,5)
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION UTAMNZ(JC,MODUS)
+
+C-----------------------------------------------------------------------
+C  RETURNS MINIMUM MASS OF JC (BY CALLING UTAMNU).
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      INTEGER JC(NFLAV,2)
+C-----------------------------------------------------------------------
+      KEU=JC(1,1)-JC(1,2)
+      KED=JC(2,1)-JC(2,2)
+      KES=JC(3,1)-JC(3,2)
+      KEC=JC(4,1)-JC(4,2)
+      UTAMNZ=UTAMNU(KEU,KED,KES,KEC,MODUS)
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTAMST(STS,AM,AMIN,IRET)
+
+C-----------------------------------------------------------------------
+C  INPUT:  STS   = STRING  (SINGLE)
+C  OUTPUT: AM    = MASS
+C          AMIN  = MINIMUM MASS
+C          IRET  = RETURN CODE (=3 IF AM**2.LT.AMIN**2, 0 ELSE)
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      PARAMETER (NSI=6)
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+
+      REAL    STS(NSI,2)
+      INTEGER IC1(2),IC2(2),JC(NFLAV,2),JC1(NFLAV,2),JC2(NFLAV,2)
+C-----------------------------------------------------------------------
+      IRET=0
+      AM2= (STS(4,1)+STS(4,2))**2 - (STS(3,1)+STS(3,2))**2 -
+     *     (STS(2,1)+STS(2,2))**2 - (STS(1,1)+STS(1,2))**2
+      AM=-AM2
+      IC1(1)=NINT(STS(4+1,1))
+      IC1(2)=NINT(STS(4+2,1))
+      IC2(1)=NINT(STS(4+1,2))
+      IC2(2)=NINT(STS(4+2,2))
+      CALL IDDECO(IC1,JC1)
+      CALL IDDECO(IC2,JC2)
+      DO 2 NF=1,NFLAV
+        JC(NF,1)=JC1(NF,1)+JC2(NF,1)
+        JC(NF,2)=JC1(NF,2)+JC2(NF,2)
+        IF ( NF.GT.4 .AND. (JC(NF,1).NE.0 .OR. JC(NF,2).NE.0) ) THEN
+          CALL UTSTOP('UTAMST: FLAVOUR > 4                     ')
+        ENDIF
+ 2    CONTINUE
+      KEU=JC(1,1)-JC(1,2)
+      KED=JC(2,1)-JC(2,2)
+      KES=JC(3,1)-JC(3,2)
+      KEC=JC(4,1)-JC(4,2)
+      AMIN=UTAMNU(KEU,KED,KES,KEC,4)
+      IF ( AM2. LT. AMIN**2 ) THEN
+        IRET=3
+        RETURN
+      ELSE
+        AM=SQRT(AM2)
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTAXIS(I,J,A1,A2,A3)
+
+C---------------------------------------------------------------------
+C  CALCULATES THE AXIS DEFINED BY THE PTLS I,J IN THE I,J CM SYSTEM
+C---------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+C---------------------------------------------------------------------
+      A1=0.
+      A2=0.
+      A3=1.
+      PI1=PPTL(1,I)
+      PI2=PPTL(2,I)
+      PI3=PPTL(3,I)
+      PI4=PPTL(4,I)
+      PJ1=PPTL(1,J)
+      PJ2=PPTL(2,J)
+      PJ3=PPTL(3,J)
+      PJ4=PPTL(4,J)
+      P1=PI1+PJ1
+      P2=PI2+PJ2
+      P3=PI3+PJ3
+      P4=PI4+PJ4
+      P5=SQRT(P4**2-P3**2-P2**2-P1**2)
+      CALL UTLOBO(1,P1,P2,P3,P4,P5,PI1,PI2,PI3,PI4)
+      CALL UTLOBO(1,P1,P2,P3,P4,P5,PJ1,PJ2,PJ3,PJ4)
+      ERR=(PI1+PJ1)**2+(PI2+PJ2)**2+(PI3+PJ3)**2
+      IF ( ISH.GE.90 .AND. ERR .GT. 1.E-3 ) THEN
+        CALL UTMSG('UTAXIS')
+        WRITE(IFCH,*)'*****  ERR=',ERR
+        WRITE(IFCH,*)'PI:',PI1,PI2,PI3,PI4
+        WRITE(IFCH,*)'PJ:',PJ1,PJ2,PJ3,PJ4
+        CALL UTMSGF
+      ENDIF
+      A=SQRT( (PJ1-PI1)**2 + (PJ2-PI2)**2 + (PJ3-PI3)**2 )
+      IF ( A .EQ. 0. ) RETURN
+      A1=(PI1-PJ1)/A
+      A2=(PI2-PJ2)/A
+      A3=(PI3-PJ3)/A
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTCHM(ARP,ARM,II)
+
+C-----------------------------------------------------------------------
+C  CHECKS WHETHER ARP**2=0. AND ARM**2=0.
+C-----------------------------------------------------------------------
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      DOUBLE PRECISION ARM(4),ARP(4),DIFM,DIFP
+C-----------------------------------------------------------------------
+      IF(ISH.LT.90)RETURN
+      DIFP=ARP(4)**2-ARP(1)**2-ARP(2)**2-ARP(3)**2
+      DIFM=ARM(4)**2-ARM(1)**2-ARM(2)**2-ARM(3)**2
+      IF ( ABS(DIFP) .GT. 1.D-3*ARP(4)**2   .OR.
+     *     ABS(DIFM) .GT. 1.D-3*ARM(4)**2 ) THEN
+        CALL UTMSG('UTCHM ')
+        WRITE(IFCH,*)'*****  MASS NON ZERO  -  ',II
+        WRITE(IFCH,*)'JET-MASS**2`S:    ',DIFP,DIFM
+        WRITE(IFCH,*)'ENERGY**2`S:      ',ARP(4)**2,ARM(4)**2
+        WRITE(IFCH,*)(SNGL(ARP(I)),I=1,4)
+        WRITE(IFCH,*)(SNGL(ARM(I)),I=1,4)
+        CALL UTMSGF
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTCLEA(NPTL0)
+
+C-----------------------------------------------------------------------
+C  OVERWRITES ISTPTL=2 PARTICLES IN /CPTL/, REDUCES SO NPTL.
+C-----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      INTEGER NEWPTL(MXPTL)
+C-----------------------------------------------------------------------
+      ISH0=ISH
+      IF ( ISHSUB/100 .EQ. 18 ) ISH=MOD(ISHSUB,100)
+
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)('-',L=1,68)
+        WRITE(IFCH,*)'SR UTCLEA. INITIAL.'
+        WRITE(IFCH,*)('-',L=1,68)
+        DO 34 N=1,NPTL
+          WRITE(IFCH,116)IORPTL(N),JORPTL(N),N,IFRPTL(1,N),IFRPTL(2,N)
+     *     ,IDPTL(N),SQRT(PPTL(1,N)**2+PPTL(2,N)**2),PPTL(3,N),PPTL(5,N)
+     *     ,ISTPTL(N)
+34      CONTINUE
+116     FORMAT(1X,I6,I6,2X,I6,2X,I4,I4,I12,3(E10.2),I3,I3)
+      ENDIF
+
+      I=0
+ 1    I=I+1
+      IF ( I .GT. NPTL ) GOTO 1000
+      IF ( ISTPTL(I) .EQ. 2 ) GOTO 2
+      NEWPTL(I)=I
+      GOTO 1
+
+ 2    I=I-1
+      J=I
+ 3    I=I+1
+ 4    J=J+1
+      IF ( J .GT. NPTL ) GOTO 5
+      NEWPTL(J)=0
+      IF ( ISTPTL(J) .EQ. 2 ) GOTO 4
+      NEWPTL(J)=I
+      CALL UTREPL(I,J)
+      GOTO 3
+
+ 5    NPTL=I-1
+      IF ( NPTL .EQ. 0 ) THEN
+        NPTL0=0
+        GOTO 1000
+      ENDIF
+
+20    N0=NEWPTL(NPTL0)
+      IF ( N0 .GT. 0 ) THEN
+        NPTL0=N0
+      ELSE
+        NPTL0=NPTL0-1
+        IF ( NPTL0 .GT. 0 ) GOTO 20
+      ENDIF
+
+      DO 11 K=1,NPTL
+        IO=IORPTL(K)
+        IF ( IO .LE. 0 ) THEN
+          IORPTL(K)=IO
+        ELSE
+          IORPTL(K)=NEWPTL(IO)
+        ENDIF
+
+        JO=JORPTL(K)
+        IF ( JO .LE. 0 ) THEN
+          JORPTL(K)=JO
+        ELSE
+          JORPTL(K)=NEWPTL(JO)
+        ENDIF
+
+        IF1=IFRPTL(1,K)
+        IF ( IF1 .LE. 0 ) THEN
+          IFRPTL(1,K)=IF1
+        ELSE
+          IFRPTL(1,K)=NEWPTL(IF1)
+        ENDIF
+
+        IF2=IFRPTL(2,K)
+        IF ( IF2 .LE. 0 ) THEN
+          IFRPTL(2,K)=IF2
+        ELSE
+          IFRPTL(2,K)=NEWPTL(IF2)
+        ENDIF
+11    CONTINUE
+
+      DO 19 K=1,NPTL
+        IF ( IFRPTL(1,K).EQ.0 .AND. IFRPTL(2,K).GT.0 )
+     *                                         IFRPTL(1,K)=IFRPTL(2,K)
+        IF ( IFRPTL(1,K).GT.0 .AND. IFRPTL(2,K).EQ.0 )
+     *                                         IFRPTL(2,K)=IFRPTL(1,K)
+19    CONTINUE
+
+1000  CONTINUE
+
+      IF ( ISH .GE. 92 ) THEN
+        WRITE(IFCH,*)('-',L=1,68)
+        WRITE(IFCH,*)'SR UTCLEA. FINAL.'
+        WRITE(IFCH,*)('-',L=1,68)
+        DO 35 N=1,NPTL
+          WRITE(IFCH,116)IORPTL(N),JORPTL(N),N,IFRPTL(1,N),IFRPTL(2,N)
+     *     ,IDPTL(N),SQRT(PPTL(1,N)**2+PPTL(2,N)**2),PPTL(3,N),PPTL(5,N)
+     *     ,ISTPTL(N)
+35      CONTINUE
+        WRITE(IFCH,*)('-',L=1,79)
+      ENDIF
+
+      ISH=ISH0
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTHIST(X1,X2,Y1,Y2,N,X,Y,LITY,LILO,TEXT1,TEXT2,TEXT3)
+
+C----------------------------------------------------------------------
+C  WRITES ARRAYS X,Y IN HISTO-FORMAT
+C----------------------------------------------------------------------
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      REAL      X(N),Y(N)
+      CHARACTER LILO*6,LITY*3,TEXT1*50,TEXT2*50,TEXT3*50
+C----------------------------------------------------------------------
+      WRITE(IFCH,100)('-',I=1,69)
+      WRITE(IFCH,100)('-',I=1,69)
+100   FORMAT(1X,1H',69A1,1H')
+      WRITE(IFCH,101)X1,X2,0.,Y1,Y2,0.,'_____',0
+     *,'___',LITY,'___','_______',LILO,0.,3,N,0.
+101   FORMAT(1X,6F8.2,2X,1H',A5,1H',I11
+     */4X,1H',A3,1H',3X,1H',A3,A3,1H',3X,1H',A7,A6,1H',F8.2,2I6,F10.4)
+      WRITE(IFCH,100)('-',I=1,69)
+      WRITE(IFCH,102)0.,0.,TEXT1
+      WRITE(IFCH,102)0.,0.,TEXT2
+      WRITE(IFCH,102)0.,0.,TEXT3
+102   FORMAT(4X,F4.2,2X,F4.2,2X,1H',A50,1H')
+      WRITE(IFCH,100)('-',I=1,69)
+      DO 36 K=1,N
+        WRITE(IFCH,103)K,X(K),0.,Y(K),0.,0.
+103     FORMAT(4X,I5,2X,5E12.4)
+36    CONTINUE
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTHSEA
+
+C-----------------------------------------------------------------------
+C  CREATES HISTOGRAM OF SEA STRUCTURE FUNCTION
+C-----------------------------------------------------------------------
+      PARAMETER (NSTRU=2049)
+      COMMON /STRU/    QSEP(NSTRU),QSET(NSTRU),QVAP(NSTRU)
+     *                ,QVAT(NSTRU),XCUTAR,XSTRU(NSTRU)
+     *                ,IDTG
+      REAL XAR(1000),YAR(1000)
+C-----------------------------------------------------------------------
+      DX=1.
+      X1=-1.
+      DO 3 K=1,2
+        DX=DX*0.001
+        X1=X1-3.
+        DO 2 N=1,1000
+          YAR(N)=0.
+          XAR(N)=-DX*0.5+N*DX
+ 2      CONTINUE
+        DO 1 I=1,100000
+          X=UTINVT(NSTRU,XSTRU,QSEP,RANGEN()*QSEP(NSTRU))
+          N=1+X/DX
+          IF ( N .LE. 1000 ) YAR(N)=YAR(N)+1.
+ 1      CONTINUE
+        CALL UTHIST(X1,X1+4,0.,5.,1000,XAR,YAR,'POC','LOGLOG'
+     *        ,'XAXIS X                         $                 '
+     *        ,'YAXIS COUNTS                    $                 '
+     *        ,'TITLE SEA QUARK STRUCTURE FUNCTION                ')
+ 3    CONTINUE
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION UTINVT(N,X,Q,YY)
+
+C-----------------------------------------------------------------------
+C  RETURNS X WITH Y=Q(X)
+C-----------------------------------------------------------------------
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CUTINV/  LUTINV
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      REAL Q(N),X(N)
+C-----------------------------------------------------------------------
+      IF ( Q(N) .EQ. 0. ) THEN
+        CALL UTSTOP('UTINVT: Q(N)=0. DIMENSIONS TOO BIG      ')
+      ENDIF
+      Y = YY
+      IF     ( Y .LT. 0. ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('UTINVT')
+          WRITE(IFCH,*)'*****  Y=',Y,' < 0'
+          CALL UTMSGF
+        ENDIF
+        Y=0.
+      ELSEIF ( Y .GT. Q(N) ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('UTINVT')
+          WRITE(IFCH,*)'*****  Y=',Y,' > ',Q(N)
+          CALL UTMSGF
+        ENDIF
+        Y=Q(N)
+      ENDIF
+      LU=1
+      LO=N
+ 1    LZ=(LO+LU)/2
+      IF     ( Q(LU).LE.Y .AND. Y.LE.Q(LZ) ) THEN
+        LO=LZ
+      ELSEIF ( Q(LZ).LT.Y .AND. Y.LE.Q(LO) ) THEN
+        LU=LZ
+      ELSE
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'Q(1),Y,Q(N):',Q(1),Y,Q(N)
+        WRITE(IFCH,*)'LU,LZ,LO:',LU,LZ,LO
+        WRITE(IFCH,*)'Q(LU),Q(LZ),Q(LO):',Q(LU),Q(LZ),Q(LO)
+        CALL UTSTOP('UTINVT: NO INTERVAL FOUND               ')
+      ENDIF
+      IF ( LO-LU .GE. 2 ) GOTO 1
+      IF ( LO .LE. LU ) THEN
+        CALL UTSTOP('UTINVT: LO.LE.LU                        ')
+      ENDIF
+      UTINVT=X(LU)+(Y-Q(LU))*(X(LO)-X(LU))/(Q(LO)-Q(LU))
+      LUTINV=LU
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTKSIX(SIX,KMAX)
+
+C-----------------------------------------------------------------------
+C  RETURNS KMAX FOR SIX
+C-----------------------------------------------------------------------
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      REAL SIX(NSI,NSIX)
+C-----------------------------------------------------------------------
+      DO 10 K=0,NSIX-1
+        KMAX=K
+        SIXSQR=0.
+        DO 20 I=1,NSI
+          SIXSQR=SIXSQR+SIX(I,K+1)**2
+20      CONTINUE
+        IF ( SIXSQR .LE. 1.E-5 ) RETURN
+10    CONTINUE
+      CALL UTSTOP('UTKSIX: DIMENSION NSIX TOO SMALL        ')
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTKSTR(STR,KMAX)
+
+C-----------------------------------------------------------------------
+C  RETURNS KMAX FOR STR
+C-----------------------------------------------------------------------
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      REAL STR(NSI,NSIX+1)
+C-----------------------------------------------------------------------
+      DO 10 K=0,NSIX
+        KMAX=K
+        STRSQR=0.
+        DO 20 I=1,NSI
+          STRSQR=STRSQR+STR(I,K+1)**2
+20      CONTINUE
+        IF ( STRSQR .LE. 1.E-5 ) RETURN
+10    CONTINUE
+      CALL UTSTOP('UTKSTR: DIMENSION NSIX TOO SMALL        ')
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTLOBO(ISIG,P1,P2,P3,P4,P5,X1,X2,X3,X4)
+
+C-----------------------------------------------------------------------
+C  PERFORMS A LORENTZ BOOST
+C-----------------------------------------------------------------------
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      REAL BETA(4),Z(4)
+C-----------------------------------------------------------------------
+      IF ( P5 .LE. 0. ) THEN
+        CALL UTMSG('UTLOBO')
+        WRITE(IFCH,*)'*****  MASS <= 0.'
+        WRITE(IFCH,*)'P(5): ',P1,P2,P3,P4,P5
+        CALL UTMSGF
+        CALL UTSTOP('UTLOBO: MASS <= 0.                      ')
+      ENDIF
+      Z(1)=X1
+      Z(2)=X2
+      Z(3)=X3
+      Z(4)=X4
+      BETA(1)=-P1/P5
+      BETA(2)=-P2/P5
+      BETA(3)=-P3/P5
+      BETA(4)= P4/P5
+      BP=ISIG*(Z(1)*BETA(1)+Z(2)*BETA(2)+Z(3)*BETA(3))
+      AUXIL= ISIG*Z(4)+ISIG*BP/(BETA(4)+1.)
+      Z(1)=Z(1)+BETA(1)*AUXIL
+      Z(2)=Z(2)+BETA(2)*AUXIL
+      Z(3)=Z(3)+BETA(3)*AUXIL
+      Z(4)=BETA(4)*Z(4)+BP
+      X1=Z(1)
+      X2=Z(2)
+      X3=Z(3)
+      X4=Z(4)
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTLOB2(ISIG,P1,P2,P3,P4,P5,X1,X2,X3,X4)
+
+C-----------------------------------------------------------------------
+C  PERFORMS A LORENTZ BOOST, DOUBLE PREC.
+C-----------------------------------------------------------------------
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      DOUBLE PRECISION BETA(4),BP,DAUXIL,PP,P1,P2,P3,P4,P5,P5I
+     *                ,XX0,X1,X10,X2,X20,X3,X30,X4,X4X,X40,Z(4)
+C-----------------------------------------------------------------------
+      IF ( ISH .GE. 90 ) THEN
+        IF ( ISH .GE. 93 ) THEN
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,101)SNGL(X1),SNGL(X2),SNGL(X3),SNGL(X4)
+     *                  ,SNGL(X4**2-X3**2-X2**2-X1**2)
+101       FORMAT(' UTLOB2:',F9.5,4F13.5)
+        ENDIF
+        PP=P4**2-P3**2-P2**2-P1**2
+        IF ( ABS(PP-P5**2) .GT. 1.D-3*P4**2   .AND.
+     *       ABS(PP-P5**2) .GT. 1.D-3        ) THEN
+          CALL UTMSG('UTLOB2')
+          WRITE(IFCH,*)'*****  P**2 .NE. P5**2'
+          WRITE(IFCH,*)'P**2,P5**2: ',PP,P5**2
+          WRITE(IFCH,*)'P: ',P1,P2,P3,P4,P5
+          CALL UTMSGF
+        ENDIF
+        X10=X1
+        X20=X2
+        X30=X3
+        X40=X4
+      ENDIF
+      XX0=X4**2-X3**2-X2**2-X1**2
+      IF ( P5 .LE. 0.D0 ) THEN
+        CALL UTMSG('UTLOB2')
+        WRITE(IFCH,*)'*****  P5 NEGATIVE.'
+        WRITE(IFCH,*)'P(5): ',P1,P2,P3,P4,P5
+        CALL UTMSGF
+        CALL UTSTOP('UTLOB2: P5 NEGATIVE.                    ')
+      ENDIF
+      Z(1)=X1
+      Z(2)=X2
+      Z(3)=X3
+      Z(4)=X4
+      P5I=1.D0/P5
+      BETA(4)= P5I*P4
+      BETA(1)=-P5I*P1
+      BETA(2)=-P5I*P2
+      BETA(3)=-P5I*P3
+      BP=ISIG*( BETA(1)*Z(1)+BETA(2)*Z(2)+BETA(3)*Z(3) )
+      DAUXIL = ISIG*( Z(4) + BP/(BETA(4)+1.D0) )
+      Z(1)=Z(1)+BETA(1)*DAUXIL
+      Z(2)=Z(2)+BETA(2)*DAUXIL
+      Z(3)=Z(3)+BETA(3)*DAUXIL
+      Z(4)=BETA(4)*Z(4)+BP
+      X1=Z(1)
+      X2=Z(2)
+      X3=Z(3)
+      X4=Z(4)
+      IF ( ISH .GE. 93 )
+     *        WRITE(IFCH,101)SNGL(X1),SNGL(X2),SNGL(X3),SNGL(X4)
+     *                      ,SNGL(X4**2-X3**2-X2**2-X1**2)
+      X4X=X4
+      X4=SQRT(XX0+X1**2+X2**2+X3**2)
+      IF ( ISH .GE. 90 ) THEN
+        IF ( ISH .GE. 93 ) THEN
+          WRITE(IFCH,101)SNGL(X1),SNGL(X2),SNGL(X3),SNGL(X4)
+     *                ,SNGL(X4**2-X3**2-X2**2-X1**2)
+          WRITE(IFCH,*)' '
+        ENDIF
+        IF ( ABS(X4-X4X) .GT. 1.D-2*ABS(X4)    .AND.
+     *       ABS(X4-X4X) .GT. 1.D-2        )   THEN
+          CALL UTMSG('UTLOB2')
+          WRITE(IFCH,*)'*****  X**2_INI .NE. X**2_FIN.'
+          WRITE(IFCH,*)'X1 X2 X3 X4 X**2 (INITIAL/FINAL/CORRECTED):'
+          WRITE(IFCH,101)SNGL(X10),SNGL(X20),SNGL(X30),SNGL(X40)
+     *                  ,SNGL(X40**2-X30**2-X20**2-X10**2)
+          WRITE(IFCH,101)SNGL(X1),SNGL(X2),SNGL(X3),SNGL(X4X)
+     *                  ,SNGL(X4X**2-X3**2-X2**2-X1**2)
+          WRITE(IFCH,101)SNGL(X1),SNGL(X2),SNGL(X3),SNGL(X4)
+     *                  ,SNGL(X4**2-X3**2-X2**2-X1**2)
+          CALL UTMSGF
+        ENDIF
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTLOC(AR,N,A,L)
+
+C-----------------------------------------------------------------------
+      REAL AR(N)
+C-----------------------------------------------------------------------
+      DO 1 I=1,N
+        IF ( A .LT. AR(I) ) THEN
+          L=I-1
+          RETURN
+        ENDIF
+ 1    CONTINUE
+      L=N
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTLOW(CONE)
+
+C-----------------------------------------------------------------------
+C  CONVERTS LOWER CASE CHARACTERS TO UPPER CASE CHARACTERS
+C-----------------------------------------------------------------------
+      CHARACTER*1 CONE
+C-----------------------------------------------------------------------
+      IF     ( CONE .EQ. 'a' ) THEN
+        CONE='A'
+      ELSEIF ( CONE .EQ. 'b' ) THEN
+        CONE='B'
+      ELSEIF ( CONE .EQ. 'c' ) THEN
+        CONE='C'
+      ELSEIF ( CONE .EQ. 'd' ) THEN
+        CONE='D'
+      ELSEIF ( CONE .EQ. 'e' ) THEN
+        CONE='E'
+      ELSEIF ( CONE .EQ. 'f' ) THEN
+        CONE='F'
+      ELSEIF ( CONE .EQ. 'g' ) THEN
+        CONE='G'
+      ELSEIF ( CONE .EQ. 'h' ) THEN
+        CONE='H'
+      ELSEIF ( CONE .EQ. 'i' ) THEN
+        CONE='I'
+      ELSEIF ( CONE .EQ. 'j' ) THEN
+        CONE='J'
+      ELSEIF ( CONE .EQ. 'k' ) THEN
+        CONE='K'
+      ELSEIF ( CONE .EQ. 'l' ) THEN
+        CONE='L'
+      ELSEIF ( CONE .EQ. 'm' ) THEN
+        CONE='M'
+      ELSEIF ( CONE .EQ. 'n' ) THEN
+        CONE='N'
+      ELSEIF ( CONE .EQ. 'o' ) THEN
+        CONE='O'
+      ELSEIF ( CONE .EQ. 'p' ) THEN
+        CONE='P'
+      ELSEIF ( CONE .EQ. 'q' ) THEN
+        CONE='Q'
+      ELSEIF ( CONE .EQ. 'r' ) THEN
+        CONE='R'
+      ELSEIF ( CONE .EQ. 's' ) THEN
+        CONE='S'
+      ELSEIF ( CONE .EQ. 't' ) THEN
+        CONE='T'
+      ELSEIF ( CONE .EQ. 'u' ) THEN
+        CONE='U'
+      ELSEIF ( CONE .EQ. 'v' ) THEN
+        CONE='V'
+      ELSEIF ( CONE .EQ. 'w' ) THEN
+        CONE='W'
+      ELSEIF ( CONE .EQ. 'x' ) THEN
+        CONE='X'
+      ELSEIF ( CONE .EQ. 'y' ) THEN
+        CONE='Y'
+      ELSEIF ( CONE .EQ. 'z' ) THEN
+        CONE='Z'
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTLOW6(CSIX)
+
+C-----------------------------------------------------------------------
+      CHARACTER CSIX*6
+C-----------------------------------------------------------------------
+      DO 1 I=1,6
+        CALL UTLOW(CSIX(I:I))
+ 1    CONTINUE
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTMSG(TXT)
+
+C-----------------------------------------------------------------------
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      DOUBLE PRECISION SEEDC,SEEDI
+      COMMON /CSEED/   SEEDC,SEEDI
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      CHARACTER*6      TXT
+C-----------------------------------------------------------------------
+      IMSG=IMSG+1
+      IF ( ISH.NE.90 .OR. ISHSUB.NE.0 ) WRITE(IFCH,*)' '
+      WRITE(IFCH,*)('-',J=1,77)
+      WRITE(IFCH,100)TXT,NREVT+1,IPAGE,SEEDC
+100   FORMAT(1X,'***** MSG FROM ',A6,'.   EPS:',I7,I5,2X,D23.17)
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTMSGF
+
+C-----------------------------------------------------------------------
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+C-----------------------------------------------------------------------
+      IF ( ISH.EQ.90 .AND. ISHSUB.EQ.0 ) RETURN
+      WRITE(IFCH,*)('-',J=1,77)
+      WRITE(IFCH,*)' '
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTOVEL
+
+C----------------------------------------------------------------------
+C  FILLS ARRAY OVEL(1+I,1+J) CONTAINING THE LOGARITHM (LN) OF
+C    I_OVER_J:
+C  OVEL(1+I,1+J)=LOG(I!/J!/(J-I)!)      I>=0 J>=0
+C----------------------------------------------------------------------
+      PARAMETER (IOVMAX=100)
+      PARAMETER (JOVMAX=100)
+      COMMON /COVEL/   OVEL(1+IOVMAX,1+JOVMAX)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+C----------------------------------------------------------------------
+      DO 1 I=0,IOVMAX
+        OVEL(1+I,1)=0.
+        OVEL(1+I,1+I)=0.
+ 1    CONTINUE
+      DO 2 J=1,JOVMAX-1
+        DO 3 I=J+1,IOVMAX
+          OVEL(1+I,1+J)=OVEL(1+I,J)+LOG((I-J+1.)/J)
+ 3      CONTINUE
+ 2    CONTINUE
+
+      IF ( ISH .GE. 90 ) THEN
+        DO 5 J=1,49
+          DO 5 I=J+1,50
+            RELERR=ABS((EXP(OVEL(1+I,1+J))
+     *           -EXP(OVEL(I,J))-EXP(OVEL(I,1+J)))/EXP(OVEL(1+I,1+J)))
+            IF ( RELERR .GT. 1.E-4 ) THEN
+              CALL UTMSG('UTOVEL')
+              WRITE(IFCH,*)'*****  OVEL(,) VIOLATES RECURRENCE RELATION'
+              WRITE(IFCH,*)EXP(OVEL(1+I,1+J))
+     *                    ,EXP(OVEL(I,J))+EXP(OVEL(I,1+J))
+              CALL UTMSGF
+            ENDIF
+ 5      CONTINUE
+
+        IF ( ISH .GE. 95 ) THEN
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,*)'   EXP( OVEL(1+I,1+J) )'
+          WRITE(IFCH,*)' '
+          DO 6 I=0,15
+            WRITE(IFCH,*)(EXP( OVEL(1+I,1+J) ),J=0,MIN(4,I))
+ 6        CONTINUE
+        ENDIF
+      ENDIF
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTPAGE
+
+C-----------------------------------------------------------------------
+C  INCREASES IPAGE BY 1, CHANGES ISH
+C-----------------------------------------------------------------------
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CISHI/   ISHI
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+C-----------------------------------------------------------------------
+      IPAGE=IPAGE+1
+      IF ( IPAGI .LE. 0 ) RETURN
+      IF ( IPAGE .EQ. 1 ) ISHI=ISH
+      ISH=0
+      IF ( IPAGE.GE.IPAGI/10000.AND.IPAGE.LE.MOD(IPAGI,10000) ) ISH=ISHI
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTPART
+
+C----------------------------------------------------------------------
+C  FILLS ARRAY PARTX(K,N) CONTAINING THE NUMBER
+C    OF PARTITIONS OF N INTO AT MOST K INTEGERS (K>=1 N>=1)  .
+C  FILLS ARRAY PART(K,N) CONTAINING  THE NUMBER
+C    OF PARTITIONS OF N INTO K INTEGERS (K>=1 N>=1)  .
+C  FILLS ARRAY IPART(N,J) CONTAINING THE PARTITIONS OF N.
+C----------------------------------------------------------------------
+      PARAMETER (NQUAX=12)
+      PARAMETER (JPAMAX=NQUAX*NQUAX*NQUAX)
+      PARAMETER (KPAMAX=NQUAX)
+      COMMON /CPART/   PART(KPAMAX,NQUAX)
+      COMMON /CPARTA/  PARTA(NQUAX),IPART(NQUAX,JPAMAX)
+      COMMON /CPARTX/  PARTX(KPAMAX,NQUAX)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      INTEGER ISWAP(JPAMAX)
+C----------------------------------------------------------------------
+      WRITE(IFMT,*)'EXECUTE SR UTPART ...'
+      DO 10 N=1,NQUAX
+        PARTX(1,N)=1.
+        PART(1,N)=1.
+        DO 10 J=1,JPAMAX
+          IPART(N,J)=0
+10    CONTINUE
+
+      DO 1 K=2,KPAMAX
+        DO 2 N=1,NQUAX
+          U=0.
+          DO 3 I=0,N/K
+            IF ( N-I*K .EQ. 0 ) THEN
+              U=U+1.
+            ELSE
+              U=U+PARTX(K-1,N-I*K)
+            ENDIF
+ 3        CONTINUE
+          PARTX(K,N)=U
+ 2      CONTINUE
+ 1    CONTINUE
+      DO 7 N=1,NQUAX
+        PARTA(N)=PART(1,N)
+        DO 7 K=2,KPAMAX
+          PART(K,N)=PARTX(K,N)-PARTX(K-1,N)
+          PARTA(N)=PARTA(N)+PART(K,N)
+ 7    CONTINUE
+
+      IF ( ISH .GE. 93 ) THEN
+121     FORMAT(1X,79A1)
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,121)('-',IC=1,79)
+        WRITE(IFCH,*)'   PARTITIONS OF N INTO AT MOST K INTEGERS'
+        WRITE(IFCH,121)('-',IC=1,79)
+        WRITE(IFCH,101)((K),K=1,10),KPAMAX
+101     FORMAT(9X,'K =',10I5,3X,I5)
+        WRITE(IFCH,121)('-',IC=1,79)
+        DO 8 N=1,NQUAX
+          WRITE(IFCH,100)N,(NINT(PARTX(K,N)),K=1,10),NINT(PARTA(N))
+100       FORMAT(3X,'N = ',I2,3X,10I5,3X,I5)
+ 8      CONTINUE
+      ENDIF
+
+C  N=1
+C  ---
+      IPART(1,1)=-1
+      IPART(1,2)=-1
+      IPART(1,3)=1
+
+C  N>1
+C  ---
+      DO 11 N=2,NQUAX
+        WRITE(IFMT,*)'SR UTPART: N=',N
+        IF ( ISH .GE. 95 ) THEN
+          WRITE(IFCH,*)' '
+          WRITE(IFCH,*)'N=',N
+        ENDIF
+        IPART(N,1)=-1
+        IPART(N,2)=-1
+        IPART(N,3)=N
+        II=3
+
+C  N=N1+N2, MULTIPLY PARTITIONS OF N1 AND N2
+C  -----------------------------------------
+        DO 12 N1=1,N/2
+          N2=N-N1
+          IF ( ISH .GE. 95 ) THEN
+            WRITE(IFCH,*)' '
+            WRITE(IFCH,*)'N1,N2=',N1,N2
+          ENDIF
+          K1MAX=-IPART(N1,1)
+          K2MAX=-IPART(N2,1)
+          IF ( K1MAX .LT. 0  .OR.  K2MAX .LT. 0 ) THEN
+            CALL UTSTOP('UTPART: KIMAX NEGATIVE                  ')
+          ENDIF
+          J1=2
+          DO 13 K1=1,K1MAX
+            L1=-IPART(N1,J1)
+            IF ( L1 .LT. 0 ) THEN
+              CALL UTSTOP('UTPART: L1 NEGATIVE (1)                 ')
+            ENDIF
+            J2=2
+            DO 15 K2=1,K2MAX
+              L2=-IPART(N2,J2)
+              IF ( L2 .LT. 0 ) THEN
+                CALL UTSTOP('UTPART: L2 NEGATIVE (1)                 ')
+              ENDIF
+
+              IPART(N,1)=IPART(N,1)-1
+              II=II+1
+              IF ( II .GT. JPAMAX ) GOTO 1000
+              IPART(N,II)=-L1-L2
+              II0=II+1
+              DO 17 I1=1,L1
+                II=II+1
+                IF ( II .GT. JPAMAX ) GOTO 1000
+                IPART(N,II)=IPART(N1,J1+I1)
+17            CONTINUE
+              DO 18 I2=1,L2
+                II=II+1
+                IF ( II .GT. JPAMAX ) GOTO 1000
+                IPART(N,II)=IPART(N2,J2+I2)
+18            CONTINUE
+
+              IF ( ISH .GE. 95 ) THEN
+                WRITE(IFCH,*)' '
+                WRITE(IFCH,*)'K1,K2=',K1,K2
+                WRITE(IFCH,103)N,-IPART(N,1),NINT(PARTA(N))
+103             FORMAT(/3X,'N = ',I2,'   P(N) = ',I4
+     *                                    ,'   P0(N) = ',I4/)
+                JY=2
+                DO 29 KY=1,-IPART(N,1)
+                  LY=-IPART(N,JY)
+                  WRITE(IFCH,102)KY,LY,(IPART(N,I)
+     *                                        ,I=JY+1,JY+MIN(20,LY))
+102               FORMAT(3X,I2,3X,I2,3X,20I3)
+                  JY=JY+LY+1
+29              CONTINUE
+              ENDIF
+
+              IPRI=0
+              DO 19 I=II0,II-1
+                DO 19 J=I+1,II
+                  IF ( IPART(N,I) .LT. IPART(N,J) ) THEN
+                    IPRI=1
+                    ISTI=IPART(N,I)
+                    IPART(N,I)=IPART(N,J)
+                    IPART(N,J)=ISTI
+                  ENDIF
+19            CONTINUE
+              IF ( IPRI.EQ.1 .AND. ISH.GE.95 ) THEN
+                WRITE(IFCH,*)' '
+                WRITE(IFCH,*)'SEQUENCE CHANGED'
+              ENDIF
+
+              JX=2
+              DO 28 KX=1,-IPART(N,1)-1
+                LX=-IPART(N,JX)
+                IF ( LX .LT. 0 ) THEN
+                 CALL UTSTOP('UTPART: LX NEGATIVE                     ')
+                ENDIF
+                IF ( LX .EQ. L1+L2 ) THEN
+                  DO 22 L=1,LX
+                    IF ( IPART(N,JX+L) .NE. IPART(N,II0-1+L) ) GOTO 23
+22                CONTINUE
+                  IF ( ISH .GE. 95 ) THEN
+                    WRITE(IFCH,*)' '
+                    WRITE(IFCH,*)'EXISTS ALREADY'
+                  ENDIF
+                  IPRI=1
+                  DO 33 I=II0-1,II
+                    IPART(N,I)=0
+33                CONTINUE
+                  II=II0-2
+                  IPART(N,1)=IPART(N,1)+1
+                  GOTO 30
+23                CONTINUE
+                ENDIF
+                JX=JX+LX+1
+28            CONTINUE
+30            CONTINUE
+
+              IF ( IPRI.EQ.1 .AND. ISH.GE.95 ) THEN
+                WRITE(IFCH,103)N,-IPART(N,1),NINT(PARTA(N))
+                JY=2
+                DO 32 KY=1,-IPART(N,1)
+                  LY=-IPART(N,JY)
+                  WRITE(IFCH,102)KY,LY,(IPART(N,I)
+     *                                ,I=JY+1,JY+MIN(20,LY))
+                  JY=JY+LY+1
+32              CONTINUE
+              ENDIF
+
+              J2=J2+L2+1
+15          CONTINUE
+            J1=J1+L1+1
+13        CONTINUE
+12      CONTINUE
+
+C  ORDERING
+C  --------
+        KM=-IPART(N,1)
+        IF ( KM .LT. 0 ) THEN
+          CALL UTSTOP('UTPART: KM NEGATIVE                     ')
+        ENDIF
+        J1=2
+        DO 20 K1=1,KM-1
+          L1=-IPART(N,J1)
+          IF ( L1 .LT. 0 ) THEN
+            CALL UTSTOP('UTPART: L1 NEGATIVE (2)                 ')
+          ENDIF
+          J2=2
+          DO 21 K2=1,KM
+            L2=-IPART(N,J2)
+            IF ( L2 .LT. 0 ) THEN
+              CALL UTSTOP('UTPART: L2 NEGATIVE (2)                 ')
+            ENDIF
+            IF ( K2 .LE. K1 ) GOTO 21
+            IF ( L1 .GT. L2 ) THEN
+              DO 24 L=1,L2+1
+                ISWAP(L)=IPART(N,J2-1+L)
+24            CONTINUE
+              DO 25 L=1,J2-J1
+                I=J2-L
+                IPART(N,I+L2+1)=IPART(N,I)
+25            CONTINUE
+              DO 26 L=1,L2+1
+                IPART(N,J1-1+L)=ISWAP(L)
+26            CONTINUE
+              L1=-IPART(N,J1)
+              IF ( L1 .LT. 0 ) THEN
+                CALL UTSTOP('UTPART: L1 NEGATIVE (2)                 ')
+              ENDIF
+              IF ( ISH .GE. 95 ) THEN
+                WRITE(IFCH,*)' '
+                WRITE(IFCH,*)'ORDER CHANGED.      K1,K2=',K1,K2
+                WRITE(IFCH,103)N,-IPART(N,1),NINT(PARTA(N))
+                JY=2
+                DO 31 KY=1,-IPART(N,1)
+                  LY=-IPART(N,JY)
+                  WRITE(IFCH,102)KY,LY,(IPART(N,I)
+     *                                ,I=JY+1,JY+MIN(20,LY))
+                  JY=JY+LY+1
+31              CONTINUE
+              ENDIF
+            ENDIF
+            J2=J2+L2+1
+21        CONTINUE
+          J1=J1+L1+1
+20      CONTINUE
+
+        IF ( ISH.GE.93 .AND. N.LE.8 ) THEN
+          WRITE(IFCH,113)('-',IC=1,79),N,-IPART(N,1),('-',IC=1,79)
+113       FORMAT(/1X,79A1/7X,'N = ',I2,'   --->   ',I4,
+     *                           ' PARTITIONS'/1X,79A1)
+          JY=2
+          DO 27 KY=1,-IPART(N,1)
+            LY=-IPART(N,JY)
+            WRITE(IFCH,112)KY,(IPART(N,I),I=JY+1,JY+MIN(20,LY))
+112         FORMAT(2X,I2,'. PARTITION:',3X,20I3)
+            JY=JY+LY+1
+27        CONTINUE
+        ENDIF
+        IF ( -IPART(N,1) .NE. NINT(PARTA(N)) ) THEN
+          CALL UTSTOP('UTPART: # OF PARTITIONS WRONG           ')
+        ENDIF
+11    CONTINUE
+
+      RETURN
+
+1000  WRITE(IFCH,*)' '
+      WRITE(IFCH,*)('*',J=1,79)
+      WRITE(IFCH,*)'***** N=',N
+      WRITE(IFCH,*)'***** JPAMAX=',JPAMAX
+      WRITE(IFCH,*)('*',J=1,79)
+      CALL UTSTOP('UTPART: DIMENSION JPAMAX TOO SMALL.     ')
+      RETURN
+      END
+C=======================================================================
+
+      FUNCTION UTPCM(A,B,C)
+
+C-----------------------------------------------------------------------
+C  CALCULATES CM MOMENTUM FOR A-->B+C
+C-----------------------------------------------------------------------
+      VAL=(A**2-B**2-C**2)**2-(2.*B*C)**2
+      IF ( VAL.LT.0. .AND. VAL.GT.-1.E-4 ) THEN
+        UTPCM=0.
+        RETURN
+      ENDIF
+      UTPCM=SQRT(VAL)/(2.*A)
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTQUAF(FU,N,X,Q,X0,X1,X2,X3)
+
+C-----------------------------------------------------------------------
+C  RETURNS Q(I) = INTEGRAL (X(1)->X(I)) FU(X) DX
+C  ACCELERATED VERSION BY      D. HECK, KFK    SEPT 20, 1993
+C-----------------------------------------------------------------------
+      PARAMETER (M=10)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      REAL Q(N),X(N)
+C-----------------------------------------------------------------------
+      QUOT = 1./FLOAT(M-1)
+      IF ( ISH .GE. 90 ) THEN
+        IF ( X1.LT.X0 .OR. X2.LT.X1 .OR. X3.LT.X2 ) THEN
+          CALL UTMSG('UTQUAF')
+          WRITE(IFCH,*)'   XI=',X0,X1,X2,X3
+          CALL UTMSGF
+        ENDIF
+      ENDIF
+      I1 = N/3
+      I2 = 2*N/3
+      FAC1 = (X1-X0)/FLOAT(I1-1)
+      DO 11 I=1,I1-1
+        X(I)=X0+(I-1.)*FAC1
+ 11   CONTINUE
+      FAC2 = (X2-X1)/FLOAT(I2-I1)
+      DO 12 I=I1,I2-1
+        X(I)=X1+FLOAT(I-I1)*FAC2
+ 12   CONTINUE
+      FAC3 = (X3-X2)/FLOAT(N-I2)
+      DO 13 I=I2,N
+        X(I)=X2+FLOAT(I-I2)*FAC3
+ 13   CONTINUE
+      Q(1) = 0.
+      Z = X(1)
+      AUXIL = FU(Z)
+      DO 2 I=2,N
+        FACT = (X(I) - Z) * QUOT
+        UTQUAD = AUXIL*0.5
+        DO 3 K=2,M-1
+          Z=Z+FACT
+          UTQUAD=FU(Z)+UTQUAD
+ 3      CONTINUE
+        Z = X(I)
+        AUXIL = FU(Z)
+        Q(I)=(AUXIL*0.5+UTQUAD)*FACT+Q(I-1)
+ 2    CONTINUE
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTQZ(N,X,Q1,Q2,X0,X1,X2,X3)
+
+C-----------------------------------------------------------------------
+C  RETURNS Q1(I) = INTEGRAL (X(1)->X(I)) FU1(X) DX  (SEA QUARK STRUCT)
+C  RETURNS Q2(I) = INTEGRAL (X(1)->X(I)) FU2(X) DX  (VAL QUARK STRUCT)
+C  ACCELERATED VERSION BY      D. HECK, KFK    OCT  20, 1993
+C-----------------------------------------------------------------------
+      PARAMETER (M=10)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CIPIO/   IPIO
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      REAL Q1(N),Q2(N),X(N)
+C-----------------------------------------------------------------------
+      IF ( ISH .GE. 90 ) THEN
+        IF ( X1.LT.X0 .OR. X2.LT.X1 .OR. X3.LT.X2 ) THEN
+          CALL UTMSG('UTQZ  ')
+          WRITE(IFCH,*)'   XI=',X0,X1,X2,X3
+          CALL UTMSGF
+        ENDIF
+      ENDIF
+      I1 = N/3
+      I2 = 2*N/3
+      FAC1 = (X1-X0)/FLOAT(I1-1)
+      DO 11 I=1,I1-1
+        X(I)=(I-1.)*FAC1+X0
+ 11   CONTINUE
+      FAC2 = (X2-X1)/FLOAT(I2-I1)
+      DO 12 I=I1,I2-1
+        X(I)=FLOAT(I-I1)*FAC2 +X1
+ 12   CONTINUE
+      FAC3 = (X3-X2)/FLOAT(N-I2)
+      DO 13 I=I2,N
+        X(I)=MIN( FLOAT(I-I2)*FAC3 +X2, 0.999999 )
+ 13   CONTINUE
+      XCUT2 = XCUT**2
+      QUOT= 1./FLOAT(M-1)
+      Q1(1)=0.
+      Q2(1)=0.
+      Z = X(1)
+      DENOMI= 1./SQRT(Z**2 + XCUT2)
+      IF ( IPIO .EQ. 0 ) THEN
+        AUXIL1 = (1.-Z)**8.05 *DENOMI
+        IF ( Z .NE. 0. ) THEN
+          AUXIL2 = (1.-Z)**3.46 * Z**.419
+     *                  * (2.74793064*Z+0.62452969)* DENOMI
+        ELSE
+          AUXIL2 = 0.
+        ENDIF
+        DO 3 I=2,N
+          FACT = (X(I) - Z) * QUOT
+          UTQUA1 = 0.5*AUXIL1
+          UTQUA2 = 0.5*AUXIL2
+          DO 2 K=2,M-1
+            Z=Z+FACT
+            DENOMI = 1./SQRT(Z**2 + XCUT2)
+            UTQUA1 = DENOMI * (1.-Z)**8.05 + UTQUA1
+            IF ( Z .NE. 0. ) THEN
+              UTQUA2 = (1.-Z)**3.46 * Z**.419
+     *                  * (2.74793064*Z+0.62452969) * DENOMI + UTQUA2
+            ENDIF
+ 2        CONTINUE
+          Z=X(I)
+          DENOMI = 1./SQRT(Z**2 + XCUT2)
+          AUXIL1 = DENOMI * (1.-Z)**8.05
+          Q1(I) = (AUXIL1*0.5+UTQUA1) * FACT*1.265 + Q1(I-1)
+          IF ( Z .NE. 0. ) THEN
+            AUXIL2=(1.-Z)**3.46 * Z**.419 * (2.74793064*Z+0.62452969)
+     *                  * DENOMI
+            Q2(I) = (AUXIL2*0.5+UTQUA2) * FACT + Q2(I-1)
+          ELSE
+            AUXIL2 = 0.
+            Q2(I) = FACT* UTQUA2 + Q2(I-1)
+          ENDIF
+ 3      CONTINUE
+
+      ELSE
+        CUTLOG= LOG(XCUT)
+        A0 = -5. + 6.6666667*XCUT2 - 0.53333333*XCUT2**2
+        BA0= A0*XCUT
+        A1 = 5. - 1.875*XCUT2
+        QB = 1. - A1*XCUT2
+        A2 = -3.3333333 +0.26666667*XCUT2
+        A3 = 1.25
+        A4 = -0.2
+        AUXIL1 = (1.-Z)**5.0 * DENOMI
+        IF ( Z .NE. 0. ) THEN
+          AUXIL2 = (1.-Z)**0.7 * Z**0.4 * DENOMI
+        ELSE
+          AUXIL2 = 0.
+        ENDIF
+        DO 5 I=2,N
+          FACT = (X(I) - Z) * QUOT
+          UTQUA1 = 0.5*AUXIL1
+          UTQUA2 = 0.5*AUXIL2
+          DO 4 K=2,M-1
+            Z=Z+FACT
+            DENOMI = 1./SQRT(Z**2 + XCUT2)
+            UTQUA1 = DENOMI * (1.-Z)**5.0 + UTQUA1
+            IF ( Z .NE. 0. ) THEN
+              UTQUA2 = DENOMI * (1.-Z)**0.7 * Z**0.4 + UTQUA2
+            ENDIF
+ 4        CONTINUE
+          Z = X(I)
+          ROOT = SQRT(Z**2 + XCUT2)
+          DENOMI= 1./ROOT
+CC        AUXIL1=DENOMI * (1.-Z)**5.0
+CC        Q1(I) = (AUXIL1*0.5+UTQUA1) * FACT*0.9 + Q1(I-1)
+          Q1(I) = ( QB * ( LOG(Z+ROOT) - CUTLOG ) - BA0
+     *           + ROOT * (A0+Z*(A1+Z*(A2+Z*(A3+Z*A4)))) ) *0.9
+          IF ( Z .NE. 0. ) THEN
+            AUXIL2 = DENOMI * (1.-Z)**0.7 * Z**0.4
+            Q2(I) = (AUXIL2*0.5+UTQUA2) * FACT*0.1730725 + Q2(I-1)
+          ELSE
+            AUXIL2 = 0.
+            Q2(I) = FACT*0.1730725 * UTQUA2 + Q2(I-1)
+          ENDIF
+ 5      CONTINUE
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTREMB(PROJ,TARG,II)
+
+C-----------------------------------------------------------------------
+C  REMEMBERS NEVT,NSTR,NPTL,PROJ,TARG
+C-----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXSTR=3000)
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CREMB/   PROJRE(2,NSI,NHA),TARGRE(2,NSI,NHA)
+     *                ,NEVTRE(2),NPTLRE(2),NSTRRE(2)
+      COMMON /CSTR/    PSTR(5,MXSTR),ROTSTR(3,MXSTR),XORSTR(4,MXSTR)
+     *                ,ICSTR(4,MXSTR),IORSTR(MXSTR),IRLSTR(MXSTR),NSTR
+      REAL PROJ(NSI,NHA),TARG(NSI,NHA)
+C-----------------------------------------------------------------------
+      NEVTRE(II)=NEVT
+      NSTRRE(II)=NSTR
+      NPTLRE(II)=NPTL
+      DO 56 M=1,NHA
+        SM=0.
+        DO 57 N=1,NSI
+          PROJRE(II,N,M)=PROJ(N,M)
+          SM=SM+PROJ(N,M)**2
+57      CONTINUE
+        IF ( M.GE.3 .AND. SM.LT.1.E-5 ) GOTO 58
+56    CONTINUE
+58    CONTINUE
+      DO 53 M=1,NHA
+        SM=0.
+        DO 54 N=1,NSI
+          TARGRE(II,N,M)=TARG(N,M)
+          SM=SM+TARG(N,M)**2
+54      CONTINUE
+        IF ( M.GE.3 .AND. SM.LT.1.E-5 ) GOTO 55
+53    CONTINUE
+55    CONTINUE
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTREPL(I,J)
+
+C-----------------------------------------------------------------------
+C  I IS REPLACED BY J IN /CPTL/
+C-----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /C2PTL/   AMIPTL(MXPTL),RADPTL(MXPTL),IAAPTL(MXPTL)
+C-----------------------------------------------------------------------
+      AMIPTL(I)  =AMIPTL(J)
+      IAAPTL(I)  =IAAPTL(J)
+      IBPTL(1,I) =IBPTL(1,J)
+      IBPTL(2,I) =IBPTL(2,J)
+      IBPTL(3,I) =IBPTL(3,J)
+      IBPTL(4,I) =IBPTL(4,J)
+      ICLPTL(I)  =ICLPTL(J)
+      IDPTL(I)   =IDPTL(J)
+      IFRPTL(1,I)=IFRPTL(1,J)
+      IFRPTL(2,I)=IFRPTL(2,J)
+      IORPTL(I)  =IORPTL(J)
+      ISTPTL(I)  =ISTPTL(J)
+      JORPTL(I)  =JORPTL(J)
+      NQJPTL(I)  =NQJPTL(J)
+      DO 1 K=1,5
+        PPTL(K,I)=PPTL(K,J)
+ 1    CONTINUE
+      RADPTL(I)  =RADPTL(J)
+      TIVPTL(1,I)=TIVPTL(1,J)
+      TIVPTL(2,I)=TIVPTL(2,J)
+      XORPTL(1,I)=XORPTL(1,J)
+      XORPTL(2,I)=XORPTL(2,J)
+      XORPTL(3,I)=XORPTL(3,J)
+      XORPTL(4,I)=XORPTL(4,J)
+
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTRESM(ICP1,ICP2,ICM1,ICM2,AMP,IDPR,IADJ,IRETEN)
+
+C-----------------------------------------------------------------------
+      PARAMETER (NFLAV=6)
+      INTEGER ICM(2),ICP(2),JCM(NFLAV,2),JCP(NFLAV,2)
+C-----------------------------------------------------------------------
+      ICM(1)=ICM1
+      ICM(2)=ICM2
+      ICP(1)=ICP1
+      ICP(2)=ICP2
+      CALL IDDECO(ICM,JCM)
+      CALL IDDECO(ICP,JCP)
+      DO 37 NF=1,NFLAV
+        JCP(NF,1)=JCP(NF,1)+JCM(NF,1)
+        JCP(NF,2)=JCP(NF,2)+JCM(NF,2)
+37    CONTINUE
+      CALL IDENCO(JCP,ICP,IRETEN)
+      IDP=IDTRA(ICP,0,0,3)
+      CALL IDRES(IDP,AMP,IDPR,IADJ)
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTREST(PROJ,TARG,II)
+
+C-----------------------------------------------------------------------
+      PARAMETER (NSI=6)
+      PARAMETER (NSIX=40)
+      PARAMETER (NHA=NSIX+2)
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /CREMB/   PROJRE(2,NSI,NHA),TARGRE(2,NSI,NHA)
+     *                ,NEVTRE(2),NPTLRE(2),NSTRRE(2)
+      REAL PROJ(NSI,NHA),TARG(NSI,NHA)
+C-----------------------------------------------------------------------
+      NEVT=NEVTRE(II)
+      NSTR=NSTRRE(II)
+      NPTL=NPTLRE(II)
+      DO 66 M=1,NHA
+        SM=0.
+        DO 67 N=1,NSI
+          PROJ(N,M)=PROJRE(II,N,M)
+          SM=SM+PROJRE(II,N,M)**2
+67      CONTINUE
+        IF ( M.GE.3 .AND. SM.LT.1.E-5 ) GOTO 68
+66    CONTINUE
+68    CONTINUE
+      DO 63 M=1,NHA
+        SM=0.
+        DO 64 N=1,NSI
+          TARG(N,M)=TARGRE(II,N,M)
+          SM=SM+TARGRE(II,N,M)**2
+64      CONTINUE
+        IF ( M.GE.3 .AND. SM.LT.1.E-5 ) GOTO 65
+63    CONTINUE
+65    CONTINUE
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTROTA(ISIG,AX,AY,AZ,X,Y,Z)
+
+C-----------------------------------------------------------------------
+C  PERFORMS A ROTATION
+C-----------------------------------------------------------------------
+      IF ( AZ .GE. 0. ) THEN
+        RX=AX
+        RY=AY
+        RZ=AZ
+      ELSE
+        RX=-AX
+        RY=-AY
+        RZ=-AZ
+      ENDIF
+      ALP=SIGN( ABS(UTACOS(RZ/SQRT(RZ**2+RY**2))), RY )
+      BET=SIGN( ABS(UTACOS(SQRT(RZ**2+RY**2)/SQRT(RZ**2+RY**2+RX**2)))
+     *                                                        , RX )
+      COSA=COS(ALP)
+      SINA=SIN(ALP)
+      COSB=COS(BET)
+      SINB=SIN(BET)
+      IF     ( ISIG .GT. 0 ) THEN
+        XS=X*COSB-Y*SINA*SINB-Z*COSA*SINB
+        YS=       Y*COSA     -Z*SINA
+        ZS=X*SINB+Y*SINA*COSB+Z*COSA*COSB
+      ELSEIF ( ISIG .LT. 0 ) THEN
+        XS= X*COSB            +Z*SINB
+        YS=-X*SINB*SINA+Y*COSA+Z*COSB*SINA
+        ZS=-X*SINB*COSA-Y*SINA+Z*COSB*COSA
+      ENDIF
+      X=XS
+      Y=YS
+      Z=ZS
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTROT2(ISIG,AX,AY,AZ,X,Y,Z)
+
+C-----------------------------------------------------------------------
+C  PERFORMS A ROTATION, DOUBLE PREC.
+C-----------------------------------------------------------------------
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+
+      DOUBLE PRECISION ALP,AUXIL1,AUXIL2,AX,AY,AZ,BET,COSA,COSB
+     *                ,RX,RY,RZ,SINA,SINB,X,XS,Y,YS,Z,ZS
+C-----------------------------------------------------------------------
+      IF ( AX**2.EQ.0.D0 .AND. AY**2.EQ.0.D0 .AND. AZ**2.EQ.0.D0 ) THEN
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,*)'AX**2,AY**2,AZ**2:',AX**2,AY**2,AZ**2
+        WRITE(IFCH,*)'AX,AY,AZ:',AX,AY,AZ
+        CALL UTSTOP('UTROT2: ZERO VECTOR.                    ')
+      ENDIF
+      IF ( AZ .GE. 0.D0 ) THEN
+        RX=AX
+        RY=AY
+        RZ=AZ
+      ELSE
+        RX=-AX
+        RY=-AY
+        RZ=-AZ
+      ENDIF
+      AUXIL1 = RZ**2+RY**2
+      IF ( AUXIL1 .NE. 0.D0 ) THEN
+        AUXIL2 = SQRT(AUXIL1)
+        ALP=SIGN( ABS(ACOS(RZ/AUXIL2)), RY )
+        BET=SIGN( ABS(ACOS( AUXIL2/SQRT(AUXIL1+RX**2) )), RX )
+        COSA=COS(ALP)
+        SINA=SIN(ALP)
+        COSB=COS(BET)
+        SINB=SIN(BET)
+      ELSE
+        COSA=0.D0
+        COSB=0.D0
+        SINA=1.D0
+        SINB=1.D0
+      ENDIF
+      IF     ( ISIG .GT. 0 ) THEN
+        XS=X*COSB-Y*SINA*SINB-Z*COSA*SINB
+        YS=       Y*COSA     -Z*SINA
+        ZS=X*SINB+Y*SINA*COSB+Z*COSA*COSB
+      ELSEIF ( ISIG .LT. 0 ) THEN
+        XS= X*COSB            +Z*SINB
+        YS=-X*SINB*SINA+Y*COSA+Z*COSB*SINA
+        ZS=-X*SINB*COSA-Y*SINA+Z*COSB*COSA
+      ENDIF
+      X=XS
+      Y=YS
+      Z=ZS
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTSTOP(TEXT)
+
+C-----------------------------------------------------------------------
+C  RETURNS ERROR MESSAGE AND STOPS EXECUTION
+C-----------------------------------------------------------------------
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      DOUBLE PRECISION SEEDC,SEEDI
+      COMMON /CSEED/   SEEDC,SEEDI
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /NEVNT/   NEVNT
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      CHARACTER STAR*1,TEXT*40
+      DATA STAR/'*'/
+C-----------------------------------------------------------------------
+      DO 1 I=1,2
+        IF ( I .EQ. 1 ) THEN
+          IFI=IFCH
+        ELSE
+          IFI=IFMT
+        ENDIF
+        WRITE(IFI,*)' '
+        WRITE(IFI,*)(STAR,J=1,77)
+        WRITE(IFI,*)'***** STOP IN ',TEXT
+CDH     WRITE(IFI,*)'***** CURRENT EVENT NUMBER: ',NREVT+1
+        WRITE(IFI,*)'***** CURRENT EVENT NUMBER: ',NEVNT
+        WRITE(IFI,*)'***** CURRENT PAGE NUMBER: ',IPAGE
+        WRITE(IFI,*)'***** INITIAL SEED FOR CURRENT EVENT:',SEEDI
+        WRITE(IFI,*)'***** RANDOM CALLS FOR CURRENT EVENT:',SEEDC
+        WRITE(IFI,*)(STAR,J=1,77)
+        WRITE(IFI,*)' '
+ 1    CONTINUE
+      STOP
+      END
+C=======================================================================
+
+      SUBROUTINE UTTAIN(I,X,Y,Z,T,N,IOPT)
+
+C-----------------------------------------------------------------------
+C  RETURNS INTERSECTION OF PTL-I-TRAJECTORY WITH TAUS-LINE.
+C  N=0 IF OK, N=1 IF PTL LIVES LATER, N=2 IF EARLIER,
+C    N=9 IF TIV1>TIV2, N=3,4,5 ELSE.
+C  IOPT=0: FORMATION TIME CONSIDERED, IOPT=1 IF NOT
+C-----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      DOUBLE PRECISION DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /CTTAUS/  DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      DOUBLE PRECISION DD,DERR,TI1,TI2,TT,VV,VVP,VVT,XO3,XO4,ZZ,ZZA
+      DATA DERR/1.D-2/
+C-----------------------------------------------------------------------
+      XO4=XORPTL(4,I)
+      IF     ( IOPT .EQ. 0 ) THEN
+        TI1=TIVPTL(1,I)
+      ELSEIF ( IOPT .EQ. 1 ) THEN
+        TI1=XO4
+      ENDIF
+      TI2=TIVPTL(2,I)
+
+      IF ( TI1 .GT. TI2 ) GOTO 1009
+      PPT4I = 1./PPTL(4,I)
+      VV=PPTL(3,I)*PPT4I
+      XO3=XORPTL(3,I)
+
+      ZZ=XO3+(TI2-XO4)*VV
+      IF ( TTAUS .LE. 0.D0 ) THEN
+        TZ=TTAUS
+      ELSE
+        IF     ( ZZ .LE. ZZT ) THEN
+          TZ=TTT+(ZZ-ZZT)*ZZT/TTT
+        ELSEIF ( ZZ .GE. ZZP ) THEN
+          TZ=TTP+(ZZ-ZZP)*ZZP/TTP
+        ELSE
+          IF ( TTAUS .GE. AINFIN ) THEN
+            TZ=TTAUS
+            IF ( ISH .GE. 90 ) THEN
+              CALL UTMSG('UTTAIN')
+              WRITE(IFCH,*)'*****  LARGE TTAUS; SET TZ=TTAUS'
+              WRITE(IFCH,*)'TTAUS=',TTAUS,'ZZ=',ZZ
+              CALL UTMSGF
+            ENDIF
+          ELSE
+C*DH        TZ=SQRT(TTAUS**2+ZZ**2)
+            IF ( TI2 .LT. 0.D0 ) GOTO 1002
+            IF ( TTAUS**2+ZZ**2 .GE. TI2**2 ) GOTO 1002
+            GOTO 1006
+          ENDIF
+        ENDIF
+      ENDIF
+      IF ( TZ .GE. TI2 ) GOTO 1002
+
+ 1006 ZZ=XO3+(TI1-XO4)*VV
+      IF ( TTAUS .GT. 0.D0 ) THEN
+        IF     ( ZZ .LE. ZZT ) THEN
+          TZ=TTT+(ZZ-ZZT)*ZZT/TTT
+        ELSEIF ( ZZ .GE. ZZP ) THEN
+          TZ=TTP+(ZZ-ZZP)*ZZP/TTP
+        ELSE
+          IF ( TTAUS .GE. AINFIN ) THEN
+            TZ=TTAUS
+            IF ( ISH .GE. 90 ) THEN
+              CALL UTMSG('UTTAIN')
+              WRITE(IFCH,*)'*****  LARGE TTAUS; SET TZ=TTAUS'
+              WRITE(IFCH,*)'TTAUS=',TTAUS,'ZZ=',ZZ
+              CALL UTMSGF
+            ENDIF
+          ELSE
+C*DH        TZ=SQRT(TTAUS**2+ZZ**2)
+            IF ( TI1 .LT. 0.D0 ) GOTO 1007
+            IF ( TTAUS**2+ZZ**2 .LE. TI1**2 ) GOTO 1001
+            GOTO 1007
+          ENDIF
+        ENDIF
+      ENDIF
+      IF ( TZ .LE. TI1 ) GOTO 1001
+
+ 1007 IF ( TTAUS .LE. 0.D0 ) THEN
+        TT=TTAUS
+        ZZ=XO3+(TT-XO4)*VV
+        IF ( TT.LT.TI1 .OR. TT.GE.TI2 ) GOTO 1031
+      ELSE
+        ZZA=XO3-XO4*VV
+        VVT=ZZT/TTT
+        TT=(TTT+(ZZA-ZZT)*VVT)/(1.D0-VV*VVT)
+        ZZ=XO3+(TT-XO4)*VV
+        IF ( ZZ .LE. ZZT ) THEN
+          IF ( TT.LT.TI1 .OR. TT.GE.TI2 ) GOTO 1032
+          GOTO 1000
+        ENDIF
+        VVP=ZZP/TTP
+        TT=(TTP+(ZZA-ZZP)*VVP)/(1.D0-VV*VVP)
+        ZZ=XO3+(TT-XO4)*VV
+        IF ( ZZ .GE. ZZP ) THEN
+          IF ( TT.LT.TI1 .OR. TT.GE.TI2 ) GOTO 1033
+          GOTO 1000
+        ENDIF
+        DD=1.D0-VV**2
+        IF ( DD .EQ. 0.D0 ) THEN
+          TT=-VV*(TTAUS**2+ZZA**2)*0.5D0/ZZA
+        ELSE
+          TT=(ZZA*VV+SQRT(ZZA**2+TTAUS**2*DD))/DD
+        ENDIF
+        ZZ=XO3+(TT-XO4)*VV
+        IF ( TT.LT.TI1 .OR. TT.GE.TI2 ) GOTO 1034
+        IF ( TT .LT. 0.D0 ) GOTO 1035
+        IF ( ZZ.LE.ZZT .OR. ZZ.GE.ZZP ) GOTO 1004
+        IF ( ABS(TTAUS**2-(TT+ZZ)*(TT-ZZ))
+     *                         .GT. DERR*TTAUS**2 ) GOTO 1005
+      ENDIF
+
+ 1000 N=0
+ 1011 T=TT
+      Z=ZZ
+      X=XORPTL(1,I)+(T-XO4)*PPTL(1,I)*PPT4I
+      Y=XORPTL(2,I)+(T-XO4)*PPTL(2,I)*PPT4I
+      RETURN
+ 1001 N=1
+      RETURN
+ 1002 N=2
+      RETURN
+ 1031 N=31
+      GOTO 1003
+
+ 1032 N=32
+      GOTO 1003
+ 1033 N=33
+      GOTO 1003
+ 1034 N=34
+ 1003 IF ( ABS(TT-TI1) .LE. DERR*ABS(TT) ) GOTO 1000
+      IF ( ABS(TT-TI2) .LE. DERR*ABS(TT) ) GOTO 1000
+      IF ( ISH .GE. 90 ) THEN
+        CALL UTMSG('UTTAIN')
+        WRITE(IFCH,*)'*****  TI1 < TT < TI2   NOT FULFILLED - ',N
+        WRITE(IFCH,*)SNGL(TI1),SNGL(TT),SNGL(TI2)
+        CALL UTMSGF
+      ENDIF
+      GOTO 1011
+ 1035 CONTINUE
+      IF ( ISH .GE. 90 ) THEN
+        CALL UTMSG('UTTAIN')
+        WRITE(IFCH,*)'*****  TT < 0     ( ',TT,' )'
+        WRITE(IFCH,*)'VV,DD:',VV,DD
+        WRITE(IFCH,*)'ZZA,TTAUS:',ZZA,TTAUS
+        CALL UTMSGF
+      ENDIF
+      GOTO 1011
+ 1004 N=4
+      IF ( ABS(ZZ-ZZT) .LE. DERR*ABS(ZZ) ) GOTO 1000
+      IF ( ABS(ZZ-ZZP) .LE. DERR*ABS(ZZ) ) GOTO 1000
+      IF ( ISH .GE. 90 ) THEN
+        CALL UTMSG('UTTAIN')
+        WRITE(IFCH,*)'*****  ZZT < ZZ < ZZP   NOT FULFILLED'
+        WRITE(IFCH,*)SNGL(ZZT),SNGL(ZZ),SNGL(ZZP)
+        CALL UTMSGF
+      ENDIF
+      GOTO 1011
+ 1005 N=5
+      IF ( ABS(TTAUS**2-(TT+ZZ)*(TT-ZZ)) .LE. DERR ) GOTO 1000
+      IF ( ISH .GE. 90 ) THEN
+        CALL UTMSG('UTTAIN')
+        WRITE(IFCH,*)'*****  TTAUS**2 .NE. (TT+ZZ)*(TT-ZZ)'
+        WRITE(IFCH,*)SNGL(TTAUS**2),SNGL((TT+ZZ)*(TT-ZZ))
+        CALL UTMSGF
+      ENDIF
+      GOTO 1011
+ 1009 N=9
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTTAIX(I,TAU,ZOR,TOR,Z,T)
+
+C-----------------------------------------------------------------------
+C  RETURNS INTERSECTION Z,T OF PTL-I-TRAJECTORY WITH HYPERBOLA H.
+C     H: (T-TOR)**2-(Z-ZOR)**2=TAU**2 .
+C     ZOR, TOR DOUBLE PRECISION.
+C-----------------------------------------------------------------------
+      PARAMETER (MXPTL=70000)
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+
+      DOUBLE PRECISION CC,DD,DERR,TOR,TORS,TT,TTAU,VV,ZOR,ZORS,ZZ
+C-----------------------------------------------------------------------
+      DERR=1.D-3
+      TTAU=TAU
+      ZORS=XORPTL(3,I)-ZOR
+      TORS=XORPTL(4,I)-TOR
+      VV=PPTL(3,I)/PPTL(4,I)
+      IF ( ABS(VV) .GT. 1.D0 ) THEN
+        IF ( ISH.GE.90 .AND. ABS(VV).GT.1.001D0 ) THEN
+          CALL UTMSG('UTTAIX')
+          WRITE(IFCH,*)'*****  !V! > 1'
+          WRITE(IFCH,*)'V: ',VV
+          WRITE(IFCH,*)'P,E: ',PPTL(3,I),PPTL(4,I)
+          CALL UTMSGF
+        ENDIF
+        VV=SIGN(1.D0,VV)
+      ENDIF
+      CC=ZORS-TORS*VV
+      DD=1.D0-VV**2
+      IF     ( DD.EQ.0.D0 .AND. CC.EQ.0.D0 ) THEN
+        IF ( TAU .EQ. 0. ) THEN
+          TT=0.
+        ELSE
+          TT=AINFIN
+        ENDIF
+        ZZ=TT
+        GOTO 1000
+      ELSEIF ( DD .EQ. 0.D0 ) THEN
+        TT=-(TTAU**2+CC**2)*0.5D0/(CC*VV)
+      ELSEIF ( DD .LT. 1.D-8 ) THEN
+        TT=-(TTAU**2+CC**2)*0.5D0/(CC*VV)
+        IF(ISH.GE.90)THEN
+          CALL UTMSG('UTTAIX')
+          WRITE(IFCH,*)'*****  DD = ',DD,'    TREATED AS ZERO'
+          CALL UTMSGF
+        ENDIF
+      ELSE
+        TT=(CC*VV+SQRT(CC**2+TTAU**2*DD))/DD
+      ENDIF
+      ZZ=CC+TT*VV
+      IF ( ABS(TTAU**2-(TT+ZZ)*(TT-ZZ)) .GT. DERR*TTAU**2   .AND.
+     *     ABS(TTAU**2-(TT+ZZ)*(TT-ZZ)) .GT. DERR           .AND.
+     *     TORS**2-ZORS**2 .LT. 1.D6                 ) THEN
+        IF ( ISH .GE. 90 ) THEN
+          CALL UTMSG('UTTAIX')
+          WRITE(IFCH,*)'*****  TTAU**2 .NE. (TT+ZZ)*(TT-ZZ)'
+          WRITE(IFCH,*)SNGL(TTAU**2),SNGL((TT+ZZ)*(TT-ZZ))
+          WRITE(IFCH,*)'TAU,T,Z:'
+          WRITE(IFCH,*)TAU,TT,ZZ
+          WRITE(IFCH,*)'#,ID(PTL):',I,IDPTL(I)
+          WRITE(IFCH,*)'ZOR,TOR(STR):',ZOR,TOR
+          WRITE(IFCH,*)'ZORS,TORS,P,E(PTL):'
+          WRITE(IFCH,*)SNGL(ZORS),SNGL(TORS),PPTL(3,I),PPTL(4,I)
+          CALL UTMSGF
+        ENDIF
+      ENDIF
+1000  Z=ZZ+ZOR
+      T=TT+TOR
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTTAUS(Z,SZ)
+
+C-----------------------------------------------------------------------
+C  RETURNS INV Z-COORD SZ CORRESPONDING TO TTAUS AND Z.
+C-----------------------------------------------------------------------
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      DOUBLE PRECISION DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /CTTAUS/  DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      DOUBLE PRECISION ZZ
+C-----------------------------------------------------------------------
+      IF ( TTAUS .LE. 0.D0 ) THEN
+        SZ=Z
+        RETURN
+      ENDIF
+      ZZ=Z
+      IF     ( ZZ .LE. ZZT ) THEN
+        SZ=TTAUS*DETAT+(ZZ-ZZT)/TTAR
+      ELSEIF ( ZZ .GE. ZZP ) THEN
+        SZ=TTAUS*DETAP+(ZZ-ZZP)/TPRO
+      ELSE
+        IF ( SNGL(TTAUS) .GE. AINFIN ) THEN
+          SZ=0.
+          IF ( ISH .GE. 90 ) THEN
+            CALL UTMSG('UTTAUS')
+            WRITE(IFCH,*)'*****  LARGE TTAUS; SET TZ=TTAUS, SZ=0'
+            WRITE(IFCH,*)'TTAUS=',TTAUS,'ZZ=',ZZ
+            CALL UTMSGF
+          ENDIF
+        ELSE
+          TZ=SQRT(TTAUS**2+ZZ**2)
+          SZ=TTAUS*0.5D0*LOG((TZ+ZZ)/(TZ-ZZ))
+        ENDIF
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+
+      SUBROUTINE UTTAUT(Z,TZ)
+
+C-----------------------------------------------------------------------
+C  RETURNS TZ = TIME    CORRESPONDING TO TTAUS AND Z
+C-----------------------------------------------------------------------
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      DOUBLE PRECISION DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /CTTAUS/  DETAP,DETAT,TPRO,TTAR,TTAUS,TTP,TTT
+     *                ,ZPRO,ZTAR,ZZP,ZZT
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      DOUBLE PRECISION ZZ
+C-----------------------------------------------------------------------
+      ZZ=Z
+      IF     ( ZZ .LE. ZZT ) THEN
+        TZ=TTT+(ZZ-ZZT)*ZZT/TTT
+      ELSEIF ( ZZ .GE. ZZP ) THEN
+        TZ=TTP+(ZZ-ZZP)*ZZP/TTP
+      ELSE
+        IF ( TTAUS .GE. AINFIN ) THEN
+          TZ=TTAUS
+          IF ( ISH .GE. 90 ) THEN
+            CALL UTMSG('UTTAUT')
+            WRITE(IFCH,*)'*****  LARGE TTAUS; SET TZ=TTAUS'
+            WRITE(IFCH,*)'TTAUS=',TTAUS,'ZZ=',ZZ
+            CALL UTMSGF
+          ENDIF
+        ELSE
+          TZ=SQRT(TTAUS**2+ZZ**2)
+        ENDIF
+      ENDIF
+      RETURN
+      END
+C=======================================================================
+C
+C     SUBROUTINE UTTIMA(TEXT)
+C
+C-----------------------------------------------------------------------
+C  RETURNS TIME.
+C-----------------------------------------------------------------------
+C     COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+C     COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+C    *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+C    *                ,YHAHA,YMXIMI,YPJTL
+C    *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+C    *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+C    *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+C    *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+C    *                ,MODSHO,NDECAX,NDECAY,NEVENT
+C     CHARACTER*15 TEXT
+C-----------------------------------------------------------------------
+C     TIMAA=0.
+C     TIMA=0.
+C-C   CALL TIMAX(TIMAA)
+C-C   CALL TIMAD(TIMA)
+C     IF ( TEXT .EQ. '               ' ) RETURN
+C     IF ( ISH .GE. 91 ) WRITE(IFCH,*)' '
+C     WRITE(IFCH,100)TEXT,TIMA/5.,TIMAA/5.
+C     IF ( ISH .GE. 91 ) WRITE(IFCH,*)' '
+C100  FORMAT(1X,A15,5X,F12.5,5X,F12.5)
+C     RETURN
+C     END
+C=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+C
+C     ENTRY UTTIMT
+C
+C-----------------------------------------------------------------------
+C-C   CALL TIMAST(1E10)
+C     RETURN
+C=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+C
+C     ENTRY UTTIMX(TIMAAX)
+C
+C-----------------------------------------------------------------------
+C     TIMAAX=0.
+C-C   CALL TIMAX(TIMAAX)
+C     RETURN
+C     END
+C=======================================================================
+
+      SUBROUTINE UTTUCL
+
+C----------------------------------------------------------------------
+C  FILLS ARRAY TUCL(1+K,1+N) CONTAINING THE LOGARITHM (LN) OF
+C  THE NUMBER OF K-TUPELS N_I WITH SUM_I N_I = N:
+C    TUCL(1+K,1+N)=LOG((N+1)*(N+2)...*(N+K-1)/(K-1)!)  K>=0 N>=0 .
+C  DOUBLE PRECISION TUCL.
+C----------------------------------------------------------------------
+      PARAMETER (KTUMAX=100)
+      PARAMETER (NTUMAX=100)
+      DOUBLE PRECISION TUCL
+      COMMON /CTUCL/   TUCL(1+KTUMAX,1+NTUMAX)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+
+      DOUBLE PRECISION DD,RELERR
+C----------------------------------------------------------------------
+      TUCL(1,1)=-100.D0
+      TUCL(2,1)=0.D0
+      DO 7 K=2,KTUMAX
+        TUCL(1+K,1)=0.D0
+ 7    CONTINUE
+      DO 2 N=2,NTUMAX+1
+        TUCL(1,N)=-100.D0
+        TUCL(2,N)=0.D0
+        DO 1 K=2,KTUMAX
+          DD=(N+K-2.D0)/(K-1.D0)
+          TUCL(1+K,N)=TUCL(K,N)+LOG(DD)
+ 1      CONTINUE
+ 2    CONTINUE
+
+      IF ( ISH .GE. 93 ) THEN
+        DO 5 K=2,50
+          DO 4 N=1,50
+            RELERR=ABS((EXP(TUCL(1+K,1+N))-EXP(TUCL(1+K,N))
+     *                  -EXP(TUCL(K,1+N)))/EXP(TUCL(1+K,1+N)))
+            IF ( RELERR .GT. 1.D-4 ) THEN
+              CALL UTMSG('UTTUCL')
+              WRITE(IFCH,*)'*****  TUCL(,) VIOLATES RECURRENCE RELATION'
+              WRITE(IFCH,*)SNGL(EXP(TUCL(1+K,1+N)))
+     *                    ,SNGL(EXP(TUCL(1+K,N))+EXP(TUCL(K,1+N)))
+              CALL UTMSGF
+            ENDIF
+ 4        CONTINUE
+ 5      CONTINUE
+        WRITE(IFCH,*)' '
+        WRITE(IFCH,121)('-',IC=1,79)
+121     FORMAT(1X,79A1)
+        WRITE(IFCH,*)'   DEGENERACY OF ENERGY LEVELS OF K-DIMENSIONAL'
+     *              ,' OSCILLATOR'
+        WRITE(IFCH,121)('-',IC=1,79)
+        WRITE(IFCH,*)'   =='
+     *          ,'     NUMBER OF K-TUPELS OF LENGTH N (SUM_I N_I = N)'
+        WRITE(IFCH,121)('-',IC=1,79)
+        WRITE(IFCH,*)'   K:','   1','   2','   3','   4'
+        WRITE(IFCH,121)('-',IC=1,79)
+        DO 8 N=0,50
+          WRITE(IFCH,*)N,(SNGL(EXP( TUCL(1+K,1+N) )),K=1,4)
+ 8      CONTINUE
+      ENDIF
+
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/VENUSDAT
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/VENUSDAT	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/VENUSDAT	(revision 4308)
@@ -0,0 +1,2050 @@
+     1  0.00000000E+00  0.00000000E+00  0.00000000E+00                          
+     2  1.70452541E-12  1.19787010E-06  5.63088827E-07                          
+     3  8.62876437E-12  9.86788291E-06  4.50457754E-06                          
+     4  2.72710743E-11  2.90643952E-05  1.30321933E-05                          
+     5  6.65795197E-11  5.40009882E-05  2.39042380E-05                          
+     6  1.38059120E-10  8.29189049E-05  3.63218455E-05                          
+     7  2.55771071E-10  1.15369075E-04  5.00806092E-05                          
+     8  4.36333747E-10  1.51136130E-04  6.50817721E-05                          
+     9  6.98921032E-10  1.90068467E-04  8.12559650E-05                          
+    10  1.06526388E-09  2.32044109E-04  9.85477334E-05                          
+    11  1.55964974E-09  2.76959607E-04  1.16910397E-04                          
+    12  2.20892160E-09  3.24724910E-04  1.36303618E-04                          
+    13  3.04247949E-09  3.75260503E-04  1.56692017E-04                          
+    14  4.09227907E-09  4.28495256E-04  1.78044143E-04                          
+    15  5.39283218E-09  4.84364989E-04  2.00331790E-04                          
+    16  6.98120650E-09  5.42811348E-04  2.23529444E-04                          
+    17  8.89702545E-09  6.03780923E-04  2.47613877E-04                          
+    18  1.11824684E-08  6.67224566E-04  2.72563812E-04                          
+    19  1.38822700E-08  7.33096812E-04  2.98359659E-04                          
+    20  1.70437208E-08  8.01355431E-04  3.24983296E-04                          
+    21  2.07166658E-08  8.71961028E-04  3.52417886E-04                          
+    22  2.49535060E-08  9.44876745E-04  3.80647736E-04                          
+    23  2.98091972E-08  1.02006797E-03  4.09658165E-04                          
+    24  3.53412498E-08  1.09750212E-03  4.39435396E-04                          
+    25  4.16097289E-08  1.17714842E-03  4.69966467E-04                          
+    26  4.86772543E-08  1.25897777E-03  5.01239150E-04                          
+    27  5.66089999E-08  1.34296254E-03  5.33241881E-04                          
+    28  6.54726940E-08  1.42907649E-03  5.65963707E-04                          
+    29  7.53386185E-08  1.51729464E-03  5.99394222E-04                          
+    30  8.62796091E-08  1.60759314E-03  6.33523531E-04                          
+    31  9.83710551E-08  1.69994922E-03  6.68342203E-04                          
+    32  1.11690899E-07  1.79434110E-03  7.03841238E-04                          
+    33  1.26319636E-07  1.89074787E-03  7.40012032E-04                          
+    34  1.42340316E-07  1.98914951E-03  7.76846349E-04                          
+    35  1.59838537E-07  2.08952677E-03  8.14336294E-04                          
+    36  1.78902455E-07  2.19186111E-03  8.52474291E-04                          
+    37  1.99622774E-07  2.29613472E-03  8.91253059E-04                          
+    38  2.22092752E-07  2.40233039E-03  9.30665594E-04                          
+    39  2.46408196E-07  2.51043154E-03  9.70705153E-04                          
+    40  2.72667467E-07  2.62042215E-03  1.01136524E-03                          
+    41  3.00971476E-07  2.73228672E-03  1.05263957E-03                          
+    42  3.31423683E-07  2.84601027E-03  1.09452210E-03                          
+    43  3.64130101E-07  2.96157827E-03  1.13700697E-03                          
+    44  3.99199292E-07  3.07897668E-03  1.18008852E-03                          
+    45  4.36742366E-07  3.19819184E-03  1.22376126E-03                          
+    46  4.76872985E-07  3.31921052E-03  1.26801988E-03                          
+    47  5.19707358E-07  3.44201986E-03  1.31285924E-03                          
+    48  5.65364245E-07  3.56660737E-03  1.35827434E-03                          
+    49  6.13964951E-07  3.69296090E-03  1.40426033E-03                          
+    50  6.65633332E-07  3.82106862E-03  1.45081250E-03                          
+    51  7.20495791E-07  3.95091904E-03  1.49792626E-03                          
+    52  7.78681277E-07  4.08250093E-03  1.54559718E-03                          
+    53  8.40321287E-07  4.21580339E-03  1.59382090E-03                          
+    54  9.05549863E-07  4.35081576E-03  1.64259323E-03                          
+    55  9.74503596E-07  4.48752765E-03  1.69191004E-03                          
+    56  1.04732162E-06  4.62592892E-03  1.74176732E-03                          
+    57  1.12414562E-06  4.76600966E-03  1.79216119E-03                          
+    58  1.20511981E-06  4.90776022E-03  1.84308782E-03                          
+    59  1.29039096E-06  5.05117114E-03  1.89454350E-03                          
+    60  1.38010840E-06  5.19623317E-03  1.94652461E-03                          
+    61  1.47442397E-06  5.34293729E-03  1.99902759E-03                          
+    62  1.57349208E-06  5.49127465E-03  2.05204898E-03                          
+    63  1.67746967E-06  5.64123659E-03  2.10558539E-03                          
+    64  1.78651622E-06  5.79281466E-03  2.15963353E-03                          
+    65  1.90079377E-06  5.94600054E-03  2.21419014E-03                          
+    66  2.02046687E-06  6.10078611E-03  2.26925205E-03                          
+    67  2.14570264E-06  6.25716340E-03  2.32481618E-03                          
+    68  2.27667072E-06  6.41512461E-03  2.38087947E-03                          
+    69  2.41354331E-06  6.57466206E-03  2.43743895E-03                          
+    70  2.55649513E-06  6.73576825E-03  2.49449171E-03                          
+    71  2.70570345E-06  6.89843581E-03  2.55203489E-03                          
+    72  2.86134807E-06  7.06265749E-03  2.61006569E-03                          
+    73  3.02361134E-06  7.22842620E-03  2.66858135E-03                          
+    74  3.19267814E-06  7.39573495E-03  2.72757919E-03                          
+    75  3.36873588E-06  7.56457689E-03  2.78705657E-03                          
+    76  3.55197451E-06  7.73494530E-03  2.84701087E-03                          
+    77  3.74258652E-06  7.90683354E-03  2.90743956E-03                          
+    78  3.94076694E-06  8.08023512E-03  2.96834014E-03                          
+    79  4.14671332E-06  8.25514364E-03  3.02971014E-03                          
+    80  4.36062575E-06  8.43155281E-03  3.09154715E-03                          
+    81  4.58270685E-06  8.60945644E-03  3.15384880E-03                          
+    82  4.81316179E-06  8.78884845E-03  3.21661275E-03                          
+    83  5.05219824E-06  8.96972284E-03  3.27983672E-03                          
+    84  5.30002643E-06  9.15207373E-03  3.34351844E-03                          
+    85  5.55685911E-06  9.33589530E-03  3.40765571E-03                          
+    86  5.82291156E-06  9.52118185E-03  3.47224633E-03                          
+    87  6.09840159E-06  9.70792773E-03  3.53728817E-03                          
+    88  6.38354953E-06  9.89612742E-03  3.60277910E-03                          
+    89  6.67857825E-06  1.00857754E-02  3.66871706E-03                          
+    90  6.98371315E-06  1.02768664E-02  3.73509999E-03                          
+    91  7.29918215E-06  1.04693950E-02  3.80192587E-03                          
+    92  7.62521569E-06  1.06633561E-02  3.86919273E-03                          
+    93  7.96204674E-06  1.08587444E-02  3.93689861E-03                          
+    94  8.30991080E-06  1.10555549E-02  4.00504158E-03                          
+    95  8.66904590E-06  1.12537826E-02  4.07361974E-03                          
+    96  9.03969257E-06  1.14534225E-02  4.14263122E-03                          
+    97  9.42209388E-06  1.16544698E-02  4.21207418E-03                          
+    98  9.81649542E-06  1.18569196E-02  4.28194679E-03                          
+    99  1.02231453E-05  1.20607671E-02  4.35224728E-03                          
+   100  1.06422942E-05  1.22660078E-02  4.42297387E-03                          
+   101  1.10741951E-05  1.24726370E-02  4.49412481E-03                          
+   102  1.15191039E-05  1.26806501E-02  4.56569839E-03                          
+   103  1.19772786E-05  1.28900426E-02  4.63769291E-03                          
+   104  1.24489800E-05  1.31008101E-02  4.71010670E-03                          
+   105  1.29344713E-05  1.33129482E-02  4.78293810E-03                          
+   106  1.34340183E-05  1.35264524E-02  4.85618549E-03                          
+   107  1.39478891E-05  1.37413186E-02  4.92984726E-03                          
+   108  1.44763545E-05  1.39575425E-02  5.00392181E-03                          
+   109  1.50196879E-05  1.41751198E-02  5.07840758E-03                          
+   110  1.55781650E-05  1.43940466E-02  5.15330302E-03                          
+   111  1.61520642E-05  1.46143186E-02  5.22860659E-03                          
+   112  1.67416661E-05  1.48359319E-02  5.30431680E-03                          
+   113  1.73472542E-05  1.50588825E-02  5.38043214E-03                          
+   114  1.79691143E-05  1.52831663E-02  5.45695115E-03                          
+   115  1.86075348E-05  1.55087795E-02  5.53387236E-03                          
+   116  1.92628064E-05  1.57357183E-02  5.61119433E-03                          
+   117  1.99352225E-05  1.59639787E-02  5.68891565E-03                          
+   118  2.06250791E-05  1.61935571E-02  5.76703491E-03                          
+   119  2.13326744E-05  1.64244497E-02  5.84555070E-03                          
+   120  2.20583093E-05  1.66566528E-02  5.92446167E-03                          
+   121  2.28022872E-05  1.68901628E-02  6.00376646E-03                          
+   122  2.35649140E-05  1.71249760E-02  6.08346371E-03                          
+   123  2.43464981E-05  1.73610889E-02  6.16355210E-03                          
+   124  2.51473502E-05  1.75984978E-02  6.24403033E-03                          
+   125  2.59677839E-05  1.78371994E-02  6.32489707E-03                          
+   126  2.68081150E-05  1.80771901E-02  6.40615106E-03                          
+   127  2.76686618E-05  1.83184666E-02  6.48779102E-03                          
+   128  2.85497452E-05  1.85610253E-02  6.56981569E-03                          
+   129  2.94516885E-05  1.88048630E-02  6.65222382E-03                          
+   130  3.03748178E-05  1.90499762E-02  6.73501419E-03                          
+   131  3.13194611E-05  1.92963618E-02  6.81818558E-03                          
+   132  3.22859496E-05  1.95440165E-02  6.90173677E-03                          
+   133  3.32746163E-05  1.97929369E-02  6.98566658E-03                          
+   134  3.42857973E-05  2.00431199E-02  7.06997382E-03                          
+   135  3.53198307E-05  2.02945624E-02  7.15465732E-03                          
+   136  3.63770575E-05  2.05472611E-02  7.23971592E-03                          
+   137  3.74578208E-05  2.08012130E-02  7.32514847E-03                          
+   138  3.85624665E-05  2.10564150E-02  7.41095385E-03                          
+   139  3.96913429E-05  2.13128640E-02  7.49713091E-03                          
+   140  4.08448006E-05  2.15705570E-02  7.58367856E-03                          
+   141  4.20231929E-05  2.18294909E-02  7.67059568E-03                          
+   142  4.32268756E-05  2.20896629E-02  7.75788118E-03                          
+   143  4.44562067E-05  2.23510700E-02  7.84553398E-03                          
+   144  4.57115470E-05  2.26137091E-02  7.93355302E-03                          
+   145  4.69932597E-05  2.28775775E-02  8.02193720E-03                          
+   146  4.83017103E-05  2.31426723E-02  8.11068550E-03                          
+   147  4.96372670E-05  2.34089906E-02  8.19979686E-03                          
+   148  5.10003004E-05  2.36765296E-02  8.28927026E-03                          
+   149  5.23911834E-05  2.39452865E-02  8.37910466E-03                          
+   150  5.38102917E-05  2.42152585E-02  8.46929905E-03                          
+   151  5.52580032E-05  2.44864429E-02  8.55985242E-03                          
+   152  5.67346984E-05  2.47588369E-02  8.65076379E-03                          
+   153  5.82407603E-05  2.50324379E-02  8.74203214E-03                          
+   154  5.97765742E-05  2.53072430E-02  8.83365652E-03                          
+   155  6.13425281E-05  2.55832498E-02  8.92563593E-03                          
+   156  6.29390122E-05  2.58604556E-02  9.01796943E-03                          
+   157  6.45664195E-05  2.61388576E-02  9.11065604E-03                          
+   158  6.62251451E-05  2.64184534E-02  9.20369484E-03                          
+   159  6.79155868E-05  2.66992403E-02  9.29708487E-03                          
+   160  6.96381448E-05  2.69812158E-02  9.39082519E-03                          
+   161  7.13932217E-05  2.72643774E-02  9.48491490E-03                          
+   162  7.31812227E-05  2.75487225E-02  9.57935307E-03                          
+   163  7.50025554E-05  2.78342486E-02  9.67413879E-03                          
+   164  7.68576297E-05  2.81209533E-02  9.76927116E-03                          
+   165  7.87468582E-05  2.84088341E-02  9.86474928E-03                          
+   166  8.06706558E-05  2.86978885E-02  9.96057227E-03                          
+   167  8.26294398E-05  2.89881142E-02  1.00567392E-02                          
+   168  8.46236302E-05  2.92795087E-02  1.01532493E-02                          
+   169  8.66536492E-05  2.95720696E-02  1.02501016E-02                          
+   170  8.87199216E-05  2.98657946E-02  1.03472954E-02                          
+   171  9.08228746E-05  3.01606814E-02  1.04448296E-02                          
+   172  9.29629377E-05  3.04567274E-02  1.05427035E-02                          
+   173  9.51405431E-05  3.07539306E-02  1.06409162E-02                          
+   174  9.73561253E-05  3.10522885E-02  1.07394670E-02                          
+   175  9.96101213E-05  3.13517989E-02  1.08383549E-02                          
+   176  1.01902970E-04  3.16524595E-02  1.09375792E-02                          
+   177  1.04235115E-04  3.19542680E-02  1.10371390E-02                          
+   178  1.06606998E-04  3.22572222E-02  1.11370336E-02                          
+   179  1.09019068E-04  3.25613200E-02  1.12372620E-02                          
+   180  1.11471772E-04  3.28665590E-02  1.13378236E-02                          
+   181  1.13965564E-04  3.31729371E-02  1.14387175E-02                          
+   182  1.16500896E-04  3.34804521E-02  1.15399429E-02                          
+   183  1.19078225E-04  3.37891018E-02  1.16414991E-02                          
+   184  1.21698011E-04  3.40988842E-02  1.17433853E-02                          
+   185  1.24360714E-04  3.44097970E-02  1.18456007E-02                          
+   186  1.27066798E-04  3.47218382E-02  1.19481445E-02                          
+   187  1.29816730E-04  3.50350057E-02  1.20510160E-02                          
+   188  1.32610977E-04  3.53492973E-02  1.21542145E-02                          
+   189  1.35450012E-04  3.56647110E-02  1.22577391E-02                          
+   190  1.38334306E-04  3.59812447E-02  1.23615891E-02                          
+   191  1.41264337E-04  3.62988963E-02  1.24657638E-02                          
+   192  1.44240583E-04  3.66176639E-02  1.25702625E-02                          
+   193  1.47263524E-04  3.69375454E-02  1.26750844E-02                          
+   194  1.50333643E-04  3.72585388E-02  1.27802288E-02                          
+   195  1.53451425E-04  3.75806421E-02  1.28856950E-02                          
+   196  1.56617360E-04  3.79038533E-02  1.29914822E-02                          
+   197  1.59831936E-04  3.82281705E-02  1.30975898E-02                          
+   198  1.63095648E-04  3.85535916E-02  1.32040170E-02                          
+   199  1.66408989E-04  3.88801148E-02  1.33107632E-02                          
+   200  1.69772458E-04  3.92077380E-02  1.34178276E-02                          
+   201  1.73186554E-04  3.95364594E-02  1.35252095E-02                          
+   202  1.76651780E-04  3.98662771E-02  1.36329083E-02                          
+   203  1.80168641E-04  4.01971891E-02  1.37409233E-02                          
+   204  1.83737643E-04  4.05291936E-02  1.38492537E-02                          
+   205  1.87359297E-04  4.08622886E-02  1.39578990E-02                          
+   206  1.91034114E-04  4.11964724E-02  1.40668584E-02                          
+   207  1.94762608E-04  4.15317430E-02  1.41761313E-02                          
+   208  1.98545298E-04  4.18680987E-02  1.42857169E-02                          
+   209  2.02382700E-04  4.22055375E-02  1.43956147E-02                          
+   210  2.06275338E-04  4.25440577E-02  1.45058240E-02                          
+   211  2.10223734E-04  4.28836574E-02  1.46163441E-02                          
+   212  2.14228416E-04  4.32243348E-02  1.47271744E-02                          
+   213  2.18289912E-04  4.35660882E-02  1.48383143E-02                          
+   214  2.22408753E-04  4.39089158E-02  1.49497630E-02                          
+   215  2.26585473E-04  4.42528157E-02  1.50615200E-02                          
+   216  2.30820606E-04  4.45977862E-02  1.51735846E-02                          
+   217  2.35114693E-04  4.49438257E-02  1.52859562E-02                          
+   218  2.39468272E-04  4.52909322E-02  1.53986341E-02                          
+   219  2.43881887E-04  4.56391042E-02  1.55116178E-02                          
+   220  2.48356084E-04  4.59883398E-02  1.56249066E-02                          
+   221  2.52891410E-04  4.63386374E-02  1.57384999E-02                          
+   222  2.57488415E-04  4.66899952E-02  1.58523971E-02                          
+   223  2.62147652E-04  4.70424116E-02  1.59665976E-02                          
+   224  2.66869676E-04  4.73958848E-02  1.60811007E-02                          
+   225  2.71655043E-04  4.77504133E-02  1.61959059E-02                          
+   226  2.76504313E-04  4.81059953E-02  1.63110126E-02                          
+   227  2.81418048E-04  4.84626291E-02  1.64264201E-02                          
+   228  2.86396812E-04  4.88203132E-02  1.65421279E-02                          
+   229  2.91441172E-04  4.91790458E-02  1.66581354E-02                          
+   230  2.96551698E-04  4.95388254E-02  1.67744419E-02                          
+   231  3.01728959E-04  4.98996503E-02  1.68910470E-02                          
+   232  3.06973530E-04  5.02615188E-02  1.70079500E-02                          
+   233  3.12285988E-04  5.06244295E-02  1.71251503E-02                          
+   234  3.17666909E-04  5.09883807E-02  1.72426474E-02                          
+   235  3.23116875E-04  5.13533708E-02  1.73604407E-02                          
+   236  3.28636470E-04  5.17193981E-02  1.74785297E-02                          
+   237  3.34226278E-04  5.20864613E-02  1.75969136E-02                          
+   238  3.39886887E-04  5.24545586E-02  1.77155921E-02                          
+   239  3.45618887E-04  5.28236885E-02  1.78345645E-02                          
+   240  3.51422871E-04  5.31938495E-02  1.79538303E-02                          
+   241  3.57299434E-04  5.35650400E-02  1.80733889E-02                          
+   242  3.63249172E-04  5.39372585E-02  1.81932397E-02                          
+   243  3.69272685E-04  5.43105035E-02  1.83133823E-02                          
+   244  3.75370574E-04  5.46847734E-02  1.84338160E-02                          
+   245  3.81543444E-04  5.50600667E-02  1.85545404E-02                          
+   246  3.87791902E-04  5.54363819E-02  1.86755548E-02                          
+   247  3.94116555E-04  5.58137176E-02  1.87968587E-02                          
+   248  4.00518015E-04  5.61920722E-02  1.89184516E-02                          
+   249  4.06996896E-04  5.65714442E-02  1.90403330E-02                          
+   250  4.13553812E-04  5.69518322E-02  1.91625024E-02                          
+   251  4.20189382E-04  5.73332347E-02  1.92849591E-02                          
+   252  4.26904227E-04  5.77156502E-02  1.94077026E-02                          
+   253  4.33698968E-04  5.80990773E-02  1.95307325E-02                          
+   254  4.40574231E-04  5.84835146E-02  1.96540483E-02                          
+   255  4.47530643E-04  5.88689605E-02  1.97776493E-02                          
+   256  4.54568833E-04  5.92554137E-02  1.99015351E-02                          
+   257  4.61689434E-04  5.96428727E-02  2.00257051E-02                          
+   258  4.68893079E-04  6.00313361E-02  2.01501589E-02                          
+   259  4.76180405E-04  6.04208025E-02  2.02748959E-02                          
+   260  4.83552051E-04  6.08112704E-02  2.03999157E-02                          
+   261  4.91008658E-04  6.12027386E-02  2.05252176E-02                          
+   262  4.98550868E-04  6.15952055E-02  2.06508013E-02                          
+   263  5.06179328E-04  6.19886698E-02  2.07766662E-02                          
+   264  5.13894686E-04  6.23831301E-02  2.09028117E-02                          
+   265  5.21697591E-04  6.27785850E-02  2.10292375E-02                          
+   266  5.29588697E-04  6.31750332E-02  2.11559430E-02                          
+   267  5.37568657E-04  6.35724732E-02  2.12829277E-02                          
+   268  5.45638129E-04  6.39709038E-02  2.14101911E-02                          
+   269  5.53797773E-04  6.43703236E-02  2.15377327E-02                          
+   270  5.62048249E-04  6.47707312E-02  2.16655521E-02                          
+   271  5.70390222E-04  6.51721253E-02  2.17936487E-02                          
+   272  5.78824357E-04  6.55745045E-02  2.19220221E-02                          
+   273  5.87351324E-04  6.59778676E-02  2.20506717E-02                          
+   274  5.95971793E-04  6.63822131E-02  2.21795972E-02                          
+   275  6.04686436E-04  6.67875399E-02  2.23087980E-02                          
+   276  6.13495930E-04  6.71938465E-02  2.24382736E-02                          
+   277  6.22400951E-04  6.76011317E-02  2.25680236E-02                          
+   278  6.31402178E-04  6.80093941E-02  2.26980475E-02                          
+   279  6.40500295E-04  6.84186325E-02  2.28283448E-02                          
+   280  6.49695985E-04  6.88288456E-02  2.29589151E-02                          
+   281  6.58989935E-04  6.92400321E-02  2.30897578E-02                          
+   282  6.68382834E-04  6.96521906E-02  2.32208726E-02                          
+   283  6.77875371E-04  7.00653201E-02  2.33522589E-02                          
+   284  6.87468242E-04  7.04794190E-02  2.34839163E-02                          
+   285  6.97162140E-04  7.08944863E-02  2.36158443E-02                          
+   286  7.06957764E-04  7.13105207E-02  2.37480425E-02                          
+   287  7.16855813E-04  7.17275208E-02  2.38805104E-02                          
+   288  7.26856990E-04  7.21454855E-02  2.40132476E-02                          
+   289  7.36962000E-04  7.25644135E-02  2.41462535E-02                          
+   290  7.47171548E-04  7.29843036E-02  2.42795278E-02                          
+   291  7.57486344E-04  7.34051545E-02  2.44130700E-02                          
+   292  7.67907098E-04  7.38269650E-02  2.45468797E-02                          
+   293  7.78434524E-04  7.42497339E-02  2.46809563E-02                          
+   294  7.89069338E-04  7.46734599E-02  2.48152995E-02                          
+   295  7.99812257E-04  7.50981419E-02  2.49499087E-02                          
+   296  8.10664001E-04  7.55237787E-02  2.50847837E-02                          
+   297  8.21625292E-04  7.59503690E-02  2.52199238E-02                          
+   298  8.32696855E-04  7.63779116E-02  2.53553288E-02                          
+   299  8.43879416E-04  7.68064054E-02  2.54909981E-02                          
+   300  8.55173704E-04  7.72358492E-02  2.56269312E-02                          
+   301  8.66580449E-04  7.76662418E-02  2.57631279E-02                          
+   302  8.78100386E-04  7.80975819E-02  2.58995875E-02                          
+   303  8.89734250E-04  7.85298685E-02  2.60363098E-02                          
+   304  9.01482777E-04  7.89631003E-02  2.61732942E-02                          
+   305  9.13346708E-04  7.93972762E-02  2.63105403E-02                          
+   306  9.25326785E-04  7.98323951E-02  2.64480478E-02                          
+   307  9.37423752E-04  8.02684557E-02  2.65858161E-02                          
+   308  9.49638355E-04  8.07054569E-02  2.67238449E-02                          
+   309  9.61971343E-04  8.11433976E-02  2.68621337E-02                          
+   310  9.74423466E-04  8.15822767E-02  2.70006821E-02                          
+   311  9.86995478E-04  8.20220929E-02  2.71394897E-02                          
+   312  9.99688133E-04  8.24628451E-02  2.72785560E-02                          
+   313  1.01250219E-03  8.29045323E-02  2.74178807E-02                          
+   314  1.02543840E-03  8.33471533E-02  2.75574633E-02                          
+   315  1.03849754E-03  8.37907070E-02  2.76973034E-02                          
+   316  1.05168036E-03  8.42351922E-02  2.78374006E-02                          
+   317  1.06498764E-03  8.46806079E-02  2.79777544E-02                          
+   318  1.07842013E-03  8.51269529E-02  2.81183645E-02                          
+   319  1.09197861E-03  8.55742261E-02  2.82592305E-02                          
+   320  1.10566385E-03  8.60224264E-02  2.84003519E-02                          
+   321  1.11947663E-03  8.64715528E-02  2.85417283E-02                          
+   322  1.13341772E-03  8.69216041E-02  2.86833593E-02                          
+   323  1.14748791E-03  8.73725792E-02  2.88252445E-02                          
+   324  1.16168796E-03  8.78244771E-02  2.89673836E-02                          
+   325  1.17601868E-03  8.82772967E-02  2.91097760E-02                          
+   326  1.19048083E-03  8.87310369E-02  2.92524214E-02                          
+   327  1.20507521E-03  8.91856966E-02  2.93953194E-02                          
+   328  1.21980261E-03  8.96412748E-02  2.95384696E-02                          
+   329  1.23466382E-03  9.00977703E-02  2.96818716E-02                          
+   330  1.24965963E-03  9.05551822E-02  2.98255250E-02                          
+   331  1.26479084E-03  9.10135093E-02  2.99694293E-02                          
+   332  1.28005824E-03  9.14727507E-02  3.01135843E-02                          
+   333  1.29546265E-03  9.19329052E-02  3.02579894E-02                          
+   334  1.31100485E-03  9.23939719E-02  3.04026443E-02                          
+   335  1.32668566E-03  9.28559496E-02  3.05475487E-02                          
+   336  1.34250587E-03  9.33188373E-02  3.06927020E-02                          
+   337  1.35846631E-03  9.37826340E-02  3.08381040E-02                          
+   338  1.37456777E-03  9.42473387E-02  3.09837542E-02                          
+   339  1.39081108E-03  9.47129503E-02  3.11296523E-02                          
+   340  1.40719704E-03  9.51794679E-02  3.12757978E-02                          
+   341  1.42372648E-03  9.56468903E-02  3.14221903E-02                          
+   342  1.44040021E-03  9.61152166E-02  3.15688296E-02                          
+   343  1.45721905E-03  9.65844457E-02  3.17157151E-02                          
+   344  1.47418383E-03  9.70545767E-02  3.18628465E-02                          
+   345  1.49129537E-03  9.75256084E-02  3.20102234E-02                          
+   346  1.50855451E-03  9.79975401E-02  3.21578455E-02                          
+   347  1.52596206E-03  9.84703705E-02  3.23057123E-02                          
+   348  1.54351886E-03  9.89440988E-02  3.24538235E-02                          
+   349  1.56122575E-03  9.94187239E-02  3.26021787E-02                          
+   350  1.57908356E-03  9.98942448E-02  3.27507775E-02                          
+   351  1.59709312E-03  1.00370661E-01  3.28996195E-02                          
+   352  1.61525529E-03  1.00847970E-01  3.30487044E-02                          
+   353  1.63357089E-03  1.01326173E-01  3.31980318E-02                          
+   354  1.65204077E-03  1.01805267E-01  3.33476012E-02                          
+   355  1.67066579E-03  1.02285253E-01  3.34974124E-02                          
+   356  1.68944678E-03  1.02766128E-01  3.36474649E-02                          
+   357  1.70838460E-03  1.03247892E-01  3.37977584E-02                          
+   358  1.72748010E-03  1.03730545E-01  3.39482925E-02                          
+   359  1.74673414E-03  1.04214084E-01  3.40990669E-02                          
+   360  1.76614756E-03  1.04698510E-01  3.42500811E-02                          
+   361  1.78572124E-03  1.05183820E-01  3.44013348E-02                          
+   362  1.80545602E-03  1.05670015E-01  3.45528276E-02                          
+   363  1.82535277E-03  1.06157093E-01  3.47045592E-02                          
+   364  1.84541236E-03  1.06645054E-01  3.48565291E-02                          
+   365  1.86563565E-03  1.07133895E-01  3.50087371E-02                          
+   366  1.88602351E-03  1.07623618E-01  3.51611827E-02                          
+   367  1.90657681E-03  1.08114219E-01  3.53138656E-02                          
+   368  1.92729643E-03  1.08605699E-01  3.54667854E-02                          
+   369  1.94818323E-03  1.09098057E-01  3.56199418E-02                          
+   370  1.96923809E-03  1.09591292E-01  3.57733344E-02                          
+   371  1.99046190E-03  1.10085402E-01  3.59269628E-02                          
+   372  2.01185553E-03  1.10580387E-01  3.60808266E-02                          
+   373  2.03341986E-03  1.11076246E-01  3.62349256E-02                          
+   374  2.05515579E-03  1.11572978E-01  3.63892593E-02                          
+   375  2.07706419E-03  1.12070582E-01  3.65438274E-02                          
+   376  2.09914595E-03  1.12569057E-01  3.66986295E-02                          
+   377  2.12140197E-03  1.13068403E-01  3.68536653E-02                          
+   378  2.14383314E-03  1.13568617E-01  3.70089344E-02                          
+   379  2.16644035E-03  1.14069701E-01  3.71644365E-02                          
+   380  2.18922449E-03  1.14571651E-01  3.73201711E-02                          
+   381  2.21218648E-03  1.15074469E-01  3.74761380E-02                          
+   382  2.23532720E-03  1.15578152E-01  3.76323368E-02                          
+   383  2.25864755E-03  1.16082700E-01  3.77887671E-02                          
+   384  2.28214846E-03  1.16588112E-01  3.79454286E-02                          
+   385  2.30583081E-03  1.17094387E-01  3.81023209E-02                          
+   386  2.32969551E-03  1.17601525E-01  3.82594437E-02                          
+   387  2.35374349E-03  1.18109523E-01  3.84167966E-02                          
+   388  2.37797564E-03  1.18618382E-01  3.85743793E-02                          
+   389  2.40239289E-03  1.19128101E-01  3.87321914E-02                          
+   390  2.42699615E-03  1.19638678E-01  3.88902325E-02                          
+   391  2.45178633E-03  1.20150113E-01  3.90485024E-02                          
+   392  2.47676436E-03  1.20662405E-01  3.92070006E-02                          
+   393  2.50193116E-03  1.21175554E-01  3.93657269E-02                          
+   394  2.52728766E-03  1.21689557E-01  3.95246808E-02                          
+   395  2.55283477E-03  1.22204415E-01  3.96838621E-02                          
+   396  2.57857342E-03  1.22720126E-01  3.98432703E-02                          
+   397  2.60450455E-03  1.23236690E-01  4.00029052E-02                          
+   398  2.63062909E-03  1.23754106E-01  4.01627663E-02                          
+   399  2.65694797E-03  1.24272372E-01  4.03228534E-02                          
+   400  2.68346212E-03  1.24791489E-01  4.04831661E-02                          
+   401  2.71017248E-03  1.25311455E-01  4.06437041E-02                          
+   402  2.73708000E-03  1.25832269E-01  4.08044669E-02                          
+   403  2.76418560E-03  1.26353931E-01  4.09654543E-02                          
+   404  2.79149024E-03  1.26876440E-01  4.11266660E-02                          
+   405  2.81899486E-03  1.27399794E-01  4.12881015E-02                          
+   406  2.84670040E-03  1.27923994E-01  4.14497606E-02                          
+   407  2.87460782E-03  1.28449037E-01  4.16116428E-02                          
+   408  2.90271806E-03  1.28974925E-01  4.17737480E-02                          
+   409  2.93103208E-03  1.29501654E-01  4.19360756E-02                          
+   410  2.95955083E-03  1.30029226E-01  4.20986254E-02                          
+   411  2.98827527E-03  1.30557638E-01  4.22613971E-02                          
+   412  3.01720635E-03  1.31086891E-01  4.24243903E-02                          
+   413  3.04634503E-03  1.31616982E-01  4.25876046E-02                          
+   414  3.07569228E-03  1.32147912E-01  4.27510398E-02                          
+   415  3.10524906E-03  1.32679680E-01  4.29146954E-02                          
+   416  3.13501633E-03  1.33212285E-01  4.30785712E-02                          
+   417  3.16499506E-03  1.33745726E-01  4.32426668E-02                          
+   418  3.19518623E-03  1.34280001E-01  4.34069819E-02                          
+   419  3.22559079E-03  1.34815112E-01  4.35715161E-02                          
+   420  3.25620972E-03  1.35351056E-01  4.37362692E-02                          
+   421  3.28704401E-03  1.35887832E-01  4.39012407E-02                          
+   422  3.31809462E-03  1.36425441E-01  4.40664304E-02                          
+   423  3.34936253E-03  1.36963881E-01  4.42318379E-02                          
+   424  3.38084872E-03  1.37503151E-01  4.43974628E-02                          
+   425  3.41255417E-03  1.38043251E-01  4.45634364E-02                          
+   426  3.44447987E-03  1.38584180E-01  4.47294989E-02                          
+   427  3.47662681E-03  1.39125937E-01  4.48957779E-02                          
+   428  3.50899596E-03  1.39668812E-01  4.50622731E-02                          
+   429  3.54158832E-03  1.40212230E-01  4.52289840E-02                          
+   430  3.57440488E-03  1.40756474E-01  4.53959105E-02                          
+   431  3.60744664E-03  1.41301544E-01  4.55630522E-02                          
+   432  3.64071457E-03  1.41847437E-01  4.57304087E-02                          
+   433  3.67420970E-03  1.42394154E-01  4.58979797E-02                          
+   434  3.70793300E-03  1.42941693E-01  4.60657649E-02                          
+   435  3.74188548E-03  1.43490055E-01  4.62335957E-02                          
+   436  3.77606814E-03  1.44039237E-01  4.64018045E-02                          
+   437  3.81048198E-03  1.44589240E-01  4.65702264E-02                          
+   438  3.84512802E-03  1.45140062E-01  4.67388613E-02                          
+   439  3.88000725E-03  1.45691322E-01  4.69077086E-02                          
+   440  3.91512069E-03  1.46243772E-01  4.70767681E-02                          
+   441  3.95046934E-03  1.46797040E-01  4.72460395E-02                          
+   442  3.98605422E-03  1.47351124E-01  4.74155225E-02                          
+   443  4.02187633E-03  1.47906024E-01  4.75852166E-02                          
+   444  4.05793671E-03  1.48461739E-01  4.77551217E-02                          
+   445  4.09423636E-03  1.49018268E-01  4.79252373E-02                          
+   446  4.13077630E-03  1.49575611E-01  4.80955631E-02                          
+   447  4.16755755E-03  1.50133766E-01  4.82660988E-02                          
+   448  4.20458114E-03  1.50692733E-01  4.84368442E-02                          
+   449  4.24184809E-03  1.51252512E-01  4.86077988E-02                          
+   450  4.27935942E-03  1.51813100E-01  4.87789623E-02                          
+   451  4.31711617E-03  1.52374499E-01  4.89503344E-02                          
+   452  4.35511936E-03  1.52936706E-01  4.91219148E-02                          
+   453  4.39337002E-03  1.53499722E-01  4.92937032E-02                          
+   454  4.43186919E-03  1.54063545E-01  4.94656993E-02                          
+   455  4.47061790E-03  1.54628175E-01  4.96379026E-02                          
+   456  4.50961719E-03  1.55193611E-01  4.98103130E-02                          
+   457  4.54886809E-03  1.55759853E-01  4.99829300E-02                          
+   458  4.58837165E-03  1.56326898E-01  5.01557534E-02                          
+   459  4.62812890E-03  1.56894748E-01  5.03287827E-02                          
+   460  4.66814089E-03  1.57463401E-01  5.05020178E-02                          
+   461  4.70840866E-03  1.58032856E-01  5.06754583E-02                          
+   462  4.74893326E-03  1.58603113E-01  5.08491039E-02                          
+   463  4.78971574E-03  1.59174171E-01  5.10229542E-02                          
+   464  4.83075714E-03  1.59746029E-01  5.11970089E-02                          
+   465  4.87205853E-03  1.60318686E-01  5.13712679E-02                          
+   466  4.91362094E-03  1.60892142E-01  5.15457306E-02                          
+   467  4.95544544E-03  1.61466397E-01  5.17203967E-02                          
+   468  4.99753308E-03  1.62041448E-01  5.18952659E-02                          
+   469  5.03988491E-03  1.62617297E-01  5.20703380E-02                          
+   470  5.08250201E-03  1.63193941E-01  5.22456126E-02                          
+   471  5.12538542E-03  1.63771380E-01  5.24210893E-02                          
+   472  5.16853622E-03  1.64349614E-01  5.25967680E-02                          
+   473  5.21195547E-03  1.64928642E-01  5.27726481E-02                          
+   474  5.25564422E-03  1.65508463E-01  5.29487295E-02                          
+   475  5.29960356E-03  1.66089076E-01  5.31250118E-02                          
+   476  5.34383454E-03  1.66670481E-01  5.33014948E-02                          
+   477  5.38833825E-03  1.67252677E-01  5.34781774E-02                          
+   478  5.43311574E-03  1.67835663E-01  5.36550605E-02                          
+   479  5.47816811E-03  1.68419438E-01  5.38321433E-02                          
+   480  5.52349641E-03  1.69004003E-01  5.40094253E-02                          
+   481  5.56910174E-03  1.69589354E-01  5.41869064E-02                          
+   482  5.61498516E-03  1.70175495E-01  5.43645861E-02                          
+   483  5.66114776E-03  1.70762422E-01  5.45424643E-02                          
+   484  5.70759061E-03  1.71350135E-01  5.47205404E-02                          
+   485  5.75431482E-03  1.71938633E-01  5.48988143E-02                          
+   486  5.80132145E-03  1.72527916E-01  5.50772857E-02                          
+   487  5.84861159E-03  1.73117983E-01  5.52559541E-02                          
+   488  5.89618634E-03  1.73708834E-01  5.54348193E-02                          
+   489  5.94404678E-03  1.74300467E-01  5.56138810E-02                          
+   490  5.99219401E-03  1.74892882E-01  5.57931388E-02                          
+   491  6.04062911E-03  1.75486079E-01  5.59725925E-02                          
+   492  6.08935318E-03  1.76080056E-01  5.61522417E-02                          
+   493  6.13836732E-03  1.76674813E-01  5.63320860E-02                          
+   494  6.18767262E-03  1.77270349E-01  5.65121253E-02                          
+   495  6.23727019E-03  1.77866664E-01  5.66923592E-02                          
+   496  6.28716112E-03  1.78463757E-01  5.68727873E-02                          
+   497  6.33734652E-03  1.79061626E-01  5.70534094E-02                          
+   498  6.38782748E-03  1.79660273E-01  5.72342251E-02                          
+   499  6.43860512E-03  1.80259695E-01  5.74152341E-02                          
+   500  6.48968055E-03  1.80859893E-01  5.75964361E-02                          
+   501  6.54105485E-03  1.81460865E-01  5.77778308E-02                          
+   502  6.59272916E-03  1.82062611E-01  5.79594179E-02                          
+   503  6.64470458E-03  1.82665130E-01  5.81411970E-02                          
+   504  6.69698222E-03  1.83268421E-01  5.83231679E-02                          
+   505  6.74956319E-03  1.83872485E-01  5.85049171E-02                          
+   506  6.80244862E-03  1.84477319E-01  5.86872781E-02                          
+   507  6.85563961E-03  1.85082924E-01  5.88698300E-02                          
+   508  6.90913729E-03  1.85688277E-01  5.90525726E-02                          
+   509  6.96294277E-03  1.86295437E-01  5.92355055E-02                          
+   510  7.01705719E-03  1.86903367E-01  5.94186284E-02                          
+   511  7.07148165E-03  1.87512064E-01  5.96019411E-02                          
+   512  7.12621729E-03  1.88121529E-01  5.97854432E-02                          
+   513  7.18126522E-03  1.88731761E-01  5.99691343E-02                          
+   514  7.23662659E-03  1.89342760E-01  6.01530142E-02                          
+   515  7.29230251E-03  1.89954524E-01  6.03370826E-02                          
+   516  7.34829411E-03  1.90567053E-01  6.05213392E-02                          
+   517  7.40460253E-03  1.91180346E-01  6.07057836E-02                          
+   518  7.46122890E-03  1.91794402E-01  6.08904155E-02                          
+   519  7.51817436E-03  1.92409222E-01  6.10752346E-02                          
+   520  7.57544003E-03  1.93024804E-01  6.12602406E-02                          
+   521  7.63302706E-03  1.93641148E-01  6.14454332E-02                          
+   522  7.69093659E-03  1.94258253E-01  6.16308120E-02                          
+   523  7.74916974E-03  1.94876118E-01  6.18163769E-02                          
+   524  7.80772768E-03  1.95494743E-01  6.20021273E-02                          
+   525  7.86661153E-03  1.96114127E-01  6.21880631E-02                          
+   526  7.92582244E-03  1.96734270E-01  6.23741839E-02                          
+   527  7.98536157E-03  1.97355170E-01  6.25604894E-02                          
+   528  8.04523004E-03  1.97976827E-01  6.27469794E-02                          
+   529  8.10542902E-03  1.98599241E-01  6.29336534E-02                          
+   530  8.16595965E-03  1.99222411E-01  6.31205111E-02                          
+   531  8.22682308E-03  1.99846336E-01  6.33075523E-02                          
+   532  8.28802047E-03  2.00471015E-01  6.34947767E-02                          
+   533  8.34955296E-03  2.01096448E-01  6.36821838E-02                          
+   534  8.41142172E-03  2.01722635E-01  6.38697735E-02                          
+   535  8.47362789E-03  2.02349574E-01  6.40575454E-02                          
+   536  8.53617264E-03  2.02977265E-01  6.42454992E-02                          
+   537  8.59905713E-03  2.03605708E-01  6.44336346E-02                          
+   538  8.66228251E-03  2.04234901E-01  6.46219512E-02                          
+   539  8.72584995E-03  2.04864844E-01  6.48104487E-02                          
+   540  8.78976061E-03  2.05495537E-01  6.49991269E-02                          
+   541  8.85401565E-03  2.06126979E-01  6.51879855E-02                          
+   542  8.91861624E-03  2.06759168E-01  6.53770240E-02                          
+   543  8.98356354E-03  2.07392105E-01  6.55662422E-02                          
+   544  9.04885873E-03  2.08025789E-01  6.57556398E-02                          
+   545  9.11450297E-03  2.08660219E-01  6.59452165E-02                          
+   546  9.18049743E-03  2.09295395E-01  6.61349720E-02                          
+   547  9.24684329E-03  2.09931316E-01  6.63249058E-02                          
+   548  9.31354172E-03  2.10567981E-01  6.65150178E-02                          
+   549  9.38059389E-03  2.11205390E-01  6.67053077E-02                          
+   550  9.44800097E-03  2.11843541E-01  6.68957750E-02                          
+   551  9.51576415E-03  2.12482436E-01  6.70864195E-02                          
+   552  9.58388460E-03  2.13122072E-01  6.72772409E-02                          
+   553  9.65236351E-03  2.13762449E-01  6.74682389E-02                          
+   554  9.72120204E-03  2.14403566E-01  6.76592572E-02                          
+   555  9.79040139E-03  2.15045424E-01  6.78505916E-02                          
+   556  9.85996274E-03  2.15687837E-01  6.80421014E-02                          
+   557  9.92988727E-03  2.16331138E-01  6.82337863E-02                          
+   558  1.00001762E-02  2.16975177E-01  6.84256461E-02                          
+   559  1.00708306E-02  2.17619953E-01  6.86176805E-02                          
+   560  1.01418518E-02  2.18265465E-01  6.88098890E-02                          
+   561  1.02132409E-02  2.18911712E-01  6.90022714E-02                          
+   562  1.02849992E-02  2.19558695E-01  6.91948274E-02                          
+   563  1.03571277E-02  2.20206412E-01  6.93875567E-02                          
+   564  1.04296278E-02  2.20854864E-01  6.95804589E-02                          
+   565  1.05025005E-02  2.21504048E-01  6.97735338E-02                          
+   566  1.05757472E-02  2.22153965E-01  6.99667810E-02                          
+   567  1.06493689E-02  2.22804613E-01  7.01602002E-02                          
+   568  1.07233669E-02  2.23455993E-01  7.03537911E-02                          
+   569  1.07977424E-02  2.24108104E-01  7.05475529E-02                          
+   570  1.08724966E-02  2.24760945E-01  7.07414862E-02                          
+   571  1.09476307E-02  2.25414515E-01  7.09355903E-02                          
+   572  1.10231459E-02  2.26068814E-01  7.11298649E-02                          
+   573  1.10990433E-02  2.26723840E-01  7.13243095E-02                          
+   574  1.11753243E-02  2.27379594E-01  7.15189240E-02                          
+   575  1.12519899E-02  2.28036076E-01  7.17137080E-02                          
+   576  1.13290415E-02  2.28693283E-01  7.19086612E-02                          
+   577  1.14064802E-02  2.29351216E-01  7.21037832E-02                          
+   578  1.14843072E-02  2.30009875E-01  7.22990738E-02                          
+   579  1.15625237E-02  2.30669257E-01  7.24945327E-02                          
+   580  1.16411310E-02  2.31329364E-01  7.26901595E-02                          
+   581  1.17201302E-02  2.31990193E-01  7.28859539E-02                          
+   582  1.17995226E-02  2.32651745E-01  7.30819156E-02                          
+   583  1.18793094E-02  2.33314019E-01  7.32780442E-02                          
+   584  1.19594917E-02  2.33977014E-01  7.34743396E-02                          
+   585  1.20400709E-02  2.34640729E-01  7.36708013E-02                          
+   586  1.21210481E-02  2.35305165E-01  7.38674290E-02                          
+   587  1.22024246E-02  2.35970320E-01  7.40642225E-02                          
+   588  1.22842015E-02  2.36636193E-01  7.42611813E-02                          
+   589  1.23663802E-02  2.37302785E-01  7.44583053E-02                          
+   590  1.24489617E-02  2.37970093E-01  7.46555940E-02                          
+   591  1.25319474E-02  2.38638119E-01  7.48530472E-02                          
+   592  1.26153384E-02  2.39306861E-01  7.50506645E-02                          
+   593  1.26991360E-02  2.39976318E-01  7.52484457E-02                          
+   594  1.27833414E-02  2.40646491E-01  7.54463903E-02                          
+   595  1.28679558E-02  2.41317377E-01  7.56444982E-02                          
+   596  1.29529805E-02  2.41988977E-01  7.58427689E-02                          
+   597  1.30384167E-02  2.42661290E-01  7.60412022E-02                          
+   598  1.31242657E-02  2.43334316E-01  7.62397978E-02                          
+   599  1.32105285E-02  2.44008053E-01  7.64385553E-02                          
+   600  1.32972066E-02  2.44682501E-01  7.66374744E-02                          
+   601  1.33843010E-02  2.45357660E-01  7.68365547E-02                          
+   602  1.34718131E-02  2.46033528E-01  7.70357961E-02                          
+   603  1.35597441E-02  2.46710106E-01  7.72351981E-02                          
+   604  1.36480952E-02  2.47387392E-01  7.74347604E-02                          
+   605  1.37368677E-02  2.48065386E-01  7.76344828E-02                          
+   606  1.38260628E-02  2.48744087E-01  7.78343649E-02                          
+   607  1.39156817E-02  2.49423495E-01  7.80344064E-02                          
+   608  1.40057256E-02  2.50103609E-01  7.82346069E-02                          
+   609  1.40961959E-02  2.50784428E-01  7.84349662E-02                          
+   610  1.41870937E-02  2.51465952E-01  7.86354839E-02                          
+   611  1.42784203E-02  2.52148180E-01  7.88361598E-02                          
+   612  1.43701769E-02  2.52831111E-01  7.90369934E-02                          
+   613  1.44623649E-02  2.53514745E-01  7.92379845E-02                          
+   614  1.45549853E-02  2.54199081E-01  7.94391327E-02                          
+   615  1.46480395E-02  2.54884118E-01  7.96404378E-02                          
+   616  1.47415288E-02  2.55569856E-01  7.98418995E-02                          
+   617  1.48354543E-02  2.56256295E-01  8.00435173E-02                          
+   618  1.49298173E-02  2.56943433E-01  8.02452910E-02                          
+   619  1.50246190E-02  2.57631269E-01  8.04472202E-02                          
+   620  1.51198608E-02  2.58319804E-01  8.06493047E-02                          
+   621  1.52155439E-02  2.59008576E-01  8.08515441E-02                          
+   622  1.53116694E-02  2.59698501E-01  8.10539381E-02                          
+   623  1.54082387E-02  2.60389123E-01  8.12562623E-02                          
+   624  1.55052531E-02  2.61080439E-01  8.14589625E-02                          
+   625  1.56027137E-02  2.61772451E-01  8.16618163E-02                          
+   626  1.57006219E-02  2.62465157E-01  8.18648235E-02                          
+   627  1.57989788E-02  2.63158557E-01  8.20679836E-02                          
+   628  1.58977858E-02  2.63852649E-01  8.22712963E-02                          
+   629  1.59970440E-02  2.64547434E-01  8.24747614E-02                          
+   630  1.60967549E-02  2.65242911E-01  8.26783785E-02                          
+   631  1.61969195E-02  2.65939078E-01  8.28821473E-02                          
+   632  1.62975393E-02  2.66635936E-01  8.30860675E-02                          
+   633  1.63986153E-02  2.67333483E-01  8.32901387E-02                          
+   634  1.65001490E-02  2.68031719E-01  8.34943606E-02                          
+   635  1.66021415E-02  2.68730644E-01  8.36987330E-02                          
+   636  1.67045942E-02  2.69430256E-01  8.39032554E-02                          
+   637  1.68075082E-02  2.70130555E-01  8.41079276E-02                          
+   638  1.69108849E-02  2.70831541E-01  8.43127493E-02                          
+   639  1.70147255E-02  2.71533212E-01  8.45177200E-02                          
+   640  1.71190313E-02  2.72235568E-01  8.47228395E-02                          
+   641  1.72238036E-02  2.72938608E-01  8.49281075E-02                          
+   642  1.73290436E-02  2.73642332E-01  8.51335236E-02                          
+   643  1.74347525E-02  2.74346739E-01  8.53390876E-02                          
+   644  1.75409317E-02  2.75051828E-01  8.55447990E-02                          
+   645  1.76475825E-02  2.75757599E-01  8.57506576E-02                          
+   646  1.77547060E-02  2.76464050E-01  8.59566631E-02                          
+   647  1.78623036E-02  2.77171182E-01  8.61628150E-02                          
+   648  1.79703766E-02  2.77878993E-01  8.63691132E-02                          
+   649  1.80789261E-02  2.78587483E-01  8.65755572E-02                          
+   650  1.81879536E-02  2.79296651E-01  8.67821468E-02                          
+   651  1.82974602E-02  2.80006497E-01  8.69888816E-02                          
+   652  1.84074472E-02  2.80717020E-01  8.71957612E-02                          
+   653  1.85179160E-02  2.81428218E-01  8.74027854E-02                          
+   654  1.86288677E-02  2.82140092E-01  8.76099539E-02                          
+   655  1.87403037E-02  2.82852640E-01  8.78172663E-02                          
+   656  1.88522252E-02  2.83565863E-01  8.80247222E-02                          
+   657  1.89646336E-02  2.84279759E-01  8.82323214E-02                          
+   658  1.90775300E-02  2.84994327E-01  8.84400636E-02                          
+   659  1.91909159E-02  2.85709568E-01  8.86479483E-02                          
+   660  1.93047923E-02  2.86425479E-01  8.88559753E-02                          
+   661  1.94191607E-02  2.87142061E-01  8.90641442E-02                          
+   662  1.95340224E-02  2.87859313E-01  8.92724548E-02                          
+   663  1.96493785E-02  2.88577234E-01  8.94809067E-02                          
+   664  1.97652304E-02  2.89295823E-01  8.96894995E-02                          
+   665  1.98815793E-02  2.90015079E-01  8.98982329E-02                          
+   666  1.99984266E-02  2.90735003E-01  9.01071066E-02                          
+   667  2.01157736E-02  2.91455593E-01  9.03161203E-02                          
+   668  2.02336214E-02  2.92176848E-01  9.05252737E-02                          
+   669  2.03519715E-02  2.92898768E-01  9.07345663E-02                          
+   670  2.04708250E-02  2.93621353E-01  9.09439980E-02                          
+   671  2.05901833E-02  2.94344600E-01  9.11535683E-02                          
+   672  2.07100476E-02  2.95068510E-01  9.13632769E-02                          
+   673  2.08304193E-02  2.95793082E-01  9.15731235E-02                          
+   674  2.09512996E-02  2.96518315E-01  9.17831077E-02                          
+   675  2.10726899E-02  2.97244208E-01  9.19932293E-02                          
+   676  2.11945913E-02  2.97970761E-01  9.22034879E-02                          
+   677  2.13170052E-02  2.98697973E-01  9.24138831E-02                          
+   678  2.14399330E-02  2.99425844E-01  9.26244147E-02                          
+   679  2.15633758E-02  3.00154371E-01  9.28350823E-02                          
+   680  2.16873349E-02  3.00883555E-01  9.30458855E-02                          
+   681  2.18118117E-02  3.01613396E-01  9.32568240E-02                          
+   682  2.19368075E-02  3.02343891E-01  9.34678976E-02                          
+   683  2.20623235E-02  3.03075041E-01  9.36791058E-02                          
+   684  2.21883611E-02  3.03806844E-01  9.38904484E-02                          
+   685  2.23149215E-02  3.04539301E-01  9.41019250E-02                          
+   686  2.24420059E-02  3.05272409E-01  9.43135352E-02                          
+   687  2.25696159E-02  3.06006169E-01  9.45252788E-02                          
+   688  2.26977525E-02  3.06740580E-01  9.47371553E-02                          
+   689  2.28264171E-02  3.07475640E-01  9.49491645E-02                          
+   690  2.29556110E-02  3.08211350E-01  9.51613061E-02                          
+   691  2.30853355E-02  3.08947708E-01  9.53735796E-02                          
+   692  2.32155919E-02  3.09684713E-01  9.55859848E-02                          
+   693  2.33463815E-02  3.10422365E-01  9.57985213E-02                          
+   694  2.34777055E-02  3.11160663E-01  9.60111888E-02                          
+   695  2.36095654E-02  3.11899607E-01  9.62239869E-02                          
+   696  2.37419623E-02  3.12639195E-01  9.64369154E-02                          
+   697  2.38748976E-02  3.13379426E-01  9.66499738E-02                          
+   698  2.40083726E-02  3.14120300E-01  9.68631619E-02                          
+   699  2.41423885E-02  3.14861817E-01  9.70764792E-02                          
+   700  2.42769467E-02  3.15603974E-01  9.72899255E-02                          
+   701  2.44120485E-02  3.16346772E-01  9.75035005E-02                          
+   702  2.45476951E-02  3.17090210E-01  9.77172037E-02                          
+   703  2.46838879E-02  3.17834287E-01  9.79310349E-02                          
+   704  2.48206282E-02  3.18579001E-01  9.81449936E-02                          
+   705  2.49579173E-02  3.19324353E-01  9.83590797E-02                          
+   706  2.50957564E-02  3.20070341E-01  9.85732927E-02                          
+   707  2.52341469E-02  3.20816965E-01  9.87876322E-02                          
+   708  2.53730900E-02  3.21564223E-01  9.90020980E-02                          
+   709  2.55125872E-02  3.22312116E-01  9.92166898E-02                          
+   710  2.56526396E-02  3.23060641E-01  9.94314070E-02                          
+   711  2.57932486E-02  3.23809799E-01  9.96462496E-02                          
+   712  2.59344155E-02  3.24559588E-01  9.98612170E-02                          
+   713  2.60761415E-02  3.25310008E-01  1.00076309E-01                          
+   714  2.62184281E-02  3.26061058E-01  1.00291525E-01                          
+   715  2.63612764E-02  3.26812736E-01  1.00506865E-01                          
+   716  2.65046879E-02  3.27565043E-01  1.00722329E-01                          
+   717  2.66486637E-02  3.28317977E-01  1.00937915E-01                          
+   718  2.67932052E-02  3.29071537E-01  1.01153625E-01                          
+   719  2.69383138E-02  3.29825723E-01  1.01369457E-01                          
+   720  2.70839906E-02  3.30580533E-01  1.01585411E-01                          
+   721  2.72302371E-02  3.31335968E-01  1.01801487E-01                          
+   722  2.73770545E-02  3.32092025E-01  1.02017684E-01                          
+   723  2.75244441E-02  3.32848704E-01  1.02234003E-01                          
+   724  2.76724073E-02  3.33606004E-01  1.02449621E-01                          
+   725  2.78209452E-02  3.34363925E-01  1.02666174E-01                          
+   726  2.79700594E-02  3.35122465E-01  1.02882848E-01                          
+   727  2.81197509E-02  3.35881624E-01  1.03099641E-01                          
+   728  2.82700213E-02  3.36641400E-01  1.03316554E-01                          
+   729  2.84208716E-02  3.37401793E-01  1.03534439E-01                          
+   730  2.85723034E-02  3.38160944E-01  1.03751595E-01                          
+   731  2.87243178E-02  3.38922554E-01  1.03968870E-01                          
+   732  2.88769162E-02  3.39684777E-01  1.04186263E-01                          
+   733  2.90300999E-02  3.40447614E-01  1.04403774E-01                          
+   734  2.91838702E-02  3.41211063E-01  1.04621402E-01                          
+   735  2.93382283E-02  3.41977052E-01  1.04839147E-01                          
+   736  2.94931757E-02  3.42741737E-01  1.05057009E-01                          
+   737  2.96487136E-02  3.43507031E-01  1.05274987E-01                          
+   738  2.98048433E-02  3.44272934E-01  1.05493080E-01                          
+   739  2.99615661E-02  3.45039445E-01  1.05711290E-01                          
+   740  3.01188834E-02  3.45806562E-01  1.05929614E-01                          
+   741  3.02767964E-02  3.46574285E-01  1.06148054E-01                          
+   742  3.04353064E-02  3.47342612E-01  1.06366608E-01                          
+   743  3.05944148E-02  3.48111544E-01  1.06585276E-01                          
+   744  3.07541229E-02  3.48881078E-01  1.06804058E-01                          
+   745  3.09144319E-02  3.49651215E-01  1.07022953E-01                          
+   746  3.10753432E-02  3.50421952E-01  1.07241962E-01                          
+   747  3.12368581E-02  3.51193289E-01  1.07461083E-01                          
+   748  3.13989779E-02  3.51965225E-01  1.07680317E-01                          
+   749  3.15617039E-02  3.52737760E-01  1.07899663E-01                          
+   750  3.17250374E-02  3.53510891E-01  1.08119120E-01                          
+   751  3.18889797E-02  3.54284619E-01  1.08338689E-01                          
+   752  3.20535321E-02  3.55058941E-01  1.08558369E-01                          
+   753  3.22186960E-02  3.55833858E-01  1.08778160E-01                          
+   754  3.23844726E-02  3.56609368E-01  1.08998060E-01                          
+   755  3.25508632E-02  3.57385470E-01  1.09218071E-01                          
+   756  3.27178692E-02  3.58162163E-01  1.09438192E-01                          
+   757  3.28854918E-02  3.58939446E-01  1.09658421E-01                          
+   758  3.30537324E-02  3.59717318E-01  1.09878760E-01                          
+   759  3.32225923E-02  3.60495778E-01  1.10099207E-01                          
+   760  3.33920727E-02  3.61274826E-01  1.10319762E-01                          
+   761  3.35621750E-02  3.62054459E-01  1.10540425E-01                          
+   762  3.37329006E-02  3.62834677E-01  1.10761195E-01                          
+   763  3.39042506E-02  3.63615480E-01  1.10982073E-01                          
+   764  3.40762264E-02  3.64396865E-01  1.11203057E-01                          
+   765  3.42488293E-02  3.65178832E-01  1.11424148E-01                          
+   766  3.44220607E-02  3.65961380E-01  1.11645344E-01                          
+   767  3.45959217E-02  3.66744507E-01  1.11866647E-01                          
+   768  3.47704138E-02  3.67528213E-01  1.12088054E-01                          
+   769  3.49455383E-02  3.68312497E-01  1.12309567E-01                          
+   770  3.51212964E-02  3.69097357E-01  1.12531184E-01                          
+   771  3.52976894E-02  3.69882793E-01  1.12752906E-01                          
+   772  3.54747187E-02  3.70668803E-01  1.12974731E-01                          
+   773  3.56523855E-02  3.71455387E-01  1.13196660E-01                          
+   774  3.58306912E-02  3.72242542E-01  1.13418692E-01                          
+   775  3.60096370E-02  3.73030269E-01  1.13640827E-01                          
+   776  3.61892244E-02  3.73818565E-01  1.13863064E-01                          
+   777  3.63694545E-02  3.74607431E-01  1.14085403E-01                          
+   778  3.65503286E-02  3.75396864E-01  1.14307844E-01                          
+   779  3.67318482E-02  3.76186864E-01  1.14530387E-01                          
+   780  3.69140144E-02  3.76977429E-01  1.14753030E-01                          
+   781  3.70968287E-02  3.77768559E-01  1.14975774E-01                          
+   782  3.72802922E-02  3.78560252E-01  1.15198619E-01                          
+   783  3.74644063E-02  3.79352507E-01  1.15421563E-01                          
+   784  3.76491724E-02  3.80145323E-01  1.15644606E-01                          
+   785  3.78345916E-02  3.80938699E-01  1.15867749E-01                          
+   786  3.80206653E-02  3.81732634E-01  1.16090991E-01                          
+   787  3.82073949E-02  3.82527126E-01  1.16314331E-01                          
+   788  3.83947815E-02  3.83322174E-01  1.16537770E-01                          
+   789  3.85828266E-02  3.84117777E-01  1.16761306E-01                          
+   790  3.87715313E-02  3.84913935E-01  1.16984939E-01                          
+   791  3.89608971E-02  3.85710645E-01  1.17208669E-01                          
+   792  3.91509252E-02  3.86507907E-01  1.17432496E-01                          
+   793  3.93416168E-02  3.87305719E-01  1.17656419E-01                          
+   794  3.95329734E-02  3.88104080E-01  1.17880439E-01                          
+   795  3.97249962E-02  3.88902989E-01  1.18104553E-01                          
+   796  3.99176865E-02  3.89702445E-01  1.18328763E-01                          
+   797  4.01110457E-02  3.90502447E-01  1.18553067E-01                          
+   798  4.03050749E-02  3.91302992E-01  1.18777466E-01                          
+   799  4.04997755E-02  3.92104081E-01  1.19001959E-01                          
+   800  4.06951488E-02  3.92905712E-01  1.19226546E-01                          
+   801  4.08911961E-02  3.93707883E-01  1.19451226E-01                          
+   802  4.10879187E-02  3.94510593E-01  1.19675999E-01                          
+   803  4.12853179E-02  3.95313842E-01  1.19900865E-01                          
+   804  4.14833950E-02  3.96117627E-01  1.20125823E-01                          
+   805  4.16821513E-02  3.96921948E-01  1.20350872E-01                          
+   806  4.18815880E-02  3.97726803E-01  1.20576013E-01                          
+   807  4.20817065E-02  3.98532191E-01  1.20801245E-01                          
+   808  4.22825081E-02  3.99338111E-01  1.21026568E-01                          
+   809  4.24839940E-02  4.00144561E-01  1.21251981E-01                          
+   810  4.26861656E-02  4.00951540E-01  1.21477485E-01                          
+   811  4.28890241E-02  4.01759047E-01  1.21703077E-01                          
+   812  4.30925708E-02  4.02567081E-01  1.21928759E-01                          
+   813  4.32968071E-02  4.03375639E-01  1.22154530E-01                          
+   814  4.35017342E-02  4.04184721E-01  1.22380390E-01                          
+   815  4.37073534E-02  4.04994326E-01  1.22606337E-01                          
+   816  4.39136660E-02  4.05804452E-01  1.22832372E-01                          
+   817  4.41206733E-02  4.06615098E-01  1.23058495E-01                          
+   818  4.43283765E-02  4.07426262E-01  1.23284705E-01                          
+   819  4.45367771E-02  4.08237943E-01  1.23511001E-01                          
+   820  4.47458761E-02  4.09050140E-01  1.23737383E-01                          
+   821  4.49556750E-02  4.09862851E-01  1.23963852E-01                          
+   822  4.51661751E-02  4.10676075E-01  1.24190405E-01                          
+   823  4.53773775E-02  4.11489810E-01  1.24417044E-01                          
+   824  4.55892837E-02  4.12304056E-01  1.24643768E-01                          
+   825  4.58018948E-02  4.13118810E-01  1.24870576E-01                          
+   826  4.60152122E-02  4.13934072E-01  1.25097468E-01                          
+   827  4.62292372E-02  4.14749840E-01  1.25324443E-01                          
+   828  4.64439710E-02  4.15566112E-01  1.25551502E-01                          
+   829  4.66594149E-02  4.16382887E-01  1.25778644E-01                          
+   830  4.68755702E-02  4.17200164E-01  1.26005868E-01                          
+   831  4.70924382E-02  4.18017941E-01  1.26233174E-01                          
+   832  4.73100201E-02  4.18836216E-01  1.26460562E-01                          
+   833  4.75283173E-02  4.19654989E-01  1.26688031E-01                          
+   834  4.77473311E-02  4.20474258E-01  1.26915582E-01                          
+   835  4.79670626E-02  4.21294021E-01  1.27143212E-01                          
+   836  4.81875132E-02  4.22114277E-01  1.27370923E-01                          
+   837  4.84086841E-02  4.22935024E-01  1.27598714E-01                          
+   838  4.86305767E-02  4.23756261E-01  1.27826584E-01                          
+   839  4.88531922E-02  4.24577986E-01  1.28054533E-01                          
+   840  4.90765319E-02  4.25400199E-01  1.28282561E-01                          
+   841  4.93005970E-02  4.26222896E-01  1.28510667E-01                          
+   842  4.95253889E-02  4.27046078E-01  1.28738851E-01                          
+   843  4.97509088E-02  4.27869741E-01  1.28967113E-01                          
+   844  4.99771579E-02  4.28693885E-01  1.29195451E-01                          
+   845  5.02041376E-02  4.29518509E-01  1.29423867E-01                          
+   846  5.04318491E-02  4.30343610E-01  1.29652358E-01                          
+   847  5.06602938E-02  4.31169187E-01  1.29880926E-01                          
+   848  5.08894727E-02  4.31995239E-01  1.30109569E-01                          
+   849  5.11193873E-02  4.32821763E-01  1.30338288E-01                          
+   850  5.13500388E-02  4.33648759E-01  1.30567081E-01                          
+   851  5.15814285E-02  4.34476225E-01  1.30795949E-01                          
+   852  5.18135576E-02  4.35304158E-01  1.31024891E-01                          
+   853  5.20464274E-02  4.36132559E-01  1.31253906E-01                          
+   854  5.22800391E-02  4.36961424E-01  1.31482995E-01                          
+   855  5.25143941E-02  4.37790752E-01  1.31712156E-01                          
+   856  5.27494936E-02  4.38620542E-01  1.31941390E-01                          
+   857  5.29853388E-02  4.39450792E-01  1.32170697E-01                          
+   858  5.32219310E-02  4.40281500E-01  1.32400074E-01                          
+   859  5.34592715E-02  4.41112665E-01  1.32629524E-01                          
+   860  5.36973615E-02  4.41944285E-01  1.32859044E-01                          
+   861  5.39362023E-02  4.42776358E-01  1.33088635E-01                          
+   862  5.41757952E-02  4.43608883E-01  1.33318295E-01                          
+   863  5.44161413E-02  4.44441858E-01  1.33548026E-01                          
+   864  5.46572420E-02  4.45275281E-01  1.33777826E-01                          
+   865  5.48990985E-02  4.46109150E-01  1.34007695E-01                          
+   866  5.51417121E-02  4.46943465E-01  1.34237633E-01                          
+   867  5.53850840E-02  4.47778223E-01  1.34467638E-01                          
+   868  5.56292155E-02  4.48613422E-01  1.34697712E-01                          
+   869  5.58741078E-02  4.49449060E-01  1.34927853E-01                          
+   870  5.61197622E-02  4.50285137E-01  1.35158061E-01                          
+   871  5.63661799E-02  4.51121649E-01  1.35388335E-01                          
+   872  5.66133622E-02  4.51958596E-01  1.35618676E-01                          
+   873  5.68613103E-02  4.52795976E-01  1.35849083E-01                          
+   874  5.71100255E-02  4.53633786E-01  1.36079555E-01                          
+   875  5.73595090E-02  4.54472026E-01  1.36310092E-01                          
+   876  5.76097620E-02  4.55310692E-01  1.36540694E-01                          
+   877  5.78607858E-02  4.56149784E-01  1.36771361E-01                          
+   878  5.81125817E-02  4.56989300E-01  1.37002091E-01                          
+   879  5.83651508E-02  4.57829237E-01  1.37232884E-01                          
+   880  5.86184945E-02  4.58669595E-01  1.37463741E-01                          
+   881  5.88726139E-02  4.59510370E-01  1.37694660E-01                          
+   882  5.91275104E-02  4.60351562E-01  1.37925641E-01                          
+   883  5.93831851E-02  4.61193168E-01  1.38156685E-01                          
+   884  5.96396392E-02  4.62035186E-01  1.38387790E-01                          
+   885  5.98968741E-02  4.62877615E-01  1.38618956E-01                          
+   886  6.01548909E-02  4.63720453E-01  1.38850182E-01                          
+   887  6.04136908E-02  4.64563698E-01  1.39081469E-01                          
+   888  6.06732752E-02  4.65407348E-01  1.39312816E-01                          
+   889  6.09336453E-02  4.66251400E-01  1.39544222E-01                          
+   890  6.11948021E-02  4.67095854E-01  1.39775688E-01                          
+   891  6.14567471E-02  4.67940707E-01  1.40007212E-01                          
+   892  6.17194814E-02  4.68785957E-01  1.40238794E-01                          
+   893  6.19830063E-02  4.69631602E-01  1.40470435E-01                          
+   894  6.22473229E-02  4.70477641E-01  1.40702133E-01                          
+   895  6.25124325E-02  4.71324071E-01  1.40933888E-01                          
+   896  6.27783364E-02  4.72170890E-01  1.41165699E-01                          
+   897  6.30450357E-02  4.73018097E-01  1.41397567E-01                          
+   898  6.33125316E-02  4.73865689E-01  1.41629491E-01                          
+   899  6.35808254E-02  4.74713665E-01  1.41861470E-01                          
+   900  6.38499183E-02  4.75562022E-01  1.42093504E-01                          
+   901  6.41198116E-02  4.76410758E-01  1.42325593E-01                          
+   902  6.43905064E-02  4.77259871E-01  1.42557736E-01                          
+   903  6.46620039E-02  4.78109360E-01  1.42789934E-01                          
+   904  6.49343053E-02  4.78959222E-01  1.43022184E-01                          
+   905  6.52074120E-02  4.79809455E-01  1.43254488E-01                          
+   906  6.54813250E-02  4.80660057E-01  1.43486844E-01                          
+   907  6.57560456E-02  4.81511026E-01  1.43719253E-01                          
+   908  6.60315750E-02  4.82362360E-01  1.43951713E-01                          
+   909  6.63079144E-02  4.83214056E-01  1.44184225E-01                          
+   910  6.65850650E-02  4.84066114E-01  1.44416788E-01                          
+   911  6.68630280E-02  4.84918530E-01  1.44649401E-01                          
+   912  6.71418047E-02  4.85771302E-01  1.44882065E-01                          
+   913  6.74213961E-02  4.86624429E-01  1.45114778E-01                          
+   914  6.77018036E-02  4.87477907E-01  1.45347541E-01                          
+   915  6.79830283E-02  4.88331736E-01  1.45580353E-01                          
+   916  6.82650714E-02  4.89185913E-01  1.45813213E-01                          
+   917  6.85479341E-02  4.90040435E-01  1.46046122E-01                          
+   918  6.88316176E-02  4.90895300E-01  1.46279078E-01                          
+   919  6.91161231E-02  4.91750507E-01  1.46512082E-01                          
+   920  6.94014518E-02  4.92606053E-01  1.46745132E-01                          
+   921  6.96876048E-02  4.93461936E-01  1.46978229E-01                          
+   922  6.99745835E-02  4.94318153E-01  1.47211373E-01                          
+   923  7.02623889E-02  4.95174703E-01  1.47444561E-01                          
+   924  7.05510222E-02  4.96031582E-01  1.47677796E-01                          
+   925  7.08404847E-02  4.96888790E-01  1.47911075E-01                          
+   926  7.11307774E-02  4.97746323E-01  1.48144398E-01                          
+   927  7.14219017E-02  4.98604180E-01  1.48377766E-01                          
+   928  7.17138586E-02  4.99462357E-01  1.48611177E-01                          
+   929  7.20066494E-02  5.00320853E-01  1.48844632E-01                          
+   930  7.23002752E-02  5.01179666E-01  1.49078129E-01                          
+   931  7.25947372E-02  5.02038793E-01  1.49311669E-01                          
+   932  7.28900366E-02  5.02898231E-01  1.49545251E-01                          
+   933  7.31861746E-02  5.03757979E-01  1.49778874E-01                          
+   934  7.34831523E-02  5.04618034E-01  1.50012538E-01                          
+   935  7.37809708E-02  5.05478394E-01  1.50246244E-01                          
+   936  7.40796315E-02  5.06339056E-01  1.50479989E-01                          
+   937  7.43791354E-02  5.07200018E-01  1.50713775E-01                          
+   938  7.46794836E-02  5.08061277E-01  1.50947600E-01                          
+   939  7.49806775E-02  5.08922832E-01  1.51181464E-01                          
+   940  7.52827180E-02  5.09784680E-01  1.51415366E-01                          
+   941  7.55856065E-02  5.10646817E-01  1.51649307E-01                          
+   942  7.58893439E-02  5.11509243E-01  1.51883286E-01                          
+   943  7.61939316E-02  5.12371955E-01  1.52117302E-01                          
+   944  7.64993707E-02  5.13234949E-01  1.52351355E-01                          
+   945  7.68056622E-02  5.14098224E-01  1.52585445E-01                          
+   946  7.71128075E-02  5.14961777E-01  1.52819571E-01                          
+   947  7.74208075E-02  5.15825605E-01  1.53053733E-01                          
+   948  7.77296635E-02  5.16689707E-01  1.53287930E-01                          
+   949  7.80393767E-02  5.17554080E-01  1.53522161E-01                          
+   950  7.83499481E-02  5.18418720E-01  1.53756428E-01                          
+   951  7.86613789E-02  5.19283626E-01  1.53990728E-01                          
+   952  7.89736703E-02  5.20148795E-01  1.54225062E-01                          
+   953  7.92868233E-02  5.21014225E-01  1.54459429E-01                          
+   954  7.96008392E-02  5.21879912E-01  1.54693829E-01                          
+   955  7.99157191E-02  5.22745855E-01  1.54928262E-01                          
+   956  8.02314640E-02  5.23612051E-01  1.55162726E-01                          
+   957  8.05480753E-02  5.24478497E-01  1.55397222E-01                          
+   958  8.08655539E-02  5.25345191E-01  1.55631749E-01                          
+   959  8.11839010E-02  5.26212129E-01  1.55866307E-01                          
+   960  8.15031177E-02  5.27079310E-01  1.56100894E-01                          
+   961  8.18232052E-02  5.27946731E-01  1.56335512E-01                          
+   962  8.21441646E-02  5.28814389E-01  1.56570159E-01                          
+   963  8.24659971E-02  5.29682281E-01  1.56804835E-01                          
+   964  8.27887036E-02  5.30550405E-01  1.57039540E-01                          
+   965  8.31122855E-02  5.31418758E-01  1.57274273E-01                          
+   966  8.34367437E-02  5.32287338E-01  1.57509033E-01                          
+   967  8.37620794E-02  5.33156141E-01  1.57743821E-01                          
+   968  8.40882937E-02  5.34025166E-01  1.57978636E-01                          
+   969  8.44153878E-02  5.34894409E-01  1.58213477E-01                          
+   970  8.47433627E-02  5.35763867E-01  1.58448344E-01                          
+   971  8.50722196E-02  5.36633538E-01  1.58683237E-01                          
+   972  8.54019595E-02  5.37503420E-01  1.58918154E-01                          
+   973  8.57325836E-02  5.38373509E-01  1.59153097E-01                          
+   974  8.60640929E-02  5.39243802E-01  1.59388064E-01                          
+   975  8.63964887E-02  5.40114297E-01  1.59623054E-01                          
+   976  8.67297719E-02  5.40984991E-01  1.59858068E-01                          
+   977  8.70639437E-02  5.41855882E-01  1.60093106E-01                          
+   978  8.73990052E-02  5.42726965E-01  1.60328165E-01                          
+   979  8.77349574E-02  5.43598240E-01  1.60563247E-01                          
+   980  8.80718016E-02  5.44469702E-01  1.60798351E-01                          
+   981  8.84095386E-02  5.45341349E-01  1.61033475E-01                          
+   982  8.87481697E-02  5.46213178E-01  1.61268621E-01                          
+   983  8.90876960E-02  5.47085186E-01  1.61503787E-01                          
+   984  8.94281185E-02  5.47957370E-01  1.61738973E-01                          
+   985  8.97694383E-02  5.48829728E-01  1.61974179E-01                          
+   986  9.01116564E-02  5.49702257E-01  1.62209404E-01                          
+   987  9.04547741E-02  5.50605717E-01  1.62444647E-01                          
+   988  9.07987923E-02  5.51447813E-01  1.62679909E-01                          
+   989  9.11437121E-02  5.52320835E-01  1.62915189E-01                          
+   990  9.14895346E-02  5.53194016E-01  1.63150486E-01                          
+   991  9.18362609E-02  5.54067353E-01  1.63387416E-01                          
+   992  9.21838920E-02  5.54940843E-01  1.63622754E-01                          
+   993  9.25324290E-02  5.55818048E-01  1.63858109E-01                          
+   994  9.28818730E-02  5.56691852E-01  1.64093479E-01                          
+   995  9.32322251E-02  5.57565800E-01  1.64328864E-01                          
+   996  9.35834862E-02  5.58439889E-01  1.64564264E-01                          
+   997  9.39356575E-02  5.59314116E-01  1.64799679E-01                          
+   998  9.42887401E-02  5.60188477E-01  1.65035108E-01                          
+   999  9.46427349E-02  5.61062971E-01  1.65270550E-01                          
+  1000  9.49976430E-02  5.61937593E-01  1.65506005E-01                          
+  1001  9.53534655E-02  5.62812341E-01  1.65741472E-01                          
+  1002  9.57102035E-02  5.63687211E-01  1.65976952E-01                          
+  1003  9.60678580E-02  5.64562201E-01  1.66212444E-01                          
+  1004  9.64264299E-02  5.65437308E-01  1.66447947E-01                          
+  1005  9.67859205E-02  5.66312527E-01  1.66683461E-01                          
+  1006  9.71463307E-02  5.67187857E-01  1.66918985E-01                          
+  1007  9.75076615E-02  5.68063294E-01  1.67154520E-01                          
+  1008  9.78699140E-02  5.68938835E-01  1.67390064E-01                          
+  1009  9.82330892E-02  5.69814477E-01  1.67625617E-01                          
+  1010  9.85971882E-02  5.70690216E-01  1.67861178E-01                          
+  1011  9.89622120E-02  5.71566050E-01  1.68096748E-01                          
+  1012  9.93281616E-02  5.72441975E-01  1.68332326E-01                          
+  1013  9.96950381E-02  5.73317988E-01  1.68567911E-01                          
+  1014  1.00062842E-01  5.74194085E-01  1.68803504E-01                          
+  1015  1.00431576E-01  5.75070265E-01  1.69039102E-01                          
+  1016  1.00801239E-01  5.75946522E-01  1.69274707E-01                          
+  1017  1.01171833E-01  5.76822855E-01  1.69510317E-01                          
+  1018  1.01543359E-01  5.77699260E-01  1.69745933E-01                          
+  1019  1.01915818E-01  5.78575733E-01  1.69981553E-01                          
+  1020  1.02289211E-01  5.79452272E-01  1.70217177E-01                          
+  1021  1.02663539E-01  5.80328873E-01  1.70452806E-01                          
+  1022  1.03038803E-01  5.81205532E-01  1.70688437E-01                          
+  1023  1.03415004E-01  5.82082247E-01  1.70924072E-01                          
+  1024  1.03792143E-01  5.82959014E-01  1.71159709E-01                          
+  1025  1.04170220E-01  5.83835830E-01  1.71395348E-01                          
+  1026  1.04549238E-01  5.84712691E-01  1.71630989E-01                          
+  1027  1.04929197E-01  5.85589594E-01  1.71866631E-01                          
+  1028  1.05310098E-01  5.86466536E-01  1.72102274E-01                          
+  1029  1.05691942E-01  5.87343514E-01  1.72337917E-01                          
+  1030  1.06074730E-01  5.88220523E-01  1.72573560E-01                          
+  1031  1.06458463E-01  5.89097561E-01  1.72809202E-01                          
+  1032  1.06843141E-01  5.89974624E-01  1.73044844E-01                          
+  1033  1.07228767E-01  5.90851709E-01  1.73280483E-01                          
+  1034  1.07615340E-01  5.91728812E-01  1.73516121E-01                          
+  1035  1.08002863E-01  5.92605930E-01  1.73751757E-01                          
+  1036  1.08391335E-01  5.93483059E-01  1.73987389E-01                          
+  1037  1.08780758E-01  5.94360196E-01  1.74223019E-01                          
+  1038  1.09171133E-01  5.95237338E-01  1.74458644E-01                          
+  1039  1.09562460E-01  5.96114481E-01  1.74694266E-01                          
+  1040  1.09954742E-01  5.96991621E-01  1.74929883E-01                          
+  1041  1.10347978E-01  5.97868755E-01  1.75165495E-01                          
+  1042  1.10742169E-01  5.98745880E-01  1.75401101E-01                          
+  1043  1.11137318E-01  5.99622992E-01  1.75636701E-01                          
+  1044  1.11533423E-01  6.00500087E-01  1.75872295E-01                          
+  1045  1.11930488E-01  6.01377162E-01  1.76107882E-01                          
+  1046  1.12328511E-01  6.02254213E-01  1.76343462E-01                          
+  1047  1.12727495E-01  6.03131238E-01  1.76579034E-01                          
+  1048  1.13127441E-01  6.04008231E-01  1.76814598E-01                          
+  1049  1.13528349E-01  6.04885190E-01  1.77050153E-01                          
+  1050  1.13930220E-01  6.05762110E-01  1.77285699E-01                          
+  1051  1.14333055E-01  6.06638989E-01  1.77521235E-01                          
+  1052  1.14736855E-01  6.07515823E-01  1.77756762E-01                          
+  1053  1.15141622E-01  6.08392608E-01  1.77992278E-01                          
+  1054  1.15547355E-01  6.09269341E-01  1.78227783E-01                          
+  1055  1.15954056E-01  6.10146017E-01  1.78463277E-01                          
+  1056  1.16361726E-01  6.11022633E-01  1.78698759E-01                          
+  1057  1.16770366E-01  6.11899186E-01  1.78934228E-01                          
+  1058  1.17179976E-01  6.12775671E-01  1.79169685E-01                          
+  1059  1.17590559E-01  6.13652086E-01  1.79405129E-01                          
+  1060  1.18002113E-01  6.14528426E-01  1.79640559E-01                          
+  1061  1.18414641E-01  6.15404687E-01  1.79875975E-01                          
+  1062  1.18828143E-01  6.16280867E-01  1.80111377E-01                          
+  1063  1.19242621E-01  6.17156961E-01  1.80346763E-01                          
+  1064  1.19658075E-01  6.18032965E-01  1.80582134E-01                          
+  1065  1.20074505E-01  6.18908875E-01  1.80817490E-01                          
+  1066  1.20491914E-01  6.19784689E-01  1.81052828E-01                          
+  1067  1.20910301E-01  6.20660402E-01  1.81288151E-01                          
+  1068  1.21329669E-01  6.21536010E-01  1.81523455E-01                          
+  1069  1.21750016E-01  6.22411510E-01  1.81758742E-01                          
+  1070  1.22171346E-01  6.23286897E-01  1.81994011E-01                          
+  1071  1.22593657E-01  6.24162168E-01  1.82229262E-01                          
+  1072  1.23016952E-01  6.25037320E-01  1.82464493E-01                          
+  1073  1.23441232E-01  6.25912347E-01  1.82699705E-01                          
+  1074  1.23866496E-01  6.26787247E-01  1.82934896E-01                          
+  1075  1.24292746E-01  6.27662015E-01  1.83170068E-01                          
+  1076  1.24719983E-01  6.28536649E-01  1.83405218E-01                          
+  1077  1.25148208E-01  6.29411142E-01  1.83640347E-01                          
+  1078  1.25577421E-01  6.30285493E-01  1.83875454E-01                          
+  1079  1.26007623E-01  6.31159697E-01  1.84110539E-01                          
+  1080  1.26438816E-01  6.32033749E-01  1.84345602E-01                          
+  1081  1.26871000E-01  6.32907647E-01  1.84580641E-01                          
+  1082  1.27304176E-01  6.33781386E-01  1.84815656E-01                          
+  1083  1.27738344E-01  6.34654963E-01  1.85050647E-01                          
+  1084  1.28173507E-01  6.35528372E-01  1.85285614E-01                          
+  1085  1.28609664E-01  6.36401611E-01  1.85520556E-01                          
+  1086  1.29046816E-01  6.37274676E-01  1.85755472E-01                          
+  1087  1.29484964E-01  6.38147561E-01  1.85990362E-01                          
+  1088  1.29924110E-01  6.39020265E-01  1.86225226E-01                          
+  1089  1.30364253E-01  6.39892781E-01  1.86460063E-01                          
+  1090  1.30805395E-01  6.40765107E-01  1.86694873E-01                          
+  1091  1.31247537E-01  6.41637239E-01  1.86929655E-01                          
+  1092  1.31690679E-01  6.42509171E-01  1.87164408E-01                          
+  1093  1.32134822E-01  6.43380902E-01  1.87399133E-01                          
+  1094  1.32579968E-01  6.44252425E-01  1.87633829E-01                          
+  1095  1.33026116E-01  6.45123738E-01  1.87868495E-01                          
+  1096  1.33473268E-01  6.45994835E-01  1.88103131E-01                          
+  1097  1.33921424E-01  6.46865714E-01  1.88337737E-01                          
+  1098  1.34370586E-01  6.47736370E-01  1.88572311E-01                          
+  1099  1.34820754E-01  6.48606799E-01  1.88806855E-01                          
+  1100  1.35271928E-01  6.49476996E-01  1.89041366E-01                          
+  1101  1.35724111E-01  6.50346959E-01  1.89275845E-01                          
+  1102  1.36177302E-01  6.51216682E-01  1.89510290E-01                          
+  1103  1.36631502E-01  6.52086161E-01  1.89744703E-01                          
+  1104  1.37086712E-01  6.52955393E-01  1.89979082E-01                          
+  1105  1.37542933E-01  6.53824372E-01  1.90213427E-01                          
+  1106  1.38000166E-01  6.54693096E-01  1.90447736E-01                          
+  1107  1.38458412E-01  6.55561560E-01  1.90682011E-01                          
+  1108  1.38917670E-01  6.56429759E-01  1.90916250E-01                          
+  1109  1.39377943E-01  6.57297690E-01  1.91150453E-01                          
+  1110  1.39839230E-01  6.58165348E-01  1.91384620E-01                          
+  1111  1.40301533E-01  6.59032730E-01  1.91618749E-01                          
+  1112  1.40764853E-01  6.59899830E-01  1.91852841E-01                          
+  1113  1.41229189E-01  6.60766645E-01  1.92086895E-01                          
+  1114  1.41694544E-01  6.61633170E-01  1.92320911E-01                          
+  1115  1.42160917E-01  6.62499402E-01  1.92554887E-01                          
+  1116  1.42628309E-01  6.63365335E-01  1.92788825E-01                          
+  1117  1.43096722E-01  6.64230966E-01  1.93022722E-01                          
+  1118  1.43566156E-01  6.65096291E-01  1.93256580E-01                          
+  1119  1.44036611E-01  6.65961305E-01  1.93490396E-01                          
+  1120  1.44508088E-01  6.66826004E-01  1.93724171E-01                          
+  1121  1.44980589E-01  6.67690384E-01  1.93957905E-01                          
+  1122  1.45454114E-01  6.68554440E-01  1.94191597E-01                          
+  1123  1.45928663E-01  6.69418168E-01  1.94425245E-01                          
+  1124  1.46404238E-01  6.70281563E-01  1.94658851E-01                          
+  1125  1.46880839E-01  6.71144623E-01  1.94892414E-01                          
+  1126  1.47358466E-01  6.72007341E-01  1.95125932E-01                          
+  1127  1.47837121E-01  6.72869714E-01  1.95359406E-01                          
+  1128  1.48316805E-01  6.73731738E-01  1.95592835E-01                          
+  1129  1.48797517E-01  6.74593407E-01  1.95826218E-01                          
+  1130  1.49279259E-01  6.75454719E-01  1.96059556E-01                          
+  1131  1.49762032E-01  6.76315668E-01  1.96292847E-01                          
+  1132  1.50245836E-01  6.77176250E-01  1.96526091E-01                          
+  1133  1.50730671E-01  6.78036460E-01  1.96759288E-01                          
+  1134  1.51216539E-01  6.78896295E-01  1.96992438E-01                          
+  1135  1.51703440E-01  6.79755750E-01  1.97225539E-01                          
+  1136  1.52191375E-01  6.80614820E-01  1.97458592E-01                          
+  1137  1.52680345E-01  6.81473501E-01  1.97691595E-01                          
+  1138  1.53170350E-01  6.82331789E-01  1.97924549E-01                          
+  1139  1.53661392E-01  6.83189679E-01  1.98157452E-01                          
+  1140  1.54153469E-01  6.84047167E-01  1.98390305E-01                          
+  1141  1.54646585E-01  6.84904249E-01  1.98623108E-01                          
+  1142  1.55140738E-01  6.85760919E-01  1.98855858E-01                          
+  1143  1.55635930E-01  6.86617174E-01  1.99088557E-01                          
+  1144  1.56132161E-01  6.87473009E-01  1.99321203E-01                          
+  1145  1.56629432E-01  6.88328420E-01  1.99553796E-01                          
+  1146  1.57127745E-01  6.89183401E-01  1.99786336E-01                          
+  1147  1.57627098E-01  6.90037950E-01  2.00018822E-01                          
+  1148  1.58127493E-01  6.90892060E-01  2.00251254E-01                          
+  1149  1.58628932E-01  6.91745729E-01  2.00483631E-01                          
+  1150  1.59131413E-01  6.92598950E-01  2.00715953E-01                          
+  1151  1.59634939E-01  6.93451720E-01  2.00948219E-01                          
+  1152  1.60139509E-01  6.94304035E-01  2.01180428E-01                          
+  1153  1.60645124E-01  6.95155889E-01  2.01412581E-01                          
+  1154  1.61151786E-01  6.96007278E-01  2.01644677E-01                          
+  1155  1.61659494E-01  6.96858198E-01  2.01876716E-01                          
+  1156  1.62168249E-01  6.97708644E-01  2.02108696E-01                          
+  1157  1.62678052E-01  6.98558611E-01  2.02340618E-01                          
+  1158  1.63188903E-01  6.99408096E-01  2.02572480E-01                          
+  1159  1.63700803E-01  7.00257093E-01  2.02804284E-01                          
+  1160  1.64213753E-01  7.01105598E-01  2.03036027E-01                          
+  1161  1.64727754E-01  7.01953607E-01  2.03267710E-01                          
+  1162  1.65242805E-01  7.02801114E-01  2.03499331E-01                          
+  1163  1.65758908E-01  7.03648116E-01  2.03730892E-01                          
+  1164  1.66276063E-01  7.04494607E-01  2.03962391E-01                          
+  1165  1.66794270E-01  7.05340584E-01  2.04193827E-01                          
+  1166  1.67313531E-01  7.06186041E-01  2.04425200E-01                          
+  1167  1.67833846E-01  7.07030974E-01  2.04656511E-01                          
+  1168  1.68355215E-01  7.07875378E-01  2.04887757E-01                          
+  1169  1.68877639E-01  7.08719249E-01  2.05118939E-01                          
+  1170  1.69401119E-01  7.09562582E-01  2.05350057E-01                          
+  1171  1.69925656E-01  7.10405373E-01  2.05581109E-01                          
+  1172  1.70451249E-01  7.11247617E-01  2.05812096E-01                          
+  1173  1.70977899E-01  7.12089309E-01  2.06043017E-01                          
+  1174  1.71505608E-01  7.12930445E-01  2.06273871E-01                          
+  1175  1.72034375E-01  7.13771020E-01  2.06504658E-01                          
+  1176  1.72564201E-01  7.14611029E-01  2.06735377E-01                          
+  1177  1.73095087E-01  7.15450468E-01  2.06966028E-01                          
+  1178  1.73627032E-01  7.16289332E-01  2.07196611E-01                          
+  1179  1.74160039E-01  7.17127617E-01  2.07427125E-01                          
+  1180  1.74694107E-01  7.17965318E-01  2.07657570E-01                          
+  1181  1.75229237E-01  7.18802430E-01  2.07887945E-01                          
+  1182  1.75765429E-01  7.19638948E-01  2.08118249E-01                          
+  1183  1.76302685E-01  7.20474869E-01  2.08348482E-01                          
+  1184  1.76841003E-01  7.21310187E-01  2.08578644E-01                          
+  1185  1.77380386E-01  7.22144897E-01  2.08808735E-01                          
+  1186  1.77920833E-01  7.22978995E-01  2.09038753E-01                          
+  1187  1.78462345E-01  7.23812477E-01  2.09268698E-01                          
+  1188  1.79004923E-01  7.24645337E-01  2.09498570E-01                          
+  1189  1.79548567E-01  7.25477571E-01  2.09728368E-01                          
+  1190  1.80093278E-01  7.26309174E-01  2.09958092E-01                          
+  1191  1.80639056E-01  7.27140142E-01  2.10202250E-01                          
+  1192  1.81185901E-01  7.27970470E-01  2.10417316E-01                          
+  1193  1.81733814E-01  7.28800153E-01  2.10646815E-01                          
+  1194  1.82282796E-01  7.29629186E-01  2.10876238E-01                          
+  1195  1.82832848E-01  7.30457565E-01  2.11105584E-01                          
+  1196  1.83383969E-01  7.31285286E-01  2.11334853E-01                          
+  1197  1.83936159E-01  7.32112342E-01  2.11564044E-01                          
+  1198  1.84489421E-01  7.32938730E-01  2.11793158E-01                          
+  1199  1.85043754E-01  7.33764446E-01  2.12022193E-01                          
+  1200  1.85599158E-01  7.34589483E-01  2.12251149E-01                          
+  1201  1.86155634E-01  7.35413838E-01  2.12480026E-01                          
+  1202  1.86713183E-01  7.36237506E-01  2.12708823E-01                          
+  1203  1.87271804E-01  7.37060482E-01  2.12937540E-01                          
+  1204  1.87831499E-01  7.37882762E-01  2.13166176E-01                          
+  1205  1.88392268E-01  7.38704340E-01  2.13394730E-01                          
+  1206  1.88954112E-01  7.39525213E-01  2.13623203E-01                          
+  1207  1.89517030E-01  7.40345374E-01  2.13851593E-01                          
+  1208  1.90081023E-01  7.41164820E-01  2.14079901E-01                          
+  1209  1.90646092E-01  7.41983546E-01  2.14308125E-01                          
+  1210  1.91212237E-01  7.42801547E-01  2.14536266E-01                          
+  1211  1.91779459E-01  7.43618818E-01  2.14764322E-01                          
+  1212  1.92347757E-01  7.44435355E-01  2.14992294E-01                          
+  1213  1.92917134E-01  7.45251153E-01  2.15220181E-01                          
+  1214  1.93487588E-01  7.46066208E-01  2.15447982E-01                          
+  1215  1.94059120E-01  7.46880513E-01  2.15675698E-01                          
+  1216  1.94631731E-01  7.47694066E-01  2.15903326E-01                          
+  1217  1.95205421E-01  7.48506860E-01  2.16130868E-01                          
+  1218  1.95780190E-01  7.49318892E-01  2.16358322E-01                          
+  1219  1.96356040E-01  7.50130156E-01  2.16585688E-01                          
+  1220  1.96932970E-01  7.50940648E-01  2.16812965E-01                          
+  1221  1.97510980E-01  7.51750364E-01  2.17040154E-01                          
+  1222  1.98090072E-01  7.52559297E-01  2.17267253E-01                          
+  1223  1.98670245E-01  7.53367445E-01  2.17494263E-01                          
+  1224  1.99251500E-01  7.54174801E-01  2.17721182E-01                          
+  1225  1.99833837E-01  7.54981361E-01  2.17948010E-01                          
+  1226  2.00417257E-01  7.55787121E-01  2.18174747E-01                          
+  1227  2.01001761E-01  7.56592076E-01  2.18401392E-01                          
+  1228  2.01587347E-01  7.57396220E-01  2.18627945E-01                          
+  1229  2.02174017E-01  7.58199550E-01  2.18859706E-01                          
+  1230  2.02761772E-01  7.59013452E-01  2.19086101E-01                          
+  1231  2.03350611E-01  7.59815199E-01  2.19312402E-01                          
+  1232  2.03940535E-01  7.60616117E-01  2.19538610E-01                          
+  1233  2.04531544E-01  7.61416202E-01  2.19764722E-01                          
+  1234  2.05123638E-01  7.62215449E-01  2.19990740E-01                          
+  1235  2.05716819E-01  7.63013852E-01  2.20216662E-01                          
+  1236  2.06311086E-01  7.63811408E-01  2.20442488E-01                          
+  1237  2.06906439E-01  7.64608112E-01  2.20668217E-01                          
+  1238  2.07502879E-01  7.65403958E-01  2.20893849E-01                          
+  1239  2.08100407E-01  7.66198943E-01  2.21119384E-01                          
+  1240  2.08699022E-01  7.66993061E-01  2.21344821E-01                          
+  1241  2.09298725E-01  7.67786308E-01  2.21570160E-01                          
+  1242  2.09899517E-01  7.68578679E-01  2.21795400E-01                          
+  1243  2.10501397E-01  7.69370169E-01  2.22020540E-01                          
+  1244  2.11104365E-01  7.70160774E-01  2.22245580E-01                          
+  1245  2.11708423E-01  7.70950489E-01  2.22470521E-01                          
+  1246  2.12313571E-01  7.71739309E-01  2.22695360E-01                          
+  1247  2.12919808E-01  7.72527230E-01  2.22920098E-01                          
+  1248  2.13527135E-01  7.73314247E-01  2.23144734E-01                          
+  1249  2.14135553E-01  7.74100355E-01  2.23369268E-01                          
+  1250  2.14745061E-01  7.74885550E-01  2.23593699E-01                          
+  1251  2.15355660E-01  7.75669826E-01  2.23818028E-01                          
+  1252  2.15967351E-01  7.76453180E-01  2.24042252E-01                          
+  1253  2.16580132E-01  7.77235606E-01  2.24266372E-01                          
+  1254  2.17194006E-01  7.78017099E-01  2.24490388E-01                          
+  1255  2.17808972E-01  7.78797656E-01  2.24714298E-01                          
+  1256  2.18425029E-01  7.79577272E-01  2.24938103E-01                          
+  1257  2.19042180E-01  7.80355941E-01  2.25161802E-01                          
+  1258  2.19660423E-01  7.81133660E-01  2.25385395E-01                          
+  1259  2.20279759E-01  7.81910423E-01  2.25608880E-01                          
+  1260  2.20900189E-01  7.82686226E-01  2.25832258E-01                          
+  1261  2.21521712E-01  7.83461064E-01  2.26055528E-01                          
+  1262  2.22144329E-01  7.84234933E-01  2.26278689E-01                          
+  1263  2.22768040E-01  7.85007827E-01  2.26501742E-01                          
+  1264  2.23392845E-01  7.85779743E-01  2.26724685E-01                          
+  1265  2.24018745E-01  7.86550676E-01  2.26947518E-01                          
+  1266  2.24645739E-01  7.87320621E-01  2.27170241E-01                          
+  1267  2.25273828E-01  7.88089574E-01  2.27392853E-01                          
+  1268  2.25903012E-01  7.88857529E-01  2.27615354E-01                          
+  1269  2.26533292E-01  7.89624482E-01  2.27837743E-01                          
+  1270  2.27164667E-01  7.90390430E-01  2.28060019E-01                          
+  1271  2.27797138E-01  7.91155366E-01  2.28282183E-01                          
+  1272  2.28430705E-01  7.91919287E-01  2.28504234E-01                          
+  1273  2.29065368E-01  7.92682187E-01  2.28726171E-01                          
+  1274  2.29701128E-01  7.93444063E-01  2.28947994E-01                          
+  1275  2.30337984E-01  7.94204910E-01  2.29169702E-01                          
+  1276  2.30975936E-01  7.94964723E-01  2.29391295E-01                          
+  1277  2.31614986E-01  7.95723498E-01  2.29612773E-01                          
+  1278  2.32255132E-01  7.96481230E-01  2.29834134E-01                          
+  1279  2.32896376E-01  7.97237915E-01  2.30055379E-01                          
+  1280  2.33538717E-01  7.97993547E-01  2.30276507E-01                          
+  1281  2.34182156E-01  7.98748123E-01  2.30497518E-01                          
+  1282  2.34826692E-01  7.99501638E-01  2.30718410E-01                          
+  1283  2.35472326E-01  8.00254088E-01  2.30939184E-01                          
+  1284  2.36119058E-01  8.01005467E-01  2.31159839E-01                          
+  1285  2.36766889E-01  8.01755772E-01  2.31380375E-01                          
+  1286  2.37415817E-01  8.02504999E-01  2.31600790E-01                          
+  1287  2.38065844E-01  8.03253141E-01  2.31821086E-01                          
+  1288  2.38716970E-01  8.04000196E-01  2.32041260E-01                          
+  1289  2.39369194E-01  8.04746158E-01  2.32261313E-01                          
+  1290  2.40022518E-01  8.05491023E-01  2.32481245E-01                          
+  1291  2.40676940E-01  8.06234787E-01  2.32701054E-01                          
+  1292  2.41332461E-01  8.06977445E-01  2.32920740E-01                          
+  1293  2.41989081E-01  8.07718993E-01  2.33140304E-01                          
+  1294  2.42646801E-01  8.08459426E-01  2.33359743E-01                          
+  1295  2.43305619E-01  8.09198741E-01  2.33579059E-01                          
+  1296  2.43965538E-01  8.09936931E-01  2.33798249E-01                          
+  1297  2.44626556E-01  8.10673994E-01  2.34017315E-01                          
+  1298  2.45288673E-01  8.11409925E-01  2.34236255E-01                          
+  1299  2.45951891E-01  8.12144719E-01  2.34455069E-01                          
+  1300  2.46616208E-01  8.12878372E-01  2.34673756E-01                          
+  1301  2.47281625E-01  8.13610879E-01  2.34892317E-01                          
+  1302  2.47948142E-01  8.14342237E-01  2.35110750E-01                          
+  1303  2.48615759E-01  8.15072441E-01  2.35329055E-01                          
+  1304  2.49284476E-01  8.15801486E-01  2.35547232E-01                          
+  1305  2.49954293E-01  8.16529369E-01  2.35765279E-01                          
+  1306  2.50625211E-01  8.17256085E-01  2.35983198E-01                          
+  1307  2.51297229E-01  8.17981629E-01  2.36200986E-01                          
+  1308  2.51970347E-01  8.18705997E-01  2.36418644E-01                          
+  1309  2.52644565E-01  8.19429186E-01  2.36636171E-01                          
+  1310  2.53319884E-01  8.20151191E-01  2.36853568E-01                          
+  1311  2.53996304E-01  8.20872007E-01  2.37070832E-01                          
+  1312  2.54673823E-01  8.21591630E-01  2.37287964E-01                          
+  1313  2.55352444E-01  8.22310057E-01  2.37504963E-01                          
+  1314  2.56032164E-01  8.23027282E-01  2.37721830E-01                          
+  1315  2.56712986E-01  8.23743302E-01  2.37938562E-01                          
+  1316  2.57394908E-01  8.24458112E-01  2.38155161E-01                          
+  1317  2.58077930E-01  8.25171708E-01  2.38371625E-01                          
+  1318  2.58762053E-01  8.25884087E-01  2.38587954E-01                          
+  1319  2.59447277E-01  8.26595243E-01  2.38804147E-01                          
+  1320  2.60133601E-01  8.27305173E-01  2.39020204E-01                          
+  1321  2.60821025E-01  8.28013873E-01  2.39236125E-01                          
+  1322  2.61509551E-01  8.28721338E-01  2.39451909E-01                          
+  1323  2.62199176E-01  8.29427564E-01  2.39667556E-01                          
+  1324  2.62889903E-01  8.30132548E-01  2.39883064E-01                          
+  1325  2.63581729E-01  8.30836284E-01  2.40098435E-01                          
+  1326  2.64274657E-01  8.31538770E-01  2.40313666E-01                          
+  1327  2.64968684E-01  8.32240000E-01  2.40528758E-01                          
+  1328  2.65663812E-01  8.32939972E-01  2.40743711E-01                          
+  1329  2.66360040E-01  8.33638680E-01  2.40958523E-01                          
+  1330  2.67057369E-01  8.34336121E-01  2.41173194E-01                          
+  1331  2.67755798E-01  8.35032291E-01  2.41387724E-01                          
+  1332  2.68455326E-01  8.35727185E-01  2.41602113E-01                          
+  1333  2.69155955E-01  8.36420801E-01  2.41816360E-01                          
+  1334  2.69857685E-01  8.37113133E-01  2.42030463E-01                          
+  1335  2.70560514E-01  8.37804178E-01  2.42244424E-01                          
+  1336  2.71264443E-01  8.38493932E-01  2.42458242E-01                          
+  1337  2.71969471E-01  8.39182390E-01  2.42671915E-01                          
+  1338  2.72675600E-01  8.39869550E-01  2.42885444E-01                          
+  1339  2.73382828E-01  8.40555407E-01  2.43098828E-01                          
+  1340  2.74091156E-01  8.41239957E-01  2.43312066E-01                          
+  1341  2.74800583E-01  8.41923197E-01  2.43525159E-01                          
+  1342  2.75511110E-01  8.42605122E-01  2.43738105E-01                          
+  1343  2.76222735E-01  8.43285728E-01  2.43950905E-01                          
+  1344  2.76935460E-01  8.43965013E-01  2.44163557E-01                          
+  1345  2.77649284E-01  8.44642971E-01  2.44376061E-01                          
+  1346  2.78364207E-01  8.45319599E-01  2.44588418E-01                          
+  1347  2.79080229E-01  8.45994894E-01  2.44800625E-01                          
+  1348  2.79797350E-01  8.46668852E-01  2.45012684E-01                          
+  1349  2.80515569E-01  8.47341468E-01  2.45224592E-01                          
+  1350  2.81234886E-01  8.48012739E-01  2.45436351E-01                          
+  1351  2.81955302E-01  8.48682662E-01  2.45647959E-01                          
+  1352  2.82676815E-01  8.49351233E-01  2.45859417E-01                          
+  1353  2.83399427E-01  8.50018447E-01  2.46070722E-01                          
+  1354  2.84123137E-01  8.50684302E-01  2.46281876E-01                          
+  1355  2.84847944E-01  8.51348793E-01  2.46492877E-01                          
+  1356  2.85573848E-01  8.52011917E-01  2.46703726E-01                          
+  1357  2.86300850E-01  8.52673671E-01  2.46914421E-01                          
+  1358  2.87028950E-01  8.53334050E-01  2.47124962E-01                          
+  1359  2.87758146E-01  8.53993052E-01  2.47335349E-01                          
+  1360  2.88488439E-01  8.54650672E-01  2.47545581E-01                          
+  1361  2.89219828E-01  8.55306907E-01  2.47755658E-01                          
+  1362  2.89952314E-01  8.55961754E-01  2.47965580E-01                          
+  1363  2.90685897E-01  8.56615208E-01  2.48175345E-01                          
+  1364  2.91420575E-01  8.57267267E-01  2.48384954E-01                          
+  1365  2.92156349E-01  8.57917927E-01  2.48594405E-01                          
+  1366  2.92893219E-01  8.58567184E-01  2.48803699E-01                          
+  1367  2.93631184E-01  8.59215036E-01  2.49012835E-01                          
+  1368  2.94370244E-01  8.59861478E-01  2.49221813E-01                          
+  1369  2.95110400E-01  8.60506507E-01  2.49430632E-01                          
+  1370  2.95851650E-01  8.61150120E-01  2.49639291E-01                          
+  1371  2.96593994E-01  8.61792313E-01  2.49847790E-01                          
+  1372  2.97337433E-01  8.62433083E-01  2.50056130E-01                          
+  1373  2.98081966E-01  8.63072427E-01  2.50264308E-01                          
+  1374  2.98827593E-01  8.63710341E-01  2.50472325E-01                          
+  1375  2.99574313E-01  8.64346822E-01  2.50680181E-01                          
+  1376  3.00322127E-01  8.64981867E-01  2.50887874E-01                          
+  1377  3.01071033E-01  8.65615472E-01  2.51095405E-01                          
+  1378  3.01821033E-01  8.66247635E-01  2.51302772E-01                          
+  1379  3.02572125E-01  8.66878352E-01  2.51509976E-01                          
+  1380  3.03324309E-01  8.67507619E-01  2.51717017E-01                          
+  1381  3.04077585E-01  8.68135434E-01  2.51923892E-01                          
+  1382  3.04831953E-01  8.68761793E-01  2.52130603E-01                          
+  1383  3.05587412E-01  8.69386694E-01  2.52337148E-01                          
+  1384  3.06343962E-01  8.70010132E-01  2.52543528E-01                          
+  1385  3.07101604E-01  8.70632106E-01  2.52749741E-01                          
+  1386  3.07860335E-01  8.71252611E-01  2.52955788E-01                          
+  1387  3.08620157E-01  8.71871646E-01  2.53161667E-01                          
+  1388  3.09381069E-01  8.72489206E-01  2.53367379E-01                          
+  1389  3.10143070E-01  8.73105289E-01  2.53572922E-01                          
+  1390  3.10906161E-01  8.73719891E-01  2.53778297E-01                          
+  1391  3.11670341E-01  8.74333011E-01  2.53983503E-01                          
+  1392  3.12435609E-01  8.74944644E-01  2.54188540E-01                          
+  1393  3.13201966E-01  8.75554788E-01  2.54393406E-01                          
+  1394  3.13969410E-01  8.76163440E-01  2.54598102E-01                          
+  1395  3.14737943E-01  8.76770597E-01  2.54802627E-01                          
+  1396  3.15507562E-01  8.77376256E-01  2.55006981E-01                          
+  1397  3.16278268E-01  8.77980414E-01  2.55211163E-01                          
+  1398  3.17050062E-01  8.78583068E-01  2.55415173E-01                          
+  1399  3.17822941E-01  8.79184216E-01  2.55619010E-01                          
+  1400  3.18596906E-01  8.79783855E-01  2.55822674E-01                          
+  1401  3.19371957E-01  8.80381982E-01  2.56026165E-01                          
+  1402  3.20148092E-01  8.80978595E-01  2.56229481E-01                          
+  1403  3.20925313E-01  8.81573689E-01  2.56432623E-01                          
+  1404  3.21703618E-01  8.82167264E-01  2.56635590E-01                          
+  1405  3.22483007E-01  8.82759315E-01  2.56838381E-01                          
+  1406  3.23263479E-01  8.83349841E-01  2.57040997E-01                          
+  1407  3.24045035E-01  8.83938839E-01  2.57243436E-01                          
+  1408  3.24827673E-01  8.84526306E-01  2.57445699E-01                          
+  1409  3.25611394E-01  8.85112240E-01  2.57647784E-01                          
+  1410  3.26396197E-01  8.85696637E-01  2.57849692E-01                          
+  1411  3.27182081E-01  8.86279496E-01  2.58051421E-01                          
+  1412  3.27969047E-01  8.86860814E-01  2.58252972E-01                          
+  1413  3.28757093E-01  8.87440588E-01  2.58454344E-01                          
+  1414  3.29546220E-01  8.88018817E-01  2.58655536E-01                          
+  1415  3.30336426E-01  8.88595496E-01  2.58856549E-01                          
+  1416  3.31127712E-01  8.89170625E-01  2.59057381E-01                          
+  1417  3.31920077E-01  8.89744201E-01  2.59258032E-01                          
+  1418  3.32713521E-01  8.90316220E-01  2.59458502E-01                          
+  1419  3.33508042E-01  8.90886682E-01  2.59658790E-01                          
+  1420  3.34303642E-01  8.91455583E-01  2.59858896E-01                          
+  1421  3.35100318E-01  8.92022921E-01  2.60058820E-01                          
+  1422  3.35898071E-01  8.92588694E-01  2.60258560E-01                          
+  1423  3.36696901E-01  8.93152899E-01  2.60458117E-01                          
+  1424  3.37496806E-01  8.93715536E-01  2.60657490E-01                          
+  1425  3.38297786E-01  8.94276600E-01  2.60856678E-01                          
+  1426  3.39099842E-01  8.94836090E-01  2.61055681E-01                          
+  1427  3.39902971E-01  8.95394004E-01  2.61254500E-01                          
+  1428  3.40707175E-01  8.95950340E-01  2.61453132E-01                          
+  1429  3.41512452E-01  8.96505095E-01  2.61651578E-01                          
+  1430  3.42318801E-01  8.97058267E-01  2.61849838E-01                          
+  1431  3.43126223E-01  8.97609855E-01  2.62047911E-01                          
+  1432  3.43934717E-01  8.98159857E-01  2.62245796E-01                          
+  1433  3.44744282E-01  8.98708269E-01  2.62443493E-01                          
+  1434  3.45554918E-01  8.99255091E-01  2.62641001E-01                          
+  1435  3.46366624E-01  8.99800320E-01  2.62838321E-01                          
+  1436  3.47179400E-01  9.00343954E-01  2.63035451E-01                          
+  1437  3.47993245E-01  9.00885992E-01  2.63232392E-01                          
+  1438  3.48808159E-01  9.01426432E-01  2.63429142E-01                          
+  1439  3.49624141E-01  9.01965271E-01  2.63625702E-01                          
+  1440  3.50441190E-01  9.02502508E-01  2.63822070E-01                          
+  1441  3.51259307E-01  9.03038141E-01  2.64018248E-01                          
+  1442  3.52078490E-01  9.03572168E-01  2.64214233E-01                          
+  1443  3.52898739E-01  9.04104587E-01  2.64410025E-01                          
+  1444  3.53720053E-01  9.04635397E-01  2.64605625E-01                          
+  1445  3.54542432E-01  9.05164597E-01  2.64801032E-01                          
+  1446  3.55365875E-01  9.05692183E-01  2.64996245E-01                          
+  1447  3.56190382E-01  9.06218155E-01  2.65191263E-01                          
+  1448  3.57015951E-01  9.06742511E-01  2.65386087E-01                          
+  1449  3.57842583E-01  9.07265250E-01  2.65580716E-01                          
+  1450  3.58670277E-01  9.07786369E-01  2.65775150E-01                          
+  1451  3.59499033E-01  9.08305868E-01  2.65969387E-01                          
+  1452  3.60328848E-01  9.08823744E-01  2.66163428E-01                          
+  1453  3.61159724E-01  9.09339996E-01  2.66362901E-01                          
+  1454  3.61991660E-01  9.09866477E-01  2.66550920E-01                          
+  1455  3.62824654E-01  9.10367624E-01  2.66744369E-01                          
+  1456  3.63658706E-01  9.10878996E-01  2.66937621E-01                          
+  1457  3.64493816E-01  9.11388739E-01  2.67130674E-01                          
+  1458  3.65329982E-01  9.11896850E-01  2.67323527E-01                          
+  1459  3.66167205E-01  9.12403330E-01  2.67516182E-01                          
+  1460  3.67005484E-01  9.12908176E-01  2.67708636E-01                          
+  1461  3.67844817E-01  9.13411387E-01  2.67900890E-01                          
+  1462  3.68685205E-01  9.13912962E-01  2.68092944E-01                          
+  1463  3.69526646E-01  9.14412899E-01  2.68284796E-01                          
+  1464  3.70369141E-01  9.14911198E-01  2.68476447E-01                          
+  1465  3.71212688E-01  9.15407858E-01  2.68667896E-01                          
+  1466  3.72057286E-01  9.15902876E-01  2.68859142E-01                          
+  1467  3.72902936E-01  9.16396252E-01  2.69050185E-01                          
+  1468  3.73749636E-01  9.16887985E-01  2.69241025E-01                          
+  1469  3.74597385E-01  9.17378074E-01  2.69431661E-01                          
+  1470  3.75446184E-01  9.17866518E-01  2.69622094E-01                          
+  1471  3.76296030E-01  9.18353316E-01  2.69812321E-01                          
+  1472  3.77146924E-01  9.18838466E-01  2.70002343E-01                          
+  1473  3.77998866E-01  9.19321968E-01  2.70192160E-01                          
+  1474  3.78851853E-01  9.19803821E-01  2.70381771E-01                          
+  1475  3.79705885E-01  9.20284024E-01  2.70571176E-01                          
+  1476  3.80560963E-01  9.20762577E-01  2.70760374E-01                          
+  1477  3.81417084E-01  9.21239477E-01  2.70949365E-01                          
+  1478  3.82274249E-01  9.21714725E-01  2.71138148E-01                          
+  1479  3.83132456E-01  9.22188320E-01  2.71326723E-01                          
+  1480  3.83991705E-01  9.22660260E-01  2.71515089E-01                          
+  1481  3.84851995E-01  9.23130546E-01  2.71703247E-01                          
+  1482  3.85713325E-01  9.23599176E-01  2.71891195E-01                          
+  1483  3.86575695E-01  9.24066150E-01  2.72078934E-01                          
+  1484  3.87439104E-01  9.24531468E-01  2.72266462E-01                          
+  1485  3.88303551E-01  9.24995128E-01  2.72453780E-01                          
+  1486  3.89169035E-01  9.25457129E-01  2.72640887E-01                          
+  1487  3.90035555E-01  9.25917473E-01  2.72827782E-01                          
+  1488  3.90903112E-01  9.26376157E-01  2.73014466E-01                          
+  1489  3.91771703E-01  9.26833182E-01  2.73200937E-01                          
+  1490  3.92641328E-01  9.27288546E-01  2.73387195E-01                          
+  1491  3.93511987E-01  9.27742250E-01  2.73573241E-01                          
+  1492  3.94383679E-01  9.28194293E-01  2.73759072E-01                          
+  1493  3.95256402E-01  9.28644675E-01  2.73944690E-01                          
+  1494  3.96130156E-01  9.29093395E-01  2.74130093E-01                          
+  1495  3.97004941E-01  9.29540453E-01  2.74315282E-01                          
+  1496  3.97880754E-01  9.29985849E-01  2.74500255E-01                          
+  1497  3.98757597E-01  9.30429582E-01  2.74685013E-01                          
+  1498  3.99635467E-01  9.30871653E-01  2.74869554E-01                          
+  1499  4.00514364E-01  9.31312060E-01  2.75053879E-01                          
+  1500  4.01394287E-01  9.31750805E-01  2.75237987E-01                          
+  1501  4.02275236E-01  9.32187886E-01  2.75421878E-01                          
+  1502  4.03157209E-01  9.32623303E-01  2.75605551E-01                          
+  1503  4.04040205E-01  9.33057057E-01  2.75789006E-01                          
+  1504  4.04924225E-01  9.33489148E-01  2.75972242E-01                          
+  1505  4.05809266E-01  9.33919575E-01  2.76155259E-01                          
+  1506  4.06695328E-01  9.34348338E-01  2.76338057E-01                          
+  1507  4.07582410E-01  9.34775437E-01  2.76524139E-01                          
+  1508  4.08470512E-01  9.35200873E-01  2.76702992E-01                          
+  1509  4.09359632E-01  9.35624646E-01  2.76885129E-01                          
+  1510  4.10249769E-01  9.36046755E-01  2.77067045E-01                          
+  1511  4.11140924E-01  9.36474531E-01  2.77248740E-01                          
+  1512  4.12033094E-01  9.36885984E-01  2.77430212E-01                          
+  1513  4.12926279E-01  9.37303104E-01  2.77611462E-01                          
+  1514  4.13820477E-01  9.37718562E-01  2.77792490E-01                          
+  1515  4.14715689E-01  9.38132357E-01  2.77973294E-01                          
+  1516  4.15611914E-01  9.38544490E-01  2.78153875E-01                          
+  1517  4.16509149E-01  9.38954962E-01  2.78334232E-01                          
+  1518  4.17407395E-01  9.39363772E-01  2.78514364E-01                          
+  1519  4.18306650E-01  9.39770921E-01  2.78694271E-01                          
+  1520  4.19206914E-01  9.40176410E-01  2.78873954E-01                          
+  1521  4.20108185E-01  9.40580238E-01  2.79053411E-01                          
+  1522  4.21010463E-01  9.40982407E-01  2.79232641E-01                          
+  1523  4.21913747E-01  9.41382916E-01  2.79411646E-01                          
+  1524  4.22818036E-01  9.41781767E-01  2.79590423E-01                          
+  1525  4.23723328E-01  9.42178960E-01  2.79768974E-01                          
+  1526  4.24629624E-01  9.42574496E-01  2.79947296E-01                          
+  1527  4.25536921E-01  9.42968374E-01  2.80125391E-01                          
+  1528  4.26445219E-01  9.43360597E-01  2.80303257E-01                          
+  1529  4.27354517E-01  9.43751163E-01  2.80480894E-01                          
+  1530  4.28264814E-01  9.44140075E-01  2.80658302E-01                          
+  1531  4.29176110E-01  9.44527333E-01  2.80835480E-01                          
+  1532  4.30088402E-01  9.44912938E-01  2.81012429E-01                          
+  1533  4.31001691E-01  9.45296890E-01  2.81189147E-01                          
+  1534  4.31915974E-01  9.45679190E-01  2.81365633E-01                          
+  1535  4.32831252E-01  9.46059840E-01  2.81541889E-01                          
+  1536  4.33747523E-01  9.46438839E-01  2.81717913E-01                          
+  1537  4.34664786E-01  9.46816190E-01  2.81893705E-01                          
+  1538  4.35583040E-01  9.47191892E-01  2.82069264E-01                          
+  1539  4.36502284E-01  9.47565948E-01  2.82244591E-01                          
+  1540  4.37422518E-01  9.47938357E-01  2.82419684E-01                          
+  1541  4.38343739E-01  9.48309121E-01  2.82594543E-01                          
+  1542  4.39265947E-01  9.48678241E-01  2.82769169E-01                          
+  1543  4.40189142E-01  9.49045718E-01  2.82943560E-01                          
+  1544  4.41113321E-01  9.49411554E-01  2.83117716E-01                          
+  1545  4.42038484E-01  9.49775749E-01  2.83291637E-01                          
+  1546  4.42964631E-01  9.50138304E-01  2.83465322E-01                          
+  1547  4.43891759E-01  9.50499221E-01  2.83638771E-01                          
+  1548  4.44819867E-01  9.50858501E-01  2.83811983E-01                          
+  1549  4.45748956E-01  9.51216145E-01  2.83984959E-01                          
+  1550  4.46679023E-01  9.51572155E-01  2.84157697E-01                          
+  1551  4.47610068E-01  9.51926532E-01  2.84330198E-01                          
+  1552  4.48542089E-01  9.52279277E-01  2.84502461E-01                          
+  1553  4.49475086E-01  9.52630391E-01  2.84674485E-01                          
+  1554  4.50409058E-01  9.52979877E-01  2.84846271E-01                          
+  1555  4.51344002E-01  9.53327735E-01  2.85017817E-01                          
+  1556  4.52279919E-01  9.53673967E-01  2.85189124E-01                          
+  1557  4.53216807E-01  9.54018575E-01  2.85360190E-01                          
+  1558  4.54154664E-01  9.54361559E-01  2.85531017E-01                          
+  1559  4.55093491E-01  9.54702923E-01  2.85701602E-01                          
+  1560  4.56033286E-01  9.55042666E-01  2.85871947E-01                          
+  1561  4.56974047E-01  9.55380791E-01  2.86042049E-01                          
+  1562  4.57915773E-01  9.55717300E-01  2.86211910E-01                          
+  1563  4.58858465E-01  9.56052193E-01  2.86381528E-01                          
+  1564  4.59802119E-01  9.56385474E-01  2.86550904E-01                          
+  1565  4.60746736E-01  9.56717143E-01  2.86720037E-01                          
+  1566  4.61692314E-01  9.57047202E-01  2.86888926E-01                          
+  1567  4.62638851E-01  9.57375654E-01  2.87057571E-01                          
+  1568  4.63586348E-01  9.57702499E-01  2.87225972E-01                          
+  1569  4.64534802E-01  9.58027741E-01  2.87394128E-01                          
+  1570  4.65484212E-01  9.58351380E-01  2.87562039E-01                          
+  1571  4.66434578E-01  9.58673418E-01  2.87729705E-01                          
+  1572  4.67385898E-01  9.58993858E-01  2.87897125E-01                          
+  1573  4.68338171E-01  9.59312702E-01  2.88064299E-01                          
+  1574  4.69291395E-01  9.59629951E-01  2.88231226E-01                          
+  1575  4.70245571E-01  9.59945608E-01  2.88397906E-01                          
+  1576  4.71200696E-01  9.60259674E-01  2.88564339E-01                          
+  1577  4.72156769E-01  9.60572152E-01  2.88730524E-01                          
+  1578  4.73113789E-01  9.60883043E-01  2.88896461E-01                          
+  1579  4.74071755E-01  9.61192351E-01  2.89062150E-01                          
+  1580  4.75030665E-01  9.61500076E-01  2.89227590E-01                          
+  1581  4.75990519E-01  9.61806222E-01  2.89392780E-01                          
+  1582  4.76951316E-01  9.62110790E-01  2.89557721E-01                          
+  1583  4.77913053E-01  9.62413783E-01  2.89722412E-01                          
+  1584  4.78875730E-01  9.62715203E-01  2.89886852E-01                          
+  1585  4.79839346E-01  9.63015052E-01  2.90051042E-01                          
+  1586  4.80803899E-01  9.63313333E-01  2.90214980E-01                          
+  1587  4.81769388E-01  9.63610047E-01  2.90378667E-01                          
+  1588  4.82735813E-01  9.63905199E-01  2.90542102E-01                          
+  1589  4.83703171E-01  9.64198788E-01  2.90705285E-01                          
+  1590  4.84671461E-01  9.64490820E-01  2.90868216E-01                          
+  1591  4.85640682E-01  9.64781294E-01  2.91030893E-01                          
+  1592  4.86610834E-01  9.65070215E-01  2.91193317E-01                          
+  1593  4.87581914E-01  9.65357585E-01  2.91355487E-01                          
+  1594  4.88553922E-01  9.65643406E-01  2.91517403E-01                          
+  1595  4.89526855E-01  9.65927681E-01  2.91679064E-01                          
+  1596  4.90500714E-01  9.66210412E-01  2.91840471E-01                          
+  1597  4.91475496E-01  9.66491602E-01  2.92001622E-01                          
+  1598  4.92451200E-01  9.66771254E-01  2.92162518E-01                          
+  1599  4.93427826E-01  9.67049371E-01  2.92323158E-01                          
+  1600  4.94405371E-01  9.67325954E-01  2.92483542E-01                          
+  1601  4.95383835E-01  9.67601008E-01  2.92643668E-01                          
+  1602  4.96363215E-01  9.67874534E-01  2.92803538E-01                          
+  1603  4.97343512E-01  9.68146535E-01  2.92963150E-01                          
+  1604  4.98324723E-01  9.68417015E-01  2.93122505E-01                          
+  1605  4.99306847E-01  9.68685976E-01  2.93281601E-01                          
+  1606  5.00289884E-01  9.68953420E-01  2.93440438E-01                          
+  1607  5.01273831E-01  9.69219352E-01  2.93599017E-01                          
+  1608  5.02258687E-01  9.69483773E-01  2.93757337E-01                          
+  1609  5.03244451E-01  9.69746687E-01  2.93915396E-01                          
+  1610  5.04231122E-01  9.70008096E-01  2.94073196E-01                          
+  1611  5.05218697E-01  9.70268005E-01  2.94230736E-01                          
+  1612  5.06207177E-01  9.70526414E-01  2.94388014E-01                          
+  1613  5.07196560E-01  9.70783329E-01  2.94545032E-01                          
+  1614  5.08186843E-01  9.71038752E-01  2.94701788E-01                          
+  1615  5.09178027E-01  9.71292685E-01  2.94858282E-01                          
+  1616  5.10170109E-01  9.71545132E-01  2.95014515E-01                          
+  1617  5.11163088E-01  9.71796097E-01  2.95170484E-01                          
+  1618  5.12156963E-01  9.72045582E-01  2.95326191E-01                          
+  1619  5.13151732E-01  9.72293590E-01  2.95481634E-01                          
+  1620  5.14147395E-01  9.72540125E-01  2.95636814E-01                          
+  1621  5.15143949E-01  9.72785190E-01  2.95791730E-01                          
+  1622  5.16141393E-01  9.73028789E-01  2.95946382E-01                          
+  1623  5.17139726E-01  9.73270924E-01  2.96100768E-01                          
+  1624  5.18138947E-01  9.73511599E-01  2.96254890E-01                          
+  1625  5.19139053E-01  9.73750817E-01  2.96408747E-01                          
+  1626  5.20140045E-01  9.73988582E-01  2.96562337E-01                          
+  1627  5.21141919E-01  9.74224896E-01  2.96715662E-01                          
+  1628  5.22144676E-01  9.74459764E-01  2.96868720E-01                          
+  1629  5.23148313E-01  9.74693189E-01  2.97021511E-01                          
+  1630  5.24152829E-01  9.74925175E-01  2.97174035E-01                          
+  1631  5.25158222E-01  9.75155724E-01  2.97326291E-01                          
+  1632  5.26164492E-01  9.75384840E-01  2.97478280E-01                          
+  1633  5.27171636E-01  9.75612527E-01  2.97630000E-01                          
+  1634  5.28179654E-01  9.75838789E-01  2.97781452E-01                          
+  1635  5.29188543E-01  9.76063628E-01  2.97932635E-01                          
+  1636  5.30198303E-01  9.76287049E-01  2.98083549E-01                          
+  1637  5.31208932E-01  9.76509055E-01  2.98234193E-01                          
+  1638  5.32220428E-01  9.76729650E-01  2.98384567E-01                          
+  1639  5.33232791E-01  9.76948838E-01  2.98534670E-01                          
+  1640  5.34246018E-01  9.77166621E-01  2.98684503E-01                          
+  1641  5.35260108E-01  9.77383005E-01  2.98834065E-01                          
+  1642  5.36275059E-01  9.77597992E-01  2.98983356E-01                          
+  1643  5.37290871E-01  9.77811587E-01  2.99132375E-01                          
+  1644  5.38307542E-01  9.78023792E-01  2.99281122E-01                          
+  1645  5.39325069E-01  9.78234613E-01  2.99429596E-01                          
+  1646  5.40343453E-01  9.78444052E-01  2.99577798E-01                          
+  1647  5.41362690E-01  9.78652114E-01  2.99725726E-01                          
+  1648  5.42382780E-01  9.78858803E-01  2.99873381E-01                          
+  1649  5.43403722E-01  9.79064121E-01  3.00020763E-01                          
+  1650  5.44425513E-01  9.79268074E-01  3.00167870E-01                          
+  1651  5.45448152E-01  9.79470665E-01  3.00314703E-01                          
+  1652  5.46471638E-01  9.79671899E-01  3.00461260E-01                          
+  1653  5.47495970E-01  9.79871778E-01  3.00607543E-01                          
+  1654  5.48521144E-01  9.80070307E-01  3.00753550E-01                          
+  1655  5.49547161E-01  9.80267491E-01  3.00899282E-01                          
+  1656  5.50574019E-01  9.80463332E-01  3.01044737E-01                          
+  1657  5.51601715E-01  9.80657836E-01  3.01189916E-01                          
+  1658  5.52630249E-01  9.80851006E-01  3.01334818E-01                          
+  1659  5.53659619E-01  9.81042846E-01  3.01479442E-01                          
+  1660  5.54689824E-01  9.81233360E-01  3.01623790E-01                          
+  1661  5.55720861E-01  9.81422553E-01  3.01767859E-01                          
+  1662  5.56752729E-01  9.81610428E-01  3.01911650E-01                          
+  1663  5.57785428E-01  9.81796991E-01  3.02055163E-01                          
+  1664  5.58818954E-01  9.81982244E-01  3.02198396E-01                          
+  1665  5.59853307E-01  9.82166192E-01  3.02341351E-01                          
+  1666  5.60888485E-01  9.82348840E-01  3.02484026E-01                          
+  1667  5.61924487E-01  9.82530191E-01  3.02626421E-01                          
+  1668  5.62961310E-01  9.82710251E-01  3.02768536E-01                          
+  1669  5.63998954E-01  9.82889022E-01  3.02910370E-01                          
+  1670  5.65037416E-01  9.83066510E-01  3.03051923E-01                          
+  1671  5.66076696E-01  9.83242718E-01  3.03193196E-01                          
+  1672  5.67116791E-01  9.83417652E-01  3.03334186E-01                          
+  1673  5.68157700E-01  9.83591314E-01  3.03474895E-01                          
+  1674  5.69199421E-01  9.83763711E-01  3.03615322E-01                          
+  1675  5.70241953E-01  9.83934845E-01  3.03755466E-01                          
+  1676  5.71285294E-01  9.84104723E-01  3.03895327E-01                          
+  1677  5.72329442E-01  9.84273346E-01  3.04034905E-01                          
+  1678  5.73374397E-01  9.84440722E-01  3.04174199E-01                          
+  1679  5.74420155E-01  9.84606853E-01  3.04313210E-01                          
+  1680  5.75466716E-01  9.84771744E-01  3.04451936E-01                          
+  1681  5.76514078E-01  9.84935400E-01  3.04590378E-01                          
+  1682  5.77562240E-01  9.85097825E-01  3.04728536E-01                          
+  1683  5.78611199E-01  9.85259023E-01  3.04866408E-01                          
+  1684  5.79660954E-01  9.85419000E-01  3.05003994E-01                          
+  1685  5.80711503E-01  9.85577760E-01  3.05141295E-01                          
+  1686  5.81762846E-01  9.85735306E-01  3.05278309E-01                          
+  1687  5.82814979E-01  9.85891645E-01  3.05415037E-01                          
+  1688  5.83867901E-01  9.86046780E-01  3.05551479E-01                          
+  1689  5.84921612E-01  9.86200715E-01  3.05687633E-01                          
+  1690  5.85976108E-01  9.86353457E-01  3.05823500E-01                          
+  1691  5.87031389E-01  9.86505008E-01  3.05959079E-01                          
+  1692  5.88087453E-01  9.86655375E-01  3.06094370E-01                          
+  1693  5.89144297E-01  9.86804560E-01  3.06229372E-01                          
+  1694  5.90201921E-01  9.86952570E-01  3.06364086E-01                          
+  1695  5.91260323E-01  9.87099409E-01  3.06498511E-01                          
+  1696  5.92319500E-01  9.87245081E-01  3.06632646E-01                          
+  1697  5.93379452E-01  9.87389591E-01  3.06766492E-01                          
+  1698  5.94440177E-01  9.87532944E-01  3.06900048E-01                          
+  1699  5.95501672E-01  9.87675145E-01  3.07033313E-01                          
+  1700  5.96563936E-01  9.87816198E-01  3.07166288E-01                          
+  1701  5.97626968E-01  9.87956108E-01  3.07298972E-01                          
+  1702  5.98690766E-01  9.88094880E-01  3.07431365E-01                          
+  1703  5.99755327E-01  9.88232519E-01  3.07563466E-01                          
+  1704  6.00820651E-01  9.88369029E-01  3.07695275E-01                          
+  1705  6.01886736E-01  9.88504415E-01  3.07826792E-01                          
+  1706  6.02953579E-01  9.88638682E-01  3.07958016E-01                          
+  1707  6.04021179E-01  9.88771835E-01  3.08088948E-01                          
+  1708  6.05089535E-01  9.88903879E-01  3.08219586E-01                          
+  1709  6.06158644E-01  9.89034818E-01  3.08349931E-01                          
+  1710  6.07228506E-01  9.89164658E-01  3.08479982E-01                          
+  1711  6.08299117E-01  9.89293402E-01  3.08609739E-01                          
+  1712  6.09370476E-01  9.89421057E-01  3.08739201E-01                          
+  1713  6.10442583E-01  9.89547627E-01  3.08868369E-01                          
+  1714  6.11515434E-01  9.89673116E-01  3.08997242E-01                          
+  1715  6.12589028E-01  9.89797530E-01  3.09125819E-01                          
+  1716  6.13663363E-01  9.89920874E-01  3.09254101E-01                          
+  1717  6.14738438E-01  9.90043152E-01  3.09382087E-01                          
+  1718  6.15814250E-01  9.90164370E-01  3.09509776E-01                          
+  1719  6.16890799E-01  9.90284533E-01  3.09637169E-01                          
+  1720  6.17968082E-01  9.90403644E-01  3.09764265E-01                          
+  1721  6.19046097E-01  9.90521710E-01  3.09891064E-01                          
+  1722  6.20124843E-01  9.90638735E-01  3.10017565E-01                          
+  1723  6.21204317E-01  9.90754725E-01  3.10143768E-01                          
+  1724  6.22284519E-01  9.90869683E-01  3.10269673E-01                          
+  1725  6.23365445E-01  9.90983616E-01  3.10395280E-01                          
+  1726  6.24447095E-01  9.91096528E-01  3.10520588E-01                          
+  1727  6.25529467E-01  9.91208425E-01  3.10645597E-01                          
+  1728  6.26612558E-01  9.91319310E-01  3.10770307E-01                          
+  1729  6.27696368E-01  9.91429190E-01  3.10894716E-01                          
+  1730  6.28780893E-01  9.91544180E-01  3.11018826E-01                          
+  1731  6.29866133E-01  9.91652048E-01  3.11142636E-01                          
+  1732  6.30952085E-01  9.91758926E-01  3.11266144E-01                          
+  1733  6.32038748E-01  9.91864819E-01  3.11389352E-01                          
+  1734  6.33126120E-01  9.91963677E-01  3.11512259E-01                          
+  1735  6.34214198E-01  9.92067628E-01  3.11634864E-01                          
+  1736  6.35302982E-01  9.92170607E-01  3.11757168E-01                          
+  1737  6.36392469E-01  9.92272622E-01  3.11879169E-01                          
+  1738  6.37482657E-01  9.92373676E-01  3.12000868E-01                          
+  1739  6.38573545E-01  9.92473775E-01  3.12122264E-01                          
+  1740  6.39665131E-01  9.92572923E-01  3.12243357E-01                          
+  1741  6.40757412E-01  9.92671126E-01  3.12364147E-01                          
+  1742  6.41850387E-01  9.92768390E-01  3.12484633E-01                          
+  1743  6.42944055E-01  9.92864718E-01  3.12604815E-01                          
+  1744  6.44038413E-01  9.92960116E-01  3.12724692E-01                          
+  1745  6.45133459E-01  9.93054589E-01  3.12844266E-01                          
+  1746  6.46229191E-01  9.93148143E-01  3.12963534E-01                          
+  1747  6.47325608E-01  9.93240782E-01  3.13082497E-01                          
+  1748  6.48422708E-01  9.93332511E-01  3.13201155E-01                          
+  1749  6.49520489E-01  9.93423336E-01  3.13319507E-01                          
+  1750  6.50618948E-01  9.93513262E-01  3.13437553E-01                          
+  1751  6.51718085E-01  9.93602293E-01  3.13555293E-01                          
+  1752  6.52817896E-01  9.93690436E-01  3.13672725E-01                          
+  1753  6.53918381E-01  9.93777694E-01  3.13789851E-01                          
+  1754  6.55019537E-01  9.93864073E-01  3.13906670E-01                          
+  1755  6.56121363E-01  9.93949579E-01  3.14023181E-01                          
+  1756  6.57223856E-01  9.94034216E-01  3.14139384E-01                          
+  1757  6.58327014E-01  9.94117989E-01  3.14255279E-01                          
+  1758  6.59430837E-01  9.94200904E-01  3.14370866E-01                          
+  1759  6.60535321E-01  9.94282966E-01  3.14486144E-01                          
+  1760  6.61640464E-01  9.94364180E-01  3.14601113E-01                          
+  1761  6.62746266E-01  9.94444550E-01  3.14715772E-01                          
+  1762  6.63852723E-01  9.94524083E-01  3.14830122E-01                          
+  1763  6.64959835E-01  9.94602782E-01  3.14944162E-01                          
+  1764  6.66067598E-01  9.94680654E-01  3.15057891E-01                          
+  1765  6.67176012E-01  9.94757704E-01  3.15171310E-01                          
+  1766  6.68285074E-01  9.94833936E-01  3.15284419E-01                          
+  1767  6.69394782E-01  9.94909356E-01  3.15397216E-01                          
+  1768  6.70505134E-01  9.94983968E-01  3.15509701E-01                          
+  1769  6.71616128E-01  9.95057779E-01  3.15621875E-01                          
+  1770  6.72727763E-01  9.95130792E-01  3.15733737E-01                          
+  1771  6.73840036E-01  9.95203014E-01  3.15845286E-01                          
+  1772  6.74952946E-01  9.95274448E-01  3.15956523E-01                          
+  1773  6.76066490E-01  9.95345101E-01  3.16067447E-01                          
+  1774  6.77180666E-01  9.95414978E-01  3.16178058E-01                          
+  1775  6.78295473E-01  9.95484083E-01  3.16288355E-01                          
+  1776  6.79410908E-01  9.95552422E-01  3.16398338E-01                          
+  1777  6.80526970E-01  9.95619999E-01  3.16508008E-01                          
+  1778  6.81643656E-01  9.95686820E-01  3.16617362E-01                          
+  1779  6.82760965E-01  9.95752890E-01  3.16726403E-01                          
+  1780  6.83878894E-01  9.95818215E-01  3.16835128E-01                          
+  1781  6.84997442E-01  9.95882798E-01  3.16943538E-01                          
+  1782  6.86116606E-01  9.95946645E-01  3.17051632E-01                          
+  1783  6.87236385E-01  9.96009762E-01  3.17159410E-01                          
+  1784  6.88356776E-01  9.96072153E-01  3.17266873E-01                          
+  1785  6.89477778E-01  9.96133823E-01  3.17374018E-01                          
+  1786  6.90599389E-01  9.96194778E-01  3.17480847E-01                          
+  1787  6.91721605E-01  9.96255022E-01  3.17587359E-01                          
+  1788  6.92844427E-01  9.96314561E-01  3.17693554E-01                          
+  1789  6.93967850E-01  9.96373399E-01  3.17799430E-01                          
+  1790  6.95091874E-01  9.96431542E-01  3.17904989E-01                          
+  1791  6.96216497E-01  9.96488994E-01  3.18010230E-01                          
+  1792  6.97341715E-01  9.96545761E-01  3.18115152E-01                          
+  1793  6.98467528E-01  9.96601848E-01  3.18219755E-01                          
+  1794  6.99593934E-01  9.96657259E-01  3.18324039E-01                          
+  1795  7.00720929E-01  9.96712001E-01  3.18428004E-01                          
+  1796  7.01848513E-01  9.96766076E-01  3.18531649E-01                          
+  1797  7.02976683E-01  9.96819492E-01  3.18634974E-01                          
+  1798  7.04105437E-01  9.96872252E-01  3.18737978E-01                          
+  1799  7.05234773E-01  9.96924362E-01  3.18840662E-01                          
+  1800  7.06364688E-01  9.96975826E-01  3.18943025E-01                          
+  1801  7.07495182E-01  9.97026650E-01  3.19045067E-01                          
+  1802  7.08626252E-01  9.97076838E-01  3.19146787E-01                          
+  1803  7.09757895E-01  9.97126396E-01  3.19248186E-01                          
+  1804  7.10890110E-01  9.97175328E-01  3.19349262E-01                          
+  1805  7.12022895E-01  9.97223639E-01  3.19450016E-01                          
+  1806  7.13156247E-01  9.97271335E-01  3.19550447E-01                          
+  1807  7.14290165E-01  9.97318420E-01  3.19650556E-01                          
+  1808  7.15424646E-01  9.97364899E-01  3.19750340E-01                          
+  1809  7.16559688E-01  9.97410776E-01  3.19849802E-01                          
+  1810  7.17695290E-01  9.97456058E-01  3.19948939E-01                          
+  1811  7.18831449E-01  9.97500748E-01  3.20047752E-01                          
+  1812  7.19968163E-01  9.97544851E-01  3.20146241E-01                          
+  1813  7.21105429E-01  9.97588373E-01  3.20244405E-01                          
+  1814  7.22243247E-01  9.97631318E-01  3.20343980E-01                          
+  1815  7.23381613E-01  9.97677362E-01  3.20439757E-01                          
+  1816  7.24520526E-01  9.97719160E-01  3.20536945E-01                          
+  1817  7.25659984E-01  9.97756741E-01  3.20633806E-01                          
+  1818  7.26799984E-01  9.97797427E-01  3.20730342E-01                          
+  1819  7.27940524E-01  9.97837560E-01  3.20826550E-01                          
+  1820  7.29081603E-01  9.97877145E-01  3.20922432E-01                          
+  1821  7.30223217E-01  9.97916187E-01  3.21017987E-01                          
+  1822  7.31365366E-01  9.97954691E-01  3.21113214E-01                          
+  1823  7.32508046E-01  9.97992660E-01  3.21208113E-01                          
+  1824  7.33651256E-01  9.98030100E-01  3.21302684E-01                          
+  1825  7.34794994E-01  9.98067017E-01  3.21396927E-01                          
+  1826  7.35939257E-01  9.98103413E-01  3.21490841E-01                          
+  1827  7.37084043E-01  9.98139294E-01  3.21584425E-01                          
+  1828  7.38229351E-01  9.98174665E-01  3.21677681E-01                          
+  1829  7.39375177E-01  9.98209531E-01  3.21770607E-01                          
+  1830  7.40521521E-01  9.98243895E-01  3.21863203E-01                          
+  1831  7.41668379E-01  9.98277763E-01  3.21955468E-01                          
+  1832  7.42815750E-01  9.98311139E-01  3.22047403E-01                          
+  1833  7.43963631E-01  9.98344028E-01  3.22139007E-01                          
+  1834  7.45112020E-01  9.98376434E-01  3.22230280E-01                          
+  1835  7.46260916E-01  9.98408363E-01  3.22321222E-01                          
+  1836  7.47410315E-01  9.98439817E-01  3.22411831E-01                          
+  1837  7.48560217E-01  9.98470803E-01  3.22502108E-01                          
+  1838  7.49710618E-01  9.98501324E-01  3.22592053E-01                          
+  1839  7.50861516E-01  9.98531386E-01  3.22681666E-01                          
+  1840  7.52012910E-01  9.98560992E-01  3.22770945E-01                          
+  1841  7.53164797E-01  9.98590147E-01  3.22859890E-01                          
+  1842  7.54317175E-01  9.98618856E-01  3.22948502E-01                          
+  1843  7.55470042E-01  9.98647122E-01  3.23036780E-01                          
+  1844  7.56623395E-01  9.98674951E-01  3.23124724E-01                          
+  1845  7.57777233E-01  9.98702347E-01  3.23212333E-01                          
+  1846  7.58931553E-01  9.98729314E-01  3.23299607E-01                          
+  1847  7.60086352E-01  9.98755857E-01  3.23386545E-01                          
+  1848  7.61241630E-01  9.98781980E-01  3.23473148E-01                          
+  1849  7.62397384E-01  9.98807687E-01  3.23559415E-01                          
+  1850  7.63553611E-01  9.98832982E-01  3.23645346E-01                          
+  1851  7.64710309E-01  9.98857871E-01  3.23730940E-01                          
+  1852  7.65867476E-01  9.98882357E-01  3.23816197E-01                          
+  1853  7.67025110E-01  9.98906444E-01  3.23901117E-01                          
+  1854  7.68183209E-01  9.98930137E-01  3.23985699E-01                          
+  1855  7.69341770E-01  9.98953440E-01  3.24069944E-01                          
+  1856  7.70500791E-01  9.98976358E-01  3.24153850E-01                          
+  1857  7.71660271E-01  9.98998894E-01  3.24237417E-01                          
+  1858  7.72820206E-01  9.99021053E-01  3.24320646E-01                          
+  1859  7.73980595E-01  9.99042838E-01  3.24403535E-01                          
+  1860  7.75141435E-01  9.99064255E-01  3.24486085E-01                          
+  1861  7.76302724E-01  9.99085307E-01  3.24568295E-01                          
+  1862  7.77464461E-01  9.99105997E-01  3.24650165E-01                          
+  1863  7.78626641E-01  9.99126332E-01  3.24731694E-01                          
+  1864  7.79789265E-01  9.99146313E-01  3.24812882E-01                          
+  1865  7.80952329E-01  9.99165947E-01  3.24893728E-01                          
+  1866  7.82115830E-01  9.99185235E-01  3.24974234E-01                          
+  1867  7.83279768E-01  9.99204184E-01  3.25054397E-01                          
+  1868  7.84444138E-01  9.99222795E-01  3.25134218E-01                          
+  1869  7.85608941E-01  9.99241075E-01  3.25213696E-01                          
+  1870  7.86774172E-01  9.99259026E-01  3.25292831E-01                          
+  1871  7.87939830E-01  9.99276652E-01  3.25371623E-01                          
+  1872  7.89105912E-01  9.99293957E-01  3.25450071E-01                          
+  1873  7.90272417E-01  9.99310946E-01  3.25528175E-01                          
+  1874  7.91439342E-01  9.99327622E-01  3.25605934E-01                          
+  1875  7.92606685E-01  9.99343989E-01  3.25683349E-01                          
+  1876  7.93774443E-01  9.99360051E-01  3.25760419E-01                          
+  1877  7.94942614E-01  9.99375811E-01  3.25837143E-01                          
+  1878  7.96111197E-01  9.99391274E-01  3.25913521E-01                          
+  1879  7.97280188E-01  9.99406443E-01  3.25989553E-01                          
+  1880  7.98449586E-01  9.99421322E-01  3.26065238E-01                          
+  1881  7.99619388E-01  9.99435914E-01  3.26140576E-01                          
+  1882  8.00789591E-01  9.99450224E-01  3.26215567E-01                          
+  1883  8.01960195E-01  9.99464255E-01  3.26290210E-01                          
+  1884  8.03131196E-01  9.99478011E-01  3.26364505E-01                          
+  1885  8.04302592E-01  9.99491495E-01  3.26438452E-01                          
+  1886  8.05474381E-01  9.99504711E-01  3.26512049E-01                          
+  1887  8.06646560E-01  9.99517663E-01  3.26585298E-01                          
+  1888  8.07819128E-01  9.99530354E-01  3.26658196E-01                          
+  1889  8.08992081E-01  9.99542787E-01  3.26730745E-01                          
+  1890  8.10165419E-01  9.99554967E-01  3.26802943E-01                          
+  1891  8.11339137E-01  9.99566897E-01  3.26874790E-01                          
+  1892  8.12513235E-01  9.99578580E-01  3.26946286E-01                          
+  1893  8.13687710E-01  9.99590019E-01  3.27017431E-01                          
+  1894  8.14862559E-01  9.99601219E-01  3.27088223E-01                          
+  1895  8.16037781E-01  9.99612182E-01  3.27155088E-01                          
+  1896  8.17213372E-01  9.99622913E-01  3.27225179E-01                          
+  1897  8.18389331E-01  9.99633413E-01  3.27294918E-01                          
+  1898  8.19565656E-01  9.99643687E-01  3.27364303E-01                          
+  1899  8.20742343E-01  9.99653739E-01  3.27433334E-01                          
+  1900  8.21919391E-01  9.99663570E-01  3.27502010E-01                          
+  1901  8.23096798E-01  9.99665701E-01  3.27570331E-01                          
+  1902  8.24274561E-01  9.99675113E-01  3.27638297E-01                          
+  1903  8.25452677E-01  9.99684315E-01  3.27705907E-01                          
+  1904  8.26631145E-01  9.99693310E-01  3.27773161E-01                          
+  1905  8.27809962E-01  9.99702102E-01  3.27840058E-01                          
+  1906  8.28989126E-01  9.99710693E-01  3.27906598E-01                          
+  1907  8.30168635E-01  9.99719087E-01  3.27972780E-01                          
+  1908  8.31348485E-01  9.99727287E-01  3.28038605E-01                          
+  1909  8.32528676E-01  9.99735296E-01  3.28104071E-01                          
+  1910  8.33709204E-01  9.99743117E-01  3.28169178E-01                          
+  1911  8.34890067E-01  9.99750752E-01  3.28233925E-01                          
+  1912  8.36071264E-01  9.99758206E-01  3.28298313E-01                          
+  1913  8.37252791E-01  9.99765481E-01  3.28362340E-01                          
+  1914  8.38434646E-01  9.99772580E-01  3.28426007E-01                          
+  1915  8.39616827E-01  9.99779506E-01  3.28489312E-01                          
+  1916  8.40799331E-01  9.99786261E-01  3.28552256E-01                          
+  1917  8.41982157E-01  9.99792850E-01  3.28614837E-01                          
+  1918  8.43165301E-01  9.99799273E-01  3.28677056E-01                          
+  1919  8.44348763E-01  9.99805536E-01  3.28738911E-01                          
+  1920  8.45532538E-01  9.99811639E-01  3.28800402E-01                          
+  1921  8.46716625E-01  9.99817587E-01  3.28861529E-01                          
+  1922  8.47901022E-01  9.99823381E-01  3.28922292E-01                          
+  1923  8.49085726E-01  9.99829025E-01  3.28982689E-01                          
+  1924  8.50270735E-01  9.99834521E-01  3.29042720E-01                          
+  1925  8.51456046E-01  9.99839872E-01  3.29102385E-01                          
+  1926  8.52641657E-01  9.99845080E-01  3.29161684E-01                          
+  1927  8.53827566E-01  9.99850149E-01  3.29220614E-01                          
+  1928  8.55013771E-01  9.99855081E-01  3.29279177E-01                          
+  1929  8.56200268E-01  9.99859877E-01  3.29337371E-01                          
+  1930  8.57387057E-01  9.99864542E-01  3.29395196E-01                          
+  1931  8.58574133E-01  9.99869078E-01  3.29452652E-01                          
+  1932  8.59761496E-01  9.99873486E-01  3.29509737E-01                          
+  1933  8.60949142E-01  9.99877770E-01  3.29566452E-01                          
+  1934  8.62137069E-01  9.99881932E-01  3.29622795E-01                          
+  1935  8.63325275E-01  9.99885974E-01  3.29678766E-01                          
+  1936  8.64513758E-01  9.99889899E-01  3.29734364E-01                          
+  1937  8.65702515E-01  9.99893709E-01  3.29789590E-01                          
+  1938  8.66891544E-01  9.99897406E-01  3.29844441E-01                          
+  1939  8.68080842E-01  9.99900994E-01  3.29898918E-01                          
+  1940  8.69270407E-01  9.99904473E-01  3.29953020E-01                          
+  1941  8.70460236E-01  9.99907847E-01  3.30006747E-01                          
+  1942  8.71650328E-01  9.99911118E-01  3.30060097E-01                          
+  1943  8.72840680E-01  9.99914287E-01  3.30113070E-01                          
+  1944  8.74031289E-01  9.99917358E-01  3.30165665E-01                          
+  1945  8.75222154E-01  9.99920332E-01  3.30217882E-01                          
+  1946  8.76413271E-01  9.99923211E-01  3.30269720E-01                          
+  1947  8.77604638E-01  9.99925997E-01  3.30321178E-01                          
+  1948  8.78796254E-01  9.99928694E-01  3.30372256E-01                          
+  1949  8.79988115E-01  9.99931302E-01  3.30422953E-01                          
+  1950  8.81180219E-01  9.99933823E-01  3.30473267E-01                          
+  1951  8.82372564E-01  9.99936261E-01  3.30523200E-01                          
+  1952  8.83565148E-01  9.99938616E-01  3.30572749E-01                          
+  1953  8.84757967E-01  9.99940891E-01  3.30621914E-01                          
+  1954  8.85951020E-01  9.99943087E-01  3.30670696E-01                          
+  1955  8.87144305E-01  9.99945207E-01  3.30719090E-01                          
+  1956  8.88337818E-01  9.99947252E-01  3.30767098E-01                          
+  1957  8.89531558E-01  9.99949225E-01  3.30814719E-01                          
+  1958  8.90725521E-01  9.99951127E-01  3.30861952E-01                          
+  1959  8.91919707E-01  9.99952959E-01  3.30908796E-01                          
+  1960  8.93114112E-01  9.99954725E-01  3.30955251E-01                          
+  1961  8.94308733E-01  9.99956425E-01  3.31001315E-01                          
+  1962  8.95503569E-01  9.99958061E-01  3.31046987E-01                          
+  1963  8.96698617E-01  9.99959635E-01  3.31092267E-01                          
+  1964  8.97893875E-01  9.99961148E-01  3.31137154E-01                          
+  1965  8.99089339E-01  9.99962603E-01  3.31181646E-01                          
+  1966  9.00285009E-01  9.99964001E-01  3.31225744E-01                          
+  1967  9.01480881E-01  9.99965343E-01  3.31269442E-01                          
+  1968  9.02676953E-01  9.99966631E-01  3.31312746E-01                          
+  1969  9.03873223E-01  9.99967867E-01  3.31355651E-01                          
+  1970  9.05069688E-01  9.99969052E-01  3.31398158E-01                          
+  1971  9.06266346E-01  9.99970188E-01  3.31440265E-01                          
+  1972  9.07463194E-01  9.99971276E-01  3.31481971E-01                          
+  1973  9.08660230E-01  9.99972317E-01  3.31523274E-01                          
+  1974  9.09857451E-01  9.99973313E-01  3.31564174E-01                          
+  1975  9.11054856E-01  9.99974266E-01  3.31604670E-01                          
+  1976  9.12252441E-01  9.99975177E-01  3.31644761E-01                          
+  1977  9.13450205E-01  9.99976046E-01  3.31684445E-01                          
+  1978  9.14648144E-01  9.99976876E-01  3.31723721E-01                          
+  1979  9.15846257E-01  9.99977668E-01  3.31762588E-01                          
+  1980  9.17044541E-01  9.99978423E-01  3.31801045E-01                          
+  1981  9.18242994E-01  9.99979142E-01  3.31839091E-01                          
+  1982  9.19441612E-01  9.99979827E-01  3.31876724E-01                          
+  1983  9.20640395E-01  9.99980479E-01  3.31913943E-01                          
+  1984  9.21839339E-01  9.99981098E-01  3.31950746E-01                          
+  1985  9.23038441E-01  9.99981686E-01  3.31987163E-01                          
+  1986  9.24237701E-01  9.99982245E-01  3.32023134E-01                          
+  1987  9.25437114E-01  9.99982775E-01  3.32058685E-01                          
+  1988  9.26636679E-01  9.99983277E-01  3.32093816E-01                          
+  1989  9.27836393E-01  9.99983753E-01  3.32128524E-01                          
+  1990  9.29036253E-01  9.99984203E-01  3.32162808E-01                          
+  1991  9.30236259E-01  9.99984629E-01  3.32196666E-01                          
+  1992  9.31436406E-01  9.99985031E-01  3.32230098E-01                          
+  1993  9.32636692E-01  9.99985411E-01  3.32263100E-01                          
+  1994  9.33837116E-01  9.99985769E-01  3.32295673E-01                          
+  1995  9.35037674E-01  9.99986107E-01  3.32327813E-01                          
+  1996  9.36238364E-01  9.99986424E-01  3.32359519E-01                          
+  1997  9.37439184E-01  9.99986723E-01  3.32390789E-01                          
+  1998  9.38640131E-01  9.99987003E-01  3.32421621E-01                          
+  1999  9.39841203E-01  9.99987267E-01  3.32452014E-01                          
+  2000  9.41042398E-01  9.99987514E-01  3.32481965E-01                          
+  2001  9.42243712E-01  9.99987745E-01  3.32511473E-01                          
+  2002  9.43445145E-01  9.99987962E-01  3.32540534E-01                          
+  2003  9.44646692E-01  9.99988164E-01  3.32569148E-01                          
+  2004  9.45848352E-01  9.99988353E-01  3.32636974E-01                          
+  2005  9.47050122E-01  9.99988529E-01  3.32664153E-01                          
+  2006  9.48252000E-01  9.99988693E-01  3.32690861E-01                          
+  2007  9.49453983E-01  9.99988846E-01  3.32717092E-01                          
+  2008  9.50656069E-01  9.99988987E-01  3.32742845E-01                          
+  2009  9.51858255E-01  9.99989119E-01  3.32768114E-01                          
+  2010  9.53060540E-01  9.99989241E-01  3.32792897E-01                          
+  2011  9.54262920E-01  9.99989354E-01  3.32817189E-01                          
+  2012  9.55465394E-01  9.99989459E-01  3.32840986E-01                          
+  2013  9.56667957E-01  9.99989556E-01  3.32864284E-01                          
+  2014  9.57870610E-01  9.99989645E-01  3.32887078E-01                          
+  2015  9.59073348E-01  9.99989728E-01  3.32909363E-01                          
+  2016  9.60276169E-01  9.99989804E-01  3.32931134E-01                          
+  2017  9.61479071E-01  9.99989874E-01  3.32952386E-01                          
+  2018  9.62682052E-01  9.99989938E-01  3.32973111E-01                          
+  2019  9.63885109E-01  9.99989998E-01  3.32993306E-01                          
+  2020  9.65088239E-01  9.99990052E-01  3.33012962E-01                          
+  2021  9.66291440E-01  9.99990102E-01  3.33032073E-01                          
+  2022  9.67494710E-01  9.99990148E-01  3.33050631E-01                          
+  2023  9.68698047E-01  9.99990191E-01  3.33068628E-01                          
+  2024  9.69901447E-01  9.99990230E-01  3.33086056E-01                          
+  2025  9.71104908E-01  9.99990266E-01  3.33102905E-01                          
+  2026  9.72308428E-01  9.99990299E-01  3.33119165E-01                          
+  2027  9.73512005E-01  9.99990330E-01  3.33134824E-01                          
+  2028  9.74715635E-01  9.99990358E-01  3.33149871E-01                          
+  2029  9.75919317E-01  9.99990385E-01  3.33164292E-01                          
+  2030  9.77123049E-01  9.99990409E-01  3.33178072E-01                          
+  2031  9.78326826E-01  9.99990432E-01  3.33191196E-01                          
+  2032  9.79530648E-01  9.99990454E-01  3.33203644E-01                          
+  2033  9.80734512E-01  9.99990475E-01  3.33215396E-01                          
+  2034  9.81938415E-01  9.99990494E-01  3.33226429E-01                          
+  2035  9.83142354E-01  9.99990513E-01  3.33236717E-01                          
+  2036  9.84346328E-01  9.99990530E-01  3.33246227E-01                          
+  2037  9.85550334E-01  9.99990548E-01  3.33254924E-01                          
+  2038  9.86754370E-01  9.99990564E-01  3.33262765E-01                          
+  2039  9.87958432E-01  9.99990580E-01  3.33269700E-01                          
+  2040  9.89162519E-01  9.99990596E-01  3.33275664E-01                          
+  2041  9.90366628E-01  9.99990612E-01  3.33280578E-01                          
+  2042  9.91570756E-01  9.99990627E-01  3.33284342E-01                          
+  2043  9.92774902E-01  9.99990642E-01  3.33286820E-01                          
+  2044  9.93979063E-01  9.99990657E-01  3.33287825E-01                          
+  2045  9.95183235E-01  9.99990672E-01  3.33287078E-01                          
+  2046  9.96387418E-01  9.99990687E-01  3.33284136E-01                          
+  2047  9.97591608E-01  9.99990702E-01  3.33278180E-01                          
+  2048  9.98795803E-01  9.99990716E-01  3.33267271E-01                          
+  2049  1.00000000E+00  9.99990731E-01  3.33237496E-01                          
+ENDE                                                                            
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/addang.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/addang.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/addang.f	(revision 4308)
@@ -0,0 +1,83 @@
+      SUBROUTINE ADDANG( COST0,PHI0, COST,PHI, COST1,PHI1 )
+ 
+C-----------------------------------------------------------------------
+C  ADD(ITION OF) ANG(LES)
+C
+C  ADDITION OF ANGLES IS DONE BY SEQUENTIAL ROTATIONS :
+C    1. ROTATE VECTOR AROUND Z AXIS BY -PHI0
+C    2. ROTATE VECTOR AROUND Y AXIS BY -THETA0  NOW VECTOR IS (0,0,1)
+C
+C    3. ROTATE VECTOR AROUND Y AXIS BY  THETA ANGLES TO BE ADDED
+C    4. ROTATE VECTOR AROUND Z AXIS BY  PHI
+C
+C    5. ROTATE VECTOR AROUND Y AXIS BY  THETA0
+C    6. ROTATE VECTOR AROUND Z AXIS BY -PHI0
+C              NOW VECTOR IS (X,Y,Z) WITH COST1     = Z
+C                                     AND TAN(PHI1) = Y/X
+C  THIS SUBROUTINE IS CALLED FROM MANY ROUTINES
+C  ARGUMENTS:
+C   COST0  = COSINE THETA OF PARTICLE BEFORE
+C   PHI0   = PHI          OF PARTICLE BEFORE
+C   COST   = COSINE THETA OF ANGLE TO ADD
+C   PHI    = PHI          OF ANGLE TO ADD
+C   COST1  = COSINE THETA OF PARTICLE AFTER ADDITION OF ANGLES
+C   PHI1   = PHI    THETA OF PARTICLE AFTER ADDITION OF ANGLES
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION A,COST,COST0,COST1,CPHI,CPHI0,PHI,PHI0,PHI1,
+     *                 SINT,SINT0,SPHI,SPHI0,XXX,YYY,ZZZ
+C-----------------------------------------------------------------------
+ 
+CC    IF ( DEBUG ) WRITE(MDEBUG,*) 'ADDANG:'
+ 
+      SINT0 = SQRT(1.D0-COST0**2)
+      SINT  = SQRT(1.D0-COST **2)
+      SPHI0 = SIN(PHI0)
+      CPHI0 = COS(PHI0)
+      SPHI  = SIN(PHI)
+      CPHI  = COS(PHI)
+ 
+      A   = COST0 * CPHI * SINT + COST * SINT0
+      XXX = A    * CPHI0 - SPHI0 * SINT * SPHI
+      YYY = A    * SPHI0 + CPHI0 * SINT * SPHI
+      ZZZ = COST * COST0 - SINT0 * SINT * CPHI
+ 
+C  GET NEW COSINE(THETA) AND PHI
+      COST1  = ZZZ
+      IF ( YYY .EQ. 0.D0  .AND.  XXX .EQ. 0.D0 ) THEN
+        PHI1 = 0.D0
+      ELSE
+        PHI1 = ATAN2( YYY, XXX )
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/addani.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/addani.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/addani.f	(revision 4308)
@@ -0,0 +1,85 @@
+      SUBROUTINE ADDANI( COST0,PHI0, COST1,PHI1, DCTH,DPHI )
+ 
+C-----------------------------------------------------------------------
+C  ADD(ITION OF) AN(GLES) I(NVERTED)
+C
+C  GIVEN TWO DIRECTIONS (0 AND 1) IN A COMMON SYSTEM OF REFERENCE.
+C  FIND DCTH AND DPHI SUCH, THAT THE ROUTINE ADDANG TRANSFORMS
+C  (COST0,PHI0) BY ADDING (DCTH,DPHI) INTO (COST1,PHI1).
+C  CALCULATION IS DONE BY SEQUENTIAL ROTATIONS :
+C    1. ROTATE VECTOR AROUND Z AXIS BY -PHI1
+C    2. ROTATE VECTOR AROUND Y AXIS BY -THETA1
+C  NOW VECTOR IS (X,Y,Z) WITH DCTH      = Z
+C                         AND TAN(DPHI) = Y/X
+C  THIS SUBROUTINE IS CALLED FROM MUDECY
+C  ARGUMENTS:
+C   COST0  = COSINE THETA OF PARTICLE BEFORE
+C   PHI0   = PHI          OF PARTICLE BEFORE
+C   COST1  = COSINE THETA OF PARTICLE
+C   PHI1   = PHI          OF PARTICLE
+C   DCTH   = COSINE THETA OF ANGLE
+C   DPHI   = PHI          OF ANGLE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION COST0,COST1,CP,CP1,CT,CT1,DCTH,DPHI,PHI0,PHI1,
+     *                 SP,SP1,ST,ST1,X,XX,Y,YY,Z,ZZ
+C-----------------------------------------------------------------------
+ 
+CC    IF ( DEBUG ) WRITE(MDEBUG,*) 'ADDANI:'
+ 
+      CT  = COST0
+      ST  = SQRT(1.D0-CT**2)
+      CP  = COS(PHI0)
+      SP  = SIN(PHI0)
+      CT1 = COST1
+      ST1 = SQRT(1.D0-CT1**2)
+      CP1 = COS(PHI1)
+      SP1 = SIN(PHI1)
+ 
+      X = ST1 * CP1
+      Y = ST1 * SP1
+      Z = CT1
+ 
+      XX =  CT*CP*X + CT*SP*Y - ST*Z
+      YY = -SP   *X + CP   *Y
+      ZZ =  ST*CP*X + ST*SP*Y + CT*Z
+ 
+C  GET NEW COSINE(THETA) AND PHI
+      DCTH   = ZZ
+      IF ( YY .NE. 0.D0  .OR.  XX .NE. 0.D0 ) THEN
+        DPHI = ATAN2( YY, XX )
+      ELSE
+        DPHI = 0.D0
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/age.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/age.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/age.f	(revision 4308)
@@ -0,0 +1,73 @@
+      SUBROUTINE AGE( R,S )
+ 
+C-----------------------------------------------------------------------
+C  AGE
+C
+C  CALCULATES LONGITUDINAL AGE PARAMETER
+C  ORIGINALLY DEVELOPED BY: J. KEMPA, UNIVERSITY OF LODZ, POLAND
+C  THIS SUBROUTINE IS CALLED FROM AVAGE
+C  ARGUMENTS:
+C   R      = AVERAGED AGE PARAMETER
+C   S      = LONGITUDINAL AGE PARAMETER OF TOTAL SHOWER
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION A,B,C,R,R1,R2,R3,R4,R5,S
+      DATA R1 / 1.9096D-02 /, R2 / 1.7964D-01 /, R3 / 5.3644D-01 /,
+     *     R4 / 1.0332D0   /, R5 / 1.4856D0   /
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'AGE   : R=',SNGL(R)
+ 
+      R = MAX( R, R1 )
+      R = MIN( R, R5 )
+ 
+      IF     ( R .LT. R2 ) THEN
+        A =  3.109121D-1
+        B =  2.146465D-1
+        C = -5.451040D-3
+      ELSEIF ( R .LT. R3 ) THEN
+        A =  3.666449D-1
+        B =  1.639189D-1
+        C =  5.970362D-3
+      ELSEIF ( R .LT. R4 ) THEN
+        A =  1.459842D-1
+        B =  6.317027D-1
+        C = -2.420241D-1
+      ELSEIF ( R .LE. R5 ) THEN
+        A = -3.375703D-1
+        B =  2.090333D0
+        C = -1.343802D0
+      ENDIF
+ 
+      S = ( SQRT(B**2 - 4.D0 * A * (C-R)) - B ) / ( 2.D0 * A )
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'AGE   : S=',SNGL(S)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/amoeba.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/amoeba.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/amoeba.f	(revision 4308)
@@ -0,0 +1,121 @@
+      SUBROUTINE AMOEBA(P,Y,MP,NP,NDIM,FTOL,FUNK,ITER,IFLAG)
+ 
+C-----------------------------------------------------------------------
+C
+C  FITTING ROUTINE
+C  REFERENCE : NUMERICAL RECIPES, W.H. PRESS ET AL.,
+C              CAMBRIDGE UNIVERSITY PRESS, 1992  ISBN 0 521 43064 X
+C  ADAPTED FOR DOUBLE PRECISION
+C  THIS SUBROUTINE IS CALLED FROM LONGFT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      INTEGER          ITMAX,MP,NMAX,NP
+C  MAXIMUM NUMBER OF TRIAL PER CALL
+      PARAMETER        (ITMAX=5000)
+      PARAMETER        (NMAX=20)
+      DOUBLE PRECISION AMOTRY,FTOL,FUNK,P(MP,NP),PSUM(NMAX),
+     *                 RTOL,SUM,SWAP,Y(MP),YSAVE,YTRY
+      INTEGER          I,IFLAG,IHI,ILO,INHI,ITER,J,M,N,NDIM
+      EXTERNAL         FUNK
+ 
+CU  USES AMOTRY,FUNK
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'AMOEBA:'
+ 
+      IFLAG = 0
+      ITER  = 0
+ 1    DO 12 N=1,NDIM
+        SUM = 0.D0
+        DO 11 M=1,NDIM+1
+          SUM = SUM + P(M,N)
+ 11     CONTINUE
+        PSUM(N) = SUM
+ 12   CONTINUE
+ 2    ILO=1
+      IF ( Y(1) .GT. Y(2) ) THEN
+        IHI  = 1
+        INHI = 2
+      ELSE
+        IHI  = 2
+        INHI = 1
+      ENDIF
+      DO 13 I=1,NDIM+1
+        IF ( Y(I) .LE. Y(ILO) ) ILO = I
+        IF     ( Y(I) .GT. Y(IHI)  ) THEN
+          INHI = IHI
+          IHI  = I
+        ELSEIF ( Y(I) .GT. Y(INHI) ) THEN
+          IF ( I .NE. IHI ) INHI = I
+        ENDIF
+ 13   CONTINUE
+      RTOL = 2.D0*ABS(Y(IHI)-Y(ILO))/(ABS(Y(IHI))+ABS(Y(ILO)))
+      IF ( RTOL .LT. FTOL ) THEN
+        SWAP   = Y(1)
+        Y(1)   = Y(ILO)
+        Y(ILO) = SWAP
+        DO 14 N=1,NDIM
+          SWAP     = P(1,N)
+          P(1,N)   = P(ILO,N)
+          P(ILO,N) = SWAP
+ 14     CONTINUE
+        RETURN
+      ENDIF
+      IF ( ITER .GE.ITMAX ) THEN
+        IF(DEBUG) WRITE(MDEBUG,*) 'AMOEBA: ITMAX EXCEEDED IN AMOEBA'
+        IFLAG = 1
+        RETURN
+      ENDIF
+      ITER = ITER + 2
+      YTRY = AMOTRY(P,Y,PSUM,MP,NP,NDIM,FUNK,IHI,-1.0D0)
+      IF     ( YTRY .LE. Y(ILO)  ) THEN
+        YTRY = AMOTRY(P,Y,PSUM,MP,NP,NDIM,FUNK,IHI,2.0D0)
+      ELSEIF ( YTRY .GE. Y(INHI) ) THEN
+        YSAVE = Y(IHI)
+        YTRY = AMOTRY(P,Y,PSUM,MP,NP,NDIM,FUNK,IHI,0.5D0)
+        IF ( YTRY .GE. YSAVE ) THEN
+          DO 16 I=1,NDIM+1
+            IF ( I .NE. ILO ) THEN
+              DO 15 J=1,NDIM
+                PSUM(J) = 0.5D0 * (P(I,J) + P(ILO,J))
+                P(I,J)  = PSUM(J)
+ 15           CONTINUE
+              Y(I) = FUNK(PSUM)
+            ENDIF
+ 16       CONTINUE
+          ITER = ITER + NDIM
+          GOTO 1
+        ENDIF
+      ELSE
+        ITER = ITER - 1
+      ENDIF
+      GOTO 2
+      END
+C=======================================================================
+ 
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/amotry.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/amotry.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/amotry.f	(revision 4308)
@@ -0,0 +1,63 @@
+      DOUBLE PRECISION FUNCTION AMOTRY(P,Y,PSUM,MP,NP,NDIM,FUNK,IHI,FAC)
+ 
+C-----------------------------------------------------------------------
+C
+C  REFERENCE : NUMERICAL RECIPES, W.H. PRESS ET AL.,
+C              CAMBRIDGE UNIVERSITY PRESS, 1992  ISBN 0 521 43064 X
+C  ADAPTED FOR DOUBLE PRECISION
+C  THIS SUBROUTINE IS CALLED FROM AMOEBA
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      INTEGER          MP,NP,NMAX
+      PARAMETER        (NMAX=20)
+      DOUBLE PRECISION FAC,P(MP,NP),PSUM(NP),Y(MP),FUNK
+      DOUBLE PRECISION FAC1,FAC2,YTRY,PTRY(NMAX)
+      INTEGER          IHI,NDIM,J
+      EXTERNAL         FUNK
+CU  USES FUNK
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'AMOTRY:'
+ 
+      FAC1 = (1.D0-FAC)/NDIM
+      FAC2 = FAC1-FAC
+      DO 11 J=1,NDIM
+        PTRY(J) = PSUM(J) * FAC1 - P(IHI,J) * FAC2
+ 11   CONTINUE
+      YTRY = FUNK(PTRY)
+      IF ( YTRY .LT. Y(IHI) ) THEN
+        Y(IHI) = YTRY
+        DO 12 J=1,NDIM
+          PSUM(J)  = PSUM(J) - P(IHI,J) + PTRY(J)
+          P(IHI,J) = PTRY(J)
+ 12     CONTINUE
+      ENDIF
+      AMOTRY = YTRY
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/annih.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/annih.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/annih.f	(revision 4308)
@@ -0,0 +1,87 @@
+      SUBROUTINE ANNIH
+C                                VERSION 4.00  --  26 JAN 1986/1900
+C******************************************************************
+C   GAMMA SPECTRUM FOR TWO GAMMA IN-FLIGHT POSITRON ANNIHILATION.
+C   USING SCHEME BASED ON HEITLER'S P269-270 FORMULAE
+C   THIS ROUTINE SHOULD GIVE THE CORRECT DISTRIBUTION, BUT MORE
+C   THOUGHT COULD BE PUT INTO DEVISING A FASTER SCHEME.  HOWEVER,
+C   SINCE POSITRON ANNIHILATION IN FLIGHT IS RELATIVELY INFREQUENT
+C   THIS MAY NOT BE WORTHWHILE.
+C******************************************************************
+      DOUBLE PRECISION PAVIP
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' ANNIH: NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      PAVIP=E(NP)+PRM
+      AVIP=PAVIP
+      A=AVIP*RMI
+      AI=1.0/A
+      G=A-1.0
+      T=G-1.0
+      P=SQRT(A*T)
+      POT=P/T
+      EP0I=(A+P)
+331   CONTINUE
+       CALL RMMAR(RD,2,2)
+       RNNO01=RD(1)
+       RNNO02=RD(2)
+       EP=EXP(RNNO01*LOG(EP0I-1.0))/EP0I
+       REJF=1.0-EP+AI*AI*(2.0*G-1.0/EP)
+       IF((RNNO02.LE.REJF))GO TO332
+      GO TO 331
+332   CONTINUE
+      ESG1=AVIP*MAX(EP,1.-EP)
+      E(NP)=ESG1
+      E(NP+1)=PAVIP-E(NP)
+      ESG2=E(NP+1)
+      IQ(NP)=1
+      COSTHE=(ESG1-RM)*POT/ESG1
+      SINTHE=SQRT(MAX(1.0-COSTHE*COSTHE,0.))
+      CALL UPHI(2,1)
+      NP=NP+1
+      IQ(NP)=1
+      COSTHE=(ESG2-RM)*POT/ESG2
+      SINTHE=SQRT(MAX(1.0-COSTHE*COSTHE,0.))
+      CALL UPHI(3,2)
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ausgab.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ausgab.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ausgab.f	(revision 4308)
@@ -0,0 +1,87 @@
+      SUBROUTINE AUSGAB
+C
+C*********************************************************************
+C  DESIGN  : D. HECK   IK3  FZK KARLSRUHE
+C*********************************************************************
+C  WE USE AUSGAB TO FILL OUTPAR WITH PARTICLE COORDINATES.
+C*********************************************************************
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEND.
+      COMMON/MISC/KMPI,KMPO,DUNIT,NOSCAT,MED(6),RHOR(6),IRAYLR(6)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+      NOBS=IOBS(NP)
+C*** ANGLE WITH RESPECT TO X AXIS
+      IF (U(NP)**2+V(NP)**2.GT.3.E-38) THEN
+       ANGLEX = -ATAN2(V(NP),U(NP))
+      ELSE
+       ANGLEX = 0.
+      END IF
+C***  PARTICLE IS WRITTEN IN OUTPUT BUFFER ARRAY
+      OUTPAR(1)=IQ(NP)
+      OUTPAR(2)=E(NP)*0.001D0
+      OUTPAR(3)=W(NP)
+      OUTPAR(4)=ANGLEX
+      OUTPAR(5)=-Z(NP)
+      OUTPAR(6)=TIME(NP)
+      OUTPAR(7)=X(NP)
+      OUTPAR(8)=-Y(NP)
+      OUTPAR(9)=IGEN(NP)
+      OUTPAR(10)=ALEVEL
+      LEVL=NOBS
+      CALL OUTPUT
+      IF (DEBUG.OR.(JCLOCK.GT.1 .AND. NCLOCK.GT.JCLOCK)) THEN
+       WRITE(MDEBUG,* )'AUSGAB: NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+       XX=X(NP)
+       YY=-Y(NP)
+       ZZ=-Z(NP)
+       ANGLEZ=W(NP)
+       ANGLX=ANGLEX
+       ETOT=E(NP)*.001
+       WRITE(KMPO,170) IQ(NP),ETOT,ANGLEZ,ANGLX,ZZ,TIME(NP)*1.0D3,XX,YY,
+     *  IGEN(NP)
+170    FORMAT(' AUSGAB:',10X,I4,1X,F10.4,1X,F7.4,1X,F7.4,1X,F9.0, F9.6,
+     *   1X,F10.1,1X,F10.1,1X,I3
+     * )
+      END IF
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ausgb2.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ausgb2.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ausgb2.f	(revision 4308)
@@ -0,0 +1,66 @@
+      SUBROUTINE AUSGB2
+C
+C*********************************************************************
+C  DESIGN  : D. HECK   IK3  FZK KARLSRUHE
+C*********************************************************************
+C  IN CASE OF DEBUGGING WE PRINT THE PARTICLE COORDINATES.
+C*********************************************************************
+      COMMON/MISC/KMPI,KMPO,DUNIT,NOSCAT,MED(6),RHOR(6),IRAYLR(6)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+C*** ANGLE WITH RESPECT TO X AXIS
+      IF (U(NP)**2+V(NP)**2.GT.3.E-38) THEN
+       ANGLEX = -ATAN2(V(NP),U(NP))
+      ELSE
+       ANGLEX = 0.
+      END IF
+      XX=X(NP)
+      YY=-Y(NP)
+      ZZ=-Z(NP)
+      ANGLEZ=W(NP)
+      ANGLX=ANGLEX
+      ETOT=E(NP)*.001
+      WRITE(KMPO,170) IQ(NP),ETOT,ANGLEZ,ANGLX,ZZ,TIME(NP)*1.0D3,XX,YY,
+     *IGEN(NP)
+170   FORMAT(' AUSGB2:',10X,I4,1X,F10.3,1X,F7.4,1X,F7.4,1X,F9.0, F9.6,
+     *  1X,F10.1,1X,F10.1,1X,I3
+     * )
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/avage.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/avage.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/avage.f	(revision 4308)
@@ -0,0 +1,191 @@
+      SUBROUTINE AVAGE
+ 
+C-----------------------------------------------------------------------
+C  AVE(ERAGE) AGE
+C
+C  CALCULATES AVERAGE AGE AS A FUNCTION OF RADIUS
+C  THIS SUBROUTINE IS CALLED FROM MAIN
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEEP,NKGI.
+      COMMON /NKGI/    SEL,SELLG,STH,ZEL,ZELLG,ZSL,DIST,
+     *                 DISX,DISY,DISXY,DISYX,DLAX,DLAY,DLAXY,DLAYX,
+     *                 OBSATI,RADNKG,RMOL,TLEV,TLEVCM,IALT
+      DOUBLE PRECISION SEL(10),SELLG(10),STH(10),ZEL(10),ZELLG(10),
+     *                 ZSL(10),DIST(10),
+     *                 DISX(-10:10),DISY(-10:10),
+     *                 DISXY(-10:10,2),DISYX(-10:10,2),
+     *                 DLAX (-10:10,2),DLAY (-10:10,2),
+     *                 DLAXY(-10:10,2),DLAYX(-10:10,2),
+     *                 OBSATI(2),RADNKG,RMOL(2),TLEV(10),TLEVCM(10)
+      INTEGER          IALT(2)
+*KEEP,NKGS.
+      COMMON /NKGS/    CZX,CZY,CZXY,CZYX,SAH,SL,ZNE
+      DOUBLE PRECISION CZX(-10:10,2),CZY(-10:10,2),CZXY(-10:10,2),
+     *                 CZYX(-10:10,2),SAH(10),SL(10),ZNE(10)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION AJ,BJ,CJ,DF(10),SJ(10),SLLG,TH,ZF
+      INTEGER          I,ID,IL,IOL,J,K,L
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'AVAGE :'
+ 
+      IF ( FPRINT ) WRITE(MONIOU,1110) SHOWNO,ELCUT(3),ELCUT(4)
+ 1110 FORMAT (/' ---------- NKG - OUTPUT OF SHOWER NO ',I10,
+     *         ' --------------------------------'/
+     *       ' ELECTRON/PHOTON THRESHOLD AT ',F10.5,' /',F10.5,' GEV')
+ 
+C  LOOP OVER ALL DISTANCES WHERE ELECTRON NUMBER IS CALCULATED
+      DO 302  K = 1,2
+        IF ( OBSATI(K) .GE. 0.D0 ) THEN
+          DO 301  ID = -10,10
+            DLAX (ID,K) = DLAX (ID,K) + CZX (ID,K)
+            DLAY (ID,K) = DLAY (ID,K) + CZY (ID,K)
+            DLAXY(ID,K) = DLAXY(ID,K) + CZXY(ID,K)
+            DLAYX(ID,K) = DLAYX(ID,K) + CZYX(ID,K)
+ 301      CONTINUE
+        ENDIF
+ 302  CONTINUE
+ 
+C  CALCULATE LONGITUDINAL SHOWER DEVELOPMENT
+      DO 311  IL = 1,IALT(1)
+        IF ( SL(IL) .GT. 0.D0 ) THEN
+          SEL(IL)   = SEL(IL) + SL(IL)
+          SLLG      = LOG10(SL(IL))
+          SELLG(IL) = SELLG(IL) + SLLG
+          ZEL(IL)   = ZEL(IL) + SL(IL)**2
+          ZELLG(IL) = ZELLG(IL) + SLLG**2
+          ZF        = ZNE(IL) / SL(IL)
+          CALL AGE( ZF,TH )
+C  AGE PARAMETERS AVERAGED ON ALL SUBCASCADES AT THIS LEVEL
+          SAH(IL) = TH
+          STH(IL) = STH(IL) + TH
+          ZSL(IL) = ZSL(IL) + TH**2
+        ELSE
+          SAH(IL) = 0.D0
+        ENDIF
+        EVTE(175+IL) = SL (IL)
+        EVTE(185+IL) = SAH(IL)
+        EVTE(215+IL) = TLEV(IL)
+        EVTE(225+IL) = TLEVCM(IL)
+ 311  CONTINUE
+ 
+C  PRINT LONGITUDINAL SHOWER DEVELOPMENT
+      IF ( FPRINT ) WRITE(MONIOU,229)
+     *  (I,TLEV(I),TLEVCM(I),SL(I),SAH(I),I=1,IALT(1))
+  229 FORMAT(
+     *  /' LEVEL',2X,'THICKNESS',8X,'HEIGHT',5X,'ELECT. NUMBER',7X,'AGE'
+     *  /'  NO. ',2X,'  G/CM**2',8X,'    CM'/
+     *        (' ',I4,F12.0,2X,F12.0,1X,F17.3,F10.3) )
+ 
+      DO 312  IOL = 1,2
+        IF ( OBSATI(IOL) .LT. 0.D0 ) GOTO 312
+C  DETERMINE LOCAL AGE PARAMETER
+        DO 50  J = 1,9
+          IF ( CZX(J+1,IOL).GT.0.D0  .AND.  CZX(-J-1,IOL).GT.0.D0  .AND.
+     *         CZXY(J+1,IOL).GT.0.D0 .AND.  CZXY(-J-1,IOL).GT.0.D0 .AND.
+     *         CZYX(J+1,IOL).GT.0.D0 .AND.  CZYX(-J-1,IOL).GT.0.D0 .AND.
+     *         CZY(J+1,IOL).GT.0.D0  .AND.  CZY(-J-1,IOL).GT.0.D0 ) THEN
+            AJ = 0.125D0 * (
+     *           CZX(J,IOL) /CZX(J+1,IOL) + CZX(-J,IOL) /CZX(-J-1,IOL)
+     *         + CZXY(J,IOL)/CZXY(J+1,IOL)+ CZXY(-J,IOL)/CZXY(-J-1,IOL)
+     *         + CZYX(J,IOL)/CZYX(J+1,IOL)+ CZYX(-J,IOL)/CZYX(-J-1,IOL)
+     *         + CZY(J,IOL) /CZY(J+1,IOL) + CZY(-J,IOL) /CZY(-J-1,IOL) )
+          ELSE
+            AJ = 0.D0
+          ENDIF
+          IF ( AJ .GT. 0.D0 ) THEN
+            BJ    = DIST(J) / DIST(J+1)
+            CJ    = (DIST(J)+RMOL(IOL)) / (DIST(J+1)+RMOL(IOL))
+            SJ(J) = LOG(AJ * BJ**2 * CJ**4.5D0) / LOG(BJ * CJ)
+            DF(J) = 0.5D0 * (DIST(J) + DIST(J+1))
+          ELSE
+            SJ(J) = 0.D0
+            DF(J) = 0.D0
+          ENDIF
+  50    CONTINUE
+ 
+        DO L = 1,10
+          EVTE(165+IOL*40+L) = SJ(L)
+        ENDDO
+ 
+        IF ( FPRINT ) THEN
+C  WRITE LOCAL AGE PARAMETER
+          WRITE(MONIOU,60) IOL,OBSATI(IOL), (I,DF(I),SJ(I),I=1,9)
+  60      FORMAT(/' RADIAL BIN  DISTANCE(CM)  LOCAL AGE  AT LEVEL NO.',
+     *          I4,' AT HEIGHT:',F10.0,' CM'/
+     *         (' ',I10,'   ',F10.0,'  ',F10.3 ) )
+ 
+C  PRINT LATERAL ELECTRON DISTRIBUTION
+          WRITE(MONIOU,507) IOL,OBSATI(IOL)
+ 507      FORMAT(/' LATERAL ELECTRON DENSITY (/CM**2)    AT LEVEL NO.',
+     *           I4,' AT HEIGHT:',F10.0,' CM'/
+     *           ' --------------------------------------------------',
+     *           '---------------------------'/
+     *           '  DIST (CM)        CZX            CZY      ',
+     *           '      CZXY           CZYX     ')
+          WRITE(MONIOU,508) (DISX(I),CZX(I,IOL),CZY(I,IOL),
+     *                      CZXY(I,IOL),CZYX(I,IOL),I=-10,10)
+ 508      FORMAT(' ',0P,F10.0,1P,4E15.5)
+        ENDIF
+ 
+ 312  CONTINUE
+ 
+      DO  L = 1,10
+        EVTE(195+L) = DIST(L)
+        EVTE(235+L) = DF(L)
+      ENDDO
+ 
+C  WRITE NKG - SHOWER INFORMATION TO EVENT END BLOCK
+      DO 353  L = 1,21
+        EVTE(  7+L) = CZX (-11+L,1)
+        EVTE( 28+L) = CZY (-11+L,1)
+        EVTE( 49+L) = CZXY(-11+L,1)
+        EVTE( 70+L) = CZYX(-11+L,1)
+        EVTE( 91+L) = CZX (-11+L,2)
+        EVTE(112+L) = CZY (-11+L,2)
+        EVTE(133+L) = CZXY(-11+L,2)
+        EVTE(154+L) = CZYX(-11+L,2)
+ 353  CONTINUE
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/avept.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/avept.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/avept.f	(revision 4308)
@@ -0,0 +1,85 @@
+      SUBROUTINE AVEPT( ECM,SLOG )
+ 
+C-----------------------------------------------------------------------
+C  AVE(RAGE) PT (TRANSVERSE MOMENTUM)
+C
+C  CALCULATES AVERAGE RATIO PT(PARTICLE)/PT(PION) DEPENDING ON ENERGY
+C  THE DEPENDENCE OF PT ON ENERGY IS DONE IN ROUTINE PTRAM/PTRAN
+C  THIS SUBROUTINE IS CALLED FROM HDPM
+C  ARGUMENTS:
+C   ECM    = ENERGY IN THE CM SYSTEM
+C   SLOG   = LOG(S) ( = LOG(ECM**2) )
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,AVPT.
+      COMMON /AVPT/    AVPT,AVPK,AVPN,AVPH,AVPE
+      DOUBLE PRECISION AVPT,AVPK,AVPN,AVPH,AVPE
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION ECM,SLOG
+C-----------------------------------------------------------------------
+ 
+CC    IF ( DEBUG ) WRITE(MDEBUG,*) 'AVEPT : ECM =',SNGL(ECM)
+ 
+C  AVERAGE TRANSVERSE MOMENTUM
+ 
+C  ... FOR PIONS (=AVPT)
+      IF ( ECM .LT. 132.D0 ) THEN
+        AVPT = 0.3D0 + 6.272D-3 * SLOG
+      ELSE
+        AVPT = ( 0.442105D0 + 0.016276D0 * SLOG )**2
+      ENDIF
+ 
+C  ... FOR KAONS (=AVPK)
+      IF ( ECM .LT. 131.D0 ) THEN
+        AVPK = 1.27D0 * AVPT
+      ELSE
+        AVPK = (0.403146D0 + 0.0281D0 * SLOG)**2
+      ENDIF
+ 
+C  ... FOR NUCLEONS (=AVPN)
+      IF ( ECM .LT. 102.D0 ) THEN
+        AVPN = 1.39D0 * AVPT
+      ELSE
+        AVPN = (0.389873D0 + 0.034127D0 * SLOG)**2
+      ENDIF
+ 
+C  SET AVERAGE PT RELATED TO AVERAGE PT FOR PIONS
+C  ... FOR STRANGE BARYONS (=AVPH)
+      AVPH = 1.3D0 * (1.45D0 * AVPN - 0.45D0 * AVPK) / AVPT
+C  ... FOR ETA MESONS (=AVPE)
+      AVPE = 1.3D0 * (0.88D0 * AVPK + 0.12D0 * AVPN) / AVPT
+      AVPK = 1.3D0 * AVPK / AVPT
+      AVPN = 1.3D0 * AVPN / AVPT
+      AVPT = 1.3D0
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,100)
+     *       SNGL(AVPT),SNGL(AVPK),SNGL(AVPN),SNGL(AVPH),SNGL(AVPE)
+ 100  FORMAT(' AVEPT : AVPT,AVPK,AVPN,AVPH,AVPE=',5F12.5)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/bhabha.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/bhabha.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/bhabha.f	(revision 4308)
@@ -0,0 +1,110 @@
+      SUBROUTINE BHABHA
+C                                VERSION 4.00  --  26 JAN 1986/1900
+C******************************************************************
+C   DISCRETE BHABHA SCATTERING (A CALL TO THIS ROUTINE) HAS BEEN
+C   ARBITRARILY DEFINED AND CALCULATED TO MEAN BHABHA SCATTERINGS
+C   WHICH IMPART TO THE SECONDARY ELECTRON SUFFICIENT ENERGY THAT
+C   IT BE TRANSPORTED DISCRETELY, I.E. E=AE OR T=TE.  IT IS NOT
+C   GUARANTEED THAT THE FINAL POSITRON WILL HAVE THIS MUCH ENERGY
+C   HOWEVER.  THE EXACT BHABHA DIFFERENTIAL CROSS SECTION IS USED.
+C******************************************************************
+      DOUBLE PRECISION PEIP,PEKSE2,PESE1,PESE2
+      DOUBLE PRECISION PEKIN,PEKINI,H1,DCOSTH
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/THRESH/RMT2,RMSQ,ESCD2,AP,API,AE,UP,UE,TE,THMOLL
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' BHABHA:NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      PEIP=E(NP)
+      EIP=PEIP
+      PEKIN=PEIP-PRM
+      EKIN=PEKIN
+      PEKINI=1./PEKIN
+      EKINI=PEKINI
+      T0=EKIN*RMI
+      E0=T0+1.
+      YY=1./(T0+2.)
+      E02=E0*E0
+      BETAI2=E02/(E02-1.)
+      EP0=TE*EKINI
+      EP0C=1.-EP0
+      Y2=YY*YY
+      YP=1.-2.*YY
+      YP2=YP*YP
+      B4=YP2*YP
+      B3=B4+YP2
+      B2=YP*(3.+Y2)
+      B1=2.-Y2
+341   CONTINUE
+       CALL RMMAR(RD,2,2)
+       RNNO03=RD(1)
+       RNNO04=RD(2)
+       BR=EP0/(1.-EP0C*RNNO03)
+       REJF2=EP0C*(BETAI2-BR*(B1-BR*(B2-BR*(B3-BR*B4))))
+       IF((RNNO04.LE.REJF2))GO TO342
+      GO TO 341
+342   CONTINUE
+      IF (BR.LT.0.5) THEN
+       IQ(NP+1)=3
+      ELSE
+       IQ(NP)=3
+       IQ(NP+1)=2
+       BR=1.-BR
+      END IF
+      BR=MAX(BR,0.0)
+      PEKSE2=BR*EKIN
+      PESE1=PEIP-PEKSE2
+      PESE2=PEKSE2+PRM
+      E(NP)=PESE1
+      E(NP+1)=PESE2
+      H1=(PEIP+PRM)*PEKINI
+      DCOSTH=MIN(H1*(PESE1-PRM)/(PESE1+PRM),1.D0)
+      SINTHE=SQRT(1.D0-DCOSTH)
+      COSTHE=SQRT(DCOSTH)
+      CALL UPHI(2,1)
+      NP=NP+1
+      DCOSTH=MIN(H1*(PESE2-PRM)/(PESE2+PRM),1.D0)
+      SINTHE=-SQRT(1.D0-DCOSTH)
+      COSTHE=SQRT(DCOSTH)
+      CALL UPHI(3,2)
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/block1.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/block1.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/block1.f	(revision 4308)
@@ -0,0 +1,280 @@
+      BLOCK DATA BLOCK1
+ 
+C-----------------------------------------------------------------------
+C
+C  INITIALIZES DATA
+C-----------------------------------------------------------------------
+ 
+*KEEP,AIR.
+      COMMON /AIR/     COMPOS,PROBTA,AVERAW,AVOGAD
+      DOUBLE PRECISION COMPOS(3),PROBTA(3),AVERAW,AVOGAD
+*KEEP,ANNI.
+      COMMON /ANNI/    CAN,CANN
+      DOUBLE PRECISION CAN(50),CANN(50)
+*KEEP,ATMOS.
+      COMMON /ATMOS/   AATM,BATM,CATM,DATM
+      DOUBLE PRECISION AATM(5),BATM(5),CATM(5),DATM(5)
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,EDECAY.
+      COMMON /EDECAY/  CETA
+      DOUBLE PRECISION CETA(5)
+*KEEP,GNUPR.
+      COMMON /GNUPR/   SE14,SE16,SE40
+      DOUBLE PRECISION SE14(3,14),SE16(3,16),SE40(3,40)
+*KEEP,KAONS.
+      COMMON /KAONS/   CKA
+      DOUBLE PRECISION CKA(80)
+*KEEP,MUPART.
+      COMMON /MUPART/  AMUPAR,BCUT,CMUON,FMUBRM,FMUORG
+      DOUBLE PRECISION AMUPAR(14),BCUT,CMUON(11)
+      LOGICAL          FMUBRM,FMUORG
+*KEEP,NKGI.
+      COMMON /NKGI/    SEL,SELLG,STH,ZEL,ZELLG,ZSL,DIST,
+     *                 DISX,DISY,DISXY,DISYX,DLAX,DLAY,DLAXY,DLAYX,
+     *                 OBSATI,RADNKG,RMOL,TLEV,TLEVCM,IALT
+      DOUBLE PRECISION SEL(10),SELLG(10),STH(10),ZEL(10),ZELLG(10),
+     *                 ZSL(10),DIST(10),
+     *                 DISX(-10:10),DISY(-10:10),
+     *                 DISXY(-10:10,2),DISYX(-10:10,2),
+     *                 DLAX (-10:10,2),DLAY (-10:10,2),
+     *                 DLAXY(-10:10,2),DLAYX(-10:10,2),
+     *                 OBSATI(2),RADNKG,RMOL(2),TLEV(10),TLEVCM(10)
+      INTEGER          IALT(2)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANGE.
+      COMMON /RANGE/   CC
+      DOUBLE PRECISION CC(20)
+*KEEP,REST.
+      COMMON /REST/    CONTNE,TAR,LT
+      DOUBLE PRECISION CONTNE(3),TAR
+      INTEGER          LT
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKF.
+      COMMON /STACKF/  STACK,STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+      INTEGER          MAXSTK
+      PARAMETER        (MAXSTK = 12*340*2)
+      DOUBLE PRECISION STACK(MAXSTK)
+      INTEGER          STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+*KEEP,STRBAR.
+      COMMON /STRBAR/  CSTRBA
+      DOUBLE PRECISION CSTRBA(11)
+*KEEP,VERS.
+      COMMON /VERS/    VERNUM,MVDATE,VERDAT
+      DOUBLE PRECISION VERNUM
+      INTEGER          MVDATE
+      CHARACTER*18     VERDAT
+*KEEP,CEREN3.
+      COMMON /CEREN3/  CERCNT,DATAB2,LHCER
+      INTEGER          MAXBF2
+      PARAMETER        (MAXBF2 = 39 * 7)
+      DOUBLE PRECISION CERCNT
+      REAL             DATAB2(MAXBF2)
+      INTEGER          LHCER
+*KEND.
+ 
+C-----------------------------------------------------------------------
+C  AIR
+      DATA COMPOS / 0.78479D0, 0.21052D0, 0.00469D0 /
+      DATA PROBTA / 0.78479D0, 0.99531D0, 1.00000D0 /
+      DATA AVERAW / 14.543D0 /
+      DATA AVOGAD / 6.0225D-4 /
+C  ANNI
+      DATA CAN / 0.0042D0, 0.0728D0, 0.0981D0, 0.2458D0, 0.0295D0,
+     *           0.0654D0, 0.1888D0, 0.1751D0, 0.0443D0, 0.0211D0,
+     *           0.0179D0, 0.0032D0, 0.0020D0, 0.0000D0, 0.0800D0,
+     *           0.0900D0, 0.0070D0, 0.0230D0, 0.1700D0, 0.1000D0,
+     *           0.2600D0, 0.0400D0, 0.0420D0, 0.1200D0, 0.0660D0,
+     *           0.0000D0,   24* 0.0D0 /
+C  ATMOS
+      DATA AATM / -186.5562D0,  -94.919D0,  0.61289D0,0.D0,.01128292D0 /
+      DATA BATM / 1222.6562D0,1144.9069D0,1305.5948D0,540.1778D0,0.D0  /
+      DATA CATM / 994186.38D0,878153.55D0,636143.04D0,772170.16D0,1.D-9/
+C  CEREN3
+      DATA CERCNT / 0.D0 /
+C  CONST
+      DATA PI  / 3.141592653589793D0 /
+      DATA PI2 / 6.283185307179586D0 /
+      DATA OB3 / 0.333333333333333D0 /
+      DATA TB3 / 0.666666666666666D0 /
+C  ENEPER IS CALCULATED IN START: ENEPER = EXP(1.D0)
+C  DATA FOR MUPART: CUTOFF FOR BREMSSTRAHLUNG AT 3 MEV
+      DATA BCUT /0.003D0/
+C  DATA FOR REST: AVERAGE ATOMIC WEIGHT, NEUTRON CONTENTS OF N,O,AR
+      DATA TAR / 14.6D0 /, CONTNE / 0.5D0, 0.5D0, 0.55D0 /, LT / 1 /
+C  KAON CONSTANTS
+      DATA CKA /     0.0D0,  0.1D0, 1.2371D-8, 1.2371D-8, 0.8922D-10,
+     *             5.16D-8, 0.25D0,     0.5D0,    0.75D0,      1.0D0,
+     *               0.5D0,  0.2D0,     0.0D0,     0.0D0,    149.6D0,
+     *             149.6D0,0.236D0,   0.206D0,   0.135D0,    0.222D0,
+     *               0.5D0,  0.0D0,   0.635D0,   0.686D0,    0.876D0,
+     *             0.658D0,0.387D0,     0.0D0,     0.0D0,      0.0D0,
+     *               0.0D0,  0.0D0,     0.0D0,     0.0D0,      1.0D0,
+     *               1.0D5,  0.0D0,     0.0D0,     0.0D0,      0.0D0,
+     *               0.0D0,  0.0D0,     0.0D0,     0.0D0,      0.0D0,
+     *               0.0D0,0.8468D0, 0.9027D0,  0.9509D0,   0.9827D0,
+     *           -0.2154D0, 0.012D0,-0.0101D0,    1.27D0,    0.594D0,
+     *             0.035D0,   0.0D0,   1.84D0,     0.0D0,      1.0D0,
+     *              0.67D0, 0.079D0, 0.0098D0,    2.22D0,    0.028D0,
+     *               0.0D0,1.288D-2,  0.033D0,   0.004D0,   1.194D-2,
+     *              0.03D0,   0.0D0, 1.310D-2,   0.034D0,    0.025D0,
+     *            1.241D-2,   0.0D0,    0.0D0,     0.0D0,      0.0D0  /
+C  DATA FOR ETA DECAY
+      DATA CETA /  0.3913D0,  0.7122D0,  0.9506D0,  -1.07D0,  2.07D0 /
+C  DATA FOR STRANGE BARYON DECAY
+      DATA CSTRBA / 2.632D-10, 0.799D-10, 7.4D-20, 1.479D-10, 0.642D0,
+     *              0.5164D0, 2.90D-10, 1.639D-10, 0.822D-10, 0.678D0,
+     *              0.914D0 /
+C  PARPAR
+      DATA C /   0.0D0,    0.0D0,      1.4D0,      2.5D0,       1.35D0,
+     *           0.0D0,    0.0D0,      0.0D0,      0.0D0,       2.07D0,
+     *           8.2D0,    0.1D0,      0.0D0,      0.0D0,        0.0D0,
+     *          88.0D0,   110.D0,      2.603D-8,   2.19703D-6,   0.0D0,
+     *          37.7D0, 1.532873D-4, 9.386417D0,   2.D-3, 29.9792458D9,
+     *           1.0D0,    0.0D0,     1.57D0,      0.0D0,      0.021D0,
+     *          88.0D0,  110.0D0,      0.0D0,      2.0D1,        0.1D0,
+     *          0.12D0,    0.0D0,      0.0D0,      0.0D0,       0.09D0,
+     *           0.0D0,    0.1D0,      0.0D0,      0.0D0,        0.0D0,
+     *           0.0D0,    0.0D0,      0.0D0,      0.0D0,137.0359895D0 /
+C  DATA FOR RANGE: ENERGY REGIONS FOR SELECTION OF BOXES IN ISOBAR MODEL
+      DATA CC / 2.5D0,  3.5D0, 5.5D0, 10.1D0,
+     *          1.6D0,  2.7D0, 3.9D0, 10.1D0,
+     *          1.6D0, 3.05D0, 3.9D0, 10.1D0, 8*0.D0 /
+C  RUNPAR,STACKF
+      DATA MONIIN /  5 /, MONIOU /  6 /, PATAPE / 90 /, EXST / 96 /,
+     *     MDEBUG /  6 /, NUCNUC / 11 /, MDBASE / 45 /
+     *    ,CETAPE / 91 /
+C  GNUPR   (NEW VERSION OCT 1991)
+C  NITROGEN TARGET  14
+      DATA ((SE14(I,J),I=1,3),J=1,14)
+     *                       / 0.472000D+00,-0.426710D-02, 0.726439D-04,
+     *                         0.230324D+00,-0.989733D-03,-0.807077D-05,
+     *                         0.138623D+00, 0.609624D-03,-0.401675D-04,
+     *                         0.827139D-01, 0.135103D-02,-0.360236D-04,
+     *                         0.445693D-01, 0.137582D-02,-0.137674D-04,
+     *                         0.206106D-01, 0.998620D-03, 0.422867D-05,
+     *                         0.792756D-02, 0.559858D-03, 0.957875D-05,
+     *                         0.247793D-02, 0.247480D-03, 0.701650D-05,
+     *                         0.615535D-03, 0.860096D-04, 0.324410D-05,
+     *                         0.118279D-03, 0.230732D-04, 0.104282D-05,
+     *                         0.169210D-04, 0.461424D-05, 0.235175D-06,
+     *                         0.169481D-05, 0.647634D-06, 0.358189D-07,
+     *                         0.105988D-06, 0.568994D-07, 0.332920D-08,
+     *                         0.311374D-08, 0.235385D-08, 0.143213D-09/
+C  OXYGEN TARGET  16
+      DATA ((SE16(I,J), I=1,3),J=1,16)
+     *                        /0.475002D+00,-0.434401D-02, 0.734217D-04,
+     *                         0.230261D+00,-0.966152D-03,-0.982228D-05,
+     *                         0.137372D+00, 0.642454D-03,-0.408490D-04,
+     *                         0.813380D-01, 0.135241D-02,-0.354835D-04,
+     *                         0.437870D-01, 0.135776D-02,-0.134429D-04,
+     *                         0.204919D-01, 0.988538D-03, 0.398723D-05,
+     *                         0.812995D-02, 0.567070D-03, 0.942943D-05,
+     *                         0.269031D-02, 0.263160D-03, 0.728079D-05,
+     *                         0.732711D-03, 0.993722D-04, 0.366933D-05,
+     *                         0.161940D-03, 0.303662D-04, 0.134776D-05,
+     *                         0.285325D-04, 0.740356D-05, 0.371648D-06,
+     *                         0.390910D-05, 0.140655D-05, 0.768260D-07,
+     *                         0.401145D-06, 0.200620D-06, 0.116200D-07,
+     *                         0.290010D-07, 0.202033D-07, 0.121929D-08,
+     *                         0.131709D-08, 0.128046D-08, 0.795482D-10,
+     *                         0.282645D-10, 0.384068D-10, 0.243535D-11/
+C  ARGON TARGET  40
+      DATA ((SE40(I,J),I=1,3),J=1,18)
+     *                       / 0.318084D+00,-0.352566D-02, 0.829469D-04,
+     *                         0.193581D+00,-0.238538D-02, 0.404919D-04,
+     *                         0.148699D+00,-0.118791D-02,-0.130378D-04,
+     *                         0.117201D+00, 0.966097D-04,-0.536044D-04,
+     *                         0.876737D-01, 0.106482D-02,-0.612882D-04,
+     *                         0.600279D-01, 0.150343D-02,-0.412273D-04,
+     *                         0.370180D-01, 0.147347D-02,-0.130096D-04,
+     *                         0.204422D-01, 0.117625D-02, 0.743960D-05,
+     *                         0.101003D-01, 0.807913D-03, 0.155153D-04,
+     *                         0.447163D-02, 0.489622D-03, 0.146804D-04,
+     *                         0.177806D-02, 0.265260D-03, 0.102802D-04,
+     *                         0.636671D-03, 0.129412D-03, 0.591434D-05,
+     *                         0.205809D-03, 0.571042D-04, 0.291674D-05,
+     *                         0.601981D-04, 0.228546D-04, 0.126074D-05,
+     *                         0.159631D-04, 0.831226D-05, 0.484001D-06,
+     *                         0.384379D-05, 0.275100D-05, 0.166440D-06,
+     *                         0.841490D-06, 0.829259D-06, 0.515615D-07,
+     *                         0.167633D-06, 0.227810D-06, 0.144446D-07/
+      DATA((SE40(I,J),I=1,3),J=19,36)
+     *                        /0.304029D-07, 0.570494D-07, 0.366843D-08,
+     *                         0.502077D-08, 0.130224D-07, 0.845876D-09,
+     *                         0.754786D-09, 0.270844D-08, 0.177211D-09,
+     *                         0.103229D-09, 0.512862D-09, 0.337323D-10,
+     *                         0.128308D-10, 0.883149D-10, 0.583066D-11,
+     *                         0.144721D-11, 0.138082D-10, 0.914113D-12,
+     *                         0.147837D-12, 0.195621D-11, 0.129757D-12,
+     *                         0.136429D-13, 0.250465D-12, 0.166371D-13,
+     *                         0.113379D-14, 0.288894D-13, 0.192092D-14,
+     *                         0.845213D-16, 0.299003D-14, 0.198959D-15,
+     *                         0.562496D-17, 0.276346D-15, 0.183981D-16,
+     *                         0.332222D-18, 0.226723D-16, 0.151001D-17,
+     *                         0.172872D-19, 0.163915D-17, 0.109200D-18,
+     *                         0.785321D-21, 0.103480D-18, 0.689517D-20,
+     *                         0.307886D-22, 0.563885D-20, 0.375787D-21,
+     *                         0.102630D-23, 0.261299D-21, 0.174154D-22,
+     *                         0.285163D-25, 0.100944D-22, 0.672832D-24,
+     *                         0.642589D-27, 0.316302D-24, 0.210839D-25/
+      DATA((SE40(I,J),I=1,3),J=37,40)
+     *                        /0.112817D-28, 0.772286D-26, 0.514807D-27,
+     *                         0.144773D-30, 0.137838D-27, 0.918858D-29,
+     *                         0.120779D-32, 0.159956D-29, 0.106632D-30,
+     *                         0.491605D-35, 0.905709D-32, 0.603784D-33/
+ 
+C  VERSION NUMBER AND DATE OF RELEASE
+      DATA VERNUM / 5.201 /
+      DATA MVDATE / 19970416 /
+C                  -YYYYMMDD-
+      DATA VERDAT / 'APRIL     16, 1997' /
+C                    ----+----+----+---
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box2.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box2.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box2.f	(revision 4308)
@@ -0,0 +1,598 @@
+      SUBROUTINE BOX2
+ 
+C-----------------------------------------------------------------------
+C
+C  DETERMINES POINT OF INTERACTION OR DECAY FOR ANY PARTICLE
+C  HEAVY PRIMARIES AND STRANGE BARYONS INCLUDED
+C  ANNIHILATION CROSS SECTION INCLUDED
+C  PRECISE MEAN FREE PATH FOR DECAYING PARTICLES
+C  HAS INTERACTION LENGTH STATISTICS INCLUDED
+C  THIS SUBROUTINE IS CALLED FROM MAIN
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,AIR.
+      COMMON /AIR/     COMPOS,PROBTA,AVERAW,AVOGAD
+      DOUBLE PRECISION COMPOS(3),PROBTA(3),AVERAW,AVOGAD
+*KEEP,CHISTA.
+      COMMON /CHISTA/  IHYCHI,IKACHI,IMUCHI,INNCHI,INUCHI,IPICHI
+      INTEGER          IHYCHI(124),IKACHI(124),IMUCHI(124),
+     *                 INNCHI(124),INUCHI(124),IPICHI(124)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,KAONS.
+      COMMON /KAONS/   CKA
+      DOUBLE PRECISION CKA(80)
+*KEEP,MUPART.
+      COMMON /MUPART/  AMUPAR,BCUT,CMUON,FMUBRM,FMUORG
+      DOUBLE PRECISION AMUPAR(14),BCUT,CMUON(11)
+      LOGICAL          FMUBRM,FMUORG
+*KEEP,NCSNCS.
+      COMMON /NCSNCS/  SIGN30,SIGN45,SIGN60,SIGO30,SIGO45,SIGO60,
+     *                 SIGA30,SIGA45,SIGA60,PNOA30,PNOA45,PNOA60,
+     *                 SIG30A,SIG45A,SIG60A
+      DOUBLE PRECISION SIGN30(56),SIGN45(56),SIGN60(56),
+     *                 SIGO30(56),SIGO45(56),SIGO60(56),
+     *                 SIGA30(56),SIGA45(56),SIGA60(56),
+     *                 PNOA30(1540,3),PNOA45(1540,3),PNOA60(1540,3),
+     *                 SIG30A(56),SIG45A(56),SIG60A(56)
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,REST.
+      COMMON /REST/    CONTNE,TAR,LT
+      DOUBLE PRECISION CONTNE(3),TAR
+      INTEGER          LT
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,SIGM.
+      COMMON /SIGM/    SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+      DOUBLE PRECISION SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+*KEEP,STRBAR.
+      COMMON /STRBAR/  CSTRBA
+      DOUBLE PRECISION CSTRBA(11)
+*KEEP,VENUS.
+      COMMON /VENUS/   ISH0,IVERVN,MTAR99,FVENUS,FVENSG
+      INTEGER          ISH0,IVERVN,MTAR99
+      LOGICAL          FVENUS,FVENSG
+*KEND.
+ 
+      DOUBLE PRECISION CHIBRM,CHIPRM,CHIINT,CHI1,CHI2,CKA2,COR1,DH,
+     *                 ELAB,ELABLG,ELABT,FRAPTN,FRPTNO,
+     *                 HDEC,HEIGH,PLAB,PLABLG,SIGBRM,SIGPRM,
+     *                 SIG45,S45SQ,S4530,THICK
+      REAL             EKIN,GBRSGM,GPRSGM
+      INTEGER          I,IA,IHY,IP,KA,MU,NI,NU
+      EXTERNAL         HEIGH,THICK,GBRSGM,GPRSGM
+      DOUBLE PRECISION SIGGHE,CGHSIG
+      EXTERNAL         CGHSIG
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,8)
+  444 FORMAT(' BOX2  : CURPAR=',1P,8E10.3)
+ 
+      ITYPE = CURPAR(1)
+ 
+      BETA = SQRT( GAMMA**2 - 1.D0 ) / GAMMA
+ 
+C-----------------------------------------------------------------------
+C  PHOTONS, ELECTRONS,PI(0), AND ETA ARE TREATED SEPARATELY (SEE BOX3)
+      IF ( ITYPE .LE.  3  .OR.   ITYPE .EQ.  7  .OR.  ITYPE .EQ. 17 .OR.
+     *    (ITYPE .GE. 71  .AND.  ITYPE .LE. 74)     ) THEN
+        CHI = 0.D0
+        RETURN
+      ENDIF
+ 
+C-----------------------------------------------------------------------
+C  RESONANCES ARE TREATED SEPARATELY (SEE BOX3)
+      IF ( ITYPE .GT. 50  .AND.  ITYPE .LE. 65 ) THEN
+        CHI = 0.D0
+        RETURN
+      ENDIF
+ 
+      THICKH = THICK(H)
+      ELAB = PAMA(ITYPE) * GAMMA
+ 
+C-----------------------------------------------------------------------
+C  MU + , MU - DECAYS AFTER ITS LIFE TIME
+C  MUON INTERACTS BY BREMSSTRAHLUNG OR PAIR PRODUCTION
+      IF     ( ITYPE .EQ. 5  .OR.  ITYPE .EQ. 6 ) THEN
+        CALL RMMAR( RD,3,1 )
+        COR1 = -LOG(RD(1)) * C(25) * C(19)
+        CALL PRANGE(COR1)
+        DH   = H - HEIGH( THICKH + CHI*COSTHE )
+        IF(DEBUG)WRITE(MDEBUG,*)'BOX2  : ITYPE,RD(1),CHIDEC=',
+     *                                 ITYPE,RD(1),SNGL(CHI)
+        IF ( GAMMA .LE. 200.D0 ) THEN
+          FDECAY = .TRUE.
+ 
+        ELSE
+C  AT HIGHER ENERGIES CHECK FOR MUON BREMSSTRAHLUNG AND PAIR PRODUCTION
+          ELABLG = LOG(ELAB)
+C  CALCULATE MUON BREMSSTRAHLUNG CROSS SECTION FOR AIR
+          IF ( ELAB .LE. 1.D5 ) THEN
+            FRACTN =          COMPOS(1)*GBRSGM( 7.,SNGL(ELAB))
+            FRCTNO = FRACTN + COMPOS(2)*GBRSGM( 8.,SNGL(ELAB))
+            SIGBRM = FRCTNO + COMPOS(3)*GBRSGM(18.,SNGL(ELAB))
+          ELSE
+C  PRELIMINARY PARAMETRIZED FOR ULTRAHIGH ENERGIES
+            SIGBRM = EXP( ELABLG * 0.04437D0 - 1.4805D0 )
+            FRACTN = SIGBRM * 0.78D0
+            FRCTNO = SIGBRM * 0.99D0
+          ENDIF
+          IF(DEBUG)WRITE(MDEBUG,*)'BOX2  : SIGBRM=',SNGL(SIGBRM)
+C  CALCULATE MEAN FREE PATH FOR BREMSSTRAHLUNG
+          CHIBRM = -LOG(RD(2)) * AVERAW / (AVOGAD * SIGBRM)
+          IF(DEBUG)WRITE(MDEBUG,*)'BOX2  : ITYPE,RD(2),CHIBRM=',
+     *                                 ITYPE,RD(2),SNGL(CHIBRM)
+          CHI1   = MIN( CHIBRM, CHI )
+ 
+          IF ( ELAB .LE. 1.D6 ) THEN
+C  CALCULATE  MUON PAIR PRODUCTION CROSS SECTION FOR AIR
+            FRAPTN =          COMPOS(1)*GPRSGM( 7.,SNGL(ELAB))
+            FRPTNO = FRAPTN + COMPOS(2)*GPRSGM( 8.,SNGL(ELAB))
+            SIGPRM = FRPTNO + COMPOS(3)*GPRSGM(18.,SNGL(ELAB))
+          ELSE
+C  PRELIMINARY PARAMETRIZED FOR ULTRAHIGH ENERGIES
+            SIGPRM = EXP( ELABLG * 0.2067D0 + 0.9169D0 )
+            FRACTN = SIGPRM * 0.78D0
+            FRCTNO = SIGPRM * 0.99D0
+          ENDIF
+          IF(DEBUG)WRITE(MDEBUG,*)'BOX2  : SIGPRM=',SNGL(SIGPRM)
+C  CALCULATE MEAN FREE PATH FOR PAIR PRODUCTION
+          CHIPRM = -LOG(RD(3)) * AVERAW / (AVOGAD * SIGPRM)
+          IF(DEBUG)WRITE(MDEBUG,*)'BOX2  : ITYPE,RD(3),CHIPRM=',
+     *                                 ITYPE,RD(3),SNGL(CHIPRM)
+          CHI2   = MIN( CHIPRM, CHI1 )
+          IF     ( CHI2 .EQ. CHI    ) THEN
+            FDECAY = .TRUE.
+          ELSEIF ( CHI2 .EQ. CHIBRM ) THEN
+            FDECAY = .FALSE.
+            FMUBRM = .TRUE.
+C  TARGET IS CHOSEN AT RANDOM FOR MUON BREMSSTRAHLUNG
+            CALL RMMAR( RD,1,1 )
+            IF     ( RD(1)*SIGBRM .LE. FRACTN ) THEN
+C  BREMSSTRAHLUNG WITH NITROGEN
+              LT  = 1
+              TAR = 14.D0
+            ELSEIF ( RD(1)*SIGBRM .LE. FRCTNO ) THEN
+C  BREMSSTRAHLUNG WITH OXYGEN
+              LT  = 2
+              TAR = 16.D0
+            ELSE
+C  BREMSSTRAHLUNG WITH ARGON
+              LT  = 3
+              TAR = 40.D0
+            ENDIF
+          ELSEIF ( CHI2 .EQ. CHIPRM ) THEN
+            FDECAY = .FALSE.
+            FMUBRM = .FALSE.
+C  TARGET IS CHOSEN AT RANDOM FOR MUON PAIR PRODUCTION
+            CALL RMMAR( RD,1,1 )
+            IF     ( RD(1)*SIGPRM .LE. FRAPTN ) THEN
+C  PAIR PRODUCTION WITH NITROGEN
+              LT  = 1
+              TAR = 14.D0
+            ELSEIF ( RD(1)*SIGPRM .LE. FRPTNO ) THEN
+C  PAIR PRODUCTION WITH OXYGEN
+              LT  = 2
+              TAR = 16.D0
+            ELSE
+C  PAIR PRODUCTION WITH ARGON
+              LT  = 3
+              TAR = 40.D0
+            ENDIF
+          ENDIF
+          CHI = CHI2
+        ENDIF
+ 
+C  DECAY LENGTH STATISTICS
+        MU = 1.D0 + DH * 1.D-5 / COSTHE
+        MU = MIN( MU, 123 )
+        IMUCHI( MU) = IMUCHI( MU) + 1
+        IMUCHI(124) = IMUCHI(124) + 1
+ 
+C-----------------------------------------------------------------------
+C  CHARGED PIONS
+      ELSEIF ( ITYPE .EQ. 8  .OR.  ITYPE .EQ. 9 ) THEN
+        PLAB = ELAB * BETA
+C  CALCULATION OF CROSS SECTION IN THE GHEISHA ROUTINES
+        IF ( GHEISH  .AND.  (ELAB .LE. HILOELB) ) THEN
+          EKIN   = ELAB - PAMA(ITYPE)
+          SIGAIR = CGHSIG(SNGL(PLAB),EKIN,ITYPE)
+          GHESIG = .TRUE.
+        ELSE
+          GHESIG = .FALSE.
+C  SIGMA IS ENERGY DEPENDENT INELASTIC PION-NUCLEON CROSS SECTION
+            IF     ( PLAB .LE. 5.D0 ) THEN
+              SIGMA  = 20.64D0
+            ELSEIF ( PLAB .LT. 1.D3 ) THEN
+              PLABLG = LOG(PLAB)
+C  INELASTIC CROSS SECTIONS FROM PARTICLE DATA GROUP
+C  (A.BALDINI ET AL., LANDOLT-BOERNSTEIN NEW SERIES I/12A (1987) 193)
+              SIGMA  = 24.3D0 - 12.3D0 * PLAB**(-1.91D0)
+     *                + 0.324D0 * PLABLG**2 - 2.44D0 * PLABLG
+            ELSE
+C  FACTOR 0.6667 GIVES RATIO BETWEEN PION AND NUCLEON CROSS SECTION
+              SIGMA  = 22.01D0 * ELAB**.0642D0 * 0.6667D0
+            ENDIF
+C  AUXIL. QUANTITIES FOR INTERPOLATION
+            SIG45  = SIGMA - 45.D0
+            S45SQ  = SIG45**2 / 450.D0
+            S4530  = SIG45 / 30.D0
+C  INELASTIC CROSS SECTIONS OF AIR FOR PROJECTILE WITH MASS NUMBER 1
+            SIGAIR = (1.D0 - 2.D0 * S45SQ) * SIG45A(1)
+     *                    +(S45SQ - S4530) * SIG30A(1)
+     *                    +(S45SQ + S4530) * SIG60A(1)
+        ENDIF
+        IF ( DEBUG ) WRITE(MDEBUG,*)'BOX2  : SIGMA,SIGAIR,GHESIG=',
+     *                           SNGL(SIGMA),SNGL(SIGAIR),GHESIG
+ 
+        CALL RMMAR( RD,2,1 )
+C  MEAN FREE PATH FOR INTERACTION (CHIINT)  OR DECAY (CHI)
+        CHIINT = -LOG(RD(1)) * AVERAW / (AVOGAD * SIGAIR)
+        IF(DEBUG)WRITE(MDEBUG,*)'BOX2  : ITYPE,RD(1),CHIINT=',
+     *                                 ITYPE,RD(1),SNGL(CHIINT)
+        COR1   = -LOG(RD(2)) * C(25) * C(18)
+        CALL PRANGE(COR1)
+        IF(DEBUG)WRITE(MDEBUG,*)'BOX2  : ITYPE,RD(2),CHIDEC=',
+     *                                 ITYPE,RD(2),SNGL(CHI)
+        CHI    = MIN( CHIINT, CHI )
+        IF ( CHI .LT. CHIINT ) THEN
+          FDECAY = .TRUE.
+        ELSE
+          FDECAY = .FALSE.
+        ENDIF
+ 
+C  INTERACTION LENGTH STATISTICS
+        IP = 1.D0 + CHI * 0.1D0
+        IP = MIN( IP, 123 )
+        IPICHI( IP) = IPICHI( IP) + 1
+        IPICHI(124) = IPICHI(124) + 1
+ 
+C-----------------------------------------------------------------------
+C  NUCLEONS AND ANTINUCLEONS
+      ELSEIF ( ITYPE .EQ. 13  .OR.  ITYPE .EQ. 14  .OR.
+     *         ITYPE .EQ. 15  .OR.  ITYPE .EQ. 25 ) THEN
+        PLAB = ELAB * BETA
+C  CALCULATION OF CROSS SECTION IN THE GHEISHA ROUTINES
+        IF ( GHEISH  .AND.  (ELAB .LE. HILOELB) ) THEN
+          EKIN   = ELAB - PAMA(ITYPE)
+          SIGAIR = CGHSIG(SNGL(PLAB),EKIN,ITYPE)
+          GHESIG = .TRUE.
+        ELSE
+          GHESIG = .FALSE.
+C  SIGMA IS ENERGY DEPENDENT INELASTIC NUCLEON-NUCLEON CROSS SECTION
+            IF     ( PLAB .LT. 1.D1 ) THEN
+              SIGMA  = 29.9D0
+            ELSEIF ( PLAB .LT. 1.D3 ) THEN
+              PLABLG = LOG(PLAB)
+C  INELASTIC CROSS SECTIONS FROM PARTICLE DATA GROUP
+C  (A.BALDINI ET AL., LANDOLT-BOERNSTEIN NEW SERIES I/12B (1987) 150)
+              SIGMA  = 30.9D0 - 28.9D0 * PLAB**(-2.46D0)
+     *                + 0.192D0 * PLABLG**2 - 0.835D0 * PLABLG
+            ELSE
+              SIGMA  = 22.01D0 * ELAB**.0642D0
+            ENDIF
+ 
+C  ADD ANNIHILATION CROSS SECTION FOR ANTI-NUCLEONS
+            IF ( ITYPE .EQ. 15  .OR.  ITYPE .EQ. 25 ) THEN
+C  ANNIHILATION CROSS SECTIONS FROM PARTICLE DATA GROUP
+C  (A.BALDINI ET AL., LANDOLT-BOERNSTEIN NEW SERIES I/12B (1987) 286)
+              SIGANN = 0.532D0 + 0.634D2 * PLAB**(-0.71D0)
+              SIGMA  = MIN( 120.D0, SIGMA + SIGANN )
+            ENDIF
+C  AUXIL. QUANTITIES FOR INTERPOLATION
+            SIG45  = SIGMA - 45.D0
+            S45SQ  = SIG45**2 / 450.D0
+            S4530  = SIG45 / 30.D0
+C  INELASTIC CROSS SECTIONS OF AIR FOR PROJECTILE WITH MASS NUMBER 1
+            SIGAIR = (1.D0 - 2.D0 * S45SQ) * SIG45A(1)
+     *                    +(S45SQ - S4530) * SIG30A(1)
+     *                    +(S45SQ + S4530) * SIG60A(1)
+        ENDIF
+        IF ( DEBUG ) WRITE(MDEBUG,*)'BOX2  : SIGMA,SIGAIR,GHESIG=',
+     *                           SNGL(SIGMA),SNGL(SIGAIR),GHESIG
+ 
+C  MEAN FREE PATH FROM MOLECULAR WEIGHT, AVOGADRO'S CONSTANT AND SIGMA
+        CALL RMMAR( RD,1,1 )
+        CHI = -LOG(RD(1)) * AVERAW / (AVOGAD * SIGAIR)
+        IF(DEBUG)WRITE(MDEBUG,*)'BOX2  : ITYPE,RD(1),CHI=',
+     *                                 ITYPE,RD(1),SNGL(CHI)
+ 
+C  INTERACTION LENGTH STATISTICS
+        NU = 1.D0 + CHI * 0.1D0
+        NU = MIN( NU, 123 )
+        INUCHI( NU) = INUCHI( NU) + 1
+        INUCHI(124) = INUCHI(124) + 1
+ 
+C-----------------------------------------------------------------------
+C  KAONS (PARTICLE TYPES 10,11,12,16)
+      ELSEIF ( ITYPE .EQ. 10  .OR.  ITYPE .EQ. 11  .OR.
+     *         ITYPE .EQ. 12  .OR.  ITYPE .EQ. 16      ) THEN
+        PLAB = ELAB * BETA
+C  CALCULATION OF CROSS SECTION IN THE GHEISHA ROUTINES
+        IF ( GHEISH  .AND.  (ELAB .LE. HILOELB) ) THEN
+          EKIN   = ELAB - PAMA(ITYPE)
+          SIGAIR = CGHSIG(SNGL(PLAB),EKIN,ITYPE)
+          GHESIG = .TRUE.
+        ELSE
+          GHESIG = .FALSE.
+C  SIGMA IS ENERGY DEPENDENT INELASTIC KAON-NUCLEON CROSS SECTION
+            IF     ( PLAB .LE. 1.D1 ) THEN
+              SIGMA  = 14.11D0
+            ELSEIF ( PLAB .LT. 1.D3 ) THEN
+              PLABLG = LOG(PLAB)
+C  INELASTIC CROSS SECTIONS FROM PARTICLE DATA GROUP
+C  (A.BALDINI ET AL., LANDOLT-BOERNSTEIN NEW SERIES I/12B (1987) 56)
+              SIGMA  = 12.3D0 - 7.77D0 * PLAB**(-2.12D0)
+     *              + 0.0326D0 * PLABLG**2 + 0.738D0 * PLABLG
+            ELSE
+C  FACTOR 0.5541 GIVES RATIO BETWEEN KAON AND NUCLEON CROSS SECTION
+              SIGMA  = 22.01D0 * ELAB**.0642D0 * 0.5541D0
+            ENDIF
+C  AUXIL. QUANTITIES FOR INTERPOLATION
+            SIG45  = SIGMA - 45.D0
+            S45SQ  = SIG45**2 / 450.D0
+            S4530  = SIG45 / 30.D0
+C  INELASTIC CROSS SECTIONS OF AIR FOR PROJECTILE WITH MASS NUMBER 1
+            SIGAIR = (1.D0 - 2.D0 * S45SQ) * SIG45A(1)
+     *                    +(S45SQ - S4530) * SIG30A(1)
+     *                    +(S45SQ + S4530) * SIG60A(1)
+        ENDIF
+        IF ( DEBUG ) WRITE(MDEBUG,*)'BOX2  : SIGMA,SIGAIR,GHESIG=',
+     *                           SNGL(SIGMA),SNGL(SIGAIR),GHESIG
+ 
+        CALL RMMAR( RD,2,1 )
+C  MEAN FREE PATH FOR INTERACTION (CHIINT)  OR DECAY (CHI)
+        CHIINT = -LOG(RD(1)) * AVERAW / (AVOGAD * SIGAIR)
+        IF(DEBUG)WRITE(MDEBUG,*)'BOX2  : ITYPE,RD(1),CHIINT=',
+     *                                 ITYPE,RD(1),SNGL(CHIINT)
+ 
+        IF     ( ITYPE .EQ. 16 ) THEN
+          CKA2 = CKA(5)
+        ELSEIF ( ITYPE .EQ. 10 ) THEN
+          CKA2 = CKA(6)
+        ELSE
+          CKA2 = CKA(3)
+        ENDIF
+        COR1   = -LOG(RD(2)) * C(25) * CKA2
+        IF ( SIGNUM(ITYPE) .EQ. 0.D0 ) THEN
+C  NEUTRAL KAONS
+          DH   = BETA * GAMMA * COSTHE * COR1
+          HDEC = MAX( H - DH, -1.D5 )
+          CHI  = ( THICK(HDEC) - THICKH ) / COSTHE
+        ELSE
+C  CHARGED KAONS
+          CALL PRANGE(COR1)
+        ENDIF
+ 
+        IF(DEBUG)WRITE(MDEBUG,*)'BOX2  : ITYPE,RD(2),CHIDEC=',
+     *                                 ITYPE,RD(2),SNGL(CHI)
+        CHI    = MIN( CHIINT, CHI )
+        IF ( CHI .LT. CHIINT ) THEN
+          FDECAY = .TRUE.
+        ELSE
+          FDECAY = .FALSE.
+        ENDIF
+ 
+C  INTERACTION LENGTH STATISTICS
+        KA = 1.D0 + CHI * 0.1D0
+        KA = MIN( KA, 123 )
+        IKACHI( KA) = IKACHI( KA) + 1
+        IKACHI(124) = IKACHI(124) + 1
+ 
+C-----------------------------------------------------------------------
+C  STRANGE BARYONS ( LAMBDA, SIGMA(+,0,-),XI(0,-), OMEGA- )
+      ELSEIF ( (ITYPE .GE. 18  .AND.  ITYPE .LE. 24)  .OR.
+     *         (ITYPE .GE. 26  .AND.  ITYPE .LE. 32)      ) THEN
+        PLAB = ELAB * BETA
+C  CALCULATION OF CROSS SECTION IN THE GHEISHA ROUTINES
+        IF ( GHEISH  .AND.  (ELAB .LE. HILOELB) ) THEN
+          EKIN   = ELAB - PAMA(ITYPE)
+          SIGAIR = CGHSIG(SNGL(PLAB),EKIN,ITYPE)
+C  SET CROSS SECTION VALUE TO A SMALL NUMBER FOR SIGMA0 AND ANTI SIGMA0
+          IF ( ITYPE .EQ. 20 .OR. ITYPE .EQ. 28 ) THEN
+            SIGAIR = 1.D-3
+          ENDIF
+          GHESIG = .TRUE.
+        ELSE
+          GHESIG = .FALSE.
+C  CROSS SECTION FOR BARYONS IS ASSUMED TO BE THE SAME AS FOR NUCLEONS
+C  SIGMA IS ENERGY DEPENDENT INELASTIC NUCLEON-NUCLEON CROSS SECTION
+            IF     ( PLAB .LT. 1.D1 ) THEN
+              SIGMA  = 29.9D0
+            ELSEIF ( PLAB .LT. 1.D3 ) THEN
+              PLABLG = LOG(PLAB)
+C  INELASTIC CROSS SECTIONS FROM PARTICLE DATA GROUP
+C  (A.BALDINI ET AL., LANDOLT-BOERNSTEIN NEW SERIES I/12B (1987) 150)
+              SIGMA  = 30.9D0 - 28.9D0 * PLAB**(-2.46D0)
+     *                + 0.192D0 * PLABLG**2 - 0.835D0 * PLABLG
+            ELSE
+              SIGMA  = 22.01D0 * ELAB**.0642D0
+            ENDIF
+C  AUXIL. QUANTITIES FOR INTERPOLATION
+            SIG45  = SIGMA - 45.D0
+            S45SQ  = SIG45**2 / 450.D0
+            S4530  = SIG45 / 30.D0
+C  INELASTIC CROSS SECTIONS OF AIR FOR PROJECTILE WITH MASS NUMBER 1
+            SIGAIR = (1.D0 - 2.D0 * S45SQ) * SIG45A(1)
+     *                  +(S45SQ - S4530) * SIG30A(1)
+     *                  +(S45SQ + S4530) * SIG60A(1)
+        ENDIF
+        IF ( DEBUG ) WRITE(MDEBUG,*)'BOX2  : SIGMA,SIGAIR,GHESIG=',
+     *                           SNGL(SIGMA),SNGL(SIGAIR),GHESIG
+ 
+        CALL RMMAR( RD,2,1 )
+C  MEAN FREE PATH FOR INTERACTION (CHIINT)  OR DECAY (CHI)
+        IF     ( ITYPE .GE. 18  .AND.  ITYPE .LE. 21 ) THEN
+          COR1 = -LOG(RD(2)) * C(25) * CSTRBA(ITYPE-17)
+        ELSEIF ( ITYPE .GE. 22  .AND.  ITYPE .LE. 24 ) THEN
+          COR1 = -LOG(RD(2)) * C(25) * CSTRBA(ITYPE-15)
+        ELSEIF ( ITYPE .GE. 26  .AND.  ITYPE .LE. 29 ) THEN
+          COR1 = -LOG(RD(2)) * C(25) * CSTRBA(ITYPE-25)
+        ELSEIF ( ITYPE .GE. 30  .AND.  ITYPE .LE. 32 ) THEN
+          COR1 = -LOG(RD(2)) * C(25) * CSTRBA(ITYPE-23)
+        ENDIF
+        IF ( SIGNUM(ITYPE) .EQ. 0.D0 ) THEN
+C  NEUTRAL STRANGE BARYONS
+          DH   = BETA * GAMMA * COSTHE * COR1
+          HDEC = MAX( H - DH, -1.D5 )
+          CHI  = ( THICK(HDEC) - THICKH ) / COSTHE
+        ELSE
+C  CHARGED STRANGE BARYONS
+          CALL PRANGE(COR1)
+        ENDIF
+        IF(DEBUG)WRITE(MDEBUG,*)'BOX2  : ITYPE,RD(2),CHIDEC=',
+     *                                 ITYPE,RD(2),SNGL(CHI)
+        CHIINT = -LOG(RD(1)) * AVERAW / (AVOGAD * SIGAIR)
+        IF(DEBUG)WRITE(MDEBUG,*)'BOX2  : ITYPE,RD(1),CHIINT=',
+     *                                 ITYPE,RD(1),SNGL(CHIINT)
+        CHI    = MIN( CHIINT, CHI )
+          IF ( CHI .LT. CHIINT ) THEN
+            FDECAY = .TRUE.
+          ELSE
+            FDECAY = .FALSE.
+          ENDIF
+C  GHEISHA CANNOT TREAT SIGMA0 AND ANTI-SIGMA0, LET THEM DECAY
+        IF (GHESIG .AND. (ITYPE.EQ.20 .OR. ITYPE.EQ.28))FDECAY = .TRUE.
+ 
+C  INTERACTION LENGTH STATISTICS
+        IHY = 1.D0 + CHI * 0.1D0
+        IHY = MIN( IHY, 123 )
+        IHYCHI(IHY) = IHYCHI(IHY) + 1
+        IHYCHI(124) = IHYCHI(124) + 1
+ 
+C-----------------------------------------------------------------------
+C  HEAVY PRIMARIES ( ITYPE = 100 * A + Z ,  FE -> ITYPE = 5626 )
+C  ( APPEARING AT FIRST INTERACTION AND AS REMANENTS OF THE PRIMARY )
+      ELSEIF ( ITYPE .GT. 100 ) THEN
+        IA = ITYPE / 100
+        IF ( IA .GT. 56 ) THEN
+          WRITE(MONIOU,*) 'BOX2  : UNEXPECTED PARTICLE TYPE=',ITYPE
+          STOP
+        ENDIF
+C  MEAN FREE PATH OF THE HEAVY PRIMARY IS DEDUCED FROM THAT OF A NUCLEON
+C  ONLY INELASTIC SCATTERING AT INTERACTIONS WITH HEAVY PRIMARY/FRAGMENT
+        ELAB = (PAMA(13) + PAMA(14)) * 0.5D0 * GAMMA
+        PLAB = ELAB * BETA
+C  CALCULATION OF CROSS SECTION IN THE GHEISHA ROUTINES
+        ELABT = ELAB * IA
+        
+c> *** modified by fs (22/09/98) *******************************
+
+c        IF ( GHEISH  .AND.  (ELAB .LE. HILOELB)  .AND.
+c     *     (ITYPE.EQ.402 .OR. ITYPE.EQ.201 .OR. ITYPE.EQ.301) ) THEN
+	IF ( GHEISH  .AND.  (ELAB .LE. HILOELB)  .AND.
+     *     (ITYPE.LE.101) ) THEN
+
+c> *** end of modification *************************************
+
+          EKIN   = ELABT - PAMA(ITYPE)
+          SIGGHE = CGHSIG(SNGL(PLAB),EKIN,ITYPE)
+          IF ( SIGGHE .LE. 0. ) THEN
+            GHESIG = .FALSE.
+          ELSE
+            GHESIG = .TRUE.
+            SIGAIR = SIGGHE
+          ENDIF
+        ELSE
+          GHESIG = .FALSE.
+        ENDIF
+        IF ( .NOT. GHESIG ) THEN
+C  SIGMA IS ENERGY DEPENDENT INELASTIC NUCLEON-NUCLEON CROSS SECTION
+            IF     ( PLAB .LT. 1.D1 ) THEN
+              SIGMA  = 29.9D0
+            ELSEIF ( PLAB .LT. 1.D3 ) THEN
+              PLABLG = LOG(PLAB)
+C  INELASTIC CROSS SECTIONS FROM PARTICLE DATA GROUP
+C  (A.BALDINI ET AL., LANDOLT-BOERNSTEIN NEW SERIES I/12B (1987) 150)
+              SIGMA  = 30.9D0 - 28.9D0 * PLAB**(-2.46D0)
+     *              + 0.192D0 * PLABLG**2 - 0.835D0 * PLABLG
+            ELSE
+              SIGMA  = 22.01D0 * ELAB**.0642D0
+            ENDIF
+C  AUXIL. QUANTITIES FOR INTERPOLATION
+          SIG45  = SIGMA - 45.D0
+          S45SQ  = SIG45**2 / 450.D0
+          S4530  = SIG45 / 30.D0
+C  INELASTIC CROSS SECTIONS OF AIR FOR PROJECTILE WITH MASS NUMBER IA
+          SIGAIR = (1.D0 - 2.D0 * S45SQ) * SIG45A(IA)
+     *                  +(S45SQ - S4530) * SIG30A(IA)
+     *                  +(S45SQ + S4530) * SIG60A(IA)
+        ENDIF
+        IF ( DEBUG ) WRITE(MDEBUG,*)'BOX2  : SIGMA,SIGAIR,GHESIG=',
+     *                           SNGL(SIGMA),SNGL(SIGAIR),GHESIG
+ 
+C  MEAN FREE PATH FROM MOLECULAR WEIGHT, AVOGADRO'S CONSTANT AND SIGMA
+        IF ( SIGAIR .EQ. 0.D0 ) WRITE(MONIOU,*)
+     *    'BOX2: SIGAIR=0.D0, PROGRAM STOPPED',
+     *    'CHECK SELECTED CROSS SECTIONS AND PRIMARIES'
+        CALL RMMAR( RD,1,1 )
+        CHI = -LOG(RD(1)) * AVERAW / (AVOGAD * SIGAIR)
+        IF(DEBUG)WRITE(MDEBUG,*)'BOX2  : ITYPE,RD(1),CHI=',
+     *                                 ITYPE,RD(1),SNGL(CHI)
+ 
+C  INTERACTION LENGTH STATISTICS
+        NI = 1.D0 + CHI * 0.1D0
+        NI = MIN( NI, 123 )
+        INNCHI( NI) = INNCHI( NI) + 1
+        INNCHI(124) = INNCHI(124) + 1
+ 
+C-----------------------------------------------------------------------
+C  ERROR IN PARTICLE CODE
+      ELSE
+        WRITE(MONIOU,*) 'BOX2  : UNEXPECTED PARTICLE TYPE=',ITYPE
+        STOP
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box3.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box3.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box3.f	(revision 4308)
@@ -0,0 +1,281 @@
+      SUBROUTINE BOX3
+ 
+C-----------------------------------------------------------------------
+C
+C  CHECKS PASSAGE THROUGH OBSERVATION LEVEL(S)
+C  IRET1=1 KILLS PARTICLE
+C  IRET2=1 PARTICLE HAS BEEN CUTTED IN UPDATE
+C  THIS SUBROUTINE IS CALLED FROM MAIN
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,IRET.
+      COMMON /IRET/    IRET1,IRET2
+      INTEGER          IRET1,IRET2
+*KEEP,LONGI.
+      COMMON /LONGI/   APLONG,HLONG,PLONG,SPLONG,THSTEP,THSTPI,
+     *                 NSTEP,LLONGI,FLGFIT
+      DOUBLE PRECISION APLONG(0:1040,9),HLONG(0:1024),PLONG(0:1040,9),
+     *                 SPLONG(0:1040,9),THSTEP,THSTPI
+      INTEGER          NSTEP
+      LOGICAL          LLONGI,FLGFIT
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c   Simulate more precisely muons Cherenkov light
+c------------------------------------------------------------
+      integer          k
+      double precision chloop,savpar(8),oldchi,oldthk,oldh
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+      DOUBLE PRECISION HEIGH,HNEW,PROPAR(8),THCKHN
+      INTEGER          I,IRET3,J,L,LPCT1,LPCT2
+      EXTERNAL         HEIGH
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX3  : CURPAR=',1P,9E10.3)
+ 
+      IF     ( ITYPE .EQ. 7 ) THEN
+C  PI 0 DECAYS INTO 2 PHOTONS IN SUBROUTINE PI0DEC
+        CALL TSTINI
+        CALL PI0DEC
+        CALL TSTEND
+        IRET1 = 1
+        RETURN
+ 
+      ELSEIF ( ITYPE .EQ. 5  .OR.  ITYPE .EQ. 6 ) THEN
+C  MUONS ARE TRACKED WITHIN ROUTINE MUTRAC
+        CALL TSTINI
+        CALL MUTRAC
+        CALL TSTEND
+        IRET1 = 1
+        RETURN
+ 
+      ELSEIF ( ITYPE .LE. 3 ) THEN
+C  ELECTRONS OR PHOTONS ARE TREATED IN SUBROUTINE EM
+        CALL EM
+        IRET1 = 1
+        RETURN
+ 
+      ELSEIF (     ITYPE .EQ. 17  .OR.
+     *        (ITYPE .GE. 71  .AND.  ITYPE .LE. 74)) THEN
+C  ETA DECAYS WITHIN ROUTINE ETADEC
+        CALL TSTINI
+        CALL ETADEC
+        CALL TSTEND
+        IRET1 = 1
+        RETURN
+ 
+      ELSEIF ( ITYPE .GE. 51  .AND.  ITYPE .LE. 65 ) THEN
+C  RESONANCES DECAY WITHIN ROUTINE RESDEC
+        CALL TSTINI
+        CALL RESDEC
+        CALL TSTEND
+        IRET1 = 1
+        RETURN
+ 
+      ENDIF
+ 
+C  FOR ALL THE OTHER PARTICLES THE PLACE OF NEXT INTERACTION WAS
+C  DETERMINED IN BOX2
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c   This is just a first approach to the problem
+c------------------------------------------------------------
+
+c      goto 5991
+      if ( itype .eq. 5 .or. itype .eq. 6 ) then
+        oldthk = thickh     
+        do 5101  i = 1,9
+          savpar(i) = curpar(i)
+ 5101   continue
+        chi = 0.2d0 * chi
+        do 5100  k = 1,5
+c  calculate hight difference in cm from given chi in g/cm**2
+          thckhn = thickh + costhe * chi
+          hnew   = heigh(thckhn)
+c  update particle to interaction point (if it reaches so far)
+c  and store coordinates in propar
+          call update( hnew, thckhn, 0 )
+          if ( iret2 .ne. 0 ) goto 5104
+          do 5103  i = 1,8
+            curpar(i) = outpar(i)
+ 5103     continue
+          thickh = thckhn 
+ 5100   continue
+ 5104   continue
+        thickh = oldthk
+        do 5102  i = 1,9
+          curpar(i) = savpar(i)
+ 5102   continue
+        
+      else
+c  calculate hight difference in cm from given chi in g/cm**2
+        thckhn = thickh + costhe * chi
+        hnew   = heigh(thckhn)
+c  update particle to interaction point (if it reaches so far)
+c  and store coordinates in propar
+        call update( hnew, thckhn, 0 )
+          
+      endif
+        
+      goto 5992
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c 5991 continue
+c
+cC     CALCULATE HIGHT DIFFERENCE IN CM FROM GIVEN CHI IN G/CM**2
+c      THCKHN = THICKH + COSTHE * CHI
+c      HNEW   = HEIGH(THCKHN)
+cC     UPDATE PARTICLE TO INTERACTION POINT (IF IT REACHES SO FAR)
+cC     AND STORE COORDINATES IN PROPAR
+c      CALL UPDATE( HNEW, THCKHN, 0 )
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+ 5992 continue
+c>>> it was : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+cC  CALCULATE HIGHT DIFFERENCE IN CM FROM GIVEN CHI IN G/CM**2
+c      THCKHN = THICKH + COSTHE * CHI
+c      HNEW   = HEIGH(THCKHN)
+c      IF (DEBUG) WRITE(MDEBUG,*)'BOX3  : THICKH,THCKHN,HNEW=',
+c     *                    SNGL(THICKH),SNGL(THCKHN),SNGL(HNEW)
+cC  UPDATE PARTICLE TO INTERACTION POINT (IF IT REACHES SO FAR)
+cC  AND STORE COORDINATES IN PROPAR
+c      CALL UPDATE( HNEW, THCKHN, 0 )
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
+
+      IF ( DEBUG ) THEN
+        WRITE(MDEBUG,455) IRET1,IRET2
+  455   FORMAT(' BOX3  : IRET1..2=',2I5)
+        IF ( IRET2 .EQ. 0 ) WRITE(MDEBUG,454) (OUTPAR(I),I=1,8)
+  454   FORMAT(' BOX3  : OUTPAR=',1P,8E10.3)
+      ENDIF
+C  STORE PARTICLE FOR FURTHER TREATMENT
+      IF ( IRET2 .EQ. 0 ) THEN
+        DO  3  I = 1,8
+          PROPAR(I) = OUTPAR(I)
+   3    CONTINUE
+        IRET3 = 0
+      ELSE
+C  PARTICLE CUTTED AT INTERACTION POINT; IT MAY HOWEVER PASS SOME OF THE
+C  OBSERVATION LEVELS
+        IRET3 = 1
+      ENDIF
+ 
+C  HERE THE ENDPOINT OF THE CURRENT TRACKING STEP IS WELL DEFINED.
+C  THE PARTICLE IS TRACKED FROM THICKH DOWN TO THCKHN
+C  COUNT THE PARTICLES FOR THE LONGITUDINAL DEVELOPMENT
+      IF ( LLONGI ) THEN
+        LPCT1 = INT(THICKH*THSTPI + 1.D0)
+        LPCT2 = INT(THCKHN*THSTPI)
+        LPCT2 = MIN(NSTEP,LPCT2)
+C  ALL HADRONS
+        IF     ( ITYPE .GE. 7 .AND. ITYPE .LE. 41 ) THEN
+          DO 5004 L = LPCT1,LPCT2
+            PLONG(L,6) = PLONG(L,6) + 1.D0
+ 5004     CONTINUE
+C  CHARGED HADRONS
+          IF ( SIGNUM(ITYPE) .NE. 0.D0 ) THEN
+            DO 5005 L = LPCT1,LPCT2
+              PLONG(L,7) = PLONG(L,7) + 1.D0
+ 5005       CONTINUE
+          ENDIF
+C  NUCLEI
+        ELSEIF ( ITYPE .GT. 100 ) THEN
+          DO 5006 L = LPCT1,LPCT2
+            PLONG(L,8) = PLONG(L,8) + 1.D0
+ 5006     CONTINUE
+        ENDIF
+      ENDIF
+ 
+C  CHECK OBSERVATION LEVEL PASSAGE AND UPDATE PARTICLE COORDINATES
+      DO  1  J = 1,NOBSLV
+        IF ( HNEW .GT. OBSLEV(J) ) GOTO 2
+        IF ( H    .LT. OBSLEV(J) ) GOTO 1
+C  REMEMBER NUMBER OF LEVEL FOR OUTPUT
+        LEVL  = J
+        CALL UPDATE( OBSLEV(J), THCKOB(J), J )
+        IF (DEBUG) WRITE(MDEBUG,456) J,IRET1,IRET2
+  456   FORMAT(' BOX3  : LEVEL ',I5,' IRET1,2=',2I5)
+ 
+C  IF PARTICLE IS NOT CUTTED, BRING IT TO OUTPUT
+        IF ( IRET2 .EQ. 0 ) THEN
+          CALL OUTPUT
+        ENDIF
+   1  CONTINUE
+ 
+C  KILL PARTICLE AS IT DECAYS OR INTERACTS BELOW LOWEST OBSLEVEL
+      IRET1 = 1
+      RETURN
+ 
+C  PARTICLE INTERACTS OR DECAYS BEFORE PASSING OBSLEVEL
+   2  CONTINUE
+ 
+C  PARTICLE IS NOW UPDATED TO POINT OF INTERACTION
+      IF ( IRET3 .EQ. 0 ) THEN
+        DO  5  J = 1,8
+          CURPAR(J) = PROPAR(J)
+   5    CONTINUE
+        ALEVEL = H
+        BETA   = SQRT( GAMMA**2 - 1.D0 ) / GAMMA
+      ELSE
+C  ELIMINATE PARTICLE IF BELOW CUTS
+        IRET1 = 1
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box60.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box60.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box60.f	(revision 4308)
@@ -0,0 +1,103 @@
+      SUBROUTINE BOX60
+ 
+C-----------------------------------------------------------------------
+C
+C  NUCLEON OR ANTINUCLEON INTERACTIONS
+C  ELASTIC SCATTERING, NO ENERGY LOSS CONSIDERED
+C  INCLUDES ANNIHILATION
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,NCOUNT.
+      COMMON /NCOUNT/  NCOUN
+      INTEGER          NCOUN(8)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,SIGM.
+      COMMON /SIGM/    SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+      DOUBLE PRECISION SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX60 : CURPAR=',1P,9E10.3)
+ 
+C  ANNIHILATION
+      IF ( ITYPE .EQ. 15  .OR.  ITYPE .EQ. 25 ) THEN
+        NCOUN(1) = NCOUN(1) + 1
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1)*SIGMA .LE. SIGANN ) THEN
+          NCOUN(2) = NCOUN(2) + 1
+          CALL NIHILA
+          RETURN
+        ENDIF
+      ENDIF
+ 
+C  ELASTIC SCATTERING
+      DO  1  I = 1,8
+        SECPAR(I) = CURPAR(I)
+    1 CONTINUE
+ 
+      PT     = PTRANS(DUMMY)
+      PLLAB2 = PAMA(ITYPE)**2 * (GAMMA**2 - 1.D0)
+      CTHETA = SQRT( PLLAB2 / (PT**2+PLLAB2))
+ 
+C  KILL UPWARD GOING PARTICLES
+      IF ( CTHETA .LT. C(27) ) RETURN
+      CALL RMMAR( RD,1,1 )
+      CALL ADDANG( COSTHE,PHI, CTHETA,RD(1)*PI2, SECPAR(3),SECPAR(4) )
+      IF ( SECPAR(3) .LT. C(29) ) RETURN
+ 
+      CALL TSTACK
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box61.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box61.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box61.f	(revision 4308)
@@ -0,0 +1,103 @@
+      SUBROUTINE BOX61
+ 
+C-----------------------------------------------------------------------
+C
+C  NUCLEON OR ANTINUCLEON INTERACTIONS
+C  LIGHT ISOBAR (FORWARD OR BACKWARD), NUCLEON
+C  INCLUDES ANNIHILATION
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,NCOUNT.
+      COMMON /NCOUNT/  NCOUN
+      INTEGER          NCOUN(8)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,SIGM.
+      COMMON /SIGM/    SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+      DOUBLE PRECISION SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX61 : CURPAR=',1P,9E10.3)
+ 
+C  ANNIHILATION
+      IF ( ITYPE .EQ. 15  .OR.  ITYPE .EQ. 25 ) THEN
+        NCOUN(3) = NCOUN(3) + 1
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1)*SIGMA .LE. SIGANN ) THEN
+          NCOUN(4) = NCOUN(4) + 1
+          CALL NIHILA
+          RETURN
+        ENDIF
+      ENDIF
+ 
+C  INTERACTION (ISOBAR EXCITATION)
+C  SELECT LIGHT ISOBAR AND NUCLEON MASSES
+      CA = C(3)
+      CB = PAMA(14)
+ 
+C  DECIDE WHETHER ISOBAR GOES FORWARD OR BACKWARD
+C  FORWARD IF KIND = 0, BACKWORD IF KIND = 1
+      CALL RMMAR( RD,1,1 )
+      IF ( RD(1) .LE. 0.5 ) THEN
+        KIND = 0
+      ELSE
+        KIND = 1
+      ENDIF
+ 
+C  LIGHT ISOBAR
+      CALL ISOBAR( ECM,KIND,CA,CB,1 )
+ 
+C  NUCLEON
+      CALL SINGLE( ECM,1-KIND,CB,CA )
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box62.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box62.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box62.f	(revision 4308)
@@ -0,0 +1,103 @@
+      SUBROUTINE BOX62
+ 
+C-----------------------------------------------------------------------
+C
+C  NUCLEON OR ANTINUCLEON INTERACTIONS
+C  HEAVY ISOBAR (FORWARD OR BACKWARD), NUCLEON
+C  INCLUDES ANNIHILATION
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,NCOUNT.
+      COMMON /NCOUNT/  NCOUN
+      INTEGER          NCOUN(8)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,SIGM.
+      COMMON /SIGM/    SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+      DOUBLE PRECISION SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX62 : CURPAR=',1P,9E10.3)
+ 
+C  ANNIHILATION
+      IF ( ITYPE .EQ. 15  .OR.  ITYPE .EQ. 25 ) THEN
+        NCOUN(5) = NCOUN(5) + 1
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1)*SIGMA .LE. SIGANN ) THEN
+          NCOUN(6) = NCOUN(6) + 1
+          CALL NIHILA
+          RETURN
+        ENDIF
+      ENDIF
+ 
+C  INTERACTION (ISOBAR EXCITATION)
+C  SELECT HEAVY ISOBAR AND NUCLEON MASSES
+      CA = C(4)
+      CB = PAMA(14)
+ 
+C  DECIDE WHETHER ISOBAR GOES FORWARD OR BACKWARD
+C  FORWARD IF KIND = 0, BACKWARD IF KIND = 1
+      CALL RMMAR( RD,1,1 )
+      IF ( RD(1) .LE. 0.5 ) THEN
+        KIND = 0
+      ELSE
+        KIND = 1
+      ENDIF
+ 
+C  HEAVY ISOBAR
+      CALL ISOBAR( ECM,KIND,CA,CB,3 )
+ 
+C  NUCLEON
+      CALL SINGLE( ECM,1-KIND,CB,CA )
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box63.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box63.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box63.f	(revision 4308)
@@ -0,0 +1,91 @@
+      SUBROUTINE BOX63
+ 
+C-----------------------------------------------------------------------
+C
+C  NUCLEON OR ANTINUCLEON INTERACTIONS
+C  TWO HEAVY ISOBARS
+C  INCLUDES ANNIHILATION
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,NCOUNT.
+      COMMON /NCOUNT/  NCOUN
+      INTEGER          NCOUN(8)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,SIGM.
+      COMMON /SIGM/    SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+      DOUBLE PRECISION SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX63 : CURPAR=',1P,9E10.3)
+ 
+C  ANNIHILATION
+      IF ( ITYPE .EQ. 15  .OR.  ITYPE .EQ. 25 ) THEN
+        NCOUN(7) = NCOUN(7) + 1
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1)*SIGMA .LE. SIGANN ) THEN
+          NCOUN(8) = NCOUN(8) + 1
+          CALL NIHILA
+          RETURN
+        ENDIF
+      ENDIF
+ 
+C  INTERACTION (ISOBAR EXCITATION)
+C  SELECT HEAVY ISOBAR MASSES
+      CA = C(4)
+      CB = C(4)
+ 
+C  HEAVY ISOBAR BACKWARD
+      CALL ISOBAR( ECM,1,CA,CB,3 )
+ 
+C  HEAVY ISOBAR FORWARD
+      CALL ISOBAR( ECM,0,CB,CA,3 )
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box65.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box65.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box65.f	(revision 4308)
@@ -0,0 +1,83 @@
+      SUBROUTINE BOX65
+ 
+C-----------------------------------------------------------------------
+C
+C  PION INTERACTIONS
+C  ELASTIC SCATTERING, NO ENERGY LOSS
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX65 : CURPAR=',1P,9E10.3)
+ 
+C  SCATTERING OF SINGLE PARTICLE
+      DO  1  I = 1,8
+        SECPAR(I) = CURPAR(I)
+    1 CONTINUE
+      PT     = PTRANS(DUMMY)
+      PLLAB2 = PAMA(8)**2 * (GAMMA**2 - 1.D0)
+      CTHETA = SQRT( PLLAB2 / (PT**2+PLLAB2) )
+      IF ( CTHETA .LT. C(27) ) RETURN
+      CALL RMMAR( RD,1,1 )
+      CALL ADDANG( COSTHE,PHI, CTHETA,RD(1)*PI2, SECPAR(3),SECPAR(4) )
+C  KILL BACKWARD GOING PARTICLES
+      IF ( SECPAR(3) .LT. C(29) ) RETURN
+ 
+      CALL TSTACK
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box66.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box66.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box66.f	(revision 4308)
@@ -0,0 +1,69 @@
+      SUBROUTINE BOX66
+ 
+C-----------------------------------------------------------------------
+C
+C  PION INTERACTIONS
+C  LIGHT ISOBAR BACKWARD, PION FORWARD
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX66 : CURPAR=',1P,9E10.3)
+ 
+C  SELECT LIGHT ISOBAR AND PION MASSES
+      CA = PAMA(8)
+      CB = C(3)
+ 
+C  LIGHT ISOBAR BACKWARD
+      CALL ISOBAR( ECM,1,CB,CA,1 )
+ 
+C  PION FORWARD
+      CALL SINGLE( ECM,0,CA,CB )
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box67.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box67.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box67.f	(revision 4308)
@@ -0,0 +1,69 @@
+      SUBROUTINE BOX67
+ 
+C-----------------------------------------------------------------------
+C
+C  PION INTERACTIONS
+C  HEAVY MESON FORWARD, NUCLEON BACKWARD
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX67 : CURPAR=',1P,9E10.3)
+ 
+C  SELECT HEAVY MESON AND NUCLEON MASSES
+      CA = C(5)
+      CB = PAMA(14)
+ 
+C  HEAVY MESON FORWARD
+      CALL HMESON( ECM,CA,CB )
+ 
+C  NUCLEON BACKWARD
+      CALL SINGLE( ECM,1,CB,CA )
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box68.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box68.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box68.f	(revision 4308)
@@ -0,0 +1,69 @@
+      SUBROUTINE BOX68
+ 
+C-----------------------------------------------------------------------
+C
+C  PION INTERACTIONS
+C  HEAVY ISOBAR BACKWARD, PION FORWARD
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX68 : CURPAR=',1P,9E10.3)
+ 
+C  SELECT PION AND HEAVY ISOBAR MASSES
+      CA = PAMA(8)
+      CB = C(4)
+ 
+C  HEAVY ISOBAR BACKWARD
+      CALL ISOBAR( ECM,1,CB,CA,3 )
+ 
+C  PION FORWARD
+      CALL SINGLE( ECM,0,CA,CB )
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box69.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box69.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box69.f	(revision 4308)
@@ -0,0 +1,66 @@
+      SUBROUTINE BOX69
+ 
+C-----------------------------------------------------------------------
+C
+C  PION INTERACTIONS
+C  HEAVY ISOBAR BACKWARD, HEAVY MESON FORWARD
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX69 : CURPAR=',1P,9E10.3)
+ 
+C  SELECT HEAVY MESON AND HEAVY ISOBAR MASSES
+      CA = C(5)
+      CB = C(4)
+ 
+C  HEAVY ISOBAR BACKWARD
+      CALL ISOBAR( ECM,1,CB,CA,3 )
+ 
+C  HEAVY MESON FORWARD
+      CALL HMESON( ECM,CA,CB )
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box70.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box70.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box70.f	(revision 4308)
@@ -0,0 +1,82 @@
+      SUBROUTINE BOX70
+ 
+C-----------------------------------------------------------------------
+C
+C  KAON INTERACTIONS
+C  ELASTIC SCATTERING, NO ENERGY LOSS
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX70 : CURPAR=',1P,9E10.3)
+ 
+C  ELASTIC SCATTERING
+      DO  1  I = 1,8
+        SECPAR(I) = CURPAR(I)
+    1 CONTINUE
+      PT     = PTRANS(DUMMY)
+      PLLAB2 = PAMA(ITYPE)**2 *(GAMMA**2 - 1.D0)
+      CTHETA = SQRT( PLLAB2 / (PT**2+PLLAB2) )
+      IF ( CTHETA .LT. C(27) ) RETURN
+      CALL RMMAR( RD,1,1 )
+      CALL ADDANG( COSTHE,PHI, CTHETA,RD(1)*PI2,SECPAR(3),SECPAR(4) )
+      IF ( SECPAR(3) .LT. C(29) ) RETURN
+ 
+      CALL TSTACK
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box71.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box71.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box71.f	(revision 4308)
@@ -0,0 +1,69 @@
+      SUBROUTINE BOX71
+ 
+C-----------------------------------------------------------------------
+C
+C  KAON INTERACTIONS
+C  LIGHT ISOBAR BACKWARD, KAON FORWARD
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX71 : CURPAR=',1P,9E10.3)
+ 
+C  SELECT LIGHT ISOBAR AND KAON MASSES
+      CA = PAMA(ITYPE)
+      CB = C(3)
+ 
+C  LIGHT ISOBAR BACKWARD
+      CALL ISOBAR( ECM,1,CB,CA,1 )
+ 
+C  KAON FORWARD
+      CALL SINGLE( ECM,0,CA,CB )
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box72.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box72.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box72.f	(revision 4308)
@@ -0,0 +1,69 @@
+      SUBROUTINE BOX72
+ 
+C-----------------------------------------------------------------------
+C
+C  KAON INTERACTION
+C  STRANGE MESON, NUCLEON BACKWARD
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX72 : CURPAR=',1P,9E10.3)
+ 
+C  SELECT HEAVY MESON AND NUCLEON MASSES
+      CA = C(5)
+      CB = PAMA(14)
+ 
+C  STRANGE MESON FORWARD
+      CALL VHMESO( ECM,CA,CB )
+ 
+C  NUCLEON BACKWARD
+      CALL SINGLE( ECM,1,CB,CA )
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box73.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box73.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box73.f	(revision 4308)
@@ -0,0 +1,70 @@
+      SUBROUTINE BOX73
+ 
+C-----------------------------------------------------------------------
+C
+C  KAON INTERACTIONS
+C  HEAVY ISOBAR BACKWARD, KAON FORWARD
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX73 : CURPAR=',1P,9E10.3)
+ 
+C  SELECT HEAVY ISOBAR AND KAON MASSES
+      CA = PAMA(ITYPE)
+      CB = C(4)
+ 
+C  HEAVY ISOBAR BACKWARD
+      CALL ISOBAR( ECM,1,CA,CB,3 )
+ 
+C  KAON FORWARD
+      CA = PAMA(ITYPE)
+      CALL SINGLE( ECM,0,CA,CB )
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box74.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box74.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/box74.f	(revision 4308)
@@ -0,0 +1,66 @@
+      SUBROUTINE BOX74
+ 
+C-----------------------------------------------------------------------
+C
+C  KAON INTERACTIONS
+C  HEAVY ISOBAR BACKWARD, STRANGE MESON FORWARD
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' BOX74 : CURPAR=',1P,9E10.3)
+ 
+C  SELECT STRANGE MESON AND HEAVY ISOBAR MASSES
+      CA = C(5)
+      CB = C(4)
+ 
+C  HEAVY ISOBAR BACKWARD
+      CALL ISOBAR( ECM,1,CA,CB,3 )
+ 
+C  STRANGE MESON FORWARD
+      CALL VHMESO( ECM,CA,CB )
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/brems.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/brems.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/brems.f	(revision 4308)
@@ -0,0 +1,138 @@
+      SUBROUTINE BREMS
+C                                VERSION 4.00  --  26 JAN 1986/1900
+C******************************************************************
+C   FOR ELECTRON ENERGY GREATER THAN 5.0 MEV, THE BETHE-HEITLER
+C   CROSS SECTION IS EMPLOYED.
+C******************************************************************
+      DOUBLE PRECISION PEIE,PESG,PESE
+      COMMON/BREMPR/DL1(6),DL2(6),DL3(6),DL4(6),DL5(6),DL6(6),DELCM, ALP
+     *HI(2),BPAR(2),DELPOS(2),PWR2I(50)
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/THRESH/RMT2,RMSQ,ESCD2,AP,API,AE,UP,UE,TE,THMOLL
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+      DATA AI2LN2/0.7213475/
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' BREMS: NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      PEIE=E(NP)
+      EIE=PEIE
+      NP=NP+1
+      IF (EIE.LT.50.0) THEN
+       LVX=1
+       LVL0=0
+      ELSE
+       LVX=2
+       LVL0=3
+      END IF
+      ABREMS=REAL(IFIX(1.44269*ALOG(EIE*API)))
+351   CONTINUE
+       CALL RMMAR(RNNO06,1,2)
+       IF (0.5.LT.((ABREMS*ALPHI(LVX)+0.5)*RNNO06)) THEN
+        CALL RMMAR(RD,2,2)
+        RNNO07=RD(1)
+        RNNO08=RD(2)
+        IDISTR=ABREMS*RNNO07
+        P=PWR2I(IDISTR+1)
+        LVL=LVL0+1
+        IF (RNNO08.GE.AI2LN2) THEN
+361      CONTINUE
+          CALL RMMAR(RD,3,2)
+          RNNO09=RD(1)
+          RNNO10=RD(2)
+          RNNO11=RD(3)
+          H=MAX(RNNO10,RNNO11)
+          BR=1.0-0.5*H
+          IF((BR*RNNO09.LE.0.5))GO TO362
+         GO TO 361
+362      CONTINUE
+        ELSE
+         CALL RMMAR(RNNO12,1,2)
+         BR=RNNO12*0.5
+        END IF
+        BR=BR*P
+       ELSE
+        CALL RMMAR(RD,2,2)
+        RNNO13=RD(1)
+        RNNO14=RD(2)
+        BR=MAX(RNNO13,RNNO14)
+        LVL=LVL0+2
+       END IF
+       ESG=EIE*BR
+       IF((ESG.LT.AP))GO TO351
+       PESG=ESG
+       PESE=PEIE-PESG
+       ESE=PESE
+       IF((ESE.LT.RM))GO TO351
+       DEL = BR/ESE
+       IF((DEL.GE.DELPOS(LVX)))GO TO351
+       DELTA = DELCM*DEL
+       IF (DELTA.LT.1.0) THEN
+        REJF=DL1(LVL)+DELTA*(DL2(LVL)+DELTA*DL3(LVL))
+       ELSE
+        REJF=DL4(LVL)+DL5(LVL)*LOG(DELTA+DL6(LVL))
+       END IF
+       CALL RMMAR(RNSCRN,1,2)
+       IF((RNSCRN.LE.REJF))GO TO352
+      GO TO 351
+352   CONTINUE
+      THETA=RM/EIE
+      CALL UPHI(1,3)
+      IF (ESG.LE.ESE) THEN
+       IQ(NP)=1
+       E(NP)=PESG
+       E(NP-1)=PESE
+      ELSE
+       IQ(NP)=IQ(NP-1)
+       IQ(NP-1)=1
+       E(NP)=PESE
+       E(NP-1)=PESG
+       T=U(NP)
+       U(NP)=U(NP-1)
+       U(NP-1)=T
+       T=V(NP)
+       V(NP)=V(NP-1)
+       V(NP-1)=T
+       T=W(NP)
+       W(NP)=W(NP-1)
+       W(NP-1)=T
+      END IF
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/c-script.sh
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/c-script.sh	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/c-script.sh	(revision 4308)
@@ -0,0 +1,190 @@
+#! /bin/sh
+
+readvalue () {
+    dfl="$1"
+    msg="$2"
+    desc="$3"
+
+    echo ''
+    echo $msg
+    echo -n "[ $dfl ] ? "
+    read value
+    value=${value:="$dfl"}
+    echo "$desc <- $value"
+}
+
+cat <<EOF    
+
+MAGIC.MC.DAEMON Configuration Script
+========================================
+
+NOTE:: This script WILL NOT create any directory in
+       the case that it does not exist. 
+       You MUST have created all the directories for yourself.
+       You will need :
+
+        - an [executables directory]: where I will look for 
+                    the CORSIKA executables and data files, and
+                    for the MMD program.
+
+        - a [data directory]: where I will save the data.
+
+        - an [administration directory]: where some log-files
+                    will be created.
+
+       If you DO NOT have yet these directories created, press
+       now Ctrl-C, create them, and write afterwards again
+
+       $ make script
+
+Press Return to continue, or Ctrl-C to stop this script.
+EOF
+read ans
+
+cat <<EOF
++---------------------------------------------------+
+| This procedure will ask you about some parameters | 
+| of your system. Please, answer all the questions. | 
+| If you have any doubt, press Ctrl-C.              | 
++---------------------------------------------------+
+EOF
+
+readvalue `pwd` \
+    "Directory where the CORSIKA and daemon executables should be located:" path-exe 
+pathexe="$value"
+
+readvalue "c520-osf" \
+    "Enter the executable name:" name-exe 
+nameexe="$value"
+
+readvalue "/data" \
+    "Disk/path where the bulk of data will be stored:" data-disk
+datadisk="$value"
+
+readvalue "/data" \
+    "Disk/path where the administration files will be stored:" adm-disk
+admdisk="$value"
+
+echo ''
+
+readvalue "0" \
+    "Final NICE value to use when running CORSIKA" niceval
+niceval="$value"
+
+readvalue "0" \
+    "What is your site seed generator?" siteval
+siteval="$value"
+
+readvalue "no" \
+    "Do you want to check the system load before running CORSIKA (yes/no)" MACH
+MACH="$value"
+
+echo ''
+
+readvalue "$USER@$HOST" \
+    "Enter the e-mail address to sent the log-mailing to" email-add
+useradd="$value"
+
+echo ''
+
+echo 'Preparing daemon . . .'
+
+cat <<EOF >dmy.sed
+s=#USERADD#=$useradd=g
+s=#DATADISK#=$datadisk=g
+s=#ADMDISK#=$admdisk=g
+s=#PATHEXE#=$pathexe=g
+s=#NAMEEXE#=$nameexe=g
+s=#NICE#=$niceval=g
+s=#SITE#=$siteval=g
+EOF
+
+sed -f dmy.sed magic-mc.daemon.tpl > mmd
+
+
+if [ $MACH = "yes" ]; then
+
+    cat <<EOF >> mmd
+# get information about system load
+if ( check_cpu_load() < 3 ) {
+    send_mail( "\n## Top output:\n\n" . \`\$TOP -b\`, 1 );
+    exit;
+}
+
+# make job
+make_job;
+
+# say bye, execute job and leave this program
+exec "\$SYSDIR/job.cmds" 
+    or croak "Cannot execute job file";
+EOF
+
+else
+
+    cat <<EOF >> mmd
+# get information about system load
+check_cpu_load();
+
+# make job
+make_job;
+
+# say bye, execute job and leave this program
+exec "\$SYSDIR/job.cmds" 
+    or croak "Cannot execute job file";
+EOF
+
+fi
+
+chmod 744 ${pathexe}/mmd
+
+echo 'MMD (MAGIC-MC.DAEMON) was generated.'
+
+echo ''
+
+echo 'The MAGIC-MC.DAEMON is designed to run from the crontab.'
+
+readvalue "yes" \
+    "Do you want me to change your crontab (yes/no)?" crntb
+crntb="$value"
+
+echo ''
+
+echo 'OK, I will change your crontab. I will asume you are using C-shell'
+
+if [ $crntb = "yes" ]; then
+    crontab -l > dmy
+    echo '0,15,30,45 * * * * '${pathexe}'/mmd -n'${niceval}' -q >& '${admdisk}'/last-crontab-out' >> dmy
+    crontab dmy
+    rm -f dmy
+fi
+
+echo ''
+echo 'Preparing your administration directory (do not worry about'
+echo 'some messages like "[file]: No such file or directory"'
+echo ''
+
+${pathexe}/mmd -c
+
+echo 'Done.'
+
+cat <<EOF
+
+MAGIC-MC.DAEMON is ready to run.
+
+If you did not ask me to modify your crontab,
+you must run yourself the program, with the following 
+command line:
+
+$ mmd -n$niceval -q >& ${admdisk}/last-crontab-out
+
+However, it's much better if let my do the dirty work
+for you.
+
+Good luck.
+
+In case of problems, please contact to <gonzales@hegra1.mppmu.mpg.de>
+
+EOF
+
+
+
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/cerenkov.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/cerenkov.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/cerenkov.f	(revision 4308)
@@ -0,0 +1,1196 @@
+C=======================================================================
+
+      SUBROUTINE CERENE( STEPCR )
+
+C-----------------------------------------------------------------------
+C  CEREN(KOV RADIATION FROM) E(LECTRONS)
+C
+C  CREATION OF CERENKOV PHOTONS ALONG A TRACK OF ELECTRONS
+C  CERENKOV RADIATION IS ONLY CALCULATED FOR LOWEST OBSERVATION LEVEL
+C  THE COORDINATES ON EGS-STACK ARE AT THE END OF STEP EXCEPT E(NP),
+C  WHICH IS AT THE BEGINNING OF STEP
+C  THIS SUBROUTINE IS CALLED FROM ELECTR
+C  ARGUMENT:
+C   STEPCR = STEP LENGTH FOR ELECTRON OR POSITRON (REAL*4)
+C
+C  AUTHOR  : M. ROZANSKA  UNIVERSITY OF KRAKOW
+C            S. MARTINEZ  UNIVERSITY OF MADRID
+C            F. ARQUEROS  UNIVERSITY OF MADRID
+C  CHANGES : D. HECK    IK3  FZK KARLSRUHE
+C            R. ATTALLAH  UNIVERSITY OF PERPIGNAN
+C-----------------------------------------------------------------------
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+      parameter (xct=1)
+      parameter (yct=2)
+      parameter (zct=3)
+      parameter (ctthet=4)
+      parameter (ctphi=5)
+      parameter (ctdiam=6)
+      parameter (ctfoc=7)
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+c      IMPLICIT NONE
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,EPCONT.
+      COMMON/EPCONT/   EDEP,RATIO,TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,IDISC,
+     *                 IROLD,IRNEW,RHOFAC, EOLD,ENEW,EKE,ELKE,BETA2,GLE,
+     *                 TSCAT,IAUSFL
+      DOUBLE PRECISION EDEP,RATIO
+      REAL             TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,RHOFAC,EOLD,ENEW,
+     *                 EKE,ELKE,BETA2,GLE,TSCAT
+      INTEGER          IDISC,IROLD,IRNEW,IAUSFL(29)
+*KEEP,LONGI.
+      COMMON /LONGI/   APLONG,HLONG,PLONG,SPLONG,THSTEP,THSTPI,
+     *                 NSTEP,LLONGI,FLGFIT
+      DOUBLE PRECISION APLONG(0:1040,9),HLONG(0:1024),PLONG(0:1040,9),
+     *                 SPLONG(0:1040,9),THSTEP,THSTPI
+      INTEGER          NSTEP
+      LOGICAL          LLONGI,FLGFIT
+*KEEP,MAGANG.
+      COMMON /MAGANG/  ARRANG,ARRANR,COSANG,SINANG
+      DOUBLE PRECISION ARRANG,ARRANR,COSANG,SINANG
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEEP,CEREN1.
+      COMMON /CEREN1/  CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD,
+     *                 CERSIZ,LCERFI
+      DOUBLE PRECISION CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD
+      REAL             CERSIZ
+      LOGICAL          LCERFI
+*KEEP,CEREN2.
+      COMMON /CEREN2/  PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS,CERYOS,
+     *                 NCERX,NCERY,ICERML
+      REAL             PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS(20),CERYOS(20)
+      INTEGER          NCERX,NCERY,ICERML
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+*keep,certel.
+      common /certel/  cormxd,cord,coralp,ctpars,omega,
+     +                 photn,photnp,phpt,pht,vphot,
+     +                 vchi,veta,vzeta,vchim,vetam,vzetam,
+     +                 lambda,mu,nu,nctels,ncph
+      double precision cormxd,cord,coralp,ctpars(20,7),omega(20,3,3),
+     +                 photn(3),photnp(3),phpt(3),pht,vphot(3),
+     +                 vchi(3),veta(3),vzeta(3),vchim,vetam,vzetam,
+     +                 lambda,mu,nu
+      integer          nctels,ncph(5)
+      double precision xg,yg,zg,xgp,ygp,zgp,up,vp,wp,xpcut,ypcut,zpcut
+      equivalence (photn(1) ,xg)   ,(photn(2) ,yg)   ,(photn(3) ,zg)  ,
+     +            (photnp(1),xgp)  ,(photnp(2),ygp)  ,(photnp(3),zgp),
+     +            (phpt(1)  ,xpcut),(phpt(2)  ,ypcut),(phpt(3)  ,zpcut),
+     +            (vphot(1) ,up)   ,(vphot(2) ,vp)   ,(vphot(3) ,wp)    
+      character *72 ctfile
+*keep,graal1.
+      common /graal1/ wavelength ! (nm)
+      real wavelength
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+*KEND.
+
+      COMMON /ACLOCK/  NCLOCK,JCLOCK
+      DOUBLE PRECISION BETAE,BETAF,BETAI,CTHETA,DBETA,ECR,
+     *                 ETA1,E1,STHETA,STHETF,STHETI
+      DOUBLE PRECISION RHOF,THICK
+      REAL             A,B,CC,COSCR,COSDEL,DVCOR,DXXX,DYYY,FSTEPI,
+     *                 HTOP,H2,PATHCR,PHICER,PHOTCT,RADINV,
+     *                 SINCR,SINDEL,SINPSI,SINPS2,STEPCR,UEMIS2,US,VCOR,
+     *                 VEMIS2,VS,WEMIS,XCER1,XCER2,XEMIS,XXX,
+     *                 YCER1,YCER2,YEMIS,YYY
+      INTEGER          I,ISTC,I1,JCLOCK,LPCT1,NCLOCK,NSTEPC
+      EXTERNAL         RHOF,THICK
+C-----------------------------------------------------------------------
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,*)'CERENE: NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____ENDIF
+
+C-----------------------------------------------------------------------
+
+C  SKIP PARTICLES OUT OF ZENITH ANGULAR CUT
+      IF ( W(NP) .LT. C(29) ) RETURN
+C  E(NP) IS ENERGY AT BEGIN OF STEP
+      E1 = E(NP)
+
+C  LOOK WETHER CERENKOV CONDITION IS FULFILLED AT BEGIN OF STEP
+      BETAI  = SQRT( 1.D0 - (PAMA(2)*1.D3/E1)**2 )
+C  REFRACTIVE INDEX PARAMETRISATION: N=1+ETA = ETA1
+      H2     = -Z(NP)
+      HTOP   = H2 + VSTEP * W(NP)
+      ETA1   = 1.D0 + ETADSN * RHOF(DBLE(HTOP))
+      CTHETA = 1.D0 /( ETA1 * BETAI)
+      STHETI = 1.D0 - CTHETA**2
+      IF ( STHETI .GT. 0.D0 ) THEN
+C  PARTICLE IS ABOVE ENERGY THRESHOLD IF EMISSION ANGLE IS >0
+        PHOTCT = CYIELD * STEPCR * STHETI
+        NSTEPC = PHOTCT / CERSIZ + 1
+        IF ( NSTEPC .LT. 1 ) RETURN
+        FSTEPI = 1. / REAL(NSTEPC)
+C  CALCULATE INCREMENTS AND START VALUES FOR POSITION AND VELOCITY
+        DVCOR  = -VSTEP * FSTEPI
+        VCOR   = VSTEP - 0.5 * DVCOR
+        DBETA  = -2.D0*FSTEPI*EDEP*(PAMA(2)*1.D3)**2 / (E1**3*BETAI)
+        BETAE  = BETAI - 0.5D0 * DBETA
+      ELSE
+        
+C  LOOK WETHER CERENKOV CONDITION IS FULFILLED AT END OF STEP, BUT NOT
+C  AT THE BEGINNING. THIS MAY HAPPEN ONLY ABOVE ABOUT 22 KM
+        IF ( HTOP .LT. 22.E5 ) RETURN
+C  ENERGY AT END OF STEP IS ENEW (FROM COMMON EPCONT)
+        BETAF  = SQRT( 1.D0 - (PAMA(2)*1.D3/ENEW)**2 )
+C  REFRACTIVE INDEX PARAMETRISATION: N=1+ETA = ETA1
+        ETA1   = 1.D0 + ETADSN * RHOF( DBLE(H2) )
+        CTHETA = 1.D0 /( ETA1 * BETAF)
+        STHETF = 1.D0 - CTHETA**2
+C  PARTICLE IS BELOW ENERGY THRESHOLD IF EMISSION ANGLE IS 0
+        IF ( STHETF .LE. 0.D0 ) RETURN
+        PHOTCT = CYIELD * STEPCR * STHETF
+        NSTEPC = PHOTCT / CERSIZ + 1
+        IF ( NSTEPC .LT. 1 ) RETURN
+        FSTEPI = 1. / REAL(NSTEPC)
+C  CALCULATE INCREMENTS AND START VALUES FOR POSITION AND VELOCITY
+C  LOOP 1000 RUNS FROM BOTTOM TO TOP OF STEP
+        DVCOR  = VSTEP * FSTEPI
+        VCOR   = -0.5 * DVCOR
+        DBETA  = 2.D0*FSTEPI*EDEP*(PAMA(2)*1.D3)**2 / (ENEW**3*BETAF)
+        BETAE  = BETAF - 0.5D0 * DBETA
+      ENDIF
+
+C  LOOP OVER SUBSTEPS
+      DO 1000  ISTC = 1,NSTEPC
+        VCOR   = VCOR + DVCOR
+        ZEMIS  = H2 + VCOR * W(NP)
+        ETA1   = 1.D0 + ETADSN * RHOF(DBLE(ZEMIS))
+C  VELOCITY IN THE MIDDLE OF SUBSTEP
+        BETAE  =  BETAE + DBETA
+        CTHETA = 1.D0 / (ETA1*BETAE)
+        STHETA = 1.D0 - CTHETA**2
+C  PARTICLE IS AT ENERGY THRESHOLD IF EMISSION ANGLE BECOMES 0
+        IF ( STHETA .LE. 0.D0 ) RETURN
+C  NUMBER OF EMITTED PHOTONS ON DISTANCE DVCOR
+        PHOTCM = CYIELD * STHETA * STEPCR * FSTEPI
+        STHETA = SQRT(STHETA)
+C  ASSUME EMISSION POINT OF ALL PHOTONS IN THE MIDDLE OF THE STEP
+        XEMIS  =  X(NP) - VCOR * U(NP)
+        YEMIS  = -Y(NP) + VCOR * V(NP)
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C GENERATE RANDOM WAVELENGTH FOR SINGLE C-PHOTON.
+        CALL RMMAR( RD,1,3 )
+        WAVELENGTH = 1. / (1/WAVLGL - 
+     +       RD(1)/(WAVLGL*WAVLGU/(WAVLGU-WAVLGL)))
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C  CALCULATE PHOTON DIRECTION IN THE CORSIKA COORDINATE FRAME
+        CALL RMMAR( RD,1,3 )
+        PHICER = RD(1) * PI2
+        SINCR  = SIN(PHICER)
+        COSCR  = COS(PHICER)
+        A =  U(NP)
+        B = -V(NP)
+        CC = W(NP)
+        SINPS2 = A**2 + B**2
+        IF ( SINPS2 .LT. 1.E-10 ) THEN
+          UEMIS  = STHETA * COSCR
+          VEMIS  = STHETA * SINCR
+          WEMIS  = CTHETA * CC
+        ELSE
+          SINPSI = SQRT(SINPS2)
+          US     = STHETA * COSCR
+          VS     = STHETA * SINCR
+          SINDEL = B * (1./SINPSI)
+          COSDEL = A * (1./SINPSI)
+          UEMIS  = CC * COSDEL * US - SINDEL * VS + A * CTHETA
+          VEMIS  = CC * SINDEL * US + COSDEL * VS + B * CTHETA
+          WEMIS  =     -SINPSI * US              + CC * CTHETA
+        ENDIF
+C  EMISSION ANGLE WITHIN ZENITH ANGULAR CUT?
+        IF ( WEMIS .LT. C(29) ) GOTO 1000
+        RADINV = 1.5 - 0.5 * ( UEMIS**2 + VEMIS**2 + WEMIS**2 )
+        UEMIS2 = UEMIS * RADINV
+        VEMIS2 = VEMIS * RADINV
+        WEMIS  = WEMIS * RADINV
+
+C  CALCULATE DISTANCE FROM SHOWER AXIS AT THE DETECTOR LEVEL
+        PATHCR = ( ZEMIS - OBSLEV(NOBSLV) ) / WEMIS
+        XCER2  = XEMIS + PATHCR * UEMIS2 - XOFF(NOBSLV)
+        YCER2  = YEMIS + PATHCR * VEMIS2 - YOFF(NOBSLV)
+
+C  ADD THE CERENKOV PHOTONS TO THE LONGITUDINAL DEVELOPMENT
+        IF ( LLONGI ) THEN
+C  IF STARTING POINT BELOW LOWEST LEVEL THEN DON'T CHECK
+          IF ( HLONG(NSTEP) .LE. ZEMIS ) THEN
+C  FIND FIRST THE EQUIVALENT LEVELS
+            LPCT1 = LPCTE(NP)
+C  ZEMIS IS ONLY LITTLE BELOW Z OLD, THEREFORE INCREMENTAL SEARCH
+C  (REMEBER: LPCTE IS AT START OF ELECTRON STEP)
+            DO 6002 I1 = LPCT1,NSTEP
+              IF ( HLONG(I1) .LT. ZEMIS ) GOTO 6003
+ 6002       CONTINUE
+            I1 = NSTEP + 1
+ 6003       CONTINUE
+            DO 4862 I=I1,NSTEP
+                PLONG(I,9) = PLONG(I,9) + PHOTCM
+ 4862       CONTINUE
+          ENDIF
+        ENDIF
+
+C  TAKE INTO ACCOUNT A ROTATION OF ARRAY RELATIVE TO MAGNETIC NORD
+        XCER  = XCER2  * COSANG + YCER2  * SINANG
+        YCER  = YCER2  * COSANG - XCER2  * SINANG
+        UEMIS = UEMIS2 * COSANG + VEMIS2 * SINANG
+        VEMIS = VEMIS2 * COSANG - UEMIS2 * SINANG
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+        CERELE = CERELE + PHOTCM
+        DO 7001 I=1,ICERML
+          DO 101 NCT=1,NCTELS
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>> Modification to implement sphere algorithm >>>>>>>>>>>>>>>>>>>>>>>>
+c>> JCG Wed Sep 21 10:49:14 MET DST 1998 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>>>>> this is the last (simple) check <<<<<
+C  changes to ct frame
+c            XG = XCER - CERXOS(I) - CTPARS(NCT,XCT) 
+c            YG = YCER - CERYOS(I) - CTPARS(NCT,YCT) 
+c            ZG =  0.0 - CTPARS(NCT,ZCT)
+c            DIST2 = SQRT( XG**2 + YG**2 )
+c            IF ( DIST2 .LT. (CTPARS(NCT,CTDIAM)/2.) ) GOTO 102
+c>> New check >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+            XG = XCER - CERXOS(I) 
+            YG = YCER - CERYOS(I)
+            ZG = 0.0
+            DIST2 = 
+     >          SQRT((VEMIS*(-CTPARS(NCT,XCT) + XG) - 
+     >          UEMIS*(-CTPARS(NCT,YCT) + YG))**2 + 
+     >          (-(SQRT(1 - UEMIS**2 - VEMIS**2)*
+     >          (-CTPARS(NCT,XCT) + XG)) + 
+     >          UEMIS*(-CTPARS(NCT,ZCT) + ZG))**2 + 
+     >          (SQRT(1 - UEMIS**2 - VEMIS**2)*
+     >          (-CTPARS(NCT,YCT) + YG) - 
+     >          VEMIS*(-CTPARS(NCT,ZCT) + ZG))**2)
+            IF ( DIST2 .LT. (CTPARS(NCT,CTDIAM)/2.) ) GOTO 102
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+            
+ 101      CONTINUE
+          
+          GOTO 7001
+          
+C   BUNCH FALLS ON A DETECTOR, CALCULATE ARRIVAL TIME (NSEC)
+          
+ 102      CARTIM = ((ETADSN*(THCKOB(NOBSLV)-THICK(DBLE(ZEMIS)))
+     *         /WEMIS+PATHCR-VCOR/BETAE)/C(25)+TIME(NP))* 1.E9
+          
+c          CALL OUTPT2(IQ(NP),I)
+          CALL OUTPT2(NCT,I)
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+          call jctime(cartim)
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+          GOTO 1000
+          
+ 7001   CONTINUE
+ 1000 CONTINUE
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+      RETURN
+      END
+
+C=======================================================================
+
+      SUBROUTINE CERENH( STEPCR,BETACR )
+
+C-----------------------------------------------------------------------
+C  CEREN(KOV RADIATION FROM) H(ADRONS)
+C
+C  CERENKOV RADIATION FROM HADRONS
+C  CERENKOV RADIATION IS ONLY CALCULATED FOR LOWEST OBSERVATION LEVEL
+C  THIS SUBROUTINE IS CALLED FROM UPDATE
+C  ARGUMENTS:
+C   STEPCR = STEP LENGTH FOR ELECTRON OR POSITRON
+C   BETACR = VELOCITY OF PARTICLE IN UNITS OF SPEED OF LIGHT
+C
+C  AUTHOR  : M. ROZANSKA  UNIVERSITY OF KRAKOW
+C            S. MARTINEZ  UNIVERSITY OF MADRID
+C            F. ARQUEROS  UNIVERSITY OF MADRID
+C  CHANGES : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+      parameter (xct=1)
+      parameter (yct=2)
+      parameter (zct=3)
+      parameter (ctthet=4)
+      parameter (ctphi=5)
+      parameter (ctdiam=6)
+      parameter (ctfoc=7)
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+c      IMPLICIT NONE
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,EPCONT.
+      COMMON/EPCONT/   EDEP,RATIO,TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,IDISC,
+     *                 IROLD,IRNEW,RHOFAC, EOLD,ENEW,EKE,ELKE,BETA2,GLE,
+     *                 TSCAT,IAUSFL
+      DOUBLE PRECISION EDEP,RATIO
+      REAL             TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,RHOFAC,EOLD,ENEW,
+     *                 EKE,ELKE,BETA2,GLE,TSCAT
+      INTEGER          IDISC,IROLD,IRNEW,IAUSFL(29)
+*KEEP,LONGI.
+      COMMON /LONGI/   APLONG,HLONG,PLONG,SPLONG,THSTEP,THSTPI,
+     *                 NSTEP,LLONGI,FLGFIT
+      DOUBLE PRECISION APLONG(0:1040,9),HLONG(0:1024),PLONG(0:1040,9),
+     *                 SPLONG(0:1040,9),THSTEP,THSTPI
+      INTEGER          NSTEP
+      LOGICAL          LLONGI,FLGFIT
+*KEEP,MAGANG.
+      COMMON /MAGANG/  ARRANG,ARRANR,COSANG,SINANG
+      DOUBLE PRECISION ARRANG,ARRANR,COSANG,SINANG
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,CEREN1.
+      COMMON /CEREN1/  CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD,
+     *                 CERSIZ,LCERFI
+      DOUBLE PRECISION CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD
+      REAL             CERSIZ
+      LOGICAL          LCERFI
+*KEEP,CEREN2.
+      COMMON /CEREN2/  PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS,CERYOS,
+     *                 NCERX,NCERY,ICERML
+      REAL             PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS(20),CERYOS(20)
+      INTEGER          NCERX,NCERY,ICERML
+*KEEP,CERHDR.
+      COMMON/CERHDR/   TPART,UPART,VPART,WPART,XPART,YPART,ZPART
+      DOUBLE PRECISION TPART,UPART,VPART,WPART,XPART,YPART,ZPART
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+*keep,certel.
+      common /certel/  cormxd,cord,coralp,ctpars,omega,
+     +                 photn,photnp,phpt,pht,vphot,
+     +                 vchi,veta,vzeta,vchim,vetam,vzetam,
+     +                 lambda,mu,nu,nctels,ncph
+      double precision cormxd,cord,coralp,ctpars(20,7),omega(20,3,3),
+     +                 photn(3),photnp(3),phpt(3),pht,vphot(3),
+     +                 vchi(3),veta(3),vzeta(3),vchim,vetam,vzetam,
+     +                 lambda,mu,nu
+      integer          nctels,ncph(5)
+      double precision xg,yg,zg,xgp,ygp,zgp,up,vp,wp,xpcut,ypcut,zpcut
+      equivalence (photn(1) ,xg)   ,(photn(2) ,yg)   ,(photn(3) ,zg)  ,
+     +            (photnp(1),xgp)  ,(photnp(2),ygp)  ,(photnp(3),zgp),
+     +            (phpt(1)  ,xpcut),(phpt(2)  ,ypcut),(phpt(3)  ,zpcut),
+     +            (vphot(1) ,up)   ,(vphot(2) ,vp)   ,(vphot(3) ,wp)    
+      character *72 ctfile
+*keep,graal1.
+      common /graal1/ wavelength ! (nm)
+      real wavelength
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+*KEND.
+
+      DOUBLE PRECISION BETACR,CINTEN,CTHETA,ETA,ETA1,HMID,PHOTCT,
+     *                 RHOF,STEPCR,STHETA,THICK
+      REAL             A,B,CC,COSCR,COSDEL,DVCOR,DXXX,DYYY,FSTEPI,
+     *                 PATHCR,PHICER,RADINV,SINCR,SINDEL,SINPSI,SINPS2,
+     *                 UEMIS2,US,VEMIS2,VCOR,VS,WEMIS,XCER1,XCER2,XEMIS,
+     *                 XXX,YCER1,YCER2,YEMIS,YYY
+      INTEGER          I,II,ISTC,I1,I2,NSTEPC
+      EXTERNAL         RHOF,THICK
+C-----------------------------------------------------------------------
+
+c      IF ( DEBUG ) WRITE(MDEBUG,*) 'CERENH: ZPART=',SNGL(ZPART),
+c     *    ' STEPCR=',SNGL(STEPCR),' BETACR=',SNGL(BETACR)
+
+C  SKIP PARTICLE OUT OF ANGULAR ACCEPTANCE RANGE
+      IF ( WPART .LT. C(29) ) RETURN
+C  CERENKOV INTENSITY FACTOR DEPENDS ON CHARGE STATE OF HEAVY IONS
+      CINTEN = CYIELD * ABS(SIGNUM(INT(CURPAR(1))))
+
+C  REFRACTIVE INDEX PARAMETRISATION: N=1+ETA
+      HMID   = ZPART + 0.5D0 * STEPCR * WPART
+      ETA1   = 1.D0 + ETADSN * RHOF(DBLE(HMID))
+      CTHETA = 1.D0 / ( ETA1 * BETACR )
+      STHETA = 1.D0 - CTHETA**2
+      IF ( STHETA .LE. 0.D0 ) RETURN
+
+      PHOTCT = CINTEN * STHETA * STEPCR
+      NSTEPC = PHOTCT / CERSIZ + 1
+      IF ( NSTEPC .LT. 1 ) RETURN
+      FSTEPI = 1. / REAL(NSTEPC)
+      VCOR   = -0.5 * STEPCR * FSTEPI
+      DVCOR  = -2. * VCOR
+C  CERENKOV RADIATION IS ONLY CALCULATED FOR LOWEST OBSERVATION LEVEL
+      DO  1000  ISTC = 1,NSTEPC
+        VCOR   = VCOR + DVCOR
+        ZEMIS  = ZPART + VCOR * WPART
+        ETA    = ETADSN * RHOF(DBLE(ZEMIS))
+        ETA1   = 1.D0 + ETA
+        CTHETA = 1.D0 / ( ETA1 * BETACR )
+        STHETA = 1.D0 - CTHETA**2
+        IF ( STHETA .LE. 0.D0 ) RETURN
+
+C  NUMBER OF EMITTED PHOTONS ON DISTANCE STEPCR
+        PHOTCM = CINTEN * STHETA * STEPCR * FSTEPI
+        STHETA = SQRT(STHETA)
+
+C  ASSUME EMISSION POINT OF ALL PHOTONS IN THE MIDDLE OF THE STEP
+C  HAS TO BE CHECKED IF STEPS ARE NOT TOO LONG
+        XEMIS = XPART - VCOR * UPART
+        YEMIS = YPART - VCOR * VPART
+
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C GENERATE RANDOM WAVELENGTH FOR SINGLE C-PHOTON.
+        CALL RMMAR( RD,1,3 )
+        WAVELENGTH = 1. / (1/WAVLGL - 
+     +       RD(1)/(WAVLGL*WAVLGU/(WAVLGU-WAVLGL)))
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+C  CALCULATE PHOTON DIRECTION IN THE OVERALL COORDINATE FRAME
+        CALL RMMAR( RD,1,3 )
+        PHICER = RD(1) * PI2
+        SINCR  = SIN(PHICER)
+        COSCR  = COS(PHICER)
+        A  = UPART
+        B  = VPART
+        CC = WPART
+        SINPS2 = A**2 + B**2
+        IF ( SINPS2 .LT. 1.E-10 ) THEN
+          UEMIS  = STHETA * COSCR
+          VEMIS  = STHETA * SINCR
+          WEMIS  = CTHETA * CC
+        ELSE
+          SINPSI = SQRT(SINPS2)
+          US = STHETA * COSCR
+          VS = STHETA * SINCR
+          SINDEL = B * (1./SINPSI)
+          COSDEL = A * (1./SINPSI)
+          UEMIS  = CC * COSDEL * US - SINDEL * VS + A * CTHETA
+          VEMIS  = CC * SINDEL * US + COSDEL * VS + B * CTHETA
+          WEMIS  =     -SINPSI * US              + CC * CTHETA
+        ENDIF
+C  EMISSION ANGLE WITHIN ZENITH ANGULAR CUT?
+        IF ( WEMIS .LT. C(29) ) GOTO 1000
+        RADINV = 1.5 - 0.5 * ( UEMIS**2 + VEMIS**2 + WEMIS**2 )
+        UEMIS2 = UEMIS * RADINV
+        VEMIS2 = VEMIS * RADINV
+        WEMIS  = WEMIS * RADINV
+
+C  CALCULATE DISTANCE FROM SHOWER AXIS AT THE DETECTOR LEVEL
+        PATHCR = ( ZEMIS - OBSLEV(NOBSLV) ) / WEMIS
+        XCER2  = XEMIS + PATHCR * UEMIS2 - XOFF(NOBSLV)
+        YCER2  = YEMIS + PATHCR * VEMIS2 - YOFF(NOBSLV)
+
+C  ADD THE CERENKOV PHOTONS TO THE LONGITUDINAL DEVELOPMENT
+        IF ( LLONGI ) THEN
+C  IF STARTING POINT BELOW LOWEST LEVEL THEN DON'T CHECK
+          IF ( HLONG(NSTEP) .LE. ZEMIS ) THEN
+C  FIND FIRST THE EQUIVALENT LEVELS
+            I1 = 0
+            I2 = NSTEP
+ 6001       CONTINUE
+            II = (I1+I2)/2
+            IF ( HLONG(II) .LT. ZEMIS ) THEN
+              I2 = II
+            ELSE
+              I1 = II
+            ENDIF
+            IF ( I2-I1 .GT. 1 ) GOTO 6001
+            DO 4862 I=I2,NSTEP
+                PLONG(I,9) = PLONG(I,9) + PHOTCM
+ 4862       CONTINUE
+          ENDIF
+        ENDIF
+
+C  TAKE INTO ACCOUNT A ROTATION OF ARRAY RELATIVE TO MAGNETIC NORD
+        XCER  = XCER2  * COSANG + YCER2  * SINANG
+        YCER  = YCER2  * COSANG - XCER2  * SINANG
+        UEMIS = UEMIS2 * COSANG + VEMIS2 * SINANG
+        VEMIS = VEMIS2 * COSANG - UEMIS2 * SINANG
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+        CERHAD = CERHAD + PHOTCM
+        DO 7001 I=1,ICERML
+          DO 101 NCT=1,NCTELS
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>> Modification to implement sphere algorithm >>>>>>>>>>>>>>>>>>>>>>>>
+c>> JCG Wed Sep 21 10:49:14 MET DST 1998 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>>>>> this is the last (simple) check <<<<<
+C  changes to ct frame
+c            XG = XCER - CERXOS(I) - CTPARS(NCT,XCT) 
+c            YG = YCER - CERYOS(I) - CTPARS(NCT,YCT) 
+c            ZG =  0.0 - CTPARS(NCT,ZCT)
+c            DIST2 = SQRT( XG**2 + YG**2 )
+c            IF ( DIST2 .LT. (CTPARS(NCT,CTDIAM)/2.) ) GOTO 102
+c>> New check >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+            XG = XCER - CERXOS(I) 
+            YG = YCER - CERYOS(I)
+            ZG = 0.0
+            DIST2 = 
+     >          SQRT((VEMIS*(-CTPARS(NCT,XCT) + XG) - 
+     >          UEMIS*(-CTPARS(NCT,YCT) + YG))**2 + 
+     >          (-(SQRT(1 - UEMIS**2 - VEMIS**2)*
+     >          (-CTPARS(NCT,XCT) + XG)) + 
+     >          UEMIS*(-CTPARS(NCT,ZCT) + ZG))**2 + 
+     >          (SQRT(1 - UEMIS**2 - VEMIS**2)*
+     >          (-CTPARS(NCT,YCT) + YG) - 
+     >          VEMIS*(-CTPARS(NCT,ZCT) + ZG))**2)
+            IF ( DIST2 .LT. (CTPARS(NCT,CTDIAM)/2.) ) GOTO 102
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ 101      CONTINUE
+          
+          GOTO 7001
+          
+C   BUNCH FALLS ON A DETECTOR, CALCULATE ARRIVAL TIME (NSEC)
+          
+ 102      CARTIM = ((ETADSN*(THCKOB(NOBSLV)-THICK(DBLE(ZEMIS)))
+     *         /WEMIS+PATHCR-VCOR/BETACR)/C(25)+TPART)*1.E9
+
+c          CALL OUTPT2(INT(CURPAR(1)),I)
+          CALL OUTPT2(NCT,I)
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+          call jctime(cartim)
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+          GOTO 1000
+          
+ 7001   CONTINUE
+ 1000 CONTINUE
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+      RETURN
+      END
+
+C=======================================================================
+
+      SUBROUTINE GETBUS( IPARTI,ENERGY,THETA,CERSZE )
+
+C-----------------------------------------------------------------------
+C  GET BU(NCH) S(IZE)
+C
+C  CALCULATES OPTIMAL BUNCH SIZE FOR CERENKOV PHOTONS. CERENKOV PHOTONS
+C  ARE GROUPED IN BUNCHES IN ORDER TO ACCELERATE COMPUTING TIME.
+C  HOWEVER, WE SET A MAXIMAL VALUE FOR THE GROUPING OF CERENKOV PHOTONS
+C  SO THAT WE GET AT LEAST 100 BUNCHES/M**2 AT A CERENKOV FLUX OF 3000
+C  PHOTONS/M**2. THIS IS THE MINIMUM CERENKOV FLUX WHICH CAN BE
+C  DISTINGUISHED FROM THE NIGHT SKY LIGHT BACKGROUND IN THE HEGRA
+C  EXPERIMENT AT THE ISLAND LA PALMA. SO THE PARAMETRIZATION OF THE
+C  CERENKOV BUNCH AS CALCULATED IN THIS SUBROUTINE IS VALID FOR
+C  OBSERVATION LEVELS SIMILAR TO THAT OF THE HEGRA EXPERIMENT.
+C     FOR A GIVEN PRIMARY PARTICLE, INCIDENT ENERGY AND ANGLE, AN
+C  OPTIMAL BUNCH SIZE IS CALCULATED BY INTERPOLATION IN A TABLE,
+C  WHERE WE HAVE CHOSEN AN ENERGY RANGE UP TO 1000 TEV, INCIDENT
+C  ANGLES 0 AND 40 DEGREES, AND 4 TYPES OF PRIMARIS: GAMMAS,
+C  PROTONS, NITROGEN, AND IRON.
+C  THIS SUBROUTINE IS CALLED FROM MAIN
+C  ARGUMENTS:
+C   IPARTI      = TYPE OF PRIMARY PARTICLE
+C   ENERGY (R4) = PARTICLES ENERGY IN GEV
+C   THETA  (R4) = ANGLE IN RAD
+C   CERSZE (R4) = SIZE OF CERENKOV BUNCH
+C
+C  AUTHORS : S. MARTINEZ  UNIVERSITY OF MADRID
+C            F. ARQUEROS  UNIVERSITY OF MADRID
+C-----------------------------------------------------------------------
+
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+
+      REAL    ANGLE(2),ENGAM(3),ENHAD(3),ENNIT(2),
+     *        SIFE(3,2),SIGAM(3,2),SINIT(2),SIPRO(3,2)
+      REAL    CERS1F,CERS1P,ENERGY,CERSZE,S1,S2,THETA
+      INTEGER I,IANFE,IANP,IATNUM,IPARTI,I1,I2
+
+      DATA ANGLE /  0., 40. /
+      DATA ENGAM /  100.,  200.,  500. /
+      DATA ENHAD /  100.,  200.,  1000. /
+      DATA ENNIT /  200.,  1000. /
+      DATA ( SIFE (I,1),I=1,3 ) /  30.,  30.,  140. /
+      DATA ( SIFE (I,2),I=1,3 ) /  30.,  30.,  110. /
+      DATA ( SIGAM(I,1),I=1,3 ) /  30.,  45.,  100. /
+      DATA ( SIGAM(I,2),I=1,3 ) /  30.,  40.,  100. /
+      DATA SINIT /  30.,  150. /
+      DATA ( SIPRO(I,1),I=1,3 ) /  30.,  30.,  120. /
+      DATA ( SIPRO(I,2),I=1,3 ) /  30.,  30.,  160. /
+      DATA IANP   / 1 /, IANFE / 26 /
+C-----------------------------------------------------------------------
+
+c      IF ( DEBUG ) WRITE(MDEBUG,100) IPARTI,SNGL(ENERGY),SNGL(THETA)
+c 100  FORMAT(' GETBUS: INPUT PARTICLE = ',I5,1P,2E10.3)
+
+C  DEFAULT VALUE
+      CERSZE = 100.
+
+      ENERGY = ENERGY / 1000.
+      IF ( ENERGY .LE. 100. ) THEN
+        CERSZE = 30.
+        IF ( DEBUG ) WRITE(MDEBUG,101) CERSZE
+        RETURN
+      ENDIF
+
+      THETA  = THETA / PI * 180.
+
+C-----------------------------------------------------------------------
+C  PHOTON, ELECTRON OR POSITRON AS PRIMARY PARTICLE
+      IF ( IPARTI .LE. 3 ) THEN
+C  FIND ENERGY BIN FOR INTERPOLATION
+        IF ( ENERGY .LE. ENGAM(2) ) THEN
+          I1 = 1
+          I2 = 2
+        ELSE
+          I1 = 2
+          I2 = 3
+        ENDIF
+        S1 = SIGAM(I1,1) + (ENERGY - ENGAM(I1))
+     *       / (ENGAM(I2) - ENGAM(I1))
+     *       * (SIGAM(I2,1) - SIGAM(I1,1))
+        S2 = SIGAM(I1,2) + (ENERGY - ENGAM(I1))
+     *       / (ENGAM(I2) - ENGAM(I1))
+     *       * (SIGAM(I2,2) - SIGAM(I1,2))
+        CERSZE = S1 + (THETA-ANGLE(1))/(ANGLE(2)-ANGLE(1)) * (S2-S1)
+        IF ( DEBUG ) WRITE(MDEBUG,101) CERSZE
+        RETURN
+      ENDIF
+
+C-----------------------------------------------------------------------
+C  NITROGEN AS PRIMARY PARTICLE AND VERTICAL INCIDENCE
+CJOK WHY SPECIAL TREATMENT FOR NITROGEN ????
+CJOK WHY ONLY VERTICAL INCIDENCE ????
+      IF ( IPARTI .EQ. 1407  .AND.  ABS(THETA) .LT. 1.E-1 ) THEN
+        IF ( ENERGY .LT. 200. ) THEN
+          CERSZE = 30.
+        ELSE
+          CERSZE = SINIT(1) + (ENERGY-ENNIT(1))
+     *             / (ENNIT(2)-ENNIT(1)) * (SINIT(2)-SINIT(1))
+        ENDIF
+        IF ( DEBUG ) WRITE(MDEBUG,101) CERSZE
+        RETURN
+      ENDIF
+
+C-----------------------------------------------------------------------
+C  GET THE ATOMIC NUMBER OF THE NUCLEUS
+C  Z IS 1,  IF PROTON
+      IF     ( IPARTI .EQ. 14  ) THEN
+        IATNUM = 1
+C  REST OF POSSIBLE NUCLEI
+      ELSEIF ( IPARTI .GT. 100 ) THEN
+        IATNUM = MOD(IPARTI,100)
+        IF ( IATNUM .GT. 26 ) THEN
+          WRITE(MONIOU,*) 'GETBUS: UNEXPECTED PARTICLE CODE'
+          RETURN
+        ENDIF
+      ELSE
+        WRITE(MONIOU,*) 'GETBUS: UNEXPECTED PARTICLE CODE'
+        RETURN
+      ENDIF
+
+C  FIND ENERGY BIN FOR INTERPOLATION IN CASE OF HADRONIC PRIMARY
+      IF ( ENERGY .LE. ENHAD(2) ) THEN
+        I1 = 1
+        I2 = 2
+      ELSE
+        I1 = 2
+        I2 = 3
+      ENDIF
+
+C  INTERPOLATION FOR HADRONS
+      S1 = SIPRO(I1,1) + (ENERGY-ENHAD(I1))
+     *       / (ENHAD(I2)-ENHAD(I1)) * (SIPRO(I2,1)-SIPRO(I1,1))
+      S2 = SIPRO(I1,2) + (ENERGY-ENHAD(I1))
+     *       / (ENHAD(I2)-ENHAD(I1)) * (SIPRO(I2,2)-SIPRO(I1,2))
+      CERS1P = S1 + (THETA-ANGLE(1)) / (ANGLE(2)-ANGLE(1)) * (S2-S1)
+
+      S1 = SIFE(I1,1) + (ENERGY-ENHAD(I1)) / (ENHAD(I2)-ENHAD(I1))
+     *                * (SIFE(I2,1)-SIFE(I1,1))
+      S2 = SIFE(I1,2) + (ENERGY-ENHAD(I1)) / (ENHAD(I2)-ENHAD(I1))
+     *                * (SIFE(I2,2)-SIFE(I1,2))
+      CERS1F = S1 + (THETA-ANGLE(1)) / (ANGLE(2)-ANGLE(1)) * (S2-S1)
+
+      CERSZE = CERS1P + (IATNUM-IANP) * (CERS1F-CERS1P) / (IANFE-IANP)
+
+      IF ( DEBUG ) WRITE(MDEBUG,101) CERSZE
+ 101  FORMAT(' GETBUS: BUNCH SIZE = ',1P,1E10.3)
+
+      RETURN
+      END
+
+C=======================================================================
+
+      SUBROUTINE OUTND2
+
+C-----------------------------------------------------------------------
+C  OUT(PUT AT E)ND (OF SHOWER)
+C
+C  WRITE REST OF PARTICLES TO OUTPUT BUFFER
+C  OUTND2 IS CALLED FROM MAIN
+C
+C  AUTHORS : S. MARTINEZ, UNIVERSITY OF MADRID
+C            F. ARQUEROS, UNIVERSITY OF MADRID
+C-----------------------------------------------------------------------
+
+      IMPLICIT NONE
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,CEREN2.
+      COMMON /CEREN2/  PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS,CERYOS,
+     *                 NCERX,NCERY,ICERML
+      REAL             PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS(20),CERYOS(20)
+      INTEGER          NCERX,NCERY,ICERML
+*KEEP,CEREN3.
+      COMMON /CEREN3/  CERCNT,DATAB2,LHCER
+      INTEGER          MAXBF2
+      PARAMETER        (MAXBF2 = 39 * 7)
+      DOUBLE PRECISION CERCNT
+      REAL             DATAB2(MAXBF2)
+      INTEGER          LHCER
+*KEND.
+
+      INTEGER I
+C-----------------------------------------------------------------------
+
+      IF ( LHCER .GT. 0 ) THEN
+        CALL TOBUFC( DATAB2,1 )
+        DO  2  I = 1,MAXBF2
+          DATAB2(I) = 0.
+    2   CONTINUE
+      ELSE
+        CALL TOBUFC( DATAB2,2 )
+      ENDIF
+
+      WRITE(MONIOU,*) 'CERCNT = ',SNGL( CERCNT )
+      CERCNT = 0.D0
+      LHCER  = 0
+
+      RETURN
+      END
+
+C=======================================================================
+
+      SUBROUTINE OUTPT2(J,IMOV)
+
+C-----------------------------------------------------------------------
+C  (WRITE CERENKOV RADIATION) OUTP(U)T
+C
+C  OUTPUT ROUTINE FOR CERENKOV PHOTONS
+C  THIS SUBROUTINE IS CALLED FROM CERENE AND CERENH
+C
+C  AUTHORS : S. MARTINEZ, UNIVERSITY OF MADRID
+C            F. ARQUEROS, UNIVERSITY OF MADRID
+C-----------------------------------------------------------------------
+
+      IMPLICIT NONE
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,CEREN1.
+      COMMON /CEREN1/  CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD,
+     *                 CERSIZ,LCERFI
+      DOUBLE PRECISION CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD
+      REAL             CERSIZ
+      LOGICAL          LCERFI
+*KEEP,CEREN2.
+      COMMON /CEREN2/  PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS,CERYOS,
+     *                 NCERX,NCERY,ICERML
+      REAL             PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS(20),CERYOS(20)
+      INTEGER          NCERX,NCERY,ICERML
+*KEEP,CEREN3.
+      COMMON /CEREN3/  CERCNT,DATAB2,LHCER
+      INTEGER          MAXBF2
+      PARAMETER        (MAXBF2 = 39 * 7)
+      DOUBLE PRECISION CERCNT
+      REAL             DATAB2(MAXBF2)
+      INTEGER          LHCER
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+      COMMON /GRAAL1/  WAVELENGTH ! (NM)
+      REAL WAVELENGTH
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+*KEND.
+
+      INTEGER I,J,IMOV
+C-----------------------------------------------------------------------
+
+      IF(DEBUG)WRITE(MDEBUG,3)PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS
+  3   FORMAT(' OUTPT2: ',1P,8E10.3)
+C  WRITE A BLOCK OF 39 PARTICLES TO THE CERENKOV OUTPUT BUFFER AND
+C  CLEAR FIELD
+      IF ( LCERFI ) THEN
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c        DATAB2(LHCER+1) = PHOTCM
+cc        DATAB2(LHCER+1) = WAVELENGTH + J*1000.
+        DATAB2(LHCER+1) = J*100000. + IMOV*1000. + WAVELENGTH
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+        DATAB2(LHCER+2) = XCER
+        DATAB2(LHCER+3) = YCER
+        DATAB2(LHCER+4) = UEMIS
+        DATAB2(LHCER+5) = VEMIS
+        DATAB2(LHCER+6) = CARTIM
+        DATAB2(LHCER+7) = ZEMIS
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c        CERCNT = CERCNT + DBLE( PHOTCM )
+        CERCNT = CERCNT + 1
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+        LHCER  = LHCER + 7
+        IF ( LHCER .GE. MAXBF2 ) THEN
+          CALL TOBUFC( DATAB2,0 )
+          DO  1  I = 1,MAXBF2
+            DATAB2(I) = 0.
+    1     CONTINUE
+          LHCER = 0
+        ENDIF
+      ELSE
+C  WRITE A BLOCK OF 39 PARTICLES TO THE PARTICLE OUTPUT BUFFER AND
+C  CLEAR FIELD
+        DATAB(LH+1) = 99.E5 + NINT(PHOTCM)*10. + 1.
+        DATAB(LH+2) = XCER
+        DATAB(LH+3) = YCER
+        DATAB(LH+4) = UEMIS
+        DATAB(LH+5) = VEMIS
+        DATAB(LH+6) = CARTIM
+        DATAB(LH+7) = ZEMIS
+        LH     = LH + 7
+        NOPART = NOPART + 1
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c        CERCNT = CERCNT + DBLE( PHOTCM )
+        CERCNT = CERCNT + 1
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+        IF ( LH .GE. MAXBUF ) THEN
+          CALL TOBUF( DATAB,0 )
+          DO  2  I = 1,MAXBUF
+            DATAB(I) = 0.
+    2     CONTINUE
+          LH = 0
+        ENDIF
+      ENDIF
+
+      RETURN
+      END
+
+C=======================================================================
+
+      SUBROUTINE TOBUFC( A,IFL )
+
+C-----------------------------------------------------------------------
+C  (WRITE) TO BUF(FER) C(ERENKOV DATA)
+C
+C  COPY TO BUFFER CERENKOV DATA
+C  THIS SUBROUTINE IS CALLED FROM MAIN, INPRM, ELECTR, PHOTON, OUTND2,
+C  AND OUTPT2
+C  ARGUMENTS:
+C   A      = ARRAY TO BE WRITTEN TO TAPE
+C   IFL    = STARTING OF FINAL OUTPUT
+C          = 0  NORMAL BLOCK
+C          = 1  NORMAL BLOCK WITH END OF OUTPUT
+C          = 2  ONLY END OF OUTPUT
+C-----------------------------------------------------------------------
+
+      IMPLICIT NONE
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,RECORD.
+      COMMON /RECORD/  IRECOR
+      INTEGER          IRECOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,CEREN3.
+      COMMON /CEREN3/  CERCNT,DATAB2,LHCER
+      INTEGER          MAXBF2
+      PARAMETER        (MAXBF2 = 39 * 7)
+      DOUBLE PRECISION CERCNT
+      REAL             DATAB2(MAXBF2)
+      INTEGER          LHCER
+*KEEP,CEREN4.
+      COMMON /CEREN4/  NRECER
+      INTEGER          NRECER
+*KEND.
+
+      INTEGER   NSUBBL
+      PARAMETER (NSUBBL=21)
+      REAL      A(*)
+C  NSUBBL IS NUMBER OF SUBBLOCKS IN ONE OUTPUT RECORD
+C  (OUTPUT RECORD LENGTH = NSUBBL * 39 * 7 * 4 BYTES  <= 22932 )
+C  IBLK2 IS COUNTER FOR SUBBLOCKS OF CERENKOV OUTPUT
+C  OUTPUT BUFFER FOR CERENKOV OUTPUT
+      REAL      OUTBF2(MAXBF2,NSUBBL)
+      SAVE      OUTBF2
+      INTEGER   I,IBLK2,IFL,K
+      DATA      IBLK2 / 0 /
+C-----------------------------------------------------------------------
+
+      IF ( IFL .LE. 1 ) THEN
+        IBLK2 = IBLK2 + 1
+        DO  3  I = 1,MAXBF2
+          OUTBF2(I,IBLK2) = A(I)
+    3   CONTINUE
+      ENDIF
+
+C  WRITE TO TAPE IF BLOCK IS FULL OR IF IFL IS 1
+      IF ( IFL .GE. 1  .OR.  IBLK2 .EQ. NSUBBL ) THEN
+        NRECER = NRECER + 1
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c        WRITE(CETAPE)            ((OUTBF2(I,K),I=1,MAXBF2),K=1,NSUBBL)
+        call jccersave(outbf2)
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+        IBLK2 = 0
+        DO  4  K = 1,NSUBBL
+        DO  4  I = 1,MAXBF2
+          OUTBF2(I,K) = 0.0
+   4    CONTINUE
+      ENDIF
+
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/cghei.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/cghei.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/cghei.f	(revision 4308)
@@ -0,0 +1,853 @@
+      SUBROUTINE CGHEI
+ 
+C-----------------------------------------------------------------------
+C  C(ORSIKA) GHE(ISHA) I(NTERFACE)
+C
+C  MAIN STEERING ROUTINE FOR HADRON PACKAGE GHEISHA ***
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C
+C  ORIGIN  : F.CARMINATI, H.FESEFELDT (ROUTINE GHESIG)
+C  REDESIGN: P. GABRIEL IK1  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+*KEEP,CGCOMP.
+      PARAMETER (KK=3)
+      COMMON/CGCOMP/ ACOMP,ZCOMP,WCOMP
+      REAL           ACOMP(KK),ZCOMP(KK),WCOMP(KK)
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEEP,ELADPM.
+      COMMON /ELADPM/  ELMEAN,ELMEAA,IELDPM,IELDPA
+      DOUBLE PRECISION ELMEAN(37),ELMEAA(37)
+      INTEGER          IELDPM(37,13),IELDPA(37,13)
+*KEEP,ELASTY.
+      COMMON /ELASTY/  ELAST,IELIS,IELHM,IELNU,IELPI
+      DOUBLE PRECISION ELAST
+      INTEGER          IELIS(20),IELHM(20),IELNU(20),IELPI(20)
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,MULT.
+      COMMON /MULT/    EKINL,MSMM,MULTMA,MULTOT
+      DOUBLE PRECISION EKINL
+      INTEGER          MSMM,MULTMA(37,13),MULTOT(37,13)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION ELASTI,ELABOR,PLX,PLY,PLZ,PLSQ,PLTOT,RMASSK
+ 
+      COMMON/GSECTI/ AIEL(20),AIIN(20),AIFI(20),AICA(20),ALAM,K0FLAG
+      INTEGER K0FLAG
+      REAL AIEL,AIIN,AIFI,AICA,ALAM
+ 
+C --- GHEISHA COMMONS ---
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+ 
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+ 
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+ 
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+ 
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+ 
+ 
+C --- "NEVENT" CHANGED TO "KEVENT" IN COMMON /CURPAR/ DUE TO CLASH ---
+C --- WITH VARIABLE "NEVENT" IN GEANT COMMON ---
+ 
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON /CURPAR/ WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,KEVENT,SHFLAG,
+     $                ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     $                RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     $                ATNO2,ZNO2
+ 
+C --- "IPART" CHANGED TO "KPART" IN COMMON /RESULT/ DUE TO CLASH ---
+C --- WITH VARIABLE "IPART" IN GEANT COMMON ---
+ 
+      COMMON /RESULT/ XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     $                USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,KPART,IND,
+     $                LCALO,ICEL,SINL,COSL,SINP,COSP,
+     $                XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     $                XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                      REAL NCH,INTCT
+ 
+C --- "ABSL(21)" CHANGED TO "ABSLTH(21)" IN COMMON /MAT/ DUE TO CLASH ---
+C --- WITH VARIABLE "ABSL" IN GEANT COMMON ---
+ 
+      COMMON /MAT/ LMAT,
+     $             DEN(21),RADLTH(21),ATNO(21),ZNO(21),ABSLTH(21),
+     $             CDEN(21),MDEN(21),X0DEN(21),X1DEN(21),RION(21),
+     $             MATID(21),MATID1(21,24),PARMAT(21,10),
+     $             IFRAT,IFRAC(21),FRAC1(21,10),DEN1(21,10),
+     $             ATNO1(21,10),ZNO1(21,10)
+ 
+      DIMENSION IPELOS(35)
+      REAL EMAX,EEESQ
+      SAVE IDEOL
+ 
+      DIMENSION RNDM(1)
+ 
+C --- DIMENSION STMTS. FOR GEANT/GHEISHA PARTICLE CODE CONVERSIONS ---
+C --- KIPART(I)=GHEISHA CODE CORRESPONDING TO GEANT   CODE I ---
+C --- IKPART(I)=GEANT   CODE CORRESPONDING TO GHEISHA CODE I ---
+ 
+      DIMENSION KIPART(48),IKPART(35)
+ 
+C --- DATA STMTS. FOR GEANT/GHEISHA PARTICLE CODE CONVERSIONS ---
+C --- KIPART(I)=GHEISHA CODE CORRESPONDING TO GEANT   CODE I ---
+C --- IKPART(I)=GEANT   CODE CORRESPONDING TO GHEISHA CODE I ---
+ 
+      DATA KIPART/
+     $               1,   3,   4,   2,   5,   6,   8,   7,
+     $               9,  12,  10,  13,  16,  14,  15,  11,
+     $              35,  18,  20,  21,  22,  26,  27,  33,
+     $              17,  19,  23,  24,  25,  28,  29,  34,
+     $              35,  35,  35,  35,  35,  35,  35,  35,
+     $              35,  35,  35,  35,  30,  31,  32,  35/
+ 
+      DATA IKPART/
+     $               1,   4,   2,   3,   5,   6,   8,   7,
+     $               9,  11,  16,  10,  12,  14,  15,  13,
+     $              25,  18,  26,  19,  20,  21,  27,  28,
+     $              29,  22,  23,  30,  31,  45,  46,  47,
+     $              24,  32,  48/
+ 
+ 
+C --- DENOTE STABLE PARTICLES ACCORDING TO GHEISHA CODE ---
+C --- STABLE : GAMMA, NEUTRINO, ELECTRON, PROTON AND HEAVY FRAGMENTS ---
+C --- WHEN STOPPING THESE PARTICLES ONLY LOOSE THEIR KINETIC ENERGY ---
+      DATA IPELOS/
+     $             1,   1,   0,   1,   0,   0,   0,   0,
+     $             0,   0,   0,   0,   0,   1,   0,   0,
+     $             0,   0,   0,   0,   0,   0,   0,   0,
+     $             0,   0,   0,   0,   0,   1,   1,   1,
+     $             0,   0,   1/
+ 
+C --- LOWERBOUND OF KINETIC ENERGY BIN IN N CROSS-SECTION TABLES ---
+      DATA TEKLOW /0.0001/
+ 
+C --- KINETIC ENERGY TO SWITCH FROM "CASN" TO "GNSLWD" FOR N CASCADE ---
+      DATA SWTEKN /0.05/
+ 
+      DATA IDEOL/0/
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'CGHEI :'
+ 
+C --- DEFINE PARTICLE TYPE
+      IF     ( ITYPE .LE.  48 ) THEN
+         IPART = ITYPE
+      ELSEIF ( ITYPE .EQ. 201 ) THEN
+         IPART = 45
+      ELSEIF ( ITYPE .EQ. 301 ) THEN
+         IPART = 46
+      ELSEIF ( ITYPE .EQ. 402 ) THEN
+         IPART = 47
+      ELSE
+         WRITE (MONIOU,7795) ITYPE
+ 7795    FORMAT (//,' *CGHEI*  ILLEGAL PARTICLE TYPE OCCURS =',I5)
+         IPART = 48
+      ENDIF
+ 
+      NETEST=IKPART(KPART)
+      IF ( NETEST .EQ. IPART ) GO TO 9004
+ 
+      WRITE(MONIOU,8881) IPART,KPART
+ 8881 FORMAT(' *CGHEI* IPART,KPART = ',2(I3,1X)/
+     $ ' *CGHEI* ======> PARTICLE TYPES DO NOT MATCH <=======')
+      STOP
+ 
+ 9004 CONTINUE
+      KPART=KIPART(IPART)
+      KKPART=KPART
+ 
+C --- TRANSPORT THE TRACK NUMBER TO GHEISHA AND INITIALISE SOME NUMBERS
+C --- NTK=ITRA   ITRA = CURRENT TRACK NUMBER IN GEANT (GCKINE)
+      NTK=0
+      INTCT=0.0
+      NEXT=1
+      NTOT=0
+      INT=0
+      TOF=0.0
+ 
+C --- STORE COORDINATES FOR SECONDARIES AND RESET ITYPE
+      SECPAR(1) = 0.
+      DO 7001 LK = 5, 8
+         SECPAR(LK) = CURPAR(LK)
+ 7001 CONTINUE
+ 
+ 
+C --- FILL RESULT COMMON FOR THIS TRACK WITH CORSIKA VALUES ---
+ 
+      AMAS=RMASS(KPART)
+      NCH=RCHARG(KPART)
+  107 XEND = CURPAR(7)
+      YEND = CURPAR(8)
+      ZEND = CURPAR(5)
+      SINL = -CURPAR(3)
+      PHI  = CURPAR(4)
+      USERW=0.0
+ 
+      AMASQ=AMAS*AMAS
+      EN = CURPAR(2) * ABS(AMAS)
+      EK = ABS ( EN - ABS(AMAS) )
+      ENOLD=EN
+      EMAX = 0.
+      P  = SQRT ( EN*EN - AMASQ )
+      ELABOR = EN
+ 
+      SINP = SIN(PHI)
+      COSP = COS(PHI)
+      COSL = SQRT ( ABS(1.-SINL**2) )
+ 
+      PX = COSL * COSP
+      PY = COSL * SINP
+      PZ = SINL
+ 
+C --- SET GHEISHA INDEX FOR THE CURRENT MEDIUM ALWAYS TO 1 ---
+      IND=1
+ 
+C --- TRANSFER GLOBAL MATERIAL CONSTANTS FOR CURRENT MEDIUM ---
+C --- DETAILED DATA FOR COMPOUNDS IS OBTAINED VIA ROUTINE COMPO ---
+      ATNO(IND+1) = 14.56
+      ZNO(IND+1)  =  7.265
+      DEN(IND+1)  =  0.0
+      RADLTH(IND+1)= 0.0
+      ABSLTH(IND+1)= 0.0
+ 
+C --- SETUP PARMAT FOR PHYSICS STEERING ---
+      PARMAT(IND+1,10)=0.0
+ 
+  5   CONTINUE
+ 
+C --- INDICATE LIGHT (<= PI) AND HEAVY PARTICLES (HISTORICALLY) ---
+C --- CALIM CODE ---
+      J=2
+      TEST=RMASS(7)-0.001
+      IF (ABS(AMAS) .LT. TEST) J=1
+ 
+C *** DIVISION INTO VARIOUS INTERACTION CHANNELS DENOTED BY "INT" ***
+C THE CONVENTION FOR "INT" IS THE FOLLOWING
+ 
+C INT  = -1 REACTION CROSS SECTIONS NOT YET TABULATED/PROGRAMMED
+C      =  0 NO INTERACTION
+C      =  1 ELEASTIC SCATTERING
+C      =  2 INELASTIC SCATTERING
+C      =  3 NUCLEAR FISSION WITH INELEASTIC SCATTERING
+C      =  4 NEUTRON CAPTURE
+C INT  =  3, 4  SHOULD BE DELETED FOR AIR TARGET
+ 
+C --- INTACT CODE ---
+      ALAM1=0.0
+      CALL GRNDM(RNDM,1)
+      RAT=RNDM(1)*ALAM
+      ATNO2 = 14.56
+      ZNO2  = 7.265
+ 
+      DO 6 K=1,KK
+      ATNO2 = ACOMP(K)
+      ZNO2 =  ZCOMP(K)
+ 
+C --- TRY FOR ELASTIC SCATTERING ---
+      INT=1
+      ALAM1=ALAM1+AIEL(K)
+      IF (RAT .LT. ALAM1) GO TO 8
+ 
+C --- TRY FOR INELASTIC SCATTERING ---
+      INT=2
+      ALAM1=ALAM1+AIIN(K)
+      IF (RAT .LT. ALAM1) GO TO 8
+ 
+C --- TRY FOR NEUTRON CAPTURE ---
+      INT=4
+      ALAM1=ALAM1+AICA(K)
+      IF (RAT .LT. ALAM1) GO TO 8
+ 
+ 6    CONTINUE
+ 
+C --- NO REACTION SELECTED ==> ELASTIC SCATTERING ---
+      INT=1
+ 
+C *** TAKE ACTION ACCORDING TO SELECTED REACTION CHANNEL ***
+C --- FOLLOWING CODE IS A TRANSLATION OF "CALIM" INTO GEANT JARGON ---
+ 
+ 8    CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,1001) INT
+ 1001 FORMAT(' *CGHEI* INTERACTION TYPE CHOSEN INT = ',I3)
+ 
+      IF (INT .NE. 4) GO TO 10
+ 
+C --- NEUTRON CAPTURE ---
+      IF (NPRT(9)) WRITE(MDEBUG,2000)
+ 2000 FORMAT(' *CGHEI* ROUTINE CAPTUR WILL BE CALLED')
+      CALL CAPTUR(NOPT)
+      GO TO 40
+ 
+ 10   CONTINUE
+ 
+C --- ELASTIC AND INELASTIC SCATTERING ---
+      PV(1,MXGKPV)=P*PX
+      PV(2,MXGKPV)=P*PY
+      PV(3,MXGKPV)=P*PZ
+      PV(4,MXGKPV)=EN
+      PV(5,MXGKPV)=AMAS
+      PV(6,MXGKPV)=NCH
+      PV(7,MXGKPV)=TOF
+      PV(8,MXGKPV)=KPART
+      PV(9,MXGKPV)=0.
+      PV(10,MXGKPV)=USERW
+ 
+C --- ADDITIONAL PARAMETERS TO SIMULATE FERMI MOTION AND EVAPORATION ---
+      DO 111 JENP=1,10
+         ENP(JENP)=0.
+ 111  CONTINUE
+      ENP(5)=EK
+      ENP(6)=EN
+      ENP(7)=P
+ 
+      IF (INT .NE. 1) GO TO 12
+ 
+C *** ELASTIC SCATTERING PROCESSES ***
+ 
+C --- ONLY NUCLEAR INTERACTIONS FOR HEAVY FRAGMENTS ---
+      IF ((KPART .GE. 30) .AND. (KPART .LE. 32)) GO TO 35
+ 
+C --- NORMAL ELASTIC SCATTERING FOR LIGHT MEDIA ---
+      IF (ATNO2 .LT. 1.5) GO TO 35
+ 
+C --- COHERENT ELASTIC SCATTERING FOR HEAVY MEDIA ---
+      IF (NPRT(9)) WRITE(MDEBUG,2002)
+ 2002 FORMAT(' *CGHEI* ROUTINE COSCAT WILL BE CALLED')
+      CALL COSCAT
+      GO TO 40
+ 
+C *** NON-ELASTIC SCATTERING PROCESSES ***
+ 12   CONTINUE
+ 
+C --- ONLY NUCLEAR INTERACTIONS FOR HEAVY FRAGMENTS ---
+      IF ((KPART .GE. 30) .AND. (KPART .LE. 32)) GO TO 35
+ 
+C *** USE SOMETIMES NUCLEAR REACTION ROUTINE "NUCREC" FOR LOW ENERGY ***
+C *** PROTON AND NEUTRON SCATTERING ***
+      CALL GRNDM(RNDM,1)
+      TEST1=RNDM(1)
+      TEST2=4.5*(EK-0.01)
+      IF ((KPART .EQ. 14) .AND. (TEST1 .GT. TEST2)) GO TO 85
+      IF ((KPART .EQ. 16) .AND. (TEST1 .GT. TEST2)) GO TO 86
+ 
+C *** FERMI MOTION AND EVAPORATION ***
+      TKIN=CINEMA(EK)
+      PV(9,MXGKPV) = TKIN
+      ENP(5)=EK+TKIN
+C --- CHECK FOR LOWERBOUND OF EKIN IN CROSS-SECTION TABLES ---
+      IF (ENP(5) .LE. TEKLOW) ENP(5)=TEKLOW
+      ENP(6)=ENP(5)+ABS(AMAS)
+      ENP(7)=(ENP(6)-AMAS)*(ENP(6)+AMAS)
+      ENP(7)=SQRT(ABS(ENP(7)))
+      TKIN=FERMI(ENP(5))
+      ENP(5)=ENP(5)+TKIN
+C --- CHECK FOR LOWERBOUND OF EKIN IN CROSS-SECTION TABLES ---
+      IF (ENP(5) .LE. TEKLOW) ENP(5)=TEKLOW
+      ENP(6)=ENP(5)+ABS(AMAS)
+      ENP(7)=(ENP(6)-AMAS)*(ENP(6)+AMAS)
+      ENP(7)=SQRT(ABS(ENP(7)))
+      TKIN=EXNU(ENP(5))
+      ENP(5)=ENP(5)-TKIN
+C --- CHECK FOR LOWERBOUND OF EKIN IN CROSS-SECTION TABLES ---
+      IF (ENP(5) .LE. TEKLOW) ENP(5)=TEKLOW
+      ENP(6)=ENP(5)+ABS(AMAS)
+      ENP(7)=(ENP(6)-AMAS)*(ENP(6)+AMAS)
+      ENP(7)=SQRT(ABS(ENP(7)))
+ 
+C *** IN CASE OF ENERGY ABOVE CUT-OFF LET THE PARTICLE CASCADE ***
+      IF ( ENP(5) .GT. ELCUT(1)) GO TO 35
+ 
+C --- SECOND CHANCE FOR ANTI-BARYONS DUE TO POSSIBLE ANNIHILATION ---
+      IF ((AMAS .GE. 0.0) .OR. (KPART .LE. 14)) GO TO 13
+      ANNI=1.3*P
+      IF (ANNI .GT. 0.4) ANNI=0.4
+      CALL GRNDM(RNDM,1)
+      TEST=RNDM(1)
+      IF (TEST .GT. ANNI) GO TO 35
+ 
+C *** PARTICLE WITH ENERGY BELOW CUT-OFF ***
+C --- ==> ONLY NUCLEAR EVAPORATION AND QUASI-ELASTIC SCATTERING ---
+ 13   CONTINUE
+ 
+      IF (NPRT(9)) WRITE(MDEBUG,1002) KPART,EK,EN,P,ENP(5),ENP(6),ENP(7)
+ 1002 FORMAT(' *CGHEI* ENERGY BELOW CUT-OFF FOR GHEISHA PARTICLE ',I3/
+     $ ' EK,EN,P,ENP(5),ENP(6),ENP(7) = ',6(G12.5,1X))
+ 
+      IF ((KPART .NE. 14) .AND. (KPART .NE. 16)) GO TO 14
+      IF (KPART .EQ. 16) GO TO 86
+ 
+C --- SLOW PROTON ---
+ 85   CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2003) EK,KPART
+ 2003 FORMAT(' *CGHEI* ROUTINE NUCREC WILL BE CALLED',
+     $ ' EK = ',G12.5,' GEV  KPART = ',I3)
+      CALL NUCREC(NOPT,2)
+ 
+      IF (NOPT .NE. 0) GO TO 50
+ 
+      IF (NPRT(9)) WRITE(MDEBUG,2004)EK,KPART
+ 2004 FORMAT(' *CGHEI* ROUTINE COSCAT WILL BE CALLED',
+     $ ' EK = ',G12.5,' GEV  KPART = ',I3)
+      CALL COSCAT
+      GO TO 40
+ 
+C --- SLOW NEUTRON ---
+ 86   CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2015)
+      NUCFLG=0
+      CALL GNSLWD(NUCFLG,INT,NFL,TEKLOW)
+      IF (NUCFLG .NE. 0) GO TO 50
+      GO TO 40
+ 
+C --- OTHER SLOW PARTICLES ---
+ 14   CONTINUE
+      IPA(1)=KPART
+C --- DECIDE FOR PROTON OR NEUTRON TARGET ---
+      IPA(2)=16
+      CALL GRNDM(RNDM,1)
+      TEST1=RNDM(1)
+      TEST2=ZNO2/ATNO2
+      IF (TEST1 .LT. TEST2) IPA(2)=14
+      AVERN=0.0
+      NFL=1
+      IF (IPA(2) .EQ. 16) NFL=2
+      IPPP=KPART
+      IF (NPRT(9)) WRITE(MDEBUG,2005)
+ 2005 FORMAT(' *CGHEI* ROUTINE TWOB WILL BE CALLED')
+      CALL TWOB(IPPP,NFL,AVERN)
+      GOTO 40
+ 
+C --- INITIALISATION OF CASCADE QUANTITIES ---
+ 35   CONTINUE
+ 
+C *** CASCADE GENERATION ***
+C --- CALCULATE FINAL STATE MULTIPLICITY AND LONGITUDINAL AND ---
+C --- TRANSVERSE MOMENTUM DISTRIBUTIONS ---
+ 
+C --- FIXED PARTICLE TYPE TO STEER THE CASCADE ---
+      KKPART=KPART
+ 
+C --- NO CASCADE FOR LEPTONS ---
+      IF (KKPART .LE. 6) GO TO 9999
+ 
+C *** WHAT TO DO WITH "NEW PARTICLES" FOR GHEISHA ?????? ***
+C --- RETURN FOR THE TIME BEING ---
+      IF (KKPART .GE. 35) GO TO 9999
+ 
+C --- CASCADE OF HEAVY FRAGMENTS
+      IF ((KKPART .GE. 30) .AND. (KKPART .LE. 32)) GO TO 390
+ 
+C --- INITIALIZE THE IPA ARRAY ---
+      CALL VZERO(IPA(1),MXGKCU)
+ 
+C --- CASCADE OF OMEGA - AND OMEGA - BAR ---
+      IF (KKPART .EQ. 33) GO TO 330
+      IF (KKPART .EQ. 34) GO TO 331
+ 
+      NVEPAR=KKPART-17
+      IF (NVEPAR .LE. 0) GO TO 15
+      GO TO (318,319,320,321,322,323,324,325,326,327,328,329),NVEPAR
+ 
+ 15   CONTINUE
+      NVEPAR=KKPART-6
+      GO TO (307,308,309,310,311,312,313,314,315,316,317,318),NVEPAR
+ 
+C --- PI+ CASCADE ---
+ 307  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2006)
+ 2006 FORMAT(' *CGHEI* ROUTINE CASPIP WILL BE CALLED')
+      CALL CASPIP(J,INT,NFL)
+      GO TO 40
+ 
+C --- PI0 ==> NO CASCADE ---
+ 308  CONTINUE
+      GO TO 40
+ 
+C --- PI- CASCADE ---
+ 309  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2007)
+ 2007 FORMAT(' *CGHEI* ROUTINE CASPIM WILL BE CALLED')
+      CALL CASPIM(J,INT,NFL)
+      GO TO 40
+ 
+C --- K+ CASCADE ---
+ 310  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2008)
+ 2008 FORMAT(' *CGHEI* ROUTINE CASKP WILL BE CALLED')
+      CALL CASKP(J,INT,NFL)
+      GO TO 40
+ 
+C --- K0 CASCADE ---
+ 311  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2009)
+ 2009 FORMAT(' *CGHEI* ROUTINE CASK0 WILL BE CALLED')
+      CALL CASK0(J,INT,NFL)
+      GO TO 40
+ 
+C --- K0 BAR CASCADE ---
+ 312  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2010)
+ 2010 FORMAT(' *CGHEI* ROUTINE CASK0B WILL BE CALLED')
+      CALL CASK0B(J,INT,NFL)
+      GO TO 40
+ 
+C --- K- CASCADE ---
+ 313  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2011)
+ 2011 FORMAT(' *CGHEI* ROUTINE CASKM WILL BE CALLED')
+      CALL CASKM(J,INT,NFL)
+      GO TO 40
+ 
+C --- PROTON CASCADE ---
+ 314  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2012)
+ 2012 FORMAT(' *CGHEI* ROUTINE CASP WILL BE CALLED')
+      CALL CASP(J,INT,NFL)
+      GO TO 40
+ 
+C --- PROTON BAR CASCADE ---
+ 315  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2013)
+ 2013 FORMAT(' *CGHEI* ROUTINE CASPB WILL BE CALLED')
+      CALL CASPB(J,INT,NFL)
+      GO TO 40
+ 
+C --- NEUTRON CASCADE ---
+ 316  CONTINUE
+      NUCFLG=0
+      IF (EK .GT. SWTEKN) THEN
+         CALL CASN(J,INT,NFL)
+         IF (NPRT(9)) WRITE(MDEBUG,2014)
+ 2014 FORMAT(' *CGHEI* ROUTINE CASN WILL BE CALLED')
+      ELSE
+         CALL GNSLWD(NUCFLG,INT,NFL,TEKLOW)
+         IF (NPRT(9)) WRITE(MDEBUG,2015)
+ 2015 FORMAT(' *CGHEI* ROUTINE GNSLWD WILL BE CALLED')
+      ENDIF
+      IF (NUCFLG .NE. 0) GO TO 50
+      GO TO 40
+ 
+C --- NEUTRON BAR CASCADE ---
+ 317  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2016)
+ 2016 FORMAT(' *CGHEI* ROUTINE CASNB WILL BE CALLED')
+      CALL CASNB(J,INT,NFL)
+      GO TO 40
+ 
+C --- LAMBDA CASCADE ---
+ 318  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2017)
+ 2017 FORMAT(' *CGHEI* ROUTINE CASL0 WILL BE CALLED')
+      CALL CASL0(J,INT,NFL)
+      GO TO 40
+ 
+C --- LAMBDA BAR CASCADE ---
+ 319  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2018)
+ 2018 FORMAT(' *CGHEI* ROUTINE CASAL0 WILL BE CALLED')
+      CALL CASAL0(J,INT,NFL)
+      GO TO 40
+ 
+C --- SIGMA + CASCADE ---
+ 320  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2019)
+ 2019 FORMAT(' *CGHEI* ROUTINE CASSP WILL BE CALLED')
+      CALL CASSP(J,INT,NFL)
+      GO TO 40
+ 
+C --- SIGMA 0 ==> NO CASCADE ---
+ 321  CONTINUE
+      GO TO 40
+ 
+C --- SIGMA - CASCADE ---
+ 322  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2020)
+ 2020 FORMAT(' *CGHEI* ROUTINE CASSM WILL BE CALLED')
+      CALL CASSM(J,INT,NFL)
+      GO TO 40
+ 
+C --- SIGMA + BAR CASCADE ---
+ 323  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2021)
+ 2021 FORMAT(' *CGHEI* ROUTINE CASASP WILL BE CALLED')
+      CALL CASASP(J,INT,NFL)
+      GO TO 40
+ 
+C --- SIGMA 0 BAR ==> NO CASCADE ---
+ 324  CONTINUE
+      GO TO 40
+ 
+C --- SIGMA - BAR CASCADE ---
+ 325  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2022)
+ 2022 FORMAT(' *CGHEI* ROUTINE CASASM WILL BE CALLED')
+      CALL CASASM(J,INT,NFL)
+      GO TO 40
+ 
+C --- XI 0 CASCADE ---
+ 326  CONTINUE
+      IF (NPRT(9)) PRINT 2023
+ 2023 FORMAT(' *CGHEI* ROUTINE CASX0 WILL BE CALLED')
+      CALL CASX0(J,INT,NFL)
+      GO TO 40
+ 
+C --- XI - CASCADE ---
+ 327  CONTINUE
+      IF (NPRT(9)) PRINT 2024
+ 2024 FORMAT(' *CGHEI* ROUTINE CASXM WILL BE CALLED')
+      CALL CASXM(J,INT,NFL)
+      GO TO 40
+ 
+C --- XI 0 BAR CASCADE ---
+ 328  CONTINUE
+      IF (NPRT(9)) PRINT 2025
+ 2025 FORMAT(' *CGHEI* ROUTINE CASAX0 WILL BE CALLED')
+      CALL CASAX0(J,INT,NFL)
+      GO TO 40
+ 
+C --- XI - BAR CASCADE ---
+ 329  CONTINUE
+      IF (NPRT(9)) PRINT 2026
+ 2026 FORMAT(' *CGHEI* ROUTINE CASAXM WILL BE CALLED')
+      CALL CASAXM(J,INT,NFL)
+      GO TO 40
+ 
+C --- OMEGA - CASCADE ---
+ 330  CONTINUE
+      IF (NPRT(9)) PRINT 2027
+ 2027 FORMAT(' *CGHEI* ROUTINE CASOM WILL BE CALLED')
+      CALL CASOM(J,INT,NFL)
+      GO TO 40
+ 
+C --- OMEGA - BAR CASCADE ---
+ 331  CONTINUE
+      IF (NPRT(9)) PRINT 2028
+ 2028 FORMAT(' *CGHEI* ROUTINE CASAOM WILL BE CALLED')
+      CALL CASAOM(J,INT,NFL)
+      GO TO 40
+ 
+C --- HEAVY FRAGMENT CASCADE ---
+ 390  CONTINUE
+      IF (NPRT(9)) WRITE(MDEBUG,2090)
+ 2090 FORMAT(' *CGHEI* ROUTINE CASFRG WILL BE CALLED')
+      NUCFLG=0
+      CALL CASFRG(NUCFLG,INT,NFL)
+      IF (NUCFLG .NE. 0) GO TO 50
+ 
+C *** CHECK WHETHER THERE ARE NEW PARTICLES GENERATED ***
+ 40   CONTINUE
+      IF ((NTOT .NE. 0) .OR. (KKPART .NE. KPART)) GO TO 50
+ 
+ 50   CONTINUE
+ 
+      NVEDUM=KIPART(IPART)
+      IF (NPRT(9)) WRITE(MDEBUG,1004)NTOT,IPART,KPART,KKPART,NVEDUM
+ 1004 FORMAT(' *CGHEI* SEC. GEN. NTOT,IPART,KPART,KKPART,KIPART = ',
+     $ 5(I3,1X))
+ 
+C --- INITIAL PARTICLE TYPE HAS BEEN CHANGED ==> PUT NEW TYPE ON ---
+C --- THE TEMPORARY STACK ---
+ 
+C --- MAKE CHOICE BETWEEN K0 LONG / K0 SHORT ---
+      IF ((KPART .NE. 11) .AND. (KPART .NE. 12)) GO TO 52
+      CALL GRNDM(RNDM,1)
+      KPART=11.5+RNDM(1)
+ 
+ 52   CONTINUE
+ 
+C --- IN CASE THE NEW PARTICLE IS A NEUTRINO ==> FORGET IT ---
+      IF (KPART .EQ. 2) GO TO 60
+ 
+C --- PUT CURRENT GHEISHA PARTICLE ON THE CORSIKA STACK
+C --- ( IF SURVIVING ANGLE CUT ! )
+      NGKINE = 1
+      SECPAR(3) = -PZ
+ 
+C --- CALCULATE ELASTICITY
+      IF ( EN .GT. EMAX ) THEN
+        EMAX = EN
+      ENDIF
+ 
+      IF ( SECPAR(3) .GT. C(29) ) THEN
+ 
+         ITY=IKPART(KPART)
+         IF     ( ITY .LT. 45 ) THEN
+            SECPAR(1) = DBLE(ITY)
+         ELSEIF ( ITY .EQ. 45 ) THEN
+            SECPAR(1) = 201.D0
+         ELSEIF ( ITY .EQ. 46 ) THEN
+            SECPAR(1) = 301.D0
+         ELSEIF ( ITY .EQ. 47 ) THEN
+            SECPAR(1) = 402.D0
+         ENDIF
+         IF ( ABS(AMAS) .LT. 1.E-9 ) THEN
+            SECPAR(2) = EN
+         ELSE
+            SECPAR(2) = DBLE(EN) / DBLE(ABS(AMAS))
+         ENDIF
+         IF ( PX .NE. 0. .OR. PY .NE. 0. )  THEN
+            SECPAR(4) = ATAN2 ( DBLE(PY) , DBLE(PX) )
+         ELSE
+            SECPAR(4) = 0.D0
+         ENDIF
+ 
+        CALL TSTACK
+ 
+      ENDIF
+ 
+C *** CHECK WHETHER SECONDARIES HAVE BEEN GENERATED AND COPY THEM ***
+C *** ALSO ON THE GEANT STACK ***
+ 60   CONTINUE
+ 
+C --- ALL QUANTITIES ARE TAKEN FROM THE GHEISHA STACK WHERE THE ---
+C --- CONVENTION IS THE FOLLOWING ---
+C
+C EVE(INDEX+ 1)= X
+C EVE(INDEX+ 2)= Y
+C EVE(INDEX+ 3)= Z
+C EVE(INDEX+ 4)= NCAL
+C EVE(INDEX+ 5)= NCELL
+C EVE(INDEX+ 6)= MASS
+C EVE(INDEX+ 7)= CHARGE
+C EVE(INDEX+ 8)= TOF
+C EVE(INDEX+ 9)= PX
+C EVE(INDEX+10)= PY
+C EVE(INDEX+11)= PZ
+C EVE(INDEX+12)= TYPE
+ 
+      IF (NTOT .LE. 0) GO TO 9999
+ 
+C --- ONE OR MORE SECONDARIES HAVE BEEN GENERATED ---
+      DO 61 L=1,NTOT
+      INDEX=(L-1)*12
+      JND=EVE(INDEX+12)
+ 
+C --- MAKE CHOICE BETWEEN K0 LONG / K0 SHORT ---
+      IF ((JND .NE. 11) .AND. (JND .NE. 12)) GO TO 63
+      CALL GRNDM(RNDM,1)
+      JND=11.5+RNDM(1)
+ 
+C --- FORGET ABOUT NEUTRINOS ---
+ 63   CONTINUE
+      IF (JND .EQ. 2) GO TO 61
+ 
+C --- SWITCH TO CORSIKA QUANTITIES ---
+      ITY=IKPART(JND)
+      IF (NPRT(9)) WRITE(MDEBUG,1006) ITY,NGKINE,L,(EVE(INDEX+J),J=1,12)
+ 1006 FORMAT(' *CGHEI* GEANT PART. ',I3,' ALSO PUT ONTO STACK AT',
+     $ ' POS. ',I3/
+     $ ' EVE(',I2,') = ',(' ',10G12.5))
+ 
+      PLX = EVE(INDEX+9)
+      PLY = EVE(INDEX+10)
+      PLZ = EVE(INDEX+11)
+      PLSQ = PLX**2 + PLY**2 + PLZ**2
+      PLTOT = SQRT (PLSQ)
+      RMASSK = ABS(RMASS(JND))
+ 
+C  FIND HIGHEST ENERGY PARTICLE FOR ELASTICITY
+      EEESQ = PLSQ + RMASSK**2
+      IF ( EEESQ .GT. EMAX**2 ) THEN
+        EMAX = SQRT(EEESQ)
+      ENDIF
+ 
+C --- APPLY ANGLE CUT AND
+C --- ADD PARTICLE TO THE CORSIKA STACK (RESTRICTED TO 100) ---
+      IF ( PLTOT .LE. 1.D-10 ) GOTO 61
+      SECPAR(3) = -PLZ / PLTOT
+      IF ( SECPAR(3) .LE. C(29) )  GOTO 61
+ 
+      IF (NGKINE .GE. MXGKGH) GO TO 9999
+      NGKINE=NGKINE+1
+      IF     ( ITY .LT. 45 ) THEN
+         SECPAR(1) = DBLE(ITY)
+      ELSEIF ( ITY .EQ. 45 ) THEN
+         SECPAR(1) = 201.D0
+      ELSEIF ( ITY .EQ. 46 ) THEN
+         SECPAR(1) = 301.D0
+      ELSEIF ( ITY .EQ. 47 ) THEN
+         SECPAR(1) = 402.D0
+      ELSE
+         SECPAR(1) = 0.D0
+         WRITE(MONIOU,*) '*CGHEI*  ILLEGAL PARTICLE TYPE'
+      ENDIF
+      IF ( RMASSK .LT. 1.D-9 ) THEN
+         SECPAR(2) = PLTOT
+      ELSE
+         SECPAR(2) = SQRT (PLSQ+RMASSK**2) / RMASSK
+      ENDIF
+      IF ( PLX .NE. 0.D0 .OR. PLY .NE. 0.D0 )  THEN
+         SECPAR(4) = ATAN2 ( PLY,PLX )
+      ELSE
+         SECPAR(4) = 0.D0
+      ENDIF
+ 
+      CALL TSTACK
+ 
+ 61   CONTINUE
+ 
+C --- COUNTER FOR ENERGY-MULTIPLICITY MATRIX
+      MSMM = MSMM + NTOT
+ 
+C --- FILL ELASTICITY IN MATRICES
+      ELASTI = EMAX/ENOLD
+      MELL = MIN ( 1.D0+10.D0*      MAX( 0.D0, ELASTI ) , 11.D0 )
+      MEN  = MIN ( 4.D0+ 3.D0*LOG10(MAX( .1D0, EKINL )), 37.D0 )
+      IELDPM(MEN,MELL) = IELDPM(MEN,MELL) + 1
+      IELDPA(MEN,MELL) = IELDPA(MEN,MELL) + 1
+      IF ( ELASTI .LT. 1. ) THEN
+        ELMEAN(MEN) = ELMEAN(MEN) + ELASTI
+        ELMEAA(MEN) = ELMEAA(MEN) + ELASTI
+      ENDIF
+ 
+ 9999 CONTINUE
+C --- LIMIT THE VALUE OF NGKINE IN CASE OF OVERFLOW ---
+      NGKINE=MIN(NGKINE,MXGKGH)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/cghini.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/cghini.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/cghini.f	(revision 4308)
@@ -0,0 +1,290 @@
+      SUBROUTINE CGHINI
+ 
+C-----------------------------------------------------------------------
+C  C(ORSIKA) GH(EISHA) INI(TIALISATION)
+C  INITIALIZATION OF RELEVANT GHEISHA VARIABLES
+C  THIS SUBROUTINE IS CALLED FROM START
+C
+C  ORIGIN  : GHEISHA ROUTINE "GHEINI", F.CARMINATI
+C  REDESIGN: P. GABRIEL IK1  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+*KEEP,AIR.
+      COMMON /AIR/     COMPOS,PROBTA,AVERAW,AVOGAD
+      DOUBLE PRECISION COMPOS(3),PROBTA(3),AVERAW,AVOGAD
+*KEEP,CGCOMP.
+      PARAMETER (KK=3)
+      COMMON/CGCOMP/ ACOMP,ZCOMP,WCOMP
+      REAL           ACOMP(KK),ZCOMP(KK),WCOMP(KK)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      COMMON/GSECTI/ AIEL(20),AIIN(20),AIFI(20),AICA(20),ALAM,K0FLAG
+      INTEGER K0FLAG
+      REAL AIEL,AIIN,AIFI,AICA,ALAM
+ 
+C --- GHEISHA COMMONS ---
+C --- INITIALIZATION FLAGS FOR VARIOUS GHEISHA ROUTINES ---
+      COMMON /KGINIT/ KGINIT(50)
+ 
+      COMMON/CONSTS/ PI,TWPI,PIBTW,MP,MPI,MMU,MEL,MKCH,MK0,SMP,SMPI,
+     $               SMU,CT,CTKCH,CTK0,
+     $               ML0,MSP,MS0,MSM,MX0,MXM,CTL0,CTSP,CTSM,CTX0,CTXM,
+     $               RMASS(35),RCHARG(35)
+ 
+                     REAL MP,MPI,MMU,MEL,MKCH,MK0,
+     *                    ML0,MSP,MS0,MSM,MX0,MXM
+ 
+      PARAMETER (MXGKGH=100)
+      PARAMETER (MXEVEN=12*MXGKGH)
+      COMMON/EVENT / NSIZE,NCUR,NEXT,NTOT,EVE(MXEVEN)
+ 
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+ 
+      PARAMETER (MXGKPV=MXGKGH)
+      COMMON /VECUTY/ PV(10,MXGKPV)
+ 
+C --- BOUNDARY LIMITS FOR ARGUMENTS OF INTRINSIC FUNCTIONS ---
+C --- XL DENOTES LOWER BOUND WHEREAS XU DENOTES UPPER BOUND ---
+      COMMON /LIMITS/ EXPXL,EXPXU
+ 
+ 
+C --- "NEVENT" CHANGED TO "KEVENT" IN COMMON /CURPAR/ DUE TO CLASH ---
+C --- WITH VARIABLE "NEVENT" IN GEANT COMMON ---
+ 
+      PARAMETER (MXGKCU=MXGKGH)
+      COMMON /CURPAR/ WEIGHT(10),DDELTN,IFILE,IRUN,NEVT,KEVENT,SHFLAG,
+     $                ITHST,ITTOT,ITLST,IFRND,TOFCUT,CMOM(5),CENG(5),
+     $                RS,S,ENP(10),NP,NM,NN,NR,NO,NZ,IPA(MXGKCU),
+     $                ATNO2,ZNO2
+ 
+      DATA CLIGHT /2.99792458E10/
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'CGHINI:'
+ 
+C --- INITIALZE COMPOSITION OF AIR
+      WCOMP(1) = COMPOS(1)
+      WCOMP(2) = COMPOS(2)
+      WCOMP(3) = COMPOS(3)
+      ACOMP(1) = 14.
+      ACOMP(2) = 16.
+      ACOMP(3) = 40.
+      ZCOMP(1) =  7.
+      ZCOMP(2) =  8.
+      ZCOMP(3) = 18.
+ 
+C --- SET GHEISHA I/O UNITS TO THE SAME AS FOR CORSIKA --
+      INBCD=MONIIN
+      NEWBCD=MONIOU
+      IF ( DEBUG ) NEWBCD=MDEBUG
+ 
+C --- INITIALISE ALL GHEISHA PRINT FLAGS AS FALSE ---
+C --- ACTIVATION IS DONE BY "DEBUG" STEERING CARD ---
+      DO 11 J=1,10
+         NPRT(J)=.FALSE.
+ 11   CONTINUE
+      IF ( DEBUG ) THEN
+         NPRT(4)=.TRUE.
+         NPRT(9)=.TRUE.
+      ENDIF
+      LPRT=.FALSE.
+      DO 12 I=1,MXGKPV
+         DO 12 J=1,10
+            PV(J,I)=0.
+ 12   CONTINUE
+ 
+C --- INITIALISE KGINIT ARRAY ---
+      DO 20 J=1,50
+         KGINIT(J)=0
+ 20   CONTINUE
+ 
+C --- INITIALIZE SOME CUT-OFF PARAMETERS WITH GEANT VALUES ---
+      TOFCUT=1.0E+20
+      NSIZE=MXEVEN
+      K0FLAG=0
+      CENG(3)=0.
+      CENG(4)=0.
+ 
+C --- INITIALIZE PI, 2*PI, PI/2 AND PARTICLE PARAMETERS ---
+      PI=ACOS(-1.0)
+      TWPI=2.0*PI
+      PIBTW=PI/2.0
+C *** GAMMA ***
+      RMASS(1)=PAMA(1)
+      RCHARG(1)=0.0
+C *** NEUTRINO ***
+      RMASS(2)=PAMA(4)
+      RCHARG(2)=0.0
+C *** E+ ***
+      RMASS(3)=PAMA(2)
+      RCHARG(3)=1.0
+C *** E- ***
+      RMASS(4)=PAMA(3)
+      RCHARG(4)=-1.0
+C *** MU+ ***
+      RMASS(5)=PAMA(5)
+      RCHARG(5)=1.0
+C *** MU- ***
+      RMASS(6)=PAMA(6)
+      RCHARG(6)=-1.0
+C *** PI+ ***
+      RMASS(7)=PAMA(8)
+      RCHARG(7)=1.0
+      CT=780.4
+C *** PI0 ***
+      RMASS(8)=PAMA(7)
+      RCHARG(8)=0.0
+C *** PI- ***
+      RMASS(9)=PAMA(9)
+      RCHARG(9)=-1.0
+C *** K+ ***
+      RMASS(10)=PAMA(11)
+      RCHARG(10)=1.0
+      CTKCH=370.9
+C *** K0 SHORT (==> K0) ***
+      RMASS(11)=PAMA(16)
+      RCHARG(11)=0.0
+      CTK0=2.675
+C *** K0 LONG (==> K0 BAR) ***
+      RMASS(12)=-PAMA(10)
+      RCHARG(12)=0.0
+C *** K- ***
+      RMASS(13)=PAMA(12)
+      RCHARG(13)=-1.0
+C *** P ***
+      RMASS(14)=PAMA(14)
+      RCHARG(14)=1.0
+C *** P BAR ***
+      RMASS(15)=-PAMA(15)
+      RCHARG(15)=-1.0
+C *** N ***
+      RMASS(16)=PAMA(13)
+      RCHARG(16)=0.0
+C *** N BAR ***
+      RMASS(17)=-PAMA(25)
+      RCHARG(17)=0.0
+C *** L0 ***
+      RMASS(18)=PAMA(18)
+      RCHARG(18)=0.0
+      CTL0=7.89
+C *** L0 BAR ***
+      RMASS(19)=-PAMA(26)
+      RCHARG(19)=0.0
+C *** S+ ***
+      RMASS(20)=PAMA(19)
+      RCHARG(20)=1.0
+      CTSP=2.40
+C *** S0 ***
+      RMASS(21)=PAMA(20)
+      RCHARG(21)=0.0
+C *** S- ***
+      RMASS(22)=PAMA(21)
+      RCHARG(22)=-1.0
+      CTSM=4.44
+C *** S+ BAR ***
+      RMASS(23)=-PAMA(27)
+      RCHARG(23)=-1.0
+C *** S0 BAR ***
+      RMASS(24)=-PAMA(28)
+      RCHARG(24)=0.0
+C *** S- BAR ***
+      RMASS(25)=-PAMA(29)
+      RCHARG(25)=1.0
+C *** XI0 ***
+      RMASS(26)=PAMA(22)
+      RCHARG(26)=0.0
+      CTX0=8.69
+C *** XI- ***
+      RMASS(27)=PAMA(23)
+      RCHARG(27)=-1.0
+      CTXM=4.92
+C *** XI0 BAR ***
+      RMASS(28)=-PAMA(30)
+      RCHARG(28)=0.0
+      CTX0=8.69
+C *** XI- BAR ***
+      RMASS(29)=-PAMA(31)
+      RCHARG(29)=1.0
+C *** DEUTERON ***
+      RMASS(30)=PAMA(45)
+      RCHARG(30)=1.0
+C *** TRITON ***
+      RMASS(31)=PAMA(46)
+      RCHARG(31)=1.0
+C *** ALPHA ***
+      RMASS(32)=PAMA(47)
+      RCHARG(32)=2.0
+C *** OMEGA- ***
+      RMASS(33)=PAMA(24)
+      RCHARG(33)=-1.0
+C *** OMEGA- BAR ***
+      RMASS(34)=-PAMA(32)
+      RCHARG(34)=1.0
+C *** NEW PARTICLE (GEANTINO) ***
+      RMASS(35)=0.0
+      RCHARG(35)=0.0
+ 
+      IF (NPRT(9))
+     $ WRITE(MDEBUG,1000) (I,RMASS(I),RCHARG(I),I=1,33),
+     $            CT,CTKCH,CTK0,CTL0,CTSP,CTSM,CTX0,CTXM
+ 1000 FORMAT(' *CGHINI* === GHEISHA PARTICLE PROPERTIES ==='/
+     $ '0INDEX',5X,'MASS (GEV)',5X,'CHARGE'/1H /
+     $ 33(1H ,1X,I3,5X,F11.6,6X,F5.2/),
+     $ '0PI +-  CT = ',G12.5,' K  +-  CT = ',G12.5/
+     $ ' K0     CT = ',G12.5,' L0     CT = ',G12.5/
+     $ ' S+     CT = ',G12.5,' S-     CT = ',G12.5/
+     $ ' X0     CT = ',G12.5,' X-     CT = ',G12.5)
+ 
+      MP=RMASS(14)
+      MPI=RMASS(7)
+      MMU=RMASS(5)
+      MEL=RMASS(3)
+      MKCH=RMASS(10)
+      MK0=RMASS(11)
+      SMP=MP**2
+      SMPI=MPI**2
+      SMU=MMU**2
+      ML0=RMASS(18)
+      MSP=RMASS(20)
+      MS0=RMASS(21)
+      MSM=RMASS(22)
+      MX0=RMASS(26)
+      MXM=RMASS(27)
+ 
+C --- LOAD LIMITS FOR INTRINSIC FUNCTION ARGUMENTS ---
+      EXPXL = - 82.0
+      EXPXU =   82.0
+ 
+      IF (NPRT(9)) WRITE(MDEBUG,1001) EXPXL,EXPXU
+ 1001 FORMAT(' *GHEINI* === INTRINSIC FUNCTION BOUNDARIES ==='/
+     $ ' EXPXL,EXPXU = ',2(G12.5,1X))
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/cghsig.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/cghsig.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/cghsig.f	(revision 4308)
@@ -0,0 +1,1191 @@
+      DOUBLE PRECISION FUNCTION CGHSIG( PPART,EKIN,LPART )
+ 
+C-----------------------------------------------------------------------
+C  C(ORSIKA) GH(EISHA) SIG(MA)
+C
+C  CALCULATION OF THE PROBABILITIES FOR (IN)ELASTIC INTERACTIONS ***
+C  THIS FUNCTION IS CALLED FROM BOX2
+C
+C  ORIGIN  : F.CARMINATI, H.FESEFELDT (ROUTINE GHESIG)
+C  REDESIGN: P. GABRIEL IK1  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+C  *** IPART DENOTES THE GHEISHA PARTICLE INDEX ***
+C
+C  CONVENTION :
+C
+C   PARTICLE                 IPART
+C   ------------------------------
+C   GAMMA                    1
+C   NEUTRINO                 2
+C   POSITRON                 3
+C   ELECTRON                 4
+C   MUON +                   5
+C   MUON -                   6
+C   PION +                   7
+C   PION 0                   8
+C   PION -                   9
+C   KAON +                  10
+C   KAON 0 S                11
+C   KAON 0 L                12
+C   KAON -                  13
+C   PROTON                  14
+C   PROTON BAR              15
+C   NEUTRON                 16
+C   NEUTRON BAR             17
+C   LAMBDA                  18
+C   LAMBDA BAR              19
+C   SIGMA +                 20
+C   SIGMA 0                 21
+C   SIGMA -                 22
+C   SIGMA + BAR             23
+C   SIGMA 0 BAR             24
+C   SIGMA - BAR             25
+C   XSI 0                   26
+C   XSI -                   27
+C   XSI 0 BAR               28
+C   XSI - BAR               29
+C   DEUTERON                30
+C   TRITON                  31
+C   ALPHA                   32
+C   OMEGA -                 33
+C   OMEGA - BAR             34
+C   NEW PARTICLES           35
+C
+C-----------------------------------------------------------------------
+ 
+*KEEP,CGCOMP.
+      PARAMETER (KK=3)
+      COMMON/CGCOMP/ ACOMP,ZCOMP,WCOMP
+      REAL           ACOMP(KK),ZCOMP(KK),WCOMP(KK)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      COMMON/GSECTI/ AIEL(20),AIIN(20),AIFI(20),AICA(20),ALAM,K0FLAG
+      INTEGER K0FLAG
+      REAL AIEL,AIIN,AIFI,AICA,ALAM
+ 
+C --- GHEISHA COMMONS ---
+      COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
+     *              USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,IPART,IND,
+     *              LCALO,ICEL,SINL,COSL,SINP,COSP,
+     *              XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
+     *              XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
+                    REAL NCH,INTCT
+ 
+      COMMON/PRNTFL/INBCD,NEWBCD,INBIN,NEWBIN,NPEVT,NEVTP,LPRT,NPRT(10)
+                    LOGICAL LPRT,NPRT
+ 
+ 
+      DIMENSION ALPHA(35),ALPHAC(41),IPART2(7),CSA(4)
+      DIMENSION PARTEL(35),PARTIN(35),ICORR(35),INTRC(35)
+ 
+C --- DIMENSION STATEMENTS FOR CROSS SECTION DATA ---
+      DIMENSION PLAB(41),CSEL(35,41),CSIN(35,41),CSPIEL(3,41),
+     $          CSPIIN(3,41),CSPNEL(3,41),CSPNIN(3,41),
+     $          ELAB(17),CNLWAT(15),CNLWEL(15,17),CNLWIN(15,17),
+     $          CSCAP(100)
+ 
+C --- DIMENSION STMTS. FOR GEANT/GHEISHA PARTICLE CODE CONVERSIONS ---
+C --- KIPART(I)=GHEISHA CODE CORRESPONDING TO GEANT   CODE I ---
+C --- IKPART(I)=GEANT   CODE CORRESPONDING TO GHEISHA CODE I ---
+ 
+      DIMENSION KIPART(48),IKPART(35)
+ 
+C --- CROSS-SECTION DATA BY "PCSDAT" 01-FEB-1989 ---
+      DATA PLAB /
+     $  0.00000E+00, 0.10000    , 0.15000    , 0.20000    , 0.25000    ,
+     $  0.30000    , 0.35000    , 0.40000    , 0.45000    , 0.50000    ,
+     $  0.55000    , 0.60000    , 0.65000    , 0.70000    , 0.75000    ,
+     $  0.80000    , 0.85000    , 0.90000    , 0.95000    ,  1.0000    ,
+     $   1.1000    ,  1.2000    ,  1.3000    ,  1.4000    ,  1.5000    ,
+     $   1.6000    ,  1.8000    ,  2.0000    ,  2.2000    ,  2.4000    ,
+     $   2.6000    ,  2.8000    ,  3.0000    ,  4.0000    ,  5.0000    ,
+     $   6.0000    ,  8.0000    ,  10.000    ,  20.000    ,  100.00    ,
+     $   1000.0    /
+ 
+      DATA ((CSEL(I,J),I=1,6),J=1,41) / 246 * 0. /
+      DATA (CSEL( 8,J),J=1,41) / 41 * 0. /
+      DATA (CSEL(21,J),J=1,41) / 41 * 0. /
+      DATA (CSEL(24,J),J=1,41) / 41 * 0. /
+      DATA ((CSEL(I,J),I=30,32),J=1,41) / 123 * 0. /
+      DATA (CSEL(35,J),J=1,41) / 41 * 0. /
+ 
+      DATA (CSEL( 7,J),J=1,41) /
+     $  0.00000E+00,  6.0000    ,  20.000    ,  71.000    ,  155.00    ,
+     $   195.00    ,  130.00    ,  78.000    ,  60.000    ,  32.000    ,
+     $   23.500    ,  18.500    ,  15.000    ,  12.500    ,  10.000    ,
+     $   9.1000    ,  8.6000    ,  8.8000    ,  9.5000    ,  10.600    ,
+     $   13.000    ,  15.500    ,  17.100    ,  17.200    ,  16.200    ,
+     $   15.000    ,  12.300    ,  10.200    ,  9.0000    ,  8.0000    ,
+     $   7.3000    ,  6.8000    ,  6.5000    ,  5.8000    ,  5.4000    ,
+     $   5.2000    ,  5.0000    ,  4.9000    ,  3.8000    ,  3.2000    ,
+     $   3.5000    /
+      DATA (CSEL( 9,J),J=1,41) /
+     $  0.00000E+00,  1.0000    ,  3.0000    ,  8.0000    ,  18.000    ,
+     $   25.000    ,  27.500    ,  12.300    ,  10.600    ,  11.000    ,
+     $   12.500    ,  14.500    ,  17.000    ,  19.400    ,  19.800    ,
+     $   16.800    ,  14.000    ,  14.800    ,  20.000    ,  26.100    ,
+     $   19.500    ,  15.000    ,  12.800    ,  11.500    ,  10.500    ,
+     $   9.8000    ,  8.8000    ,  8.2000    ,  7.8000    ,  7.5000    ,
+     $   7.2000    ,  7.0000    ,  6.8000    ,  6.1000    ,  5.7000    ,
+     $   5.4000    ,  4.9000    ,  4.6000    ,  4.0000    ,  3.3000    ,
+     $   3.5000    /
+      DATA (CSEL(10,J),J=1,41) /
+     $   10.000    ,  11.200    ,  11.300    ,  11.400    ,  11.500    ,
+     $   11.600    ,  11.800    ,  12.000    ,  12.100    ,  12.200    ,
+     $   12.300    ,  12.400    ,  12.500    ,  12.500    ,  12.500    ,
+     $   12.400    ,  12.300    ,  12.200    ,  12.000    ,  11.800    ,
+     $   11.200    ,  11.500    ,  9.9000    ,  9.4000    ,  8.8000    ,
+     $   8.4000    ,  7.5000    ,  6.9000    ,  6.3000    ,  5.9000    ,
+     $   5.5000    ,  5.2000    ,  5.0000    ,  4.0000    ,  3.5000    ,
+     $   3.3000    ,  3.1000    ,  3.1000    ,  3.0000    ,  2.5000    ,
+     $   3.0000    /
+      DATA (CSEL(11,J),J=1,41) /
+     $   10.000    ,  11.200    ,  11.300    ,  11.400    ,  11.500    ,
+     $   11.600    ,  11.800    ,  12.000    ,  12.100    ,  12.200    ,
+     $   12.300    ,  12.400    ,  12.500    ,  12.500    ,  12.500    ,
+     $   12.400    ,  12.300    ,  12.200    ,  12.000    ,  11.800    ,
+     $   11.200    ,  11.500    ,  9.9000    ,  9.4000    ,  8.8000    ,
+     $   8.4000    ,  7.5000    ,  6.9000    ,  6.3000    ,  5.9000    ,
+     $   5.5000    ,  5.2000    ,  5.0000    ,  4.0000    ,  3.5000    ,
+     $   3.3000    ,  3.1000    ,  3.1000    ,  3.0000    ,  2.5000    ,
+     $   3.0000    /
+      DATA (CSEL(12,J),J=1,41) /
+     $   160.83    ,  82.800    ,  58.575    ,  43.683    ,  34.792    ,
+     $   28.650    ,  24.367    ,  20.917    ,  18.192    ,  16.300    ,
+     $   14.608    ,  13.017    ,  12.250    ,  11.700    ,  12.017    ,
+     $   14.075    ,  15.842    ,  16.433    ,  16.042    ,  15.008    ,
+     $   12.575    ,  10.708    ,  9.2000    ,  8.0167    ,  7.2833    ,
+     $   7.0750    ,  6.6333    ,  6.1250    ,  5.6583    ,  5.2750    ,
+     $   4.9333    ,  4.6250    ,  4.4583    ,  3.7333    ,  3.3833    ,
+     $   3.1833    ,  2.9833    ,  2.7500    ,  2.3667    ,  2.2000    ,
+     $   2.6000    /
+      DATA (CSEL(13,J),J=1,41) /
+     $   300.00    ,  140.00    ,  97.000    ,  70.000    ,  55.000    ,
+     $   45.000    ,  37.000    ,  31.000    ,  26.000    ,  23.000    ,
+     $   20.000    ,  17.000    ,  15.500    ,  14.500    ,  14.700    ,
+     $   18.500    ,  22.000    ,  23.000    ,  22.500    ,  20.700    ,
+     $   16.500    ,  14.000    ,  11.500    ,  9.6000    ,  8.6000    ,
+     $   8.5000    ,  8.3000    ,  7.6000    ,  7.0000    ,  6.4000    ,
+     $   5.9000    ,  5.5000    ,  5.3000    ,  4.4000    ,  4.1000    ,
+     $   3.9000    ,  3.7000    ,  3.3000    ,  2.6000    ,  2.5000    ,
+     $   3.0000    /
+      DATA (CSEL(14,J),J=1,41) /
+     $   1100.0    ,  115.00    ,  105.00    ,  100.00    ,  56.000    ,
+     $   40.000    ,  27.000    ,  22.000    ,  21.000    ,  20.000    ,
+     $   20.000    ,  20.000    ,  20.500    ,  21.000    ,  22.000    ,
+     $   23.000    ,  24.000    ,  24.000    ,  24.400    ,  24.500    ,
+     $   25.000    ,  25.500    ,  26.000    ,  26.500    ,  27.000    ,
+     $   27.000    ,  26.000    ,  23.000    ,  21.500    ,  20.000    ,
+     $   19.000    ,  18.000    ,  17.000    ,  13.000    ,  11.500    ,
+     $   10.300    ,  9.4000    ,  9.0000    ,  8.8000    ,  7.0000    ,
+     $   7.5000    /
+      DATA (CSEL(15,J),J=1,41) /
+     $   200.00    ,  163.00    ,  141.00    ,  120.00    ,  111.00    ,
+     $   99.500    ,  92.500    ,  86.500    ,  82.000    ,  78.000    ,
+     $   74.000    ,  71.000    ,  67.500    ,  65.000    ,  62.500    ,
+     $   59.700    ,  58.100    ,  56.300    ,  54.700    ,  52.700    ,
+     $   50.000    ,  48.400    ,  47.000    ,  46.000    ,  45.200    ,
+     $   42.800    ,  39.200    ,  36.300    ,  32.800    ,  30.400    ,
+     $   28.100    ,  26.300    ,  24.500    ,  19.250    ,  16.840    ,
+     $   14.600    ,  12.340    ,  11.210    ,  8.8500    ,  7.5000    ,
+     $   7.5000    /
+      DATA (CSEL(16,J),J=1,41) /
+     $   4200.0    ,  440.00    ,  420.00    ,  400.00    ,  230.00    ,
+     $   160.00    ,  105.00    ,  80.000    ,  62.000    ,  50.000    ,
+     $   45.000    ,  41.000    ,  38.000    ,  36.000    ,  35.000    ,
+     $   34.000    ,  33.000    ,  32.000    ,  31.500    ,  31.000    ,
+     $   30.500    ,  30.000    ,  29.500    ,  29.000    ,  28.500    ,
+     $   28.000    ,  26.000    ,  23.000    ,  21.500    ,  20.000    ,
+     $   19.000    ,  18.000    ,  17.000    ,  13.000    ,  11.500    ,
+     $   10.300    ,  9.4000    ,  9.0000    ,  8.8000    ,  7.0000    ,
+     $   7.5000    /
+      DATA (CSEL(17,J),J=1,41) /
+     $   185.88    ,  133.23    ,  119.37    ,  102.86    ,  93.102    ,
+     $   82.752    ,  76.205    ,  71.008    ,  67.366    ,  64.096    ,
+     $   60.891    ,  58.501    ,  55.735    ,  53.773    ,  51.839    ,
+     $   49.671    ,  48.485    ,  47.045    ,  45.803    ,  44.306    ,
+     $   42.623    ,  41.786    ,  41.115    ,  40.630    ,  40.129    ,
+     $   38.242    ,  35.233    ,  32.662    ,  29.639    ,  27.573    ,
+     $   25.536    ,  23.948    ,  22.356    ,  17.723    ,  15.614    ,
+     $   13.653    ,  11.675    ,  10.653    ,  8.6198    ,  7.4464    ,
+     $   7.4821    /
+      DATA (CSEL(18,J),J=1,41) /
+     $   1100.0    ,  115.00    ,  105.00    ,  100.00    ,  56.000    ,
+     $   40.000    ,  27.000    ,  22.000    ,  21.000    ,  20.000    ,
+     $   20.000    ,  19.067    ,  19.333    ,  19.500    ,  19.833    ,
+     $   20.567    ,  21.800    ,  22.900    ,  23.869    ,  23.809    ,
+     $   22.161    ,  21.488    ,  19.732    ,  19.433    ,  19.345    ,
+     $   19.029    ,  18.121    ,  16.280    ,  15.258    ,  14.280    ,
+     $   13.644    ,  12.963    ,  12.316    ,  9.5333    ,  8.4333    ,
+     $   7.5728    ,  6.9696    ,  6.7518    ,  6.6175    ,  5.6000    ,
+     $   6.1145    /
+      DATA (CSEL(19,J),J=1,41) /
+     $   157.65    ,  73.701    ,  76.096    ,  68.571    ,  57.305    ,
+     $   49.257    ,  43.616    ,  40.024    ,  38.098    ,  36.287    ,
+     $   34.674    ,  33.105    ,  31.712    ,  30.685    ,  29.613    ,
+     $   28.602    ,  28.336    ,  28.075    ,  27.786    ,  27.215    ,
+     $   26.380    ,  26.146    ,  25.108    ,  24.783    ,  24.360    ,
+     $   23.219    ,  21.431    ,  20.095    ,  18.382    ,  17.267    ,
+     $   16.100    ,  15.175    ,  14.271    ,  11.573    ,  10.305    ,
+     $   9.1471    ,  8.0149    ,  7.4349    ,  6.2499    ,  5.8928    ,
+     $   6.0774    /
+      DATA (CSEL(20,J),J=1,41) /
+     $   1100.0    ,  115.00    ,  105.00    ,  100.00    ,  56.000    ,
+     $   40.000    ,  27.000    ,  22.000    ,  21.000    ,  20.000    ,
+     $   20.000    ,  19.067    ,  19.333    ,  19.500    ,  19.833    ,
+     $   20.567    ,  21.800    ,  22.900    ,  23.869    ,  23.809    ,
+     $   22.161    ,  21.488    ,  19.732    ,  19.433    ,  19.345    ,
+     $   19.029    ,  18.121    ,  16.280    ,  15.258    ,  14.280    ,
+     $   13.644    ,  12.963    ,  12.316    ,  9.5333    ,  8.4333    ,
+     $   7.5728    ,  6.9696    ,  6.7518    ,  6.6175    ,  5.6000    ,
+     $   6.1145    /
+      DATA (CSEL(22,J),J=1,41) /
+     $   1100.0    ,  115.00    ,  105.00    ,  100.00    ,  56.000    ,
+     $   40.000    ,  27.000    ,  22.000    ,  21.000    ,  20.000    ,
+     $   20.000    ,  19.067    ,  19.333    ,  19.500    ,  19.833    ,
+     $   20.567    ,  21.800    ,  22.900    ,  23.869    ,  23.809    ,
+     $   22.161    ,  21.488    ,  19.732    ,  19.433    ,  19.345    ,
+     $   19.029    ,  18.121    ,  16.280    ,  15.258    ,  14.280    ,
+     $   13.644    ,  12.963    ,  12.316    ,  9.5333    ,  8.4333    ,
+     $   7.5728    ,  6.9696    ,  6.7518    ,  6.6175    ,  5.6000    ,
+     $   6.1145    /
+      DATA (CSEL(23,J),J=1,41) /
+     $   185.88    ,  133.23    ,  119.37    ,  102.86    ,  93.102    ,
+     $   82.752    ,  76.205    ,  71.008    ,  67.366    ,  64.096    ,
+     $   60.891    ,  58.104    ,  55.241    ,  53.140    ,  50.934    ,
+     $   48.660    ,  47.566    ,  46.585    ,  45.581    ,  44.003    ,
+     $   41.134    ,  39.374    ,  36.878    ,  35.523    ,  34.503    ,
+     $   32.334    ,  29.365    ,  27.370    ,  24.705    ,  22.921    ,
+     $   21.229    ,  19.879    ,  18.559    ,  14.625    ,  12.758    ,
+     $   11.041    ,  9.3440    ,  8.5484    ,  6.7104    ,  6.0000    ,
+     $   6.1131    /
+      DATA (CSEL(25,J),J=1,41) /
+     $   157.65    ,  73.701    ,  76.096    ,  68.571    ,  57.305    ,
+     $   49.257    ,  43.616    ,  40.024    ,  38.098    ,  36.287    ,
+     $   34.674    ,  33.105    ,  31.712    ,  30.685    ,  29.613    ,
+     $   28.602    ,  28.336    ,  28.075    ,  27.786    ,  27.215    ,
+     $   26.380    ,  26.146    ,  25.108    ,  24.783    ,  24.360    ,
+     $   23.219    ,  21.431    ,  20.095    ,  18.382    ,  17.267    ,
+     $   16.100    ,  15.175    ,  14.271    ,  11.573    ,  10.305    ,
+     $   9.1471    ,  8.0149    ,  7.4349    ,  6.2499    ,  5.8928    ,
+     $   6.0774    /
+      DATA (CSEL(26,J),J=1,41) /
+     $   1100.0    ,  115.00    ,  105.00    ,  100.00    ,  56.000    ,
+     $   40.000    ,  27.000    ,  22.000    ,  21.000    ,  20.000    ,
+     $   20.000    ,  18.133    ,  18.167    ,  18.000    ,  17.667    ,
+     $   18.133    ,  19.600    ,  21.800    ,  23.338    ,  23.118    ,
+     $   19.323    ,  17.476    ,  13.464    ,  12.367    ,  11.691    ,
+     $   11.057    ,  10.242    ,  9.5593    ,  9.0151    ,  8.5591    ,
+     $   8.2884    ,  7.9253    ,  7.6311    ,  6.0667    ,  5.3667    ,
+     $   4.8456    ,  4.5392    ,  4.5036    ,  4.4351    ,  4.2000    ,
+     $   4.7289    /
+      DATA (CSEL(27,J),J=1,41) /
+     $   1100.0    ,  115.00    ,  105.00    ,  100.00    ,  56.000    ,
+     $   40.000    ,  27.000    ,  22.000    ,  21.000    ,  20.000    ,
+     $   20.000    ,  18.133    ,  18.167    ,  18.000    ,  17.667    ,
+     $   18.133    ,  19.600    ,  21.800    ,  23.338    ,  23.118    ,
+     $   19.323    ,  17.476    ,  13.464    ,  12.367    ,  11.691    ,
+     $   11.057    ,  10.242    ,  9.5593    ,  9.0151    ,  8.5591    ,
+     $   8.2884    ,  7.9253    ,  7.6311    ,  6.0667    ,  5.3667    ,
+     $   4.8456    ,  4.5392    ,  4.5036    ,  4.4351    ,  4.2000    ,
+     $   4.7289    /
+      DATA (CSEL(28,J),J=1,41) /
+     $   157.65    ,  73.701    ,  76.096    ,  68.571    ,  57.305    ,
+     $   49.257    ,  43.616    ,  40.024    ,  38.098    ,  36.287    ,
+     $   34.674    ,  32.708    ,  31.218    ,  30.052    ,  28.707    ,
+     $   27.591    ,  27.417    ,  27.615    ,  27.564    ,  26.913    ,
+     $   24.891    ,  23.734    ,  20.871    ,  19.677    ,  18.734    ,
+     $   17.311    ,  15.563    ,  14.803    ,  13.448    ,  12.615    ,
+     $   11.794    ,  11.106    ,  10.474    ,  8.4745    ,  7.4498    ,
+     $   6.5350    ,  5.6835    ,  5.3300    ,  4.3406    ,  4.4464    ,
+     $   4.7083    /
+      DATA (CSEL(29,J),J=1,41) /
+     $   143.53    ,  43.935    ,  54.462    ,  51.429    ,  39.407    ,
+     $   32.510    ,  27.321    ,  24.532    ,  23.465    ,  22.383    ,
+     $   21.566    ,  20.209    ,  19.453    ,  18.825    ,  18.046    ,
+     $   17.562    ,  17.802    ,  18.360    ,  18.667    ,  18.519    ,
+     $   17.514    ,  17.120    ,  14.985    ,  14.306    ,  13.663    ,
+     $   12.753    ,  11.596    ,  11.165    ,  10.287    ,  9.7882    ,
+     $   9.2294    ,  8.7539    ,  8.3300    ,  6.9480    ,  6.2234    ,
+     $   5.5881    ,  5.0189    ,  4.7733    ,  4.1104    ,  4.3929    ,
+     $   4.6905    /
+      DATA (CSEL(33,J),J=1,41) /
+     $   1100.0    ,  115.00    ,  105.00    ,  100.00    ,  56.000    ,
+     $   40.000    ,  27.000    ,  22.000    ,  21.000    ,  20.000    ,
+     $   20.000    ,  18.133    ,  18.167    ,  18.000    ,  17.667    ,
+     $   18.133    ,  19.600    ,  21.800    ,  23.338    ,  23.118    ,
+     $   19.323    ,  17.476    ,  13.464    ,  12.367    ,  11.691    ,
+     $   11.057    ,  10.242    ,  9.5593    ,  9.0151    ,  8.5591    ,
+     $   8.2884    ,  7.9253    ,  7.6311    ,  6.0667    ,  5.3667    ,
+     $   4.8456    ,  4.5392    ,  4.5036    ,  4.4351    ,  4.2000    ,
+     $   4.7289    /
+      DATA (CSEL(34,J),J=1,41) /
+     $   143.53    ,  43.935    ,  54.462    ,  51.429    ,  39.407    ,
+     $   32.510    ,  27.321    ,  24.532    ,  23.465    ,  22.383    ,
+     $   21.566    ,  20.209    ,  19.453    ,  18.825    ,  18.046    ,
+     $   17.562    ,  17.802    ,  18.360    ,  18.667    ,  18.519    ,
+     $   17.514    ,  17.120    ,  14.985    ,  14.306    ,  13.663    ,
+     $   12.753    ,  11.596    ,  11.165    ,  10.287    ,  9.7882    ,
+     $   9.2294    ,  8.7539    ,  8.3300    ,  6.9480    ,  6.2234    ,
+     $   5.5881    ,  5.0189    ,  4.7733    ,  4.1104    ,  4.3929    ,
+     $   4.6905    /
+ 
+      DATA ((CSIN(I,J),I=1,6),J=1,41) / 246 * 0. /
+      DATA (CSIN( 8,J),J=1,41) / 41 * 0. /
+      DATA (CSIN(21,J),J=1,41) / 41 * 0. /
+      DATA (CSIN(24,J),J=1,41) / 41 * 0. /
+      DATA ((CSIN(I,J),I=30,32),J=1,41) / 123 * 0. /
+      DATA (CSIN(35,J),J=1,41) / 41 * 0. /
+ 
+      DATA (CSIN( 7,J),J=1,41) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.50000    ,  1.2000    ,  1.7000    ,
+     $   2.2500    ,  3.0000    ,  3.6000    ,  4.5000    ,  5.4000    ,
+     $   6.3000    ,  8.6000    ,  9.0000    ,  10.000    ,  11.500    ,
+     $   14.000    ,  17.000    ,  19.500    ,  22.000    ,  24.000    ,
+     $   21.500    ,  18.500    ,  19.000    ,  20.500    ,  22.200    ,
+     $   23.000    ,  23.300    ,  23.000    ,  21.000    ,  20.500    ,
+     $   20.200    ,  20.100    ,  20.000    ,  20.000    ,  20.000    ,
+     $   21.000    /
+      DATA (CSIN( 9,J),J=1,41) /
+     $  0.00000E+00,  3.0000    ,  9.2000    ,  20.500    ,  36.500    ,
+     $   45.000    ,  28.000    ,  19.500    ,  15.500    ,  14.200    ,
+     $   15.500    ,  17.500    ,  20.000    ,  23.000    ,  26.000    ,
+     $   20.000    ,  23.000    ,  26.500    ,  32.000    ,  35.000    ,
+     $   28.500    ,  22.000    ,  22.500    ,  23.500    ,  24.000    ,
+     $   24.500    ,  26.000    ,  27.500    ,  27.500    ,  27.000    ,
+     $   26.500    ,  25.500    ,  25.000    ,  23.000    ,  22.500    ,
+     $   22.200    ,  22.000    ,  22.000    ,  21.200    ,  20.700    ,
+     $   21.000    /
+      DATA (CSIN(10,J),J=1,41) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.50000    ,  1.5000    ,  2.7000    ,  3.8000    ,  4.8000    ,
+     $   6.5000    ,  7.6000    ,  8.4000    ,  9.0000    ,  9.4000    ,
+     $   9.8000    ,  10.500    ,  11.000    ,  11.500    ,  11.800    ,
+     $   12.200    ,  12.400    ,  12.600    ,  13.200    ,  13.500    ,
+     $   13.700    ,  14.000    ,  14.200    ,  14.500    ,  16.400    ,
+     $   17.000    /
+      DATA (CSIN(11,J),J=1,41) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.50000    ,  1.5000    ,  2.7000    ,  3.8000    ,  4.8000    ,
+     $   6.5000    ,  7.6000    ,  8.4000    ,  9.0000    ,  9.4000    ,
+     $   9.8000    ,  10.500    ,  11.000    ,  11.500    ,  11.800    ,
+     $   12.200    ,  12.400    ,  12.600    ,  13.200    ,  13.500    ,
+     $   13.700    ,  14.000    ,  14.200    ,  14.500    ,  16.400    ,
+     $   17.000    /
+      DATA (CSIN(12,J),J=1,41) /
+     $   266.67    ,  133.33    ,  83.333    ,  57.083    ,  44.500    ,
+     $   33.250    ,  24.583    ,  20.833    ,  18.333    ,  16.083    ,
+     $   15.625    ,  15.083    ,  14.833    ,  15.083    ,  15.833    ,
+     $   17.042    ,  18.958    ,  20.758    ,  22.533    ,  22.825    ,
+     $   21.250    ,  18.567    ,  17.767    ,  18.100    ,  19.933    ,
+     $   20.783    ,  21.225    ,  21.000    ,  20.558    ,  20.258    ,
+     $   20.017    ,  19.767    ,  19.600    ,  19.183    ,  18.850    ,
+     $   18.575    ,  18.350    ,  18.175    ,  17.808    ,  17.558    ,
+     $   19.250    /
+      DATA (CSIN(13,J),J=1,41) /
+     $   400.00    ,  200.00    ,  120.00    ,  81.000    ,  62.000    ,
+     $   47.000    ,  35.000    ,  28.000    ,  24.000    ,  21.000    ,
+     $   19.500    ,  19.000    ,  18.800    ,  19.000    ,  20.000    ,
+     $   21.000    ,  23.000    ,  25.000    ,  27.000    ,  27.500    ,
+     $   25.500    ,  22.000    ,  20.800    ,  21.000    ,  23.000    ,
+     $   24.000    ,  24.000    ,  23.800    ,  23.000    ,  22.500    ,
+     $   22.000    ,  21.600    ,  21.400    ,  21.000    ,  20.500    ,
+     $   20.200    ,  19.800    ,  19.500    ,  18.600    ,  17.500    ,
+     $   20.000    /
+      DATA (CSIN(14,J),J=1,41) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.10000    ,  1.5000    ,
+     $   7.0000    ,  12.000    ,  17.000    ,  19.500    ,  20.500    ,
+     $   22.000    ,  23.500    ,  24.800    ,  25.800    ,  26.500    ,
+     $   27.000    ,  27.500    ,  28.000    ,  30.000    ,  31.000    ,
+     $   32.000    ,  32.500    ,  32.500    ,  33.000    ,  33.500    ,
+     $   34.000    /
+      DATA (CSIN(15,J),J=1,41) /
+     $   1500.0    ,  1160.0    ,  310.00    ,  230.00    ,  178.00    ,
+     $   153.00    ,  134.00    ,  124.00    ,  113.00    ,  106.00    ,
+     $   101.00    ,  96.000    ,  92.000    ,  89.000    ,  87.000    ,
+     $   84.000    ,  81.000    ,  78.500    ,  76.500    ,  75.000    ,
+     $   72.000    ,  70.000    ,  68.000    ,  64.500    ,  63.000    ,
+     $   62.000    ,  61.000    ,  59.500    ,  58.500    ,  56.500    ,
+     $   56.500    ,  56.000    ,  55.500    ,  52.000    ,  50.000    ,
+     $   48.000    ,  45.000    ,  44.000    ,  39.200    ,  34.500    ,
+     $   34.500    /
+      DATA (CSIN(16,J),J=1,41) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.10000    ,  1.5000    ,
+     $   7.0000    ,  12.000    ,  17.000    ,  19.500    ,  20.500    ,
+     $   22.000    ,  23.500    ,  24.800    ,  25.800    ,  26.500    ,
+     $   27.000    ,  27.500    ,  28.000    ,  30.000    ,  31.000    ,
+     $   32.000    ,  32.500    ,  32.500    ,  33.000    ,  33.500    ,
+     $   34.000    /
+      DATA (CSIN(17,J),J=1,41) /
+     $   1394.1    ,  948.17    ,  262.43    ,  197.14    ,  149.30    ,
+     $   127.25    ,  110.39    ,  101.79    ,  92.834    ,  87.104    ,
+     $   83.109    ,  79.099    ,  75.965    ,  73.627    ,  72.161    ,
+     $   69.889    ,  67.595    ,  65.595    ,  64.057    ,  63.054    ,
+     $   61.377    ,  60.434    ,  59.485    ,  56.970    ,  55.931    ,
+     $   55.398    ,  54.827    ,  53.538    ,  52.861    ,  51.247    ,
+     $   51.344    ,  50.992    ,  50.644    ,  47.876    ,  46.358    ,
+     $   44.887    ,  42.577    ,  41.815    ,  38.180    ,  34.254    ,
+     $   34.418    /
+      DATA (CSIN(18,J),J=1,41) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.97815E-01,  1.4577    ,
+     $   6.2052    ,  10.112    ,  12.902    ,  14.300    ,  14.688    ,
+     $   15.505    ,  16.379    ,  17.554    ,  18.309    ,  18.920    ,
+     $   19.389    ,  19.804    ,  20.284    ,  22.000    ,  22.733    ,
+     $   23.527    ,  24.097    ,  24.382    ,  24.816    ,  26.800    ,
+     $   27.719    /
+      DATA (CSIN(19,J),J=1,41) /
+     $   1182.4    ,  524.50    ,  167.30    ,  131.43    ,  91.895    ,
+     $   75.743    ,  63.184    ,  57.376    ,  52.502    ,  49.313    ,
+     $   47.326    ,  44.762    ,  43.222    ,  42.015    ,  41.221    ,
+     $   40.244    ,  39.504    ,  39.145    ,  38.860    ,  38.731    ,
+     $   37.987    ,  37.814    ,  36.326    ,  34.750    ,  33.953    ,
+     $   33.635    ,  33.349    ,  32.938    ,  32.785    ,  32.092    ,
+     $   32.373    ,  32.312    ,  32.329    ,  31.261    ,  30.597    ,
+     $   30.073    ,  29.228    ,  29.182    ,  27.683    ,  27.107    ,
+     $   27.956    /
+      DATA (CSIN(20,J),J=1,41) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.97815E-01,  1.4577    ,
+     $   6.2052    ,  10.112    ,  12.902    ,  14.300    ,  14.688    ,
+     $   15.505    ,  16.379    ,  17.554    ,  18.309    ,  18.920    ,
+     $   19.389    ,  19.804    ,  20.284    ,  22.000    ,  22.733    ,
+     $   23.527    ,  24.097    ,  24.382    ,  24.816    ,  26.800    ,
+     $   27.719    /
+      DATA (CSIN(22,J),J=1,41) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.97815E-01,  1.4577    ,
+     $   6.2052    ,  10.112    ,  12.902    ,  14.300    ,  14.688    ,
+     $   15.505    ,  16.379    ,  17.554    ,  18.309    ,  18.920    ,
+     $   19.389    ,  19.804    ,  20.284    ,  22.000    ,  22.733    ,
+     $   23.527    ,  24.097    ,  24.382    ,  24.816    ,  26.800    ,
+     $   27.719    /
+      DATA (CSIN(23,J),J=1,41) /
+     $   1394.1    ,  948.17    ,  262.43    ,  197.14    ,  149.30    ,
+     $   127.25    ,  110.39    ,  101.79    ,  92.834    ,  87.104    ,
+     $   83.109    ,  78.563    ,  75.292    ,  72.760    ,  70.900    ,
+     $   68.467    ,  66.314    ,  64.955    ,  63.746    ,  62.623    ,
+     $   59.233    ,  56.946    ,  53.355    ,  49.810    ,  48.090    ,
+     $   46.839    ,  45.695    ,  44.863    ,  44.062    ,  42.599    ,
+     $   42.684    ,  42.328    ,  42.041    ,  39.508    ,  37.880    ,
+     $   36.299    ,  34.075    ,  33.553    ,  29.723    ,  27.600    ,
+     $   28.120    /
+      DATA (CSIN(25,J),J=1,41) /
+     $   1182.4    ,  524.50    ,  167.30    ,  131.43    ,  91.895    ,
+     $   75.743    ,  63.184    ,  57.376    ,  52.502    ,  49.313    ,
+     $   47.326    ,  44.762    ,  43.222    ,  42.015    ,  41.221    ,
+     $   40.244    ,  39.504    ,  39.145    ,  38.860    ,  38.731    ,
+     $   37.987    ,  37.814    ,  36.326    ,  34.750    ,  33.953    ,
+     $   33.635    ,  33.349    ,  32.938    ,  32.785    ,  32.092    ,
+     $   32.373    ,  32.312    ,  32.329    ,  31.261    ,  30.597    ,
+     $   30.073    ,  29.228    ,  29.182    ,  27.683    ,  27.107    ,
+     $   27.956    /
+      DATA (CSIN(26,J),J=1,41) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.95639E-01,  1.4154    ,
+     $   5.4104    ,  8.2240    ,  8.8031    ,  9.1000    ,  8.8761    ,
+     $   9.0095    ,  9.2576    ,  10.307    ,  10.818    ,  11.341    ,
+     $   11.778    ,  12.108    ,  12.569    ,  14.000    ,  14.467    ,
+     $   15.054    ,  15.694    ,  16.263    ,  16.632    ,  20.100    ,
+     $   21.438    /
+      DATA (CSIN(27,J),J=1,41) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.95639E-01,  1.4154    ,
+     $   5.4104    ,  8.2240    ,  8.8031    ,  9.1000    ,  8.8761    ,
+     $   9.0095    ,  9.2576    ,  10.307    ,  10.818    ,  11.341    ,
+     $   11.778    ,  12.108    ,  12.569    ,  14.000    ,  14.467    ,
+     $   15.054    ,  15.694    ,  16.263    ,  16.632    ,  20.100    ,
+     $   21.438    /
+      DATA (CSIN(28,J),J=1,41) /
+     $   1182.4    ,  524.50    ,  167.30    ,  131.43    ,  91.895    ,
+     $   75.743    ,  63.184    ,  57.376    ,  52.502    ,  49.313    ,
+     $   47.326    ,  44.225    ,  42.549    ,  41.148    ,  39.960    ,
+     $   38.822    ,  38.223    ,  38.505    ,  38.549    ,  38.301    ,
+     $   35.843    ,  34.326    ,  30.196    ,  27.590    ,  26.112    ,
+     $   25.076    ,  24.217    ,  24.264    ,  23.985    ,  23.445    ,
+     $   23.713    ,  23.647    ,  23.726    ,  22.892    ,  22.119    ,
+     $   21.485    ,  20.726    ,  20.921    ,  19.226    ,  20.454    ,
+     $   21.658    /
+      DATA (CSIN(29,J),J=1,41) /
+     $   1076.5    ,  312.66    ,  119.74    ,  98.571    ,  63.193    ,
+     $   49.990    ,  39.579    ,  35.168    ,  32.335    ,  30.417    ,
+     $   29.434    ,  27.325    ,  26.514    ,  25.775    ,  25.120    ,
+     $   24.711    ,  24.818    ,  25.600    ,  26.106    ,  26.355    ,
+     $   25.220    ,  24.760    ,  21.681    ,  20.060    ,  19.044    ,
+     $   18.474    ,  18.044    ,  18.301    ,  18.347    ,  18.192    ,
+     $   18.557    ,  18.639    ,  18.870    ,  18.769    ,  18.478    ,
+     $   18.372    ,  18.302    ,  18.735    ,  18.206    ,  20.207    ,
+     $   21.576    /
+      DATA (CSIN(33,J),J=1,41) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.95639E-01,  1.4154    ,
+     $   5.4104    ,  8.2240    ,  8.8031    ,  9.1000    ,  8.8761    ,
+     $   9.0095    ,  9.2576    ,  10.307    ,  10.818    ,  11.341    ,
+     $   11.778    ,  12.108    ,  12.569    ,  14.000    ,  14.467    ,
+     $   15.054    ,  15.694    ,  16.263    ,  16.632    ,  20.100    ,
+     $   21.438    /
+      DATA (CSIN(34,J),J=1,41) /
+     $   1076.5    ,  312.66    ,  119.74    ,  98.571    ,  63.193    ,
+     $   49.990    ,  39.579    ,  35.168    ,  32.335    ,  30.417    ,
+     $   29.434    ,  27.325    ,  26.514    ,  25.775    ,  25.120    ,
+     $   24.711    ,  24.818    ,  25.600    ,  26.106    ,  26.355    ,
+     $   25.220    ,  24.760    ,  21.681    ,  20.060    ,  19.044    ,
+     $   18.474    ,  18.044    ,  18.301    ,  18.347    ,  18.192    ,
+     $   18.557    ,  18.639    ,  18.870    ,  18.769    ,  18.478    ,
+     $   18.372    ,  18.302    ,  18.735    ,  18.206    ,  20.207    ,
+     $   21.576    /
+ 
+      DATA (CSPIEL( 1,J),J=1,41) /
+     $  0.00000E+00,  350.00    ,  580.00    ,  600.00    ,  550.00    ,
+     $   450.00    ,  410.00    ,  370.00    ,  340.00    ,  230.00    ,
+     $   220.00    ,  205.00    ,  180.00    ,  155.00    ,  145.00    ,
+     $   140.00    ,  160.00    ,  195.00    ,  235.00    ,  250.00    ,
+     $   270.00    ,  280.00    ,  300.00    ,  300.00    ,  290.00    ,
+     $   285.00    ,  265.00    ,  240.00    ,  230.00    ,  222.00    ,
+     $   204.00    ,  196.00    ,  190.00    ,  170.00    ,  170.00    ,
+     $   160.00    ,  150.00    ,  140.00    ,  120.00    ,  80.000    ,
+     $   80.000    /
+      DATA (CSPIEL( 2,J),J=1,41) /
+     $  0.00000E+00,  700.00    ,  1000.0    ,  1200.0    ,  1300.0    ,
+     $   1300.0    ,  1250.0    ,  1250.0    ,  1100.0    ,  1000.0    ,
+     $   940.00    ,  740.00    ,  700.00    ,  670.00    ,  660.00    ,
+     $   670.00    ,  680.00    ,  700.00    ,  735.00    ,  800.00    ,
+     $   810.00    ,  820.00    ,  820.00    ,  810.00    ,  800.00    ,
+     $   800.00    ,  700.00    ,  600.00    ,  500.00    ,  470.00    ,
+     $   440.00    ,  410.00    ,  380.00    ,  330.00    ,  330.00    ,
+     $   330.00    ,  330.00    ,  330.00    ,  285.00    ,  240.00    ,
+     $   240.00    /
+      DATA (CSPIEL( 3,J),J=1,41) /
+     $  0.00000E+00,  1700.0    ,  2200.0    ,  2200.0    ,  1800.0    ,
+     $   1300.0    ,  1200.0    ,  900.00    ,  900.00    ,  1000.0    ,
+     $   1100.0    ,  1300.0    ,  1400.0    ,  1420.0    ,  1490.0    ,
+     $   1560.0    ,  1580.0    ,  1690.0    ,  1795.0    ,  2000.0    ,
+     $   2070.0    ,  2140.0    ,  2050.0    ,  2010.0    ,  1970.0    ,
+     $   1880.0    ,  1690.0    ,  1500.0    ,  1420.0    ,  1390.0    ,
+     $   1350.0    ,  1360.0    ,  1370.0    ,  1280.0    ,  1290.0    ,
+     $   1295.0    ,  1250.0    ,  1200.0    ,  1050.0    ,  900.00    ,
+     $   900.00    /
+      DATA (CSPIIN( 1,J),J=1,41) /
+     $  0.00000E+00,  200.00    ,  320.00    ,  500.00    ,  600.00    ,
+     $   600.00    ,  590.00    ,  530.00    ,  510.00    ,  470.00    ,
+     $   430.00    ,  425.00    ,  420.00    ,  425.00    ,  425.00    ,
+     $   430.00    ,  430.00    ,  435.00    ,  435.00    ,  440.00    ,
+     $   430.00    ,  430.00    ,  420.00    ,  420.00    ,  420.00    ,
+     $   415.00    ,  415.00    ,  410.00    ,  410.00    ,  408.00    ,
+     $   406.00    ,  404.00    ,  400.00    ,  380.00    ,  340.00    ,
+     $   340.00    ,  340.00    ,  340.00    ,  340.00    ,  340.00    ,
+     $   340.00    /
+      DATA (CSPIIN( 2,J),J=1,41) /
+     $  0.00000E+00,  400.00    ,  800.00    ,  1000.0    ,  1100.0    ,
+     $   1200.0    ,  1150.0    ,  1050.0    ,  1000.0    ,  900.00    ,
+     $   860.00    ,  860.00    ,  850.00    ,  850.00    ,  840.00    ,
+     $   830.00    ,  820.00    ,  810.00    ,  805.00    ,  800.00    ,
+     $   800.00    ,  800.00    ,  800.00    ,  800.00    ,  800.00    ,
+     $   800.00    ,  800.00    ,  800.00    ,  800.00    ,  780.00    ,
+     $   760.00    ,  740.00    ,  720.00    ,  720.00    ,  700.00    ,
+     $   690.00    ,  680.00    ,  670.00    ,  665.00    ,  660.00    ,
+     $   660.00    /
+      DATA (CSPIIN( 3,J),J=1,41) /
+     $  0.00000E+00,  1000.0    ,  1900.0    ,  2600.0    ,  2900.0    ,
+     $   3000.0    ,  2800.0    ,  2600.0    ,  2500.0    ,  2300.0    ,
+     $   2200.0    ,  2000.0    ,  1900.0    ,  1880.0    ,  1860.0    ,
+     $   1840.0    ,  1820.0    ,  1810.0    ,  1805.0    ,  1800.0    ,
+     $   1780.0    ,  1760.0    ,  1750.0    ,  1740.0    ,  1730.0    ,
+     $   1720.0    ,  1710.0    ,  1700.0    ,  1680.0    ,  1660.0    ,
+     $   1650.0    ,  1640.0    ,  1630.0    ,  1620.0    ,  1610.0    ,
+     $   1605.0    ,  1600.0    ,  1600.0    ,  1550.0    ,  1500.0    ,
+     $   1500.0    /
+      DATA (CSPNEL( 1,J),J=1,41) /
+     $   2100.0    ,  1800.0    ,  1500.0    ,  1050.0    ,  900.00    ,
+     $   950.00    ,  800.00    ,  650.00    ,  570.00    ,  390.00    ,
+     $   300.00    ,  240.00    ,  230.00    ,  230.00    ,  220.00    ,
+     $   220.00    ,  225.00    ,  225.00    ,  240.00    ,  240.00    ,
+     $   290.00    ,  330.00    ,  335.00    ,  350.00    ,  355.00    ,
+     $   370.00    ,  350.00    ,  330.00    ,  310.00    ,  290.00    ,
+     $   270.00    ,  265.00    ,  260.00    ,  230.00    ,  210.00    ,
+     $   210.00    ,  200.00    ,  200.00    ,  190.00    ,  180.00    ,
+     $   180.00    /
+      DATA (CSPNEL( 2,J),J=1,41) /
+     $   3800.0    ,  2900.0    ,  1850.0    ,  1550.0    ,  1450.0    ,
+     $   1520.0    ,  1460.0    ,  1300.0    ,  1140.0    ,  880.00    ,
+     $   700.00    ,  620.00    ,  540.00    ,  560.00    ,  460.00    ,
+     $   460.00    ,  470.00    ,  470.00    ,  480.00    ,  480.00    ,
+     $   580.00    ,  600.00    ,  610.00    ,  620.00    ,  620.00    ,
+     $   620.00    ,  590.00    ,  580.00    ,  460.00    ,  440.00    ,
+     $   420.00    ,  400.00    ,  480.00    ,  430.00    ,  380.00    ,
+     $   380.00    ,  380.00    ,  380.00    ,  380.00    ,  380.00    ,
+     $   380.00    /
+      DATA (CSPNEL( 3,J),J=1,41) /
+     $   7000.0    ,  6000.0    ,  4500.0    ,  3350.0    ,  2700.0    ,
+     $   3000.0    ,  3550.0    ,  3970.0    ,  3280.0    ,  2490.0    ,
+     $   2100.0    ,  1510.0    ,  1440.0    ,  1370.0    ,  1370.0    ,
+     $   1370.0    ,  1400.0    ,  1400.0    ,  1420.0    ,  1420.0    ,
+     $   1440.0    ,  1460.0    ,  1460.0    ,  1450.0    ,  1450.0    ,
+     $   1470.0    ,  1400.0    ,  1400.0    ,  1380.0    ,  1370.0    ,
+     $   1360.0    ,  1350.0    ,  1340.0    ,  1330.0    ,  1320.0    ,
+     $   1310.0    ,  1305.0    ,  1300.0    ,  1300.0    ,  1300.0    ,
+     $   1300.0    /
+      DATA (CSPNIN( 1,J),J=1,41) /
+     $  0.00000E+00,  200.00    ,  400.00    ,  800.00    ,  800.00    ,
+     $   550.00    ,  500.00    ,  450.00    ,  430.00    ,  410.00    ,
+     $   400.00    ,  390.00    ,  380.00    ,  370.00    ,  370.00    ,
+     $   370.00    ,  365.00    ,  365.00    ,  360.00    ,  360.00    ,
+     $   360.00    ,  360.00    ,  365.00    ,  370.00    ,  375.00    ,
+     $   380.00    ,  400.00    ,  410.00    ,  420.00    ,  430.00    ,
+     $   440.00    ,  440.00    ,  440.00    ,  440.00    ,  440.00    ,
+     $   440.00    ,  440.00    ,  440.00    ,  440.00    ,  440.00    ,
+     $   440.00    /
+      DATA (CSPNIN( 2,J),J=1,41) /
+     $  0.00000E+00,  400.00    ,  950.00    ,  1050.0    ,  1050.0    ,
+     $   980.00    ,  940.00    ,  900.00    ,  860.00    ,  820.00    ,
+     $   800.00    ,  780.00    ,  760.00    ,  740.00    ,  740.00    ,
+     $   740.00    ,  730.00    ,  730.00    ,  720.00    ,  720.00    ,
+     $   720.00    ,  720.00    ,  730.00    ,  740.00    ,  750.00    ,
+     $   760.00    ,  800.00    ,  820.00    ,  820.00    ,  820.00    ,
+     $   820.00    ,  820.00    ,  820.00    ,  820.00    ,  820.00    ,
+     $   820.00    ,  820.00    ,  820.00    ,  820.00    ,  820.00    ,
+     $   820.00    /
+      DATA (CSPNIN( 3,J),J=1,41) /
+     $  0.00000E+00, 0.00000E+00,  500.00    ,  1450.0    ,  1700.0    ,
+     $   1800.0    ,  1750.0    ,  1730.0    ,  1720.0    ,  1710.0    ,
+     $   1700.0    ,  1690.0    ,  1660.0    ,  1630.0    ,  1630.0    ,
+     $   1630.0    ,  1600.0    ,  1600.0    ,  1580.0    ,  1580.0    ,
+     $   1580.0    ,  1580.0    ,  1600.0    ,  1630.0    ,  1650.0    ,
+     $   1670.0    ,  1760.0    ,  1800.0    ,  1800.0    ,  1800.0    ,
+     $   1800.0    ,  1800.0    ,  1800.0    ,  1800.0    ,  1800.0    ,
+     $   1800.0    ,  1800.0    ,  1800.0    ,  1800.0    ,  1800.0    ,
+     $   1800.0    /
+      DATA ELAB /
+     $  0.10000E-03, 0.20000E-03, 0.30000E-03, 0.40000E-03, 0.50000E-03,
+     $  0.70000E-03, 0.10000E-02, 0.20000E-02, 0.30000E-02, 0.40000E-02,
+     $  0.50000E-02, 0.70000E-02, 0.10000E-01, 0.15000E-01, 0.20000E-01,
+     $  0.25000E-01, 0.32700E-01/
+      DATA CNLWAT /
+     $   1.0000    ,  16.000    ,  27.000    ,  56.000    ,  59.000    ,
+     $   64.000    ,  91.000    ,  112.00    ,  119.00    ,  127.00    ,
+     $   137.00    ,  181.00    ,  207.00    ,  209.00    ,  238.00    /
+      DATA (CNLWEL( 1,J),J=1,17) /
+     $   6000.0    ,  5500.0    ,  5200.0    ,  4900.0    ,  4800.0    ,
+     $   4400.0    ,  4000.0    ,  2900.0    ,  2200.0    ,  1800.0    ,
+     $   1400.0    ,  1100.0    ,  900.00    ,  700.00    ,  600.00    ,
+     $   560.00    ,  520.00    /
+      DATA (CNLWEL( 2,J),J=1,17) /
+     $   5400.0    ,  5050.0    ,  4800.0    ,  4600.0    ,  4399.0    ,
+     $   4090.0    ,  3700.0    ,  2600.0    ,  1950.0    ,  1600.0    ,
+     $   1300.0    ,  900.00    ,  700.00    ,  800.00    ,  1050.0    ,
+     $   1250.0    ,  1320.0    /
+      DATA (CNLWEL( 3,J),J=1,17) /
+     $   5500.0    ,  5150.0    ,  4900.0    ,  4699.0    ,  4490.0    ,
+     $   4150.0    ,  3750.0    ,  2790.0    ,  2100.0    ,  1650.0    ,
+     $   1300.0    ,  950.00    ,  800.00    ,  860.00    ,  1000.0    ,
+     $   1090.0    ,  1080.0    /
+      DATA (CNLWEL( 4,J),J=1,17) /
+     $   5499.0    ,  4970.0    ,  4450.0    ,  4080.0    ,  3750.0    ,
+     $   3380.0    ,  2900.0    ,  2400.0    ,  2380.0    ,  2350.0    ,
+     $   2300.0    ,  2100.0    ,  1720.0    ,  1370.0    ,  1200.0    ,
+     $   1060.0    ,  870.00    /
+      DATA (CNLWEL( 5,J),J=1,17) /
+     $   5399.0    ,  4710.0    ,  4180.0    ,  3760.0    ,  3460.0    ,
+     $   3150.0    ,  2730.0    ,  2270.0    ,  1850.0    ,  1850.0    ,
+     $   2130.0    ,  2330.0    ,  2120.0    ,  1640.0    ,  1310.0    ,
+     $   1100.0    ,  1050.0    /
+      DATA (CNLWEL( 6,J),J=1,17) /
+     $   5099.0    ,  4405.0    ,  3825.0    ,  3455.0    ,  3125.0    ,
+     $   2695.0    ,  2350.0    ,  1850.0    ,  1580.0    ,  1820.0    ,
+     $   2050.0    ,  2210.0    ,  2000.0    ,  1590.0    ,  1310.0    ,
+     $   1120.0    ,  1040.0    /
+      DATA (CNLWEL( 7,J),J=1,17) /
+     $   6290.0    ,  5960.0    ,  5640.0    ,  5370.0    ,  5150.0    ,
+     $   4800.0    ,  4250.0    ,  3150.0    ,  2470.0    ,  2100.0    ,
+     $   2230.0    ,  2420.0    ,  2450.0    ,  2050.0    ,  1760.0    ,
+     $   1550.0    ,  1330.0    /
+      DATA (CNLWEL( 8,J),J=1,17) /
+     $   6885.0    ,  6650.0    ,  6350.0    ,  6150.0    ,  6000.0    ,
+     $   5700.0    ,  5360.0    ,  4250.0    ,  2800.0    ,  1870.0    ,
+     $   1810.0    ,  1820.0    ,  2170.0    ,  2450.0    ,  2150.0    ,
+     $   1700.0    ,  1390.0    /
+      DATA (CNLWEL( 9,J),J=1,17) /
+     $   6600.0    ,  6500.0    ,  6400.0    ,  6249.0    ,  6190.0    ,
+     $   5950.0    ,  5520.0    ,  4250.0    ,  2750.0    ,  1900.0    ,
+     $   1850.0    ,  1950.0    ,  2340.0    ,  2800.0    ,  2540.0    ,
+     $   2100.0    ,  1760.0    /
+      DATA (CNLWEL(10,J),J=1,17) /
+     $   7400.0    ,  7200.0    ,  6999.0    ,  6840.0    ,  6655.0    ,
+     $   6320.0    ,  5820.0    ,  4400.0    ,  2850.0    ,  2000.0    ,
+     $   1800.0    ,  1800.0    ,  2150.0    ,  2600.0    ,  2350.0    ,
+     $   1950.0    ,  2100.0    /
+      DATA (CNLWEL(11,J),J=1,17) /
+     $   7900.0    ,  7700.0    ,  7499.0    ,  7390.0    ,  7202.0    ,
+     $   6810.0    ,  6360.0    ,  4920.0    ,  3450.0    ,  2600.0    ,
+     $   2200.0    ,  1950.0    ,  2300.0    ,  2800.0    ,  2650.0    ,
+     $   2250.0    ,  2050.0    /
+      DATA (CNLWEL(12,J),J=1,17) /
+     $   7900.0    ,  7750.0    ,  7699.0    ,  7590.0    ,  7450.0    ,
+     $   7200.0    ,  6850.0    ,  5650.0    ,  4400.0    ,  3700.0    ,
+     $   3400.0    ,  2800.0    ,  2700.0    ,  3100.0    ,  3250.0    ,
+     $   3100.0    ,  2750.0    /
+      DATA (CNLWEL(13,J),J=1,17) /
+     $   6100.0    ,  5950.0    ,  5750.0    ,  5599.0    ,  5440.0    ,
+     $   5200.0    ,  4800.0    ,  4300.0    ,  5800.0    ,  5750.0    ,
+     $   4800.0    ,  3420.0    ,  2650.0    ,  3200.0    ,  3650.0    ,
+     $   3500.0    ,  2980.0    /
+      DATA (CNLWEL(14,J),J=1,17) /
+     $   6100.0    ,  5950.0    ,  5750.0    ,  5599.0    ,  5440.0    ,
+     $   5200.0    ,  4800.0    ,  4300.0    ,  5800.0    ,  5750.0    ,
+     $   4800.0    ,  3420.0    ,  2650.0    ,  3200.0    ,  3650.0    ,
+     $   3500.0    ,  2980.0    /
+      DATA (CNLWEL(15,J),J=1,17) /
+     $   6600.0    ,  6350.0    ,  6100.0    ,  5899.0    ,  5690.0    ,
+     $   5300.0    ,  4850.0    ,  4450.0    ,  5650.0    ,  5700.0    ,
+     $   4950.0    ,  3850.0    ,  3050.0    ,  3050.0    ,  3460.0    ,
+     $   3650.0    ,  3340.0    /
+      DATA (CNLWIN( 1,J),J=1,17) / 17*0.0E+00 /
+      DATA (CNLWIN( 2,J),J=1,17) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,  1.0000    ,
+     $   10.000    ,  50.000    ,  100.00    ,  200.00    ,  300.00    ,
+     $   400.00    ,  600.00    ,  700.00    ,  750.00    ,  700.00    ,
+     $   700.00    ,  680.00    /
+      DATA (CNLWIN( 3,J),J=1,17) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00,  1.0000    ,  10.000    ,
+     $   50.000    ,  100.00    ,  260.00    ,  450.00    ,  600.00    ,
+     $   700.00    ,  800.00    ,  900.00    ,  940.00    ,  900.00    ,
+     $   860.00    ,  820.00    /
+      DATA (CNLWIN( 4,J),J=1,17) /
+     $   1.0000    ,  80.000    ,  200.00    ,  320.00    ,  400.00    ,
+     $   520.00    ,  700.00    ,  1000.0    ,  1120.0    ,  1200.0    ,
+     $   1200.0    ,  1200.0    ,  1180.0    ,  1130.0    ,  1100.0    ,
+     $   1090.0    ,  1080.0    /
+      DATA (CNLWIN( 5,J),J=1,17) /
+     $   1.0000    ,  90.000    ,  220.00    ,  340.00    ,  420.00    ,
+     $   550.00    ,  720.00    ,  1080.0    ,  1300.0    ,  1400.0    ,
+     $   1420.0    ,  1420.0    ,  1380.0    ,  1260.0    ,  1190.0    ,
+     $   1150.0    ,  1100.0    /
+      DATA (CNLWIN( 6,J),J=1,17) /
+     $   1.0000    ,  95.000    ,  225.00    ,  345.00    ,  425.00    ,
+     $   555.00    ,  750.00    ,  1150.0    ,  1500.0    ,  1680.0    ,
+     $   1700.0    ,  1690.0    ,  1550.0    ,  1360.0    ,  1240.0    ,
+     $   1180.0    ,  1120.0    /
+      DATA (CNLWIN( 7,J),J=1,17) /
+     $   10.000    ,  140.00    ,  260.00    ,  380.00    ,  450.00    ,
+     $   600.00    ,  750.00    ,  1200.0    ,  1580.0    ,  1800.0    ,
+     $   1820.0    ,  1830.0    ,  1800.0    ,  1750.0    ,  1690.0    ,
+     $   1650.0    ,  1620.0    /
+      DATA (CNLWIN( 8,J),J=1,17) /
+     $   15.000    ,  150.00    ,  300.00    ,  400.00    ,  500.00    ,
+     $   650.00    ,  840.00    ,  1500.0    ,  2100.0    ,  2130.0    ,
+     $   2140.0    ,  2130.0    ,  2080.0    ,  2000.0    ,  1950.0    ,
+     $   1900.0    ,  1860.0    /
+      DATA (CNLWIN( 9,J),J=1,17) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00,  1.0000    ,  10.000    ,
+     $   150.00    ,  380.00    ,  1000.0    ,  1650.0    ,  2100.0    ,
+     $   2100.0    ,  2100.0    ,  2060.0    ,  1950.0    ,  1860.0    ,
+     $   1800.0    ,  1740.0    /
+      DATA (CNLWIN(10,J),J=1,17) /
+     $  0.00000E+00, 0.00000E+00,  1.0000    ,  10.000    ,  45.000    ,
+     $   180.00    ,  380.00    ,  1050.0    ,  1900.0    ,  2300.0    ,
+     $   2300.0    ,  2200.0    ,  2150.0    ,  2000.0    ,  1900.0    ,
+     $   1800.0    ,  1750.0    /
+      DATA (CNLWIN(11,J),J=1,17) /
+     $  0.00000E+00, 0.00000E+00,  1.0000    ,  10.000    ,  48.000    ,
+     $   190.00    ,  390.00    ,  1080.0    ,  2000.0    ,  2400.0    ,
+     $   2400.0    ,  2300.0    ,  2200.0    ,  2100.0    ,  1950.0    ,
+     $   1850.0    ,  1800.0    /
+      DATA (CNLWIN(12,J),J=1,17) /
+     $  0.00000E+00, 0.00000E+00,  1.0000    ,  10.000    ,  50.000    ,
+     $   200.00    ,  400.00    ,  1100.0    ,  2100.0    ,  2500.0    ,
+     $   2500.0    ,  2450.0    ,  2300.0    ,  2100.0    ,  2000.0    ,
+     $   1900.0    ,  1850.0    /
+      DATA (CNLWIN(13,J),J=1,17) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00,  1.0000    ,  10.000    ,
+     $   100.00    ,  350.00    ,  900.00    ,  1400.0    ,  2000.0    ,
+     $   2300.0    ,  2380.0    ,  2400.0    ,  2300.0    ,  2250.0    ,
+     $   2200.0    ,  2120.0    /
+      DATA (CNLWIN(14,J),J=1,17) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00,  1.0000    ,  10.000    ,
+     $   100.00    ,  350.00    ,  900.00    ,  1400.0    ,  2000.0    ,
+     $   2300.0    ,  2380.0    ,  2400.0    ,  2300.0    ,  2250.0    ,
+     $   2200.0    ,  2120.0    /
+      DATA (CNLWIN(15,J),J=1,17) /
+     $  0.00000E+00, 0.00000E+00, 0.00000E+00,  1.0000    ,  10.000    ,
+     $   100.00    ,  400.00    ,  950.00    ,  1600.0    ,  2200.0    ,
+     $   2550.0    ,  2750.0    ,  2700.0    ,  2600.0    ,  2540.0    ,
+     $   2450.0    ,  2360.0    /
+      DATA (CSCAP(J),J=1,50) /
+     $   6.0000    ,  5.7000    ,  5.5000    ,  5.3000    ,  5.2000    ,
+     $   5.1000    ,  5.0000    ,  4.9000    ,  4.8000    ,  4.8000    ,
+     $   4.8000    ,  4.8000    ,  4.8000    ,  4.8000    ,  4.8000    ,
+     $   4.8000    ,  4.9000    ,  5.0000    ,  5.2000    ,  5.5000    ,
+     $   6.0000    ,  6.7000    ,  7.5000    ,  8.5000    ,  10.000    ,
+     $   12.000    ,  14.500    ,  19.000    ,  26.500    ,  40.000    ,
+     $   75.000    ,  120.00    ,  180.00    ,  260.00    ,  360.00    ,
+     $   330.00    ,  60.000    ,  7.0000    ,  9.5000    ,  20.000    ,
+     $   75.000    ,  140.00    ,  250.00    ,  360.00    ,  480.00    ,
+     $   580.00    ,  590.00    ,  500.00    ,  300.00    ,  100.00    /
+      DATA (CSCAP(J),J=51,100) /
+     $   200.00    ,  300.00    ,  400.00    ,  470.00    ,  500.00    ,
+     $   430.00    ,  100.00    ,  20.000    ,  22.000    ,  40.000    ,
+     $   560.00    ,  950.00    ,  1000.0    ,  1000.0    ,  1000.0    ,
+     $   990.00    ,  920.00    ,  860.00    ,  790.00    ,  740.00    ,
+     $   650.00    ,  600.00    ,  540.00    ,  470.00    ,  440.00    ,
+     $   390.00    ,  360.00    ,  340.00    ,  320.00    ,  310.00    ,
+     $   280.00    ,  2.0000    ,  2.5000    ,  6.0000    ,  13.000    ,
+     $   38.000    ,  65.000    ,  140.00    ,  280.00    ,  300.00    ,
+     $   430.00    ,  580.00    ,  650.00    ,  800.00    ,  920.00    ,
+     $   1100.0    ,  1250.0    ,  1400.0    ,  1550.0    ,  1700.0    /
+C --- END OF CROSS SECTION DATA STATEMENTS ---
+ 
+C --- DATA STMTS. FOR GEANT/GHEISHA PARTICLE CODE CONVERSIONS ---
+C --- KIPART(I)=GHEISHA CODE CORRESPONDING TO GEANT   CODE I ---
+C --- IKPART(I)=GEANT   CODE CORRESPONDING TO GHEISHA CODE I ---
+ 
+      DATA KIPART/
+     $               1,   3,   4,   2,   5,   6,   8,   7,
+     $               9,  12,  10,  13,  16,  14,  15,  11,
+     $              35,  18,  20,  21,  22,  26,  27,  33,
+     $              17,  19,  23,  24,  25,  28,  29,  34,
+     $              35,  35,  35,  35,  35,  35,  35,  35,
+     $              35,  35,  35,  35,  30,  31,  32,  35/
+ 
+      DATA IKPART/
+     $               1,   4,   2,   3,   5,   6,   8,   7,
+     $               9,  11,  16,  10,  12,  14,  15,  13,
+     $              25,  18,  26,  19,  20,  21,  27,  28,
+     $              29,  22,  23,  30,  31,  45,  46,  47,
+     $              24,  32,  48/
+ 
+ 
+C     PARAMETER (ONETHR=1./3.)
+      DATA ONETHR   / .33333333/
+      DATA ALPHA    / 6*0.7,
+     +                0.75 ,0.75 ,0.75 ,
+     +                0.76,0.76 ,0.76 ,0.76 ,
+     +                0.685,0.63 ,0.685,0.63,0.685,0.63,
+     +                3*0.685,3*0.63,2*0.685,2*0.63,
+     +                3*0.7,0.685,0.63,0.7/
+      DATA ALPHAC    /1.2,1.2,1.2,1.15,0.90,0.91,0.98,1.06,1.10,1.11,
+     +                1.10,1.08,1.05,1.01,0.985,0.962,0.945,0.932,
+     +                0.925,0.920,0.920,0.921,0.922,0.923,0.928,0.931,
+     +                0.940,0.945,0.950,0.955,0.958,0.962,0.965,0.976,
+     +                0.982,0.988,0.992,1.010,1.020,1.030,1.040/
+      DATA PARTEL/6*0.,29*1./
+      DATA PARTIN/6*0.,1.00,0.00,1.05,1.20,1.35,1.30,1.20,1.00,1.30,
+     +            1.00,1.30,1.00,1.30,1.00,1.00,1.00,1.30,1.30,1.30,
+     +            1.00,1.00,1.30,1.30,1.00,1.,1.,1.,1.3,1./
+      DATA ICORR /14*1, 0, 1, 0, 1, 0, 3*1, 3*0, 2*1, 2*0, 4*1, 2*0/
+C--  SET INTRC TO 0 FOR IPART = 26-29, 33, 34  ( XI'S AND OMEGA'S )
+C-DH- DATA INTRC /6*0, 1, 0, 12*1, 0, 2*2, 0, 1, 4*0, 3*1, 3*0 /
+C--  RESET INTRC FOR IPART = 26-29, 33, 34  ( XI'S AND OMEGA'S )
+      DATA INTRC /6*0, 1, 0, 12*1, 0, 2*2, 0, 10*1, 0/
+ 
+C CROSS SECTIONS ON NUCLEUS ARE KNOWN ONLY FOR PIONS AND PROTONS.
+C THE GENERAL LAW SIGMA(A)=1.25*SIGMA(TOT,PROTON)*A**ALPHA IS VALID
+C ONLY FOR MOMENTA > 2 GEV.THE PARAMETRIZATION DONE HERE GIVES ONLY
+C A BEHAVIOUR AVERAGED OVER MOMENTA AND PARTICLE TYPES.
+C FOR A DETECTOR WITH ONLY A FEW MATERIALS IT'S OF COURSE MUCHBETTER
+C TO USE TABLES OF THE MEASURED CROSS SECTIONS .
+C FOR ELEMENTS WITH THE FOLLOWING ATOMIC NUMBERS MEASURED CROSS
+C SECTIONS ARE AVAILABLE (SEE "PCSDATA").
+ 
+C                 H   AL     CU     PB
+      DATA  CSA  /1. ,27.00 ,63.54 ,207.19 /
+      DATA IPART2/9,8,7,11,10,13,12/
+      SAVE ALPHA,ALPHAC,PARTEL,PARTIN,CSA,IPART2,ICORR,INTRC
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) THEN
+         WRITE(MDEBUG,*) 'CGHSIG:'
+         NPRT(4)=.TRUE.
+         NPRT(9)=.TRUE.
+      ENDIF
+ 
+C --- INITIALISE CGHSIG AND SWITCH TO GHEISHA PARTICLE CODE ---
+      CGHSIG=0.0
+      IF     ( LPART .LE.  48 ) THEN
+         IPART = KIPART(LPART)
+      ELSEIF ( LPART .EQ. 201 ) THEN
+         IPART = 30
+      ELSEIF ( LPART .EQ. 301 ) THEN
+         IPART = 31
+      ELSEIF ( LPART .EQ. 402 ) THEN
+         IPART = 32
+      ELSE
+         GOTO 160
+      ENDIF
+ 
+C --- NO INTERACTION FOR GAMMAS, NEUTRINOS, ELECTRONS, POSITRONS, MUONS,
+C --- NEUTRAL PIONS, NEUTRAL SIGMAS AND ANTISIGMAS AND NEW PARTICLES.
+      IF(INTRC(IPART).EQ. 0) GO TO 160
+      P=PPART
+      EK=EKIN
+ 
+C --- INITIALISE THE CROSS-SECTIONS WITH 0.0 ---
+      DO 10  K=1,KK
+         AIEL(K)=0.0
+         AIIN(K)=0.0
+         AICA(K)=0.0
+   10 CONTINUE
+C
+      IF     ((IPART .GE. 30) .AND. (IPART .LE. 32)) THEN
+ 
+C --- TAKE GEOMETRICAL CROSS SECTIONS FOR INELASTIC SCATTERING ---
+C --- OF DEUTERONS, TRITONS AND ALPHAS ---
+         IF     ( IPART .EQ. 30 ) THEN
+            APART=2.0**ONETHR
+         ELSEIF ( IPART .EQ. 31 ) THEN
+            APART=3.0**ONETHR
+         ELSEIF ( IPART .EQ. 32 ) THEN
+            APART=4.0**ONETHR
+         ENDIF
+         DO 20 K=1,KK
+            AIIN(K)=49.0*(APART+ACOMP(K)**ONETHR)**2
+   20    CONTINUE
+         IF (NPRT(9)) WRITE(MDEBUG,10000)
+ 
+      ELSEIF ((IPART .EQ. 16) .AND. (EK .LE. 0.0327)) THEN
+ 
+C --- USE TABLES FOR LOW ENERGY NEUTRONS ---
+C --- GET ENERGY BIN ---
+         JE2=17
+         DO 30 J=2,17
+            IF (EK .LT. ELAB(J)) THEN
+               JE2=J
+               GO TO 40
+            ENDIF
+   30    CONTINUE
+ 
+   40    JE1=JE2-1
+         EKX=MAX(EK,1.0E-9)
+         DELAB=ELAB(JE2)-ELAB(JE1)
+         DO 70 K=1,KK
+ 
+C --- GET A BIN ---
+            JA2=15
+            DO 50 J=2,15
+               IF (ACOMP(K) .LT. CNLWAT(J)) THEN
+                  JA2=J
+                  GO TO 60
+               ENDIF
+   50       CONTINUE
+ 
+   60       JA1=JA2-1
+            DNLWAT=CNLWAT(JA2)-CNLWAT(JA1)
+ 
+C --- USE LINEAR INTERPOLATION OR EXTRAPOLATION BY Y=RCE*X+RCA*X+B ---
+ 
+C --- ELASTIC CROSS SECTION ---
+C --- E INTERPOLATION OR EXTRAPOLATION AT JA1 ---
+            DY=CNLWEL(JA1,JE2)-CNLWEL(JA1,JE1)
+            RCE=DY/DELAB
+C --- A INTERPOLATION OR EXTRAPOLATION AT JE1 ---
+            DY=CNLWEL(JA2,JE1)-CNLWEL(JA1,JE1)
+            RCA=DY/DNLWAT
+            B=CNLWEL(JA1,JE1)-RCE*ELAB(JE1)-RCA*CNLWAT(JA1)
+            AIEL(K)=RCE*EK+RCA*ACOMP(K)+B
+ 
+C --- INELASTIC CROSS SECTION ---
+C --- E INTERPOLATION OR EXTRAPOLATION AT JA1 ---
+            DY=CNLWIN(JA1,JE2)-CNLWIN(JA1,JE1)
+            RCE=DY/DELAB
+C --- A INTERPOLATION OR EXTRAPOLATION AT JE1 ---
+            DY=CNLWIN(JA2,JE1)-CNLWIN(JA1,JE1)
+            RCA=DY/DNLWAT
+            B=CNLWIN(JA1,JE1)-RCE*ELAB(JE1)-RCA*CNLWAT(JA1)
+            AIIN(K)=RCE*EK+RCA*ACOMP(K)+B
+ 
+            IZNO=ZCOMP(K)+0.01
+            AICA(K)=11.12*CSCAP(IZNO)/(EKX*1.0E6)**0.577
+   70    CONTINUE
+         IF (NPRT(9)) WRITE(MDEBUG,10100)
+      ELSE
+ 
+C --- USE PARAMETRIZATION OF CROSS SECTION DATA FOR ALL OTHER CASES ---
+ 
+         IF (NPRT(9)) WRITE(MDEBUG,10200)
+ 
+C --- GET MOMENTUM BIN ---
+         J=40
+         DO 80 I=2,41
+            IF (P .LT. PLAB(I)) THEN
+               J=I-1
+               GO TO 90
+            ENDIF
+   80    CONTINUE
+ 
+C --- START WITH  CROSS SECTIONS FOR SCATTERING ON FREE PROTONS ---
+C --- USE LINEAR INTERPOLATION OR EXTRAPOLATION BY Y=RC*X+B     ---
+   90    DX=PLAB(J+1)-PLAB(J)
+C --- ELASTIC CROSS SECTION ---
+         DY=CSEL(IPART,J+1)-CSEL(IPART,J)
+         RC=DY/DX
+         B=CSEL(IPART,J)-RC*PLAB(J)
+         AIELIN=RC*P+B
+C --- INELASTIC CROSS SECTION ---
+         DY=CSIN(IPART,J+1)-CSIN(IPART,J)
+         RC=DY/DX
+         B=CSIN(IPART,J)-RC*PLAB(J)
+         AIININ=RC*P+B
+         ALPH=ALPHA(IPART)
+         IF(IPART.LT.14) THEN
+            DY=ALPHAC(J+1)-ALPHAC(J)
+            RC=DY/DX
+            B=ALPHAC(J)-RC*PLAB(J)
+            CORFAC=RC*P+B
+            ALPH=ALPH*CORFAC
+ 
+            IPART3=IPART2(IPART-6)
+ 
+C --- ELASTIC CROSS SECTION ---
+            DY=CSEL(IPART3,J+1)-CSEL(IPART3,J)
+            RC=DY/DX
+            B=CSEL(IPART3,J)-RC*PLAB(J)
+            XSECEL=RC*P+B
+C --- INELASTIC CROSS SECTION ---
+            DY=CSIN(IPART3,J+1)-CSIN(IPART3,J)
+            RC=DY/DX
+            B=CSIN(IPART3,J)-RC*PLAB(J)
+            XSECIN=RC*P+B
+ 
+         ENDIF
+ 
+         DO 100 K=1,KK
+            AIEL(K)=AIELIN
+            AIIN(K)=AIININ
+ 
+            IF (ACOMP(K) .GE. 1.5) THEN
+ 
+C --- A-DEPENDENCE FROM PARAMETRIZATION ---
+               CREL=1.0
+               CRIN=1.0
+C --- GET MEDIUM BIN  1=HYDR.  2=AL  3=CU  4=PB ---
+               I=3
+               IF (ACOMP(K) .LT. 50.0) I=2
+               IF (ACOMP(K) .GT. 100.0) I=4
+               IF     ((IPART .EQ. 14) .OR. (IPART .EQ. 16)) THEN
+ 
+C --- PROTONS AND NEUTRONS ---
+ 
+C --- ELASTIC CROSS SECTION ---
+                  DY=CSPNEL(I-1,J+1)-CSPNEL(I-1,J)
+                  RC=DY/DX
+                  B=CSPNEL(I-1,J)-RC*PLAB(J)
+                  XSECEL=RC*P+B
+C --- INELASTIC CROSS SECTION ---
+                  DY=CSPNIN(I-1,J+1)-CSPNIN(I-1,J)
+                  RC=DY/DX
+                  B=CSPNIN(I-1,J)-RC*PLAB(J)
+                  XSECIN=RC*P+B
+                  IF (AIEL(K) .GE. 0.001) CREL=XSECEL/(0.36*AIEL(K)*
+     +            CSA(I)**1.17)
+                  AITOT=AIEL(K)+AIIN(K)
+                  IF (AITOT .GE. 0.001) CRIN=XSECIN/(AITOT*CSA(I)**
+     +            ALPH)
+ 
+               ELSEIF (IPART .LT. 15) THEN
+ 
+C --- CALCULATE CORRECTION FACTORS FROM VALUES ON AL,CU,PB FOR ALL ---
+C --- MESONS USE LINEAR INTERPOLATION OR EXTRAPOLATION BY Y=RC*X+B ---
+C --- NOTE THAT DATA IS ONLY AVAILABLE FOR PIONS AND PROTONS
+                  WGCH=0.5
+               IF (ACOMP(K) .LT. 20.0) WGCH=0.5+0.5*EXP(-(ACOMP(K)-1.0))
+                  AIEL(K)=WGCH*AIEL(K)+(1.0-WGCH)*XSECEL
+                  AIIN(K)=WGCH*AIIN(K)+(1.0-WGCH)*XSECIN
+ 
+C --- THIS SECTION NOT FOR KAONS ---
+                  IF (IPART .LT. 10) THEN
+ 
+C --- ELASTIC CROSS SECTION ---
+                     DY=CSPIEL(I-1,J+1)-CSPIEL(I-1,J)
+                     RC=DY/DX
+                     B=CSPIEL(I-1,J)-RC*PLAB(J)
+                     XSPIEL=RC*P+B
+C --- INELASTIC CROSS SECTION ---
+                     DY=CSPIIN(I-1,J+1)-CSPIIN(I-1,J)
+                     RC=DY/DX
+                     B=CSPIIN(I-1,J)-RC*PLAB(J)
+                     XSPIIN=RC*P+B
+ 
+                     IF (AIEL(K) .GE. 0.001) CREL=XSPIEL/(0.36* AIEL(K)
+     +               *CSA(I)**1.17)
+                     AITOT=AIEL(K)+AIIN(K)
+                     IF (AITOT .GE. 0.001) CRIN=XSPIIN/(AITOT*CSA(I)
+     +               **ALPH)
+                  ENDIF
+               ENDIF
+               AIIN(K)=CRIN*(AIIN(K)+AIEL(K))*ACOMP(K)**ALPH
+               AIEL(K)=CREL*0.36*AIEL(K)*ACOMP(K)**1.17
+               AIEL(K)=AIEL(K)*PARTEL(IPART)
+               AIIN(K)=AIIN(K)*PARTIN(IPART)
+            ENDIF
+  100    CONTINUE
+ 
+      ENDIF
+ 
+C --- CALCULATE INTERACTION PROBABILITY ---
+ 
+      ALAM=0.0
+      DO 150 K=1,KK
+         AIEL(K) = AIEL(K)*WCOMP(K)
+         AIIN(K) = AIIN(K)*WCOMP(K)
+         AICA(K) = AICA(K)*WCOMP(K)
+         ALAM = ALAM + AIEL(K) + AIIN(K) + AICA(K)
+  150 CONTINUE
+ 
+C --- PASS THE CROSS SECTION (MBARN) TO CORSIKA ---
+      CGHSIG=ALAM
+ 
+      GO TO 999
+ 
+C --- PRINTOUT OF SKIPPED PARTICLES IN CASE OF INTERFACE DEBUG ---
+  160 IF (NPRT(9)) WRITE(MDEBUG,10300) IPART
+10000 FORMAT(' *CGHSIG* GEOM X-SECT. FOR INEL. SCAT. OF D,T AND ALPHA')
+10100 FORMAT(' *CGHSIG* X-SECT. FROM LOW ENERGY NEUTRON TABLES')
+10200 FORMAT(' *CGHSIG* X-SECT. FROM PARAMETRIZATION OF DATA')
+10300 FORMAT(' *CGHSIG* GHEISHA PARTICLE ',I3,' SKIPPED')
+  999 RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/chisq.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/chisq.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/chisq.f	(revision 4308)
@@ -0,0 +1,85 @@
+      DOUBLE PRECISION FUNCTION CHISQ(F)
+ 
+C-----------------------------------------------------------------------
+C  CHI SQ(UARE)
+C
+C  THIS FUNCTION CALCULATES THE CHI**2 OBTAINED WITH THE FITFUNCTION
+C  AMOEBA USING THE PARAMETER SET F
+C    F(1) = HEIGHT AT MAXIMUM
+C    F(2) = SHOWER STARTING POINT
+C    F(3) = T AT MAXIMUM
+C    F(4) = WIDTH PARAMETER 1
+C    F(5) = WIDTH PARAMETER 2 T
+C    F(6) = WIDTH PARAMETER 3 T**2
+C  THIS FUNCTION IS CALLED FROM LONGFT AND FROM AMOEBA
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CURVE.
+      COMMON /CURVE/   CHAPAR,DEP,ERR,NSTP
+      DOUBLE PRECISION CHAPAR(1100),DEP(1100),ERR(1100)
+      INTEGER          NSTP
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION AUXIL,BALL,BASE,EXPO,F(6),T
+      INTEGER          I
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'CHISQ : PARAMETERS =',F
+ 
+C  EXCLUDE PATHOLOGICAL PARAMETER SETTINGS
+      IF ( F(1) .LE. 0.D0  .OR.  F(2) .GE. F(3)  .OR.
+     *    (F(4).EQ.0.D0 .AND. F(5).EQ.0.D0 .AND. F(6).EQ.0.D0) ) THEN
+        CHISQ = 1.D16
+        RETURN
+      ENDIF
+ 
+      CHISQ = 0.D0
+C  LOOP OVER THE LONGITUDINAL DISTRIBUTION
+      DO 1 I=1,NSTP
+        T = DEP(I)
+        IF ( T .GT. F(2) ) THEN
+          BASE  = (T-F(2)) / (F(3)-F(2))
+          AUXIL = F(4) + T*F(5) + T**2*F(6)
+          IF ( AUXIL .LT. 1.D-20 ) THEN
+            CHISQ = CHISQ + 1.D16
+            GOTO 1
+          ENDIF
+          EXPO  = (F(3)-T) / AUXIL
+CC        IF(DEBUG)WRITE(MDEBUG,*)'CHISQ : I,BASE,EXPO=',I,
+CC   *                            SNGL(BASE),SNGL(EXPO)
+          BALL = F(1) * BASE ** EXPO
+        ELSE
+          BALL = 0.D0
+        ENDIF
+        CHISQ = CHISQ + ((BALL-CHAPAR(I))/ERR(I))**2
+ 1    CONTINUE
+      CHISQ = CHISQ / (NSTP-6)
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'CHISQ : CHI**2 =',SNGL(CHISQ)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/compt.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/compt.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/compt.f	(revision 4308)
@@ -0,0 +1,129 @@
+      SUBROUTINE COMPT
+C                                VERSION 4.00  --  26 JAN 1986/1900
+C******************************************************************
+C   BUTCHER AND MESSEL'S CROSS SECTION EXPRESSION IS USED
+C   (BUTCHER AND MESSEL, OP.CIT., P. 17-19,25), BUT THE
+C   1/EPSILON PART IS NOT SAMPLED IN THE WAY THAT THEY DO.
+C   THIS ROUTINE CALLS THEIR 'EPSILON' VARIABLE BY THE NAME 'BR'.
+C   BR=FINAL PHOTON ENERGY /INITIAL PHOTON ENERGY.
+C   BR0 = MINIMUM BR = 1./(1.+2.*(E(NP)/RM))
+C   MAXIMUM BR IS 1.
+C   BUTCHER AND MESSEL'S EXPRESSION FOR THE DIFFERENTIAL CROSS
+C   SECTION IS PROPORTIONAL TO
+C        (1./BR+BR)*(1.-BR*SINTHE**2/(1.+BR*BR))
+C   WE SHALL SAMPLE FROM THE FIRST FACTOR FROM THE INTERVAL (BR0,1)
+C   AND USE THE SECOND FACTOR AS A REJECTION FUNCTION.
+C******************************************************************
+      DOUBLE PRECISION PEIG,PESG,PESE
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/THRESH/RMT2,RMSQ,ESCD2,AP,API,AE,UP,UE,TE,THMOLL
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' COMPT: NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      PEIG=E(NP)
+      EIG=PEIG
+      EGP=EIG*RMI
+      BR0I=1.+2.*EGP
+      BR0=1./BR0I
+      ALPH1=LOG(BR0I)
+      ALPH2=EGP*(BR0I+1.)*BR0*BR0
+      SUMALP = ALPH1+ALPH2
+371   CONTINUE
+       CALL RMMAR(RNNO15,1,2)
+       IF (ALPH1.GE.SUMALP*RNNO15) THEN
+        CALL RMMAR(RNNO16,1,2)
+        BR=EXP(ALPH1*RNNO16)*BR0
+       ELSE
+        CALL RMMAR(RD,2,2)
+        BRP=RD(1)
+        RNNO18=RD(2)
+        IF (EGP.GE.(EGP+1.)*RNNO18) THEN
+         CALL RMMAR(RNNO19,1,2)
+         BRP=MAX(BRP,RNNO19)
+        END IF
+        BR=((BR0I-1.)*BRP+1.)*BR0
+       END IF
+       ESG=BR*EIG
+       A1MIBR = 1.-BR
+       TEMP=RM*A1MIBR/ESG
+       SINTHE=MAX(0.0,TEMP*(2.0-TEMP))
+       CALL RMMAR(RNNO20,1,2)
+       IF(((1.0-RNNO20)*(1.0+BR*BR).GE.BR*SINTHE))GO TO372
+      GO TO 371
+372   CONTINUE
+      SINTHE=SQRT(SINTHE)
+      COSTHE=1.0-TEMP
+      PESG=ESG
+      PESE=PEIG-PESG+PRM
+      ESE=PESE
+      CALL UPHI(2,1)
+      NP=NP+1
+      PSQ=ESE*ESE-RMSQ
+      IF (PSQ.LE.0.0) THEN
+       COSTHE=0.
+       SINTHE=-1.
+      ELSE
+       COSTHE=(ESE+ESG)*A1MIBR/SQRT(PSQ)
+       SINTHE=-SQRT(MAX(0.0,1.0-COSTHE*COSTHE))
+      END IF
+      CALL UPHI(3,2)
+      IF (ESE.LE.ESG) THEN
+       IQ(NP)=3
+       E(NP)=PESE
+       E(NP-1)=PESG
+      ELSE
+       IQ(NP)=1
+       IQ(NP-1)=3
+       E(NP)=PESG
+       E(NP-1)=PESE
+       T=U(NP)
+       U(NP)=U(NP-1)
+       U(NP-1)=T
+       T=V(NP)
+       V(NP)=V(NP-1)
+       V(NP-1)=T
+       T=W(NP)
+       W(NP)=W(NP-1)
+       W(NP-1)=T
+      END IF
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/coorin.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/coorin.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/coorin.f	(revision 4308)
@@ -0,0 +1,67 @@
+      SUBROUTINE COORIN( HEIGHT )
+ 
+C-----------------------------------------------------------------------
+C  COOR(DINATE) IN(ITIALIZATION)
+C
+C  INITIALIZES COORDINATE CORRECTION FOR EACH OBSERVATION LEVEL
+C  ROUTINE SHOULD BE CALLED AFTER HEIGHT OF FIRST INTERACTION IS
+C  DETERMINED. X,Y COORDINATES OF 1. INERACTION ARE ASSUMED TO BE 0,0.
+C  THIS SUBROUTINE IS CALLED FROM MAIN, ELECTR, AND PHOTON
+C  ARGUMENT:
+C   HEIGHT = HEIGHT OF 1. INTERACTION
+C
+C  AUTHOR  : J. KNAPP   IK1  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION DXY,HEIGHT,TANTE
+      INTEGER          I
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'COORIN: HEIGHT,THETA,PHI =',
+     *                     SNGL(HEIGHT),SNGL(THETAP),SNGL(PHIP)
+ 
+      TANTE = TAN( THETAP )
+      DO  1  I = 1,NOBSLV
+        DXY     = TANTE * ( HEIGHT - OBSLEV(I) )
+        XOFF(I) = COS( PHIP ) * DXY
+        YOFF(I) = SIN( PHIP ) * DXY
+    1 CONTINUE
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,100)
+     *                    (OBSLEV(I),XOFF(I),YOFF(I),I=1,NOBSLV)
+  100 FORMAT(' COORIN: OBSLVL,XOFF,YOFF= ',1P,3E12.4)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/datac.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/datac.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/datac.f	(revision 4308)
@@ -0,0 +1,1073 @@
+      SUBROUTINE DATAC
+ 
+C-----------------------------------------------------------------------
+C  DATA C(ARDS)
+C
+C  READS DATA CARDS FROM UNIT 5 TO STEER RUN.
+C  READING IS FREE FORMAT WITH BLANK AS SEPARATOR.
+C  EACH KEYWORD STARTS ON A NEW LINE LEFTSHIFTED.
+C  THIS SUBROUTINE IS CALLED FROM START
+C
+C  AUTHOR  : J. KNAPP   IK1  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+c      IMPLICIT NONE
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c All this lines are under test
+c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+      parameter (xct=1)
+      parameter (yct=2)
+      parameter (zct=3)
+      parameter (ctthet=4)
+      parameter (ctphi=5)
+      parameter (ctdiam=6)
+      parameter (ctfoc=7)
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+*KEEP,DPMFLG.
+      COMMON /DPMFLG/  NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+      INTEGER          NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEEP,ETHMAP.
+      COMMON /ETHMAP/  ECTMAP,ELEFT
+      DOUBLE PRECISION ECTMAP,ELEFT
+*KEEP,LONGI.
+      COMMON /LONGI/   APLONG,HLONG,PLONG,SPLONG,THSTEP,THSTPI,
+     *                 NSTEP,LLONGI,FLGFIT
+      DOUBLE PRECISION APLONG(0:1040,9),HLONG(0:1024),PLONG(0:1040,9),
+     *                 SPLONG(0:1040,9),THSTEP,THSTPI
+      INTEGER          NSTEP
+      LOGICAL          LLONGI,FLGFIT
+*KEEP,MAGANG.
+      COMMON /MAGANG/  ARRANG,ARRANR,COSANG,SINANG
+      DOUBLE PRECISION ARRANG,ARRANR,COSANG,SINANG
+*KEEP,MAGNET.
+      COMMON /MAGNET/  BX,BZ,BVAL,BNORMC,BNORM,COSB,SINB,BLIMIT
+      DOUBLE PRECISION BX,BZ,BVAL,BNORMC
+      REAL             BNORM,COSB,SINB,BLIMIT
+*KEEP,MUMULT.
+      COMMON /MUMULT/  CHC,OMC,FMOLI
+      DOUBLE PRECISION CHC,OMC
+      LOGICAL          FMOLI
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,NKGI.
+      COMMON /NKGI/    SEL,SELLG,STH,ZEL,ZELLG,ZSL,DIST,
+     *                 DISX,DISY,DISXY,DISYX,DLAX,DLAY,DLAXY,DLAYX,
+     *                 OBSATI,RADNKG,RMOL,TLEV,TLEVCM,IALT
+      DOUBLE PRECISION SEL(10),SELLG(10),STH(10),ZEL(10),ZELLG(10),
+     *                 ZSL(10),DIST(10),
+     *                 DISX(-10:10),DISY(-10:10),
+     *                 DISXY(-10:10,2),DISYX(-10:10,2),
+     *                 DLAX (-10:10,2),DLAY (-10:10,2),
+     *                 DLAXY(-10:10,2),DLAYX(-10:10,2),
+     *                 OBSATI(2),RADNKG,RMOL(2),TLEV(10),TLEVCM(10)
+      INTEGER          IALT(2)
+*KEEP,PRIMSP.
+      COMMON /PRIMSP/  PSLOPE,LLIMIT,ULIMIT,LL,UL,SLEX,ISPEC
+      DOUBLE PRECISION PSLOPE,LLIMIT,ULIMIT,LL,UL,SLEX
+      INTEGER          ISPEC
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,REJECT.
+      COMMON /REJECT/  AVNREJ,
+     *                 ALTMIN,ANEXP,THICKA,THICKD,CUTLN,EONCUT,
+     *                 FNPRIM
+      DOUBLE PRECISION AVNREJ(10)
+      REAL             ALTMIN(10),ANEXP(10),THICKA(10),THICKD(10),
+     *                 CUTLN,EONCUT
+      LOGICAL          FNPRIM
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,VENPAR.
+      COMMON /VENPAR/  PARVAL,NPARAM,PARCHA
+      REAL             PARVAL(100)
+      INTEGER          NPARAM
+      CHARACTER*6      PARCHA(100)
+*KEEP,VENUS.
+      COMMON /VENUS/   ISH0,IVERVN,MTAR99,FVENUS,FVENSG
+      INTEGER          ISH0,IVERVN,MTAR99
+      LOGICAL          FVENUS,FVENSG
+*KEEP,CEREN1.
+      COMMON /CEREN1/  CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD,
+     *                 CERSIZ,LCERFI
+      DOUBLE PRECISION CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD
+      REAL             CERSIZ
+      LOGICAL          LCERFI
+*KEEP,CEREN2.
+      COMMON /CEREN2/  PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS,CERYOS,
+     *                 NCERX,NCERY,ICERML
+      REAL             PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS(20),CERYOS(20)
+      INTEGER          NCERX,NCERY,ICERML
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c All this lines are under test
+c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+*keep,certel.
+      common /certel/  cormxd,cord,coralp,ctpars,omega,
+     +                 photn,photnp,phpt,pht,vphot,
+     +                 vchi,veta,vzeta,vchim,vetam,vzetam,
+     +                 lambda,mu,nu,nctels,ncph
+      double precision cormxd,cord,coralp,ctpars(20,7),omega(20,3,3),
+     +                 photn(3),photnp(3),phpt(3),pht,vphot(3),
+     +                 vchi(3),veta(3),vzeta(3),vchim,vetam,vzetam,
+     +                 lambda,mu,nu
+      integer          nctels,ncph(5)
+      double precision xg,yg,zg,xgp,ygp,zgp,up,vp,wp,xpcut,ypcut,zpcut
+      equivalence (photn(1) ,xg)   ,(photn(2) ,yg)   ,(photn(3) ,zg)  ,
+     +            (photnp(1),xgp)  ,(photnp(2),ygp)  ,(photnp(3),zgp),
+     +            (phpt(1)  ,xpcut),(phpt(2)  ,ypcut),(phpt(3)  ,zpcut),
+     +            (vphot(1) ,up)   ,(vphot(2) ,vp)   ,(vphot(3) ,wp)    
+      character *72 ctfile
+
+      character *6  keyw
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c     Angles for the "spinning" of a particle around the 
+c     main axis of the CT
+      common /spinang/ spinxi
+      double precision spinxi
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+*KEND.
+ 
+      DOUBLE PRECISION R1,R2
+      INTEGER          I,IE,IOBSLV,IS,ISEQ,MMM,MONNEW,NNTYP
+      INTEGER          IPARAM
+      CHARACTER        LINE*80, CFMTF*7, CFMTI*5, CFMTL*4
+      DATA             CFMTF/'(F10.0)'/, CFMTI/'(I11)'/, CFMTL/'(L1)'/
+C-----------------------------------------------------------------------
+ 
+C  WRITE TITEL
+      WRITE(MONIOU,999)
+ 999  FORMAT(' ',10('='),' USERS RUN DIRECTIVES FOR THIS SIMULATION ',
+     *    27('=')/)
+ 
+C  DEFAULT VALUES FOR ALL RUN PARAMETERS
+      ISEQ = 0
+      NSEQ = 2
+      ISEED(1,1) = 1
+      ISEED(2,1) = 0
+      ISEED(3,1) = 0
+      ISEED(1,2) = 2
+      ISEED(2,2) = 0
+      ISEED(3,2) = 0
+      ISEED(1,3) = 3
+      ISEED(2,3) = 0
+      ISEED(3,3) = 0
+      NRRUN     = 1
+      SHOWNO    = 0
+      LLIMIT    = 1.D4
+      ULIMIT    = 1.D4
+      PSLOPE    = 0.D0
+      PRMPAR(1) = 14.D0
+      THETPR(1) = 0.D0
+      THETPR(2) = 0.D0
+      PHIPR(1)  = 0.D0
+      PHIPR(2)  = 0.D0
+      NSHOW     = 10
+      IOBSLV    = 0
+      NOBSLV    = 1
+      OBSLEV(1) = 110.D2
+      ELCUT(1)  = 0.3D0
+      ELCUT(2)  = 0.3D0
+      ELCUT(3)  = 0.003D0
+      ELCUT(4)  = 0.003D0
+      ECTMAP  = 1.D4
+      NFLAIN  = 0
+      NFLDIF  = 0
+      NFLPI0  = 0
+      NFLPIF  = 0
+      NFLCHE  = 0
+      NFRAGM  = 0
+      FNKG    = .TRUE.
+      FMOLI   = .TRUE.
+      FMUADD  = .FALSE.
+      FEGS    = .FALSE.
+      STEPFC  = 10.
+      MAXPRT  = 10
+      BX      = 20.D0
+      BZ      = 42.8D0
+      ARRANG  =  0.D0
+      LLONGI  = .FALSE.
+      FLGFIT  = .FALSE.
+      THSTEP  = 20.D0
+      RADNKG  = 200.D2
+C  BORDER BETWEEN LOW AND HIGH ENERGY INTERACTION MODELS
+C  SET BY DEFAULT TO ELAB = 80 GEV
+      HILOELB = 80.D0
+      GHEISH  = .TRUE.
+      FDBASE  = .TRUE.
+      DEBUG   = .FALSE.
+      DEBDEL  = .FALSE.
+      NDEBDL  = 100000000
+      THICK0  = 0.D0
+      FIX1I   = .FALSE.
+      FIXHEI  = 0.D0
+      DSN     =
+     *'ANYNAMEUPTO64CHARACTERS                                         '
+      HOST    = '                    '
+      USER    = '                    '
+      WAVLGL  = 300.D0
+      WAVLGU  = 450.D0
+      CERSIZ  = 0.
+      NCERX   = 27
+      NCERY   = 27
+      DCERX   = 1500.
+      DCERY   = 1500.
+      ACERX   = 100.
+      ACERY   = 100.
+      LCERFI  = .TRUE.
+      ICERML  = 1
+      XSCATT  = 0.
+      YSCATT  = 0.
+      DO  554  I = 1,20
+        CERXOS(I) = 0.
+        CERYOS(I) = 0.
+ 554  CONTINUE
+      FVENUS  =.TRUE.
+      ISH0    = 91
+      IPARAM  = 0
+      NPARAM  = 0
+      DO  555  I = 1,100
+        PARVAL(I) = 0.
+ 555  CONTINUE
+      FVENSG  =.FALSE.
+ 
+C-----------------------------------------------------------------------
+C  OPEN DATASET FOR COMMANDS
+      IF ( MONIIN .NE. 5 ) THEN
+        OPEN(UNIT=MONIIN,FILE='INPUTS',STATUS='OLD',FORM='FORMATTED')
+        WRITE(MONIOU,*) 'DATA CARDS FOR RUN STEERING ARE ',
+     *                  'EXPECTED FROM UNIT',MONIIN
+      ELSE
+        WRITE(MONIOU,*) 'DATA CARDS FOR RUN STEERING ARE ',
+     *                  'EXPECTED FROM STANDARD INPUT'
+      ENDIF
+ 
+C-----------------------------------------------------------------------
+ 1    CONTINUE
+ 
+C  ERASE 'LINE' BY FILLING WITH BLANKS
+      DO 2 I=1,80
+        LINE(I:I) = ' '
+ 2    CONTINUE
+ 
+C  GET A NEW INPUT LINE AND PRINT IT
+      READ(MONIIN,500,END=1000) LINE
+ 500  FORMAT(A80)
+      IF (DEBUG) THEN
+        WRITE(MDEBUG,501) LINE
+ 501    FORMAT(' DATAC : ',A80)
+      ELSE
+        WRITE(MONIOU,502) LINE
+ 502    FORMAT(' ',A80)
+      ENDIF
+ 
+C  CONVERT LOWER CASE CHARACTERS TO UPPER CASE
+      DO 3 I=1,5
+        CALL LOWUP(LINE(I:I))
+ 3    CONTINUE
+      IF ( LINE(1:4).NE.'HOST' .AND. LINE(1:4).NE.'USER' ) THEN
+        CALL LOWUP(LINE(6:6))
+        IF ( LINE(1:6).NE.'DIRECT' .AND. LINE(1:6).NE.'HISTDS' ) THEN
+          DO 4 I=7,80
+            CALL LOWUP(LINE(I:I))
+ 4        CONTINUE
+        ENDIF
+      ENDIF
+ 
+C-----------------------------------------------------------------------
+C  INTERPRET KEYWORD AND READ PARAMETERS
+ 
+C  DUMMY LINE (MAY BE USED FOR COMMENTS) NO ACTION
+      IF     ( LINE(1:6) .EQ. '      ' ) THEN
+      ELSEIF ( LINE(1:1) .EQ. '*'      ) THEN
+      ELSEIF ( LINE(1:2) .EQ. 'C '     ) THEN
+ 
+C  GET ANGLE (DEGREES) BETWEEN ARRAY X-DIRCTION AND MAGNETIC NORD
+      ELSEIF ( LINE(1:6) .EQ. 'ARRANG' ) THEN
+        IS = 6
+ 11     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 11
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) ARRANG
+ 
+C  GET CERENKOV ARRAY SPECIFICATIONS
+      ELSEIF ( LINE(1:6) .EQ. 'CERARY' ) THEN
+        IS = 6
+ 21     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 21
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) NCERX
+        IS = IE
+ 22     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 22
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) NCERY
+        IS = IE
+ 23     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 23
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) DCERX
+        IS = IE
+ 24     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 24
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) DCERY
+        IS = IE
+ 25     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 25
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) ACERX
+        IS = IE
+ 26     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 26
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) ACERY
+ 
+C  GET CERENKOV OUTPUT FLAG
+      ELSEIF ( LINE(1:6) .EQ. 'CERFIL' ) THEN
+        IS = 6
+ 31     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 31
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTL(3:3),'(I1)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTL) LCERFI
+ 
+C  GET MAXIMUM BUNCH SIZE FOR CERENKOV PHOTONS
+      ELSEIF ( LINE(1:6) .EQ. 'CERSIZ' ) THEN
+        IS = 6
+ 36     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 36
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) CERSIZ
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C  get maximum "xi" angle, respecto to the CT direction
+      ELSEIF ( LINE(1:3) .EQ. 'XIP' ) THEN
+        IS = 3
+ 41     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 41
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) spinxi
+ 
+C  GET CERENKOV EVENT SCATTERING INFORMATION
+      ELSEIF ( LINE(1:5) .EQ. 'CSCAT' ) THEN
+        IS = 5
+ 43     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 43
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) ICERML
+        IS = IE
+ 44     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 44
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) XSCATT
+        IS = IE
+ 45     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 45
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) YSCATT
+ 
+C  GET CERENKOV WAVELENGTH BAND
+      ELSEIF ( LINE(1:6) .EQ. 'CWAVLG' ) THEN
+        IS = 6
+ 46     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 46
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) R1
+        IS = IE
+ 47     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 47
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) R2
+        WAVLGL = MIN( R1, R2 )
+        WAVLGU = MAX( R1, R2 )
+ 
+C  GET DATABASE FLAG
+      ELSEIF ( LINE(1:6) .EQ. 'DATBAS' ) THEN
+        IS = 6
+ 50     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 50
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTL(3:3),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTL) FDBASE
+ 
+C  GET DEBUG FLAG AND DELAYED DEBUG PARAMETERS
+      ELSEIF ( LINE(1:5) .EQ. 'DEBUG' ) THEN
+        IS = 5
+ 51     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 51
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTL(3:3),'(I1)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTL) DEBUG
+        IS = IE
+ 52     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 52
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) MMM
+        IS = IE
+ 53     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 53
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTL(3:3),'(I1)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTL) DEBDEL
+        IS = IE
+ 54     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 54
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) NDEBDL
+        IF ( MMM .LE. 0  .OR.  MMM .GT. 99 ) THEN
+          MDEBUG = 6
+        ELSE
+          MDEBUG = MMM
+        ENDIF
+ 
+C  GET OUTPUT DIRECTORY FOR CALCULATIONS ON DEC-STATION OR TRANSPUTER
+      ELSEIF ( LINE(1:6) .EQ. 'DIRECT' ) THEN
+        DO 70 I=1,79
+          DSN(I:I) = ' '
+ 70     CONTINUE
+        IS = 6
+        IF ( LINE(IS+1:80) .NE. ' ' ) THEN
+ 71       CONTINUE
+          IS = IS + 1
+          IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 71
+          IE = INDEX(LINE(IS:),' ') + IS - 2
+          IF ( IE-IS .GT. 63 ) THEN
+            IE = IS + 63
+            DSN(1:IE-IS+1) = LINE(IS:IE)
+            WRITE(MONIOU,*)
+     *        'DATAC: DATASETNAME TOO LONG AND TRUNCATED TO:',DSN(1:64)
+          ELSE
+            DSN(1:IE-IS+1) = LINE(IS:IE)
+          ENDIF
+        ENDIF
+ 
+C  GET ENERGY CUTS FOR PARTICLE PRINTOUT
+      ELSEIF ( LINE(1:6) .EQ. 'ECTMAP' ) THEN
+        IS = 6
+ 81     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 81
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) ECTMAP
+ 
+C  GET ENERGY CUTS FOR HADRONS, MUONS, ELECTRONS, AND PHOTONS
+      ELSEIF ( LINE(1:5) .EQ. 'ECUTS' ) THEN
+        IS = 5
+ 91     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 91
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) ELCUT(1)
+        IS = IE
+ 92     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 92
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) ELCUT(2)
+        IS = IE
+ 93     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 93
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) ELCUT(3)
+        IS = IE
+ 94     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 94
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) ELCUT(4)
+ 
+C  GET FLAGS FOR ELECTROMAGNETIC OPTIONS (NKG, EGS)
+      ELSEIF ( LINE(1:6) .EQ. 'ELMFLG' ) THEN
+        IS = 6
+201     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 201
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTL(3:3),'(I1)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTL) FNKG
+        IS = IE
+202     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 202
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTL(3:3),'(I1)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTL) FEGS
+ 
+C  GET ENERGY RANGE OF PRIMARY PARTICLE
+      ELSEIF ( LINE(1:6) .EQ. 'ERANGE' ) THEN
+        IS = 6
+211     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 211
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) R1
+        IS = IE
+212     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 212
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) R2
+        LLIMIT = MIN( R1, R2 )
+        ULIMIT = MAX( R1, R2 )
+ 
+C  GET SLOPE OF ENERGY SPECTRUM OF PRIMARY PARTICLE
+      ELSEIF ( LINE(1:6) .EQ. 'ESLOPE' ) THEN
+        IS = 6
+221     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 221
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) PSLOPE
+ 
+C  GET EVENT NUMBER
+      ELSEIF ( LINE(1:5) .EQ. 'EVTNR' ) THEN
+        IS = 5
+231     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 231
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) SHOWNO
+        SHOWNO = MAX( SHOWNO-1, 0 )
+ 
+C  END OF DATA CARD INPUT
+      ELSEIF ( LINE(1:4) .EQ. 'EXIT' ) THEN
+        IF ( DEBUG ) THEN
+          WRITE(MONIOU,*) 'DATAC : END OF DATACARD INPUT'
+        ELSE
+          WRITE(MONIOU,*)
+          WRITE(MONIOU,*) 'END OF DATACARD INPUT'
+        ENDIF
+        RETURN
+ 
+C  GET FIXED HEIGHT (G/CM**2) OF PARTICLE START
+      ELSEIF ( LINE(1:6) .EQ. 'FIXCHI' ) THEN
+        IS = 6
+241     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 241
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) THICK0
+ 
+C  GET FIXED HEIGHT OF FIRST INTERACTION AND FIRST TARGET
+      ELSEIF ( LINE(1:6) .EQ. 'FIXHEI' ) THEN
+        IS = 6
+251     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 251
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) FIXHEI
+        IS = IE
+252     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 252
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) N1STTR
+        IF ( FIXHEI .GT. 0. ) FIX1I = .TRUE.
+ 
+C  GET FLAG FOR GHEISHA LOW ENERGY HADRONIC INTERACTION MODEL
+      ELSEIF ( LINE(1:6) .EQ. 'GHEISH' ) THEN
+        IS = 6
+261     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 261
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTL(3:3),'(I1)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTL) GHEISH
+ 
+C  GET FLAGS FOR HADRON INTERACTION OPTIONS
+      ELSEIF ( LINE(1:6) .EQ. 'HADFLG' ) THEN
+        IS = 6
+271     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 271
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) NFLAIN
+        IS = IE
+272     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 272
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) NFLDIF
+        IS = IE
+273     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 273
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) NFLPI0
+        IS = IE
+274     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 274
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) NFLPIF
+        IS = IE
+275     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 275
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) NFLCHE
+        IS = IE
+276     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 276
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) NFRAGM
+ 
+C  GET NAME OF HOST COMPUTER
+      ELSEIF ( LINE(1:4) .EQ. 'HOST' ) THEN
+        DO 286 I=1,20
+          HOST(I:I) = ' '
+ 286    CONTINUE
+        IS = 4
+ 287    CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 287
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        IF ( IE-IS .GT. 19 ) THEN
+          IE = IS + 19
+          HOST(1:IE-IS+1) = LINE(IS:IE)
+          WRITE(MONIOU,*)
+     *        'DATAC: HOSTNAME TOO LONG AND TRUNCATED TO:',HOST(1:20)
+        ELSE
+          HOST(1:IE-IS+1) = LINE(IS:IE)
+        ENDIF
+ 
+C  GET PARAMETER FOR LONGITUDINAL DEVELOPMENT
+      ELSEIF ( LINE(1:5) .EQ. 'LONGI' ) THEN
+        IS = 5
+301     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 301
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTL(3:3),'(I1)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTL) LLONGI
+        IS = IE
+302     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 302
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) THSTEP
+        IS = IE
+303     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 303
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTL(3:3),'(I1)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTL) FLGFIT
+ 
+C  GET PARAMETERS OF MAGNETIC FIELD
+      ELSEIF ( LINE(1:6) .EQ. 'MAGNET' ) THEN
+        IS = 6
+311     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 311
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) BX
+        IS = IE
+312     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 312
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) BZ
+ 
+C  GET NUMBER OF EVENTS TO BE PRINTED
+      ELSEIF ( LINE(1:6) .EQ. 'MAXPRT' ) THEN
+        IS = 6
+321     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 321
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) MAXPRT
+        IF ( MAXPRT .LT. 0 ) MAXPRT = 10
+ 
+C  GET FLAG FOR ADDITIONAL MUON INFORMATION ON PATAPE
+      ELSEIF ( LINE(1:6) .EQ. 'MUADDI' ) THEN
+        IS = 6
+331     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 331
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTL(3:3),'(I1)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTL) FMUADD
+ 
+C  GET FLAG FOR MUON MULTIPLE SCATTERING (T=MOLIERE, F=GAUSS)
+      ELSEIF ( LINE(1:6) .EQ. 'MUMULT' ) THEN
+        IS = 6
+336     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 336
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTL(3:3),'(I1)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTL) FMOLI
+ 
+C  GET NUMBER OF SHOWERS TO BE PRODUCED
+      ELSEIF ( LINE(1:5) .EQ. 'NSHOW' ) THEN
+        IS = 5
+341     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 341
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) NSHOW
+        IF ( NSHOW .LE. 0 ) NSHOW = 1
+ 
+C  GET HEIGHT OF OBSERVATION LEVELS
+      ELSEIF ( LINE(1:6) .EQ. 'OBSLEV' ) THEN
+        IOBSLV = IOBSLV + 1
+        IF ( IOBSLV .LE. 10 )  THEN
+          IS = 6
+351       CONTINUE
+          IS = IS + 1
+          IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 351
+          IE = INDEX(LINE(IS:),' ') + IS - 2
+          WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+          READ(LINE(IS:IE),CFMTF) OBSLEV(IOBSLV)
+          NOBSLV = IOBSLV
+        ELSE
+          WRITE(MONIOU,*) 'DATAC : TOO MUCH OBSERVATION LEVELS,',
+     *                    ' IGNORE IT'
+        ENDIF
+ 
+C  GET NEW MONITOR OUTPUT UNIT
+      ELSEIF ( LINE(1:6) .EQ. 'OUTPUT' ) THEN
+        IS = 6
+361     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 361
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) MONNEW
+        WRITE(MONIOU,593) MONIOU,MONNEW
+ 593    FORMAT(' ATTENTION'/' ========='/
+     *         ' PRINTER OUTPUT REDIRECTED FROM UNIT ',I3,
+     *         ' TO UNIT ',I3)
+        MONIOU = MONNEW
+ 
+C  GET PHI OF PRIMARY PARTICLE
+      ELSEIF ( LINE(1:4) .EQ. 'PHIP' ) THEN
+        IS = 4
+371     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 371
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) R1
+        IS = IE
+372     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 372
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) R2
+        PHIPR(1) = MIN( R1, R2 )
+        PHIPR(2) = MAX( R1, R2 )
+ 
+C  GET TYPE OF PRIMARY PARTICLE
+      ELSEIF ( LINE(1:6) .EQ. 'PRMPAR' ) THEN
+        IS = 6
+381     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 381
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) NNTYP
+        PRMPAR(1) = NNTYP
+ 
+C  GET WIDTH OF NKG LATERAL DISTRIBUTION
+      ELSEIF ( LINE(1:6) .EQ. 'RADNKG' ) THEN
+        IS = 6
+389     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 389
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) RADNKG
+ 
+C  GET RUN NUMBER
+      ELSEIF ( LINE(1:5) .EQ. 'RUNNR' ) THEN
+        IS = 5
+391     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 391
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) NRRUN
+        NRRUN = ABS(NRRUN)
+ 
+C  GET SEEDS OF RANDOM NUMBER SEQUENCES
+      ELSEIF ( LINE(1:4) .EQ. 'SEED' ) THEN
+        ISEQ = ISEQ + 1
+        IF ( ISEQ .LE. 10 )  THEN
+          IS = 4
+401       CONTINUE
+          IS = IS + 1
+          IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 401
+          IE = INDEX(LINE(IS:),' ') + IS - 2
+          WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+          READ(LINE(IS:IE),CFMTI) ISEED(1,ISEQ)
+          IS = IE
+402       CONTINUE
+          IS = IS + 1
+          IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 402
+          IE = INDEX(LINE(IS:),' ') + IS - 2
+          WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+          READ(LINE(IS:IE),CFMTI) ISEED(2,ISEQ)
+          IS = IE
+403       CONTINUE
+          IS = IS + 1
+          IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 403
+          IE = INDEX(LINE(IS:),' ') + IS - 2
+          WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+          READ(LINE(IS:IE),CFMTI) ISEED(3,ISEQ)
+          NSEQ = ISEQ
+        ELSE
+          WRITE(MONIOU,*) 'DATAC : TOO MUCH RANDOM GENERATOR SEEDS,',
+     *                    ' IGNORE IT'
+        ENDIF
+ 
+C  GET FACTOR FOR ELECTRON'S MULTIPLE SCATTERING LENGTH
+      ELSEIF ( LINE(1:6) .EQ. 'STEPFC' ) THEN
+        IS = 6
+406     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 406
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) STEPFC
+ 
+C  GET THETA OF PRIMARY PARTICLE
+      ELSEIF ( LINE(1:6) .EQ. 'THETAP' ) THEN
+        IS = 6
+411     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 411
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) R1
+        IS = IE
+412     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 412
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTF) R2
+        THETPR(1) = MIN( R1, R2 ) 
+        THETPR(2) = MAX( R1, R2 )
+ 
+C  GET NAME OF USER
+      ELSEIF ( LINE(1:4) .EQ. 'USER' ) THEN
+        DO 416 I=1,20
+          USER(I:I) = ' '
+416     CONTINUE
+        IS = 4
+417     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 417
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        IF ( IE-IS .GT. 19 ) THEN
+          IE = IS + 19
+          USER(1:IE-IS+1) = LINE(IS:IE)
+          WRITE(MONIOU,*)
+     *        'DATAC: USERNAME TOO LONG AND TRUNCATED TO:',USER(1:20)
+        ELSE
+          USER(1:IE-IS+1) = LINE(IS:IE)
+        ENDIF
+ 
+C  GET PARAMETER ISH0 FOR AMOUNT OF VENUS DEBUG
+      ELSEIF ( LINE(1:6) .EQ. 'VENDBG' ) THEN
+        IS = 6
+421     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 421
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTI(3:4),'(I2)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTI) ISH0
+ 
+C  GET VENUS PARAMETER WITH CODE WORD AND VALUE
+      ELSEIF ( LINE(1:6) .EQ. 'VENPAR' ) THEN
+        IPARAM = IPARAM + 1
+        IF ( IPARAM .LE. 100 ) THEN
+          PARCHA(IPARAM) = '      '
+          IS = 6
+431       CONTINUE
+          IS = IS + 1
+          IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 431
+          IE = INDEX(LINE(IS:),' ') + IS - 2
+          IF ( IE-IS .GT. 5 ) THEN
+            WRITE(MONIOU,*)
+     *        'DATAC: VENUS PARAMETER NAME TOO LONG AND IGNORED'
+            GOTO 1
+          ELSE
+            PARCHA(IPARAM) = LINE(IS:IE)
+          ENDIF
+          IS = IE
+432       CONTINUE
+          IS = IS + 1
+          IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 432
+          IE = INDEX(LINE(IS:),' ') + IS - 2
+          WRITE(CFMTF(3:4),'(I2)') IE - IS + 1
+          READ(LINE(IS:IE),CFMTF) PARVAL(IPARAM)
+          NPARAM = IPARAM
+        ELSE
+          WRITE(MONIOU,*) 'DATAC : TOO MUCH VENUS PARAMETERS,',
+     *                    ' IGNORE IT'
+        ENDIF
+ 
+C  GET FLAG FOR VENUS HIGH ENERGY HADRONIC INTERACTION MODEL
+      ELSEIF ( LINE(1:5) .EQ. 'VENUS' ) THEN
+        IS = 5
+441     CONTINUE
+        IS = IS + 1
+        IF ( LINE(IS:IS) .EQ. ' ' ) GOTO 441
+        IE = INDEX(LINE(IS:),' ') + IS - 2
+        WRITE(CFMTL(3:3),'(I1)') IE - IS + 1
+        READ(LINE(IS:IE),CFMTL) FVENUS
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
+c  get cerenkov file name with cts array specifications
+      elseif ( LINE(1:6) .eq. 'CERTEL' ) then
+        read(line(7:),'(I10)') nctels
+        d2r = 3.1415926535897932385/180.0
+        do 10 nct=1,nctels
+          read(moniin,*) (ctpars(nct,m),m=1,7)
+          ct = cos(ctpars(nct,ctthet)*d2r)
+          st = sin(ctpars(nct,ctthet)*d2r)
+          cp = cos(ctpars(nct,ctphi)*d2r)
+          sp = sin(ctpars(nct,ctphi)*d2r)
+          omega(nct,1,1) = cp
+          omega(nct,1,2) = sp 
+          omega(nct,1,3) = 0.0
+          omega(nct,2,1) = -ct*sp 
+          omega(nct,2,2) = ct*cp 
+          omega(nct,2,3) = st 
+          omega(nct,3,1) = st*sp 
+          omega(nct,3,2) = -st*cp 
+          omega(nct,3,3) = ct 
+c          write(moniou,*) nct,(ctpars(nct,m),m=1,7)
+ 10     continue
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
+
+C  ILLEGAL KEYWORD
+      ELSE
+        WRITE(MONIOU,*) 'DATAC : UNKNOWN KEYWORD :',(LINE(I:I),I=1,6)
+      ENDIF
+ 
+      GOTO 1
+ 
+C-----------------------------------------------------------------------
+ 1000 CONTINUE
+      IF ( DEBUG ) THEN
+        WRITE(MDEBUG,*) 'DATAC : NO MORE DIRECTIVES FOUND'
+      ELSE
+        WRITE(MONIOU,*) '*** NO MORE DIRECTIVES FOUND ***'
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/decay1.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/decay1.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/decay1.f	(revision 4308)
@@ -0,0 +1,124 @@
+      SUBROUTINE DECAY1( M0,M3,M4 )
+ 
+C-----------------------------------------------------------------------
+C  DECAY (INTO TWO PARTICLES)
+C
+C  TWO PARTICLE DECAY WITH FULL KINEMATIC; ENERGY AND MOMENTA CONSERVED
+C  THIS SUBROUTINE IS CALLED FROM KDECAY, RESDEC, AND STRDEC
+C  ARGUMENTS:
+C   M0     = TYPE OF DECAYING PARTICLE
+C   M3     = TYPE OF FIRST PRODUCT PARTICLE
+C   M4     = TYPE OF SECOND PRODUCT PARTICLE
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION AUX1,AUX2,AUX2A,AUX3,AUX4,COSTCM,COSTH3,COSTH4,
+     *                 GAMMA3,GAMMA4,PHI4,WORK1,WORK2
+      INTEGER          I,M0,M3,M4
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) BETA,M0,M3,M4
+  444 FORMAT(' DECAY1: BETA,M0,M3,M4=',1P,E10.3,3I5)
+ 
+C  PARTICLE COORDINATES 5..10 ARE COPIED INTO SECPAR IN CALLING PROGRAM
+C  CALCULATE AUXILIARY QUANTITIES
+      AUX1   = ( ( PAMA(M0)**2 + PAMA(M3)**2 - PAMA(M4)**2 )
+     *            / (2.D0*PAMA(M0)) )**2  - PAMA(M3)**2
+      AUX2   = 1.D0 + AUX1 / PAMA(M3)**2
+      AUX2A  = SQRT(AUX2)
+      AUX3   = SQRT( 1.D0 - 1.D0 / AUX2 )
+ 
+      WORK1  = GAMMA * AUX2A
+      WORK2  = AUX3 * BETA * WORK1
+ 
+C  DETERMINE POLAR ANGLE IN CM SYSTEM
+      CALL RMMAR( RD,2,1 )
+      COSTCM = 2.D0 * RD(1) - 1.D0
+      GAMMA3 = WORK1 + WORK2 * COSTCM
+C  SECOND PRODUCT PARTICLE WITH NONVANISHING REST MASS
+      IF ( PAMA(M4) .NE. 0.D0 ) THEN
+        GAMMA4 = (PAMA(M0)*GAMMA - PAMA(M3)*GAMMA3) / PAMA(M4)
+        AUX4   = (PAMA(M0)**2 + PAMA(M4)**2 - PAMA(M3)**2 )
+     *            / (2.D0*PAMA(M0)*PAMA(M4))
+        COSTH4 = MIN( 1.D0, (GAMMA*GAMMA4 - AUX4)
+     *                     / (BETA * GAMMA * SQRT(GAMMA4**2 - 1.D0)) )
+      ELSE
+C  SECOND PRODUCT PARTICLE IS GAMMA; THEN GAMMA4 IS THE ENERGY
+        GAMMA4 = PAMA(M0)*GAMMA - PAMA(M3)*GAMMA3
+        COSTH4 = MIN( 1.D0, (BETA - COSTCM)/(1.D0 - BETA*COSTCM) )
+      ENDIF
+      PHI4 = RD(2)*PI2
+      CALL ADDANG( COSTHE,PHI, COSTH4,PHI4, SECPAR(3),SECPAR(4) )
+      IF ( SECPAR(3) .GT. C(29) ) THEN
+        SECPAR(1) = M4
+        SECPAR(2) = GAMMA4
+        IF ( DEBUG ) WRITE(MDEBUG,445) (SECPAR(I),I=1,9)
+  445   FORMAT(' DECAY1: SECPAR=',1P,9E10.3)
+        CALL TSTACK
+      ENDIF
+C  FIRST PRODUCT PARTICLE
+      COSTH3 = MIN( 1.D0, (GAMMA * GAMMA3 - AUX2A)
+     *                   / (BETA * GAMMA * SQRT(GAMMA3**2 - 1.D0)) )
+      CALL ADDANG( COSTHE,PHI, COSTH3,PHI4+PI, SECPAR(3),SECPAR(4) )
+      IF ( SECPAR(3) .GT. C(29) ) THEN
+        SECPAR(1) = M3
+        SECPAR(2) = GAMMA3
+        IF ( DEBUG ) WRITE(MDEBUG,445) (SECPAR(I),I=1,9)
+        CALL TSTACK
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/decay6.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/decay6.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/decay6.f	(revision 4308)
@@ -0,0 +1,306 @@
+      SUBROUTINE DECAY6(AM0,AM3,AM4,AM5,PARAMA,PARAMB,PARAMC,AMPMX,MODE)
+ 
+C-----------------------------------------------------------------------
+C  DECAY (INTO 3 PARTICLES)
+C
+C  TREATES DECAY INTO 3 PARTICLES; FULLY CONSERVING ENERGY AND MOMENTA
+C  KINEMATIC RANGE PARAMETRISATION SEE PHYS. LETT. 204B (1988) 90-91
+C  FOR LEPTONIC KAON DACAY: THE POLARIZATION OF THE MUON AND
+C  THE NEUTRINO PRODUCTION IS INCLUDED.
+C  THIS SUBROUTINE IS CALLED FROM ETADEC, KDECAY, AND PI0DEC
+C  ARGUMENTS:
+C   AM0    = MASS OF DECAYING PARTICLE
+C   AM3, AM4, AM5 = MASSES OF RESULTING PARTICLES
+C   PARAMA = DALITZ AMPLITUDE PARAMETER (SEE BELOW)
+C   PARAMB = DALITZ AMPLITUDE PARAMETER (SEE BELOW)
+C   PARAMC = DALITZ AMPLITUDE PARAMETER (SEE BELOW)
+C   AMPMX  = MAXIMUM AMPLITUDE OF DALITZ PLOT
+C   MODE   = 1  FOR DECAY KAON  ----> 3 PIONS
+C          = 2  FOR DECAY ETA   ----> 3 PIONS OR 2 PIONS + GAMMA
+C               FOR DECAY PI(0) ----> ELECTRON + POSITRON + GAMMA
+C          = 3  FOR DECAY KAON  ----> PION + MUON + NEUTRINO
+C          = 4  FOR DECAY KAON  ----> PION + ELECTRON + NEUTRINO
+C
+C  AMPLITUDE PARAMETERS PARAMA, PARAMB, PARAMC ARE DEPENDENT ON MODE:
+C  FOR MODE=1: PARAMA = G      DALITZ AMPLITUDE PARAMETRISATION SEE
+C              PARAMB = H      PHYS. LETT. 204B (1988) 181 - 193
+C              PARAMC = K
+C
+C  FOR MODE=2: PARAMA = A      DALITZ AMPLITUDE PARAMETRISATION SEE
+C              PARAMB = DUMMY  PHYS. LETT. 204B (1988) 173 - 175;
+C              PARAMC = DUMMY  J.G. LAYTER ET.AL. PHYS.REV.D7(1973)2565
+C
+C  FOR MODE>2: PARAMA = LAMBDA-PLUS    DALITZ AMPLITUDE PARAMETRISATION
+C              PARAMB = LAMBDA-ZERO    SEE PHYS. LETT. 204B (1988)
+C              PARAMC = DUMMY          182 - 194
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,DECAY.
+      COMMON /DECAY/   GAM345,COS345,PHI345
+      DOUBLE PRECISION GAM345(3),COS345(3),PHI345(3)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,POLAR.
+      COMMON /POLAR/   POLART,POLARF
+      DOUBLE PRECISION POLART,POLARF
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION ABYM,AMPLI,AMPMX,AM0,AM3,AM34I,AM34SQ,AM35SQ,
+     *                 AM4,AM5,APARAL,APERPN,AUXA,AUXB,AUX1,AUX2,AUX2A,
+     *                 AUX3,AUX4,AUX4A,AUX5,AUX6,
+     *                 AUX7,AUX8,AUX10,AUX12,AUX14,BBYM,BOFQ,
+     *                 CM0SQ,CM3SQ,CM3SQI,CM4SQ,CM5SQ,COSALF,COSBET,
+     *                 COSFI4,COSOME,COSPHI,COSPSI,COS3CM,COS4CM,COS5CM,
+     *                 DISCR,EPIPRM,E3CM,E3STAR,E4CM,E5CM,E5STAR,FACT,
+     *                 GRLAMD,OMEGA,PA,PARAMA,PARAMB,PARAMC,PB,PC,PSI,
+     *                 P3CM,P3SQ,P4CM,P4SQ,P5CM,P5SQ,ROOT1,ROOT2,
+     *                 SINALF,SINBET,SINFI4,SINFI5,SINOMG,SINPHI,SINPSI,
+     *                 SINT4,SINT4I,SINT5I,SIN3CM,S0,TBYMSS,XIT,XI0
+      INTEGER          MODE
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) AM0,AM3,AM4,AM5
+  444 FORMAT(' DECAY6: AM0',1P,E10.3,' AM3',E10.3,' AM4',E10.3,
+     *       ' AM5',E10.3)
+ 
+C  CALCULATE AUXILIARY QUANTITIES
+      CM0SQ = AM0**2
+      CM3SQ = AM3**2
+      CM4SQ = AM4**2
+      CM5SQ = AM5**2
+      AUX1  = (AM3 + AM4)**2
+      AUX2A = (AM0 - AM5)**2
+      AUX2  = AUX2A - AUX1
+      AUX3  = (AM3 + AM5)**2
+      AUX4A = (AM0 - AM4)**2
+      AUX4  = AUX4A - AUX3
+      AUX5  = CM3SQ - CM4SQ
+      AUX6  = CM0SQ - CM5SQ
+      AUX7  = 0.5D0 / AM0
+      IF     ( MODE .EQ. 1 ) THEN
+        AUX8   = (AM0 - AM3)**2
+        S0     = OB3 * ( CM0SQ + CM3SQ + CM4SQ + CM5SQ )
+        AUX10  = 1.D0 / PAMA(8)**2
+      ELSEIF ( MODE .EQ. 2 ) THEN
+        AUX14  = 1.D0 / (AM0 - AM3 - AM4 - AM5)
+      ELSEIF ( MODE .EQ. 3  .OR.  MODE .EQ. 4 ) THEN
+        CM3SQI = 1.D0 / CM3SQ
+        AUX12  = (CM0SQ + CM3SQ - CM4SQ) * AUX7
+C  XI0 IS XI(0); GRLAMD IS GREAT LAMBDA
+        XI0    = ( CM0SQ - CM3SQ) * CM3SQI * (PARAMB - PARAMA)
+        GRLAMD = -XI0 * PARAMA
+      ELSE
+        WRITE(MONIOU,*) 'DECAY6: UNEXPECTED MODE =',MODE
+        RETURN
+      ENDIF
+ 
+ 100  CALL RMMAR( RD,3,1 )
+C  ARE INVARIANT MASS SQUARES INSIDE BOUNDARY OF DALITZ PLOT?
+      AM34SQ = AUX2 * RD(1) + AUX1
+      AM35SQ = AUX4 * RD(2) + AUX3
+      AM34I  = 0.5D0 / SQRT(AM34SQ)
+      E3STAR = (AUX5 + AM34SQ) * AM34I
+      E5STAR = (AUX6 - AM34SQ) * AM34I
+      ROOT1  = SQRT(E3STAR**2 - CM3SQ )
+      ROOT2  = SQRT(E5STAR**2 - CM5SQ )
+      DISCR  = AM35SQ - (E3STAR + E5STAR)**2
+C  REJECT RANDOM NUMBERS, IF OUTSIDE KINEMATIC BOUNDARY OF DALITZ PLOT
+      IF ( DISCR .GT. -(ROOT1 - ROOT2)**2 ) GOTO 100
+      IF ( DISCR .LT. -(ROOT1 + ROOT2)**2 ) GOTO 100
+C  E3CM, E4CM, E5CM ARE ENERGIES IN THE C. M. SYSTEM
+      E4CM   = (CM0SQ + CM4SQ - AM35SQ) * AUX7
+      E5CM   = (CM0SQ + CM5SQ - AM34SQ) * AUX7
+      E3CM   = AM0 - E4CM - E5CM
+ 
+      IF     ( MODE .EQ. 1 ) THEN
+        FACT  = AUX10 * (AUX2A - 2.D0*AM0*(E5CM-AM5) - S0)
+C  AMPLITUDE OF SQUARED MATRIX ELEMENT (SEE PHYS. LETT. B204 (1988) 181)
+        AMPLI = 1.D0 + PARAMA*FACT + PARAMB*FACT**2 + PARAMC*( AUX10
+     *           * ( AUX4A -AUX8 -2.D0*(E4CM-AM4-E3CM+AM3)*AM0 ) )**2
+ 
+      ELSEIF ( MODE .EQ. 2 ) THEN
+C  AMPLITUDE OF SQUARED MATRIX ELEMENT (SEE PHYS. LETT. B204 (1988) 173)
+C  REF: J. G. LAYTER ET AL., PHYS. REV. D7 (1973) 2565
+        AMPLI = 1.D0 + PARAMA * ( 3.D0 * (E5CM - AM5) * AUX14 - 1.D0 )
+ 
+      ELSE
+C  EPIPRM IS (ENERGY OF PION)PRIMED
+        EPIPRM = AUX12 - E3CM
+C  PA, PB, AND PC ARE THE A, B, AND C PARAMETERS
+        PA     = AM0 * ( 2.D0 * E4CM * E5CM - AM0 * EPIPRM )
+     *            + CM4SQ * ( 0.25D0 * EPIPRM - E5CM )
+        PB     = CM4SQ * ( E5CM - 0.5D0 * EPIPRM )
+        PC     = CM4SQ * EPIPRM * 0.25D0
+C  TBYMSS IS T DIVIDED BY MASS SQUARE OF PION
+        TBYMSS = (CM0SQ + CM3SQ - 2.D0 * AM0 * E3CM) * CM3SQI
+C  XIT IS XI(T)
+        XIT   = XI0 + GRLAMD*TBYMSS
+C  AMPLITUDE OF SQUARED MATRIX ELEMENT (PHYS. LETT. B204 (1988) 183)
+        AMPLI = (1.D0 + PARAMA*TBYMSS)**2 * ( PA + XIT*PB + XIT**2 *PC )
+      ENDIF
+ 
+C  REJECT RANDOM NUMBERS, IF RD(3) IS LARGER THAN DALITZ PLOT AMPLITUDE
+      IF ( RD(3)*AMPMX .GT. AMPLI ) GOTO 100
+ 
+      IF (DEBUG) WRITE(MDEBUG,*)'DECAY6: E3CM,E4CM,E5CM=',
+     *   SNGL(E3CM),SNGL(E4CM),SNGL(E5CM)
+C  P3CM, P4CM, P5CM ARE MOMENTA IN THE C.M. SYSTEM
+C  P3SQ, P4SQ, P5SQ ARE SQUARED MOMENTA IN C.M. SYSTEM
+      P5SQ   = E5CM**2 - CM5SQ
+      P5CM   = SQRT(P5SQ)
+      P4SQ   = E4CM**2 - CM4SQ
+      P4CM   = SQRT(P4SQ)
+      P3SQ   = E3CM**2 - CM3SQ
+      P3CM   = SQRT(P3SQ)
+C  ANGLE ALFA AND BETA ARE BETWEEN PARTICLE 3 AND 4 RSP. 3 AND 5
+      COSALF = (P5SQ - P3SQ - P4SQ) / (2.D0 * P3CM * P4CM)
+      SINALF = -SQRT(1.D0 - COSALF**2)
+      COSBET = (P4SQ - P3SQ - P5SQ) / (2.D0 * P3CM * P5CM)
+      SINBET = SQRT(1.D0 - COSBET**2)
+C  NOW SELECT RANDOM NUMBERS FOR THREE INDEPENDENT ANGLES IN CM-SYSTEM
+C  COS3CM AND PHI ARE ANGLES OF PARTICLE 3 RELATIVE TO DECAYING PARTICLE
+      CALL RMMAR( RD,3,1 )
+      COS3CM = 2.D0*RD(1) - 1.D0
+      SIN3CM = SQRT(1.D0 - COS3CM**2)
+      PHI345(1) = PI2 * RD(2)
+      COSPHI = COS( PHI345(1) )
+      SINPHI = SIN( PHI345(1) )
+C  ANGLE PSI GIVES ROTATION OF PLANE (3,4,5) RELATIVE TO PLANE (1,3)
+      PSI    = PI2 * RD(3)
+      COSPSI = COS(PSI)
+      SINPSI = SIN(PSI)
+C  CALCULATE ALL NEEDED POLAR AND AZIMUTHAL ANGLES IN THE CM-SYSTEM
+      COS4CM = COS3CM * COSALF - SIN3CM * COSPSI * SINALF
+      IF ( ABS(COS4CM) .LT. 1.D0 ) THEN
+         SINT4     = SQRT(1.D0 - COS4CM**2)
+         SINT4I    = 1.D0 / SINT4
+         AUXA      = COS3CM * COSPSI * SINALF + SIN3CM * COSALF
+         COSFI4    = (COSPHI*AUXA-SINPHI*SINPSI*SINALF) * SINT4I
+         PHI345(2) = ACOS( MAX( -1.D0, MIN( 1.D0, COSFI4 ) ) )
+         SINFI4    = (SINPHI*AUXA+COSPHI*SINPSI*SINALF) * SINT4I
+         IF ( SINFI4 .LE. 0.D0 ) PHI345(2) = PI2 - PHI345(2)
+      ELSE
+         PHI345(2) = 0.D0
+      ENDIF
+C  CALCULATE GAMMA FACTORS AND POLAR ANGLES IN LABORATORY SYSTEM
+      GAM345(1) = GAMMA * (E3CM + BETA * P3CM * COS3CM) / AM3
+      COS345(1) = MIN( 1.D0, (BETA * E3CM + P3CM * COS3CM) * GAMMA
+     *                      / ( AM3 * SQRT(GAM345(1)**2 - 1.D0) ) )
+      GAM345(2) = GAMMA * (E4CM + BETA * P4CM * COS4CM) / AM4
+      COS345(2) = MIN( 1.D0, (BETA * E4CM + P4CM * COS4CM) * GAMMA
+     *                       / ( AM4 * SQRT(GAM345(2)**2 - 1.D0) ) )
+C  CALCULATE PARAMETERS OF PARTICLE 5, IF NEEDED
+      IF ( MODE .LE. 2 ) THEN
+        COS5CM      = COS3CM * COSBET - SIN3CM * COSPSI * SINBET
+        IF ( ABS(COS5CM) .LT. 1.D0 ) THEN
+          SINT5I    = 1.D0 / SQRT(1.D0 - COS5CM**2)
+          AUXB      = COS3CM * COSPSI * SINBET + SIN3CM * COSBET
+          PHI345(3) = ACOS((COSPHI*AUXB-SINPHI*SINPSI*SINBET) * SINT5I)
+          SINFI5    =      (SINPHI*AUXB+COSPHI*SINPSI*SINBET) * SINT5I
+          IF ( SINFI5 .LE. 0.D0 ) PHI345(3) = PI2 - PHI345(3)
+        ELSE
+          PHI345(3) = 0.D0
+        ENDIF
+        IF ( AM5 .NE. 0.D0 ) THEN
+          GAM345(3) = GAMMA * (E5CM + BETA * P5CM * COS5CM) / AM5
+          COS345(3) = MIN( 1.D0, (BETA * E5CM + P5CM * COS5CM) * GAMMA
+     *                           / ( AM5 * SQRT(GAM345(3)**2 - 1.D0) ) )
+        ELSE
+C  IF PARTICLE 5 IS GAMMA RAY OR NEUTRINO, THEN GAM345(3) IS THE ENERGY
+          GAM345(3) = GAMMA * (E5CM + BETA * P5CM * COS5CM)
+          COS345(3) = MIN( 1.D0, (BETA * E5CM + P5CM * COS5CM) * GAMMA
+     *                           / GAM345(3) )
+        ENDIF
+      ENDIF
+ 
+      IF ( MODE .EQ. 3 ) THEN
+C  CALCULATION OF MUON POLARIZATION. WE FOLLOW THE DESCRIPTION OF
+C  L. JAUNEAU, IN: METHODS IN SUBNUCLEAR PHYSICS, VOL. 3, M. NIKOLIC ED.
+C  (GORDON + BREACH, NEW YORK, 1969), P. 123
+C  SEE ALSO: L.M. CHOUNET ET AL., PHYS. REP. 4 (1972) 199, APPENDIX 1.
+C  SEE ALSO: N. CABBIBO, A. MAKSYMOWICZ, PHYS. LETT. 9 (1964) 352
+C  (CORRECTIONS IN: PHYS. LETT. 11 (1964) 360; 14 (1965) 72)
+C  WE DEFINE  BOFQ (READ: B OF Q), WHICH IS -B(Q**2)*4
+        BOFQ = 1.D0 - XIT
+C  ABYM AND BBYM (READ A BY M; B BY M) ARE THE QUANTITIES A/M AND B/M
+        ABYM = AM0 * ( BOFQ * EPIPRM - 2.D0 * E5CM )
+        BBYM = CM0SQ + 0.25D0 * CM4SQ * BOFQ**2 - BOFQ * AM0 * E4CM
+C  NOW CALCULATE THE COMPONENTS APARAL (PARALLEL TO MU DIRECTION) AND
+C  APERPN (PERPENDICULAR TO MU DIRECTION) USING QUANTITIES DEFINED IN
+C  KAON REST SYSTEM. NOTE OUR DEFINITION OF SINALF (ALWAYS WITH NEGATIVE
+C  SIGN) OPPOSITE TO CABBIBO'S SIN(PSI) AND JAUNEAU'S SIN(THETA)
+        APARAL = -P3CM*AM4*BBYM*COSALF - P4CM * ( AM0*ABYM - BBYM *
+     *           ( P3CM*SINALF*(E4CM-AM4)/P4CM + AM0 - E3CM ) )
+        APERPN =  P3CM*AM4*BBYM*SINALF
+C  NOW NORMALIZE THE PARALLEL COMPONENT OF POLARIZATION; POLART IS
+C  COSINE OF THE ANGLE BETWEEN MUON MOMENTUM AND POLARISATION
+        POLART = APARAL / SQRT(APARAL**2 + APERPN**2)
+C  THE POLARIZATION VECTOR LIES IN THE PLANE OF MOMENTA (PION,MUON).
+C  OMEGA IS THE ANGLE BY WHICH THE DECAY PLANE (PION,MUON) IS ROTATET
+C  AROUND THE DIRECTION OF MUON RELATIVE TO THE PLANE (KAON,MUON)
+        IF ( ABS(COS4CM) .LT. 1.D0  .AND.  SINALF .NE. 0.D0 ) THEN
+          COSOME = (COS4CM*COSALF - COS3CM)*SINT4I/SINALF
+          OMEGA  = ACOS( MAX( -1.D0, MIN( 1.D0, COSOME ) ) )
+          IF ( SINFI4 .NE. 0.D0 ) THEN
+            SINOMG = ( COSFI4 * ( COSALF - COS3CM*COS4CM ) * SINT4I
+     *                 - SIN3CM * COSPHI ) / (SINALF*SINFI4)
+            IF ( SINOMG .LT. 0.D0 ) OMEGA = PI2 - OMEGA
+          ENDIF
+        ELSE
+          OMEGA = 0.D0
+        ENDIF
+        POLARF  = OMEGA
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/difrac.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/difrac.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/difrac.f	(revision 4308)
@@ -0,0 +1,218 @@
+      SUBROUTINE DIFRAC( NRETFL )
+ 
+C-----------------------------------------------------------------------
+C  (SINGLE) DIF(F)RAC(TION)
+C
+C  SETS PARAMETERS FOR HDPM IN CASE OF SINGLE DIFFRACTION
+C  THIS SUBROUTINE IS CALLED FROM HDPM
+C  ARGUMENT:
+C   NRETFL = 0  CORRECT ENDING OF SUBROUTINE
+C          = 1  INCORRECT ENDING OF SUBROUTINE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,DPMFLG.
+      COMMON /DPMFLG/  NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+      INTEGER          NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+*KEEP,INTER.
+      COMMON /INTER/   AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN,
+     *                 IDIF,ITAR
+      DOUBLE PRECISION AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN
+      INTEGER          IDIF,ITAR
+*KEEP,LEPAR.
+      COMMON /LEPAR/   LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS
+      INTEGER          LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,REST.
+      COMMON /REST/    CONTNE,TAR,LT
+      DOUBLE PRECISION CONTNE(3),TAR
+      INTEGER          LT
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'DIFRAC:'
+ 
+C  DECIDE FIRST, WHETHER PROJECTILE OR TARGET DIFFRACTION
+      CALL RMMAR( RD,1,1 )
+      IF ( RD(1) .LE. 0.5 ) THEN
+C  PROJECTILE DIFFRACTON, TARGET DIFFRACTION FLAG IS NOT SET
+        NFTARD = 0
+C  MASS OF INCOMING PARTICLE AND PI(0) MASS
+C  PI(0) IS MINIMAL OUTCOME OF SECONDARIES IN DIFRAC
+        XM0    = ( PAMA(LEPAR1) + PAMA(7) )**2
+      ELSE
+C  TARGET DIFFRACTON, SET TARGET DIFFRACTION FLAG
+        NFTARD = 1
+C  MASS OF NUCLEON AND PI(0) MASS
+C  PI(0) IS MINIMAL OUTCOME OF SECONDARIES IN DIFRAC
+        XM0    = ( PAMA(LEPAR2) + PAMA(7) )**2
+      ENDIF
+C  MAXIMAL DIFFRACTIVE MASS, FACTOR 0.15 GIVEN BY COHERENCE CONDITION
+      XMX    = 0.15D0 * S
+ 
+C  THROW MAXIMAL 200 TIMES TO GET A GOOD DIFFRACTIVE MASS
+      NCDIFL = 0
+  7   CONTINUE
+C  GET DIFFRACTIVE MASS
+      CALL RMMAR( RD,2,1 )
+C  GET S (=ECM**2) (WHY THIS WAY OF THROWING ???)
+      SDIF = (XMX/XM0)**RD(1) * XM0
+ 
+      IF ( SDIF .LE. XM0 ) THEN
+        IF ( NCDIFL .LE. 200 ) THEN
+          NCDIFL = NCDIFL + 1
+          GOTO 7
+        ELSE
+C  SET RETURN FLAG TO ERROR
+          NRETFL = 1
+          RETURN
+        ENDIF
+      ENDIF
+ 
+C  DISTRIBUTION OF DIFFRACTIVE MASS FLATTENS OFF FOR DIFFRACTIVE
+C  MASS SQUARED .LE. 2 GEV
+      IF ( SDIF .LE. 2.D0 ) THEN
+C----- SO GEHT DAS NICHT!!   16.12.91 D.H.
+        SDIF = RD(2) * (2.D0 - XM0) + XM0
+      ENDIF
+C  SQRT(S) IS ECM
+      ECMDIF = SQRT(SDIF)
+C  LOG(S), LOG(S)**2
+      DLOG   = LOG(SDIF)
+      DLOGSQ = DLOG**2
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'DIFRAC: SDIF,ECMDIF,NFTARD=',
+     *               SNGL(SDIF),SNGL(ECMDIF),NFTARD
+ 
+C  RAPIDITY IN CMS OF DIFFRACTIVE SYSTEM
+C  TO CALCULATE DMLOG, SUBTRACT SUM OF MASS SQUARES FROM SDIF
+C  PI(0) MASS SQUARED IS 0.0182.
+      IF ( NFTARD .EQ. 0 ) THEN
+        YY0   =  LOG(ECMDPM/ECMDIF)
+        DMLOG =  LOG(SDIF - 0.0182D0 - PAMA(LEPAR1)**2)
+      ELSE
+        YY0   = -LOG(ECMDPM/ECMDIF)
+        DMLOG =  LOG(SDIF - 0.0182D0 - PAMA(LEPAR2)**2)
+      ENDIF
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'DIFRAC: YY0,DMLOG=',
+     *                           SNGL(YY0),SNGL(DMLOG)
+C  CENTRAL RAPIDITY DENSITY IN CMS OF DIFFRACTIVE SYSTEM
+C  PARAMETRISATION SEE CAPDEVIELLE,J.PHYS.G:NUCL.PHYS.16(1990)1539 EQ.7
+C  WE USE ONLY THE LOW-ENERGY PART OF THE PARAMETRISATION, AS SDIF DOES
+C  NOT REACH THE HIGHER VALUES
+      DC0 = 0.82D0 * (SDIF**0.107D0)
+ 
+C  THERE ARE 3 ENERGY DEPENDENT FORMULAS FOR AVERAGE CHARGED
+C  MULTIPLICITY ( AVCH1 );
+C  PARAMETRISATIONS SEE CAPDEVIELLE,J.PHYS.G:NUCL.PHYS.16(1990)1539 EQ.8
+      IF     ( ECMDIF .LE. 187.5D0 ) THEN
+C  CHARGED MULTIPLICITY (M**2 IN PLACE OF S)
+        AVCH1 = 0.57D0 + 0.584D0*DLOG + 0.127D0*DLOGSQ
+      ELSEIF ( ECMDIF .LE. 945.5D0 ) THEN
+        AVCH1 = -6.55D0 + 6.89D0 * SDIF**0.131D0
+      ELSE
+        AVCH1 = 3.4D0 * SDIF**0.17D0
+      ENDIF
+C  PARAMETRISATION IS BASED ON COLLIDER DATA WHERE PROTON AND ANTIPROTON
+C  ARE INCLUDED. LOWER LIMIT FOR AVERAGE CHARGED MULTIPLICITY IS 1.
+      AVCH1 = MAX( 1.D0, AVCH1 )
+ 
+C  CENTER OF GAUSSIAN 1ST+2ND STRING OF FRAGMENTATION SYSTEM
+      POSC2 = 0.146D0 * DMLOG + 0.072D0
+C  WIDTH  OF GAUSSIAN 1ST+2ND STRING OF FRAGMENTATION SYSTEM
+      WIDC2 = 0.120D0 * DMLOG + 0.180D0
+C  INTERACTION FACTOR GNU FOR INTERACTION WITH NUCLEUS;
+      IF ( NFLAIN .EQ. 0 ) THEN
+        GNU   = 1.D0
+        AVCH3 = 0.D0
+        POSC3 = 0.D0
+        WIDC3 = 1.D0
+      ELSE
+C  NEW PARAMETRIZATION OF J.N.CAPDEVIELLE (MARCH 93)
+        GNU   = (0.4826D0 + 3.522D-2 * DLOG) * TAR**0.31D0
+C  CENTER OF GAUSSIAN FOR 3RD STRING (FROM TARGET)
+        POSC3 = +3.D0 - 2.575D0 * EXP( -0.081756452D0 * GNU )
+C  WIDTH  OF GAUSSIAN FOR 3RD STRING (FROM TARGET)
+        WIDC3 = 1.2338466D0 + 0.078969916D0 * LOG(GNU)
+        IF ( ECMDIF .LE. 137.D0 ) THEN
+          AVCH3 = 0.57D0 * AVCH1 * (GNU-1.D0)
+        ELSE
+          AVCH3 = 0.5D0  * AVCH1 * (GNU-1.D0)
+        ENDIF
+      ENDIF
+      IF ( DEBUG ) WRITE(MDEBUG,100)
+     *          SNGL(POSC2),SNGL(WIDC2),SNGL(POSC3),SNGL(WIDC3)
+ 100  FORMAT(' DIFRAC: POSC2,WIDC2,POSC3,WIDC3=',4F12.7)
+C  AVERAGE CHARGED, INCLUDING THOSE FROM TARGET
+      AVCH = AVCH1 + AVCH3
+C  THE FOLOWING PROCEDURE IS TO PRODUCE PHOTONS FROM UNKNOWN NEUTRAL
+C  DECAYS FOLLOWING CORRELATION WITH CHARGED PARTICLES BASED ON
+C  PHOTON EXCESS AT COLLIDER EXPERIMENTS. SEUGP IS <N_PHOTON>
+C  PROBLEM OF THE RISE OF THE UNKNOWN ETA PRODUCTION CROSS SECTION
+C  IS SOLVED WITH PARAMETRISATION OF UA5 (Z. PHYS. C43 (1989) 75)
+      IF ( ECMDIF .LE. 103.D0 ) THEN
+        SEUGP = -1.27D0 + 0.52D0 * DLOG + 0.148D0 * DLOGSQ
+      ELSE
+C  AT HIGH DIFFRACTIVE MASS USE PARAMETRISATION OF THOUW ????
+        SEUGP = -18.7D0 + 11.55D0 * SDIF**0.1195D0
+      ENDIF
+      SEUGP = MAX( 0.5D0, SEUGP )
+      IF ( DEBUG ) WRITE(MDEBUG,110)
+     *   SNGL(DC0),SNGL(AVCH1),SNGL(AVCH3),SNGL(AVCH),SNGL(SEUGP)
+ 110  FORMAT(' DIFRAC: DC0,AVCH1,AVCH3,AVCH,SEUGP=',5F12.6)
+ 
+C  SET RETURN FLAG TO OK
+      NRETFL = 0
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/dmy.sed
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/dmy.sed	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/dmy.sed	(revision 4308)
@@ -0,0 +1,7 @@
+s=#USERADD#=harald@hegra6.mppmu.mpg.de=g
+s=#DATADISK#=/hd61/MagicMc/Data=g
+s=#ADMDISK#=/hd61/MagicMc/Log=g
+s=#PATHEXE#=/usr/users/harald/MagicSoft/Simulation/Corsika/mmcs-0.3.1=g
+s=#NAMEEXE#=c520-generic=g
+s=#NICE#=2=g
+s=#SITE#=4=g
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/dpfunc.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/dpfunc.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/dpfunc.f	(revision 4308)
@@ -0,0 +1,20 @@
+      DOUBLE PRECISION FUNCTION DPFUNC( ENER )
+ 
+C-----------------------------------------------------------------------
+C  D(IFFRACTION) P(ORTION) FUNC(TION)
+C
+C  CALCULATES THE FRACTION OF DIFFRACTION
+C  THIS FUNCTION IS CALLED FROM HDPM
+C  ARGUMNENT:
+C   ENER   = C.M. ENERGY
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+      DOUBLE PRECISION ENER
+C-----------------------------------------------------------------------
+ 
+C  FUNCTION DPFUNC IS DUMMY
+      DPFUNC = 0.15D0
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/egs4.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/egs4.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/egs4.f	(revision 4308)
@@ -0,0 +1,163 @@
+      SUBROUTINE EGS4( EEIN )
+ 
+C---------------------------------------------------------------------
+C  E(LECTRON) G(AMMA) S(HOWER)
+C
+C  TREATES ELECTROMAGNETIC SUBSHOWER
+C  THIS SUBROUTINE PACKAGE IS CALLED FROM EM
+C  ARGUMENT:
+C   EEIN   = (R8) INCOMING PARTICLE ENERGY (GEV)
+C
+C  DESIGN  : D. HECK   IK3  FZK KARLSRUHE
+C---------------------------------------------------------------------
+ 
+      DOUBLE PRECISION EEIN
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEND.
+      COMMON/GEOM/ZALTIT,BOUND(6),NEWOBS,OBSLVL(10)
+*KEEP,LONGI.
+      COMMON /LONGI/   APLONG,HLONG,PLONG,SPLONG,THSTEP,THSTPI,
+     *                 NSTEP,LLONGI,FLGFIT
+      DOUBLE PRECISION APLONG(0:1040,9),HLONG(0:1024),PLONG(0:1040,9),
+     *                 SPLONG(0:1040,9),THSTEP,THSTPI
+      INTEGER          NSTEP
+      LOGICAL          LLONGI,FLGFIT
+*KEND.
+      COMMON/MISC/KMPI,KMPO,DUNIT,NOSCAT,MED(6),RHOR(6),IRAYLR(6)
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEND.
+      DOUBLE PRECISION PI0MSQ
+      COMMON/PION/PI0MSQ,PITHR,PICMAS,PI0MAS,AMASK0,AMASKC,AMASPR,AMASNT
+*KEEP,REJECT.
+      COMMON /REJECT/  AVNREJ,
+     *                 ALTMIN,ANEXP,THICKA,THICKD,CUTLN,EONCUT,
+     *                 FNPRIM
+      DOUBLE PRECISION AVNREJ(10)
+      REAL             ALTMIN(10),ANEXP(10),THICKA(10),THICKD(10),
+     *                 CUTLN,EONCUT
+      LOGICAL          FNPRIM
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/THRESH/RMT2,RMSQ,ESCD2,AP,API,AE,UP,UE,TE,THMOLL
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+      DOUBLE PRECISION THICK
+      CHARACTER MEDARR*24
+      DATA MEDARR/'AIR-NTP                 '/
+C---------------------------------------------------------------------
+ 
+      IF((DEBUG))WRITE(MDEBUG,* )'EGS4  :'
+C***  CONVERSION GEV --> MEV
+      E(1)= EEIN*1000.D0
+C***  CHECK ENERGY RANGE
+      IQ(1)=NINT(SECPAR(1))
+      IF ( IQ(1) .EQ. 1 ) THEN
+       IF ( E(1) .GT. UP ) THEN
+        CALL AUSGB2
+        WRITE(KMPO,91) EEIN
+91      FORMAT(' EGS4  : ENERGY OF GAMMA =',1P,E10.3,' GEV TOO HIGH')
+        STOP
+       ENDIF
+      ELSE
+       IF ( E(1) .GT. UE ) THEN
+        CALL AUSGB2
+        WRITE(KMPO,92) EEIN
+92      FORMAT(' EGS4  :ENERGY OF ELECTRON/POSITRON =',1P,E10.3,
+     *         ' GEV TOO HIGH')
+        STOP
+       ENDIF
+      ENDIF
+C***  FILL IN STARTING COORDINATES
+      NP=1
+      TIME(1)=SECPAR(6)
+      X(1)=SECPAR(7)
+      Y(1)=-SECPAR(8)
+C***  STARTS IN HEIGHT 'Z' DOWNWARDS
+      Z(1)=-SECPAR(5)
+      IF (LLONGI) LPCTE(1)=MIN(NSTEP,INT(THICK(SECPAR(5))*THSTPI)+1)
+      SITHET=SQRT(1.D0-SECPAR(3)**2)
+C***  START DIRECTION COSINES
+      U(NP)=SITHET*COS(-SECPAR(4))
+      V(NP)=SITHET*SIN(-SECPAR(4))
+      W(NP)=SECPAR(3)
+C*** RENORMALIZATION OF DIRECTION COSINES
+      RADINV=1.5-0.5*(U(NP)**2+V(NP)**2+W(NP)**2)
+      U(NP)=U(NP)*RADINV
+      V(NP)=V(NP)*RADINV
+      W(NP)=W(NP)*RADINV
+      DNEAR(1)=0.
+      IGEN(1)=GEN
+       DO 101 K=1,5
+C ***  DETERMINE START REGION
+       IF (-BOUND(K).LE.Z(1) .AND. -BOUND(K+1).GT.Z(1)) THEN
+        IR(1)=K+1
+        GO TO 110
+       END IF
+101   CONTINUE
+102   CONTINUE
+      CALL AUSGB2
+      WRITE(KMPO,120) -Z(1)*0.00001
+120   FORMAT (' EGS4  : START VALUE OF Z=',1P,E10.3,' KM  NOT IN ATMOSPH
+     *ERE')
+      STOP
+110   CONTINUE
+       DO 111 IDET=1,NOBSLV
+C ***  DETERMINE NEXT OBSERVATION LEVEL
+       IF (-Z(1).GE.OBSLVL(IDET)) THEN
+        IOBS(1)=IDET
+        GO TO 130
+       END IF
+111   CONTINUE
+112   CONTINUE
+      CALL AUSGB2
+      WRITE(KMPO,140) -Z(1)*0.01,OBSLVL(NOBSLV)*0.01
+140   FORMAT(' EGS4  : START VALUE OF Z= ',E10.3, ' M  BELOW LOWEST DET'
+     *, 'ECTOR AT',E10.3,' M')
+      STOP
+C***  NEWOBS IS THE NEXT OBSERVATION LEVEL
+130   NEWOBS=IOBS(NP)
+      CALL SHOWER
+      IF(DEBUG) WRITE(MDEBUG,*) 'EGS4  : EGS-STACK EMPTY, EXIT'
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/egs4bd.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/egs4bd.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/egs4bd.f	(revision 4308)
@@ -0,0 +1,124 @@
+      BLOCK DATA EGS4BD
+C                                VERSION 4.00  --  26 JAN 1986/1900
+C******************************************************************
+      COMMON/BOUNDS/ECUT(6),PCUT(6),VACDST
+      COMMON/ELECIN/EKELIM,ICOMP,EKE0,EKE1,CMFP0,CMFP1,RANGE0,RANGE1, XR
+     *0,TEFF0,BLCC,XCC,PICMP0(1),PICMP1(1),EICMP0(1),EICMP1(1),MPEEM(1),
+     * ESIG0(500),ESIG1(500),PSIG0(500),PSIG1(500),EDEDX0(500),EDEDX1(50
+     *0),PDEDX0(500),PDEDX1(500),EBR10(500),EBR11(500),PBR10(500),PBR11(
+     *500),PBR20(500),PBR21(500),TMXS0(500),TMXS1(500),CMFPE0(1),CMFPE1(
+     *1),CMFPP0(1),CMFPP1(1),ERANG0(1),ERANG1(1),PRANG0(1),PRANG1(1),CXC
+     *2E0(1),CXC2E1(1),CXC2P0(1),CXC2P1(1),CLXAE0(1),CLXAE1(1),CLXAP0(1)
+     *,CLXAP1(1), THR0(1,1),THR1(1,1),THR2(1,1),THRI0(1,1),THRI1(1,1),TH
+     *RI2(1,1),FSTEP(16),FSQR(16),MSMAP(200), VERT1(1000),VERT2(100,16),
+     *MSTEPS,JRMAX,MXV1, MXV2,NBLC,NRNTH,NRNTHI,BLC0,BLC1,RTHR0,RTHR1,RT
+     *HRI0,RTHRI1
+*KEEP,EPCONT.
+      COMMON/EPCONT/   EDEP,RATIO,TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,IDISC,
+     *                 IROLD,IRNEW,RHOFAC, EOLD,ENEW,EKE,ELKE,BETA2,GLE,
+     *                 TSCAT,IAUSFL
+      DOUBLE PRECISION EDEP,RATIO
+      REAL             TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,RHOFAC,EOLD,ENEW,
+     *                 EKE,ELKE,BETA2,GLE,TSCAT
+      INTEGER          IDISC,IROLD,IRNEW,IAUSFL(29)
+*KEND.
+      COMMON /MEDIA/ NMED, RLC,RLDU,RLDUI,RHO,MSGE,MGE,MSEKE,MEKE,MLEKE,
+     *MCMFP,MRANGE,IRAYLM,HBARO(6),HBAROI(6)
+      CHARACTER MEDIA*24
+      COMMON/MEDIAC/MEDIA
+      COMMON/MISC/KMPI,KMPO,DUNIT,NOSCAT,MED(6),RHOR(6),IRAYLR(6)
+      COMMON/MULTS/NG21,B0G21,B1G21,G210(7),G211(7),G212(7), NG22,B0G22,
+     *B1G22,G220(8),G221(8),G222(8), NG31,B0G31,B1G31,G310(11),G311(11),
+     *G312(11), NG32,B0G32,B1G32,G320(25),G321(25),G322(25), NBGB,B0BGB,
+     *B1BGB,BGB0(8),BGB1(8),BGB2(8)
+      COMMON/PATHCM/NPTH,B0PTH,B1PTH,PTH0(6),PTH1(6),PTH2(6)
+      COMMON/THRESH/RMT2,RMSQ,ESCD2,AP,API,AE,UP,UE,TE,THMOLL
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+      CHARACTER MEDIA1*24
+      EQUIVALENCE (MEDIA1,MEDIA)
+      DATA NCLOCK/0/,JCLOCK/ 1/
+      DATA ECUT/6*0./,PCUT/6*0./,VACDST/1.E8/
+      DATA EKELIM/0./,ICOMP/1/
+      DATA IAUSFL/5*1,24*0/,RHOFAC/1.0/
+      DATA NMED/1/,MEDIA1/'NAI                     '/
+      DATA IRAYLM/1*0/
+      DATA KMPI/12/,KMPO/8/,DUNIT/1./,NOSCAT/0/
+      DATA MED/6*1/,RHOR/6*0./,IRAYLR/6*0/
+      DATA NG21/ 7/,B0G21/ 2.0000E+00/,B1G21/ 5.0000E+00/
+      DATA G210(1),G211(1),G212(1)/-9.9140E-04, 2.7672E+00,-1.1544E+00/
+      DATA G210(2),G211(2),G212(2)/-9.9140E-04, 2.7672E+00,-1.1544E+00/
+      DATA G210(3),G211(3),G212(3)/-7.1017E-02, 3.4941E+00,-3.0773E+00/
+      DATA G210(4),G211(4),G212(4)/-7.3556E-02, 3.5487E+00,-3.1989E+00/
+      DATA G210(5),G211(5),G212(5)/ 3.6658E-01, 2.1162E+00,-2.0311E+00/
+      DATA G210(6),G211(6),G212(6)/ 1.4498E+00,-5.9717E-01,-3.2951E-01/
+      DATA G210(7),G211(7),G212(7)/ 1.4498E+00,-5.9717E-01,-3.2951E-01/
+      DATA NG22/ 8/,B0G22/ 2.0000E+00/,B1G22/ 6.0000E+00/
+      DATA G220(1),G221(1),G222(1)/-5.2593E-04, 1.4285E+00,-1.2670E+00/
+      DATA G220(2),G221(2),G222(2)/-5.2593E-04, 1.4285E+00,-1.2670E+00/
+      DATA G220(3),G221(3),G222(3)/-6.4819E-02, 2.2033E+00,-3.6399E+00/
+      DATA G220(4),G221(4),G222(4)/ 3.7427E-02, 1.6630E+00,-2.9362E+00/
+      DATA G220(5),G221(5),G222(5)/ 6.1955E-01,-6.2713E-01,-6.7859E-01/
+      DATA G220(6),G221(6),G222(6)/ 1.7584E+00,-4.0390E+00, 1.8810E+00/
+      DATA G220(7),G221(7),G222(7)/ 2.5694E+00,-6.0484E+00, 3.1256E+00/
+      DATA G220(8),G221(8),G222(8)/ 2.5694E+00,-6.0484E+00, 3.1256E+00/
+      DATA NG31/ 11/,B0G31/ 2.0000E+00/,B1G31/ 9.0000E+00/
+      DATA G310(1),G311(1),G312(1)/ 4.9437E-01, 1.9124E-02, 1.8375E+00/
+      DATA G310(2),G311(2),G312(2)/ 4.9437E-01, 1.9124E-02, 1.8375E+00/
+      DATA G310(3),G311(3),G312(3)/ 5.3251E-01,-6.1555E-01, 4.5595E+00/
+      DATA G310(4),G311(4),G312(4)/ 6.6810E-01,-2.2056E+00, 8.9293E+00/
+      DATA G310(5),G311(5),G312(5)/-3.8262E+00, 2.5528E+01,-3.3862E+01/
+      DATA G310(6),G311(6),G312(6)/ 4.2335E+00,-1.0604E+01, 6.6702E+00/
+      DATA G310(7),G311(7),G312(7)/ 5.0694E+00,-1.4208E+01, 1.0456E+01/
+      DATA G310(8),G311(8),G312(8)/ 1.4563E+00,-3.3275E+00, 2.2601E+00/
+      DATA G310(9),G311(9),G312(9)/-3.2852E-01, 1.2938E+00,-7.3254E-01/
+      DATA G310(10),G311(10),G312(10)/-2.2489E-1, 1.0713E+0,-6.1358E-1/
+      DATA G310(11),G311(11),G312(11)/-2.2489E-1, 1.0713E+0,-6.1358E-1/
+      DATA NG32/ 25/,B0G32/ 2.0000E+00/,B1G32/ 2.3000E+01/
+      DATA G320(1),G321(1),G322(1)/ 2.9907E-05, 4.7318E-01, 6.5921E-01/
+      DATA G320(2),G321(2),G322(2)/ 2.9907E-05, 4.7318E-01, 6.5921E-01/
+      DATA G320(3),G321(3),G322(3)/ 2.5820E-03, 3.5853E-01, 1.9776E+00/
+      DATA G320(4),G321(4),G322(4)/-5.3270E-03, 4.9418E-01, 1.4528E+00/
+      DATA G320(5),G321(5),G322(5)/-6.6341E-02, 1.4422E+00,-2.2407E+00/
+      DATA G320(6),G321(6),G322(6)/-3.6027E-01, 4.7190E+00,-1.1380E+01/
+      DATA G320(7),G321(7),G322(7)/-2.7953E+00, 2.6694E+01,-6.0986E+01/
+      DATA G320(8),G321(8),G322(8)/-3.6091E+00, 3.4125E+01,-7.7512E+01/
+      DATA G320(9),G321(9),G322(9)/ 1.2491E+01,-7.1103E+01, 9.4496E+01/
+      DATA G320(10),G321(10),G322(10)/ 1.9637E+1,-1.1371E+2, 1.5794E+2/
+      DATA G320(11),G321(11),G322(11)/ 2.1692E+0,-2.5019E+1, 4.5340E+1/
+      DATA G320(12),G321(12),G322(12)/-1.6682E+1, 6.2067E+1,-5.5257E+1/
+      DATA G320(13),G321(13),G322(13)/-2.1539E+1, 8.2651E+1,-7.7065E+1/
+      DATA G320(14),G321(14),G322(14)/-1.4344E+1, 5.5193E+1,-5.0867E+1/
+      DATA G320(15),G321(15),G322(15)/-5.4990E+0, 2.3874E+1,-2.3140E+1/
+      DATA G320(16),G321(16),G322(16)/ 3.1029E+0,-4.4708E+0, 2.1318E-1/
+      DATA G320(17),G321(17),G322(17)/ 6.0961E+0,-1.3670E+1, 7.2823E+0/
+      DATA G320(18),G321(18),G322(18)/ 8.6179E+0,-2.0950E+1, 1.2536E+1/
+      DATA G320(19),G321(19),G322(19)/ 7.5064E+0,-1.7956E+1, 1.0520E+1/
+      DATA G320(20),G321(20),G322(20)/ 5.9838E+0,-1.4065E+1, 8.0342E+0/
+      DATA G320(21),G321(21),G322(21)/ 4.4959E+0,-1.0456E+1, 5.8462E+0/
+      DATA G320(22),G321(22),G322(22)/ 3.2847E+0,-7.6709E+0, 4.2445E+0/
+      DATA G320(23),G321(23),G322(23)/ 1.9514E+0,-4.7505E+0, 2.6452E+0/
+      DATA G320(24),G321(24),G322(24)/ 4.8808E-1,-1.6910E+0, 1.0459E+0/
+      DATA G320(25),G321(25),G322(25)/ 4.8808E-1,-1.6910E+0, 1.0459E+0/
+      DATA NBGB/ 8/,B0BGB/ 1.5714E+00/,B1BGB/ 2.1429E-01/
+      DATA BGB0(1),BGB1(1),BGB2(1)/-1.0724E+00, 2.8203E+00,-3.5669E-01/
+      DATA BGB0(2),BGB1(2),BGB2(2)/ 3.7136E-01, 1.4560E+00,-2.8072E-02/
+      DATA BGB0(3),BGB1(3),BGB2(3)/ 1.1396E+00, 1.1910E+00,-5.2070E-03/
+      DATA BGB0(4),BGB1(4),BGB2(4)/ 1.4908E+00, 1.1267E+00,-2.2565E-03/
+      DATA BGB0(5),BGB1(5),BGB2(5)/ 1.7342E+00, 1.0958E+00,-1.2705E-03/
+      DATA BGB0(6),BGB1(6),BGB2(6)/ 1.9233E+00, 1.0773E+00,-8.1806E-04/
+      DATA BGB0(7),BGB1(7),BGB2(7)/ 2.0791E+00, 1.0649E+00,-5.7197E-04/
+      DATA BGB0(8),BGB1(8),BGB2(8)/ 2.0791E+00, 1.0649E+00,-5.7197E-04/
+      DATA NPTH/ 6/,B0PTH/ 2.0000E+00/,B1PTH/ 1.8182E+01/
+      DATA PTH0(1),PTH1(1),PTH2(1)/ 1.0000E+00, 9.8875E-01, 2.5026E+00/
+      DATA PTH0(2),PTH1(2),PTH2(2)/ 1.0000E+00, 9.8875E-01, 2.5026E+00/
+      DATA PTH0(3),PTH1(3),PTH2(3)/ 1.0060E+00, 7.8657E-01, 4.2387E+00/
+      DATA PTH0(4),PTH1(4),PTH2(4)/ 1.0657E+00,-2.5051E-01, 8.7681E+00/
+      DATA PTH0(5),PTH1(5),PTH2(5)/ 1.6971E+00,-7.5600E+00, 2.9946E+01/
+      DATA PTH0(6),PTH1(6),PTH2(6)/ 1.6971E+00,-7.5600E+00, 2.9946E+01/
+      DATA RMT2/1.022007/,RMSQ/.2611245/
+      DATA PI/3.141593/,TWOPI/6.283185/,PI5D2/7.853982/
+      DATA ICALL/0/,RM/.5110034/
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/egsini.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/egsini.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/egsini.f	(revision 4308)
@@ -0,0 +1,189 @@
+      SUBROUTINE EGSINI
+ 
+C---------------------------------------------------------------------
+C  E(LECTRON) G(AMMA) S(HOWER) INI(TIALIZATION)
+C
+C  INITIALIZES EGS4 PACKAGE
+C  THIS SUBROUTINE IS CALLED FROM START
+C
+C  DESIGN  : D. HECK   IK3  FZK KARLSRUHE
+C---------------------------------------------------------------------
+ 
+*KEEP,ATMOS.
+      COMMON /ATMOS/   AATM,BATM,CATM,DATM
+      DOUBLE PRECISION AATM(5),BATM(5),CATM(5),DATM(5)
+*KEND.
+      COMMON/BOUNDS/ECUT(6),PCUT(6),VACDST
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEND.
+      COMMON/GEOM/ZALTIT,BOUND(6),NEWOBS,OBSLVL(10)
+      COMMON /MEDIA/ NMED, RLC,RLDU,RLDUI,RHO,MSGE,MGE,MSEKE,MEKE,MLEKE,
+     *MCMFP,MRANGE,IRAYLM,HBARO(6),HBAROI(6)
+      CHARACTER MEDIA*24
+      COMMON/MEDIAC/MEDIA
+      DOUBLE PRECISION PRRMMU
+      COMMON/MUON/PRRMMU,RMMU,RMMUT2
+      COMMON/MISC/KMPI,KMPO,DUNIT,NOSCAT,MED(6),RHOR(6),IRAYLR(6)
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEND.
+      DOUBLE PRECISION PI0MSQ
+      COMMON/PION/PI0MSQ,PITHR,PICMAS,PI0MAS,AMASK0,AMASKC,AMASPR,AMASNT
+*KEEP,REJECT.
+      COMMON /REJECT/  AVNREJ,
+     *                 ALTMIN,ANEXP,THICKA,THICKD,CUTLN,EONCUT,
+     *                 FNPRIM
+      DOUBLE PRECISION AVNREJ(10)
+      REAL             ALTMIN(10),ANEXP(10),THICKA(10),THICKD(10),
+     *                 CUTLN,EONCUT
+      LOGICAL          FNPRIM
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+      COMMON/THRESH/RMT2,RMSQ,ESCD2,AP,API,AE,UP,UE,TE,THMOLL
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+      CHARACTER MEDARR*24
+      DATA MEDARR/'AIR-NTP                 '/
+C---------------------------------------------------------------------
+ 
+      IF((DEBUG))WRITE(MDEBUG,* )'EGSINI:'
+C***  INITIALISATION BEFORE THE FIRST CALL OF EGS4
+      ICALL = 1
+      IF (( DEBUG )) THEN
+       KMPO = MDEBUG
+      ELSE
+       KMPO = MONIOU
+      END IF
+      WRITE(KMPO,10)
+10     FORMAT (' START AIR SHOWER SUBROUTINE EGS4 VERSION 64S (OCT 94)'/
+     *  ' MU+MU- PAIRS ARE FORMED IN ANALOGY WITH E+E- PAIRS. THIS IS ',
+     *  'CERTAINLY NOT'/' CORRECT BECAUSE OF DIFFERENT FORM FACTORS. T',
+     *  'HEREFORE TREAT MUON PAIRS WITH CAUTION.')
+C***  SET PARTICLE MASSES AND PHYSICAL CONSTANTS
+      RM = PAMA(2)*1.D3
+      RMT2 = 2.*RM
+      RMSQ = RM**2
+      PRRMMU = PAMA(5)*1.D3
+      RMMU = PRRMMU
+      RMMUT2 = 2.*RMMU
+      PICMAS = PAMA(8)*1.D3
+      PI0MAS = PAMA(7)*1.D3
+      PI0MSQ = PI0MAS**2
+      AMASKC = PAMA(11)*1.D3
+      AMASK0 = PAMA(10)*1.D3
+      AMASPR = PAMA(14)*1.D3
+      AMASNT = PAMA(13)*1.D3
+C***  INVERSE OF VELOCITY OF LIGHT
+      VC = 1.D0/C(25)
+C***  PION-PRODUCTION THRESHOLD
+      PITHR = 152.0
+C***  NMED AND DUNIT DEFAULT TO 1,I.E. ONE MEDIUM AND WE WORK IN CM
+      MEDIUM=1
+      DO 21 I=1,24
+       MEDIA(I:I)=MEDARR(I:I)
+21    CONTINUE
+22    CONTINUE
+C***  BOUNDARY 1= TOP OF ATMOSPHERE (SEE SUBROUTINE HOWFAR)
+      BOUND(1)=11300000.
+      BOUND(2)= 4000000.
+      BOUND(3)= 1000000.
+      BOUND(4)= 400000.
+      BOUND(5)= 0.
+      BOUND(6)= -0.
+      MED(1)=0
+      MED(6)=0
+C***  VACUUM IN REGIONS 1 AND 6, AIR IN REGION 2 TO 5
+      DO 31 IRL=2,5
+       MED(IRL)= 1
+C ***  VALUE OF BARO-HEIGHT FROM HILLAS, PRIV. COMMUN. (AUG 1988)
+       HBARO(IRL)=CATM(6-IRL)
+       HBAROI(IRL)=1./HBARO(IRL)
+       RHOR(IRL) =BATM(6-IRL)*HBAROI(IRL)
+C ***  NEEDED FOR REGION 2 TO 5 SINCE NO TRANSPORT ELSEWHERE
+C ***  ECUT IS TOTAL ENERGY
+C ***  TERMINATE ELECTRON HISTORIES AT ECUT (GEV TO MEV CONVERTED)
+       ECUT(IRL)=1000.D0*ELCUT(3)+RM
+C ***  TERMINATE PHOTON HISTORIES AT PCUT (GEV TO MEV CONVERTED)
+       PCUT(IRL)=1000.D0*ELCUT(4)
+31    CONTINUE
+32    CONTINUE
+      OPEN(UNIT=KMPI,FILE='EGSDAT2',STATUS='OLD')
+C***  PICK UP CROSS SECTION DATA FOR AIR-NTP FROM UNIT KMPI=12
+      CALL HATCH
+      CLOSE(UNIT=KMPI)
+C***  INVERTED PHOTON THRESHOLD
+      API=1./AP
+      WRITE(KMPO,40) (AE-RM)*.001,AP*.001,ECUT(2)*.001,PCUT(2)*.001
+40    FORMAT (' ELECTRONS CAN BE CREATED AND ANY ELECTRON FOLLOWED DO',
+     *  'WN TO'/T40,F8.4,' GEV KINETIC ENERGY'/' GAMMAS CAN BE CREATED',
+     *  ' AND ANY GAMMA FOLLOWED DOWN TO'/T40,F8.4,' GEV ENERGY'/' ELE',
+     *  'CTRON HISTORIES ARE TERMINATED AT',F10.4,' GEV'/' GAMMA HISTO',
+     *  'RIES ARE TERMINATED AT   ',F10.4,' GEV'/)
+cc    IF((DEBUG.OR.(JCLOCK.GT.1)))WRITE(KMPO,50)
+cc50  FORMAT (7X,' PART|TOT.ENERGY|ANGLE Z|ANGLE X|ALTITUDE|',
+cc   * '  TIME  |  POS. X  |  POS. Y  |GENER|',/,8X,'ICLE|',
+cc   * '  (GEV)   |COSTHET| (RAD) |  (CM)  | (MSEC) |   (CM)   |',
+cc   * '   (CM)   |ATION|')
+C***  CALCULATE THE LAYER THICKNESS BELOW EACH DETECTOR
+      DO 61 IDET=1,NOBSLV
+C ***  NECESSARY BECAUSE OF DOUBLE PRECIS.
+       OBSLVL(IDET)=OBSLEV(IDET)
+       DO 71 JREG=2,5
+         IF (OBSLVL(IDET).GE.BOUND(JREG)) THEN
+          KREG=JREG
+          GO TO 80
+         END IF
+71     CONTINUE
+72     CONTINUE
+       WRITE(KMPO,90) IDET,OBSLVL(IDET)*0.01
+90     FORMAT (' EGS4  :', ' DETECTOR ',I2,' AT ',E10.3,' M IS OUT OF A
+     *TMOSPHERE')
+       STOP
+80     THICKD(IDET)=EXP(-OBSLVL(IDET)*HBAROI(KREG))
+       THICKA(IDET)=RHOR(KREG)*HBARO(KREG)*(1.-THICKD(IDET))
+C ***  MIN ALTITUDE FOR REJECT IS OBSERVATION LEVEL+3*36.6 G/CM**2
+       ALTMIN(IDET)=-HBARO(KREG)*LOG(MAX(1.E-37,(1.-(THICKA(IDET)+109.8
+     *  )* HBAROI(KREG)/RHOR(KREG))))
+       ALTMIN(IDET)=MIN(ALTMIN(IDET),BOUND(1))
+61    CONTINUE
+62    CONTINUE
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/electr.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/electr.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/electr.f	(revision 4308)
@@ -0,0 +1,564 @@
+      SUBROUTINE ELECTR(IRCODE)
+C                                VERSION 4.00  --  26 JAN 1986/1900
+C******************************************************************
+      DOUBLE PRECISION PEIE
+      COMMON/BOUNDS/ECUT(6),PCUT(6),VACDST
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,CEREN1.
+      COMMON /CEREN1/  CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD,
+     *                 CERSIZ,LCERFI
+      DOUBLE PRECISION CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD
+      REAL             CERSIZ
+      LOGICAL          LCERFI
+*KEND.
+      COMMON/ELECIN/EKELIM,ICOMP,EKE0,EKE1,CMFP0,CMFP1,RANGE0,RANGE1, XR
+     *0,TEFF0,BLCC,XCC,PICMP0(1),PICMP1(1),EICMP0(1),EICMP1(1),MPEEM(1),
+     * ESIG0(500),ESIG1(500),PSIG0(500),PSIG1(500),EDEDX0(500),EDEDX1(50
+     *0),PDEDX0(500),PDEDX1(500),EBR10(500),EBR11(500),PBR10(500),PBR11(
+     *500),PBR20(500),PBR21(500),TMXS0(500),TMXS1(500),CMFPE0(1),CMFPE1(
+     *1),CMFPP0(1),CMFPP1(1),ERANG0(1),ERANG1(1),PRANG0(1),PRANG1(1),CXC
+     *2E0(1),CXC2E1(1),CXC2P0(1),CXC2P1(1),CLXAE0(1),CLXAE1(1),CLXAP0(1)
+     *,CLXAP1(1), THR0(1,1),THR1(1,1),THR2(1,1),THRI0(1,1),THRI1(1,1),TH
+     *RI2(1,1),FSTEP(16),FSQR(16),MSMAP(200), VERT1(1000),VERT2(100,16),
+     *MSTEPS,JRMAX,MXV1, MXV2,NBLC,NRNTH,NRNTHI,BLC0,BLC1,RTHR0,RTHR1,RT
+     *HRI0,RTHRI1
+*KEEP,EPCONT.
+      COMMON/EPCONT/   EDEP,RATIO,TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,IDISC,
+     *                 IROLD,IRNEW,RHOFAC, EOLD,ENEW,EKE,ELKE,BETA2,GLE,
+     *                 TSCAT,IAUSFL
+      DOUBLE PRECISION EDEP,RATIO
+      REAL             TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,RHOFAC,EOLD,ENEW,
+     *                 EKE,ELKE,BETA2,GLE,TSCAT
+      INTEGER          IDISC,IROLD,IRNEW,IAUSFL(29)
+*KEND.
+      COMMON/GEOM/ZALTIT,BOUND(6),NEWOBS,OBSLVL(10)
+*KEEP,LONGI.
+      COMMON /LONGI/   APLONG,HLONG,PLONG,SPLONG,THSTEP,THSTPI,
+     *                 NSTEP,LLONGI,FLGFIT
+      DOUBLE PRECISION APLONG(0:1040,9),HLONG(0:1024),PLONG(0:1040,9),
+     *                 SPLONG(0:1040,9),THSTEP,THSTPI
+      INTEGER          NSTEP
+      LOGICAL          LLONGI,FLGFIT
+*KEEP,MAGNET.
+      COMMON /MAGNET/  BX,BZ,BVAL,BNORMC,BNORM,COSB,SINB,BLIMIT
+      DOUBLE PRECISION BX,BZ,BVAL,BNORMC
+      REAL             BNORM,COSB,SINB,BLIMIT
+*KEND.
+      COMMON /MEDIA/ NMED, RLC,RLDU,RLDUI,RHO,MSGE,MGE,MSEKE,MEKE,MLEKE,
+     *MCMFP,MRANGE,IRAYLM,HBARO(6),HBAROI(6)
+      CHARACTER MEDIA*24
+      COMMON/MEDIAC/MEDIA
+      COMMON/MISC/KMPI,KMPO,DUNIT,NOSCAT,MED(6),RHOR(6),IRAYLR(6)
+      DOUBLE PRECISION PRRMMU
+      COMMON/MUON/PRRMMU,RMMU,RMMUT2
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEND.
+      COMMON/PATHCM/NPTH,B0PTH,B1PTH,PTH0(6),PTH1(6),PTH2(6)
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,REJECT.
+      COMMON /REJECT/  AVNREJ,
+     *                 ALTMIN,ANEXP,THICKA,THICKD,CUTLN,EONCUT,
+     *                 FNPRIM
+      DOUBLE PRECISION AVNREJ(10)
+      REAL             ALTMIN(10),ANEXP(10),THICKA(10),THICKD(10),
+     *                 CUTLN,EONCUT
+      LOGICAL          FNPRIM
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/THRESH/RMT2,RMSQ,ESCD2,AP,API,AE,UP,UE,TE,THMOLL
+      COMMON/UPHIIN/SINC0,SINC1,SIN0(20002),SIN1(20002)
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+      DOUBLE PRECISION THICK
+      DATA NSTPCN/0/
+ 
+ 
+ 
+C_____NCLOCK = NCLOCK+1
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' ELECTR:NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      NEWOBS=IOBS(NP)
+      IRCODE=1
+      IROLD=IR(NP)
+      IRL=IR(NP)
+      MEDIUM=MED(IRL)
+380   CONTINUE
+381    CONTINUE
+       LELEC=5-2*IQ(NP)
+       PEIE=E(NP)
+       EIE=PEIE
+       IF((EIE.LE.ECUT(IRL)))GO TO 390
+       MEDIUM=MED(IRL)
+400    CONTINUE
+401     CONTINUE
+        IF (MEDIUM.NE.0) THEN
+         EKE=EIE-RM
+         ELKE=LOG(EKE)
+         CALL RMMAR(RNNE1,1,2)
+         IF ((RNNE1.EQ.0.0)) THEN
+          RNNE1=1.E-30
+         END IF
+         DEMFP=AMAX1(-ALOG(RNNE1),1.E-6)
+         LELKE=EKE1*ELKE+EKE0
+         IF (LELEC.LT.0) THEN
+          SIG0=ESIG1(LELKE)*ELKE+ESIG0(LELKE)
+         ELSE
+          SIG0=PSIG1(LELKE)*ELKE+PSIG0(LELKE)
+         END IF
+        END IF
+450     CONTINUE
+451      CONTINUE
+         IF (MEDIUM.EQ.0) THEN
+          TSTEP=VACDST
+          USTEP=TSTEP
+          TUSTEP=USTEP
+         ELSE
+          RHOFAC=RHOR(IRL)/RHO
+          RHOFI=1./RHOFAC
+          SIG=SIG0*RHOFAC
+          IF (SIG.LE.0.0) THEN
+           TSTEP=VACDST
+          ELSE
+           TSTEP=DEMFP/SIG
+          END IF
+          TMXS=TMXS1(LELKE)*ELKE+TMXS0(LELKE)
+          TMXS=MIN(TMXS,STEPFC*200.*TEFF0)
+          TMXS=TMXS*RHOFI
+          TUSTEP=MIN(TSTEP,TMXS)
+          IF (LELEC.LT.0) THEN
+           DEDX0=EDEDX1(LELKE)*ELKE+EDEDX0(LELKE)
+          ELSE
+           DEDX0=PDEDX1(LELKE)*ELKE+PDEDX0(LELKE)
+          END IF
+          DEDX=RHOFAC*MIN(DEDX0,(86.65-Z(NP)*8.E-6)*RLDUI)
+          RANGE=(EIE-ECUT(IRL)+0.001)/DEDX
+          BETA2=MAX(1.E-8,1.-RMSQ/(EIE*EIE))
+          BETA3=EIE*BETA2*0.094315
+          TSCAT=RLDU*BETA3*BETA3
+          TSCAT=TSCAT*RHOFI
+          TUSTEP=MIN(TUSTEP,0.3*TSCAT,RANGE)
+          RATIO=TUSTEP/TSCAT
+          USTEP=TUSTEP*(1.D0-RATIO)
+          USTEPU=USTEP
+          ALTEXP=EXP(-Z(NP)*HBAROI(IRL))
+          USTEP=USTEP*ALTEXP
+          DISC=W(NP)*USTEP*HBAROI(IRL)
+          IF (ABS(DISC).LT.0.065) THEN
+           USTEP=USTEP*(1.-0.5*DISC*(1.-0.6666667*DISC* (1.-0.75*DISC *
+     *     (1.-0.8*DISC))))
+          ELSE IF(DISC.LE.-1.) THEN
+           USTEP=VACDST
+          ELSE
+           USTEP=USTEP/DISC*LOG(DISC+1.)
+          END IF
+          TUSTPC=USTEP/(1.D0-RATIO)
+         END IF
+         IRNEW=IR(NP)
+         IDISC=0
+         USTEP0=USTEP
+         USTEP=MIN(USTEP,BLIMIT*EIE)
+         IF((USTEP.GT.DNEAR(NP) ))CALL HOWFAR
+         IF((IDISC.GT.0))GO TO 420
+         IF (USTEP.LE.0.0) THEN
+          IF (USTEP.LT.-1.E-4) THEN
+           WRITE(KMPO,460)USTEP
+460        FORMAT(' ELECTR: NEGATIVE USTEP=',G20.10,' CM')
+           WRITE(KMPO,470)Z(NP),DNEAR(NP),IR(NP),IRNEW,W(NP)
+470        FORMAT (' Z=',G15.7, ' DNEAR=',G15.7,' IR=',I5, ' IRNEW=',I5,
+     *      ' W=',G15.7)
+           NSTPCN=NSTPCN+1
+           IF (NSTPCN.GE.20) THEN
+            CALL AUSGB2
+            WRITE(KMPO,480) NSTPCN
+480         FORMAT (' ELECTR: PROGRAM STOPPED BECAUSE OF FREQUENT NEGA',
+     *       'TIVE USTEP, COUNTER = ',I5)
+            STOP
+           END IF
+          END IF
+          USTEP=0.
+         END IF
+         IF (USTEP.EQ.0.0.OR.MEDIUM.EQ.0) THEN
+          IF (USTEP.NE.0.0) THEN
+           VSTEP=USTEP
+           TVSTEP=VSTEP
+           EDEP=PZERO
+           TVSTPC=TVSTEP
+           ALPHA=VSTEP*LELEC*BNORM/EIE
+           TVSTPC=TVSTPC*(1.+0.04166667*ALPHA*ALPHA)
+           U0=U(NP)
+           V0=V(NP)
+           W0=W(NP)
+           FNORM=1.-0.5*(ALPHA*ALPHA)*(1.-0.75*(ALPHA*ALPHA))
+           F1SIN=(1.-FNORM)*SINB
+           F1COS=(1.-FNORM)*COSB
+           V1=V0*ALPHA*FNORM
+           U(NP)=U0*(1.-F1SIN*SINB)+W0*F1SIN*COSB+V1*SINB
+           V(NP)=FNORM*(V0-ALPHA*(U0*SINB-W0*COSB))
+           W(NP)=W0*(1.-F1COS*COSB)+U0*F1COS*SINB-V1*COSB
+           RADINV=1.5-0.5*(U(NP)**2+V(NP)**2+W(NP)**2)
+           U(NP)=U(NP)*RADINV
+           V(NP)=V(NP)*RADINV
+           W(NP)=W(NP)*RADINV
+           X(NP)=X(NP)+(VSTEP*0.5)*(U0+U(NP))
+           Y(NP)=Y(NP)+(VSTEP*0.5)*(V0+V(NP))
+           ZOLD =Z(NP)
+           Z(NP)=Z(NP)+(VSTEP*0.5)*(W0+W(NP))
+           TIME(NP)=TIME(NP)+TVSTPC*VC*E(NP)/SQRT((E(NP)-PRM)*(E(NP)+PRM
+     *     ))
+ 
+ 
+C     GENERATE CERENKOV PHOTONS
+           IF ( FNPRIM ) CALL CERENE(TVSTPC)
+C  ADD ELECTRONS TO THE LONGITUDINAL DEVELOPMENT
+C  FIND FIRST THE EQUIVALENT LEVELS
+           IF ( LLONGI ) THEN
+C  IF STARTING POINT BELOW LOWEST LEVEL THEN DON'T CHECK
+            IF ( HLONG(NSTEP) .LE. -ZOLD ) THEN
+              LPCT1 = LPCTE(NP)
+C  Z NEW IS PROBABLY ONLY LITTLE BELOW Z OLD, THEREFORE INCREMENTAL SEARCH
+              DO 6002 I1 = LPCT1,NSTEP
+                IF ( HLONG(I1) .LT. -Z(NP) ) GOTO 6003
+ 6002         CONTINUE
+              I1 = NSTEP + 1
+ 6003         CONTINUE
+              LPCT2 = I1 - 1
+              DO 485 I=LPCT1,LPCT2
+                PLONG(I,IQ(NP)) = PLONG(I,IQ(NP)) + 1.D0
+ 485          CONTINUE
+C  STORE END POINT AS POSSIBLE STARTPOINT OF NEXT TRACK
+              LPCTE(NP) = LPCT2 + 1
+            ENDIF
+           ENDIF
+           DNEAR(NP)=DNEAR(NP)-VSTEP
+           IROLD=IR(NP)
+          END IF
+          IR(NP)=IRNEW
+          IRL=IRNEW
+          MEDIUM=MED(IRL)
+          IF((EIE.LE.ECUT(IRL)))GO TO 390
+          IF (USTEP.NE.0.0) THEN
+           IF (NEWOBS.GT.IOBS(NP)) THEN
+            CALL AUSGAB
+            IOBS(NP)=NEWOBS
+           END IF
+          END IF
+          GO TO 401
+         END IF
+         VSTEP=USTEP
+         IF (USTEP.EQ.USTEP0) THEN
+          TVSTEP=TUSTEP
+          TVSTPC=TUSTPC
+         ELSE
+          VSTEPU=VSTEP
+          DISC=W(NP)*VSTEPU*HBAROI(IRL)
+          VSTEPU=VSTEPU/ALTEXP
+          IF (ABS(DISC).LT.0.16) THEN
+           VSTEPU=VSTEPU*(1.+.5*DISC*(1.+.33333333*DISC* (1.+0.25*DISC*
+     *     (1.+0.2*DISC))))
+          ELSE
+           VSTEPU=VSTEPU/DISC*(EXP(DISC)-1.)
+          END IF
+          VSTP=VSTEPU/TSCAT
+          IPTH=B0PTH+B1PTH*VSTP
+          IF (IPTH.GT.NPTH) THEN
+           CALL AUSGB2
+           WRITE(KMPO,490) VSTP,IPTH,NPTH
+490        FORMAT (' ELECTR: OUT OF BOUNDS IPTH: VSTP,IPTH,NPTH=' , 1P ,
+     *      G15.6,2I10)
+           STOP
+          END IF
+          PTH=PTH0(IPTH)+VSTP*(PTH1(IPTH)+VSTP*PTH2(IPTH))
+          TVSTEP=PTH*VSTEPU
+          TVSTPC=PTH*VSTEP
+         END IF
+         ALPHA=VSTEP*LELEC*BNORM/EIE
+         TVSTPC=TVSTPC*(1.+0.04166667*ALPHA*ALPHA)
+         DE=DEDX*TVSTEP
+         EDEP=DE
+         EKEF=EKE-DE
+         EOLD=EIE
+         ENEW=EOLD-DE
+         CALL MSCAT
+         U0=U(NP)
+         V0=V(NP)
+         W0=W(NP)
+         FNORM=1.-0.5*(ALPHA*ALPHA)*(1.-0.75*(ALPHA*ALPHA))
+         F1SIN=(1.-FNORM)*SINB
+         F1COS=(1.-FNORM)*COSB
+         V1=V0*ALPHA*FNORM
+         U(NP)=U0*(1.-F1SIN*SINB)+W0*F1SIN*COSB+V1*SINB
+         V(NP)=FNORM*(V0-ALPHA*(U0*SINB-W0*COSB))
+         W(NP)=W0*(1.-F1COS*COSB)+U0*F1COS*SINB-V1*COSB
+         RADINV=1.5-0.5*(U(NP)**2+V(NP)**2+W(NP)**2)
+         U(NP)=U(NP)*RADINV
+         V(NP)=V(NP)*RADINV
+         W(NP)=W(NP)*RADINV
+         X(NP)=X(NP)+(VSTEP*0.5)*(U0+U(NP))
+         Y(NP)=Y(NP)+(VSTEP*0.5)*(V0+V(NP))
+         ZOLD = Z(NP)
+         Z(NP)=Z(NP)+(VSTEP*0.5)*(W0+W(NP))
+         TIME(NP)=TIME(NP)+TVSTPC*VC*E(NP)/SQRT((E(NP)-PRM)*(E(NP)+PRM))
+ 
+ 
+C   GENERATE CERENKOV PHOTONS
+         IF ( FNPRIM ) CALL CERENE(TVSTPC)
+C  ADD ELECTRONS TO THE LONGITUDINAL DEVELOPMENT
+C  FIND FIRST THE EQUIVALENT LEVELS
+         IF ( LLONGI ) THEN
+C  IF STARTING POINT BELOW LOWEST LEVEL THEN DON'T CHECK
+           IF ( HLONG(NSTEP) .LE. -ZOLD ) THEN
+             LPCT1 = LPCTE(NP)
+C  Z NEW IS PROBABLY ONLY LITTLE BELOW Z OLD, THEREFORE INCREMENTAL SEARCH
+             DO 6102 I1 = LPCT1,NSTEP
+               IF ( HLONG(I1) .LT. -Z(NP) ) GOTO 6103
+ 6102        CONTINUE
+             I1 = NSTEP + 1
+ 6103        CONTINUE
+             LPCT2 = I1 - 1
+             DO 495 I=LPCT1,LPCT2
+                PLONG(I,IQ(NP)) = PLONG(I,IQ(NP)) + 1.D0
+ 495         CONTINUE
+             LPCTE(NP) = LPCT2 + 1
+           ENDIF
+         ENDIF
+         DNEAR(NP)=DNEAR(NP)-VSTEP
+         IROLD=IR(NP)
+         CALL RMMAR(RNNO38,1,2)
+         PHI=RNNO38*TWOPI
+         LPHI=SINC1*PHI+SINC0
+         SINPHI=SIN1(LPHI)*PHI+SIN0(LPHI)
+         CPHI=PI5D2-PHI
+         LCPHI=SINC1*CPHI+SINC0
+         COSPHI=SIN1(LCPHI)*CPHI+SIN0(LCPHI)
+         A=U(NP)
+         B=V(NP)
+         CC=W(NP)
+         SINPS2=A*A+B*B
+         IF (SINPS2.LT.1.0E-10) THEN
+          U(NP)=SINTHE*COSPHI
+          V(NP)=SINTHE*SINPHI
+          W(NP)=CC*COSTHE
+         ELSE
+          SINPSI=SQRT(SINPS2)
+          US=SINTHE*COSPHI
+          VS=SINTHE*SINPHI
+          SINDEL=B*(1./SINPSI)
+          COSDEL=A*(1./SINPSI)
+          U(NP)=CC*COSDEL*US-SINDEL*VS+A*COSTHE
+          V(NP)=CC*SINDEL*US+COSDEL*VS+B*COSTHE
+          W(NP)=-SINPSI*US+CC*COSTHE
+         END IF
+         RADINV=1.5-0.5*(U(NP)**2+V(NP)**2+W(NP)**2)
+         U(NP)=U(NP)*RADINV
+         V(NP)=V(NP)*RADINV
+         W(NP)=W(NP)*RADINV
+         PEIE=PEIE-EDEP
+         EIE=PEIE
+         E(NP)=PEIE
+         IF((EIE.LE.ECUT(IRL)))GO TO 390
+         MEDOLD=MEDIUM
+         IF (MEDIUM.NE.0) THEN
+          EKEOLD=EKE
+          EKE=EIE-RM
+          ELKE=LOG(EKE)
+          LELKE=EKE1*ELKE+EKE0
+         END IF
+         IF (IRNEW.NE.IROLD) THEN
+          IR(NP)=IRNEW
+          IRL=IRNEW
+          MEDIUM=MED(IRL)
+         END IF
+         IF((EIE.LE.ECUT(IRL)))GO TO 390
+         IF (NEWOBS.GT.IOBS(NP)) THEN
+          CALL AUSGAB
+          IOBS(NP)=NEWOBS
+         END IF
+         IF((IDISC.LT.0))GO TO 420
+         IF((MEDIUM.NE.MEDOLD))GO TO 401
+         DEMFP=MAX(0.,DEMFP-TVSTEP*SIG)
+         IF(((DEMFP.LT.1.E-6)))GO TO452
+        GO TO 451
+452     CONTINUE
+        IF (LELEC.LT.0) THEN
+         SIGF=ESIG1(LELKE)*ELKE+ESIG0(LELKE)
+        ELSE
+         SIGF=PSIG1(LELKE)*ELKE+PSIG0(LELKE)
+        END IF
+        CALL RMMAR(RFICT,1,2)
+        IF(((RFICT.LE.SIGF/SIG0)))GO TO402
+       GO TO 401
+402    CONTINUE
+       IF ( .NOT. FNPRIM ) THEN
+        X(1)=0.
+        Y(1)=0.
+        EVTH(5)=X(1)
+        EVTH(6)=-Y(1)
+        IF (FIX1I) THEN
+         Z(1)=-FIXHEI
+         NP=1
+         LPCTE(1)=MIN(NSTEP,INT(THICK(FIXHEI)*THSTPI)+1)
+         SITHET=SQRT(1.D0-SECPAR(3)**2)
+         U(1)=SITHET*COS(-SECPAR(4))
+         V(1)=SITHET*SIN(-SECPAR(4))
+         W(1)=SECPAR(3)
+         RADINV=1.5-0.5*(U(1)**2+V(1)**2+W(1)**2)
+         U(1)=U(1)*RADINV
+         V(1)=V(1)*RADINV
+         W(1)=W(1)*RADINV
+        END IF
+        EVTH(7)=-Z(1)
+        CALL TOBUF(EVTH,0)
+C   OUTPUT OF EVENTHEADER TO THE CERENKOV FILE
+        IF (LCERFI) CALL TOBUFC(EVTH,0)
+        CALL COORIN(DBLE(-Z(1)))
+        TIME(1)=0.D0
+        FNPRIM =.TRUE.
+        IF (FPRINT) THEN
+         WRITE(KMPO,* )' FIRST INTERACTION AT ',EVTH(7)*0.01,' M'
+        END IF
+       END IF
+       IF (LELEC.LT.0) THEN
+        EBR1=EBR11(LELKE)*ELKE+EBR10(LELKE)
+        CALL RMMAR(RNNO24,1,2)
+        IF (RNNO24.LE.EBR1) THEN
+         GO TO 500
+        ELSE
+         IF (E(NP).LE.THMOLL) THEN
+          IF((EBR1.LE.0.0))GO TO 380
+          GO TO 500
+         END IF
+         CALL MOLLER
+        END IF
+        GO TO 380
+       END IF
+       PBR1=PBR11(LELKE)*ELKE+PBR10(LELKE)
+       CALL RMMAR(RNNO25,1,2)
+       IF((RNNO25.LT.PBR1))GO TO 500
+       PBR2=PBR21(LELKE)*ELKE+PBR20(LELKE)
+       IF (RNNO25.LT.PBR2) THEN
+        CALL BHABHA
+       ELSE
+        CALL ANNIH
+        GO TO 382
+       END IF
+      GO TO 381
+382   CONTINUE
+      RETURN
+500   CONTINUE
+      CALL BREMS
+      IF (IQ(NP).EQ.1) THEN
+       RETURN
+      ELSE
+       GO TO 380
+      END IF
+390   IF (EIE.GT.AE) THEN
+       IDR=1
+       IF (LELEC.LT.0) THEN
+        EDEP=PEIE-PRM
+       ELSE
+        EDEP=PEIE-PRM
+       END IF
+      ELSE
+       IDR=2
+       EDEP=PEIE-PRM
+      END IF
+      IF (LELEC.GT.0) THEN
+       IF (EDEP.LT.PEIE) THEN
+        CALL RMMAR(RD,2,2)
+        COSTHE=RD(1)
+        FLIP=RD(2)
+        IF((FLIP.LE.0.5))COSTHE=-COSTHE
+        SINTHE=SQRT(MAX(0.,1.0-COSTHE*COSTHE))
+        E(NP)=PRM
+        IQ(NP)=1
+        U(NP)=0.
+        V(NP)=0.
+        W(NP)=1.
+        CALL UPHI(2,1)
+        NP=NP+1
+        E(NP)=PRM
+        IQ(NP)=1
+        X(NP)=X(NP-1)
+        Y(NP)=Y(NP-1)
+        Z(NP)=Z(NP-1)
+        LPCTE(NP)=LPCTE(NP-1)
+        IR(NP)=IR(NP-1)
+        DNEAR(NP)=DNEAR(NP-1)
+        TIME(NP)=TIME(NP-1)
+        IGEN(NP)=IGEN(NP-1)
+        IOBS(NP)=IOBS(NP-1)
+        U(NP)=-U(NP-1)
+        V(NP)=-V(NP-1)
+        W(NP)=-W(NP-1)
+        RETURN
+       END IF
+      END IF
+      NP=NP-1
+      IRCODE=2
+      RETURN
+420   IF (LELEC.LT.0) THEN
+       EDEP=PEIE-PRM
+      ELSE
+       EDEP=PEIE+PRM
+      END IF
+      IRCODE=2
+      NP=NP-1
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/em.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/em.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/em.f	(revision 4308)
@@ -0,0 +1,100 @@
+      SUBROUTINE EM
+ 
+C-----------------------------------------------------------------------
+C  E(LECTRO) M(AGNETIC PARTICLES)
+C
+C  ROUTINE FOR TREATING EM PARTICLES
+C  THIS SUBROUTINE IS CALLED FROM BOX3
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION ENER
+      INTEGER          I
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' EM    : CURPAR=',1P,9E10.3)
+ 
+C  GET CORRECT PARTICLE ENERGY
+      IF     ( ITYPE  .EQ. 1 ) THEN
+        ENER = CURPAR(2)
+      ELSEIF ( ITYPE .EQ. 2  .OR.  ITYPE .EQ. 3 ) THEN
+        ENER  = SECPAR(2) * PAMA(2)
+      ELSE
+        WRITE(MONIOU,*) 'EM    : WRONG PARTICLE CODE =',ITYPE
+        RETURN
+      ENDIF
+ 
+C  LOOK FOR ENERGY OF EM PARTICLE
+*     IF ( ENER .LE. 1.D7 ) THEN
+C  EM-PARTICLE ENERGY IS BELOW LPM EFFECT, STORE IT TO SECPAR
+C  LPM LIMIT IS SET AT 1.*10**16 EV = 1.*10**7 GEV
+        DO 101  I = 1,8
+          SECPAR(I) = CURPAR(I)
+  101   CONTINUE
+        SECPAR( 9)  = GEN
+        SECPAR(10)  = ALEVEL
+ 
+C  CALL NKG IF SELECTED
+        IF ( FNKG ) THEN
+          CALL NKG( ENER )
+        ENDIF
+ 
+C  CALL EGS4 IF SELECTED ( PARTICLE IS TAKEN IN EGS FROM COMMON )
+        IF ( FEGS ) THEN
+          CALL EGS4( ENER )
+        ENDIF
+ 
+*     ELSE
+C  EM-PARTICLE ENERGY IS ABOVE LPM EFFECT AND MUST BE TREATED BY LPM,
+C  IF EM_PARTICLES ARE REQUESTED BY EGS OR NKG
+*       IF ( FNKG .OR. FEGS ) CALL LPM(ENER)
+*     ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/etadec.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/etadec.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/etadec.f	(revision 4308)
@@ -0,0 +1,182 @@
+      SUBROUTINE ETADEC
+ 
+C-----------------------------------------------------------------------
+C  ETA DEC(AY)
+C
+C  ROUTINE TREATES DECAY OF ETA
+C  DECAY WITH FULL KINEMATIC, ENERGY AND MOMENTA CONSERVED
+C  THIS SUBROUTINE IS CALLED FROM BOX3
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,DECAY.
+      COMMON /DECAY/   GAM345,COS345,PHI345
+      DOUBLE PRECISION GAM345(3),COS345(3),PHI345(3)
+*KEEP,EDECAY.
+      COMMON /EDECAY/  CETA
+      DOUBLE PRECISION CETA(5)
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION AUX1,AUX2,COSTH1,COSTH2,EETA2,FI1
+      INTEGER          I
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' ETADEC: CURPAR=',1P,9E10.3)
+ 
+C  SELECT MODE OF DECAY, IF NOT ALREADY SELECTED BY THE PARTICLE TYPE
+      IF ( ITYPE .EQ. 17 ) THEN
+        CALL RMMAR( RD,1,1 )
+        IF     ( RD(1) .LE. CETA(1) ) THEN
+          ITYPE = 71
+        ELSEIF ( RD(1) .LE. CETA(2) ) THEN
+          ITYPE = 72
+        ELSEIF ( RD(1) .LE. CETA(3) ) THEN
+          ITYPE = 73
+        ELSE
+          ITYPE = 74
+        ENDIF
+      ENDIF
+ 
+C  COPY COORDINATES INTO SECPAR
+      DO  1  I = 5,8
+        SECPAR(I) = CURPAR(I)
+  1   CONTINUE
+      SECPAR( 9)  = GEN
+      SECPAR(10)  = ALEVEL
+ 
+C  DECAY OF ETA  WITH 4 MODES
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  DECAY    ETA  ---->  GAMMA + GAMMA
+      IF     ( ITYPE .EQ. 71 ) THEN
+        EETA2  = 0.5D0 * GAMMA * PAMA(17)
+        CALL RMMAR( RD,2,1 )
+        AUX1   = 1.D0 + BETA * RD(1)
+        AUX2   = 1.D0 - BETA * RD(1)
+        COSTH1 = (BETA + RD(1)) / AUX1
+        COSTH2 = (BETA - RD(1)) / AUX2
+ 
+        SECPAR(1) = 1.D0
+C  FIRST GAMMA (WITH HIGHER ENERGY)
+        FI1       = PI2 * RD(2)
+        CALL ADDANG( COSTHE,PHI, COSTH1,FI1, SECPAR(3),SECPAR(4) )
+        IF ( SECPAR(3) .GT. C(29) ) THEN
+          SECPAR(2) = AUX1 * EETA2
+          CALL TSTACK
+        ENDIF
+C  SECOND GAMMA (WITH LOWER ENERGY)
+        CALL ADDANG( COSTHE,PHI, COSTH2,FI1+PI, SECPAR(3),SECPAR(4) )
+        IF ( SECPAR(3) .GT. C(29) ) THEN
+          SECPAR(2) = AUX2 * EETA2
+          CALL TSTACK
+        ENDIF
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  DECAY    ETA  ---->  PI(0) + PI(0) + PI(0)
+      ELSEIF ( ITYPE .EQ. 72 ) THEN
+        CALL DECAY6( PAMA(17), PAMA(7),PAMA(7),PAMA(7),
+     *               0.D0,0.D0,0.D0, 1.D0, 2 )
+        SECPAR(1) = 7.D0
+        DO 340  I = 1,3
+          CALL ADDANG( COSTHE,PHI, COS345(I),PHI345(I),
+     *                                SECPAR(3),SECPAR(4) )
+          IF ( SECPAR(3) .GT. C(29) ) THEN
+            SECPAR(2) = GAM345(I)
+            CALL TSTACK
+          ENDIF
+  340   CONTINUE
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  DECAY    ETA  ---->   PI(-) + PI(+) + PI(0)
+      ELSEIF ( ITYPE .EQ. 73 ) THEN
+        CALL DECAY6( PAMA(17), PAMA(9),PAMA(8),PAMA(7),
+     *               CETA(4),0.D0,0.D0, CETA(5), 2 )
+        DO 360  I = 1,3
+          CALL ADDANG( COSTHE,PHI, COS345(I),PHI345(I),
+     *                                  SECPAR(3),SECPAR(4) )
+          IF ( SECPAR(3) .GT. C(29) ) THEN
+            SECPAR(1) = 10 - I
+            SECPAR(2) = GAM345(I)
+            CALL TSTACK
+          ENDIF
+  360   CONTINUE
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  DECAY    ETA  ---->  PI(+) + PI(-) + GAMMA
+      ELSEIF ( ITYPE .EQ. 74 ) THEN
+        CALL DECAY6( PAMA(17), PAMA(8),PAMA(9),0.D0,
+     *               0.D0,0.D0,0.D0, 1.D0, 2 )
+        DO 380  I = 1,3
+          CALL ADDANG( COSTHE,PHI, COS345(I),PHI345(I),
+     *                                SECPAR(3),SECPAR(4) )
+          IF ( SECPAR(3) .GT. C(29) ) THEN
+            IF ( I .LE. 2 ) THEN
+              SECPAR(1) = 7 + I
+            ELSE
+              SECPAR(1) = 1.D0
+            ENDIF
+            SECPAR(2)   = GAM345(I)
+            CALL TSTACK
+          ENDIF
+  380   CONTINUE
+ 
+      ELSE
+        WRITE(MONIOU,*) 'ETADEC: UNEXPECTED PARTICLE CODE ITYPE=',ITYPE
+      ENDIF
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/flpsor.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/flpsor.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/flpsor.f	(revision 4308)
@@ -0,0 +1,63 @@
+      SUBROUTINE FLPSOR(A,N)
+ 
+C-----------------------------------------------------------------------
+C CERN PROGLIB# M103    FLPSOR          .VERSION KERNFOR  3.15  820113
+C ORIG. 29/04/78
+C-----------------------------------------------------------------------
+C   SORT THE ONE-DIMENSIONAL FLOATING POINT ARRAY A(1),...,A(N) BY
+C   INCREASING VALUES
+C
+C     PROGRAM  M103  TAKEN FROM CERN PROGRAM LIBRARY,  29-APR-78
+C-----------------------------------------------------------------------
+ 
+      DIMENSION A(*)
+      COMMON /SLATE/ LT(20),RT(20)
+      INTEGER R,RT
+C-----------------------------------------------------------------------
+ 
+      LEVEL=1
+      LT(1)=1
+      RT(1)=N
+   10 L=LT(LEVEL)
+      R=RT(LEVEL)
+      LEVEL=LEVEL-1
+   20 IF(R.GT.L) GO TO 200
+      IF(LEVEL) 50,50,10
+C
+C   SUBDIVIDE THE INTERVAL L,R
+C     L : LOWER LIMIT OF THE INTERVAL (INPUT)
+C     R : UPPER LIMIT OF THE INTERVAL (INPUT)
+C     J : UPPER LIMIT OF LOWER SUB-INTERVAL (OUTPUT)
+C     I : LOWER LIMIT OF UPPER SUB-INTERVAL (OUTPUT)
+C
+  200 I=L
+      J=R
+      M=(L+R)/2
+      X=A(M)
+  220 IF(A(I).GE.X) GO TO 230
+      I=I+1
+      GO TO 220
+  230 IF(A(J).LE.X) GO TO 231
+      J=J-1
+      GO TO 230
+C
+  231 IF(I.GT.J) GO TO 232
+      W=A(I)
+      A(I)=A(J)
+      A(J)=W
+      I=I+1
+      J=J-1
+      IF(I.LE.J) GO TO 220
+C
+  232 LEVEL=LEVEL+1
+      IF((R-I).GE.(J-L)) GO TO 30
+      LT(LEVEL)=L
+      RT(LEVEL)=J
+      L=I
+      GO TO 20
+   30 LT(LEVEL)=I
+      RT(LEVEL)=R
+      R=J
+      GO TO 20
+   50 RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/fstack.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/fstack.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/fstack.f	(revision 4308)
@@ -0,0 +1,127 @@
+      SUBROUTINE FSTACK
+ 
+C-----------------------------------------------------------------------
+C  F(ROM) STACK
+C
+C  GETS PARTICLE FROM STACK AND READS FROM DISK IF NECESSARY
+C  THIS SUBROUTINE IS CALLED FORM MAIN
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,ETHMAP.
+      COMMON /ETHMAP/  ECTMAP,ELEFT
+      DOUBLE PRECISION ECTMAP,ELEFT
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,IRET.
+      COMMON /IRET/    IRET1,IRET2
+      INTEGER          IRET1,IRET2
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,POLAR.
+      COMMON /POLAR/   POLART,POLARF
+      DOUBLE PRECISION POLART,POLARF
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKF.
+      COMMON /STACKF/  STACK,STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+      INTEGER          MAXSTK
+      PARAMETER        (MAXSTK = 12*340*2)
+      DOUBLE PRECISION STACK(MAXSTK)
+      INTEGER          STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+*KEND.
+ 
+      INTEGER I,ISTK,J
+      DATA ISTK / MAXSTK /
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'FSTACK:'
+ 
+C  STACK EMPTY, SOMETHING TO BE READ FROM DISK ?
+      IF ( STACKP .EQ. 0 ) THEN
+        IF ( NOUREC .EQ. 0 ) THEN
+          IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,224) NTO,NFROM
+ 224      FORMAT(/' NO MORE SECONDARIES FOUND ON STACK'/
+     *            ' ',I10,' PARTICLES WRITTEN TO STACK'/
+     *            ' ',I10,' PARTICLES READ FROM STACK' )
+          CURPAR(1) = 0.D0
+          IRET1 = 1
+          RETURN
+        ENDIF
+C  READ LAST BLOCK OF 340 PARTICLES FROM DISK
+        READ(EXST,REC=NOUREC) (STACK(I),I=1,ISTK/2)
+        NOUREC = NOUREC - 1
+        STACKP = ISTK/2
+      ENDIF
+ 
+      NFROM  = NFROM + 1
+      ICOUNT = ICOUNT - 1
+ 
+C  PUT PARTICLE FROM STACK INTO CURPAR
+      STACKP = STACKP - MAXLEN
+      DO  5  J = 1,8
+        CURPAR(J) = STACK(STACKP+J)
+    5 CONTINUE
+      GEN    = STACK(STACKP+ 9)
+      ALEVEL = STACK(STACKP+10)
+      POLART = STACK(STACKP+11)
+      POLARF = STACK(STACKP+12)
+      IF ( PAMA(NINT(CURPAR(1))) .NE. 0.D0 ) THEN
+        ELEFT  = ELEFT - CURPAR(2)*PAMA(NINT(CURPAR(1)))
+      ELSE
+        ELEFT  = ELEFT - CURPAR(2)
+      ENDIF
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,667) ICOUNT,(CURPAR(J),J=1,8)
+  667 FORMAT('+       ',I7,1X,1P,9E10.3)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/gam.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/gam.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/gam.f	(revision 4308)
@@ -0,0 +1,40 @@
+      DOUBLE PRECISION FUNCTION GAM( Z )
+ 
+C-----------------------------------------------------------------------
+C  GAM(MA FUNCTION)
+C
+C  EULER'S GAMMA FUNCTION
+C  THE INTERNAL PRECISION OF THIS FUNCTION IS ONLY SINGLE PRECISION.
+C  THIS FUNCION IS CALLED FROM NKG
+C  ARGUMENT:
+C   Z      = ARGUMENT OF GAMMA FUNCTION (0 < Z < 57)
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+ 
+      DOUBLE PRECISION U,Y,YY,Z
+C-----------------------------------------------------------------------
+ 
+C  CALCULATE CORRESPONDING FUNCTION VALUE IN INTERVAL 1 ... 2
+      Y   = MOD(Z,1.D0)
+      YY  = Y + 1.D0
+ 
+C  PARAMETRIZATION FOR VALUES IN INTERVAL 1 ... 2
+      GAM = 1.D0 + Y*(-0.5771017D0 + Y*(0.9858540D0+
+     *             Y*(-0.8764218D0 + Y*(0.8328212D0+
+     *             Y*(-0.5684729D0 + Y*(0.2548205D0+
+     *             Y*(-0.0514993D0  )))))))
+ 
+C  GET FUNCTION VALUE IN DESIRED INTERVAL BY ITERATION
+      IF ( Z .LT. 1.D0 ) THEN
+C  GAMMA(Z-1) IS  GAMMA(Z) / (Z-1)
+        GAM = GAM / Z
+      ELSE
+C  GAMMA(Z+1) IS  GAMMA(Z) * Z
+        DO  1  U = YY, Z-1.D0, 1.D0
+          GAM = GAM * U
+ 1      CONTINUE
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/garndm.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/garndm.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/garndm.f	(revision 4308)
@@ -0,0 +1,13 @@
+      REAL FUNCTION GARNDM(DUMMY)
+ 
+C-----------------------------------------------------------------------
+C  1 EXPONENTIALLY DISTRIBUTED RANDOM NUMBER
+C-----------------------------------------------------------------------
+ 
+      REAL RD(1)
+C-----------------------------------------------------------------------
+ 
+      CALL RMMAR(RD,1,1)
+      GARNDM = -LOG(RD(1))
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/gbrsgm.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/gbrsgm.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/gbrsgm.f	(revision 4308)
@@ -0,0 +1,112 @@
+      REAL FUNCTION GBRSGM(Z,E)
+ 
+C-----------------------------------------------------------------------
+C  CALCULATES MUON BREMSSTRAHLUNG CROSS SECTIONS
+C
+C  THIS SUBROUTINE IS TAKEN FROM GEANT321 PACKAGE (WITH MODIFICATIONS)
+C  CALCULATES CROSS-SECTION IN CURRENT MATERIAL FOR DISCRETE(HARD) MUON
+C  BREMSSTRAHLUNG.   (SIG IN BARN/ATOM)
+C  FOR A DESCRIPTION SEE: CERN PROGRAM LIBRARY LONG WRITEUP W5013 (1993)
+C  THIS FUNCTION IS CALLED FROM BOX2
+C  ARGUMENTS:
+C   Z (R4) = ATOMIC NUMBER OF PENETRATET MATERIAL
+C   E (R4) = TOTAL ENERGY OF MUON
+C
+C  AUTHOR  : L.URBAN
+C  MODIFIED: D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,MUPART.
+      COMMON /MUPART/  AMUPAR,BCUT,CMUON,FMUBRM,FMUORG
+      DOUBLE PRECISION AMUPAR(14),BCUT,CMUON(11)
+      LOGICAL          FMUBRM,FMUORG
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      REAL    C(52),AKSI,ALFA,E,ECMAX,FAC,GAM,
+     *        S,SS,X,XX,Y,YY,Z
+      INTEGER I,J,K
+      SAVE    C
+      DATA    AKSI/2.30/, ALFA/1.06/, GAM/0.63/
+      DATA    C/ 0.949313E-07,-0.819600E-07, 0.529075E-07,-0.832023E-08
+     +         , 0.539299E-09,-0.127042E-10,-0.165784E-08,-0.307788E-07
+     +         , 0.977905E-08,-0.113658E-08, 0.574481E-10,-0.106221E-11
+     +         , 0.968339E-09,-0.108640E-08,-0.177634E-09, 0.889497E-10
+     +         ,-0.876878E-11, 0.264303E-12, 0.216263E-08,-0.152680E-08
+     +         , 0.380989E-09,-0.455274E-10, 0.264172E-11,-0.596016E-13
+     +         , 0.444927E-09,-0.272978E-09, 0.645634E-10,-0.748783E-11
+     +         , 0.424890E-12,-0.940837E-14, 0.162289E-10,-0.362486E-11
+     +         ,-0.576652E-12, 0.211269E-12,-0.185482E-13, 0.522065E-15
+     +         ,-0.215590E-09, 0.112204E-09,-0.819133E-11, 0.145128E-12
+     +         ,-0.206029E-09, 0.559940E-10,-0.483350E-11, 0.134252E-12
+     +         ,-0.368469E-10, 0.999457E-11,-0.904967E-12, 0.272717E-13
+     +         ,-0.303446E-11, 0.853429E-12,-0.785466E-13, 0.236435E-14/
+C-----------------------------------------------------------------------
+ 
+      GBRSGM = 0.
+      IF ( E-PAMA(5) .LE. BCUT ) RETURN
+      ECMAX = E - CMUON(10) * Z**0.333333
+      IF ( ECMAX .LE. BCUT ) RETURN
+      X = LOG(E/PAMA(5))
+ 
+      S = 0.
+      YY = 1.
+      DO 30 I = 1,6
+        XX = 1.
+        DO 20 J = 1,6
+          K  = 6*I + J - 6
+          S  = S + C(K) * XX * YY
+          XX = XX * X
+  20    CONTINUE
+        YY = YY * CMUON(11)
+  30  CONTINUE
+      SS = 0.
+      YY = 1.
+      DO 50 I = 1,4
+        XX = 1.
+        DO 40 J = 1,4
+          K  = 4*I + J + 32
+          SS = SS + C(K) * XX * YY
+          XX = XX * X
+  40    CONTINUE
+        YY = YY * CMUON(11)
+  50  CONTINUE
+      S = S + Z * SS
+      IF ( S .LE. 0. ) RETURN
+ 
+      FAC = LOG(ECMAX/BCUT)
+      IF ( FAC .LE. 0. ) RETURN
+      FAC = Z * ( Z + AKSI * (1.+GAM*LOG(Z)) ) * FAC**ALFA
+      GBRSGM = FAC * S
+ 
+*     IF ( DEBUG ) WRITE(MDEBUG,444) Z,E,GBRSGM
+* 444 FORMAT(' GBRSGM: Z=',F3.0,' E=',1P,E10.4,' GBRSGM=',E10.4)
+ 
+  99  RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/gprsgm.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/gprsgm.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/gprsgm.f	(revision 4308)
@@ -0,0 +1,158 @@
+      REAL FUNCTION GPRSGM(Z,E)
+ 
+C-----------------------------------------------------------------------
+C  G(EANT) P(AI)R S(I)GM(A)
+C  CALCULATES MUON PAIR PRODUCTION CROSS SECTIONS
+C
+C  THIS SUBROUTINE IS TAKEN FROM GEANT321 PACKAGE (WITH MODIFICATIONS)
+C  CALCULATES CROSS-SECTION IN CURRENT MATERIAL FOR DISCRETE(HARD) MUON
+C  PAIR PRODUCTION.  (SIG IN BARN/ATOM)
+C  FOR A DESCRIPTION SEE: CERN PROGRAM LIBRARY LONG WRITEUP W5013 (1993)
+C  THIS SUBROUTINE IS CALLED FROM BOX2
+C  ARGUMENTS:
+C   Z (R4) = ATOMIC NUMBER OF PENETRATET MATERIAL
+C   E (R4) = TOTAL ENERGY OF MUON
+C
+C  AUTHOR  : L.URBAN
+C  MODIFIED: D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,MUPART.
+      COMMON /MUPART/  AMUPAR,BCUT,CMUON,FMUBRM,FMUORG
+      DOUBLE PRECISION AMUPAR(14),BCUT,CMUON(11)
+      LOGICAL          FMUBRM,FMUORG
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      REAL        C(100),C1(60),C2(40),AKSI,ALFA,E,ECMAX,ECMIN,FAC,GAM,
+     *            S,SS,VS,X,XX,Y,YY,Z
+      INTEGER     I,J,K
+      EQUIVALENCE (C(1),C1(1)),(C(61),C2(1))
+      SAVE        C
+      DATA        AKSI/1.16/,ALFA/3.46/,GAM/0.06/,VS/0.019/
+      DATA        ECMIN/2.044E-3/
+      DATA C1/0.230181E-08,-0.280842E-08, 0.137525E-08,-0.156503E-09
+     +      , 0.728088E-11,-0.122631E-12, 0.133014E-08,-0.160591E-09
+     +      ,-0.390814E-09, 0.314492E-10, 0.251296E-12,-0.574223E-13
+     +      , 0.604923E-09,-0.560766E-09, 0.660253E-09,-0.103474E-09
+     +      , 0.621338E-11,-0.135273E-12, 0.103739E-09, 0.710290E-09
+     +      ,-0.544755E-10,-0.211241E-11, 0.286443E-12,-0.644602E-14
+     +      , 0.332492E-09,-0.484785E-10, 0.126921E-10,-0.165217E-11
+     +      , 0.845273E-13,-0.143180E-14,-0.112267E-13, 0.113308E-11
+     +      , 0.292577E-12,-0.733441E-13, 0.475747E-14,-0.976279E-16
+     +      ,-0.112856E-07, 0.936398E-08,-0.291882E-08, 0.422266E-09
+     +      ,-0.279042E-10, 0.678485E-12, 0.112383E-07,-0.964400E-08
+     +      , 0.313121E-08,-0.440224E-09, 0.278668E-10,-0.643012E-12
+     +      ,-0.414131E-08, 0.355112E-08,-0.115035E-08, 0.158539E-09
+     +      ,-0.976788E-11, 0.216911E-12, 0.521380E-09,-0.442265E-09
+     +      , 0.141753E-09,-0.190826E-10, 0.114038E-11,-0.242085E-13/
+      DATA C2/0.572943E-10,-0.296824E-10, 0.630217E-11,-0.623179E-12
+     +      , 0.211467E-13,-0.143579E-10,-0.137247E-11, 0.118670E-11
+     +      ,-0.793091E-13, 0.124745E-14,-0.269884E-10, 0.125314E-10
+     +      ,-0.239259E-11, 0.181151E-12,-0.470277E-14,-0.342454E-11
+     +      , 0.976666E-12,-0.236792E-12, 0.213290E-13,-0.607799E-15
+     +      ,-0.748844E-12, 0.178214E-12,-0.226827E-13, 0.148441E-14
+     +      ,-0.367972E-16, 0.840330E-12, 0.820025E-11,-0.294797E-11
+     +      , 0.294669E-12,-0.970294E-14,-0.830636E-12,-0.309273E-11
+     +      , 0.124169E-11,-0.135879E-12, 0.481683E-14, 0.438223E-12
+     +      , 0.259162E-12,-0.149284E-12, 0.180170E-13,-0.677948E-15/
+C-----------------------------------------------------------------------
+      GPRSGM=0.
+C     IF ( ECMIN .GT. BCUT ) CUT=ECMIN
+ 
+      ECMAX  = E - CMUON(10) * Z**OB3
+      IF ( ECMAX .LE. BCUT ) RETURN
+      X = LOG(E/PAMA(5))
+      Y = LOG( BCUT/(VS*E) )
+ 
+      S = 0.
+      YY = 1.
+      DO 30 I = 1,2
+        XX = 1.
+        DO 20 J = 1,6
+          K  = 6*I + J - 6
+          S  = S + C(K) * XX * YY
+          XX = XX * X
+ 20     CONTINUE
+        YY = YY * Y
+ 30   CONTINUE
+      DO 50 I = 3,6
+        XX = 1.
+        DO 40 J = 1,6
+          K = 6*I + J - 6
+          IF ( Y .LE. 0. ) THEN
+            S = S + C(K) * XX * YY
+          ELSE
+            S = S + C(K+24) * XX * YY
+          ENDIF
+          XX = XX * X
+ 40     CONTINUE
+        YY = YY * Y
+ 50   CONTINUE
+      SS = 0.
+      YY = 1.
+      DO 70 I = 1,2
+        XX = 1.
+        DO 60 J = 1,5
+          K = 5*I + J + 55
+          SS = SS + C(K) * XX * YY
+          XX = XX * X
+ 60     CONTINUE
+        YY = YY * Y
+ 70   CONTINUE
+      DO 90 I = 3,5
+        XX = 1.
+        DO 80 J = 1,5
+          K = 5*I + J + 55
+          IF ( Y .LE. 0. ) THEN
+            SS = SS + C(K) * XX * YY
+          ELSE
+            SS = SS + C(K+15) * XX * YY
+          ENDIF
+          XX = XX * X
+ 80     CONTINUE
+        YY = YY * Y
+ 90   CONTINUE
+ 
+      S = S + Z * SS
+      IF ( S .LE. 0. ) RETURN
+C  DE/DX SHOULD BE MONOTON INCREASING AS A
+C  FUNCTION OF THE CUT
+C  SOLUTION: LIN. INTERPOLATION FOR 0.2*ECMAX<CUT<ECMAX
+      FAC = 2. * ( LOG(ECMAX/BCUT) )**ALFA
+      FAC = Z * ( Z + AKSI*( 1.+GAM*LOG(Z) ) ) * FAC
+      GPRSGM = FAC * S
+*     IF ( DEBUG ) WRITE(MDEBUG,444) Z,E,GPRSGM
+* 444 FORMAT(' GPRSGM: Z=',F3.0,' E=',1P,E10.4,' GPRSGM=',E10.4)
+ 
+ 99   RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/granor.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/granor.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/granor.f	(revision 4308)
@@ -0,0 +1,21 @@
+      SUBROUTINE GRANOR(A,B)
+ 
+C-----------------------------------------------------------------------
+C  TWO GAUSSIAN DISTRIBUTED RANDOM NUMBERS (MEAN=0, SIGMA=1)
+C
+C  RANDOM NUMBER GENERATORS USED BY THE GHEISHA ROUTINES
+C  ADAPTED FOR USE WITH THE CORSIKA RANDOM NUMBER GENERATORS
+C
+C  DESIGN  : J. KNAPP   IK1  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      REAL RD(2)
+C-----------------------------------------------------------------------
+ 
+      CALL RMMAR(RD,2,1)
+      U1 = SQRT(-2.*LOG(RD(1)))
+      U2 = RD(2) * 6.28318530718
+      A = COS(U2) * U1
+      B = SIN(U2) * U1
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/grndm.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/grndm.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/grndm.f	(revision 4308)
@@ -0,0 +1,60 @@
+      SUBROUTINE GRNDM(RVEC,LENV)
+ 
+C-----------------------------------------------------------------------
+C  G(ENERATOR OF) R(A)ND(O)M (NUMBERS)
+C
+C  THIS ROUTINE IS IDENTICAL TO RMMAR
+C  DESCRIPTION OF ALGORITHM SEE SUBROUTINE RMMAR
+C  THIS SUBROUTINE IS CALLED FROM GHEISHA ROUTINES
+C  ARGUMENTS:
+C   RVEC   = VECTOR FIELD TO BE FILLED WITH RANDOM NUMBERS
+C   LENV   = LENGTH OF VECTOR (# OF RANDNUMBERS TO BE GENERATED)
+C
+C  CERN PROGLIB# V113    RMMAR           .VERSION KERNFOR  1.0
+C  ORIG. 01/03/89 FCA + FJ
+C-----------------------------------------------------------------------
+ 
+      REAL RVEC(*)
+      COMMON /RANMA2/ IU(1030),JSEQ
+      COMMON /RANMA3/ TWOM24,TWOM48,CD,CM,CINT,MODCNS
+      INTEGER I97(0:1030),J97(0:1030),NTOT(0:1030),NTOT2(0:1030),
+     *        IJKL(0:1030)
+      REAL    U(1030),C(0:1030)
+      EQUIVALENCE (IJKL(0),IU(1)),(NTOT(0),IU(2)),(NTOT2(0),IU(3))
+      EQUIVALENCE (U(1),IU(4)),(C(0),IU(101)),(I97(0),IU(102))
+      EQUIVALENCE (J97(0),IU(103))
+C-----------------------------------------------------------------------
+ 
+      ISEQ = 1
+      IF ( ISEQ .GT. 0 ) JSEQ = ISEQ
+      IBASE = (JSEQ-1)*103
+ 
+      DO 100  IVEC = 1,LENV
+        UNI = U(IBASE+I97(IBASE))-U(IBASE+J97(IBASE))
+        IF ( UNI .LT. 0. ) UNI = UNI+1.
+        U(IBASE+I97(IBASE)) = UNI
+        I97(IBASE) = I97(IBASE)-1
+        IF ( I97(IBASE) .EQ. 0 ) I97(IBASE) = 97
+        J97(IBASE) = J97(IBASE)-1
+        IF ( J97(IBASE) .EQ. 0 ) J97(IBASE) = 97
+        C(IBASE)   = C(IBASE) - CD
+        IF ( C(IBASE) .LT. 0. ) C(IBASE) = C(IBASE)+CM
+        UNI = UNI-C(IBASE)
+        IF ( UNI .LT. 0. ) UNI = UNI+1.
+C  REPLACE EXACT ZEROES BY UNIFORM DISTR. *2**-24
+        IF ( UNI .EQ. 0. ) THEN
+          UNI = TWOM24*U(2)
+C  AN EXACT ZERO HERE IS VERY UNLIKELY, BUT LET'S BE SAFE.
+          IF ( UNI .EQ. 0. ) UNI = TWOM48
+        ENDIF
+        RVEC(IVEC) = UNI
+  100 CONTINUE
+ 
+      NTOT(IBASE) = NTOT(IBASE) + LENV
+      IF ( NTOT(IBASE) .GE. MODCNS )  THEN
+        NTOT2(IBASE) = NTOT2(IBASE) + 1
+        NTOT(IBASE)  = NTOT(IBASE) - MODCNS
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/hatch.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/hatch.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/hatch.f	(revision 4308)
@@ -0,0 +1,402 @@
+      SUBROUTINE HATCH
+C                                VERSION 4.00  --  26 JAN 1986/1900
+C******************************************************************
+C   SETUP WHICH THE USER IS EXPECTED TO DO BEFORE CALLING HATCH IS:
+C     1. SET 'NMED' TO THE NUMBER OF MEDIA TO BE USED.
+C     2. SET THE ARRAY 'MEDIA', WHICH CONTAINS THE NAMES OF THE
+C        MEDIA THAT ARE DESIRED.  THE CHARACTER FORMAT IS A1, SO
+C        THAT MEDIA(IB,IM) CONTAINS THE IB'TH BYTE OF THE NAME OF
+C        THE IM'TH MEDIUM IN A1 FORMAT.
+C     3. SET 'DUNIT', THE DISTANCE UNIT TO BE USED.
+C        DUNIT.GT.0 MEANS VALUE OF DUNIT IS LENGTH OF DISTANCE UNIT
+C        CENTIMETERS.  DUNIT.LT.0 MEANS USE THE RADIATION LENGTH OF
+C        THE ABS(DUNIT)'TH MEDIUM FOR THE DISTANCE UNIT.
+C     4. FILL THE ARRAY 'MED' WITH THE MEDIUM INDICES FOR THE
+C        REGIONS.
+C     5. FILL ARRAYS 'ECUT' AND 'PCUT' WITH THE ELECTRON AND PHOTON
+C        CUT-OFF ENERGIES FOR EACH REGION RESPECTIVELY.  SETUP WILL
+C        RAISE THESE IF NECESSARY TO MAKE THEM AT LEAST AS LARGE AS
+C        THE REGION'S MEDIUM'S AE AND AP RESPECTIVELY.
+C     6. FILL 'MED' ARRAY.  MED(IR) IS THE MEDIUM INDEX FOR REGION
+C        IR.  A ZERO MEDIUM INDEX MEANS THE REGION IS IN A VACUUM.
+C     7. FILL THE ARRAY 'IRAYLR' WITH 1 FOR EACH REGION IN WHICH
+C        RAYLEIGH (COHERENT) SCATTERING IS TO BE INCLUDED.
+C******************************************************************
+      CHARACTER MBUF*72,MDLABL*8
+      DIMENSION ZEROS(3)
+CNOTE: ABOVE IS ZEROS OF SINE, 0,PI,TWOPI
+      COMMON/BOUNDS/ECUT(6),PCUT(6),VACDST
+      COMMON/BREMPR/DL1(6),DL2(6),DL3(6),DL4(6),DL5(6),DL6(6),DELCM, ALP
+     *HI(2),BPAR(2),DELPOS(2),PWR2I(50)
+      COMMON/ELECIN/EKELIM,ICOMP,EKE0,EKE1,CMFP0,CMFP1,RANGE0,RANGE1, XR
+     *0,TEFF0,BLCC,XCC,PICMP0(1),PICMP1(1),EICMP0(1),EICMP1(1),MPEEM(1),
+     * ESIG0(500),ESIG1(500),PSIG0(500),PSIG1(500),EDEDX0(500),EDEDX1(50
+     *0),PDEDX0(500),PDEDX1(500),EBR10(500),EBR11(500),PBR10(500),PBR11(
+     *500),PBR20(500),PBR21(500),TMXS0(500),TMXS1(500),CMFPE0(1),CMFPE1(
+     *1),CMFPP0(1),CMFPP1(1),ERANG0(1),ERANG1(1),PRANG0(1),PRANG1(1),CXC
+     *2E0(1),CXC2E1(1),CXC2P0(1),CXC2P1(1),CLXAE0(1),CLXAE1(1),CLXAP0(1)
+     *,CLXAP1(1), THR0(1,1),THR1(1,1),THR2(1,1),THRI0(1,1),THRI1(1,1),TH
+     *RI2(1,1),FSTEP(16),FSQR(16),MSMAP(200), VERT1(1000),VERT2(100,16),
+     *MSTEPS,JRMAX,MXV1, MXV2,NBLC,NRNTH,NRNTHI,BLC0,BLC1,RTHR0,RTHR1,RT
+     *HRI0,RTHRI1
+      COMMON /MEDIA/ NMED, RLC,RLDU,RLDUI,RHO,MSGE,MGE,MSEKE,MEKE,MLEKE,
+     *MCMFP,MRANGE,IRAYLM,HBARO(6),HBAROI(6)
+      CHARACTER MEDIA*24
+      COMMON/MEDIAC/MEDIA
+      COMMON/MISC/KMPI,KMPO,DUNIT,NOSCAT,MED(6),RHOR(6),IRAYLR(6)
+      COMMON/PHOTIN/EBINDA,GE0,GE1, MPGEM(1),GMFP0(500),GMFP1(500),GBR10
+     *(500),GBR11(500),GBR20(500),GBR21(500),GBR30(500),GBR31(500),GBR40
+     *(500),GBR41(500),NGR,RCO0,RCO1, RSCT0(100),RSCT1(100), COHE0(500),
+     *COHE1(500)
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/THRESH/RMT2,RMSQ,ESCD2,AP,API,AE,UP,UE,TE,THMOLL
+      COMMON/UPHIIN/SINC0,SINC1,SIN0(20002),SIN1(20002)
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      DATA MDLABL/' MEDIUM='/,LMDL/8/,LMDN/24/,DUNITO/1./
+      DATA I1ST/1/,NSINSS/37/,MXSINC/20002/,ISTEST/0/,NRNA/1000/
+510   FORMAT(1X,14I5)
+520   FORMAT(1X,1P,5E14.5)
+530   FORMAT(A72)
+      IF (I1ST.NE.0) THEN
+       I1ST=0
+       PRM=RM
+       RMI=1./PRM
+       PRMT2=2.D0*PRM
+       PZERO=0.0D0
+       NISUB=MXSINC-2
+       FNSSS=NSINSS
+       WID=PI5D2/REAL(NISUB)
+       WSS=WID/(FNSSS-1.0)
+       ZEROS(1)=0.
+       ZEROS(2)=PI
+       ZEROS(3)=TWOPI
+        DO 541 ISUB=1,MXSINC
+        SX=0.
+        SY=0.
+        SXX=0.
+        SXY=0.
+        XS0=WID*REAL(ISUB-2)
+        XS1=XS0+WID
+        IZ=0
+         DO 551 IZZ=1,3
+         IF ((XS0.LE.ZEROS(IZZ)).AND.(ZEROS(IZZ).LE.XS1)) THEN
+          IZ=IZZ
+          GO TO552
+         END IF
+551     CONTINUE
+552     CONTINUE
+        IF (IZ.EQ.0) THEN
+         XSI=XS0
+        ELSE
+         XSI=ZEROS(IZ)
+        END IF
+         DO 561 ISS=1,NSINSS
+         XS=WID*REAL(ISUB-2)+WSS*REAL(ISS-1)-XSI
+         YS=SIN(XS+XSI)
+         SX=SX+XS
+         SY=SY+YS
+         SXX=SXX+XS*XS
+         SXY=SXY+XS*YS
+561     CONTINUE
+562     CONTINUE
+        IF (IZ.NE.0) THEN
+         SIN1(ISUB)=SXY/SXX
+         SIN0(ISUB)=-SIN1(ISUB)*XSI
+        ELSE
+         DEL=FNSSS*SXX-SX*SX
+         SIN1(ISUB)=(FNSSS*SXY-SY*SX)/DEL
+         SIN0(ISUB)=(SY*SXX-SX*SXY)/DEL - SIN1(ISUB)*XSI
+        END IF
+541    CONTINUE
+542    CONTINUE
+       SINC0=2.0
+       SINC1=1.0/WID
+       IF (ISTEST.NE.0) THEN
+        ADEV=0.
+        RDEV=0.
+        S2C2MN=10.
+        S2C2MX=0.
+         DO 571 ISUB=1,NISUB
+          DO 581 ISS=1,NSINSS
+          THETA=WID*REAL(ISUB-1)+WSS*REAL(ISS-1)
+          CTHET=PI5D2-THETA
+          LTHETA=SINC1*THETA+SINC0
+          LCTHET=SINC1*CTHET+SINC0
+          SINTHE=SIN1(LTHETA)*THETA+SIN0(LTHETA)
+          COSTHE=SIN1(LCTHET)*CTHET+SIN0(LCTHET)
+          SINT=SIN(THETA)
+          COST=COS(THETA)
+          ASD=ABS(SINTHE-SINT)
+          ACD=ABS(COSTHE-COST)
+          ADEV=MAX(ADEV,ASD,ACD)
+          IF((SINT.NE.0.0))RDEV=MAX(RDEV,ASD/ABS(SINT))
+          IF((COST.NE.0.0))RDEV=MAX(RDEV,ACD/ABS(COST))
+          S2C2=SINTHE**2+COSTHE**2
+          S2C2MN=MIN(S2C2MN,S2C2)
+          S2C2MX=MAX(S2C2MX,S2C2)
+          IF (ISUB.LT.11) THEN
+           WRITE(KMPO,590)THETA,SINTHE,SINT,COSTHE,COST
+590        FORMAT(1P,5E20.7)
+          END IF
+581      CONTINUE
+582      CONTINUE
+571     CONTINUE
+572     CONTINUE
+        WRITE(KMPO,600)MXSINC,NSINSS
+600     FORMAT(' SINE TESTS,MXSINC,NSINSS=',2I5)
+        WRITE(KMPO,610)ADEV,RDEV,S2C2MN,S2C2MX
+610     FORMAT(' ADEV,RDEV,S2C2(MN,MX) =',1P,4E16.8)
+        ADEV=0.
+        RDEV=0.
+        S2C2MN=10.
+        S2C2MX=0.
+         DO 621 IRN=1,NRNA
+         CALL RMMAR(THETA,1,2)
+         THETA=THETA*PI5D2
+         CTHET=PI5D2-THETA
+         LTHETA=SINC1*THETA+SINC0
+         LCTHET=SINC1*CTHET+SINC0
+         SINTHE=SIN1(LTHETA)*THETA+SIN0(LTHETA)
+         COSTHE=SIN1(LCTHET)*CTHET+SIN0(LCTHET)
+         SINT=SIN(THETA)
+         COST=COS(THETA)
+         ASD=ABS(SINTHE-SINT)
+         ACD=ABS(COSTHE-COST)
+         ADEV=MAX(ADEV,ASD,ACD)
+         IF((SINT.NE.0.0))RDEV=MAX(RDEV,ASD/ABS(SINT))
+         IF((COST.NE.0.0))RDEV=MAX(RDEV,ACD/ABS(COST))
+         S2C2=SINTHE**2+COSTHE**2
+         S2C2MN=MIN(S2C2MN,S2C2)
+         S2C2MX=MAX(S2C2MX,S2C2)
+621     CONTINUE
+622     CONTINUE
+        WRITE(KMPO,630)NRNA
+630     FORMAT(' TEST AT ',I7,' RANDOM ANGLES IN (0,5*PI/2)')
+        WRITE(KMPO,640)ADEV,RDEV,S2C2MN,S2C2MX
+640     FORMAT(' ADEV,RDEV,S2C2(MN,MX) =',1P,4E16.8)
+       END IF
+       P=1.
+        DO 651 I=1,50
+        PWR2I(I)=P
+        P=P*.5
+651    CONTINUE
+652    CONTINUE
+      END IF
+       DO 661 IM=1,NMED
+670    CONTINUE
+        DO 671 I=1,6
+        IF (IRAYLR(I).EQ.1.AND.MED(I).EQ.IM) THEN
+         IRAYLM=1
+         GO TO 672
+        END IF
+671    CONTINUE
+672    CONTINUE
+661   CONTINUE
+662   CONTINUE
+      REWIND KMPI
+      NM=0
+       DO 681 IM=1,NMED
+       LOK=0
+       IF (IRAYLM.EQ.1) THEN
+        WRITE(KMPO,690)IM
+690     FORMAT(' RAYLEIGH OPTION REQUESTED FOR MEDIUM NUMBER',I3,/)
+       END IF
+681   CONTINUE
+682   CONTINUE
+700   CONTINUE
+701    CONTINUE
+710    CONTINUE
+711     CONTINUE
+        READ(KMPI,530,END=720)MBUF
+         DO 731 IB=1,LMDL
+         IF((MBUF(IB:IB).NE.MDLABL(IB:IB)))GO TO 711
+731     CONTINUE
+732     CONTINUE
+740     CONTINUE
+         DO 741 IM=1,NMED
+          DO 751 IB=1,LMDN
+          IL=LMDL+IB
+          IF((MBUF(IL:IL).NE.MEDIA(IB:IB)))GO TO 741
+          IF((IB.EQ.LMDN))GO TO 712
+751      CONTINUE
+752      CONTINUE
+741     CONTINUE
+742     CONTINUE
+       GO TO 711
+712    CONTINUE
+       IF((LOK.NE.0))GO TO 710
+       LOK=1
+       NM=NM+1
+       WRITE(KMPO,760)IM,MBUF
+760    FORMAT(' DATA FOR MEDIUM #',I3,', WHICH IS:',A72)
+       READ(KMPI,770)(MBUF(I:I),I=1,5),RHO,NE
+770    FORMAT(5A1,5X,F11.0,4X,I2)
+       WRITE(KMPO,780)(MBUF(I:I),I=1,5),RHO,NE
+780    FORMAT(5A1,',RHO=',1P,G11.4, ',NE=',I2,',COMPOSITION IS :')
+        DO 791 IE=1,NE
+        READ(KMPI,530)MBUF
+        WRITE(KMPO,530)MBUF
+791    CONTINUE
+792    CONTINUE
+       READ(KMPI,520)RLC,AE,AP,UE,UP
+       TE=AE-RM
+       THMOLL=TE*2. + RM
+       READ(KMPI,510)MSGE,MGE,MSEKE,MEKE,MLEKE,MCMFP,MRANGE,IRAYL
+       NSGE=MSGE
+       NGE=MGE
+       NSEKE=MSEKE
+       NEKE=MEKE
+       NLEKE=MLEKE
+       NCMFP=MCMFP
+       NRANGE=MRANGE
+       READ(KMPI,520)(DL1(I),DL2(I),DL3(I),DL4(I),DL5(I),DL6(I),I=1,6)
+       READ(KMPI,520)DELCM,(ALPHI(I),BPAR(I),DELPOS(I),I=1,2)
+       READ(KMPI,520)XR0,TEFF0,BLCC,XCC
+       READ(KMPI,520)EKE0,EKE1
+       READ(KMPI,520)(ESIG0(I),ESIG1(I),PSIG0(I),PSIG1(I),EDEDX0(I),EDED
+     * X1(I),PDEDX0(I),PDEDX1(I),EBR10(I),EBR11(I),PBR10(I),PBR11(I),PBR
+     * 20(I),PBR21(I),TMXS0(I),TMXS1(I),I=1,NEKE)
+       READ(KMPI,520)EBINDA,GE0,GE1
+       READ(KMPI,520)(GMFP0(I),GMFP1(I),GBR10(I),GBR11(I),GBR20(I),GBR21
+     * (I),GBR30(I),GBR31(I),GBR40(I),GBR41(I),I=1,NGE)
+       IF (IRAYLM.EQ.1.AND.IRAYL.NE.1) THEN
+        WRITE(KMPO,800)IM
+800     FORMAT(' STOPPED IN HATCH: REQUESTED RAYLEIGH OPTION FOR MEDIUM'
+     *  ,I3/ ' BUT RAYLEIGH DATA NOT INCLUDED IN DATA CREATED BY PEGS.')
+        STOP
+       END IF
+       IF (IRAYL.EQ.1) THEN
+        READ(KMPI,510)NGR
+        NGRIM=NGR
+        READ(KMPI,520)RCO0,RCO1
+        READ(KMPI,520)(RSCT0(I),RSCT1(I),I=1,NGRIM)
+        READ(KMPI,520)(COHE0(I),COHE1(I),I=1,NGE)
+        IF (IRAYLM.NE.1) THEN
+         WRITE(KMPO,810)IM
+810      FORMAT(' RAYLEIGH DATA AVAILABLE FOR MEDIUM',I3,' BUT OPTION ',
+     *    'NOT REQUESTED.',/)
+        END IF
+       END IF
+       IF((NM.GE.NMED))GO TO702
+      GO TO 701
+702   CONTINUE
+      DUNITR=DUNIT
+      IF (DUNIT.LT.0.0) THEN
+       MD=MAX(1,MIN(1,IFIX(-DUNIT)))
+       DUNIT=RLC
+      END IF
+      IF (DUNIT.NE.1.0) THEN
+       WRITE(KMPO,820)DUNITR,DUNIT
+820    FORMAT(' DUNIT REQUESTED&USED ARE:',1P,2E14.5,'(CM.)')
+      END IF
+       DO 831 IM=1,NMED
+       DFACT=RLC/DUNIT
+       DFACTI=1.0/DFACT
+       I=1
+        GO TO 843
+841     I=I+1
+843     IF(I-(MEKE).GT.0)GO TO 842
+        ESIG0(I)=ESIG0(I)*DFACTI
+        ESIG1(I)=ESIG1(I)*DFACTI
+        PSIG0(I)=PSIG0(I)*DFACTI
+        PSIG1(I)=PSIG1(I)*DFACTI
+        EDEDX0(I)=EDEDX0(I)*DFACTI
+        EDEDX1(I)=EDEDX1(I)*DFACTI
+        PDEDX0(I)=PDEDX0(I)*DFACTI
+        PDEDX1(I)=PDEDX1(I)*DFACTI
+        TMXS0(I)=TMXS0(I)*DFACT
+        TMXS1(I)=TMXS1(I)*DFACT
+       GO TO 841
+842    CONTINUE
+       I=1
+        GO TO 853
+851     I=I+1
+853     IF(I-(MLEKE).GT.0)GO TO 852
+        ERANG0(I)=ERANG0(I)*DFACT
+        ERANG1(I)=ERANG1(I)*DFACT
+        PRANG0(I)=PRANG0(I)*DFACT
+        PRANG1(I)=PRANG1(I)*DFACT
+       GO TO 851
+852    CONTINUE
+       TEFF0=TEFF0*DFACT
+       BLCC=BLCC*DFACTI
+       XCC=XCC*SQRT(DFACTI)
+       RLDU=RLC/DUNIT
+       RLDUI=1./RLDU
+       I=1
+        GO TO 863
+861     I=I+1
+863     IF(I-(MGE).GT.0)GO TO 862
+        GMFP0(I)=GMFP0(I)*DFACT
+        GMFP1(I)=GMFP1(I)*DFACT
+       GO TO 861
+862    CONTINUE
+831   CONTINUE
+832   CONTINUE
+      VACDST=VACDST*DUNITO/DUNIT
+      DUNITO=DUNIT
+       DO 871 JR=1,6
+       MD=MED(JR)
+       IF ((MD.GE.1).AND.(MD.LE.NMED)) THEN
+        ECUT(JR)=MAX(ECUT(JR),AE,AP+1.1*RM)
+        PCUT(JR)=MAX(PCUT(JR),AP)
+        IF((RHOR(JR).EQ.0.0))RHOR(JR)=RHO
+       END IF
+871   CONTINUE
+872   CONTINUE
+      IF (NMED.EQ.1) THEN
+       WRITE(KMPO,880)
+880    FORMAT(' EGS SUCCESSFULLY ''HATCHED'' FOR ONE MEDIUM.')
+      ELSE
+       WRITE(KMPO,890)NMED
+890    FORMAT(' EGS SUCCESSFULLY ''HATCHED'' FOR ',I5,' MEDIA.')
+      END IF
+      RETURN
+720   WRITE(KMPO,900)KMPI
+900   FORMAT(' END OF FILE ON UNIT ',I2,//, ' PROGRAM STOPPED IN HATCH '
+     *, 'BECAUSE THE'/ ' FOLLOWING NAMES WERE NOT RECOGNIZED:',/)
+       DO 911 IM=1,NMED
+       IF (LOK.NE.1) THEN
+        WRITE(KMPO,920)(MEDIA(I:I),I=1,LMDN)
+920     FORMAT(40X,'''',24A1,'''')
+       END IF
+911   CONTINUE
+912   CONTINUE
+      STOP
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/hdpm.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/hdpm.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/hdpm.f	(revision 4308)
@@ -0,0 +1,875 @@
+      SUBROUTINE HDPM
+ 
+C-----------------------------------------------------------------------
+C  H(ADRONIC) D(UAL) P(ARTON) M(ODEL)
+C
+C  GENERATOR OF HADRONIC COLLISION INSPIRED BY DUAL PARTON MODEL
+C  THIS SUBROUTINE IS CALLED FROM SDPM
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,DPMFLG.
+      COMMON /DPMFLG/  NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+      INTEGER          NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+*KEEP,ELADPM.
+      COMMON /ELADPM/  ELMEAN,ELMEAA,IELDPM,IELDPA
+      DOUBLE PRECISION ELMEAN(37),ELMEAA(37)
+      INTEGER          IELDPM(37,13),IELDPA(37,13)
+*KEEP,ELASTY.
+      COMMON /ELASTY/  ELAST,IELIS,IELHM,IELNU,IELPI
+      DOUBLE PRECISION ELAST
+      INTEGER          IELIS(20),IELHM(20),IELNU(20),IELPI(20)
+*KEEP,INDICE.
+      COMMON /INDICE/  NNUCN,NKA0,NHYPN,NETA,NETAS,NPIZER,
+     *                 NNC,NKC,NHC,NPC,NCH,NNN,NKN,NHN,NET,NPN
+      INTEGER          NNUCN(2:3),NKA0(2:3),NHYPN(2:3),NETA(2:3,1:4),
+     *                 NETAS(2:3),NPIZER(2:3),
+     *                 NNC,NKC,NHC,NPC,NCH,NNN,NKN,NHN,NET,NPN
+*KEEP,INTER.
+      COMMON /INTER/   AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN,
+     *                 IDIF,ITAR
+      DOUBLE PRECISION AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN
+      INTEGER          IDIF,ITAR
+*KEEP,ISTA.
+      COMMON /ISTA/    IFINET,IFINNU,IFINKA,IFINPI,IFINHY
+      INTEGER          IFINET,IFINNU,IFINKA,IFINPI,IFINHY
+*KEEP,LEPAR.
+      COMMON /LEPAR/   LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS
+      INTEGER          LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS
+*KEEP,MULT.
+      COMMON /MULT/    EKINL,MSMM,MULTMA,MULTOT
+      DOUBLE PRECISION EKINL
+      INTEGER          MSMM,MULTMA(37,13),MULTOT(37,13)
+*KEEP,NEWPAR.
+      COMMON /NEWPAR/  EA,PT2,PX,PY,TMAS,YR,ITYP,
+     *                 IA1,IA2,IB1,IB2,IC1,IC2,ID1,ID2,IE1,IE2,IF1,IF2,
+     *                 IG1,IG2,IH1,IH2,II1,II2,IJ1,NTOT
+      DOUBLE PRECISION EA(3000),PT2(3000),PX(3000),PY(3000),TMAS(3000),
+     *                 YR(3000)
+      INTEGER          ITYP(3000),
+     *                 IA1,IA2,IB1,IB2,IC1,IC2,ID1,ID2,IE1,IE2,IF1,IF2,
+     *                 IG1,IG2,IH1,IH2,II1,II2,IJ1,NTOT
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RATIOS.
+      COMMON /RATIOS/  RPI0R,RPIER,RPEKR,RPEKNR,PPICH,PPINCH,PPNKCH,
+     *                 ISEL,NEUTOT,NTOTEM
+      DOUBLE PRECISION RPI0R,RPIER,RPEKR,RPEKNR,PPICH,PPINCH,PPNKCH
+      INTEGER          ISEL,NEUTOT,NTOTEM
+*KEEP,RESON.
+      COMMON /RESON/   RDRES,RESRAN,IRESPAR
+      REAL             RDRES(2),RESRAN(1000)
+      INTEGER          IRESPAR
+ 
+*KEEP,REST.
+      COMMON /REST/    CONTNE,TAR,LT
+      DOUBLE PRECISION CONTNE(3),TAR
+      INTEGER          LT
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444   FORMAT(' HDPM  : CURPAR=',1P,9E10.3)
+ 
+C  SET ANTI-LEADER TO PROTON OR NEUTRON; TARGET IS ALWAYS NUCLEON
+      CALL RMMAR( RD,1,1 )
+      IF ( RD(1) .LE. CONTNE(LT) ) THEN
+        ITAR = 13
+      ELSE
+        ITAR = 14
+      ENDIF
+ 
+ 
+C  CALCULATE LAB AND CM ENERGY
+      IF ( ITYPE .NE. 1 ) THEN
+        ELAB  = PAMA(ITYPE) * GAMMA
+        PLAB  = ELAB * BETA
+        S     = PAMA(ITYPE)**2 + PAMA(ITAR)**2 + 2.D0*PAMA(ITAR)*ELAB
+      ELSE
+C  FOR GAMMA-INDUCED REACTION TAKE PI(0) AS LEADING PARTICLE
+        ITYPE = 7
+        ELAB  = GAMMA
+        PLAB  = ELAB
+        S     = PAMA(ITAR)**2 + 2.D0*PAMA(ITAR)*ELAB
+      ENDIF
+ 
+      ECMDPM  = SQRT(S)
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'HDPM  : ITYPE,ELAB,PLAB,S,ECMDPM=',
+     *             ITYPE,SNGL(ELAB),SNGL(PLAB),SNGL(S),SNGL(ECMDPM)
+ 
+C  LN(S), LN(S)**2 AND RAPIDITY OF C. M. SYSTEM IN LAB
+      SLOG    = LOG(S)
+      SLOGSQ  = SLOG**2
+      SMLOG   = LOG( 2.D0 * PAMA(ITAR) * ELAB )
+      ELABLG  = LOG(ELAB)
+      EPLUSP  = ELAB + PLAB
+*     YCM = 0.5D0 * LOG( (ELAB+PAMA(ITAR)+PLAB)/(ELAB+PAMA(ITAR)-PLAB) )
+      YCM = 0.5D0 * LOG( (EPLUSP**2     +PAMA(ITAR)*EPLUSP)/
+     *                   (PAMA(ITYPE)**2+PAMA(ITAR)*EPLUSP) )
+      IF ( DEBUG ) WRITE(MDEBUG,*)'HDPM  : SLOG,SLOGSQ,YCM=',
+     *                    SNGL(SLOG),SNGL(SLOGSQ),SNGL(YCM)
+ 
+C-----------------------------------------------------------------------
+C  RETURN POINT IF CALCULATION OF PARTICLES GOES WRONG
+   1  CONTINUE
+ 
+      IF ( ITYPE .NE. 7 ) THEN
+C  CHOOSE NUMBER OF INTERACTIONS IN TARGET
+        CALL TARINT
+      ELSE
+C  FOR GAMMA-INDUCED REACTIONS TAKE ALWAYS ONE COLLISION
+        GNU = 1.D0
+      ENDIF
+ 
+C-----------------------------------------------------------------------
+C  NO DIFFRACTION IF
+C  OR       THE NUMBER OF INTERACTIONS IN TARGET IS CHOSEN RANDOMLY
+C     AND   MORE THAN ONE INTERACTION TAKES PLACE
+C  OR       PRIMARY PARTICLE IS GAMMA (PI0)
+C  NOW NFLDIF DECIDES WHETHER DIFFRACTIVE PROCESS POSSIBLE OR NOT
+      IF ( ( NFLAIN.EQ.0 .AND. GNU.GT.1.D0 .AND. NFLDIF.EQ.0 )
+     *      .OR. ( ITYPE .EQ. 7 ) ) THEN
+        IDIF = 0
+      ELSE
+C  SET DIFFRACTION FLAG IF RANDOM NUMBER < PROBABILITY
+        CALL RMMAR( RD,1,1 )
+C  IDIF IS 0 : NO DIFFRACTION ; IDIF IS 1 : DIFFRACTION
+C  DIFFRACTION RISES WITH ENERGY AND SATURATES AT 10000 GEV
+C  ### DAS TUT ES ABER NICHT: ES IST KONSTANT 0.15 (SIEHE DPFUNC) !!!!
+        IF ( RD(1) .GT. DPFUNC(ECMDPM) ) THEN
+          IDIF = 0
+        ELSE
+          IDIF = 1
+        ENDIF
+      ENDIF
+ 
+ 
+C  PRINTOUT FOR DEBUG
+      IF ( DEBUG ) THEN
+        WRITE(MDEBUG,*) '    DIFFRACTIVE INTERACTION (0/1) = ',IDIF
+      ENDIF
+ 
+C  SET COUNTER FOR REPEAT TO 0
+      NREPRD = 0
+ 
+C  GENERATION OF INTERACTION
+ 1919 CONTINUE
+ 
+C  FLAG TO CHECK NUMBER OF SECONDARIES;
+C  IS CHANGED TO 1 IF SECONDARY MULTIPLICITY IS LOW
+      ISEL   = 0
+C  SET LEADING PARTICLE TO INCOMING PARTICLE AND ANTI-LEADER TO NUCLEON
+C  (AS IT COMES FROM TARGET NUCLEUS) BOTH MAY BE CHANGED BY LEPACX
+      LEPAR1 = ITYPE
+      LEPAR2 = ITAR
+ 
+      IF ( IDIF .EQ. 0 ) THEN
+C-----------------------------------------------------------------------
+C  NON SINGLE DIFFRACTIVE PROCESS STARTS HERE
+ 
+        CALL NSD
+C  CHARGE EXCHANGE ENABLED? EXCHANGE LEADER AND ANTI-LEADER
+        LASTPI = 0
+        NRESPC = 0
+        NRESPN = 0
+        NCPLUS = 0
+        IF ( NFLCHE .EQ. 0 ) THEN
+          CALL LEPACX( ECMDPM,ELABLG,LEPAR1,1 )
+          CALL LEPACX( ECMDPM,ELABLG,LEPAR2,2 )
+        ENDIF
+ 1921   CONTINUE
+        CALL RNEGBI( NCH,AVCH,ECMDPM )
+C  NCH IS # OF ALL CHARGED PARTICLES INCLUDING EXCESS FROM TARGET
+        IF ( NCH .LT. 1 ) THEN
+          IF ( LEPAR1 .LT. 50  .OR.  LEPAR2 .LT. 50 ) THEN
+            NREPRD = NREPRD + 1
+            IF ( NREPRD .GT. 10 ) GOTO 1
+            GOTO 1921
+          ELSE
+C  INTERACTION IS ONLY RESONANCE PRODUCTION
+            ISEL = 1
+          ENDIF
+        ENDIF
+C  WIDTH PLATEAU FOR CLUSTERS AND FOR CALCULATION OF CENTR.RAP.DENSITY
+        DELRAP = 0.6722D0 * (2.95D0 + 0.0302D0 * SLOG)
+C  SET RSLOG FOR CALCULATION OF PARTICLE RATIOS
+        RSLOG  = SLOG
+C  AVERAGE TRANSVERSE MOMENTUM
+        CALL AVEPT( ECMDPM,SLOG )
+ 
+      ELSE
+C-----------------------------------------------------------------------
+C  SINGLE DIFFRACTIVE PROCESS STARTS HERE
+ 
+ 1920   CONTINUE
+        CALL DIFRAC( NRETDF )
+        IF ( NRETDF .EQ. 1 ) GOTO 1
+C  CHARGE EXCHANGE ENABLED?  EXCHANGE CHARGE OF DIFFRACTING PARTICLE
+        LASTPI = 0
+        NRESPC = 0
+        NRESPN = 0
+        NCPLUS = 0
+        IF ( NFLCHE .EQ. 0 ) THEN
+          IF ( YY0 .GT. 0.D0 ) THEN
+C  PROJECTILE DIFFRACTION
+            CALL LEPACX( ECMDIF,DMLOG,LEPAR1,1 )
+          ELSE
+C  TARGET DIFFRACTION
+            CALL LEPACX( ECMDIF,DMLOG,LEPAR2,2 )
+          ENDIF
+        ENDIF
+C  FLUCTUATION OF MULTIPLICITY ACCORDING TO NEG.BIN. DISTRIBUTION
+        CALL RNEGBI( NCH,AVCH,ECMDIF )
+C  REPEAT CALCULATION AS SOMETHING WENT WRONG
+        IF ( NCH .LT. 1 ) THEN
+          IF ( (YY0 .GT. 0.D0  .AND.  LEPAR1 .LT. 50)  .OR.
+     *         (YY0 .LT. 0.D0  .AND.  LEPAR2 .LT. 50)        ) THEN
+            NREPRD = NREPRD + 1
+            IF ( NREPRD .GT. 10 ) GOTO 1
+            GOTO 1920
+          ELSE
+C  DIFFRACTIVE INTERACTION IS ONLY RESONANCE PRODUCTION
+            ISEL = 1
+          ENDIF
+        ENDIF
+C  SET RSLOG FOR CALCULATION OF PARTICLE RATIOS
+        RSLOG = DLOG
+C  HERE WE USE ECMDPM, BECAUSE THE MOMENTUM TRANSFER IS DEPENDENT
+C  ON THE ENERGY OF THE TOTAL SYSTEM AND NOT ON THE DIFFRACTING MASS
+        CALL AVEPT( ECMDPM,SLOG )
+ 
+      ENDIF
+ 
+C-----------------------------------------------------------------------
+C  NOW FOR NSD AND DIFFRACTIVE PROCESSES
+ 
+C  IN CASE OF LOW MULTIPLICITY SET FLAG ISEL
+      IF ( NCH .LE. 2 ) ISEL=1
+C  FNCH IS FLUCTUATING TOT.NUMBER OF CHARGED PARTICLES FOR ALL 3 STRINGS
+      FNCH  = DBLE(NCH)
+C  RATIO  ALL CHARGED PARTICLES  WITH FLUCTUATION/WITHOUT FLUCTUATION
+      XZ    = FNCH / AVCH
+C  FNCH3 IS FLUCTUATING NUMBER OF CHARGED PARTICLES FOR 3RD STRING
+      FNCH3 = XZ * AVCH3
+C  FNCH2 IS FLUCTUATING NUMBER OF CHARGED PARTICLES 1ST AND 2ND STRING
+      FNCH2 = FNCH - FNCH3
+C  RC3TO2 IS RATIO (CHARGED 3RD STRING)/(CHARGED 1ST AND 2ND STRING)
+      IF ( FNCH2 .NE. 0.D0 ) THEN
+        RC3TO2 = FNCH3 / FNCH2
+      ELSE
+        RC3TO2 = 0.D0
+      ENDIF
+      IF ( DEBUG ) WRITE(MDEBUG,*) '   FNCH,FNCH2,FNCH3,RC3TO2=',
+     *          SNGL(FNCH),SNGL(FNCH2),SNGL(FNCH3),SNGL(RC3TO2)
+ 
+C  IS NUMBER OF NEUTRALS FLUCTUATING AS NUMBER OF CHARGED ?
+      IF ( NFLPIF .EQ. 0 .OR. IDIF .EQ. 1 .OR. ECMDPM .LT. 60.D0 ) THEN
+C  SET NUMBER OF GAMMAS ACCORDING TO NEG. BIN. VARIABLE XZ
+C  AS NUMBER OF NEUTRALS FLUCTUATES AS CHARGED.
+        SEUGF = SEUGP * XZ
+        ZG    = XZ
+      ELSE
+C  NFLPIF IS 1 MEANS: # OF PI(0) FLUCTUATES AS MEASURED AT COLLIDER
+        IF ( ECMDPM .LT. 200.D0 ) THEN
+          SEUGF = SEUGP * XZ
+*         SEUGF = (0.0786D0*SLOG-0.010D0)*FNCH2 + (0.391D0*SLOG+0.305D0)
+        ELSE
+C  DETERMINE NEW NUMBER OF GAMMAS WITH FLUCTUATION AROUND SEUGP*XZ
+          AGR   = EXP(-XZ)
+          DGR   = SEUGP * XZ * (0.9823D0 - 0.3756D0 * AGR)
+          SGS   = DGR * (0.14718D0 + 2.53213D0 * AGR)
+ 723      CONTINUE
+          SEUGF = 0.88D0 * RANNOR(DGR,SGS)
+          IF ( SEUGF .LT. 1.D0 ) GOTO 723
+        ENDIF
+C  SET NEGATIVE BINOMIAL VARIABLE ZG FOR GAMMAS
+        ZG  = SEUGF / SEUGP
+      ENDIF
+      SEUGF = MAX( 1.D0, SEUGF )
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'HDPM  :XZ,ZG,SEUGF=',
+     *      SNGL(XZ),SNGL(ZG),SNGL(SEUGF)
+ 
+C-----------------------------------------------------------------------
+C  RATIO ALL-NUCLEON/ALL-CHARGED
+C  PARAMETRISATION FROM UA5, NUCL. PHYS. B291 (1987) 445 EQ.(2.4)
+      RNUCCH = MAX( 0.D0, -0.008D0 + 0.00865D0 * RSLOG )
+C  NUMBER FOR DIRECT NEUTRON/ANTINEUTRON PRODUCTION 1ST AND 2ND STRING
+C  MULTIPLY BY 0.5 BECAUSE RATIO RNUCCH GIVES (ALL-NUCL)/(ALL-CHARGED)
+C  AND HERE ONLY THE NEUTRON-ANTINEUTRONS ARE COUNTED
+      FNUCN  = 0.5D0 * RNUCCH * FNCH2
+C  RATIO (ALL CHARGED SIGMAS)/(ALL CHARGED) IS 1/3 OF ALL STRANGE BARYON
+C  PARAMETRISATION FORM UA5, NUCL. PHYS. B291 (1987) 445 EQ.(2.5)
+      RHYPCH = MAX( 0.D0, (-0.007D0 + 0.0028D0 * RSLOG) * OB3 )
+C  NEUTRAL STRANGE BARYONS ARE DOUBLE OF CHARGED STRANGE BARYONS
+      FHYPN  = 2.D0 * RHYPCH * FNCH2
+C  CORRECT NUMBER OF GAMMAS FROM NEUTRAL HYPERON DECAY S0-->L+GAMMA
+      SEUGFC = MAX( 0.D0, SEUGF - 0.5D0 * FHYPN )
+C  RATIO CHARGED-KAON/CHARGED PIONS
+C  PARAMETRISATION FROM UA5, NUCL. PHYS. B291 (1987) 445 EQ.(2.7)
+      RKPI   = MAX (0.D0, 0.024D0 + 0.0062D0 * RSLOG )
+C  RKCH IS RATIO (CHARGED-KAON)/(ALL-CHARGED) DERIVED FROM RKPI;
+C  THE FACTOR 0.5 IN FRONT OF RNUCCH IS BECAUSE ONLY HALF OF NUCLEONS
+C  ARE P/PBAR. THE 1.17 IS AN APROXIMATE CONVERSION FACTOR FROM
+C  (ALL-NUCL)/(ALL-CHARGED) TO (ALL-NUCL)/(CHARGED-PI), WHICH IS A BIT
+C  ENERGY DEPENDENT (1.14 ...1.21) SEE GEICH-GIMBEL TABLE 7.1
+      RKCH   = RKPI / (1.D0 + RKPI + (0.5D0*RNUCCH+RHYPCH) * 1.17D0)
+C  K0/K0-BAR  FOR 1ST AND 2ND STRING
+C  NEUTRAL KAONS ARE PRODUCED WITH THE SAME RATE AS CHARGED KAONS
+      FKA0   = RKCH * FNCH2
+C  RATIO ETA/PI(0) IS ASSUMED TO BE INDEPENDENT OF ENERGY = 0.19
+C  SEE: ANSORGE ET AL. (UA5-COLLABORATION) Z.PHYS.C43(1989)75
+*     RETPI0 = 0.19D0
+C  RATIO ETA/PI(0) IS ASSUMED TO BE DEPENDENT ON ENERGY
+C  SEE: GEICH-GIMBEL,INT.J.MOD.PHYS.A4(1989)1527 TAB.7.1
+C  HECK'S FIT:   RETPI0 IS 0.06 + 0.006*RSLOG + 0.0011*RSLOG**2
+      RETPI0 = 0.06D0 + 0.006D0 * RSLOG + 0.0011D0 * RSLOG**2
+C  AUXIL1 IS FRACTION OF PI(0)/(PI(0)+ETA)
+      AUXIL1 = 1.D0 / (1.D0 + RETPI0)
+C  NUMBER OF GAMMAS FROM PI(0) IS 2, FROM ETA IS 3.216 IN AVERAGE;
+C  AUXIL2 IS NUMBER OF GAMMA-PRODUCING-PARTICLES: PI(0) AND ETA
+      AUXIL2 = SEUGFC / ( AUXIL1 * 2.D0 + (1.D0 - AUXIL1) * 3.216D0 )
+      FETA   = (1.D0 - AUXIL1) * AUXIL2
+      FPI0   =         AUXIL1  * AUXIL2
+C  CORRECT FPI0 BY DECAYS OF STRANGE BARYONS; NEUTRAL: FHYPN*0.357
+C  CHARGED: 0.5*FNCH2*RHYPCH*0.5157; IT YIELDS FHYPN*(0.357+0.12893)
+      FPI0   = MAX( 0.D0, FPI0 - FHYPN * 0.486D0 )
+C  SUMMED NEUTRAL PARTICLES FOR 1ST AND 2ND STRING
+      FNEUT2 = FNUCN + FKA0 + FHYPN + FETA + FPI0
+C  NEUTRAL PARTICLES FROM 3RD STRING
+      FNEUT3 = RC3TO2 * FNEUT2
+C  TOTAL NUMBER OF NEUTRALS
+      FNEUT  = FNEUT2 + FNEUT3
+      NEUTOT = NINT( FNEUT )
+C  CALCULATE TOTAL NUMBER OF PARTICLES TO BE CREATED
+      NTOTEM = NCH + NEUTOT
+      IF ( DEBUG ) WRITE(MDEBUG,*)
+     *     '    FNUCN,FKA0,FHYPN,FETA,FPI0,FNEUT2,FNEUT3,NTOTEM=',
+     * SNGL(FNUCN),SNGL(FKA0),SNGL(FHYPN),SNGL(FETA),SNGL(FPI0),
+     * SNGL(FNEUT2),SNGL(FNEUT3),NTOTEM
+C  LIMIT OF SECONDARIES PRODUCED (GIVEN BY SIZE OF ARRAY : 3000)
+C  LIMIT IS ARRAY SIZE - SIZE OF LARGEST TARGET NUCLEUS(40)
+      IF ( NTOTEM .GE. 2956 ) THEN
+        WRITE(MONIOU,*) 'HDPM  : REJECT EVENT WITH ',NTOTEM,
+     *                  ' SECONDARIES'
+        GOTO 1
+      ENDIF
+C  SPECIAL TREATMENT IF MULTIPLICITY IS TOO LOW
+      IF ( NTOTEM .LE. 3 ) ISEL = 1
+ 
+C  FRACTION OF THE VARIOUS NEUTRAL PARTICLES (NN, K(0), L+S0 AS PAIRS)
+C  NORMALIZE WITH THE SUM OF ALL NEUTRAL PARTICLES
+      FNORML = 1.D0 / ( 0.5D0 * (FNUCN+FKA0+FHYPN) + FETA + FPI0 )
+      RNUCNR = FNUCN * FNORML * 0.5D0
+      RKA0R  = FKA0  * FNORML * 0.5D0
+      RHYPNR = FHYPN * FNORML * 0.5D0
+      RETAR  = FETA  * FNORML
+      RPI0R  = FPI0  * FNORML
+C  CUMULATED RATIOS (NN, K(0), LAMBDA+SIGMA0 AS PAIRS)
+      RPIER  = RPI0R + RETAR
+      RPEKR  = RPIER + RKA0R
+      RPEKNR = RPEKR + RNUCNR
+C THEN THE REMAINDER (1-RPEKNR) MUST BE NEUTRAL HYPERON PAIRS
+      IF ( DEBUG ) WRITE(MDEBUG,*)
+     *         '    RPI0R,RETAR,RKA0R,RNUCNR,RHYPNR,FNORML=',
+     *  SNGL(RPI0R),SNGL(RETAR),SNGL(RKA0R),SNGL(RNUCNR),SNGL(RHYPNR),
+     *  SNGL(FNORML)
+ 
+C  PROBABILITY TO PRODUCE CHARGED PIONS IS PROBABILITY NOT TO PRODUCE
+C  CHARGED KAONS OR PROTONS OR CHARGED HYPERONS, WHERE PROTON/ANTIPROTON
+C  IS HALF OF (ALL-NUCL)/(ALL-CHARGED)
+      AUXIL  = RKCH + 0.5D0 * RNUCCH + RHYPCH
+      AUXIL3 = 1.D0 - AUXIL
+C  RENORMALIZATION AS P/P_BAR, K+-, AND HYPERONS ARE PRODUCED IN PAIRS
+C  AUXIL2 IS INVERSE OF NORMALISATION
+      AUXIL2 = 1.D0 / (1.D0 - 0.5D0 * AUXIL)
+C  CUMULATED PROBABILITIES (PP, K+-, SIGMA+- AS PAIRS)
+      PPICH  = AUXIL3 * AUXIL2
+      PPINCH =  PPICH + 0.25D0 * RNUCCH * AUXIL2
+      PPNKCH =  PPINCH + 0.5D0 * RKCH * AUXIL2
+C THEN THE REMAINDER (1-PPNKCH) MUST BE CHARGED HYPERON PAIRS
+      IF ( DEBUG ) WRITE(MDEBUG,*) '   PPICH,PPINCH,PPNKCH=',
+     *         SNGL(PPICH),SNGL(PPINCH),SNGL(PPNKCH)
+ 
+C  NOW SELECT HOW MANY PARTICLES OF EACH TYPE ARE PRODUCED
+      CALL PARNUM( INUMFL )
+      IF ( INUMFL .NE. 0 ) GOTO 1919
+ 
+C  DEFINE PARTICLE NUMBERS WHERE SPECIAL RAPIDITY IS CALCULATED
+C  FOR PARTICLES FROM TARGET (THIRD STRING)
+      PPP = RC3TO2 / (1.D0+RC3TO2)
+C  NUMBER OF PARTICLES IN PROTON ANTIPROTON PAIRS FROM TARGET
+      ITA = NINT(PPP * 2.D0 * NNC)
+C  NUMBER OF PARTICLES IN K+ K- PAIRS FROM TARGET
+      ITB = NINT(PPP * 2.D0 * NKC)
+C  NUMBER OF PARTICLES IN SIGMA+ SIGMA- PAIRS FROM TARGET
+      ITC = NINT(PPP * 2.D0 * NHC)
+C  NUMBER OF PI+ PI- FROM TARGET
+      ITD = NINT(PPP * NPC )
+C  CALCULATE BOUNDARIES
+      IA1 = 2
+      IA2 = IA1 + ITA
+      IB1 = IA1 + 2 * NNC
+      IB2 = IB1 + ITB
+      IC1 = IB1 + 2 * NKC
+      IC2 = IC1 + ITC
+      ID1 = IC1 + 2 * NHC
+      ID2 = ID1 + ITD
+      IE1 = ID1 +     NPC
+C  NUMBER OF PARTICLES IN NEUTRON ANTINEUTRON PAIRS FROM TARGET
+      IE2 = IE1 + 2 * NNUCN(3)
+      IF1 = IE1 + 2 * NNN
+C  NUMBER OF PARTICLES IN K0S K0L PAIRS FROM TARGET
+      IF2 = IF1 + 2 * NKA0(3)
+      IG1 = IF1 + 2 * NKN
+C  NUMBER OF PARTICLES IN NEUTRAL HYPERON PAIRS FROM TARGET
+      IG2 = IG1 + 2 * NHYPN(3)
+      IH1 = IG1 + 2 * NHN
+C  NUMBER OF ETA FROM TARGET
+      IH2 = IH1 + NETAS(3)
+      II1 = IH1 +     NET
+C  NUMBER OF PI(0) FROM TARGET
+      II2 = II1 + NPIZER(3)
+      IJ1 = II1 +     NPN
+      IF ( DEBUG ) THEN
+        WRITE(MDEBUG,*) '   CHARGED FROM TARGET:',ITA,ITB,ITC,ITD
+        WRITE(MDEBUG,*) '   NEUTRAL FROM TARGET:',
+     *     2*NNUCN(3),2*NKA0(3),2*NHYPN(3),NETAS(3),NPIZER(3)
+        WRITE(MDEBUG,*) '   NTOTEM,IJ1=',NTOTEM,IJ1
+      ENDIF
+C  REDEFINE TOTAL NUMBER OF SECONDARY PARTICLES : NTOTEM
+C  BY CHARGE EXCHANGE AND RESONANCE FORMATION THIS NUMBER MAY BE ALTERED
+      NTOTEM = IJ1 - 2
+ 
+C-----------------------------------------------------------------------
+C  RATIO OF RAPIDITY DENSITY TO MEAN PSEUDORAPIDITY IN CENTER
+C  PARAMETRISATION SEE CAPDEVIELLE, J.PHYS.G:NUCL.PHYS.15(1989)909,EQ.6
+      IF ( XZ .LT. 1.5D0 ) THEN
+        RDS = (0.24396D0 + 0.70150424D0 * XZ)**2
+      ELSE
+        RDS = (0.55685D0 + 0.48664753D0 * XZ)**2
+      ENDIF
+C  CALCULATE NOW: DN/DY AT Y = 0; DC0 IS AVERAGE PSEUDORAPIDITY DENSITY
+C  TRAP IS RATIO (RAPID.DENS.)/(PSEUDORAP.DENS.) IN CENTER OF RAPIDITY
+      TRAP = 1.25D0
+      IF ( IDIF .EQ. 0  .AND.  ECMDPM .GT. 19.4D0 )
+     *                 TRAP = MAX( 1.D0, 1.28852D0 - 0.0065D0 * SMLOG )
+      DCN2 = DC0 * RDS * TRAP
+      IF ( DEBUG ) WRITE(MDEBUG,*) '   RDS,TRAP,DCN2=',
+     *                SNGL(RDS),SNGL(TRAP),SNGL(DCN2)
+C  AMPLITUDE OF GAUSSIAN 1ST AND 2ND STRING
+      ATG2 = FNCH2 / (5.0132566D0 * WIDC2)
+C  NEW DEFINITION OF POSITION BASED ON SEMI INCLUSIVE DATA
+      SQ2  = 2.D0 * ATG2 / DCN2
+C  FINAL POSITION OF GAUSSIAN;  WIDTH WIDC2 IS UNCHANGED
+      IF ( SQ2 .GT. 1.D0 )  POSC2 = WIDC2 * SQRT( 2.D0*LOG(SQ2) )
+C  DENSITY OF CHARGED IN EXCESS FROM TARGET IN CENTER OF RAPIDITY
+      DCN3 = 0.5D0 * (GNU - 1.D0) * DCN2
+      IF (DEBUG) WRITE(MDEBUG,*) '   SQ2,POSC2,DCN3=',
+     *          SNGL(SQ2),SNGL(POSC2),SNGL(DCN3)
+      IF ( DCN3 .GT. 0.D0 ) THEN
+C  AMPLITUDE 3RD GAUSSIAN
+        ATG3 = FNCH3 / (5.0132566D0 * WIDC3)
+C  AMPLITUDE IS DIVIDED BY DENSITY FOR GETTING CENTER OF 3RD GAUSSIAN
+        SQ3  = 2.D0 * ATG3 / DCN3
+C  CHECK IF ADDITIVE MULTIPLICITY IS TOO LOW
+        IF ( SQ3 .GT. 1.D0 )  POSC3 = WIDC3 * SQRT( 2.D0*LOG(SQ3) )
+        IF (DEBUG) WRITE(MDEBUG,*)'   SQ3,POSC3=',SNGL(SQ3),SNGL(POSC3)
+      ENDIF
+ 
+C  NFLPI0 .EQ. 0 MEANS TREAT PI(0) RAPIDITY ACCORDING TO COLLIDER DATA
+      IF ( NFLPI0 .EQ. 0 ) THEN
+C  RATIO OF RAPIDITY DENSITY TO MEAN PSEUDORAPIDITY AT CENTER WITH Z<1.5
+        IF ( ZG .LT. 1.5D0 ) THEN
+          RDG = (0.24396D0 + 0.70150424D0 * ZG)**2
+        ELSE
+          RDG = (0.55685D0 + 0.48664753D0 * ZG)**2
+        ENDIF
+C  GAMMAS USE RATIO TRAG TO CALCULATE RATIO OF RAPIDITY TO
+C  PSEUDO RAPIDITY DENSITY IN CENTER (TRAG = 1.1 * 0.5 ).
+C  FACTOR 0.5 COMES FROM RATIO NEUTRAL/CHARGED, AS WE USE DC0, WHICH
+C  IS AVERAGE PSEUDORAPIDITY DENSITY FOR CHARGED PIONS
+        TRAG = 0.55D0
+        IF ( IDIF .EQ. 0 ) THEN
+          IF ( ECMDPM .GT. 19.4D0 )
+     *               TRAG = MAX( 0.4D0, 0.6658D0 - 0.01954D0 * SMLOG )
+          IF     ( ECMDPM .LE.  50.D0 ) THEN
+            DCG = DC0 * RDG * TRAG
+          ELSEIF ( ECMDPM .LE. 200.D0 ) THEN
+            DCG = DC0 * RDG * TRAG * (1.D0 + 0.18D0 * LOG(ECMDPM/50.D0))
+          ELSE
+            DCG = DC0 * RDG * TRAG * 1.25D0
+          ENDIF
+        ELSE
+          DCG = DC0 * RDG * TRAG
+        ENDIF
+C  DEFINE WIDTH OF STRINGS FOR NEUTRAL PIONS AND ETAS
+        WIDN2 = WIDC2 * MIN( 1.D0, 1.12275D0 - 0.0208D0 * RSLOG )
+C  NEW DEFINITION OF CENTER OF GAUSSIAN BASED ON SEMI INCLUSIVE DATA
+C  USING AMPLITUDE OF THE GAUSSIAN FOR NEUTRALS
+        AUXIL = 2.D0 / (5.0132566D0 * WIDN2 * DCG)
+C  TOTAL MULTIPLICITY USED FOR 1ST AND 2ND STRING OF PI(0) AND ETA
+C  IS GIVEN BY THEIR NUMBERS. ANALOGOUS FOR 3RD STRING
+        SP2   = DBLE ( NPIZER(2)+NETAS(2)) * AUXIL
+C  FINAL CENTER OF GAUSSIANS FOR PI(0) AND ETA (WIDC2 IS UNCHANGED)
+        IF ( SP2 .GT. 1.D0 ) THEN
+          POSN2 = WIDN2 * SQRT( 2.D0 * LOG(SP2) )
+        ELSE
+          POSN2 = POSC2
+        ENDIF
+        WIDN3 = WIDN2
+        SP3   = DBLE(NPIZER(3)+NETAS(3)) * AUXIL
+        IF ( SP3 .GT. 1.D0 ) THEN
+          POSN3 = WIDN3 * SQRT( 2.D0 * LOG(SP3) )
+        ELSE
+          POSN3 = POSC3
+        ENDIF
+      ELSE
+C  NFLPI0 .EQ. 1 MEANS RAPIDITY OF PI(0) AND ETA SAME AS THAT OF CHARGED
+        POSN2 = POSC2
+        WIDN2 = WIDC2
+        POSN3 = POSC3
+        WIDN3 = WIDC3
+      ENDIF
+      IF ( DEBUG ) WRITE(MDEBUG,*)
+     *           '   ZG,RDG,DCG,SP2,SP3,POSN2,POSN3,WIDN2 =',
+     *   SNGL(ZG),SNGL(RDG),SNGL(DCG),SNGL(SP2),SNGL(SP3),SNGL(POSN2),
+     *   SNGL(POSN3),SNGL(WIDN2)
+ 
+C-----------------------------------------------------------------------
+      NREPR1 = 0
+C  RETURN POINT. NUMBERS OF PARTICLES REMAIN UNCHANGED FOR NEXT TRY,
+C  BUT INDIVIDUAL RAPIDITIES GET NEW VALUES.
+C  START FROM BEGINNING IF NO MATCH AFTER 20 TRIES
+  30  CONTINUE
+      NREPR1 = NREPR1 + 1
+      IF ( NREPR1 .GT. 20 ) THEN
+        IF ( IDIF .EQ. 1  .AND.  NREPRD .LE. 10 ) GOTO 1919
+        GOTO 1
+      ENDIF
+ 
+C  FOR TOTAL NUMBER OF PARTICLES ADD 2 FOR LEADER AND ANTILEADER
+      NTOT = NTOTEM + 2
+ 
+C  PRODUCTION OF INDIVIDUAL RAPIDITIES FOR ALL SECONDARY PARTICLES
+      CALL PARRAP
+CC    IF ( DEBUG ) THEN
+CC      WRITE (MDEBUG,*) '   RAPIDITIES:'
+CC      WRITE (MDEBUG,134) (I,YR(I), I=3,NTOT)
+C134    FORMAT('   ',1P, (1X, I4, 5X, G13.6 ))
+CC    ENDIF
+ 
+ 
+C  CALCULATION OF CENTRAL RAPIDITY WITHOUT (ANTI)LEADER
+C  MULTIPLICITY IN CENTER OF RAPIDITY DISTRIBUTION
+      IZN = 0.D0
+      IF ( IDIF .EQ. 0 ) THEN
+        DO 111  I = 3,NTOT
+          IF ( ABS(YR(I)) .LT. DELRAP ) IZN = IZN + 1
+ 111    CONTINUE
+        IF ( IZN .LT. 1 ) THEN
+          IF ( ISEL .EQ. 0 ) GOTO 30
+C  IN CASE OF FEW PARTICLES, SET PARTICLE NUMBER IN PLATEAU TO 1
+          IZN = 1
+        ENDIF
+C  CENTRAL RAPIDITY DENSITY FOR CHARGED PARTICLES
+        IF ( NTOTEM .GE. 1 ) THEN
+          ZNC = MAX( 1.1D0, DBLE(NCH)*IZN/(DBLE(NTOTEM)*2.D0*DELRAP) )
+        ELSE
+          ZNC = 1.1D0
+        ENDIF
+      ELSE
+C  DIFFRACTION: SHIFT RAPIDITIES + TAKE CENT.RAP.DENS. FROM PARAMETRISAT
+        DO 112  I = 3,NTOT
+          YR(I) = YR(I) + YY0
+ 112    CONTINUE
+        ZNC = MAX( 1.1D0, DCN2 )
+      ENDIF
+ 
+C  ZN ACCOUNTS FOR THE RISE OF PT WITH CENTRAL RAP.DENSITY. THE FORMULA
+C  IS A FIT TO UA1 VALUES OF ARNISON ET AL, PHYS.LETT.B118(1982)167
+C  REGARD, THAT OUR ZN IS DEFINED DIFFERENT FROM LITERATURE N BY 1
+C - - - - - -
+C  MODIFICATION AFTER J.N. CAPDEVIELLE, (DEC.96)
+      IF ( ECMDPM .LE. 500.D0 ) THEN
+        ZN = MAX( 1.00001D0, 3.669D0 / ZNC**0.435D0 + 6.4D0 )
+      ELSE
+C  TAKE INTO ACCOUNT THE RESULTS OF UA1/MIMI EXPERIMENT
+        IF ( ZNC .GE. 3.D0 ) THEN
+          ZN = 1.D0 /(ZNC*0.004111D0 + 0.145D0)+3.D0
+        ELSE
+C  FOR ROCH < 3.00 (MIMI)   (TO BE USED IN  PTRAM)
+          ZM = 0.0033D0 * (ZNC-1.56D0)**2 + 0.406D0
+          ZN = 2.64D0/ZM + 3.D0
+        ENDIF
+      ENDIF
+C - - - - - -
+C  NOW SET PARTICLE TYPE AND TRANSV. MOMENTA FOR NEW PARTICLES IN PPARAM
+C  SET ALSO TRANSVERSE MASS FOR ALL PARTICLES (INCL. LEADER+ANTILEADER)
+      CALL PPARAM
+ 
+      IF ( IDIF .EQ. 0 ) THEN
+C  NOW SET THE RAPIDITY OF THE ANTILEADER ACCORDING TO THE DISTRIBUTION
+C  IN THE FEYNMAN X VARIABLE; SET THE RAPIDITY OF LEADER TO CONSUME
+C  THE REMAINDER OF ENERGY
+        CALL LEDENY( LEDEFL )
+        IF ( LEDEFL .NE. 0 ) THEN
+          IF ( DEBUG ) WRITE(MDEBUG,*) '   LEDEFL=',LEDEFL
+          GOTO 30
+        ENDIF
+ 
+C  CALCULATE FOR SINGLE COLLISION SYSTEM C.M. ENERGY + RAPIDITY SHIFT
+        IF ( GNU .LE. 1.D0 ) THEN
+          JGNU   = 0.D0
+          DYGNU  = 0.D0
+          ECMJAD = ECMDPM
+        ELSE
+C  MULTIPLE COLLISION IN TARGET
+          JGNU   = NINT(GNU-1.D0)
+C  ADD ADDITIONALLY INTERACTING
+C  TARGET NUCLEONS TO GET CORRECT JADACH FILTERING
+C  CHOSE RANDOMLY WHETHER PROTON OR NEUTRON
+          CALL RMMAR( RD,JGNU,1 )
+          IPR = 0
+          INE = 0
+          TARMAS = PAMA(ITYP(2))
+          DO 114  I = 1,JGNU
+            NTOT       = NTOT + 1
+            IF ( RD(I) .LE. .5D0 ) THEN
+              ITYP(NTOT) = 13
+              INE = INE + 1
+            ELSE
+              ITYP(NTOT) = 14
+              IPR = IPR + 1
+            ENDIF
+            TMAS(NTOT) = PAMA(ITYP(NTOT))
+            TARMAS     = TARMAS + TMAS(NTOT)
+            EA(NTOT)   = TMAS(NTOT)
+            PX(NTOT)   = 0.D0
+            PY(NTOT)   = 0.D0
+            PT2(NTOT)  = 0.D0
+ 114      CONTINUE
+ 
+C  CALCULATE C.M. ENERGY + RAPIDITY SHIFT
+*         YCMGNU = 0.5D0 * LOG( (ELAB+TARMAS+PLAB)/(ELAB+TARMAS-PLAB) )
+          YCMGNU = 0.5D0 * LOG( (EPLUSP**2     +TARMAS*EPLUSP)/
+     *                          (PAMA(ITYPE)**2+TARMAS*EPLUSP) )
+          DYGNU  = YCM - YCMGNU
+ 
+C  CALCULATE RAPIDITIES OF ADDITIONALLY INTERACTING TARGET NUCLEONS
+C  IN THE CM SYSTEM OF NUCLEON-NUCLEON SYSTEM
+          DO 115  I = NTOT-JGNU+1,NTOT
+            YR(I) = - YCM
+ 115      CONTINUE
+C  SHIFT RAPIDITIES INTO CM SYSTEM OF GNU+1 MASSES
+          DO 113  I = 1,NTOT
+            YR(I) = YR(I) + DYGNU
+ 113      CONTINUE
+ 
+C  CENTER OF MASS ENERGY OF 1 PROJECTILE AND GNU TARGET NUCLEONS TO
+C  BE USED IN THE JADACH FILTER.
+          ECMJAD = SQRT( PAMA(ITYPE)**2 + TARMAS**2 + 2.D0*TARMAS*ELAB )
+ 
+        ENDIF
+ 
+      ELSE
+C  IN CASE OF DIFFRACTION SET THE RAPIDITY OF LEADER AND ANTILEADER
+C  IN SUBROUTINE LEADDF
+        DYGNU  = 0.D0
+        ECMJAD = ECMDPM
+        CALL LEADDF( IFLGLD )
+        IF ( IFLGLD .NE. 0 ) THEN
+          IF ( DEBUG ) WRITE(MDEBUG,*) '   IFLGLD=',IFLGLD
+          GOTO 30
+        ENDIF
+      ENDIF
+ 
+C  CORRECT THE RAPIDITIES TO CONSERVE LONGITUDINAL MOMENTA AND ENERGY
+C  USING THE ALGORITHM OF JADACH (SIMPLIFIED VERSION BY R. ATTALLAH)
+      CALL JADACH( ECMJAD,JADFLG )
+      IF ( JADFLG .NE. 0 ) THEN
+        IF ( DEBUG ) WRITE(MDEBUG,*) '   JADFLG=', JADFLG
+        IF ( JADFLG .GT. 0 ) GOTO 30
+        IF ( JADFLG .LT. 0 ) THEN
+          NREPRD = NREPRD + 1
+          IF ( NREPRD .GT. 10 ) GOTO 1
+          GOTO 1919
+        ENDIF
+      ENDIF
+ 
+ 
+C  CALCULATE LAB ENERGIES OF SECONDARY PARTICLES FROM THE RAPIDITIES
+C  INCLUDING THE ADDITIONAL TARGET NUCLEONS
+      ETOT = 0.D0
+      DO 135  I = 1,NTOT
+        YR(I) = YR(I) + YCM - DYGNU
+        EA(I) = TMAS(I) * COSH( YR(I) )
+        ETOT  = ETOT + EA(I)
+ 135  CONTINUE
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,136)
+     *             (I,ITYP(I),PX(I),PY(I),YR(I),EA(I),I=1,NTOT)
+ 136  FORMAT('  NO ITYP     PX          PY            YR          EA'/
+     *      (' ',I4,I3,1X,1P,4G13.6) )
+ 
+C-----------------------------------------------------------------------
+C  LOOP OVER ALL SECONDARY PARTICLES AND THE LEADING PARTICLE
+C  PUT THEM ON THE STACK
+      DO 139  LK = 5,8
+        SECPAR(LK) = CURPAR(LK)
+ 139  CONTINUE
+ 
+C  PROCESS LOOP
+      DO 140  J = 1,NTOT
+C  REJECTION OF BACKWARD GOING PARTICLES
+        IF ( YR(J) .LE. 0.D0 ) THEN
+          IF ( DEBUG ) WRITE(MDEBUG,*)'HDPM  : YR REJECT PARTICLE ',J
+          GOTO 140
+        ENDIF
+C  CALCULATE THE PROPERTIES OF ALL SECONDARIES
+C  PARTICLE TYPE
+        SECPAR(1) = ITYP(J)
+C  CALCULATE GAMMA FACTOR
+        SECPAR(2) = EA(J) / PAMA(ITYP(J))
+C  TOTAL MOMENTUM SQUARED
+        PTM = EA(J)**2 - PAMA(ITYP(J))**2
+        IF ( PT2(J) .GT. PTM ) THEN
+          IF ( DEBUG ) WRITE(MDEBUG,*)'HDPM  : PT REJECT PARTICLE ',J
+          GOTO 140
+        ENDIF
+C  EMISSION ZENITH ANGLE AGAINST TRAJECTORY OF PROJECTILE
+        IF ( PTM .EQ. 0.D0 ) THEN
+          COSTET = 1.D0
+        ELSE
+          COSTET = SQRT( 1.D0 - PT2(J) / PTM )
+        ENDIF
+C  EMISSION AZIMUTH ANGLE
+        IF ( PX(J) .NE. 0.D0  .OR.  PY(J) .NE. 0.D0 ) THEN
+          PHIJ = ATAN2( PY(J), PX(J) )
+        ELSE
+          PHIJ = 0.D0
+        ENDIF
+        CALL ADDANG( COSTHE,PHI, COSTET,PHIJ, SECPAR(3),SECPAR(4) )
+        IF ( SECPAR(3) .LT. C(29) ) THEN
+C  OMIT UPWARD GOING PARTICLES
+          IF (DEBUG) WRITE(MDEBUG,*)'HDPM  : ANGLE REJECT PARTICLE ',J
+          GOTO 140
+        ENDIF
+C  PUT SECONDARY PARTICLES ON STACK, IF NOT GOING UPWARDS
+        IF ( J .GT. 2 ) THEN
+          CALL TSTACK
+        ELSE
+C  PUT LEADER OR ANTI-LEADER ON STACK, IF NOT GOING UPWARDS
+          IF ( ITYP(J) .GT. 50 ) THEN
+C  LEADER OR ANTI LEADER ARE RESONANCES AND DECAY
+            IRESPAR = IRESPAR + 1
+            IF ( IRESPAR .GE. 1000 ) THEN
+              WRITE(MONIOU,*) 'STACK OF RESDEC RANDOM NUMBERS FULL'
+              IRESPAR = 999
+            ENDIF
+            RESRAN(IRESPAR) = RDRES(J)
+C  COUNTER FOR ENERGY-MULTIPLICITY MATRIX
+            MSMM = MSMM + 1
+          ENDIF
+          CALL TSTACK
+ 
+C  CALCULATE ELASTICITY FROM ENERGY OF LEADER (REST OF RESONANCE DECAY)
+          IF ( J. EQ. 1 ) ELASTI = SECPAR(2)*PAMA(NINT(SECPAR(1)))/ELAB
+        ENDIF
+C  COUNTERS FOR FIRST INTERACTION
+        IF ( FIRSTI ) THEN
+          IF     ( SECPAR(1) .EQ.  7.D0  .OR.  SECPAR(1) .EQ.  8.D0
+     *       .OR.  SECPAR(1) .EQ.  9.D0                           ) THEN
+            IFINPI = IFINPI + 1
+          ELSEIF ( SECPAR(1) .EQ. 13.D0  .OR.  SECPAR(1) .EQ. 14.D0
+     *       .OR.  SECPAR(1) .EQ. 15.D0 .OR. SECPAR(1) .EQ. 25.D0 ) THEN
+            IFINNU = IFINNU + 1
+          ELSEIF ( SECPAR(1) .EQ. 10.D0  .OR.  SECPAR(1) .EQ. 11.D0
+     *       .OR.  SECPAR(1) .EQ. 12.D0 .OR. SECPAR(1) .EQ. 16.D0 ) THEN
+            IFINKA = IFINKA + 1
+          ELSEIF ( SECPAR(1) .GE. 71.D0 .AND. SECPAR(1) .LE. 74.D0) THEN
+            IFINET = IFINET + 1
+          ELSEIF ((SECPAR(1) .GE. 18.D0 .AND. SECPAR(1) .LE. 24.D0)
+     *       .OR. (SECPAR(1) .GE. 26.D0 .AND. SECPAR(1) .LE. 32.D0))THEN
+            IFINHY = IFINHY + 1
+          ENDIF
+        ENDIF
+ 
+ 140  CONTINUE
+ 
+C  COUNTER FOR ENERGY-MULTIPLICITY MATRIX
+      MSMM = MSMM + NTOT - 2
+ 
+C  FILL ELASTICITY IN MATRICES
+      MEL = MIN ( 1.D0+10.D0*      MAX( 0.D0, ELASTI ) , 11.D0 )
+      MEN = MIN ( 4.D0+ 3.D0*LOG10(MAX( .1D0, EKINL  )), 37.D0 )
+      IELDPM(MEN,MEL) = IELDPM(MEN,MEL) + 1
+      IELDPA(MEN,MEL) = IELDPA(MEN,MEL) + 1
+      IF ( ELASTI .LT. 1.D0 ) THEN
+        ELMEAN(MEN) = ELMEAN(MEN) + ELASTI
+        ELMEAA(MEN) = ELMEAA(MEN) + ELASTI
+      ENDIF
+ 
+      IF ( FIRSTI ) THEN
+        ELAST  = ELASTI
+        FIRSTI = .FALSE.
+      ENDIF
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'HDPM  : ELAST=',SNGL(ELASTI),
+     *                            SNGL(ETOT),SNGL(ELAB)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/heigh.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/heigh.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/heigh.f	(revision 4308)
@@ -0,0 +1,113 @@
+C=======================================================================
+
+      DOUBLE PRECISION FUNCTION HEIGH( ARG )
+
+C-----------------------------------------------------------------------
+C  HEIGH(T AS FUNCTION OF THICKNESS)
+C
+C  CALCULATES HEIGHT DEPENDING ON THICKNESS OF ATMOSPHERE
+C  (US STANDARD ATMOSPHERE)
+C  THIS FUNCTION IS CALLED FROM MAIN, BOX2, BOX3, ININKG, INPRM,
+C  MUTRAC, AND UPDATE
+C  ARGUMENT:
+C   ARG    = MASS OVERLAY IN G/CM**2
+C-----------------------------------------------------------------------
+
+      IMPLICIT NONE
+
+*KEEP,ATMOS.
+      COMMON /ATMOS/   AATM,BATM,CATM,DATM
+      DOUBLE PRECISION AATM(5),BATM(5),CATM(5),DATM(5)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c Try
+c------------------------------------------------------------
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+*KEND.
+C*******************************************************************
+C     Modificado por Aitor (5-febrero-98)
+      
+      common /aitor/   aitoth
+      double precision aitoth
+C*******************************************************************
+
+
+      DOUBLE PRECISION ARG,H,R,RT
+      PARAMETER (RT=6348.0D5)
+
+C-----------------------------------------------------------------------
+
+CC    IF ( DEBUG ) WRITE(MDEBUG,*) 'HEIGH : ARG=',SNGL(ARG)
+
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>> Modification (HZA trick) cancelled >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>> JCG Wed Sep 21 10:49:14 MET DST 1998 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+      IF     ( ARG .GT. 631.1D0 ) THEN
+        HEIGH = CATM(1) * LOG ( BATM(1) / (ARG - AATM(1)) )
+      ELSEIF ( ARG .GT. 271.7D0 ) THEN
+        HEIGH = CATM(2) * LOG ( BATM(2) / (ARG - AATM(2)) )
+      ELSEIF ( ARG .GT. 3.0395D0 ) THEN
+        HEIGH = CATM(3) * LOG ( BATM(3) / (ARG - AATM(3)) )
+      ELSEIF ( ARG .GT. 0.00128292D0 ) THEN
+        HEIGH = CATM(4) * LOG ( BATM(4) / (ARG - AATM(4)) )
+      ELSE
+        HEIGH = (AATM(5) - ARG) * DATM(5)
+      ENDIF
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c      IF     ( ARG .GT. 631.1D0 ) THEN
+c        H = CATM(1) * LOG ( BATM(1) / (ARG - AATM(1)) )
+c      ELSEIF ( ARG .GT. 271.7D0 ) THEN
+c        H = CATM(2) * LOG ( BATM(2) / (ARG - AATM(2)) )
+c      ELSEIF ( ARG .GT. 3.0395D0 ) THEN
+c        H = CATM(3) * LOG ( BATM(3) / (ARG - AATM(3)) )
+c      ELSEIF ( ARG .GT. 0.00128292D0 ) THEN
+c        H = CATM(4) * LOG ( BATM(4) / (ARG - AATM(4)) )
+c      ELSE
+c        H = (AATM(5) - ARG) * DATM(5)
+c      ENDIF
+c
+cC************************************************************************
+cC     Modificacion hecha por Aitor (5-febrero-98)
+c
+c      HEIGH = (COS(aitoth))**2 * (-RT + SQRT(RT**2 + 
+c     * ((H**2 + (2.0D0*RT*H))/(COS(aitoth))**2)))
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+C************************************************************************
+
+C      R = SQRT(CURPAR(7)**2+CURPAR(8)**2)
+C      HEIGH = SQRT((RT+H)**2-R**2)-RT
+c      print *,'HEIGH>>',ARG,r,heigh,curpar(7),curpar(8)
+
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/hmeson.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/hmeson.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/hmeson.f	(revision 4308)
@@ -0,0 +1,176 @@
+      SUBROUTINE HMESON( E,AMASS,ASMASS )
+ 
+C-----------------------------------------------------------------------
+C  H(EAVY) MESON
+C
+C  HANDLES PION INITIATED HEAVY MESON AND ITS DECAY IN UP TO 3 PIONS
+C  HEAVY MESON EMITTED FORWARD
+C  THIS SUBROUTINE IS CALLED FROM BOX67 AND BOX69
+C  ARGUMENTS:
+C   E      = AVAILABLE ENERGY IN CM
+C   AMASS  = MASS OF HEAVY MESON
+C   ASMASS = MASS TO BE LEFT OVER FOR OTHER PARTICLES
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,BAL.
+      COMMON /BAL/     EBAL
+      DOUBLE PRECISION EBAL(10)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,ELASTY.
+      COMMON /ELASTY/  ELAST,IELIS,IELHM,IELNU,IELPI
+      DOUBLE PRECISION ELAST
+      INTEGER          IELIS(20),IELHM(20),IELNU(20),IELPI(20)
+*KEEP,MULT.
+      COMMON /MULT/    EKINL,MSMM,MULTMA,MULTOT
+      DOUBLE PRECISION EKINL
+      INTEGER          MSMM,MULTMA(37,13),MULTOT(37,13)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,VKIN.
+      COMMON /VKIN/    BETACM
+      DOUBLE PRECISION BETACM
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'HMESON: E,AMASS,ASMASS=',
+     *         SNGL(E),SNGL(AMASS),SNGL(ASMASS)
+ 
+      IPI   = 0
+      EDHM  = 0.D0
+      PACC  = 0.D0
+      W     = 0.6D0
+ 
+C  GAMMA AND BETA OF HEAVY MESON IN CM AND LAB
+C  E > AMASS + ASMASS  TO KEEP GHMCM > 1.
+      GHMCM  = ( E**2+AMASS**2-ASMASS**2 ) / ( 2.D0*E*AMASS )
+      BHMCM  = SQRT(GHMCM**2 - 1.D0) / GHMCM
+      GHMLAB = GCM * GHMCM * (1.D0 + BETACM * BHMCM)
+      BHMLAB = SQRT(GHMLAB**2 - 1.D0) / GHMLAB
+ 
+C  DECAY OF HEAVY MESON
+    7 CONTINUE
+      IPI  = IPI + 1
+C  CHOSE TRANSVERSE MOMENTUM RANDOMLY
+      PTPI = PTRANS(DUMMY)
+C  CHOSE LONGITUDINAL MOMENTUM RANDOMLY
+      IF ( IPI .LT. 3 ) THEN
+        P  = PCL(C(40),W)
+      ELSE
+        P2 = RESTE**2 - PAMA(8)**2 - PTPI**2
+        P  = SQRT(MAX( P2, 0.D0 ))
+      ENDIF
+ 
+      PTPI  = PTRANS(DUMMY)
+      GPIHM = SQRT( P**2 / PAMA(8)**2 + 1.D0 )
+      BPIHM = SQRT( GPIHM**2-1.D0 ) / GPIHM
+      EDHM  = EDHM + SQRT( PAMA(8)**2 + P**2 + PTPI**2 )
+      RESTE = AMASS - EDHM
+ 
+C  FOR FIRST 2 PARTICLES CHOSE RANDOMLY WHETHER FORWARD OR BACKWARD
+C  FOR 3. PARTICLE DECIDE ACCORDING TO ACCULMULATED P
+      CALL RMMAR( RD,3,1 )
+      IF ( IPI .EQ. 3 ) THEN
+        IF ( PACC .LE. 0.D0 ) THEN
+          RD(1) = 0.
+        ELSE
+          RD(1) = 1.
+        ENDIF
+      ENDIF
+ 
+      IF ( RD(1) .GT. 0.5 ) THEN
+C  BACKWARD PION
+        GPILAB = GHMLAB*GPIHM*(1.D0-BHMLAB*BPIHM)
+        PACC   = PACC - P
+      ELSE
+C  FORWARD PION
+        GPILAB = GHMLAB*GPIHM*(1.D0+BHMLAB*BPIHM)
+        PACC   = PACC + P
+      ENDIF
+C  CORRECTIVE ACTION IF GPILAB LESS OR EQUAL TO 1.0
+      GPILAB   = MAX( GPILAB, 1.D0 )
+ 
+C  GET NEW DIRECTION
+      PLLAB2 = PAMA(8)**2 *(GPILAB**2 - 1.D0)
+      CTHETA = SQRT( PLLAB2 / (PTPI**2+PLLAB2) )
+      IF ( CTHETA .GE. C(27) ) THEN
+        CALL ADDANG( COSTHE,PHI, CTHETA,RD(2)*PI2, SECPAR(3),SECPAR(4) )
+        IF ( SECPAR(3) .GE. C(29) ) THEN
+          SECPAR(2) = GPILAB
+ 
+C  RANDOM CHARGE ASSIGNMENT FOR PIONS
+          IF     ( RD(3) .LE. OB3 ) THEN
+            SECPAR(1) = 7.D0
+          ELSEIF ( RD(3) .LE. TB3 ) THEN
+            SECPAR(1) = 8.D0
+          ELSE
+            SECPAR(1) = 9.D0
+          ENDIF
+ 
+          DO  4  J = 5,8
+            SECPAR(J) = CURPAR(J)
+    4     CONTINUE
+ 
+          CALL TSTACK
+        ENDIF
+      ENDIF
+      IF ( IPI .LT. 3  .AND.  RESTE .GT. PAMA(8) ) GOTO 7
+ 
+C  STATISTICS ON ENERGY BALANCE, MULTIPLICITY AND ELASTICITY
+      EBAL(4) = EBAL(4) + RESTE
+      MSMM    = MSMM + IPI
+ 
+C  INELASTICITY STATISTICS
+      IN = 1.D0 + SECPAR(2) / GAMMA * 20.D0
+      IN = MIN( IN, 20 )
+      IELHM(IN) = IELHM(IN) + 1
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/howfar.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/howfar.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/howfar.f	(revision 4308)
@@ -0,0 +1,198 @@
+      SUBROUTINE HOWFAR
+C
+C*********************************************************************
+C  DESIGN  : D. HECK   IK3  FZK KARLSRUHE
+C  DATE    : SEP  05, 1988
+C*********************************************************************
+C  THE FOLLOWING IS A GENERAL SPECIFICATION OF HOWFAR:
+C  GIVEN A PARTICLE AT (X,Y,Z) IN REGION IR AND GOING IN DIRECTION
+C  (U,V,W), THIS ROUTINE ANSWERS THE QUESTION, CAN THE PARTICLE GO
+C  A DISTANCE USTEP WITHOUT CROSSING A BOUNDARY OR OBSERVATION LEVEL?
+C          IF YES, IT CALCULATES DNEAR AND RETURNS.
+C          IF NO, IT SETS USTEP=DISTANCE TO BOUNDARY OR DETECTOR IN
+C             IN THE CURRENT DIRECTION.
+C             IT SETS IRNEW TO THE REGION NUMBER ON THE FAR SIDE
+C             OF THE BOUNDARY (THIS CAN BE MESSY IN GENERAL!);
+C             IT SETS NEWOBS TO THE DETECTOR NUMBER NEXT AFTER THE
+C             DETECTOR JUST PASSING.
+C  THE USER CAN TERMINATE A HISTORY BY SETTING IDISC>0. THE USER
+C  CAN TRANSPORT THE LAST PARTICLE  BY SETTING IDISC<0. HERE WE
+C  TERMINATE ALL HISTORIES WHICH ENTER REGION 6 OR ARE GOING
+C  BACKWARDS IN REGION 1 OR HAVE PASSED THE LAST OBSERVATION LEVEL.
+C*********************************************************************
+C   ELECTRON OR PHOTON        POSITIVE Z-DIRECTION (W>0) IS DOWNWARDS
+C            |
+C            |                  REGION 1   (VACUUM)
+C            V
+C---------------------------    STARTING PLANE AT -BOUND(1) = -ZALTIT
+C
+C                               REGION 2   (AIR WITH EXPONENTIALLY
+C                                           INCREASING DENSITY)
+C
+C---------------------------    BOUNDARY AT -BOUND(2)
+C
+C                               REGION 3   (AIR WITH EXPONENTIALLY
+C                                           INCREASING DENSITY)
+C
+C---------------------------    BOUNDARY AT  -BOUND(3)
+C
+C                               REGION 4   (AIR WITH EXPONENTIALLY
+C                                           INCREASING DENSITY)
+C
+C---------------------------    BOUNDARY AT  -BOUND(4)
+C
+C                               REGION 5   (AIR WITH EXPONENTIALLY
+C                                           INCREASING DENSITY)
+C
+C-------------------------Z=0   BOUNDARY AT -BOUND(5)   (SEA LEVEL)
+C////////////|/////////
+C////////////|/////////         REGION 6   (VACUUM)
+C////////////V/////////                    (MAY CONTAIN DETECTOR)
+C   ELECTRON OR PHOTON
+C------------------------       BOUNDARY AT -BOUND(6)
+C
+C*********************************************************************
+*KEEP,EPCONT.
+      COMMON/EPCONT/   EDEP,RATIO,TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,IDISC,
+     *                 IROLD,IRNEW,RHOFAC, EOLD,ENEW,EKE,ELKE,BETA2,GLE,
+     *                 TSCAT,IAUSFL
+      DOUBLE PRECISION EDEP,RATIO
+      REAL             TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,RHOFAC,EOLD,ENEW,
+     *                 EKE,ELKE,BETA2,GLE,TSCAT
+      INTEGER          IDISC,IROLD,IRNEW,IAUSFL(29)
+*KEND.
+      COMMON/GEOM/ZALTIT,BOUND(6),NEWOBS,OBSLVL(10)
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' HOWFAR:NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      IF (IR(NP).GT.1 .AND. IR(NP).LT.6) THEN
+C ***  WE ARE IN THE ATMOSPHERE - CHECK THE GEOMETRY
+       IRL=IR(NP)
+C ***  GOING FORWARD - CONSIDER FIRST SINCE MOST FREQUENT
+       NOBS=IOBS(NP)
+       IF (W(NP).GT.0.0) THEN
+C  ***  TVAL IS DISTANCE TO NEXT BOUNDARY OR
+C  ***  OBSERVATION LEVEL IN THIS DIRECTION
+        TVAL=(-Z(NP)-MAX(BOUND(IRL),OBSLVL(NOBS)))/W(NP)
+        IF (TVAL.GT.USTEP) THEN
+C   ***  CAN TAKE CURRENTLY REQUESTED STEP
+         DNEAR(NP)=TVAL*W(NP)
+        ELSE
+C   ***  GO TO DETECTOR OR BOUNDARY, WHICH IS CLOSER
+         USTEP=MAX(TVAL,0.0001)
+         IF (BOUND(IRL).GE.OBSLVL(NOBS)) THEN
+C    ***  PARTICLE CROSSES BOUNDARY
+          IRNEW=IRL+1
+C    ***  PARTICLE LEAVES AIR
+          IF((IRNEW.GE.6))IDISC=-1
+         END IF
+         IF (BOUND(IRL).LE.OBSLVL(NOBS)) THEN
+C    ***  PARTICLE CROSSES DETECTOR
+          NEWOBS=NOBS+1
+C    ***  MAKE A VERY SMALL STEP TO AVOID HANGUP OF PROGRAM
+          IF((USTEP.LE.0.0))USTEP = 0.0001
+C    ***  TRANSPORT PARTICLE  TO FINAL DETECTOR LEVEL AND DISCARD IT
+          IF((NEWOBS.GT.NOBSLV))IDISC=-1
+         END IF
+        END IF
+C  ***  END OF W(NP)>0 CASE
+C  ***  GOING UPWARD IN ATMOSPHERE
+       ELSE IF(W(NP).LT.0.0) THEN
+C  ***  NO DETECTOR ABOVE PARTICLE
+        IF (NOBS.LE.1) THEN
+C   ***  DISTANCE TO BOUNDARY ABOVE
+         TVAL=(-Z(NP)-BOUND(IRL-1))/W(NP)
+         IF (TVAL.GT.USTEP) THEN
+C    ***  CAN TAKE CURRENTLY REQUESTED STEP
+          DNEAR(NP)=MIN(Z(NP)+BOUND(IRL-1),-(Z(NP)+BOUND(IRL)))
+         ELSE
+C    ***  CROSS BOUNDARY ABOVE
+          USTEP=MAX(TVAL,0.0001)
+          IRNEW=IRL-1
+         END IF
+        ELSE
+C   ***  BOUNDARY AND DETECTOR ABOVE PARTICLE
+         TVAL=(-Z(NP)-MIN(BOUND(IRL-1),OBSLVL(NOBS-1)))/W(NP)
+         IF (TVAL.GT.USTEP) THEN
+C    ***  CAN TAKE CURRENTLY REQUESTED STEP
+C    ***  DNEAR IS CLOSEST DISTANCE TO DETECTOR OR
+C    ***  BOUNDARY ABOVE OR BELOW PARTICLE
+          DNEAR(NP)=MIN(Z(NP)+MIN(BOUND(IRL-1),OBSLVL(NOBS-1)), -Z(NP) +
+     *     MAX(BOUND(IRL),OBSLVL(NOBS)))
+         ELSE
+C    ***  TAKE ONLY STEP UP TO BOUNDARY OR DETECTOR
+          USTEP=MAX(TVAL,0.0001)
+          IF (BOUND(IRL-1).LE.OBSLVL(NOBS-1)) THEN
+C     ***  PARTICLE CROSSES  BOUNDARY ABOVE
+           IRNEW=IRL-1
+C     ***  PARTICLE LEAVES ATMOSPHERE
+           IF((IRNEW.LE.1))IDISC=1
+          END IF
+          IF ((BOUND(IRL-1).GE.OBSLVL(NOBS-1))) THEN
+C     ***  PARTICLE CROSSES DETECTOR ABOVE; IT IS NOT
+C     ***  PRINTED, BECAUSE IT MUST HIT DETECTOR DOWNWARDS
+           NEWOBS=NOBS-1
+           IOBS(NP)=NEWOBS
+          END IF
+         END IF
+        END IF
+C  ***  END W(NP)<0 CASE
+C  ***  PARTICLE IS MOVING HORIZONTALLY, CANNOT HIT BOUNDARY
+       ELSE IF(W(NP).EQ.0.0) THEN
+        RETURN
+       END IF
+C ***  END OF ATMOSPHERE REGION CASE
+      ELSE IF(IR(NP).EQ.6) THEN
+C ***  TERMINATE THIS HISTORY, IT IS PAST THE ATMOSPHERE
+       IDISC=1
+C ***  WE ARE IN THE REGION WITH SOURCE ABOVE AIR
+      ELSE IF(IR(NP).EQ.1) THEN
+       IF (W(NP).GT.0.0) THEN
+C  ***  IT MUST BE A SOURCE PARTICLE ON BOUNDARY 1
+        USTEP=0.0001
+        IRNEW=2
+       ELSE
+C  ***  IT IS A REFLECTED PARTICLE, DISCARD IT
+        IDISC=1
+       END IF
+C ***  END REGION 1 CASE
+      END IF
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ininkg.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ininkg.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ininkg.f	(revision 4308)
@@ -0,0 +1,148 @@
+      SUBROUTINE ININKG
+ 
+C-----------------------------------------------------------------------
+C  INI(TIALIZE) NKG
+C
+C  INITIALIZES ARRAYS FOR NKG CALCULATING VARIABLES
+C  THIS SUBROUTINE IS CALLED FROM MAIN
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,NKGI.
+      COMMON /NKGI/    SEL,SELLG,STH,ZEL,ZELLG,ZSL,DIST,
+     *                 DISX,DISY,DISXY,DISYX,DLAX,DLAY,DLAXY,DLAYX,
+     *                 OBSATI,RADNKG,RMOL,TLEV,TLEVCM,IALT
+      DOUBLE PRECISION SEL(10),SELLG(10),STH(10),ZEL(10),ZELLG(10),
+     *                 ZSL(10),DIST(10),
+     *                 DISX(-10:10),DISY(-10:10),
+     *                 DISXY(-10:10,2),DISYX(-10:10,2),
+     *                 DLAX (-10:10,2),DLAY (-10:10,2),
+     *                 DLAXY(-10:10,2),DLAYX(-10:10,2),
+     *                 OBSATI(2),RADNKG,RMOL(2),TLEV(10),TLEVCM(10)
+      INTEGER          IALT(2)
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION DEPTH,HEIGH,RHOF,RMGCM,THICK
+      INTEGER          I,IL,K,KL
+      EXTERNAL         HEIGH,RHOF,THICK
+      DATA             RMGCM / 9.6D0 /
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'ININKG:'
+ 
+C  SET LATERAL DISTRIBUTION DISTANCES
+      IF ( RADNKG .LE. 100.D0 ) THEN
+        WRITE(MONIOU,*) 'ININKG: RADNKG=',RADNKG,' CM  TOO SMALL '
+        RADNKG = 200.D2
+        WRITE(MONIOU,*) '        RADNKG CORRECTED TO  ',RADNKG,' CM'
+      ENDIF
+      EVTH(148) = RADNKG
+      DO I=1,10
+        DIST(I)  = 100.D0 * 10.D0**(LOG10(RADNKG/100.D0)*0.1D0*I)
+        DISX(I)  =  DIST(I)
+        DISX(-I) = -DIST(I)
+      ENDDO
+      DISX(0) = 0.D0
+ 
+C  MOLIERE RADIUS FOR COULOMB SCATTERING ; EQUIVALENT TO 9.6 G/CM**2
+C  OBSERVATION LEVELS AND CORRESPONDING MOLIERE RADII (IN CM) FOR NKG
+      OBSATI(1) = OBSLEV(NOBSLV)
+      RMOL  (1) = RMGCM / RHOF(OBSATI(1))
+      IF ( NOBSLV .GT. 1 ) THEN
+        OBSATI(2) = OBSLEV(NOBSLV-1)
+        RMOL  (2) = RMGCM / RHOF(OBSATI(2))
+      ELSE
+        OBSATI(2) = -1.D0
+        RMOL  (2) =  0.D0
+        IALT  (2) =  0
+      ENDIF
+ 
+C  CALCULATE COORDINATES OF POINTS ON THE X AND Y AXIS AND THE TWO
+C  DIAGONAL LINES  Y IS X AND Y IS -X
+      DO 3333  KL = -10,10
+        DISY (KL)   =  DISX (KL)
+        DISXY(KL,1) =  DISX (KL) / SQRT(2.D0)
+        DISXY(KL,2) =  DISXY(KL,1)
+        DISYX(KL,1) =  DISXY(KL,1)
+        DISYX(KL,2) = -DISXY(KL,2)
+ 3333 CONTINUE
+C  CLEAR ARRAY FOR LATERAL ELECTRON DISTR. (AVERAGE OVER ALL SHOWERS)
+      DO 45  K = 1,2
+      DO 45  I = -10,10
+        DLAX (I,K) = 0.D0
+        DLAY (I,K) = 0.D0
+        DLAXY(I,K) = 0.D0
+        DLAYX(I,K) = 0.D0
+  45  CONTINUE
+C  CLEAR ARRAY FOR AGE PARAMETER CALCULATION (AVERAGE OVER ALL SHOWERS)
+      DO 17  I = 1,10
+        SEL(I)   = 0.D0
+        SELLG(I) = 0.D0
+        STH(I)   = 0.D0
+        ZELLG(I) = 0.D0
+        ZEL(I)   = 0.D0
+        ZSL(I)   = 0.D0
+  17  CONTINUE
+ 
+C  LAST OBSERVATION LEVEL DEPTH IS GIVEN IN G/CM**2
+      DEPTH   = THICK(OBSATI(1))
+      IALT(1) = MIN( 10, INT(DEPTH/102.D0)+1 )
+C  CALCULATE 10 LEVELS AT EACH 100 G/CM**2
+      DO 111  IL = 1,IALT(1)-1
+        TLEV  (IL) = 100.D0 * IL
+        TLEVCM(IL) = HEIGH(TLEV(IL))
+ 111  CONTINUE
+C  FOR LAST LEVEL NOT IL*100 BUT OBSERVATION LEVEL
+      TLEV  (IALT(1)) = DEPTH
+      TLEVCM(IALT(1)) = OBSATI(1)
+C  SECOND OBSERVATION LEVEL ?
+      IF ( OBSATI(2) .GE. 0.D0 ) THEN
+        DEPTH           = THICK(OBSATI(2))
+        IALT(2)         = INT(DEPTH/102.D0) + 1
+        IF ( IALT(2) .GE. IALT(1) ) IALT(2) = IALT(1) - 1
+        TLEV  (IALT(2)) = DEPTH
+        TLEVCM(IALT(2)) = OBSATI(2)
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/inprm.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/inprm.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/inprm.f	(revision 4308)
@@ -0,0 +1,812 @@
+C=======================================================================
+
+      SUBROUTINE INPRM
+ 
+C-----------------------------------------------------------------------
+C  IN(PUT) PR(I)M(ARY)
+C
+C  TAKES INPUT PRIMARY ENERGY FROM SPECIFIED SPECTRUM
+C  CHECKS INPUT VARIABLES FOR CONSISTENCY AND LIMITATIONS
+C  WRITES DATA BASE FILE
+C  THIS SUBROUTINE IS CALLED FROM MAIN
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,ATMOS.
+      COMMON /ATMOS/   AATM,BATM,CATM,DATM
+      DOUBLE PRECISION AATM(5),BATM(5),CATM(5),DATM(5)
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,DPMFLG.
+      COMMON /DPMFLG/  NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+      INTEGER          NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEEP,ETHMAP.
+      COMMON /ETHMAP/  ECTMAP,ELEFT
+      DOUBLE PRECISION ECTMAP,ELEFT
+*KEEP,LONGI.
+      COMMON /LONGI/   APLONG,HLONG,PLONG,SPLONG,THSTEP,THSTPI,
+     *                 NSTEP,LLONGI,FLGFIT
+      DOUBLE PRECISION APLONG(0:1040,9),HLONG(0:1024),PLONG(0:1040,9),
+     *                 SPLONG(0:1040,9),THSTEP,THSTPI
+      INTEGER          NSTEP
+      LOGICAL          LLONGI,FLGFIT
+*KEEP,MAGANG.
+      COMMON /MAGANG/  ARRANG,ARRANR,COSANG,SINANG
+      DOUBLE PRECISION ARRANG,ARRANR,COSANG,SINANG
+*KEEP,MAGNET.
+      COMMON /MAGNET/  BX,BZ,BVAL,BNORMC,BNORM,COSB,SINB,BLIMIT
+      DOUBLE PRECISION BX,BZ,BVAL,BNORMC
+      REAL             BNORM,COSB,SINB,BLIMIT
+*KEEP,NKGI.
+      COMMON /NKGI/    SEL,SELLG,STH,ZEL,ZELLG,ZSL,DIST,
+     *                 DISX,DISY,DISXY,DISYX,DLAX,DLAY,DLAXY,DLAYX,
+     *                 OBSATI,RADNKG,RMOL,TLEV,TLEVCM,IALT
+      DOUBLE PRECISION SEL(10),SELLG(10),STH(10),ZEL(10),ZELLG(10),
+     *                 ZSL(10),DIST(10),
+     *                 DISX(-10:10),DISY(-10:10),
+     *                 DISXY(-10:10,2),DISYX(-10:10,2),
+     *                 DLAX (-10:10,2),DLAY (-10:10,2),
+     *                 DLAXY(-10:10,2),DLAYX(-10:10,2),
+     *                 OBSATI(2),RADNKG,RMOL(2),TLEV(10),TLEVCM(10)
+      INTEGER          IALT(2)
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,PRIMSP.
+      COMMON /PRIMSP/  PSLOPE,LLIMIT,ULIMIT,LL,UL,SLEX,ISPEC
+      DOUBLE PRECISION PSLOPE,LLIMIT,ULIMIT,LL,UL,SLEX
+      INTEGER          ISPEC
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,REJECT.
+      COMMON /REJECT/  AVNREJ,
+     *                 ALTMIN,ANEXP,THICKA,THICKD,CUTLN,EONCUT,
+     *                 FNPRIM
+      DOUBLE PRECISION AVNREJ(10)
+      REAL             ALTMIN(10),ANEXP(10),THICKA(10),THICKD(10),
+     *                 CUTLN,EONCUT
+      LOGICAL          FNPRIM
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKF.
+      COMMON /STACKF/  STACK,STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+      INTEGER          MAXSTK
+      PARAMETER        (MAXSTK = 12*340*2)
+      DOUBLE PRECISION STACK(MAXSTK)
+      INTEGER          STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+*KEEP,VERS.
+      COMMON /VERS/    VERNUM,MVDATE,VERDAT
+      DOUBLE PRECISION VERNUM
+      INTEGER          MVDATE
+      CHARACTER*18     VERDAT
+*KEEP,VENUS.
+      COMMON /VENUS/   ISH0,IVERVN,MTAR99,FVENUS,FVENSG
+      INTEGER          ISH0,IVERVN,MTAR99
+      LOGICAL          FVENUS,FVENSG
+*KEEP,CEREN1.
+      COMMON /CEREN1/  CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD,
+     *                 CERSIZ,LCERFI
+      DOUBLE PRECISION CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD
+      REAL             CERSIZ
+      LOGICAL          LCERFI
+*KEEP,CEREN2.
+      COMMON /CEREN2/  PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS,CERYOS,
+     *                 NCERX,NCERY,ICERML
+      REAL             PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS(20),CERYOS(20)
+      INTEGER          NCERX,NCERY,ICERML
+*KEND.
+ 
+      DOUBLE PRECISION EFRAC,HEIGH,H0,OOO,THICK
+      REAL             VERVEN
+      INTEGER          I,IBL,IDPM,ILONG,ISO,J,L
+      LOGICAL          LTHIN
+      EXTERNAL         HEIGH,THICK
+      CHARACTER*1      MARK
+      CHARACTER*9      LSTDSN
+C-----------------------------------------------------------------------
+ 
+      WRITE(MONIOU,504)
+  504 FORMAT(//' ',10('='),' SHOWER PARAMETERS ', 50('=') )
+ 
+C  WRITE ENERGY SPECTRUM TO HEADER
+      RUNH(16) = PSLOPE
+      RUNH(17) = LLIMIT
+      RUNH(18) = ULIMIT
+ 
+      EVTH(58) = PSLOPE
+      EVTH(59) = LLIMIT
+      EVTH(60) = ULIMIT
+ 
+      IF ( PRMPAR(1) .GE. 6000.D0  .OR.  PRMPAR(1) .LE. 0.D0 ) THEN
+        WRITE(MONIOU,*)'INCORRECT SELECTION OF PRIMARY PARTICLE TYPE = '
+     *                  ,INT(PRMPAR(1))
+        WRITE(MONIOU,*)'PLEASE READ THE MANUALS'
+        STOP
+      ENDIF
+C  CHECK WETHER NUCLEUS IS A SINGLE NUCLEON
+      IF (PRMPAR(1) .EQ. 100.D0 ) PRMPAR(1) = 13.D0
+      IF (PRMPAR(1) .EQ. 101.D0 ) PRMPAR(1) = 14.D0
+      WRITE(MONIOU,*)'PRIMARY PARTICLE IDENTIFICATION IS ',
+     *                NINT(PRMPAR(1))
+C  CHECK RECOMMENDED ENERGY RANGE
+      IF ( FVENUS  .AND.
+     *     ULIMIT.GT.2.D7  .AND.  PRMPAR(1).GE.8.D0 ) THEN
+        WRITE(MONIOU,502) ULIMIT
+  502   FORMAT(' INTERACTION MODEL DOUBTFUL FOR THE SELECTED PRIMARY ',
+     *         'ENERGY OF ',E10.3,' GEV'/' PLEASE READ THE MANUALS')
+        STOP
+      ENDIF
+ 
+
+
+
+c> *** modified by fs (22/09/98) *******************************
+
+
+c      IF ( PRMPAR(1) .GT. 101.D0 ) THEN
+c        IF ( GHEISH ) THEN
+cC  GHEISHA CAN TREAT ONLY DEUTERONS, TRITONS, AND ALPHA PARTICLES
+c          IF ( PRMPAR(1) .NE. 201.D0  .AND.  PRMPAR(1) .NE. 301.D0
+c     *         .AND.  PRMPAR(1) .NE. 402.D0 ) THEN
+c            IF ( LLIMIT .LT. HILOELB * INT(PRMPAR(1)/100.D0) ) THEN
+c              WRITE(MONIOU,503) INT(PRMPAR(1)/100.D0),LLIMIT
+c              STOP
+c            ENDIF
+c          ENDIF
+c        ELSE
+c          IF ( LLIMIT .LT. HILOELB * INT(PRMPAR(1)/100.D0) ) THEN
+c            WRITE(MONIOU,503) INT(PRMPAR(1)/100.D0),LLIMIT
+c  503       FORMAT(' NUCLEUS WITH A =',I2,' AND PRIMARY ENERGY =',
+c     *        1PE10.3,' GEV TOO LOW FOR HIGH ENERGY INTERACTION MODEL'/
+c     *        ' AND CANNOT BE TREATED BY LOW ENERGY INTERACTION MODEL'/
+c     *        ' PLEASE READ THE MANUALS')
+c            STOP
+c          ENDIF
+c        ENDIF
+c      ENDIF
+
+
+c> *** end of modification ****************************************
+
+C  DEFINE ENERGY RANGE AND ENERGY SPECTRUM OF PRIMARY
+      IF ( LLIMIT .EQ. ULIMIT ) THEN
+        ISPEC = 0
+        WRITE(MONIOU,506) LLIMIT
+  506   FORMAT(' PRIMARY ENERGY IS FIXED AT           ',1PE10.3,
+     *         ' GEV' )
+      ELSE
+        ISPEC = 1
+        WRITE(MONIOU,505) PSLOPE,LLIMIT,ULIMIT
+  505   FORMAT(' PRIMARY ENERGY IS TAKEN FROM SPECTRUM VIA MONTE CARLO'/
+     *  5X,' SLOPE OF PRIMARY SPECTRUM                = ',1P,E10.3/
+     *  5X,' LOWER LIMIT CUT-OFF FOR PRIMARY SPECTRUM = ',E10.3,' GEV'/
+     *  5X,' UPPER LIMIT CUT-OFF FOR PRIMARY SPECTRUM = ',E10.3,' GEV'/)
+        IF ( PSLOPE .NE. -1.D0 ) THEN
+          LL   = LLIMIT ** (PSLOPE + 1.D0)
+          UL   = ULIMIT ** (PSLOPE + 1.D0)
+          SLEX = 1.D0 / (PSLOPE + 1.D0)
+        ELSE
+          LL   = ULIMIT / LLIMIT
+        ENDIF
+      ENDIF
+ 
+C  FIRST INTERACTION TARGET FIXED ?
+      IF     ( N1STTR .EQ. 1 ) THEN
+        WRITE(MONIOU,508) 'NITROGEN'
+ 508    FORMAT(' TARGET OF FIRST INTERACTION IS FIXED TO   ',A8)
+      ELSEIF ( N1STTR .EQ. 2 ) THEN
+        WRITE(MONIOU,508) 'OXYGEN  '
+      ELSEIF ( N1STTR .EQ. 3 ) THEN
+        WRITE(MONIOU,508) 'ARGON   '
+      ELSE
+        N1STTR = 0
+        WRITE(MONIOU,*)'TARGET OF FIRST INTERACTION IS CHOSEN RANDOMLY'
+      ENDIF
+ 
+C  CHECK ANGULAR SETTINGS
+      IF ( THETPR(1) .LT. 0.D0 ) THEN
+        WRITE(MONIOU,*)'UNALLOWED CHOICE OF THETPR = ',SNGL(THETPR(1)),
+     *                  ' DEGREES'
+        WRITE(MONIOU,*)'PLEASE READ THE MANUALS'
+        STOP
+      ENDIF
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>      IF     ( THETPR(2) .GT. 70.D0 ) THEN
+c>        WRITE(MONIOU,*)'UNALLOWED CHOICE OF THETPR = ',SNGL(THETPR(2)),
+c>     *                  ' DEGREES'
+c>        WRITE(MONIOU,*)'PLEASE READ THE MANUALS'
+c>        STOP
+c>      ELSEIF ( THETPR(2) .GT. 45.D0 ) THEN
+c>        WRITE(MONIOU,*)'UNALLOWED CHOICE OF THETPR = ',SNGL(THETPR(2)),
+c>     *                  ' DEGREES'
+c>        WRITE(MONIOU,*)'#########################################'
+c>        WRITE(MONIOU,*)'# IN DOUBTFUL CASES CONTACT THE AUTHORS #'
+c>        WRITE(MONIOU,*)'#########################################'
+c>        STOP
+c>      ENDIF
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C  INCIDENCE ANGLE FIXED ?
+      IF ( THETPR(1) .EQ. THETPR(2) .AND. PHIPR(1) .EQ. PHIPR(2) ) THEN
+        FIXINC = .TRUE.
+        WRITE(MONIOU,517) THETPR(1),PHIPR(1)
+  517   FORMAT(' THETA OF INCIDENCE IS FIXED TO ',F10.2,' DEGREES'/
+     *         ' PHI   OF INCIDENCE IS FIXED TO ',F10.2,' DEGREES')
+      ELSE
+        FIXINC = .FALSE.
+        WRITE(MONIOU,527) THETPR,PHIPR
+  527   FORMAT(' THETA OF INCIDENCE CHOSEN FROM ',F10.2,'...',F10.2,
+     *         ' DEGREES'/
+     *         ' PHI   OF INCIDENCE CHOSEN FROM ',F10.2,'...',F10.2,
+     *         ' DEGREES')
+      ENDIF
+      EVTH(81) = THETPR(1)
+      EVTH(82) = THETPR(2)
+      EVTH(83) = PHIPR(1)
+      EVTH(84) = PHIPR(2) 
+      THETPR(1) = THETPR(1)*PI/180.D0
+      THETPR(2) = THETPR(2)*PI/180.D0
+      PHIPR(1)  = PHIPR(1) *PI/180.D0
+      PHIPR(2)  = PHIPR(2) *PI/180.D0
+ 
+C-----------------------------------------------------------------------
+C  PRMPAR, OBSLEV, NOBSLV
+      PRMPAR(2) = 0.D0
+      PRMPAR(6) = 0.D0
+      PRMPAR(7) = 0.D0
+      PRMPAR(8) = 0.D0
+ 
+C  ORDERING OF OBSERVATION LEVELS FROM TOP TO BOTTOM
+      IF ( NOBSLV .GT. 1 ) THEN
+  215 CONTINUE
+        DO 11  I = 2,NOBSLV
+          IF ( OBSLEV(I) .GT. OBSLEV(I-1) ) THEN
+            OOO         = OBSLEV(I)
+            OBSLEV(I)   = OBSLEV(I-1)
+            OBSLEV(I-1) = OOO
+            GOTO 215
+          ENDIF
+   11   CONTINUE
+      ENDIF
+C  CHECK WETHER OBSERVATION LEVELS ARE IN ALLOWED RANGE
+      DO 12  I = 1,NOBSLV
+        IF ( OBSLEV(I) .GE. HEIGH(0.D0) ) THEN
+          WRITE(MONIOU,120)I,OBSLEV(I),HEIGH(0.D0)
+ 120      FORMAT(' UNALLOWED CHOICE OF OBSLEV '/' OBSERVATION LEVEL ',
+     *           I2,' IS AT ',F12.3,' CM, WHICH IS ABOVE ',
+     *           F12.3,' CM'/' PLEASE READ THE MANUALS')
+          STOP
+        ENDIF
+        IF ( OBSLEV(I) .LE. -1.D5 ) THEN
+          WRITE(MONIOU,121)I,OBSLEV(I)
+ 121      FORMAT(' UNALLOWED CHOICE OF OBSLEV '/' OBSERVATION LEVEL ',
+     *          I2,' IS AT ',F12.3,' CM, WHICH IS BELOW ',
+     *          '-1.D5 CM'/' PLEASE READ THE MANUALS')
+          STOP
+        ENDIF
+        THCKOB(I) = THICK(OBSLEV(I))
+   12 CONTINUE
+ 
+C  WRITE OBSERVATION LEVELS TO HEADER (IN CM)
+      RUNH(5) = REAL(NOBSLV)
+      EVTH(47) = REAL(NOBSLV)
+      DO 114  I = 1,NOBSLV
+        RUNH(5+I)  = OBSLEV(I)
+        EVTH(47+I) = OBSLEV(I)
+  114 CONTINUE
+ 
+C  FIRST INTERACTION HEIGHT FIXED ?
+      IF ( FIX1I ) THEN
+        IF ( FIXHEI .GE. HEIGH(0.D0) ) THEN
+          WRITE(MONIOU,122)FIXHEI,HEIGH(0.D0)
+ 122      FORMAT(' UNALLOWED CHOICE OF FIXHEI '/' FIRST INTERACTION ',
+     *           'IS FIXED AT ',F12.3,' CM, WHICH IS ABOVE ',
+     *           F12.3,' CM'/' PLEASE READ THE MANUALS')
+          STOP
+        ENDIF
+        IF ( FIXHEI .LE. OBSLEV(NOBSLV) ) THEN
+          WRITE(MONIOU,123)FIXHEI,OBSLEV(NOBSLV)
+ 123      FORMAT(' UNALLOWED CHOICE OF FIXHEI '/' FIRST INTERACTION ',
+     *           'IS FIXED AT ',F12.3,' CM, '/' WHICH IS BELOW ',
+     *           'LOWEST OBSERVATION LEVEL AT ',F12.3,' CM'
+     *           /' PLEASE READ THE MANUALS')
+          STOP
+        ENDIF
+          WRITE(MONIOU,507) FIXHEI
+ 507      FORMAT(' HEIGHT OF FIRST INTERACTION IS FIXED TO ',1P,E10.2,
+     *         ' CM')
+        IF ( N1STTR .GE. 1  .AND.  N1STTR .LE. 3 ) THEN
+          IF ( PRMPAR(1) .LE. 3.D0 ) THEN
+            WRITE(MONIOU,516) INT(PRMPAR(1))
+ 516        FORMAT(' TARGET OF FIRST INTERACTION CANNOT BE FIXED FOR ',
+     *           'PRIMARY TYPE ',I5/' PLEASE READ THE MANUALS')
+            STOP
+          ELSEIF ( N1STTR .EQ. 1 ) THEN
+            WRITE(MONIOU,*)'TARGET OF FIRST INTERACTION IS NITROGEN'
+          ELSEIF ( N1STTR .EQ. 2 ) THEN
+            WRITE(MONIOU,*)'TARGET OF FIRST INTERACTION IS OXYGEN'
+          ELSEIF ( N1STTR .EQ. 3 ) THEN
+            WRITE(MONIOU,*)'TARGET OF FIRST INTERACTION IS ARGON'
+          ENDIF
+        ELSE
+          WRITE(MONIOU,*)
+     *       'TARGET OF FIRST INTERACTION IS CHOSEN AT RANDOM'
+        ENDIF
+      ELSE
+        FIXHEI = 0.D0
+        WRITE(MONIOU,*) 'HEIGHT OF FIRST INTERACTION IS CHOSEN RANDOMLY'
+      ENDIF
+ 
+C  STARTING ALTITUDE WITHIN ATMOSPHERE?
+      IF ( THICK0 .LT. 0.D0 ) THEN
+        WRITE(MONIOU,130)THICK0
+ 130    FORMAT(' UNALLOWED STARTING ALTITUDE WITH NEGATIVE MASS OVERLAY'
+     *          ,E12.3/' PLEASE READ THE MANUALS')
+        STOP
+      ENDIF
+      IF ( THICK0 .GE. THCKOB(NOBSLV) ) THEN
+        WRITE(MONIOU,131) THICK0
+ 131    FORMAT(' UNALLOWED STARTING ALTITUDE AT ',F12.3,' G/CM**2',
+     *         '  WHICH IS BELOW LOWEST OBSERVATION LEVEL'/
+     *        ' PLEASE READ THE MANUALS')
+        STOP
+      ENDIF
+      H0 = HEIGH(THICK0)
+      IF ( THICK0 .EQ. 0.D0 ) THEN
+        WRITE(MONIOU,518) H0, THICK0
+        WRITE(MONIOU,*)'                 WHICH IS AT TOP OF ATMOSPHERE'
+      ELSE
+        WRITE(MONIOU,518) H0, THICK0
+      ENDIF
+ 518  FORMAT(' STARTING ALTITUDE AT ',1P,F13.2,' CM (=',
+     *                                             E7.1,' G/CM**2)')
+      WRITE(MONIOU,203) (OBSLEV(I),THCKOB(I),I=1,NOBSLV)
+  203 FORMAT(/' OBSERVATION LEVELS IN  CM    AND IN    G/CM**2 ',
+     *  1P /(5X, 2E20.8 /))
+ 
+C  LONGITUDINAL SHOWER DEVELOPMENT
+      IF ( LLONGI ) THEN
+        THSTEP = NINT(THSTEP)
+        THSTEP = MAX(THSTEP,1.D0)
+        THSTEP = MIN(THSTEP,1040.D0)
+        THSTPI = 1.D0/THSTEP
+        NSTEP  = INT(THCKOB(NOBSLV)*THSTPI)
+        IF ( NSTEP .GE. 1040 ) THEN
+          NSTEP  = 1040
+          THSTEP = THCKOB(NOBSLV)/NSTEP
+          WRITE(MONIOU,*)'LONGITUDINAL SHOWER SAMPLING MODIFIED'
+        ENDIF
+        WRITE(MONIOU,925) NSTEP+1,THSTEP
+ 925    FORMAT(/' LONGITUDINAL SHOWER DEVELOPMENT:'/
+     *          '      SHOWER IS SAMPLED IN ',I4,
+     *          ' STEPS OF ',F6.1,' G/CM**2')
+C  GET HEIGHT VALUES IN CM FOR USE IN EGS
+        DO 478  J = 0,NSTEP
+          HLONG(J) = HEIGH(J*THSTEP)
+ 478    CONTINUE
+        IF ( FLGFIT ) THEN
+          WRITE(MONIOU,*)
+     *      '     FIT TO CHARGED PARTICLE LONG. DISTRIBUTION   ENABLED'
+        ELSE
+          WRITE(MONIOU,*)
+     *      '     FIT TO CHARGED PARTICLE LONG. DISTRIBUTION   DISABLED'
+        ENDIF
+        WRITE(MONIOU,*)
+      ENDIF
+ 
+C-----------------------------------------------------------------------
+C  CHECK INPUT OF ENERGY CUTS
+      IF     ( GHEISH  .AND.  ELCUT(1) .LT. 0.05D0 ) THEN
+        WRITE(MONIOU,*)'ELCUT(1) SELECTED INCORRECT TO ',ELCUT(1),' GEV'
+        WRITE(MONIOU,*)'PLEASE READ THE MANUALS '
+        STOP
+      ELSEIF ( .NOT.GHEISH  .AND.  ELCUT(1) .LT. 0.3D0 ) THEN
+        WRITE(MONIOU,*)'ELCUT(1) SELECTED INCORRECT TO ',ELCUT(1),' GEV'
+        WRITE(MONIOU,*)'PLEASE READ THE MANUALS '
+        STOP
+      ENDIF
+      IF ( ELCUT(2) .LT. 0.05D0 ) THEN
+        WRITE(MONIOU,*)'ELCUT(2) SELECTED INCORRECT TO ',ELCUT(2),' GEV'
+        WRITE(MONIOU,*)'PLEASE READ THE MANUALS '
+        STOP
+      ENDIF
+      IF ( ELCUT(3) .LT. 0.003D0 ) THEN
+        WRITE(MONIOU,*)'ELCUT(3) SELECTED INCORRECT TO ',ELCUT(3),' GEV'
+        WRITE(MONIOU,*)'PLEASE READ THE MANUALS '
+        STOP
+      ENDIF
+      IF ( ELCUT(4) .LT. 0.003D0 ) THEN
+        WRITE(MONIOU,*)'ELCUT(4) SELECTED INCORRECT TO ',ELCUT(4),' GEV'
+        WRITE(MONIOU,*)'PLEASE READ THE MANUALS '
+        STOP
+      ENDIF
+      WRITE(MONIOU,703) ECTMAP,ELCUT
+  703 FORMAT (' PARTICLES WITH LORENTZ FACTOR LARGER THAN',1P,E15.4,
+     *        ' ARE PRINTED OUT'/' SHOWER PARTICLES ENERGY CUT :'/
+     *        '      FOR HADRONS   : ',E15.4,' GEV'/
+     *        '      FOR MUONS     : ',E15.4,' GEV'/
+     *        '      FOR ELECTRONS : ',E15.4,' GEV'/
+     *        '      FOR PHOTONS   : ',E15.4,' GEV'//)
+ 
+      DO 774  I = 1,4
+        RUNH(20+I) = ELCUT(I)
+        EVTH(60+I) = ELCUT(I)
+  774 CONTINUE
+ 
+C-----------------------------------------------------------------------
+C  PARAMETERS OF EARTH MAGNETIC FIELD OF MIDDLE EUROPE
+C  +X DIRECTION IS NORTH, +Y DIRECTION IS EAST, +Z DIRECTION IS DOWN
+      BVAL   = SQRT( BX**2 + BZ**2 )
+C  BNORM HAS DIMENSIONS OF MEV/CM
+      BNORM  = BVAL * C(25) * 1.D-16
+C  BNORMC HAS DIMENSIONS OF GEV/CM
+      BNORMC = BNORM * 1.D-3
+      SINB   = BZ / BVAL
+      COSB   = BX / BVAL
+      WRITE(MONIOU,*)'EARTH MAGNETIC FIELD STRENGTH IS ',SNGL(BVAL),
+     *                ' MICROTESLA'
+      WRITE(MONIOU,*)'     WITH INCLINATION ANGLE      ',
+     *               SNGL(ASIN(SINB)*180./PI),' DEGREES'
+      IF ( BVAL .GE. 10000.D0 ) THEN
+        WRITE(MONIOU,*)'YOU WANT TO MAGNETIZE THE GALAXY ?'
+        WRITE(MONIOU,*)'PLEASE READ THE MANUALS !'
+        STOP
+      ENDIF
+C  LIMITING FACTOR FOR STEP SIZE OF ELECTRON IN MAGNETIC FIELD
+      BLIMIT = 0.2 / BNORM
+      EVTH(71) = BX
+      EVTH(72) = BZ
+C  ANGLE BETWEEN ARRAY X-DIRECTION AND MAGNETIC NORD
+C  POSITIV, IF X-DIRECTION OF ARRAY POINTS TO EASTERN DIRECTION
+      ARRANR = ARRANG * PI / 180.D0
+      COSANG = COS(ARRANR)
+      SINANG = SIN(ARRANR)
+      EVTH(93) = ARRANR
+      IF ( ARRANG .NE. 0.D0 ) THEN
+        WRITE(MONIOU,*)
+        WRITE(MONIOU,*)'DETECTOR COORDINATE SYSTEM IS ROTATED AWAY ',
+     *                 'FROM NORTH BY ',SNGL(ARRANG),' DEGREES'
+      ENDIF
+ 
+C-----------------------------------------------------------------------
+C  DEFINE CERENKOV ARRAY
+      NCERX = MAX( NCERX, 1 )
+      NCERY = MAX( NCERY, 1 )
+      ACERX = ABS(ACERX)
+      ACERY = ABS(ACERY)
+      DCERX = MAX( ABS(DCERX), 0.001 )
+      DCERY = MAX( ABS(DCERY), 0.001 )
+      XCMAX = (ACERX + (NCERX-1) * DCERX) * 0.5
+      YCMAX = (ACERY + (NCERY-1) * DCERY) * 0.5
+      DCERXI = 1./DCERX
+      EPSX = ACERX * 0.5 * DCERXI
+      DCERYI = 1./DCERY
+      EPSY = ACERY * 0.5 * DCERYI
+      IF ( MOD(NCERX,2) .EQ. 0 ) THEN
+        FCERX = -0.5
+      ELSE
+        FCERX = 0.0
+      ENDIF
+      IF ( MOD(NCERY,2) .EQ. 0 ) THEN
+        FCERY = -0.5
+      ELSE
+        FCERY = 0.0
+      ENDIF
+ 
+      WRITE(MONIOU,472)
+     *          ACERX*.01,ACERY*.01, DCERX*.01,DCERY*.01, NCERX,NCERY
+ 472  FORMAT(/' CERENKOV ARRAY:'/
+     *  5X,' CERENKOV STATIONS ARE ',F6.2,'  X  ',F6.2,' M**2 LARGE'/
+     *  5X,' THE GRID SPACING IS   ',F6.2,' AND ',F6.2,' M',/
+     *  5X,' THERE ARE ',I3,' X ',I3,' STATIONS IN X/Y DIRECTIONS'/
+     *  5X,' THE CERENKOV ARRAY IS CENTERED AROUND (0., 0.)'/)
+C  CALCULATE CERENKOV YIELD FACTOR FROM WAVELENGTH BAND
+      IF ( WAVLGL .LT. 100.D0  .OR.  WAVLGU .GT. 700.D0
+     *                         .OR.  WAVLGL .GE. WAVLGU ) THEN
+        WRITE(MONIOU,*)'CERENKOV WAVELENGTH BAND FROM ',SNGL(WAVLGL),
+     *              ' TO ',SNGL(WAVLGU),' NANOMETER'
+        WRITE(MONIOU,*)' IS OUT OF VALIDITY RANGE'
+        WRITE(MONIOU,*)'PLEASE READ THE MANUALS'
+        STOP
+      ENDIF
+      WRITE(MONIOU,*)'CERENKOV WAVELENGTH BAND FROM ',SNGL(WAVLGL),
+     *              ' TO ',SNGL(WAVLGU),' NANOMETER'
+C  WAVELENGTH IS CONVERTED FROM NM TO CM
+      CYIELD = (1.D0/WAVLGL - 1.D0/WAVLGU) * 2.D7 * PI / C(50)
+C  CALCULATE FACTOR FOR ETA DENSITY NORML.(ETA AT SEA LEVEL = 0.283D-3)
+      ETADSN = 0.283D-3 * CATM(1) / BATM(1)
+ 
+      IF ( CERSIZ .GT. 0. ) THEN
+        WRITE(MONIOU,*)'CERENKOV BUNCH SIZE IS SET TO=',CERSIZ
+      ELSE
+        WRITE(MONIOU,*)'CERENKOV BUNCH SIZE IS CALCULATED FOR EACH ',
+     *                 'SHOWER'
+      ENDIF
+ 
+      IF ( LCERFI ) THEN
+        WRITE(MONIOU,*)'CERENKOV PHOTONS ARE WRITTEN TO SEPARATE FILE'
+      ELSE
+        WRITE(MONIOU,*)'CERENKOV PHOTONS ARE WRITTEN TO PARTICLE ',
+     *                 'OUTPUT FILE'
+      ENDIF
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c   Next block of code has been modified, and is passed to MAIN
+c----------------------------------------------------------------------
+cC  SCATTERING OF CENTER OF CHERENKOV ARRAY RELATIVE TO SHOWER AXIS
+c      ICERML = MIN(MAX(ICERML,1),20)
+c      XSCATT = ABS(XSCATT)
+c      YSCATT = ABS(YSCATT)
+c      IF ( ICERML .GE. 1 ) THEN
+c        WRITE(MONIOU,5225)ICERML,XSCATT,YSCATT
+c 5225   FORMAT(' DEFINE MULTIPLE CERENKOV ARRAYS TO USE EACH',
+c     *   ' SHOWER SEVERAL TIMES'/ ' USE EACH EVENT ',I2,' TIMES'/
+c     *   ' THE EVENTS ARE SCATTERED QUASI RANDOMLY IN THE RANGE '/
+c     *   '   X =  +- ',F10.0,'    Y = +- ',F10.0)
+c        DO 4438 I=1,ICERML
+c          CALL SELCOR(CERXOS(I),CERYOS(I))
+c          WRITE(MONIOU,4437) I,CERXOS(I),CERYOS(I)
+c 4437     FORMAT('    CORE OF EVENT ',I2,'  AT  ',2F12.2)
+c 4438   CONTINUE
+c        XCMAX = XCMAX + XSCATT
+c        YCMAX = YCMAX + YSCATT
+c      ENDIF
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+C  STORE CERENKOV PARAMETERS IN EVENTHEADER
+      EVTH(86) = NCERX
+      EVTH(87) = NCERY
+      EVTH(88) = DCERX
+      EVTH(89) = DCERY
+      EVTH(90) = ACERX
+      EVTH(91) = ACERY
+      IF ( LCERFI ) THEN
+        EVTH(92) = 1.
+      ELSE
+        EVTH(92) = 0.
+      ENDIF
+      EVTH(96) = WAVLGL
+      EVTH(97) = WAVLGU
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c   Next block of code has been passed to MAIN
+c----------------------------------------------------------------------
+c      EVTH(98) = FLOAT(ICERML)
+c      DO  480 I=1,20
+c        EVTH( 98+I) = CERXOS(I)
+c        EVTH(118+I) = CERYOS(I)
+c 480  CONTINUE
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+C-----------------------------------------------------------------------
+C  FLAG FOR ADDITIONAL MUON INFORMATION
+      IF ( FMUADD ) THEN
+        WRITE(MONIOU,*)
+        WRITE(MONIOU,*)'ADDITIONAL INFORMATION ON MUON ORIGIN IS',
+     *                 ' WRITTEN TO PARTICLE TAPE'
+        EVTH(94) = 1.
+      ELSE
+        EVTH(94) = 0.
+      ENDIF
+ 
+C  PRINTOUT OF INFORMATIONS FOR DEBUGGING
+      IF ( DEBUG ) WRITE(MONIOU,484) MDEBUG
+  484 FORMAT(/' ATTENTION ! DEBUGGING IS ACTIVE'/
+     *          ' ====> DEBUG INFORMATION WRITTEN TO UNIT ',I3//)
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c   Next block of code is obsolete.
+c   Now it's used "jcio" routines (C)
+cC-----------------------------------------------------------------------
+cC  OPEN OUTPUT DATA SET FOR RUN
+c      IBL = INDEX(DSN,' ')
+c      DSN(IBL:73) = 'DAT000000'
+c      WRITE(DSN(IBL+3:IBL+8),'(I6)') NRRUN
+c      DO 274  L = IBL+3,IBL+8
+c        IF ( DSN(L:L) .EQ. ' ' ) DSN(L:L) = '0'
+c 274  CONTINUE
+cC  OPEN DATASET FOR PARTICLE OUTPUT
+c      OPEN(UNIT=PATAPE,FILE=DSN,STATUS='NEW',
+c     *       FORM='UNFORMATTED',ACCESS='SEQUENTIAL')
+c      WRITE(MONIOU,579) DSN
+c 579  FORMAT(/' PARTICLE OUTPUT TO DIRECTORY : ',A79)
+cC  WRITE RUNHEADER TO OUTPUT BUFFER
+c      CALL TOBUF( RUNH,0 )
+c
+cC  OPEN OUTPUT DATA SET FOR CERENKOV PHOTONS
+c      IF ( LCERFI ) THEN
+c        DSN(IBL:73) = 'CER000000'
+c        WRITE(DSN(IBL+3:IBL+8),'(I6)') NRRUN
+c        DO 249  L = IBL+3,IBL+8
+c          IF (DSN(L:L) .EQ. ' ' ) DSN(L:L) = '0'
+c 249    CONTINUE
+c        OPEN(UNIT=CETAPE,FILE=DSN,STATUS='NEW',
+c     *       FORM='UNFORMATTED',ACCESS='SEQUENTIAL')
+c        WRITE(MONIOU,580) DSN
+c 580    FORMAT(' CERENKOV OUTPUT TO DIRECTORY : ',A79)
+c        CALL TOBUFC( RUNH,0 )
+c      ELSE
+c        WRITE(MONIOU,580) DSN
+c      ENDIF
+cC  RESET DSN
+c      DSN(IBL:73) = '         '
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ 
+C  OPEN ON EXTERNAL STACK
+C  BLOCKS OF 32640 BYTES = 4080 REAL*8 = 340 PARTICLES
+      OPEN(UNIT=EXST,STATUS='SCRATCH',
+     *     FORM='UNFORMATTED',ACCESS='DIRECT',RECL=MAXSTK)
+ 
+ 
+C-----------------------------------------------------------------------
+C  WRITE DATA SET FOR INFORMATION BANK
+      IF (FDBASE ) THEN
+C  OPEN OUTPUT DATA SET FOR RUN
+        IBL = INDEX(DSN,' ')
+        DSN(IBL:79) = 'DAT000000.dbase'
+        WRITE(DSN(IBL+3:IBL+8),'(I6)') NRRUN
+        DO 275  L = IBL+3,IBL+8
+          IF ( DSN(L:L) .EQ. ' ' ) DSN(L:L) = '0'
+ 275    CONTINUE
+        OPEN(UNIT=MDBASE,FILE=DSN,STATUS='NEW')
+        WRITE(MONIOU,581) DSN
+ 581    FORMAT(/' DBASE OUTPUT TO DIRECTORY : ',A79)
+C  RESET DSN
+        DSN(IBL+9:IBL+14) = '      '
+ 
+        LSTDSN(1:3) = 'LST'
+        LSTDSN(4:9) = DSN(IBL+3:IBL+8)
+        VERVEN=FLOAT(IVERVN)/1000.
+        IF ( LLONGI ) THEN
+          ILONG = 1
+        ELSE
+          ILONG = 0
+        ENDIF
+        IF ( EVTH(75) .NE. 0. ) THEN
+          ISO = 0
+        ELSE
+          ISO = 1
+        ENDIF
+C  SET DPMFLAG (0=VENUS, 1=HDPM, 2=SIBYLL, 3=QGSJET, 4=DPMJET)
+        IF     ( EVTH( 76) .NE. 0. ) THEN
+          IDPM = 0
+        ELSEIF ( EVTH(139) .NE. 0. ) THEN
+          IDPM = 2
+        ELSEIF ( EVTH(141) .NE. 0. ) THEN
+          IDPM = 3
+        ELSEIF ( EVTH(143) .NE. 0. ) THEN
+          IDPM = 4
+        ELSE
+          IDPM = 1
+        ENDIF
+C  INCREMENT DPMFLAG FOR VARIOUS CROSS SECTIONS
+C  BY (0=HDPM-SIG, 10=VENUSSIG, 20=SIBYLLSIG, 30=QGSSIG, 4=DPMJETSIG)
+        IF     ( EVTH(145) .NE. 0 ) THEN
+          IDPM = IDPM + 10
+        ELSEIF ( EVTH(140) .NE. 0 ) THEN
+          IDPM = IDPM + 20
+        ELSEIF ( EVTH(142) .NE. 0 ) THEN
+          IDPM = IDPM + 30
+        ELSEIF ( EVTH(144) .NE. 0 ) THEN
+          IDPM = IDPM + 40
+        ENDIF
+        MARK = '1'
+        LTHIN = .FALSE.
+        EFRAC = 0.D0
+ 
+        WRITE(MDBASE,666)VERNUM,MARK,MVDATE,VERVEN,
+     $INT(RUNH(3))+19000000,INT(EVTH(80)),INT(EVTH(79)),INT(EVTH(78)),
+     $INT(EVTH(77)),INT(RUNH(2)),INT(PRMPAR(1)),
+     $LLIMIT,ULIMIT,PSLOPE,INT(RUNH(20)),
+     $INT(RUNH(19)),INT(EVTH(76)),INT(EVTH(75)),ISO,IDPM,
+     $NFLAIN,NFLDIF,NFLPI0,NFLPIF,
+     $NFLCHE,NFRAGM,ILONG,THSTEP,
+     $BX,BZ,NOBSLV,
+     $OBSLEV(1),OBSLEV(2),OBSLEV(3),
+     $OBSLEV(4),OBSLEV(5),OBSLEV(6),
+     $OBSLEV(7),OBSLEV(8),OBSLEV(9),
+     $OBSLEV(10),ELCUT(1),ELCUT(2),ELCUT(3),
+     $ELCUT(4),EVTH(81),EVTH(82),EVTH(83),
+     $EVTH(84),FIXHEI,N1STTR,THICK0,
+     $STEPFC,ARRANG,INT(EVTH(94)),NSEQ,
+     $ISEED(1,1),ISEED(2,1),ISEED(3,1),ISEED(1,2),
+     $ISEED(2,2),ISEED(3,2),ISEED(1,3),
+     $ISEED(2,3),ISEED(3,3),0,DSN,
+     $LSTDSN,' JDD300.01',' JDD300.01',
+     $NSHOW,HOST,USER,LTHIN,EFRAC
+ 
+ 666    FORMAT('#version#',F6.3,A1,'#versiondate#',I9,'#venusversion#',
+     $F6.3,'#rundate#',I9,/,'#computer#',I2,'#horizont#',I2,'#neutrino#'
+     $,I2,'#cerenkov#',I2,'#runnumber#',I7,/,'#primary#',I5,
+     $'#e_range_l#',E15.7,'#e_range_u#',E15.7,/,'#slope#',E15.7,'#nkg#',
+     $I2,'#egs#',I2,'#venus#',I2,'#gheisha#',I2,'#isobar#',I2,'#hdpm#',
+     $I2,/,'#hadflag1#',I2,'#hadflag2#',I2,'#hadflag3#',I2,'#hadflag4#',
+     $I2,'#hadflag5#',I2,'#hadflag6#',I2,/,'#longi#',I2,'#longistep#',
+     $E15.7,'#magnetx#',E15.7,/,'#magnetz#',E15.7,'#nobslev#',I3,/,
+     $'#obslev1#',E15.7,'#obslev2#',E15.7,'#obslev3#',E15.7,/,
+     $'#obslev4#',E15.7,'#obslev5#',E15.7,'#obslev6#',E15.7,/,
+     $'#obslev7#',E15.7,'#obslev8#',E15.7,'#obslev9#',E15.7,/,
+     $'#obslev10#',E15.7,'#hcut#',E15.7,'#mcut#',E15.7,/,'#ecut#',E15.7,
+     $'#gcut#',E15.7,'#thetal#',E15.7,/,'#thetau#',E15.7,'#phil#',E15.7,
+     $'#phiu#',E15.7,/,'#fixhei#',E15.7,'#n1sttr#',I3,'#fixchi#',E15.7,
+     $/,'#stepfc#',E15.7,'#arrang#',E15.7,'#muaddi#',I2,'#nseq#',I2,/,
+     $'#seq1seed1#',I9,'#seq1seed2#',I9,'#seq1seed3#',I9,/,'#seq2seed1#'
+     $,I9,'#seq2seed2#',I9,'#seq2seed3#',I9,/,'#seq3seed1#',I9,
+     $'#seq3seed2#',I9,'#seq3seed3#',I9,/,'#size#',I10,'#dsn_events#',
+     $A59,/,'#dsn_prtout# ',A9,'#tape_name#',A10,'#backup#',A10,/,
+     $'#howmanyshowers#',I10,'#host#',A20,'#user#',A20,/
+     $'#thinning#',L4,'#thinninglevel#',E15.7)
+ 
+C  RESET DSN
+        DSN(IBL:IBL+14) = '               '
+        CLOSE(UNIT=MDBASE)
+      ENDIF
+ 
+      WRITE(MONIOU,*)'NUMBER OF SHOWERS TO GENERATE =',NSHOW
+      WRITE(MONIOU,*)
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/isobar.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/isobar.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/isobar.f	(revision 4308)
@@ -0,0 +1,304 @@
+      SUBROUTINE ISOBAR( E,KIND,AMASS,ASMASS,NOPI )
+ 
+C-----------------------------------------------------------------------
+C  ISOBAR
+C
+C  THREE AND FOUR PION DECAY OF HEAVY ISOBAR, DECAY IS PICKED AT
+C  RANDOM FROM A UNIFORM DISTRIBUTION WITH EQUAL PROBABILITY
+C  CHARGE IS DISTRIBUTED AT RANDOM WITH EQUAL PROBABILITY
+C  DECAYS ARE COMPUTED VIA MOMENTA, HAVING UNIFORM DISTRIBUTION
+C  UPPER LIMIT OF MOMENTUM DISTRIBUTIONS ARE SPECIFIED BY INPUT DATA
+C  ENERGY IS STRICTLY CONSERVED, MOMENTA ONLY ON AVERAGE
+C  THIS SUBROUTINE IS CALLED FROM MANY BOX ROUTINES
+C  ARGUMENTS:
+C   E      = AVAILABLE ENERGY IN CM
+C   KIND   = 1  BACKWARD ISOBAR
+C          = 0  FORWARD  ISOBAR
+C   AMASS  = MASS OF HEAVY MESON
+C   ASMASS = MASS TO BE LEFT OVER FOR OTHER PARTICLES
+C   NOPI   = NUMBER OF PIONS TO BE GENERATED
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,BAL.
+      COMMON /BAL/     EBAL
+      DOUBLE PRECISION EBAL(10)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,ELASTY.
+      COMMON /ELASTY/  ELAST,IELIS,IELHM,IELNU,IELPI
+      DOUBLE PRECISION ELAST
+      INTEGER          IELIS(20),IELHM(20),IELNU(20),IELPI(20)
+*KEEP,MULT.
+      COMMON /MULT/    EKINL,MSMM,MULTMA,MULTOT
+      DOUBLE PRECISION EKINL
+      INTEGER          MSMM,MULTMA(37,13),MULTOT(37,13)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,VKIN.
+      COMMON /VKIN/    BETACM
+      DOUBLE PRECISION BETACM
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,201)E,KIND,AMASS,ASMASS,NOPI
+ 201  FORMAT(' ISOBAR: E,KIND,AMASS,ASMASS,NOPI=',1P,E10.4,I3,2E10.4,I3)
+ 
+C  RETURN 1 KILLS PARTICLE
+ 
+      ISET  = 1
+      EDI   = 0.D0
+      PACC  = 0.D0
+      RESTE = AMASS
+ 
+      IF ( KIND .NE. 0 ) GOTO 100
+ 
+C-----------------------------------------------------------------------
+C  FORWARD ISOBAR
+C  PIONS FROM FORWARD ISOBAR
+      IF ( NOPI .EQ. 1 ) THEN
+        INOPI = NOPI
+        A     = C(36)
+        W     = 0.38D0
+      ELSE
+        W     = 1.5D0
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1) .LE. 0.5 ) THEN
+          INOPI = 3
+          A     = C(36)
+        ELSE
+          INOPI = 4
+          A     = C(35)
+        ENDIF
+      ENDIF
+ 
+      GIFCM  = (E**2+AMASS**2-ASMASS**2) * 0.5D0 /(E*AMASS)
+      BEIFCM = SQRT(GIFCM**2 - 1.D0) / GIFCM
+      GIFLAB = GCM * GIFCM * (1.D0+BETACM*BEIFCM)
+      BEIFL  = SQRT(GIFLAB**2 - 1.D0) / GIFLAB
+ 
+C  PION LOOP FOR FORWARD ISOBAR DECAY
+ 13   CONTINUE
+      P      = PCL(A,W)
+      PT     = PTRANS(DUMMY)
+      GPIIF  = SQRT( P**2 / PAMA(8)**2 + 1.D0 )
+      BEPIIF = SQRT(GPIIF**2 - 1.D0) / GPIIF
+      EDI    = EDI + SQRT( PAMA(8)**2 + P**2 + PT**2 )
+      RESTE  = RESTE - EDI
+ 
+      CALL RMMAR( RD,3,1 )
+      IF ( RD(1) .GT. 0.5 ) THEN
+        GPILAB = GPIIF*GIFLAB*(1.D0-BEIFL*BEPIIF)
+        PACC   = PACC - P
+      ELSE
+        GPILAB = GPIIF*GIFLAB*(1.D0+BEIFL*BEPIIF)
+        PACC   = PACC + P
+      ENDIF
+ 
+C  CORRECTIVE ACTION IF PLLAB2 LE 1.E-6
+      PLLAB2 = PAMA(8)**2 *(GPILAB**2 - 1.D0)
+      PLLAB2 = MAX( 1.D-6, PLLAB2 )
+      CTHETA = SQRT( PLLAB2 / (PT**2+PLLAB2) )
+      IF ( CTHETA .GE. C(27) ) THEN
+        CALL ADDANG( COSTHE,PHI, CTHETA,RD(2)*PI2, SECPAR(3),SECPAR(4) )
+        IF ( SECPAR(3) .GE. C(29) ) THEN
+          SECPAR(2) = GPILAB
+C  CHARGE ASSIGNMENT
+          IF     ( RD(3) .LE. OB3 ) THEN
+            SECPAR(1) = 7.D0
+          ELSEIF ( RD(3) .LE. TB3 ) THEN
+            SECPAR(1) = 8.D0
+          ELSE
+            SECPAR(1) = 9.D0
+          ENDIF
+          DO  5  J = 5,8
+            SECPAR(J) = CURPAR(J)
+ 5        CONTINUE
+ 
+          CALL TSTACK
+        ENDIF
+      ENDIF
+      IF ( RESTE .LE. PAMA(14)  .OR.  ISET .EQ. INOPI ) GOTO 14
+      ISET = ISET + 1
+      GOTO 13
+ 
+C  NUCLEON FROM FORWARD ISOBAR
+ 14   CONTINUE
+      PT    = PTRANS(DUMMY)
+      MSMM  = MSMM + ISET
+      EPT   = SQRT( PAMA(14)**2 + PT**2 )
+      RESTE = RESTE - EPT
+ 
+      IF ( RESTE .LE. 0.D0 ) THEN
+        GNFLAB  = GIFLAB
+        EBAL(1) = EBAL(1) + RESTE
+      ELSE
+        GNIF    = (RESTE+PAMA(14)) / PAMA(14)
+        BENIF   = SQRT(GNIF**2 - 1.D0) / GNIF
+        IF ( PACC .LE. 0.D0 ) THEN
+          GNFLAB = GIFLAB * GNIF * (1.D0 + BENIF*BEIFL)
+        ELSE
+          GNFLAB = GIFLAB * GNIF * (1.D0 - BENIF*BEIFL)
+        ENDIF
+      ENDIF
+ 
+      PLLAB2 = PAMA(14)**2 * (GNFLAB**2 - 1.D0)
+      PLLAB2 = MAX( 1.D-6, PLLAB2 )
+      CTHETA = SQRT( PLLAB2 / (PT**2+PLLAB2) )
+      IF ( CTHETA .LT. C(27) ) RETURN
+      CALL RMMAR( RD,2,1 )
+      CALL ADDANG( COSTHE,PHI, CTHETA,RD(1)*PI2, SECPAR(3),SECPAR(4) )
+      IF ( SECPAR(3) .LT. C(29) ) RETURN
+      SECPAR(2) = GNFLAB
+ 
+      IF ( RD(2) .LT. 0.5 ) THEN
+        IADD = 1
+      ELSE
+        IADD = 0
+      ENDIF
+ 
+      IF ( ITYPE .EQ. 13  .OR.  ITYPE .EQ. 14 ) THEN
+        SECPAR(1) = 14 - IADD
+      ELSE
+        SECPAR(1) = 15 + 10*IADD
+      ENDIF
+ 
+C  CHARGE ASSIGNMENT
+      DO  9  J = 5,8
+        SECPAR(J) = CURPAR(J)
+    9 CONTINUE
+      CALL TSTACK
+ 
+C  FILL HISTOGRAM
+      IN = 1.D0 + SECPAR(2) / GAMMA * 20.D0
+      IN = MIN( IN, 20 )
+      IELIS(IN) = IELIS(IN) + 1
+ 
+      RETURN
+ 
+C-----------------------------------------------------------------------
+C  BACKWARD ISOBAR
+C  PIONS FROM BACKWARD ISOBAR
+  100 CONTINUE
+ 
+      IF ( NOPI .EQ. 1 ) THEN
+        INOPI = NOPI
+      ELSE
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1) .LE. 0.5 ) THEN
+          INOPI = 3
+        ELSE
+          INOPI = 4
+        ENDIF
+      ENDIF
+      WORK = MIN( C(11), GAMMA*0.5D0 )
+      MSMM = MSMM + INOPI
+      DO 101  J = 1,INOPI
+        CALL RMMAR( RD,3,1 )
+        GPI    = RD(1)*(WORK-1.D0) + 1.D0
+        PT     = PTRANS(DUMMY)
+        EDI    = EDI+SQRT( PAMA(8)**2+PAMA(8)**2*(GPI**2-1.D0)+PT**2 )
+        RESTE  = ASMASS - EDI
+        PLLAB2 = PAMA(8)**2 * (GPI**2 - 1.D0)
+        PLLAB2 = MAX( 1.D-6, PLLAB2 )
+        CTHETA = SQRT( PLLAB2 / (PT**2+PLLAB2) )
+        IF ( CTHETA .GE. C(27) ) THEN
+          CALL ADDANG( COSTHE,PHI, CTHETA,RD(2)*PI2,
+     *                                    SECPAR(3),SECPAR(4) )
+          IF ( SECPAR(3) .GE. C(29) ) THEN
+            SECPAR(2) = GPI
+C  CHARGE ASSIGNMENT
+            RR = RD(3)
+            IF     ( RR .LE. OB3 ) THEN
+              SECPAR(1) = 7.D0
+            ELSEIF ( RR .LE. TB3 ) THEN
+              SECPAR(1) = 8.D0
+            ELSE
+              SECPAR(1) = 9.D0
+            ENDIF
+            DO 104  I = 5,8
+              SECPAR(I) = CURPAR(I)
+  104       CONTINUE
+ 
+            CALL TSTACK
+          ENDIF
+        ENDIF
+        IF ( RESTE .LE. PAMA(14) ) GOTO 110
+  101 CONTINUE
+ 
+C  NUCLEON FROM BACKWARD ISOBAR
+ 
+  110 CONTINUE
+      WORK    = MIN( C(10), GAMMA*0.5D0 )
+      CALL RMMAR( RD,3,1 )
+      GNRLAB  = RD(1) * (WORK-1.D0) + 1.D0
+      PT      = PTRANS(DUMMY)
+      EDI = EDI+SQRT( PAMA(14)**2 + PAMA(14)**2*(GNRLAB**2-1.D0)+PT**2)
+      RESTE   = ASMASS - EDI
+      EBAL(2) = EBAL(2) + RESTE
+      PLLAB2  = PAMA(14)**2 * (GNRLAB**2 - 1.D0)
+      PLLAB2  = MAX( 1.D-6, PLLAB2 )
+      CTHETA  = SQRT( PLLAB2 / (PT**2+PLLAB2) )
+      IF ( CTHETA .LT. C(27) ) RETURN
+      CALL ADDANG( COSTHE,PHI, CTHETA,RD(2)*PI2, SECPAR(3),SECPAR(4) )
+      IF ( SECPAR(3) .LT. C(29) ) RETURN
+      SECPAR(2) = GNRLAB
+C  CHARGE ASSIGNMENT
+      IF ( RD(3) .LT. 0.5 ) THEN
+        SECPAR(1) = 13.D0
+      ELSE
+        SECPAR(1) = 14.D0
+      ENDIF
+      DO 113  J = 5,8
+        SECPAR(J) = CURPAR(J)
+  113 CONTINUE
+      CALL TSTACK
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/istack.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/istack.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/istack.f	(revision 4308)
@@ -0,0 +1,57 @@
+      SUBROUTINE ISTACK
+ 
+C-----------------------------------------------------------------------
+C  I(NITIALIZE) STACK
+C
+C  PREPARES STACK AND EXTERNAL DISK FILE
+C  THIS SUBROUTINE IS CALLED FROM MAIN
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,ETHMAP.
+      COMMON /ETHMAP/  ECTMAP,ELEFT
+      DOUBLE PRECISION ECTMAP,ELEFT
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKF.
+      COMMON /STACKF/  STACK,STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+      INTEGER          MAXSTK
+      PARAMETER        (MAXSTK = 12*340*2)
+      DOUBLE PRECISION STACK(MAXSTK)
+      INTEGER          STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'ISTACK:'
+ 
+      NTO    = 0
+      NFROM  = 0
+      NOUREC = 0
+      NSHIFT = 0
+      STACKP = 0
+      ELEFT  = 0.D0
+      ICOUNT = 1
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/jadach.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/jadach.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/jadach.f	(revision 4308)
@@ -0,0 +1,135 @@
+      SUBROUTINE JADACH( ECMJAD,JADFLG )
+ 
+C-----------------------------------------------------------------------
+C  JADACH (FILTER)
+C
+C  ADJUSTS THE RAPIDITIES OF ALL SECONDARIES SUCH THAT
+C  ENERGY AND LONGITUDINAL MOMENTUM ARE CONSERVED AT THE SAME TIME
+C  THE ALGORITHM IS TAKEN FROM S.JADACH, COM.PHYS.COMM. 9 (1975) 297
+C  THE ROUTINE MUST BE CALLED AFTER THE PT IS CONSERVED AND BEFORE
+C  THE TRANSFORMATION TO THE LAB SYSTEM IS DONE
+C  THIS SUBROUTINE IS CALLED FROM HDPM
+C  ARGUMENTS:
+C   ECMJAD = CM ENERGY IN THE PROJECTILE -- GNU*NUCLEONS SYSTEM
+C   JADFLG = 0  JADACH FILTER CORRECTLY ENDED
+C          = 1  BAD RAPIDITIES, SELECT RAPIDITIES AGAIN
+C          =-1  SUM OF TRANSVERSE MASSES EXCEEDS AVAILABLE CM ENERGY
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,INTER.
+      COMMON /INTER/   AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN,
+     *                 IDIF,ITAR
+      DOUBLE PRECISION AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN
+      INTEGER          IDIF,ITAR
+*KEEP,NEWPAR.
+      COMMON /NEWPAR/  EA,PT2,PX,PY,TMAS,YR,ITYP,
+     *                 IA1,IA2,IB1,IB2,IC1,IC2,ID1,ID2,IE1,IE2,IF1,IF2,
+     *                 IG1,IG2,IH1,IH2,II1,II2,IJ1,NTOT
+      DOUBLE PRECISION EA(3000),PT2(3000),PX(3000),PY(3000),TMAS(3000),
+     *                 YR(3000)
+      INTEGER          ITYP(3000),
+     *                 IA1,IA2,IB1,IB2,IC1,IC2,ID1,ID2,IE1,IE2,IF1,IF2,
+     *                 IG1,IG2,IH1,IH2,II1,II2,IJ1,NTOT
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DIMENSION YRJAD(3000)
+      DATA EPS / 1.D-7 /
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'JADACH: NTOT=',NTOT
+ 
+      JADFLG = 0
+ 
+C  SUM UP TRANSVERSE MOMENTA AND COMPARE WITH AVAILABLE C.M.ENERGY
+      STMAS = 0.D0
+      ECMI  = 1.D0 / ECMJAD
+      DO  4  I = 1,NTOT
+        STMAS    = STMAS + TMAS(I)
+        YRJAD(I) = YR(I)
+  4   CONTINUE
+      REST  = ( ECMJAD - STMAS ) * ECMI
+      IF ( REST .LE. 0.D0 ) THEN
+C  SUMMED TRANSVERSE MASS > AVAILABLE C.M. ENERGY
+        JADFLG = -1
+        RETURN
+      ENDIF
+      FACT   = 1.5D0 / REST
+      AA     = 1.D0
+      DIFOLD = 0.D0
+      ICOUNT = 0
+C  OPTIMIZATION LOOP TO DEFINE PARAMETER AA
+  1   CONTINUE
+      ICOUNT = ICOUNT + 1
+      IF ( ICOUNT .GE. 50 ) GOTO 999
+C  FORM SUMS S1 AND S2
+      S1     = 0.D0
+      S2     = 0.D0
+      DO  5  I = 1,NTOT
+        EXPO = EXP( AA * YR(I) )
+        S1   = S1 + TMAS(I) * ECMI * EXPO
+        S2   = S2 + TMAS(I) * ECMI / EXPO
+  5   CONTINUE
+      DIFF   = 0.1D0 * LOG(S1*S2)
+C  ACCELERATING OF CONVERGENCE IF NO CHANGE OF SIGN IN DIFF
+      IF ( DIFOLD*DIFF .GE. 0.D0 ) DIFF =  DIFF * FACT
+      DIFOLD = DIFF
+      IF ( DEBUG ) WRITE(MDEBUG,*) '   DIFF=',SNGL(DIFF)
+      AA     = AA * MAX( 0.1D0, (1.D0 - DIFF) )
+      IF ( ABS(DIFF) .GT. EPS ) GOTO 1
+ 
+C  ITERATION HAS CONVERGED, CALCULATE PARAMETER BB
+      BB     = 0.5D0 * LOG(S2/S1)
+ 
+      IF ( DEBUG ) WRITE (MDEBUG,110) ICOUNT,STMAS,REST
+  110 FORMAT('   ICOUNT, STMAS, REST = ',I5,2E13.5,/
+     *       '   NUM   ITYP    TMAS          YR(OLD)         YR(NEW)')
+C  CORRECT RAPIDITIES
+      DO 10  I = 1,NTOT
+        YR(I) = AA * YR(I) + BB
+        IF ( DEBUG ) WRITE(MDEBUG,111) I,ITYP(I),TMAS(I),YRJAD(I),YR(I)
+ 111    FORMAT('  ',I4,I6,F12.5,2F16.8)
+C  IMPOSSIBLE RAPIDITY, DETERMINE AGAIN THE RAPIDITIES
+        IF ( ABS(YR(I)) .GT. LOG(ECMJAD/PAMA(ITYP(I))) ) GOTO 999
+ 10   CONTINUE
+      RETURN
+ 
+ 
+C  ERROR EXIT
+ 999  JADFLG = 1
+C  NO CONVERGENCE AFTER 50 ITERATIONS OR IMPOSSIBLE RAPIDITY
+      RETURN
+ 
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/jcdate.c
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/jcdate.c	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/jcdate.c	(revision 4308)
@@ -0,0 +1,45 @@
+/*----------------------------------------------------------------------
+  jcdate.c : 
+
+  Function to get the hour/date of the system
+  modified 13-10-98, D. Petry
+
+----------------------------------------------------------------------*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+static int s0=0;
+
+/*--------------------------------------------------
+  jcdate: 
+--------------------------------------------------*/
+#ifdef JC_UNDERSCORES
+void
+jcdate_ (int *id, int *it, int *isl1, int *isl2, int *isl3, 
+                           int *isl4, int *isl5, int *isl6 )
+#else /* JC_NO_UNDERSCORES */
+void
+jcdate (int *id, int *it, int *isl1, int *isl2, int *isl3, 
+                          int *isl4, int *isl5, int *isl6 )
+#endif /* JC_UNDERSCORES */
+{
+  time_t timesecs;
+  struct tm *t;
+
+  s0 = (int) time( &timesecs );
+  t = gmtime( &timesecs );
+  *isl1 = (int) t->tm_year;
+  *isl2 = (int) t->tm_mon+1;
+  *isl3 = (int) t->tm_mday;
+  *isl4 = (int) t->tm_hour;
+  *isl5 = (int) t->tm_min;
+  *isl6 = (int) t->tm_sec;
+
+  *id = *isl1 * 10000 + *isl2 * 100 + *isl3;
+  *it = *isl4 * 10000 + *isl5 * 100 + *isl6;
+
+  return;
+}
+
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/jcio.c
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/jcio.c	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/jcio.c	(revision 4308)
@@ -0,0 +1,358 @@
+/*----------------------------------------------------------------------
+  jcio.c : 
+
+Rutinas para la gestion de ficheros en CORSIKA 5.20 Las posibilidades
+que contempla son: 
+
+- Creacion de un fichero de inicio de run: run###### 
+- Creacion de un fichero de fin de run: end###### 
+- Creacion de fichero separados para cada cascada, tanto para
+  particulas como para Cherenkov. Ademas, para la salida Cherenkov se
+  genera en ficheros separados en caso de que se reutilice la cascada.
+  Los fichero son por tanto: cer######.# y dat######, donde el indice
+  del fichero cer va de 0 a 9.
+- La grabacion se realiza en C, por lo que no existen marcas de inicio
+  ni final de bloque en los ficheros.
+----------------------------------------------------------------------*/
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define MAXBUF 273  /*- 39*7 -*/
+#define NSUBBL 21
+#define NPLONG 1041
+
+static int nshow = 0;
+static float timefirst = 0.;
+static float timelast = 0.;
+
+FILE *cetape;
+FILE *patape;
+FILE *sttape;
+FILE *runtape;
+FILE *endtape;
+char tpl[100];
+char certpl[100];
+char dattpl[100];
+char statpl[100];
+char cerfile[100];
+char datfile[100];
+char stafile[100];
+char runfile[100];
+char endfile[100];
+
+/*--------------------------------------------------
+  jcinitio: 
+  graba un bloque al fichero de particulas 
+--------------------------------------------------*/
+#ifdef JC_UNDERSCORES
+void
+jcinitio_ (char *path, int *runnum)
+#else /* JC_NO_UNDERSCORES */
+void
+jcinitio (char *path, int *runnum)
+#endif /* JC_UNDERSCORES */
+{
+  register int i = 0;
+
+  while (*(path + (++i)) != ' ');
+  strncpy (tpl, path, i);
+  if (*(path + i - 1) != '/')
+    strcat (tpl, "/");
+
+  strcpy (certpl, tpl);
+  strcat (certpl, "cer%06d");
+  strcpy (dattpl, tpl);
+  strcat (dattpl, "dat%06d");
+  strcpy (statpl, tpl);
+  strcat (statpl, "sta%06d");
+
+  sprintf (runfile, "%srun%06d", tpl, *runnum);
+  sprintf (endfile, "%send%06d", tpl, *runnum);
+}
+
+/*--------------------------------------------------
+  jcdatsave: 
+  graba un bloque al fichero de particulas 
+--------------------------------------------------*/
+#ifdef JC_UNDERSCORES
+void
+jcdatsave_ (float *outbuf)
+#else /* JC_NO_UNDERSCORES */
+void
+jcdatsave (float *outbuf)
+#endif /* JC_UNDERSCORES */
+{
+  /* puts("JCIO:: saving particle buffer..."); */
+  fwrite (outbuf, sizeof (float) * MAXBUF * NSUBBL, 1, patape);
+}
+
+/*--------------------------------------------------
+  jccersave: 
+  graba un bloque al fichero de particulas 
+--------------------------------------------------*/
+#ifdef JC_UNDERSCORES
+void
+jccersave_ (float *outbuf)
+#else /* JC_NO_UNDERSCORES */
+void
+jccersave (float *outbuf)
+#endif /* JC_UNDERSCORES */
+{
+  /* puts("JCIO:: saving cerenkov buffer..."); */
+  fwrite (outbuf, sizeof (float) * MAXBUF * NSUBBL, 1, cetape);
+}
+
+/*--------------------------------------------------
+  jcstartrun:
+  abre el fichero run###### y graba el contenido
+--------------------------------------------------*/
+#ifdef JC_UNDERSCORES
+void
+jcstartrun_ (float *runh)
+#else /* JC_NO_UNDERSCORES */
+void
+jcstartrun (float *runh)
+#endif /* JC_UNDERSCORES */
+{
+  if ((runtape = fopen (runfile, "wb")) == NULL) {
+    printf ("JCIO:: Cannot open RUN file %s. Exiting.\n", runfile);
+    exit (1);
+  }
+  /* puts("JCIO:: saving runheader buffer..."); */
+  fwrite (runh, sizeof (float) * MAXBUF, 1, runtape);
+}
+
+/*--------------------------------------------------
+  jcendrun:
+  abre el fichero run###### y graba el contenido
+--------------------------------------------------*/
+#ifdef JC_UNDERSCORES
+void
+jcendrun_ (float *rune)
+#else /* JC_NO_UNDERSCORES */
+void
+jcendrun (float *rune)
+#endif /* JC_UNDERSCORES */
+{
+  fwrite (rune, sizeof (float) * MAXBUF, 1, runtape);
+  fclose (runtape);
+}
+
+/*--------------------------------------------------
+  jcnewcerfile:
+  abre un nuevo fichero Cherenkov
+--------------------------------------------------*/
+#ifdef JC_UNDERSCORES
+void
+jcnewcerfile_ ()
+#else /* JC_NO_UNDERSCORES */
+void
+jcnewcerfile ()
+#endif /* JC_UNDERSCORES */
+{
+  sprintf (cerfile, certpl, nshow);
+  if ((cetape = fopen (cerfile, "wb")) == NULL) {
+    printf ("JCIO:: Cannot open CER file %s. Exiting.\n", cerfile);
+    exit (1);
+  }
+  timefirst = 9.0e10;
+  timelast = -9.0e10;
+}
+
+/*--------------------------------------------------
+  jcnewdatfile:
+  abre un nuevo fichero de particulas
+--------------------------------------------------*/
+#ifdef JC_UNDERSCORES
+void
+jcnewdatfile_ (void)
+#else /* JC_NO_UNDERSCORES */
+void
+jcnewdatfile (void)
+#endif /* JC_UNDERSCORES */
+{
+  sprintf (datfile, dattpl, nshow);
+  if ((patape = fopen (datfile, "wb")) == NULL) {
+    printf ("JCIO:: Cannot open DAT file %s. Exiting.\n", datfile);
+    exit (1);
+  }
+}
+
+/*--------------------------------------------------
+  jcnewstafile:
+  abre un nuevo fichero de estadisticas
+--------------------------------------------------*/
+#ifdef JC_UNDERSCORES
+void
+jcnewstafile_ (void)
+#else /* JC_NO_UNDERSCORES */
+void
+jcnewstafile (void)
+#endif /* JC_UNDERSCORES */
+{
+  sprintf (stafile, statpl, nshow);
+  if ((sttape = fopen (stafile, "wb")) == NULL) {
+    printf ("JCIO:: Cannot open STA file %s. Exiting.\n", stafile);
+    exit (1);
+  }
+}
+
+/*--------------------------------------------------
+  jcnewshower:
+  abre nuevos ficheros para la nueva cascada
+--------------------------------------------------*/
+#ifdef JC_UNDERSCORES
+void
+jcnewshower_ (void)
+#else /* JC_NO_UNDERSCORES */
+void
+jcnewshower (void)
+#endif /* JC_UNDERSCORES */
+{
+  if (nshow > 0) {
+    fclose (patape);
+    fclose (cetape);
+    fclose (sttape);
+  }
+
+  nshow++;
+#ifdef JC_UNDERSCORES
+  jcnewdatfile_ ();
+  jcnewcerfile_ ();
+  jcnewstafile_ ();
+#else /* JC_NO_UNDERSCORES */
+  jcnewdatfile ();
+  jcnewcerfile ();
+  jcnewstafile ();
+#endif /* JC_UNDERSCORES */
+}
+
+/*--------------------------------------------------
+  jcenddata:
+  abre el fichero run###### y graba el contenido
+--------------------------------------------------*/
+#ifdef JC_UNDERSCORES
+void
+jcenddata_ (float *runh, float *rune)
+#else /* JC_NO_UNDERSCORES */
+void
+jcenddata (float *runh, float *rune)
+#endif /* JC_UNDERSCORES */
+{
+  if ((endtape = fopen (endfile, "wb")) == NULL) {
+    printf ("JCIO:: Cannot open END file %s. Exiting.\n", endfile);
+    exit (1);
+  }
+  fwrite (runh, sizeof (float) * MAXBUF, 1, endtape);
+  fwrite (rune, sizeof (float) * MAXBUF, 1, endtape);
+  fclose (endtape);
+}
+
+/*--------------------------------------------------
+  jctime:
+  va echando cuentas del tiempo de los fotones
+--------------------------------------------------*/
+#ifdef JC_UNDERSCORES
+void
+jctime_ (float *cartim)
+#else /* JC_NO_UNDERSCORES */
+void
+jctime (float *cartim)
+#endif /* JC_UNDERSCORES */
+{
+  if (*cartim>timelast) timelast = *cartim;
+  if (*cartim<timefirst) timefirst = *cartim;
+}
+
+/*--------------------------------------------------
+  jcstadata:
+  graba las estadisticas de la cascada
+--------------------------------------------------*/
+#ifdef JC_UNDERSCORES
+void
+jcstadata_ (float *evth, float *evte,
+	    double *nproto, double *nprotb, double *nneutr,
+	    double *nneutb, double *nphoto, double *nelect,
+	    double *nposit, double *nnu, double *nmum,
+	    double *nmup, double *npi0, double *npim, double *npip,
+	    double *nk0l, double *nk0s, double *nkmi, double *nkpl,
+	    double *nhyp, double *ndeut, double *ntrit, double *nalpha,
+	    double *nother, int *ifinnu, int *ifinpi,
+	    int *ifinet, int *ifinka, int *ifinhy,
+	    double *cerele, double *cerhad,
+	    double *plong, int *lpct1, int *nstep, double *thstep)
+#else /* JC_NO_UNDERSCORES */
+void
+jcstadata (float *evth, float *evte,
+	    double *nproto, double *nprotb, double *nneutr,
+	    double *nneutb, double *nphoto, double *nelect,
+	    double *nposit, double *nnu, double *nmum,
+	    double *nmup, double *npi0, double *npim, double *npip,
+	    double *nk0l, double *nk0s, double *nkmi, double *nkpl,
+	    double *nhyp, double *ndeut, double *ntrit, double *nalpha,
+	    double *nother, int *ifinnu, int *ifinpi,
+	    int *ifinet, int *ifinka, int *ifinhy,
+	    double *cerele, double *cerhad,
+	    double *plong, int *lpct1, int *nstep, double *thstep)
+#endif /* JC_UNDERSCORES */ 
+{
+  register int i, ii, k;
+  int np[22];
+  float f;
+
+  fwrite (evth, sizeof (float) * MAXBUF, 1, sttape);
+  fwrite (evte, sizeof (float) * MAXBUF, 1, sttape);
+
+  fwrite (&timefirst, sizeof (float), 1, sttape);
+  fwrite (&timelast, sizeof (float), 1, sttape);
+
+  for (i = 0; i < 10; i++) {
+    np[0] = (int) (*(nproto + i));
+    np[1] = (int) (*(nprotb + i));
+    np[2] = (int) (*(nneutr + i));
+    np[3] = (int) (*(nneutb + i));
+    np[4] = (int) (*(nphoto + i));
+    np[5] = (int) (*(nelect + i));
+    np[6] = (int) (*(nposit + i));
+    np[7] = (int) (*(nnu + i));
+    np[8] = (int) (*(nmum + i));
+    np[9] = (int) (*(nmup + i));
+    np[10] = (int) (*(npi0 + i));
+    np[11] = (int) (*(npim + i));
+    np[12] = (int) (*(npip + i));
+    np[13] = (int) (*(nk0l + i));
+    np[14] = (int) (*(nk0s + i));
+    np[15] = (int) (*(nkmi + i));
+    np[16] = (int) (*(nkpl + i));
+    np[17] = (int) (*(nhyp + i));
+    np[18] = (int) (*(ndeut + i));
+    np[19] = (int) (*(ntrit + i));
+    np[20] = (int) (*(nalpha + i));
+    np[21] = (int) (*(nother + i));
+    fwrite (np, sizeof (int) * 22, 1, sttape);
+  }
+
+  np[0] = (int) (*ifinnu);
+  np[1] = (int) (*ifinpi);
+  np[2] = (int) (*ifinet);
+  np[3] = (int) (*ifinka);
+  np[4] = (int) (*ifinhy);
+  np[5] = (int) (*cerele);
+  np[6] = (int) (*cerhad);
+  fwrite (np, sizeof (int) * 7, 1, sttape);
+
+  fwrite (lpct1, sizeof (int), 1, sttape);
+  fwrite (nstep, sizeof (int), 1, sttape);
+
+  f = (float) (*thstep);
+  fwrite (&f, sizeof (float), 1, sttape);
+
+  for (k=0;k<9;k++) 
+    for (i = 0; i < *nstep; i++) {
+      f = (float)(*(plong + i + k*NPLONG));
+      fwrite (&f, sizeof (float), 1, sttape);
+    }
+
+
+}
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/kdecay.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/kdecay.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/kdecay.f	(revision 4308)
@@ -0,0 +1,356 @@
+      SUBROUTINE KDECAY( IGO )
+ 
+C-----------------------------------------------------------------------
+C  K(AON) DECAY
+C
+C  KAON DECAYS WITH FULL KINEMATIC, ENERGY AND MOMENTA CONSERVED
+C  ALL SECONDARY PARTICLES ARE WRITTEN TO STACK
+C  THIS SUBROUTINE IS CALLED FROM NUCINT
+C  ARGUMENT:         (TO CHARACTERIZE THE DECAYING KAON)
+C   IGO    = 1  K+
+C          = 2  K-
+C          = 3  K0S
+C          = 4  K0L
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,DECAY.
+      COMMON /DECAY/   GAM345,COS345,PHI345
+      DOUBLE PRECISION GAM345(3),COS345(3),PHI345(3)
+*KEEP,IRET.
+      COMMON /IRET/    IRET1,IRET2
+      INTEGER          IRET1,IRET2
+*KEEP,KAONS.
+      COMMON /KAONS/   CKA
+      DOUBLE PRECISION CKA(80)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,POLAR.
+      COMMON /POLAR/   POLART,POLARF
+      DOUBLE PRECISION POLART,POLARF
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION BETA3,COSTCM,COSTH3,GAMMA3,PHI3,RA,WORK1,WORK2
+      INTEGER          I,ICHARG,IGO,IPI,J,M3
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' KDECAY: CURPAR=',1P,9E10.3)
+ 
+C  COPY COORDINATES INTO SECPAR
+      DO 20  J = 5,8
+        SECPAR(J) = CURPAR(J)
+   20 CONTINUE
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  DECAY OF K(+,-) (6 MODES)
+ 
+      IF     ( IGO .LE. 2 ) THEN
+   21   CALL RMMAR( RD,1,1 )
+        RA = RD(1)
+ 
+C  DECAY  K(+,-)  ---->  MU(+,-) + NEUTRINO
+        IF     ( RA .LE. CKA(23) ) THEN
+C  NEUTRINO IS DROPPED
+          WORK1  = CKA(28) * GAMMA
+          WORK2  = CKA(29) * BETA * WORK1
+          CALL RMMAR( RD,2,1 )
+          COSTCM = RD(1) * 2.D0 - 1.D0
+C  MU(+,-)
+          GAMMA3 = WORK1 + COSTCM * WORK2
+          BETA3  = SQRT( 1.D0 - 1.D0 / GAMMA3**2 )
+          COSTH3 = MIN( 1.D0, (GAMMA * GAMMA3 - CKA(28))
+     *                   / (BETA * GAMMA * BETA3 * GAMMA3) )
+          PHI3   = RD(2) * PI2
+          CALL ADDANG( COSTHE,PHI, COSTH3,PHI3, SECPAR(3),SECPAR(4) )
+          IF ( SECPAR(3) .GT. C(29) ) THEN
+            SECPAR(1) = 4 + IGO
+            SECPAR(2) = GAMMA3
+C  DIRECTION OF PION IN THE MUON CM SYSTEM (= DIRECTION OF POLARIZATION)
+C  SEE: G. BARR ET AL., PHYS. REV. D39 (1989) 3532, EQ. 5
+C  POLART IS COS OF ANGLE BETWEEN KAON AND LABORATORY IN THE MU CM
+C  POLARF IS ANGLE PHI AROUND THE LAB DIRECTION IN THE MU CM
+C  POLART, POLARF WITH RESPECT TO THE MU DIRECTION IN THE LAB SYSTEM
+            POLART = ( 2.D0*PAMA(11)*GAMMA*C(6) / (PAMA(5)*GAMMA3)
+     *                 - C(6) - 1.D0 ) / ( BETA3 * (1.D0-C(6)) )
+            POLARF = PHI3 - PI
+C  PION DIRECTION IS DIRECTION OF POLARIZATION FOR K+, OPPOSITE FOR K-
+            IF ( ITYPE .EQ. 12 ) THEN
+              POLART = -POLART
+              POLARF = POLARF + PI
+            ENDIF
+C  GET THE POLARIZATION DIRECTION IN THE MU CM RELATIVE TO THE CORSIKA
+C  COORDINATE SYSTEM
+            CALL ADDANG( SECPAR(3),SECPAR(4), POLART,POLARF,
+     *                                             POLART,POLARF )
+            SECPAR(11) = POLART
+            SECPAR(12) = POLARF
+            CALL TSTACK
+            SECPAR(11) = 0.D0
+            SECPAR(12) = 0.D0
+          ENDIF
+ 
+C  DECAY  K(+,-)  ---->  PI(+,-) + PI(0)
+        ELSEIF ( RA .LE. CKA(47) ) THEN
+          M3 = ITYPE - 3
+          CALL DECAY1( ITYPE, M3, 7 )
+ 
+C  DECAY   K(+,-)  ---->   PI(+,-) + PI(+,-) + PI(-,+)
+        ELSEIF ( RA. LE. CKA(48) ) THEN
+          CALL DECAY6( PAMA(11), PAMA(8),PAMA(8),PAMA(8),
+     *                 CKA(51),CKA(52),CKA(53), CKA(54), 1 )
+C  PI(+,-)  AND  PI(+,-) AND  THIRD (ODD) PI(-,+)
+          DO 230  I = 1,3
+            CALL ADDANG( COSTHE,PHI, COS345(I),PHI345(I),
+     *                                 SECPAR(3),SECPAR(4) )
+            IF ( SECPAR(3) .GT. C(29) ) THEN
+              IF ( I .LE. 2 ) THEN
+                SECPAR(1) =  7 + IGO
+              ELSE
+                SECPAR(1) = 10 - IGO
+              ENDIF
+              SECPAR(2) = GAM345(I)
+              CALL TSTACK
+            ENDIF
+  230     CONTINUE
+ 
+C  DECAY  K(+,-)  ---->  PI(0)  + E(+,-) + NEUTRINO
+        ELSEIF ( RA. LE. CKA(49) ) THEN
+          CALL DECAY6( PAMA(11), PAMA(7),PAMA(2),0.D0,
+     *                 CKA(65),CKA(66),0.D0, CKA(67), 4 )
+C  PI(0)  AND  E(+,-) / NEUTRINO IS DROPPED
+          DO 250  I = 1,2
+            CALL ADDANG( COSTHE,PHI, COS345(I),PHI345(I),
+     *                                  SECPAR(3),SECPAR(4) )
+            IF ( SECPAR(3) .GT. C(29) ) THEN
+              IF ( I .EQ. 1 ) THEN
+                SECPAR(1) = 7.D0
+              ELSE
+                SECPAR(1) = 1 + IGO
+              ENDIF
+              SECPAR(2) = GAM345(I)
+              CALL TSTACK
+            ENDIF
+  250     CONTINUE
+ 
+C  DECAY  K(+,-)  ---->  PI(0)  + MU(+,-) + NEUTRINO
+        ELSEIF ( RA. LE. CKA(50) ) THEN
+          CALL DECAY6( PAMA(11), PAMA(7),PAMA(5),0.D0,
+     *                 CKA(68),CKA(69),0.D0, CKA(70), 3 )
+C  PI(0)  AND  MU(+,-) / NEUTRINO IS DROPPED
+          DO 260  I = 1,2
+            CALL ADDANG( COSTHE,PHI, COS345(I),PHI345(I),
+     *                                  SECPAR(3),SECPAR(4) )
+            IF ( SECPAR(3) .GT. C(29) ) THEN
+              SECPAR(2) = GAM345(I)
+              IF ( I .EQ. 1 ) THEN
+                SECPAR(1) = 7.D0
+              ELSE
+                SECPAR(1) = 4 + IGO
+                IF ( SECPAR(1) .EQ. 6.D0 ) THEN
+C  INVERT POLARIZATION DIRECTION FOR MU(-)
+                  POLART  = -POLART
+                  POLARF  =  POLARF + PI
+                ENDIF
+C  GET THE POLARIZATION DIRECTION IN THE MU CM RELATIVE TO THE CORSIKA
+C  COORDINATE SYSTEM
+                CALL ADDANG( SECPAR(3),SECPAR(4), POLART, POLARF,
+     *                                             POLART,POLARF )
+                SECPAR(11) = POLART
+                SECPAR(12) = POLARF
+              ENDIF
+              CALL TSTACK
+            ENDIF
+            SECPAR(11) = 0.D0
+            SECPAR(12) = 0.D0
+  260     CONTINUE
+ 
+C  DECAY  K(+,-)  ---->  PI(0) + PI(0) + PI(+,-)
+        ELSE
+          CALL DECAY6( PAMA(11), PAMA(7),PAMA(7),PAMA(8),
+     *                 CKA(55),CKA(56),CKA(57), CKA(58), 1 )
+C  PI(0)'S  AND  PI(+,-)
+          DO 270  I = 1,3
+            CALL ADDANG( COSTHE,PHI, COS345(I),PHI345(I),
+     *                                  SECPAR(3),SECPAR(4) )
+            IF ( SECPAR(3) .GT. C(29) ) THEN
+              IF ( I .LE. 2 ) THEN
+                SECPAR(1) = 7.D0
+              ELSE
+                SECPAR(1) = 7 + IGO
+              ENDIF
+              SECPAR(2) = GAM345(I)
+              CALL TSTACK
+            ENDIF
+  270     CONTINUE
+ 
+        ENDIF
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  DECAY OF K0S  (2 MODES)
+      ELSEIF ( IGO .EQ. 3 ) THEN
+ 
+        CALL RMMAR( RD,1,1 )
+C  DECAY  K0S  ---->  PI(+) + PI(-)
+        IF ( RD(1) .LE. CKA(24) ) THEN
+          CALL DECAY1( ITYPE, 8, 9 )
+ 
+C  DECAY  K0S  ---->  PI(0) + PI(0)
+        ELSE
+          CALL DECAY1( ITYPE, 7, 7 )
+ 
+        ENDIF
+ 
+C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  DECAY OF K0L   (4 MODES)
+      ELSEIF ( IGO .EQ. 4 ) THEN
+        CALL RMMAR( RD,1,1 )
+        RA = RD(1)
+ 
+C  DECAY   K0L  ---->   PI(+,-)  + E(-,+) + NEUTRINO
+        IF     ( RA .LE. CKA(27) ) THEN
+          CALL DECAY6( PAMA(10), PAMA(8),PAMA(2),0.D0,
+     *                 CKA(71),CKA(72),0.D0, CKA(73), 4 )
+          CALL RMMAR( RD,1,1 )
+C  CHARGE ASYMMETRY PREFERS FORMATION OF PI(-)
+          ICHARG = INT(1.5016 + RD(1))
+C  PI(+,-)  AND  E(-,+) / NEUTRINO IS DROPPED
+          DO 420  I = 1,2
+            CALL ADDANG( COSTHE,PHI, COS345(I),PHI345(I),
+     *                                  SECPAR(3),SECPAR(4) )
+            IF ( SECPAR(3) .GT. C(29) ) THEN
+              SECPAR(1) = 10 - 3*I - (2*I-3)*ICHARG
+              SECPAR(2) = GAM345(I)
+              CALL TSTACK
+            ENDIF
+  420     CONTINUE
+ 
+C  DECAY   K0L  ---->  PI(+,-)  + MU(-,+) + NEUTRINO
+        ELSEIF ( RA .LE. CKA(26) ) THEN
+          CALL DECAY6( PAMA(10), PAMA(8),PAMA(5),0.D0,
+     *                 CKA(74),CKA(75),0.D0, CKA(76), 3 )
+          CALL RMMAR( RD,1,1 )
+C  CHARGE ASYMMETRY PREFERS FORMATION OF PI(-)
+          ICHARG = INT(1.5016 + RD(1))
+C  PI(+,-)  AND  MU(-,+) / NEUTRINO IS DROPPED
+          DO 430  I = 1,2
+            CALL ADDANG( COSTHE,PHI, COS345(I),PHI345(I),
+     *                                  SECPAR(3),SECPAR(4) )
+            IF ( I .EQ. 1 ) THEN
+              SECPAR(1) = 7 + ICHARG
+              IPI = SECPAR(1)
+            ENDIF
+            IF ( SECPAR(3) .GT. C(29) ) THEN
+              SECPAR(2) = GAM345(I)
+              IF     ( I .EQ. 2 ) THEN
+                SECPAR(1) = 7 - ICHARG
+                IF ( SECPAR(1) .EQ. 6.D0 ) THEN
+C  INVERT POLARIZATION DIRECTION FOR MU(-)
+                  POLART = -POLART
+                  POLARF =  POLARF + PI
+                ENDIF
+C  GET THE POLARIZATION DIRECTION IN THE MU CM RELATIVE TO THE CORSIKA
+C  COORDINATE SYSTEM
+                CALL ADDANG( SECPAR(3),SECPAR(4), POLART,POLARF,
+     *                                               POLART,POLARF )
+                SECPAR(11) = POLART
+                SECPAR(12) = POLARF
+              ENDIF
+              CALL TSTACK
+            ENDIF
+            SECPAR(11) = 0.D0
+            SECPAR(12) = 0.D0
+  430     CONTINUE
+ 
+C  DECAY   K0L  ---->  PI(0) + PI(0) + PI(0)
+        ELSEIF ( RA .LE. CKA(25) ) THEN
+C  SEE: S.V. SOMALWAR ET AL., PHYS.REV.LET. 68(1992)2580
+          CALL DECAY6( PAMA(10), PAMA(7),PAMA(7),PAMA(7),
+     *                 CKA(59),-.00033D0,CKA(59), CKA(60), 1 )
+C  PI(0)'S
+          SECPAR(1) = 7.D0
+          DO 440  I = 1,3
+            CALL ADDANG( COSTHE,PHI, COS345(I),PHI345(I),
+     *                                  SECPAR(3),SECPAR(4) )
+            IF ( SECPAR(3) .GT. C(29) ) THEN
+              SECPAR(2) = GAM345(I)
+              CALL TSTACK
+            ENDIF
+  440     CONTINUE
+ 
+C  DECAY   K0L  ---->   PI(+) + PI(-) + PI(0)
+        ELSE
+          CALL DECAY6( PAMA(10), PAMA(8),PAMA(8),PAMA(7),
+     *                 CKA(61),CKA(62),CKA(63), CKA(64), 1 )
+C  PI(+)  AND  PI(-)  AND  PI(0)
+          DO 450  I = 1,3
+            CALL ADDANG( COSTHE,PHI, COS345(I),PHI345(I),
+     *                                  SECPAR(3),SECPAR(4) )
+            IF ( SECPAR(3) .GT. C(29) ) THEN
+              IF ( I .LE. 2 ) THEN
+                SECPAR(1) = 7 + I
+              ELSE
+                SECPAR(1) = 7.D0
+              ENDIF
+              SECPAR(2) = GAM345(I)
+              CALL TSTACK
+            ENDIF
+  450     CONTINUE
+ 
+        ENDIF
+      ENDIF
+ 
+C  KILL CURRENT PARTICLE
+      IRET1 = 1
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/leaddf.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/leaddf.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/leaddf.f	(revision 4308)
@@ -0,0 +1,121 @@
+      SUBROUTINE LEADDF( IFLGLD )
+ 
+C-----------------------------------------------------------------------
+C  LEAD(ING PARTICLE RAPIDITY FOR) D(I)F(FFRACTING SYSTEM)
+C
+C  SELECTS THE RAPIDITY OF THE (ANTI)LEADING PARTICLES IN CASE OF
+C  DIFFRACTION. THE NON-DIFFRACTING (ANTI)LEADER GETS ITS RAPIDITY
+C  FROM THE REMAINDER ENERGY, THE DIFFRACTING (ANTI)LEADER GETS ITS
+C  RAPIDITY FROM THE GAUSSIAN (STRING) OF THE DECAYING DIFFRACTIVE MASS.
+C  THIS SUBROUTINE IS CALLED FROM HDPM
+C  ARGUMENT:
+C   IFLGLD = 0  RAPIDITY SELECTION SUCCESSFUL
+C          = 1  RAPIDITY SELECTION NOT SUCCESSFULL
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,INTER.
+      COMMON /INTER/   AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN,
+     *                 IDIF,ITAR
+      DOUBLE PRECISION AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN
+      INTEGER          IDIF,ITAR
+*KEEP,LEPAR.
+      COMMON /LEPAR/   LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS
+      INTEGER          LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS
+*KEEP,NEWPAR.
+      COMMON /NEWPAR/  EA,PT2,PX,PY,TMAS,YR,ITYP,
+     *                 IA1,IA2,IB1,IB2,IC1,IC2,ID1,ID2,IE1,IE2,IF1,IF2,
+     *                 IG1,IG2,IH1,IH2,II1,II2,IJ1,NTOT
+      DOUBLE PRECISION EA(3000),PT2(3000),PX(3000),PY(3000),TMAS(3000),
+     *                 YR(3000)
+      INTEGER          ITYP(3000),
+     *                 IA1,IA2,IB1,IB2,IC1,IC2,ID1,ID2,IE1,IE2,IF1,IF2,
+     *                 IG1,IG2,IH1,IH2,II1,II2,IJ1,NTOT
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'LEADDF: LEPAR1,LEPAR2=',
+     *                                      LEPAR1,LEPAR2
+ 
+      IF ( YY0 .GT. 0.D0 ) THEN
+C  PROJECTILE DIFFRACTION; CALCULATE TARGET RAPIDITY USING TARGET
+C  ENERGY ECMTAR AND LONGITUDINAL MOMENTUM PCMTAR THE IN C.M. SYSTEM
+        ECMTAR = (ECMDPM**2 - ECMDIF**2 + TMAS(2)**2) / (2.D0 * ECMDPM)
+        PTLSQ  = ECMTAR**2 - TMAS(2)**2
+        IF ( PTLSQ .LE. 0.D0 ) THEN
+          IFLGLD = 1
+          RETURN
+        ENDIF
+        PCMTAR = SQRT(PTLSQ)
+*       YR(2)  = -0.5D0 * LOG( (ECMTAR+PCMTAR) / (ECMTAR-PCMTAR) )
+        YR(2)  = - LOG( (ECMTAR+PCMTAR) / TMAS(2) )
+C  RAPIDITY OF DIFFRACTING PROJECTILE
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1) .GE. 0.5 ) THEN
+          YR(1) = RANNOR( POSC2, WIDC2 ) + YY0
+        ELSE
+          YR(1) = RANNOR(-POSC2, WIDC2 ) + YY0
+        ENDIF
+ 
+      ELSE
+C  TARGET DIFFRACTION; CALCULATE PROJECTILE RAPIDITY USING PROJECTILE
+C  ENERGY ECMPRO AND LONGITUDINAL MOMENTUM PLPRO IN THE C.M. SYSTEM
+        ECMPRO = (ECMDPM**2 -ECMDIF**2 +TMAS(1)**2) / (2.D0*ECMDPM)
+        PPLSQ  = ECMPRO**2 - TMAS(1)**2
+        IF ( PPLSQ .LE. 0.D0 ) THEN
+          IFLGLD = 1
+          RETURN
+        ENDIF
+        PCMPRO = SQRT(PPLSQ)
+*       YR(1)  = 0.5D0 * LOG( (ECMPRO+PCMPRO) / (ECMPRO-PCMPRO) )
+        YR(1)  = LOG( (ECMPRO+PCMPRO) / TMAS(1) )
+C  RAPIDITY OF DIFFRACTING TARGET NUCLEON
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1) .GE. 0.5 ) THEN
+          YR(2) = RANNOR( POSC2, WIDC2 ) + YY0
+        ELSE
+          YR(2) = RANNOR(-POSC2, WIDC2 ) + YY0
+        ENDIF
+      ENDIF
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'LEADDF: YR(2),YR(1)=',
+     *                           SNGL(YR(2)),SNGL(YR(1))
+      IFLGLD = 0
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ledeny.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ledeny.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ledeny.f	(revision 4308)
@@ -0,0 +1,170 @@
+      SUBROUTINE LEDENY( LEDEFL )
+ 
+C-----------------------------------------------------------------------
+C  LE(A)D(ER'S) EN(ERG)Y
+C
+C  SELECTS THE FEYNMAN X OF THE ANTILEADING PARTICLES FROM A THEORETICAL
+C  DISTRIBUTION AND CALCULATES THE RAPIDITY FROM IT
+C  CALCULATE THE RAPIDITY OF THE LEADER FROM THE REMAINDER OF ENERGY
+C  THIS SUBROUTINE IS CALLED FROM HDPM
+C  ARGUMENT:
+C   LEDEFL = 0  CORRECT ENDING OF LEDENY
+C          = 1  NOT CORRECT ENDING OF LEDENY
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,INTER.
+      COMMON /INTER/   AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN,
+     *                 IDIF,ITAR
+      DOUBLE PRECISION AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN
+      INTEGER          IDIF,ITAR
+*KEEP,LEPAR.
+      COMMON /LEPAR/   LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS
+      INTEGER          LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS
+*KEEP,NEWPAR.
+      COMMON /NEWPAR/  EA,PT2,PX,PY,TMAS,YR,ITYP,
+     *                 IA1,IA2,IB1,IB2,IC1,IC2,ID1,ID2,IE1,IE2,IF1,IF2,
+     *                 IG1,IG2,IH1,IH2,II1,II2,IJ1,NTOT
+      DOUBLE PRECISION EA(3000),PT2(3000),PX(3000),PY(3000),TMAS(3000),
+     *                 YR(3000)
+      INTEGER          ITYP(3000),
+     *                 IA1,IA2,IB1,IB2,IC1,IC2,ID1,ID2,IE1,IE2,IF1,IF2,
+     *                 IG1,IG2,IH1,IH2,II1,II2,IJ1,NTOT
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,VKIN.
+      COMMON /VKIN/    BETACM
+      DOUBLE PRECISION BETACM
+*KEND.
+ 
+      DATA SL / 3.D0 /
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'LEDENY: ITYPE,ITAR=',ITYPE,ITAR
+ 
+C  BETACM IS AVAILABLE IN COMMON /VKIN/ BUT NOT FOR PHOTOPRODUCTION
+      IF ( ITYPE .EQ. 7 ) BETACM = SQRT( 1.D0 - 1.D0 / GCM**2 )
+ 
+C  MOMENTUM OF INCOMING TARGET IN CM SYSTEM
+      PNT = PAMA(ITAR) * GCM * BETACM
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'LEDENY: PNT=',SNGL(PNT)
+ 
+C  GET FEYNMAN X FOR ANTILEADER DEPENDING ON ENERGY
+C  DISCRIPTION OF THE FEYNMAN X DISTRIBUTION DEPENDING ON ENERGY
+C    DN/DXF = SL*XF                               0 < XF < X1
+C    DN/DXF = SL*X1                              X1 < XF < X2
+C    DN/DXF = SL*X1 * EXP(-AL*(XF-X2))           X2 < XF <  1
+ 
+      IF     ( ECMDPM .LT. 13.76D0 ) THEN
+        X1 = 0.20D0
+        X2 = 0.65D0
+        AL = 1.265D0
+      ELSEIF ( ECMDPM .LT. 5580.D0 ) THEN
+        X1 = 0.716D0   + 0.00543D0 * SMLOG
+        X2 = 0.8175D0  - 0.032D0   * SMLOG
+        AL = 1.14D0    + 0.022D0   * SMLOG
+      ELSE
+        X1 = 0.265D0
+        X2 = 0.265D0
+        AL = 1.14D0 + 0.022D0*SMLOG
+      ENDIF
+ 
+C  CALCULATE THE INTEGRALS OVER THE THREE PARTS OF THE FUNCTION
+      AA = 0.5D0 * SL * X1**2
+      BB = SL * X1 * (X2 - X1)
+      CC = SL * X1 / AL * ( 1.D0 - EXP( AL*(X2-1.D0) ) )
+C  NORMALIZE TO 1
+      TT = 1.D0 / (AA + BB + CC)
+      CC = CC * TT
+      AA = AA * TT
+      BB = BB * TT
+      AB = AA + BB
+ 
+      CALL RMMAR( RD,1,1 )
+C  GET XF FOR ANTILEADER
+        IF     ( RD(1) .LE. AA ) THEN
+          XF = SQRT( RD(1)*2.D0 / (SL*TT) )
+        ELSEIF ( RD(1) .LE. AB ) THEN
+          XF = (RD(1)-AA) / (SL*X1*TT) + X1
+        ELSE
+          XF = X2 - LOG( 1.D0 - (RD(1)-AB)*AL/(SL*X1*TT) ) / AL
+        ENDIF
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'LEDENY: XF(TARGET)=',SNGL(XF)
+ 
+C  CONVERT FEYNMAN X INTO RAPIDITY FOR ANTILEADER
+      PLAL  = PNT * XF * PAMA(LEPAR2) / PAMA(ITAR)
+      EA(2) = SQRT(PLAL**2 + TMAS(2)**2)
+*     YR(2) = -0.5D0 * LOG( (EA(2)+PLAL)/(EA(2)-PLAL) )
+      YR(2) = - LOG( (EA(2)+PLAL)/TMAS(2) )
+ 
+C  CALCULATE THE REMAINDER OF ENERGY AND LONG. MOMENTUM OF LEADER
+C  THIS HOLDS ALSO FOR MULTIPLE COLLISIONS (GNU > 1)
+      ESUM  = 0.D0
+      DO 10  I = 2,NTOT
+        EA(I) = TMAS(I) * COSH( YR(I) + YCM )
+        ESUM  = ESUM + EA(I)
+  10  CONTINUE
+      EA(1) = ELAB + PAMA(ITAR) - ESUM
+      IF ( EA(1) .LE. TMAS(1) ) THEN
+        LEDEFL = 1
+        RETURN
+      ENDIF
+      PLLBSQ = EA(1)**2 - TMAS(1)**2
+      PLLB   = SQRT( PLLBSQ )
+*     YR(1)  = 0.5D0 * LOG( (EA(1) + PLLB) / (EA(1) - PLLB) ) - YCM
+      YR(1)  = LOG( (EA(1) + PLLB) / TMAS(1) ) - YCM
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'LEDENY: EA(1),YR(2),YR(1)=',
+     *                     SNGL(EA(1)),SNGL(YR(2)),SNGL(YR(1))
+      LEDEFL = 0
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/lepacx.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/lepacx.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/lepacx.f	(revision 4308)
@@ -0,0 +1,390 @@
+      SUBROUTINE LEPACX( ECMCE,SDMLOG,LEPART,IPART )
+ 
+C-----------------------------------------------------------------------
+C  LE(ADING) PA(RTICLE) C(HARGE) (E)X(CHANGE)
+C
+C  CONSIDERS CHARGE EXCHANGE POSSIBILITY OF (ANTI)LEADING PARTICLE
+C  CONSIDERS RESONANCE EXCITATION WITHOUT/WITH CHARGE EXCHANGE
+C  LASTPI INCREASED: CREATE ONE CHARGED PION FOR CHARGE CONSERVATION
+C  LASTPI UNCHANGED: NO CHARGE EXCHANGE
+C  LASTPI DECREASED: CANCEL ONE CHARGED PION FOR CHARGE CONSERVATION
+C  NRESPC INCRESAED BY 1, IF PI(+-) WILL BE GENERATED BY RESON. DECAY
+C  NRESPN INCRESAED BY 1, IF PI(0)  WILL BE GENERATED BY RESON. DECAY
+C  NCPLUS INCREASED BY 1, IF POSITIVE CHARGE IS CREATED
+C  NCPLUS DECREASED BY 1, IF NEGATIVE CHARGE IS CREATED
+C  THIS SUBROUTINE IS CALLED FROM HDPM
+C  ARGUMENTS:
+C   ECMCE  = ENERGY FOR CHARGE EXCHANGE (ECMDPM OR ECMDIF)
+C   SDMLOG = ELABLG FOR NSD, DMLOG FOR DIFFRACTION
+C   LEPART = PARTICLE CODE OF (ANTI)LEADER EXCHANGING CHARGE
+C   IPART  = PARTICLE NUMBER IN ARRAY OF SECONDARY PARTICLES
+C          = 1  FOR LEADER, = 2  FOR ANTI-LEADER
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,LEPAR.
+      COMMON /LEPAR/   LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS
+      INTEGER          LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RESON.
+      COMMON /RESON/   RDRES,RESRAN,IRESPAR
+      REAL             RDRES(2),RESRAN(1000)
+      INTEGER          IRESPAR
+ 
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'LEPACX: LEPART=',LEPART
+ 
+C  SET PROBABILITIES FOR RESONANCE PRODUCTION (PRESPR) AND FOR
+C     CHARGE EXCHANGE OR RESONANCE PRODUCTION (PCEXRS)
+      IF     ( ECMCE .LE.  19.4D0 ) THEN
+        PCEXRS = 0.45D0
+        PRESPR = 0.35D0
+      ELSEIF ( ECMCE .LT. 968.5D0 ) THEN
+        PCEXRS = 0.45D0 + 0.034509D0 * (SDMLOG - 5.29832D0)
+        PRESPR = 0.0881897D0 * (SDMLOG - 5.29832D0)
+      ELSE
+        PCEXRS = 0.72D0
+        PRESPR = 0.69D0
+      ENDIF
+      PRESPR   = MAX( 0.35D0, PRESPR )
+      IF ( LEPART .EQ. 7 ) THEN
+C  ASSUME 50% CHARGE EXCHANGE FOR GAMMA INITIATED INTERACTION
+        PCEXRS = 0.5D0
+        PRESPR = 0.D0
+      ENDIF
+ 
+C  THROW RANDOM NUMBER TO LOOK FOR RES. PRODUCTION OR CHARGE EXCHANGE
+      CALL RMMAR( RD,2,1 )
+ 
+C  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  RESONANCE IS FORMED. IF ADDITIONAL CHARGE EXCHANGE, THEN SET LASTPI
+      IF     ( RD(1) .LE. PRESPR ) THEN
+ 
+C  FIRST FOR NUCLEONS (AS MOST FREQUENT)
+        IF     ( LEPART .EQ. 13 ) THEN
+          IF     ( RD(2) .LE. 0.5 ) THEN
+C  NEUTRON ---->  DELTA(-)
+            LEPART = 57
+            NRESPC = NRESPC + 1
+            NCPLUS = NCPLUS - 1
+          ELSEIF ( RD(2) .GT. TB3 ) THEN
+C  NEUTRON ---->  DELTA(0)
+            LEPART = 56
+            CALL RMMAR( RDRES(IPART),1,1 )
+            IF ( RDRES(IPART) .LE. TB3 ) THEN
+              NRESPN = NRESPN + 1
+            ELSE
+              NRESPC = NRESPC + 1
+              LASTPI = LASTPI - 1
+            ENDIF
+          ELSE
+C  NEUTRON ---->  DELTA(+)
+            LEPART = 55
+            CALL RMMAR( RDRES(IPART),1,1 )
+            IF ( RDRES(IPART) .LE. TB3 ) THEN
+              NRESPN = NRESPN + 1
+              LASTPI = LASTPI - 1
+            ELSE
+              NRESPC = NRESPC + 1
+            ENDIF
+            NCPLUS = NCPLUS + 1
+          ENDIF
+        ELSEIF ( LEPART .EQ. 14 ) THEN
+          IF     ( RD(2) .LE. 0.5 ) THEN
+C  PROTON ---->  DELTA(++)
+            LEPART = 54
+            NRESPC = NRESPC + 1
+            NCPLUS = NCPLUS + 1
+          ELSEIF ( RD(2) .GT. TB3 ) THEN
+C  PROTON  ---->  DELTA(+)
+            LEPART = 55
+            CALL RMMAR( RDRES(IPART),1,1 )
+            IF ( RDRES(IPART) .LE. TB3 ) THEN
+              NRESPN = NRESPN + 1
+            ELSE
+              NRESPC = NRESPC + 1
+              LASTPI = LASTPI + 1
+            ENDIF
+          ELSE
+C  PROTON ---->  DELTA(0)
+            LEPART = 56
+            CALL RMMAR( RDRES(IPART),1,1 )
+            IF ( RDRES(IPART) .LE. TB3 ) THEN
+              NRESPN = NRESPN + 1
+              LASTPI = LASTPI + 1
+            ELSE
+              NRESPC = NRESPC + 1
+            ENDIF
+            NCPLUS = NCPLUS - 1
+          ENDIF
+ 
+C  NOW FOR PIONS
+        ELSEIF ( LEPART .EQ. 8  .OR.  LEPART .EQ. 9 ) THEN
+          IF ( RD(2) .LE. 0.5 ) THEN
+C  PI(+-)   ----> RHO(+-)
+            LEPART = LEPART + 44
+            NRESPN = NRESPN + 1
+          ELSE
+C  PI(+-)   ----> RHO(0)  ( ----> PI(+) + PI(-) )
+            NCPLUS = NCPLUS + 2 * LEPART - 17
+            LEPART = 51
+            NRESPC = NRESPC + 1
+          ENDIF
+ 
+C  NOW FOR KAONS
+        ELSEIF ( LEPART .EQ. 11  .OR.  LEPART .EQ. 12 ) THEN
+          IF ( RD(2) .LE. 0.5 ) THEN
+C  K(+-)   ----> K*(+-)
+            LEPART = LEPART + 52
+            CALL RMMAR( RDRES(IPART),1,1 )
+            IF ( RDRES(IPART) .LE. TB3 ) THEN
+              NRESPN = NRESPN + 1
+            ELSE
+              NRESPC = NRESPC + 1
+              LASTPI = LASTPI + 1
+            ENDIF
+          ELSE
+C  K(+)   ---->      K*(0)
+C  K(-)   ----> ANTI-K*(0)
+            CALL RMMAR( RDRES(IPART),1,1 )
+            NCPLUS = NCPLUS + 2 * LEPART - 23
+            IF ( RDRES(IPART) .LE. TB3 ) THEN
+              NRESPC = NRESPC + 1
+            ELSE
+              NRESPN = NRESPN + 1
+              LASTPI = LASTPI + 1
+            ENDIF
+            LEPART = 3*LEPART + 29
+          ENDIF
+        ELSEIF ( LEPART .EQ. 10  .OR.  LEPART .EQ. 16 ) THEN
+          IF ( RD(2) .LE. 0.5 ) THEN
+C  K(0)   ----> (ANTI) K*(0)
+            CALL RMMAR( RD,1,1 )
+            IF ( RD(1) .LE. 0.5 ) THEN
+              LEPART = 62
+            ELSE
+              LEPART = 65
+            ENDIF
+            CALL RMMAR( RDRES(IPART),1,1 )
+            IF ( RDRES(IPART) .LE. TB3 ) THEN
+              NRESPC = NRESPC + 1
+              LASTPI = LASTPI - 1
+            ELSE
+              NRESPN = NRESPN + 1
+            ENDIF
+          ELSE
+C  K(0)   ----> K*(+-)
+            CALL RMMAR( RD,1,1 )
+            IF ( RD(1) .LE. 0.5 ) THEN
+              LEPART = 63
+              NCPLUS = NCPLUS + 1
+            ELSE
+              LEPART = 64
+              NCPLUS = NCPLUS - 1
+            ENDIF
+            CALL RMMAR( RDRES(IPART),1,1 )
+            IF ( RDRES(IPART) .LE. TB3 ) THEN
+              NRESPN = NRESPN + 1
+              LASTPI = LASTPI - 1
+            ELSE
+              NRESPC = NRESPC + 1
+            ENDIF
+          ENDIF
+ 
+C  NOW FOR ANTINUCLEONS
+        ELSEIF ( LEPART .EQ. 25 ) THEN
+          IF     ( RD(2) .LE. 0.5 ) THEN
+C  ANTINEUTRON ---->  ANTI-DELTA(0)
+            LEPART = 60
+            CALL RMMAR( RDRES(IPART),1,1 )
+            IF ( RDRES(IPART) .LE. TB3 ) THEN
+              NRESPN = NRESPN + 1
+            ELSE
+              NRESPC = NRESPC + 1
+              LASTPI = LASTPI - 1
+            ENDIF
+          ELSEIF ( RD(2) .GT. TB3 ) THEN
+C  ANTINEUTRON ---->  ANTI-DELTA(+)
+            LEPART = 61
+            NRESPC = NRESPC + 1
+            NCPLUS = NCPLUS + 1
+          ELSE
+C  ANTINEUTRON ---->  ANTI-DELTA(-)
+            LEPART = 59
+            CALL RMMAR( RDRES(IPART),1,1 )
+            IF ( RDRES(IPART) .LE. TB3 ) THEN
+              NRESPN = NRESPN + 1
+              LASTPI = LASTPI - 1
+            ELSE
+              NRESPC = NRESPC + 1
+            ENDIF
+            NCPLUS = NCPLUS - 1
+          ENDIF
+        ELSEIF ( LEPART .EQ. 15 ) THEN
+          IF     ( RD(2) .LE. 0.5 ) THEN
+C  ANTIPROTON  ---->  ANTI-DELTA(--)
+            LEPART = 58
+            NRESPC = NRESPC + 1
+            NCPLUS = NCPLUS - 1
+          ELSEIF ( RD(2) .GT. TB3 ) THEN
+C  ANTIPROTON  ---->  ANTI-DELTA(-)
+            LEPART = 59
+            CALL RMMAR( RDRES(IPART),1,1 )
+            IF ( RDRES(IPART) .LE. TB3 ) THEN
+              NRESPN = NRESPN + 1
+            ELSE
+              NRESPC = NRESPC + 1
+              LASTPI = LASTPI + 1
+            ENDIF
+          ELSE
+C  ANTIPROTON  ---->  ANTI-DELTA(0)
+            LEPART = 60
+            CALL RMMAR( RDRES(IPART),1,1 )
+            IF ( RDRES(IPART) .LE. TB3 ) THEN
+              NRESPN = NRESPN + 1
+              LASTPI = LASTPI + 1
+            ELSE
+              NRESPC = NRESPC + 1
+            ENDIF
+            NCPLUS = NCPLUS + 1
+          ENDIF
+ 
+        ELSEIF ( LEPART .EQ. 7 ) THEN
+C  NO RESONANCE FORMATION FOR INDUCING GAMMA RADIATION
+          IF ( DEBUG ) WRITE(MDEBUG,*) 'LEPACX: NO EXCHANGE'
+ 
+        ELSEIF ( (LEPART .GE. 18  .AND.  LEPART .LE. 24)  .OR.
+     *           (LEPART .GE. 26  .AND.  LEPART .LE. 32) ) THEN
+C  NO RESONANCE FORMATION FOR STRANGE BARYONS
+          IF ( DEBUG ) WRITE(MDEBUG,*) 'LEPACX: NO EXCHANGE'
+ 
+        ELSE
+          WRITE(MONIOU,100) LEPART
+ 100      FORMAT(1H ,'LEPACX: UNIDENTIFIED PARTICLE CODE= ',I4,
+     *           ' FOR RESONANCE FORMATION')
+        ENDIF
+        IF ( DEBUG ) WRITE(MDEBUG,102)
+     *                        LEPART,LASTPI,NRESPC,NRESPN,NCPLUS
+ 102    FORMAT(' LEPACX: LEPART,LASTPI,NRESPC,NRESPN,NCPLUS=',5I5)
+ 
+C  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  CHARGE EXCHANGE WITHOUT RESONANCE FORMATION
+      ELSEIF ( RD(1) .LE. PCEXRS ) THEN
+ 
+C  FIRST FOR NUCLEONS (AS MOST FREQUENT)
+        IF     ( LEPART .EQ. 13 ) THEN
+C  NEUTRON ( + PI(+) ) ---->  PROTON  ( + PI(0) )
+          LEPART = 14
+          LASTPI = LASTPI - 1
+          NCPLUS = NCPLUS + 1
+        ELSEIF ( LEPART .EQ. 14 ) THEN
+C  PROTON  ( + PI(0) ) ---->  NEUTRON ( + PI(+) )
+          LEPART = 13
+          LASTPI = LASTPI + 1
+          NCPLUS = NCPLUS - 1
+ 
+C  NOW FOR PIONS
+        ELSEIF ( LEPART .EQ. 8  .OR.  LEPART .EQ. 9 ) THEN
+C  PI(+-)  ----> PI(0)
+          NCPLUS = NCPLUS + 2 * LEPART - 17
+          LEPART = 7
+          LASTPI = LASTPI + 1
+ 
+C  NOW FOR KAONS
+        ELSEIF ( LEPART .EQ. 11  .OR.  LEPART .EQ. 12 ) THEN
+C  K(+-)  ----> K(0)  (S OR L)
+          NCPLUS = NCPLUS + 2 * LEPART - 23
+          IF ( RD(2) .LE. 0.5 ) THEN
+            LEPART = 10
+          ELSE
+            LEPART = 16
+          ENDIF
+          LASTPI = LASTPI + 1
+        ELSEIF ( LEPART .EQ. 10  .OR.  LEPART .EQ. 16 ) THEN
+C  K(0)  ----> K(+-)
+          IF ( RD(2) .LE. 0.5 ) THEN
+            LEPART = 11
+            NCPLUS = NCPLUS + 1
+          ELSE
+            LEPART = 12
+            NCPLUS = NCPLUS - 1
+          ENDIF
+          LASTPI = LASTPI - 1
+ 
+C  NOW FOR ANTINUCLEONS
+        ELSEIF ( LEPART .EQ. 25 ) THEN
+C  ANTINEUTRON ( + PI(-) ) ---->  ANTIPROTON  ( + PI(0) )
+          LEPART = 15
+          LASTPI = LASTPI - 1
+          NCPLUS = NCPLUS - 1
+        ELSEIF ( LEPART .EQ. 15 ) THEN
+C  ANTIPROTON  ( + PI(0) ) ---->  ANTINEUTRON ( + PI(-) )
+          LEPART = 25
+          LASTPI = LASTPI + 1
+          NCPLUS = NCPLUS + 1
+ 
+C  NOW FOR GAMMA INDUCED REACTIONS (ITYPE=7)
+        ELSEIF ( LEPART .EQ. 7 ) THEN
+C  TEST IF CHARGE EXCHANGE REACTION FOR PI(0)
+C  PI(0)  ---->  PI(+-)
+          IF ( RD(2) .LE. 0.5 ) THEN
+            LEPART = 8
+            NCPLUS = NCPLUS + 1
+          ELSE
+            LEPART = 9
+            NCPLUS = NCPLUS - 1
+          ENDIF
+          LASTPI = LASTPI - 1
+ 
+        ELSEIF ( (LEPART .GE. 18  .AND.  LEPART .LE. 24)  .OR.
+     *           (LEPART .GE. 26  .AND.  LEPART .LE. 32) ) THEN
+C  NO CHARGE EXCHANGE FOR STRANGE BARYONS
+          IF ( DEBUG ) WRITE(MDEBUG,*) 'LEPACX: NO EXCHANGE'
+ 
+        ELSE
+          WRITE(MONIOU,101) LEPART
+ 101      FORMAT(1H ,'LEPACX: UNIDENTIFIED PARTICLE CODE= ',I4,
+     *           ' FOR CHARGE EXCHANGE')
+        ENDIF
+        IF ( DEBUG ) WRITE(MDEBUG,*) 'LEPACX: LEPART,LASTPI,NCPLUS=',
+     *                                        LEPART,LASTPI,NCPLUS
+      ELSE
+        IF ( DEBUG ) WRITE(MDEBUG,*) 'LEPACX: NO EXCHANGE'
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/longft.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/longft.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/longft.f	(revision 4308)
@@ -0,0 +1,152 @@
+      SUBROUTINE LONGFT(FPARAM,CHI2)
+ 
+C-----------------------------------------------------------------------
+C  LONG(ITUDINAL) F(I)T
+C
+C  THIS ROUTINE PERFORMS A FIT TO THE LONGITUDINAL DISTRIBUTION OF AN
+C  AIR SHOWER. DUE TO THE LARGE PARTICLE NUMBERS IN AN AIR SHOWER THE
+C  STATISTICAL ERRORS ON THE PARTICLE NUMBER AT A GIVEN LEVEL ARE
+C  MINUTE. THIS LEADS TO RATHER LARGE CHI**2/DOF FOR THE FITS EVEN IF
+C  THE FITTED FUNCTION MATCHES THE POINTS BETTER THAN SAY 1%.
+C  KEEP IN MIND THAT FITTING IS A DIFFICULT TASK AND THE RESULTS DO NOT
+C  NECESSARILY REPRESENT THE ABOLUTE MINIMUM OR EVEN A GOOD
+C  APPROXIMATION.
+C
+C  TRY A 6 PARAMETER FIT BASED ON J. BALL'S PROPOSED CURVE REPLACING HIS
+C  CONSTANT WIDTH PARAMETER LAMBDA BY A POLYNOMIAL OF 3. DEGREE.
+C   N(T) = NMAX * ((T-T0)/(TMAX-T0))**((TMAX-T)/(P1+P2*T+P3*T**2))
+C   T    = DEPTH IN G/CM**2
+C   T0   = STARTING DEPTH OF SHOWER
+C   TMAX = DEPTH OF SHOWER MAXIMUM
+C   NMAX = PARTICLE NUMBER AT TMAX
+C   P1 .. P3 = PARAMETERS OF A POLYNOMIAL DESCRIBING THE WIDTH
+C
+C  THIS SUBROUTINE IS CALLED FROM MAIN
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CURVE.
+      COMMON /CURVE/   CHAPAR,DEP,ERR,NSTP
+      DOUBLE PRECISION CHAPAR(1100),DEP(1100),ERR(1100)
+      INTEGER          NSTP
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      INTEGER NPAR
+      PARAMETER (NPAR=6)
+      DOUBLE PRECISION F(NPAR),FPARAM(NPAR),CHI2,CHISQ
+      DOUBLE PRECISION P(NPAR+1,NPAR),Y(NPAR+1),EPS
+      DOUBLE PRECISION T0,TMAX,NMAX,FAC
+      INTEGER          I,J,JJ,K,ITER,IFLAG
+      EXTERNAL         CHISQ
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'LONGFT:'
+ 
+C  FIND GOOD START VALUES FOR XMAX AND FMAX
+      NMAX = 0.D0
+      DO 2 I = 1,NSTP
+        ERR(I) = MAX( 1.D0, SQRT(CHAPAR(I)) )
+        IF ( CHAPAR(I) .GT. NMAX ) THEN
+          NMAX = CHAPAR(I)
+          TMAX = DEP(I)
+        ENDIF
+ 2    CONTINUE
+C  STARTVALUE FOR X0 IS ABOUT WHERE MORE THAN 1 PARTICLE SHOWS UP
+      DO 3 I = 1,NSTP
+        IF ( CHAPAR(I) .GT. 1.D0 ) GOTO 1
+ 3    CONTINUE
+      I = NSTP
+ 1    CONTINUE
+      T0 = DEP(I)
+ 
+C-----------------------------------------------------------------------
+C  FIT IS PERFORMED WITH THE ROUTINE AMOEBA FROM:
+C      NUMERICAL RECIPES, W.H. PRESS ET AL.,
+C      CAMBRIDGE UNIVERSITY PRESS, 1992  ISBN 0 521 43064 X
+C  SEE THERE HOW IT HAS TO BE USED.
+ 
+C  CREATE A SET OF NPAR+1 STARTING VERTICES
+C  HERE IS THE FIRST ONE
+      P(1,1) = NMAX
+      P(1,2) = T0
+      P(1,3) = TMAX
+      P(1,4) = 200.D0
+      P(1,5) = 1.D-1
+      P(1,6) = 1.D-1
+ 
+C  LOOP OVER THE FITTING ROUTINE (2 TIMES 5 FITS WITH VARYING PRECISION)
+      DO 10 J = 1,2
+        DO 9 JJ = 1,5
+C  START WITH CRUDE PRECISION AND IMPROVE STEP BY STEP
+C  AFTER FIVE STEPS ENLARGE AGAIN
+          EPS = 10.D0**(-3.D0-JJ*0.5D0)
+          FAC = 1.D0 + 2.D0**(2.1D0*(1.D0-JJ))
+C  GO AS WELL IN DIFFERENT DIRECTIONS
+          IF ( J .EQ. 2 ) FAC = 1.D0/FAC
+ 
+C  GET OTHER NPAR STARTING VERTICES FROM THE STARTING POINT BY VARIATION
+C  OF ONLY ONE OF THE COORDINATE VALUES
+          DO 5 I = 2,NPAR+1
+            DO 4 K = 1,NPAR
+              P(I,K) = P(1,K)
+ 4          CONTINUE
+            IF ( P(I,I-1) .EQ. 0.D0 ) THEN
+              P(I,I-1) = 1.D0
+            ELSE
+              P(I,I-1) = P(I,I-1) * FAC
+            ENDIF
+ 5        CONTINUE
+          IF (DEBUG) WRITE(MDEBUG,*) 'LONGFT: TRIAL,FAC,EPS ',J,
+     *                                   SNGL(FAC),SNGL(EPS)
+ 
+C  CALCULATE FUNCTION VALUES AT THE START VERTICES
+          DO 7 I = 1,NPAR+1
+            DO 6 K = 1,NPAR
+              F(K) = P(I,K)
+ 6          CONTINUE
+            Y(I) = CHISQ(F)
+ 7        CONTINUE
+C  PERFORM A FIT
+          CALL AMOEBA(P,Y,NPAR+1,NPAR,NPAR,EPS,CHISQ,ITER,IFLAG)
+          IF ( DEBUG ) THEN
+            WRITE(MDEBUG,*) 'LONGFT: ITER/IFLAG=',ITER,IFLAG
+            WRITE(MDEBUG,*) 'LONGFT: PARAMETERS=',1,(P(1,K),K=1,6)
+            WRITE(MDEBUG,*) 'LONGFT: CHISQ     =',SNGL(Y(1))
+          ENDIF
+ 
+C  STORE VALUES AT FIRST TRIAL OR AT IMPROVED RESULT
+          IF ( J .EQ. 1 .OR. Y(1) .LT. CHI2 ) THEN
+            DO 8 I = 1,NPAR
+              FPARAM(I) = P(1,I)
+ 8          CONTINUE
+            CHI2 = Y(1)
+          ENDIF
+C  END OF LOOPS OVER THE FITTING ROUTINE
+ 9      CONTINUE
+ 10   CONTINUE
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/lowup.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/lowup.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/lowup.f	(revision 4308)
@@ -0,0 +1,70 @@
+      SUBROUTINE LOWUP(CHAR)
+ 
+C-----------------------------------------------------------------------
+C  (CONVERTS) LOW(ER CASE CHARACTER TO) UP(PPER CASE CHARACTER)
+C
+C  THIS SUBROUTINE IS CALLED FROM DATAC
+C  ARGUMENT :
+C   CHAR    =  CHARACTER TO BE CONVERTED
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+      CHARACTER*1 CHAR
+C-----------------------------------------------------------------------
+ 
+      IF     ( CHAR .EQ. 'a' ) THEN
+        CHAR='A'
+      ELSEIF ( CHAR .EQ. 'b' ) THEN
+        CHAR='B'
+      ELSEIF ( CHAR .EQ. 'c' ) THEN
+        CHAR='C'
+      ELSEIF ( CHAR .EQ. 'd' ) THEN
+        CHAR='D'
+      ELSEIF ( CHAR .EQ. 'e' ) THEN
+        CHAR='E'
+      ELSEIF ( CHAR .EQ. 'f' ) THEN
+        CHAR='F'
+      ELSEIF ( CHAR .EQ. 'g' ) THEN
+        CHAR='G'
+      ELSEIF ( CHAR .EQ. 'h' ) THEN
+        CHAR='H'
+      ELSEIF ( CHAR .EQ. 'i' ) THEN
+        CHAR='I'
+      ELSEIF ( CHAR .EQ. 'j' ) THEN
+        CHAR='J'
+      ELSEIF ( CHAR .EQ. 'k' ) THEN
+        CHAR='K'
+      ELSEIF ( CHAR .EQ. 'l' ) THEN
+        CHAR='L'
+      ELSEIF ( CHAR .EQ. 'm' ) THEN
+        CHAR='M'
+      ELSEIF ( CHAR .EQ. 'n' ) THEN
+        CHAR='N'
+      ELSEIF ( CHAR .EQ. 'o' ) THEN
+        CHAR='O'
+      ELSEIF ( CHAR .EQ. 'p' ) THEN
+        CHAR='P'
+      ELSEIF ( CHAR .EQ. 'q' ) THEN
+        CHAR='Q'
+      ELSEIF ( CHAR .EQ. 'r' ) THEN
+        CHAR='R'
+      ELSEIF ( CHAR .EQ. 's' ) THEN
+        CHAR='S'
+      ELSEIF ( CHAR .EQ. 't' ) THEN
+        CHAR='T'
+      ELSEIF ( CHAR .EQ. 'u' ) THEN
+        CHAR='U'
+      ELSEIF ( CHAR .EQ. 'v' ) THEN
+        CHAR='V'
+      ELSEIF ( CHAR .EQ. 'w' ) THEN
+        CHAR='W'
+      ELSEIF ( CHAR .EQ. 'x' ) THEN
+        CHAR='X'
+      ELSEIF ( CHAR .EQ. 'y' ) THEN
+        CHAR='Y'
+      ELSEIF ( CHAR .EQ. 'z' ) THEN
+        CHAR='Z'
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/lpm.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/lpm.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/lpm.f	(revision 4308)
@@ -0,0 +1,71 @@
+      SUBROUTINE LPM(ENER)
+ 
+C------------------------------------------------------------------------
+C  L(ANDAU) P(OMAEANCHUK) M(IGDAL)
+C  TREATS ELECTROMAGNETIC PARTICLES WITH ENERGIES ABOVE 1.*10**16 EV
+C  THIS SUBROUTINE IS CALLED FROM EM
+C  ARGUMENT:
+C   ENER      = ENERGY OF EM PARTICLE
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION ENER
+      INTEGER          I
+C-----------------------------------------------------------------------
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' LPM   : CURPAR=',1P,9E10.3)
+ 
+      IF ( ENER .GT. 1.D7 ) THEN
+        WRITE(MONIOU,*)
+     *    'LPM   : ENERGY OF EM-PARTICLE = ',SNGL(ENER),' TOO HIGH'
+        WRITE(MONIOU,*)'LPM   : LANDAU-POMERANCHUK-MIGDAL ROUTINES ',
+     *               'NOT YET AVAILABLE, PROGRAM STOPPED'
+        STOP
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/magic-mc.daemon.tpl
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/magic-mc.daemon.tpl	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/magic-mc.daemon.tpl	(revision 4308)
@@ -0,0 +1,533 @@
+#!/usr/local/bin/perl -w
+#############################################################
+# JOBS-MC.daemon v. 0.01
+# Copyright (c) J C Gonzalez, 1998 - All rights reserved
+#------------------------------------------------------------
+# Perl script for running automatically the MC generation
+# program.
+#############################################################
+#
+
+use strict;
+use vars qw(
+            $VERSION $PROGRAM $SYSDIR $COPYRIGHT $USER $EXECCOR
+            $uptime $DISK $MOTHERDIR $NICE $TOP $TEL
+            $MINN $SITE
+            $Spectral_Index
+            @energies @energies2
+            @nshowers
+            @primaries
+            @Theta
+            @Phi
+            $Energy1 $Energy2
+            $Primary
+            $Set
+            $MACH_CRITICAL
+            $MACH_BAD     
+            $MACH_GOOD    
+            $MACH_VERYGOOD
+            $MAXDISK $MAXTAPE
+            $verbose      
+            $debug        
+            $minfree      
+            $cpu
+            $cpumsg
+            $icpu
+            );
+use Carp;
+
+require 5.001;
+
+$TEL = 'MAGIC';
+
+$PROGRAM = "$TEL-MC.DAEMON";
+$COPYRIGHT = 'Copyright (c) J C Gonzalez, 1998 - All rights reserved';
+$VERSION = '0.01';
+$USER = '#USERADD#';
+$DISK = '#DATADISK#';
+$SYSDIR = '#ADMDISK#';
+$MOTHERDIR = '#PATHEXE#';
+$EXECCOR = '#NAMEEXE#';
+$NICE = '#NICE#';
+$SITE = '#SITE#';
+$TOP = '/usr/local/bin/top';
+
+# parameters 
+
+# Note: each CORSIKA run launched from this script will generate
+#       [nshowers] showers in the energy bin [energies:energies2], 
+#       with a **differential** spectral index [Spectral_Index].
+#       The range in angles are given in @Theta and @Phi
+
+$Spectral_Index = -1.5;         # spectral index ( **differential** )
+@energies = qw ( 30 );           # lower limits in energy bins
+@energies2 = qw ( 30000 );      # corresponding upper limits
+@nshowers = qw ( 1000 );           # number of showers to generate
+@primaries = ( 1 );             # primaries (GEANT codes)
+@Theta = qw ( 5. 25. );         # Theta range
+@Phi = qw ( 0. 360. );          # Phi range
+
+$MINN = {};                     # minimum number of showers for energy
+
+# currently we use the MACH factor to see how loaded is
+# the machine. It goes from 0 to 1, 0 is dead, 1 is free
+
+$MACH_CRITICAL = 0.0;       # critical 
+$MACH_BAD      = 0.2;       # bad
+$MACH_GOOD     = 0.4;       # good
+$MACH_VERYGOOD = 0.9;       # verygood
+
+# maximum disk and tape space allowed
+$MAXDISK = (10 * 1024 * 1024);  # max. disk
+$MAXTAPE = (6 * 1024 * 1024);   # max. space
+    
+# some flags (some of them not yet used)
+$verbose = 1;           # verbose output flag
+$debug = 0;         # debugging flag
+$minfree = 1;           # minimum number of free jobs
+$uptime = 0;
+$cpumsg = '';
+
+###
+# subroutines
+###
+
+# presentation
+sub hello {
+    print <<"_eom_" if ( $verbose );
+============================================================
+$PROGRAM version $VERSION
+$COPYRIGHT
+============================================================
+
+_eom_
+}
+
+# initialize
+sub init {
+    my (@line,$df,$e,$p,$msg,$l);
+
+    for ($l=0; $l<=$#energies; $l++) {
+        $$MINN{$energies[$l]} = $nshowers[$l];
+    }
+    
+    $msg = "";
+    if (! -f "$SYSDIR/last-primary") {
+        system("echo $#primaries > $SYSDIR/last-primary");
+        $msg .= "\n\t\tlast-primary file initialized.";
+    }
+    if (! -f "$SYSDIR/last-energy") {
+        system("echo $#energies > $SYSDIR/last-energy");
+        $msg .= "\n\t\tlast-energy file initialized.";
+    }                           
+    if (! -f "$SYSDIR/disk-space") {
+        system("echo $MAXDISK > $SYSDIR/disk-space") == 0
+            or croak "Cannot write $SYSDIR/disk-space";
+        $msg .= "\n\t\tdisk-space file initialized.";
+    }
+    if (! -f "$SYSDIR/tape-space") {
+        system("echo $MAXTAPE > $SYSDIR/tape-space") == 0
+            or croak "Cannot write $SYSDIR/tape-space";
+        $msg .= "\n\t\ttape-space file initialized.";
+        $msg .= "\n\t\tA new tape for disk $DISK is required.";
+    }
+    if (! -f "$SYSDIR/last-sets") {
+        open(FILESETS,"> $SYSDIR/last-sets") 
+            or croak "Cannot open file $SYSDIR/last-sets";
+        foreach $p (@primaries) {
+            foreach $e (@energies) {
+                $l = $p . "-" . $e . "  0\n";
+                print FILESETS $l;
+            }
+        } 
+        close(FILESETS);
+        $msg .= "\n\t\tlast-sets file initialized.";
+    }       
+    send_mail("System Initialization Procedure:" . $msg, 0) 
+        if ($msg ne "");
+}
+
+# clear the system
+sub sys_clear {
+    exit system('yes | rm -r ' . 
+                $SYSDIR . '/last-* ' . 
+                $SYSDIR . '/*space ' . 
+                $SYSDIR . '/to-save ');
+}
+
+# get options for the program
+sub get_options {
+    my ($op);
+    foreach $op ( @ARGV ) { 
+        shift;
+        last if ($op =~ /^--$/);
+        if ($op =~ /^-q/) { $verbose = 0 }
+        if ($op =~ /^-D/) { $debug = 1 }
+        if ($op =~ /^-u/) { $uptime = 1 }
+        if ($op =~ /^-n(.*)/) { $NICE = $1 }
+        if ($op =~ /^-t(.*):(.*)/) { @Theta = ( $1, $2, );}
+        if ($op =~ /^-p(.*):(.*)/) { @Phi = ( $1, $2, );}
+        if ($op =~ /^-c/) { &sys_clear }
+    }
+    1;
+}
+
+# get machine load
+sub read_cpu_load {
+    my ($line, @upline, $users, @mach);
+
+    $line = `uptime -m`;
+    @mach  = split (
+                    /^.* factor: ([0-9\.]*), ([0-9\.]*), ([0-9\.]*)$/,
+                    $line);
+    return $mach[1];
+}
+
+# check the cpu load
+sub check_cpu_load {
+    my ($cpu, $msg, $running, $l);
+
+    $cpu = read_cpu_load;
+
+    if ( $cpu < $MACH_CRITICAL ) {
+        $cpumsg = "CPU is critically overloaded:  MACH = $cpu";
+        $icpu = 0;
+    } elsif ( $cpu < $MACH_BAD ) {
+        $cpumsg = "CPU load is too high:  MACH = $cpu";
+        $icpu = 1;
+    } elsif ( $cpu < $MACH_GOOD ) {
+        $cpumsg = "CPU load is not good enough:  MACH = $cpu";
+        $icpu = 2;
+    } elsif ( $cpu < $MACH_VERYGOOD ) {
+        $cpumsg = "CPU load is very good:  MACH = $cpu";
+        $icpu = 3;
+    } else {
+        $cpumsg = "CPU load is excellent!:  MACH = $cpu";
+        $icpu = 4;
+    }
+	
+	open(C520RUNNING, "ps x|") 
+		or die "Cannot execute ps x: $!"; 	
+	$running = 0;
+	while ( $l = <C520RUNNING> ) {
+		if ( $l =~ /c520/ ) {
+			$running++;
+		}
+	}	
+	close(C520RUNNING);
+	
+	if ( $running > 0 ) {
+		$cpumsg .= "\nCORSIKA still running $running time(s):\n$l";
+        $icpu = 0;
+	}		
+	
+	$icpu;
+}
+
+# get primary to be used
+sub get_primary {
+    my ($prim);
+
+    $prim = `cat $SYSDIR/last-primary`
+        or croak "Cannot read data file $SYSDIR/last-primary"; 
+
+    $prim = ($prim == $#primaries ) ? 0 : $prim+1;
+    
+    system("echo $prim > $SYSDIR/last-primary") == 0
+        or croak "Cannot write data file $SYSDIR/last-primary";
+
+    $primaries[$prim];
+}
+
+# get primary to be used
+sub get_energy {
+    my ($prim) = @_;
+    my ($ener);
+
+    $ener = `cat $SYSDIR/last-energy`
+        or croak "Cannot read data file $SYSDIR/last-energy"; 
+    
+    if ($prim == $primaries[0]) {
+        $ener = ($ener == $#energies ) ? 0 : $ener+1;
+        system("echo $ener > $SYSDIR/last-energy") == 0
+            or croak "Cannot write data file $SYSDIR/last-energy";
+    }
+
+    return ( $energies[$ener], $energies2[$ener],);
+}
+
+# get set (run) number for this run
+sub get_set {
+    my ($energy, $primary) = @_;
+    my (@line, $lastset, $l);
+
+    open(FILESETS,"< $SYSDIR/last-sets") 
+        or croak "Cannot open file $SYSDIR/last-sets";
+    open(FILESETS2,"> $SYSDIR/last-sets.bak") 
+        or croak "Cannot open file $SYSDIR/last-sets.bak";
+    while ($l = <FILESETS>) {
+        if ($l =~ /^($primary-$energy) /) {
+            chomp $l;
+            @line = split ' ', $l;
+            $lastset = $line[1];
+            $lastset++;
+            $l = "$primary-$energy     $lastset\n";
+        }
+        print FILESETS2 $l;
+    }
+    close(FILESETS2);
+    close(FILESETS);
+    system("mv $SYSDIR/last-sets.bak $SYSDIR/last-sets") == 0
+        or croak "Cannot modify file $SYSDIR/last-sets";
+    
+    $lastset;
+}
+
+# send an e-mail
+sub send_mail {
+    my ($msg,$err)=@_;
+    my ($date,$fullmsg,$time);
+
+    $date = scalar localtime;
+    $time = time;
+
+    $fullmsg = "Subject: $PROGRAM $VERSION - log\n";
+    $fullmsg .= "=" x 60 . "\n";
+    $fullmsg .= "$PROGRAM version $VERSION\n";
+    $fullmsg .= "$COPYRIGHT\n";
+    $fullmsg .= "=" x 60 . "\n\n";
+    $fullmsg .= "  User:   $USER\n";
+    $fullmsg .= "  Date:   $date ($time)\n\n";
+    $fullmsg .= "  Msg:    $msg\n\n";
+    open(MSGFILE, "> $SYSDIR/last-msg") 
+        or croak "Cannot write data file $SYSDIR/last-msg";
+    print MSGFILE $fullmsg;
+    close(MSGFILE);
+    open(OVERLOAD, ">> $SYSDIR/last-logs")
+        or croak "Cannot write data file $SYSDIR/last-logs";
+    if ($err < 1) {
+        system("mail $USER < $SYSDIR/last-msg") == 0
+            or croak "Cannot send e-mail file $SYSDIR/last-msg";
+        print OVERLOAD "+$date : $cpumsg\n";
+    } else {
+        print OVERLOAD " $date : $cpumsg\n";
+    }
+    close(OVERLOAD);
+}
+
+# construct the job file
+sub make_job {
+    my ($job,$nrun,$date,$dir,$fulldir,$nshow);
+    my ($seed1,$seed2,$seed3);
+    
+    $Primary = get_primary();
+    ($Energy1,$Energy2) = get_energy($Primary);
+    $Set = get_set($Energy1, $Primary);
+    $nshow = $$MINN{$Energy1};
+    $dir = "mc$TEL-$Primary-$Energy1:$Energy2-$Set";
+    $fulldir = "$DISK/$dir";
+    $job = "job.cmds";
+
+    # change seed for random numbers
+    srand ( time() ^ ($$ + ($$ << 15)) );
+    $seed1 = int(rand 100000) + 1;
+    $seed2 = int(rand 100000) + 1;
+    $seed3 = int(rand 100000) + 1;
+
+### make job commands file
+
+    open(JOBFILE,"> $SYSDIR/$job") 
+        or croak "Cannot write job file $SYSDIR/job";
+    $date = scalar localtime;
+
+    print JOBFILE <<"_eoj_";
+#!/bin/sh
+#############################################################
+# JOBS script
+# Automaticaly generated by $PROGRAM v. $VERSION 
+#
+# $COPYRIGHT
+# $date
+#############################################################
+#
+
+# begin
+
+# initialize variables 
+
+MAIN_DIR="$MOTHERDIR"
+TARGET_DIR="$fulldir"
+DATA_FILES="ATM75 ATM80 ATM84 ATM85 ATM86 ATM87 ATM88 ATM89 ATM90"
+DATA_FILES="\$DATA_FILES EGSDAT2 NUCNUCCS VENUSDAT"
+PROG="$EXECCOR"
+INPUT="input"
+OUTPUT="output"
+ERROR="error"
+
+# create target directory
+mkdir \$TARGET_DIR || \
+{ echo "Cannot create directory \$TARGET_DIR"; exit 1; }
+cd \$TARGET_DIR || \
+{ echo "Cannot move to directory \$TARGET_DIR"; exit 1; }
+
+# make symbolic links
+for i in \$DATA_FILES; do
+  ln -s \$MAIN_DIR/\$i \$TARGET_DIR/. || \
+    { echo "Cannot create symbolic link"; exit 1; }
+done
+
+# copy this file to the target directory
+cp $SYSDIR/$job $SYSDIR/\$INPUT \$TARGET_DIR/.
+
+# before it starts
+datebef=`date`
+timebef=`times`
+
+#------------------------------------------------------------
+# execute CORSIKA
+nice -n $NICE \$MAIN_DIR/\$PROG < \$INPUT 1> \$OUTPUT 2> \$ERROR
+# \$MAIN_DIR/\$PROG < \$INPUT 1> \$OUTPUT 2> \$ERROR 
+#------------------------------------------------------------
+
+# after it finishes
+dateaft=`date`
+timeaft=`times`
+dspace=`du -sk \$TARGET_DIR | cut -f 1`
+
+# now update information in the system
+odspace=`cat "$SYSDIR/disk-space"`
+otspace=`cat "$SYSDIR/tape-space"`
+ndspace=`expr "\$odspace" - "\$dspace"`
+ntspace=`expr "\$otspace" - "\$dspace"`
+echo \$ndspace > $SYSDIR/disk-space
+echo \$ntspace > $SYSDIR/tape-space
+
+# save the directory name in the table to be saved to tape
+echo \$TARGET_DIR \$dspace >> $SYSDIR/to-save
+
+# build report
+
+cat << EOM > $SYSDIR/last-mail
+Subject: $PROGRAM v $VERSION - END OF JOB
+============================================================
+$PROGRAM version $VERSION
+$COPYRIGHT
+============================================================
+
+  User:   $USER
+  Date:   \$dateaft
+
+  Msg:    The job has finished
+          Follows statistics of the job:
+
+  Running with nice: $NICE
+           CPU load: $cpumsg
+   Command line was: "\$MAIN_DIR/\$PROG < \$INPUT"
+   Target directory: \$TARGET_DIR
+    Used disk space: \$dspace
+   Start date(time): \$datebef ( \$timebef )
+     End date(time): \$dateaft ( \$timeaft )
+  Disk space avail.: \$ndspace
+  Tape space avail.: \$ntspace
+
+EOM
+
+echo '-- List of directories to save --------' >> $SYSDIR/last-mail 
+cat $SYSDIR/to-save >> $SYSDIR/last-mail 
+echo '-- EOF --------------------------------' >> $SYSDIR/last-mail 
+
+echo '' >> $SYSDIR/last-mail 
+
+echo '-- Input file used --------------------' >> $SYSDIR/last-mail 
+cat \$INPUT >> $SYSDIR/last-mail 
+echo '-- EOF --------------------------------' >> $SYSDIR/last-mail 
+
+echo '' >> $SYSDIR/last-mail 
+
+echo '-- Job file used ----------------------' >> $SYSDIR/last-mail 
+cat job.cmds >> $SYSDIR/last-mail
+echo '-- EOF --------------------------------' >> $SYSDIR/last-mail 
+
+# send the report 
+
+mail $USER < $SYSDIR/last-mail
+
+# bye
+
+exit 0
+ 
+_eoj_
+
+    close(JOBFILE);
+    chmod(0755, "$SYSDIR/job.cmds"); # make it executable
+
+###  make input file
+
+    open(INFILE, "> $SYSDIR/input") 
+    or croak "Cannot write input file $SYSDIR/input";
+    print INFILE <<"_eoj_";
+RUNNR   $Set                           number of run
+EVTNR   1                              number of first shower event
+NSHOW   $nshow                         number of showers to generate
+PRMPAR  $Primary                       particle type of prim. particle
+ESLOPE  $Spectral_Index                   slope of primary energy spectrum
+ERANGE  $Energy1    $Energy2             energy range of primary particle
+THETAP  $Theta[0]  $Theta[1]               range of zenith angle (degree)
+PHIP    $Phi[0]  $Phi[1]                   range of azimuth angle (degree)
+SEED    $seed1   $SITE   0                seed for 1. random number sequence
+SEED    $seed2   $SITE   0                seed for 2. random number sequence
+SEED    $seed3   $SITE   0                seed for 3. random number sequence
+OBSLEV  2200.E2                        observation level (in cm)
+ELMFLG  F   F                          em. interaction flags (NKG,EGS)
+RADNKG  200.E2                         outer radius for NKG lat.dens.determ.
+ARRANG  0.                             rotation of array to north
+FIXHEI  0.  0                          first interaction height & target
+FIXCHI  0.                             starting altitude (g/cm**2)
+MAGNET  20.0  42.8                     magnetic field centr. europe
+HADFLG  0  0  0  0  0  0               flags for hadr. interaction
+GHEISH  T                              use gheisha for low energy hadrons
+VENUS   T                              use venus for high energy hadrons
+VENSIG  T                              use VENUS hadronic cross sections
+ECUTS   0.3  0.3  0.02  0.02         e.cuts: had, mu, elec y fot
+MUADDI  F                              additional info for muons
+MUMULT  T                              muon multiple scattering angle
+LONGI   T  10.  T                      longit.distr. & step size & fit
+MAXPRT  0                              max. number of printed events
+ECTMAP  1.E4                           cut on gamma factor for printout
+STEPFC  10.0                           mult. scattering step length fact.
+DEBUG   F  6  F  1000000               debug flag and log.unit for out
+VENDBG  0                              venus debug option
+DIRECT  ./                   
+CWAVLG  290.  600.                     Cherenkov wavelength band
+CSCAT   1  0.  35000.                  scatter Cherenkov events
+CERSIZ  1.                             bunch size Cherenkov photons
+CERFIL  T                              Cherenkov output to extra file
+CERTEL  1
+        0. 0. 0. 0. 0. 1800. 1700.     Location and size of each CT
+EXIT                                   terminates input
+_eoj_
+    close(INFILE);
+}
+
+sub bye {
+    print "\nbye.\n\n";
+}
+
+
+
+###
+#  main procedure
+###
+
+# get command line options
+init;
+
+# get command line options
+get_options;
+
+# say hello
+hello;
+
+
+
+
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/main.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/main.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/main.f	(revision 4308)
@@ -0,0 +1,1600 @@
+
+      PROGRAM MAIN
+ 
+C-----------------------------------------------------------------------
+C  MAIN PROGRAM
+C
+C  SIMULATION OF EXTENSIVE AIR SHOWERS
+C  PREPARES INITIALIZATIONS
+C  GENERATES SHOWERS IN THE SHOWER LOOP
+C  TREATES PARTICLES IN THE PARTICLE LOOP
+C  PERFORMS PRINTING OF TABLES AT END OF SHOWER AND AT END OF RUN
+C-----------------------------------------------------------------------
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+      parameter (xct=1)
+      parameter (yct=2)
+      parameter (zct=3)
+      parameter (ctthet=4)
+      parameter (ctphi=5)
+      parameter (ctdiam=6)
+      parameter (ctfoc=7)
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,BAL.
+      COMMON /BAL/     EBAL
+      DOUBLE PRECISION EBAL(10)
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,CHISTA.
+      COMMON /CHISTA/  IHYCHI,IKACHI,IMUCHI,INNCHI,INUCHI,IPICHI
+      INTEGER          IHYCHI(124),IKACHI(124),IMUCHI(124),
+     *                 INNCHI(124),INUCHI(124),IPICHI(124)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,CURVE.
+      COMMON /CURVE/   CHAPAR,DEP,ERR,NSTP
+      DOUBLE PRECISION CHAPAR(1100),DEP(1100),ERR(1100)
+      INTEGER          NSTP
+*KEEP,ELADPM.
+      COMMON /ELADPM/  ELMEAN,ELMEAA,IELDPM,IELDPA
+      DOUBLE PRECISION ELMEAN(37),ELMEAA(37)
+      INTEGER          IELDPM(37,13),IELDPA(37,13)
+*KEEP,ELASTY.
+      COMMON /ELASTY/  ELAST,IELIS,IELHM,IELNU,IELPI
+      DOUBLE PRECISION ELAST
+      INTEGER          IELIS(20),IELHM(20),IELNU(20),IELPI(20)
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,IRET.
+      COMMON /IRET/    IRET1,IRET2
+      INTEGER          IRET1,IRET2
+*KEEP,ISTA.
+      COMMON /ISTA/    IFINET,IFINNU,IFINKA,IFINPI,IFINHY
+      INTEGER          IFINET,IFINNU,IFINKA,IFINPI,IFINHY
+*KEEP,LONGI.
+      COMMON /LONGI/   APLONG,HLONG,PLONG,SPLONG,THSTEP,THSTPI,
+     *                 NSTEP,LLONGI,FLGFIT
+      DOUBLE PRECISION APLONG(0:1040,9),HLONG(0:1024),PLONG(0:1040,9),
+     *                 SPLONG(0:1040,9),THSTEP,THSTPI
+      INTEGER          NSTEP
+      LOGICAL          LLONGI,FLGFIT
+*KEEP,MPARTI.
+      COMMON /MPARTI/  MPARTO
+      DOUBLE PRECISION MPARTO(10,25),MPHOTO(10),MPOSIT(10),MELECT(10),
+     *                 MNU(10),MMUP(10),MMUM(10),MPI0(10),MPIP(10),
+     *                 MPIM(10),MK0L(10),MKPL(10),MKMI(10),MNEUTR(10),
+     *                 MPROTO(10),MPROTB(10),MK0S(10),MHYP(10),
+     *                 MNEUTB(10),MDEUT(10),MTRIT(10),MALPHA(10),
+     *                 MOTHER(10)
+      EQUIVALENCE (MPARTO(1, 1),MPHOTO(1)), (MPARTO(1, 2),MPOSIT(1)),
+     *            (MPARTO(1, 3),MELECT(1)), (MPARTO(1, 4),MNU(1))   ,
+     *            (MPARTO(1, 5),MMUP(1))  , (MPARTO(1, 6),MMUM(1))  ,
+     *            (MPARTO(1, 7),MPI0(1))  , (MPARTO(1, 8),MPIP(1))  ,
+     *            (MPARTO(1, 9),MPIM(1))  , (MPARTO(1,10),MK0L(1))  ,
+     *            (MPARTO(1,11),MKPL(1))  , (MPARTO(1,12),MKMI(1))  ,
+     *            (MPARTO(1,13),MNEUTR(1)), (MPARTO(1,14),MPROTO(1)),
+     *            (MPARTO(1,15),MPROTB(1)), (MPARTO(1,16),MK0S(1))  ,
+     *            (MPARTO(1,18),MHYP(1))  , (MPARTO(1,19),MDEUT(1)) ,
+     *            (MPARTO(1,20),MTRIT(1)) , (MPARTO(1,21),MALPHA(1)),
+     *            (MPARTO(1,22),MOTHER(1)), (MPARTO(1,25),MNEUTB(1))
+*KEEP,MULT.
+      COMMON /MULT/    EKINL,MSMM,MULTMA,MULTOT
+      DOUBLE PRECISION EKINL
+      INTEGER          MSMM,MULTMA(37,13),MULTOT(37,13)
+*KEEP,MUPART.
+      COMMON /MUPART/  AMUPAR,BCUT,CMUON,FMUBRM,FMUORG
+      DOUBLE PRECISION AMUPAR(14),BCUT,CMUON(11)
+      LOGICAL          FMUBRM,FMUORG
+*KEEP,NCOUNT.
+      COMMON /NCOUNT/  NCOUN
+      INTEGER          NCOUN(8)
+*KEEP,NKGI.
+      COMMON /NKGI/    SEL,SELLG,STH,ZEL,ZELLG,ZSL,DIST,
+     *                 DISX,DISY,DISXY,DISYX,DLAX,DLAY,DLAXY,DLAYX,
+     *                 OBSATI,RADNKG,RMOL,TLEV,TLEVCM,IALT
+      DOUBLE PRECISION SEL(10),SELLG(10),STH(10),ZEL(10),ZELLG(10),
+     *                 ZSL(10),DIST(10),
+     *                 DISX(-10:10),DISY(-10:10),
+     *                 DISXY(-10:10,2),DISYX(-10:10,2),
+     *                 DLAX (-10:10,2),DLAY (-10:10,2),
+     *                 DLAXY(-10:10,2),DLAYX(-10:10,2),
+     *                 OBSATI(2),RADNKG,RMOL(2),TLEV(10),TLEVCM(10)
+      INTEGER          IALT(2)
+*KEEP,NKGS.
+      COMMON /NKGS/    CZX,CZY,CZXY,CZYX,SAH,SL,ZNE
+      DOUBLE PRECISION CZX(-10:10,2),CZY(-10:10,2),CZXY(-10:10,2),
+     *                 CZYX(-10:10,2),SAH(10),SL(10),ZNE(10)
+*KEEP,NPARTI.
+      COMMON /NPARTI/  NPARTO,MUOND
+      DOUBLE PRECISION NPARTO(10,25),NPHOTO(10),NPOSIT(10),NELECT(10),
+     *                 NNU(10),NMUP(10),NMUM(10),NPI0(10),NPIP(10),
+     *                 NPIM(10),NK0L(10),NKPL(10),NKMI(10),NNEUTR(10),
+     *                 NPROTO(10),NPROTB(10),NK0S(10),NHYP(10),
+     *                 NNEUTB(10),NDEUT(10),NTRIT(10),NALPHA(10),
+     *                 NOTHER(10),MUOND
+      EQUIVALENCE (NPARTO(1, 1),NPHOTO(1)), (NPARTO(1, 2),NPOSIT(1)),
+     *            (NPARTO(1, 3),NELECT(1)), (NPARTO(1, 4),NNU(1))   ,
+     *            (NPARTO(1, 5),NMUP(1))  , (NPARTO(1, 6),NMUM(1))  ,
+     *            (NPARTO(1, 7),NPI0(1))  , (NPARTO(1, 8),NPIP(1))  ,
+     *            (NPARTO(1, 9),NPIM(1))  , (NPARTO(1,10),NK0L(1))  ,
+     *            (NPARTO(1,11),NKPL(1))  , (NPARTO(1,12),NKMI(1))  ,
+     *            (NPARTO(1,13),NNEUTR(1)), (NPARTO(1,14),NPROTO(1)),
+     *            (NPARTO(1,15),NPROTB(1)), (NPARTO(1,16),NK0S(1))  ,
+     *            (NPARTO(1,18),NHYP(1))  , (NPARTO(1,19),NDEUT(1)) ,
+     *            (NPARTO(1,20),NTRIT(1)) , (NPARTO(1,21),NALPHA(1)),
+     *            (NPARTO(1,22),NOTHER(1)), (NPARTO(1,25),NNEUTB(1))
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,PBALA.
+      COMMON /PBALA/   PBAL
+      DOUBLE PRECISION PBAL(10)
+*KEEP,PRIMSP.
+      COMMON /PRIMSP/  PSLOPE,LLIMIT,ULIMIT,LL,UL,SLEX,ISPEC
+      DOUBLE PRECISION PSLOPE,LLIMIT,ULIMIT,LL,UL,SLEX
+      INTEGER          ISPEC
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RECORD.
+      COMMON /RECORD/  IRECOR
+      INTEGER          IRECOR
+*KEEP,REJECT.
+      COMMON /REJECT/  AVNREJ,
+     *                 ALTMIN,ANEXP,THICKA,THICKD,CUTLN,EONCUT,
+     *                 FNPRIM
+      DOUBLE PRECISION AVNREJ(10)
+      REAL             ALTMIN(10),ANEXP(10),THICKA(10),THICKD(10),
+     *                 CUTLN,EONCUT
+      LOGICAL          FNPRIM
+*KEEP,RESON.
+      COMMON /RESON/   RDRES,RESRAN,IRESPAR
+      REAL             RDRES(2),RESRAN(1000)
+      INTEGER          IRESPAR
+ 
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKF.
+      COMMON /STACKF/  STACK,STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+      INTEGER          MAXSTK
+      PARAMETER        (MAXSTK = 12*340*2)
+      DOUBLE PRECISION STACK(MAXSTK)
+      INTEGER          STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+*KEEP,STATI.
+      COMMON /STATI/   SABIN,SBBIN,INBIN,IPBIN,IKBIN,IHBIN
+      DOUBLE PRECISION SABIN(37),SBBIN(37)
+      INTEGER          INBIN(37),IPBIN(37),IKBIN(37),IHBIN(37)
+*KEEP,THNVAR.
+      COMMON /THNVAR/  STACKINT,INT_ICOUNT,THINNING
+      INTEGER          MAXICOUNT
+      PARAMETER        (MAXICOUNT=20000)
+      DOUBLE PRECISION STACKINT(MAXICOUNT,13)
+      INTEGER          INT_ICOUNT
+      LOGICAL          THINNING
+*KEEP,VERS.
+      COMMON /VERS/    VERNUM,MVDATE,VERDAT
+      DOUBLE PRECISION VERNUM
+      INTEGER          MVDATE
+      CHARACTER*18     VERDAT
+*KEEP,CEREN1.
+      COMMON /CEREN1/  CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD,
+     *                 CERSIZ,LCERFI
+      DOUBLE PRECISION CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD
+      REAL             CERSIZ
+      LOGICAL          LCERFI
+*KEEP,CEREN2.
+      COMMON /CEREN2/  PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS,CERYOS,
+     *                 NCERX,NCERY,ICERML
+      REAL             PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS(20),CERYOS(20)
+      INTEGER          NCERX,NCERY,ICERML
+*KEEP,CEREN3.
+      COMMON /CEREN3/  CERCNT,DATAB2,LHCER
+      INTEGER          MAXBF2
+      PARAMETER        (MAXBF2 = 39 * 7)
+      DOUBLE PRECISION CERCNT
+      REAL             DATAB2(MAXBF2)
+      INTEGER          LHCER
+*KEEP,CEREN4.
+      COMMON /CEREN4/  NRECER
+      INTEGER          NRECER
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+*keep,certel.
+      common /certel/  cormxd,cord,coralp,ctpars,omega,
+     +                 photn,photnp,phpt,pht,vphot,
+     +                 vchi,veta,vzeta,vchim,vetam,vzetam,
+     +                 lambda,mu,nu,nctels,ncph
+      double precision cormxd,cord,coralp,ctpars(20,7),omega(20,3,3),
+     +                 photn(3),photnp(3),phpt(3),pht,vphot(3),
+     +                 vchi(3),veta(3),vzeta(3),vchim,vetam,vzetam,
+     +                 lambda,mu,nu
+      integer          nctels,ncph(5)
+      double precision xg,yg,zg,xgp,ygp,zgp,up,vp,wp,xpcut,ypcut,zpcut
+      equivalence (photn(1) ,xg)   ,(photn(2) ,yg)   ,(photn(3) ,zg)  ,
+     +            (photnp(1),xgp)  ,(photnp(2),ygp)  ,(photnp(3),zgp),
+     +            (phpt(1)  ,xpcut),(phpt(2)  ,ypcut),(phpt(3)  ,zpcut),
+     +            (vphot(1) ,up)   ,(vphot(2) ,vp)   ,(vphot(3) ,wp)    
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C     Modificacion hecha por Aitor (5-feb-98)
+      common /aitor/   aitoth
+      double precision aitoth
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c     Angles for the "spinning" of a particle around the 
+c     main axis of the CT
+      common /spinang/ spinxi
+      double precision spinxi
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+
+*KEND.
+ 
+      INTEGER JNBIN(37),JPBIN(37),JKBIN(37),JHBIN(37)
+      DOUBLE PRECISION CHI2,FPARAM(6)
+      DOUBLE PRECISION MPART2(10,25),MPHOT2(10),MPOSI2(10),MELEC2(10),
+     *                 MNU2(10),MMUP2(10),MMUM2(10),MPI02(10),MPIP2(10),
+     *                 MPIM2(10),MK0L2(10),MKPL2(10),MKMI2(10),
+     *                 MNETR2(10),MPROT2(10),MPRTB2(10),MK0S2(10),
+     *                 MHYP2(10),MNETB2(10),MDEUT2(10),MTRIT2(10),
+     *                 MALPH2(10),MOTH2(10)
+      EQUIVALENCE (MPART2(1, 1),MPHOT2(1)), (MPART2(1, 2),MPOSI2(1)),
+     *            (MPART2(1, 3),MELEC2(1)), (MPART2(1, 4),MNU2(1))  ,
+     *            (MPART2(1, 5),MMUP2(1)) , (MPART2(1, 6),MMUM2(1)) ,
+     *            (MPART2(1, 7),MPI02(1)) , (MPART2(1, 8),MPIP2(1)) ,
+     *            (MPART2(1, 9),MPIM2(1)) , (MPART2(1,10),MK0L2(1)) ,
+     *            (MPART2(1,11),MKPL2(1)) , (MPART2(1,12),MKMI2(1)) ,
+     *            (MPART2(1,13),MNETR2(1)), (MPART2(1,14),MPROT2(1)),
+     *            (MPART2(1,15),MPRTB2(1)), (MPART2(1,16),MK0S2(1)) ,
+     *            (MPART2(1,18),MHYP2(1)) , (MPART2(1,19),MDEUT2(1)),
+     *            (MPART2(1,20),MTRIT2(1)), (MPART2(1,21),MALPH2(1)),
+     *            (MPART2(1,22),MOTH2 (1)), (MPART2(1,25),MNETB2(1))
+C  VARIABLES BEING USED FOR RUNTIME
+      REAL     TDIFF
+      INTEGER  ILEFTA,ILEFTB,TIME
+      EXTERNAL TIME
+
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+      double precision ctdiams(20)
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+      double precision theprim, phiprim
+      double precision spinthe, spinphi
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+
+C-----------------------------------------------------------------------
+ 
+ 
+      CERELE = 0.D0
+      CERHAD = 0.D0
+      NRECER = 0
+C  INITIALIZE AND READ RUN STEERING CARDS
+      CALL START
+ 
+      IF ( CERSIZ .LE. 0. ) THEN
+        ICRSIZ = 0
+      ELSE
+        ICRSIZ = 1
+      ENDIF
+ 
+C  RESET COUNTER FOR WORDS WRITTEN TO TAPE
+      IRECOR = 0
+ 
+C  RESET COUNTER FOR AVERAGE HIGHT OF 1ST INTERACTION
+      CHISUM = 0.D0
+      CHISM2 = 0.D0
+ 
+C  SET ARRAYS FOR SCALES OF KINETIC ENERGY-INTERACTION TABLE
+      SABIN(1) = 0.D0
+      SBBIN(1) = 0.1D0
+      DO 13  J = 2,37
+        SABIN(J) = 10.D0**((J-4.D0)/3.D0)
+        SBBIN(J) = 10.D0**((J-3.D0)/3.D0)
+  13  CONTINUE
+ 
+C  CHECK AND SET PRIMARY PARAMETERS
+      CALL INPRM
+
+      do 161 i=1,nctels
+        ctdiams(i) = ctpars(i,ctdiam)
+ 161  continue
+
+C  INITIALIZE NKG ROUTINES
+      CALL ININKG
+ 
+C  RESET COUNTERS FOR NUCLEON, PION AND KAON TABLE FOR ALL SHOWERS
+C  RESET ENERGY-MULTIPLICITY & ENERGY-ELASTICITY MATRIX FOR ALL SHOWERS
+      DO 17  J = 1,37
+        JNBIN(J)  = 0
+        JPBIN(J)  = 0
+        JKBIN(J)  = 0
+        JHBIN(J)  = 0
+        ELMEAA(J) = 0.D0
+        DO 17  L = 1,13
+          MULTOT(J,L) = 0
+          IELDPA(J,L) = 0
+  17  CONTINUE
+ 
+C  RESET OTHER ARRAYS FOR ALL SHOWERS
+      DO 99  J = 1,20
+        IELNU(J) = 0
+        IELPI(J) = 0
+        IELIS(J) = 0
+        IELHM(J) = 0
+  99  CONTINUE
+ 
+C  RESET ARRAYS FOR INTERACTION LENGTH STATISTICS
+      DO 90  J = 1,124
+        IHYCHI(J) = 0
+        IKACHI(J) = 0
+        IMUCHI(J) = 0
+        INUCHI(J) = 0
+        IPICHI(J) = 0
+        INNCHI(J) = 0
+  90  CONTINUE
+ 
+C  RESET ARRAY FOR MEAN VALUES AND STANDARD DEVIATION
+      DO 477  K = 1,25
+      DO 477  J = 1,10
+        MPARTO(J,K) = 0.D0
+        MPART2(J,K) = 0.D0
+ 477  CONTINUE
+ 
+C  RESET ARRAYS FOR LONGITUDINAL DISTRIBUTION
+      IF ( LLONGI ) THEN
+        DO 478  K = 1,9
+          DO 4781  J = 0,NSTEP
+            APLONG(J,K) = 0.D0
+            SPLONG(J,K) = 0.D0
+ 4781     CONTINUE
+ 478    CONTINUE
+      ENDIF
+ 
+C  STEERING OF PRINTOUT OF RANDOM GENERATOR SEEDS
+      IPROUT = MIN(100,NSHOW/20)
+      IPROUT = MAX(1,IPROUT)
+ 
+C  TIME AT BEGINNING
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c      ILEFTA = TIME()
+      ILEFTA = 0
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+      print *,'JCIO::========================================'
+      print *,'JCIO:: Initializing JCIO system for advanced'
+      print *,'JCIO:: saving of data.'
+      print *,'JCIO::========================================'
+c- initialize jcio system
+      call jcinitio(dsn,nrrun)
+c- create file run######
+      call jcstartrun(runh)
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+C-----------------------------------------------------------------------
+C  LOOP OVER SHOWERS
+      DO 2  ISHW = 1,NSHOW
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c   Next block of code has been modified, and comes from INPRM 
+c----------------------------------------------------------------------
+C  SCATTERING OF CENTER OF CHERENKOV ARRAY RELATIVE TO SHOWER AXIS
+c>> Actually, XSCATT and YSCATT should be RminSCATT and RmaxSCATT
+        ICERML = MIN(MAX(ICERML,1),20)
+        XSCATT = ABS(XSCATT)
+        YSCATT = ABS(YSCATT)
+        WRITE(MONIOU,5225)ICERML,XSCATT,YSCATT
+ 5225   FORMAT(' ** USING EACH SHOWER SEVERAL TIMES:'/ 
+     +     ' USE EACH EVENT ',I2,' TIMES'/
+     +     ' THE EVENTS ARE SCATTERED RANDOMLY IN A SECTOR OF RADII:'/
+     +     '   Rmin = ',F10.0,'   Rmax = ',F10.0)
+        DO 4438 I=1,ICERML
+ 5226     CALL RMMAR( RD,2,3 )
+          CERXOS(I) = 2.0*YSCATT*(RD(1)-0.5)
+          CERYOS(I) = 2.0*YSCATT*(RD(2)-0.5)
+          R=SQRT(CERXOS(I)**2+CERYOS(I)**2)
+          IF ((R.LT.XSCATT).OR.(R.GT.YSCATT)) GOTO 5226
+          WRITE(MONIOU,4437) I,CERXOS(I),CERYOS(I)
+ 4437     FORMAT('    CORE OF EVENT ',I2,'  AT  ',2F12.2)
+ 4438   CONTINUE
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c   Next block of code comes from INPRM 
+c----------------------------------------------------------------------
+        EVTH(98) = FLOAT(ICERML)
+        DO  480 I=1,20
+          EVTH( 98+I) = CERXOS(I)
+          EVTH(118+I) = CERYOS(I)
+ 480    CONTINUE
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+        SHOWNO = SHOWNO + 1
+        I      = ISHW
+        IF ( ISHW .LE. MAXPRT ) THEN
+          FPRINT = .TRUE.
+        ELSE
+          FPRINT = .FALSE.
+        ENDIF
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c   Create cer######,dat######,sta###### files
+c------------------------------------------------------------
+        call jcnewshower
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+C  RESET COUNTERS
+        DO 447  K = 1,25
+        DO 447  J = 1,10
+          NPARTO(J,K) = 0.D0
+ 447    CONTINUE
+        MUOND = 0.D0
+ 
+C  RESET ARRAY FOR LONGITUDINAL DISTRIBUTION PER SHOWER
+        IF ( LLONGI ) THEN
+          DO 479  K = 1,9
+            DO 4791  J = 0,NSTEP
+              PLONG(J,K) = 0.D0
+ 4791       CONTINUE
+ 479      CONTINUE
+        ENDIF
+ 
+        NRECS = 0
+        NBLKS = 0
+        DO 922  KKK = 1,10
+          AVNREJ(KKK) = 0.D0
+ 922    CONTINUE
+        IRESPAR = 0
+ 
+ 
+C  FIRST INTERACTION DATA
+        FIRSTI = .TRUE.
+        IFINET = 0
+        IFINNU = 0
+        IFINKA = 0
+        IFINPI = 0
+        IFINHY = 0
+        ELAST  = 0.D0
+ 
+C  RESET COUNTERS FOR NUCLEON, PION AND KAON TABLE FOR SHOWER
+C  RESET ENERGY-MULTIPLICITY & ENERGY-ELASTICITY MATRIX FOR SHOWER
+        DO 11  J = 1,37
+          INBIN(J) = 0
+          IPBIN(J) = 0
+          IKBIN(J) = 0
+          IHBIN(J) = 0
+          ELMEAN(J) = 0.D0
+          DO 11  L = 1,13
+            MULTMA(J,L) = 0
+            IELDPM(J,L) = 0
+  11    CONTINUE
+ 
+        DO 12  J = 1,10
+          PBAL(J) = 0.D0
+          EBAL(J) = 0.D0
+  12    CONTINUE
+ 
+C  INITIALIZE PARTICLE STACK
+        CALL ISTACK
+C  RESET STACKINT
+        DO J=1,MAXICOUNT
+          DO K=1,MAXLEN
+            STACKINT(J,K) = 0.D0
+          ENDDO
+        ENDDO
+ 
+C  INITIALIZE EVENT HEADER AND END FOR EACH EVENT
+        DO 2123  L = 2,43
+          EVTH(L) = 0.
+ 2123   CONTINUE
+        DO 123  L = 2,MAXBUF
+          EVTE(L) = 0.
+ 123    CONTINUE
+ 
+C  SHOWER BEGIN PRINTOUT
+        IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,105) SHOWNO
+ 105    FORMAT ('1',10('='),' SHOWER NO ',I10,' ',47('=')/)
+ 
+C  RANDOM GENERATOR STATUS AT BEGINNING OF SHOWER CALCULATION
+        EVTH(13) = NSEQ
+        DO 45  L = 1,NSEQ
+          CALL RMMAQ( ISEED(1,L), L, 'R' )
+C  SEED
+          EVTH(11+L*3) = ISEED(1,L)
+C  NUMBER OF CALLS
+          EVTH(12+L*3) = MOD ( ISEED(2,L), 1000000 )
+C  NUMBER OF MILLIONS
+          EVTH(13+L*3) = ISEED(3,L)*1000 + INT( ISEED(2,L)/1000000 )
+  45    CONTINUE
+        IF ( FPRINT  .OR.  DEBUG  .OR.  MOD(ISHW-1,IPROUT).EQ.0 ) THEN
+          CALL PRTIME(TTIME)
+          WRITE(MONIOU,158) SHOWNO,(L,(ISEED(J,L),J=1,3),L=1,NSEQ)
+ 158      FORMAT(' AND RANDOM NUMBER GENERATOR AT BEGIN OF EVENT :',I8,
+     *            /,(' SEQUENCE = ',I2,'  SEED = ',I9 ,'  CALLS = ',I9,
+     *               '  BILLIONS = ',I9))
+        ENDIF
+C  RESET KNOR
+        KNOR = .TRUE.
+ 
+C  GET FULL RANDOM GENERATOR STATUS (103 WORDS PER SEQUENCE)
+CC      DO 495  L = 1,NSEQ
+CC        CALL RMMAQ( ISEED(1,L), L, 'RV' )
+CC        WRITE(MONIOU,658) L,(ISEED(J,L),J=1,103)
+CC658     FORMAT ( ' FULL RANDOM NUMBER GENERATOR STATUS ',
+CC   *             'FOR SEQUENCE ',I2,/(' ',10I11))
+CC495   CONTINUE
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>> *** ATENTION *** ATENTION *** ATENTION *** ATENTION *** ATENTION >>
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>>                                                                  >>
+c>> In the next block (between this ATENTION comments) CORSIKA makes >>
+c>> three things, in this order:                                     >>
+c>>                                                                  >>
+c>>   i. Set ANGLES OF INCIDENCE (different distributions of theta   >>
+c>>      for gammas -flat- and hadrons -standard.                    >>
+c>>  ii. Set HEIGHT for start at THICK0 (normally = 0 => 112.8 Km)   >>
+c>> iii. Set ENERGY of the primary.                                  >>
+c>>                                                                  >>
+c>> (The original order was ii., iii. and i.)                        >>
+c>>                                                                  >>
+c>> JCG Wed Sep 21 10:49:14 MET DST 1998 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C  GET PRIMARY ANGLES OF INCIDENCE
+        IF ( FIXINC ) THEN
+
+          THETAP = THETPR(1)
+          PHIP   = PHIPR(1)
+          PRMPAR(3) = COS(THETAP)
+
+        ELSE
+
+          if ( prmpar(1).eq.1 ) then
+
+C>> GAMMAS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C NOTE!! We will use a FLAT distribution for THETA: 
+C Then, next block (original block) must be commented.
+c The modificated code follows this block
+c
+            CALL RMMAR( RD,3,1 )
+            CT1 = THETPR(1)
+            CT2 = THETPR(2)
+            THETAP = RD(2)*(CT2 - CT1) + CT1
+            CTT  = COS(THETAP)
+            PRMPAR(3) = CTT
+
+          else
+
+C>> HADRONS AND ELECTRONS (AND ANY OTHER BUT GAMMAS) >>>>>>>>>>>>>>>>
+c  Choose angles at random with equal flux for all directions
+c  with horizontal detector array (see: O.C. Allkofer & P.K.F. Grieder,
+c  Cosmic Rays on Earth, in: Physics Data 25/1, H.Behrens & G.Ebel Ed.,
+c  (Fachinformationszentrum Karlsruhe, Germany, 1983) chpt. 1.1.2)
+c
+            CALL RMMAR( RD,3,1 )
+            CT1 = SIN(THETPR(1))**2
+            CT2 = SIN(THETPR(2))**2
+            CTT  = SQRT( 1.D0 - RD(2)*(CT2 - CT1) - CT1 )
+            PRMPAR(3) = CTT
+            THETAP = ACOS(CTT)
+
+          endif
+
+          PHIP = RD(1) * ( PHIPR(2) - PHIPR(1) ) + PHIPR(1)
+
+        ENDIF
+        PRMPAR(4) = PHIP
+
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C  DEFINE HEIGHT FOR START AT THICK0 (IN G/CM**2) (112.8 KM FOR THICK0=0)
+        PRMPAR(5) = HEIGH(THICK0)
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C  GET PRIMARY ENERGY INTO PRMPAR(2)
+        IF ( ISPEC .EQ. 0 ) THEN
+          PRMPAR(2) = LLIMIT
+        ELSE
+          CALL RMMAR( RD,1,1 )
+          IF ( PSLOPE .NE. -1.D0 ) THEN
+            PRMPAR(2) = ( RD(1)*UL + ( 1.D0-RD(1) )*LL )**SLEX
+          ELSE
+            PRMPAR(2) = LLIMIT * LL**RD(1)
+          ENDIF
+        ENDIF
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>> *** ATENTION *** ATENTION *** ATENTION *** ATENTION *** ATENTION >>
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>> Modification: this is no longer needed >>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>> (Superseeded by Sphere algorithm, see cerenkov.f) >>>>>>>>>>>>>>>>>
+c>> JCG Wed Sep 21 10:49:14 MET DST 1998 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+cc Btw, we now modify the "shadow area" of the telescopes,
+cc to cover the angle theta. 
+c        do 160 i=1,nctels
+c          ctpars(i,ctdiam) = ctdiams(i)/cos(thetap)
+c          write (MONIOU,*) 
+c     *        'New region for CT',i,' = ',ctpars(i,ctdiam)
+c 160    continue
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+          
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c Here we calculate the angles spinphi and spinthe, which are the 
+c phi and theta angles of the particle, with respect to the direction
+c where the CT is pointing to. spinthe is the angular displacement
+c of the new direction respect to the original (CT); spinphi=0 means
+c that the new direction is towards the zenith, spinphi=+-180 means 
+c towards the horizont.
+c See the document "simulation.tex" 
+
+c First, save the "CT" orientation 
+c (moved from a couple of lines below, marked with [*])
+        EVTH(11) = THETAP
+        EVTH(12) = PHIP
+        
+        CALL RMMAR( RD,3,1 )
+
+c Then, calculate the new direction relative to the CT direction
+        spinphi = RD(1)*PI
+        spinthe = RD(2)*spinxi*pi/180
+
+c And then, RE-calculate the GLOBAL direction in CORSIKA
+c We use formulae for spherical triangles
+        theprim = acos( cos(THETAP)*cos(spinthe)+
+     $                  sin(THETAP)*sin(spinthe)*cos(spinphi) )
+        phiprim = asin( sin(spinthe)*sin(spinphi)/sin(theprim) )
+        THETAP = theprim
+        EVTH(140) = spinthe
+        if (RD(3).gt.0.5) then
+          PHIP = PHIP - phiprim 
+          EVTH(141) = -spinphi
+        else
+          PHIP = PHIP + phiprim 
+          EVTH(141) = spinphi
+        endif
+        PRMPAR(3) = COS(THETAP)
+        PRMPAR(4) = PHIP
+
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>> Modification (HZA trick) cancelled >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>> JCG Wed Sep 21 10:49:14 MET DST 1998 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C     Modificacion hecha por Aitor
+c         aitoth = THETAP
+C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+C  CALCULATE COORDINATE CORRECTION FOR TOP OF ATMOSPHERE
+        CALL COORIN( PRMPAR(5) )
+ 
+C  COUNTER FOR PARTICLE OUTPUT
+        LH = 0
+C  COUNTER FOR CERENKOV OUTPUT
+        IF ( LCERFI ) LHCER = 0
+C  CALCULATE BUNCH SIZE FOR CERENKOV PHOTONS IF NOT SET IN DATAC
+        IF ( ICRSIZ .EQ. 0 ) THEN
+          CALL GETBUS( NINT(PRMPAR(1)),SNGL(PRMPAR(2)),SNGL(PRMPAR(3)),
+     *                  CERSIZ )
+          WRITE(MONIOU,*)'CERENKOV BUNCH SIZE IS CALCULATED TO=',CERSIZ
+        ENDIF
+C  GET GAMMA FACTOR FROM ENERGY
+C  FOR GAMMAS PRMPAR(2) STAYS = ENERGY
+        IF ( PRMPAR(1) .NE. 1.D0 )
+     *              PRMPAR(2) = PRMPAR(2) / PAMA(NINT(PRMPAR(1)))
+ 
+C  SET PRIMARY TO CURRENT PARTICLE
+        DO 3  J = 1,8
+          CURPAR(J) = PRMPAR(J)
+          NCOUN(J)  = 0
+  3     CONTINUE
+C  SET WEIGHT
+ 
+C  CALCULATE FIRST INTERACTION POINT IF HADRONIC
+        GEN = 0.D0
+ 
+        H = HEIGH(THICK0)
+        CALL BOX2
+        IF ( FIX1I ) THEN
+          CHI = THICK(FIXHEI) / PRMPAR(3)
+          H = FIXHEI
+          FDECAY = .FALSE.
+        ELSE
+          H = HEIGH ( CHI*PRMPAR(3) + THICK0 )
+        ENDIF
+        CHISUM = CHISUM + CHI
+        CHISM2 = CHISM2 + CHI**2
+        ALEVEL = H
+C  INITIALIZE COORDINATE CORRECTIONS FOR HADRONIC PRIMARIES
+C  FOR EM PRIMARIES IT IS DONE IN EGS
+        HH = MAX( H, 0.D0 )
+        IF ( CURPAR(1) .GT. 3.D0 ) CALL COORIN( HH )
+ 
+        IF ( FMUADD ) THEN
+          IF ( CURPAR(1) .EQ. 5  .OR.  CURPAR(1) .EQ. 6) THEN
+            DO J = 1,MAXLEN
+              AMUPAR(J) = CURPAR(J)
+            ENDDO
+            AMUPAR(5) = PRMPAR(5)
+            IF(DEBUG)WRITE(MDEBUG,*)'MAIN  : MUON STORED IN AMUPAR'
+            FMUORG = .TRUE.
+          ENDIF
+        ENDIF
+ 
+C  SET TARGET FLAG IF SELECTED FOR FIRST INTERACTION
+        IF ( N1STTR .GT. 0 ) THEN
+          FIXTAR  = .TRUE.
+          FDECAY  = .FALSE.
+          EVTH(6) = REAL(N1STTR)
+        ELSE
+          FIXTAR  = .FALSE.
+          EVTH(6) = 0.0
+        ENDIF
+ 
+C  INITIALIZE ARRAYS FOR NKG FOR EACH SHOWER
+        IF ( FNKG ) CALL STANKG
+ 
+C  STORE FIRST PARTICLE IN HEADER AND PRINT IT OUT
+        EVTH( 2) = REAL(SHOWNO)
+        EVTH( 3) = CURPAR(1)
+        IF ( CURPAR(1) .EQ. 1.D0 ) THEN
+C  PRIMARY ENERGY FOR PHOTONS
+          E00    = GAMMA
+          E00PN  = GAMMA
+          INUCL  = 1
+        ELSE
+          E00    = GAMMA * PAMA(NINT(CURPAR(1)))
+          INUCL  = INT(MAX(1.D0,CURPAR(1)/100.D0))
+          E00PN  = E00 / INUCL
+        ENDIF
+        EVTH(147) = 0.
+ 
+        IF ( FEGS ) THEN
+C  PARAMETER FOR ELECTRON AND PHOTON REJECT (CONVERT ENERGY TO MEV)
+          EONCUT = .5E-9*SQRT(E00*1000.D0)
+          CUTLN  = LOG(EONCUT)
+        ENDIF
+        EVTH( 4) = E00
+        EVTH( 5) = THICK0
+        EVTH( 7) = H
+        PTOT0    = SQRT( E00**2 - PAMA(NINT(CURPAR(1)))**2 )
+        PTOT0N   = PTOT0 / INUCL
+        ST       = SQRT(1.D0-COSTHE**2)
+        EVTH( 8) = PTOT0 * ST * COS(PHI)
+        EVTH( 9) = PTOT0 * ST * SIN(PHI)
+        EVTH(10) = PTOT0 * COSTHE
+c
+c [*] one block from here sent above
+c
+        EVTH(85) = CERSIZ
+ 
+        IF ( CURPAR(1) .GT. 3.D0 ) THEN
+          IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,102) (CURPAR(J),J = 1,8)
+ 102      FORMAT (/' PRIMARY PARAMETERS AT FIRST INTERACTION POINT'/
+     *               16X,1P,8E10.3)
+        ELSE
+          IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,132)
+ 132      FORMAT (/' PRIMARY PARTICLE IS ELECTROMAGNETIC')
+        ENDIF
+ 
+C  WRITE EVENT HEADER INTO BUFFER
+C  FOR EM PARTICLES EVTH IS WRITTEN TO BUFFER IN EGS (IF ACTIVE)
+        IF ( EVTH(3) .GT. 3.0  .OR.  .NOT. FEGS ) THEN
+          CALL TOBUF ( EVTH,0 )
+          IF ( LCERFI ) CALL TOBUFC( EVTH,0 )
+        ENDIF
+ 
+C  PRINT HEADER FOR HIGH ENERGY PARTICLES
+        IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,103)
+ 103    FORMAT(/'                   TYPE      GAMMA   COSTHETA ',
+     *          '    PHI     HEIGHT     TIME      X-CM      Y-CM   ',
+     *          '    GEN      LEVEL  E ON STACK'/)
+        NOPART = 0
+ 
+ 
+        IF ( CURPAR(1) .LE. 3.D0  .OR.
+     *      (CURPAR(1) .GE. 5.D0  .AND.  CURPAR(1) .LE. 7.D0) ) THEN
+C  GIVE PARTICLE TO EGS OR NKG IF ELECTROMAGNETIC
+C  AND TAKE THEN NEXT PARTICLE FROM STACK
+C  FLAG FOR NO PRIMARY INTERACTION IS SET FOR ALL BUT ELM. PRIMARIES
+          IF ( CURPAR(1) .LE. 3.D0 ) THEN
+            FNPRIM = .FALSE.
+          ELSE
+            FNPRIM = .TRUE.
+            H = PRMPAR(5)
+          ENDIF
+          CALL BOX3
+          IF ( FEGS ) THEN
+            CHISUM = CHISUM + THICK(DBLE(EVTH(7)))
+            CHISM2 = CHISM2 + THICK(DBLE(EVTH(7)))**2
+          ENDIF
+          FIRSTI = .FALSE.
+          GOTO 4
+ 
+        ELSE
+C  HADRONIC PARTICLES
+          FNPRIM = .TRUE.
+ 
+C  FILL LONGITUDINAL DISTRIBUTION FOR THE PRIMARY PARTICLE
+C  THE PARTICLE IS TRACKED FROM THICK0 DOWN TO THICK0+CHI*PRMPAR(3)
+C  COUNT THE PARTICLES FOR THE LONGITUDINAL DEVELOPMENT
+          IF ( LLONGI ) THEN
+            LPCT1 = INT( THICK0 * THSTPI )
+            LPCT2 = INT( (THICK0 + PRMPAR(3)*CHI) * THSTPI )
+            LPCT2 = MIN(NSTEP,LPCT2)
+C  GAMMAS, ELECTRONS AND POSITRONS ARE NOT TRANSPORTED HERE, SEE EGS
+C  MUONS ARE TRANSPORTED IN MUTRAC
+C  HADRONS
+            IF     ( ITYPE .GE. 7 .AND. ITYPE .LE. 41 ) THEN
+              DO 5004 L = LPCT1,LPCT2
+                PLONG(L,6) = PLONG(L,6) + 1.
+ 5004         CONTINUE
+C  CHARGED HADRONS
+              IF ( SIGNUM(ITYPE) .NE. 0.D0 ) THEN
+                DO 5005 L = LPCT1,LPCT2
+                  PLONG(L,7) = PLONG(L,7) + 1.
+ 5005           CONTINUE
+              ENDIF
+C  NUCLEI
+            ELSEIF ( ITYPE .GT. 100 ) THEN
+              DO 5006 L = LPCT1,LPCT2
+                PLONG(L,8) = PLONG(L,8) + 1.
+ 5006         CONTINUE
+            ENDIF
+          ENDIF
+ 
+C  CHECK OBSERVATION LEVEL PASSAGE AND UPDATE PARTICLE COORDINATES
+          HNEW = H
+C  FOR UPDATE WE NEED THE START ALTITUDE H
+          H = HEIGH(THICK0)
+          DO  251  J = 1,NOBSLV
+C  JUMP INTO NORMAL PARTICLE TREATMENT FOR HADRONS
+            IF ( HNEW .GT. OBSLEV(J) ) THEN
+              H = HNEW
+              GOTO 6
+            ENDIF
+            IF ( H .LT. OBSLEV(J) ) GOTO 251
+C  REMEMBER NUMBER OF LEVEL FOR OUTPUT
+            LEVL   = J
+            CALL UPDATE( OBSLEV(J),THCKOB(J),J )
+            IF (DEBUG) WRITE(MDEBUG,256) J,IRET1,IRET2
+ 256        FORMAT(' MAIN  : LEVEL ',I5,' IRET1,2=',2I5)
+C  IF PARTICLE IS NOT CUTTED, BRING IT TO OUTPUT
+            IF ( IRET2 .EQ. 0 ) THEN
+              CALL OUTPUT
+            ENDIF
+ 251      CONTINUE
+          IF (DEBUG) WRITE(MDEBUG,*)
+     *       'MAIN  : PRIMARY REACHED LOWEST OBSERVATION LEVEL'
+          GOTO 4
+        ENDIF
+ 
+C-----------------------------------------------------------------------
+C  NORMAL CYCLE
+  7     CONTINUE
+ 
+C  IF ENERGY TOO SMALL TAKE NEXT PARTICLE
+        IF ( GAMMA .LE. 1.D0 ) THEN
+          IF ( CURPAR(1) .NE. 1.D0 ) THEN
+            IF ( CURPAR(1).EQ.5.D0 .OR. CURPAR(1).EQ.6.D0 )
+     *                                        FMUORG = .FALSE.
+            GOTO 4
+          ENDIF
+C  SPECIAL TREATMENT FOR PHOTONS
+          ITYPE = 1
+          CHI   = 0.D0
+          GOTO 5
+        ENDIF
+ 
+C  DETERMINE PLACE OF NEXT INTERACTION
+        CALL BOX2
+ 
+C  CHECK PASSAGE THROUGH OBSERVATION LEVELS AND TRACK PARTICLES TO THE
+C  PLACE OF INTERACTION
+  5     CONTINUE
+        IRET1 = 0
+        CALL BOX3
+        IF ( IRET1 .NE. 0 ) GOTO 4
+ 
+  6     CONTINUE
+        IRET1 = 0
+        MSMM  = 0
+ 
+C  INCREMENT PARTICLE GENERATION AND PROCESS NUCLEAR INTERACTION
+        GEN   = GEN + 1.D0
+C  INITIALIZE INTERMEDIATE STACK FOR ONE REACTION
+        CALL TSTINI
+        CALL NUCINT
+C  TRANSFER INTERMEDIATE STACK FOR ONE REACTION
+        CALL TSTEND
+ 
+C  ENERGY - MULTIPLICITY STATISTICS
+        IF ( EKINL .LE. 0.1D0 ) THEN
+          MEN = 1
+        ELSE
+          MEN = 4.D0 + 3.D0 * LOG10(EKINL)
+          MEN = MIN( MEN, 37 )
+        ENDIF
+        IF ( MSMM .LE. 1 ) THEN
+          MMU = 1
+        ELSE
+          MMU = 1.D0 + 3.D0 * LOG10(DBLE(MSMM))
+          MMU = MIN( MMU, 13 )
+        ENDIF
+        MULTMA(MEN,MMU) = MULTMA(MEN,MMU) + 1
+        MULTOT(MEN,MMU) = MULTOT(MEN,MMU) + 1
+        IF ( DEBUG ) WRITE(MDEBUG,*) 'MAIN  : EKINL,MSMM=',
+     *                                  SNGL(EKINL),MSMM
+ 
+        IF ( IRET1 .EQ. 0 ) THEN
+          IF ( DEBUG ) WRITE(MDEBUG,666) (CURPAR(II),II=1,11)
+ 666      FORMAT(' MAIN  : CURPAR=',1P,11E10.3)
+          GOTO 7
+        ENDIF
+ 
+C  GET NEXT PARTICLE FROM STACK, IF IRET=1 ALL PARTICLES ARE DONE
+  4     CONTINUE
+        IRET1 = 0
+        CALL FSTACK
+        IF ( FMUADD ) THEN
+          IF ( (CURPAR(1) .EQ. 5  .OR.  CURPAR(1) .EQ. 6)
+     *         .AND.  IRET1 .EQ. 0  .AND.  .NOT. FMUORG ) THEN
+            DO J = 1,MAXLEN
+              AMUPAR(J) = CURPAR(J)
+            ENDDO
+            IF(DEBUG)WRITE(MDEBUG,*)'MAIN  : MUON STORED IN AMUPAR'
+            FMUORG = .TRUE.
+          ENDIF
+        ENDIF
+ 
+        IF ( IRET1 .EQ. 0 ) GOTO 7
+ 
+C-----------------------------------------------------------------------
+C  FINISH SHOWER AND PRINT INFORMATION
+        CALL OUTEND
+ 
+ 
+*       IF ( DEBUG ) WRITE(MDEBUG,442) NPARTO
+*442    FORMAT(' MAIN  : NPARTO='/(' ',10F10.0))
+ 
+        IF ( FPRINT .OR. DEBUG ) THEN
+          IOBSLV = MIN( 5, NOBSLV )
+          WRITE(MONIOU,54) (K,K=1,IOBSLV)
+  54      FORMAT (/' PARTICLES AT DETECTOR LEVEL :'/
+     *             ' FOR LEVEL         ', 5I13)
+          WRITE(MONIOU,55) (OBSLEV(K),K=1,IOBSLV)
+  55      FORMAT ( ' HEIGHT IN CM        ',1P, 5E13.3/)
+          WRITE(MONIOU,776) 'PROTONS      ',(NPROTO(K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'ANTIPROTONS  ',(NPROTB(K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'NEUTRONS     ',(NNEUTR(K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'ANTINEUTRONS ',(NNEUTB(K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'PHOTONS      ',(NPHOTO(K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'ELECTRONS    ',(NELECT(K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'POSITRONS    ',(NPOSIT(K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'NEUTRINOS    ',(NNU   (K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'MU -         ',(NMUM  (K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'MU +         ',(NMUP  (K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'PI 0         ',(NPI0  (K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'PI -         ',(NPIM  (K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'PI +         ',(NPIP  (K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'K0L          ',(NK0L  (K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'K0S          ',(NK0S  (K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'K -          ',(NKMI  (K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'K +          ',(NKPL  (K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'STR. BARYONS ',(NHYP  (K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'DEUTERONS    ',(NDEUT (K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'TRITONS      ',(NTRIT (K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'ALPHAS       ',(NALPHA(K),K=1,IOBSLV)
+          WRITE(MONIOU,776) 'OTHER PARTIC.',(NOTHER(K),K=1,IOBSLV)
+          WRITE(MONIOU,*)
+          WRITE(MONIOU,776) 'DECAYED MUONS',MUOND
+ 776      FORMAT(' NO OF ',A13, '= ',5F13.0)
+ 
+          IF ( NOBSLV .GT. 5 ) THEN
+            IOBSLV =  NOBSLV
+            WRITE(MONIOU,54) (K,K=6,IOBSLV)
+            WRITE(MONIOU,55) (OBSLEV(K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'PROTONS      ',(NPROTO(K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'ANTIPROTONS  ',(NPROTB(K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'NEUTRONS     ',(NNEUTR(K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'ANTINEUTRONS ',(NNEUTB(K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'PHOTONS      ',(NPHOTO(K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'ELECTRONS    ',(NELECT(K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'POSITRONS    ',(NPOSIT(K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'NEUTRINOS    ',(NNU   (K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'MU -         ',(NMUM  (K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'MU +         ',(NMUP  (K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'PI 0         ',(NPI0  (K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'PI -         ',(NPIM  (K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'PI +         ',(NPIP  (K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'K0L          ',(NK0L  (K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'K0S          ',(NK0S  (K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'K -          ',(NKMI  (K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'K +          ',(NKPL  (K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'STR. BARYONS ',(NHYP  (K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'DEUTERONS    ',(NDEUT (K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'TRITONS      ',(NTRIT (K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'ALPHAS       ',(NALPHA(K),K=6,IOBSLV)
+            WRITE(MONIOU,776) 'OTHER PARTIC.',(NOTHER(K),K=6,IOBSLV)
+            WRITE(MONIOU,*)
+          ENDIF
+        ENDIF
+ 
+C  ADD UP FOR MEAN VALUES
+        DO 779  K = 1,25
+        DO 779  J = 1,10
+          MPARTO(J,K) = MPARTO(J,K) + NPARTO(J,K)
+          MPART2(J,K) = MPART2(J,K) + NPARTO(J,K)**2
+ 779    CONTINUE
+        EVTE(2) = SHOWNO
+        DO 335  K = 1,NOBSLV
+          EVTE(3) = EVTE(3) + NPHOTO(K)
+          EVTE(4) = EVTE(4) + NELECT(K) + NPOSIT(K)
+          EVTE(5) = EVTE(5) + NPROTO(K) + NPROTB(K) + NNEUTR(K) +
+     *              NNEUTB(K) + NPI0(K) + NPIM(K) + NPIP(K) + NK0L(K) +
+     *              NK0S(K) + NKMI(K) + NKPL(K) + NHYP(K) +
+     *              NDEUT(K) + NTRIT(K) + NALPHA(K) + NOTHER(K)
+          EVTE(6) = EVTE(6) + NMUP(K) + NMUM(K)
+ 335    CONTINUE
+        EVTE(7)   = NOPART
+ 
+        IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,110)
+     *                  IFINNU,IFINPI,IFINET,IFINKA,IFINHY,
+     *                  IFINNU+IFINPI+IFINET+IFINKA+IFINHY,ELAST
+ 110    FORMAT(/' NO OF NUCLEONS  PRODUCED IN FIRST INTERACTION =',I10/
+     *          ' NO OF PIONS     PRODUCED IN FIRST INTERACTION =',I10/
+     *          ' NO OF ETAS      PRODUCED IN FIRST INTERACTION =',I10/
+     *          ' NO OF KAONS     PRODUCED IN FIRST INTERACTION =',I10/
+     *          ' NO OF S.BARYONS PRODUCED IN FIRST INTERACTION =',I10/
+     *          ' TOTAL MULTIPLICITY       OF FIRST INTERACTION =',I10/
+     *        ' ELASTICITY               OF FIRST INTERACTION =',F10.4)
+ 
+C  PRINT OUT NKG RESULT FOR ONE SHOWER IF SELECTED
+        IF ( FNKG ) CALL AVAGE
+ 
+        IF ( LLONGI ) THEN
+C  TREAT LONGITUDINAL DISTRIBUTIONS
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c   calculated here again, 'cos it's rewrite I dont know where
+          LPCT1 = INT( THICK0 * THSTPI )
+          LPCT2 = INT( (THICK0 + PRMPAR(3)*CHI) * THSTPI )
+          LPCT2 = MIN(NSTEP,LPCT2)
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+          DO 980  J = LPCT1,NSTEP
+C  ADD ELECTRONS, POSITRONS, MUONS AND NUCLEI TO THE CHARGED PARTICLES
+            PLONG(J,7) = PLONG(J,7) + PLONG(J,2) + PLONG(J,3)
+     *                 + PLONG(J,4) + PLONG(J,5) + PLONG(J,8)
+C  ADD UP FOR MEAN VALUES OF LONGITUDINAL DISTRIBUTION
+            DO 979  K = 1,9
+              APLONG(J,K) = APLONG(J,K) + PLONG(J,K)
+              SPLONG(J,K) = SPLONG(J,K) + PLONG(J,K)**2
+ 979        CONTINUE
+ 980      CONTINUE
+ 
+C  PRINT LONGITUDINAL DISTRIBUTIONS PER SHOWER
+          IF ( FPRINT .OR. DEBUG )  WRITE(MONIOU,910) THSTEP,
+     *      'GAMMAS','POSITRONS','ELECTRONS','MU-','MU+','HADRONS',
+     *      'CHARGED','NUCLEI','CERENKOV',
+     *      (J*THSTEP,(PLONG(J,K),K=1,9),J=LPCT1,NSTEP)
+ 910      FORMAT(/' ---------- LONGITUDINAL DISTRIBUTION IN STEPS OF ',
+     *        F5.0,' G/CM**2 ----------------'/
+     *        '  DEPTH ',3A12,3A11,A12,A11,A12/
+     *        (' ',F6.0,F13.0,2F12.0,3F11.0,F12.0,F11.0,1P,E12.5,0P) )
+CJOK  ADAPTED FOR HEAT CALCULATION
+C910      FORMAT(/
+C    *    ' LONGITUDINAL DISTRIBUTION IN STEPS OF ',F5.0,' G/CM**2'
+C    *      /' ',92('=')/'  DEPTH',8A10,A12/1P
+C    *      (' ',0P,F6.0,1P,9E11.4))
+CJOK
+ 
+          IF ( FLGFIT ) THEN
+C  PERFORM FIT TO THE LONGITUDINAL DISTRIBUTION OF ALL CHARGED PARTICLES
+C  IF EGS IS SELECTED THIS IS THE DISTRIBUTION WHICH IS TO BE TAKEN
+            IF ( FEGS ) THEN
+              DO 930 J=0,NSTEP-LPCT1
+                DEP(J+1)    = (J+LPCT1)*THSTEP
+                CHAPAR(J+1) = PLONG(J+LPCT1,7)
+ 930          CONTINUE
+              NSTP = NSTEP + 1 - LPCT1
+              WRITE(MONIOU,8229) 'ALL CHARGED PARTICLES'
+ 8229         FORMAT(/' FIT OF THE CURVE   ',
+     *      ' N(T) = P1*((T-P2)/(P3-P2))**((P3-T)/(P4+P5*T+P6*T**2))'/
+     *      ' TO LONGITUDINAL DISTRIBUTION OF ',A35)
+C  IF NKG IS SELECTED ONLY THE ELECTRON DISTRIBUTION IS AVAILABLE
+            ELSEIF ( FNKG ) THEN
+              DEP(1)    = 0.D0
+              CHAPAR(1) = 0.D0
+              DO 931 J = 1,IALT(1)
+                DEP(J+1)    = TLEV(J)
+                CHAPAR(J+1) = SL(J)
+ 931          CONTINUE
+              NSTP = IALT(1) + 1
+              WRITE(MONIOU,8229) 'NKG ELECTRONS'
+C  IF NONE IS SELECTED IT DOES NOT REALLY MAKE SENSE TO FIT
+C  BUT LET'S TAKE THEN ALL CHARGED WHICH ARE MUONS AND HADRONS
+            ELSE
+              DO 932 J=0,NSTEP-LPCT1
+                DEP(J+1)    = (J+LPCT1)*THSTEP
+                CHAPAR(J+1) = PLONG(J+LPCT1,7)
+ 932          CONTINUE
+              NSTP = NSTEP + 1 - LPCT1
+              WRITE(MONIOU,8229) 'MUONS AND CHARGED HADRONS'
+            ENDIF
+            IF ( NSTP .GT. 6 ) THEN
+C  THERE ARE MORE THAN 6 STEP VALUES, A FIT SHOULD BE POSSIBLE.
+C  DO THE FIT: NPAR AND FPARAM GIVE THE NUMBER OF PARAMETERS USED
+C  AND THE FINAL VALUES FOR THE PARAMETERS. CHISQ GIVES THE CHI**2/DOF
+C  FOR THE FIT.
+              CALL LONGFT(FPARAM,CHI2)
+              WRITE(MONIOU,8230) FPARAM,CHI2,CHI2/SQRT(FPARAM(1))*100.D0
+ 8230         FORMAT(' PARAMETERS         = ',1P,6E12.4,0P/
+     *               ' CHI**2/DOF         = ',F10.1/
+     *               ' AV. DEVIATION IN % = ',F10.4)
+C  STORE RESULT IN END EVENT BLOCK
+              DO 933 K = 1,6
+                EVTE(255+K) = FPARAM(K)
+ 933          CONTINUE
+              EVTE(262) = CHI2
+            ELSE
+              WRITE(MONIOU,*) 'NO LONGI. FIT POSSIBLE, ',
+     *          ' NSTP = ',NSTP,'  TOO SMALL.'
+              DO 934 K = 1,6
+                EVTE(255+K) = 0.
+ 934          CONTINUE
+              EVTE(262) = 0.
+            ENDIF
+          ENDIF
+        ENDIF
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c   Saves statistics to sta###### file
+        call jcstadata(EVTH,EVTE,
+     +      NPROTO,NPROTB,NNEUTR,NNEUTB,NPHOTO,NELECT,NPOSIT,
+     +      NNU   ,NMUM  ,NMUP  ,NPI0  ,NPIM  ,NPIP  ,NK0L  ,
+     +      NK0S  ,NKMI  ,NKPL  ,NHYP  ,NDEUT ,NTRIT ,NALPHA,
+     +      NOTHER,IFINNU,IFINPI,IFINET,IFINKA,IFINHY,
+     +      CERELE,CERHAD,PLONG,LPCT1,NSTEP,THSTEP)
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C  WRITE SHOWER END TO OUTPUT BUFFER
+c        CALL TOBUF( EVTE,0 )
+        CALL TOBUF( EVTE,1 )
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+        IF ( LCERFI ) THEN
+          CALL OUTND2
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c          CALL TOBUFC( EVTE,0 )
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+        ENDIF
+ 
+        IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,*)
+     *                 'CERENKOV PH. FROM ELECTRONS = ',SNGL(CERELE),
+     *                 '  CERENKOV PH. FROM HADRONS = ',SNGL(CERHAD)
+        CERELE = 0.D0
+        CERHAD = 0.D0
+        NRECER = 0
+ 
+        IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,210) SHOWNO
+ 210    FORMAT(/'   END OF SHOWER NO ',I10)
+ 
+        DO 19  J = 1,37
+          JNBIN(J) = JNBIN(J) + INBIN(J)
+          JPBIN(J) = JPBIN(J) + IPBIN(J)
+          JKBIN(J) = JKBIN(J) + IKBIN(J)
+          JHBIN(J) = JHBIN(J) + IHBIN(J)
+  19    CONTINUE
+ 
+  2   CONTINUE
+C  END OF SHOWER LOOP
+ 
+C-----------------------------------------------------------------------
+ 992  CONTINUE
+ 
+C  RESET NUMBER OF SHOWERS TO CORRECT VALUE
+      ISHW = I
+ 
+      RUNE(3) = REAL(ISHW)
+C  WRITE RUN END TO OUTPUT BUFFER AND FINISH OUTPUT
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c      CALL TOBUF ( RUNE,1 )
+      call jcendrun(rune)
+c      IF ( LCERFI ) CALL TOBUFC( RUNE,1 )
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+C  TIME SINCE BEGINNING
+c      ILEFTB = TIME()
+      ILEFTB = 1
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+      TDIFF  = ILEFTB - ILEFTA
+ 
+C  MEAN VALUE FOR FIRST INTERACTION ALTITUDE (G/CM**2)
+      IF ( ISHW .GT. 1 ) THEN
+        CHISM2 = SQRT( ABS(CHISM2-CHISUM**2/ISHW) / (ISHW-1) )
+        CHISUM = CHISUM / ISHW
+      ELSE
+        CHISM2 = 0.D0
+      ENDIF
+ 
+C  OUTPUTS FOR ALL SHOWERS
+      WRITE(MONIOU,201) ISHW,TDIFF,TDIFF/ISHW,IRECOR,IRECOR/ISHW,
+     *                   CHISUM,CHISM2
+ 201  FORMAT('1',10('='),' RUN SUMMARY ',56('=')//
+     *  ' NUMBER OF GENERATED EVENTS = ',I10,/
+     *  ' TOTAL TIME USED            = ',E10.3,' SEC'/
+     *  ' TIME PER EVENT             = ',E10.3,' SEC'/
+     *  ' TOTAL SPACE ON PATAPE USED = ',I10,' WORDS'/
+     *  ' SPACE PER EVENT ON PATAPE  = ',I10,' WORDS'/
+     *  ' AVERAGE HEIGHT OF 1ST INT. = ',F10.3,' +-',F10.3,' G/CM**2'/)
+ 
+C  ENERGY - MULTIPLICITY MATRIX FOR ALL SHOWERS
+      WRITE(MONIOU,209) (K,K=1,13),
+     *  (J,(MULTOT(J,K),K=1,13),10**((J-4.)/3.),10**((J-3.)/3.),J=1,37),
+     *   1,(INT(10**((K-1.)/3.)+1),K = 2,13),
+     *   2,(INT(10**((K   )/3.)  ),K = 2,13)
+ 209  FORMAT(//' ENERGY - MULTIPLICITY MATRIX FOR ALL SHOWERS'/
+     *       ' ENERGY RUNS VERTICALLY, MULTIPLICITY HORIZONTALLY'//,
+     *       ' ',6X,5I9,3I8,5I7'   ENERGY RANGE (GEV)'/
+     *       37(/' ',I4,1X,I10,4I9,3I8,5I7,1X,1P,2E10.1,0P)//
+     *       ' MULT. ',5I9,3I8,5I7,4X,'LOWER BIN LIMIT'/
+     *       ' RANGE ',5I9,3I8,5I7,4X,'UPPER BIN LIMIT')
+ 
+C  GET MEAN OF ELASTICITY FOR ENERGY BINS
+      DO 3377  J = 1,37
+        NELMEA = 0
+        DO 3378  K = 1,10
+          NELMEA = NELMEA + IELDPA(J,K)
+ 3378   CONTINUE
+        IF ( NELMEA .NE. 0 ) ELMEAA(J) = ELMEAA(J) / NELMEA
+ 3377 CONTINUE
+ 
+C  PRINT ENERGY - ELASTICITY MATRIX FOR ALL SHOWERS
+      WRITE(MONIOU,408) (K,K=1,10),  (J,(IELDPA(J,K),K=1,10),
+     *  ELMEAA(J),10**((J-4.D0)/3.D0),10**((J-3.)/3.D0),J=1,37),
+     *      ((K-1)*0.1D0,K=1,10),(K*0.1D0,K=1,10)
+ 408  FORMAT (//' ENERGY - ELASTICITY MATRIX FOR ALL SHOWERS'/
+     *          ' ENERGY RUNS VERTICALLY, ELASTICITY HORIZONTALLY'//
+     *          ' ',5X,10I9,'   MEAN EL.   ENERGY RANGE (GEV)'/
+     *          37(/' ',I4,1X,10I9,2X,1P,E10.3,2E10.1,0P)//
+     *          ' ELA. ',10F9.2,5X,'LOWER BIN LIMIT'/
+     *          ' RANGE',10F9.2,5X,'UPPER BIN LIMIT')
+ 
+      WRITE(MONIOU,204)
+ 204  FORMAT (//' INTERACTIONS PER KINETIC ENERGY INTERVAL FOR ALL ',
+     *    'SHOWERS'//'   BIN    LOWER LIMIT    UPPER LIMIT     ',
+     *    'NUCLEON     PIONS     KAONS S.BARYONS      TOTAL'/
+     *    12X,'IN GEV',9X,'IN GEV',7X,
+     *     '  EVENTS    EVENTS    EVENTS    EVENTS    '//)
+      WRITE(MONIOU,207) (I,SABIN(I),SBBIN(I),JNBIN(I),JPBIN(I),JKBIN(I)
+     *            ,JHBIN(I),JNBIN(I)+JPBIN(I)+JKBIN(I)+JHBIN(I),I=1,37)
+ 207  FORMAT(' ',I5,1P,2E15.4,0P,I12,3I10,I11)
+ 
+      IF ( .NOT.GHEISH ) THEN
+C  PRINT ELASTICITY STATISTICS
+        WRITE(MONIOU,89) (I,(I-1)*.05,I*.05,
+     *                   IELIS(I),IELHM(I),IELNU(I),IELPI(I),I = 1,20)
+  89    FORMAT (//' ELASTICITY STATISTICS '//
+     *          ' BIN   LOW  HIGH EDGE   FOR ISOBARS     HEAVY MESONS',
+     *          '  SINGLE NUCLEONS        AND PIONS'/
+     *         (' ',I3,'  ',F4.2,'  ',F4.2,'  ',4I17))
+      ENDIF
+ 
+C  CALCULATE MEAN VALUES AND STANDARD DEVIATIONS OF PARTICLE NUMBERS
+      IF ( ISHW .GT. 1 ) THEN
+        DO 879  K = 1,25
+        DO 879  J = 1,NOBSLV
+          MPART2(J,K) = SQRT( abs(MPART2(J,K)-MPARTO(J,K)**2/ISHW)
+     *                                                  /(ISHW-1) )
+          MPARTO(J,K) = MPARTO(J,K)/ISHW
+ 879    CONTINUE
+      ELSE
+        DO 880  K = 1,25
+        DO 880  J = 1,NOBSLV
+          MPART2(J,K) = 0.D0
+ 880    CONTINUE
+      ENDIF
+ 
+C  PRINT MEAN VALUES AND STANDARD DEVIATIONS OF PARTICLE NUMBERS
+      IOBSLV = MIN( 3, NOBSLV )
+      WRITE(MONIOU,854) (K,K=1,IOBSLV)
+ 854  FORMAT (/ ' AVERAGE NUMBER OF PARTICLES PER EVENT :'/
+     *          ' FROM LEVEL NUMBER ', 3(10X,I10,10X) )
+      WRITE(MONIOU,855) (OBSLEV(K),K=1,IOBSLV)
+ 855  FORMAT (  ' HEIGHT IN CM',1P,3(20X,E10.3)/)
+ 
+      WRITE(MONIOU,778)'PROTONS     ',(MPROTO(K),MPROT2(K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'ANTIPROTONS ',(MPROTB(K),MPRTB2(K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'NEUTRONS    ',(MNEUTR(K),MNETR2(K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'ANTINEUTRONS',(MNEUTB(K),MNETB2(K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'PHOTONS     ',(MPHOTO(K),MPHOT2(K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'ELECTRONS   ',(MELECT(K),MELEC2(K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'POSITRONS   ',(MPOSIT(K),MPOSI2(K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'NEUTRINOS   ',(MNU   (K),MNU2  (K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'MU -        ',(MMUM  (K),MMUM2 (K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'MU +        ',(MMUP  (K),MMUP2 (K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'PI 0        ',(MPI0  (K),MPI02 (K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'PI -        ',(MPIM  (K),MPIM2 (K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'PI +        ',(MPIP  (K),MPIP2 (K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'K0L         ',(MK0L  (K),MK0L2 (K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'K0S         ',(MK0S  (K),MK0S2 (K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'K -         ',(MKMI  (K),MKMI2 (K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'K +         ',(MKPL  (K),MKPL2 (K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'STR. BARYONS',(MHYP  (K),MHYP2 (K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'DEUTERONS   ',(MDEUT (K),MDEUT2(K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'TRITONS     ',(MTRIT (K),MTRIT2(K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'ALPHAS      ',(MALPHA(K),MALPH2(K),K=1,IOBSLV)
+      WRITE(MONIOU,778)'OTHER PART. ',(MOTHER(K),MOTH2 (K),K=1,IOBSLV)
+      WRITE(MONIOU,*)
+ 778  FORMAT(' NO OF ',A12,' = ',3(F13.1,' +-',F13.1,' '))
+ 
+      IF ( NOBSLV .GT. 3 ) THEN
+        IOBSLV = MIN( 6, NOBSLV )
+        WRITE(MONIOU,854) (K,K=4,IOBSLV)
+        WRITE(MONIOU,855) (OBSLEV(K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'PROTONS     ',(MPROTO(K),MPROT2(K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'ANTIPROTONS ',(MPROTB(K),MPRTB2(K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'NEUTRONS    ',(MNEUTR(K),MNETR2(K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'ANTINEUTRONS',(MNEUTB(K),MNETB2(K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'PHOTONS     ',(MPHOTO(K),MPHOT2(K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'ELECTRONS   ',(MELECT(K),MELEC2(K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'POSITRONS   ',(MPOSIT(K),MPOSI2(K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'NEUTRINOS   ',(MNU   (K),MNU2  (K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'MU -        ',(MMUM  (K),MMUM2 (K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'MU +        ',(MMUP  (K),MMUP2 (K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'PI 0        ',(MPI0  (K),MPI02 (K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'PI -        ',(MPIM  (K),MPIM2 (K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'PI +        ',(MPIP  (K),MPIP2 (K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'K0L         ',(MK0L  (K),MK0L2 (K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'K0S         ',(MK0S  (K),MK0S2 (K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'K -         ',(MKMI  (K),MKMI2 (K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'K +         ',(MKPL  (K),MKPL2 (K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'STR. BARYONS',(MHYP  (K),MHYP2 (K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'DEUTERONS   ',(MDEUT (K),MDEUT2(K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'TRITONS     ',(MTRIT (K),MTRIT2(K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'ALPHAS      ',(MALPHA(K),MALPH2(K),K=4,IOBSLV)
+        WRITE(MONIOU,778)'OTHER PART. ',(MOTHER(K),MOTH2 (K),K=4,IOBSLV)
+        WRITE(MONIOU,*)
+ 
+        IF ( NOBSLV .GT. 6 ) THEN
+          IOBSLV = MIN( 9, NOBSLV )
+          WRITE(MONIOU,854) (K,K=7,IOBSLV)
+          WRITE(MONIOU,855) (OBSLEV(K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'PROTONS     ',(MPROTO(K),MPROT2(K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'ANTIPROTONS ',(MPROTB(K),MPRTB2(K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'NEUTRONS    ',(MNEUTR(K),MNETR2(K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'ANTINEUTRONS',(MNEUTB(K),MNETB2(K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'PHOTONS     ',(MPHOTO(K),MPHOT2(K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'ELECTRONS   ',(MELECT(K),MELEC2(K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'POSITRONS   ',(MPOSIT(K),MPOSI2(K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'NEUTRINOS   ',(MNU   (K),MNU2  (K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'MU -        ',(MMUM  (K),MMUM2 (K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'MU +        ',(MMUP  (K),MMUP2 (K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'PI 0        ',(MPI0  (K),MPI02 (K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'PI -        ',(MPIM  (K),MPIM2 (K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'PI +        ',(MPIP  (K),MPIP2 (K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'K0L         ',(MK0L  (K),MK0L2 (K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'K0S         ',(MK0S  (K),MK0S2 (K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'K -         ',(MKMI  (K),MKMI2 (K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'K +         ',(MKPL  (K),MKPL2 (K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'STR. BARYONS',(MHYP  (K),MHYP2 (K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'DEUTERONS   ',(MDEUT (K),MDEUT2(K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'TRITONS     ',(MTRIT (K),MTRIT2(K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'ALPHAS      ',(MALPHA(K),MALPH2(K),K=7,IOBSLV)
+        WRITE(MONIOU,778)'OTHER PART. ',(MOTHER(K),MOTH2 (K),K=7,IOBSLV)
+          WRITE(MONIOU,*)
+ 
+          IF ( NOBSLV .GT. 9 ) THEN
+            IOBSLV = MIN( 10, NOBSLV )
+            WRITE(MONIOU,854) (K,K=9,IOBSLV)
+            WRITE(MONIOU,855) (OBSLEV(K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'PROTONS     ',(MPROTO(K),MPROT2(K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'ANTIPROTONS ',(MPROTB(K),MPRTB2(K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'NEUTRONS    ',(MNEUTR(K),MNETR2(K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'ANTINEUTRONS',(MNEUTB(K),MNETB2(K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'PHOTONS     ',(MPHOTO(K),MPHOT2(K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'ELECTRONS   ',(MELECT(K),MELEC2(K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'POSITRONS   ',(MPOSIT(K),MPOSI2(K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'NEUTRINOS   ',(MNU   (K),MNU2  (K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'MU -        ',(MMUM  (K),MMUM2 (K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'MU +        ',(MMUP  (K),MMUP2 (K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'PI 0        ',(MPI0  (K),MPI02 (K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'PI -        ',(MPIM  (K),MPIM2 (K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'PI +        ',(MPIP  (K),MPIP2 (K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'K0L         ',(MK0L  (K),MK0L2 (K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'K0S         ',(MK0S  (K),MK0S2 (K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'K -         ',(MKMI  (K),MKMI2 (K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'K +         ',(MKPL  (K),MKPL2 (K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'STR. BARYONS',(MHYP  (K),MHYP2 (K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'DEUTERONS   ',(MDEUT (K),MDEUT2(K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'TRITONS     ',(MTRIT (K),MTRIT2(K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'ALPHAS      ',(MALPHA(K),MALPH2(K),K=9,IOBSLV)
+        WRITE(MONIOU,778)'OTHER PART. ',(MOTHER(K),MOTH2 (K),K=9,IOBSLV)
+            WRITE(MONIOU,*)
+          ENDIF
+ 
+        ENDIF
+      ENDIF
+ 
+C  PRINT OUT NKG RESULT FOR ALL SHOWERS IF SELECTED
+      IF ( FNKG ) CALL MITAGE
+ 
+C  CALCULATE MEAN VALUES AND SIGMAS OF LONGITUDINAL DISTRIBUTION
+      IF ( LLONGI ) THEN
+        IF ( ISHW .GT. 1 ) THEN
+          DO 790  K = 1,9
+            DO 789  J = LPCT1,NSTEP
+              SPLONG(J,K) = SQRT( abs(SPLONG(J,K)-APLONG(J,K)**2/ISHW)
+     *                                                   /(ISHW-1) )
+              APLONG(J,K) = APLONG(J,K)/ISHW
+ 789        CONTINUE
+ 790      CONTINUE
+        ELSE
+          DO 990  K = 1,9
+            DO 989  J = LPCT1,NSTEP
+              SPLONG(J,K) = 0.D0
+ 989        CONTINUE
+ 990      CONTINUE
+        ENDIF
+ 
+C  PRINT AVERAGE LONGITUDINAL DISTRIBUTIONS
+        WRITE(MONIOU,911) THSTEP,
+     *     'GAMMAS ','POSITRONS','ELECTRONS','MU-  ','MU+  ',
+     *     (J*THSTEP,(APLONG(J,K),SPLONG(J,K),K=1,5),J=LPCT1,NSTEP)
+ 911    FORMAT(/' AVERAGE LONGITUDINAL DISTRIBUTION IN STEPS OF ',
+     *      F5.0,' G/CM**2 '/' ',131('=')/
+     *      ' DEPTH',8X,3(A10,16X),A9,15X,A9 //
+     *     (' ',F5.0,2X,1P,E11.4,'+-',E11.4,0P,1X,F12.0,'+-',F11.0,
+     *                1X,F12.0,'+-',E11.4,1X,F11.1,'+-',F10.1,
+     *                1X,F11.1,'+-',F10.1 ))
+        WRITE(MONIOU,912) THSTEP,
+     *     'HADRONS','CHARGED','NUCLEI','CERENKOV',
+     *     (J*THSTEP,(APLONG(J,K),SPLONG(J,K),K=6,9),J=LPCT1,NSTEP)
+ 912    FORMAT(/' AVERAGE LONGITUDINAL DISTRIBUTION IN STEPS OF ',
+     *      F5.0,' G/CM**2 '/' ',115('=')/
+     *      ' DEPTH',8X,A9,16X,A10,16X,A9,21X,A9 //
+     *     (' ',F5.0,1X,F11.1,'+-',F11.1,1X,F12.0,'+-',F12.0,
+     *                2X,F10.1,'+-',F10.1,1X,1P,E16.6,'+-',E16.6,0P))
+      ENDIF
+ 
+      IF ( FLGFIT ) THEN
+C  PERFORM FIT TO THE LONGITUDINAL DISTRIBUTION OF ALL CHARGED PARTICLES
+C  IF EGS IS SELECTED THIS IS THE DISTRIBUTION WHICH IS TO BE TAKEN
+        IF ( FEGS ) THEN
+          DO 730 J=0,NSTEP-LPCT1
+            DEP(J+1)    = (J+LPCT1)*THSTEP
+            CHAPAR(J+1) = APLONG(J+LPCT1,7)
+ 730      CONTINUE
+          NSTP = NSTEP + 1 - LPCT1
+          WRITE(MONIOU,8229) 'AVERAGE ALL CHARGED PARTICLES'
+C  IF NKG IS SELECTED ONLY THE ELECTRON DISTRIBUTION IS AVAILABLE
+        ELSEIF ( FNKG ) THEN
+          DEP(1)    = 0.D0
+          CHAPAR(1) = 0.D0
+          DO 731 J = 1,IALT(1)
+            DEP(J+1)    = TLEV(J)
+            CHAPAR(J+1) = SEL(J)/ISHW
+ 731      CONTINUE
+          NSTP = IALT(1) + 1
+          WRITE(MONIOU,8229) 'AVERAGE NKG ELECTRONS'
+C  IF NONE IS SELECTED IT DOES NOT REALLY MAKE SENSE TO FIT
+C  BUT LET'S TAKE THEN ALL CHARGED WHICH ARE MUONS AND HADRONS
+        ELSE
+          DO 732 J=0,NSTEP-LPCT1
+            DEP(J+1)    = (J+LPCT1)*THSTEP
+            CHAPAR(J+1) = APLONG(J+LPCT1,7)
+ 732      CONTINUE
+          NSTP = NSTEP + 1 - LPCT1
+          WRITE(MONIOU,8229) 'AVERAGE MUONS AND CHARGED HADRONS'
+        ENDIF
+        IF ( NSTP .GT. 6 ) THEN
+C  THERE ARE MORE THAN 6 STEP VALUES, A FIT SHOULD BE POSSIBLE.
+C  DO THE FIT: NPAR AND FPARAM GIVE THE NUMBER OF PARAMETERS USED
+C  AND THE FINAL VALUES FOR THE PARAMETERS. CHISQ GIVES THE CHI**2/DOF
+C  FOR THE FIT.
+          CALL LONGFT(FPARAM,CHI2)
+          WRITE(MONIOU,8230) FPARAM,CHI2,CHI2/SQRT(FPARAM(1))*100.D0
+        ELSE
+          WRITE(MONIOU,*) 'NO LONGI. FIT POSSIBLE, ',
+     *                      ' NSTP = ',NSTP,'  TOO SMALL.'
+        ENDIF
+      ENDIF
+ 
+ 
+C  CONTROL PRINT OUTPUT OF CONSTANTS
+      IF ( DEBUG ) THEN
+        CALL STAEND
+        WRITE(MDEBUG,*) 'MAIN  : STAEND CALLED'
+      ENDIF
+ 
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+      call jcenddata(runh,rune)
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+      WRITE(MONIOU,*)' '
+      CALL PRTIME(TTIME)
+      WRITE(MONIOU,101)
+ 101  FORMAT (/' ',10('='),' END OF RUN ',67('='))
+ 
+C  CLOSE ALL OPEN UNITS
+      IF ( MONIOU .NE. 6 ) CLOSE( MONIOU )
+      IF ( MDEBUG .NE. 6 ) CLOSE( MDEBUG )
+      CLOSE( EXST )
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c      CLOSE( PATAPE )
+c      IF ( LCERFI ) CLOSE( CETAPE )
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ 
+      STOP
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mitage.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mitage.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mitage.f	(revision 4308)
@@ -0,0 +1,154 @@
+      SUBROUTINE MITAGE
+ 
+C-----------------------------------------------------------------------
+C  MIT(TELWERT) AGE   (AVERAGE AGE)
+C
+C  CALCULATES AVERAGE DISTRIBUTION FOR NKG FUNCTION OVER ALL SHOWERS
+C  THIS SUBROUTINE IS CALLED FROM MAIN
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEEP,NKGI.
+      COMMON /NKGI/    SEL,SELLG,STH,ZEL,ZELLG,ZSL,DIST,
+     *                 DISX,DISY,DISXY,DISYX,DLAX,DLAY,DLAXY,DLAYX,
+     *                 OBSATI,RADNKG,RMOL,TLEV,TLEVCM,IALT
+      DOUBLE PRECISION SEL(10),SELLG(10),STH(10),ZEL(10),ZELLG(10),
+     *                 ZSL(10),DIST(10),
+     *                 DISX(-10:10),DISY(-10:10),
+     *                 DISXY(-10:10,2),DISYX(-10:10,2),
+     *                 DLAX (-10:10,2),DLAY (-10:10,2),
+     *                 DLAXY(-10:10,2),DLAYX(-10:10,2),
+     *                 OBSATI(2),RADNKG,RMOL(2),TLEV(10),TLEVCM(10)
+      INTEGER          IALT(2)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION AJ,ATH,BJ,CJ,DF(10),RISH,SELEC,SELCLG,SJ(10),
+     *                 ZEC,ZECLG,ZSE
+      INTEGER          I,ID,J,K,LI
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'MITAGE:'
+ 
+      WRITE(MONIOU,349) ELCUT(3),ELCUT(4)
+  349 FORMAT(/' ========== NKG - AVERAGE VALUES OF ALL SHOWERS ',
+     *        '==============================='/
+     *   ' ELECTRON/PHOTON THRESHOLDS AT ',F9.4,' /',F9.4,' GEV'//
+     *   ' LEVEL  THICKNESS   HEIGHT      <EL NR>      DEV<EL>',
+     *   '   <LOG(EL NR)>  DEV<LOG(E)>      <AGE>  DEV<AGE>'/
+     *   '  NO.   (G/CM**2)     (M) ' )
+ 
+C  NORMALIZE AVERAGE ELECTRON DENSITIES
+      RISH = 1.D0 / ISHW
+      DO 161  K = 1,2
+        IF ( OBSATI(K) .GE. 0.D0 ) THEN
+          DO 162  ID = -10,10
+            DLAX (ID,K) = DLAX (ID,K) * RISH
+            DLAY (ID,K) = DLAY (ID,K) * RISH
+            DLAXY(ID,K) = DLAXY(ID,K) * RISH
+            DLAYX(ID,K) = DLAYX(ID,K) * RISH
+  162     CONTINUE
+        ENDIF
+  161 CONTINUE
+ 
+      DO 16  LI = 1,IALT(1)
+C  ELECTRON NUMBER <N_E>
+        SELEC   = SEL(LI) * RISH
+C  LOG10 ELECTRON NUMBER <N_E>
+        SELCLG  = SELLG(LI) * RISH
+C  <S_....> AVERAGE LONGITUDINAL AGE
+        ATH     = STH(LI) * RISH
+        IF ( ISHW .GT. 1 ) THEN
+C  ELECTRON NUMBER <N_E>
+          ZEC   = SQRT( abs(ZEL(LI) - SEL(LI)**2*RISH)/(ISHW-1.D0) )
+C  LOG10 ELECTRON NUMBER <N_E>
+          ZECLG = SQRT( abs(ZELLG(LI) - SELLG(LI)**2*RISH)/(ISHW-1.D0) )
+C  <S_....> AVERAGE LONGITUDINAL AGE
+          ZSE   = SQRT( abs(ZSL(LI)-STH(LI)**2*RISH)/(ISHW-1.D0) )
+        ELSE
+          ZEC   = 0.D0
+          ZECLG = 0.D0
+          ZSE   = 0.D0
+        ENDIF
+C  WRITE ELECTRON INFORMATION FOR ALL NKG LEVELS (LONG. DEVELOPMENT)
+        WRITE(MONIOU,219) LI,TLEV(LI),TLEVCM(LI)*0.01,
+     *                       SELEC,ZEC,SELCLG,ZECLG,ATH,ZSE
+  219   FORMAT (' ',I4,F10.0,F11.2,1X,2F12.0,3X,2F12.5,F13.3,F9.3)
+  16  CONTINUE
+ 
+      DO 520  K = 1,2
+        IF ( OBSATI(K) .LT. 0.D0 ) GOTO 520
+C  DETERMINE LOCAL AGE PARAMETER
+        DO 50  J = 1,9
+          IF ( DLAX(J+1,K).GT.0.D0  .AND.  DLAX(-J-1,K).GT.0.D0  .AND.
+     *         DLAXY(J+1,K).GT.0.D0  .AND.  DLAXY(-J-1,K).GT.0.D0  .AND.
+     *         DLAYX(J+1,K).GT.0.D0  .AND.  DLAYX(-J-1,K).GT.0.D0  .AND.
+     *         DLAY(J+1,K).GT.0.D0  .AND.  DLAY(-J-1,K).GT.0.D0 ) THEN
+            AJ = 0.125D0 * (
+     *           DLAX(J,K) /DLAX(J+1,K)  + DLAX(-J,K) /DLAX(-J-1,K)
+     *         + DLAXY(J,K)/DLAXY(J+1,K) + DLAXY(-J,K)/DLAXY(-J-1,K)
+     *         + DLAYX(J,K)/DLAYX(J+1,K) + DLAYX(-J,K)/DLAYX(-J-1,K)
+     *         + DLAY(J,K) /DLAY(J+1,K)  + DLAY(-J,K) /DLAY(-J-1,K))
+          ELSE
+            AJ = 0.D0
+          ENDIF
+          IF ( AJ .GT. 0.D0 ) THEN
+            BJ    = DIST(J) / DIST(J+1)
+            CJ    = (DIST(J)+RMOL(K)) / (DIST(J+1)+RMOL(K))
+            SJ(J) = LOG(AJ * BJ**2 * CJ**4.5D0) / LOG(BJ * CJ)
+            DF(J) = 0.5D0* (DIST(J) + DIST(J+1))
+          ELSE
+            SJ(J) = 0.D0
+            DF(J) = 0.D0
+          ENDIF
+  50    CONTINUE
+ 
+C  WRITE LOCAL AGE PARAMETER
+        WRITE(MONIOU,60) K,OBSATI(K), (I,DF(I),SJ(I),I=1,9)
+  60    FORMAT(/' RADIAL BIN  DISTANCE(CM)  LOCAL AGE AT LEVEL NO.',
+     *          I4,' AT HEIGHT:',F10.0,' CM'/
+     *         (' ',I9,'   ',F10.0,'  ',F10.3 ) )
+ 
+C  WRITE LATERAL ELECTRON DISTRIBUTION
+        WRITE(MONIOU,507) K,OBSATI(K)
+ 507    FORMAT(/' AVERAGE ELECTRON DENSITY (/CM**2)  FOR LEVEL NO.',
+     *         I4,' AT HEIGHT:',F10.0,' CM'/
+     *         ' ==================================================',
+     *         '=========================='/
+     *         '  DIST (CM)       DLAX           DLAY    ',
+     *         '       DLAXY          DLAYX')
+        WRITE(MONIOU,508) (DISX(I),DLAX(I,K),DLAY(I,K),
+     *                     DLAXY(I,K),DLAYX(I,K),I=-10,10)
+  508   FORMAT(' ',0P,F10.0,1P,4E15.5)
+ 
+ 
+  520 CONTINUE
+ 
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mmol4.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mmol4.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mmol4.f	(revision 4308)
@@ -0,0 +1,75 @@
+      SUBROUTINE MMOL4(Y,X,VAL,ARG,EPS,IER)
+ 
+C-----------------------------------------------------------------------
+C  M(UON) MOL(IERE SCATTERING) 4 (POINT CONTINUED FRACT. INTERPOLATION)
+C
+C  ROUTINE TAKEN FROM IBM SCIENTIFIC SUBROUTINE PACKAGE
+C  ROUTINE TAKEN FROM GEANT321 (CERN)
+C  4 POINT CONTINUED FRACTION INTERPOLATION
+C  THIS SUBROUTINE IS CALLED FROM MMOLIE
+C  ARGUMENTS:
+C   Y     = INTERPOLATED VALUE FOR THE ARGUMENT X
+C   X     = ARGUMENT FOR Y
+C   VAL   = VALUE ARRAY
+C   ARG   = ARGUMENT ARRAY
+C   EPS   = DESIRED ACCURACY
+C   IER   = OUTPUT ERROR PARAMETER
+C            0 ACCURACY O.K.
+C            1 ACCURACY CAN NOT BE TESTED IN 4TH ORDER INTERPOLATION
+C            2 TWO IDENTICAL ELEMENTS IN THE ARGUMENT ARRAY
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT  NONE
+      REAL      ARG(4),AUX,DELT,EPS,H,P1,P2,P3,Q1,Q2,Q3,VAL(4),X,Y,Z
+      INTEGER   I,II,III,IER,J,JEND
+C-----------------------------------------------------------------------
+ 
+      IER = 1
+      Y   = VAL(1)
+      P2  = 1.
+      P3  = Y
+      Q2  = 0.
+      Q3  = 1.
+      DO 16 I = 2,4
+        II = 0
+        P1 = P2
+        P2 = P3
+        Q1 = Q2
+        Q2 = Q3
+        Z  = Y
+        JEND = I - 1
+   3    AUX  = VAL(I)
+        DO 10 J = 1,JEND
+          H = VAL(I) - VAL(J)
+          IF ( ABS(H) .GT. 1.E-6*ABS(VAL(I)) ) GOTO 9
+          IF ( ARG(I) .EQ. ARG(J) ) GOTO 17
+          IF ( J .LT. JEND ) GOTO 8
+          II  = II + 1
+          III = I + II
+          IF ( III .GT. 4 ) GOTO 19
+          VAL(I)   = VAL(III)
+          VAL(III) = AUX
+          AUX      = ARG(I)
+          ARG(I)   = ARG(III)
+          ARG(III) = AUX
+          GO TO 3
+   8      VAL(I) = 1.E36
+          GO TO 10
+   9      VAL(I) = ( ARG(I)-ARG(J) ) / H
+  10    CONTINUE
+        P3 = VAL(I) * P2 + ( X - ARG(I-1) ) * P1
+        Q3 = VAL(I) * Q2 + ( X - ARG(I-1) ) * Q1
+        IF ( Q3. NE. 0. ) THEN
+          Y = P3 / Q3
+        ELSE
+          Y = 1.E36
+        ENDIF
+        DELT = ABS(Z-Y)
+        IF ( DELT .LE. EPS ) GOTO 19
+  16  CONTINUE
+      RETURN
+  17  IER = 2
+      RETURN
+  19  IER = 0
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mmolie.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mmolie.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mmolie.f	(revision 4308)
@@ -0,0 +1,190 @@
+      SUBROUTINE MMOLIE(OMEGA,DENS,VSCAT)
+ 
+C-----------------------------------------------------------------------
+C   M(UON) MOLIE(RE MULTIPLE SCATTERING)
+C
+C  TREATES MOLIERE MULTIPLE SCATTERING FOR MUONS
+C  CORRECTED FOR FINITE ANGLE SCATTERING
+C  THIS SUBROUTINE IS IN ANALOGY WITH SUBROUTINE GMOLIE
+C  (AUTHOR: M.S.DIXIT, NRCC, OTTAWA) OF GEANT321
+C  SEE CERN PROGRAM LIBRARY LONG WRITEUP W5013
+C  THIS SUBROUTINE IS CALLED FROM UPDATE
+C  ARGUMENTS:
+C   OMEGA = NUMBER OF SCATTERINGS FOR THE STEP
+C   DENS  = LOCAL DENSITY
+C   VSCAT = SCATTERING ANGLE
+C
+C  REDESIGN: D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,MUMULT.
+      COMMON /MUMULT/  CHC,OMC,FMOLI
+      DOUBLE PRECISION CHC,OMC
+      LOGICAL          FMOLI
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION TINT(40),B,BINV,CHIC,CNST,DB,DENS,OMEGA,SINTH,
+     *                 TEST,TMP,VSCAT
+      REAL             ARG(4),F0I(40),F1I(40),F2I(40),
+     *                 THRED(40),VAL(4),DIN(3),F,THRI,XINT
+      INTEGER          IER,JA,L,M,NA,NA3,NA3M,NMAX
+      DATA THRED/  0.00, 0.10, 0.20, 0.30
+     +          ,  0.40, 0.50, 0.60, 0.70
+     +          ,  0.80, 0.90, 1.00, 1.10
+     +          ,  1.20, 1.30, 1.40, 1.50
+     +          ,  1.60, 1.70, 1.80, 1.90
+     +          ,  2.00, 2.20, 2.40, 2.60
+     +          ,  2.80, 3.00, 3.20, 3.40
+     +          ,  3.60, 3.80, 4.00, 5.00
+     +          ,  6.00, 7.00, 8.00, 9.00
+     +          , 10.00,11.00,12.00,13.00 /
+      DATA F0I/
+     +  0.000000E+00 ,0.995016E-02 ,0.392106E-01 ,0.860688E-01
+     + ,0.147856E+00 ,0.221199E+00 ,0.302324E+00 ,0.387374E+00
+     + ,0.472708E+00 ,0.555142E+00 ,0.632121E+00 ,0.701803E+00
+     + ,0.763072E+00 ,0.815480E+00 ,0.859142E+00 ,0.894601E+00
+     + ,0.922695E+00 ,0.944424E+00 ,0.960836E+00 ,0.972948E+00
+     + ,0.981684E+00 ,0.992093E+00 ,0.996849E+00 ,0.998841E+00
+     + ,0.999606E+00 ,0.999877E+00 ,0.999964E+00 ,0.999990E+00
+     + ,0.999998E+00 ,0.999999E+00 ,0.100000E+01 ,0.100000E+01
+     + ,0.100000E+01 ,0.100000E+01 ,0.100000E+01 ,0.100000E+01
+     + ,1.000000E+00 ,1.000000E+00 ,1.000000E+00 ,1.000000E+00 /
+      DATA F1I/
+     +   0.000000E+00, 0.414985E-02, 0.154894E-01, 0.310312E-01
+     + , 0.464438E-01, 0.569008E-01, 0.580763E-01, 0.468264E-01
+     + , 0.217924E-01,-0.163419E-01,-0.651205E-01,-0.120503E+00
+     + ,-0.178272E+00,-0.233580E+00,-0.282442E+00,-0.321901E+00
+     + ,-0.350115E+00,-0.366534E+00,-0.371831E+00,-0.367378E+00
+     + ,-0.354994E+00,-0.314803E+00,-0.266539E+00,-0.220551E+00
+     + ,-0.181546E+00,-0.150427E+00,-0.126404E+00,-0.107830E+00
+     + ,-0.933106E-01,-0.817375E-01,-0.723389E-01,-0.436650E-01
+     + ,-0.294700E-01,-0.212940E-01,-0.161406E-01,-0.126604E-01
+     + ,-0.102042E-01,-0.840465E-02,-0.704261E-02,-0.598886E-02/
+      DATA F2I/
+     +   0.000000    , 0.121500E-01, 0.454999E-01, 0.913000E-01
+     + , 0.137300E+00, 0.171400E+00, 0.183900E+00, 0.170300E+00
+     + , 0.132200E+00, 0.763000E-01, 0.126500E-01,-0.473500E-01
+     + ,-0.936000E-01,-0.119750E+00,-0.123450E+00,-0.106300E+00
+     + ,-0.732800E-01,-0.312400E-01, 0.128450E-01, 0.528800E-01
+     + , 0.844100E-01, 0.114710E+00, 0.106200E+00, 0.765830E-01
+     + , 0.435800E-01, 0.173950E-01, 0.695001E-03,-0.809500E-02
+     + ,-0.117355E-01,-0.125449E-01,-0.120280E-01,-0.686530E-02
+     + ,-0.385275E-02,-0.231115E-02,-0.147056E-02,-0.982480E-03
+     + ,-0.682440E-03,-0.489715E-03,-0.361190E-03,-0.272582E-03/
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*)'MMOLIE: OMEGA=',SNGL(OMEGA),
+     *                                    ' DENS=',SNGL(DENS)
+ 
+C  COMPUTE VSCAT ANGLE FROM MOLIERE DISTRIBUTION
+      VSCAT = 0.D0
+      IF ( OMEGA .LE. ENEPER ) RETURN
+      CNST  = LOG(OMEGA)
+      B     = 5.D0
+      DO 10 L = 1,10
+        IF ( ABS(B) .LT. 1.D-10 ) THEN
+          B = 1.D-10
+        ENDIF
+        DB = - (B - LOG(ABS(B)) - CNST)/(1.D0 - 1.D0/B)
+        B  = B + DB
+        IF ( ABS(DB) .LE. 0.0001D0 ) GOTO 20
+ 10   CONTINUE
+      RETURN
+ 20   CONTINUE
+      IF ( B .LE. 0.D0 ) RETURN
+C  CHC IS DEFINED DIFFERENTLY FROM GEANT
+      CHIC = CHC*SQRT(CHI)/(PAMA(5)*GAMMA*BETA**2)
+      BINV = 1.D0/B
+      TINT(1) = 0.D0
+      DO 30   JA = 2,4
+        TINT(JA) = F0I(JA) + ( F1I(JA) + F2I(JA)*BINV ) * BINV
+ 30   CONTINUE
+      NMAX = 4
+ 40   CONTINUE
+      CALL RMMAR(RD,2,1)
+      XINT = RD(2)
+      DO 50 NA = 3,40
+        IF ( NA .GT. NMAX ) THEN
+          TINT(NA) = F0I(NA) + ( F1I(NA) + F2I(NA)*BINV ) * BINV
+          NMAX = NA
+        ENDIF
+        IF ( XINT .LE. TINT(NA-1) ) GOTO 60
+ 50   CONTINUE
+      IF ( XINT .LE. TINT(40) ) THEN
+        NA = 40
+        GOTO 60
+      ELSE
+        TMP  = 1.D0 - ( 1.D0 - B*(1.D0-XINT) )**5
+        IF ( TMP .LE. 0.D0 ) GOTO 40
+        THRI = 5.D0 / TMP
+        GOTO 80
+      ENDIF
+ 60   CONTINUE
+      NA  = MAX(NA-1,3)
+      NA3 = NA-3
+      DO 70 M = 1,4
+        NA3M   = NA3 + M
+        ARG(M) = TINT(NA3M)
+        VAL(M) = THRED(NA3M)**2
+ 70   CONTINUE
+      F = THRED(NA) * .02D0
+      CALL MMOL4(THRI,XINT,VAL,ARG,F,IER)
+ 80   CONTINUE
+      VSCAT = CHIC * SQRT( ABS(B*THRI) )
+      IF ( VSCAT .GT. PI ) GOTO 40
+      SINTH = SIN(VSCAT)
+      TEST  = VSCAT * (RD(1))**2
+      IF ( TEST .GT. SINTH ) GOTO 40
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/moller.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/moller.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/moller.f	(revision 4308)
@@ -0,0 +1,104 @@
+      SUBROUTINE MOLLER
+C                                VERSION 4.00  --  26 JAN 1986/1900
+C******************************************************************
+C   DISCRETE MOLLER SCATTERING (A CALL TO THIS ROUTINE) HAS BEEN
+C   ARBITRARILY DEFINED AND CALCULATED TO MEAN MOLLER SCATTERINGS
+C   WHICH IMPART TO THE SECONDARY ELECTRON SUFFICIENT ENERGY THAT
+C   IT BE TRANSPORTED DISCRETELY.  THE THRESHOLD TO TRANSPORT AN
+C   ELECTRON DISCRETELY IS A TOTAL ENERGY OF AE OR A KINETIC ENERGY
+C   OF TE=AE-RM.  SINCE THE KINETIC ENERGY TRANSFER IS ALWAYS, BY
+C   DEFINITION, LESS THAN HALF OF THE INCIDENT KINETIC ENERGY, THIS
+C   IMPLIES THAT THE INCIDENT ENERGY, EIE, MUST BE LARGER THAN
+C   THMOLL=TE*2+RM.  THE REST OF THE COLLISION CONTRIBUTION IS
+C   SUBTRACTED CONTINUOUSLY FROM THE ELECTRON AS IONIZATION
+C   LOSS DURING TRANSPORT.
+C******************************************************************
+      DOUBLE PRECISION PEIE,PEKSE2,PESE1,PESE2
+      DOUBLE PRECISION PEKIN,H1,DCOSTH,PEKINI
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/THRESH/RMT2,RMSQ,ESCD2,AP,API,AE,UP,UE,TE,THMOLL
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' MOLLER:NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      PEIE=E(NP)
+      EIE=PEIE
+      PEKIN=PEIE-PRM
+      EKIN=PEKIN
+      PEKINI=1./PEKIN
+      EKINI=PEKINI
+      T0=EKIN*RMI
+      E0=T0+1.0
+      EXTRAE = EIE - THMOLL
+      E02=E0*E0
+      BETAI2=E02/(E02-1.0)
+      EP0=TE*EKINI
+      G1=(1.-2.*EP0)*BETAI2
+      G2=T0*T0*(1./E02)
+      G3=(2.*T0+1.)*(1./E02)
+931   CONTINUE
+       CALL RMMAR(RD,2,2)
+       RNNO27=RD(1)
+       RNNO28=RD(2)
+       BR = TE/(EKIN-EXTRAE*RNNO27)
+       R=BR/(1.-BR)
+       REJF4=G1*(1.+G2*BR*BR+R*(R-G3))
+       IF((RNNO28.LE.REJF4))GO TO932
+      GO TO 931
+932   CONTINUE
+      PEKSE2=BR*EKIN
+      PESE1=PEIE-PEKSE2
+      PESE2=PEKSE2+PRM
+      E(NP)=PESE1
+      E(NP+1)=PESE2
+      H1=(PEIE+PRM)*PEKINI
+      DCOSTH=MIN(H1*(PESE1-PRM)/(PESE1+PRM),1.D0)
+      SINTHE=SQRT(1.D0-DCOSTH)
+      COSTHE=SQRT(DCOSTH)
+      CALL UPHI(2,1)
+      NP=NP+1
+      IQ(NP)=3
+      DCOSTH=MIN(H1*(PESE2-PRM)/(PESE2+PRM),1.D0)
+      SINTHE=-SQRT(1.D0-DCOSTH)
+      COSTHE=SQRT(DCOSTH)
+      CALL UPHI(3,2)
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mpoiss.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mpoiss.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mpoiss.f	(revision 4308)
@@ -0,0 +1,80 @@
+      SUBROUTINE MPOISS(AMEAN,NPRAN)
+ 
+C-----------------------------------------------------------------------
+C   M(UON COULOMB SCATTERING) POISS(ON DISTRIBUTION)
+C
+C  GENERATES A RANDOM NUMBER POISSON DISTRIBUTED WITH MEAN VALUE AMEAN.
+C  THIS SUBROUTINE IS IN ANALOGY WITH SUBROUTINE GPOISS.
+C  (AUTHOR: L. URBAN) OF GEANT321
+C  SEE CERN PROGRAM LIBRARY LONG WRITEUP W5013.
+C  THIS SUBROUTINE IS CALLED FROM MUCOUL
+C  ARGUMENTS:
+C   AMEAN =  MEAN VALUE OF RANDOM NUMBER
+C   NPRAN =  RANDOM NUMBER POISSON DISTRIBUTED
+C
+C  REDESIGN: D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION AMEAN,AN,HMXINT,P,PLIM,RR,S,X
+      INTEGER          NPRAN
+      DATA             PLIM/16.D0/,HMXINT/2.D9/
+C-----------------------------------------------------------------------
+ 
+C  PROTECTION AGAINST NEGATIVE MEAN VALUES
+      AN = 0.D0
+      IF ( AMEAN .GT. 0.D0 ) THEN
+        IF ( AMEAN .LE. PLIM ) THEN
+          CALL RMMAR(RD,1,1)
+          P = EXP(-AMEAN)
+          S = P
+          IF ( RD(1) .LE. S ) GOTO 20
+ 10       AN = AN + 1.D0
+          P = P * AMEAN / AN
+          S = S + P
+          IF ( S .LT. RD(1)  .AND.  P .GT. 1.D-30 ) GOTO 10
+        ELSE
+          CALL RMMAR(RD,2,1)
+          RR  = SQRT( -2.D0*LOG(RD(1)) )
+          X = RR * COS( PI2 * RD(2) )
+          AN = MIN( MAX( AMEAN+X*SQRT(AMEAN), 0.D0 ), HMXINT )
+        ENDIF
+      ENDIF
+ 20   NPRAN = AN
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mpprop.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mpprop.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mpprop.f	(revision 4308)
@@ -0,0 +1,110 @@
+      SUBROUTINE MPPROP
+C
+C*********************************************************************
+C  DESIGN  : D. HECK   IK3  FZK KARLSRUHE
+C  DATE    : JUL  14, 1989
+C*********************************************************************
+C  SUBROUTINE MOVES MUONS AND PIONS FROM EGS-STACK TO CORSIKA-STACK.
+C*********************************************************************
+      DOUBLE PRECISION AMASS
+C     DOUBLE PRECISION CUT
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEND.
+      DOUBLE PRECISION PRRMMU
+      COMMON/MUON/PRRMMU,RMMU,RMMUT2
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEND.
+      DOUBLE PRECISION PI0MSQ
+      COMMON/PION/PI0MSQ,PITHR,PICMAS,PI0MAS,AMASK0,AMASKC,AMASPR,AMASNT
+     *
+*KEEP,POLAR.
+      COMMON /POLAR/   POLART,POLARF
+      DOUBLE PRECISION POLART,POLARF
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' MPPROP:NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+C***  SET MASS AND CUT PARAMETER OF PARTICLE UNDER CONSIDERATION
+      IF (IQ(NP).LT.7) THEN
+       AMASS=PRRMMU
+C      CUT=ELCUT(2)*1000.D0
+      ELSEIF(IQ(NP).EQ.7) THEN
+       AMASS=PI0MAS
+C      CUT=ELCUT(1)*1000.D0
+       POLART=1.D0
+       POLARF=0.D0
+      ELSE
+       AMASS=PICMAS
+C      CUT=ELCUT(1)*1000.D0
+       POLART=1.D0
+       POLARF=0.D0
+      END IF
+C***  USE PARTICLE ONLY IF ABOVE CUT AND INSIDE ACCEPTANCE CONE
+C     IF (E(NP)-AMASS.GT.CUT .AND. W(NP).GT.C(29)) THEN
+      IF (W(NP).GT.C(29)) THEN
+C *** ANGLE WITH RESPECT TO X AXIS
+       IF (U(NP)**2+V(NP)**2.GT.3.E-38) THEN
+        ANGLEX = -ATAN2(V(NP),U(NP))
+       ELSE
+        ANGLEX = 0.
+       END IF
+C ***  FILL MUON/PION COORDINATES INTO CORSIKA-STACK
+       SECPAR(1)=IQ(NP)
+       SECPAR(2)=E(NP)/AMASS
+       SECPAR(3)=W(NP)
+       SECPAR(4)=ANGLEX
+       SECPAR(5)=-Z(NP)
+       SECPAR(6)=TIME(NP)
+       SECPAR(7)=X(NP)
+       SECPAR(8)=-Y(NP)
+       SECPAR(9)=IGEN(NP)
+       SECPAR(10)=-Z(NP)
+       SECPAR(11)=POLART
+       SECPAR(12)=POLARF
+C ***  ADD MUON/PION TO CORSIKA-STACK
+       CALL TSTOUT
+      END IF
+C***  ELIMINATE MUON/PION FROM EGS-STACK
+      POLART=-POLART
+      POLARF=POLARF+PI
+      NP=NP-1
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mscat.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mscat.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mscat.f	(revision 4308)
@@ -0,0 +1,148 @@
+      SUBROUTINE MSCAT
+C                                VERSION 4.00  --  26 JAN 1986/1900
+C******************************************************************
+      COMMON/ELECIN/EKELIM,ICOMP,EKE0,EKE1,CMFP0,CMFP1,RANGE0,RANGE1, XR
+     *0,TEFF0,BLCC,XCC,PICMP0(1),PICMP1(1),EICMP0(1),EICMP1(1),MPEEM(1),
+     * ESIG0(500),ESIG1(500),PSIG0(500),PSIG1(500),EDEDX0(500),EDEDX1(50
+     *0),PDEDX0(500),PDEDX1(500),EBR10(500),EBR11(500),PBR10(500),PBR11(
+     *500),PBR20(500),PBR21(500),TMXS0(500),TMXS1(500),CMFPE0(1),CMFPE1(
+     *1),CMFPP0(1),CMFPP1(1),ERANG0(1),ERANG1(1),PRANG0(1),PRANG1(1),CXC
+     *2E0(1),CXC2E1(1),CXC2P0(1),CXC2P1(1),CLXAE0(1),CLXAE1(1),CLXAP0(1)
+     *,CLXAP1(1), THR0(1,1),THR1(1,1),THR2(1,1),THRI0(1,1),THRI1(1,1),TH
+     *RI2(1,1),FSTEP(16),FSQR(16),MSMAP(200), VERT1(1000),VERT2(100,16),
+     *MSTEPS,JRMAX,MXV1, MXV2,NBLC,NRNTH,NRNTHI,BLC0,BLC1,RTHR0,RTHR1,RT
+     *HRI0,RTHRI1
+*KEEP,EPCONT.
+      COMMON/EPCONT/   EDEP,RATIO,TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,IDISC,
+     *                 IROLD,IRNEW,RHOFAC, EOLD,ENEW,EKE,ELKE,BETA2,GLE,
+     *                 TSCAT,IAUSFL
+      DOUBLE PRECISION EDEP,RATIO
+      REAL             TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,RHOFAC,EOLD,ENEW,
+     *                 EKE,ELKE,BETA2,GLE,TSCAT
+      INTEGER          IDISC,IROLD,IRNEW,IAUSFL(29)
+*KEND.
+      COMMON/MISC/KMPI,KMPO,DUNIT,NOSCAT,MED(6),RHOR(6),IRAYLR(6)
+      COMMON/MULTS/NG21,B0G21,B1G21,G210(7),G211(7),G212(7), NG22,B0G22,
+     *B1G22,G220(8),G221(8),G222(8), NG31,B0G31,B1G31,G310(11),G311(11),
+     *G312(11), NG32,B0G32,B1G32,G320(25),G321(25),G322(25), NBGB,B0BGB,
+     *B1BGB,BGB0(8),BGB1(8),BGB2(8)
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/THRESH/RMT2,RMSQ,ESCD2,AP,API,AE,UP,UE,TE,THMOLL
+      COMMON/UPHIIN/SINC0,SINC1,SIN0(20002),SIN1(20002)
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' MSCAT: NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      VSTEFF=TVSTEP*RHOFAC
+      OMEGA0=BLCC*VSTEFF/BETA2
+      IF ((OMEGA0.LE.1.0)) THEN
+       SINTHE=0.0
+       COSTHE=1.0
+       THETA=0.0
+       NOSCAT=NOSCAT+1
+       RETURN
+      END IF
+      BLC=LOG(OMEGA0)
+      IF (BLC.LE.1.30685) THEN
+       B=1.530394*BLC
+      ELSE
+       IB=B0BGB+BLC*B1BGB
+       IF (IB.GT.NBGB) THEN
+        WRITE(KMPO,940)IB
+940     FORMAT('MSCAT: NBGB<IB=',I5)
+       END IF
+       B=BGB0(IB)+BLC*(BGB1(IB)+BLC*BGB2(IB))
+      END IF
+      XR=XCC*SQRT(MAX(0.,VSTEFF*B))/(EOLD*BETA2)
+      IF (B.GT.2.0) THEN
+       BI=1./B
+       BMD=1./(1.0+1.75*BI)
+       BM1=(1.0-2.0*BI)*BMD
+       BM2=(1.0+0.025*BI)*BMD
+      ELSE
+       BI=0.5
+       BM1=(1.-2./B)*0.53333333
+       BM2=0.54
+      END IF
+951   CONTINUE
+       CALL RMMAR(RMS1,1,2)
+       IF (RMS1.LE.BM1) THEN
+        CALL RMMAR(RMS2,1,2)
+        IF((RMS2.EQ.0.0))RMS2=1.E-30
+        THR=SQRT(MAX(0.,-LOG(RMS2)))
+       ELSE IF((RMS1.LE.BM2)) THEN
+        CALL RMMAR(RD,3,2)
+        RMS3=RD(1)
+        RMS4=RD(2)
+        RMS5=RD(3)
+        ETA=MAX(RMS3,RMS4)
+        I31=B0G31+ETA*B1G31
+        G31=G310(I31)+ETA*(G311(I31)+ETA*G312(I31))
+        I32=B0G32+ETA*B1G32
+        G32=G320(I32)+ETA*(G321(I32)+ETA*G322(I32))
+        G3=G31+G32*BI
+        IF((RMS5.GT.G3))GO TO951
+        THR=1.0/ETA
+       ELSE
+        CALL RMMAR(RD,2,2)
+        RMS6=RD(1)
+        RMS7=RD(2)
+        THR=RMS6
+        I21=B0G21+THR*B1G21
+        G21=G210(I21)+THR*(G211(I21)+THR*G212(I21))
+        I22=B0G22+THR*B1G22
+        G22=G220(I22)+THR*(G221(I22)+THR*G222(I22))
+        G2=G21+G22*BI
+        IF((RMS7.GT.G2))GO TO951
+       END IF
+       THETA=THR*XR
+       IF((THETA.GE.PI))GO TO951
+       LTHETA=SINC1*THETA+SINC0
+       SINTHE=SIN1(LTHETA)*THETA+SIN0(LTHETA)
+       CALL RMMAR(RMS8,1,2)
+       IF(((RMS8*RMS8*THETA.LE.SINTHE)))GO TO952
+      GO TO 951
+952   CONTINUE
+      CTHET=PI5D2-THETA
+      LCTHET=SINC1*CTHET+SINC0
+      COSTHE=SIN1(LCTHET)*CTHET+SIN0(LCTHET)
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mubrem.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mubrem.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mubrem.f	(revision 4308)
@@ -0,0 +1,189 @@
+      SUBROUTINE MUBREM
+ 
+C-----------------------------------------------------------------------
+C  MU(ON) BREM(SSTRAHLUNG)
+C
+C  TREATES MUON BREMSSTRAHLUNG (WITHOUT POLARISATION EFFECTS)
+C  IN ANALOGY WITH SUBROUTINE GBREMM FROM GEANT WRITTEN BY L. URBAN
+C  EXPLANATIONS SEE CERN PROGRM LIBRARY LONG WRITEUP W5013
+C  THIS SUBROUTINE IS CALLED FROM MUTRAC
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,MUPART.
+      COMMON /MUPART/  AMUPAR,BCUT,CMUON,FMUBRM,FMUORG
+      DOUBLE PRECISION AMUPAR(14),BCUT,CMUON(11)
+      LOGICAL          FMUBRM,FMUORG
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,POLAR.
+      COMMON /POLAR/   POLART,POLARF
+      DOUBLE PRECISION POLART,POLARF
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,REST.
+      COMMON /REST/    CONTNE,TAR,LT
+      DOUBLE PRECISION CONTNE(3),TAR
+      INTEGER          LT
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION ALFA1,AUXIL,BETA1,COSTH3,COSTH4,CREJ,D,F1,
+     *                 EKIN,EMUON,PHI3,SCREJ,SINTH3,THETA3,U,UMAX,
+     *                 V,VC,VM,V1,W1,Z
+      INTEGER          I
+      DATA             ALFA1/0.625D0/
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' MUBREM: CURPAR=',1P,9E10.3)
+ 
+C  COPY COORDINATES TO SECPAR
+      DO 11 I = 5,8
+        SECPAR(I) = CURPAR(I)
+ 11   CONTINUE
+      SECPAR( 9)  = GEN
+C  TOTAL AND KINETIC ENERGY OF MUON
+      EMUON = PAMA(5) * GAMMA
+      EKIN  = EMUON - PAMA(5)
+      IF ( EKIN .LE. BCUT ) THEN
+C   MUON ENERGY IS TOO LOW TO PRODUCE BREMSSTRAHLUNG
+        SECPAR(2) = CURPAR(2)
+        GOTO 900
+      ENDIF
+      VC = BCUT/EMUON
+      VM = 1.D0 - CMUON(6+LT)/EMUON
+      IF ( VM .LE. 0.D0 ) THEN
+C  MAXIMUM OF BREMSSTRAHLUNG SPECTRUM IS NEGATIVE, NO BREMSSTRAHLUNG
+        SECPAR(2) = CURPAR(2)
+        GOTO 900
+      ENDIF
+      CREJ  = CMUON(3+LT)/EMUON
+ 
+  50  CALL RMMAR(RD,2,1)
+      V     = VC*(VM/VC)**RD(1)
+      V1    = 1.D0 - V
+C  COMPUTE REJECTION FUNCTION
+      F1    = CMUON(LT) - LOG(1.D0 + CREJ*V/V1)
+      SCREJ = (V1 + 0.75D0*V*V)*F1/CMUON(LT)
+      IF ( RD(2) .GT. SCREJ ) GOTO 50
+ 
+C  PHOTON ENERGY
+      SECPAR(2) = EMUON * V
+ 
+C  RADIATED GAMMA BELOW CUT? THEN REDUCE ENERGY OF MUON
+      IF ( SECPAR(2) .LE. ELCUT(4) ) THEN
+        GO TO 800
+      ENDIF
+ 
+C  SET MATERIAL CONSTANTS CMUON(.) ACCORDING TO
+C  TARGET INDEX LT (1=N, 2=O, 3=AR)  WHICH HAS BEEN SET IN BOX2
+      IF     ( LT .EQ. 1 ) THEN
+        Z = 7.D0
+      ELSEIF ( LT .EQ. 2 ) THEN
+        Z = 8.D0
+      ELSE
+        Z = 18.D0
+      ENDIF
+ 
+C  GENERATE EMITTED PHOTON ANGLES WITH RESPECT TO MUON DIRECTION
+C  PHI IS GENERATED ISOTROPICALLY AND THETA IS ASSIGNED A UNIVERSAL
+C  ANGULAR DISTRIBUTION WITH D=D(Z,E,V)
+C  THIS FUNCTION APPROXIMATES THE REAL DISTRIBUTION FUNCTION WHICH CAN
+C  BE FOUND IN: YUNG-SU TSAI, REV. MOD. PHYS. 46(1974)815
+C                   +ERRATUM: REV. MOD. PHYS. 49(1977)421
+      D = 0.13D0 *(0.8D0 + 1.3D0/Z) * (100.D0 + 1.D0/EMUON) * (1.D0 + V)
+      W1   = 9.D0 / (9.D0 + D)
+      UMAX = EMUON * PI / PAMA(5)
+10    CALL RMMAR(RD,3,1)
+      IF ( RD(1) .LE. W1 ) THEN
+        BETA1 = ALFA1
+      ELSE
+        BETA1 = 3.D0 * ALFA1
+      ENDIF
+      U = -( LOG(RD(2) * RD(3)) ) / BETA1
+C  CUT: THETA SHOULD BE .LE. PI  !
+C  THIS CONDITION DEPENDS ON E IN THE CASE OF D=CONST TOO!
+      IF ( U .GE. UMAX ) GOTO 10
+ 
+      THETA3 = U * PAMA(ITYPE) / EMUON
+      COSTH3 = COS( THETA3 )
+      SINTH3 = SIN( THETA3 )
+      CALL RMMAR(RD,1,1)
+ 
+      PHI3   = PI2 * RD(1)
+      CALL ADDANG( COSTHE,PHI, COSTH3,PHI3, SECPAR(3),SECPAR(4))
+      IF ( SECPAR(3) .GT. C(29) ) THEN
+C  WRITE BREMSSTRAHLUNG PHOTON TO STACK
+        SECPAR( 1) = 1.D0
+        SECPAR(10) = H
+        CALL TSTACK
+      ENDIF
+ 
+C  REDUCE ENERGY OF MUON
+ 800  CONTINUE
+      EMUON = EMUON * V1
+      SECPAR(2) = EMUON/PAMA(5)
+ 
+ 900  CONTINUE
+C  WRITE MUON TO STACK
+      SECPAR( 1) = CURPAR(1)
+      SECPAR( 3) = CURPAR(3)
+      SECPAR( 4) = CURPAR(4)
+      SECPAR(10) = ALEVEL
+      CALL TSTACK
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mucoul.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mucoul.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mucoul.f	(revision 4308)
@@ -0,0 +1,109 @@
+      SUBROUTINE MUCOUL(OMEGA,DENS,VSCAT)
+ 
+C-----------------------------------------------------------------------
+C   MU(ON) COUL(OMB SCATTERING OF SINGLE SCATTERING EVENTS)
+C
+C  TREATES SINGLE COULOMB SCATTERING FOR MUONS IN SMALL ANGLE
+C  APPROXIMATION.
+C  THIS SUBROUTINE IS IN ANALOGY WITH SUBROUTINE GMCOUL
+C  (AUTHOR: G. LYNCH, LBL) OF GEANT321
+C  SEE CERN PROGRAM LIBRARY LONG WRITEUP W5013
+C  THIS SUBROUTINE IS CALLED FROM UPDATE
+C  ARGUMENTS:
+C   OMEGA = NUMBER OF SCATTERINGS FOR THE STEP
+C   DENS  = LOCAL DENSITY
+C   VSCAT = SCATTERING ANGLE
+C
+C  REDESIGN: D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,MUMULT.
+      COMMON /MUMULT/  CHC,OMC,FMOLI
+      DOUBLE PRECISION CHC,OMC
+      LOGICAL          FMOLI
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION DENS,OMCF,OMEGA,OMEGA0,PHIS,SUMX,SUMY,
+     *                 THET,THMIN2,VSCAT
+      INTEGER          I,NSCMX,NSCA
+      DATA             OMCF/1.167D0/,NSCMX/50/
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*)'MUCOUL: OMEGA=',SNGL(OMEGA),
+     *                                    ' DENS=',SNGL(DENS)
+ 
+C  COMPUTE NUMBER OF SCATTERS (POISSON DISTR. WITH MEAN OMEGA0)
+      OMEGA0 = OMCF*OMEGA
+      CALL MPOISS (OMEGA0,NSCA)
+      IF ( NSCA .LE. 0 ) THEN
+        VSCAT = 0.D0
+        RETURN
+      ENDIF
+      NSCA = MIN(NSCA,NSCMX)
+      CALL RMMAR(RD,2*NSCA,1)
+ 
+C  THMIN2 IS THE SCREENING ANGLE
+      THMIN2 = CHC**2/( OMCF*OMC * (PAMA(5)*BETA*GAMMA)**2 )
+ 
+      SUMX = 0.D0
+      SUMY = 0.D0
+      DO 12 I = 1,NSCA
+        THET  = SQRT( THMIN2*((1./RD(I)) - 1.) )
+        PHIS  = PI2 * RD(NSCA+I)
+        SUMX  = SUMX + THET*COS(PHIS)
+        SUMY  = SUMY + THET*SIN(PHIS)
+ 12   CONTINUE
+      VSCAT  = SQRT(SUMX**2 + SUMY**2)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mudecy.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mudecy.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mudecy.f	(revision 4308)
@@ -0,0 +1,126 @@
+      SUBROUTINE MUDECY
+ 
+C-----------------------------------------------------------------------
+C  MU(ON) DEC(A)Y
+C
+C  TREATES DECAY OF MUON INTO ELECTRON (INCLUDING POLARISATION EFFECTS)
+C  INCLUDING NEUTRINOS, IF SELECTED
+C  THIS SUBROUTINE IS CALLED FROM MUTRAC
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,POLAR.
+      COMMON /POLAR/   POLART,POLARF
+      DOUBLE PRECISION POLART,POLARF
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION AUX2,COSDE,COSTH3,COS3CM,COS3C1,COS3C2,
+     *                 E3CM,GAMMA3,PHI3CM,PHI3C2,PHI31,
+     *                 P3CM,XI
+      INTEGER          I
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' MUDECY: CURPAR=',1P,9E10.3)
+ 
+C  MUON DECAYS INTO ELECTRON AND NEUTRINOS
+      XI     = 2*ITYPE - 11
+C  ELECTRON ENERGY SPECTRUM  N(E) * DE = CONST * E**2 * (3/2*E0-E) * DE
+C  IS GAINED BY THE REJECTION/REFLECTION METHOD
+   6  CALL RMMAR( RD,4,1 )
+      IF ( RD(1)**2*(3.-RD(1)*2.)  .LT.  RD(2) )  RD(1) = 1.-RD(1)
+      E3CM   = PAMA(2) + RD(1) * ( C(8) - PAMA(2) )
+      IF ( E3CM .GT. 0.5D0*PAMA(5) )  GOTO 6
+      P3CM   = SQRT( E3CM**2 - PAMA(2)**2 )
+C  NOW DETERMINE COS3C1 AND PHI31 BY RANDOM SELECTION
+C  WITH RESPECT TO THE POLARIZATION DIRECTION OF THE MUON IN THE MU CM
+C  GIVEN BY POLART, POLARF
+      COSDE  = 2.D0 * RD(4) - 1.D0
+      AUX2   = ( 1. - 2.*RD(1) ) / ( 3. - 2.*RD(1) )
+      IF ( ABS(AUX2) .GT. 1.D-2 ) THEN
+        COS3C1 = XI*(SQRT(1.D0-(2.D0*COSDE-AUX2)*AUX2) - 1.D0) / AUX2
+      ELSE
+        COS3C1 = -XI * COSDE
+      ENDIF
+      PHI31  = RD(3)*PI2
+ 
+C  NOW ADD ELECTRON EMISSION ANGLE COS3C1 TO THE POLARISATION DIRECTION
+C  TO GET THE DIRECTION (RELATIVE TO THE CORSIKA COORDINATE SYSTEM)
+      CALL ADDANG( POLART,POLARF, COS3C1,PHI31, COS3C2,PHI3C2 )
+C  GET THE ELECTRON DIRECTION RELATIVE TO THE MUON LAB DIRECTION
+      CALL ADDANI( CURPAR(3),CURPAR(4), COS3C2,PHI3C2, COS3CM,PHI3CM )
+C  LORENTZ TRANSFORMATION TO THE LAB SYSTEM
+      GAMMA3 = GAMMA * ( E3CM + BETA * P3CM * COS3CM ) / PAMA(2)
+      COSTH3 = MIN( 1.D0, GAMMA * (P3CM * COS3CM + BETA * E3CM) /
+     *                             (PAMA(2) * SQRT(GAMMA3**2 - 1.D0)) )
+      CALL ADDANG( CURPAR(3),CURPAR(4), COSTH3,PHI3CM,
+     *                                    SECPAR(3),SECPAR(4) )
+      IF ( SECPAR(3) .GE. C(29) ) THEN
+        SECPAR(1) = ITYPE - 3
+        SECPAR(2) = GAMMA3
+        DO 10  I = 5,8
+          SECPAR(I) = CURPAR(I)
+  10    CONTINUE
+        SECPAR( 9)  = GEN
+        SECPAR(10)  = ALEVEL
+        CALL TSTACK
+      ENDIF
+      POLART = 0.D0
+      POLARF = 0.D0
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mupair.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mupair.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mupair.f	(revision 4308)
@@ -0,0 +1,194 @@
+      SUBROUTINE MUPAIR
+C
+C*********************************************************************
+C  DESIGN  : D. HECK   IK3  FZK KARLSRUHE
+C  DATE    : JUL  15, 1988
+C*********************************************************************
+C  IN ANALOGY WITH THE SUBROUTINE PAIR.
+C  FOR A PHOTON ENERGY LESS THAN 434 MEV, THE APPROXIMATION IS
+C  MADE THAT THE ENERGY OF ONE POSITIVE OR NEGATIVE MUON IS
+C  UNIFORMLY DISTRIBUTED IN THE INTERVAL (RMMU, EIG/2)  =
+C  (MUON REST MASS, PHOTON ENERGY/2).
+C  FOR PHOTON ENERGY ABOVE 434 MEV THE
+C  COULOMB CORRECTED BETHE-HEITLER CROSS SECTION IS USED.
+C  (BUTCHER AND MESSEL, OP. CIT., P. 17-19, 22).
+C  ========== THIS MAY BE INCORRECT ==========
+C*********************************************************************
+      DOUBLE PRECISION PEIG,PESE1,PESE2
+      DOUBLE PRECISION ENERN
+      COMMON/BREMPR/DL1(6),DL2(6),DL3(6),DL4(6),DL5(6),DL6(6),DELCM, ALP
+     *HI(2),BPAR(2),DELPOS(2),PWR2I(50)
+      DOUBLE PRECISION PRRMMU
+      COMMON/MUON/PRRMMU,RMMU,RMMUT2
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,POLAR.
+      COMMON /POLAR/   POLART,POLARF
+      DOUBLE PRECISION POLART,POLARF
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/THRESH/RMT2,RMSQ,ESCD2,AP,API,AE,UP,UE,TE,THMOLL
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' MUPAIR:NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      IF(DEBUG)WRITE(MDEBUG,*)'MUPAIR: E=',E(NP)
+      IGEN(NP) = IGEN(NP) + 1
+C***  PRECISE ENERGY OF INCIDENT GAMMA
+      PEIG=E(NP)
+C ***  SUBTRACT EM SUBSHOWER FROM NKG CALCULATION
+      IF ( FNKG ) THEN
+        SECPAR(3) = W(NP)
+        IF (U(NP)**2+V(NP)**2.GT.3.E-38) THEN
+          ANGLEX = -ATAN2(V(NP),U(NP))
+        ELSE
+          ANGLEX = 0.
+        END IF
+        SECPAR(4) = ANGLEX
+        SECPAR(5) = -Z(NP)
+        ENERN = -PEIG*1.D-3
+        CALL NKG(ENERN)
+      ENDIF
+C***  ENERGY OF INCIDENT GAMMA
+      EIG=PEIG
+      IF (EIG.LE.434.) THEN
+C ***  BELOW 434.MEV, WE ASSUME UNIFORM ENERGY
+C ***  DISTRIBUTION OF THE MUON #2 IN THE INTERVAL (RMMU, EIG/2).
+C ***  SEE ALSO SLAC-265, P.49  FOR FURTHER DISCUSSION.
+       CALL RMMAR(RNNO29,1,2)
+       ESE2=(EIG*0.5-RMMU)*RNNO29+RMMU
+      ELSE
+C ***  ABOVE 434.MEV, MUST SAMPLE
+C ***  COULOMB CORRECTED(LVX=2,LVL=4,6) CROSS SECTIONS.
+C ***  SEE RELATED COMMENTS IN BREMS.
+       LVX=2
+       LVL0=3
+181    CONTINUE
+C  ***  RETRY IF REJECTED BECAUSE DEL OUT OF RANGE, OR BY SCREENING
+C  ***  WE'LL NEED AT LEAST ONE RANDOM NUMBER
+        CALL RMMAR(RD,2,2)
+        RNNO30=RD(1)
+C  ***  NOW DECIDE WHICH OF THE TWO SUBDISTRIBUTIONS TO USE.
+        RNNO31=RD(2)
+        IF (RNNO31.GE.BPAR(LVX)) THEN
+C   ***  USE THE SUBDISTRIBUTION THAT IS PROPORTIONAL TO
+C   ***  12*(BR-0.5)**2. IT USES A(DELTA) FOR SCREENING FUNCTION
+         LVL=LVL0+1
+         CALL RMMAR(RD,2,2)
+         RNNO32=RD(1)
+         RNNO33=RD(2)
+C   ***  FROM SYMMETRY, ONLY NEED TO SAMPLE BR IN INTERVAL (0,.5)
+         BR=0.5*(1.0-MAX(RNNO32,RNNO33,RNNO30))
+        ELSE
+C   ***  USE THE SUBDISTRIBUTION THAT IS PROPORTIONAL TO 1,I.E.
+C   ***  UNIFORM.IT USES C(DELTA) FOR A SCREENING REJECT FUNCTION
+         LVL=LVL0+3
+         BR=RNNO30*0.5
+        END IF
+C  ***  THE SCREENING FUNCTIONS ARE FUNCTIONS OF DELTA=DELCM*DEL,
+C  ***  WHERE DELCM= 136.0*EXP(ZG)*RM (SAME AS FOR BREMS)
+C  ***  AND WHERE DEL=1./(EG0*BR*(1.0-BR))
+C  ***  WITH EG0 = INCIDENT PHOTON ENERGY AND BR=ENERGY FRACTION.
+        IF((BR.EQ.0.0))GO TO181
+C  ***  TO AVOID DIVISION BY ZERO
+        DEL=1.0/(EIG*BR*(1.0-BR))
+        IF((DEL.GE.(RM/RMMU)*DELPOS(LVX)))GO TO181
+C  ***  NEXT TRY
+C  ***  THE PRECEDING CONDITION ENSURES THAT A(DELTA) AND C(DELTA)
+C  ***  WILL BE POSITIVE. IF IT IS NOT SATISFIED,LOOP BACK AND TRY
+C  ***  ANOTHER SAMPLE.
+        DELTA=(RMMU*RMI)*DELCM*DEL
+        IF (DELTA.LT.1.0) THEN
+         REJF=DL1(LVL)+DELTA*(DL2(LVL) +DELTA*DL3(LVL))
+        ELSE
+         REJF=DL4(LVL)+DL5(LVL) *LOG(DELTA+DL6(LVL))
+        END IF
+C  ***  RANDOM NUMBER FOR SCREENING REJECTION
+        CALL RMMAR(RNSCRN,1,2)
+C  ***  RETRY UNTIL ACCEPTED
+        IF((RNSCRN.LE.REJF))GO TO182
+       GO TO 181
+182    CONTINUE
+C ***  BR=PRODUCT ENERGY FRACTION
+C ***  ENERGY OF SECONDARY 'MUON' #2
+       ESE2=BR*EIG
+C ***  END OF EIG.GT.434 ELSE
+      END IF
+C***  ENERGY GOING TO LOWER SECONDARY HAS NOW BEEN DETERMINED
+C***  PRECISE ENERGY OF SECONDARY 'MUON' 2
+      PESE2=ESE2
+C***  PRECISE ENERGY OF SECONDARY 'MUON' 1
+      PESE1=PEIG-PESE2
+      E(NP)=PESE1
+      E(NP+1)=PESE2
+C***  THIS AVERAGE ANGLE OF EMISSION FOR BOTH PAIR PRODUCTION AND
+C***  BREMSSTRAHLUNG IS MUCH SMALLER THAN THE AVERAGE ANGLE OF
+C***  MULTIPLE SCATTERING FOR DELTA T TRANSPORT=0.01 R.L.
+C***  THE INITIAL AND FINAL MOMENTA ARE COPLANAR
+C***  SET UP A NEW 'MUON'
+      THETA=RMMU/EIG
+      CALL UPHI(1,1)
+C***  SET UP A NEW 'MUON'
+      NP=NP+1
+      SINTHE=-SINTHE
+      CALL UPHI(3,2)
+C***  NOW RANDOMLY DECIDED WHICH IS POSITIVE MUON, AND SET
+C***  CHARGES ACCORDINGLY
+      CALL RMMAR(RNNO34,1,2)
+      IF (RNNO34.LE.0.5) THEN
+C ***  POSITIVE MUON ON TOP
+       IQ(NP)=5
+       IQ(NP-1)=6
+      ELSE
+C ***  NEGATIVE MUON ON TOP
+       IQ(NP)=6
+       IQ(NP-1)=5
+      END IF
+      CALL RMMAR(RD,2,2)
+      RNPOLT=RD(1)
+      RNPOLF=RD(2)
+      POLART=2.*RNPOLT-1.
+      POLARF=TWOPI*RNPOLF
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/muprpr.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/muprpr.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/muprpr.f	(revision 4308)
@@ -0,0 +1,183 @@
+      SUBROUTINE MUPRPR
+ 
+C-----------------------------------------------------------------------
+C  MU(ON) P(AI)R PR(ODUCTION)
+C
+C  TREATES MUON PAIR PRODUCTION (WITHOUT POLARISATION EFFECTS)
+C  IN ANALOGY WITH SUBROUTINE GPAIRM FROM GEANT WRITTEN BY L. URBAN
+C  EXPLANATIONS SEE CERN PROGRM LIBRARY LONG WRITEUP W5013
+C  THIS SUBROUTINE IS CALLED FROM MUTRAC
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,MUPART.
+      COMMON /MUPART/  AMUPAR,BCUT,CMUON,FMUBRM,FMUORG
+      DOUBLE PRECISION AMUPAR(14),BCUT,CMUON(11)
+      LOGICAL          FMUBRM,FMUORG
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,POLAR.
+      COMMON /POLAR/   POLART,POLARF
+      DOUBLE PRECISION POLART,POLARF
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,REST.
+      COMMON /REST/    CONTNE,TAR,LT
+      DOUBLE PRECISION CONTNE(3),TAR
+      INTEGER          LT
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION AA,ALE,ALFA,AL10T,A1,A1R,B,BETA1,CC,C1,C2,
+     *                 COSTH3,COSTH4,EKIN,EMUON,ENEG,EPOS,EPP,
+     *                 PHI3,PPOS,R0,R0MAX,SCREJ,SINTH3,
+     *                 TPOS,V,VC,VMAX,VMIN,V0,Z
+      INTEGER          I
+      DATA             AL10T/9.212D0/
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' MUPRPR: CURPAR=',1P,9E10.3)
+ 
+C  COPY COORDINATES TO SECPAR
+      DO 11 I = 5,8
+        SECPAR(I) = CURPAR(I)
+ 11   CONTINUE
+      SECPAR( 9) = GEN
+C  SET MATERIAL CONSTANTS CMUON(.) ACCORDING TO
+C  TARGET INDEX LT (1=N, 2=O, 3=AR)  WHICH HAS BEEN SET IN BOX2
+      IF     ( LT .EQ. 1 ) THEN
+        Z = 7.D0
+      ELSEIF ( LT .EQ. 2 ) THEN
+        Z = 8.D0
+      ELSE
+        Z = 18.D0
+      ENDIF
+C  TOTAL AND KINETIC ENERGY OF MUON
+      EMUON = PAMA(5) * GAMMA
+      EKIN  = EMUON - PAMA(5)
+      IF ( EKIN .LE. BCUT ) GOTO 900
+C
+      VMIN  = 4.D0 * PAMA(2) / EMUON
+      VMAX  = 1.D0 - CMUON(10) * Z**OB3 / EMUON
+      IF ( VMAX .LE. VMIN ) GOTO 900
+      VC    = BCUT / EMUON
+      ALE   = LOG(EMUON)
+      ALFA  = 1.D0 + ALE/AL10T
+      V0    = 0.18D0 * (4.D0 + ALE/AL10T) * ALFA * (ALFA*VMIN)**TB3
+      BETA1 = 0.1D0 * (1.D0 + 3.D0 * ALE/AL10T)
+      B     = 0.9D0 / (1.D0 + 0.4D0*ALE + 0.022D0*ALE**2)
+      AA    = 1.D0 + 2.D0 * B * LOG(VC/V0)
+      IF ( AA .LE. 1.D0 ) AA = 1.05D0
+      A1    = 1.D0 - AA
+      CC    = EXP(-0.25D0*A1*A1/B)
+      A1R   = 1.D0 / A1
+      C1    = VMAX**A1
+      C2    = VC**A1
+C  SAMPLE ENERGY FRACTION V AND RO
+ 50   CALL RMMAR(RD,2,1)
+      V     = ( RD(1)*C1 + (1.-RD(1))*C2 )**A1R
+      IF ( V .LE. VMIN ) GOTO 50
+      IF ( V .LT. V0 ) THEN
+        SCREJ = CC * ( (V-VMIN)/(V0-VMIN) )**BETA * (V0/V)**A1
+      ELSE
+        SCREJ = CC * (V0/V)**( A1 + B*LOG(V/V0) )
+      ENDIF
+      IF ( RD(2) .GT. SCREJ ) GOTO 50
+      R0MAX = SCREJ * ( 1.D0 - 6.D0 *PAMA(5)/( EMUON**2 * (1.D0-V) ) )
+      CALL RMMAR(RD,2,1)
+      R0    = R0MAX * (2.*RD(1)-1.)
+C  ENERGIES
+      EPP  = V * EMUON
+      EPOS = 0.5D0 * EPP * (1.D0 + R0)
+      ENEG = EPP - EPOS
+C  ANGLES
+      COSTH3 = COS( PAMA(5)/EMUON )
+      PHI3   = PI2 * RD(2)
+C  POSITRON
+      IF ( EPOS .GT. BCUT+PAMA(3) ) THEN
+        CALL ADDANG( COSTHE,PHI, COSTH3,PHI3, SECPAR(3),SECPAR(4) )
+        IF ( SECPAR(3) .GT. C(29) ) THEN
+          SECPAR( 1) = 2.D0
+          SECPAR( 2) = EPOS/PAMA(2)
+          SECPAR(10) = H
+          CALL TSTACK
+        ENDIF
+      ENDIF
+C  ELECTRON
+      IF ( ENEG .GT. BCUT+PAMA(3) ) THEN
+        CALL ADDANG( COSTHE,PHI, COSTH3,-PHI3, SECPAR(3),SECPAR(4) )
+        IF ( SECPAR(3) .GT. C(29) ) THEN
+          SECPAR( 1) = 3.D0
+          SECPAR( 2) = ENEG/PAMA(2)
+          SECPAR(10) = H
+          CALL TSTACK
+        ENDIF
+      ENDIF
+C  REDUCE ENERGY OF MUON
+ 60   CONTINUE
+      GAMMA = (EMUON - EPP)/ PAMA(5)
+ 
+ 900  CONTINUE
+C  WRITE MUON TO STACK
+      SECPAR( 1) = CURPAR(1)
+      SECPAR( 2) = GAMMA
+      SECPAR( 3) = CURPAR(3)
+      SECPAR( 4) = CURPAR(4)
+      SECPAR(10) = ALEVEL
+      CALL TSTACK
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mutrac.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mutrac.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/mutrac.f	(revision 4308)
@@ -0,0 +1,233 @@
+      SUBROUTINE MUTRAC
+ 
+C-----------------------------------------------------------------------
+C  MU(ON) TRAC(KING)
+C
+C  TRACKS THE MUON REGARDING MAX. STEP LENGTH FOR MULTIPLE SCATTERING
+C  CHECKS PASSAGE THROUGH OBSERVATION LEVELS
+C  IRET1=1 KILLS PARTICLE
+C  IRET2=1 PARTICLE HAS BEEN CUTTED IN UPDATE
+C  THIS SUBROUTINE IS CALLED FROM BOX3
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,IRET.
+      COMMON /IRET/    IRET1,IRET2
+      INTEGER          IRET1,IRET2
+*KEEP,LONGI.
+      COMMON /LONGI/   APLONG,HLONG,PLONG,SPLONG,THSTEP,THSTPI,
+     *                 NSTEP,LLONGI,FLGFIT
+      DOUBLE PRECISION APLONG(0:1040,9),HLONG(0:1024),PLONG(0:1040,9),
+     *                 SPLONG(0:1040,9),THSTEP,THSTPI
+      INTEGER          NSTEP
+      LOGICAL          LLONGI,FLGFIT
+*KEEP,MUPART.
+      COMMON /MUPART/  AMUPAR,BCUT,CMUON,FMUBRM,FMUORG
+      DOUBLE PRECISION AMUPAR(14),BCUT,CMUON(11)
+      LOGICAL          FMUBRM,FMUORG
+*KEEP,NPARTI.
+      COMMON /NPARTI/  NPARTO,MUOND
+      DOUBLE PRECISION NPARTO(10,25),NPHOTO(10),NPOSIT(10),NELECT(10),
+     *                 NNU(10),NMUP(10),NMUM(10),NPI0(10),NPIP(10),
+     *                 NPIM(10),NK0L(10),NKPL(10),NKMI(10),NNEUTR(10),
+     *                 NPROTO(10),NPROTB(10),NK0S(10),NHYP(10),
+     *                 NNEUTB(10),NDEUT(10),NTRIT(10),NALPHA(10),
+     *                 NOTHER(10),MUOND
+      EQUIVALENCE (NPARTO(1, 1),NPHOTO(1)), (NPARTO(1, 2),NPOSIT(1)),
+     *            (NPARTO(1, 3),NELECT(1)), (NPARTO(1, 4),NNU(1))   ,
+     *            (NPARTO(1, 5),NMUP(1))  , (NPARTO(1, 6),NMUM(1))  ,
+     *            (NPARTO(1, 7),NPI0(1))  , (NPARTO(1, 8),NPIP(1))  ,
+     *            (NPARTO(1, 9),NPIM(1))  , (NPARTO(1,10),NK0L(1))  ,
+     *            (NPARTO(1,11),NKPL(1))  , (NPARTO(1,12),NKMI(1))  ,
+     *            (NPARTO(1,13),NNEUTR(1)), (NPARTO(1,14),NPROTO(1)),
+     *            (NPARTO(1,15),NPROTB(1)), (NPARTO(1,16),NK0S(1))  ,
+     *            (NPARTO(1,18),NHYP(1))  , (NPARTO(1,19),NDEUT(1)) ,
+     *            (NPARTO(1,20),NTRIT(1)) , (NPARTO(1,21),NALPHA(1)),
+     *            (NPARTO(1,22),NOTHER(1)), (NPARTO(1,25),NNEUTB(1))
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION CHITOT,HEIGH,HNEW,PROPAR(8),THCKHN
+      INTEGER          I,IRET3,J,L,LPCT1,LPCT2
+      LOGICAL          FSCAT
+      EXTERNAL         HEIGH
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' MUTRAC: CURPAR=',1P,9E10.3)
+ 
+C  THE PLACE OF NEXT INTERACTION WAS DETERMINED IN BOX2
+C  KEEP TOTAL STEP LENGTH UNTIL DECAY OR INTERACTION OCCURS
+      CHITOT = CHI
+ 
+ 10   CONTINUE
+ 
+C  CALCULATE MAX STEP SIZE (10 RAD. LENGTH) FOR MULTIPLE SCATTERING
+      CHI = MIN( C(20), CHITOT )
+      IF ( CHI .EQ. CHITOT ) THEN
+        FSCAT  = .FALSE.
+        IF (DEBUG) WRITE(MDEBUG,*)'MUTRAC: CHI=',SNGL(CHI)
+      ELSE
+        FSCAT  = .TRUE.
+        IF (DEBUG) WRITE(MDEBUG,*)'MUTRAC: C(20)=',SNGL(C(20))
+      ENDIF
+ 
+ 
+C  CALCULATE HIGHT DIFFERENCE IN CM FROM GIVEN CHI IN G/CM**2
+      THCKHN = THICKH + COSTHE * CHI
+      HNEW   = HEIGH(THCKHN)
+      IF (DEBUG) WRITE(MDEBUG,*)'MUTRAC: THICKH,THCKHN,HNEW=',
+     *                    SNGL(THICKH),SNGL(THCKHN),SNGL(HNEW)
+C  UPDATE MUON TO INTERACTION POINT (IF IT REACHES SO FAR)
+C  AND STORE COORDINATES IN PROPAR
+      CALL UPDATE( HNEW, THCKHN, 0 )
+      IF ( DEBUG ) THEN
+        WRITE(MDEBUG,455) IRET1,IRET2
+  455   FORMAT(' MUTRAC: IRET1..2=',2I5)
+        IF ( IRET2 .EQ. 0 ) WRITE(MDEBUG,454) (OUTPAR(I),I=1,8)
+  454   FORMAT(' MUTRAC: OUTPAR=',1P,8E10.3)
+      ENDIF
+C  STORE MUON FOR FURTHER TREATMENT
+      IF ( IRET2 .EQ. 0 ) THEN
+        DO  3  I = 1,8
+          PROPAR(I) = OUTPAR(I)
+  3     CONTINUE
+        IRET3 = 0
+      ELSE
+C  MUON CUTTED AT INTERACTION POINT; IT MAY HOWEVER PASS SOME OF THE
+C  OBSERVATION LEVELS
+        IRET3 = 1
+      ENDIF
+ 
+C  HERE THE ENDPOINT OF THE CURRENT TRACKING STEP IS WELL DEFINED.
+C  THE MUON IS TRACKED FROM THICKH DOWN TO THICKHN
+C  COUNT THE MUONS FOR THE LONGITUDINAL DEVELOPMENT
+      IF ( LLONGI ) THEN
+        LPCT1 = INT(THICKH*THSTPI + 1.D0)
+        LPCT2 = INT(THCKHN*THSTPI)
+        LPCT2 = MIN(NSTEP,LPCT2)
+        IF     ( ITYPE .EQ. 6 ) THEN
+          DO 5003 L = LPCT1,LPCT2
+            PLONG(L,4) = PLONG(L,4) + 1.D0
+ 5003     CONTINUE
+        ELSEIF ( ITYPE .EQ. 5 ) THEN
+          DO 5013 L = LPCT1,LPCT2
+            PLONG(L,5) = PLONG(L,5) + 1.D0
+ 5013     CONTINUE
+        ENDIF
+      ENDIF
+ 
+C  CHECK OBSERVATION LEVEL PASSAGE AND UPDATE MUON COORDINATES
+      DO  1  J = 1,NOBSLV
+        IF ( HNEW .GT. OBSLEV(J) ) GOTO 2
+        IF ( H    .LT. OBSLEV(J) ) GOTO 1
+C  REMEMBER NUMBER OF LEVEL FOR OUTPUT
+        LEVL  = J
+        CALL UPDATE( OBSLEV(J), THCKOB(J), J )
+        IF (DEBUG) WRITE(MDEBUG,456) J,IRET1,IRET2
+  456   FORMAT(' MUTRAC: OBSLEV=',I5,' IRET1,2=',2I5)
+ 
+C  IF MUON IS NOT CUTTED, BRING IT TO OUTPUT
+        IF ( IRET2 .EQ. 0 ) THEN
+          CALL OUTPUT
+        ENDIF
+  1   CONTINUE
+ 
+C  KILL MUON AS IT DECAYS OR INTERACTS BELOW LOWEST OBSLEVEL
+      IRET1  = 1
+      FMUORG = .FALSE.
+      RETURN
+ 
+C  MUON SCATTERS, DECAYS OR INTERACTS BEFORE PASSING OBSLEVEL
+  2   CONTINUE
+ 
+      IF ( IRET3 .NE. 0 ) THEN
+C  ELIMINATE MUON IF BELOW CUTS
+        IRET1  = 1
+        FMUORG = .FALSE.
+        RETURN
+      ENDIF
+C  MUON IS NOW UPDATED TO POINT OF INTERACTION
+      DO  5  J = 1,8
+        CURPAR(J) = PROPAR(J)
+  5   CONTINUE
+      BETA = SQRT( GAMMA**2 - 1.D0 ) / GAMMA
+      IF ( FSCAT ) THEN
+C  MUON HAS MADE MULTIPLE SCATTERING AND MUST NOW BE TRACKED FURTHER ON
+        CHITOT = CHITOT - C(20)
+        IF ( CHITOT .GT. 0.D0 ) THEN
+          THICKH = THCKHN
+          IF ( DEBUG ) WRITE(MDEBUG,457) (CURPAR(I),I=1,9)
+ 457      FORMAT(' MUTRAC: SCATTER',1P,9E10.3)
+          GOTO 10
+        ENDIF
+      ENDIF
+C  MUONS HAVE TO DECAY IMMEDIATELY OR TO UNDERGO BREMSSTR./PAIRPR.
+      IF ( FDECAY ) THEN
+        ALEVEL = H
+        CALL MUDECY
+        MUOND  = MUOND + 1.D0
+        FMUORG = .FALSE.
+C  MUDECY WRITES EM-PARTICLE TO STACK
+      ELSE
+        IF ( FMUBRM ) THEN
+          CALL MUBREM
+        ELSE
+          CALL MUPRPR
+        ENDIF
+C  MUBREM AND MUPRPR WRITE EM-PARTICLES AND MUON TO STACK
+      ENDIF
+      IRET1 = 1
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/nihila.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/nihila.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/nihila.f	(revision 4308)
@@ -0,0 +1,423 @@
+      SUBROUTINE NIHILA
+ 
+C-----------------------------------------------------------------------
+C  (AN)NIHILA(TION)
+C
+C  TREATES ANNIHILATION OF ANTINUCLEONS WITH FREE NUCLEONS
+C  MOMENTA CONSERVED IN ALL DIRECTIONS
+C  ENERGY CONSERVED BY MULTPLICATION OF ALL MOMENTA WITH A CORRECTION
+C  FACTOR, CONSERVING MOMENTUM BALANCE
+C  THIS SUBROUTINE IS CALLED FROM BOX60, BOX61, BOX62, AND BOX63
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,ANNI.
+      COMMON /ANNI/    CAN,CANN
+      DOUBLE PRECISION CAN(50),CANN(50)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,MULT.
+      COMMON /MULT/    EKINL,MSMM,MULTMA,MULTOT
+      DOUBLE PRECISION EKINL
+      INTEGER          MSMM,MULTMA(37,13),MULTOT(37,13)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,VKIN.
+      COMMON /VKIN/    BETACM
+      DOUBLE PRECISION BETACM
+*KEND.
+ 
+      DOUBLE PRECISION E(10),PHIPAR(10),PL(10),PTR(10),PTSQ(10)
+      DOUBLE PRECISION PX(10),PY(10)
+      DIMENSION ISEQ(10),NTYP(10)
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' NIHILA: CURPAR=',1P,9E10.3)
+ 
+      IREP = 0
+ 
+C  RANDOM DECISION FOR ANNIHILATION WITH PROTON OR NEUTRON
+ 
+  20  CONTINUE
+      CALL RMMAR( RD,2,1 )
+      IREP = IREP + 1
+C  AFTER THE 5TH TRY, QUIT THE ANNIHILATION WITHOUT ANY PION GENERATED
+      IF ( IREP .GT. 5 ) GOTO 999
+      IF ( RD(1) .LE. 0.5 ) THEN
+ 
+C-----------------------------------------------------------------------
+C  ANTIPROTON - PROTON AND ANTINEUTRON - NEUTRON ANNIHILATION
+        IF     ( RD(2) .LE. CANN(1)  ) THEN
+C  ANNIHILATION INTO PI+, PI-
+          NPIPOS = 1
+          NPINEG = 1
+          NPIZ   = 0
+        ELSEIF ( RD(2) .LE. CANN(2)  ) THEN
+C  ANNIHILATION INTO PI+, PI-, PI0
+          NPIPOS = 1
+          NPINEG = 1
+          NPIZ   = 1
+        ELSEIF ( RD(2) .LE. CANN(3)  ) THEN
+C  ANNIHILATION INTO PI+, PI-, 2PI0
+          NPIPOS = 1
+          NPINEG = 1
+          NPIZ   = 2
+        ELSEIF ( RD(2) .LE. CANN(4)  ) THEN
+C  ANNIHILATION INTO PI+, PI-, 3PI0
+          NPIPOS = 1
+          NPINEG = 1
+          NPIZ   = 3
+        ELSEIF ( RD(2) .LE. CANN(5)  ) THEN
+C  ANNIHILATION INTO PI+, PI-, 4PI0
+          NPIPOS = 1
+          NPINEG = 1
+          NPIZ   = 4
+        ELSEIF ( RD(2) .LE. CANN(6)  ) THEN
+C  ANNIHILATION INTO 2PI+, 2PI-
+          NPIPOS = 2
+          NPINEG = 2
+          NPIZ   = 0
+        ELSEIF ( RD(2) .LE. CANN(7)  ) THEN
+C  ANNIHILATION INTO 2PI+, 2PI-, PI0
+          NPIPOS = 2
+          NPINEG = 2
+          NPIZ   = 1
+        ELSEIF ( RD(2) .LE. CANN(8)  ) THEN
+C  ANNIHILATION INTO 2PI+, 2PI-, 2PI0
+          NPIPOS = 2
+          NPINEG = 2
+          NPIZ   = 2
+        ELSEIF ( RD(2) .LE. CANN(9)  ) THEN
+C  ANNIHILATION INTO 2PI+, 2PI-, 3PI0
+          NPIPOS = 2
+          NPINEG = 2
+          NPIZ   = 3
+        ELSEIF ( RD(2) .LE. CANN(10) ) THEN
+C  ANNIHILATION INTO 3PI+, 3PI-
+          NPIPOS = 3
+          NPINEG = 3
+          NPIZ   = 0
+        ELSEIF ( RD(2) .LE. CANN(11) ) THEN
+C  ANNIHILATION INTO 3PI+, 3PI-, PI0
+          NPIPOS = 3
+          NPINEG = 3
+          NPIZ   = 1
+        ELSEIF ( RD(2) .LE. CANN(12) ) THEN
+C  ANNIHILATION INTO 3PI+, 3PI-, 2PI0
+          NPIPOS = 3
+          NPINEG = 3
+          NPIZ   = 2
+        ELSE
+C  ANNIHILATION INTO 4PI0
+          NPIPOS = 0
+          NPINEG = 0
+          NPIZ   = 4
+        ENDIF
+ 
+      ELSE
+C-----------------------------------------------------------------------
+C  ANTIPROTON - NEUTRON (OR ANTINEUTRON - PROTON) ANNIHILATION
+        IF     ( RD(2) .LE. CANN(13) ) THEN
+C  ANNIHILATION INTO PI-, PI0
+          NPIPOS = 0
+          NPINEG = 1
+          NPIZ   = 1
+        ELSEIF ( RD(2) .LE. CANN(14) ) THEN
+C  ANNIHILATION INTO PI-, 2PI0
+          NPIPOS = 0
+          NPINEG = 1
+          NPIZ   = 2
+        ELSEIF ( RD(2) .LE. CANN(15) ) THEN
+C  ANNIHILATION INTO PI-, 3PI0
+          NPIPOS = 0
+          NPINEG = 1
+          NPIZ   = 3
+        ELSEIF ( RD(2) .LE. CANN(16) ) THEN
+C  ANNIHILATION INTO PI-, 4PI0
+          NPIPOS = 0
+          NPINEG = 1
+          NPIZ   = 4
+        ELSEIF ( RD(2) .LE. CANN(17) ) THEN
+C  ANNIHILATION INTO PI-, 5PI0
+          NPIPOS = 0
+          NPINEG = 1
+          NPIZ   = 5
+        ELSEIF ( RD(2) .LE. CANN(18) ) THEN
+C  ANNIHILATION INTO PI+, 2PI-
+          NPIPOS = 1
+          NPINEG = 2
+          NPIZ   = 0
+        ELSEIF ( RD(2) .LE. CANN(19) ) THEN
+C  ANNIHILATION INTO PI+, 2PI-, PI0
+          NPIPOS = 1
+          NPINEG = 2
+          NPIZ   = 1
+        ELSEIF ( RD(2) .LE. CANN(20) ) THEN
+C  ANNIHILATION INTO PI+, 2PI-, 2PI0
+          NPIPOS = 1
+          NPINEG = 2
+          NPIZ   = 2
+        ELSEIF ( RD(2) .LE. CANN(21) ) THEN
+C  ANNIHILATION INTO PI+, 2PI-, 3PI0
+          NPIPOS = 1
+          NPINEG = 2
+          NPIZ   = 3
+        ELSEIF ( RD(2) .LE. CANN(22) ) THEN
+C  ANNIHILATION INTO PI+, 2PI-, 4PI0
+          NPIPOS = 1
+          NPINEG = 2
+          NPIZ   = 4
+        ELSEIF ( RD(2) .LE. CANN(23) ) THEN
+C  ANNIHILATION INTO 2PI+, 3PI-
+          NPIPOS = 2
+          NPINEG = 3
+          NPIZ   = 0
+        ELSEIF ( RD(2) .LE. CANN(24) ) THEN
+C  ANNIHILATION INTO 2PI+, 3PI-, PI0
+          NPIPOS = 2
+          NPINEG = 3
+          NPIZ   = 1
+        ELSEIF ( RD(2) .LE. CANN(25) ) THEN
+C  ANNIHILATION INTO 2PI+, 3PI-, 2PI0
+          NPIPOS = 2
+          NPINEG = 3
+          NPIZ   = 2
+        ELSEIF ( RD(2) .LE. CANN(26) ) THEN
+C  ANNIHILATION INTO 2PI+, 3PI-, 3PI0
+          NPIPOS = 2
+          NPINEG = 3
+          NPIZ   = 3
+        ELSE
+C  ANNIHILATION INTO 3PI+, 4PI-
+          NPIPOS = 3
+          NPINEG = 4
+          NPIZ   = 0
+        ENDIF
+ 
+C  CHARGE INVERSION IF ANTINEUTRON ANNIHILATES WITH PROTON
+        IF ( ITYPE .EQ. 25 ) THEN
+          NPINEG = NPINEG - 1
+          NPIPOS = NPIPOS + 1
+        ENDIF
+ 
+      ENDIF
+ 
+      NPI  = NPIPOS + NPINEG + NPIZ
+      FNPI = 1.D0 / NPI
+      GCMI = 1.D0 / GCM
+ 
+C-----------------------------------------------------------------------
+C  CHARGE ASSIGNMENT
+ 
+      DO 26  I = 1,NPI
+        IF     ( I .LE. NPIZ          ) THEN
+C  NEUTRAL PIONS
+          NTYP(I) = 7
+        ELSEIF ( I .LE. NPIZ+NPIPOS ) THEN
+C  POSITIVE PIONS
+          NTYP(I) = 8
+        ELSE
+C  NEGATIVE PIONS
+          NTYP(I) = 9
+        ENDIF
+  26  CONTINUE
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  KINEMATIC CALCULATIONS
+ 
+      ISCALE = 0
+  27  CONTINUE
+      ISCALE = ISCALE + 1
+C  AFTER THE 5TH TRY, TAKE A NEW SET OF PIONS
+      IF ( ISCALE .GT. 5 ) GOTO 20
+ 
+C  DISTRIBUTUION OF TRANSVERSE MOMENTA PTR
+ 
+      CORECT = 5.3333333333D0 * FNPI**1.5D0 * ECM
+      DO 28  I = 1,NPI
+        PTR(I) = PTRANS(DUMMY) * (1.33333333D0 + CORECT)
+  28  CONTINUE
+ 
+      SUMPX = 0.D0
+      SUMPY = 0.D0
+      CALL RMMAR( RD,NPI,1 )
+      DO 29  I = 1,NPI
+C  SELECT EMISSION ANGLE BY REDUCED RESIDUAL DIRECTION
+        IF ( SUMPX .NE. 0.D0  .OR.  SUMPY .NE. 0.D0 ) THEN
+          PHISUM  = ATAN2( SUMPY, SUMPX )
+        ELSE
+          PHISUM  = 0.D0
+        ENDIF
+        PHIPAR(I) = PHISUM + PI + PI * (NPI+1-I) * (2.*RD(I)-1.) * FNPI
+        PX(I)     = COS( PHIPAR(I) ) * PTR(I)
+        PY(I)     = SIN( PHIPAR(I) ) * PTR(I)
+        SUMPX     = SUMPX + PX(I)
+        SUMPY     = SUMPY + PY(I)
+  29  CONTINUE
+ 
+C  CORRECTION OF TRANSVERSE MOMENTA TO KEEP TRANSVERSE MOMENTUM BALANCE
+      SUMPT2 = ECM
+      DPX    = SUMPX * FNPI
+      DPY    = SUMPY * FNPI
+      DO 30  I = 1,NPI
+        PX(I)   = PX(I) - DPX
+        PY(I)   = PY(I) - DPY
+        IF ( PX(I) .NE. 0.D0  .OR.  PY(I) .NE. 0.D0 ) THEN
+          PHIPAR(I) = ATAN2( PY(I), PX(I) )
+        ELSE
+          PHIPAR(I) = 0.D0
+        ENDIF
+        PTSQ(I) = PX(I)**2 + PY(I)**2
+        SUMPT2  = SUMPT2 - SQRT( PAMA(NTYP(I))**2 + PTSQ(I) )
+  30  CONTINUE
+ 
+C  CHECK, IF C.M. ENERGY IS EXHAUSTED BY TRANSVERSE MOMENTA
+C  IF SO, TRY ANOTHER SET OF TRANSVERSE MOMENTA
+      IF ( SUMPT2 .LE. 0.D0 ) GOTO 27
+ 
+C  DISTRIBUTION OF LONGITUDINAL MOMENTA PL
+ 
+C  SUM1PL IS SUM OF ABS. VALUES OF LONGITUDINAL MOMENTA
+      F = SUMPT2 * FNPI
+      SUM1PL = 0.D0
+      DO 31  I = 1,NPI
+        FWHM    = F + 0.5D0 * SQRT( PTSQ(I) )
+        PL(I)   = ABS( RANNOR(0.D0,FWHM) )
+        SUM1PL  = SUM1PL + PL(I)
+C  SET SEQUENCE COUNTER
+        ISEQ(I) = I
+  31  CONTINUE
+ 
+C  SORT ISEQ IN DECREASING SIZE OF THE LONGITUDINAL MOMENTUM
+      DO 33  I = 1,NPI
+        DO 32  K = I+1,NPI
+          IF ( PL(ISEQ(I)) .LT. PL(ISEQ(K)) ) THEN
+            IHELP   = ISEQ(I)
+            ISEQ(I) = ISEQ(K)
+            ISEQ(K) = IHELP
+          ENDIF
+  32    CONTINUE
+  33  CONTINUE
+ 
+C  TRY TO BALANCE LONGITUDINAL MOMENTA (TO MINIMIZE CORRECTIONS)
+C  START WITH LONG. MOMENTA IN FORWARD/BACKWARD DIRECTION BY RANDOM
+      CALL RMMAR( RD,1,1 )
+      IF ( RD(1) .LE. 0.5 )  PL(ISEQ(1)) = - PL(ISEQ(1))
+      SUMPL = PL(ISEQ(1))
+      DO 34  I = 2,NPI
+        SUM1PL = SUM1PL - PL(ISEQ(I))
+C  IF THERE IS NOT ENOUGH MOMENTUM LEFT, SELECT FORWARD/BACKWARD TO
+C  BALANCE MOMENTUM, ELSE CHOOSE DIRECTION BY RANDOM
+        IF ( PL(ISEQ(I))+ABS(SUMPL) .GT. SUM1PL ) THEN
+          IF ( PL(ISEQ(I))*SUMPL .GT. 0.D0 )  PL(ISEQ(I)) = -PL(ISEQ(I))
+        ELSE
+          CALL RMMAR( RD,1,1 )
+          IF ( RD(1) .LE. 0.5 )  PL(ISEQ(I)) = - PL(ISEQ(I))
+        ENDIF
+        SUMPL = SUMPL + PL(ISEQ(I))
+  34  CONTINUE
+ 
+C  CORRECTION OF LONGITUDINAL MOMENTA TO KEEP MOMENTUM BALANCE
+      DPL = SUMPL * FNPI
+      DO 35  I = 1,NPI
+        PL(I) = PL(I) - DPL
+  35  CONTINUE
+ 
+C  ITERATIVE CORRECTION OF ALL MOMENTA TO KEEP ENERGY BALANCE
+ 
+      IREPET = 0
+  36  CONTINUE
+      IREPET = IREPET + 1
+      IF ( IREPET .GT. 10 ) GOTO 27
+      ETOT   = 0.D0
+C  CHECK ENERGY CONSERVATION
+      DO 37  I = 1,NPI
+        PTSQ(I) = PX(I)**2 + PY(I)**2
+        E(I)    = SQRT( PAMA(NTYP(I))**2 + PTSQ(I) + PL(I)**2 )
+        ETOT    = ETOT + E(I)
+  37  CONTINUE
+ 
+      ECORR =  ECM / ETOT - 1.D0
+ 
+C  LOOK WHETHER ENERGY IS CONSERVED WITHIN 1 %
+      IF ( ABS(ECORR) .GT. .01D0 ) THEN
+C  FACTOR IS MODIFIED WITH EMPIRICAL TERM 1/GCM FOR FASTER CONVERGENCE
+        FACT = (0.5D0+GCMI) * ECORR * 0.02D0 * NPI
+        DO 38  I = 1,NPI
+          PX(I) = PX(I) * ( FACT         + 1.D0 )
+          PY(I) = PY(I) * ( FACT         + 1.D0 )
+          PL(I) = PL(I) * ( FACT * 20.D0 + 1.D0 )
+  38    CONTINUE
+        GOTO 36
+      ENDIF
+ 
+C  LORENTZ TRANSFORMATION FROM C.M. TO LAB. FRAME
+ 
+      DO 40  K = 5,8
+        SECPAR(K) = CURPAR(K)
+  40  CONTINUE
+      DO 41  I = 1,NPI
+        PLLAB  = GCM * ( PL(I) + BETACM * E(I) )
+        IF ( PLLAB .LE. 0.D0 ) GOTO 41
+        CTHETA = PLLAB / SQRT( PTSQ(I) + PLLAB**2 )
+        IF ( CTHETA .LT. C(27) ) GOTO 41
+        CALL ADDANG( COSTHE,PHI, CTHETA,PHIPAR(I), SECPAR(3),SECPAR(4) )
+        IF ( SECPAR(3) .LT. C(29) ) GOTO 41
+        SECPAR(1) = NTYP(I)
+        SECPAR(2) = GCM / PAMA(NTYP(I)) * ( PL(I) * BETACM + E(I) )
+        CALL TSTACK
+  41  CONTINUE
+ 
+      MSMM  = MSMM + NPI
+ 999  CONTINUE
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/nkg.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/nkg.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/nkg.f	(revision 4308)
@@ -0,0 +1,219 @@
+      SUBROUTINE NKG( ENERN )
+ 
+C-----------------------------------------------------------------------
+C  N(ISHIMURA) K(AMATA) G(REISEN)
+C
+C  CALCULATES ELECTROMAGNETIC COMPONENT OF SHOWERS USING THE ANALYTIC
+C  NKG FORMULAS, INCLUDING ELECTRON ENERGY THRESHOLD ELCUT(3)
+C  SEE J.N. CAPDEVIELLE, 22ND ICRC, DUBLIN 1991, CONTRIB. HE 3.5.10
+C  THIS SUBROUTINE IS CALLED FROM EM
+C  ARGUMENTS:
+C   ENERN  = ENERGY OF ELECTRON/PHOTON GENERATING A SUBSHOWER
+C            NEGATIVE FOR SUBSHOWERS TO BE SUBTRACTED AFTER
+C            PHOTONUCLEAR REACTION
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEEP,NKGI.
+      COMMON /NKGI/    SEL,SELLG,STH,ZEL,ZELLG,ZSL,DIST,
+     *                 DISX,DISY,DISXY,DISYX,DLAX,DLAY,DLAXY,DLAYX,
+     *                 OBSATI,RADNKG,RMOL,TLEV,TLEVCM,IALT
+      DOUBLE PRECISION SEL(10),SELLG(10),STH(10),ZEL(10),ZELLG(10),
+     *                 ZSL(10),DIST(10),
+     *                 DISX(-10:10),DISY(-10:10),
+     *                 DISXY(-10:10,2),DISYX(-10:10,2),
+     *                 DLAX (-10:10,2),DLAY (-10:10,2),
+     *                 DLAXY(-10:10,2),DLAYX(-10:10,2),
+     *                 OBSATI(2),RADNKG,RMOL(2),TLEV(10),TLEVCM(10)
+      INTEGER          IALT(2)
+*KEEP,NKGS.
+      COMMON /NKGS/    CZX,CZY,CZXY,CZYX,SAH,SL,ZNE
+      DOUBLE PRECISION CZX(-10:10,2),CZY(-10:10,2),CZXY(-10:10,2),
+     *                 CZYX(-10:10,2),SAH(10),SL(10),ZNE(10)
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION AE,AS,ASE,AUXIL,BS,CCP,CPC,CPCP,CPH,CSGA,
+     *                 DE,DISTL,ECRI,ECR1,ECR2,ENERN,GAM,GRCUT,
+     *                 G1,G2,G3,S,SC1,SC2,SIGNE,SM,SMRM,
+     *                 SQRZ1I,SQZC1I,SQZC2I,SS2,SS45,TEX,THICK,THICKP,
+     *                 XMOL,XNE,XS,X0,YM,YS,ZC1,ZC2,ZG1,ZG2,ZG3,Z1
+      INTEGER          IL,IOL,M
+      EXTERNAL         GAM,THICK
+C  X0 IS RADIATON LENGTH IN AIR (G/CM**2)
+C  (SEE ALSO MIKOCKI ET AL. J.PHYS.G.:NUCL.PART.PHYS. 17 (1991) 1303 )
+C  GRCUT IS GREISEN CUT OFF,  ECRI IS CRITICAL ENERGY IN AIR
+C  ECR2 IS 0.4 * ECRI
+      DATA X0 / 37.1D0 /, GRCUT / 0.1D0 /, ECRI / 0.082D0 /
+      DATA ECR2 / 0.0328D0 /
+C-----------------------------------------------------------------------
+ 
+      IF (DEBUG) WRITE(MDEBUG,*)'NKG   : ',SNGL(SECPAR(1)),SNGL(ENERN)
+ 
+C  CHECK WETHER SUBSHOWER IS SUBTRACTED
+      IF ( ENERN .GE. 0.D0 ) THEN
+        SIGNE = +1.D0
+      ELSE
+        ENERN = -ENERN
+        SIGNE = -1.D0
+      ENDIF
+ 
+C  ENERGY CUT OFF IN GREISEN FORMULA
+C  (EM PARTICLE BELOW THIS CUT CAN NOT PRODUCE A SHOWER)
+      IF ( ENERN .LT. GRCUT ) RETURN
+C  DON'T CALCULATE NKG FOR BACKWARD GOING PARTICLES
+      IF ( SECPAR(3) .LE. 0.D0 ) RETURN
+C  DON'T CALCULATE NKG IF PARTICLE BELOW THE LOWEST OBSERVATION LEVEL
+      IF ( SECPAR(5) .LT. OBSATI(1) ) RETURN
+ 
+      Z1     = LOG(ENERN / ECRI)
+      SQRZ1I = 1.D0 / SQRT(Z1)
+ 
+C  THIS CUT IS ONLY IMPORTANT FOR ELCUT > .0672
+      ECR1 = ECR2 + ELCUT(3)
+      IF ( ENERN .LT. ECR1 ) RETURN
+      ZC1    = LOG(ENERN / ECR1)
+      SQZC1I = 1.D0 / SQRT(ZC1)
+C  LOG(ENERN/ECR2) IS LOG(ENERN / ECRI) - LOG(0.4)
+      ZC2    = Z1 + 0.916290732D0
+      SQZC2I = 1.D0 / SQRT(ZC2)
+      THICKP = THICK(SECPAR(5))
+ 
+C  LOOP OVER LEVELS
+      DO 14  IL = 1,IALT(1)
+C  DISREGARD LEVELS ABOVE THE PARTICLE
+        IF ( TLEVCM(IL) .GT. SECPAR(5) ) GOTO 14
+C  DISTANCE IN G/CM**2 .... (ALONG PHOTON-AXIS) IN RADIATION LENGTHS
+        XMOL  = (TLEV(IL) - THICKP) / ( X0 * SECPAR(3) )
+C  CORRECT DEPTH FOR SUBSHOWERS TO BE SUBTRACTED BY 9/7
+        IF ( SIGNE .LT. 0.D0 ) XMOL = XMOL + 1.285714286D0
+C  XMOL IS DEPTH IN RADIATION LENGTHS
+        IF ( XMOL .GT. 60.D0  .OR.  XMOL .LT. 1.D0 ) GOTO 14
+C  S IS AGE PARAMETER
+        S     = 3.D0 * XMOL / (XMOL + 2.D0 * Z1)
+        IF ( S .LE. 0.2D0 ) GOTO 14
+        SC1   = 3.D0 * XMOL / (XMOL + 2.D0 * ZC1)
+        SC2   = 3.D0 * XMOL / (XMOL + 2.D0 * ZC2)
+C  ELECTRON NUMBER AT OBSERVATION LEVEL
+        CPH   = .31D0 * EXP( XMOL * (1.D0 - 1.5D0 * LOG(S) ) ) * SQRZ1I
+        CPC   = EXP( XMOL * ( 1.D0 - 1.5D0 * LOG(SC1) ) ) * SQZC1I
+        CCP   = EXP( XMOL * ( 1.D0 - 1.5D0 * LOG(SC2) ) ) * SQZC2I
+        CPCP  = SIGNE * CPH * CPC / CCP
+C  INTERMEDIATE FACTORS FOR LATERAL DISTRIBUTION AND AGE PARAMETER
+        AE    = 4.D0 * EXP( 0.915D0 * (S - 1.D0) ) / S
+        DE    = ( 1.D0 + S ) / ( 1.15D0 + 0.15D0 * S )
+        ASE   = AE**DE
+        ZG3   = GAM( (S + 2.D0) * DE )
+        IF ( ZG3 .LE. 0.D0 ) GOTO 14
+        ZG1   = GAM(S * DE)
+        ZG2   = GAM( (S + 1.D0) * DE )
+        AUXIL = 4.D0 / (S * ASE)
+        XNE = CPCP * ( ZG2 + AUXIL * ZG3 ) / ( ASE * (ZG1 + AUXIL*ZG2) )
+C  SUM OF N_E AT FIXED LEVEL
+        ZNE(IL) = ZNE(IL) + XNE
+        SL(IL)  = SL(IL) + CPCP
+ 
+C  CALCULATE THE ELECTRON LATERAL DISTRIBUTION FOR THE 2 SELECTED
+C  OBSERVATION LEVELS
+        IF     ( IL .EQ. IALT(1) ) THEN
+          IOL = 1
+        ELSEIF ( IL .EQ. IALT(2) ) THEN
+          IOL = 2
+        ELSE
+          GOTO 14
+        ENDIF
+ 
+C  CALCULATION OF LATERAL ELECTRON DISTRIBUTION
+        IF ( SC1 .GE. 2.25D0 ) GOTO 14
+        G1    = GAM(4.5D0 - SC1)
+        G2    = GAM(SC1)
+        G3    = GAM(4.5D0 - 2.D0 * SC1)
+C  DISTANCE IN CM BETWEEN PHOTON INITIATION AND OBSERVATION (VERTICAL)
+        DISTL = SECPAR(5) - TLEVCM(IL)
+C  MODULATION BY AGE PARAMETER FOLLOWING LAGUTIN & UCHAIKIN
+C  (AGE PARAMETER LIES BETWEEN 0.2 AND 2.25)
+        SM    = 0.78D0 - 0.21D0 * SC1
+        SMRM  = 1.D0 / ( SM * RMOL(IOL) )
+ 
+        CSGA  = CPCP * SMRM**2 * G1 / ( PI2 * G2 * G3 )
+        SS2   = SC1 - 2.D0
+        SS45  = SC1 - 4.5D0
+        AS    = SIN( SECPAR(4) )
+        BS    = COS( SECPAR(4) )
+        TEX   = DISTL * SQRT( 1.D0 - SECPAR(3)**2 ) / SECPAR(3)
+C  DISTANCE TO THE CENTER OF THE CASCADE (IN CM)
+        XS    = SECPAR(7) + TEX * BS - XOFF(NOBSLV+1-IOL)
+        YS    = SECPAR(8) + TEX * AS - YOFF(NOBSLV+1-IOL)
+ 
+C  NKG-FORMULA
+C  LOOP OVER ALL LATERAL DISTANCES GETTING THE DENSITY IN MOLIERE UNITS
+        DO 171  M = -10,10
+          IF ( M .EQ. 0 ) GOTO 171
+C  X DIRECTION
+          YM  = SMRM * MAX( SQRT((DISX(M)-XS)**2 + YS**2), 1.D0 )
+          CZX (M,IOL) = CZX (M,IOL) + CSGA * YM**SS2 * (YM+1.D0)**SS45
+C  Y DIRECTION
+          YM  = SMRM * MAX( SQRT(XS**2 + (DISY(M)-YS)**2), 1.D0 )
+          CZY (M,IOL) = CZY (M,IOL) + CSGA * YM**SS2 * (YM+1.D0)**SS45
+C  XY DIRECTION
+          YM  = SMRM *
+     *       MAX( SQRT((DISXY(M,1)-XS)**2 + (DISXY(M,2)-YS)**2), 1.D0 )
+          CZXY(M,IOL) = CZXY(M,IOL) + CSGA * YM**SS2 * (YM+1.D0)**SS45
+C  YX DIRECTION
+          YM  = SMRM *
+     *       MAX( SQRT((DISYX(M,1)-XS)**2 + (DISYX(M,2)-YS)**2), 1.D0 )
+          CZYX(M,IOL) = CZYX(M,IOL) + CSGA * YM**SS2 * (YM+1.D0)**SS45
+  171   CONTINUE
+ 
+   14 CONTINUE
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/nsd.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/nsd.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/nsd.f	(revision 4308)
@@ -0,0 +1,113 @@
+      SUBROUTINE NSD
+ 
+C-----------------------------------------------------------------------
+C  N(ON) S(INGLE) D(IFFRACTION CASE)
+C
+C  SETS PARAMETERS FOR HDPM IN CASE OF NON-SINGLE-DIFFRACTION EVENT
+C  THIS SUBROUTINE IS CALLED FROM HDPM
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,INTER.
+      COMMON /INTER/   AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN,
+     *                 IDIF,ITAR
+      DOUBLE PRECISION AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN
+      INTEGER          IDIF,ITAR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'NSD   :'
+ 
+C  CENTRAL RAPIDITY DENSITY ( RHO ) FOR NSD REACTION
+C  PARAMETRISATION SEE CAPDEVIELLE,J.PHYS.G:NUCL.PHYS.16(1990)1539 EQ.7
+      IF ( ECMDPM .LE. 680.D0 ) THEN
+        DC0   = 0.82D0 * (S**0.107D0)
+      ELSE
+        DC0   = 0.64D0 * (S**0.126D0)
+      ENDIF
+C  THERE ARE 3 ENERGY DEPENDENT FORMULAS FOR AVERAGE CHARGED
+C  MULTIPLICITY ( AVCH0 );
+C  PARAMETRISATIONS SEE CAPDEVIELLE,J.PHYS.G:NUCL.PHYS.16(1990)1539 EQ.8
+      IF     ( ECMDPM .LE. 187.5D0 ) THEN
+        AVCH0 = 0.57D0 + 0.584D0 * SLOG + 0.127D0 * SLOGSQ
+      ELSEIF ( ECMDPM .LT. 945.5D0 ) THEN
+        AVCH0 = -6.55D0 + 6.89D0 * S**0.131D0
+      ELSE
+        AVCH0 = 3.4D0 * S**0.17D0
+      ENDIF
+C  MINIMUM AVERAGE CHARGED MULTIPLICITY IS 1
+      AVCH0   = MAX( 1.D0, AVCH0 )
+C  EXCESS OF CHARGED PARTICLES WHICH COME FROM AIR TARGET
+      IF ( ECMDPM .LE. 137.D0 ) THEN
+        AVCH3 = 0.57D0 * AVCH0 * (GNU - 1.D0)
+      ELSE
+        AVCH3 = 0.5D0  * AVCH0 * (GNU - 1.D0)
+      ENDIF
+C  AVERAGE NUMBER OF ALL CHARGED
+      AVCH    = AVCH0 + AVCH3
+C  THE FOLOWING PROCEDURE IS TO PRODUCE PHOTONS FROM UNKNOWN NEUTRAL
+C  DECAYS FOLLOWING CORRELATION WITH CHARGED PARTICLES BASED ON PHOTON
+C  EXCESS AT COLLIDER EXPERIMENTS. SEUGP IS <N_PHOTON>
+C  PARAMETRISATION OF UA5: ANSORGE ET AL., Z.PHYS.C43 (1989) 75
+      IF ( ECMDPM .LE. 103.D0 ) THEN
+        SEUGP = -1.27D0 + 0.52D0 * SLOG + 0.148D0 * SLOGSQ
+      ELSE
+C  PROBLEM OF THE RISE OF THE UNKNOWN ETA PRODUCTION CROSS SECTION
+C  IS SOLVED WITH THOUW'S PARAMETRISATION OF UA5 DATA:
+        SEUGP = -18.7D0 + 11.55D0 * S**0.1195D0
+      ENDIF
+      SEUGP   = MAX( 0.5D0, SEUGP )
+      IF ( DEBUG ) WRITE(MDEBUG,100)
+     *    SNGL(DC0),SNGL(AVCH0),SNGL(AVCH3),SNGL(AVCH),SNGL(SEUGP)
+ 100  FORMAT(' NSD   : DC0,AVCH0,AVCH3,AVCH,SEUGP=',5F12.7)
+ 
+C  CENTER OF GAUSSIAN FOR CHARGED SECONDARIES 1ST AND 2ND STRING
+C  NEEDED FOR SOME CALCULATION ; FINAL POSITION CALCULATED LATER
+      POSC2   = 0.146D0 * SMLOG + 0.072D0
+C  WIDTH  OF GAUSSIAN FOR CHARGED SECONDARIES 1ST AND 2ND STRING
+      WIDC2   = 0.12D0 * SMLOG + 0.18D0
+      IF ( GNU .LE. 1.D0 ) THEN
+        POSC3 = 0.D0
+        WIDC3 = 1.D0
+      ELSE
+C  CENTER OF GAUSSIAN 3RD STRING (TARGET CONTRIB. FOR PROJECTILE-AIR)
+        POSC3 = 3.D0 - 2.575D0 * EXP( -0.081756452D0 * GNU )
+C  WIDTH  OF GAUSSIAN FOR 3RD STRING
+        WIDC3 = 1.2338466D0 + 0.078969916D0 * LOG(GNU)
+      ENDIF
+      IF ( DEBUG ) WRITE(MDEBUG,110)
+     *            SNGL(POSC2),SNGL(WIDC2),SNGL(POSC3),SNGL(WIDC3)
+ 110  FORMAT(' NSD   : POSC2,WIDC2,POSC3,WIDC3=',4F12.7)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/nucint.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/nucint.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/nucint.f	(revision 4308)
@@ -0,0 +1,390 @@
+      SUBROUTINE NUCINT
+ 
+C-----------------------------------------------------------------------
+C  NUC(LEAR) INT(ERACTION)
+C
+C  SELECTS TYPE OF INTERACTION PROCESS FOR ISOBAR MODEL, ACCORDING TO ECM
+C  ISOBAR MASSES INDEPENDENT OF RESPECTIVE ENERGY RANGES
+C  HEAVY PRIMARIES AND STRANGE BARYONS INCLUDED
+C  THIS SUBROUTINE IS CALLED FROM MAIN
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,AIR.
+      COMMON /AIR/     COMPOS,PROBTA,AVERAW,AVOGAD
+      DOUBLE PRECISION COMPOS(3),PROBTA(3),AVERAW,AVOGAD
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,IRET.
+      COMMON /IRET/    IRET1,IRET2
+      INTEGER          IRET1,IRET2
+*KEEP,KAONS.
+      COMMON /KAONS/   CKA
+      DOUBLE PRECISION CKA(80)
+*KEEP,MULT.
+      COMMON /MULT/    EKINL,MSMM,MULTMA,MULTOT
+      DOUBLE PRECISION EKINL
+      INTEGER          MSMM,MULTMA(37,13),MULTOT(37,13)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,POLAR.
+      COMMON /POLAR/   POLART,POLARF
+      DOUBLE PRECISION POLART,POLARF
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RANGE.
+      COMMON /RANGE/   CC
+      DOUBLE PRECISION CC(20)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,SIGM.
+      COMMON /SIGM/    SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+      DOUBLE PRECISION SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+*KEEP,STATI.
+      COMMON /STATI/   SABIN,SBBIN,INBIN,IPBIN,IKBIN,IHBIN
+      DOUBLE PRECISION SABIN(37),SBBIN(37)
+      INTEGER          INBIN(37),IPBIN(37),IKBIN(37),IHBIN(37)
+*KEEP,VKIN.
+      COMMON /VKIN/    BETACM
+      DOUBLE PRECISION BETACM
+*KEND.
+ 
+      DOUBLE PRECISION BETA3,COSMU,COSTCM,COSTH3,GAMMA3,
+     *                 PHIMU,PHI3,WORK1,WORK2
+      INTEGER          I,IGO,KJ
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' NUCINT: CURPAR=',1P,9E10.3)
+ 
+C  SET GENERATION AND LEVEL OF LAST INTERACTION
+      SECPAR( 9) = GEN
+      SECPAR(10) = ALEVEL
+C  RESET POLARIZATION, NOT USED FOR PARTICLES OTHER THAN MUONS YET
+      SECPAR(11) = 0.D0
+      SECPAR(12) = 0.D0
+ 
+C  CALCULATE KIN. ENERGY BIN
+      EKINL = PAMA(ITYPE) * ( GAMMA - 1.D0 )
+      IF ( EKINL .GE. .1D0 ) THEN
+        KJ = INT( MIN( 37.D0, 4.D0 + 3.D0*LOG10(EKINL) ) )
+      ELSE
+        KJ = 1
+      ENDIF
+ 
+C-----------------------------------------------------------------------
+C  PION INCIDENT
+      IF     ( ITYPE .EQ.  8  .OR.  ITYPE .EQ.  9 ) THEN
+        IF ( DEBUG ) WRITE(MDEBUG,*) 'NUCINT: PION EKINL=',SNGL(EKINL)
+        IPBIN(KJ) = IPBIN(KJ) + 1
+ 
+C  DECAY OR INTERACTION FOR PIONS ?
+        IF ( FDECAY ) THEN
+          DO 10  I = 5,8
+            SECPAR(I) =  CURPAR(I)
+ 10       CONTINUE
+C  DECAY  PI(+,-)  ---->  MU(+,-) + (ANTI)-NEUTRINO(MU)
+          WORK1  = C(48) * GAMMA
+          WORK2  = C(49) * BETA * WORK1
+          CALL RMMAR( RD,2,1 )
+          COSTCM = 2.D0 * RD(1) - 1.D0
+          GAMMA3 = WORK1 + COSTCM * WORK2
+          BETA3  = SQRT( 1.D0 - 1.D0 / GAMMA3**2 )
+          COSTH3 = MIN( 1.D0, ( GAMMA * GAMMA3 - C(48) )
+     *                      /( BETA * GAMMA * BETA3 * GAMMA3 ) )
+          PHI3   = PI2 * RD(2)
+C  MUON / NEUTRINO IS DROPPED
+          CALL ADDANG( COSTHE,PHI, COSTH3,PHI3, COSMU,PHIMU )
+          IF ( COSMU .GT. C(29) ) THEN
+C  DIRECTION OF PION IN THE MUON CM SYSTEM (= DIRECTION OF POLARIZATION)
+C  SEE: G. BARR ET AL., PHYS. REV. D39 (1989) 3532, EQ. 5
+C  POLART IS COS OF ANGLE BETWEEN PION AND LABORATORY IN THE MU CM
+C  POLARF IS ANGLE PHI AROUND THE LAB DIRECTION IN THE MU CM
+C  POLART, POLARF ARE WITH RESPECT TO THE MU DIRECTION IN THE LAB SYSTEM
+            POLART = ( 2.D0*PAMA(8)*GAMMA*C(7)/(PAMA(5)*GAMMA3)
+     *                 - C(7) - 1.D0 ) / ( BETA3 * (1.D0 - C(7)) )
+            POLARF = PHI3 - PI
+C  PION DIRECTION IS DIRECTION OF POLARIZATION FOR PI+, OPPOSITE FOR PI-
+            IF ( ITYPE .EQ. 9 ) THEN
+              POLART = -POLART
+              POLARF = POLARF + PI
+            ENDIF
+C  GET THE POLARIZATION DIRECTION IN THE MU CM RELATIVE TO THE CORSIKA
+C  COORDINATE SYSTEM
+            CALL ADDANG( COSMU,PHIMU, POLART,POLARF, POLART,POLARF )
+C  MUON IS WRITTEN TO STACK
+            SECPAR( 1) = CURPAR(1) - 3.D0
+            SECPAR( 2) = GAMMA3
+            SECPAR( 3) = COSMU
+            SECPAR( 4) = PHIMU
+            SECPAR(11) = POLART
+            SECPAR(12) = POLARF
+            CALL TSTACK
+            SECPAR(11) = 0.D0
+            SECPAR(12) = 0.D0
+          ENDIF
+          IRET1 = 1
+          RETURN
+        ENDIF
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  PION INTERACTS
+ 
+C  CALCULATE GAMMA, BETA AND ENERGY IN CENTER OF MASS
+        ECM    = SQRT( C(45) * GAMMA + C(46) )
+        GCM    = (PAMA(ITYPE) * GAMMA + PAMA(14)) / ECM
+        BETACM = SQRT( 1.D0 - 1.D0 / GCM**2 )
+ 
+C  LOW ENERGY HADRONIC INTERACTIONS
+C  USE GHEISHA IF THE CROSS SECTION HAS BEEN CALCULATED FOR GHEISHA
+        IF ( GHEISH ) THEN
+          IF ( GHESIG ) THEN
+            CALL CGHEI
+          ELSE
+            CALL SDPM
+          ENDIF
+        ELSE
+C  DETERMINE TYPE OF INTERACTION FOR PIONS
+          IF     ( ECM .GT. CC(8) ) THEN
+C  DUAL PARTON MODEL
+            CALL SDPM
+          ELSEIF ( ECM .GT. CC(7) ) THEN
+C  HEAVY ISOBAR + HEAVY MESON
+            CALL BOX69
+          ELSEIF ( ECM .GT. CC(6) ) THEN
+            CALL RMMAR( RD,1,1 )
+            IF ( RD(1) .LE. 0.5 ) THEN
+C  HEAVY ISOBAR + PION
+              CALL BOX68
+            ELSE
+C  HEAVY MESON + NUCLEON
+              CALL BOX67
+            ENDIF
+          ELSEIF ( ECM .GT. CC(5) ) THEN
+C  LIGHT ISOBAR + PION
+            CALL BOX66
+          ELSE
+C  ELASTIC SCATTERING
+            CALL BOX65
+          ENDIF
+        ENDIF
+ 
+C-----------------------------------------------------------------------
+C  NUCLEON OR ANTINUCLEON INCIDENT
+      ELSEIF ( ITYPE .EQ. 13  .OR.  ITYPE .EQ. 14  .OR.
+     *         ITYPE .EQ. 15  .OR.  ITYPE .EQ. 25 ) THEN
+C  CALCULATE GAMMA, BETA AND ENERGY IN CENTER OF MASS
+        GCM       = SQRT( GAMMA * 0.5D0 + 0.5D0 )
+        ECM       = PAMA(ITYPE) * GCM * 2.D0
+        BETACM    = SQRT( 1.D0 - 1.D0 / GCM**2 )
+        IF ( DEBUG ) WRITE(MDEBUG,*) 'NUCINT: NUCL EKINL=',SNGL(EKINL)
+        INBIN(KJ) = INBIN(KJ) + 1
+ 
+C  LOW ENERGY HADRONIC INTERACTIONS
+C  USE GHEISHA IF THE CROSS SECTION HAS BEEN CALCULATED FOR GHEISHA
+        IF ( GHEISH ) THEN
+          IF ( GHESIG ) THEN
+            CALL CGHEI
+          ELSE
+            CALL SDPM
+          ENDIF
+        ELSE
+C  DETERMINE TYPE OF INTERACTION FOR NUCLEONS AND ANTINUCLEONS
+          IF     ( ECM .GT. CC(4) ) THEN
+C  DUAL PARTON MODEL
+            CALL SDPM
+          ELSEIF ( ECM .GT. CC(3) ) THEN
+C  USE THE INTERACTION ROUTINES OF PKF GRIEDER
+C  2 HEAVY ISOBARS AND ANNIHILATION
+            CALL BOX63
+          ELSEIF ( ECM .GT. CC(2) ) THEN
+C  1 HEAVY ISOBAR + NUCLEON AND ANNIHILATION
+            CALL BOX62
+          ELSEIF ( ECM .GT. CC(1) ) THEN
+C  1 LIGHT ISOBAR + NUCLEON AND ANNIHILATION
+            CALL BOX61
+          ELSE
+C  ELASTIC SCATTERING AND ANNIHILATION
+            CALL BOX60
+          ENDIF
+        ENDIF
+ 
+C-----------------------------------------------------------------------
+C  KAON INCIDENT
+      ELSEIF ( ITYPE .EQ. 11  .OR.  ITYPE .EQ. 12  .OR.
+     *         ITYPE .EQ. 10  .OR.  ITYPE .EQ. 16 ) THEN
+        IF ( DEBUG ) WRITE(MDEBUG,*) 'NUCINT: KAON EKINL=',SNGL(EKINL)
+        IKBIN(KJ) = IKBIN(KJ) + 1
+ 
+C  DECAY OR INTERACTION FOR KAONS ?
+        IF ( FDECAY ) THEN
+C  KAON DECAYS. DETERMINE DECAY MODE FOR KAONS AND SET LIFE TIME
+          IF     ( ITYPE .EQ. 10 ) THEN
+C  K(0,L)-MESON
+            IGO = 4
+          ELSEIF ( ITYPE .EQ. 11 ) THEN
+C  K(+)-MESON
+            IGO = 1
+          ELSEIF ( ITYPE .EQ. 12 ) THEN
+C  K(-)-MESON
+            IGO = 2
+          ELSE
+C  K(0,S)-MESON
+            IGO = 3
+          ENDIF
+          CALL KDECAY( IGO )
+          RETURN
+ 
+        ELSE
+C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  KAON INTERACTS
+C  CALCULATE GAMMA, BETA AND ENERGY IN CENTER OF MASS
+          ECM    = SQRT( CKA(13) * GAMMA + CKA(14) )
+          GCM    = ( PAMA(ITYPE) * GAMMA + PAMA(14) ) / ECM
+          BETACM = SQRT( 1.D0 - 1.D0 / GCM**2 )
+C  LOW ENERGY HADRONIC INTERACTIONS
+C  USE GHEISHA IF THE CROSS SECTION HAS BEEN CALCULATED FOR GHEISHA
+          IF ( GHEISH ) THEN
+            IF ( GHESIG ) THEN
+              CALL CGHEI
+            ELSE
+              CALL SDPM
+            ENDIF
+          ELSE
+C  KAON INTERACTS. DETERMINE TYPE OF INTERACTION FOR KAONS
+            IF     ( ECM .GT. CC(12) ) THEN
+C  DUAL PARTON MODEL
+              CALL SDPM
+C  USE THE INTERACTION ROUTINES OF PKF GRIEDER
+            ELSEIF ( ECM .GT. CC(11) ) THEN
+C  HEAVY ISOBAR + STRANGE MESON
+              CALL BOX74
+            ELSEIF ( ECM .GT. CC(10) ) THEN
+              CALL RMMAR( RD,1,1 )
+              IF ( RD(1) .GT. CKA(21) ) THEN
+C  HEAVY ISOBAR + KAON
+                CALL BOX73
+              ELSE
+C  STRANGE MESON + NUCLEON
+                CALL BOX72
+              ENDIF
+            ELSEIF ( ECM .GT. CC(9) ) THEN
+C  LIGHT ISOBAR + KAON
+              CALL BOX71
+            ELSE
+C  ELASTIC SCATTERING
+              CALL BOX70
+            ENDIF
+          ENDIF
+        ENDIF
+ 
+C-----------------------------------------------------------------------
+C  STRANGE BARYON (LAMDA, SIGMA) INCIDENT
+      ELSEIF ( (ITYPE .GE. 18  .AND.  ITYPE .LE. 24)  .OR.
+     *         (ITYPE .GE. 26  .AND.  ITYPE .LE. 32) ) THEN
+        IF ( DEBUG ) WRITE(MDEBUG,*) 'NUCINT: SBAR EKINL=',SNGL(EKINL)
+        IHBIN(KJ) = IHBIN(KJ) + 1
+C  DECAY OR INTERACTION FOR STRANGE BARYONS?
+        IF ( FDECAY ) THEN
+          CALL STRDEC
+          RETURN
+        ENDIF
+C  CALCULATE GAMMA, BETA AND ENERGY IN CENTER OF MASS
+        ECM    = SQRT( 2.D0 * PAMA(ITYPE) * PAMA(14) * GAMMA
+     *              + PAMA(ITYPE)**2 + PAMA(14)**2 )
+        GCM    = ( PAMA(ITYPE) * GAMMA + PAMA(14)) / ECM
+        BETACM = SQRT( 1.D0 - 1.D0 / GCM**2 )
+C  LOW ENERGY HADRONIC INTERACTIONS
+C  USE GHEISHA IF THE CROSS SECTION HAS BEEN CALCULATED FOR GHEISHA
+        IF ( GHEISH ) THEN
+          IF ( GHESIG ) THEN
+            CALL CGHEI
+          ELSE
+C  VENUS TREATS STRANGE BARYONS
+            CALL SDPM
+          ENDIF
+        ELSE
+          IF ( ECM .GT. CC(4) ) THEN
+            CALL SDPM
+          ELSE
+C  USE THE INTERACTION ROUTINES OF PKF GRIEDER
+C  ELASTIC SCATTERING
+            CALL BOX60
+          ENDIF
+        ENDIF
+ 
+C-----------------------------------------------------------------------
+C  HEAVY PRIMARY INCIDENT
+      ELSEIF ( ITYPE .GT. 100 ) THEN
+        IF (DEBUG) WRITE(MDEBUG,*) 'NUCINT: HEAVY PRIMARY EKINL=',
+     *                                               SNGL(EKINL)
+C  USE GHEISHA IF THE CROSS SECTION HAS BEEN CALCULATED FOR GHEISHA
+C   (THIS MIGHT BE THE CASE FOR DEUTERONS, TRITONS AND ALPHAS)
+        IF ( GHEISH ) THEN
+          IF ( GHESIG ) THEN
+            CALL CGHEI
+          ELSE
+            CALL SDPM
+          ENDIF
+        ELSE
+C  TREAT HEAVY PRIMARY IN SDPM
+          CALL SDPM
+        ENDIF
+ 
+C-----------------------------------------------------------------------
+C  ILLEGAL PARTICLE
+      ELSE
+        WRITE(MONIOU,*) 'NUCINT: ILLEGAL PARTICLE = ',ITYPE
+        STOP
+      ENDIF
+ 
+C-----------------------------------------------------------------------
+C  KILL PARTICLE
+      IRET1 = 1
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/outend.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/outend.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/outend.f	(revision 4308)
@@ -0,0 +1,213 @@
+      SUBROUTINE OUTEND
+ 
+C-----------------------------------------------------------------------
+C  OUT(PUT AT) END (OF SHOWER)
+C
+C  WRITE REST OF PARTICLES TO OUTPUT BUFFER
+C  PRINTS INTERACTION LENGTHS STATISTICS
+C  THIS SUBROUTINE IS CALLED FROM MAIN
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,BAL.
+      COMMON /BAL/     EBAL
+      DOUBLE PRECISION EBAL(10)
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,CHISTA.
+      COMMON /CHISTA/  IHYCHI,IKACHI,IMUCHI,INNCHI,INUCHI,IPICHI
+      INTEGER          IHYCHI(124),IKACHI(124),IMUCHI(124),
+     *                 INNCHI(124),INUCHI(124),IPICHI(124)
+*KEEP,ELADPM.
+      COMMON /ELADPM/  ELMEAN,ELMEAA,IELDPM,IELDPA
+      DOUBLE PRECISION ELMEAN(37),ELMEAA(37)
+      INTEGER          IELDPM(37,13),IELDPA(37,13)
+*KEEP,MULT.
+      COMMON /MULT/    EKINL,MSMM,MULTMA,MULTOT
+      DOUBLE PRECISION EKINL
+      INTEGER          MSMM,MULTMA(37,13),MULTOT(37,13)
+*KEEP,NCOUNT.
+      COMMON /NCOUNT/  NCOUN
+      INTEGER          NCOUN(8)
+*KEEP,NPARTI.
+      COMMON /NPARTI/  NPARTO,MUOND
+      DOUBLE PRECISION NPARTO(10,25),NPHOTO(10),NPOSIT(10),NELECT(10),
+     *                 NNU(10),NMUP(10),NMUM(10),NPI0(10),NPIP(10),
+     *                 NPIM(10),NK0L(10),NKPL(10),NKMI(10),NNEUTR(10),
+     *                 NPROTO(10),NPROTB(10),NK0S(10),NHYP(10),
+     *                 NNEUTB(10),NDEUT(10),NTRIT(10),NALPHA(10),
+     *                 NOTHER(10),MUOND
+      EQUIVALENCE (NPARTO(1, 1),NPHOTO(1)), (NPARTO(1, 2),NPOSIT(1)),
+     *            (NPARTO(1, 3),NELECT(1)), (NPARTO(1, 4),NNU(1))   ,
+     *            (NPARTO(1, 5),NMUP(1))  , (NPARTO(1, 6),NMUM(1))  ,
+     *            (NPARTO(1, 7),NPI0(1))  , (NPARTO(1, 8),NPIP(1))  ,
+     *            (NPARTO(1, 9),NPIM(1))  , (NPARTO(1,10),NK0L(1))  ,
+     *            (NPARTO(1,11),NKPL(1))  , (NPARTO(1,12),NKMI(1))  ,
+     *            (NPARTO(1,13),NNEUTR(1)), (NPARTO(1,14),NPROTO(1)),
+     *            (NPARTO(1,15),NPROTB(1)), (NPARTO(1,16),NK0S(1))  ,
+     *            (NPARTO(1,18),NHYP(1))  , (NPARTO(1,19),NDEUT(1)) ,
+     *            (NPARTO(1,20),NTRIT(1)) , (NPARTO(1,21),NALPHA(1)),
+     *            (NPARTO(1,22),NOTHER(1)), (NPARTO(1,25),NNEUTB(1))
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,PBALA.
+      COMMON /PBALA/   PBAL
+      DOUBLE PRECISION PBAL(10)
+*KEEP,RECORD.
+      COMMON /RECORD/  IRECOR
+      INTEGER          IRECOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKF.
+      COMMON /STACKF/  STACK,STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+      INTEGER          MAXSTK
+      PARAMETER        (MAXSTK = 12*340*2)
+      DOUBLE PRECISION STACK(MAXSTK)
+      INTEGER          STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+*KEEP,STATI.
+      COMMON /STATI/   SABIN,SBBIN,INBIN,IPBIN,IKBIN,IHBIN
+      DOUBLE PRECISION SABIN(37),SBBIN(37)
+      INTEGER          INBIN(37),IPBIN(37),IKBIN(37),IHBIN(37)
+*KEND.
+ 
+      INTEGER I,J,K,NELMEA
+C-----------------------------------------------------------------------
+ 
+      IF ( LH .GT. 0 ) THEN
+        CALL TOBUF( DATAB,0 )
+        DO  2  I = 1,MAXBUF
+          DATAB(I) = 0.
+    2   CONTINUE
+      ENDIF
+      LH = 0
+ 
+      IF ( FPRINT .OR. DEBUG ) THEN
+        WRITE(MONIOU,101) NSHIFT,NOPART
+  101   FORMAT(' ',I10,' SHIFTS TO EXTERNAL STACK'/
+     *         ' ',I10,' PARTICLES WRITTEN TO PATAPE')
+ 
+        IF ( .NOT. GHEISH ) THEN
+          WRITE(MONIOU,103) (EBAL(I),I=1,10)
+  103     FORMAT (/' ENERGY BALANCE OF PARTICLE PRODUCTION PROCESSES'//
+     *             1P,5E20.8/5E20.8/)
+ 
+          WRITE(MONIOU,203) (PBAL(I),I=1,10)
+  203     FORMAT (' MOMENTUM BALANCE OF PARTICLE PRODUCTION PROCESSES'//
+     *          1P,5E20.8/5E20.8/)
+ 
+          WRITE(MONIOU,104) (NCOUN(K),K=1,8)
+  104     FORMAT(//
+     *      I10,' / ',I6,'  ANTINUCLEONS ENTER / ANNIHILATE IN BOX 60'/
+     *      I10,' / ',I6,'  ANTINUCLEONS ENTER / ANNIHILATE IN BOX 61'/
+     *      I10,' / ',I6,'  ANTINUCLEONS ENTER / ANNIHILATE IN BOX 62'/
+     *      I10,' / ',I6,'  ANTINUCLEONS ENTER / ANNIHILATE IN BOX 63'/)
+        ENDIF
+      ENDIF
+ 
+      IF ( FPRINT ) THEN
+C  PRINT ENERGY - MULTIPLICITY MATRIX
+        WRITE(MONIOU,209) SHOWNO,(K,K=1,13),
+     *  (J,(MULTMA(J,K),K=1,13),10**((J-4.)/3.),10**((J-3.)/3.),J=1,37),
+     *     1,(INT(10**((K-1.)/3.)+1 ),K = 2,13),
+     *     2,(INT(10**((K   )/3.)   ),K = 2,13)
+  209   FORMAT(//' ENERGY - MULTIPLICITY MATRIX OF SHOWER NO ',I10/
+     *           ' ENERGY RUNS VERTICALLY, MULTIPLICITY HORIZONTALLY'//
+     *           ' ',5X,5I9,3I8,5I7,'    ENERGY RANGE (GEV)'/
+     *           37(/' ',I4,1X,5I9,3I8,5I7,2X,1P,2E10.1,0P)//
+     *           ' MULT.',5I9,3I8,5I7,5X,'LOWER BIN LIMIT'/
+     *           ' RANGE',5I9,3I8,5I7,5X,'UPPER BIN LIMIT')
+      ENDIF
+ 
+C  GET MEAN OF ELASTICITY FOR ENERGY BINS
+      DO 3377  J = 1,37
+        NELMEA = 0
+        DO 3378  K = 1,10
+          NELMEA = NELMEA + IELDPM(J,K)
+ 3378   CONTINUE
+        IF ( NELMEA .NE. 0 ) ELMEAN(J) = ELMEAN(J) / NELMEA
+ 3377 CONTINUE
+ 
+      IF ( FPRINT ) THEN
+C  PRINT ENERGY - ELASTICITY MATRIX
+        WRITE(MONIOU,408) SHOWNO,(K,K=1,10),
+     *        (J,(IELDPM(J,K),K=1,10),
+     *        ELMEAN(J),10**((J-4.)/3.),10**((J-3.)/3.),J=1,37),
+     *        ((K-1)*0.1,K=1,10),(K*0.1,K=1,10)
+  408   FORMAT (//' ENERGY - ELASTICITY MATRIX OF SHOWER NO ',I10/
+     *            ' ENERGY RUNS VERTICALLY, ELASTICITY HORIZONTALLY'//
+     *            ' ',5X,10I9,'   MEAN EL.   ENERGY RANGE (GEV)'/
+     *            37(/' ',I4,1X,10I9,2X,1P,E10.3,2E10.1,0P)//
+     *            ' ELA. ',10F9.2,5X,'LOWER BIN LIMIT'/
+     *            ' RANGE',10F9.2,5X,'UPPER BIN LIMIT')
+ 
+        WRITE(MONIOU,204) SHOWNO
+  204   FORMAT(//' INTERACTIONS PER KINETIC ENERGY INTERVAL OF SHOWER',
+     *         ' NO ',I10//)
+ 
+        WRITE(MONIOU,205)
+  205   FORMAT('   BIN    LOWER LIMIT    UPPER LIMIT    ',
+     *         ' NUCLEON      PIONS      KAONS  S.BARYONS      TOTAL'/
+     *         '             IN GEV         IN GEV      ',
+     *         '  EVENTS     EVENTS     EVENTS     EVENTS  '/)
+        WRITE(MONIOU,207) (I,SABIN(I),SBBIN(I),INBIN(I),IPBIN(I),
+     *    IKBIN(I),IHBIN(I),INBIN(I)+IPBIN(I)+IKBIN(I)+IHBIN(I),I=1,37)
+  207   FORMAT(' ',I5,1P,2E15.4,0P,1X,5I11)
+ 
+        WRITE(MONIOU,301)
+  301   FORMAT (//' INTERACTION LENGTH STATISTICS: ',
+     *        '    1 BIN CORRESPONDS TO 10 G/CM**2 OR 1KM FOR MUONS'//
+     *        '  BIN      LAMBDA NU   LAMBDA PI   LAMBDA KA   ',
+     *                   'LAMBDA HY   LAMBDA MU   LAMBDA NUCLEUS'/)
+        WRITE(MONIOU,303) (I,INUCHI(I),IPICHI(I),IKACHI(I),IHYCHI(I),
+     *                      IMUCHI(I),INNCHI(I),I=1,124)
+  303   FORMAT (' ',I4,6I12)
+ 
+        WRITE(MONIOU,105) IRECOR
+  105   FORMAT (/' NO OF WORDS WRITTEN TO PARTICLE TAPE UP TO NOW =',
+     *           I10)
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/output.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/output.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/output.f	(revision 4308)
@@ -0,0 +1,208 @@
+      SUBROUTINE OUTPUT
+ 
+C-----------------------------------------------------------------------
+C  (WRITE PARTICLE) OUTPUT
+C
+C  WRITES 39 PARTICLE RECORDS PER PHYSICAL RECORD
+C  TABULATES PARAMETERS OF ALL HIGH ENERGY PARTICLES WITH
+C  LORENTZ FACTOR LARGER THAN ECTMAP
+C  THIS SUBROUTINE IS CALLED FROM MAIN, BOX3, MUTRAC, AND AUSGAB
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,ETHMAP.
+      COMMON /ETHMAP/  ECTMAP,ELEFT
+      DOUBLE PRECISION ECTMAP,ELEFT
+*KEEP,MAGANG.
+      COMMON /MAGANG/  ARRANG,ARRANR,COSANG,SINANG
+      DOUBLE PRECISION ARRANG,ARRANR,COSANG,SINANG
+*KEEP,MULT.
+      COMMON /MULT/    EKINL,MSMM,MULTMA,MULTOT
+      DOUBLE PRECISION EKINL
+      INTEGER          MSMM,MULTMA(37,13),MULTOT(37,13)
+*KEEP,MUPART.
+      COMMON /MUPART/  AMUPAR,BCUT,CMUON,FMUBRM,FMUORG
+      DOUBLE PRECISION AMUPAR(14),BCUT,CMUON(11)
+      LOGICAL          FMUBRM,FMUORG
+*KEEP,NPARTI.
+      COMMON /NPARTI/  NPARTO,MUOND
+      DOUBLE PRECISION NPARTO(10,25),NPHOTO(10),NPOSIT(10),NELECT(10),
+     *                 NNU(10),NMUP(10),NMUM(10),NPI0(10),NPIP(10),
+     *                 NPIM(10),NK0L(10),NKPL(10),NKMI(10),NNEUTR(10),
+     *                 NPROTO(10),NPROTB(10),NK0S(10),NHYP(10),
+     *                 NNEUTB(10),NDEUT(10),NTRIT(10),NALPHA(10),
+     *                 NOTHER(10),MUOND
+      EQUIVALENCE (NPARTO(1, 1),NPHOTO(1)), (NPARTO(1, 2),NPOSIT(1)),
+     *            (NPARTO(1, 3),NELECT(1)), (NPARTO(1, 4),NNU(1))   ,
+     *            (NPARTO(1, 5),NMUP(1))  , (NPARTO(1, 6),NMUM(1))  ,
+     *            (NPARTO(1, 7),NPI0(1))  , (NPARTO(1, 8),NPIP(1))  ,
+     *            (NPARTO(1, 9),NPIM(1))  , (NPARTO(1,10),NK0L(1))  ,
+     *            (NPARTO(1,11),NKPL(1))  , (NPARTO(1,12),NKMI(1))  ,
+     *            (NPARTO(1,13),NNEUTR(1)), (NPARTO(1,14),NPROTO(1)),
+     *            (NPARTO(1,15),NPROTB(1)), (NPARTO(1,16),NK0S(1))  ,
+     *            (NPARTO(1,18),NHYP(1))  , (NPARTO(1,19),NDEUT(1)) ,
+     *            (NPARTO(1,20),NTRIT(1)) , (NPARTO(1,21),NALPHA(1)),
+     *            (NPARTO(1,22),NOTHER(1)), (NPARTO(1,25),NNEUTB(1))
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION AUGM,ETOT,PTOT,STT,XADDMU,YADDMU
+      INTEGER          I,IGG,III,NCOUNT
+      DATA             NCOUNT /0/,AUGM/1.D0/
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (OUTPAR(I),I=1,9)
+  444 FORMAT(' OUTPUT: OUTPAR=',1P,9E10.3)
+ 
+C  CORRECT X,Y COORDINATES FOR EACH LEVEL
+      OUTPAR(7) = OUTPAR(7) - XOFF(LEVL)
+      OUTPAR(8) = OUTPAR(8) - YOFF(LEVL)
+ 
+C  PRINT OUT PARTICLE IF IT IS ABOVE THE CUT
+      IF ( FPRINT .OR. DEBUG ) THEN
+        IF ( OUTPAR(2) .GE. ECTMAP ) THEN
+          WRITE(MONIOU,3) (OUTPAR(I),I=1,10), ELEFT
+    3     FORMAT(' OUTPUT:        ',1P,11E10.3)
+          IF (DEBDEL) THEN
+            NCOUNT = NCOUNT + 1
+            WRITE(MDEBUG,*)'OUTPUT: NCOUNT = ',NCOUNT
+            IF ( NCOUNT .GE. NDEBDL ) DEBUG = .TRUE.
+          ENDIF
+        ENDIF
+      ENDIF
+ 
+C  COUNT PARTICLES, THAT ARE WRITTEN TO TAPE
+      NOPART = NOPART + 1
+C  COUNT PARTICLES SPECIFIED BY THEIR PARTICLE CODE < 25
+      III    = NINT(OUTPAR(1))
+      IF     ( III .LT. 18 ) THEN
+        NPARTO(LEVL,III) = NPARTO(LEVL,III) + AUGM
+      ELSEIF ( (III .GE. 18  .AND.  III .LE. 24)  .OR.
+     *         (III .GE. 26  .AND.  III .LE. 32)      ) THEN
+        NHYP(LEVL) = NHYP(LEVL) + AUGM
+      ELSEIF ( III .EQ. 201 ) THEN
+        NDEUT(LEVL) = NDEUT(LEVL) + AUGM
+      ELSEIF ( III .EQ. 301 ) THEN
+        NTRIT(LEVL) = NTRIT(LEVL) + AUGM
+      ELSEIF ( III .EQ. 402 ) THEN
+        NALPHA(LEVL) = NALPHA(LEVL) + AUGM
+      ELSEIF ( III .GT. 33 ) THEN
+        WRITE(MONIOU,*) 'OUTPUT: PARTICLE ON OBSLEV ',LEVL,'  ID= ',III
+        NOTHER(LEVL) = NOTHER(LEVL) + AUGM
+      ELSE
+        NPARTO(LEVL,III) = NPARTO(LEVL,III) + AUGM
+      ENDIF
+ 
+C   TREATE ADDITIONAL INFORMATION OF MUONS
+C   THE COORDINATES OF MUON ORIGIN ARE STORED IN AMUPAR(.)
+      IF ( FMUADD  .AND. (III .EQ. 5  .OR. III .EQ. 6) ) THEN
+        DATAB(LH+1) = (III + 70.) * 1000.
+        PTOT = PAMA(III) * SQRT( AMUPAR(2)**2 - 1.D0 )
+        STT  = SQRT( 1.D0 - AMUPAR(3)**2 )
+        DATAB(LH+2) = PTOT * STT * COS( AMUPAR(4) + ARRANR )
+        DATAB(LH+3) = PTOT * STT * SIN( AMUPAR(4) + ARRANR )
+        DATAB(LH+4) = PTOT * AMUPAR(3)
+        XADDMU = AMUPAR(7) - XOFF(LEVL)
+        YADDMU = AMUPAR(8) - YOFF(LEVL)
+        DATAB(LH+5) = XADDMU * COSANG + YADDMU * SINANG
+        DATAB(LH+6) = YADDMU * COSANG - XADDMU * SINANG
+        DATAB(LH+7) = AMUPAR(5)
+        IF ( DEBUG ) WRITE(MDEBUG,445) (DATAB(LH+I),I=1,7)
+  445   FORMAT(' OUTPUT: MUADDI=',1P,8E10.3)
+        LH = LH + 7
+ 
+C  WRITE A BLOCK OF 39 PARTICLES TO OUTPUT BUFFER AND CLEAR FIELD
+        IF ( LH .GE. MAXBUF ) THEN
+          CALL TOBUF( DATAB,0 )
+          DO  1  I = 1,MAXBUF
+            DATAB(I) = 0.
+  1       CONTINUE
+          LH = 0
+        ENDIF
+      ENDIF
+ 
+C   COPY PARTICLE TO DATAB FIELD
+      IGG = MIN( OUTPAR(9), 99.D0 )
+      DATAB(LH+1) = III*1000 + IGG*10 + MOD(LEVL,10)
+      IF ( OUTPAR(1) .LE. 3.D0 ) THEN
+        ETOT = OUTPAR(2)
+      ELSE
+        ETOT = PAMA(III) * OUTPAR(2)
+      ENDIF
+      PTOT = SQRT( ETOT**2 - PAMA(III)**2 )
+      STT  = SQRT( 1.D0 - OUTPAR(3)**2 )
+      DATAB(LH+2) = PTOT * STT * COS( OUTPAR(4) + ARRANR )
+      DATAB(LH+3) = PTOT * STT * SIN( OUTPAR(4) + ARRANR )
+      DATAB(LH+4) = PTOT * OUTPAR(3)
+      DATAB(LH+5) = OUTPAR(7) * COSANG + OUTPAR(8) * SINANG
+      DATAB(LH+6) = OUTPAR(8) * COSANG - OUTPAR(7) * SINANG
+      DATAB(LH+7) = OUTPAR(6) * 1.E9
+      LH = LH + 7
+ 
+C  WRITE A BLOCK OF 39 PARTICLES TO OUTPUT BUFFER AND CLEAR FIELD
+      IF ( LH .GE. MAXBUF ) THEN
+        CALL TOBUF( DATAB,0 )
+        DO  2  I = 1,MAXBUF
+          DATAB(I) = 0.
+  2     CONTINUE
+        LH = 0
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pair.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pair.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pair.f	(revision 4308)
@@ -0,0 +1,117 @@
+      SUBROUTINE PAIR
+C                                VERSION 4.00  --  26 JAN 1986/1900
+C******************************************************************
+C   FOR A PHOTON ENERGY LESS THAN 2.1 MEV, THE APPROXIMATION IS
+C   MADE THAT ONE PAIR ELECTRON (OR POSITRON) HAS ONLY ITS REST
+C   MASS ENERGY.   FOR PHOTON ENERGY BETWEEN 2.1 MEV AND 50 MEV THE
+C   BETHE-HEITLER CROSS SECTION IS EMPLOYED.  ABOVE 50 MEV THE
+C   COULOMB CORRECTED BETHE-HEITLER CROSS SECTION IS USED.
+C   (BUTCHER AND MESSEL, OP. CIT., P. 17-19, 22).
+C******************************************************************
+      DOUBLE PRECISION PEIG,PESE1,PESE2
+      COMMON/BREMPR/DL1(6),DL2(6),DL3(6),DL4(6),DL5(6),DL6(6),DELCM, ALP
+     *HI(2),BPAR(2),DELPOS(2),PWR2I(50)
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/THRESH/RMT2,RMSQ,ESCD2,AP,API,AE,UP,UE,TE,THMOLL
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' PAIR:  NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      PEIG=E(NP)
+      EIG=PEIG
+      IF (EIG.LE.2.1) THEN
+       ESE2=PRM
+      ELSE
+       IF (EIG.LT.50.) THEN
+        LVX=1
+        LVL0=0
+       ELSE
+        LVX=2
+        LVL0=3
+       END IF
+961    CONTINUE
+        CALL RMMAR(RD,2,2)
+        RNNO30=RD(1)
+        RNNO31=RD(2)
+        IF (RNNO31.GE.BPAR(LVX)) THEN
+         LVL=LVL0+1
+         CALL RMMAR(RD,2,2)
+         RNNO32=RD(1)
+         RNNO33=RD(2)
+         BR=0.5*(1.0-MAX(RNNO32,RNNO33,RNNO30))
+        ELSE
+         LVL=LVL0+3
+         BR=RNNO30*0.5
+        END IF
+        IF((BR.EQ.0.0))GO TO961
+        DEL=1.0/(EIG*BR*(1.0-BR))
+        IF((DEL.GE.DELPOS(LVX)))GO TO961
+        DELTA=DELCM*DEL
+        IF (DELTA.LT.1.0) THEN
+         REJF=DL1(LVL)+DELTA*(DL2(LVL)+DELTA*DL3(LVL))
+        ELSE
+         REJF=DL4(LVL)+DL5(LVL)*LOG(DELTA+DL6(LVL))
+        END IF
+        CALL RMMAR(RNSCRN,1,2)
+        IF((RNSCRN.LE.REJF))GO TO962
+       GO TO 961
+962    CONTINUE
+       ESE2=BR*EIG
+      END IF
+      PESE2=ESE2
+      PESE1=PEIG-PESE2
+      E(NP)=PESE1
+      E(NP+1)=PESE2
+      THETA=RM/EIG
+      CALL UPHI(1,1)
+      NP=NP+1
+      SINTHE=-SINTHE
+      CALL UPHI(3,2)
+      CALL RMMAR(RNNO34,1,2)
+      IF (RNNO34.LE.0.5) THEN
+       IQ(NP)=2
+       IQ(NP-1)=3
+      ELSE
+       IQ(NP)=3
+       IQ(NP-1)=2
+      END IF
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pamaf.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pamaf.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pamaf.f	(revision 4308)
@@ -0,0 +1,150 @@
+      SUBROUTINE PAMAF
+ 
+C-----------------------------------------------------------------------
+C  PA(RTICLE) MA(SS) F(ILLING)
+C
+C  FILLS PARTICLE MASS FOR PARTICLE IP IN ARRAY PAMA
+C  RESONANCES AND STRANGE BARYONS INCLUDED
+C  PARTICLE MASSES ACCORDING TO GEANT TABLE,
+C  TAKEN FROM THE PERIODIC TABLE
+C  OR CALCULATED WITH THE MASS FORMULA OF WEIZSAECKER
+C  THIS SUBROUTINE IS CALLED FROM START
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEND.
+ 
+      DOUBLE PRECISION AMUS(59,14),BIND,B1,B2,B3,B4,B5,CHARGE(75),
+     *                 MASSES(75),SS
+      INTEGER          I,IA,IC,IN,IP,L
+C-----------------------------------------------------------------------
+      DATA MASSES /
+     * 0.0D0      ,.51099906D-3,.51099906D-3, 0.0D0      ,.105658389D0,
+     *.105658389D0, .1349743D0 , .1395679D0 , .1395679D0 , 0.497671D0 ,
+     * 0.493646D0 , 0.493646D0 ,.93956563D0 ,.93827231D0 ,.93827231D0 ,
+     * 0.497671D0 , 0.54745D0  , 1.11563D0  , 1.18937D0  , 1.19255D0  ,
+     * 1.197465D0 , 1.31485D0  , 1.32133D0  , 1.67243D0  ,.93956563D0 ,
+     * 1.11563D0  , 1.18937D0  , 1.19255D0  , 1.19743D0  , 1.31485D0  ,
+     * 1.32133D0  , 1.67243D0  , 1.7841D0   , 1.7841D0   , 1.8693D0   ,
+     * 1.8693D0   , 1.8645D0   , 1.8645D0   , 1.9693D0   , 1.9693D0   ,
+     * 2.2852D0   , 80.6D0     , 80.6D0     , 91.161D0   , 1.877D0    ,
+     * 2.817D0    , 3.755D0    , 0.0D0      , 0.0D0      , 0.0D0      ,
+     * 0.7669D0   , 0.7681D0   , 0.7681D0   , 1.2309D0   , 1.2323D0   ,
+     * 1.2336D0   , 1.2349D0   , 1.2309D0   , 1.2323D0   , 1.2336D0   ,
+     * 1.2349D0   , 0.89624D0  , 0.89209D0  , 0.89209D0  , 0.89624D0  ,
+     * 0.0D0      , 0.0D0      , 0.0D0      , 0.0D0      , 0.0D0      ,
+     * 0.54745D0  , 0.54745D0  , 0.54745D0  , 0.54745D0  , 0.0D0      /
+ 
+      DATA CHARGE /
+     *  0.D0,+1.D0,-1.D0, 0.D0,+1.D0,-1.D0, 0.D0,+1.D0,-1.D0, 0.D0,
+     * +1.D0,-1.D0, 0.D0,+1.D0,-1.D0, 0.D0, 0.D0, 0.D0,+1.D0, 0.D0,
+     * -1.D0, 0.D0,-1.D0,-1.D0, 0.D0, 0.D0,-1.D0, 0.D0,+1.D0, 0.D0,
+     * +1.D0,+1.D0,+1.D0,-1.D0,+1.D0,-1.D0, 0.D0, 0.D0,+1.D0,-1.D0,
+     * +1.D0,+1.D0,-1.D0, 0.D0,+1.D0,+1.D0,+2.D0, 0.D0, 0.D0, 0.D0,
+     *  0.D0,+1.D0,-1.D0,+2.D0,+1.D0, 0.D0,-1.D0,-2.D0,-1.D0, 0.D0,
+     * +1.D0, 0.D0,+1.D0,-1.D0, 0.D0, 0.D0, 0.D0, 0.D0, 0.D0, 0.D0,
+     *  0.D0, 0.D0, 0.D0, 0.D0, 0.D0 /
+ 
+C  ISOTOPE MASSES CALCULATED FROM: ATOMIC DATA AND NUCL.DATA TABLES 39
+C  (1988) 289, (WAPSTRA'S VALUES, CORRECTED FOR ELECTRON MASSES)
+      DATA ((AMUS(I,L),I=1,59),L=1,7) /
+     * 1.8756D0,  2.8089D0,                                    57*0.D0,
+     * 2.8083D0,  3.7273D0,  4.6678D0,  5.6054D0,  6.5454D0,   54*0.D0,
+     * 2*0.D0  ,  5.6014D0,  6.5337D0,  7.4712D0,  8.4067D0,
+     *                       9.3471D0, 10.2856D0,              51*0.D0,
+     * 2*0.D0  ,  6.5341D0,  7.4547D0,  8.3926D0,  9.3253D0,
+     *                      10.2644D0, 11.2008D0,              51*0.D0,
+     * 2*0.D0  ,  7.4722D0,  8.3932D0,  9.3243D0, 10.2524D0,
+     *           11.1886D0, 12.1232D0, 13.0618D0, 13.9986D0,   49*0.D0,
+     * 2*0.D0  ,  8.4091D0,  9.3274D0, 10.2538D0, 11.1747D0, 12.1093D0,
+     *           13.0406D0, 13.9790D0, 14.9143D0, 15.8531D0,   48*0.D0,
+     * 4*0.D0  , 11.1915D0, 12.1110D0, 13.0400D0, 13.9687D0, 14.9057D0,
+     *           15.8394D0, 16.7761D0, 17.7104D0,              47*0.D0/
+      DATA ((AMUS(I,L),I=1,59),L=8,14) /
+     * 4*0.D0, 12.1282D0, 13.0446D0, 13.9709D0, 14.8948D0, 15.8302D0,
+     *             16.7617D0, 17.6973D0, 18.6293D0, 19.5650D0, 46*0.D0,
+     * 7*0.D0, 15.8325D0, 16.7629D0, 17.6920D0, 18.6429D0, 19.5564D0,
+     *             20.4907D0, 21.4227D0, 22.3587D0,            44*0.D0,
+     * 6*0.D0, 15.8464D0, 16.7668D0, 17.6947D0, 18.6174D0, 19.5502D0,
+     *  20.4794D0, 21.4137D0, 22.3444D0, 23.2839D0, 24.2138D0, 43*0.D0,
+     * 8*0.D0, 18.6308D0, 19.5532D0, 20.4817D0, 21.4088D0, 22.3414D0,
+     *  23.2720D0, 24.2059D0, 25.1387D0, 26.0746D0, 27.0099D0,
+     *  27.9469D0, 28.8820D0, 29.8173D0, 30.7546D0, 31.6913D0, 36*0.D0,
+     * 7*0.D0, 18.6410D0, 19.5658D0, 20.4860D0, 21.4124D0, 22.3354D0,
+     *  23.2676D0, 24.1961D0, 25.1292D0, 26.0602D0, 26.9961D0,
+     *  27.9291D0, 28.8660D0, 29.7994D0, 30.7376D0,            38*0.D0,
+     * 9*0.D0, 21.4241D0, 22.3488D0, 23.2714D0, 24.1996D0, 25.1261D0,
+     *  26.0579D0, 26.9880D0, 27.9218D0, 28.8541D0, 29.7894D0,
+     *  30.7233D0, 31.6599D0, 32.5944D0, 33.5316D0,            36*0.D0,
+     * 9*0.D0, 22.3591D0, 23.2836D0, 24.2041D0, 25.1304D0, 26.0527D0,
+     *  26.9838D0, 27.9128D0, 28.8457D0, 29.7761D0, 30.7111D0,
+     *  31.6431D0, 32.5803D0, 33.5128D0, 34.4505D0, 35.3837D0, 35*0.D0/
+C-----------------------------------------------------------------------
+ 
+C  GEANT PARTICLES  INCLUDING RHO, K*, AND DELTA
+      DO  1  IP = 1,75
+        PAMA  (IP) = MASSES(IP)
+        SIGNUM(IP) = CHARGE(IP)
+  1   CONTINUE
+ 
+C  RESET REST OF THE ARRAY
+      DO  2  IP = 76,6000
+        PAMA  (IP) = 0.D0
+        SIGNUM(IP) = 0.D0
+  2   CONTINUE
+ 
+      DO  3  IA = 1,59
+      DO  3  IC = 1,IA
+        IN = IA - IC
+        IP = IA * 100 + IC
+cc      IF ( IC .LE. 14 ) THEN
+C  MASSES FROM MASS TABLE FOR ISOTOPES
+cc        IF ( IN .EQ. 0 ) THEN
+cc          PAMA(IP) = IC * PAMA(14)
+cc        ELSE
+cc          PAMA(IP) = AMUS(IN,IC)
+cc        ENDIF
+C  SIMPLE SUM OF PROTON AND NEUTRON MASSES
+cc        IF ( PAMA(IP) .EQ. 0.D0 )
+cc   *               PAMA(IP) = IC * PAMA(14) + IN * PAMA(13)
+cc      ELSE
+C  WEIZSAECKERS MASS FORMULA GIVES BINDING ENERGY IN MEV
+cc        B1 =  14.1D0 * IA
+cc        B2 = -13.D0 * IA**TB3
+cc        B3 = -0.595D0 * IC**2 / IA**OB3
+cc        B4 = -19.D0 * (IC-IN)**2 / IA
+cc        B5 =  33.5D0 / IA**0.75D0
+cc        IF     ( MOD(IC,2) .EQ. 0  .AND.  MOD(IN,2) .EQ. 0 ) THEN
+cc          SS =  1.D0
+cc        ELSEIF ( MOD(IC,2) .EQ. 1  .AND.  MOD(IN,2) .EQ. 1 ) THEN
+cc          SS = -1.D0
+cc        ELSE
+cc          SS =  0.D0
+cc        ENDIF
+cc        BIND = (B1 + B2 + B3 + B4 + SS*B5)* 1.D-3
+cc        BIND = MAX( 0.D0, BIND )
+cc        PAMA(IP) = IN * MASSES(13) + IC * MASSES(14) - BIND
+cc      ENDIF
+ 
+C  DO NOT USE BINDING ENERGY EFFECTS
+        PAMA(IP) = IN * MASSES(13) + IC * MASSES(14)
+ 
+C  NUCLEI ARE ASSUMED TO BE FULLY IONIZED
+        SIGNUM(IP) = +IC
+  3   CONTINUE
+ 
+C  MASSES OF MULTINEUTRON CLUSTERS
+      DO  4  IN = 1,59
+        IP = 100 * IN
+        PAMA  (IP) = IN * PAMA(13)
+        SIGNUM(IP) = 0.D0
+  4   CONTINUE
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/parnum.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/parnum.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/parnum.f	(revision 4308)
@@ -0,0 +1,282 @@
+      SUBROUTINE PARNUM( INUMFL )
+ 
+C-----------------------------------------------------------------------
+C  PART(ICLE TYPE) NUM(BERS)
+C
+C  DETERMINES THE NUMBERS OF SECONDARY PARTICLES FOR EACH TYPE
+C  THIS SUBROUTINE IS CALLED FROM HDPM
+C  ARGUMENT
+C   INUMFL = 0  CORRECT DETERMINATION OF PARTICLE NUMBERS
+C          = 1  SOMETHING WENT WRONG WITH NEUTRAL PARTICLE NUMBERS
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,EDECAY.
+      COMMON /EDECAY/  CETA
+      DOUBLE PRECISION CETA(5)
+*KEEP,INDICE.
+      COMMON /INDICE/  NNUCN,NKA0,NHYPN,NETA,NETAS,NPIZER,
+     *                 NNC,NKC,NHC,NPC,NCH,NNN,NKN,NHN,NET,NPN
+      INTEGER          NNUCN(2:3),NKA0(2:3),NHYPN(2:3),NETA(2:3,1:4),
+     *                 NETAS(2:3),NPIZER(2:3),
+     *                 NNC,NKC,NHC,NPC,NCH,NNN,NKN,NHN,NET,NPN
+*KEEP,INTER.
+      COMMON /INTER/   AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN,
+     *                 IDIF,ITAR
+      DOUBLE PRECISION AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN
+      INTEGER          IDIF,ITAR
+*KEEP,LEPAR.
+      COMMON /LEPAR/   LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS
+      INTEGER          LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RATIOS.
+      COMMON /RATIOS/  RPI0R,RPIER,RPEKR,RPEKNR,PPICH,PPINCH,PPNKCH,
+     *                 ISEL,NEUTOT,NTOTEM
+      DOUBLE PRECISION RPI0R,RPIER,RPEKR,RPEKNR,PPICH,PPINCH,PPNKCH
+      INTEGER          ISEL,NEUTOT,NTOTEM
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      REAL RDETA
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'PARNUM: NCH,NEUTOT,NTOTEM=',
+     *                                      NCH,NEUTOT,NTOTEM
+ 
+      INUMFL = 0
+C  RESET PARTICLE NUMBERS
+      NNC = 0
+      NKC = 0
+      NHC = 0
+      NPC = 0
+C  ISEL IS 1 MEANS VERY LOW MULTIPLICITY
+C  CREATE ONLY PIONS (TO RISKY TO CREATE OTHER PARTICLES)
+      IF ( ISEL .EQ. 1 ) THEN
+        NNN = 0
+        NKN = 0
+        NET = 0
+        NHN = 0
+        NPN = 0
+        NETAS(2) = 0
+        NETAS(3) = 0
+C  CREATE RANDOM NUMBERS
+        CALL RMMAR( RD,NTOTEM,1 )
+        DO 1000  I = 1,NTOTEM
+          IF ( RD(I) .LE. TB3 ) THEN
+            NPC = NPC + 1
+          ELSE
+            NPN = NPN + 1
+          ENDIF
+ 1000   CONTINUE
+C  NO NEUTRAL PARTICLES FOR THE 3RD STRING EXCEPT EVENTUALLY PI(0)
+        NNUCN(3)  = 0
+        NKA0(3)   = 0
+        NHYPN(3)  = 0
+        NETAS(3)  = 0
+        NPIZER(3) = MAX( 0, NINT(RC3TO2/(1.D0+RC3TO2)*DBLE(NPN)) )
+        IF ( DEBUG ) WRITE(MDEBUG,*) '   ISEL=1, NTOTEM=',NTOTEM
+ 
+      ELSE
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  NOW THE CASE OF HAVING ENOUGH PARTICLES TO BE ABLE TO CREATE
+C  KAONS, NUCLEONS, AND HYPERONS TOO.
+ 
+C  ...FOR NEUTRALS
+        NCOUNT = 0
+C  BEGIN OF REJECT LOOP
+ 1002   K = 1
+        CALL RMMAR( RD,NEUTOT+3,1 )
+C  DETERMINE NUMBER OF PI(0), ETA, K0S/K0 PAIRS, NEUTRON/ANTINEUTRON
+C  PAIRS, AND NEUTRAL HYPERON PAIRS  AND SUM UP THE GAMMAS
+C  FOR 1ST + 2ND STRING: J IS 2;  FOR 3RD STRING: J IS 3
+        SGAMMA = 0.D0
+        DO 1010  J = 2,3
+          NNUCN(J)  = 0
+          NKA0(J)   = 0
+          NHYPN(J)  = 0
+          NETA(J,1) = 0
+          NETA(J,2) = 0
+          NETA(J,3) = 0
+          NETA(J,4) = 0
+          NPIZER(J) = 0
+          IF ( J .EQ. 2 ) THEN
+C  SET BOUNDARY FOR GAMMA SUM
+            GABOU = SEUGF
+            NNTOT = INT(FNEUT2)
+C  CALCULATE BOUNDARY NNTOT OF PARTICLE LOOP RATHER AT RANDOM THAN BY
+C  ROUNDING OF FNEUT2 TO AVOID DIGITIZING EFFECTS ON THE NEUTRAL
+C  PARTICLE COMPOSITION AT COLLISIONS WITH LOW MULTIPLICITY
+            IF ( NNTOT+RD(NEUTOT+2) .GE. FNEUT2 ) NNTOT = NNTOT+1
+          ELSE
+            IF ( RC3TO2 .LE. 0.D0 ) GOTO 1010
+            GABOU = GABOU + SEUGF* RC3TO2
+            NNTOT = INT(FNEUT)
+            IF ( NNTOT+RD(NEUTOT+3) .GE. FNEUT ) NNTOT = NNTOT+1
+          ENDIF
+          IF ( DEBUG ) WRITE(MDEBUG,*) '   J,NNTOT=',J,NNTOT
+C  START NEUTRAL PARTICLE PRODUCTION LOOP
+ 1003     CONTINUE
+          IF     ( K .LT. NNTOT ) THEN
+            RNDM = RD(K)
+          ELSEIF ( K .EQ. NNTOT ) THEN
+C  RENORMALIZE THE RANDOM NUMBER, THAT ONLY PI(0) OR ETA IS PRODUCED
+C  BUT PAIR PRODUCTION BECOMES IMPOSSIBLE
+            RNDM = RD(K) * RPIER
+          ELSEIF ( K .GT. NNTOT ) THEN
+            GOTO 1010
+          ENDIF
+          IF     ( RNDM .LE. RPI0R ) THEN
+C  PI(0)
+            SGAMMA    = SGAMMA + 2.D0
+            NPIZER(J) = NPIZER(J) + 1
+            K = K + 1
+ 
+          ELSEIF ( RNDM .LE. RPIER ) THEN
+C  ETA
+            CALL RMMAR( RDETA,1,1 )
+            IF     ( RDETA .LE. CETA(1) ) THEN
+              SGAMMA    = SGAMMA + 2.D0
+              NETA(J,1) = NETA(J,1) + 1
+            ELSEIF ( RDETA .LE. CETA(2) ) THEN
+              SGAMMA    = SGAMMA + 6.D0
+              NETA(J,2) = NETA(J,2) + 1
+            ELSEIF ( RDETA .LE. CETA(3) ) THEN
+              SGAMMA    = SGAMMA + 2.D0
+              NETA(J,3) = NETA(J,3) + 1
+            ELSE
+              SGAMMA    = SGAMMA + 1.D0
+              NETA(J,4) = NETA(J,4) + 1
+            ENDIF
+            K = K + 1
+ 
+          ELSEIF ( RNDM .LE. RPEKR ) THEN
+C  K0S/K0L PAIR; RPEKR IS NORMALIZED FOR K0 PAIR FORMATION
+C  THE UA5 GAMMA YIELD DOES NOT INCLUDE GAMMAS FROM K DECAY !!!
+C  SEE: ANSORGE ET AL., Z. PHYS. C43 (1989) 75
+            NKA0(J) = NKA0(J) + 1
+            K = K + 2
+          ELSEIF ( RNDM .LE. RPEKNR ) THEN
+C  NEUTRON-ANTINEUTRON PAIR
+            NNUCN(J) = NNUCN(J) + 1
+            K = K + 2
+          ELSE
+C  HYPERON-ANTIHYPERON PAIR
+C  AVERAGE NEUTRAL HYPERON PAIR L0 --> .357*2 GAMMAS = 0.714 GAMMAS
+C                               S0 --> L0 + 1 GAMMA  = 1.714 GAMMAS
+C  THEY ARE INCLUDED IN UA5 GAMMA MULTIPLICITIES, THEREFORE COUNT
+            SGAMMA   = SGAMMA + 2.428D0
+            NHYPN(J) = NHYPN(J) + 1
+            K = K + 2
+          ENDIF
+          GOTO 1003
+ 1010   CONTINUE
+        IF ( DEBUG ) WRITE(MDEBUG,1020) ( 2*NNUCN(J),2*NKA0(J),
+     *            2*NHYPN(J),NETA(J,1),NETA(J,2),NETA(J,3),NETA(J,4),
+     *            NPIZER(J),J=2,3 ), NNTOT,GABOU,SGAMMA,SGAMMA/GABOU
+ 1020   FORMAT(' PARNUM: NEUTRALS (1.,2.STRING)=',8I5,/
+     *         '         NEUTRALS (3. STRING)  =',8I5,/
+     *         '  NNTOT,SEUGF2+3,SGAMMA,RATIO=',I6,3(2X,F10.5))
+C  REJECT ALL NEUTRALS, IF SUM OF GAMMAS DEVIATES BY MORE THAN SIGMA
+        IF ( (SGAMMA - GABOU)**2 .GT. GABOU ) THEN
+          NCOUNT = NCOUNT + 1
+C  AFTER 20 TRIES SET FLAG INUMFL TO 1 AND RETURN
+          IF ( NCOUNT .LE. 20 ) GOTO 1002
+          INUMFL = 1
+          RETURN
+        ENDIF
+C  ALL NEUTRALS
+        NNN = NNUCN(2)  + NNUCN(3)
+        NKN = NKA0(2)   + NKA0(3)
+        NHN = NHYPN(2)  + NHYPN(3)
+        NETAS(2) = NETA(2,1) + NETA(2,2) + NETA(2,3) + NETA(2,4)
+        NETAS(3) = NETA(3,1) + NETA(3,2) + NETA(3,3) + NETA(3,4)
+        NET = NETAS(2)  + NETAS(3)
+        NPN = NPIZER(2) + NPIZER(3)
+ 
+C  ...FOR CHARGED
+        I = 1
+        CALL RMMAR( RD,NCH-1,1 )
+C  START CHARGED PARTICLE PRODUCTION LOOP
+ 1101   CONTINUE
+        RNDM = RD(I)
+        IF     ( RNDM .LT. PPICH  ) THEN
+C  PI(+-)
+          NPC = NPC + 1
+          I   = I + 1
+        ELSEIF ( RNDM .LT. PPINCH ) THEN
+C  PROTON/ANTIPROTON PAIR
+          NNC = NNC + 1
+          I   = I + 2
+        ELSEIF ( RNDM .LT. PPNKCH ) THEN
+C  KAON(+,-) PAIR
+          NKC = NKC + 1
+          I   = I + 2
+        ELSE
+C  CHARGED HYPERON/ANTIHYPERON PAIR
+          NHC = NHC + 1
+          I   = I + 2
+        ENDIF
+        IF     ( I .LT. NCH ) THEN
+          GOTO 1101
+        ELSEIF ( I .EQ. NCH ) THEN
+C  ONLY 1 CHARGED PARTICLE TO BE PRODUCED WHICH IS PI(+-)
+          NPC = NPC + 1
+        ENDIF
+C  CORRECT CHARGED PION NUMBER FOR DECAY OF ETA'S
+        NCORR = 2 * ( NETA(2,3) + NETA(2,4) + NETA(3,3) + NETA(3,4) )
+        NPC   = MAX( 0, NPC - NCORR )
+        IF ( DEBUG ) WRITE(MDEBUG,*) '   NPC,NPN,NCORR,LASTPI=',
+     *                                   NPC,NPN,NCORR,LASTPI
+      ENDIF
+C  CORRECT NUMBER OF CHARGED AND NEUTRAL PIONS FOR RESONANCE DECAY
+C  (NRESPC, NRESPN)
+      NPC = MAX( 0, NPC - NRESPC + LASTPI )
+C  INCREASE NPN ADDITIONALLY BY 1 TO MEET UA5 DATA, WHICH REPRODUCE ON
+C  AVERAGE ONE EXCHANGED CHARGE (LASTPI = +1).
+      NPN = MAX( 0, NPN - NRESPN - LASTPI + 1 )
+C  TOTAL NUMBER OF CHARGED PARTICLES
+      NCH = (NNC + NKC + NHC) * 2 + NPC
+C  NOW ALL PARTICLES ARE DETERMINED
+      IF ( DEBUG ) WRITE(MDEBUG,*)
+     *             'PARNUM: TOT.CHARGED=',2*NNC,2*NKC,2*NHC,NPC,
+     *             'PARNUM: TOT.NEUTRAL=',2*NNN,2*NKN,2*NHN,NET,NPN
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/parrap.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/parrap.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/parrap.f	(revision 4308)
@@ -0,0 +1,204 @@
+      SUBROUTINE PARRAP
+ 
+C-----------------------------------------------------------------------
+C  PAR(TICLE) RAP(IDITY)
+C
+C  ROUTINE GIVES THE NEW PARTICLES OF HDPM THEIR RAPIDITIES
+C  THIS SUBROUTINE IS CALLED FROM HDPM
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,INTER.
+      COMMON /INTER/   AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN,
+     *                 IDIF,ITAR
+      DOUBLE PRECISION AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN
+      INTEGER          IDIF,ITAR
+*KEEP,NEWPAR.
+      COMMON /NEWPAR/  EA,PT2,PX,PY,TMAS,YR,ITYP,
+     *                 IA1,IA2,IB1,IB2,IC1,IC2,ID1,ID2,IE1,IE2,IF1,IF2,
+     *                 IG1,IG2,IH1,IH2,II1,II2,IJ1,NTOT
+      DOUBLE PRECISION EA(3000),PT2(3000),PX(3000),PY(3000),TMAS(3000),
+     *                 YR(3000)
+      INTEGER          ITYP(3000),
+     *                 IA1,IA2,IB1,IB2,IC1,IC2,ID1,ID2,IE1,IE2,IF1,IF2,
+     *                 IG1,IG2,IH1,IH2,II1,II2,IJ1,NTOT
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      REAL RAND(3000)
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'PARRAP: NTOT=',NTOT
+ 
+C  PROTON ANTIPROTON PAIRS
+      CALL RMMAR( RAND(3),IJ1-2,1 )
+      DO 1013  K = 3,IB1
+C  GENERATION OF RAPIDITY FOR EXTRA PARTICLES FROM TARGET.
+        IF ( K .LE. IA2 ) THEN
+          YR(K) = RANNOR(-POSC3,WIDC3)
+        ELSE
+C  GENERATION OF RAPIDITY FOR PARTICLES FROM PP-COLLISION AND PROJECTILE
+          IF ( RAND(K) .LE. 0.5 ) THEN
+            YR(K) = RANNOR(POSC2,WIDC2)
+          ELSE
+            YR(K) = RANNOR(-POSC2,WIDC2)
+          ENDIF
+        ENDIF
+ 1013 CONTINUE
+ 
+C  K+ K- PAIRS
+      DO 1014  K = IB1+1,IC1
+        IF ( K .LE. IB2 ) THEN
+C  GENERATION OF RAPIDITY FOR EXTRA PARTICLES FROM TARGET.
+          YR(K) = RANNOR(-POSC3,WIDC3)
+        ELSE
+C  GENERATION OF RAPIDITY FOR PARTICLES FROM PP-COLLISION AND PROJECTILE
+          IF ( RAND(K) .LE. 0.5 ) THEN
+            YR(K) = RANNOR(POSC2,WIDC2)
+          ELSE
+            YR(K) = RANNOR(-POSC2,WIDC2)
+          ENDIF
+        ENDIF
+ 1014 CONTINUE
+ 
+C  CHARGED HYPERON PAIRS
+      DO 1015  K = IC1+1,ID1
+        IF ( K .LE. IC2 ) THEN
+C  GENERATION OF RAPIDITY FOR EXTRA PARTICLES FROM TARGET.
+          YR(K) = RANNOR(-POSC3,WIDC3)
+        ELSE
+C  GENERATION OF RAPIDITY FOR PARTICLES FROM PP-COLLISION AND PROJECTILE
+          IF ( RAND(K) .LE. 0.5 ) THEN
+            YR(K) = RANNOR(POSC2,WIDC2)
+          ELSE
+            YR(K) = RANNOR(-POSC2,WIDC2)
+          ENDIF
+        ENDIF
+ 1015 CONTINUE
+ 
+C  PI +-
+      DO 1017  K = ID1+1,IE1
+        IF ( K .LE. ID2 ) THEN
+C  GENERATION OF RAPIDITY FOR EXTRA PARTICLES FROM TARGET.
+          YR(K) = RANNOR(-POSC3,WIDC3)
+        ELSE
+C  GENERATION OF RAPIDITY FOR PARTICLES FROM PP-COLLISION AND PROJECTILE
+          IF ( RAND(K) .LE. 0.5 ) THEN
+            YR(K) = RANNOR(POSC2,WIDC2)
+          ELSE
+            YR(K) = RANNOR(-POSC2,WIDC2)
+          ENDIF
+        ENDIF
+ 1017 CONTINUE
+ 
+C  NEUTRON ANTINEUTRON PAIRS
+      DO 1021  K = IE1+1,IF1
+        IF ( K .LE. IE2 ) THEN
+C  GENERATION OF RAPIDITY FOR EXTRA PARTICLES FROM TARGET.
+          YR(K) = RANNOR(-POSC3,WIDC3)
+        ELSE
+C  GENERATION OF RAPIDITY FOR PARTICLES FROM PP-COLLISION AND PROJECTILE
+          IF ( RAND(K) .LE. 0.5 ) THEN
+            YR(K) = RANNOR(POSC2,WIDC2)
+          ELSE
+            YR(K) = RANNOR(-POSC2,WIDC2)
+          ENDIF
+        ENDIF
+ 1021 CONTINUE
+ 
+C  K0L K0S PAIRS
+      DO 1022  K = IF1+1,IG1
+        IF ( K .LE. IF2 ) THEN
+C  GENERATION OF RAPIDITY FOR EXTRA PARTICLES FROM TARGET.
+          YR(K) = RANNOR(-POSC3,WIDC3)
+        ELSE
+C  GENERATION OF RAPIDITY FOR PARTICLES FROM PP-COLLISION AND PROJECTILE
+          IF ( RAND(K) .LE. 0.5 ) THEN
+            YR(K) = RANNOR(POSC2,WIDC2)
+          ELSE
+            YR(K) = RANNOR(-POSC2,WIDC2)
+          ENDIF
+        ENDIF
+ 1022 CONTINUE
+ 
+C  NEUTRAL HYPERON PAIRS
+      DO 1023  K = IG1+1,IH1
+        IF ( K .LE. IG2 ) THEN
+C  GENERATION OF RAPIDITY FOR EXTRA PARTICLES FROM TARGET.
+          YR(K) = RANNOR(-POSC3,WIDC3)
+        ELSE
+C  GENERATION OF RAPIDITY FOR PARTICLES FROM PP-COLLISION AND PROJECTILE
+          IF ( RAND(K) .LE. 0.5 ) THEN
+            YR(K) = RANNOR(POSC2,WIDC2)
+          ELSE
+            YR(K) = RANNOR(-POSC2,WIDC2)
+          ENDIF
+        ENDIF
+ 1023 CONTINUE
+ 
+C  ETA
+      DO 1025  K = IH1+1,II1
+        IF ( K .LE. IH2 ) THEN
+C  GENERATION OF RAPIDITY FOR EXTRA PARTICLES FROM TARGET.
+          YR(K) = RANNOR(-POSN3,WIDN3)
+        ELSE
+C  GENERATION OF RAPIDITY FOR PARTICLES FROM PP-COLLISION AND PROJECTILE
+          IF ( RAND(K) .LE. 0.5 ) THEN
+            YR(K) = RANNOR(POSN2,WIDN2)
+          ELSE
+            YR(K) = RANNOR(-POSN2,WIDN2)
+          ENDIF
+        ENDIF
+ 1025 CONTINUE
+ 
+C PI(0)
+      DO 1026  K = II1+1,IJ1
+        IF ( K .LE. II2 ) THEN
+C  GENERATION OF RAPIDITY FOR EXTRA PARTICLES FROM TARGET.
+          YR(K) = RANNOR(-POSN3,WIDN3)
+        ELSE
+C  GENERATION OF RAPIDITY FOR PARTICLES FROM PP-COLLISION AND PROJECTILE
+          IF ( RAND(K) .LE. 0.5 ) THEN
+            YR(K) = RANNOR(POSN2,WIDN2)
+          ELSE
+            YR(K) = RANNOR(-POSN2,WIDN2)
+          ENDIF
+        ENDIF
+ 1026 CONTINUE
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pcl.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pcl.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pcl.f	(revision 4308)
@@ -0,0 +1,59 @@
+      DOUBLE PRECISION FUNCTION PCL( A,B )
+ 
+C-----------------------------------------------------------------------
+C  P (MOMENTUM) C(ENTER OF MASS) L(ONGITUDINAL)
+C
+C  RANDOM SELECTION OF LONGITUDINAL MOMENTUM IN CENTER OF MASS
+C  EXPONENTIAL DISTRIBUTION   PCL(X) = EXP(-X/A)
+C  THIS FUNCTION IS CALLED FORM HMESON, ISOBAR, AND VHMESO
+C  ARGUMENTS:
+C   A      = MEAN VALUE OF DISTRIBUTION
+C   B      = CUT FOR LIMITING MOMENTUM
+C
+C  CHANGES : J. KNAPP   IK1  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+C     IF ( DEBUG ) WRITE(MDEBUG,*) 'PCL   : A,B=',SNGL(A),SNGL(B)
+ 
+    1 CONTINUE
+      CALL RMMAR( RD,1,1 )
+      PCL = -A * LOG ( RD(1) )
+      IF ( PCL .GT. B ) GOTO 1
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'PCL   : PCL =',SNGL(PCL)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/photo.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/photo.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/photo.f	(revision 4308)
@@ -0,0 +1,71 @@
+      SUBROUTINE PHOTO
+C                                VERSION 4.00  --  26 JAN 1986/1900
+C******************************************************************
+      DOUBLE PRECISION PEIG
+*KEEP,EPCONT.
+      COMMON/EPCONT/   EDEP,RATIO,TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,IDISC,
+     *                 IROLD,IRNEW,RHOFAC, EOLD,ENEW,EKE,ELKE,BETA2,GLE,
+     *                 TSCAT,IAUSFL
+      DOUBLE PRECISION EDEP,RATIO
+      REAL             TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,RHOFAC,EOLD,ENEW,
+     *                 EKE,ELKE,BETA2,GLE,TSCAT
+      INTEGER          IDISC,IROLD,IRNEW,IAUSFL(29)
+*KEND.
+      COMMON/PHOTIN/EBINDA,GE0,GE1, MPGEM(1),GMFP0(500),GMFP1(500),GBR10
+     *(500),GBR11(500),GBR20(500),GBR21(500),GBR30(500),GBR31(500),GBR40
+     *(500),GBR41(500),NGR,RCO0,RCO1, RSCT0(100),RSCT1(100), COHE0(500),
+     *COHE1(500)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' PHOTO: NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      PEIG=E(NP)
+      IF (E(NP).LE.EBINDA) THEN
+       EDEP=PEIG
+       IBLOBE=1
+      ELSE
+       EDEP=EBINDA
+       E(NP)=EDEP
+       IBLOBE=0
+      END IF
+      IRL=IR(NP)
+      IF (IBLOBE.EQ.1) THEN
+       E(NP)=PZERO
+       RETURN
+      END IF
+      IQ(NP)=3
+      E(NP)=PEIG-EDEP+PRM
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/photon.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/photon.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/photon.f	(revision 4308)
@@ -0,0 +1,340 @@
+      SUBROUTINE PHOTON(IRCODE)
+C                                VERSION 4.00  --  26 JAN 1986/1900
+C******************************************************************
+      DOUBLE PRECISION PEIG
+      COMMON/BOUNDS/ECUT(6),PCUT(6),VACDST
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,CEREN1.
+      COMMON /CEREN1/  CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD,
+     *                 CERSIZ,LCERFI
+      DOUBLE PRECISION CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD
+      REAL             CERSIZ
+      LOGICAL          LCERFI
+*KEEP,EPCONT.
+      COMMON/EPCONT/   EDEP,RATIO,TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,IDISC,
+     *                 IROLD,IRNEW,RHOFAC, EOLD,ENEW,EKE,ELKE,BETA2,GLE,
+     *                 TSCAT,IAUSFL
+      DOUBLE PRECISION EDEP,RATIO
+      REAL             TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,RHOFAC,EOLD,ENEW,
+     *                 EKE,ELKE,BETA2,GLE,TSCAT
+      INTEGER          IDISC,IROLD,IRNEW,IAUSFL(29)
+*KEND.
+      COMMON/GEOM/ZALTIT,BOUND(6),NEWOBS,OBSLVL(10)
+*KEEP,LONGI.
+      COMMON /LONGI/   APLONG,HLONG,PLONG,SPLONG,THSTEP,THSTPI,
+     *                 NSTEP,LLONGI,FLGFIT
+      DOUBLE PRECISION APLONG(0:1040,9),HLONG(0:1024),PLONG(0:1040,9),
+     *                 SPLONG(0:1040,9),THSTEP,THSTPI
+      INTEGER          NSTEP
+      LOGICAL          LLONGI,FLGFIT
+*KEND.
+      COMMON /MEDIA/ NMED, RLC,RLDU,RLDUI,RHO,MSGE,MGE,MSEKE,MEKE,MLEKE,
+     *MCMFP,MRANGE,IRAYLM,HBARO(6),HBAROI(6)
+      CHARACTER MEDIA*24
+      COMMON/MEDIAC/MEDIA
+      COMMON/MISC/KMPI,KMPO,DUNIT,NOSCAT,MED(6),RHOR(6),IRAYLR(6)
+      DOUBLE PRECISION PRRMMU
+      COMMON/MUON/PRRMMU,RMMU,RMMUT2
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEND.
+      COMMON/PHOTIN/EBINDA,GE0,GE1, MPGEM(1),GMFP0(500),GMFP1(500),GBR10
+     *(500),GBR11(500),GBR20(500),GBR21(500),GBR30(500),GBR31(500),GBR40
+     *(500),GBR41(500),NGR,RCO0,RCO1, RSCT0(100),RSCT1(100), COHE0(500),
+     *COHE1(500)
+      DOUBLE PRECISION PI0MSQ
+      COMMON/PION/PI0MSQ,PITHR,PICMAS,PI0MAS,AMASK0,AMASKC,AMASPR,AMASNT
+     *
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,REJECT.
+      COMMON /REJECT/  AVNREJ,
+     *                 ALTMIN,ANEXP,THICKA,THICKD,CUTLN,EONCUT,
+     *                 FNPRIM
+      DOUBLE PRECISION AVNREJ(10)
+      REAL             ALTMIN(10),ANEXP(10),THICKA(10),THICKD(10),
+     *                 CUTLN,EONCUT
+      LOGICAL          FNPRIM
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/THRESH/RMT2,RMSQ,ESCD2,AP,API,AE,UP,UE,TE,THMOLL
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      DOUBLE PRECISION PZERO,PRM,PRMT2,RMI,VC
+      COMMON/USEFUL/PZERO,PRM,PRMT2,RMI,VC,RM,MEDIUM,MEDOLD,IBLOBE,ICALL
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+      DOUBLE PRECISION THICK
+ 
+ 
+ 
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' PHOTON:NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      NEWOBS=IOBS(NP)
+      IRCODE=1
+      PEIG=E(NP)
+      EIG=PEIG
+      IRL=IR(NP)
+      MEDIUM=MED(IRL)
+      IF((EIG.LE.PCUT(IRL)))GO TO 970
+980   CONTINUE
+981    CONTINUE
+       GLE=LOG(EIG)
+       CALL RMMAR(RNNO35,1,2)
+       IF ((RNNO35.EQ.0.0)) THEN
+        RNNO35=1.E-30
+       END IF
+       DPMFP=-ALOG(RNNO35)
+       IROLD=IR(NP)
+1030   CONTINUE
+1031    CONTINUE
+        IF (MEDIUM.NE.0) THEN
+         LGLE=GE1*GLE+GE0
+         GMFPR0=GMFP1(LGLE)*GLE+GMFP0(LGLE)
+        END IF
+1040    CONTINUE
+1041     CONTINUE
+         IF (MEDIUM.EQ.0) THEN
+          TSTEP=VACDST
+         ELSE
+          RHOFAC=RHOR(IRL)/RHO
+          RHOFI=1./RHOFAC
+          GMFP=GMFPR0*RHOFI
+          IF ((IRAYLR(IRL).EQ.1)) THEN
+           COHFAC=COHE1(LGLE)*GLE+COHE0(LGLE)
+           GMFP=GMFP*COHFAC
+          END IF
+          TSTEP=GMFP*DPMFP
+          ALTEXP=EXP(-Z(NP)*HBAROI(IRL))
+          TSTEP=TSTEP*ALTEXP
+          DISC=W(NP)*TSTEP*HBAROI(IRL)
+          IF (ABS(DISC).LT.0.065) THEN
+           TSTEP=TSTEP*(1.-0.5*DISC*(1.-0.6666667*DISC* (1.-0.75*DISC *
+     *     (1.-0.8*DISC))))
+          ELSE IF(DISC.LE.-1.) THEN
+           TSTEP=VACDST
+          ELSE
+           TSTEP=TSTEP/DISC*LOG(DISC+1.)
+          END IF
+         END IF
+         IRNEW=IR(NP)
+         IDISC=0
+         USTEP=TSTEP
+         TUSTEP=USTEP
+         IF((USTEP.GT.DNEAR(NP)))CALL HOWFAR
+         IF((IDISC.GT.0))GO TO 1000
+         VSTEP=USTEP
+         TVSTEP=VSTEP
+         EDEP=PZERO
+         USTEPU=USTEP
+         DISC=W(NP)*USTEPU*HBAROI(IRL)
+         USTEPU=USTEPU/ALTEXP
+         IF (ABS(DISC).LT.0.16) THEN
+          USTEPU=USTEPU*(1.+.5*DISC*(1.+.33333333*DISC* (1.+0.25*DISC* (
+     *    1.+0.2*DISC))))
+         ELSE
+          USTEPU=USTEPU/DISC*(EXP(DISC)-1.)
+         END IF
+         X(NP)=X(NP)+U(NP)*USTEP
+         Y(NP)=Y(NP)+V(NP)*USTEP
+         ZOLD =Z(NP)
+         Z(NP)=Z(NP)+W(NP)*USTEP
+         TIME(NP)=TIME(NP)+TVSTEP*VC
+ 
+ 
+C  ADD PHOTONS TO THE LONGITUDINAL DEVELOPMENT
+         IF ( LLONGI ) THEN
+C  FIND FIRST THE EQUIVALENT LEVELS
+C  IF STARTING POINT BELOW LOWEST LEVEL THEN DON'T CHECK
+           IF ( HLONG(NSTEP) .LE. -ZOLD ) THEN
+             LPCT1 = LPCTE(NP)
+C  Z NEW IS PROBABLY ONLY LITTLE BELOW Z OLD, THEREFORE INCREMENTAL SEARCH
+             DO 6002 I1 = LPCT1,NSTEP
+               IF ( HLONG(I1) .LT. -Z(NP) ) GOTO 6003
+ 6002        CONTINUE
+             I1 = NSTEP + 1
+ 6003        CONTINUE
+             LPCT2 = I1 - 1
+             DO 485 I=LPCT1,LPCT2
+                PLONG(I,1) = PLONG(I,1) + 1.D0
+ 485         CONTINUE
+             LPCTE(NP) = LPCT2 + 1
+           ENDIF
+         ENDIF
+         DNEAR(NP)=DNEAR(NP)-USTEP
+         IF (MEDIUM.NE.0) THEN
+          DPMFP=MAX(0.,DPMFP-USTEPU/GMFP)
+         END IF
+         IROLD=IR(NP)
+         MEDOLD=MEDIUM
+         IF (IRNEW.NE.IROLD) THEN
+          IR(NP)=IRNEW
+          IRL=IRNEW
+          MEDIUM=MED(IRL)
+          IF((EIG.LE.PCUT(IRL)))GO TO 970
+         END IF
+         IF (NEWOBS.GT.IOBS(NP)) THEN
+          CALL AUSGAB
+          IOBS(NP)=NEWOBS
+         END IF
+         IF((IDISC.LT.0))GO TO 1000
+         IF((MEDIUM.NE.MEDOLD))GO TO 1042
+         IF((MEDIUM.NE.0.AND.DPMFP.LE.1.E-6))GO TO 1032
+        GO TO 1041
+1042    CONTINUE
+       GO TO 1031
+1032   CONTINUE
+       IF ((IRAYLR(IRL).EQ.1)) THEN
+        CALL RMMAR(RNNO37,1,2)
+        IF ((RNNO37.LE.(1.0-COHFAC))) THEN
+1050     CONTINUE
+1051      CONTINUE
+          CALL RMMAR(XXX,1,2)
+          LXXX=RCO1*XXX+RCO0
+          X2=RSCT1(LXXX)*XXX+RSCT0(LXXX)
+          Q2=X2*RMSQ*.23547885E-02
+          COSTHE=1.-Q2/(2.*E(NP)*E(NP))
+          IF((ABS(COSTHE).GT.1.0))GO TO 1050
+          CSQTHE=COSTHE*COSTHE
+          REJF=(1.0+CSQTHE)*.5
+          CALL RMMAR(RNNORJ,1,2)
+          IF((RNNORJ.LE.REJF))GO TO1052
+         GO TO 1051
+1052     CONTINUE
+         SINTHE=SQRT(AMAX1(0.,1.0-CSQTHE))
+         CALL UPHI(2,1)
+         GOTO 980
+        END IF
+       END IF
+       IF ( .NOT. FNPRIM ) THEN
+        X(1)=0.
+        Y(1)=0.
+        EVTH(5)=X(1)
+        EVTH(6)=-Y(1)
+        IF (FIX1I) THEN
+         Z(1)=-FIXHEI
+         NP=1
+         LPCTE(1)=MIN(NSTEP,INT(THICK(FIXHEI)*THSTPI)+1)
+         SITHET=SQRT(1.D0-SECPAR(3)**2)
+         U(1)=SITHET*COS(-SECPAR(4))
+         V(1)=SITHET*SIN(-SECPAR(4))
+         W(1)=SECPAR(3)
+         RADINV=1.5-0.5*(U(1)**2+V(1)**2+W(1)**2)
+         U(1)=U(1)*RADINV
+         V(1)=V(1)*RADINV
+         W(1)=W(1)*RADINV
+        END IF
+        EVTH(7)=-Z(1)
+        CALL TOBUF(EVTH,0)
+        IF (LCERFI) CALL TOBUFC(EVTH,0)
+        CALL COORIN(DBLE(-Z(1)))
+        TIME(1)=0.D0
+        FNPRIM =.TRUE.
+        IF (FPRINT) THEN
+         WRITE(KMPO,* )' FIRST INTERACTION AT ',EVTH(7)*0.01,' M'
+        END IF
+       END IF
+       CALL RMMAR(RNNO36,1,2)
+       GBR1=GBR11(LGLE)*GLE+GBR10(LGLE)
+       IF ((RNNO36.LE.GBR1).AND.(E(NP).GT.RMT2)) THEN
+        CALL PAIR
+        GO TO 982
+       END IF
+       GBR2=GBR21(LGLE)*GLE+GBR20(LGLE)
+       IF (RNNO36.LT.GBR2) THEN
+        CALL COMPT
+        IF((IQ(NP).NE.1))GO TO 982
+        GO TO1060
+       END IF
+       GBR4=GBR41(LGLE)*GLE+GBR40(LGLE)
+       IF (RNNO36.GE.GBR4 .AND. E(NP).GT.RMMUT2) THEN
+        CALL MUPAIR
+        GO TO 982
+       END IF
+       GBR3=GBR31(LGLE)*GLE+GBR30(LGLE)
+       IF (RNNO36.GE.GBR3 .AND. E(NP).GT.PITHR) THEN
+        CALL PIGEN
+        IF (NP.EQ.0) THEN
+         IRCODE=2
+         RETURN
+        END IF
+        GO TO 982
+       ELSE
+        CALL PHOTO
+        IF (NP.EQ.0) THEN
+         IRCODE=2
+         RETURN
+        END IF
+        IF((IQ(NP).EQ.3))GO TO 982
+       END IF
+1060   PEIG=E(NP)
+       EIG=PEIG
+       IF((EIG.LT.PCUT(IRL)))GO TO 970
+      GO TO 981
+982   CONTINUE
+      RETURN
+970   IF (EIG.GT.AP) THEN
+       IDR=1
+      ELSE
+       IDR=2
+      END IF
+      EDEP=PEIG
+      IRCODE=2
+      NP=NP-1
+      RETURN
+1000  EDEP=PEIG
+      IRCODE=2
+      NP=NP-1
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pi0dec.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pi0dec.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pi0dec.f	(revision 4308)
@@ -0,0 +1,133 @@
+      SUBROUTINE PI0DEC
+ 
+C-----------------------------------------------------------------------
+C  PI 0 DEC(AY)
+C
+C  DECAY OF PI0 INTO 2 GAMMAS OR INTO E(+) + E(-) + GAMMA
+C  THIS SUBROUTINE IS CALLED FROM BOX3
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,DECAY.
+      COMMON /DECAY/   GAM345,COS345,PHI345
+      DOUBLE PRECISION GAM345(3),COS345(3),PHI345(3)
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION AUX1,AUX2,COSTH1,COSTH2,EPITO2,FI1
+      INTEGER          I
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT (' PI0DEC: CURPAR=',1P,9E10.3)
+ 
+C  COPY VERTEX COORDINATES INTO SECPAR
+      DO  1  I = 5,8
+        SECPAR(I) = CURPAR(I)
+  1   CONTINUE
+      SECPAR( 9)  = GEN
+      SECPAR(10)  = ALEVEL
+ 
+C  LOOK FOR DECAY MODE
+      CALL RMMAR (RD,3,1)
+ 
+C  DECAY    PI(0)  ---->  GAMMA + GAMMA
+      IF ( RD(3) .LT. 0.98802 ) THEN
+C  HALF OF TOTAL ENERGY OF THE PION = EPITO2
+        EPITO2 = 0.5D0 * GAMMA * PAMA(7)
+        AUX1   = 1.D0 + BETA * RD(1)
+        AUX2   = 1.D0 - BETA * RD(1)
+        COSTH1 = (BETA + RD(1)) / AUX1
+        COSTH2 = (BETA - RD(1)) / AUX2
+ 
+C  FIRST GAMMA  (WITH HIGHER ENERGY)
+        FI1 = PI2 * RD(2)
+        CALL ADDANG( COSTHE,PHI, COSTH1,FI1, SECPAR(3),SECPAR(4) )
+        IF ( SECPAR(3) .GT. C(29) ) THEN
+          SECPAR(1) = 1.D0
+C  ENERGY OF GAMMA
+          SECPAR(2) = AUX1 * EPITO2
+          CALL TSTACK
+        ENDIF
+ 
+C  SECOND GAMMA   (WITH LOWER ENERGY)
+        CALL ADDANG( COSTHE,PHI, COSTH2,FI1+PI, SECPAR(3),SECPAR(4) )
+        IF ( SECPAR(3) .GT. C(29) ) THEN
+          SECPAR(1) = 1.D0
+C  ENERGY OF GAMMA
+          SECPAR(2) = AUX2 * EPITO2
+          CALL TSTACK
+        ENDIF
+ 
+C  DECAY    PI(0)  ---->  E(+) + E(-) + GAMMA      (DALITZ DECAY)
+C  (UNIFORM PHASE SPACE DISTRIBUTION IS ASSUMED FOR THIS DECAY)
+      ELSE
+        CALL DECAY6( PAMA(7), PAMA(3), PAMA(2), 0.D0,
+     *                0.D0,0.D0,0.D0, 1.D0, 2)
+        DO 11 I = 1,3
+          CALL ADDANG( COSTHE,PHI, COS345(I),PHI345(I),
+     *                                SECPAR(3),SECPAR(4) )
+          IF ( SECPAR(3) .GT. C(29) ) THEN
+            SECPAR(1) = FLOAT(4 - I)
+            SECPAR(2) = GAM345(I)
+            CALL TSTACK
+          ENDIF
+ 11    CONTINUE
+ 
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pigen.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pigen.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pigen.f	(revision 4308)
@@ -0,0 +1,150 @@
+      SUBROUTINE PIGEN
+C
+C*********************************************************************
+C  DESIGN  : D. HECK   IK3  FZK KARLSRUHE
+C  DATE    : JUL  31, 1989
+C*********************************************************************
+C  THIS SUBROUTINE STEERS THE PHOTONUCLEAR REACTION:
+C    FOR PRODUCTION OF 1 PION, PIGEN1 IS CALLED.
+C    FOR PRODUCTION OF 2 PIONS, PIGEN2 IS CALLED.
+C    FOR PRODUCTION OF MORE PARTICLES, SDPM IS CALLED.
+C*********************************************************************
+      DOUBLE PRECISION PEIG,REGPAR,REGGEN,REGLVL
+      DOUBLE PRECISION ENERN
+      DIMENSION REGPAR(12)
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' PIGEN: NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      IF(DEBUG)WRITE(MDEBUG,*)'PIGEN : E=',E(NP)
+C***  INCREASE AGE, WE HAVE HADRONIC INTERACTION
+      IGEN(NP)=IGEN(NP)+1
+      SECPAR(9)=IGEN(NP)
+      SECPAR(10)=-Z(NP)
+      PEIG=E(NP)
+      IF (U(NP)**2+V(NP)**2.GT.3.E-38) THEN
+       ANGLEX = -ATAN2(V(NP),U(NP))
+      ELSE
+       ANGLEX = 0.
+      END IF
+C ***  SUBTRACT EM SUBSHOWER FROM NKG CALCULATION
+      IF ( FNKG ) THEN
+       SECPAR(3) = W(NP)
+       SECPAR(4) = ANGLEX
+       SECPAR(5) = -Z(NP)
+       ENERN = -PEIG*1.D-3
+       CALL NKG(ENERN)
+      ENDIF
+      CALL RMMAR(RNNO90,1,2)
+      IF (RNNO90.GT.(PEIG-400.D0)/1000.D0) THEN
+C ***  FOR ENERGIES BETWEEN 400 MEV AND 1400 MEV (=1000+400) DECIDE
+C ***  BY CHANCE WHETHER ONE OR TWO PIONS ARE GENERATED
+C ***  PIGEN1 TREATES THE PRODUCTION OF 1 PION
+       CALL PIGEN1
+      ELSE IF(RNNO90.GT.(PEIG-2000.D0)/1000.D0) THEN
+C ***  FOR ENERGIES BETWEEN 2000MEV AND 3000MEV (=1000+2000) DECIDE
+C ***  BY CHANCE WHETHER 2 (PIGEN2) OR MORE PIONS (DPM) ARE GENERATED
+C ***  PIGEN2 TREATES THE PRODUCTION OF 2 PIONS
+       CALL PIGEN2
+      ELSE
+C ***  AT HIGHER ENERGIES MORE THAN 2 PIONS ARE GENERATED BY
+C ***  THE DUAL PARTON MODEL, BY VENUS, BY SIBYLL, BY QGS, OR BY DPMJET
+        DO 191 K=1,MAXLEN
+C  ***  SAVE CURPAR PARTICLE INTO REGISTER REGPAR
+        REGPAR(K)=CURPAR(K)
+191    CONTINUE
+192    CONTINUE
+       REGGEN = GEN
+       REGLVL = ALEVEL
+C ***  FILL CURRENT EGS4-PARTICLE INTO CURPAR
+       ITYPE=1
+       CURPAR(1)=1.D0
+       CURPAR(2)=PEIG*1.D-3
+       CURPAR(3)=W(NP)
+       CURPAR(4)=ANGLEX
+       CURPAR(5)=-Z(NP)
+       CURPAR(6)=TIME(NP)
+       CURPAR(7)=X(NP)
+       CURPAR(8)=-Y(NP)
+       CURPAR(9)=0.D0
+       CURPAR(10)=1.D0
+       CURPAR(12)=SQRT(PAMA(14)*(PAMA(14)+PEIG*2.D-3))
+       CURPAR(11)=(PEIG*1.D-3+PAMA(14))/CURPAR(12)
+       GEN = IGEN(NP)
+       ALEVEL = -Z(NP)
+C ***  ELIMINATE GAMMA FROM EGS-STACK
+       NP=NP-1
+C ***  HDPM, VENUS, SIBYLL, QGS, DPMJET GIVE ALL PARTICLES TO SECPAR
+       CALL TSTINI
+       CALL SDPM
+       CALL TSTEND
+        DO 201 K=1,MAXLEN
+C  ***  RESTORE CURPAR PARTICLE FROM REGPAR
+        CURPAR(K)=REGPAR(K)
+201    CONTINUE
+202    CONTINUE
+       GEN = REGGEN
+       ALEVEL = REGLVL
+C ***  END OF MANY PION GENERATION
+      END IF
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pigen1.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pigen1.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pigen1.f	(revision 4308)
@@ -0,0 +1,232 @@
+      SUBROUTINE PIGEN1
+C
+C*********************************************************************
+C  DESIGN  : D. HECK   IK3  FZK KARLSRUHE
+C  DATE    : JUL  31, 1989
+C*********************************************************************
+C  THIS SUBROUTINE DESCRIBES THE PHOTONUCLEAR REACTION
+C    GAMMA + NUCLEON  -----> PION + NUCLEON
+C*********************************************************************
+      DOUBLE PRECISION BETA,DUMMY,ENUCL,ESQ,E3CM,GAMMA
+      DOUBLE PRECISION PEIG,PEOP,PT,PTRANS,P3CM,W0,W0I,W0S,W0SI
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEND.
+      DOUBLE PRECISION PI0MSQ
+      COMMON/PION/PI0MSQ,PITHR,PICMAS,PI0MAS,AMASK0,AMASKC,AMASPR,AMASNT
+     *
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' PIGEN1:NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      IF(DEBUG)WRITE(MDEBUG,*)'PIGEN1: E=',E(NP)
+      PEIG=E(NP)
+C***  NUMBERS AT THE VARIABLES MEAN :
+C***    1  INCOMING GAMMA RAY
+C***    2  HIT NUCLEON
+C***    3  PRODUCED PION
+C***    4  RECOILING NUCLEON
+C***  LOOK WHICH TYPE OF REACTION
+      CALL RMMAR(RD,2,2)
+      RNNO91=RD(1)
+      RNNO92=RD(2)
+C***  0.49923 IS THE FRACTION OF PROTONS IN AIR
+      IF (RNNO91.LE.0.49923) THEN
+C ***  HIT NUCLEON IS PROTON
+       AMASS2=AMASPR
+C ***  33% CHANCE FOR CHARGE EXCHANGE
+       IF (RNNO92.LE.0.333333) THEN
+C  ***  PI(+) + NEUTRON PRODUCED
+        IQ(NP)=8
+        IQ(NP+1)=13
+       ELSE
+C  ***  PI(0) + PROTON PRODUCED
+        IQ(NP)=7
+        IQ(NP+1)=14
+       END IF
+      ELSE
+C ***  HIT NUCLEON IS NEUTRON
+       AMASS2=AMASNT
+C ***  33% CHANCE FOR CHARGE EXCHANGE
+       IF (RNNO92.LE.0.333333) THEN
+C  ***  PI(-) + PROTON PRODUCED
+        IQ(NP)=9
+        IQ(NP+1)=14
+       ELSE
+C  ***  PI(0) + NEUTRON PRODUCED
+        IQ(NP)=7
+        IQ(NP+1)=13
+       END IF
+      END IF
+      AMAS2I=1./AMASS2
+C***  NOTE: THE ENERGIES IN EGS ARE IN MEV, IN CORSIKA IN GEV
+      AMASS3=PAMA(IQ(NP))*1.D3
+      AMASS4=PAMA(IQ(NP+1))*1.D3
+C***  TOTAL LABORATORY ENERGY AND ITS INVERSE
+      W0 =PEIG+AMASS2
+      W0I=1.D0/W0
+C***  TOTAL.C.M. ENERGY AND INVERSE OF TOTAL C.M.ENERGY
+      W0S = SQRT(AMASS2*(AMASS2+2.D0*PEIG))
+      W0SI=1.D0/W0S
+C***  THRESHOLD ENERGY
+      ETH=0.5*((AMASS3+AMASS4)**2-AMASS2**2)*AMAS2I
+C***  BETA,GAMMA, ESQ, BRATIO, G3 ARE AUXILIARY QUANTITIES
+      BETA=PEIG*W0I
+      GAMMA=W0*W0SI
+      ED =0.5*((AMASS3-AMASS4)**2-AMASS2**2)*AMAS2I
+      ESQ = SQRT((PEIG-ETH)*(PEIG-ED))
+      BRATIO = PEIG/ESQ
+      G3 = W0I*BRATIO*(PEIG-ETH+AMASS3*AMAS2I*(AMASS3+AMASS4))
+C***  C.M. ENERGY OF PION
+      E3CM=G3*AMASS2*GAMMA/BRATIO
+C***  C.M. PION MOMENTUM
+      P3CM=AMASS2*W0SI*ESQ
+      B3CM2=P3CM**2/(P3CM**2+AMASS3**2)
+      B3CM=SQRT(B3CM2)
+C***  DETERMINE THETA IN C.M. SYSTEM BY CHANCE.
+      IF (PEIG.LE.900.D0) THEN
+C ***  PHOTON ENERGY IS BELOW 900 MEV
+210    CONTINUE
+       CALL RMMAR(RD,2,2)
+       RNNO93=RD(1)
+       RNNO94=RD(2)
+       IF (IQ(NP).EQ.7) THEN
+C  ***  NEUTRAL PION EMITTED, TAKE PURE
+C  ***  DIPOLE RADIATION: W(COSTH) = 1-3/5*COSTH**2
+        COSTE3 = 2.*RNNO93-1.
+        IF((RNNO94 .GT. 1.-0.6*COSTE3**2))GOTO 210
+       ELSE
+C  ***  CHARGED PION EMITTED, TAKE MODIFIED DIPOLE RADIATION
+C  ***  WITH ASYMMETRY TERM 1/(1-BETACM*COSTE3)**2
+        COSTE3 = 1./B3CM-1./(RNNO93*2.*B3CM2/(1.-B3CM2)+B3CM/(1.+B3CM))
+        IF((RNNO94*2.5 .GT. 1.+COSTE3*(-1.8+COSTE3*(.65+COSTE3*(.34 -.18
+     *  *COSTE3 )))))GOTO 210
+       END IF
+      ELSE IF(PEIG.LE.1300.D0) THEN
+C ***  PHOTON ENERGY BETWEEN 900 AND 1300 MEV
+220    CONTINUE
+       CALL RMMAR(RD,2,2)
+       RNNO93=RD(1)
+       RNNO94=RD(2)
+       IF (IQ(NP).EQ.7) THEN
+C  ***  NEUTRAL PION EMITTED, TAKE PURE QUADRUPOLE
+C  ***  RADIATION: W(COSTH) = 1+6*COSTH**2-5*COSTH**4
+        COSTE3 = 2.*RNNO93-1.
+        IF((2.8*RNNO94 .GT. 1.+6.*COSTE3**2-5.*COSTE3**4))GOTO 220
+       ELSE
+C  ***  CHARGED PION EMITTED, TAKE MODIFIED QUADRUPOLE
+C  ***  RADIATION WITH ASYMMETRY TERM:  1/(1-BETACM*COSTE3)**2
+        COSTE3 = 1./B3CM-1./(RNNO93*2.*B3CM2/(1.-B3CM2)+B3CM/(1.+B3CM))
+        IF((13.2*RNNO94 .GT. 1.+COSTE3*(-2.18+COSTE3*(7.20+COSTE3*(-2.55
+     *   +COSTE3*(-15.39+COSTE3*(6.36+COSTE3*(13.80-COSTE3*8.235))))))))
+     *  GOTO 220
+       END IF
+      ELSE
+C ***  ABOVE 1300 MEV THE ANGULAR DISTRIBUTION IS DETERMINED
+C ***  BY THE TRANSVERSE MOMENTUM OF THE PION
+       PT=1.D3*PTRANS(DUMMY)
+       COSTE3=SQRT(MAX(0.D0,P3CM**2-PT**2))/P3CM
+      END IF
+C***  PRECISE ENERGY OUTGOING PION = PEOP
+      PEOP =GAMMA*(E3CM+BETA*P3CM*COSTE3)
+C***  ENERGY OF OUTGOING PION IN STACK POSITION NP
+      E(NP)=PEOP
+C***  MOMENTUM OF OUTGOING PION = AMOM3
+C***  COSTHE AND SINTHE ARE ANGLES IN LAB SYSTEM FOR PARTICLE 3 (PION)
+C***          SEE SLAC-265, P. 52
+      AMOM3=SQRT(MAX(0.D0,PEOP**2-AMASS3**2))
+      IF (AMOM3.GT.0.) THEN
+       COSTHE=(AMASS4**2-AMASS2**2-AMASS3**2+2.*PEOP*W0-2.*PEIG*AMASS2)
+     * /(2.*PEIG* AMOM3)
+      ELSE
+       COSTHE=1.
+      END IF
+      SINTHE= SQRT(MAX(0.0,1.-COSTHE**2))
+      CALL UPHI(2,1)
+C***  TOTAL ENERGY OF RECOILING NUCLEON  = ENUCL
+      ENUCL=W0-PEOP
+      IF ((ENUCL-AMASS4).GT.ELCUT(1)*1000.D0) THEN
+C ***  RECOIL ENERGY IS TOO LARGE, MUST TREAT THE NUCLEON
+       NP=NP+1
+       E(NP)=ENUCL
+C ***  MOMENTUM OF RECOIL NUCLEON
+       AMOM4=SQRT(ENUCL**2-AMASS4**2)
+C ***  COSTHE AND SINTHE ARE ANGLES IN LAB SYSTEM FOR RECOIL NUCLEON
+C ***       SEE SLAC-265, P. 52
+       COSTHE=(AMASS3**2-AMASS2**2-AMASS4**2+2.*ENUCL*W0-2.*PEIG*AMASS2)
+     *  / (2. * PEIG*AMOM4)
+       SINTHE=-SQRT(MAX(0.0,1.-COSTHE**2))
+       CALL UPHI(3,2)
+       IF (W(NP).GT.C(29)) THEN
+C  *** ANGLE WITH RESPECT TO X AXIS
+        IF (U(NP)**2+V(NP)**2.GT.3.E-38) THEN
+         ANGLEX = -ATAN2(V(NP),U(NP))
+        ELSE
+         ANGLEX = 0.
+        END IF
+C  ***  ADD NUCLEON TO CORSIKA STACK
+        SECPAR(1)=IQ(NP)
+        SECPAR(2)=E(NP)/AMASS4
+        SECPAR(3)=W(NP)
+        SECPAR(4)=ANGLEX
+        SECPAR(5)=-Z(NP)
+        SECPAR(6)=TIME(NP)
+        SECPAR(7)=X(NP)
+        SECPAR(8)=-Y(NP)
+        SECPAR(11)=1.D0
+        SECPAR(12)=0.D0
+        CALL TSTOUT
+       END IF
+C ***  ELIMINATE NUCLEON FROM EGS-STACK
+       NP=NP-1
+      END IF
+C***  END OF RECOIL NUCLEON TREATEMENT CASE
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pigen2.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pigen2.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pigen2.f	(revision 4308)
@@ -0,0 +1,276 @@
+      SUBROUTINE PIGEN2
+C
+C*********************************************************************
+C  DESIGN  : D. HECK   IK3  FZK KARLSRUHE
+C  DATE    : JUL  31, 1989
+C*********************************************************************
+C  THIS SUBROUTINE DESCRIBES THE PHOTONUCLEAR REACTION
+C    GAMMA + NUCLEON  -----> PION + PION + NUCLEON
+C*********************************************************************
+      DOUBLE PRECISION BETA,DUMMY,ECM,ENUCL,GAMMA,PEIG,PTRANS
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEND.
+      DOUBLE PRECISION PI0MSQ
+      COMMON/PION/PI0MSQ,PITHR,PICMAS,PI0MAS,AMASK0,AMASKC,AMASPR,AMASNT
+     *
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/UPHIIN/SINC0,SINC1,SIN0(20002),SIN1(20002)
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      COMMON/ACLOCK/NCLOCK,JCLOCK
+C_____IF (NCLOCK.GT.JCLOCK) THEN
+C______WRITE(MDEBUG,* )' PIGEN2:NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
+C______CALL AUSGB2
+C_____END IF
+      IF(DEBUG)WRITE(MDEBUG,*)'PIGEN2: E=',E(NP)
+      PEIG=E(NP)
+C***  NUMBERS AT THE VARIABLES MEAN :
+C***  1  INCOMING GAMMA RAY
+C***  2  HIT NUCLEON
+C***  3  FIRST  PRODUCED PION
+C***  4  SECOND PRODUCED PION
+C***  5  RECOILING NUCLEON
+      CALL RMMAR(RD,2,2)
+      RNNO81=RD(1)
+      RNNO82=RD(2)
+C***  LOOK WHICH TYPE OF REACTION
+C***  0.49923 IS THE FRACTION OF PROTONS IN AIR
+      IF (RNNO81.LE.0.49923) THEN
+C ***  HIT NUCLEON IS PROTON
+       AMASS2=AMASPR
+C ***  BRANCHING FOR COLLISION WITH PROTON
+       IF (RNNO82.LE.0.3) THEN
+C  ***  PI(0) + PI(0) + PROTON
+        IQ(NP)= 7
+        IQ(NP+1)= 7
+        IQ(NP+2)= 14
+       ELSE IF(RNNO82.LE.0.6) THEN
+C  ***  PI(+) + PI(-) + PROTON
+        IQ(NP)= 8
+        IQ(NP+1)= 9
+        IQ(NP+2)= 14
+       ELSE
+C  ***   PI(+) + PI(0) + NEUTRON
+        IQ(NP)= 8
+        IQ(NP+1)= 7
+        IQ(NP+2)= 13
+       END IF
+      ELSE
+C ***  HIT NUCLEON IS NEUTRON
+C ***  BRANCHING FOR COLLISION WITH NEUTRON
+       AMASS2=AMASNT
+       IF (RNNO82.LE.0.3) THEN
+C  ***  PI(0) + PI(0) + NEUTRON
+        IQ(NP)= 7
+        IQ(NP+1)= 7
+        IQ(NP+2)= 13
+       ELSE IF(RNNO82.LE.0.6) THEN
+C  ***  PI(+) + PI(-) + NEUTRON
+        IQ(NP)= 8
+        IQ(NP+1)= 9
+        IQ(NP+2)= 13
+       ELSE
+C  ***  PI(-) + PI(0) + PROTON
+        IQ(NP)= 9
+        IQ(NP+1)= 7
+        IQ(NP+2)= 14
+       END IF
+      END IF
+C***  CALCULATE AUXILIARY PARAMETERS
+      ECM=SQRT(AMASS2*(AMASS2+2.D0*PEIG))
+C***  NOTE: THE ENERGIES IN EGS ARE IN MEV, IN CORSIKA IN GEV
+      AMASS3=PAMA(IQ(NP))*1.D3
+      AMASS4=PAMA(IQ(NP+1))*1.D3
+      AMASS5=PAMA(IQ(NP+2))*1.D3
+      AUX1=(AMASS3+AMASS4)**2
+      AUX2A=(ECM - AMASS5)**2
+      AUX2=AUX2A-AUX1
+      AUX3=(AMASS3+AMASS5)**2
+      AUX4A=(ECM - AMASS4)**2
+      AUX4=AUX4A-AUX3
+      AUX5=AMASS3**2-AMASS4**2
+      AUX6=ECM**2-AMASS5**2
+      AUX7=0.5/ECM
+      AUX8=(ECM - AMASS3)**2
+      BETA=PEIG/(AMASS2+PEIG)
+      GAMMA=2.*(PEIG+AMASS2)*AUX7
+230   CONTINUE
+      CALL RMMAR(RD,2,2)
+      RNNO84=RD(1)
+      RNNO85=RD(2)
+C***  ARE INVARIANT MASS SQUARES INSIDE BOUNDARY OF DALITZ PLOT?
+      AM34SQ=AUX2*RNNO84+AUX1
+      AM35SQ=AUX4*RNNO85+AUX3
+      AM34I=0.5/SQRT(AM34SQ)
+      E3STAR=(AUX5+AM34SQ)*AM34I
+      E5STAR=(AUX6-AM34SQ)*AM34I
+      ROOT1=SQRT(E3STAR**2-AMASS3**2)
+      ROOT2=SQRT(E5STAR**2-AMASS5**2)
+C***  REJECT RANDOM NUMBERS, IF NOT INSIDE KINEMATIC BOUNDARY
+      DISCR=AM35SQ-(E3STAR+E5STAR)**2
+      IF((DISCR.GT.-(ROOT1-ROOT2)**2))GOTO 230
+      IF((DISCR.LT.-(ROOT1+ROOT2)**2))GOTO 230
+C***  E3CM,E4CM,E5CM ARE ENERGIES IN C.M. SYSTEM
+      E4CM=(ECM**2+AMASS4**2-AM35SQ)*AUX7
+      E5CM=(ECM**2+AMASS5**2-AM34SQ)*AUX7
+C***  NOW TAKE PION WITH HIGHEST ENERGY AS PARTICLE 3
+      E3CM=ECM-E4CM-E5CM
+      IF (E4CM.GT.E3CM) THEN
+C ***  INTERCHANGE PARTICLE 3 AND 4
+       HELP=E3CM
+       E3CM=E4CM
+       E4CM=HELP
+       HELP=AMASS3
+       AMASS3=AMASS4
+       AMASS4=HELP
+       IHELP=IQ(NP)
+       IQ(NP)=IQ(NP+1)
+       IQ(NP+1)=IHELP
+      END IF
+C***  P3CM,P4CM,P5CM ARE MOMENTA IN C.M. SYSTEM
+C***  P3SQ,P4SQ,P5SQ ARE SQUARED MOMENTA IN C.M. SYSTEM
+      P3SQ=E3CM**2-AMASS3**2
+      P3CM=SQRT(MAX(0.,P3SQ))
+      P4SQ=E4CM**2-AMASS4**2
+      P4CM=SQRT(MAX(0.,P4SQ))
+      P5SQ=E5CM**2-AMASS5**2
+      P5CM=SQRT(MAX(0.,P5SQ))
+      COSA=(P5SQ-P3SQ-P4SQ)/(2.*P3CM*P4CM)
+      SINA=-SQRT(MAX(0.,1.-COSA**2))
+      COSB=(P4SQ-P3SQ-P5SQ)/(2.*P3CM*P5CM)
+      SINB= SQRT(MAX(0.,1.-COSB**2))
+C***  NOW SELECT THE THREE INDEPENDENT ANGLES IN C.M. SYSTEM
+      PT3=1.D3*PTRANS(DUMMY)
+      SIN3CM=MIN(1.,PT3/P3CM)
+      COS3CM=SQRT(1.-SIN3CM**2)
+      CALL RMMAR(RNNO86,1,2)
+      PSI=TWOPI*RNNO86
+      LPSI=SINC1*PSI+SINC0
+      SINPSI=SIN1(LPSI)*PSI+SIN0(LPSI)
+      CPSI=PI5D2-PSI
+      LCPSI=SINC1*CPSI+SINC0
+      COSPSI=SIN1(LCPSI)*CPSI+SIN0(LCPSI)
+C***  THIRD INDEPENDENT ANGLE PHI IS CHOOSEN LATER IN SUBROUTINE UPHI
+C***  NOW MAKE LORENTZ-TRANSFORMATION FOR PARTICLE 3 (PION)
+      E(NP)=GAMMA*(E3CM+BETA*P3CM*COS3CM)
+C***  COSTHE AND SINTHE ARE ANGLES IN LAB SYSTEM FOR PARTICLE 3 (PION)
+      COSTHE= MIN((BETA*E3CM+P3CM*COS3CM)*GAMMA/ SQRT(MAX(0.D0,E(NP)**2
+     *-AMASS3**2)),1.D0)
+      SINTHE=SQRT(MAX(0.0,1.-COSTHE**2))
+C***  SINPHI AND COSPHI ARE NOW SET IN SUBROUTINE UPHI
+      CALL UPHI(2,1)
+      SINFI3=SINPHI
+      COSFI3=COSPHI
+C***  NOW MAKE LORENTZ-TRANSFORMATION FOR PARTICLE 4 = PION
+      COS4CM=COS3CM*COSA-SIN3CM*COSPSI*SINA
+      NP=NP+1
+      E(NP)=GAMMA*(E4CM+BETA*P4CM*COS4CM)
+      SINT4=SQRT(MAX(0.,1.-COS4CM**2))
+      IF (SINT4.NE.0.) THEN
+       SINT4I =1./SINT4
+       AUXA=COS3CM*COSPSI*SINA+SIN3CM*COSA
+C ***  COSPHI AND SINPHI ARE IN LAB SYSTEM FOR PARTICLE 4 (PION)
+       COSPHI=(COSFI3*AUXA-SINFI3*SINPSI*SINA)*SINT4I
+       SINPHI=(SINFI3*AUXA+COSFI3*SINPSI*SINA)*SINT4I
+      ELSE
+       COSPHI=0.
+       SINPHI=1.
+      END IF
+C***  COSTHE AND SINTHE ARE IN LAB SYSTEM FOR PARTICLE 4 (PION)
+      COSTHE= MIN((BETA*E4CM+P4CM*COS4CM)*GAMMA/ SQRT(MAX(0.D0,E(NP)**2
+     *-AMASS4**2)),1.D0)
+      SINTHE=SQRT(MAX(0.0,1.-COSTHE**2))
+      CALL UPHI(3,2)
+C***  NOW MAKE LORENTZ-TRANSFORMATION FOR PARTICLE 5 = RECOIL NUCLEON
+      COS5CM=COS3CM*COSB-SIN3CM*COSPSI*SINB
+      ENUCL=GAMMA*(E5CM+BETA*P5CM*COS5CM)
+      IF ((ENUCL-AMASS5).GT.ELCUT(1)*1000.D0) THEN
+C ***  RECOIL NUCLEON IS ABOVE THRESHOLD AND MUST BE TREATED
+       NP=NP+1
+       E(NP)=ENUCL
+       SINT5=SQRT(MAX(0.,1.-COS5CM**2))
+       IF (SINT5.NE.0.) THEN
+        SINT5I =1./SINT5
+        AUXB=COS3CM*COSPSI*SINB+SIN3CM*COSB
+C  ***  COSPHI AND SINPHI ARE IN LAB SYSTEM FOR PART. 5 (NUCLEON)
+        COSPHI=(COSFI3*AUXB-SINFI3*SINPSI*SINB)*SINT5I
+        SINPHI=(SINFI3*AUXB+COSFI3*SINPSI*SINB)*SINT5I
+       ELSE
+        COSPHI=0.
+        SINPHI=1.
+       END IF
+C ***  COSTHE AND SINTHE ARE IN LAB SYSTEM FOR PARTICLE 5 (NUCLEON)
+       COSTHE=MIN((BETA*E5CM+P5CM*COS5CM)*GAMMA/SQRT(ENUCL**2-AMASS5**2)
+     * , 1.D0)
+       SINTHE=SQRT(MAX(0.0,1.-COSTHE**2))
+       CALL UPHI(3,2)
+       IF (W(NP).GT.C(29)) THEN
+C  *** ANGLE WITH RESPECT TO X AXIS
+        IF (U(NP)**2+V(NP)**2.GT.3.E-38) THEN
+         ANGLEX = -ATAN2(V(NP),U(NP))
+        ELSE
+         ANGLEX = 0.
+        END IF
+C  ***  ADD NUCLEON TO CORSIKA STACK
+        SECPAR(1)=IQ(NP)
+        SECPAR(2)=E(NP)/AMASS5
+        SECPAR(3)=W(NP)
+        SECPAR(4)=ANGLEX
+        SECPAR(5)=-Z(NP)
+        SECPAR(6)=TIME(NP)
+        SECPAR(7)=X(NP)
+        SECPAR(8)=-Y(NP)
+        SECPAR(11)=1.D0
+        SECPAR(12)=0.D0
+        CALL TSTOUT
+       END IF
+C ***  ELIMINATE NUCLEON FROM EGS-STACK
+       NP=NP-1
+      END IF
+C***  END OF RECOIL NUCLEON TREATEMENT CASE
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pparam.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pparam.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/pparam.f	(revision 4308)
@@ -0,0 +1,342 @@
+      SUBROUTINE PPARAM
+ 
+C-----------------------------------------------------------------------
+C  P(ARTICLE) PARAM(ETERS)
+C
+C  SETS PARAMETERS (PARTICLE TYP, TRANSVERSE MOMENTUM)
+C  OF SECONDARY PARTICLES IN HDPM
+C  THIS SUBROUTINE IS CALLED FROM HDPM
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C  CHANGES : J.N. CAPDEVIELLE CDF PARIS
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,AVPT.
+      COMMON /AVPT/    AVPT,AVPK,AVPN,AVPH,AVPE
+      DOUBLE PRECISION AVPT,AVPK,AVPN,AVPH,AVPE
+*KEEP,DPMFLG.
+      COMMON /DPMFLG/  NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+      INTEGER          NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+*KEEP,INDICE.
+      COMMON /INDICE/  NNUCN,NKA0,NHYPN,NETA,NETAS,NPIZER,
+     *                 NNC,NKC,NHC,NPC,NCH,NNN,NKN,NHN,NET,NPN
+      INTEGER          NNUCN(2:3),NKA0(2:3),NHYPN(2:3),NETA(2:3,1:4),
+     *                 NETAS(2:3),NPIZER(2:3),
+     *                 NNC,NKC,NHC,NPC,NCH,NNN,NKN,NHN,NET,NPN
+*KEEP,INTER.
+      COMMON /INTER/   AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN,
+     *                 IDIF,ITAR
+      DOUBLE PRECISION AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN
+      INTEGER          IDIF,ITAR
+*KEEP,LEPAR.
+      COMMON /LEPAR/   LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS
+      INTEGER          LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS
+*KEEP,NEWPAR.
+      COMMON /NEWPAR/  EA,PT2,PX,PY,TMAS,YR,ITYP,
+     *                 IA1,IA2,IB1,IB2,IC1,IC2,ID1,ID2,IE1,IE2,IF1,IF2,
+     *                 IG1,IG2,IH1,IH2,II1,II2,IJ1,NTOT
+      DOUBLE PRECISION EA(3000),PT2(3000),PX(3000),PY(3000),TMAS(3000),
+     *                 YR(3000)
+      INTEGER          ITYP(3000),
+     *                 IA1,IA2,IB1,IB2,IC1,IC2,ID1,ID2,IE1,IE2,IF1,IF2,
+     *                 IG1,IG2,IH1,IH2,II1,II2,IJ1,NTOT
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'PPARAM: NTOT,NPC,NCPLUS=',
+     *                                      NTOT,NPC,NCPLUS
+ 
+C  FILL PARTICLES INTO ARRAYS, CALCULATE PT AND SUM UP
+      SPX   = 0.D0
+      SPY   = 0.D0
+      NPART = 3
+C  PROTON ANTIPROTON PAIRS
+      DO 1003  K = 1,NNC
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1) .LT. 0.5 ) THEN
+          ITYP(NPART)   = 14
+          ITYP(NPART+1) = 15
+        ELSE
+          ITYP(NPART)   = 15
+          ITYP(NPART+1) = 14
+        ENDIF
+        CALL PTRAM( ZN,AVPN,PX(NPART),PY(NPART) )
+        CALL PTRAM( ZN,AVPN,PX(NPART+1),PY(NPART+1) )
+        SPX   = SPX + PX(NPART) + PX(NPART+1)
+        SPY   = SPY + PY(NPART) + PY(NPART+1)
+        NPART = NPART + 2
+ 1003 CONTINUE
+C  K+ K- PAIRS
+      DO 1004  K = 1,NKC
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1) .LT. 0.5 ) THEN
+          ITYP(NPART)   = 11
+          ITYP(NPART+1) = 12
+        ELSE
+          ITYP(NPART)   = 12
+          ITYP(NPART+1) = 11
+        ENDIF
+        CALL PTRAM( ZN,AVPK,PX(NPART),PY(NPART) )
+        CALL PTRAM( ZN,AVPK,PX(NPART+1),PY(NPART+1) )
+        SPX   = SPX + PX(NPART) + PX(NPART+1)
+        SPY   = SPY + PY(NPART) + PY(NPART+1)
+        NPART = NPART + 2
+ 1004 CONTINUE
+C  SIGMA PAIRS
+      DO 1005  K = 1,NHC
+        CALL RMMAR( RD,2,1 )
+        IF ( RD(1) .LT. 0.5 ) THEN
+          IF ( RD(2) .LT. 0.5 ) THEN
+            ITYP(NPART)   = 19
+            ITYP(NPART+1) = 27
+          ELSE
+            ITYP(NPART)   = 27
+            ITYP(NPART+1) = 19
+          ENDIF
+        ELSE
+          IF ( RD(2) .LT. 0.5 ) THEN
+            ITYP(NPART)   = 21
+            ITYP(NPART+1) = 29
+          ELSE
+            ITYP(NPART)   = 29
+            ITYP(NPART+1) = 21
+          ENDIF
+        ENDIF
+        CALL PTRAM( ZN,AVPH,PX(NPART),PY(NPART) )
+        CALL PTRAM( ZN,AVPH,PX(NPART+1),PY(NPART+1) )
+        SPX   = SPX + PX(NPART) + PX(NPART+1)
+        SPY   = SPY + PY(NPART) + PY(NPART+1)
+        NPART = NPART + 2
+ 1005 CONTINUE
+ 
+C  DECIDE WITH WHICH CHARGED PION TO START WITH
+C  NUMBER OF PIONS MAY BE ODD IN THE CASE IF ISEL IS 1
+      CALL RMMAR( RD,1,1 )
+      IF ( RD(1) .GT. 0.5 ) THEN
+        NPIOCH = 0
+      ELSE
+        NPIOCH = 1
+      ENDIF
+      NPOS = NCPLUS
+C  PI +-
+      DO 1007  K = 1,NPC
+        IF     ( NPC-K+1 .LE.  NPOS ) THEN
+          NPIOCH = 1
+          IF ( DEBUG ) WRITE(MDEBUG,*) '   NPC,K,NPOS,NPIOCH=',
+     *                                     NPC,K,NPOS,NPIOCH
+        ELSEIF ( NPC-K+1 .LE. -NPOS ) THEN
+          NPIOCH = 0
+          IF ( DEBUG ) WRITE(MDEBUG,*) '   NPC,K,-NPOS,NPIOCH=',
+     *                                     NPC,K,-NPOS,NPIOCH
+        ENDIF
+        IF ( NPIOCH .EQ. 0 ) THEN
+          ITYP(NPART) = 8
+          NPIOCH = 1
+          NPOS   = NPOS + 1
+        ELSE
+          ITYP(NPART) = 9
+          NPIOCH = 0
+          NPOS   = NPOS - 1
+        ENDIF
+        CALL PTRAM( ZN,AVPT,PX(NPART),PY(NPART) )
+        SPX   = SPX + PX(NPART)
+        SPY   = SPY + PY(NPART)
+        NPART = NPART + 1
+ 1007 CONTINUE
+C  NEUTRON ANTINEUTRON PAIRS
+      DO 1008  K = 1,NNN
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1) .LT. 0.5 ) THEN
+          ITYP(NPART)   = 13
+          ITYP(NPART+1) = 25
+        ELSE
+          ITYP(NPART)   = 25
+          ITYP(NPART+1) = 13
+        ENDIF
+        CALL PTRAM( ZN,AVPN,PX(NPART),PY(NPART) )
+        CALL PTRAM( ZN,AVPN,PX(NPART+1),PY(NPART+1) )
+        SPX   = SPX + PX(NPART) + PX(NPART+1)
+        SPY   = SPY + PY(NPART) + PY(NPART+1)
+        NPART = NPART + 2
+ 1008 CONTINUE
+C  K0L K0S PAIRS
+      DO 1009  K = 1,NKN
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1) .LT. 0.5 ) THEN
+          ITYP(NPART)   = 10
+          ITYP(NPART+1) = 16
+        ELSE
+          ITYP(NPART)   = 16
+          ITYP(NPART+1) = 10
+        ENDIF
+        CALL PTRAM( ZN,AVPK,PX(NPART),PY(NPART) )
+        CALL PTRAM( ZN,AVPK,PX(NPART+1),PY(NPART+1) )
+        SPX   = SPX + PX(NPART) + PX(NPART+1)
+        SPY   = SPY + PY(NPART) + PY(NPART+1)
+        NPART = NPART + 2
+ 1009 CONTINUE
+C  LAMDA/SIGMA0 PAIRS
+      DO 1010  K = 1,NHN
+        CALL RMMAR( RD,2,1 )
+        IF ( RD(1) .LT. 0.5 ) THEN
+          IF ( RD(2) .LT. 0.5 ) THEN
+            ITYP(NPART)   = 18
+            ITYP(NPART+1) = 28
+          ELSE
+            ITYP(NPART)   = 28
+            ITYP(NPART+1) = 18
+          ENDIF
+        ELSE
+          IF ( RD(2) .LT. 0.5 ) THEN
+            ITYP(NPART)   = 26
+            ITYP(NPART+1) = 20
+          ELSE
+            ITYP(NPART)   = 20
+            ITYP(NPART+1) = 26
+          ENDIF
+        ENDIF
+C      -----  CHANGE BY JNC DEC.96)
+        IF ( ECMDPM .LE. 500.D0 ) THEN
+          CALL PTRAN( ZN,AVPH,PX(NPART),PY(NPART) )
+          CALL PTRAN( ZN,AVPH,PX(NPART+1),PY(NPART+1) )
+        ELSE
+          CALL PTRAM( ZN,AVPH,PX(NPART),PY(NPART) )
+          CALL PTRAM( ZN,AVPH,PX(NPART+1),PY(NPART+1) )
+        ENDIF
+        SPX   = SPX + PX(NPART) + PX(NPART+1)
+        SPY   = SPY + PY(NPART) + PY(NPART+1)
+        NPART = NPART + 2
+ 1010 CONTINUE
+C  ETA
+      DO 1013  K = 1,NET
+C  FIRST FOR ETAS FROM THIRD STRING
+        IF     ( K .LE. NETA(3,1)                              ) THEN
+          ITYP(NPART) = 71
+        ELSEIF ( K .LE. NETA(3,1)+NETA(3,2)                    ) THEN
+          ITYP(NPART) = 72
+        ELSEIF ( K .LE. NETA(3,1)+NETA(3,2)+NETA(3,3)          ) THEN
+          ITYP(NPART) = 73
+        ELSEIF ( K .LE. NETA(3,1)+NETA(3,2)+NETA(3,3)+NETA(3,4)) THEN
+          ITYP(NPART) = 74
+C  NOW FOR ETAS FROM FIRST AND SECOND STRING
+        ELSEIF ( K .LE. NETAS(3)+NETA(2,1)                     ) THEN
+          ITYP(NPART) = 71
+        ELSEIF ( K .LE. NETAS(3)+NETA(2,1)+NETA(2,2)           ) THEN
+          ITYP(NPART) = 72
+        ELSEIF ( K .LE. NETAS(3)+NETA(2,1)+NETA(2,2)+NETA(2,3) ) THEN
+          ITYP(NPART) = 73
+        ELSE
+          ITYP(NPART) = 74
+        ENDIF
+C      -----  CHANGE BY JNC DEC.96)
+        IF ( ECMDPM .LE. 500.D0 ) THEN
+          CALL PTRAN( ZN,AVPE,PX(NPART),PY(NPART) )
+        ELSE
+          CALL PTRAM( ZN,AVPE,PX(NPART),PY(NPART) )
+        ENDIF
+        SPX   = SPX + PX(NPART)
+        SPY   = SPY + PY(NPART)
+        NPART = NPART + 1
+ 1013 CONTINUE
+C  PI(0)
+      DO 1014  K = 1,NPN
+        ITYP(NPART) = 7
+C      -----  CHANGE BY JNC DEC.96)
+        IF ( ECMDPM .LE. 500.D0 ) THEN
+          CALL PTRAN( ZN,AVPT,PX(NPART),PY(NPART) )
+        ELSE
+          CALL PTRAM( ZN,AVPT,PX(NPART),PY(NPART) )
+        ENDIF
+        SPX   = SPX + PX(NPART)
+        SPY   = SPY + PY(NPART)
+        NPART = NPART + 1
+ 1014 CONTINUE
+ 
+C  ANTILEADER (FROM TARGET, THEREFORE ALWAYS NUCLEON OR DELTA RESONANCE)
+      ITYP(2) = LEPAR2
+C      -----  CHANGE BY JNC DEC.96)
+      IF ( ECMDPM .LE. 500.D0 ) THEN
+        CALL PTRAN( ZN,AVPN,PX(2),PY(2) )
+      ELSE
+        CALL PTRAM( ZN,AVPN,PX(2),PY(2) )
+      ENDIF
+ 
+C  FIRST PARTICLE IS LEADING PARTICLE
+      ITYP(1) = LEPAR1
+      IF     (  (LEPAR1 .GE.  7  .AND.  LEPAR1 .LE.  9)  .OR.
+     *          (LEPAR1 .GE. 51  .AND.  LEPAR1 .LE. 53) ) THEN
+C  LEADING PARTICLE IS PION OR RHO RESONANCE
+        AVERPT = AVPT
+C  LEADING PARTICLE IS KAON OR KAON RESONANCE
+      ELSEIF ( LEPAR1 .EQ. 10  .OR.  LEPAR1 .EQ. 11  .OR.
+     *         LEPAR1 .EQ. 12  .OR.  LEPAR1 .EQ. 16  .OR.
+     *        (LEPAR1 .GE. 62  .AND. LEPAR1 .LE. 68) ) THEN
+        AVERPT = AVPK
+      ELSE
+C  LEADING PARTICLE IS NUCLEON OR ANTINUCLEON OR DELTA RESONANCE
+C  OR STRANGE BARYON
+        AVERPT = AVPN
+      ENDIF
+C      -----  CHANGE BY JNC DEC.96)
+      IF ( ECMDPM .LE. 500.D0 ) THEN
+        CALL PTRAN( ZN,AVERPT,PX(1),PY(1) )
+      ELSE
+        CALL PTRAM( ZN,AVERPT,PX(1),PY(1) )
+      ENDIF
+      SPX = SPX + PX(1) + PX(2)
+      SPY = SPY + PY(1) + PY(2)
+ 
+C  AVERAGE EXCESS PT PER PARTICLE
+      SPX = SPX / NTOT
+      SPY = SPY / NTOT
+ 
+C  RENORMALIZATION OF PT AND CALCULATION OF TRANSVERSE MASSES
+      DO 130  I = 1,NTOT
+        PX(I)   = PX(I) - SPX
+        PY(I)   = PY(I) - SPY
+        PT2(I)  = PX(I)**2 + PY(I)**2
+        TMAS(I) = SQRT( PAMA(ITYP(I))**2 + PT2(I) )
+ 130  CONTINUE
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/prange.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/prange.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/prange.f	(revision 4308)
@@ -0,0 +1,144 @@
+      SUBROUTINE PRANGE(ARG)
+ 
+C-----------------------------------------------------------------------
+C  (DECAYING) P(ARTICLE'S) RANGE
+C
+C  DETERMINES MEAN FREE PATH FOR DECAYING PARTICLES
+C  INCLUDING IONIZATION ENERGY LOSS,
+C  FOR EACH LAYER OF THE ATMOSOHERE SEPARATELY
+C  PRECISELY
+C  THIS SUBROUTINE IS CALLED FROM BOX2
+C  ARGUMENT:
+C   ARG    = -LOG(RANDOM NUMBER) * SPEED OF LIGHT * LIFETIME
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,AIR.
+      COMMON /AIR/     COMPOS,PROBTA,AVERAW,AVOGAD
+      DOUBLE PRECISION COMPOS(3),PROBTA(3),AVERAW,AVOGAD
+*KEEP,ATMOS.
+      COMMON /ATMOS/   AATM,BATM,CATM,DATM
+      DOUBLE PRECISION AATM(5),BATM(5),CATM(5),DATM(5)
+*KEEP,ATMOS2.
+      COMMON /ATMOS2/  HLAY,THICKL
+      DOUBLE PRECISION HLAY(5),THICKL(5)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION AK,ARG,ARG0,BK,CHIT,DK,ELOSS
+      DOUBLE PRECISION GAMK,GAMNEW,GAMSQ,GAM0,GMSQM1,H0,TH0
+      INTEGER          ILAY
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) ARG,THICKH
+  444 FORMAT(' PRANGE: -LOG(RD)*C*TAU = ',1P,E10.3,' THICKH=',E10.3)
+ 
+C  LOOK WITHIN WHICH LAYER THE PARTICLE STARTS
+      IF     ( H .LE. HLAY(2) ) THEN
+        ILAY = 1
+        TH0  = THICKH
+      ELSEIF ( H .LE. HLAY(3) ) THEN
+        ILAY = 2
+        TH0  = THICKH
+      ELSEIF ( H .LE. HLAY(4) ) THEN
+        ILAY = 3
+        TH0  = THICKH
+      ELSE
+        ILAY = 4
+        TH0  = MAX( THICKH, 2.D-4 )
+      ENDIF
+C  SET START VALUES FOR ITERATION
+      ARG0 = ARG
+      CHIT = 0.D0
+      GAM0 = GAMMA
+      H0   = H
+ 
+  2   CONTINUE
+      GAM0   = MAX( GAM0, 1.0001D0 )
+      GAMSQ  = GAM0**2
+      GMSQM1 = GAMSQ - 1.D0
+C  ENERGY LOSS BY IONIZATION
+      ELOSS  = SIGNUM(ITYPE)**2 * C(22) *
+     *           ( GAMSQ * (LOG(GMSQM1) + C(23)) / GMSQM1 - 1.D0 )
+      ELOSS  = ELOSS / (PAMA(ITYPE) * COSTHE )
+      BK     = ELOSS * (TH0 - AATM(ILAY))
+      DK     = GAM0 + BK
+      AK     = ARG0 * DK * COSTHE * DATM(ILAY)
+      IF ( AK .LT. 174.D0 ) THEN
+C  LIMIT FOR EXPONENT (ON IBM COMPUTER)
+        GAMNEW = MAX( GAM0 * DK / ( GAM0 + BK * EXP(AK) ), 1.D0 )
+      ELSE
+        GAMNEW = 1.D0
+      ENDIF
+      GAMK   = GAM0 - ELOSS * ( THICKL(ILAY) - TH0)
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'PRANGE: GAMNEW,GAMK=',
+     *                           SNGL(GAMNEW),SNGL(GAMK)
+C  LOOK WETHER PARTICLE PENETRATES LAYER BOUNDARY OR DECAYS BEFORE
+      IF ( GAMNEW .LT. GAMK  .AND.  ILAY. GT. 1 ) THEN
+C  CALCULATE PORTION OF RANGE AND NEW START VALUES AT LAYER BOUNDARY
+        ARG0 = ARG0 - ( H0 - HLAY(ILAY) + CATM(ILAY) * LOG(GAM0/GAMK) )
+     *                       / (DK * COSTHE)
+        CHIT = CHIT + (THICKL(ILAY) - TH0) / COSTHE
+        GAM0 = GAMK
+        H0   = HLAY(ILAY)
+        TH0  = THICKL(ILAY)
+        ILAY = ILAY - 1
+        GOTO 2
+      ENDIF
+C  PENETRATED MATTER THICKNESS
+      CHI = CHIT + (GAM0 - GAMNEW) / (ELOSS*COSTHE)
+      IF ( DEBUG ) WRITE(MDEBUG,445) CHI
+  445 FORMAT(' PRANGE: CHI = ',1P,E10.3)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/prtime.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/prtime.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/prtime.f	(revision 4308)
@@ -0,0 +1,67 @@
+      SUBROUTINE PRTIME(TTIME)
+ 
+C-----------------------------------------------------------------------
+C  PR(INT) TIME
+C
+C  PRINTS PRESENT DATE AND TIME AND GIVES IT IN A FORMAT SUITED FOR THE
+C  RUNHEADER AND EVENTHEADER
+C  THIS SUBROUTINE IS CALLED FROM MAIN AND START
+C  ARGUMENT:
+C   TTIME  = TIME (YYMMDD)
+C
+C  IF OUR DATE ROUTINE DOES NOT FIT TO YOUR COMPUTER, PLEASE REPLACE
+C  IT BY A SUITABLE ROUTINE OF YOUR SYSTEM
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+
+      DOUBLE PRECISION TTIME
+      INTEGER ID, IT, ISL1, ISL2, ISL3, ISL4, ISL5, ISL6
+
+C-----------------------------------------------------------------------
+ 
+C call jcdate (modified version 13-10-98)
+      CALL jcdate(ID, IT, ISL1, ISL2, ISL3, ISL4, ISL5, ISL6)
+      ttime = DBLE(ID)
+      
+C format dd, mm, yy, hh, mm, ss
+      WRITE(MONIOU,100) ISL3,ISL2,ISL1,ISL4,ISL5,ISL6
+ 100  FORMAT(' PRESENT TIME : ',
+     *     I2,'.',I2.2,'.',I2.2,I4,':',I2.2,':',I2.2)
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ 
+      RETURN
+      END
+
+
+
+
+
+
+
+
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ptram.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ptram.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ptram.f	(revision 4308)
@@ -0,0 +1,102 @@
+      SUBROUTINE PTRAM( ZN,FACT,PTX,PTY )
+ 
+C-----------------------------------------------------------------------
+C  TRA(NSVERSE MOMENTUM FROM) M(IMI EXPERIMENT)
+C
+C  GENERATION OF TRANSVERSE MOMENTUM FOR PARTICLES IN HDPM  GENERATOR
+C  SEE RESULTS FROM UA1/MIMI/96
+C  SOME CONSTANTS CHANGED FROM MATHEMATICAL SOLUTION BY DICHOTOMY TO
+C  TO TAKE INTO ACCOUNT EFFECT OF REJECTIONS. (TESTIFIED AT VS=630 GEV
+C  ONLY)  SEE J.N. CAPDEVIELLE, 24TH ICRC, ROMA 1995
+C         AND J.N. CAPDEVIELLE, 9TH ISVHECRI, KARLSRUHE 1996
+C  THIS SUBROUTINE IS CALLED FROM PPARAM
+C  ARGUMENTS:
+C   ZN    = POWER OF TRANSV. MOMENTUM FUNCTION, DEP. ON CENT.RAP.DENSITY
+C   FACT  = FACTOR TAKING INTO ACCOUNT PARTICLE SPECIFIC TRANSV.MOMENTUM
+C   PTX   = TRANSVERSE MOMENTUM IN X DIRECTION
+C   PTY   = TRANSVERSE MOMENTUM IN Y DIRECTION
+C
+C  DESIGN  : J.N. CAPDEVIELLE CDF PARIS
+C  CHANGES : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+CC    IF ( DEBUG ) WRITE(MDEBUG,*) 'PTRAM : ZN=',SNGL(ZN)
+ 
+C  TWO RANDOM NUMBERS
+      CALL RMMAR( RD,2,1 )
+C  GENERATE <P_T>
+      ALFA = -0.05D0
+      B = ZN-1.D0
+      A = RD(1)/B
+      U = 0.D0
+      DO 5 J = 1,1000
+        F1 =  A * (U+1.D0)**B - 1.D0/B
+        IF ( F1 .GE. U ) GOTO 15
+        U  = U + 0.05D0
+ 5    CONTINUE
+ 15   BETA = U
+      ALFA = U - 0.05D0
+      IF ( F1-U .EQ. 0.D0 ) GOTO 30
+      I = 0
+ 14   U = 0.5D0 * (ALFA+BETA)
+      I = I + 1
+      F = A * (U+1.D0)**B - 1.D0/B - U
+      IF ( F .EQ. 0.D0 ) GO TO 30
+      IF ( ABS(U-BETA) .LE. 1.D-4 ) GOTO 30
+      FA = A * (ALFA+1.D0)**B - ALFA - 1.D0/B
+      FB = B * (BETA+1.D0)**B - BETA - 1.D0/B
+      IF ( F*FA .GE. 0.D0 ) THEN
+        ALFA = U
+      ELSE
+        BETA = U
+      ENDIF
+      GO TO 14
+ 
+ 30   XPT = 0.9154D0 * U
+C  2*PI*RANDOM NUMBER FOR ANGLE PHI
+      Z   = PI2 * RD(2)
+      PTX = XPT * FACT * COS(Z)
+      PTY = XPT * FACT * SIN(Z)
+ 
+CC    IF ( DEBUG ) WRITE(MDEBUG,*) 'PTRAM : RD(1,2),XPT=',
+CC   *                                      RD(1),RD(2),SNGL(XPT)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ptran.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ptran.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ptran.f	(revision 4308)
@@ -0,0 +1,83 @@
+      SUBROUTINE PTRAN( ZN,FACT,PTX,PTY )
+ 
+C-----------------------------------------------------------------------
+C  TRAN(SVERSE MOMENTUM)
+C
+C  GENERATION OF TRANSVERSE MOMENTUM FOR PARTICLES IN HDPM
+C  THIS SUBROUTINE IS CALLED FROM PPARAM
+C  ARGUMENTS:
+C   ZN    = POWER OF TRANSV. MOMENTUM FUNCTION, DEP. ON CENT.RAP.DENSITY
+C   FACT  = FACTOR TAKING INTO ACCOUNT PARTICLE SPECIFIC TRANSV.MOMENTUM
+C   PTX   = TRANSVERSE MOMENTUM IN X DIRECTION
+C   PTY   = TRANSVERSE MOMENTUM IN Y DIRECTION
+C
+C  DESIGN  : T. THOUW   IK3  FZK KARLSRUHE
+C  CHANGES : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+CC    IF ( DEBUG ) WRITE(MDEBUG,*) 'PTRAN : ZN=',SNGL(ZN)
+ 
+C  TWO RANDOM NUMBERS
+      CALL RMMAR( RD,2,1 )
+C  GENERATE <P_T>   (REFERENCE??)
+      B   = ZN * (ZN - 1.D0)
+      ZZ  = SQRT(1.D0/RD(1) - 1.D0)
+      XPT = ZZ * SQRT(2.D0/B)
+   11 CONTINUE
+      IF ( XPT .LT. 0.5D-3 ) GOTO 22
+      X1  = 1.D0 + XPT
+      XB  = X1**ZN
+      XC  = 1.D0 + ZN * XPT
+      ZA  = SQRT(XB/XC - 1.D0)
+      XD  = (ZZ - ZA) * (X1 * 2.D0 * ZA * XC**2 ) / ( B * XPT * XB )
+      XPT = XPT + XD
+      IF ( ABS(XD) .GT. 1.D-3 ) GOTO 11
+   22 CONTINUE
+ 
+C  2*PI*RANDOM NUMBER FOR ANGLE PHI
+      Z   = PI2 * RD(2)
+      PTX = XPT * FACT * COS(Z)
+      PTY = XPT * FACT * SIN(Z)
+ 
+CC    IF ( DEBUG ) WRITE(MDEBUG,*) 'PTRAN : RD(1,2),XPT=',
+CC   *                                      RD(1),RD(2),SNGL(XPT)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ptrans.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ptrans.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ptrans.f	(revision 4308)
@@ -0,0 +1,109 @@
+      DOUBLE PRECISION FUNCTION PTRANS( DUMMY )
+ 
+C-----------------------------------------------------------------------
+C  TRANS(VERSE MOMENTUM)
+C
+C  RANDOM SELECTION OF TRANSVERSE MOMENTUM
+C  DISTRIBUTION IS OF FORM X*EXP(-X)
+C  THIS FUNCTION IS CALLED FROM BOX60, BOX65, BOX70, HMESON, ISOBAR,
+C  NIHILA, PIGEN1, PIGEN2, SINGLE, AND VHMESO
+C  ARGUMENT:
+C   DUMMY  = DUMMY (FOR HISTORICAL REASONS)
+C
+C  CHANGES : J. KNAPP   IK1  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      REAL GX(0:50),HX(0:50)
+      SAVE GX,HX,DX,FIRST
+      LOGICAL FIRST
+C  DX IS STEPSIZE FOR APPROXIMATING CURVE
+      DATA FIRST / .TRUE. /, DX / 0.5D0 /
+C-----------------------------------------------------------------------
+ 
+C     IF ( DEBUG ) WRITE(MDEBUG,*) 'PTRANS:'
+ 
+C  COMPUTE FUNCTION VALUES AND INTEGRAL OF STEP FUNCTION H(X)
+C  APPROXIMATING Y(X) = X * EXP(1-X) WITH H(X) > Y(X)
+      IF ( FIRST ) THEN
+        FIRST = .FALSE.
+        IMAX  = C(34) / DX
+        GX(0) = 0.D0
+        HX(0) = DX*EXP(1.D0-DX)
+        DO  2  I = 1,IMAX
+          X     = I*DX
+          IF ( X .LT. 1.D0 ) X = X + DX
+          HX(I) = X*EXP(1.D0-X)
+          GX(I) = GX(I-1) + HX(I-1)
+    2   CONTINUE
+        SUMI = 1.D0 / GX(IMAX)
+        DO  3  I = 1,IMAX
+          GX(I) = GX(I) * SUMI
+    3   CONTINUE
+      ENDIF
+ 
+C-----------------------------------------------------------------------
+C  GET RANDOM VARIABLE DISTRIBUTED AS HX(X)
+   11 CONTINUE
+      CALL RMMAR( RD,2,1 )
+      I  = 0
+    1 CONTINUE
+      I  = I+1
+      IF ( GX(I) .LT. RD(1) ) GOTO 1
+      XX = ( (RD(1)-GX(I-1))/(GX(I)-GX(I-1)) + I-1 ) * DX
+      ZZ = HX(I-1)
+C  GET RANDOM VARIABLE DISTRIBUTED AS Y(X) BY REJECTION METHOD
+      TT = XX * EXP(1.-XX)
+      IF ( RD(2)*ZZ .GT. TT ) GOTO 11
+ 
+C  GET REQUIRED PEAK VALUE
+      PTRANS = XX * C(12)
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'PTRANS: PT = ',SNGL(PTRANS)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rangen.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rangen.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rangen.f	(revision 4308)
@@ -0,0 +1,62 @@
+      FUNCTION RANGEN()
+ 
+C-----------------------------------------------------------------------
+C  RAN(DOM  NUMBER) GEN(ERATOR)
+C
+C  SEE SUBROUTINE RMMAR
+C  THIS FUNCTION IS CALLED FROM MANY VENUS ROUTINES
+C
+C  CERN PROGLIB# V113    RMMAR           .VERSION KERNFOR  1.0
+C  ORIG. 01/03/89 FCA + FJ
+C
+C  CHANGES  : D. HECK    IK3  FZK KARLSRUHE
+C  DATE     : FEB  02, 1994
+C-----------------------------------------------------------------------
+ 
+C     REAL RVEC(1)
+      COMMON /RANMA2/ IU(1030),JSEQ
+      COMMON /RANMA3/ TWOM24,TWOM48,CD,CM,CINT,MODCNS
+      INTEGER I97(0:1030),J97(0:1030),NTOT(0:1030)
+      INTEGER NTOT2(0:1030),IJKL(0:1030)
+      REAL    U(97),C(0:1030)
+      EQUIVALENCE (IJKL(0),IU(1)),(NTOT(0),IU(2)),(NTOT2(0),IU(3))
+      EQUIVALENCE (U(1),IU(4)),(C(0),IU(101)),(I97(0),IU(102))
+      EQUIVALENCE (J97(0),IU(103))
+C-----------------------------------------------------------------------
+ 
+C     ISEQ = 1
+      LENV = 1
+C     IF ( ISEQ .GT. 0 ) JSEQ = ISEQ
+C     IBASE = (JSEQ-1)*103
+      IBASE = 0
+ 
+      IVEC = 1
+C     DO 100  IVEC = 1,LENV
+        UNI = U(     +I97(IBASE))-U(     +J97(IBASE))
+        IF ( UNI .LT. 0. ) UNI = UNI+1.
+        U(     +I97(IBASE)) = UNI
+        I97(IBASE) = I97(IBASE)-1
+        IF ( I97(IBASE) .EQ. 0 ) I97(IBASE) = 97
+        J97(IBASE) = J97(IBASE)-1
+        IF ( J97(IBASE) .EQ. 0 ) J97(IBASE) = 97
+        C(IBASE)   = C(IBASE) - CD
+        IF ( C(IBASE) .LT. 0. ) C(IBASE) = C(IBASE)+CM
+        UNI = UNI-C(IBASE)
+        IF ( UNI .LT. 0. ) UNI = UNI+1.
+C  REPLACE EXACT ZEROES BY UNIFORM DISTR. *2**-24
+        IF ( UNI .EQ. 0. ) THEN
+          UNI = TWOM24*U(2)
+C  AN EXACT ZERO HERE IS VERY UNLIKELY, BUT LET'S BE SAFE.
+          IF ( UNI .EQ. 0. ) UNI = TWOM48
+        ENDIF
+        RANGEN = UNI
+  100 CONTINUE
+ 
+      NTOT(IBASE) = NTOT(IBASE) + LENV
+      IF ( NTOT(IBASE) .GE. MODCNS )  THEN
+        NTOT2(IBASE) = NTOT2(IBASE) + 1
+        NTOT(IBASE)  = NTOT(IBASE) - MODCNS
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rannor.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rannor.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rannor.f	(revision 4308)
@@ -0,0 +1,77 @@
+      DOUBLE PRECISION FUNCTION RANNOR( A,B )
+ 
+C-----------------------------------------------------------------------
+C  RAN(DOM NUMBER) NOR(MALLY DISTRIBUTED)
+C
+C  GENERATES NORMAL DISTRIBUTED RANDOM NUMBER
+C  DELIVERS 2 UNCORRELATED RANDOM NUMBERS,
+C  THEREFORE RANDOM CALLS ARE ONLY NECESSARY EVERY SECOND TIME.
+C  REFERENCE : NUMERICAL RECIPES, W.H. PRESS ET AL.,
+C              CAMBRIDGE UNIVERSITY PRESS, 1992  ISBN 0 521 43064 X
+C  THIS FUNCTION IS CALLED FROM HDPM, LEADDF, NIHILA, PARRAP, QGSTOR,
+C  UPDATE, AND VAPOR
+C  ARGUMENTS:
+C   A      = MEAN VALUE
+C   B      = STANDARD DEVIATION
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION A,B,RR
+C-----------------------------------------------------------------------
+ 
+CC    IF ( DEBUG ) WRITE(MDEBUG,100) SNGL(A),SNGL(B)
+CC100 FORMAT(' RANNOR: A,B=',1P,2E10.3)
+      IF ( KNOR ) THEN
+  1     CONTINUE
+        CALL RMMAR( RD,2,1 )
+        U1 = 2.D0*RD(1) - 1.D0
+        U2 = 2.D0*RD(2) - 1.D0
+        RR = U1**2 + U2**2
+        IF ( RR .GE. 1.D0 .OR. RR .EQ. 0.D0 ) GOTO 1
+        FAC = SQRT( -2.D0 * LOG(RR) / RR )
+ 
+        RANNOR = FAC * U1 * B + A
+        KNOR   = .FALSE.
+      ELSE
+        RANNOR = FAC * U2 * B + A
+        KNOR   = .TRUE.
+      ENDIF
+CC    IF ( DEBUG ) WRITE(MDEBUG,101) RANNOR
+CC101 FORMAT('+',34X,' RANNOR =',1P,E12.5)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/resdec.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/resdec.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/resdec.f	(revision 4308)
@@ -0,0 +1,200 @@
+      SUBROUTINE RESDEC
+ 
+C-----------------------------------------------------------------------
+C  RES(ONANCE) DEC(AY)
+C
+C  ROUTINE TREATES DECAY OF THE RESONANCES RHO, K*, AND DELTA
+C  THE DECAY MODE IS SELECTED BY THE RANDOM NUMBER RESRAN, WHICH IS
+C  SET IN THE ROUTINE HDPM/LEPACX, WHERE THE RESONANCE IS FORMED
+C  DECAY WITH FULL KINEMATIC, ENERGY AND MOMENTA CONSERVED
+C  THIS SUBROUTINE IS CALLED FROM BOX3
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RESON.
+      COMMON /RESON/   RDRES,RESRAN,IRESPAR
+      REAL             RDRES(2),RESRAN(1000)
+      INTEGER          IRESPAR
+ 
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      INTEGER          I,KK,M3,M4
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,8)
+  444 FORMAT(' RESDEC: CURPAR=',1P,8E10.3)
+ 
+C  CURRENT PARTICLE MUST BE SAVED IN STORE
+      DO 141  KK = 5,8
+        SECPAR(KK) = CURPAR(KK)
+ 141  CONTINUE
+      SECPAR( 9)  = GEN
+      SECPAR(10)  = ALEVEL
+ 
+      BETA   = SQRT( GAMMA**2 - 1.D0 ) / GAMMA
+ 
+      IF ( IRESPAR .LE. 0 ) THEN
+        WRITE(MONIOU,*)'RESDEC: IRESPAR .LE. 0, CORRECTED'
+        IRESPAR = 1
+      ENDIF
+C-----------------------------------------------------------------------
+C  TREAT FIRST NUCLEON RESONANCES, AS MOST FREQUENT
+ 
+      IF     ( ITYPE .EQ. 54 ) THEN
+C  DECAY    DELTA(++)  ---->  P + PI(+)
+        CALL DECAY1( ITYPE, 14, 8 )
+ 
+      ELSEIF ( ITYPE .EQ. 55  .OR.  ITYPE .EQ. 56 ) THEN
+C  DECAY    DELTA(+)   OR       DECAY    DELTA(0)
+ 
+        IF ( RESRAN(IRESPAR) .LE. TB3 ) THEN
+C  DECAY    DELTA(+)  ---->  P + PI(0)
+C  DECAY    DELTA(0)  ---->  N + PI(0)
+          M3 = 69 - ITYPE
+          CALL DECAY1( ITYPE, M3, 7 )
+ 
+        ELSE
+C  DECAY    DELTA(+)  ---->  N + PI(+)
+C  DECAY    DELTA(0)  ---->  P + PI(-)
+          M3 = ITYPE - 42
+          M4 = M3 - 5
+          CALL DECAY1( ITYPE, M3, M4 )
+        ENDIF
+ 
+      ELSEIF ( ITYPE .EQ. 57 ) THEN
+C  DECAY    DELTA(-)  ---->  N + PI(-)
+        CALL DECAY1( ITYPE, 13, 9 )
+ 
+C-----------------------------------------------------------------------
+C  RHO RESONANCES
+ 
+      ELSEIF ( ITYPE .EQ. 51 ) THEN
+C  DECAY    RHO(0)  ---->  PI(+) + PI(-)
+        CALL DECAY1( ITYPE, 8, 9 )
+ 
+      ELSEIF ( ITYPE .EQ. 52  .OR.  ITYPE .EQ. 53 ) THEN
+C  DECAY    RHO(+,-)  ---->  PI(+,-) + PI(0)
+        M3 = ITYPE - 44
+        CALL DECAY1( ITYPE, M3, 7 )
+ 
+C-----------------------------------------------------------------------
+C  EXCITED KAON RESONANCES
+ 
+      ELSEIF ( ITYPE .EQ. 62 ) THEN
+C  DECAY    K*(0)          ---->  2/3: K(+)    + PI(-)
+C                          ---->  1/3: K0(L,S) + PI(0)
+        IF     ( RESRAN(IRESPAR) .LE.      TB3 ) THEN
+          CALL DECAY1( ITYPE, 11, 9 )
+        ELSEIF ( RESRAN(IRESPAR) .LE. .8333333 ) THEN
+          CALL DECAY1( ITYPE, 10, 7 )
+        ELSE
+          CALL DECAY1( ITYPE, 16, 7 )
+        ENDIF
+ 
+      ELSEIF ( ITYPE .EQ. 65 ) THEN
+C  DECAY    ANTI-K*(0)     ---->  2/3: K(-)    + PI(+)
+C                          ---->  1/3: K0(L,S) + PI(0)
+        IF     ( RESRAN(IRESPAR) .LE.      TB3 ) THEN
+          CALL DECAY1( ITYPE, 12, 8 )
+        ELSEIF ( RESRAN(IRESPAR) .LE. .8333333 ) THEN
+          CALL DECAY1( ITYPE, 10, 7 )
+        ELSE
+          CALL DECAY1( ITYPE, 16, 7 )
+        ENDIF
+ 
+      ELSEIF ( ITYPE .EQ. 63  .OR.  ITYPE .EQ. 64 ) THEN
+C  DECAY    K*(+-)          ---->  2/3: K(+-) + PI(0)
+C                           ---->  1/3: K0(L,S) + PI(+-)
+        IF     ( RESRAN(IRESPAR) .LE.      TB3 ) THEN
+          CALL DECAY1( ITYPE, ITYPE-52, 7 )
+        ELSEIF ( RESRAN(IRESPAR) .LE. .8333333 ) THEN
+          CALL DECAY1( ITYPE, 10, ITYPE-55 )
+        ELSE
+          CALL DECAY1( ITYPE, 16, ITYPE-55 )
+        ENDIF
+ 
+C-----------------------------------------------------------------------
+C  ANTI-NUCLEON RESONANCES
+ 
+      ELSEIF ( ITYPE .EQ. 58 ) THEN
+C  DECAY    ANTI-DELTA(--)  ---->  ANTI-P + PI(-)
+        CALL DECAY1( ITYPE, 15, 9 )
+ 
+      ELSEIF ( ITYPE .EQ. 59  .OR.  ITYPE .EQ. 60 ) THEN
+C  DECAY    ANTI-DELTA(-)   OR       DECAY    ANTI-DELTA(0)
+ 
+        IF ( RESRAN(IRESPAR) .LE. TB3 ) THEN
+C  DECAY    ANTI-DELTA(-)  ---->  ANTI-P + PI(0)
+C  DECAY    ANTI-DELTA(0)  ---->  ANTI-N + PI(0)
+          M3 = 15 + (ITYPE - 59) * 10
+          CALL DECAY1( ITYPE, M3, 7 )
+ 
+        ELSE
+C  DECAY    ANTI-DELTA(-)  ---->  ANTI-N + PI(-)
+C  DECAY    ANTI-DELTA(0)  ---->  ANTI-P + PI(+)
+          M3 = 15 + (60 - ITYPE) * 10
+          M4 = 68 - ITYPE
+          CALL DECAY1( ITYPE, M3, M4 )
+        ENDIF
+ 
+      ELSEIF ( ITYPE .EQ. 61 ) THEN
+C  DECAY    ANTI-DELTA(+)  ---->  ANTI-N + PI(+)
+        CALL DECAY1( ITYPE, 25, 8 )
+ 
+C-----------------------------------------------------------------------
+      ELSE
+        WRITE(MONIOU,*) 'RESDEC: UNFORESEEN PARTICLE CODE =',ITYPE
+      ENDIF
+      IRESPAR = IRESPAR -1
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rhof.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rhof.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rhof.f	(revision 4308)
@@ -0,0 +1,110 @@
+C=======================================================================
+
+      DOUBLE PRECISION FUNCTION RHOF( ARG )
+
+C-----------------------------------------------------------------------
+C  RHO (DENSITY) F(UNCTION)
+C
+C  CALCULATES DENSITY (G/CM**3) OF ATMOSPHERE DEPENDING ON HEIGHT (CM)
+C  (US STANDARD ATMOSPHERE)
+C  THIS FUNCTION IS CALLED FROM ININKG, UPDATE, CERENE, CERENH
+C  ARGUMENT:
+C   ARG    = HEIGHT IN CM
+C-----------------------------------------------------------------------
+
+      IMPLICIT NONE
+
+*KEEP,ATMOS.
+      COMMON /ATMOS/   AATM,BATM,CATM,DATM
+      DOUBLE PRECISION AATM(5),BATM(5),CATM(5),DATM(5)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c Try
+c------------------------------------------------------------
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+*KEND.
+
+C*******************************************************************
+C     Modificado por Aitor (5-febrero-98)
+      
+      common /aitor/   aitoth
+      double precision aitoth
+C*******************************************************************
+
+
+      DOUBLE PRECISION ARG,H,RT
+      PARAMETER (RT=6348.0D5)
+
+C-----------------------------------------------------------------------
+
+CC    IF ( DEBUG ) WRITE(MDEBUG,*) 'RHOF  : ARG=',SNGL(ARG)
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>> Modification (HZA trick) cancelled >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>> JCG Wed Sep 21 10:49:14 MET DST 1998 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+      IF     ( ARG .LT. 4.D5 ) THEN
+        RHOF =  BATM(1) * DATM(1) * EXP ( -ARG * DATM(1) )
+      ELSEIF ( ARG .LT. 1.D6 ) THEN
+        RHOF =  BATM(2) * DATM(2) * EXP ( -ARG * DATM(2) )
+      ELSEIF ( ARG .LT. 4.D6 ) THEN
+        RHOF =  BATM(3) * DATM(3) * EXP ( -ARG * DATM(3) )
+      ELSEIF ( ARG .LT. 1.D7 ) THEN
+        RHOF =  BATM(4) * DATM(4) * EXP ( -ARG * DATM(4) )
+      ELSE
+        RHOF =  CATM(5)
+      ENDIF
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+cC*******************************************************************
+cC     Modificado por Aitor (5-febrero-98)
+c
+c      H = -RT + SQRT(RT**2 + (ARG/COS(aitoth))**2 +(2.0D0*RT*ARG))
+cC*******************************************************************
+c
+cC      R = SQRT(CURPAR(7)**2+CURPAR(8)**2)
+cC      H = SQRT((RT+ARG)**2+R**2)-RT
+cc      print *,'RHOF>>',arg,r,h,curpar(7),curpar(8)
+c
+c      IF     ( H .LT. 4.D5 ) THEN
+c        RHOF =  BATM(1) * DATM(1) * EXP ( -H * DATM(1) )
+c      ELSEIF ( H .LT. 1.D6 ) THEN
+c        RHOF =  BATM(2) * DATM(2) * EXP ( -H * DATM(2) )
+c      ELSEIF ( H .LT. 4.D6 ) THEN
+c        RHOF =  BATM(3) * DATM(3) * EXP ( -H * DATM(3) )
+c      ELSEIF ( H .LT. 1.D7 ) THEN
+c        RHOF =  BATM(4) * DATM(4) * EXP ( -H * DATM(4) )
+c      ELSE
+c        RHOF =  CATM(5)
+c      ENDIF
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rmmaq.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rmmaq.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rmmaq.f	(revision 4308)
@@ -0,0 +1,124 @@
+      SUBROUTINE RMMAQ( ISEED,ISEQ,CHOPT )
+ 
+C-----------------------------------------------------------------------
+C  R(ANDO)M (NUMBER GENERATOR OF) MA(RSAGLIA TYPE INITIALISATION)
+C
+C  ROUTINE FOR INITIALIZATION OF RMMAR
+C  THIS SUBROUTINE IS CALLED FROM MAIN AND START
+C  ARGUMENTS:
+C   ISEED  = SEED TO INITIALIZE A SEQUENCE
+C   ISEQ   = # OF RANDOM SEQUENCE
+C   CHOPT  = CHARACTER TO STEER INITIALIZATION OPTIONS
+C
+C  CERN PROGLIB# V113    RMMAQ           .VERSION KERNFOR  1.0
+C  ORIG. 01/03/89 FCA + FJ
+C-----------------------------------------------------------------------
+ 
+      COMMON /RANMA2/ IU(1030),JSEQ
+      COMMON /RANMA3/ TWOM24,TWOM48,CD,CM,CINT,MODCNS
+      INTEGER I97(0:1030),J97(0:1030),NTOT(0:1030),NTOT2(0:1030),
+     *        IJKL(0:1030)
+      REAL    U(1030),C(0:1030),UU(1030)
+      EQUIVALENCE (IJKL(0),IU(1)),(NTOT(0),IU(2)),(NTOT2(0),IU(3))
+      EQUIVALENCE (U(1),IU(4)),(C(0),IU(101)),(I97(0),IU(102))
+      EQUIVALENCE (J97(0),IU(103))
+      INTEGER     ISEED(*)
+      CHARACTER   CHOPT*(*), CCHOPT*12
+      LOGICAL FIRST
+      DATA    FIRST / .TRUE. /
+C-----------------------------------------------------------------------
+ 
+      IF ( FIRST ) THEN
+        TWOM24 = 2.**(-24)
+        TWOM48 = 2.**(-48)
+        CD     = 7654321.*TWOM24
+        CM     = 16777213.*TWOM24
+        CINT   = 362436.*TWOM24
+        MODCNS = 1000000000
+        FIRST  = .FALSE.
+      ENDIF
+ 
+      CCHOPT = CHOPT
+      IF ( CCHOPT .EQ. ' ' ) THEN
+        ISEED(1) = 54217137
+        ISEED(2) = 0
+        ISEED(3) = 0
+        CCHOPT   = 'S'
+        JSEQ     = 1
+      ENDIF
+ 
+      IF     ( INDEX(CCHOPT,'S') .NE. 0 ) THEN
+        IF ( ISEQ .GT. 0 ) JSEQ = ISEQ
+        IBASE = (JSEQ-1)*103
+        IF ( INDEX(CCHOPT,'V') .NE. 0 ) THEN
+          DO 10  JJ = 1,103
+            IU(IBASE+JJ) = ISEED(JJ)
+  10      CONTINUE
+        ELSE
+          IJKL(IBASE)  = ISEED(1)
+          NTOT(IBASE)  = ISEED(2)
+          NTOT2(IBASE) = ISEED(3)
+          IJ = IJKL(IBASE) / 30082
+          KL = IJKL(IBASE) - 30082*IJ
+          I  = MOD(IJ/177, 177) + 2
+          J  = MOD(IJ, 177)     + 2
+          K  = MOD(KL/169, 178) + 1
+          L  = MOD(KL, 169)
+          DO 30  II = 1,97
+            S = 0.
+            T = .5
+            DO 20  JJ = 1,24
+              M = MOD(MOD(I*J,179)*K, 179)
+              I = J
+              J = K
+              K = M
+              L = MOD(53*L+1, 169)
+              IF ( MOD(L*M,64) .GE. 32 ) S = S+T
+              T = 0.5*T
+  20        CONTINUE
+            UU(II) = S
+  30      CONTINUE
+          CC   = CINT
+          II97 = 97
+          IJ97 = 33
+C  COMPLETE INITIALIZATION BY SKIPPING (NTOT2*MODCNS+NTOT) RANDOMNUMBERS
+          NITER = MODCNS
+          DO 50  LOOP2 = 1,NTOT2(IBASE)+1
+            IF ( LOOP2 .GT.N TOT2(IBASE) ) NITER = NTOT(IBASE)
+            DO 40  IDUM = 1,NITER
+              UNI = UU(II97)-UU(IJ97)
+              IF ( UNI .LT. 0. ) UNI = UNI+1.
+              UU(II97) = UNI
+              II97 = II97-1
+              IF ( II97 .EQ. 0 ) II97 = 97
+              IJ97 = IJ97-1
+              IF ( IJ97 .EQ. 0 ) IJ97 = 97
+              CC = CC - CD
+              IF ( CC .LT. 0. ) CC = CC+CM
+   40       CONTINUE
+   50     CONTINUE
+          I97(IBASE) = II97
+          J97(IBASE) = IJ97
+          C(IBASE)   = CC
+          DO 60  JJ = 1,97
+            U(IBASE+JJ) = UU(JJ)
+  60      CONTINUE
+        ENDIF
+      ELSEIF ( INDEX(CCHOPT,'R') .NE. 0 ) THEN
+        IF ( ISEQ .GT. 0 ) THEN
+          JSEQ = ISEQ
+        ELSE
+          ISEQ = JSEQ
+        ENDIF
+        IBASE = (JSEQ-1)*103
+        IF ( INDEX(CCHOPT,'V') .NE. 0 ) THEN
+          NCOPY = 103
+        ELSE
+          NCOPY = 3
+        ENDIF
+        DO 70  JJ = 1,NCOPY
+          ISEED(JJ) = IU(IBASE+JJ)
+  70    CONTINUE
+      ENDIF
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rmmar.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rmmar.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rmmar.f	(revision 4308)
@@ -0,0 +1,60 @@
+      SUBROUTINE RMMAR( RVEC,LENV,ISEQ )
+ 
+C-----------------------------------------------------------------------
+C  R(ANDO)M (NUMBER GENERATOR OF) MAR(SAGLIA TYPE)
+C
+C  THESE ROUTINES (RMMAR,RMMAQ) ARE TAKEN FROM THE CERN LIBRARIES
+C  DESCRIPTION OF ALGORITHM SEE THERE
+C  THIS SUBROUTINE IS CALLED FROM MANY ROUTINES
+C  ARGUMENTS:
+C   RVEC   = VECTOR FIELD TO BE FILLED WITH RANDOM NUMBERS
+C   LENV   = LENGTH OF VECTOR (# OF RANDNUMBERS TO BE GENERATED)
+C   ISEQ   = # OF RANDOM SEQUENCE
+C
+C  CERN PROGLIB# V113    RMMAR           .VERSION KERNFOR  1.0
+C  ORIG. 01/03/89 FCA + FJ
+C-----------------------------------------------------------------------
+ 
+      REAL RVEC(*)
+      COMMON /RANMA2/ IU(1030),JSEQ
+      COMMON /RANMA3/ TWOM24,TWOM48,CD,CM,CINT,MODCNS
+      INTEGER I97(0:1030),J97(0:1030),NTOT(0:1030),NTOT2(0:1030),
+     *        IJKL(0:1030)
+      REAL    U(1030),C(0:1030)
+      EQUIVALENCE (IJKL(0),IU(1)),(NTOT(0),IU(2)),(NTOT2(0),IU(3))
+      EQUIVALENCE (U(1),IU(4)),(C(0),IU(101)),(I97(0),IU(102))
+      EQUIVALENCE (J97(0),IU(103))
+C-----------------------------------------------------------------------
+ 
+      IF ( ISEQ .GT. 0 ) JSEQ = ISEQ
+      IBASE = (JSEQ-1)*103
+ 
+      DO 100  IVEC = 1,LENV
+        UNI = U(IBASE+I97(IBASE))-U(IBASE+J97(IBASE))
+        IF ( UNI .LT. 0. ) UNI = UNI+1.
+        U(IBASE+I97(IBASE)) = UNI
+        I97(IBASE) = I97(IBASE)-1
+        IF ( I97(IBASE) .EQ. 0 ) I97(IBASE) = 97
+        J97(IBASE) = J97(IBASE)-1
+        IF ( J97(IBASE) .EQ. 0 ) J97(IBASE) = 97
+        C(IBASE)   = C(IBASE) - CD
+        IF ( C(IBASE) .LT. 0. ) C(IBASE) = C(IBASE)+CM
+        UNI = UNI-C(IBASE)
+        IF ( UNI .LT. 0. ) UNI = UNI+1.
+C  REPLACE EXACT ZEROES BY UNIFORM DISTR. *2**-24
+        IF ( UNI .EQ. 0. ) THEN
+          UNI = TWOM24*U(2)
+C  AN EXACT ZERO HERE IS VERY UNLIKELY, BUT LET'S BE SAFE.
+          IF ( UNI .EQ. 0. ) UNI = TWOM48
+        ENDIF
+        RVEC(IVEC) = UNI
+  100 CONTINUE
+ 
+      NTOT(IBASE) = NTOT(IBASE) + LENV
+      IF ( NTOT(IBASE) .GE. MODCNS )  THEN
+        NTOT2(IBASE) = NTOT2(IBASE) + 1
+        NTOT(IBASE)  = NTOT(IBASE) - MODCNS
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rnegbi.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rnegbi.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/rnegbi.f	(revision 4308)
@@ -0,0 +1,86 @@
+      SUBROUTINE RNEGBI( N,XN,ECM )
+ 
+C-----------------------------------------------------------------------
+C  R(ANDOM NUMBER WITH) NEG(ATIVE) BI(NOMIAL DISTRIBUTION)
+C
+C  RANDOM NUMBER GENERATOR FOR INTEGER NUMBERS DISTRIBUTED ACCORDING TO
+C  A NEGATIVE BINOMIAL DISTRIBUTION WITH PARAMETERS <N> AND K
+C  DELIVERS ONLY EVEN NUMBERS AS CHARGE MUST BE CONSERVED
+C  THIS SUBROUTINE IS CALLED FROM HDPM
+C  ARGUMENTS:
+C   XN     = <N>  AVERAGE VALUE OF N
+C   ECM    = CENTER OF MASS ENERGY
+C   N      = RANDOM NUMBER DISTRIBUTED WITH NEG. BIN. DISTR.
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION ECM,P,PN,Q,R,SUM,XI,XK,XN
+      INTEGER          N
+C-----------------------------------------------------------------------
+ 
+CC    IF ( DEBUG ) WRITE(MDEBUG,*) 'RNEGBI: XN,ECM=',SNGL(XN),SNGL(ECM)
+ 
+C  PARAMETRIZATION OF PARAMETER K OF NEG.BIN. DISTRIBUTION ACCORDING
+C  TO  UA5 COLLABORATION, PHYS. LETT. 167B (1986) 476
+      XK  = 1.D0 / ( -0.104D0 + 0.058D0 * LOG(ECM) )
+C  OTHER PARAMETERS
+      R   = XN / XK
+      Q   = 1.D0 / (1.D0 + R)
+      P   = R * Q
+ 
+C  VALUES FOR N EQUAL 0
+  1   CONTINUE
+      N   = 0
+      PN  = Q**XK
+      SUM = PN
+C  GET UNIFORM RANDOM NUMBER
+      CALL RMMAR( RD,1,1 )
+      IF ( RD(1) .LE. SUM ) GOTO 100
+C  COMPARE WITH SUM OVER P(N)
+      DO  2  XI = 1.D0, 1350.D0
+        PN  = PN * P * (XK - 1.D0 + XI) / XI
+        SUM = SUM + PN
+        IF ( RD(1) .LE. SUM ) THEN
+          N = XI
+          GOTO 100
+        ENDIF
+  2   CONTINUE
+      N = 1350
+ 
+ 100  CONTINUE
+      IF ( MOD(N,2) .NE. 0  .AND.  N .NE. 1 ) GOTO 1
+CC    IF (DEBUG) WRITE(MDEBUG,*)'RNEGBI: RD(1),N,<N>=',RD(1),N,SNGL(XN)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/sdpm.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/sdpm.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/sdpm.f	(revision 4308)
@@ -0,0 +1,560 @@
+      SUBROUTINE SDPM
+ 
+C-----------------------------------------------------------------------
+C  S(TARTING) D(UAL) P(ARTON) M(ODEL)
+C
+C  THIS ROUTINE DETERMINES THE TARGET NUCLEUS.
+C  IT CALLS ALSO THE VARIOUS INTERACTION MODELS.
+C  FOR HDPM, THIS ROUTINE LOOKS, HOW MANY NUCLEONS INTERACT AND WHICH
+C  RESIDUAL FRAGMENT OF THE PROJECTILE NUCLEUS REMAINS.
+C  THIS SUBROUTINE IS CALLED FROM NUCINT AND PIGEN
+C
+C  REDESIGN: D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,AIR.
+      COMMON /AIR/     COMPOS,PROBTA,AVERAW,AVOGAD
+      DOUBLE PRECISION COMPOS(3),PROBTA(3),AVERAW,AVOGAD
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,DPMFLG.
+      COMMON /DPMFLG/  NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+      INTEGER          NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,INTER.
+      COMMON /INTER/   AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN,
+     *                 IDIF,ITAR
+      DOUBLE PRECISION AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN
+      INTEGER          IDIF,ITAR
+*KEEP,ISTA.
+      COMMON /ISTA/    IFINET,IFINNU,IFINKA,IFINPI,IFINHY
+      INTEGER          IFINET,IFINNU,IFINKA,IFINPI,IFINHY
+*KEEP,MULT.
+      COMMON /MULT/    EKINL,MSMM,MULTMA,MULTOT
+      DOUBLE PRECISION EKINL
+      INTEGER          MSMM,MULTMA(37,13),MULTOT(37,13)
+*KEEP,NCSNCS.
+      COMMON /NCSNCS/  SIGN30,SIGN45,SIGN60,SIGO30,SIGO45,SIGO60,
+     *                 SIGA30,SIGA45,SIGA60,PNOA30,PNOA45,PNOA60,
+     *                 SIG30A,SIG45A,SIG60A
+      DOUBLE PRECISION SIGN30(56),SIGN45(56),SIGN60(56),
+     *                 SIGO30(56),SIGO45(56),SIGO60(56),
+     *                 SIGA30(56),SIGA45(56),SIGA60(56),
+     *                 PNOA30(1540,3),PNOA45(1540,3),PNOA60(1540,3),
+     *                 SIG30A(56),SIG45A(56),SIG60A(56)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RANGE.
+      COMMON /RANGE/   CC
+      DOUBLE PRECISION CC(20)
+*KEEP,REST.
+      COMMON /REST/    CONTNE,TAR,LT
+      DOUBLE PRECISION CONTNE(3),TAR
+      INTEGER          LT
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,SIGM.
+      COMMON /SIGM/    SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+      DOUBLE PRECISION SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+*KEEP,VKIN.
+      COMMON /VKIN/    BETACM
+      DOUBLE PRECISION BETACM
+*KEEP,VENUS.
+      COMMON /VENUS/   ISH0,IVERVN,MTAR99,FVENUS,FVENSG
+      INTEGER          ISH0,IVERVN,MTAR99
+      LOGICAL          FVENUS,FVENSG
+*KEND.
+ 
+      DOUBLE PRECISION PFRX(60),PFRY(60)
+      DOUBLE PRECISION COSTET,EA,P,PHIV,PTM,PT2,
+     *                 SIGMAA,SIGMAN,SIGMAO,SIG45,S45SQ,S4530
+      DOUBLE PRECISION CGHSIG,EKIN
+      EXTERNAL         CGHSIG
+      INTEGER          ITYP(60),I,IA,IANEW,INACTA,INACTZ,INDEX,INEUTR,
+     *                 IZ,IZNEW,J,JFIN,KNEW,L,LL,NPRPRO,NNEPRO
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+  444 FORMAT(' SDPM  : CURPAR=',1P,9E10.3)
+ 
+C  IA IS MASS NUMBER OF PROJECTILE
+      IA = ITYPE / 100
+      IF ( IA .GT. 56 ) THEN
+        WRITE(MONIOU,*) 'SDPM  : NOT FORESEEN PARTICLE TYPE=',ITYPE
+        STOP
+      ENDIF
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  TREATMENT OF GAMMAS COMING FROM EGS4 (PIGEN)
+      IF     ( ITYPE .EQ. 1 ) THEN
+C  RATIOS OF CROSS SECTIONS GO LIKE A**0.91
+        FRACTN = COMPOS(1) * 11.04019D0
+        FRCTNO = FRACTN + COMPOS(2) * 12.46663D0
+        SIGAIR = FRCTNO + COMPOS(3) * 28.69952D0
+C  TARGET IS CHOSEN AT RANDOM
+        CALL RMMAR( RD,1,1 )
+        IF     ( RD(1)*SIGAIR .LE. FRACTN ) THEN
+C  INTERACTION WITH NITROGEN
+          LT  = 1
+          TAR = 14.D0
+        ELSEIF ( RD(1)*SIGAIR .LE. FRCTNO ) THEN
+C  INTERACTION WITH OXYGEN
+          LT  = 2
+          TAR = 16.D0
+        ELSE
+C  INTERACTION WITH ARGON
+          LT  = 3
+          TAR = 40.D0
+        ENDIF
+ 
+C  GAMMAS ARE TREATED BY VENUS, IF SUFFICIENT ENERGY
+        IF ( FVENUS  .AND.  CURPAR(2) .GT. HILOELB ) THEN
+          CALL VENLNK
+        ELSE
+          CALL HDPM
+        ENDIF
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  NORMAL HADRON PROJECTILE
+      ELSEIF ( ITYPE .LT. 100 ) THEN
+ 
+C  WITH WHAT KIND OF TARGET DOES PROJECTILE INTERACT?
+        IF ( FIXTAR ) THEN
+C  TARGET OF FIRST INTERACTION IS FIXED
+          LT = N1STTR
+          IF     ( N1STTR .EQ. 1 ) THEN
+            TAR = 14.D0
+          ELSEIF ( N1STTR .EQ. 2 ) THEN
+            TAR = 16.D0
+          ELSE
+            TAR = 40.D0
+          ENDIF
+          FIXTAR = .FALSE.
+        ELSE
+C  TARGET IS CHOSEN AT RANDOM ACCORDING TO CROSS SECTION
+C  SIGMA IS ENERGY DEPENDENT INELASTIC NUCLEON-NUCLEON CROSS SECTION
+C  AND IS SET IN BOX2
+C  AUXIL. QUANTITIES FOR INTERPOLATION
+          SIG45  = SIGMA - 45.D0
+          S45SQ  = SIG45**2 / 450.D0
+          S4530  = SIG45 / 30.D0
+C  INELASTIC CROSS SECTIONS FOR PROJECTICLE WITH MASS NUMBER 1
+          SIGMAN = (1.D0 - 2.D0 * S45SQ) * SIGN45(1)
+     *                  +(S45SQ - S4530) * SIGN30(1)
+     *                  +(S45SQ + S4530) * SIGN60(1)
+          FRACTN = COMPOS(1) * SIGMAN
+          SIGMAO = (1.D0 - 2.D0 * S45SQ) * SIGO45(1)
+     *                  +(S45SQ - S4530) * SIGO30(1)
+     *                  +(S45SQ + S4530) * SIGO60(1)
+          FRCTNO = FRACTN + COMPOS(2) * SIGMAO
+          SIGMAA = (1.D0 - 2.D0 * S45SQ) * SIGA45(1)
+     *                  +(S45SQ - S4530) * SIGA30(1)
+     *                  +(S45SQ + S4530) * SIGA60(1)
+C  INELASTIC CROSS SECTIONS OF AIR FOR PROJECTILE WITH MASS NUMBER 1
+          SIGAIR = FRCTNO + COMPOS(3)*SIGMAA
+ 333      CONTINUE
+          CALL RMMAR( RD,1,1 )
+          IF(DEBUG)WRITE(MDEBUG,*)'SDPM  : FRACTN=',SNGL(FRACTN),
+     *      'FRCTNO=',SNGL(FRCTNO),'RD=',RD(1)
+          IF     ( RD(1)*SIGAIR .LE. FRACTN ) THEN
+C  INTERACTION WITH NITROGEN
+            LT  = 1
+            TAR = 14.D0
+          ELSEIF ( RD(1)*SIGAIR .LE. FRCTNO ) THEN
+C  INTERACTION WITH OXYGEN
+            LT  = 2
+            TAR = 16.D0
+          ELSE
+C  INTERACTION WITH ARGON
+            LT  = 3
+            TAR = 40.D0
+          ENDIF
+        ENDIF
+ 
+        IF ( FVENUS ) THEN
+C  MESONS, NUCLEONS AND STRANGE BARYONS ARE TREATED BY VENUS (JAN 95)
+          IF ( (ITYPE .GE.  7  .AND.  ITYPE .LE. 16)  .OR.
+     *         (ITYPE .GE. 18  .AND.  ITYPE .LE. 32)  )THEN
+            CALL VENLNK
+          ELSE
+            CALL HDPM
+          ENDIF
+        ELSE
+          CALL HDPM
+        ENDIF
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  HEAVY PRIMARY INCIDENT WITH IA NUCLEONS
+      ELSEIF ( IA .LE. 56 ) THEN
+ 
+        IZ = MOD(ITYPE,100)
+C  WITH WHAT KIND OF TARGET DOES PROJECTILE INTERACT?
+        IF ( FIXTAR ) THEN
+C  TARGET OF FIRST INTERACTION IS FIXED
+          LT = N1STTR
+          IF     ( N1STTR .EQ. 1 ) THEN
+            TAR = 14.D0
+          ELSEIF ( N1STTR .EQ. 2 ) THEN
+            TAR = 16.D0
+          ELSE
+            TAR = 40.D0
+          ENDIF
+          FIXTAR = .FALSE.
+          CALL RMMAR( RD,2,1 )
+        ELSE
+C  ONLY INELASTIC INTERACTIONS WITH HEAVY PRIMARY/FRAGMENT
+C  SIGMA IS ENERGY DEPENDENT INELASTIC NUCLEON-NUCLEON CROSS SECTION
+C  AND IS SET IN BOX2
+C  AUXIL. QUANTITIES FOR INTERPOLATION
+          SIG45  = SIGMA - 45.D0
+          S45SQ  = SIG45**2 / 450.D0
+          S4530  = SIG45 / 30.D0
+C  INELASTIC CROSS SECTIONS FOR PROJECTICLE WITH MASS NUMBER IA
+          SIGMAN = (1.D0 - 2.D0 * S45SQ) * SIGN45(IA)
+     *                  +(S45SQ - S4530) * SIGN30(IA)
+     *                  +(S45SQ + S4530) * SIGN60(IA)
+          FRACTN = COMPOS(1) * SIGMAN
+          SIGMAO = (1.D0 - 2.D0 * S45SQ) * SIGO45(IA)
+     *                  +(S45SQ - S4530) * SIGO30(IA)
+     *                  +(S45SQ + S4530) * SIGO60(IA)
+          FRCTNO = FRACTN + COMPOS(2) * SIGMAO
+          SIGMAA = (1.D0 - 2.D0 * S45SQ) * SIGA45(IA)
+     *                  +(S45SQ - S4530) * SIGA30(IA)
+     *                  +(S45SQ + S4530) * SIGA60(IA)
+C  INELASTIC CROSS SECTIONS OF AIR FOR PROJECTILE WITH MASS NUMBER IA
+          SIGAIR = FRCTNO +COMPOS(3)*SIGMAA
+C  TARGET IS CHOSEN AT RANDOM
+          CALL RMMAR( RD,2,1 )
+          IF(DEBUG)WRITE(MDEBUG,*)'SDPM  : FRACTN=',SNGL(FRACTN),
+     *      'FRCTNO=',SNGL(FRCTNO),'RD=',RD(1)
+          IF     ( RD(1)*SIGAIR .LE. FRACTN ) THEN
+C  INTERACTION WITH NITROGEN
+            LT  = 1
+            TAR = 14.D0
+          ELSEIF ( RD(1)*SIGAIR .LE. FRCTNO ) THEN
+C  INTERACTION WITH OXYGEN
+            LT  = 2
+            TAR = 16.D0
+          ELSE
+C  INTERACTION WITH ARGON
+            LT  = 3
+            TAR = 40.D0
+          ENDIF
+        ENDIF
+C  TREAT NUCLEUS BY VENUS, IF SELECTED AND ENERGY/NUCLEON HIGH ENOUGH
+        IF ( FVENUS .AND. PAMA(ITYPE)*GAMMA .GT. HILOELB*IA ) THEN
+          CALL VENLNK
+          RETURN
+        ENDIF
+ 
+C  TREATMENT OF NUCLEUS-NUCLEUS INTERACTION IN HDPM BY SUPERPOSITION
+C
+C  INDEX CALCULATION 1<I=<56     NUCLEONS IN PROJECTILE
+C                    1<J<I       INTERACTING NUCLEONS
+C                    P(I,I)=1    CUMULATIVE PROBABILITIES
+C                    P(I,J)  ---> P( I*(I-3)*0.5+J+1 )
+C  IZ     IS NUMBER OF PROTONS IN PROJECTILE
+C  LT     IS INDEX FOR TARGET 1 = N, 2 = O, 3 = AR
+C  INACTA IS NUMBER OF INTERACTING NUCLEONS
+C  INACTZ IS NUMBER OF INTERACTING PROTONS
+ 
+C  LOOK, HOW MANY NUCLEONS INTERACT
+        DO 100  J = 1,IA-1
+          INACTA = J
+          INDEX  = IA * (IA-3) * 0.5 + 1 + J
+          P = ( 1.D0 - S45SQ *2.D0 ) * PNOA45(INDEX,LT)
+     *            +( S45SQ - S4530 ) * PNOA30(INDEX,LT)
+     *            +( S45SQ + S4530 ) * PNOA60(INDEX,LT)
+          IF ( RD(2) .LT. P ) GO TO 110
+  100   CONTINUE
+C  ALL NUCLEONS INTERACT  (INACTA EQUAL IA)
+        INACTA = INACTA + 1
+ 
+  110   CONTINUE
+        IANEW  = IA - INACTA
+ 
+C  REMAINING PROJECTILE WITH IANEW NUCLEONS
+        DO 120  L = 2,8
+          SECPAR(L) = CURPAR(L)
+  120   CONTINUE
+ 
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  PROJECTILE NUCLEUS FRAGMENTS COMPLETELY, WRITE SPECTATOR NUCLEONS
+C  ONTO STACK
+        IF ( NFRAGM .EQ. 0 ) THEN
+C  LOOK, HOW MANY PROTONS AND NEUTRONS ARE FORMED
+          IZNEW  = IANEW / 2.15D0 + 0.7D0
+          INEUTR = IANEW - IZNEW
+          INACTZ = MAX( IZ-IZNEW, 0 )
+ 
+          IF ( IZNEW .GT. 0 ) THEN
+C  PROTONS
+            SECPAR(1) = 14.D0
+            DO 300  L = 1,IZNEW
+              CALL TSTACK
+  300       CONTINUE
+          ENDIF
+          IF ( INEUTR .GT. 0 ) THEN
+C  NEUTRONS
+            SECPAR(1) = 13.D0
+            DO 310  L = 1,INEUTR
+              CALL TSTACK
+  310       CONTINUE
+          ENDIF
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  NO FRAGMENTATION, BUT SUCCESSIVE ABRASION OF PROJECTILE NUCLEUS
+        ELSE
+          IF ( DEBUG ) WRITE( MDEBUG,111 ) TAR,INACTA,IANEW
+  111     FORMAT(' SDPM  : TARGET=',F4.0,' INACTA=',I4,' IANEW=',I4)
+ 
+C  ALL NUCLEONS INTERACT, NO RESIDUAL NUCLEUS
+          IF     ( IANEW .EQ. 0 ) THEN
+            INACTZ    = IZ
+            IF ( DEBUG ) WRITE(MDEBUG,554) (CURPAR(I),I=1,9)
+  554       FORMAT (' SDPM  : CURPAR=',1P,9E10.3)
+            KNEW = 0
+ 
+C  REMAINING NUCLEUS IS A NUCLEON
+          ELSEIF ( IANEW .EQ. 1 ) THEN
+            CALL RMMAR( RD,1,1 )
+            IZNEW     = NINT(RD(1))
+            INACTZ    = IZ - IZNEW
+            KNEW      = 13 + IZNEW
+ 
+C  REMAINING NUCLEUS GETS A CHARGE WHICH IS ABOUT HALF THE MASS NUMBER
+          ELSEIF ( IANEW .GT. 1 ) THEN
+            IZNEW = FLOAT(IANEW) / 2.15D0 + 0.7D0
+            INACTZ = MAX( IZ - IZNEW, 0 )
+            KNEW  = IANEW*100 + IZNEW
+ 
+C  REMAINING NUCLEUS DEEXCITES BY EVAPORATION OF NUCLEONS/ALPHA PARTCLS.
+            IF ( NFRAGM .GE. 2 ) THEN
+              JFIN=0
+              CALL VAPOR(IA,KNEW,JFIN,ITYP,PFRX,PFRY)
+              IF ( JFIN .LE. 0 ) GOTO 190
+              KNEW = 0
+              DO  135 J=1,JFIN
+                EA = GAMMA * PAMA(ITYP(J))
+                IF (DEBUG) WRITE (MDEBUG,*)'SDPM  : J,ITYP,EA=',
+     *                                              J,ITYP,SNGL(EA)
+                PTM = EA**2 - PAMA(ITYP(J))**2
+                PT2 = PFRX(J)**2 + PFRY(J)**2
+                IF ( PT2 .GE. PTM ) THEN
+                  IF (DEBUG) WRITE(MDEBUG,*)'SDPM  : PT REJECT ',J
+                  GOTO 135
+                ENDIF
+                IF ( PTM .GT. 0.D0 ) THEN
+                  COSTET = SQRT( 1.D0 - PT2/PTM )
+                ELSE
+                  COSTET = 1.D0
+                ENDIF
+                IF ( PFRX(J) .NE. 0.D0  .OR.  PFRY(J) .NE. 0.D0 ) THEN
+                  PHIV = ATAN2( PFRY(J), PFRX(J) )
+                ELSE
+                  PHIV = 0.D0
+                ENDIF
+                CALL ADDANG( COSTHE,PHI, COSTET,PHIV,
+     *                                           SECPAR(3),SECPAR(4) )
+                IF ( SECPAR(3) .GE. C(29) ) THEN
+                  IF ( J .LT. JFIN ) THEN
+                    SECPAR(1) = ITYP(J)
+                    CALL TSTACK
+                  ELSE
+                    KNEW  = ITYP(JFIN)
+                    IANEW = KNEW/100
+                  ENDIF
+                ELSE
+                  IF (DEBUG) WRITE(MDEBUG,*)'SDPM  : ANGLE REJECT ',J
+                ENDIF
+ 135          CONTINUE
+            ENDIF
+          ENDIF
+ 
+C  REMAINING NUCLEUS: MASS 5 CANNOT BE TREATED IN BOX2
+          IF     ( KNEW/100 .EQ. 5 ) THEN
+            IF ( MOD(KNEW,100) .GE. 3 ) THEN
+C  MASS 5: SPLIT OFF ONE PROTON
+              SECPAR(1) = 14.D0
+              CALL TSTACK
+              KNEW = KNEW - 101
+            ELSE
+C  MASS 5: SPLIT OFF ONE NEUTRON
+              SECPAR(1) = 13.D0
+              CALL TSTACK
+              KNEW = KNEW - 100
+            ENDIF
+ 
+C  REMAINING NUCLEUS: MASS 8 CANNOT BE TREATED IN BOX2
+          ELSEIF ( KNEW/100 .EQ. 8 ) THEN
+            IF     ( MOD(KNEW,100) .GE. 5 ) THEN
+C  MASS 8: SPLIT OFF ONE PROTON
+              SECPAR(1) = 14.D0
+              CALL TSTACK
+              KNEW = KNEW - 101
+            ELSEIF ( MOD(KNEW,100) .LE. 3 ) THEN
+C  MASS 8: SPLIT OFF ONE NEUTRON
+              SECPAR(1) = 13.D0
+              CALL TSTACK
+              KNEW = KNEW - 100
+            ELSE
+C  MASS 8: SPLIT OFF ONE ALPHA PARTICLE
+              SECPAR(1) = 402.D0
+              CALL TSTACK
+              KNEW = KNEW - 402
+            ENDIF
+          ENDIF
+ 
+          IF ( KNEW .GT. 0 ) THEN
+            SECPAR(1) = KNEW
+              CALL TSTACK
+            IF ( DEBUG ) WRITE(MDEBUG,555) (SECPAR(I),I=1,9)
+ 555        FORMAT (' SDPM  : SECPAR=',1P,9E10.3)
+          ENDIF
+        ENDIF
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  HERE THE REACTING NUCLEONS ARE TREATED
+ 190    NPRPRO = INACTZ
+        NNEPRO = INACTA - INACTZ
+ 
+C  TREAT INTERACTING NEUTRONS FROM PROJECTILE
+        IF ( NNEPRO .GE. 1 ) THEN
+          CURPAR(1) = 13.D0
+          ITYPE     = 13
+C  CALCULATE GAMMA, BETA AND ENERGY IN CENTER OF MASS
+          GCM       = SQRT( GAMMA * 0.5D0 + 0.5D0 )
+          ECM       = PAMA(ITYPE) * GCM * 2.D0
+          BETACM    = SQRT( 1.D0 - 1.D0 / GCM**2 )
+          DO 200  LL = 1,NNEPRO
+C  USE GHEISHA IF THE CROSS SECTION HAS BEEN CALCULATED FOR GHEISHA
+            IF (  GHEISH  .AND.  ECM .LE. HILOECM ) THEN
+              ELAB = PAMA(ITYPE) *  GAMMA
+              PLAB = ELAB * BETA
+              EKIN = ELAB - PAMA(ITYPE)
+              SIGAIR = CGHSIG(SNGL(PLAB),SNGL(EKIN),ITYPE)
+              CALL CGHEI
+            ELSE
+C  DETERMINE TYPE OF INTERACTION FOR NUCLEONS AND ANTINUCLEONS
+              IF     ( ECM .GT. CC(4) ) THEN
+C  DUAL PARTON MODEL
+                CALL HDPM
+              ELSEIF ( ECM .GT. CC(3) ) THEN
+C  USE THE INTERACTION ROUTINES OF PKF GRIEDER
+C  2 HEAVY ISOBARS AND ANNIHILATION
+                CALL BOX63
+              ELSEIF ( ECM .GT. CC(2) ) THEN
+C  1 HEAVY ISOBAR + NUCLEON AND ANNIHILATION
+                CALL BOX62
+              ELSEIF ( ECM .GT. CC(1) ) THEN
+C  1 LIGHT ISOBAR + NUCLEON AND ANNIHILATION
+                CALL BOX61
+              ELSE
+C  ELASTIC SCATTERING AND ANNIHILATION
+                CALL BOX60
+              ENDIF
+            ENDIF
+ 200      CONTINUE
+        ENDIF
+ 
+C  TREAT INTERACTING PROTONS FROM PROJECTILE IN ROUTINE HDPM
+        IF ( NPRPRO .GE. 1 ) THEN
+          CURPAR(1) = 14.D0
+          ITYPE     = 14
+C  CALCULATE GAMMA, BETA AND ENERGY IN CENTER OF MASS
+          GCM       = SQRT( GAMMA * 0.5D0 + 0.5D0 )
+          ECM       = PAMA(ITYPE) * GCM * 2.D0
+          BETACM    = SQRT( 1.D0 - 1.D0 / GCM**2 )
+          DO 210  LL = 1,NPRPRO
+C  USE GHEISHA IF THE CROSS SECTION HAS BEEN CALCULATED FOR GHEISHA
+            IF (  GHEISH  .AND.  ECM .LE. HILOECM ) THEN
+              ELAB = PAMA(ITYPE) *  GAMMA
+              PLAB = ELAB * BETA
+              EKIN = ELAB - PAMA(ITYPE)
+              SIGAIR = CGHSIG(SNGL(PLAB),SNGL(EKIN),ITYPE)
+              CALL CGHEI
+            ELSE
+C  DETERMINE TYPE OF INTERACTION FOR NUCLEONS AND ANTINUCLEONS
+              IF     ( ECM .GT. CC(4) ) THEN
+C  DUAL PARTON MODEL
+                CALL HDPM
+              ELSEIF ( ECM .GT. CC(3) ) THEN
+C  USE THE INTERACTION ROUTINES OF PKF GRIEDER
+C  2 HEAVY ISOBARS AND ANNIHILATION
+                CALL BOX63
+              ELSEIF ( ECM .GT. CC(2) ) THEN
+C  1 HEAVY ISOBAR + NUCLEON AND ANNIHILATION
+                CALL BOX62
+              ELSEIF ( ECM .GT. CC(1) ) THEN
+C  1 LIGHT ISOBAR + NUCLEON AND ANNIHILATION
+                CALL BOX61
+              ELSE
+C  ELASTIC SCATTERING AND ANNIHILATION
+                CALL BOX60
+              ENDIF
+            ENDIF
+ 210      CONTINUE
+        ENDIF
+ 
+C  ALL PARTICLES, INCLUDING THE LEADING ONE, ARE NOW WRITTEN TO STACK
+ 
+      ELSE
+        WRITE(MONIOU,*) 'SDPM  : NOT FORESEEN PARTICLE TYPE=',ITYPE
+        STOP
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/selcor.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/selcor.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/selcor.f	(revision 4308)
@@ -0,0 +1,71 @@
+      SUBROUTINE SELCOR(X,Y)
+ 
+C-----------------------------------------------------------------------
+C  SEL(ECT) COR(E LOCATION)
+C
+C  SELECT A QUASI RANDOM CORE LOCATION
+C  THIS SUBROUTINE IS CALLED FROM INPRM
+C
+C  DESIGN  : J. KNAPP   IK1  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,CEREN2.
+      COMMON /CEREN2/  PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS,CERYOS,
+     *                 NCERX,NCERY,ICERML
+      REAL             PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS,
+     *                 DCERX,DCERY,ACERX,ACERY,
+     *                 XCMAX,YCMAX,EPSX,EPSY,
+     *                 DCERXI,DCERYI,FCERX,FCERY,
+     *                 XSCATT,YSCATT,CERXOS(20),CERYOS(20)
+      INTEGER          NCERX,NCERY,ICERML
+*KEND.
+ 
+      REAL    RD(2),X,Y
+      LOGICAL FIRST
+      SAVE    FIRST
+      DATA    FIRST /.TRUE./
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'SELCOR:'
+ 
+C  INITIALIZE SOBOL NUMBER GENERATOR
+      IF ( FIRST ) THEN
+        FIRST = .FALSE.
+        CALL SOBSEQ(-2,RD)
+      ENDIF
+C  TAKE A PAIR OF QUASI RANDOM NUMBERS
+      CALL SOBSEQ(2,RD)
+      X = XSCATT * (2.*RD(1)-1.)
+      Y = YSCATT * (2.*RD(2)-1.)
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*)'SELCOR: CORE LOCATION X=',X,' Y=',Y
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/shower.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/shower.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/shower.f	(revision 4308)
@@ -0,0 +1,85 @@
+      SUBROUTINE SHOWER
+C
+C*********************************************************************
+C  DESIGN  : D. HECK   IK3  FZK KARLSRUHE
+C  DATE    : AUG  11, 1988
+C*********************************************************************
+C  THIS ROUTINE LOOKS, WHAT IS ON TOP OF STACK, AND CALLS THE
+C  APPROPRIATE ROUTINE TO TREAT THIS PARTICLE.
+C*********************************************************************
+      COMMON/MISC/KMPI,KMPO,DUNIT,NOSCAT,MED(6),RHOR(6),IRAYLR(6)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+C***  TAKE FIRST PARTICLE IN STACK
+      NP=1
+      IF((DEBUG))CALL AUSGB2
+251   CONTINUE
+C ***  DECIDE WHAT IS ON TOP OF STACK
+261    CONTINUE
+C  ***  JUMP TO PARTICLE IN QUESTION
+C  ***    THE FOLLOWING PARTICLE IDENTIFICATION IS MADE BY THE
+C  ***    VALUE OF IQ(NP) (ACCORDING TO PROGRAM 'GEANT')
+C  ***    IQ    =  1         PHOTON
+C  ***          =  2         POSITRON E (+)
+C  ***          =  3         ELECTRON E (-)
+C  ***          =  5         POSITIVE MUON (+)
+C  ***          =  6         NEGATIVE MUON (-)
+C  ***          =  7         NEUTRAL  PION (0)
+C  ***          =  8         POSITIVE PION (+)
+C  ***          =  9         NEGATIVE PION (-)
+C  ***    IF IQ =  OTHER VALUE, JUMP TO ERROR MESSAGE
+        GO TO(270,280,280,290, 300,300,300,300,300) (IQ(NP))
+C  ***  IQ OUT OF RANGE?
+290     WRITE(KMPO,320) IQ(NP)
+320     FORMAT(' SHOWER: PARTICLE TYPE ',I5,' NOT IDENTIFIED')
+        CALL AUSGB2
+        NP=NP-1
+        GO TO262
+300     CALL MPPROP
+        GO TO262
+270     CALL PHOTON(IRCODE)
+C  ***  PHOTON DISCARDED ?
+        IF((IRCODE.EQ.2))GO TO262
+        IF((IQ(NP).LT.2 .OR. IQ(NP).GT.3))GO TO261
+280     CALL ELECTR(IRCODE)
+C  ***  ELECTRON DISCARDED ?
+        IF((IRCODE.EQ.2))GO TO262
+        IF((IQ(NP).EQ.1))GO TO 270
+C  ***  LOOP BACK UP TO PARTICLE SELECTION
+       GO TO 261
+262    CONTINUE
+C ***  CHECK TO SEE IF ANYTHING LEFT ON STACK
+C ***  NOTHING ON STACK, SO JUMP OUT OF LOOP
+       IF((NP.LE.0))GO TO252
+      GO TO 251
+252   CONTINUE
+C***  TOP STACK LOOP END
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/single.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/single.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/single.f	(revision 4308)
@@ -0,0 +1,165 @@
+      SUBROUTINE SINGLE( E,KIND,AMASS,ASMASS )
+ 
+C-----------------------------------------------------------------------
+C  SINGLE (PARTICLE)
+C
+C  NUCLEON, ANTINUCLEON, PION OR KAON INITIATED
+C  HANDLES SINGLE PARTICLE CASE
+C  THIS SUBROUTINE IS CALLED FROM MANY BOX ROUTINES
+C  ARGUMENTS:
+C   E      = AVAILABLE ENERGY IN CM
+C   KIND   = 1  BACKWARD PARTICLE
+C          = 0  FORWARD  PARTICLE
+C   AMASS  = MASS OF SINGLE PARTICLE
+C   ASMASS = MASS TO BE LEFT OVER FOR OTHER PARTICLES
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,ELASTY.
+      COMMON /ELASTY/  ELAST,IELIS,IELHM,IELNU,IELPI
+      DOUBLE PRECISION ELAST
+      INTEGER          IELIS(20),IELHM(20),IELNU(20),IELPI(20)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,VKIN.
+      COMMON /VKIN/    BETACM
+      DOUBLE PRECISION BETACM
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,201)E,KIND,AMASS,ASMASS
+ 201  FORMAT(' SINGLE: E,KIND,AMASS,ASMASS=',1P,E10.4,I3,2E10.4)
+ 
+      IF ( KIND .NE. 0 ) GOTO 100
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  FORWARD PARTICLE
+C  NUCLEON, ANTINUCLEON, PION, OR KAON
+C  PIONS AND / OR KAONS ARE ALWAYS FORWARD
+ 
+      GFCM   = ( E**2 + AMASS**2 - ASMASS**2 ) * 0.5D0 / (E*AMASS)
+      GFCM   = MAX( 1.D0, GFCM )
+      BEFCM  = SQRT( GFCM**2 - 1.D0 ) / GFCM
+      GFLAB  = GCM * GFCM * ( 1.D0 + BETACM * BEFCM )
+      PT     = PTRANS(DUMMY)
+      PLLAB2 = MAX( 1.D-6, AMASS**2*(GFLAB**2-1.D0) )
+      CTHETA = SQRT( PLLAB2 / (PT**2+PLLAB2) )
+      IF ( CTHETA .LT. C(27) ) GOTO 3
+      CALL RMMAR( RD,2,1 )
+      CALL ADDANG( COSTHE,PHI, CTHETA,RD(1)*PI2, SECPAR(3),SECPAR(4) )
+      IF ( SECPAR(3) .LT. C(29) ) GOTO 3
+ 
+C  CHARGE ASSIGNMENT
+      IF ( ITYPE .EQ. 10  .OR.  ITYPE .EQ. 11  .OR.
+     *     ITYPE .EQ. 12  .OR.  ITYPE .EQ. 16      ) THEN
+        SECPAR(1) = CURPAR(1)
+      ELSE
+        IF ( RD(2) .LT. 0.5 ) THEN
+          IADD = 1
+        ELSE
+          IADD = 0
+        ENDIF
+        IF     ( ITYPE .EQ. 13  .OR.  ITYPE .EQ. 14 ) THEN
+          SECPAR(1) = 13 + IADD
+        ELSEIF ( ITYPE .EQ.  8  .OR.  ITYPE .EQ.  9 ) THEN
+          SECPAR(1) =  8 + IADD
+        ELSEIF ( ITYPE .EQ. 15  .OR.  ITYPE .EQ. 25 ) THEN
+          SECPAR(1) = 15 + IADD * 10
+        ENDIF
+      ENDIF
+      SECPAR(2) = GFLAB
+      DO  1  J = 5,8
+        SECPAR(J) = CURPAR(J)
+    1 CONTINUE
+      CALL TSTACK
+ 
+    3 CONTINUE
+ 
+C  STATISTICS ON ELASTICITY
+      IN = 1.D0 + SECPAR(2) / GAMMA * 20.D0
+      IN = MIN( IN, 20 )
+      IF ( ITYPE .EQ. 13  .OR.  ITYPE .EQ. 14  .OR.
+     *     ITYPE .EQ. 15  .OR.  ITYPE .EQ. 25      ) THEN
+        IELNU(IN) = IELNU(IN) + 1
+      ELSE
+        IELPI(IN) = IELPI(IN)  + 1
+      ENDIF
+      RETURN
+ 
+C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+C  RECOIL PARTICLE, NUCLEON ONLY
+C  FROM SIMPLE RECOIL SPECTRUM COMPUTED
+  100 CONTINUE
+      HELP   = MIN( C(10), GAMMA*0.5D0 )
+      CALL RMMAR( RD,3,1 )
+      GRLAB  = RD(1)*(HELP-1.D0)+ 1.D0
+      PT     = PTRANS(DUMMY)
+      PLLAB2 = MAX( 1.D-6, PAMA(14)**2*(GRLAB**2-1.D0) )
+      CTHETA = SQRT( PLLAB2 / (PT**2+PLLAB2) )
+      IF ( CTHETA .LT. C(27) ) RETURN
+      CALL ADDANG( COSTHE,PHI, CTHETA,RD(2)*PI2, SECPAR(3),SECPAR(4) )
+      IF ( SECPAR(3) .LT. C(29) ) RETURN
+      SECPAR(2)=GRLAB
+ 
+C  CHARGE ASSIGNEMENT
+      IF ( RD(3) .GE. 0.5 ) THEN
+        SECPAR(1) = 14.D0
+      ELSE
+        SECPAR(1) = 13.D0
+      ENDIF
+ 
+      DO 103  J = 5,8
+        SECPAR(J) = CURPAR(J)
+  103 CONTINUE
+      CALL TSTACK
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/sobseq.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/sobseq.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/sobseq.f	(revision 4308)
@@ -0,0 +1,56 @@
+      SUBROUTINE SOBSEQ(N,X)
+ 
+C-----------------------------------------------------------------------
+C  SOB(OL) SEQ(UENCE)
+C
+C  SOBOL QUASI RANDOM NUMBER GENERATOR
+C  REFERENCE : NUMERICAL RECIPES, W.H. PRESS ET AL.,
+C              CAMBRIDGE UNIVERSITY PRESS, 1992  ISBN 0 521 43064 X
+C  THIS SUBROUTINE IS CALLED FROM SELCOR
+C-----------------------------------------------------------------------
+ 
+      INTEGER     N,MAXBIT,MAXDIM
+      REAL        X(*),FAC
+      PARAMETER   (MAXBIT=30,MAXDIM=6)
+      INTEGER     I,IM,IN,IPP,J,K,L,IP(MAXDIM),IU(MAXDIM,MAXBIT),
+     *            IV(MAXBIT*MAXDIM),IX(MAXDIM),MDEG(MAXDIM)
+      SAVE        IP,MDEG,IX,IV,IN,FAC
+      EQUIVALENCE (IV,IU)
+      DATA IP /0,1,1,2,1,4/, MDEG /1,2,3,3,4,4/, IX /6*0/
+      DATA IV /6*1,3,1,3,3,1,1,5,7,7,3,3,5,15,11,5,15,13,9,156*0/
+C-----------------------------------------------------------------------
+ 
+      IF (N.LT.0) THEN
+        DO 14 K=1,MAXDIM
+          DO 11 J=1,MDEG(K)
+            IU(K,J)=IU(K,J)*2**(MAXBIT-J)
+ 11       CONTINUE
+          DO 13 J=MDEG(K)+1,MAXBIT
+            IPP=IP(K)
+            I=IU(K,J-MDEG(K))
+            I=IEOR(I,I/2**MDEG(K))
+            DO 12 L=MDEG(K)-1,1,-1
+              IF(IAND(IPP,1).NE.0)I=IEOR(I,IU(K,J-L))
+              IPP=IPP/2
+ 12         CONTINUE
+            IU(K,J)=I
+ 13       CONTINUE
+ 14     CONTINUE
+        FAC=1./2.**MAXBIT
+        IN=0
+      ELSE
+        IM=IN
+        DO 15 J=1,MAXBIT
+          IF(IAND(IM,1).EQ.0)GOTO 1
+          IM=IM/2
+ 15     CONTINUE
+        PAUSE 'MAXBIT TOO SMALL IN SOBSEQ'
+ 1      IM=(J-1)*MAXDIM
+        DO 16 K=1,MIN(N,MAXDIM)
+          IX(K)=IEOR(IX(K),IV(IM+K))
+          X(K)=IX(K)*FAC
+ 16     CONTINUE
+        IN=IN+1
+      ENDIF
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/staend.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/staend.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/staend.f	(revision 4308)
@@ -0,0 +1,114 @@
+      SUBROUTINE STAEND
+ 
+C-----------------------------------------------------------------------
+C  STA(RT) END
+C
+C  SUBROUTINE FOR GETTING THE CONTROL PRINTOUT OF THE CONSTANT ARRAYS
+C  PRINT CONTROL OUTPUT
+C  THIS SUBROUTINE IS CALLED FROM MAIN AND START
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,ANNI.
+      COMMON /ANNI/    CAN,CANN
+      DOUBLE PRECISION CAN(50),CANN(50)
+*KEEP,ATMOS.
+      COMMON /ATMOS/   AATM,BATM,CATM,DATM
+      DOUBLE PRECISION AATM(5),BATM(5),CATM(5),DATM(5)
+*KEEP,EDECAY.
+      COMMON /EDECAY/  CETA
+      DOUBLE PRECISION CETA(5)
+*KEEP,KAONS.
+      COMMON /KAONS/   CKA
+      DOUBLE PRECISION CKA(80)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANGE.
+      COMMON /RANGE/   CC
+      DOUBLE PRECISION CC(20)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STRBAR.
+      COMMON /STRBAR/  CSTRBA
+      DOUBLE PRECISION CSTRBA(11)
+*KEND.
+ 
+      INTEGER I
+C-----------------------------------------------------------------------
+ 
+C  PRINT CONTROL OUTPUT
+      WRITE(MONIOU,103) (C(I),I=1,50)
+  103 FORMAT (//' ',10('='),' CONSTANTS AND PARAMETERS ',43('=')
+     *        //' PHYSICAL CONSTANTS (C)' // (1P,4(E15.8,1X),E15.8) )
+      WRITE(MONIOU,110) (CKA(I),I=1,80)
+  110 FORMAT (//' CONSTANTS FOR KAONS CKA(1) TO CKA(40)'
+     *        // (1P,4(E15.8,1X),E15.8) )
+      WRITE(MONIOU,114) (CETA(I),I=1,5)
+  114 FORMAT (//' CONSTANTS FOR ETAS CETA(1) TO CETA(5)'
+     *        // (1P,4(E15.8,1X),E15.8) )
+      WRITE(MONIOU,115) (CSTRBA(I),I=1,11)
+  115 FORMAT (//' CONSTANTS FOR STRANGE BARYONS CSTRBA(1) TO ',
+     *            'CSTRBA(11)'// (1P,4(E15.8,1X),E15.8) )
+      IF ( .NOT. GHEISH ) THEN
+        WRITE(MONIOU,206) (CAN(I),I=1,30)
+  206   FORMAT (//' ANNIHILATION PARAMETERS, SET 1 (CAN)'
+     *          // (1P,4(E15.8,1X),E15.8) )
+        WRITE(MONIOU,209) (CANN(I),I=1,30)
+  209   FORMAT (//' ANNIHILATION PARAMETERS, SET 2 (CANN)'
+     *          // (1P,4(E15.8,1X),E15.8) )
+        WRITE(MONIOU,60) (CC(I),I=1,12)
+   60   FORMAT (//' THRESHOLD ENERGIES OF INTERACTION INTERVALS IN '
+     *             ,'GEV (CC)'// (1P,4(E15.8,1X),E15.8) )
+      ENDIF
+ 
+      WRITE(MONIOU,303) (AATM(I),BATM(I),CATM(I)*1.E-5,I=1,4),
+     *                    AATM(5),CATM(5)*1.E5
+  303 FORMAT (//' ',10('='),' ATMOSPHERE ', 57('=') /
+     * ' ( US STANDARD ATMOSPHERE PARAMETRIZED BY LINSLEY )'//
+     * ' HEIGHT H IN KM GIVES THICKNESS OF ATMOSPHERE T IN G/CM**2'/1P,
+     * ' H =   0 ...  4 KM ---> T = ',
+     * E12.5,' +',E11.4,' * EXP ( - H /',E11.4,' )'/
+     * ' H =   4 ... 10 KM ---> T = ',
+     * E12.5,' +',E11.4,' * EXP ( - H /',E11.4,' )'/
+     * ' H =  10 ... 40 KM ---> T = ',
+     * E12.5,' +',E11.4,' * EXP ( - H /',E11.4,' )'/
+     * ' H =  40 .. 100 KM ---> T = ',
+     * E12.5,' +',E11.4,' * EXP ( - H /',E11.4,' )'/
+     * ' H = 100 ...    KM ---> T = ',
+     * E12.5,' -',E11.4,' * H ' )
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/stankg.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/stankg.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/stankg.f	(revision 4308)
@@ -0,0 +1,61 @@
+      SUBROUTINE STANKG
+ 
+C-----------------------------------------------------------------------
+C  STA(RT) NKG
+C
+C  INITIALIZE ARRAYS FOR SINGLE SHOWERS NKG CALCULATED VARIABLES
+C  THIS SUBROUTINE IS CALLED FROM MAIN
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,NKGS.
+      COMMON /NKGS/    CZX,CZY,CZXY,CZYX,SAH,SL,ZNE
+      DOUBLE PRECISION CZX(-10:10,2),CZY(-10:10,2),CZXY(-10:10,2),
+     *                 CZYX(-10:10,2),SAH(10),SL(10),ZNE(10)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      INTEGER I,K
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'STANKG:'
+ 
+C  CLEAR ARRAYS FOR AGE PARAMETER CALCULATION FOR EACH SHOWER
+      DO 17  I = 1,10
+        SAH(I) = 0.D0
+        SL (I) = 0.D0
+        ZNE(I) = 0.D0
+  17  CONTINUE
+C  CLEAR LATERAL ELECTRON DISTRIBUTION COUNTERS FOR EACH SHOWER
+      DO 45  K = 1,2
+      DO 45  I = -10,10
+        CZX (I,K) = 0.D0
+        CZY (I,K) = 0.D0
+        CZXY(I,K) = 0.D0
+        CZYX(I,K) = 0.D0
+  45  CONTINUE
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/start.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/start.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/start.f	(revision 4308)
@@ -0,0 +1,682 @@
+      SUBROUTINE START
+ 
+C-----------------------------------------------------------------------
+C  START
+C
+C  PERFORMS INITIALISATIONS AND CHECKS AT THE BEGINNING OF RUN.
+C  CALLS DATAC TO READ IN DATA CARDS.
+C  CHECKS AND INITIALIZES SELECTED HADRONIC INTERACTION MODEL.
+C  THIS SUBROUTINE IS CALLED FROM MAIN
+C
+C  REDESIGN: J. KNAPP   IK1  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,AIR.
+      COMMON /AIR/     COMPOS,PROBTA,AVERAW,AVOGAD
+      DOUBLE PRECISION COMPOS(3),PROBTA(3),AVERAW,AVOGAD
+*KEEP,ANNI.
+      COMMON /ANNI/    CAN,CANN
+      DOUBLE PRECISION CAN(50),CANN(50)
+*KEEP,ATMOS.
+      COMMON /ATMOS/   AATM,BATM,CATM,DATM
+      DOUBLE PRECISION AATM(5),BATM(5),CATM(5),DATM(5)
+*KEEP,ATMOS2.
+      COMMON /ATMOS2/  HLAY,THICKL
+      DOUBLE PRECISION HLAY(5),THICKL(5)
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,DPMFLG.
+      COMMON /DPMFLG/  NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+      INTEGER          NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+*KEEP,EDECAY.
+      COMMON /EDECAY/  CETA
+      DOUBLE PRECISION CETA(5)
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEEP,ETHMAP.
+      COMMON /ETHMAP/  ECTMAP,ELEFT
+      DOUBLE PRECISION ECTMAP,ELEFT
+*KEEP,KAONS.
+      COMMON /KAONS/   CKA
+      DOUBLE PRECISION CKA(80)
+*KEEP,MAGNET.
+      COMMON /MAGNET/  BX,BZ,BVAL,BNORMC,BNORM,COSB,SINB,BLIMIT
+      DOUBLE PRECISION BX,BZ,BVAL,BNORMC
+      REAL             BNORM,COSB,SINB,BLIMIT
+*KEEP,MUMULT.
+      COMMON /MUMULT/  CHC,OMC,FMOLI
+      DOUBLE PRECISION CHC,OMC
+      LOGICAL          FMOLI
+*KEEP,MUPART.
+      COMMON /MUPART/  AMUPAR,BCUT,CMUON,FMUBRM,FMUORG
+      DOUBLE PRECISION AMUPAR(14),BCUT,CMUON(11)
+      LOGICAL          FMUBRM,FMUORG
+*KEEP,NCSNCS.
+      COMMON /NCSNCS/  SIGN30,SIGN45,SIGN60,SIGO30,SIGO45,SIGO60,
+     *                 SIGA30,SIGA45,SIGA60,PNOA30,PNOA45,PNOA60,
+     *                 SIG30A,SIG45A,SIG60A
+      DOUBLE PRECISION SIGN30(56),SIGN45(56),SIGN60(56),
+     *                 SIGO30(56),SIGO45(56),SIGO60(56),
+     *                 SIGA30(56),SIGA45(56),SIGA60(56),
+     *                 PNOA30(1540,3),PNOA45(1540,3),PNOA60(1540,3),
+     *                 SIG30A(56),SIG45A(56),SIG60A(56)
+*KEEP,NKGI.
+      COMMON /NKGI/    SEL,SELLG,STH,ZEL,ZELLG,ZSL,DIST,
+     *                 DISX,DISY,DISXY,DISYX,DLAX,DLAY,DLAXY,DLAYX,
+     *                 OBSATI,RADNKG,RMOL,TLEV,TLEVCM,IALT
+      DOUBLE PRECISION SEL(10),SELLG(10),STH(10),ZEL(10),ZELLG(10),
+     *                 ZSL(10),DIST(10),
+     *                 DISX(-10:10),DISY(-10:10),
+     *                 DISXY(-10:10,2),DISYX(-10:10,2),
+     *                 DLAX (-10:10,2),DLAY (-10:10,2),
+     *                 DLAXY(-10:10,2),DLAYX(-10:10,2),
+     *                 OBSATI(2),RADNKG,RMOL(2),TLEV(10),TLEVCM(10)
+      INTEGER          IALT(2)
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,PRIMSP.
+      COMMON /PRIMSP/  PSLOPE,LLIMIT,ULIMIT,LL,UL,SLEX,ISPEC
+      DOUBLE PRECISION PSLOPE,LLIMIT,ULIMIT,LL,UL,SLEX
+      INTEGER          ISPEC
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RANGE.
+      COMMON /RANGE/   CC
+      DOUBLE PRECISION CC(20)
+*KEEP,RECORD.
+      COMMON /RECORD/  IRECOR
+      INTEGER          IRECOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKF.
+      COMMON /STACKF/  STACK,STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+      INTEGER          MAXSTK
+      PARAMETER        (MAXSTK = 12*340*2)
+      DOUBLE PRECISION STACK(MAXSTK)
+      INTEGER          STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+*KEEP,STRBAR.
+      COMMON /STRBAR/  CSTRBA
+      DOUBLE PRECISION CSTRBA(11)
+*KEEP,VERS.
+      COMMON /VERS/    VERNUM,MVDATE,VERDAT
+      DOUBLE PRECISION VERNUM
+      INTEGER          MVDATE
+      CHARACTER*18     VERDAT
+*KEEP,VENUS.
+      COMMON /VENUS/   ISH0,IVERVN,MTAR99,FVENUS,FVENSG
+      INTEGER          ISH0,IVERVN,MTAR99
+      LOGICAL          FVENUS,FVENSG
+*KEEP,CEREN3.
+      COMMON /CEREN3/  CERCNT,DATAB2,LHCER
+      INTEGER          MAXBF2
+      PARAMETER        (MAXBF2 = 39 * 7)
+      DOUBLE PRECISION CERCNT
+      REAL             DATAB2(MAXBF2)
+      INTEGER          LHCER
+*KEND.
+ 
+      DOUBLE PRECISION COAN,SE,TEMP1,TEMP2,TEMP3,THICK,TTIME,ZE,ZS,ZX
+      INTEGER          I,IA,J,L,N
+      EXTERNAL         THICK
+      CHARACTER*1      MARK
+C-----------------------------------------------------------------------
+ 
+C  SAY HELLO
+      WRITE(MONIOU,112)
+  112 FORMAT(/' ',120('A')//
+     *'   OOO      OOO     OOOO       OOOO    OO   O      O      O   '/
+     *'  O   O    O   O    O    O    O    O   OO   O    O       O O  '/
+     *' O        O     O   O     O   O        OO   O  O        O   O '/
+     *' O        O     O   O    O     OOOO    OO   OO         O     O'/
+     *' O        O     O   OOOO           O   OO   O  O       OOOOOOO'/
+     *'  O   O    O   O    O   O     O    O   OO   O    O     O     O'/
+     *'   OOO      OOO     O     O    OOOO    OO   O      O   O     O'//
+     *' COSMIC RAY SIMULATION FOR KASCADE'///
+     *' A PROGRAM TO SIMULATE EXTENSIVE AIR SHOWERS IN ATMOSPHERE'//
+     *' BASED ON A PROGRAM OF P.K.F. GRIEDER, UNIVERSITY BERN,'
+     *' SWITZERLAND'/
+     *' HDPM MODEL ACCORDING TO J.N. CAPDEVIELLE, COLLEGE DE FRANCE,',
+     *' PARIS, FRANCE'/
+     *' VENUS MODEL ACCORDING TO K. WERNER, UNIVERSITY NANTES, FRANCE'/
+     *' GHEISHA ROUTINES ACCORDING TO H. FESEFELDT, RWTH. AACHEN,'
+     *' GERMANY'/
+     *' EGS4 AND NKG FORMULAS FOR SIMULATION OF EL.MAG. PARTICLES'//)
+ 
+      MARK = '1'
+ 
+      WRITE(MONIOU,912) VERNUM,MARK,VERDAT
+  912 FORMAT(' INSTITUT FUER KERNPHYSIK '/
+     *       ' FORSCHUNGSZENTRUM UND UNIVERSITAET KARLSRUHE'/
+     *       ' POSTFACH 3640'/
+     *       ' D-76021 KARLSRUHE'/
+     *       ' GERMANY'//
+     *       ' IN CASE OF PROBLEMS CONTACT:'/
+     *       '           DIETER HECK             JOHANNES KNAPP'/
+     *       ' E-MAIL:   HECK@IK3.FZK.DE         KNAPP@IK1.FZK.DE'/
+     *       ' FAX:      (49) 7247-82-4075       (49) 7247-82-3548'/
+     *       ' TEL:      (49) 7247-82-3777       (49) 7247-82-3549'//
+     *       ' NUMBER OF VERSION : ',F6.3,A1/
+     *       ' DATE   OF VERSION : ',A18 /)
+ 
+      WRITE(MONIOU,141)
+  141 FORMAT(//' CERENKOV RADIATION IS GENERATED'/
+     *         ' ==============================='//)
+ 
+C  INITIALIZE FIELD WITH PARTICLE MASSES
+      CALL PAMAF
+ 
+ 
+C  READ RUN STEERING DATA CARDS
+      CALL DATAC
+ 
+C  CLEARS BUFFERS FOR HEADER AND FILLS IN PERMANENT INFORMATION
+      DO 889  L = 1,MAXBUF
+        EVTH(L)  = 0.
+        EVTE(L)  = 0.
+        RUNH(L)  = 0.
+        RUNE(L)  = 0.
+        DATAB(L) = 0.
+        DATAB2(L) = 0.
+  889 CONTINUE
+ 
+ 
+C  PERMANENT INFORMATION
+C  CHARACTER STRINGS
+      CRUNH = 'RUNH'
+      CRUNE = 'RUNE'
+      CEVTH = 'EVTH'
+      CEVTE = 'EVTE'
+ 
+      RUNH(2)  = NRRUN
+      RUNE(2)  = NRRUN
+      EVTH(44) = NRRUN
+ 
+C  DATE OF RUN
+      WRITE(MONIOU,101)
+ 101  FORMAT(//' ',10('='),' START OF RUN ',55('='))
+      CALL PRTIME(TTIME)
+      RUNH(3)  = TTIME
+      EVTH(45) = TTIME
+ 
+C  VERSION OF PROGRAM
+      RUNH(4)  = VERNUM
+      EVTH(46) = VERNUM
+ 
+C-----------------------------------------------------------------------
+C  INITIALISATION FOR RANDOM NUMBER GENERATOR
+      IF ( FEGS  .AND.  NSEQ .LT. 2 ) NSEQ = 2
+C  CERENKOV SELECTION DEMANDS ALWAYS EGS CALCULATION
+      FEGS = .TRUE.
+C  IN CASE OF CERENKOV CALCULATIONS THE 3. RANDOM SEQUENCE IS NEEDED
+      IF ( NSEQ .LT. 3 ) NSEQ = 3
+      DO 281  I = 1,NSEQ
+        IF ( .NOT. DEBUG   .AND.  .NOT. DEBDEL   .AND.
+     *      (ISEED(2,I) .GT. 1000  .OR.  ISEED(3,I) .GT. 0) ) THEN
+          WRITE(MONIOU,2811)  I
+2811      FORMAT(/' #########################################'/
+     *            ' ##  IMPROPER INITIALIZATION OF RANDOM  ##'/
+     *            ' ##   NUMBER GENERATOR SEQUENCE ',I6,'  ##'/
+     *            ' ##     IS EXTREMELY TIME CONSUMING     ##'/
+     *            ' ##       PLEASE READ THE MANUALS       ##'/
+     *            ' #########################################'/)
+        ENDIF
+        CALL RMMAQ( ISEED(1,I), I, 'S' )
+  281 CONTINUE
+      KNOR = .TRUE.
+ 
+      WRITE(MONIOU,158) (L,(ISEED(J,L),J=1,3),L=1,NSEQ)
+  158 FORMAT (/' RANDOM NUMBER GENERATOR AT BEGIN OF RUN :'/
+     *        (' SEQUENCE = ',I2,'  SEED = ',I9,'  CALLS = ',I9,
+     *         '  BILLIONS = ',I9))
+ 
+C-----------------------------------------------------------------------
+C  READ CROSS SECTIONS AND PROBABILITIES FOR NUCLEUS-NUCLEUS COLLISIONS
+      OPEN(UNIT=NUCNUC,FILE='NUCNUCCS',STATUS='OLD')
+      READ(NUCNUC,500) SIGN30,SIGN45,SIGN60,SIGO30,SIGO45,SIGO60,
+     *                 SIGA30,SIGA45,SIGA60
+      READ(NUCNUC,500) (PNOA30(I,1),I=1,1540),(PNOA45(I,1),I=1,1540),
+     *                 (PNOA60(I,1),I=1,1540),(PNOA30(I,2),I=1,1540),
+     *                 (PNOA45(I,2),I=1,1540),(PNOA60(I,2),I=1,1540),
+     *                 (PNOA30(I,3),I=1,1540),(PNOA45(I,3),I=1,1540),
+     *                 (PNOA60(I,3),I=1,1540)
+ 500  FORMAT( 5E16.10 )
+      CLOSE(UNIT=NUCNUC)
+ 
+C  INELASTIC CROSS SECTIONS FOR PROJECTICLE WITH MASS NUMBER IA
+      DO 501  IA = 1,56
+        SIG30A(IA) = COMPOS(1)*SIGN30(IA) + COMPOS(2)*SIGO30(IA)
+     *                                    + COMPOS(3)*SIGA30(IA)
+        SIG45A(IA) = COMPOS(1)*SIGN45(IA) + COMPOS(2)*SIGO45(IA)
+     *                                    + COMPOS(3)*SIGA45(IA)
+        SIG60A(IA) = COMPOS(1)*SIGN60(IA) + COMPOS(2)*SIGO60(IA)
+     *                                    + COMPOS(3)*SIGA60(IA)
+ 
+        IF (DEBUG) WRITE(MDEBUG,544) IA,SIG30A(IA),SIG45A(IA),SIG60A(IA)
+ 544    FORMAT(' START : CROSS SECTIONS A-AIR : A=',I2,1P,3E14.6)
+ 501  CONTINUE
+ 
+      WRITE(MONIOU,503)
+ 503  FORMAT (//' ',10('='),' INTERACTION MODELS ',49('='))
+C  HIGH ENERGY HADRONIC INTERACTION MODEL
+      IF ( FVENUS ) THEN
+        WRITE(MONIOU,*) 'VENUS TREATS HIGH ENERGY HADRONIC INTERACTIONS'
+        CALL VENINI
+        IF ( .NOT. GHEISH ) THEN
+          GHEISH = .TRUE.
+          WRITE(MONIOU,*)'GHEISHA OPTION NOT SELECTED, BUT SWITCHED ON'
+        ENDIF
+        IF     ( NFRAGM .EQ. 0 ) THEN
+          WRITE(MONIOU,*)
+     *    ' TOTAL FRAGMENTATION OF PRIMARY NUCLEUS IN FIRST INTERACTION'
+        ELSEIF ( NFRAGM .EQ. 1 ) THEN
+          WRITE(MONIOU,*)
+     *      ' NO FRAGMENTATION, NO EVAPORATION OF REMAINDER'
+        ELSEIF ( NFRAGM .EQ. 2 ) THEN
+          WRITE(MONIOU,1504)
+        ELSEIF ( NFRAGM .EQ. 3 ) THEN
+          WRITE(MONIOU,1505)
+        ELSE
+          NFRAGM = 4
+          WRITE(MONIOU,1507)
+        ENDIF
+        WRITE(MONIOU,*)
+      ELSE
+        WRITE(MONIOU,1506)
+      ENDIF
+1506  FORMAT(' HDPM ROUTINES TREAT HIGH ENERGY HADRONIC INTERACTIONS')
+ 
+ 
+      IF ( .NOT. FVENUS ) THEN
+C  INPUT FLAGS FOR HDPM OPTIONS
+      WRITE(MONIOU,*)'HDPM GENERATOR SPECIFICATIONS ARE:'
+      IF ( NFLAIN .EQ. 0 ) THEN
+        WRITE(MONIOU,*) ' RANDOM NUMBER OF INTERACTIONS IN AIR TARGET'
+        IF ( NFLDIF .EQ. 0 ) THEN
+          WRITE(MONIOU,*) ' NO DIFFRACTIVE SECOND INTERACTIONS'
+        ELSE
+          WRITE(MONIOU,*) ' DIFFRACTIVE SECOND INTERACTIONS'
+        ENDIF
+      ELSE
+        WRITE(MONIOU,*) ' FIXED NUMBER OF INTERACTIONS IN AIR TARGET'
+      ENDIF
+      IF ( NFLPI0 .EQ. 0 ) THEN
+        WRITE(MONIOU,*) ' RAPIDITY OF PI0 ACCORDING TO COLLIDER DATA'
+      ELSE
+        WRITE(MONIOU,*) ' RAPIDITY OF PI0 SAME AS THAT OF CHARGED'
+      ENDIF
+      IF ( NFLPIF .EQ. 0 ) THEN
+        WRITE(MONIOU,*) ' NO FLUCTUATIONS OF NUMBER OF PI0'
+      ELSE
+        WRITE(MONIOU,*)' FLUCTUATIONS OF NUMBER OF PI0 AS MEASURED ',
+     *         'AT THE COLLIDER'
+      ENDIF
+      IF ( NFLCHE .EQ. 0 ) THEN
+        WRITE(MONIOU,*) ' CHARGE EXCHANGE INTERACTION POSSIBLE '
+      ELSE
+        WRITE(MONIOU,*) ' NO CHARGE EXCHANGE INTERACTION POSSIBLE '
+      ENDIF
+      IF     ( NFRAGM .EQ. 0 ) THEN
+        WRITE(MONIOU,*)' TOTAL FRAGMENTION OF PRIMARY NUCLEUS IN ',
+     *          'FIRST INTERACTION'
+      ELSEIF ( NFRAGM .EQ. 1 ) THEN
+        WRITE(MONIOU,*) ' NO FRAGMENTATION, NO EVAPORATION OF REMAINDER'
+      ELSEIF ( NFRAGM .EQ. 2 ) THEN
+        WRITE(MONIOU,1504)
+1504    FORMAT('  NO FRAGMENTATION, EVAPORATION OF REMAINDER ',
+     *           ' (PT AFTER JACEE)')
+      ELSEIF ( NFRAGM .EQ. 3 ) THEN
+        WRITE(MONIOU,1505)
+1505    FORMAT('  NO FRAGMENTATION, EVAPORATION OF REMAINDER ',
+     *           ' (PT AFTER GOLDHABER)')
+      ELSE
+        NFRAGM = 4
+        WRITE(MONIOU,1507)
+1507    FORMAT('  NO FRAGMENTATION, EVAPORATION OF REMAINDER ',
+     *           ' (WITH PT = 0.)')
+      ENDIF
+      ENDIF
+      WRITE(MONIOU,*)
+ 
+C  LOW ENERGY HADRONIC INTERACTION MODEL
+      IF ( GHEISH ) THEN
+        WRITE(MONIOU,*) 'GHEISHA TREATS LOW ENERGY HADRONIC ',
+     *                  'INTERACTIONS'
+        CALL CGHINI
+      ELSE
+        WRITE(MONIOU,*) 'ISOBAR ROUTINES TREAT LOW ENERGY HADRONIC ',
+     *                  'INTERACTIONS'
+        HILOELB = 53.D0
+      ENDIF
+ 
+C  WRITE HADRONIC STEERING FLAGS TO RUNHEADER
+      RUNH(270) = NFLAIN
+      RUNH(271) = NFLDIF
+      RUNH(272) = NFLPI0 + 100. * NFLPIF
+      RUNH(273) = NFLCHE + 100. * NFRAGM
+ 
+      EVTH(65)  = NFLAIN
+      EVTH(66)  = NFLDIF
+      EVTH(67)  = NFLPI0
+      EVTH(68)  = NFLPIF
+      EVTH(69)  = NFLCHE
+      EVTH(70)  = NFRAGM
+ 
+      HILOECM = SQRT(2.D0*PAMA(14)*(PAMA(14) + HILOELB))
+      WRITE(MONIOU,*) 'START: HIGH ENERGY INTERACTION MODEL USED ABOVE'
+      WRITE(MONIOU,*)  '     ',HILOELB,' GEV LAB ENERGY   OR'
+      WRITE(MONIOU,*)  '     ',HILOECM,' GEV CM ENERGY'
+ 
+C  INPUT STEERING FLAGS FOR ELECTROMAGNETIC PART
+      WRITE(MONIOU,*)
+      IF ( FNKG ) THEN
+        WRITE(MONIOU,*)'ELECTROMAGNETIC COMPONENT SIMULATED WITH NKG'
+        IF ( ULIMIT .GT. 2.D7 ) THEN
+          WRITE(MONIOU,*)'#############################################'
+          WRITE(MONIOU,*)'#  W A R N I N G  NKG IS WITHOUT LPM EFFECT #'
+          WRITE(MONIOU,*)'#############################################'
+        ENDIF
+        WRITE(MONIOU,*)
+      ENDIF
+      IF ( FEGS ) THEN
+        WRITE(MONIOU,*)'ELECTROMAGNETIC COMPONENT SIMULATED WITH EGS4'
+        WRITE(MONIOU,*)
+      ENDIF
+      IF ( .NOT. (FNKG .OR. FEGS) ) WRITE(MONIOU,*)
+     *              'ELECTROMAGNETIC COMPONENT IS NOT SIMULATED'
+      IF ( FEGS ) THEN
+        IF ( STEPFC .GT. 10.  .OR.  STEPFC .LE. 0. ) THEN
+          WRITE(MONIOU,*)'STEP LENGTH FACTOR FOR ELECTRON MULTIPLE ',
+     *       'SCATTERING =',STEPFC,' NOT CORRECT'
+          WRITE(MONIOU,*)'PLEASE READ THE MANUALS'
+          STOP
+        ENDIF
+        IF ( STEPFC .LT. 10. ) WRITE(MONIOU,*)'STEP LENGTH ',
+     *            'FACTOR FOR ELECTRON MULTIPLE SCATTERING =',STEPFC
+C  INITIALIZE EGS4 PACKAGE
+        CALL EGSINI
+        IF ( ULIMIT .GT. 2.D7 ) THEN
+          WRITE(MONIOU,*)'#############################################'
+          WRITE(MONIOU,*)'#  W A R N I N G  EGS IS WITHOUT LPM EFFECT #'
+          WRITE(MONIOU,*)'#############################################'
+        ENDIF
+      ENDIF
+C  WRITE STEERING FLAGS FOR ELECTROMAGNETIC PART AS REAL TO HEADER
+      IF ( FNKG ) THEN
+        RUNH(20) = 1.
+        EVTH(74) = 1.
+      ELSE
+        RUNH(20) = 0.
+        EVTH(74) = 0.
+      ENDIF
+      IF ( FEGS ) THEN
+        RUNH(19) = 1.
+        EVTH(73) = 1.
+      ELSE
+        RUNH(19) = 0.
+        EVTH(73) = 0.
+      ENDIF
+ 
+      EVTH(95) = STEPFC
+ 
+C  PROGRAM CONFIGURATIONS FOR EVENT HEADER
+      IF ( GHEISH ) THEN
+        EVTH(75) = 1.
+      ELSE
+        EVTH(75) = 0.
+      ENDIF
+      IF ( FVENUS ) THEN
+        EVTH(76) = 1.
+      ELSE
+        EVTH(76) = 0.
+      ENDIF
+      EVTH(139) = 0.
+      EVTH(140) = 0.
+      EVTH(141) = 0.
+      EVTH(142) = 0.
+      EVTH(143) = 0.
+      EVTH(144) = 0.
+      EVTH(145) = 0.
+      EVTH(77) = 1.
+      EVTH(78) = 0.
+      EVTH(79) = 0.
+      EVTH(80) = 3.
+ 
+C-----------------------------------------------------------------------
+C  BEGIN OF TAPE FOR IBM,  FOR TRANSPUTER SEE BEGIN OF EVT
+ 
+C-----------------------------------------------------------------------
+C  PHYSICAL CONSTANTS
+      ENEPER  = EXP(1.D0)
+      C(6)    = ( PAMA(5) / PAMA(11) )**2
+      C(7)    = ( PAMA(5) / PAMA(8) )**2
+      C(8)    = ( PAMA(5)**2 + PAMA(2)**2 ) * 0.5D0 / PAMA(5)
+      C(20)   = 10.D0 * C(21)
+      C(27)   = COS( C(26) )
+      C(29)   = COS( C(28) )
+      C(44)   = MAX( PAMA(8)+C(4), PAMA(14)+C(5) )
+      C(45)   = PAMA(8) * PAMA(14) * 2.D0
+      C(46)   = PAMA(8)**2 + PAMA(14)**2
+      C(48)   = (PAMA(8)**2 + PAMA(5)**2) / (2.D0*PAMA(8)*PAMA(5))
+      C(49)   = SQRT(C(48)**2 - 1.D0) / C(48)
+ 
+      CKA(13) = 2.D0 * PAMA(11) * PAMA(14)
+      CKA(14) = PAMA(11)**2 + PAMA(14)**2
+      CKA(17) = SQRT( ( (PAMA(11)**2 + PAMA(5)**2)
+     *          / (2.D0*PAMA(11)) )**2 - PAMA(5)**2 )
+      CKA(18) = SQRT( ( (PAMA(11)**2 + PAMA(8)**2 - PAMA(7)**2)
+     *          / (2.D0*PAMA(11)) )**2 - PAMA(8)**2 )
+      CKA(22) = MAX( C(5)+PAMA(14), PAMA(11)+C(4) )
+      CKA(28) = SQRT(1.D0 + CKA(17)**2/PAMA(5)**2)
+      CKA(29) = SQRT(1.D0 - 1.D0/CKA(28)**2)
+      CKA(30) = SQRT(1.D0 + CKA(18)**2/PAMA(8)**2)
+      CKA(31) = SQRT(1.D0 - 1.D0/CKA(30)**2)
+      CKA(41) = PAMA(16)
+      CKA(42) = (PAMA(11)**2 + PAMA(7)**2 - PAMA(8)**2) /
+     *          (2.D0*PAMA(11)*PAMA(7))
+      CKA(43) = CKA(41) / (2.D0*PAMA(7))
+      CKA(44) = SQRT(1.D0 - 1.D0/CKA(43)**2)
+      CKA(45) = CKA(41) / (2.D0*PAMA(8))
+      CKA(46) = SQRT(1.D0 - 1.D0/CKA(45)**2)
+ 
+C  SET CONSTANTS FOR MUON BREMSSTRAHLUNG
+      CMUON(3)  =  7.D0**OB3
+      CMUON(6)  =  8.D0**OB3
+      CMUON(9)  = 18.D0**OB3
+      CMUON(1)  = LOG( 189.D0 * PAMA(5) / (CMUON(3)*PAMA(2)) )
+      CMUON(4)  = LOG( 189.D0 * PAMA(5) / (CMUON(6)*PAMA(2)) )
+      CMUON(7)  = LOG( 189.D0 * PAMA(5) / (CMUON(9)*PAMA(2)) )
+     *                   + LOG( TB3/CMUON(9) )
+      SE        = SQRT(EXP(1.D0))
+      CMUON(2)  = 189.D0 * SE*PAMA(5)**2/(2.D0*PAMA(2)*CMUON(3))
+      CMUON(5)  = 189.D0 * SE*PAMA(5)**2/(2.D0*PAMA(2)*CMUON(6))
+      CMUON(8)  = 189.D0 * SE*PAMA(5)**2/(2.D0*PAMA(2)*CMUON(9))
+      CMUON(10) = 0.75D0 * PAMA(5) * SE
+      CMUON(3)  = CMUON(3) * CMUON(10)
+      CMUON(6)  = CMUON(6) * CMUON(10)
+      CMUON(9)  = CMUON(9) * CMUON(10)
+      CMUON(11) = LOG( BCUT/PAMA(5) )
+ 
+      DO  1  I = 1,50
+        CANN(I) = 0.D0
+    1 CONTINUE
+      COAN = 0.D0
+      DO 25  N = 1,12
+        COAN    = COAN + CAN(N)
+        CANN(N) = COAN
+   25 CONTINUE
+      COAN = 0.D0
+      DO 26  N = 13,26
+        COAN    = COAN + CAN(N)
+        CANN(N) = COAN
+   26 CONTINUE
+ 
+C-----------------------------------------------------------------------
+C  INITIALIZE CONSTANTS FOR MUON MULTIPLE SCATTERING (MOLIERE)
+C  SEE SUBROUTINE GMOLI OF GEANT321 (CERN)
+      IF (FMOLI) THEN
+        TEMP1 = COMPOS(1) *  7.D0 *  8.D0 / 14.D0
+        TEMP2 = COMPOS(2) *  8.D0 *  9.D0 / 16.D0
+        TEMP3 = COMPOS(3) * 18.D0 * 19.D0 / 40.D0
+        ZS  = TEMP1 + TEMP2 + TEMP3
+        ZE  = -TB3*(TEMP1*LOG(7.D0) +TEMP2*LOG(8.D0) +TEMP3*LOG(18.D0))
+        ZX  =  TEMP1*LOG(1.D0 + 3.34D0 * ( 7.D0/C(50))**2)
+     *        +TEMP2*LOG(1.D0 + 3.34D0 * ( 8.D0/C(50))**2)
+     *        +TEMP3*LOG(1.D0 + 3.34D0 * (18.D0/C(50))**2)
+C  NOTE: CHC IS DEFINED DIFFERENT FROM GEANT WITHOUT DENSITY
+        CHC = 0.39612D-3 * SQRT(ZS)
+C  NOTE: OMC IS DEFINED DIFFERENT FROM GEANT WITHOUT DENSITY
+        OMC = 6702.33D0 * ZS * EXP( (ZE-ZX)/ZS )
+        EVTH(146) = 1.
+      ELSE
+        EVTH(146) = 0.
+      ENDIF
+ 
+C-----------------------------------------------------------------------
+C  TEST ON INPUT VALUES
+ 
+C  PRINT CONTROL OUTPUT
+      IF ( CC(1)         .GE. CC(2)     .OR.
+     *     CC(2)         .GE. CC(3)     .OR.
+     *     CC(3)         .GE. CC(4)     .OR.
+     *     CC(5)         .GE. CC(6)     .OR.
+     *     CC(6)         .GE. CC(7)     .OR.
+     *     CC(7)         .GE. CC(8)     .OR.
+     *     CC(9)         .GE. CC(10)    .OR.
+     *     CC(10)        .GE. CC(11)    .OR.
+     *     CC(11)        .GE. CC(12)    .OR.
+     *     PAMA(14)+C(3) .GT. CC(1)     .OR.
+     *     PAMA(14)+C(4) .GT. CC(2)     .OR.
+     *     C(4)*2.       .GT. CC(3)     .OR.
+     *     C(3)+PAMA(8)  .GT. CC(5)     .OR.
+     *     C(44)         .GT. CC(6)     .OR.
+     *     C(4)+C(5)     .GT. CC(7)     .OR.
+     *     PAMA(14)+C(4) .GE. C(4)*2.   .OR.
+     *     C(44)         .GE. C(4)+C(5)        ) THEN
+        WRITE(MONIOU,106)
+  106   FORMAT (' ERROR OR INCOMPATIBILITY IN CONSTANTS')
+C  PRINT CONTROL OUTPUT
+        WRITE(MONIOU,103) (C(I),I=1,50)
+  103   FORMAT (//' ',10('='),' CONSTANTS AND PARAMETERS ',43('=')
+     *          //' PHYSICAL CONSTANTS (C)' // (1P,4(E15.8,1X),E15.8) )
+        WRITE(MONIOU,110) (CKA(I),I=1,80)
+  110   FORMAT (//' CONSTANTS FOR KAONS CKA(1) TO CKA(40)'
+     *          // (1P,4(E15.8,1X),E15.8) )
+        WRITE(MONIOU,114) (CETA(I),I=1,5)
+  114   FORMAT (//' CONSTANTS FOR ETAS CETA(1) TO CETA(5)'
+     *          // (1P,4(E15.8,1X),E15.8) )
+        WRITE(MONIOU,115) (CSTRBA(I),I=1,11)
+  115   FORMAT (//' CONSTANTS FOR STRANGE BARYONS CSTRBA(1) TO ',
+     *            'CSTRBA(11)'// (1P,4(E15.8,1X),E15.8) )
+        WRITE(MONIOU,206) (CAN(I),I=1,30)
+  206   FORMAT (//' ANNIHILATION PARAMETERS, SET 1 (CAN)'
+     *          // (1P,4(E15.8,1X),E15.8) )
+        WRITE(MONIOU,209) (CANN(I),I=1,30)
+  209   FORMAT (//' ANNIHILATION PARAMETERS, SET 2 (CANN)'
+     *          // (1P,4(E15.8,1X),E15.8) )
+        WRITE(MONIOU,60) (CC(I),I=1,12)
+   60   FORMAT (//' THRESHOLD ENERGIES OF INTERACTION INTERVALS IN GEV',
+     *          ' (CC)'// (1P,4(E15.8,1X),E15.8) )
+        WRITE(MONIOU,106)
+        STOP
+      ENDIF
+ 
+C  FILL CONSTANTS IN RUN HEADER
+      DO 3001  L = 1,50
+        RUNH(24+L)  = C(L)
+        RUNH(154+L) = CAN(L)
+        RUNH(204+L) = CANN(L)
+ 3001 CONTINUE
+      DO 3002  L = 1,20
+        RUNH(74+L)  = CC(L)
+ 3002 CONTINUE
+      DO 3003  L = 1,40
+        RUNH(94+L)  = CKA(L)
+ 3003 CONTINUE
+      DO 3004  L = 1,5
+        RUNH(134+L)  = CETA(L)
+ 3004 CONTINUE
+      DO 3005  L = 1,11
+        RUNH(139+L)  = CSTRBA(L)
+ 3005 CONTINUE
+      DO 3007  L = 1,5
+        RUNH(254+L) = AATM(L)
+        RUNH(259+L) = BATM(L)
+        RUNH(264+L) = CATM(L)
+        DATM(L)     = 1.D0 / CATM(L)
+ 3007 CONTINUE
+ 
+C  SET LOWER BOUNDARIES OF THE AIR LAYERS
+      HLAY(1)   = 0.D0
+      HLAY(2)   = 4.D5
+      HLAY(3)   = 1.D6
+      HLAY(4)   = 4.D6
+      HLAY(5)   = 1.D7
+C  CALCULATE THICKNESS AT LOWER BOUNDARIES OF AIR LAYERS
+      DO 100 L= 1,5
+        THICKL(L) = THICK(HLAY(L))
+ 100  CONTINUE
+ 
+      CALL STAEND
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/strdec.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/strdec.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/strdec.f	(revision 4308)
@@ -0,0 +1,163 @@
+      SUBROUTINE STRDEC
+ 
+C-----------------------------------------------------------------------
+C  STR(ANGE BARYON) DEC(AY)
+C
+C  ROUTINE TREATES DECAY OF STRANGE BARYONS (LAMBDA, SIGMA, XI, OMEGA)
+C  DECAY WITH FULL KINEMATIC, ENERGY AND MOMENTA CONSERVED
+C  THIS SUBROUTINE IS CALLED FORM NUCINT
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,IRET.
+      COMMON /IRET/    IRET1,IRET2
+      INTEGER          IRET1,IRET2
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STRBAR.
+      COMMON /STRBAR/  CSTRBA
+      DOUBLE PRECISION CSTRBA(11)
+*KEND.
+ 
+      INTEGER  I,J
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,444) (CURPAR(I),I=1,9)
+ 444  FORMAT(' STRDEC: CURPAR=',1P,9E10.3)
+ 
+C  COPY COORDINATES INTO SECPAR
+      DO  1  J = 5,8
+        SECPAR(J) = CURPAR(J)
+   1  CONTINUE
+ 
+      IF     ( ITYPE .EQ. 18 ) THEN
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1) .LT. CSTRBA(5) ) THEN
+C  DECAY LAMBDA  --->  P + PI(-)
+          CALL DECAY1( ITYPE, 14, 9 )
+        ELSE
+C  DECAY LAMBDA  --->  N + PI(0)
+          CALL DECAY1( ITYPE, 13, 7 )
+        ENDIF
+ 
+      ELSEIF ( ITYPE .EQ. 19 ) THEN
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1) .LT. CSTRBA(6) ) THEN
+C  DECAY SIGMA(+)  --->  P + PI(0)
+          CALL DECAY1( ITYPE, 14, 7 )
+        ELSE
+C  DECAY SIGMA(+)  --->  N + PI(+)
+          CALL DECAY1( ITYPE, 13, 8 )
+        ENDIF
+ 
+      ELSEIF ( ITYPE .EQ. 20  .OR.  ITYPE .EQ. 28 ) THEN
+C  DECAY      SIGMA(0)  --->       LAMBDA + GAMMA
+C  DECAY ANTI-SIGMA(0)  --->  ANTI-LAMBDA + GAMMA
+        CALL DECAY1( ITYPE, ITYPE-2, 1 )
+ 
+      ELSEIF ( ITYPE .EQ. 21 ) THEN
+C  DECAY SIGMA(-)  --->  N + PI(-)
+        CALL DECAY1( ITYPE, 13, 9 )
+ 
+      ELSEIF ( ITYPE .EQ. 22  .OR.  ITYPE .EQ. 30 ) THEN
+C  DECAY      XI(0)  --->       LAMBDA + PI(0)
+C  DECAY ANTI-XI(0)  --->  ANTI-LAMBDA + PI(0)
+        CALL DECAY1( ITYPE, ITYPE-4, 7 )
+ 
+      ELSEIF ( ITYPE .EQ. 23 ) THEN
+C  DECAY XI(-)  --->  LAMBDA + PI(-)
+        CALL DECAY1( ITYPE, 18, 9 )
+ 
+      ELSEIF ( ITYPE .EQ. 24  .OR.  ITYPE .EQ. 32 ) THEN
+        CALL RMMAR( RD,1,1 )
+        IF     ( RD(1) .LT. CSTRBA(10) ) THEN
+C  DECAY      OMEGA(-)  --->       LAMBDA + K(-)
+C  DECAY ANTI-OMEGA(+)  --->  ANTI-LAMBDA + K(+)
+          CALL DECAY1( ITYPE, ITYPE-6, 15-ITYPE/8 )
+        ELSEIF ( RD(1) .LT. CSTRBA(11) ) THEN
+C  DECAY      OMEGA(-)  --->       XI(0) + PI(-)
+C  DECAY ANTI-OMEGA(+)  --->  ANTI-XI(0) + PI(+)
+          CALL DECAY1( ITYPE, ITYPE-2, 12-ITYPE/8 )
+        ELSE
+C  DECAY      OMEGA(-)  --->       XI(-) + PI(0)
+C  DECAY ANTI-OMEGA(+)  --->  ANTI-XI(+) + PI(0)
+          CALL DECAY1( ITYPE, ITYPE-1, 7 )
+        ENDIF
+ 
+      ELSEIF ( ITYPE .EQ. 26 ) THEN
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1) .LT. CSTRBA(5) ) THEN
+C  DECAY ANTI-LAMBDA  --->  ANTI-P + PI(+)
+          CALL DECAY1( ITYPE, 15, 8 )
+        ELSE
+C  DECAY ANTI-LAMBDA  --->  ANTI-N + PI(0)
+          CALL DECAY1( ITYPE, 25, 7 )
+        ENDIF
+ 
+      ELSEIF ( ITYPE .EQ. 27 ) THEN
+        CALL RMMAR( RD,1,1 )
+        IF ( RD(1) .LT. CSTRBA(6) ) THEN
+C  DECAY ANTI-SIGMA(-)  --->  ANTI-P + PI(0)
+          CALL DECAY1( ITYPE, 15, 7 )
+        ELSE
+C  DECAY ANTI-SIGMA(-)  --->  ANTI-N + PI(-)
+          CALL DECAY1( ITYPE, 25, 9 )
+        ENDIF
+ 
+      ELSEIF ( ITYPE .EQ. 29 ) THEN
+C  DECAY ANTI-SIGMA(+)  --->  ANTI-N + PI(+)
+        CALL DECAY1( ITYPE, 25, 8 )
+ 
+      ELSEIF ( ITYPE .EQ. 31 ) THEN
+C  DECAY ANTI-XI(+)  --->  ANTI-LAMBDA + PI(+)
+        CALL DECAY1( ITYPE, 26, 8 )
+ 
+      ELSE
+        WRITE(MONIOU,*) 'STRDEC: UNFORESEEN PARTICLE CODE =',ITYPE
+      ENDIF
+      IRET1 = 1
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tarint.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tarint.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tarint.f	(revision 4308)
@@ -0,0 +1,134 @@
+      SUBROUTINE TARINT
+ 
+C-----------------------------------------------------------------------
+C  TAR(GET) INT(ERACTIONS)
+C
+C  ROUTINE DETERMINES HOW MANY INTERACTIONS OCCUR IN TARGET
+C  THIS SUBROUTINE IS CALLED FROM HDPM
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,DPMFLG.
+      COMMON /DPMFLG/  NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+      INTEGER          NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+*KEEP,GNUPR.
+      COMMON /GNUPR/   SE14,SE16,SE40
+      DOUBLE PRECISION SE14(3,14),SE16(3,16),SE40(3,40)
+*KEEP,INTER.
+      COMMON /INTER/   AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN,
+     *                 IDIF,ITAR
+      DOUBLE PRECISION AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN
+      INTEGER          IDIF,ITAR
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,REST.
+      COMMON /REST/    CONTNE,TAR,LT
+      DOUBLE PRECISION CONTNE(3),TAR
+      INTEGER          LT
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,SIGM.
+      COMMON /SIGM/    SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+      DOUBLE PRECISION SIGMA,SIGANN,SIGAIR,FRACTN,FRCTNO
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'TARINT: ITYPE,TAR,NFLAIN',
+     *                                ITYPE,SNGL(TAR),NFLAIN
+ 
+C  NFLAIN EQUAL 0 : NUMBER OF INTERACTIONS IN TARGET CHOSEN RANDOMLY
+      IF ( NFLAIN .EQ. 0 ) THEN
+C  SIGMA IS ALREADY CALCULATED IN BOX2
+        DELSIG = SIGMA - 45.D0
+        DSIGSQ = DELSIG**2
+ 
+C  CHOOSE RANDOM NUMBER
+        CALL RMMAR( RD,1,1 )
+        IF ( DEBUG ) WRITE(MDEBUG,*)'TARINT: DELSIG,DSIGSQ,RD(1),TAR=',
+     *                      SNGL(DELSIG),SNGL(DSIGSQ),RD(1),SNGL(TAR)
+ 
+C  DO INTERACTION WITH CHOSEN TARGET ( N, O, AR )
+        PROB  = 0.D0
+C  TREAT INTERACTION WITH NITROGEN TARGET
+        IF     ( TAR .EQ. 14.D0 ) THEN
+C  SUM OF PROBABILITIES FOR COLLISION WITH NITROGEN TARGET
+          DO 6151  JL = 1,14
+            PROB = PROB +
+     *             SE14(1,JL) + SE14(2,JL)*DELSIG + SE14(3,JL)*DSIGSQ
+            IF ( RD(1) .LE. PROB ) GOTO 7332
+ 6151     CONTINUE
+ 
+C  TREAT INTERACTION WITH OXYGEN TARGET
+        ELSEIF ( TAR .EQ. 16.D0 ) THEN
+C  SUM OF PROBABILITIES FOR COLLISION WITH OXYGEN TARGET
+          DO 6152  JL = 1,16
+            PROB = PROB +
+     *             SE16(1,JL) + SE16(2,JL)*DELSIG + SE16(3,JL)*DSIGSQ
+            IF ( RD(1) .LE. PROB ) GOTO 7332
+ 6152     CONTINUE
+ 
+C  TREAT INTERACTION WITH ARGON TARGET
+        ELSEIF ( TAR .EQ. 40.D0 ) THEN
+C  SUM OF PROBABILITIES FOR COLLISION WITH ARGON TARGET
+          DO 6153  JL = 1,40
+            PROB = PROB +
+     *             SE40(1,JL) + SE40(2,JL)*DELSIG + SE40(3,JL)*DSIGSQ
+            IF ( RD(1) .LE. PROB ) GOTO 7332
+ 6153     CONTINUE
+        ELSE
+          WRITE(MONIOU,*) 'TARINT: UNKNOWN TARGET = ',SNGL(TAR)
+        ENDIF
+        JL  = 1
+ 
+C  NUMBER OF COLLISIONS IN TARGET
+ 7332   CONTINUE
+        GNU = DBLE(JL)
+ 
+      ELSE
+C  NFLAIN EQUAL 1 : AVERAGE NUMBER OF INTERACTIONS IN TARGET IS TAKEN
+C  NEW PARAMETRIZATION OF J.N.CAPDEVIELLE (MARCH 93)
+        GNU = (0.4826D0 + 3.522D-2 * SLOG) * TAR**0.31D0
+      ENDIF
+      IF ( DEBUG ) WRITE(MDEBUG,*)
+     *          'TARINT: # COLLISIONS IN TARGET=',SNGL(GNU)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/thick.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/thick.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/thick.f	(revision 4308)
@@ -0,0 +1,107 @@
+C=======================================================================
+
+      DOUBLE PRECISION FUNCTION THICK( ARG )
+
+C-----------------------------------------------------------------------
+C  THICK(NESS OF ATMOSPHERE)
+C
+C  CALCULATES THICKNESS (G/CM**2) OF ATMOSPHERE DEPENDING ON HEIGHT (CM)
+C  (US STANDARD ATMOSPHERE)
+C  THIS FUNCTION IS CALLED FROM MAIN, BOX2, BOX3, CERENE, CERENH, EGS4,
+C  ELECTR, ININKG, INPRM, NKG, PHOTON, AND START
+C  ARGUMENT:
+C   ARG    = HEIGHT IN CM
+C-----------------------------------------------------------------------
+
+      IMPLICIT NONE
+*KEEP,ATMOS.
+      COMMON /ATMOS/   AATM,BATM,CATM,DATM
+      DOUBLE PRECISION AATM(5),BATM(5),CATM(5),DATM(5)
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c Try
+c------------------------------------------------------------
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+*KEND.
+C*******************************************************************
+C     Modificado por Aitor (5-febrero-98)
+      
+      common /aitor/   aitoth
+      double precision aitoth
+C*******************************************************************
+
+      DOUBLE PRECISION ARG,H,RT
+      PARAMETER (RT=6348.0D5)
+C-----------------------------------------------------------------------
+
+CC    IF ( DEBUG ) WRITE(MDEBUG,*) 'THICK : ARG=',SNGL(ARG)
+
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>> Modification (HZA trick) cancelled >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>> JCG Wed Sep 21 10:49:14 MET DST 1998 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+      IF     ( ARG .LT. 4.D5 ) THEN
+        THICK = AATM(1) + BATM(1) * EXP ( -ARG * DATM(1) )
+      ELSEIF ( ARG .LT. 1.D6 ) THEN
+        THICK = AATM(2) + BATM(2) * EXP ( -ARG * DATM(2) )
+      ELSEIF ( ARG .LT. 4.D6 ) THEN
+        THICK = AATM(3) + BATM(3) * EXP ( -ARG * DATM(3) )
+      ELSEIF ( ARG .LT. 1.D7 ) THEN
+        THICK = AATM(4) + BATM(4) * EXP ( -ARG * DATM(4) )
+      ELSE
+        THICK = AATM(5) - ARG * CATM(5)
+      ENDIF
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+cC*******************************************************************
+cC     Modificado por Aitor (5-febrero-98)
+c
+c      H = -RT + SQRT(RT**2 + (ARG/COS(aitoth))**2 +(2.0D0*RT*ARG))
+cC*******************************************************************
+c
+cC      R = SQRT(CURPAR(7)**2+CURPAR(8)**2)
+cC      H = SQRT((RT+ARG)**2+R**2)-RT
+cc      print *,'THICK>>',arg,r,h,curpar(7),curpar(8)
+c
+c      IF     ( H .LT. 4.D5 ) THEN
+c        THICK = AATM(1) + BATM(1) * EXP ( -H * DATM(1) )
+c      ELSEIF ( H .LT. 1.D6 ) THEN
+c        THICK = AATM(2) + BATM(2) * EXP ( -H * DATM(2) )
+c      ELSEIF ( H .LT. 4.D6 ) THEN
+c        THICK = AATM(3) + BATM(3) * EXP ( -H * DATM(3) )
+c      ELSEIF ( H .LT. 1.D7 ) THEN
+c        THICK = AATM(4) + BATM(4) * EXP ( -H * DATM(4) )
+c      ELSE
+c        THICK = AATM(5) - H * CATM(5)
+c      ENDIF
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tobuf.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tobuf.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tobuf.f	(revision 4308)
@@ -0,0 +1,99 @@
+      SUBROUTINE TOBUF( A,IFL )
+ 
+C-----------------------------------------------------------------------
+C  (WRITE) TO BUF(FER)
+C
+C  WRITES UP TO NSUBBL DATA BLOCKS TO OUTPUT BUFFER AND PUTS THE FULL
+C  BUFFER TO TAPE
+C  THIS SUBROUTINE IS CALLED FROM MAIN, ELECTR, PHOTON, INPRM, OUTEND,
+C  OUTPUT, OUTPT2, AND PHOTON
+C  ARGUMENTS:
+C   A      = ARRAY TO BE WRITTEN TO TAPE
+C   IFL    = STARTING OF FINAL OUTPUT
+C          = 0  NORMAL BLOCK
+C          = 1  NORMAL BLOCK WITH END OF OUTPUT
+C          = 2  ONLY END OF OUTPUT
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,RECORD.
+      COMMON /RECORD/  IRECOR
+      INTEGER          IRECOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      INTEGER   NSUBBL
+      PARAMETER (NSUBBL=21)
+      REAL      A(*)
+C  NSUBBL IS NUMBER OF SUBBLOCKS IN ONE OUTPUT RECORD
+C  (OUTPUT RECORD LENGTH = NSUBBL * 39 * 7 * 4 BYTES  <= 22932 )
+C  IBLK  IS  COUNTER FOR SUBBLOCKS
+C  OUTPUT BUFFER FOR PARTICLE OUTPUT
+      REAL      OUTBUF(MAXBUF,NSUBBL)
+      INTEGER   I,IBLK,IFL,K
+      SAVE      OUTBUF
+      DATA      IBLK / 0 /
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'TOBUF : IFL =',IFL
+ 
+ 
+C  COPY TO BUFFER
+      IF ( IFL .LE. 1 ) THEN
+        IBLK = IBLK + 1
+        DO  1  I = 1,MAXBUF
+          OUTBUF(I,IBLK) = A(I)
+ 1      CONTINUE
+      ENDIF
+ 
+C  WRITE TO TAPE IF BLOCK IS FULL OR IF IFL IS 1
+      IF ( IFL .GE. 1  .OR.  IBLK .EQ. NSUBBL ) THEN
+        NRECS = NRECS + 1
+        NBLKS = NBLKS + IBLK
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+c        WRITE(PATAPE)           ((OUTBUF(I,K),I=1,MAXBUF),K=1,NSUBBL)
+        call jcdatsave(outbuf)
+c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+        IRECOR = IRECOR + MAXBUF * NSUBBL
+        IBLK   = 0
+        DO  2  K = 1,NSUBBL
+        DO  2  I = 1,MAXBUF
+          OUTBUF(I,K) = 0.0
+ 2      CONTINUE
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tstack.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tstack.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tstack.f	(revision 4308)
@@ -0,0 +1,107 @@
+      SUBROUTINE TSTACK
+ 
+C-----------------------------------------------------------------------
+C  T(O) STACK
+C
+C  ADDS PARTICLE TO INTERMEDIATE STACK UNTIL REACTION IS FINISHED
+C  THIS SUBROUTINE IS CALLED FROM MANY POINTS ALL OVER THE PROGRAM
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEEP,ETHMAP.
+      COMMON /ETHMAP/  ECTMAP,ELEFT
+      DOUBLE PRECISION ECTMAP,ELEFT
+*KEEP,MUPART.
+      COMMON /MUPART/  AMUPAR,BCUT,CMUON,FMUBRM,FMUORG
+      DOUBLE PRECISION AMUPAR(14),BCUT,CMUON(11)
+      LOGICAL          FMUBRM,FMUORG
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKF.
+      COMMON /STACKF/  STACK,STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+      INTEGER          MAXSTK
+      PARAMETER        (MAXSTK = 12*340*2)
+      DOUBLE PRECISION STACK(MAXSTK)
+      INTEGER          STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+*KEEP,THNVAR.
+      COMMON /THNVAR/  STACKINT,INT_ICOUNT,THINNING
+      INTEGER          MAXICOUNT
+      PARAMETER        (MAXICOUNT=20000)
+      DOUBLE PRECISION STACKINT(MAXICOUNT,13)
+      INTEGER          INT_ICOUNT
+      LOGICAL          THINNING
+*KEND.
+ 
+      INTEGER I,J
+C-----------------------------------------------------------------------
+ 
+      INT_ICOUNT = INT_ICOUNT + 1
+      IF ( DEBUG ) WRITE(MDEBUG,1) INT_ICOUNT,(SECPAR(J),J=1,9)
+ 1    FORMAT(' TSTACK:',I7,1X,1P,9E10.3)
+ 
+      IF ( INT_ICOUNT .GT. MAXICOUNT ) THEN
+        WRITE(MONIOU,10) MAXICOUNT
+ 10     FORMAT(' TSTACK: TOO MANY SECONDARIES FOR THIS REACTION',
+     *     '  EXCEEDED ',I7,'   A T T E N T I O N  PARTICLE IS LOST')
+        INT_ICOUNT = INT_ICOUNT - 1
+        RETURN
+      ENDIF
+ 
+      DO I=1,MAXLEN
+        STACKINT(INT_ICOUNT,I) = SECPAR(I)
+      ENDDO
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tstend.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tstend.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tstend.f	(revision 4308)
@@ -0,0 +1,108 @@
+      SUBROUTINE TSTEND
+ 
+C-----------------------------------------------------------------------
+C  T(O) STACK END (OF REACTION)
+C
+C  MOVE INTERMEDIATE REACTION STACK TO THE REAL STACK
+C  THIS SUBROUTINE IS CALLED FROM AAMAIN, BOX3, AND PIGEN
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RESON.
+      COMMON /RESON/   RDRES,RESRAN,IRESPAR
+      REAL             RDRES(2),RESRAN(1000)
+      INTEGER          IRESPAR
+ 
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKF.
+      COMMON /STACKF/  STACK,STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+      INTEGER          MAXSTK
+      PARAMETER        (MAXSTK = 12*340*2)
+      DOUBLE PRECISION STACK(MAXSTK)
+      INTEGER          STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+*KEEP,THNVAR.
+      COMMON /THNVAR/  STACKINT,INT_ICOUNT,THINNING
+      INTEGER          MAXICOUNT
+      PARAMETER        (MAXICOUNT=20000)
+      DOUBLE PRECISION STACKINT(MAXICOUNT,13)
+      INTEGER          INT_ICOUNT
+      LOGICAL          THINNING
+*KEND.
+ 
+      DOUBLE PRECISION EEE,EEPP,ETOTA,ETOTAL
+      INTEGER          I,K
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,1) INT_ICOUNT,THINNING
+ 1    FORMAT(' TSTEND: TRANSFER INTERNAL REACTION STACK',
+     *       ' WITH ',I6,' PARTICLES:  ', ' THINNING =',L4)
+ 
+      IF ( INT_ICOUNT .LE. 0 ) RETURN
+ 
+C  PUT ALL PARTICLES FROM INTERMEDIATE STACK TO REAL STACK
+      DO K=1,INT_ICOUNT
+        DO I=1,MAXLEN
+          SECPAR(I) = STACKINT(K,I)
+          STACKINT(K,I) = 0.D0
+        ENDDO
+        CALL TSTOUT
+      ENDDO
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tstini.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tstini.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tstini.f	(revision 4308)
@@ -0,0 +1,86 @@
+      SUBROUTINE TSTINI
+ 
+C-----------------------------------------------------------------------
+C  T(O INTERMEDIATE) ST(ACK) INI(TIALIZATION)
+C
+C  INITIALIZE THE INTERMEDIATE STACK FOR A SINGLE REACTION
+C  THIS SUBROUTINE IS CALLED FROM AAMAIN, BOX3, AND PIGEN
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,REJECT.
+      COMMON /REJECT/  AVNREJ,
+     *                 ALTMIN,ANEXP,THICKA,THICKD,CUTLN,EONCUT,
+     *                 FNPRIM
+      DOUBLE PRECISION AVNREJ(10)
+      REAL             ALTMIN(10),ANEXP(10),THICKA(10),THICKD(10),
+     *                 CUTLN,EONCUT
+      LOGICAL          FNPRIM
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKF.
+      COMMON /STACKF/  STACK,STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+      INTEGER          MAXSTK
+      PARAMETER        (MAXSTK = 12*340*2)
+      DOUBLE PRECISION STACK(MAXSTK)
+      INTEGER          STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+*KEEP,THNVAR.
+      COMMON /THNVAR/  STACKINT,INT_ICOUNT,THINNING
+      INTEGER          MAXICOUNT
+      PARAMETER        (MAXICOUNT=20000)
+      DOUBLE PRECISION STACKINT(MAXICOUNT,13)
+      INTEGER          INT_ICOUNT
+      LOGICAL          THINNING
+*KEND.
+ 
+      DOUBLE PRECISION EEPP
+      INTEGER          I,J
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,1)
+ 1    FORMAT(' TSTINI: RESET INTERNAL REACTION STACK')
+ 
+      INT_ICOUNT = 0
+ 
+      THINNING = .FALSE.
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tstout.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tstout.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/tstout.f	(revision 4308)
@@ -0,0 +1,136 @@
+      SUBROUTINE TSTOUT
+ 
+C-----------------------------------------------------------------------
+C  T(O) ST(ACK) OUT
+C
+C  MAKE REAL OUTPUT AFTER ONE INTERACTION HAS FINISHED
+C  ADDS PARTICLE TO STACK AND WRITES IT TO DISK IF NECESSARY
+C  THIS SUBROUTINE IS CALLED FORM MPPROP, PIGEN1, PIGEN2, AND TSTEND
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,BUFFS.
+      COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH
+      INTEGER          MAXBUF,MAXLEN
+      PARAMETER        (MAXBUF=39*7)
+      PARAMETER        (MAXLEN=12)
+      REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF),
+     *                 RUNE(MAXBUF),DATAB(MAXBUF)
+      INTEGER          LH
+      CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE
+      EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE)
+      EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE)
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEEP,ETHMAP.
+      COMMON /ETHMAP/  ECTMAP,ELEFT
+      DOUBLE PRECISION ECTMAP,ELEFT
+*KEEP,MUPART.
+      COMMON /MUPART/  AMUPAR,BCUT,CMUON,FMUBRM,FMUORG
+      DOUBLE PRECISION AMUPAR(14),BCUT,CMUON(11)
+      LOGICAL          FMUBRM,FMUORG
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKF.
+      COMMON /STACKF/  STACK,STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+      INTEGER          MAXSTK
+      PARAMETER        (MAXSTK = 12*340*2)
+      DOUBLE PRECISION STACK(MAXSTK)
+      INTEGER          STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM
+*KEND.
+ 
+      DOUBLE PRECISION GLCUT
+      INTEGER          I,ISTK,J
+      DATA             ISTK / MAXSTK /
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,666) ICOUNT,(SECPAR(J),J=1,9)
+ 666  FORMAT(' TSTOUT:',I7,1X,1P,9E10.3)
+ 
+C  CALCULATE APPROPRIATE KINETIC ENERGY CUT AND APPLY IT
+      IF     ( SECPAR(1) .EQ. 5.D0 .OR. SECPAR(1) .EQ. 6.D0 ) THEN
+C  MUONS
+        GLCUT = ELCUT(2) / PAMA(NINT(SECPAR(1))) + 1.D0
+      ELSEIF ( SECPAR(1) .EQ. 2.D0 .OR. SECPAR(1) .EQ. 3.D0 ) THEN
+C  ELECTRONS
+        GLCUT = ELCUT(3) / PAMA(NINT(SECPAR(1))) + 1.D0
+      ELSEIF ( SECPAR(1) .EQ. 1.D0 ) THEN
+C  GAMMAS
+        GLCUT = ELCUT(4)
+      ELSEIF (SECPAR(1) .GE. 100.D0 ) THEN
+C  NUCLEI, CUTTED IF ENERGY/NUCLEON BELOW CUT
+        GLCUT = ELCUT(1) * INT(SECPAR(1)/100 )
+     *                   / PAMA(NINT(SECPAR(1))) + 1.D0
+      ELSE
+C  HADRONS
+        GLCUT = ELCUT(1) / PAMA(NINT(SECPAR(1))) + 1.D0
+      ENDIF
+      IF ( SECPAR(2) .LT. GLCUT ) THEN
+        IF ( SECPAR(1).EQ.5.D0 .OR. SECPAR(1).EQ.6.D0 ) FMUORG = .FALSE.
+        IF (DEBUG) WRITE(MDEBUG,*) 'TSTOUT: PARTICLE BELOW ',
+     *     'ENERGY CUT'
+        RETURN
+      ENDIF
+ 
+      IF ( STACKP .GE. ISTK ) THEN
+        WRITE(EXST,REC=NOUREC+1) (STACK(I),I=       1,ISTK/2)
+        WRITE(EXST,REC=NOUREC+2) (STACK(I),I=ISTK/2+1,ISTK )
+        NOUREC = NOUREC + 2
+        NSHIFT = NSHIFT + 2
+        STACKP = 0
+      ENDIF
+ 
+      NTO    = NTO + 1
+      ICOUNT = ICOUNT + 1
+ 
+      DO  2  J = 1,MAXLEN
+        STACK(STACKP+J) = SECPAR(J)
+ 2    CONTINUE
+      STACKP = STACKP + MAXLEN
+      IF ( SECPAR(1) .LE.  1.D0 ) THEN
+        ELEFT  = ELEFT + SECPAR(2)
+      ELSE
+        ELEFT  = ELEFT + SECPAR(2) * PAMA(NINT(SECPAR(1)))
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ucopy.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ucopy.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/ucopy.f	(revision 4308)
@@ -0,0 +1,16 @@
+      SUBROUTINE UCOPY (A,B,N)
+ 
+C-----------------------------------------------------------------------
+C CERN PROGLIB# V301    UCOPY           .VERSION KERNFOR  1.0   710701
+C ORIG. 01/01/65 JZ
+C-----------------------------------------------------------------------
+ 
+      DIMENSION A(*),B(*)
+C-----------------------------------------------------------------------
+ 
+C                  NO OVERLAP  OR  BEGINNING OF A ON END OF B
+      IF (N.EQ.0) RETURN
+         DO 21 I=1,N
+   21 B(I)=A(I)
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/update.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/update.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/update.f	(revision 4308)
@@ -0,0 +1,460 @@
+      SUBROUTINE UPDATE( HNEW,THCKHN,IPAS )
+ 
+C-----------------------------------------------------------------------
+C  UPDATE(S PARTICLE PARAMETERS)
+C
+C  UPDATES PARTICLE PARAMETERS TO OBSERVATION LEVEL WITH NUMBER IPAS
+C                           OR TO POINT OF INTERACTION OR DECAY (IPAS=0)
+C  FOR CHARGED PARTICLES THE ENERGY LOSS IS COMPUTED FOR THE WHOLE STEP,
+C  SUBDIVIDED BY THE BOUNDARIES OF THE ATMOSPHERIC LAYERS.
+C  THE PARTICLE IS FLYING THE 1ST HALF (DH/2) WITH INITIAL ENERGY
+C  AND ANGLE AND THE 2ND HALF WITH FINAL ENERGY AND ANGLE.
+C  THE TIME CALCULATION FOLLOWS THIS SIMPLIFICATION.
+C  CHARGED PARTICLES ARE DEFLECTED IN THE EARTH MAGNETIC FIELD.
+C  THE ANGLE OF DEFLECTION BY MULTIPLE SCATTERING IS COMPUTED ONLY
+C  FOR MUONS AND ONLY ONCE FOR THE WHOLE STEP.
+C  IF PARTICLES COME TO REST BY STOPPING, THEIR PATH TO THE STOPPING
+C  POINT IS CALCULATED.
+C  CERENKOV RADIATION IS CALCULATED ONLY FOR LOWEST OBSERVATION LEVEL
+C  THIS SUBROUTINE IS CALLED FROM MAIN, BOX3, AND MUTRAC
+C  ARGUMENTS:
+C   HNEW   = ALTITUDE OF PARTICLE AFTER UPDATE
+C   THCKHN = THICKNESS OF HNEW
+C   IPAS   = 0  TRANSPORT TO END OF RANGE OF PARTICLE
+C       .NE. 0  TRANSPORT TO PASSAGE OF OBSERVATION LEVEL IPAS
+C
+C  REDESIGN: D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,ATMOS2.
+      COMMON /ATMOS2/  HLAY,THICKL
+      DOUBLE PRECISION HLAY(5),THICKL(5)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,ELABCT.
+      COMMON /ELABCT/  ELCUT
+      DOUBLE PRECISION ELCUT(4)
+*KEEP,GENER.
+      COMMON /GENER/   GEN,ALEVEL
+      DOUBLE PRECISION GEN,ALEVEL
+*KEEP,IRET.
+      COMMON /IRET/    IRET1,IRET2
+      INTEGER          IRET1,IRET2
+*KEEP,MAGNET.
+      COMMON /MAGNET/  BX,BZ,BVAL,BNORMC,BNORM,COSB,SINB,BLIMIT
+      DOUBLE PRECISION BX,BZ,BVAL,BNORMC
+      REAL             BNORM,COSB,SINB,BLIMIT
+*KEEP,MUMULT.
+      COMMON /MUMULT/  CHC,OMC,FMOLI
+      DOUBLE PRECISION CHC,OMC
+      LOGICAL          FMOLI
+*KEEP,OBSPAR.
+      COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
+     *                 THETPR,PHIPR,NOBSLV
+      DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
+     *                 THETAP,THETPR(2),PHIP,PHIPR(2)
+      INTEGER          NOBSLV
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,CERHDR.
+      COMMON/CERHDR/   TPART,UPART,VPART,WPART,XPART,YPART,ZPART
+      DOUBLE PRECISION TPART,UPART,VPART,WPART,XPART,YPART,ZPART
+*KEND.
+ 
+      DOUBLE PRECISION ALPHA1,ALPHA2,BETAN,DENS,DH,DR,DTHICK,ELOSS,
+     *                 FNORM1,FNORM2,F1COS1,F1COS2,F1SIN1,F1SIN2,
+     *                 GAMMAN,GAMSQ,GLCUT,GMSQM1,GAM0,HMIDDL,HNEW,OMEGA,
+     *                 PHISCT,PHI1,RADINV,RANNOR,RHOF,
+     *                 SINTH1,SINTH2,SN,SN1,SN2,SN3,SN4,
+     *                 THCKHN,TH0,U10,U12,U20,U22,V,VSCAT,VVV,
+     *                 V10,V12,V20,V22,W10,W12,W20,W22
+      INTEGER          I,IL,ILAY,IPAS
+      LOGICAL          MUS
+      SAVE             VSCAT,PHISCT
+      EXTERNAL         RANNOR,RHOF
+      DOUBLE PRECISION CHIT,DT,GAMK,HEIGH,HNEWC,RATIO,THCKHC
+      INTEGER          ICRNKV
+      LOGICAL          TFLAG
+      EXTERNAL         HEIGH
+C-----------------------------------------------------------------------
+ 
+      IF (DEBUG) WRITE(MDEBUG,457) (CURPAR(I),I=1,9),HNEW
+  457 FORMAT(' UPDATE: CURPAR=',1P,9E10.3/
+     *       '         TO HEIGHT ',0P,F11.1)
+ 
+      IRET2  = 1
+C  TOTAL HEIGHT DIFFERENCE
+      DH     = MAX( H - HNEW, 1.D-10 )
+C  ATMOSPHERE THICKNESS TRAVERSED
+      DTHICK = (THCKHN - THICKH) / COSTHE
+C  TOTAL PATH FOR UNDEFLECTED PARTICLE
+      SN     = DH / COSTHE
+      SN1    = 0.25D0 * SN
+ 
+ 
+C  CALCULATE KINETIC ENERGY CUT
+      IF ( ITYPE .EQ. 5 .OR. ITYPE .EQ. 6 ) THEN
+        MUS   = .TRUE.
+        GLCUT = ELCUT(2) / PAMA(ITYPE) + 1.D0
+      ELSE
+        MUS   = .FALSE.
+        GLCUT = ELCUT(1) / PAMA(ITYPE) + 1.D0
+      ENDIF
+ 
+C  CALCULATE THE ENERGY LOSS FOR CHARGED PARTICLES
+      IF ( SIGNUM(ITYPE) .NE. 0.D0 ) THEN
+C  LOOK WITHIN WHICH LAYER THE PARTICLE STARTS
+        IF     ( H .LE. HLAY(2) ) THEN
+          ILAY = 1
+          TH0  = THICKH
+        ELSEIF ( H .LE. HLAY(3) ) THEN
+          ILAY = 2
+          TH0  = THICKH
+        ELSEIF ( H .LE. HLAY(4) ) THEN
+          ILAY = 3
+          TH0  = THICKH
+        ELSE
+          ILAY = 4
+          TH0    = MAX( THICKH, 2.D-4 )
+        ENDIF
+C  SET START VALUES FOR ITERATION
+        GAM0   = GAMMA
+        IL     = ILAY
+ 1      CONTINUE
+        GAM0   = MAX( GAM0, 1.0001D0 )
+        GAMSQ  = GAM0**2
+        GMSQM1 = GAMSQ - 1.D0
+C  ENERGY LOSS BY IONIZATION
+        ELOSS  = SIGNUM(ITYPE)**2 * C(22) *
+     *              ( GAMSQ * (LOG(GMSQM1) + C(23)) / GMSQM1 - 1.D0 )
+C  LOOK WETHER PARTICLE PENETRATES LAYER BOUNDARY
+        IF ( THICKL(IL) .LT. THCKHN  .AND.  IL .GT. 1 ) THEN
+C  CALCULATE NEW START VALUES AT LAYER BOUNDARY
+          GAM0 = GAM0 - ELOSS * (THICKL(IL) - TH0)
+     *                              / (PAMA(ITYPE)*COSTHE)
+          IF ( GAM0 .LE. 1.D0 ) THEN
+            GAMMAN = 1.0001D0
+            GOTO 3
+          ENDIF
+          TH0  = THICKL(IL)
+          IL   = IL - 1
+          GOTO 1
+        ENDIF
+C  GAMMA VALUE FOR CHARGED PARTICLES AT END OF STEP
+        GAMMAN = GAM0 - ELOSS * (THCKHN-TH0) / (PAMA(ITYPE)*COSTHE)
+ 3      CONTINUE
+ 
+      ELSE
+C  NO LOSS FOR NEUTRAL PARTICLES
+        GAMMAN = GAMMA
+      ENDIF
+ 
+C  PARTICLE HAS TO BE TRACKED TO THE CUTOFF ENERGY FOR CERENKOV PHOTONS
+C  (AS NEUTRAL DO NOT LOOSE ENERGY IN UPDATE, THIS CONDITION IS
+C  FULFILLED BY CHARGED PARTICLES ONLY)
+C  (AS CERENKOV RUNS NOT WITH HORIZONT, NO PROGRAMMING FOR HORIZONT)
+      IF ( GAMMAN .LT. GLCUT ) THEN
+        GAMMAN = 0.9D0 + GLCUT * 0.1D0
+ 
+C  SET START VALUES FOR ITERATION
+        IL     = ILAY
+        CHIT   = 0.D0
+        GAM0   = GAMMA
+        TH0    = MAX( THICKH, 2.D-4 )
+ 2      CONTINUE
+        GAM0   = MAX( GAM0, 1.0001D0 )
+        GAMSQ  = GAM0**2
+        GMSQM1 = GAMSQ - 1.D0
+C  ENERGY LOSS BY IONIZATION
+        ELOSS  = SIGNUM(ITYPE)**2 * C(22) *
+     *             ( GAMSQ * (LOG(GMSQM1) + C(23)) / GMSQM1 -1.D0 )
+        ELOSS  =  ELOSS / (PAMA(ITYPE) * COSTHE)
+        GAMK   = GAM0 - ELOSS * (THICKL(ILAY) - TH0)
+C  LOOK WETHER PARTICLE PENETRATES LAYER BOUNDARY
+        IF (GAMMAN .LT. GAMK .AND. IL. GT. 1 ) THEN
+C  CALCULATE PORTION OF RANGE AND NEW START VALUES AT LAYER BOUNDARY
+          CHIT = CHIT + (THICKL(IL) - TH0) / COSTHE
+          GAM0 = GAMK
+          TH0  = THICKL(IL)
+          IL   = IL - 1
+          GOTO 2
+        ENDIF
+C  PENETRATED MATTER THICKNESS
+        CHI    = CHIT + (GAM0 - GAMMAN) / (ELOSS*COSTHE)
+        IF ( DEBUG ) WRITE(MDEBUG,*)'UPDATE: GAMMAN,CHI=',
+     *                                  SNGL(GAMMAN),SNGL(CHI)
+C  CALCULATE CORRECTED PATH PARAMETERS
+        THCKHC = THICKH + COSTHE * CHI
+        HNEWC  = HEIGH(THCKHC)
+        DT     = SN / (C(25) * BETA * GAMMA)
+        RATIO  = .5D0 * (H-HNEWC) / DH
+        DH     = H - HNEWC
+        SN     = DH / COSTHE
+        SN1    = 0.25D0 * SN
+        TFLAG  = .TRUE.
+      ELSE
+        TFLAG  = .FALSE.
+      ENDIF
+ 
+C-----------------------------------------------------------------------
+      IF ( IPAS .EQ. 0 ) THEN
+C  UPDATE TO THE END POINT OF THE TRACK
+ 
+        IF ( MUS ) THEN
+C  COULOMB SCATTERING ANGLE (FOR MUONS ONLY)
+          IF ( FMOLI) THEN
+C  TREAT MUON MULTIPLE SCATTERING BY MOLIERE THEORY (SEE GEANT)
+C  CALCULATE AVERAGE DENSITY AND NUMBER OF SCATTERING (OMEGA)
+            DENS   = CHI/DH * COSTHE
+            OMEGA  = OMC * CHI /  BETA**2
+            IF ( OMEGA .LE. 20.D0 ) THEN
+C  FEW SCATTERING EVENTS, APPLY PLURAL COULOMB SCATTERING
+              CALL MUCOUL(OMEGA,DENS,VSCAT)
+            ELSE
+C  ENOUGH SCATTERING EVENTS, APPLY MOLIERE'S THEORY
+              CALL MMOLIE(OMEGA,DENS,VSCAT)
+            ENDIF
+          ELSE
+C  TREAT MUON MULTIPLE SCATTERING BY GAUSS DISTRIBUTION
+            VSCAT = RANNOR( 0.D0, C(30) * SQRT( CHI/C(21) )
+     *                          / (PAMA(5) * GAMMA * BETA**2) )
+          ENDIF
+          V = VSCAT
+          CALL RMMAR( RD,1,1 )
+          PHISCT = RD(1) * PI2
+          IF(DEBUG)WRITE(MDEBUG,*)'UPDATE: VSCAT=',SNGL(VSCAT),
+     *                                  ' PHISCT=',SNGL(PHISCT)
+        ENDIF
+ 
+C  CERENKOV RADIATION: LOOK, WHETHER PATH ENDS ABOVE LOWEST OBSERV.LEVEL
+        IF ( TFLAG ) THEN
+          HNEW   = HNEWC
+          THCKHN = THCKHC
+          IF (DEBUG) WRITE(MDEBUG,*)'UPDATE: CHANGED HNEW =',SNGL(HNEW)
+        ENDIF
+        IF ( HNEW .GT. OBSLEV(NOBSLV) ) THEN
+          ICRNKV = 1
+        ELSE
+          ICRNKV = 0
+        ENDIF
+ 
+C  UPDATE TO THE OBSERVATION LEVELS
+      ELSE
+        IF ( MUS ) THEN
+C  COULOMB SCATTERING ANGLE (FOR MUONS ONLY)
+          V = VSCAT * SQRT( DTHICK / CHI )
+        ENDIF
+ 
+C  CERENKOV RADIATION: LOOK, WHETHER LOWEST OBSERVATION LEVEL
+        IF ( IPAS .EQ. NOBSLV ) THEN
+          ICRNKV = 1
+        ELSE
+          ICRNKV = 0
+        ENDIF
+      ENDIF
+ 
+C  REJECT ALL PARTICLES IF BELOW KINETIC ENERGY CUT
+      IF ( GAMMAN .LT. GLCUT .AND. ICRNKV .EQ. 0 ) THEN
+        IF (DEBUG)
+     *    WRITE(MDEBUG,*) 'UPDATE: PARTICLE ',ITYPE,' BELOW ENERGY CUT'
+     *                   ,' CERENKOV LIGHT NOT CALCULATED'
+        RETURN
+      ENDIF
+ 
+C-----------------------------------------------------------------------
+C  CHARGED PARTICLES SUFFER IONIZATION LOSS, DEFLECTION IN MAGNETIC
+C  FIELD AND MUONS IN ADDITION DO MULTIPLE COULOMB SCATTERING
+ 
+      IF ( SIGNUM(ITYPE) .NE. 0.D0 ) THEN
+C  DEFLECTION IN EARTH MAGNETIC FIELD ON FIRST HALF OF STEP
+        ALPHA1 = SIGNUM(ITYPE) *
+     *         MIN( 1.D0, 2.D0*SN1*BNORMC /(PAMA(ITYPE)*BETA*GAMMA) )
+        SINTH1 = SQRT( 1.D0 - COSTHE**2 )
+        U10    = SINTH1 * COS(-PHI)
+        V10    = SINTH1 * SIN(-PHI)
+        W10    = COSTHE
+        FNORM1 = 1.D0 - 0.5D0*ALPHA1**2 * (1.D0 - 0.75D0*ALPHA1**2)
+        F1COS1 = ( 1.D0 - FNORM1 ) * COSB
+        F1SIN1 = ( 1.D0 - FNORM1 ) * SINB
+        VVV = V10 * ALPHA1 * FNORM1
+        U12 = U10 * (1.D0 - F1SIN1*SINB) + W10*F1SIN1*COSB + VVV*SINB
+        V12 = FNORM1 * ( V10 - ALPHA1 * (U10 * SINB - W10 * COSB) )
+        W12 = W10 * (1.D0 - F1COS1*COSB) + U10*F1COS1*SINB - VVV*COSB
+        RADINV = 1.5D0 - 0.5D0 * ( U12**2 + V12**2 + W12**2 )
+        W12 = MIN( 1.D0, RADINV * W12 )
+        IF ( W12 .LE. C(29) ) THEN
+          IF (DEBUG)
+     *    WRITE(MDEBUG,*) 'UPDATE: PARTICLE ',ITYPE,' BELOW ANGLE CUT 1'
+          RETURN
+        ENDIF
+        SN2 = 0.25D0 * DH / W12
+        U12 = RADINV * U12
+        V12 = RADINV * V12
+        IF ( U12**2 + V12**2 .GT. 3.D-38 ) THEN
+          PHI1 = -ATAN2( V12, U12 )
+        ELSE
+          PHI1 = 0.D0
+        ENDIF
+C  CERENKOV RADIATION: FILL PARTICLE COORDINATES INTO COMMON CERHDR
+        IF ( ICRNKV .EQ. 1 ) THEN
+          XPART = X + SN1 * U10 + SN2 * U12
+          YPART = Y - SN1 * V10 - SN2 * V12
+          TPART = T + ( SN1 + SN2 ) / ( C(25) * BETA )
+          ZPART = H - DH * 0.5D0
+          WPART = W12
+          UPART = U12
+          VPART = -V12
+          CALL CERENH( SN1+SN2, BETA )
+        ENDIF
+ 
+C  CHANGE DIRECTION BY COULOMB SCATTERING (FOR MUONS ONLY)
+C  BEFORE SCATTERING : DIRECTION COSINES ARE U12,V12,W12
+C  AFTER  SCATTERING : DIRECTION COSINES ARE U20,V20,W20
+        IF ( MUS ) THEN
+          CALL ADDANG( W12,PHI1, COS(V),PHISCT, W20,PHI1 )
+          IF ( W20 .LT. C(29) ) THEN
+            IF (DEBUG) WRITE(MDEBUG,*) 'UPDATE: MUON BELOW ANGLE CUT'
+            RETURN
+          ENDIF
+          SINTH2 = SQRT( 1.D0 - W20**2 )
+          U20    = SINTH2 * COS( -PHI1 )
+          V20    = SINTH2 * SIN( -PHI1 )
+        ELSE
+          U20    = U12
+          V20    = V12
+          W20    = W12
+        ENDIF
+ 
+C  NEW PATH LENGTH, NEW BETA VALUE BECAUSE OF IONIZATION ENERGY LOSS
+        SN3    = 0.25D0 * DH / W20
+        BETAN  = SQRT( GAMMAN**2 - 1.D0 ) / GAMMAN
+C  DEFLECTION IN EARTH MAGNETIC FIELD ON SECOND HALF OF STEP
+        ALPHA2 = SIGNUM(ITYPE) *
+     *           MIN(1.D0,2.D0*SN3*BNORMC / (PAMA(ITYPE)*BETAN*GAMMAN))
+        FNORM2 = 1.D0 - 0.5D0*ALPHA2**2 * (1.D0 - 0.75D0*ALPHA2**2)
+        F1SIN2 = ( 1.D0 - FNORM2 ) * SINB
+        F1COS2 = ( 1.D0 - FNORM2 ) * COSB
+        VVV = V20 * ALPHA2 * FNORM2
+        U22 = U20*(1.D0 - F1SIN2*SINB) + W20*F1SIN2*COSB + VVV*SINB
+        V22 = FNORM2 * ( V20 - ALPHA2 * (U20 * SINB - W20 * COSB) )
+        W22 = W20*(1.D0 - F1COS2*COSB) + U20*F1COS2*SINB - VVV*COSB
+        RADINV = 1.5D0 - 0.5D0 * ( U22**2 + V22**2 + W22**2 )
+        W22 = MIN( 1.D0, RADINV * W22 )
+        IF ( W22 .LT. C(29) ) THEN
+          IF (DEBUG)
+     *    WRITE(MDEBUG,*) 'UPDATE: PARTICLE ',ITYPE,' BELOW ANGLE CUT 2'
+          RETURN
+        ENDIF
+        SN4 = 0.25D0 * DH / W22
+        U22 = RADINV * U22
+        V22 = RADINV * V22
+        OUTPAR(3) = W22
+        IF ( U22**2 + V22**2 .GT. 3.D-38 ) THEN
+          OUTPAR(4) = -ATAN2( V22, U22 )
+        ELSE
+          OUTPAR(4) = 0.D0
+        ENDIF
+C  UPDATE COORDINATES AND TIME TO THE END OF DISTANCE
+        IF ( TFLAG ) THEN
+          OUTPAR(6) = T + DT* ( RATIO*GAMMA + (1.D0-RATIO)*GAMMAN)
+        ELSE
+          OUTPAR(6) = T + (SN1 + SN2)/(BETA *C(25)) +
+     *                    (SN3 + SN4)/(BETAN*C(25))
+        ENDIF
+        OUTPAR(7) = X + SN1*U10 + SN2*U12 + SN3*U20 + SN4*U22
+        OUTPAR(8) = Y - SN1*V10 - SN2*V12 - SN3*V20 - SN4*V22
+C  CERENKOV RADIATION: FILL PARTICLE COORDINATES INTO COMMON CERHDR
+        IF ( ICRNKV .EQ. 1 ) THEN
+          XPART = OUTPAR(7)
+          YPART = OUTPAR(8)
+          ZPART = HNEW
+          TPART = OUTPAR(6)
+          WPART = W22
+          UPART = U22
+          VPART = -V22
+          CALL CERENH( SN3+SN4, BETAN )
+C  REJECT PARTICLES AFTER PRODUCTION OF CERENKOV LIGHT
+          IF ( GAMMAN .LT. GLCUT ) THEN
+            IF (DEBUG) WRITE(MDEBUG,*) 'UPDATE: PARTICLE ',ITYPE,
+     *           ' BELOW ENERGY CUT AFTER CREATION OF CERENKOV LIGHT'
+            RETURN
+          ENDIF
+        ENDIF
+      ELSE
+ 
+C-----------------------------------------------------------------------
+C  NEUTRAL PARTICLES
+C  NO COULOMB SCATTERING, NO DEFLECTION IN MAGNETIC FIELD
+ 
+C  HORIZONTAL PATH LENGTH
+        DR        = SN * SQRT( 1.D0 - COSTHE**2 )
+C  UPDATE COORDINATES AND TIME
+        OUTPAR(3) = COSTHE
+        OUTPAR(4) = PHI
+        OUTPAR(6) = T + SN / ( C(25) * BETA )
+        OUTPAR(7) = X + DR * COS(PHI)
+        OUTPAR(8) = Y + DR * SIN(PHI)
+      ENDIF
+ 
+C-----------------------------------------------------------------------
+      OUTPAR( 1) = CURPAR(1)
+      OUTPAR( 2) = GAMMAN
+      OUTPAR( 5) = HNEW
+      OUTPAR( 9) = GEN
+      OUTPAR(10) = ALEVEL
+ 
+C  REGULAR END OF UPDATE
+      IRET2 = 0
+ 
+ 
+      IF (DEBUG) WRITE(MDEBUG,458) (OUTPAR(I),I=1,9)
+  458 FORMAT(' UPDATE: OUTPAR=',1P,9E10.3)
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/uphi.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/uphi.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/uphi.f	(revision 4308)
@@ -0,0 +1,124 @@
+      SUBROUTINE UPHI(IENTRY,LVL)
+C                                VERSION 4.00  --  26 JAN 1986/1900
+C******************************************************************
+C   UPHI STANDS FOR 'UNIFORM PHI DISTRIBUTION'.
+C   SET COORDINATES FOR NEW PARTICLE OR RESET DIRECTION COSINES OF
+C   OLD ONE.  GENERATE RANDOM AZIMUTH SELECTION AND REPLACE THE
+C   DIRECTION COSINES WITH THEIR NEW VALUES.
+C******************************************************************
+*KEEP,EPCONT.
+      COMMON/EPCONT/   EDEP,RATIO,TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,IDISC,
+     *                 IROLD,IRNEW,RHOFAC, EOLD,ENEW,EKE,ELKE,BETA2,GLE,
+     *                 TSCAT,IAUSFL
+      DOUBLE PRECISION EDEP,RATIO
+      REAL             TSTEP,TUSTEP,USTEP,TVSTEP,VSTEP,RHOFAC,EOLD,ENEW,
+     *                 EKE,ELKE,BETA2,GLE,TSCAT
+      INTEGER          IDISC,IROLD,IRNEW,IAUSFL(29)
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,STACKE.
+      COMMON/STACKE/   E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
+      DOUBLE PRECISION E(60),TIME(60)
+      REAL             X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
+      INTEGER          IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
+*KEND.
+      COMMON/UPHIIN/SINC0,SINC1,SIN0(20002),SIN1(20002)
+      COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
+      SAVE A,B,C
+      IF((IENTRY.EQ.2))GO TO1070
+      IF((IENTRY.EQ.3))GO TO1080
+1090  LTHETA=SINC1*THETA+SINC0
+      SINTHE=SIN1(LTHETA)*THETA+SIN0(LTHETA)
+      CTHET=PI5D2-THETA
+      LCTHET=SINC1*CTHET+SINC0
+      COSTHE=SIN1(LCTHET)*CTHET+SIN0(LCTHET)
+C   USE THE FOLLOWING ENTRY IF SINTHE AND COSTHE ARE ALREADY KNOWN.
+C   SELECT PHI UNIFORMLY OVER THE INTERVAL (0,TWO PI). THEN USE
+C   PWLF OF SIN FUNCTION TO GET SIN(PHI) AND COS(PHI).  THE COSINE
+C   IS GOTTEN BY COS(PHI)=SIN(9*PI/4 - PHI).
+1070  CALL RMMAR(RNNO38,1,2)
+      PHI=RNNO38*TWOPI
+      LPHI=SINC1*PHI+SINC0
+      SINPHI=SIN1(LPHI)*PHI+SIN0(LPHI)
+      CPHI=PI5D2-PHI
+      LCPHI=SINC1*CPHI+SINC0
+      COSPHI=SIN1(LCPHI)*CPHI+SIN0(LCPHI)
+C   USE THE FOLLOWING ENTRY FOR THE SECOND OF TWO PARTICLES WHEN WE
+C   KNOW TWO PARTICLES HAVE A RELATIONSHIP IN THEIR CORRECTIONS.
+C   NOTE: SINTHE AND COSTHE CAN BE CHANGED OUTSIDE THROUGH COMMON.
+C   LVL IS A PARAMETER TELLING WHICH PARTICLES TO WORK WITH.
+C   THETA (SINTHE AND COSTHE) ARE ALWAYS RELATIVE TO THE DIRECTION
+C   OF THE INCIDENT PARTICLE BEFORE ITS DIRECTION WAS ADJUSTED.
+C   THUS WHEN TWO PARTICLES NEED TO HAVE THEIR DIRECTIONS COMPUTED,
+C   THE ORIGINAL INCIDENT DIRECTION IS SAVED IN THE VARIABLE A,B,C
+C   SO THAT IT CAN BE USED ON BOTH CALLS.
+C   LVL=1 -- OLD PARTICLE, SAVE ITS DIRECTION AND ADJUST IT
+C   LVL=2 -- NEW PARTICLE. ADJUST DIRECTION USING SAVED A,B,C
+C   LVL=3 -- BREMSSTRAHLUNG GAMMA.  SAVE ELECTRON DIRECTION (NEXT
+C   TO TOP OF STACK), AND THEN ADJUST GAMMA DIRECTION.
+1080  IF (LVL.EQ.2) GO TO1100
+      IF((LVL.EQ.3))GO TO1110
+1120  A=U(NP)
+      B=V(NP)
+      C=W(NP)
+      GO TO 1130
+1110  A=U(NP-1)
+      B=V(NP-1)
+      C=W(NP-1)
+1100  X(NP)=X(NP-1)
+      Y(NP)=Y(NP-1)
+      Z(NP)=Z(NP-1)
+      LPCTE(NP)=LPCTE(NP-1)
+      IR(NP)=IR(NP-1)
+      DNEAR(NP)=DNEAR(NP-1)
+      TIME(NP)=TIME(NP-1)
+      IGEN(NP)=IGEN(NP-1)
+      IOBS(NP)=IOBS(NP-1)
+1130  SINPS2=A*A+B*B
+      IF (SINPS2.LT.1.0E-10) THEN
+       U(NP)=SINTHE*COSPHI
+       V(NP)=SINTHE*SINPHI
+       W(NP)=C*COSTHE
+      ELSE
+       SINPSI=SQRT(SINPS2)
+       US=SINTHE*COSPHI
+       VS=SINTHE*SINPHI
+       SINDEL=B*(1./SINPSI)
+       COSDEL=A*(1./SINPSI)
+       U(NP)=C*COSDEL*US-SINDEL*VS+A*COSTHE
+       V(NP)=C*SINDEL*US+COSDEL*VS+B*COSTHE
+       W(NP)=-SINPSI*US+C*COSTHE
+      END IF
+      RADINV=1.5-0.5*(U(NP)**2+V(NP)**2+W(NP)**2)
+      U(NP)=U(NP)*RADINV
+      V(NP)=V(NP)*RADINV
+      W(NP)=W(NP)*RADINV
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/utqsea.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/utqsea.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/utqsea.f	(revision 4308)
@@ -0,0 +1,128 @@
+      SUBROUTINE UTQSEA(X1,X2,X3)
+ 
+C-----------------------------------------------------------------------
+C  UT(ILITY ROUTINE) SEA (QUARK STRUCTURE FUNCTION)
+C
+C  SEA QUARK STRUCTURE FUNCTION INTEGRAL
+C  RETURNS INTEGRAL (XSE(1)->XSE(I)) OF FU(Z) DZ
+C
+C  THIS SUBROUTINE IS CALLED FROM VENLNK
+C
+C  DESIGN   : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      PARAMETER (NSTRU=2049)
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /STRU2/   DELTA0,DELTA1,QSEH(NSTRU),QSEPI(NSTRU)
+     *                ,QVAH(NSTRU),QVAPI(NSTRU),XSE(NSTRU),XVA(NSTRU)
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'UTQSEA:'
+ 
+      X0 = 0.
+      N = NSTRU
+      IF ( ISH .GE. 90 ) THEN
+        IF ( X1.LT.X0 .OR. X2.LT.X1 .OR. X3.LT.X2 ) THEN
+          CALL UTMSG('UTQSEA')
+          WRITE(IFCH,*)'   XI=',X0,X1,X2,X3
+          CALL UTMSGF
+        ENDIF
+      ENDIF
+      I1 = N/3
+      I2 = 2*N/3
+      FAC1 = (X1-X0)/FLOAT(I1-1)
+      DO 11 I=1,I1-1
+        XSE(I)=(I-1.)*FAC1+X0
+ 11   CONTINUE
+      FAC2 = (X2-X1)/FLOAT(I2-I1)
+      DO 12 I=I1,I2-1
+        XSE(I)=FLOAT(I-I1)*FAC2 +X1
+ 12   CONTINUE
+      FAC3 = (X3-X2)/FLOAT(N-I2)
+      DO 13 I=I2,N
+        XSE(I)=MIN( FLOAT(I-I2)*FAC3 +X2, 0.99999999 )
+ 13   CONTINUE
+ 
+      XCUT2 = XCUT**2
+      XCUT4 = XCUT2**2
+      XCUT6 = XCUT2*XCUT4
+      CUTLOG = LOG(XCUT)
+C  COEFFICIENTS FOR HADRONIC SEA QUARK STRUCTURE FUNCTION
+      AH0 = -8. + 37.333333*XCUT2 - 29.866667*XCUT4 + 3.65714286*XCUT6
+      AH1 = 14. - 26.25*XCUT2 + 8.75*XCUT4 - 0.2734375*XCUT6
+      AH2 = -18.666667 + 14.933333*XCUT2 - 1.82857143*XCUT4
+      AH3 = 17.5 - 5.8333333*XCUT2 + 0.182291667*XCUT4
+      AH4 = -11.2 + 1.37142857*XCUT2
+      AH5 = 4.6666667 - 0.14583333*XCUT2
+      AH6 = -1.14285714
+      AH7 = 0.125
+      QAH = 1. - AH1 * XCUT2
+      AHCUT = AH0 * XCUT
+C  COEFFICIENTS FOR PIONIC SEA QUARK STRUCTURE FUNCTION
+      API0 = -5. + 6.6666667*XCUT2 - 0.53333333*XCUT4
+      API1 = 5. - 1.875*XCUT2
+      API2 = -3.3333333 + 0.26666667*XCUT2
+      API3 = 1.25
+      API4 = -0.2
+      QAPI = 1. - API1 * XCUT2
+      APICUT = API0 * XCUT
+ 
+      QSEH(1)  = 0.
+      QSEPI(1) = 0.
+      DO 2 I=2,N
+        Z = XSE(I)
+        ROOT     = SQRT(Z**2 + XCUT2)
+        ROOTLG   = LOG( Z + ROOT ) - CUTLOG
+        QSEH(I)  = 1.265 * ( QAH * ROOTLG - AHCUT
+     *             + ROOT * (AH0 + Z*(AH1 + Z*(AH2 + Z*(AH3
+     *             + Z*(AH4 + Z*(AH5 + Z*(AH6 + Z*AH7))))))) )
+        QSEPI(I) = 0.9 * ( QAPI * ROOTLG - APICUT
+     *             + ROOT * (API0+Z*(API1+Z*(API2+Z*(API3+Z*API4)))) )
+ 2    CONTINUE
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/utqval.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/utqval.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/utqval.f	(revision 4308)
@@ -0,0 +1,118 @@
+      SUBROUTINE UTQVAL(Q,NEND)
+ 
+C-----------------------------------------------------------------------
+C  UT(ILITY ROUTINE) VAL(ENCE QUARK STRUCTURE FUNCTION)
+C
+C  VALENCE QUARK STRUCTURE FUNCTION
+C  RETURNS  INTEGRAL (XVA(1)->XVA(I)) FU(Z) DZ
+C  THIS INTEGRAL IS ONLY CALCULATED FOR SMALL VALUES OF XVA UP TO 25
+C  TIMES THE VALUE OF XCUT. FOR LARGER VALUES THE TABULATED VALUES OF
+C  DATASET 'VENUSDAT' ARE TAKEN AND CORRECTED BY THE CONSTANT SHIFT
+C  DELTA0 (FOR HADRONS) OR DELTA1 (FOR PIONS).
+C
+C  THIS SUBROUTINE IS CALLED FROM VENLNK
+C
+C  DESIGN   : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      PARAMETER (NSTRU=2049)
+      COMMON /CIPIO/   IPIO
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /STRU2/   DELTA0,DELTA1,QSEH(NSTRU),QSEPI(NSTRU)
+     *                ,QVAH(NSTRU),QVAPI(NSTRU),XSE(NSTRU),XVA(NSTRU)
+ 
+      DIMENSION        Y0(9),Y1(9),Q(NEND)
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'UTQVAL: IPIO,NEND=',IPIO,NEND
+ 
+      XCUT2 = XCUT**2
+      Q(1)  = 0.
+      Z = XVA(1)
+      DENOMI = 1. / SQRT(Z**2 + XCUT2)
+ 
+      IF ( IPIO .EQ. 0 ) THEN
+C  CALCULATE THE FIRST NEND VALUES OF STRUCTURE FUNCTION FOR HADRONS
+        Y0(1) = 0.
+        DO 3 I=2,NEND
+          FACT = (XVA(I) - Z) * 0.125
+          DO 2 J=2,8
+            Z = Z + FACT
+            DENOMI = 1. / SQRT(Z**2 + XCUT2)
+            Y0(J) = (1.-Z)**3.46 * Z**.419 * (2.74793064*Z + 0.62452969)
+     *              * DENOMI
+ 2        CONTINUE
+          Z = XVA(I)
+          DENOMI = 1. / SQRT(Z**2 + XCUT2)
+          Y0(9) = (1.-Z)**3.46 * Z**.419 * (2.74793064*Z + 0.62452969)
+     *             * DENOMI
+C  INTEGRATION AFTER BODE'S RULE (ABRAMOWITZ + STEGUN, HANDBOOK OF
+C  MATHEMATICAL FUNCTIONS, DOVER PUBLICATIONS (1970), FORMULA 25.4.18)
+          Q(I) =  2.8218694E-4 * FACT *       ( 989. * (Y0(1) + Y0(9))
+     *            +  5888. * (Y0(2) + Y0(8)) -  928. * (Y0(3) + Y0(7))
+     *            + 10496. * (Y0(4) + Y0(6)) - 4540. *  Y0(5) )
+     *                         + Q(I-1)
+          Y0(1) = Y0(9)
+ 3      CONTINUE
+ 
+      ELSE
+C  CALCULATE THE FIRST NEND VALUES OF STRUCTURE FUNCTION FOR PIONS
+        Y1(1) = 0.
+        DO 5 I=2,NEND
+          FACT = (XVA(I) - Z) * 0.125
+          DO 4 J=2,8
+            Z = Z + FACT
+            DENOMI = 1. / SQRT(Z**2 + XCUT2)
+            Y1(J) = (1.-Z)**0.7 * Z**.4 * DENOMI
+ 4        CONTINUE
+          Z = XVA(I)
+          DENOMI = 1. / SQRT(Z**2 + XCUT2)
+          Y1(9) = (1.-Z)**0.7 * Z**.4 * DENOMI
+C  INTEGRATION AFTER BODE'S RULE (ABRAMOWITZ + STEGUN, HANDBOOK OF
+C  MATHEMATICAL FUNCTIONS, DOVER PUBLICATIONS (1970), FORMULA 25.4.18)
+          Q(I) =  2.8218694E-4 * FACT *       ( 989. * (Y1(1) + Y1(9))
+     *            +  5888. * (Y1(2) + Y1(8)) -  928. * (Y1(3) + Y1(7))
+     *            + 10496. * (Y1(4) + Y1(6)) - 4540. *  Y1(5) )
+     *            * 0.1730725  + Q(I-1)
+          Y1(1) = Y1(9)
+ 5      CONTINUE
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vapor.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vapor.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vapor.f	(revision 4308)
@@ -0,0 +1,233 @@
+      SUBROUTINE VAPOR(MAPROJ,INEW,JFIN,ITYP,PFRX,PFRY)
+ 
+C-----------------------------------------------------------------------
+C  (E)VAPOR(ATION OF NUCLEONS AND ALPHA PARTICLES FROM FRAGMENT)
+C
+C  TREATES THE REMAINING UNFRAGMENTED NUCLEUS
+C  EVAPORATION FOLLOWING CAMPI APPROXIMATION
+C  SEE: X. CAMPI AND J. HUEFNER, PHYS.REV. C24 (1981) 2199
+C  AND  J.J. GAIMARD, THESE UNIVERSITE PARIS 7, (1990)
+C  THIS SUBROUTINE IS CALLED FROM SDPM AND VSTORE
+C
+C  ARGUMENTS INPUT:
+C   MAPROJ       = NUMBER OF NUCLEONS OF PROJECTILE
+C   INEW         = PARTICLE TYPE OF SPECTATOR FRAGMENT
+C  ARGUMENTS OUTPUT:
+C   JFIN         = NUMBER OF FRAGMENTS
+C   ITYP(1:JFIN) = NATURE (PARTICLE CODE) OF FRAGMENTS (GEANT)
+C   PFRX(1:JFIN) = TRANSVERSE MOMENTUM OF FRAGMENTS IN X-DIRECTION
+C   PFRY(1:JFIN) = TRANSVERSE MOMENTUM OF FRAGMENTS IN Y-DIRECTION
+C
+C  DESIGN  : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT NONE
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,DPMFLG.
+      COMMON /DPMFLG/  NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+      INTEGER          NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      DOUBLE PRECISION PFR(60),PFRX(60),PFRY(60)
+      DOUBLE PRECISION AFIN,AGLH,APRF,BGLH,EEX,PHIFR,RANNOR,SPFRX,SPFRY
+      INTEGER          ITYP(60),IARM,INEW,ITYPRM,INRM,IS,IZRM,JC,JFIN,
+     *                 K,L,LS,MAPROJ,MF,NFIN,NINTA,NNUC,NPRF,NSTEP
+      EXTERNAL         RANNOR
+C-----------------------------------------------------------------------
+ 
+      IF (DEBUG) WRITE(MDEBUG,*) 'VAPOR : MAPROJ,INEW = ',MAPROJ,INEW
+ 
+      ITYPRM = INEW
+      NPRF   = INEW/100
+      NINTA  = MAPROJ - NPRF
+      IF ( NINTA .EQ. 0 ) THEN
+C  NO NUCLEON HAS INTERACTED
+        JFIN    = 1
+        PFR(1)  = 0.D0
+        ITYP(1) = INEW
+        IF (DEBUG) WRITE(MDEBUG,*) 'VAPOR : JFIN,NINTA= ',JFIN,NINTA
+        RETURN
+      ENDIF
+ 
+C  EXCITATION ENERGY EEX OF PREFRAGMENT
+C  SEE: J.J. GAIMARD, THESE UNIVERSITE PARIS 7, (1990), CHPT. 4.2
+      EEX = 0.D0
+      CALL RMMAR(RD,2*NINTA,1)
+      DO  22  L = 1,NINTA
+        IF ( RD(NINTA+L) .LT. RD(L) ) RD(L) = 1. - RD(L)
+        EEX = EEX + RD(L)
+ 22   CONTINUE
+C  DEPTH OF WOODS-SAXON POTENTIAL TO FERMI SURFACE IS 0.040 GEV
+      IF (DEBUG) WRITE(MDEBUG,*)'VAPOR : EEX = ',SNGL(EEX*0.04D0),' GEV'
+C  EVAPORATION: EACH EVAPORATION STEP NEEDS ABOUT 0.020 GEV, THEREFORE
+C  NSTEP IS EEX * 0.04/0.02 = EEX * 2.
+      NSTEP = INT(EEX*2.D0)
+ 
+      IF ( NSTEP .LE. 0 ) THEN
+C  EXCITATION ENERGY TOO SMALL, NO EVAPORATION
+        JFIN = 1
+        PFR(1)  = 0.D0
+        ITYP(1) = INEW
+        IF (DEBUG) WRITE(MDEBUG,*) 'VAPOR : JFIN,EEX = ',JFIN,SNGL(EEX)
+        RETURN
+      ENDIF
+ 
+C  AFIN IS ATOMIC NUMBER OF FINAL NUCLEUS
+      APRF = FLOAT(NPRF)
+      AFIN = APRF - 1.6D0 * FLOAT(NSTEP)
+      NFIN = MAX( INT(AFIN+0.5D0), 0 )
+C  CORRESPONDS TO DEFINITION; FRAGMENTATION-EVAPORATION
+C  CONVOLUTION EMU07 /MODEL ABRASION EVAPORATION (JNC FZK APRIL 94)
+C  NNUC IS NUMBER OF EVAPORATING NUCLEONS
+      NNUC = NPRF - NFIN
+      IF (DEBUG) WRITE(MDEBUG,*) 'VAPOR : NFIN,NNUC = ',NFIN,NNUC
+      JC = 0
+ 
+      IF     ( NNUC .LE. 0 ) THEN
+C  NO EVAPORATION
+        JFIN = 1
+        PFR(1)  = 0.D0
+        ITYP(1) = INEW
+        RETURN
+ 
+      ELSEIF ( NNUC .GE. 4 ) THEN
+C  EVAPORATION WITH FORMATION OF ALPHA PARTICLES POSSIBLE
+C  IARM, IZRM, INRM ARE NUMBER OF NUCLEONS, PROTONS, NEUTRONS OF
+C  REMAINDER
+        DO  31  LS = 1,NSTEP
+          IARM = ITYPRM/100
+          IF ( IARM .LE. 0 ) GOTO 100
+          IZRM = MOD(ITYPRM,100)
+          INRM = IARM - IZRM
+          JC = JC + 1
+          CALL RMMAR(RD,2,1)
+          IF ( RD(1).LT.0.2 .AND. IZRM.GE.2 .AND. INRM.GE.2 ) THEN
+            ITYP(JC) = 402
+            NNUC   = NNUC - 4
+            ITYPRM = ITYPRM - 402
+          ELSE
+            IF ( RD(2)*(IZRM+INRM) .LT. IZRM ) THEN
+              ITYP(JC) = 14
+              ITYPRM   = ITYPRM - 101
+            ELSE
+              ITYP(JC) = 13
+              ITYPRM   = ITYPRM - 100
+            ENDIF
+            NNUC = NNUC - 1
+          ENDIF
+          IF ( NNUC .LE. 0 ) GOTO 50
+ 31     CONTINUE
+      ENDIF
+ 
+      IF ( NNUC .LT. 4 ) THEN
+C  EVAPORATION WITHOUT FORMATION OF ALPHA PARTICLES
+        CALL RMMAR(RD,NNUC,1)
+        DO  32  IS = 1,NNUC
+          IARM = ITYPRM/100
+          IF ( IARM .LE. 0 ) GOTO 100
+          IZRM = MOD(ITYPRM,100)
+          JC = JC + 1
+          IF ( RD(IS)*IARM .LT. IZRM ) THEN
+            ITYP(JC) = 14
+            ITYPRM   = ITYPRM - 101
+          ELSE
+            ITYP(JC) = 13
+            ITYPRM   = ITYPRM - 100
+          ENDIF
+ 32     CONTINUE
+      ENDIF
+ 
+ 50   CONTINUE
+      JC = JC + 1
+      IF     ( ITYPRM .GT. 101 ) THEN
+        ITYP(JC) = ITYPRM
+      ELSEIF ( ITYPRM .EQ. 101 ) THEN
+        ITYP(JC) = 14
+      ELSEIF ( ITYPRM .EQ. 100 ) THEN
+        ITYP(JC) = 13
+      ELSE
+        JC = JC - 1
+        IF ( ITYPRM .NE. 0 ) WRITE(MONIOU,*)
+     *                  'VAPOR : ILLEGAL PARTICLE ITYPRM =',ITYPRM
+      ENDIF
+ 
+ 100  JFIN = JC
+      IF (DEBUG) WRITE(MDEBUG,*) 'VAPOR : NO   ITYP           PFR'
+      IF     ( NFRAGM .EQ. 2 ) THEN
+C  EVAPORATION WITH PT AFTER PARAMETRIZED JACEE DATA
+        DO  150  MF = 1,JFIN
+          PFR(MF) = RANNOR(0.088D0,0.044D0)
+          IF (DEBUG) WRITE(MDEBUG,*) MF,ITYP(MF),SNGL(PFR(MF))
+ 150    CONTINUE
+      ELSEIF ( NFRAGM .EQ. 3 ) THEN
+C  EVAPORATION WITH PT AFTER GOLDHABER'S MODEL (PHYS.LETT.53B(1974)306)
+        DO  160  MF = 1,JFIN
+          K = MAX( 1, ITYP(MF)/100 )
+          BGLH  = K * (MAPROJ - K) / FLOAT(MAPROJ-1)
+C  THE VALUE 0.103 [GEV] IS SIGMA(0)=P(FERMI)/SQRT(5.)
+*         AGLH = 0.103D0 * SQRT( BGLH )
+C  THE VALUE 0.090 [GEV] IS EXPERIMENTALLY DETERMINED SIGMA(0)
+          AGLH = 0.090D0 * SQRT( BGLH )
+          PFR(MF) = RANNOR(0.D0,AGLH)
+          IF (DEBUG) WRITE(MDEBUG,*) MF,ITYP(MF),SNGL(PFR(MF))
+ 160    CONTINUE
+      ELSE
+C  EVAPORATION WITHOUT TRANSVERSE MOMENTUM
+        DO  165  MF = 1,JFIN
+          PFR(MF) = 0.D0
+          IF (DEBUG) WRITE(MDEBUG,*) MF,ITYP(MF),SNGL(PFR(MF))
+ 165    CONTINUE
+      ENDIF
+C  CALCULATE RESIDUAL TRANSVERSE MOMENTUM
+      SPFRX = 0.D0
+      SPFRY = 0.D0
+      CALL RMMAR(RD,JFIN,1)
+      DO  170  MF = 1,JFIN
+        PHIFR = PI * RD(MF)
+        PFRX(MF) = PFR(MF) * COS(PHIFR)
+        PFRY(MF) = PFR(MF) * SIN(PHIFR)
+        SPFRY = SPFRY + PFRY(MF)
+        SPFRX = SPFRX + PFRX(MF)
+ 170  CONTINUE
+C  CORRECT ALL TRANSVERSE MOMENTA FOR MOMENTUM CONSERVATION
+      SPFRX = SPFRX / JFIN
+      SPFRY = SPFRY / JFIN
+      DO  180  MF = 1,JFIN
+        PFRX(MF) = PFRX(MF) - SPFRX
+        PFRY(MF) = PFRY(MF) - SPFRY
+ 180  CONTINUE
+ 
+      IF (DEBUG) WRITE(MDEBUG,*) 'VAPOR : NINTA,JFIN= ',NINTA,JFIN
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vendat.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vendat.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vendat.f	(revision 4308)
@@ -0,0 +1,24 @@
+      BLOCK DATA VENDAT
+ 
+C-----------------------------------------------------------------------
+C  VEN(US) DAT(A INITIALIZATION)
+C
+C  INITIALIZES DATA FOR VENUS LINK
+C
+C  DESIGN   : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+      COMMON /VENLIN/  PTQ1,PTQ2,PTQ3,QMUST1,QMUST2,QMUST3
+     *                ,IDTABL(100)
+ 
+      DATA IDTABL/
+     *   10,  -12,   12,    0,  -14,   14,  110,  120, -120,  -20,
+     *  130, -130, 1220, 1120,-1120,   20,  220, 2130, 1130, 1230,
+     * 2230, 1330, 2330, 3331,-1220,-2130,-1130,-1230,-2230,-1330,
+     *-2330,-3331,  -16,   16, -240,  240, -140,  140, -340,  340,
+     * 2140,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+     *  111,  121, -121, 1111, 1121, 1221, 2221,-1111,-1121,-1221,
+     *-2221,  231,  131, -131, -231,   11,  -11,   13,  -13,    0,
+     *  220,  220,  220,  220,    0,             25*0          /
+ 
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/venini.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/venini.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/venini.f	(revision 4308)
@@ -0,0 +1,919 @@
+      SUBROUTINE VENINI
+ 
+C-----------------------------------------------------------------------
+C  VEN(US) INI(TIALISATION)
+C
+C  FIRST INITIALIZATION OF VENUS ARRAYS AND PARAMETERS
+C  THIS SUBROUTINE IS CALLED FROM START
+C
+C  DESIGN   : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+*KEEP,AIR.
+      COMMON /AIR/     COMPOS,PROBTA,AVERAW,AVOGAD
+      DOUBLE PRECISION COMPOS(3),PROBTA(3),AVERAW,AVOGAD
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,VENPAR.
+      COMMON /VENPAR/  PARVAL,NPARAM,PARCHA
+      REAL             PARVAL(100)
+      INTEGER          NPARAM
+      CHARACTER*6      PARCHA(100)
+*KEEP,VENUS.
+      COMMON /VENUS/   ISH0,IVERVN,MTAR99,FVENUS,FVENSG
+      INTEGER          ISH0,IVERVN,MTAR99
+      LOGICAL          FVENUS,FVENSG
+*KEND.
+ 
+      PARAMETER (KOLLMX=2500)
+      PARAMETER (MXEPS=10)
+      PARAMETER (MXTAU=4)
+      PARAMETER (MXVOL=10)
+      PARAMETER (NGAU=129)
+      PARAMETER (NDEP=129)
+      PARAMETER (NDET=129)
+      PARAMETER (NPTF=129)
+      PARAMETER (NPTJ=129)
+      PARAMETER (NSTRU=2049)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CDEN/    MASSNR,RMX,R0
+      COMMON /CGAU/    QGAU(NGAU),XGAU(NGAU)
+      COMMON /CIUTOT/  IUTOTC,IUTOTE
+      COMMON /CJINTC/  CLUST(MXTAU,MXVOL,MXEPS)
+      COMMON /CJINTD/  VOLSUM(MXTAU),VO2SUM(MXTAU),NCLSUM(MXTAU)
+      COMMON /CLEP/    ICINPU,IDSCAT
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /COL/     BIMP,BMAX,COORD(4,KOLLMX),DISTCE(KOLLMX)
+     *                ,QDEP(NDEP),QDET14(NDET),QDET16(NDET),QDET40(NDET)
+     *                ,QDET99(NDET),RMPROJ,RMTARG(4),XDEP(NDEP)
+     *                ,XDET14(NDET),XDET16(NDET),XDET40(NDET)
+     *                ,XDET99(NDET)
+     *                ,KOLL,LTARG,NORD(KOLLMX),NPROJ,NRPROJ(KOLLMX)
+     *                ,NRTARG(KOLLMX),NTARG
+      COMMON /CPTF/    FPTFS,FPTFSS,FPTFU,FPTFUS,FPTFUU
+     *                ,QPTFS(NPTF),QPTFSS(NPTF),QPTFU(NPTF),QPTFUS(NPTF)
+     *                ,QPTFUU(NPTF),XPTF(NPTF)
+      COMMON /CPTJ/    QPTJ(NPTJ),XPTJ(NPTJ)
+      COMMON /CPTLU/   NPTLU
+      COMMON /CQUAMA / QUAMA
+      DOUBLE PRECISION SEEDC,SEEDI
+      COMMON /CSEED/   SEEDC,SEEDI
+      COMMON /CVSN/    IVERSN
+      COMMON /EPSCR/   EPSCRI
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /NEVNT/   NEVNT
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /PARO3/   ASUHAX(7),ASUHAY(7),OMEGA,SIGPPD,SIGPPE,UENTRO
+     *                ,IWZZZZ
+      COMMON /PARO4/   GRICEL,GRIDEL,GRIGAM,GRIRSQ,GRISLO
+      COMMON /PARO5/   DELEPS,DELVOL
+      COMMON /QUARKM/  SMAS,SSMAS,USMAS,UUMAS
+      COMMON /STRU2/   DELTA0,DELTA1,QSEH(NSTRU),QSEPI(NSTRU)
+     *                ,QVAH(NSTRU),QVAPI(NSTRU),XSE(NSTRU),XVA(NSTRU)
+      COMMON /VENLIN/  PTQ1,PTQ2,PTQ3,QMUST1,QMUST2,QMUST3
+     *                ,IDTABL(100)
+ 
+      EXTERNAL         SDENSI,SGAU,SPTF,SPTJ
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'VENINI:'
+ 
+      IFMT = MONIOU
+      IFCH = MDEBUG
+      ICHOIC = 2
+      NEVNT = 0
+ 
+C     VERSION NUMBER
+C     --------------
+         IVERSN=4125
+         IVERVN=IVERSN
+ 
+C     FRAGMENTATION PARAMETERS/OPTIONS
+C     --------------------------------
+C     PROB. FOR U OR D QUARK PRODUCTION ( =(1-P_STRANGE)/2 ):
+         PUD=0.455
+C     QQ-QQBAR PROBABILITY
+         PDIQUA=0.12
+C     SPIN PROBABILITIES (FOR LIGHT AND HEAVY FLAVOURS):
+         PSPINL=0.50
+         PSPINH=0.75
+C     ISOSPIN PROBABILITY:
+         PISPN=0.50
+C     OPTION FOR P_T DISTRIBUTION (1=EXPONENTIAL,2=GAUSSIAN):
+         IOPTF=1
+C     AVERAGE P_TRANSVERSE
+         PTF=0.40
+C     STRING TENSION:
+         TENSN=1.0
+C     STRING DECAY PARAMETER
+         PAREA=.60
+C     THRESHOLD RESONANCE -> STRING
+         DELREM=1.0
+C     CUTOFF FOR KMAXOR BEYOND WHICH PDIQ=0 IN SR JSPLIT
+         KUTDIQ=4
+C     OPTION FOR BREAKING PROCEDURE (1=AMOR,2=SAMBA)
+         IOPBRK=1
+ 
+C     PROTON-PROTON PARAMETERS/OPTIONS
+C     --------------------------------
+C     OPTION FOR QUARK P_T DISTRIBUTION (1=EXPONENTIAL,2=GAUSSIAN,3=POWE
+         IOPTQ=2
+C     MEAN TRANSVERSE MOMENTUM OF QUARKS
+C      (Q1+Q2*LN(E)+Q3*LN(E)**2, E=SQRT(S)):
+         PTQ1=0.260
+         PTQ2=0.
+         PTQ3=0.
+C     PROBABILITY FOR SEMIHARD INTERACTION (NOT USED IF NEGATIVE):
+C        PHARD=-1.0
+C     CUTOFF PARAMETER FOR P_T DISTR. FOR SEMIHARD INTERACTIONS:
+         PTH=1.0
+C     EFFECTIVE RATIO OF STRANGE SEA OVER U SEA:
+         RSTRAS=0.
+C     EFFECTIVE CUTOFF MASS IN STRUCTURE FUNCTIONS:
+         CUTMSQ=2.0
+         CUTMSS=0.001
+C     VALENCE QUARK FRACTION IN CASE OF DIFFRACTIVE INTERACTION
+         PVALEN=0.30
+C     PHASE SPACE PARAMETERS:
+         DELMSS=0.300
+ 
+C     GRIBOV-REGGE-THEORY PARAMETERS
+C     ------------------------------
+C     GAMMA (IN FM**2):
+         GRIGAM=3.64*0.04
+C     R**2(IN FM**2):
+         GRIRSQ=3.56*0.04
+C     DELTA=INTERCEPT OF REGGE TRAJECTORY-1:
+         GRIDEL=0.07
+C     SLOPE OF REGGE TRAJECTORY (IN FM**2):
+         GRISLO=0.25*0.04
+C     C (DETERMINES RELATIVE WEIGHT OF ELASTIC AND DIFFR CROSS SCTN):
+         GRICEL=1.5
+ 
+C     NUCLEUS-NUCLEUS PARAMETERS
+C     --------------------------
+C     HARD CORE DISTANCE:
+         CORE=0.8
+C     JPSI NUCLEON CROSS SECTION (FM**2):
+         SIGJ=0.2
+ 
+C     RESCATTERING PARAMETERS
+C     -----------------------
+C     REACTION TIME:
+         TAUREA=1.5
+C     OVERLAP PARAMETER (NOT USED IF NEGATIVE)
+         OVERLP=-1.0
+C     BARYON RADIUS:
+         RADIAC=0.65
+C     MESON RADIUS:
+         RADIAS=0.35
+C     CRITICAL ENERGY DENSITY (<0 TO AVOID SECONDARY INTERACTIONS):
+         EPSCRI=1.0
+C     BARYON ENERGY DENSITY
+         EPSBAR=2.0
+C     INTERACTION MASS:
+         AMSIAC=0.8
+C     OPTION TO CALL JINTA1 (1) OR JINTA2 (2)
+         IOJINT=2
+C     PRINT OPTIONS
+         AMPRIF=0.
+         DELVOL=1.0
+         DELEPS=1.0
+ 
+C     CLUSTER DECAY PARAMETERS/OPTIONS
+C     --------------------------------
+C     CORRELATION LENGTH
+C     (CORLEN>1.0: FIRST FIX SHORT CLUSTER BREAKING
+         CORLEN=1.0
+C     MINIMUM MASS
+         AMUSEG=3.0
+C     BAG CONSTANT -1/4
+         BAG4RT=0.200
+C     OPTION FOR ENTROPY CALCULATION:
+C      IOPENT=0: ZERO ENTROPY
+C      IOPENT=1: OSCILLATOR MODEL (0 FOR K.LE.UENTRO)
+C      IOPENT=2: FERMI GAS WITH CONST VOLUME (0 FOR K.LE.UENTRO)
+C      IOPENT=3: FERMI GAS WITH CONST DENSITY (0 FOR K.LE.UENTRO)
+C      IOPENT=4: FERMI GAS WITH CONST VOLUME - NEW (0 FOR K.LE.UENTRO)
+C      IOPENT=5: RESONANCE GAS (HAGEDORN) (0 FOR U.LE.UENTRO)
+         IOPENT=5
+         UENTRO=4.0
+         KENTRO=100000
+C     DECAY TIME (COMOVING FRAME):
+         TAUNLL=1.0
+C     OSCILLATOR QUANTUM
+         OMEGA=0.500
+ 
+C     PRESENTLY NOT USED
+C     ------------------
+ 
+C     CLUSTER DECAY INITIALIZATIONS
+C     -----------------------------
+C     AVERAGE HADRON MASSES, TWO LOWEST MULTIPLETS (IF POSSIBLE):
+C     N/DELTA,LAMBDA/SIGMA,XI,OMEGA,PI/RHO,KAON,DELTA:
+         ASUHAX(1)=1.134
+         ASUHAX(2)=1.301
+         ASUHAX(3)=1.461
+         ASUHAX(4)=1.673
+         ASUHAX(5)=0.6125
+         ASUHAX(6)=0.7915
+         ASUHAX(7)=1.2320
+C     LOWEST MASSES:
+         ASUHAY(1)=0.940
+         ASUHAY(2)=1.200
+         ASUHAY(3)=1.322
+         ASUHAY(4)=1.673
+         ASUHAY(5)=0.1400
+         ASUHAY(6)=0.4977
+         ASUHAY(7)=1.2320
+ 
+C     TECHNICAL PARAMETERS
+C     --------------------
+C     DELTA_ZETA FOR /C4PTL/...WEIPTL()
+         DLZETA=0.5
+C     MIN TAU FOR SPACE-TIME EVOLUTION:
+         TAUMIN=0.
+C     MAX TAU FOR SPACE-TIME EVOLUTION
+         TAUMAX=10.0
+C     TAU STEPS FOR SPACE-TIME EVOTUTION (46+40)
+         NUMTAU=51
+C     RANGE FOR PT DISTRIBUTION
+         PTMX=6.0
+C     RANGE FOR GAUSS DISTRIBUTION
+         GAUMX=8.0
+C     PARAMETER DETERMINING RANGE FOR DENSITY DISTRIBUTION
+         FCTRMX=10.0
+C     TRY-AGAIN PARAMETER
+         NTRYMX=10
+C     MAX TIME FOR JPSI EVOLUTION
+         TAUMX=20.0
+C     TIME STEPS FOR JPSI EVOLUTION
+         NSTTAU=100
+ 
+C     OPTIONS
+C     -------
+C     OPTION FOR MINIMUM ENERGY IN SJCGAM:
+C       IOPENU = 1 : SUM OF HADRON MASSES
+C       IOPENU = 2 : BAG MODEL CURVE WITH MINIMUM AT NONZERO STRANGEN.
+         IOPENU=1
+C     PARAMETER THETA IN BERGER/JAFFE MASS FORMULA
+         THEMAS=0.51225
+C     SEA PROBABILITY (IF .LT. 0. THEN CALCULATED FROM STRUCTURE FNCTS)
+         PROSEA=-1.0
+C     INELASTIC PP CROSS SECTION (FM**2)
+C      (IF NEGATIVE: CALCULATED FROM GRIBOV-REGGE-THEORY):
+CDH      SIGPPI=-1.0
+C     MULTISTRING PARAMETER (Q1+Q2*LN(E)+Q3*LN(E)**2, E=SQRT(S)):
+C      (NOT USED IF RACPRO IS CALLED WITH 'GRI'-OPTION (DEFAULT))
+         QMUST1=0.50
+         QMUST2=0.
+         QMUST3=0.
+C     ENTRO() CALCULATED (1) OR FROM DATA (2)
+         IENTRO=2
+C     DUAL PARTON MODEL (1) OR NOT (ELSE)
+         IDPM=0
+C     ANTIQUARK COLOR EXCHANGE (1) OR NOT (0):
+         IAQU=1
+C     MINIMUM NUMBER OF VALENCE QUARKS:
+         NEQMN=-5
+C     MAXIMUM NUMBER OF VALENCE QUARKS:
+         NEQMX=5
+C     UPPER LIMIT FOR RAPIDITY INTERVAL FOR INTERMITTENCY ANALYSIS
+         YMXIMI=2.0
+C     CLEAN /CPTL/ IF NCLEAN > 0 (EVERY NCLEAN_TH TIME STEP)
+         NCLEAN=0
+C     TRAFO FROM PP-CM INTO LAB-SYSTEM (1) OR NOT (.NE.1)
+         LABSYS=1
+C     MAXIMUM NUMBER OF COLLISIONS:
+         NCOLMX=1000
+C     MAXIMUM RESONANCE SPIN (SPIN IN A GENARAL SENSE: MOD(/ID/,10))
+         MAXRES=99999
+C     MOMENTUM RESCALING (1=YES):
+         IRESCL=1
+C     NUE ENERGY
+         ELEPTI=43.00
+C     MUE  ENERGY
+         ELEPTO=26.24
+C     MUE ANGLE
+         ANGMUE=3.9645/180.*3.1415926
+C     JPSI TO BE PRODUCED (1) OR NOT (0):
+         JPSI=0
+C     JPSI FINAL STATE INTERACTION (1) OR NOT (0):
+         JPSIFI=0
+C     COLLISION TRIGGER (ONLY COLL BETWEEN KO1 AND KO2 ARE USED):
+         KO1KO2=00009999
+C     PRINT OPTION:
+C     ISH=14: CALL UTTIMA
+C     ISH=15: PRINTS PTLS READ FROM DATA FILE IN SR VEANLY
+C     ISH=16: PRINTS SEA PROB.
+C     ISH=17: PRINTS RANDOM NUMBERS
+C     ISH=18: SR JCLUDE, NO-PHASE-SPACE CLUSTERS
+C     ISH=19: SR AINITL, CALL SMASSP
+C     ISH=20: SR VEANLY, PRINTS EVT NR IF EVT IS ACCEPTED
+C     ISH=21: CREATES HISTOGRAM FOR SEA DISTRIBUTION
+C     ISH=22: SR JFRADE, MSG AFTER CALL UTCLEA
+C     ISH=23: CALL JINTFP
+C     ISH=24: CALL JINTCL
+C     ISH=25: CALL JCHPRT
+C     ISH=90,91,92,93,94,95: MORE AND MORE DETAILED MESSAGES.
+      IF ( DEBUG ) THEN
+        ISH  = ISH0
+      ELSE
+        ISH  = 0
+      ENDIF
+C     PRINT OPTION:
+C     ISHSUB=IJMN, IJ SPECIFIES LOCATION WHERE ISH=MN.
+C     IJ=01: SR JCLUDE
+C     IJ=02: SR JETGEN
+C     IJ=03: SR JFRADE, STARTING BEFORE FRAGMENTATION
+C     IJ=04: SR JDECAY
+C     IJ=05: SR JDECAX
+C     IJ=06: SR NUCOLL
+C     IJ=07: SR NUCOGE+-
+C     IJ=08: SR ASTORE
+C     IJ=09: SR JFRADE, STARTING AFTER FRAGMENTATION
+C     IJ=10: SR JFRADE, STARTING BEFORE DECAY
+C     IJ=11: SR JFRADE, STARTING AFTER INTERACTIONS
+C     IJ=12: SR JCENTR, ENTRO() IN DATA FORMAT
+C     IJ=13: SR JCENTP
+C     IJ=14: SR JDECAX IF CLUSTER DECAY
+C     IJ=15: SR JSPLIT
+C     IJ=16: SR JFRADE
+C     IJ=17: SR RACPRO
+C     IJ=18: SR UTCLEA
+C     IJ=19: SR JINTA1, JINTA2, AFTER CALL UTCLEA
+C     IJ=20: SR JDECAS
+C     IJ=21: SR JDECAS (WITHOUT JDECAX)
+         ISHSUB=0
+C     PRINT OPTION:
+C     IF ISHEVT.NE.0: FOR EVT#.NE.ISHEVT ISH IS SET TO 0
+         ISHEVT=0
+C     PRINT MARKS BETWEEN WHOM ISH IS SET TO ISH(INIT):
+         IPAGI=0
+C     VERIFY OPTION FOR INPUT READING:
+         IVI=1
+C     MAXIMUM IMPACT PARAMETER (BMAXIM=0=>CENTRAL):
+         BMAXIM=10000.
+C     MINIMUM IMPACT PARAMETER:
+         BMINIM=0.
+C     STORE ONLY STABLE PTL (0) OR ALSO PARENTS (1):
+         ISTMAX=0
+C     RANDOM GENERATOR SEED
+         SEEDI=ISEED(1,1)
+         SEEDC=ISEED(2,1)+1.D9*ISEED(3,1)
+C     SUPPRESSION (1) OR NOT OF MESSAGES
+         ISUP=0
+C     SUPPRESSION OF CALLING JFRADE (0). JFRADE=FRAGM+DECAY+RESCATTERING
+         IFRADE=1
+C..   DECAY SUPPRESSION. NDECAY SPECIFIES WHICH RESONANCES ARE NOT DECAY
+C..   0000001 : ALL RESONANCES
+C..   0000010 : K_SHORT/LONG (+-20)
+C..   0000100 : LAMBDA (+-2130)
+C..   0001000 : SIGMA (+-1130,+-2230)
+C..   0010000 : CASCADE (+-2330,+-1330)
+C..   0100000 : OMEGA (+-3331)
+C..   1000000 : PI0 (110)
+         NDECAY=1111110
+C..   DECAY SUPPRESSION. NDECAX SPECIFIES WHICH RESONANCES ARE NOT DECAY
+C..   0000001 : JPSI
+C..   0000010 : K_ZERO (+-230)
+C..   0000100 : DELTA (+-1111,+-1121,+-1221,+-2221)
+C..   0001000 : RHO,OMEGA,PHI (111,+-121,221,331)
+C..   0010000 : ETA (220)
+C..   0100000 : ETAPRIME (330)
+C..   1000000 : A0 (112), A+- (+-122)
+         NDECAX=0010000
+C..   DECAY SUPPRESSION. NDECAW SPECIFIES WHICH RESONANCES ARE NOT DECAY
+C..   0000001 : F0 (332)
+C..   0000010 : K* (+-131,+-231)
+         NDECAW=0
+C     FILL ZZZZ HISTOGRAMS (1) OR NOT (0)
+C        IWZZZZ=0
+C     FILL INTERMITTENCY HISTOGRAMS (1) OR NOT (0)
+C        IMIHIS=0
+C     FILL SPACE-TIME HISTOGRAMS (1) OR NOT (0)
+         ISPHIS=0
+C     FILL CLUSTER HISTOGRAMS (1) OR NOT (0)
+C        ICLHIS=0
+C     FILL JPSI HISTOGRAMS (1) OR NOT (0)
+C        IJPHIS=0
+C     RHO/RHO+PHI RATIO
+         RHOPHI=0.5
+C     WSPA: ALL PTLS (1) OR ONLY INTERACTING PTLS (ELSE)
+         ISPALL=1
+C     TMIN IN WSPA
+         WTMINI=-3.0
+C     T-STEP IN WSPA
+         WTSTEP=1.0
+C     ONLY CENTRAL POINT (1) OR LONGITUDINAL DISTRIBUTION (ELSE) IN WSPA
+         IWCENT=0
+C     QUARK MASSES
+         SMAS=0.
+         UUMAS=0.
+         USMAS=0.
+         SSMAS=0.
+ 
+C  CONSTANTS (PROTON MASS, PION MASS, PI, INFINITE)
+C  ---------
+C     PROM=0.94
+      PROM=PAMA(14)
+C     PIOM=0.14
+      PIOM=PAMA(8)
+      PI=3.141592654
+      AINFIN=1.E+30
+ 
+C  INITIALIZATIONS
+C  ---------------
+      LAPROJ=0
+      MAPROJ=0
+      LATARG=0
+      MAPROJ=0
+      IDPROJ=1120
+      IDTARG=1120
+      DO 6 I=1,99
+        PROB(I)=0.
+        ICBAC(I,1)=0
+        ICBAC(I,2)=0
+        ICFOR(I,1)=0
+        ICFOR(I,2)=0
+ 6    CONTINUE
+      PNLL=0.
+ 
+C  FEW INITIALIZATIONS FOR CROSS SECTION CALCULATIONS
+C  --------------------------------------------------
+ 
+      IMSG=0
+      JERR=0
+      NTEVT=0
+      NREVT=0
+      NAEVT=0
+      NRSTR=0
+      NRPTL=0
+      INOIAC=0
+      ILAMAS=0
+      NPTLU=0
+      DO 44 ITAU = 1,MXTAU
+        VOLSUM(ITAU)=0.
+        VO2SUM(ITAU)=0.
+        NCLSUM(ITAU)=0
+ 44   CONTINUE
+      DO 43 IEPS=1,MXEPS
+        DO 43 IVOL=1,MXVOL
+          DO 43 ITAU=1,MXTAU
+            CLUST(ITAU,IVOL,IEPS) = 0.
+ 43   CONTINUE
+      IUTOTC=0
+      IUTOTE=0
+ 
+      IF ( NPARAM .GT. 0 ) THEN
+        DO 3 N=1,NPARAM
+          CALL UTLOW6(PARCHA(N))
+          IF ( DEBUG ) WRITE(MDEBUG,*) PARCHA(N),PARVAL(N)
+          IF    (PARCHA(N).EQ.'AMPRIF')THEN
+                                       AMPRIF=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'AMSIAC')THEN
+                                       AMSIAC=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'AMUSEG')THEN
+                                       AMUSEG=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'ANGMUE')THEN
+                                       ANGMUE=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'BAG4RT')THEN
+                                       BAG4RT=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'BMAXIM')THEN
+                                       BMAXIM=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'BMINIM')THEN
+                                       BMINIM=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'CORE  ')THEN
+                                       CORE  =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'CORLEN')THEN
+                                       CORLEN=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'CUTMSQ')THEN
+                                       CUTMSQ=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'CUTMSS')THEN
+                                       CUTMSS=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'DELEPS')THEN
+                                       DELEPS=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'DELMSS')THEN
+                                       DELMSS=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'DELREM')THEN
+                                       DELREM=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'DELVOL')THEN
+                                       DELVOL=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'ELEPTI')THEN
+                                       ELEPTI=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'ELEPTO')THEN
+                                       ELEPTO=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'EPSCRI')THEN
+                                       EPSCRI=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'FCTRMX')THEN
+                                       FCTRMX=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'GAUMX ')THEN
+                                       GAUMX =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'GRICEL')THEN
+                                       GRICEL=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'GRIDEL')THEN
+                                       GRIDEL=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'GRIGAM')THEN
+                                       GRIGAM=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'GRIRSQ')THEN
+                                       GRIRSQ=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'GRISLO')THEN
+                                       GRISLO=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'IAQU  ')THEN
+                                       IAQU  =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'ICLHIS')THEN
+                                       ICLHIS=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'IDPM  ')THEN
+                                       IDPM  =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'IENTRO')THEN
+                                       IENTRO=NINT(PARVAL(N))
+          ELSEIF(PARCHA(N).EQ.'IFRADE')THEN
+                                       IFRADE=NINT(PARVAL(N))
+          ELSEIF(PARCHA(N).EQ.'IJPHIS')THEN
+                                       IJPHIS=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'IMIHIS')THEN
+                                       IMIHIS=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'IOJINT')THEN
+                                       IOJINT=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'IOPBRK')THEN
+                                       IOPBRK=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'IOPENT')THEN
+                                       IOPENT=PARVAL(N)
+                                       IOPENT = MOD(IOPENT,10)
+          ELSEIF(PARCHA(N).EQ.'IOPENU')THEN
+                                       IOPENU=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'IOPTF ')THEN
+                                       IOPTF =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'IOPTQ ')THEN
+                                       IOPTQ =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'IPAGI ')THEN
+                                       IPAGI =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'IRESCL')THEN
+                                       IRESCL=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'ISH   ')THEN
+                                       ISH   =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'ISHEVT')THEN
+                                       ISHEVT=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'ISHSUB')THEN
+                                       ISHSUB=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'ISPALL')THEN
+                                       ISPALL=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'ISPHIS')THEN
+                                       ISPHIS=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'ISTMAX')THEN
+                                       ISTMAX=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'ISUP  ')THEN
+                                       ISUP  =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'IVERSN')THEN
+                                       IVERSN=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'IVI   ')THEN
+                                       IVI   =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'IWCENT')THEN
+                                       IWCENT=NINT(PARVAL(N))
+          ELSEIF(PARCHA(N).EQ.'IWZZZZ')THEN
+                                       IWZZZZ=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'JPSI  ')THEN
+                                       JPSI  =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'JPSIFI')THEN
+                                       JPSIFI=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'KENTRO')THEN
+                                       KENTRO=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'KO1KO2')THEN
+                                       KO1KO2=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'KUTDIQ')THEN
+                                       KUTDIQ=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'LABSYS')THEN
+                                       LABSYS=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'MAXRES')THEN
+                                       MAXRES=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'NCLEAN')THEN
+                                       NCLEAN=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'NCOLMX')THEN
+                                       NCOLMX=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'NDECAW')THEN
+                                       NDECAW=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'NDECAX')THEN
+                                       NDECAX=NINT(PARVAL(N))
+          ELSEIF(PARCHA(N).EQ.'NDECAY')THEN
+                                       NDECAY=NINT(PARVAL(N))
+          ELSEIF(PARCHA(N).EQ.'NEQMN ')THEN
+                                       NEQMN =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'NEQMX ')THEN
+                                       NEQMX =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'NSTTAU')THEN
+                                       NSTTAU=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'NTRYMX')THEN
+                                       NTRYMX=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'NUMTAU')THEN
+                                       NUMTAU=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'OVERLP')THEN
+                                       OVERLP=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PAREA ')THEN
+                                       PAREA =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PDIQUA')THEN
+                                       PDIQUA=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PISPN ')THEN
+                                       PISPN =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PROSEA')THEN
+                                       PROSEA=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PSPINH')THEN
+                                       PSPINH=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PSPINL')THEN
+                                       PSPINL=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PTF   ')THEN
+                                       PTF   =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PTH   ')THEN
+                                       PTH   =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PHARD ')THEN
+                                       PHARD =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PTMX  ')THEN
+                                       PTMX  =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PTQ1  ')THEN
+                                       PTQ1  =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PTQ2  ')THEN
+                                       PTQ2  =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PTQ3  ')THEN
+                                       PTQ3  =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PUD   ')THEN
+                                       PUD   =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'PVALEN')THEN
+                                       PVALEN=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'QMUST ')THEN
+            CALL UTSTOP('VENINI: *** QMUST NOT USED ANYMORE! *** ')
+          ELSEIF(PARCHA(N).EQ.'QMUST1')THEN
+                                       QMUST1=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'QMUST2')THEN
+                                       QMUST2=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'QMUST3')THEN
+                                       QMUST3=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'RADIAC')THEN
+                                       RADIAC=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'RADIAS')THEN
+                                       RADIAS=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'RHOPHI')THEN
+                                       RHOPHI=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'RSTRAS')THEN
+                                       RSTRAS=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'SEEDI ')THEN
+                                       SEEDI =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'SIGJ  ')THEN
+                                       SIGJ  =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'SIGPPI')THEN
+                                       SIGPPI=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'SMAS  ')THEN
+                                       SMAS  =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'SSMAS ')THEN
+                                       SSMAS =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'TAUMAX')THEN
+                                       TAUMAX=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'TAUMIN')THEN
+                                       TAUMIN=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'TAUMX ')THEN
+                                       TAUMX =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'TAUNLL')THEN
+                                       TAUNLL=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'TAUREA')THEN
+                                       TAUREA=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'TENSN ')THEN
+                                       TENSN =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'THEMAS')THEN
+                                       THEMAS=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'UENTRO')THEN
+                                       UENTRO=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'USMAS ')THEN
+                                       USMAS =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'UUMAS ')THEN
+                                       UUMAS =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'WPROJ ')THEN
+                                       WPROJ =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'WTARG ')THEN
+                                       WTARG =PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'WTMINI')THEN
+                                       WTMINI=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'WTSTEP')THEN
+                                       WTSTEP=PARVAL(N)
+          ELSEIF(PARCHA(N).EQ.'YMXIMI')THEN
+                                       YMXIMI=PARVAL(N)
+          ENDIF
+ 3      CONTINUE
+      ENDIF
+ 
+      IF ( ISPHIS .EQ. 1 ) LABSYS = 0
+      IF ( IDPM .EQ. 1 ) THEN
+        IAQU = 0
+        NEQMN = 2
+        NEQMX = 3
+      ENDIF
+      IF ( IOPENU .EQ. 2 ) THEN
+        CALL SMASSI(THEMAS)
+        IF ( ISH .EQ. 19 ) THEN
+          CALL SMASSP
+          CALL UTSTOP(' VENLNK:                                ')
+        ENDIF
+      ENDIF
+ 
+      IF ( IOJINT .EQ. 2 ) THEN
+        IF     ( EPSCRI .LT. 0. ) THEN
+          RADIAC = 0.
+          RADIAS = 0.
+        ELSEIF ( EPSCRI .GT. 0. ) THEN
+          VOLBAR = PROM/EPSBAR*PI*0.25
+CDH       RADIAC = (VOLBAR*0.5/PI)**0.3333333
+          VOLMES = 0.455/EPSCRI*PI*0.25
+CDH       RADIAS = (VOLMES*0.5/PI)**0.3333333
+        ELSE
+          CALL UTSTOP('EPSCRI MUST NOT BE 0.                   ')
+        ENDIF
+      ENDIF
+ 
+      CALL JDECIN(.FALSE.)
+C  INITIALIZE ALL PT DISTRIBUTIONS
+      CX = PTMX
+      QUAMA = 0.
+      IF ( IOPTF .EQ. 1 ) THEN
+        ROOT  = SQRT(PTMX**2+QUAMA**2)
+        AUXIL = 2./PTF
+        BPTFU = +0.25*PTF**2*EXP(-AUXIL*QUAMA)*(AUXIL*QUAMA+1.)
+        FPTFU = -0.25*PTF**2*EXP(-AUXIL*ROOT)*(AUXIL*ROOT+1.)+BPTFU
+        CALL UTQUAF(SPTF,NPTF,XPTF,QPTFU,0.,.33*CX,.66*CX,CX)
+C       DO 199 N=1,NPTF
+C         WRITE(IFCH,*)'N,X,Q=',N,XPTF(N),QPTFU(N)
+C199    CONTINUE
+      ELSE
+        AUXIL = 0.25*PI/PTF**2
+        BPTFU = +EXP(-AUXIL* QUAMA**2)*0.5/AUXIL
+        FPTFU = -EXP(-AUXIL*(QUAMA**2+PTMX**2))*0.5/AUXIL+BPTFU
+      ENDIF
+ 
+      QUAMA = SMAS
+      IF ( QUAMA .NE. 0. ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          ROOT  = SQRT(PTMX**2+SMAS**2)
+          AUXIL = 2./PTF
+          BPTFS = +0.25*PTF**2*EXP(-AUXIL*SMAS)*(AUXIL*SMAS+1.)
+          FPTFS = -0.25*PTF**2*EXP(-AUXIL*ROOT)*(AUXIL*ROOT+1.)+BPTFS
+          CALL UTQUAF(SPTF,NPTF,XPTF,QPTFS,0.,.33*CX,.66*CX,CX)
+        ELSE
+          AUXIL = 0.25*PI/PTF**2
+          BPTFS = +EXP(-AUXIL* SMAS**2)*0.5/AUXIL
+          FPTFS = -EXP(-AUXIL*(SMAS**2+PTMX**2))*0.5/AUXIL+BPTFS
+        ENDIF
+      ELSE
+        DO 201 N = 1,NPTF
+          QPTFS(N) = QPTFU(N)
+ 201    CONTINUE
+        FPTFS = FPTFU
+      ENDIF
+ 
+      QUAMA = UUMAS
+      IF ( QUAMA .NE. 0. ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          ROOT   = SQRT(PTMX**2+UUMAS**2)
+          AUXIL  = 2./PTF
+          BPTFUU = +0.25*PTF**2*EXP(-AUXIL*UUMAS)*(AUXIL*UUMAS+1.)
+          FPTFUU = -0.25*PTF**2*EXP(-AUXIL*ROOT)*(AUXIL*ROOT+1.)+BPTFUU
+          CALL UTQUAF(SPTF,NPTF,XPTF,QPTFUU,0.,.33*CX,.66*CX,CX)
+        ELSE
+          AUXIL  = 0.25*PI/PTF**2
+          BPTFUU =  EXP(-AUXIL* UUMAS**2)*0.5/AUXIL
+          FPTFUU = -EXP(-AUXIL*(UUMAS**2+PTMX**2))*0.5/AUXIL+BPTFUU
+        ENDIF
+      ELSE
+        DO 202 N = 1,NPTF
+          QPTFUU(N) = QPTFU(N)
+ 202    CONTINUE
+        FPTFUU = FPTFU
+      ENDIF
+ 
+      QUAMA = USMAS
+      IF ( QUAMA .NE. 0. ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          ROOT   = SQRT(PTMX**2+USMAS**2)
+          AUXIL  = 2./PTF
+          BPTFUS =  0.25*PTF**2*EXP(-AUXIL*USMAS)*(AUXIL*USMAS+1.)
+          FPTFUS = -0.25*PTF**2*EXP(-AUXIL*ROOT)*(AUXIL*ROOT+1.)+BPTFUS
+          CALL UTQUAF(SPTF,NPTF,XPTF,QPTFUS,0.,.33*CX,.66*CX,CX)
+        ELSE
+          AUXIL  = 0.25*PI/PTF**2
+          BPTFUS =  EXP(-AUXIL* USMAS**2)*0.5/AUXIL
+          FPTFUS = -EXP(-AUXIL*(USMAS**2+PTMX**2))*0.5/AUXIL+BPTFUS
+        ENDIF
+      ELSE
+        DO 203 N = 1,NPTF
+          QPTFUS(N) = QPTFU(N)
+ 203    CONTINUE
+        FPTFUS = FPTFU
+      ENDIF
+ 
+      QUAMA = SSMAS
+      IF ( QUAMA .NE. 0. ) THEN
+        IF ( IOPTF .EQ. 1 ) THEN
+          ROOT   = SQRT(PTMX**2+SSMAS**2)
+          AUXIL  = 2./PTF
+          BPTFSS = +0.25*PTF**2*EXP(-AUXIL*SSMAS)*(AUXIL*SSMAS+1.)
+          FPTFSS = -0.25*PTF**2*EXP(-AUXIL*ROOT)*(AUXIL*ROOT+1.)+BPTFSS
+          CALL UTQUAF(SPTF,NPTF,XPTF,QPTFSS,0.,.33*CX,.66*CX,CX)
+        ELSE
+          AUXIL  = 0.25*PI/PTF**2
+          BPTFSS =  EXP(-AUXIL* SSMAS**2)*0.5/AUXIL
+          FPTFSS = -EXP(-AUXIL*(SSMAS**2+PTMX**2))*0.5/AUXIL+BPTFSS
+        ENDIF
+      ELSE
+        DO 204 N = 1,NPTF
+          QPTFSS(N) = QPTFU(N)
+ 204    CONTINUE
+        FPTFSS = FPTFU
+      ENDIF
+ 
+C  INITIALIZE FUNCTIONS FOR JPSI GENERATION
+      IF ( JPSI .EQ. 1 ) THEN
+        CX = GAUMX
+        CALL UTQUAF(SGAU,NGAU,XGAU,QGAU,0.,.33*CX,.66*CX,CX)
+        CX = PTMX
+        CALL UTQUAF(SPTJ,NPTJ,XPTJ,QPTJ,0.,.33*CX,.66*CX,CX)
+      ENDIF
+ 
+C INITIALIZE DENSITY DISTRIBUTION INTEGRALS FOR NITROGEN, OXYGEN, ARGON
+      MASSNR = 14.
+      R0 = 1.19*MASSNR**(.3333333) -1.61*MASSNR**(-.3333333)
+      CX = R0+FCTRMX*0.54
+      RMTARG(1) = CX
+      CALL UTQUAF(SDENSI,NDET,XDET14,QDET14,0.,.33*CX,.66*CX,CX)
+ 
+      MASSNR = 16.
+      R0 = 1.19*MASSNR**(.3333333) -1.61*MASSNR**(-.3333333)
+      CX = R0+FCTRMX*0.54
+      RMTARG(2) = CX
+      CALL UTQUAF(SDENSI,NDET,XDET16,QDET16,0.,.33*CX,.66*CX,CX)
+ 
+      MASSNR = 40.
+      R0 = 1.19*MASSNR**(.3333333) -1.61*MASSNR**(-.3333333)
+      CX = R0+FCTRMX*0.54
+      RMTARG(3) = CX
+      CALL UTQUAF(SDENSI,NDET,XDET40,QDET40,0.,.33*CX,.66*CX,CX)
+ 
+C  QDET99 AND XDET99 ARE NOT INITIALIZED
+      MTAR99 = 0
+ 
+      OPEN(UNIT=14,FILE='VENUSDAT',STATUS='OLD')
+      READ(14,*)(IDUMMY, XVA(I), QVAH(I), QVAPI(I), I=1,2049)
+      CLOSE(UNIT=14)
+ 
+      WRITE(IFMT,105) FLOAT(IVERSN)/1000.
+ 105  FORMAT(
+     * ' !-----------------------------------------------------!'
+     */' !      V(ERY) E(NERGETIC) NU(CLEAR) S(CATTERING)      !'
+     */' !      VENUS',F6.3,5X,'-          K. WERNER           !'
+     */' !      SUBROUTINE TURBOVERSION    D. HECK             !'
+     */' !-----------------------------------------------------!')
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/venlnk.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/venlnk.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/venlnk.f	(revision 4308)
@@ -0,0 +1,501 @@
+      SUBROUTINE VENLNK
+ 
+C-----------------------------------------------------------------------
+C  VEN(US) L(I)NK (TO CORSIKA)
+C
+C  LINKS VENUS PACKAGE TO CORSIKA, NEEDS FIRST CALL OF VENINI
+C  THIS SUBROUTINE IS CALLED FROM SDPM
+C
+C  DESIGN   : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+*KEEP,INTER.
+      COMMON /INTER/   AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN,
+     *                 IDIF,ITAR
+      DOUBLE PRECISION AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN
+      INTEGER          IDIF,ITAR
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,REST.
+      COMMON /REST/    CONTNE,TAR,LT
+      DOUBLE PRECISION CONTNE(3),TAR
+      INTEGER          LT
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,VENUS.
+      COMMON /VENUS/   ISH0,IVERVN,MTAR99,FVENUS,FVENSG
+      INTEGER          ISH0,IVERVN,MTAR99
+      LOGICAL          FVENUS,FVENSG
+*KEND.
+ 
+      PARAMETER (KOLLMX=2500)
+      PARAMETER (MXEPS=10)
+      PARAMETER (NDEP=129)
+      PARAMETER (NDET=129)
+      PARAMETER (NPRBMS=20)
+      PARAMETER (NPTQ=129)
+      PARAMETER (NSTRU=2049)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CDEN/    MASSNR,RMX,R0
+      COMMON /CIPIO/   IPIO
+      COMMON /CNSTA/   AINFIN,PI,PIOM,PROM
+      COMMON /COL/     BIMP,BMAX,COORD(4,KOLLMX),DISTCE(KOLLMX)
+     *                ,QDEP(NDEP),QDET14(NDET),QDET16(NDET),QDET40(NDET)
+     *                ,QDET99(NDET),RMPROJ,RMTARG(4),XDEP(NDEP)
+     *                ,XDET14(NDET),XDET16(NDET),XDET40(NDET)
+     *                ,XDET99(NDET)
+     *                ,KOLL,LTARG,NORD(KOLLMX),NPROJ,NRPROJ(KOLLMX)
+     *                ,NRTARG(KOLLMX),NTARG
+      COMMON /CPRBMS/  PRBMS(NPRBMS)
+      COMMON /CPTQ/    QPTH(NPTQ),QPTQ(NPTQ),XPTQ(NPTQ),QPTQMX,QPTHMX
+      DOUBLE PRECISION SEEDC,SEEDI
+      COMMON /CSEED/   SEEDC,SEEDI
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /NEVNT/   NEVNT
+      COMMON /PARO1/   AMPRIF,AMSIAC,BMAXIM,BMINIM,CORE,CUTMSQ,CUTMSS
+     *                ,DELMSS,DELREM,FCTRMX,GAUMX,OVERLP,PAREA,PDIQUA
+     *                ,PHARD,PSPINL,PSPINH,PISPN,PTF,PTH,PTMX,PTQ,PUD
+     *                ,PVALEN,QSEPC,QSETC,QMUST,QVAPC,QVATC,RADIAC
+     *                ,RADIAS,RSTRAS,SIGJ,SIGPPI,TAUMAX,TAUMIN
+     *                ,TAUMX,TAUNLL,TENSN,THEMAS,WPROJ,WTARG,WTMINI
+     *                ,WTSTEP,XCUT
+     *                ,IAQU,IFRADE,IOJINT,IOPBRK,IOPENT,IOPENU
+     *                ,IOPTF,IOPTQ,IRESCL,IWCENT,KENTRO,KO1KO2
+     *                ,LABSYS,MAXRES,NCLEAN,NCOLMX,NDECAW,NEQMN,NEQMX
+     *                ,NSTTAU,NTRYMX,NUMTAU
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /PARO3/   ASUHAX(7),ASUHAY(7),OMEGA,SIGPPD,SIGPPE,UENTRO
+     *                ,IWZZZZ
+      COMMON /PARO4/   GRICEL,GRIDEL,GRIGAM,GRIRSQ,GRISLO
+      COMMON /PARO5/   DELEPS,DELVOL
+      COMMON /QUARKM/  SMAS,SSMAS,USMAS,UUMAS
+      COMMON /STRU/    QSEP(NSTRU),QSET(NSTRU),QVAP(NSTRU)
+     *                ,QVAT(NSTRU),XCUTAR,XSTRU(NSTRU)
+     *                ,IDTG
+      COMMON /STRU2/   DELTA0,DELTA1,QSEH(NSTRU),QSEPI(NSTRU)
+     *                ,QVAH(NSTRU),QVAPI(NSTRU),XSE(NSTRU),XVA(NSTRU)
+ 
+      DOUBLE PRECISION ERRER,VALUE
+      INTEGER          IFLAG
+ 
+      COMMON /VENLIN/  PTQ1,PTQ2,PTQ3,QMUST1,QMUST2,QMUST3
+     *                ,IDTABL(100)
+ 
+      EXTERNAL         SDENSI,SPTQ,SSE0,SVA0,SVA1
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'VENLNK: TAR',SNGL(TAR)
+ 
+      NSTRUC = NSTRU
+      IF ( DEBUG ) THEN
+        ISH  = ISH0
+      ELSE
+        ISH  = 0
+      ENDIF
+      NEVNT = SHOWNO
+C  SET RANDOM NUMBER GENERATOR STATUS
+      SEEDC=ISEED(2,1)+1.D9*ISEED(3,1)
+C  CALCULATE ENERGY IN LAB SYSTEM FOR ELASTICITY FOR VARIOUS PROJECTILES
+      IF     ( ITYPE .EQ. 1 ) THEN
+C  TREAT PHOTON PROJECTILES (FROM EGS)
+        CALL RMMAR(RD,1,1)
+        IF ( RD(1) .LE. 0.5 ) THEN
+          ITYPE = 7
+        ELSE
+          ITYPE = 17
+        ENDIF
+        ELAB  = CURPAR(2)
+        CURPAR(2) = ELAB / PAMA(ITYPE)
+      ELSEIF ( ITYPE .LT. 100 ) THEN
+C  TREAT ORDINARY PROJECTILES
+        ELAB  = CURPAR(2) * PAMA(ITYPE)
+      ELSE
+C  TREAT NUCLEI PROJECTILES
+        NPROT = MOD(ITYPE,100)
+        NNEUT = ITYPE/100 - NPROT
+        ELAB  = CURPAR(2) * ( PAMA(14)*NPROT + PAMA(13)*NNEUT )
+      ENDIF
+C  SET TARGET PARAMETERS
+      MATARG = NINT(TAR)
+      IDTARG = 1120
+      AMTARG = PAMA(14)
+      IF     ( TAR. EQ. 14.D0 ) THEN
+        LTARG  = 1
+        LATARG = 7
+      ELSEIF ( TAR .EQ. 16.D0 ) THEN
+        LTARG  = 2
+        LATARG = 8
+      ELSEIF ( TAR .EQ. 40.D0 ) THEN
+        LTARG  = 3
+        LATARG = 18
+      ELSE
+        WRITE(MONIOU,*)'VENLNK: UNDEFINED TARGET TAR=',SNGL(TAR)
+      ENDIF
+ 
+C  FOR THE CASE OF AN ARBITRARY TARGET (NOT AIR)
+      IF ( LTARG .GT. 3 ) THEN
+        MASSNR = MATARG
+        IF ( MASSNR .GT. 1 ) THEN
+          IF ( MASSNR .NE. MTAR99 ) THEN
+            R0 = 1.19*MASSNR**(.3333333) -1.61*MASSNR**(-.3333333)
+            CX = R0+FCTRMX*0.54
+            RMTARG(4) = CX
+            CALL UTQUAF(SDENSI,NDET,XDET99,QDET99,0.,.33*CX,.66*CX,CX)
+            MTAR99 = MATARG
+          ENDIF
+        ELSE
+          RMTARG(4) = 0.
+        ENDIF
+      ENDIF
+ 
+C  SET PROJECTILE PARAMETERS
+      IF ( ITYPE .LT. 100 ) THEN
+        IDPROJ = IDTABL(ITYPE)
+        IF     ( IDPROJ .EQ. 20  .OR.  IDPROJ .EQ. -20 ) THEN
+C  TREAT NEUTRAL KAONS  (K(0)S AND K(0)L)
+          CALL RMMAR(RD,1,1)
+          IF ( RD(1) .LE. 0.5 ) THEN
+            IDPROJ = 230
+          ELSE
+            IDPROJ = -230
+          ENDIF
+        ELSEIF ( IDPROJ .EQ. 2130 ) THEN
+C  VENUS CANNOT TREAT LAMBDA, TAKE INSTEAD SIGMA(0))
+          IDPROJ = 1230
+        ELSEIF ( IDPROJ .EQ. -2130 ) THEN
+C  VENUS CANNOT TREAT ANTI-LAMBDA, TAKE INSTEAD ANTI-SIGMA(0))
+          IDPROJ = -1230
+        ENDIF
+C  ALL OTHER PARTICLE CODES UNCHANGED
+        CALL IDMASS(IDPROJ,AMPROJ)
+        LAPROJ = -1
+        MAPROJ = 1
+        PNLL   = CURPAR(2)*AMPROJ
+      ELSE
+C  PROJECTILE IS NUCLEUS
+        IDPROJ = 1120
+        CALL IDMASS(IDPROJ,AMPROJ)
+        LAPROJ = MOD(ITYPE,100)
+        MAPROJ = ITYPE/100
+        PNLL   = CURPAR(2)*(PAMA(14)+PAMA(13))*0.5
+      ENDIF
+ 
+      IF ( ABS(IDPROJ) .LT. 1000 ) THEN
+        IF ( ABS(IDPROJ) .EQ. 230  .OR.  ABS(IDPROJ) .EQ. 130 ) THEN
+C  DIFFRACTIVE PROBABILITY FOR KAON PROJECTILES
+          WPROJ = 0.24
+        ELSE
+C  DIFFRACTIVE PROBABILITY FOR PION PROJECTILES
+          WPROJ = 0.20
+        ENDIF
+      ELSE
+C  DIFFRACTIVE PROBABILITY FOR BARYON PROJECTILES
+        WPROJ = 0.32
+      ENDIF
+C  DIFFRACTIVE PROBABILITY FOR TARGET (ALWAYS NUCLEONS)
+      WTARG = 0.32
+ 
+      ENGY = SQRT( 2.*SQRT(PNLL**2+AMPROJ**2)*AMTARG+AMTARG**2
+     *                     +AMPROJ**2 )
+      IF ( DEBUG ) WRITE(MDEBUG,*)'VENLNK: ELAB = ',PNLL,
+     *                                   ' ENGY = ',ENGY
+CDH   IF ( ENGY .LT. 12. ) THEN
+      IF ( ENGY .LT. 9.5 ) THEN
+        WRITE (IFMT,*)'VENLNK: ENGY, IDPROJ=',ENGY,IDPROJ
+        CALL UTSTOP('VENLNK: INCIDENT ENERGY TOO SMALL       ')
+      ENDIF
+      ENGYI = ENGY
+      PNLLI = PNLL
+      IF ( PNLL .LT. 1.E2 * AMPROJ ) THEN
+        TRM  = SQRT(PNLL**2+AMPROJ**2)
+        ENGY = SQRT((TRM+AMTARG-PNLL)*(TRM+AMTARG+PNLL))
+      ELSE
+        TRM  = AMPROJ**2*0.5/PNLL+AMTARG
+        ENGY = SQRT(TRM*(2.*PNLL+TRM))
+      ENDIF
+      D1 = ABS(PNLLI-PNLL)/PNLL
+      D2 = ABS(ENGYI-ENGY)/ENGY
+      IF ( D1 .GT. 1.E-3  .OR.  D2 .GT. 1.E-3 ) THEN
+        IF ( ISH .GE. 0 ) THEN
+          CALL UTMSG('VENLNK')
+          WRITE(IFCH,*)'*****  PNLL,PNLLI:',PNLL,PNLLI
+          WRITE(IFCH,*)'*****  ENGY,ENGYI:',ENGY,ENGYI
+          CALL UTMSGF
+        ENDIF
+      ENDIF
+      S = ENGY**2
+      SROOTI = 1./ENGY
+      PNLLX = UTPCM(ENGY,AMPROJ,AMTARG)
+      YHAHA = LOG((SQRT(PNLL**2+S)+PNLL)/ENGY)
+      YPJTL = LOG((SQRT(PNLL**2+AMPROJ**2)+PNLL)/AMPROJ)
+      IF ( ISH .GE. 91 ) WRITE(IFCH,*)'VENLNK: YPJTL=',YPJTL
+ 
+      ENGYLG = LOG(ENGY)
+      QMUST = QMUST1+QMUST2*ENGYLG+QMUST3*ENGYLG**2
+      PTQ = PTQ1+PTQ2*ENGYLG+PTQ3*ENGYLG**2
+CDH   PHARD = 0.030+0.12*(LOG10(S)-LOG10(30.**2))
+      PHARD = 0.030+0.12*(LOG10(S)-2.9542425)
+      PHARD = MIN(1.,PHARD)
+      PHARD = MAX(0.030,PHARD)
+ 
+C  PROJECTILE
+      XCUT  = CUTMSQ*SROOTI
+      XCUT2 = XCUT**2
+      IF ( ABS(IDPROJ) .GE. 1000 ) THEN
+C  STRUCTURE FUNCTION INTEGRAL FOR BARYONS OF PROJECTILE
+        IPIO = 0
+        CALL UINTEG(VALUE,SSE0,0.D0,1.D0,0.D0,1.D-5,1,ERRER,IFLAG)
+        IF ( IFLAG .GT. 3  .AND.  ISH .GT. 0 )
+     *                      WRITE(IFCH,*)'VENLNK: SSE0:IFLAG=',IFLAG
+        QSEPC = VALUE
+        CALL UINTEG(VALUE,SVA0,0.D0,1.D0,0.D0,1.D-5,1,ERRER,IFLAG)
+        IF ( IFLAG .GT. 3  .AND.  ISH .GT. 0 )
+     *                      WRITE(IFCH,*)'VENLNK: SVA0:IFLAG=',IFLAG
+        QVAPC = VALUE
+      ELSE
+C  STRUCTURE FUNCTION INTEGRAL FOR MESONS OF PROJECTILE
+        IPIO = 1
+        A0 = -5.0 + 6.6666667*XCUT2 - 0.53333333*XCUT2**2
+        A1 =  5.0 - 1.875*XCUT2
+        A2 = -3.3333333 + 0.26666667*XCUT2
+        A3 =  1.25
+        A4 = -0.2
+        ROOT  = SQRT(XCUT2+1.)
+        QSEPC = 0.9*( (1.-XCUT2*A1)*( LOG(1.+ROOT)-LOG(XCUT) )
+     *                   - XCUT*A0 + ROOT*(A0+A1+A2+A3+A4) )
+        CALL UINTEG(VALUE,SVA1,0.D0,1.D0,0.D0,1.D-5,1,ERRER,IFLAG)
+        IF ( IFLAG .GT. 3  .AND.  ISH .GT. 0 )
+     *                      WRITE(IFCH,*)'VENLNK: SVA1:IFLAG=',IFLAG
+        QVAPC = VALUE
+      ENDIF
+      IDTG = IPIO
+ 
+C  TARGET
+      IF ( IDTG .EQ. 1 ) THEN
+        IF ( ABS(IDTARG) .GE. 1000 ) THEN
+C  STRUCTURE FUNCTION INTEGRAL FOR BARYONS OF TARGET
+          IPIO = 0
+          CALL UINTEG(VALUE,SSE0,0.D0,1.D0,0.D0,1.D-5,1,ERRER,IFLAG)
+          IF ( IFLAG .GT. 3  .AND.  ISH .GT. 0 )
+     *                        WRITE(IFCH,*)'VENLNK: SSE0:IFLAG=',IFLAG
+          QSETC = VALUE
+          CALL UINTEG(VALUE,SVA0,0.D0,1.D0,0.D0,1.D-5,1,ERRER,IFLAG)
+          IF ( IFLAG .GT. 3  .AND.  ISH .GT. 0 )
+     *                        WRITE(IFCH,*)'VENLNK: SVA0:IFLAG=',IFLAG
+          QVATC = VALUE
+        ELSE
+          IPIO=1
+          QVATC = QVAPC
+          QSETC = QSEPC
+        ENDIF
+      ELSE
+        IF ( ABS(IDTARG) .GE. 1000 ) THEN
+          IPIO = 0
+          QVATC = QVAPC
+          QSETC = QSEPC
+        ELSE
+C  STRUCTURE FUNCTION INTEGRAL FOR BARYONS OF TARGET
+          IPIO=1
+          A0 = -5.0 + 6.6666667*XCUT2 - 0.53333333*XCUT2**2
+          A1 =  5.0 - 1.875*XCUT2
+          A2 = -3.3333333 + 0.26666667*XCUT2
+          A3 =  1.25
+          A4 = -0.2
+          ROOT  = SQRT(XCUT2+1.)
+          QSETC = 0.9*( (1.-XCUT2*A1)*( LOG(1.+ROOT)-LOG(XCUT) )
+     *                     - XCUT*A0 + ROOT*(A0+A1+A2+A3+A4) )
+          CALL UINTEG(VALUE,SVA1,0.D0,1.D0,0.D0,1.D-5,1,ERRER,IFLAG)
+          IF ( IFLAG .GT. 3  .AND.  ISH .GT. 0 )
+     *                        WRITE(IFCH,*)'VENLNK: SVA1:IFLAG=',IFLAG
+          QVATC = VALUE
+        ENDIF
+      ENDIF
+      IF ( ISH .EQ. 16 .OR. DEBUG ) THEN
+        WRITE(IFCH,301) QVAPC, QSEPC, QVATC, QSETC
+ 301    FORMAT(' VENLNK: QVAPC, QSEPC, QVATC, QSETC=',4(F10.7,2X))
+      ENDIF
+ 
+      IF ( PROSEA .GE. 0. ) THEN
+        QVAPC = 1.0
+        QVATC = 1.0
+        QSEPC = PROSEA
+        QSETC = PROSEA
+      ENDIF
+ 
+      XCUT = CUTMSS*SROOTI
+      XCUTAR = XCUT
+      B = MIN( 0.05, XCUT*500. )
+      A = MIN( 0.2*B, XCUT*100. )
+      PNLLLG = LOG(PNLL)
+      DELTA0 = EXP(-2.791922 - 0.2091742 * PNLLLG)
+      DELTA1 = EXP(-3.885293 - 0.2029558 * PNLLLG)
+      CALL UTQSEA(A,B,1.)
+      IF ( XCUT .LT. 0.04  ) THEN
+        NEND=1.+REAL(NSTRUC)*2./PI*ACOS(1.-2./PI*ACOS(1.-25.*XCUT))
+      ELSE
+        NEND = NSTRUC
+      ENDIF
+ 
+      IF ( ABS(IDPROJ) .GE. 1000 ) THEN
+        IPIO = 0
+        DO 203 N = 1,NSTRUC
+          QSEP(N) = QSEH(N)
+ 203    CONTINUE
+        DO 2031 N = NEND,NSTRUC
+          QVAP(N) = QVAH(N) - DELTA0
+ 2031   CONTINUE
+      ELSE
+        IPIO = 1
+        DO 204 N = 1,NSTRUC
+          QSEP(N) = QSEPI(N)
+ 204    CONTINUE
+        DO 2041 N = NEND,NSTRUC
+          QVAP(N) = QVAPI(N) - DELTA1
+ 2041   CONTINUE
+      ENDIF
+      CALL UTQVAL(QVAP,NEND)
+ 
+      IF ( IDTG .EQ. 0 ) THEN
+        IF ( ABS(IDTARG) .GE. 1000 ) THEN
+          IPIO = 0
+          DO 205 N=1,NSTRUC
+            QSET(N) = QSEP(N)
+            QVAT(N) = QVAP(N)
+ 205      CONTINUE
+        ELSE
+          IPIO = 1
+          DO 209 N = 1,NSTRUC
+            QSET(N) = QSEPI(N)
+ 209      CONTINUE
+          DO 2091 N = NEND,NSTRUC
+            QVAT(N) = QVAPI(N) - DELTA1
+ 2091     CONTINUE
+          CALL UTQVAL(QVAT,NEND)
+        ENDIF
+ 
+      ELSE
+        IF ( ABS(IDTARG) .GE. 1000 ) THEN
+          IPIO = 0
+          DO 210 N = 1,NSTRUC
+            QSET(N) = QSEH(N)
+ 210      CONTINUE
+          DO 2101 N = NEND,NSTRUC
+            QVAT(N) = QVAH(N) - DELTA0
+ 2101     CONTINUE
+          CALL UTQVAL(QVAT,NEND)
+ 
+        ELSE
+          IPIO = 1
+          DO 216 N=1,NSTRUC
+            QSET(N) = QSEP(N)
+            QVAT(N) = QVAP(N)
+ 216      CONTINUE
+        ENDIF
+      ENDIF
+ 
+      IF ( ISH .EQ. 21 ) THEN
+        CALL UTHSEA
+        CALL UTSTOP(' VENLNK:                                ')
+      ENDIF
+ 
+      QPTHMX = 0.5/PTH**2-PTH**2/(2.*(PTH**2+PTMX**2)**2)
+      IF     ( IOPTQ .EQ. 2 ) THEN
+        QPTQMX = 1. - EXP(-PI*PTMX**2/(4.*PTQ**2) )
+      ELSEIF ( IOPTQ .EQ. 3 ) THEN
+        QPTQMX = 1. - PTQ**2/(PTQ**2+PTMX**2)
+      ELSE
+        CX = PTMX
+        CALL UTQUAF(SPTQ,NPTQ,XPTQ,QPTQ,0.,.33*CX,.66*CX,CX)
+      ENDIF
+ 
+      SIGPPI = -1.0
+C  CALCULATE ENERGY DEPENDENT CROSS SECTION FOR BARYONS
+      CALL RACPRO('GRI',QMUST,NPRBMS,PRBMS)
+      IF     ( ABS(IDPROJ) .LE. 120  .OR.  ABS(IDPROJ) .EQ. 220 ) THEN
+C  CROSS SECTION FOR PIONS (OR ETA FOR PHOTONS FROM EGS)
+        SIGPPI = SIGPPI * 0.6667
+      ELSEIF ( ABS(IDPROJ) .EQ. 130  .OR.  ABS(IDPROJ) .EQ. 230 ) THEN
+C  CROSS SECTION FOR KAONS
+        SIGPPI = SIGPPI * 0.5541
+      ENDIF
+ 
+      MASSNR = MAPROJ
+      RMPROJ = 0.
+      IF ( MASSNR .GT. 1 ) THEN
+        R0 = 1.19*MASSNR**(.3333333) -1.61*MASSNR**(-.3333333)
+        CX = R0+FCTRMX*0.54
+        RMPROJ = CX
+        CALL UTQUAF(SDENSI,NDEP,XDEP,QDEP,0.,.33*CX,.66*CX,CX)
+      ENDIF
+ 
+      IF ( IDPM .EQ. 1 ) THEN
+        QSEPC = 0.
+        QSETC = 0.
+      ENDIF
+      BMAX = RMPROJ+RMTARG(LTARG)
+ 
+      IF ( ISH .GE. 91 ) WRITE(IFCH,*)'VENLNK: AVENUS IS NOW CALLED'
+      CALL AVENUS
+ 
+C  NOW BRING PARTICLES TO CORSIKA STACK
+      CALL VSTORE
+ 
+      IF ( ISH .GE. 91 ) WRITE(IFCH,*)'VENLNK: (EXIT)'
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vhmeso.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vhmeso.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vhmeso.f	(revision 4308)
@@ -0,0 +1,231 @@
+      SUBROUTINE VHMESO( E,AMASS,ASMASS )
+ 
+C-----------------------------------------------------------------------
+C  (STRANGE) H(EAVY) MESO(N)
+C
+C  HANDLES KAON INITIATED HEAVY MESON AND ITS DECAY INTO 1 KAON AND 2 PI
+C  STRANGE HEAVY MESON EMITTED FORWARD
+C  THIS SUBROUTINE IS CALLED FROM BOX72 AND BOX74
+C  ARGUMENTS:
+C   E      = AVAILABLE ENERGY IN CM
+C   AMASS  = MASS OF STRANGE MESON
+C   ASMASS = MASS TO BE LEFT OVER FOR OTHER PARTICLES
+C-----------------------------------------------------------------------
+ 
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+*KEEP,BAL.
+      COMMON /BAL/     EBAL
+      DOUBLE PRECISION EBAL(10)
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,KAONS.
+      COMMON /KAONS/   CKA
+      DOUBLE PRECISION CKA(80)
+*KEEP,MULT.
+      COMMON /MULT/    EKINL,MSMM,MULTMA,MULTOT
+      DOUBLE PRECISION EKINL
+      INTEGER          MSMM,MULTMA(37,13),MULTOT(37,13)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEEP,VKIN.
+      COMMON /VKIN/    BETACM
+      DOUBLE PRECISION BETACM
+*KEND.
+ 
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,201) E,AMASS,ASMASS
+ 201  FORMAT(' VHMESO: E,AMASS,ASMASS=',1P,3E10.4)
+ 
+      EDVH   = 0.D0
+      W      = 0.6D0
+ 
+C  GAMMA AND BETA OF HEAVY MESON IN CM AND LAB
+C  E > AMASS + ASMASS  TO KEEP GHMCM > 1.
+      GVHCM  = (E**2 + AMASS**2 - ASMASS**2) / (2.D0 * E * AMASS)
+      BVHCM  = SQRT(GVHCM**2 - 1.D0) / GVHCM
+      GVHLAB = GCM * GVHCM * (1.D0+BETACM*BVHCM)
+      BVHLAB = SQRT(GVHLAB**2 - 1.D0) / GVHLAB
+ 
+C  DECAY OF HEAVY MESON
+ 
+C  KAON PART
+C  CHOSE LONGITUDINAL MOMENTUM RANDOMLY FROM EXPONENTIAL DISTRIBUTION
+      P      = PCL(CKA(2),W)
+      PT     = PTRANS(DUMMY)
+C  CALCULATE REST OF ENERGY FOR OTHER PARTICLES
+      EDVH   = SQRT( PAMA(ITYPE)**2 + P**2 + PT**2 )
+      RESTE  = AMASS - EDVH
+C  GAMMA AND BETA OF KAON
+      GKAVH  = SQRT( P**2 / PAMA(ITYPE)**2 + 1.D0 )
+      BKAVH  = SQRT(GKAVH**2 - 1.D0) / GKAVH
+C  KAON FORWARD OR BACKWARD ?
+      CALL RMMAR( RD,1,1 )
+      IF ( RD(1) .LT. 0.5 ) THEN
+        GKALAB = GVHLAB * GKAVH * (1.D0+BKAVH*BVHLAB)
+        PACC   = P
+      ELSE
+        GKALAB = GVHLAB * GKAVH * (1.D0-BKAVH*BVHLAB)
+        PACC   = -P
+      ENDIF
+C  GET NEW DIRECTION
+      PLLAB2 = PAMA(ITYPE)**2 * (GKALAB**2 - 1.D0)
+      PLLAB2 = MAX( 1.D-6, PLLAB2 )
+      CTHETA = SQRT( PLLAB2 / (PT**2+PLLAB2) )
+      IF ( CTHETA .GE. C(27) ) THEN
+        CALL RMMAR( RD,1,1 )
+        CALL ADDANG( COSTHE,PHI, CTHETA,RD(1)*PI2, SECPAR(3),SECPAR(4) )
+        IF ( SECPAR(3) .GE. C(29) ) THEN
+          SECPAR(2) = GKALAB
+C  CHARGE ASSIGNMENT
+          SECPAR(1) = CURPAR(1)
+          DO  8  J = 5,8
+            SECPAR(J) = CURPAR(J)
+    8     CONTINUE
+          CALL TSTACK
+        ENDIF
+      ENDIF
+ 
+C  PION PART
+ 
+C  WHAT DECAY MODE ?
+C    NDEC=1 : K,PI0,PI0
+C    NDEC=2 : K,PI+,PI-
+C    NDEC=3 : K,PI-,PI+
+      CALL RMMAR( RD,2,1 )
+      IF ( RD(1) .LT. 0.5 ) THEN
+        NDEC = 1
+      ELSE
+        IF ( RD(2) .LT. 0.5 ) THEN
+          NDEC = 2
+        ELSE
+          NDEC = 3
+        ENDIF
+      ENDIF
+ 
+      IPI = 0
+    2 CONTINUE
+      IPI = IPI + 1
+ 
+C  TRANSVERS MOMENTUM
+      PT = PTRANS(DUMMY)
+      IF ( IPI .EQ. 1 ) THEN
+C  LONGITUDINAL MOMENTUM IS SELECTED FROM EXPONENTIAL DISTRIBUTION
+        P = PCL(C(42),W)
+C  CHARGE ASSIGNMENT
+        IF     ( NDEC .EQ. 1 ) THEN
+          SECPAR(1) = 7.D0
+          PMA = PAMA(7)
+        ELSEIF ( NDEC .EQ. 2 ) THEN
+          PMA = PAMA(8)
+          SECPAR(1) = 8.D0
+        ELSE
+          PMA = PAMA(9)
+          SECPAR(1) = 9.D0
+        ENDIF
+      ELSE
+C  LONGITUDINAL MOMENTUM AS ENERGY IS LEFT
+        P2 = RESTE**2 - PMA**2 - PT**2
+        P  = SQRT(MAX( P2, 0.D0 ))
+        IF     ( NDEC .EQ. 1 ) THEN
+          SECPAR(1) = 7.D0
+        ELSEIF ( NDEC .EQ. 2 ) THEN
+          SECPAR(1) = 9.D0
+        ELSE
+          SECPAR(1) = 8.D0
+        ENDIF
+      ENDIF
+C  REST OF ENERGY FOR OTHER PARTICLES
+      EDVH   = EDVH + SQRT( PMA**2 + P**2 + PT**2 )
+      RESTE  = AMASS - EDVH
+ 
+C  GAMMA AND BETA OF PION
+      GPIVH  = SQRT(P**2/PMA**2 + 1.D0)
+      BEPIVH = SQRT(GPIVH**2 - 1.D0) / GPIVH
+C  FOR FIRST PION CHOSE RANDOMLY WHETHER FORWARD OR BACKWARD
+C  FOR SECOND PION DECIDE ACCORDING TO ACCUMULATED P
+      CALL RMMAR( RD,2,1 )
+      IF ( IPI .EQ. 2 ) THEN
+        IF ( PACC .LT. 0.D0 ) THEN
+          RD(1) = 0.
+        ELSE
+          RD(1) = 1.
+        ENDIF
+      ENDIF
+      IF ( RD(1) .LT. 0.5 ) THEN
+C  BACKWARD PION
+        GPILAB = GVHLAB * GPIVH * (1.D0-BEPIVH*BVHLAB)
+        PACC   = PACC - P
+      ELSE
+C  FORWARD PION
+        GPILAB = GVHLAB * GPIVH * (1.D0+BEPIVH*BVHLAB)
+        PACC   = PACC + P
+      ENDIF
+ 
+      PLLAB2 = PMA**2 * (GPILAB**2 - 1.D0)
+      PLLAB2 = MAX( 1.D-6, PLLAB2 )
+      CTHETA = SQRT( PLLAB2 / (PT**2+PLLAB2) )
+      IF ( CTHETA .GE. C(27) ) THEN
+        CALL ADDANG( COSTHE,PHI, CTHETA,RD(2)*PI2, SECPAR(3),SECPAR(4) )
+        IF ( SECPAR(3) .GE. C(29) ) THEN
+          SECPAR(2) = GPILAB
+          DO 11  J = 5,8
+            SECPAR(J) = CURPAR(J)
+   11     CONTINUE
+          CALL TSTACK
+        ENDIF
+      ENDIF
+ 
+      IF ( IPI .LT. 2  .AND.  RESTE .GT. PMA ) GOTO 2
+ 
+      EBAL(5) = EBAL(5) + RESTE
+      MSMM    = MSMM + IPI
+ 
+      RETURN
+      END
+ 
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vstore.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vstore.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vstore.f	(revision 4308)
@@ -0,0 +1,504 @@
+      SUBROUTINE VSTORE
+ 
+C-----------------------------------------------------------------------
+C  V(ENUS PARTICLES) STORE (INTO CORSIKA STACK)
+C
+C  STORES VENUS OUTPUT PARTICLES INTO CORSIKA STACK
+C  THIS SUBROUTINE IS CALLED FROM VENLNK
+C
+C  DESIGN   : D. HECK    IK3  FZK KARLSRUHE
+C-----------------------------------------------------------------------
+ 
+*KEEP,CONST.
+      COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER
+      DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
+*KEEP,DPMFLG.
+      COMMON /DPMFLG/  NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+      INTEGER          NFLAIN,NFLDIF,NFLPI0,NFLCHE,NFLPIF,NFRAGM
+*KEEP,ELADPM.
+      COMMON /ELADPM/  ELMEAN,ELMEAA,IELDPM,IELDPA
+      DOUBLE PRECISION ELMEAN(37),ELMEAA(37)
+      INTEGER          IELDPM(37,13),IELDPA(37,13)
+*KEEP,ELASTY.
+      COMMON /ELASTY/  ELAST,IELIS,IELHM,IELNU,IELPI
+      DOUBLE PRECISION ELAST
+      INTEGER          IELIS(20),IELHM(20),IELNU(20),IELPI(20)
+*KEEP,INTER.
+      COMMON /INTER/   AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN,
+     *                 IDIF,ITAR
+      DOUBLE PRECISION AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB,
+     *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3,
+     *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG,
+     *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN
+      INTEGER          IDIF,ITAR
+*KEEP,ISTA.
+      COMMON /ISTA/    IFINET,IFINNU,IFINKA,IFINPI,IFINHY
+      INTEGER          IFINET,IFINNU,IFINKA,IFINPI,IFINHY
+*KEEP,MULT.
+      COMMON /MULT/    EKINL,MSMM,MULTMA,MULTOT
+      DOUBLE PRECISION EKINL
+      INTEGER          MSMM,MULTMA(37,13),MULTOT(37,13)
+*KEEP,PAM.
+      COMMON /PAM/     PAMA,SIGNUM
+      DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
+*KEEP,PARPAR.
+      COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C,
+     *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
+      DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
+     *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
+      INTEGER          ITYPE,LEVL
+*KEEP,PARPAE.
+      DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
+      EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE),
+     *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ),
+     *                 (CURPAR(6), T   ),  (CURPAR(7), X    ),
+     *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ),
+     *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ),
+     *                 (CURPAR(12),ECM )
+*KEEP,RANDPA.
+      COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR
+      DOUBLE PRECISION FAC,U1,U2
+      REAL             RD(3000)
+      INTEGER          ISEED(103,10),NSEQ
+      LOGICAL          KNOR
+*KEEP,REST.
+      COMMON /REST/    CONTNE,TAR,LT
+      DOUBLE PRECISION CONTNE(3),TAR
+      INTEGER          LT
+*KEEP,RUNPAR.
+      COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB,
+     *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
+     *                 MONIOU,MDEBUG,NUCNUC,
+     *                 CETAPE,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE,
+     *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+      COMMON /RUNPAC/  DSN,HOST,USER
+      DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
+      REAL             STEPFC
+      INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
+     *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
+     *                 N1STTR,MDBASE
+      INTEGER          CETAPE
+      CHARACTER*79     DSN
+      CHARACTER*20     HOST,USER
+ 
+      LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
+     *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE
+     *                ,GHEISH,GHESIG
+*KEND.
+ 
+      PARAMETER (KOLLMX=2500)
+      PARAMETER (MXPTL=70000)
+      PARAMETER (MXSTR=3000)
+      PARAMETER (NDEP=129)
+      PARAMETER (NDET=129)
+      COMMON /ACCUM/   AMSAC,ILAMAS,IMSG,INOIAC,IPAGE,JERR,NAEVT,NREVT
+     *                ,NRPTL,NRSTR,NTEVT
+      COMMON /CEVT/    BIMEVT,COLEVT,EGYEVT,PHIEVT,PMXEVT
+     *                ,KOLEVT,NEVT,NPJEVT,NTGEVT
+      COMMON /COL/     BIMP,BMAX,COORD(4,KOLLMX),DISTCE(KOLLMX)
+     *                ,QDEP(NDEP),QDET14(NDET),QDET16(NDET),QDET40(NDET)
+     *                ,QDET99(NDET),RMPROJ,RMTARG(4),XDEP(NDEP)
+     *                ,XDET14(NDET),XDET16(NDET),XDET40(NDET)
+     *                ,XDET99(NDET)
+     *                ,KOLL,LTARG,NORD(KOLLMX),NPROJ,NRPROJ(KOLLMX)
+     *                ,NRTARG(KOLLMX),NTARG
+      COMMON /CPTL/    PPTL(5,MXPTL),TIVPTL(2,MXPTL),XORPTL(4,MXPTL)
+     *                ,IBPTL(4,MXPTL),ICLPTL(MXPTL),IDPTL(MXPTL)
+     *                ,IFRPTL(2,MXPTL),IORPTL(MXPTL),ISTPTL(MXPTL)
+     *                ,JORPTL(MXPTL),NPTL,NQJPTL(MXPTL)
+      COMMON /CSTR/    PSTR(5,MXSTR),ROTSTR(3,MXSTR),XORSTR(4,MXSTR)
+     *                ,ICSTR(4,MXSTR),IORSTR(MXSTR),IRLSTR(MXSTR),NSTR
+      COMMON /FILES/   IFCH,IFDT,IFHI,IFMT,IFOP
+      COMMON /PARO2/   AMPROJ,AMTARG,ANGMUE,ELEPTI,ELEPTO,ENGY
+     *                ,PNLL,PNLLX,PROB(99),PROSEA,RHOPHI,TAUREA
+     *                ,YHAHA,YMXIMI,YPJTL
+     *                ,ICBAC(99,2),ICFOR(99,2),ICHOIC,ICLHIS,IDPM
+     *                ,IDPROJ,IDTARG,IENTRO,IJPHIS,IMIHIS,IPAGI,ISH
+     *                ,ISHEVT,ISHSUB,ISPALL,ISPHIS,ISTMAX,ISUP,IVI
+     *                ,JPSI,JPSIFI,KUTDIQ,LAPROJ,LATARG,MAPROJ,MATARG
+     *                ,MODSHO,NDECAX,NDECAY,NEVENT
+      COMMON /PARO3/   ASUHAX(7),ASUHAY(7),OMEGA,SIGPPD,SIGPPE,UENTRO
+     *                ,IWZZZZ
+ 
+      DOUBLE PRECISION EA,ELASTI,EMAX,GAMMAX,COSTET,PHIV,PL2,PT2,PTM
+      DOUBLE PRECISION PFRX(60),PFRY(60)
+      INTEGER          ITYP(60),NRPTLA(MXPTL)
+C-----------------------------------------------------------------------
+ 
+      IF ( DEBUG ) WRITE(MDEBUG,*) 'VSTORE:'
+ 
+C  NUMBER OF SPECTATORS OF REMAINING NUCLEUS IS NREST
+      NREST = ITYPE/100 - NPJEVT
+      IREST = ITYPE
+      NNEW  = 0
+      INEW  = 0
+      ETOT  = 0.
+ 
+      LEVT  = 1
+      LPTL  = 3
+      NPTLS = 0
+      DO  1 I=1,NPTL
+        NRPTLA(I) = -999
+        IF ( ISTPTL(I) .GT. ISTMAX ) GOTO 1
+        NPTLS = NPTLS+1
+        NRPTLA(I) = NPTLS
+ 1    CONTINUE
+ 
+C  EVENT VARIABLES:
+C     LEVT................... RECORD LABEL (LEVT=1)
+C     NREVT.................. EVENT NUMBER
+C     NPTLS ................. NUMBER OF (STORED!) PARTICLES PER EVENT
+C     BIMEVT ................ IMPACT PARAMETER
+C     KOLEVT,COLEVT ......... REAL/EFFECTIVE # OF COLLISIONS
+C     PMXEVT ................ REFERENCE MOMENTUM
+C     EGYEVT ................ PP CM ENERGY (HAD) OR STRING ENERGY (STR)
+C     NPJEVT,NTGEVT ......... # OF PROJ/TARG PARTICIPANTS
+ 
+      GNU = KOLEVT
+      GNU = COLEVT
+C  SET COORDINATES, WHICH ARE IDENTICAL FOR ALL SECONDARY PARTICLES
+      DO  6 I=5,8
+        SECPAR(I) = CURPAR(I)
+ 6    CONTINUE
+CC    GAMMAX = 0.D0
+      EMAX   = 0.D0
+ 
+C  PARTICLE LOOP
+      DO  5 I=1,NPTL
+        IF ( NRPTLA(I) .LE. 0 ) GOTO 5
+ 
+C  PARTICLE VARIABLES:
+C     LPTL ......... RECORD LABEL (LPTL=3)
+C     NREVT ........ EVENT NUMBER
+C     NRPTL ........ PARTICLE NUMBER
+C     I ............ ORIGINAL PTL NUMBER
+C     IDPTL ........ PARTICLE ID
+C     PPTL ......... 5-MOMENTUM (PX,PY,PZ,EN,MASS) IN LAB
+C     IOPTL ........ ORIGIN (-999:PARENT NOT STORED, -1,0:NO PARENT)
+C     JOPTL ........ ORIGIN (SECOND PARENT)
+C     ISTPTL ....... STABLE (=0) OR NOT (=1)
+C     XORPTL ....... SPACE-TIME POINT (X,Y,Z,T) ON PTL TRACK (PP-CM)
+C     TIVPTL ....... TIME INTERVAL OF EXISTENCE
+C     NQJPTL ....... QUARK NUMBERS OF JETS
+ 
+C  ELIMINATE TARGET SPECTATORS
+        IF ( PPTL(3,I) .EQ. 0. ) GOTO 5
+ 
+C  ELIMINATE BACKWARD GOING PARTICLES
+        IF ( PPTL(3,I) .LT. 0. ) GOTO 5
+C  CONVERT PARTICLE CODE  VEN(US) ---> C(O)RS(IKA)
+C  MOST FREQUENT PARTICLES COME FIRST
+        KODVEN = IDPTL(I)
+C  MESONS
+        IF     ( KODVEN .EQ.   110 ) THEN
+          KODCRS = 7
+        ELSEIF ( KODVEN .EQ.   120 ) THEN
+          KODCRS = 8
+        ELSEIF ( KODVEN .EQ.  -120 ) THEN
+          KODCRS = 9
+        ELSEIF ( KODVEN .EQ.   220 ) THEN
+          KODCRS = 17
+C  NUCLEONS
+        ELSEIF ( KODVEN .EQ.  1220 ) THEN
+          KODCRS = 13
+        ELSEIF ( KODVEN .EQ.  1120 ) THEN
+          KODCRS = 14
+        ELSEIF ( KODVEN .EQ. -1120 ) THEN
+          KODCRS = 15
+        ELSEIF ( KODVEN .EQ. -1220 ) THEN
+          KODCRS = 25
+C  STRANGE MESONS
+        ELSEIF ( KODVEN .EQ.   -20 ) THEN
+          KODCRS = 10
+        ELSEIF ( KODVEN .EQ.   130 ) THEN
+          KODCRS = 11
+        ELSEIF ( KODVEN .EQ.  -130 ) THEN
+          KODCRS = 12
+        ELSEIF ( KODVEN .EQ.    20 ) THEN
+          KODCRS = 16
+C  STRANGE BARYONS
+        ELSEIF ( KODVEN .EQ.  2130 ) THEN
+          KODCRS = 18
+        ELSEIF ( KODVEN .EQ.  1130 ) THEN
+          KODCRS = 19
+        ELSEIF ( KODVEN .EQ.  1230 ) THEN
+          KODCRS = 20
+        ELSEIF ( KODVEN .EQ.  2230 ) THEN
+          KODCRS = 21
+        ELSEIF ( KODVEN .EQ.  1330 ) THEN
+          KODCRS = 22
+        ELSEIF ( KODVEN .EQ.  2330 ) THEN
+          KODCRS = 23
+        ELSEIF ( KODVEN .EQ.  3331 ) THEN
+          KODCRS = 24
+        ELSEIF ( KODVEN .EQ. -2130 ) THEN
+          KODCRS = 26
+        ELSEIF ( KODVEN .EQ. -1130 ) THEN
+          KODCRS = 27
+        ELSEIF ( KODVEN .EQ. -1230 ) THEN
+          KODCRS = 28
+        ELSEIF ( KODVEN .EQ. -2230 ) THEN
+          KODCRS = 29
+        ELSEIF ( KODVEN .EQ. -1330 ) THEN
+          KODCRS = 30
+        ELSEIF ( KODVEN .EQ. -2330 ) THEN
+          KODCRS = 31
+        ELSEIF ( KODVEN .EQ. -3331 ) THEN
+          KODCRS = 32
+C  LEPTONS
+        ELSEIF ( KODVEN .EQ.    10 ) THEN
+          KODCRS = 1
+        ELSEIF ( KODVEN .EQ.   -12 ) THEN
+          KODCRS = 2
+        ELSEIF ( KODVEN .EQ.    12 ) THEN
+          KODCRS = 3
+        ELSEIF ( KODVEN .EQ.   -14 ) THEN
+          KODCRS = 5
+        ELSEIF ( KODVEN .EQ.    14 ) THEN
+          KODCRS = 6
+C  NEUTRINOS ARE SKIPPED
+        ELSEIF ( KODVEN .EQ.    11 ) THEN
+          GOTO 5
+        ELSEIF ( KODVEN .EQ.   -11 ) THEN
+          GOTO 5
+        ELSEIF ( KODVEN .EQ.    13 ) THEN
+          GOTO 5
+        ELSEIF ( KODVEN .EQ.   -13 ) THEN
+          GOTO 5
+        ELSE
+          WRITE(MONIOU,*)'VSTORE: UNKNOWN PARTICLE CODE IDPTL=',IDPTL(I)
+          GOTO 5
+        ENDIF
+        SECPAR(1) = KODCRS
+ 
+        IF ( KODCRS .NE. 1  .AND. KODCRS .LE. 65 ) THEN
+C  ORDINARY SECONDARY PARTICLES
+          SECPAR(2) = PPTL(4,I)/PAMA(KODCRS)
+C  LOOK FOR SPECTATOR NUCLEONS
+          IF ( KODCRS .EQ. 13  .OR.  KODCRS .EQ. 14 ) THEN
+C  ELIMINATE TARGET SPECTATORS
+            IF ( SECPAR(2) .LE. 1.002D0 ) GOTO 5
+C  TREAT PROJECTILE SPECTATORS
+            IF ( SECPAR(2) .GT. 0.999D0*GAMMA  .AND.
+     *           SECPAR(2) .LT. 1.001D0*GAMMA  .AND.
+     *           PPTL(1,I).EQ.0.  .AND.  PPTL(2,I).EQ.0. ) THEN
+              IF ( NFRAGM .NE. 0 ) THEN
+C  COMPOSE PROJECTILE SPECTATORS TO REMAINING NUCLEUS
+                NREST = NREST - 1
+                NNEW  = NNEW + 1
+                IF     ( KODCRS .EQ. 14 ) THEN
+                  INEW  = INEW + 101
+                  IREST = IREST - 101
+                ELSEIF ( KODCRS .EQ. 13 ) THEN
+                  INEW  = INEW + 100
+                  IREST = IREST - 100
+                ENDIF
+                GOTO 5
+              ENDIF
+C  DISREGARD PROJECTILE SPECTATORS FOR ELASTICITY
+              GOTO 7
+            ENDIF
+          ENDIF
+ 
+CC        IF ( SECPAR(2) .GT. GAMMAX ) THEN
+CC          GAMMAX = SECPAR(2)
+C  CALCULATE ELASTICITY FROM ENERGY OF FASTEST PARTICLE (LEADER)
+CC          ELASTI = GAMMAX * PAMA(KODCRS) / ELAB
+CC        ENDIF
+          IF ( SECPAR(2)*PAMA(KODCRS) .GT. EMAX ) THEN
+            EMAX = SECPAR(2)*PAMA(KODCRS)
+C  CALCULATE ELASTICITY FROM MOST ENERGETIC PARTICLE (LEADER)
+            ELASTI = EMAX / ELAB
+          ENDIF
+        ELSE
+C  GAMMAS AND NEUTRINOS
+          SECPAR(2) = PPTL(4,I)
+        ENDIF
+ 
+C  COUNTER FOR ENERGY-MULTIPLICITY MATRIX
+        MSMM = MSMM + 1
+ 
+C  DETERMINE ANGLES FROM LONGITUDINAL AND TRANSVERSAL MOMENTA
+ 7      CONTINUE
+        PT2 = DBLE(PPTL(1,I))**2 + DBLE(PPTL(2,I))**2
+        PL2 = DBLE(PPTL(3,I))**2
+ 
+        IF ( PL2+PT2 .LE. 0.D0 ) THEN
+          COSTET = 0.D0
+        ELSE
+          COSTET = PPTL(3,I) / SQRT(PL2+PT2)
+        ENDIF
+        COSTET = MAX( MIN(COSTET, 1.D0), -1.D0 )
+        IF ( PPTL(1,I)  .NE. 0.  .OR.  PPTL(2,I) .NE. 0. ) THEN
+          PHIV = ATAN2( DBLE(PPTL(1,I)), DBLE(PPTL(2,I)) )
+        ELSE
+          PHIV = 0.D0
+        ENDIF
+ 
+ 
+        ETOT = ETOT + PPTL(4,I)
+        CALL ADDANG( COSTHE,PHI, COSTET,PHIV, SECPAR(3),SECPAR(4) )
+        IF ( SECPAR(3) .GE. C(29) ) THEN
+          CALL TSTACK
+        ENDIF
+ 
+C  COUNTERS FOR FIRST INTERACTION
+        IF ( FIRSTI ) THEN
+          IF     ( SECPAR(1) .EQ.  7.D0  .OR.  SECPAR(1) .EQ.  8.D0
+     *       .OR.  SECPAR(1) .EQ.  9.D0                           ) THEN
+            IFINPI = IFINPI + 1
+          ELSEIF ( SECPAR(1) .EQ. 13.D0  .OR.  SECPAR(1) .EQ. 14.D0
+     *       .OR.  SECPAR(1) .EQ. 15.D0 .OR. SECPAR(1) .EQ. 25.D0 ) THEN
+            IFINNU = IFINNU + 1
+          ELSEIF ( SECPAR(1) .EQ. 10.D0  .OR.  SECPAR(1) .EQ. 11.D0
+     *       .OR.  SECPAR(1) .EQ. 12.D0 .OR. SECPAR(1) .EQ. 16.D0 ) THEN
+            IFINKA = IFINKA + 1
+          ELSEIF ( SECPAR(1) .EQ. 17.D0 ) THEN
+            IFINET = IFINET + 1
+          ELSEIF ((SECPAR(1) .GE. 18.D0 .AND. SECPAR(1) .LE. 24.D0)
+     *       .OR. (SECPAR(1) .GE. 26.D0 .AND. SECPAR(1) .LE. 32.D0))THEN
+            IFINHY = IFINHY + 1
+          ENDIF
+        ENDIF
+ 
+ 5    CONTINUE
+ 
+      IF (DEBUG) WRITE(MDEBUG,*) 'VSTORE: NTGEVT,ETOT =',NTGEVT,ETOT
+ 
+      IF ( NFRAGM .NE. 0  .AND.  INEW .GT. 0 ) THEN
+C  TREAT REMAINING NUCLEUS
+        IF ( DEBUG ) WRITE(MDEBUG,150) INEW,(CURPAR(I),I=2,8)
+ 150    FORMAT(' VSTORE: REMNNT=',1P,I10,7E10.3)
+        SECPAR(2) = CURPAR(2)
+        SECPAR(3) = CURPAR(3)
+        SECPAR(4) = CURPAR(4)
+ 
+        IF     ( INEW .EQ. 100 ) THEN
+C  REMAINING NUCLEUS IS SINGLE NEUTRON
+          SECPAR(1) = 13.D0
+          CALL TSTACK
+          ETOT = ETOT + SECPAR(2) * PAMA(13)
+          GOTO 140
+ 
+        ELSEIF ( INEW .EQ. 101 ) THEN
+C  REMAINING NUCLEUS IS SINGLE PROTON
+          SECPAR(1) = 14.D0
+          CALL TSTACK
+          ETOT = ETOT + SECPAR(2) * PAMA(14)
+          GOTO 140
+ 
+        ELSEIF ( NFRAGM .GE. 2 ) THEN
+C  REMAINING NUCLEUS IS EVAPORATING NUCLEONS AND ALPHA PARTICLES
+          NZNEW = MOD(INEW,100)
+          NNNEW = INEW/100 - NZNEW
+          JFIN  = 0
+          CALL VAPOR(MAPROJ,INEW,JFIN,ITYP,PFRX,PFRY)
+          IF ( JFIN .EQ. 0 ) GOTO 139
+C  LOOP TO TREAT THE REMANENTS OF THE DESINTEGRATED FRAGMENT
+          KNEW = 0
+          DO  135  J=1,JFIN
+            EA = GAMMA * PAMA(ITYP(J))
+            IF(DEBUG)WRITE(MDEBUG,*)'VSTORE: J,ITYP,EA=',J,ITYP(J),EA
+C  MOMENTA SQUARED
+            PTM = EA**2 - PAMA(ITYP(J))**2
+            PT2 = PFRX(J)**2 + PFRY(J)**2
+            IF ( PT2 .GE. PTM ) THEN
+              IF(DEBUG)WRITE(MDEBUG,*)'VSTORE: PT REJECT PARTICLE',J
+              GOTO 135
+            ENDIF
+            IF ( PTM .GT. 0.D0 ) THEN
+              COSTET = SQRT( 1.D0 - PT2/PTM )
+            ELSE
+              COSTET = 1.D0
+            ENDIF
+            IF ( PFRX(J) .NE. 0.D0  .OR.  PFRY(J) .NE. 0.D0 ) THEN
+              PHIV = ATAN2( PFRY(J), PFRX(J) )
+            ELSE
+              PHIV = 0.D0
+            ENDIF
+            CALL ADDANG( COSTHE,PHI, COSTET,PHIV, SECPAR(3),SECPAR(4) )
+            IF ( SECPAR(3) .GE. C(29) ) THEN
+              IF ( J .LT. JFIN ) THEN
+                SECPAR(1) = ITYP(J)
+                CALL TSTACK
+              ELSE
+                KNEW  = ITYP(JFIN)
+              ENDIF
+            ELSE
+              IF(DEBUG)WRITE(MDEBUG,*)'VSTORE: ANGLE REJECT PARTICLE',J
+            ENDIF
+ 135      CONTINUE
+ 
+        ELSEIF ( NFRAGM .EQ. 1 ) THEN
+C  REMAINING NUCLEUS IS ONE FRAGMENT
+          NZNEW = MOD(INEW,100)
+          NNNEW = INEW/100 - NZNEW
+          KNEW  = INEW
+        ENDIF
+ 
+        IF     ( KNEW/100 .EQ. 5 ) THEN
+C  REMAINING NUCLEUS: MASS 5 CANNOT BE TREATED IN BOX2
+          IF ( MOD(KNEW,100) .GE. 3 ) THEN
+C  MASS 5: SPLIT OFF ONE PROTON
+            SECPAR(1) = 14.D0
+            CALL TSTACK
+            KNEW = KNEW - 101
+          ELSE
+C  MASS 5: SPLIT OFF ONE NEUTRON
+            SECPAR(1) = 13.D0
+            CALL TSTACK
+            KNEW = KNEW - 100
+          ENDIF
+        ELSEIF ( KNEW/100 .EQ. 8 ) THEN
+C  REMAINING NUCLEUS: MASS 8 CANNOT BE TREATED IN BOX2
+          IF     ( MOD(KNEW,100) .GE. 5 ) THEN
+C  MASS 8: SPLIT OFF ONE PROTON
+            SECPAR(1) = 14.D0
+            CALL TSTACK
+            KNEW = KNEW - 101
+          ELSEIF ( MOD(KNEW,100) .LE. 3 ) THEN
+C  MASS 8: SPLIT OFF ONE NEUTRON
+            SECPAR(1) = 13.D0
+            CALL TSTACK
+            KNEW = KNEW - 100
+          ELSE
+C  MASS 8: SPLIT OFF ONE ALPHA PARTICLE
+            SECPAR(1) = 402.D0
+            CALL TSTACK
+            KNEW = KNEW - 402
+          ENDIF
+        ENDIF
+ 
+        SECPAR(1) = KNEW
+        CALL TSTACK
+      ENDIF
+ 
+ 139  ETOT = ETOT + SECPAR(2)*(PAMA(13)*NNNEW + PAMA(14)*NZNEW)
+ 140  CONTINUE
+      IF ( DEBUG ) WRITE(MDEBUG,*)'VSTORE: ELASTI,ETOT,ELAB=',
+     *                               SNGL(ELASTI),ETOT,ELAB
+ 
+C  FILL ELASTICITY IN MATRICES
+      MEL = MIN ( 1.D0+10.D0*      MAX( 0.D0, ELASTI ) , 11.D0 )
+      MEN = MIN ( 4.D0+ 3.D0*LOG10(MAX( .1D0, EKINL  )), 37.D0 )
+      IELDPM(MEN,MEL) = IELDPM(MEN,MEL) + 1
+      IELDPA(MEN,MEL) = IELDPA(MEN,MEL) + 1
+      IF ( ELASTI .LT. 1.D0 ) THEN
+        ELMEAN(MEN) = ELMEAN(MEN) + ELASTI
+        ELMEAA(MEN) = ELMEAA(MEN) + ELASTI
+      ENDIF
+ 
+      IF ( FIRSTI ) THEN
+        ELAST  = ELASTI
+        FIRSTI = .FALSE.
+      ENDIF
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vzero.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vzero.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Mmcs/vzero.f	(revision 4308)
@@ -0,0 +1,16 @@
+      SUBROUTINE VZERO (IA,N)
+ 
+C-----------------------------------------------------------------------
+C CERN PROGLIB# F121    VZERO           .VERSION KERNFOR  4.16  870601
+C ORIG. 01/07/71, MODIF. 24/05/87 TO SET INTEGER ZERO
+C-----------------------------------------------------------------------
+ 
+      DIMENSION IA(*)
+C-----------------------------------------------------------------------
+ 
+      IF (N.LE.0)  RETURN
+      DO 9 I= 1,N
+    9 IA(I)= 0
+ 
+      RETURN
+      END
Index: /branches/start/MagicSoft/Simulation/Corsika/Simone/MSimone.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Simone/MSimone.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Simone/MSimone.cxx	(revision 4308)
@@ -0,0 +1,93 @@
+#include <iostream.h>
+#include "MSimone.hxx"
+//==========
+// MSimone
+//    
+// This class handles and contains the MonteCarlo information
+// with which the events have been generated
+// This information exists for each event.
+
+//ClassImp(MSimone)
+
+
+
+MSimone::MSimone() {
+  //
+  //  default constructor
+  //  set all values to zero
+
+  PartId = 0  ;
+  Energy  = 0. ;
+
+  Theta   = 0. ;
+  Phi     = 0. ;
+
+  CoreD   = 0. ;
+  CoreX   = 0. ;
+  CoreY   = 0. ;
+  
+  FirstInt = 0. ; 
+}
+
+MSimone::~MSimone() {
+  //
+  //  default destructor
+  //
+}
+
+
+
+
+void MSimone::Clear() {
+  //
+  //  
+  //  reset all values to zero
+
+  PartId  = 0.  ;
+  Energy  = 0.  ;
+
+  Theta   = 0.  ;
+  Phi     = 0.  ;
+
+  CoreD   = 0.  ;
+  CoreX   = 0.  ;
+  CoreY   = 0.  ;
+  
+  FirstInt= 0.  ; 
+}
+
+
+void MSimone::Print(void) {
+  //
+  //  print out the data member on screen
+  //
+  cout <<endl << "Monte Carlo output:" <<endl;
+  cout << " Particle Id    : " << PartId ; 
+  cout << " Energy (GeV)   : " << Energy  ; 
+  cout << endl ; 
+}
+
+
+void MSimone::Transfer( COREventHeader *e )
+{
+  PartId       = e->PrimaryID;
+  Energy       = e->Etotal;
+
+  Theta          = e->Theta;
+  Phi            = e->Phi;
+  
+  FirstInt      = e->zFirstInt;
+}
+
+
+void MSimone::NtupFill( TNtuple *n )
+{
+  n->Fill(PartId,Energy,Theta,Phi) ; 
+}
+
+
+
+
+
+
+
Index: /branches/start/MagicSoft/Simulation/Corsika/Simone/MSimone.hxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Simone/MSimone.hxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Simone/MSimone.hxx	(revision 4308)
@@ -0,0 +1,49 @@
+#ifndef __MSimone__
+#define __MSimone__
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>  
+
+#include <iostream.h>
+#include "TObject.h"
+#include "TNtuple.h"
+
+#include "COREventHeader.hxx"
+
+//class MSimone : public TObject {
+class MSimone {
+ private:
+  Float_t  PartId;        // Type of particle
+  Float_t  Energy;       // Energy in GeV
+
+  Float_t  Theta;        // Theta angle of event 
+  Float_t  Phi;          // Phi angle of event 
+
+  Float_t  CoreD;        // Core d pos
+  Float_t  CoreX;        // Core x pos
+  Float_t  CoreY;        // Core y pos
+
+  Float_t  FirstInt ;    // First interaction in cm above sea level
+
+
+ public:
+  MSimone() ;         
+  
+  ~MSimone(); 
+
+  void Clear();
+
+  void Print(void);
+
+  void Transfer ( COREventHeader *e );
+
+  void NtupFill ( TNtuple *n ) ; 
+
+  //  ClassDef(MSimone, 1)   //Stores Montecarlo Information 
+
+};
+
+#endif
Index: /branches/start/MagicSoft/Simulation/Corsika/Simone/Makefile
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Simone/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Simone/Makefile	(revision 4308)
@@ -0,0 +1,216 @@
+##################################################################
+#
+# makefile
+#
+# @file        makefile 
+# @title       Simulation of the camera and trigger logic
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the camera program
+# Notes:   
+#    
+#---------------------------------------------------------------
+#
+# $RCSfile: Makefile,v $
+# $Revision: 1.1.1.1 $
+# $Author: harald $ 
+# $Date: 1999-11-18 09:39:14 $
+#
+##################################################################
+# @maintitle
+
+# @code
+
+INCLUDEMK = config.mk.${OSTYPE}
+include ${INCLUDEMK}
+
+# @endcode
+
+# @code 
+
+# common flags
+INCLUDES = -I${INCLUDE}      \
+	   -I${INCLUDE_COR}  \
+	   -I${INCLUDE_ROOT}  \
+	   -I${INCLUDE_SIMO} \
+           -I/usr/include  -I/usr/include/g++
+
+RANLIB  = -L${RANLIBDIR} -lranlib
+
+# what is needed for ROOT is declared in config.mk file
+
+
+# special flags
+
+osf_FORLIBS = -lUfor -lfor -lutil -lots -lm 
+linux_FORLIBS = -lm 
+generic_FORLIBS = -lm 
+
+FORLIBS = ${${SYSTEM}_FORLIBS}
+
+# compilation and linking flags
+
+CXXFLAGS  = -D__${SYSTEM}__ ${INCLUDES} ${OPTIM} ${DEBUG}
+CFLAGS    = ${CXXFLAGS}
+FFLAGS    = ${CXXFLAGS}
+LIBS      = ${RANLIB} ${ROOTLIBS} ${ROOTGLIBS} ${GLIBS} ${FORLIBS} 
+#LIBS      = ${CERNLIB} ${RANLIB} ${FORLIBS} 
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cxx .C .c++ .h .hxx .H .h++ .o .so .f
+
+SRCS = \
+	${INCLUDE_COR}/COREventHeader.cxx \
+	${INCLUDE_COR}/CORParticle.cxx \
+	${INCLUDE_COR}/CORStatfile.cxx \
+	MSimone.cxx \
+	simone.cxx      
+
+HEADERS = \
+	COREventHeader.hxx \
+	CORParticle.hxx \
+	CORStatfile.hxx \
+	MSimone.hxx \
+	simone.h
+
+OBJS = \
+	${INCLUDE_COR}/COREventHeader.o \
+	${INCLUDE_COR}/CORParticle.o \
+	${INCLUDE_COR}/CORStatfile.o \
+	MSimone.o \
+	simone.o      
+
+PROGRAM=simone
+
+############################################################
+
+all: ${PROGRAM}
+
+depend:
+	@makedepend $(SRCS) -fMakefile 2> /dev/null
+
+doc: reflector-doc
+
+reflector-doc: 
+	@echo "Generating documentation for camera . . . "
+	$(DOCUM) -latex -o reflector.tex \
+	reflector.cxx reflector.h \
+	readparam.cxx readparam.h \
+	atm.cxx atm.h
+	latex "\nonstopmode\input{reflector.tex}" && \
+	makeindex reflector && \
+	latex "\nonstopmode\input{reflector.tex}" && \
+	latex "\nonstopmode\input{reflector.tex}"
+	@echo "Files reflector.tex and reflector.dvi generated."
+
+rate: 
+	@echo "Rating documentation inside code . . . "
+	$(RATE) \
+	reflector.cxx reflector.h \
+	readparam.cxx readparam.h \
+	atm.cxx atm.h
+
+${PROGRAM}: $(OBJS)
+	@echo "Linking..." $@
+	$(CXX) $(CXXFLAGS) $(OBJS) $(LIBS) -o $@
+	@echo "done."
+
+.cxx.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo "Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+.f.o:	
+	@echo "Compiling " $<
+	$(F77) $(FFLAGS) -c $< -o $@
+
+lclean:
+	@echo "Cleanning..."
+	@rm -f *.o core 
+
+clean:
+	@echo "Cleanning..."
+	@rm -f $(OBJS) core 
+
+mrproper: clean
+	@echo "Mr.Proper in action . . ."
+	@rm -f $(PROGRAM)
+
+ctags:
+	@echo "Creating CTAGS file . . ."
+	@ctags -txw $(SRCS) $(HEADERS) > CTAGS
+
+etags:
+	@echo "Creating TAGS file . . ."
+	@etags -C $(SRCS) $(HEADERS)
+
+listsrc:
+	@ls -m $(SRCS) $(HEADERS) | sed 's/,//g'
+
+redo: clean all
+
+# @endcode
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+../../Detector/include-CORSIKA/COREventHeader.o: ../../Detector/include-CORSIKA/COREventHeader.hxx
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/stdlib.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/standards.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/getopt.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/sys/types.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/mach/machine/vm_types.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/sys/select.h
+../../Detector/include-CORSIKA/COREventHeader.o: /usr/include/math.h
+../../Detector/include-CORSIKA/CORParticle.o: ../../Detector/include-CORSIKA/CORParticle.hxx
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/stdlib.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/standards.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/getopt.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/sys/types.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/mach/machine/vm_types.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/sys/select.h
+../../Detector/include-CORSIKA/CORParticle.o: /usr/include/math.h
+../../Detector/include-CORSIKA/CORStatfile.o: ../../Detector/include-CORSIKA/CORStatfile.hxx
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/stdlib.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/standards.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/getopt.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/sys/types.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/mach/machine/vm_types.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/sys/select.h
+../../Detector/include-CORSIKA/CORStatfile.o: /usr/include/math.h
+MSimone.o: MSimone.hxx /usr/include/stdlib.h /usr/include/standards.h
+MSimone.o: /usr/include/getopt.h /usr/include/sys/types.h
+MSimone.o: /usr/include/mach/machine/vm_types.h /usr/include/sys/select.h
+MSimone.o: /usr/include/stdio.h /usr/include/sys/seek.h
+MSimone.o: /usr/include/va_list.h /usr/include/sys/limits.h
+MSimone.o: /usr/include/sys/machine/machlimits.h /usr/include/sys/syslimits.h
+MSimone.o: /usr/include/sys/machine/machtime.h /usr/include/sys/rt_limits.h
+MSimone.o: /usr/include/string.h /usr/include/strings.h /usr/include/unistd.h
+MSimone.o: /usr/include/sys/access.h /usr/include/fcntl.h
+MSimone.o: /usr/include/sys/fcntl.h /usr/include/sys/mode.h
+MSimone.o: ../../Detector/include-CORSIKA/COREventHeader.hxx
+MSimone.o: /usr/include/math.h
+simone.o: /usr/include/stdlib.h /usr/include/standards.h
+simone.o: /usr/include/getopt.h /usr/include/sys/types.h
+simone.o: /usr/include/mach/machine/vm_types.h /usr/include/sys/select.h
+simone.o: ../../Detector/include-CORSIKA/COREventHeader.hxx
+simone.o: /usr/include/math.h ../../Detector/include-CORSIKA/CORParticle.hxx
+simone.o: ../../Detector/include-CORSIKA/CORStatfile.hxx MSimone.hxx
+simone.o: /usr/include/stdio.h /usr/include/sys/seek.h /usr/include/va_list.h
+simone.o: /usr/include/sys/limits.h /usr/include/sys/machine/machlimits.h
+simone.o: /usr/include/sys/syslimits.h /usr/include/sys/machine/machtime.h
+simone.o: /usr/include/sys/rt_limits.h /usr/include/string.h
+simone.o: /usr/include/strings.h /usr/include/unistd.h
+simone.o: /usr/include/sys/access.h /usr/include/fcntl.h
+simone.o: /usr/include/sys/fcntl.h /usr/include/sys/mode.h
Index: /branches/start/MagicSoft/Simulation/Corsika/Simone/config.mk.linux-gnu
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Simone/config.mk.linux-gnu	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Simone/config.mk.linux-gnu	(revision 4308)
@@ -0,0 +1,74 @@
+##################################################################
+#
+# config.mk
+#
+# @file        config.mk
+# @title       small configuration file for Makefile
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the reflector program
+# Notes:   
+#    
+#---------------------------------------------------------------
+# $RCSfile: config.mk.linux-gnu,v $
+# $Revision: 1.1.1.1 $
+# $Author: harald $ 
+# $Date: 1999-11-18 09:39:14 $
+##################################################################
+# @maintitle
+
+# @code
+
+# program
+
+PROGRAM = camera
+
+# compilers & tools
+
+CC            = gcc
+CXX           = g++
+F77           = g77
+
+DOCUM         = ../sus/sus
+RATE          = ../../comstat/comstat -g -p 
+
+# includes		
+
+INCLUDE       = ../../Detector/include-GENERAL
+INCLUDE_COR   = ../../Detector/include-CORSIKA
+INCLUDE_ROOT  = ${ROOTSYS}/include  
+INCLUDE_SIMO  = .
+
+OPTIM    = 
+DEBUG    = -g
+
+# libraries
+
+
+ROOTLIBS      = -L$(ROOTSYS)/lib -lNew -lBase -lCint -lClib \
+                -lCont -lFunc -lGraf -lGraf3d -lHist -lHtml \
+                -lMatrix -lMeta -lMinuit -lNet -lPostscript \
+                -lProof -lTree -lUnix -lZip -lRint
+
+ROOTGLIBS     = -lGpad -lGui -lGX11 -lX3d -lX11
+
+
+GLIBS         = $(ROOTLIBS) $(ROOTGLIBS) -L/usr/X11R6/lib \
+                -lXpm -lX11  -lm -ldl 
+
+
+RANLIBDIR = ../../Detector/lib
+CERNDIR = /CERN
+
+# system
+
+SYSTEM  = linux
+
+# @endcode
+##EOF
Index: /branches/start/MagicSoft/Simulation/Corsika/Simone/config.mk.osf1
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Simone/config.mk.osf1	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Simone/config.mk.osf1	(revision 4308)
@@ -0,0 +1,72 @@
+##################################################################
+#
+# config.mk
+#
+# @file        config.mk
+# @title       small configuration file for Makefile
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the reflector program
+# Notes:   
+#    
+#---------------------------------------------------------------
+# $RCSfile: config.mk.osf1,v $
+# $Revision: 1.1.1.1 $
+# $Author: harald $ 
+# $Date: 1999-11-18 09:39:14 $
+##################################################################
+# @maintitle
+
+# @code
+
+# program
+
+PROGRAM = camera
+
+# compilers & tools
+
+CC            = cc
+CXX           = cxx
+F77           = f77
+
+DOCUM         = ../sus/sus
+RATE          = ../../comstat/comstat -g -p 
+
+# includes		
+
+INCLUDE       = ../../Detector/include-GENERAL
+INCLUDE_COR   = ../../Detector/include-CORSIKA
+INCLUDE_ROOT  = ${ROOTSYS}/include  
+INCLUDE_SIMO  = .
+
+OPTIM    = -O
+DEBUG    = -g
+
+# libraries
+
+ROOTLIBS =  	-L/CERN/root/lib -lNew -lCore -lCint -lHist \
+		-lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript \
+		-lMatrix -lPhysics -lm  
+
+ROOTGLIBS = 	-L/CERN/root/lib -lNew -lCore -lCint -lHist \
+		-lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript \
+		-lMatrix -lPhysics -lGui -lm  
+
+GLIBS = 	$(ROOTLIBS) $(ROOTGLIBS)
+
+
+RANLIBDIR = ../../Detector/lib
+CERNDIR = /CERN
+
+# system
+
+SYSTEM  = osf
+
+# @endcode
+##EOF
Index: /branches/start/MagicSoft/Simulation/Corsika/Simone/simone.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Corsika/Simone/simone.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Corsika/Simone/simone.cxx	(revision 4308)
@@ -0,0 +1,91 @@
+//
+//
+//
+//
+//
+//
+#include <stdlib.h>
+#include "TROOT.h"
+
+#include "TFile.h"
+#include "TNtuple.h"
+
+#include "COREventHeader.hxx"
+#include "CORParticle.hxx"
+#include "CORStatfile.hxx"
+
+#include "MSimone.hxx"
+
+main() 
+  {
+    // initialise ROOT
+
+    TROOT simple("simple", "SIMONE - statistic of MonteCarlo");
+              
+    //    char  path[100] = "/hd61/Maggi/Data/mcMAGIC-1-30:30000-1" ; 
+    char  path[100] = "/hd31/Data/mmcs_prod_1009_30:30000_14" ; 
+    //    char  path[100] = "/data/mmcs/" ; 
+    char  cername[120] ; 
+    char  datname[120] ; 
+
+    ifstream   cerfile ; 
+
+    COREventHeader Event ;   
+    
+    MSimone    Infos ; 
+    Infos.Print() ; 
+    //
+    //    now create a root-file for the ntuple output
+    // 
+
+    TFile *outfile = new TFile("simone.root","RECREATE");
+
+    TNtuple *Ntup = new TNtuple("simone",
+			       "Simone info of mmcs",
+			       "PartId:Energy:Theta:Phi");
+
+
+    for (int i_cer = 1; i_cer < 1000; i_cer++ ) {
+
+      //
+      //   create the file names 
+      //
+      sprintf ( cername, "%s/cer%06d", path, i_cer ) ; 
+      sprintf ( datname, "%s/dat%06d", path, i_cer ) ; 
+
+      //      cout << cername  << endl ; 
+      //      cout << datname  << endl ; 
+
+      //
+      //   try to open the files
+      // 
+
+      cerfile.open( cername );
+        
+      if ( cerfile.bad() ) { 
+        cout << "Cannot open input file:  " << cername << endl ;
+	continue ; 
+      }
+          
+      cout << " Read event " << endl ;
+      Event.read( cerfile );
+      
+      Infos.Transfer ( &Event ) ; 
+
+      Infos.Print() ; 
+
+      Infos.NtupFill ( Ntup ) ; 
+ 
+      cerfile.close();
+
+    } 
+    
+
+    //
+    //   write all to file
+    //
+    outfile->Write() ; 
+
+  } 
+
+
Index: /branches/start/MagicSoft/Simulation/Detector/Camera/MDiag.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Camera/MDiag.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Camera/MDiag.cxx	(revision 4308)
@@ -0,0 +1,62 @@
+//!/////////////////////////////////////////////////////////////////////
+//
+// camera                
+//
+// @file        MDiag.cxx
+// @title       definition of the diagnostic output root tree
+// @author      DP
+// @date        Thu Oct 21
+//
+//----------------------------------------------------------------------
+//
+// $RCSfile: MDiag.cxx,v $
+// $Revision: 1.1.1.1 $
+// $Author: harald $ 
+// $Date: 1999-11-05 11:59:32 $
+//
+////////////////////////////////////////////////////////////////////////
+
+#include "MDiag.h"
+
+ClassImp(MDiagEventobject)
+
+MDiagEventobject::MDiagEventobject(){ // the constructor function
+                        // initialize with invalid values
+ n = -99.;
+ primary = -99.;
+ energy = -99.;
+ cored = -99.;
+ impact = -99.;
+ xcore = -99.;
+ ycore = -99.;
+ theta = -99.;
+ phi = -99.;
+ deviations = -99.;
+ dtheta = -99.;
+ dphi = -99.;
+ trigger = -99.;
+ ncphs = -99.;
+ nphes = -99.;
+ maxpassthr_phe = -99.;
+ nphes2 = -99.;
+ length = -99.;
+ width = -99.;
+ dist = -99.;
+ xdist = -99.;
+ azw = -99.;
+ miss = -99.;
+ alpha = -99.;
+ conc2 = -99.;
+ conc3 = -99.;
+ conc4 = -99.;
+ conc5 = -99.;
+ conc6 = -99.;
+ conc7 = -99.;
+ conc8 = -99.;
+ conc9 = -99.;
+ conc10 = -99.;
+ asymx = -99.;
+ asymy = -99.;
+ phiasym = -99.;  
+
+}
Index: /branches/start/MagicSoft/Simulation/Detector/Camera/MDiag.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Camera/MDiag.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Camera/MDiag.h	(revision 4308)
@@ -0,0 +1,74 @@
+//!/////////////////////////////////////////////////////////////////////
+//
+// camera                
+//
+// @file        MDiag.h
+// @title       definition of the diagnostic output root tree
+// @author      DP
+// @date        Thu Oct 21
+//
+//----------------------------------------------------------------------
+//
+// $RCSfile: MDiag.h,v $
+// $Revision: 1.1.1.1 $
+// $Author: harald $ 
+// $Date: 1999-11-05 11:59:33 $
+//
+////////////////////////////////////////////////////////////////////////
+
+#include <stdlib.h>
+#include <iostream.h>
+#include <fstream.h>
+#include <string.h>
+
+#include "TROOT.h"
+#include "TFile.h"
+#include "TRandom.h"
+#include "TTree.h"
+
+class MDiagEventobject : public TObject{
+public:
+
+  Float_t n;      
+  Float_t primary;
+  Float_t energy; 
+  Float_t cored;  
+  Float_t impact; 
+  Float_t xcore;  
+  Float_t ycore;  
+  Float_t theta;  
+  Float_t phi;
+  Float_t deviations;
+  Float_t dtheta;
+  Float_t dphi;
+  Float_t trigger;
+  Float_t ncphs;
+  Float_t maxpassthr_phe;
+  Float_t nphes;  
+  Float_t nphes2; 
+  Float_t length; 
+  Float_t width;  
+  Float_t dist;   
+  Float_t xdist;  
+  Float_t azw;    
+  Float_t miss;   
+  Float_t alpha;  
+  Float_t conc2;  
+  Float_t conc3;  
+  Float_t conc4;  
+  Float_t conc5;  
+  Float_t conc6;  
+  Float_t conc7;  
+  Float_t conc8;  
+  Float_t conc9;  
+  Float_t conc10; 
+  Float_t asymx;  
+  Float_t asymy;  
+  Float_t phiasym;  
+
+  MDiagEventobject();
+  virtual ~MDiagEventobject() {}
+  
+  ClassDef(MDiagEventobject,1)
+    
+};
Index: /branches/start/MagicSoft/Simulation/Detector/Camera/MDiagLinkDef.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Camera/MDiagLinkDef.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Camera/MDiagLinkDef.h	(revision 4308)
@@ -0,0 +1,9 @@
+#ifdef __CINT__
+
+#pragma link off all globals;
+#pragma link off all classes;
+#pragma link off all functions;
+
+#pragma link C++ class MDiagEventobject;
+
+#endif
Index: /branches/start/MagicSoft/Simulation/Detector/Camera/MDiagdict.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Camera/MDiagdict.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Camera/MDiagdict.cxx	(revision 4308)
@@ -0,0 +1,588 @@
+/********************************************************
+* MDiagdict.cxx
+********************************************************/
+#include "MDiagdict.h"
+
+#ifdef G__MEMTEST
+#undef malloc
+#endif
+
+extern "C" void G__cpp_reset_tagtableMDiagdict();
+
+extern "C" void G__set_cpp_environmentMDiagdict() {
+  G__add_macro("__MAKECINT__");
+  G__add_compiledheader("TROOT.h");
+  G__add_compiledheader("TMemberInspector.h");
+  G__add_compiledheader("MDiag.h");
+  G__cpp_reset_tagtableMDiagdict();
+}
+extern "C" int G__cpp_dllrevMDiagdict() { return(51111); }
+
+/*********************************************************
+* Member function Interface Method
+*********************************************************/
+
+/* MDiagEventobject */
+static int G__MDiagEventobject_MDiagEventobject_0_0(G__value *result7,char *funcname,struct G__param *libp,int hash) {
+   MDiagEventobject *p=NULL;
+   if(G__getaryconstruct()) p=new MDiagEventobject[G__getaryconstruct()];
+   else                    p=new MDiagEventobject;
+      result7->obj.i = (long)p;
+      result7->ref = (long)p;
+      result7->type = 'u';
+      result7->tagnum = G__get_linked_tagnum(&G__MDiagdictLN_MDiagEventobject);
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__MDiagEventobject_DeclFileName_2_0(G__value *result7,char *funcname,struct G__param *libp,int hash) {
+      G__letint(result7,67,(long)((MDiagEventobject*)(G__getstructoffset()))->DeclFileName());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__MDiagEventobject_DeclFileLine_3_0(G__value *result7,char *funcname,struct G__param *libp,int hash) {
+      G__letint(result7,105,(long)((MDiagEventobject*)(G__getstructoffset()))->DeclFileLine());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__MDiagEventobject_ImplFileName_4_0(G__value *result7,char *funcname,struct G__param *libp,int hash) {
+      G__letint(result7,67,(long)((MDiagEventobject*)(G__getstructoffset()))->ImplFileName());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__MDiagEventobject_ImplFileLine_5_0(G__value *result7,char *funcname,struct G__param *libp,int hash) {
+      G__letint(result7,105,(long)((MDiagEventobject*)(G__getstructoffset()))->ImplFileLine());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__MDiagEventobject_Class_Version_6_0(G__value *result7,char *funcname,struct G__param *libp,int hash) {
+      G__letint(result7,115,(long)((MDiagEventobject*)(G__getstructoffset()))->Class_Version());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__MDiagEventobject_Class_7_0(G__value *result7,char *funcname,struct G__param *libp,int hash) {
+      G__letint(result7,85,(long)((MDiagEventobject*)(G__getstructoffset()))->Class());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__MDiagEventobject_Dictionary_8_0(G__value *result7,char *funcname,struct G__param *libp,int hash) {
+      G__setnull(result7);
+      ((MDiagEventobject*)(G__getstructoffset()))->Dictionary();
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__MDiagEventobject_IsA_9_0(G__value *result7,char *funcname,struct G__param *libp,int hash) {
+      G__letint(result7,85,(long)((MDiagEventobject*)(G__getstructoffset()))->IsA());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__MDiagEventobject_ShowMembers_0_1(G__value *result7,char *funcname,struct G__param *libp,int hash) {
+      G__setnull(result7);
+      ((MDiagEventobject*)(G__getstructoffset()))->ShowMembers(*(TMemberInspector*)libp->para[0].ref,(char*)G__int(libp->para[1]));
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__MDiagEventobject_Streamer_1_1(G__value *result7,char *funcname,struct G__param *libp,int hash) {
+      G__setnull(result7);
+      ((MDiagEventobject*)(G__getstructoffset()))->Streamer(*(TBuffer*)libp->para[0].ref);
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+// automatic copy constructor
+static int G__MDiagEventobject_MDiagEventobject_2_1(G__value *result7,char *funcname,struct G__param *libp,int hash)
+{
+   MDiagEventobject *p;
+   if(1!=libp->paran) ;
+   p=new MDiagEventobject(*(MDiagEventobject*)G__int(libp->para[0]));
+   result7->obj.i = (long)p;
+   result7->ref = (long)p;
+   result7->type = 'u';
+   result7->tagnum = G__get_linked_tagnum(&G__MDiagdictLN_MDiagEventobject);
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+// automatic destructor
+static int G__MDiagEventobject_wAMDiagEventobject_3_1(G__value *result7,char *funcname,struct G__param *libp,int hash) {
+   if(G__getaryconstruct())
+     if(G__PVOID==G__getgvp())
+       delete[] (MDiagEventobject *)(G__getstructoffset());
+     else
+       for(int i=G__getaryconstruct()-1;i>=0;i--)
+         delete (MDiagEventobject *)((G__getstructoffset())+sizeof(MDiagEventobject)*i);
+   else  delete (MDiagEventobject *)(G__getstructoffset());
+      G__setnull(result7);
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+
+/* Setting up global function */
+
+/*********************************************************
+* Member function Stub
+*********************************************************/
+
+/* MDiagEventobject */
+
+/*********************************************************
+* Global function Stub
+*********************************************************/
+
+/*********************************************************
+* Get size of pointer to member function
+*********************************************************/
+class G__Sizep2memfuncMDiagdict {
+ public:
+  G__Sizep2memfuncMDiagdict() {p=&G__Sizep2memfuncMDiagdict::sizep2memfunc;}
+    size_t sizep2memfunc() { return(sizeof(p)); }
+  private:
+    size_t (G__Sizep2memfuncMDiagdict::*p)();
+};
+
+size_t G__get_sizep2memfuncMDiagdict()
+{
+  G__Sizep2memfuncMDiagdict a;
+  G__setsizep2memfunc((int)a.sizep2memfunc());
+  return((size_t)a.sizep2memfunc());
+}
+
+
+/*********************************************************
+* virtual base class offset calculation interface
+*********************************************************/
+
+   /* Setting up class inheritance */
+
+/*********************************************************
+* Inheritance information setup/
+*********************************************************/
+extern "C" void G__cpp_setup_inheritanceMDiagdict() {
+
+   /* Setting up class inheritance */
+   if(0==G__getnumbaseclass(G__get_linked_tagnum(&G__MDiagdictLN_MDiagEventobject))) {
+     MDiagEventobject *G__Lderived;
+     G__Lderived=(MDiagEventobject*)0x1000;
+     {
+       TObject *G__Lpbase=(TObject*)G__Lderived;
+       G__inheritance_setup(G__get_linked_tagnum(&G__MDiagdictLN_MDiagEventobject),G__get_linked_tagnum(&G__MDiagdictLN_TObject),(long)G__Lpbase-(long)G__Lderived,1,1);
+     }
+   }
+}
+
+/*********************************************************
+* typedef information setup/
+*********************************************************/
+extern "C" void G__cpp_setup_typetableMDiagdict() {
+
+   /* Setting up typedef entry */
+   G__search_typename2("Char_t",99,-1,0,
+-1);
+   G__setnewtype(-1,"Signed Character 1 byte",0);
+   G__search_typename2("UChar_t",98,-1,0,
+-1);
+   G__setnewtype(-1,"Unsigned Character 1 byte",0);
+   G__search_typename2("Short_t",115,-1,0,
+-1);
+   G__setnewtype(-1,"Signed Short integer 2 bytes",0);
+   G__search_typename2("UShort_t",114,-1,0,
+-1);
+   G__setnewtype(-1,"Unsigned Short integer 2 bytes",0);
+   G__search_typename2("Int_t",105,-1,0,
+-1);
+   G__setnewtype(-1,"Signed integer 4 bytes",0);
+   G__search_typename2("UInt_t",104,-1,0,
+-1);
+   G__setnewtype(-1,"Unsigned integer 4 bytes",0);
+   G__search_typename2("Seek_t",105,-1,0,
+-1);
+   G__setnewtype(-1,"File pointer",0);
+   G__search_typename2("Long_t",108,-1,0,
+-1);
+   G__setnewtype(-1,"Signed long integer 8 bytes",0);
+   G__search_typename2("ULong_t",107,-1,0,
+-1);
+   G__setnewtype(-1,"Unsigned long integer 8 bytes",0);
+   G__search_typename2("Float_t",102,-1,0,
+-1);
+   G__setnewtype(-1,"Float 4 bytes",0);
+   G__search_typename2("Double_t",100,-1,0,
+-1);
+   G__setnewtype(-1,"Float 8 bytes",0);
+   G__search_typename2("Text_t",99,-1,0,
+-1);
+   G__setnewtype(-1,"General string",0);
+   G__search_typename2("Bool_t",98,-1,0,
+-1);
+   G__setnewtype(-1,"Boolean (0=false, 1=true)",0);
+   G__search_typename2("Byte_t",98,-1,0,
+-1);
+   G__setnewtype(-1,"Byte (8 bits)",0);
+   G__search_typename2("Version_t",115,-1,0,
+-1);
+   G__setnewtype(-1,"Class version identifier",0);
+   G__search_typename2("Option_t",99,-1,0,
+-1);
+   G__setnewtype(-1,"Option string",0);
+   G__search_typename2("Ssiz_t",105,-1,0,
+-1);
+   G__setnewtype(-1,"String size",0);
+   G__search_typename2("Real_t",102,-1,0,
+-1);
+   G__setnewtype(-1,"TVector and TMatrix element type",0);
+   G__search_typename2("VoidFuncPtr_t",89,-1,0,
+-1);
+   G__setnewtype(-1,"pointer to void function",0);
+   G__search_typename2("FreeHookFun_t",89,-1,0,
+-1);
+   G__setnewtype(-1,NULL,0);
+   G__search_typename2("ReAllocFun_t",81,-1,0,
+-1);
+   G__setnewtype(-1,NULL,0);
+   G__search_typename2("ReAllocCFun_t",81,-1,0,
+-1);
+   G__setnewtype(-1,NULL,0);
+   G__search_typename2("Axis_t",102,-1,0,
+-1);
+   G__setnewtype(-1,"Axis values type",0);
+   G__search_typename2("Stat_t",100,-1,0,
+-1);
+   G__setnewtype(-1,"Statistics type",0);
+   G__search_typename2("Font_t",115,-1,0,
+-1);
+   G__setnewtype(-1,"Font number",0);
+   G__search_typename2("Style_t",115,-1,0,
+-1);
+   G__setnewtype(-1,"Style number",0);
+   G__search_typename2("Marker_t",115,-1,0,
+-1);
+   G__setnewtype(-1,"Marker number",0);
+   G__search_typename2("Width_t",115,-1,0,
+-1);
+   G__setnewtype(-1,"Line width",0);
+   G__search_typename2("Color_t",115,-1,0,
+-1);
+   G__setnewtype(-1,"Color number",0);
+   G__search_typename2("SCoord_t",115,-1,0,
+-1);
+   G__setnewtype(-1,"Screen coordinates",0);
+   G__search_typename2("Coord_t",102,-1,0,
+-1);
+   G__setnewtype(-1,"Pad world coordinates",0);
+   G__search_typename2("Angle_t",102,-1,0,
+-1);
+   G__setnewtype(-1,"Graphics angle",0);
+   G__search_typename2("Size_t",102,-1,0,
+-1);
+   G__setnewtype(-1,"Attribute size",0);
+}
+
+/*********************************************************
+* Data Member information setup/
+*********************************************************/
+
+   /* Setting up class,struct,union tag member variable */
+
+   /* MDiagEventobject */
+static void G__setup_memvarMDiagEventobject(void) {
+   G__tag_memvar_setup(G__get_linked_tagnum(&G__MDiagdictLN_MDiagEventobject));
+   { MDiagEventobject *p; p=(MDiagEventobject*)0x1000; if (p) { }
+   G__memvar_setup((void*)((long)(&p->n)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"n=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->primary)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"primary=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->energy)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"energy=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->cored)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"cored=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->impact)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"impact=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->xcore)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"xcore=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->ycore)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"ycore=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->theta)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"theta=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->phi)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"phi=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->deviations)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"deviations=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->dtheta)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"dtheta=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->dphi)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"dphi=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->trigger)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"trigger=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->ncphs)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"ncphs=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->maxpassthr_phe)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"maxpassthr_phe=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->nphes)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"nphes=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->nphes2)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"nphes2=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->length)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"length=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->width)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"width=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->dist)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"dist=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->xdist)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"xdist=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->azw)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"azw=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->miss)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"miss=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->alpha)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"alpha=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->conc2)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"conc2=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->conc3)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"conc3=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->conc4)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"conc4=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->conc5)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"conc5=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->conc6)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"conc6=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->conc7)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"conc7=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->conc8)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"conc8=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->conc9)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"conc9=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->conc10)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"conc10=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->asymx)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"asymx=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->asymy)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"asymy=",0,(char*)NULL);
+   G__memvar_setup((void*)((long)(&p->phiasym)-(long)(p)),102,0,0,-1,G__defined_typename("Float_t"),-1,1,"phiasym=",0,(char*)NULL);
+   G__memvar_setup((void*)NULL,85,0,0,G__get_linked_tagnum(&G__MDiagdictLN_TClass),-1,-2,4,"fgIsA=",0,(char*)NULL);
+   }
+   G__tag_memvar_reset();
+}
+
+extern "C" void G__cpp_setup_memvarMDiagdict() {
+}
+/***********************************************************
+************************************************************
+************************************************************
+************************************************************
+************************************************************
+************************************************************
+************************************************************
+***********************************************************/
+
+/*********************************************************
+* Member function information setup for each class
+*********************************************************/
+static void G__setup_memfuncMDiagEventobject(void) {
+   /* MDiagEventobject */
+   G__tag_memfunc_setup(G__get_linked_tagnum(&G__MDiagdictLN_MDiagEventobject));
+   G__memfunc_setup("MDiagEventobject",1595,G__MDiagEventobject_MDiagEventobject_0_0,105,G__get_linked_tagnum(&G__MDiagdictLN_MDiagEventobject),-1,0,0,1,1,0,"",(char*)NULL,(void*)NULL,0);
+   G__memfunc_setup("DeclFileName",1145,G__MDiagEventobject_DeclFileName_2_0,67,-1,-1,0,0,1,1,1,"",(char*)NULL,(void*)NULL,0);
+   G__memfunc_setup("DeclFileLine",1152,G__MDiagEventobject_DeclFileLine_3_0,105,-1,-1,0,0,1,1,0,"",(char*)NULL,(void*)NULL,0);
+   G__memfunc_setup("ImplFileName",1171,G__MDiagEventobject_ImplFileName_4_0,67,-1,-1,0,0,1,1,1,"",(char*)NULL,(void*)NULL,0);
+   G__memfunc_setup("ImplFileLine",1178,G__MDiagEventobject_ImplFileLine_5_0,105,-1,-1,0,0,1,1,0,"",(char*)NULL,(void*)NULL,0);
+   G__memfunc_setup("Class_Version",1339,G__MDiagEventobject_Class_Version_6_0,115,-1,G__defined_typename("Version_t"),0,0,1,1,0,"",(char*)NULL,(void*)NULL,0);
+   G__memfunc_setup("Class",502,G__MDiagEventobject_Class_7_0,85,G__get_linked_tagnum(&G__MDiagdictLN_TClass),-1,0,0,1,1,0,"",(char*)NULL,(void*)NULL,0);
+   G__memfunc_setup("Dictionary",1046,G__MDiagEventobject_Dictionary_8_0,121,-1,-1,0,0,1,1,0,"",(char*)NULL,(void*)NULL,0);
+   G__memfunc_setup("IsA",253,G__MDiagEventobject_IsA_9_0,85,G__get_linked_tagnum(&G__MDiagdictLN_TClass),-1,0,0,1,1,8,"",(char*)NULL,(void*)NULL,1);
+   G__memfunc_setup("ShowMembers",1132,G__MDiagEventobject_ShowMembers_0_1,121,-1,-1,0,2,1,1,0,
+"u 'TMemberInspector' - 1 - insp C - - 0 - parent",(char*)NULL,(void*)NULL,1);
+   G__memfunc_setup("Streamer",835,G__MDiagEventobject_Streamer_1_1,121,-1,-1,0,1,1,1,0,"u 'TBuffer' - 1 - b",(char*)NULL,(void*)NULL,1);
+   // automatic copy constructor
+   G__memfunc_setup("MDiagEventobject",1595,G__MDiagEventobject_MDiagEventobject_2_1,(int)('i'),G__get_linked_tagnum(&G__MDiagdictLN_MDiagEventobject),-1,0,1,1,1,0,"u 'MDiagEventobject' - 1 - -",(char*)NULL,(void*)NULL,0);
+   // automatic destructor
+   G__memfunc_setup("~MDiagEventobject",1721,G__MDiagEventobject_wAMDiagEventobject_3_1,(int)('y'),-1,-1,0,0,1,1,0,"",(char*)NULL,(void*)NULL,1);
+   G__tag_memfunc_reset();
+}
+
+
+/*********************************************************
+* Member function information setup
+*********************************************************/
+extern "C" void G__cpp_setup_memfuncMDiagdict() {
+}
+
+/*********************************************************
+* Global variable information setup for each class
+*********************************************************/
+extern "C" void G__cpp_setup_globalMDiagdict() {
+
+   /* Setting up global variables */
+   G__resetplocal();
+
+
+   G__resetglobalenv();
+}
+
+/*********************************************************
+* Global function information setup for each class
+*********************************************************/
+extern "C" void G__cpp_setup_funcMDiagdict() {
+   G__lastifuncposition();
+
+
+   G__resetifuncposition();
+}
+
+/*********************************************************
+* Class,struct,union,enum tag information setup
+*********************************************************/
+/* Setup class/struct taginfo */
+G__linked_taginfo G__MDiagdictLN_TClass = { "TClass" , 99 , -1 };
+G__linked_taginfo G__MDiagdictLN_TObject = { "TObject" , 99 , -1 };
+G__linked_taginfo G__MDiagdictLN_MDiagEventobject = { "MDiagEventobject" , 99 , -1 };
+
+/* Reset class/struct taginfo */
+extern "C" void G__cpp_reset_tagtableMDiagdict() {
+  G__MDiagdictLN_TClass.tagnum = -1 ;
+  G__MDiagdictLN_TObject.tagnum = -1 ;
+  G__MDiagdictLN_MDiagEventobject.tagnum = -1 ;
+}
+
+extern "C" void G__cpp_setup_tagtableMDiagdict() {
+
+   /* Setting up class,struct,union tag entry */
+   G__tagtable_setup(G__get_linked_tagnum(&G__MDiagdictLN_MDiagEventobject),sizeof(MDiagEventobject),-1,0,(char*)NULL,G__setup_memvarMDiagEventobject,G__setup_memfuncMDiagEventobject);
+}
+extern "C" void G__cpp_setupMDiagdict() {
+  G__check_setup_version(51111,"G__cpp_setupMDiagdict()");
+  G__set_cpp_environmentMDiagdict();
+  G__cpp_setup_tagtableMDiagdict();
+
+  G__cpp_setup_inheritanceMDiagdict();
+
+  G__cpp_setup_typetableMDiagdict();
+
+  G__cpp_setup_memvarMDiagdict();
+
+  G__cpp_setup_memfuncMDiagdict();
+  G__cpp_setup_globalMDiagdict();
+  G__cpp_setup_funcMDiagdict();
+
+   if(0==G__getsizep2memfunc()) G__get_sizep2memfuncMDiagdict();
+  return;
+}
+class G__cpp_setup_initMDiagdict {
+  public:
+    G__cpp_setup_initMDiagdict() { G__add_setup_func("MDiagdict",&G__cpp_setupMDiagdict); }
+   ~G__cpp_setup_initMDiagdict() { G__remove_setup_func("MDiagdict"); }
+};
+G__cpp_setup_initMDiagdict G__cpp_setup_initializerMDiagdict;
+
+//
+// File generated by /cern/root/bin/rootcint at Fri Oct 29 11:52:06 1999.
+// Do NOT change. Changes will be lost next time file is generated
+//
+
+#include "TBuffer.h"
+#include "TMemberInspector.h"
+#include "TError.h"
+
+//______________________________________________________________________________
+TBuffer &operator>>(TBuffer &buf, MDiagEventobject *&obj)
+{
+   // Read a pointer to an object of class MDiagEventobject.
+
+   obj = (MDiagEventobject *) buf.ReadObject(MDiagEventobject::Class());
+   return buf;
+}
+
+//______________________________________________________________________________
+void MDiagEventobject::Streamer(TBuffer &R__b)
+{
+   // Stream an object of class MDiagEventobject.
+
+   if (R__b.IsReading()) {
+      Version_t R__v = R__b.ReadVersion(); if (R__v) { }
+      TObject::Streamer(R__b);
+      R__b >> n;
+      R__b >> primary;
+      R__b >> energy;
+      R__b >> cored;
+      R__b >> impact;
+      R__b >> xcore;
+      R__b >> ycore;
+      R__b >> theta;
+      R__b >> phi;
+      R__b >> deviations;
+      R__b >> dtheta;
+      R__b >> dphi;
+      R__b >> trigger;
+      R__b >> ncphs;
+      R__b >> maxpassthr_phe;
+      R__b >> nphes;
+      R__b >> nphes2;
+      R__b >> length;
+      R__b >> width;
+      R__b >> dist;
+      R__b >> xdist;
+      R__b >> azw;
+      R__b >> miss;
+      R__b >> alpha;
+      R__b >> conc2;
+      R__b >> conc3;
+      R__b >> conc4;
+      R__b >> conc5;
+      R__b >> conc6;
+      R__b >> conc7;
+      R__b >> conc8;
+      R__b >> conc9;
+      R__b >> conc10;
+      R__b >> asymx;
+      R__b >> asymy;
+      R__b >> phiasym;
+   } else {
+      R__b.WriteVersion(MDiagEventobject::IsA());
+      TObject::Streamer(R__b);
+      R__b << n;
+      R__b << primary;
+      R__b << energy;
+      R__b << cored;
+      R__b << impact;
+      R__b << xcore;
+      R__b << ycore;
+      R__b << theta;
+      R__b << phi;
+      R__b << deviations;
+      R__b << dtheta;
+      R__b << dphi;
+      R__b << trigger;
+      R__b << ncphs;
+      R__b << maxpassthr_phe;
+      R__b << nphes;
+      R__b << nphes2;
+      R__b << length;
+      R__b << width;
+      R__b << dist;
+      R__b << xdist;
+      R__b << azw;
+      R__b << miss;
+      R__b << alpha;
+      R__b << conc2;
+      R__b << conc3;
+      R__b << conc4;
+      R__b << conc5;
+      R__b << conc6;
+      R__b << conc7;
+      R__b << conc8;
+      R__b << conc9;
+      R__b << conc10;
+      R__b << asymx;
+      R__b << asymy;
+      R__b << phiasym;
+   }
+}
+
+//______________________________________________________________________________
+void MDiagEventobject::ShowMembers(TMemberInspector &R__insp, char *R__parent)
+{
+   // Inspect the data members of an object of class MDiagEventobject.
+
+   TClass *R__cl  = MDiagEventobject::IsA();
+   Int_t   R__ncp = strlen(R__parent);
+   if (R__ncp || R__cl || R__insp.IsA()) { }
+   R__insp.Inspect(R__cl, R__parent, "n", &n);
+   R__insp.Inspect(R__cl, R__parent, "primary", &primary);
+   R__insp.Inspect(R__cl, R__parent, "energy", &energy);
+   R__insp.Inspect(R__cl, R__parent, "cored", &cored);
+   R__insp.Inspect(R__cl, R__parent, "impact", &impact);
+   R__insp.Inspect(R__cl, R__parent, "xcore", &xcore);
+   R__insp.Inspect(R__cl, R__parent, "ycore", &ycore);
+   R__insp.Inspect(R__cl, R__parent, "theta", &theta);
+   R__insp.Inspect(R__cl, R__parent, "phi", &phi);
+   R__insp.Inspect(R__cl, R__parent, "deviations", &deviations);
+   R__insp.Inspect(R__cl, R__parent, "dtheta", &dtheta);
+   R__insp.Inspect(R__cl, R__parent, "dphi", &dphi);
+   R__insp.Inspect(R__cl, R__parent, "trigger", &trigger);
+   R__insp.Inspect(R__cl, R__parent, "ncphs", &ncphs);
+   R__insp.Inspect(R__cl, R__parent, "maxpassthr_phe", &maxpassthr_phe);
+   R__insp.Inspect(R__cl, R__parent, "nphes", &nphes);
+   R__insp.Inspect(R__cl, R__parent, "nphes2", &nphes2);
+   R__insp.Inspect(R__cl, R__parent, "length", &length);
+   R__insp.Inspect(R__cl, R__parent, "width", &width);
+   R__insp.Inspect(R__cl, R__parent, "dist", &dist);
+   R__insp.Inspect(R__cl, R__parent, "xdist", &xdist);
+   R__insp.Inspect(R__cl, R__parent, "azw", &azw);
+   R__insp.Inspect(R__cl, R__parent, "miss", &miss);
+   R__insp.Inspect(R__cl, R__parent, "alpha", &alpha);
+   R__insp.Inspect(R__cl, R__parent, "conc2", &conc2);
+   R__insp.Inspect(R__cl, R__parent, "conc3", &conc3);
+   R__insp.Inspect(R__cl, R__parent, "conc4", &conc4);
+   R__insp.Inspect(R__cl, R__parent, "conc5", &conc5);
+   R__insp.Inspect(R__cl, R__parent, "conc6", &conc6);
+   R__insp.Inspect(R__cl, R__parent, "conc7", &conc7);
+   R__insp.Inspect(R__cl, R__parent, "conc8", &conc8);
+   R__insp.Inspect(R__cl, R__parent, "conc9", &conc9);
+   R__insp.Inspect(R__cl, R__parent, "conc10", &conc10);
+   R__insp.Inspect(R__cl, R__parent, "asymx", &asymx);
+   R__insp.Inspect(R__cl, R__parent, "asymy", &asymy);
+   R__insp.Inspect(R__cl, R__parent, "phiasym", &phiasym);
+   TObject::ShowMembers(R__insp, R__parent);
+}
+
Index: /branches/start/MagicSoft/Simulation/Detector/Camera/MDiagdict.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Camera/MDiagdict.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Camera/MDiagdict.h	(revision 4308)
@@ -0,0 +1,35 @@
+/********************************************************************
+* MDiagdict.h
+********************************************************************/
+#ifdef __CINT__
+#error MDiagdict.h/C is only for compilation. Abort cint.
+#endif
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <string.h>
+extern "C" {
+#define G__ANSIHEADER
+#include "G__ci.h"
+extern void G__cpp_setup_tagtableMDiagdict();
+extern void G__cpp_setup_inheritanceMDiagdict();
+extern void G__cpp_setup_typetableMDiagdict();
+extern void G__cpp_setup_memvarMDiagdict();
+extern void G__cpp_setup_globalMDiagdict();
+extern void G__cpp_setup_memfuncMDiagdict();
+extern void G__cpp_setup_funcMDiagdict();
+extern void G__set_cpp_environmentMDiagdict();
+}
+
+
+#include "TROOT.h"
+#include "TMemberInspector.h"
+#include "MDiag.h"
+
+#ifndef G__MEMFUNCBODY
+#endif
+
+extern G__linked_taginfo G__MDiagdictLN_TClass;
+extern G__linked_taginfo G__MDiagdictLN_TObject;
+extern G__linked_taginfo G__MDiagdictLN_MDiagEventobject;
Index: /branches/start/MagicSoft/Simulation/Detector/Camera/Makefile
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Camera/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Camera/Makefile	(revision 4308)
@@ -0,0 +1,427 @@
+##################################################################
+#
+# makefile
+#
+# @file        makefile 
+# @title       Simulation of the camera and trigger logic
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the camera program
+# Notes:   
+#    
+#---------------------------------------------------------------
+#
+# $RCSfile: Makefile,v $
+# $Revision: 1.1.1.1 $
+# $Author: harald $ 
+# $Date: 1999-11-05 11:59:32 $
+#
+##################################################################
+# @maintitle
+
+# @code
+
+INCLUDEMK = config.mk.${OSTYPE} 
+include ${INCLUDEMK}
+
+# @endcode
+
+# @code 
+
+# common flags
+INCLUDES = -I${INCLUDE}      \
+		   -I${INCLUDE_COR}  \
+		   -I${INCLUDE_MC}   \
+		   -I${INCLUDE_EVITA}   \
+		   -I${INCLUDE_TRIGGER}   \
+		   -I${INCLUDE_REFL} \
+                   -I${INCLUDE_ROOT} \
+	           -I/usr/include/g++
+
+RANLIB  = -L${RANLIBDIR} -lranlib
+
+# what is needed for ROOT
+
+ROOTLIBS      = -L$(ROOTSYS)/lib -lNew -lBase -lCint -lClib \
+                -lCont -lFunc -lGraf -lGraf3d -lHist -lHtml \
+                -lMatrix -lMeta -lMinuit -lNet -lPostscript \
+                -lProof -lTree -lUnix -lZip -lRint
+#ROOTLIBS      = 
+
+ROOTGLIBS     = -lGpad -lGui -lGX11 -lX3d -lX11
+#ROOTGLIBS     =
+
+GLIBS         = $(ROOTLIBS) $(ROOTGLIBS) -L/usr/X11R6/lib \
+                -lXpm -lX11  -lm -ldl -rdynamic
+# special flags
+
+osf_FORLIBS = -lUfor -lfor -lutil -lots -lm 
+#linux_FORLIBS =  -lf2c -lm /usr/lib/libc.a
+linux_FORLIBS =  -lm -ldl 
+#linux_FORLIBS =  -lm -ldl -rdynamic
+generic_FORLIBS = -lm 
+
+FORLIBS = ${${SYSTEM}_FORLIBS}
+
+# compilation and linking flags
+
+CXXFLAGS  = -D__${SYSTEM}__ ${INCLUDES} ${OPTIM} ${DEBUG}
+ CFLAGS    = ${CXXFLAGS}
+FFLAGS    = ${CXXFLAGS}
+LIBS      = ${RANLIB} ${ROOTLIBS} ${ROOTGLIBS} ${GLIBS}
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cxx .C .c++ .h .hxx .H .h++ .o .so .f
+
+SRCS = \
+	${INCLUDE_MC}/MCEventHeader.cxx \
+	${INCLUDE_MC}/MCCphoton.cxx \
+	${INCLUDE_TRIGGER}/MTrigger.cxx \
+	${INCLUDE_EVITA}/MRawPixel.cxx \
+	${INCLUDE_EVITA}/MRawEvt.cxx \
+	${INCLUDE_EVITA}/MMcEvt.cxx \
+	MCamCint.cxx \
+	MDiag.cxx \
+	moments.cxx \
+	creadparam.cxx \
+	camera.cxx   
+
+HEADERS = \
+	MCEventHeader.hxx \
+	MCCphoton.hxx \
+	MTRigger.hxx \
+	MRawPixel.h \
+	MRawEvt.h \
+	MMcEvt.h \
+	lagrange.h \
+	atm.h \
+	MDiag.h \
+	moments.h \
+	creadparam.h \
+	camera.h
+
+OBJS = \
+	${INCLUDE_MC}/MCEventHeader.o \
+	${INCLUDE_MC}/MCCphoton.o \
+	${INCLUDE_TRIGGER}/MTrigger.o \
+	${INCLUDE_EVITA}/MRawPixel.o \
+	${INCLUDE_EVITA}/MRawEvt.o \
+	${INCLUDE_EVITA}/MMcEvt.o \
+	MCamCint.o \
+	MDiag.o \
+	MDiagdict.o \
+	moments.o \
+	creadparam.o \
+	camera.o      
+
+############################################################
+
+all: ${PROGRAM}
+
+depend:
+	@makedepend $(SRCS) $(INCLUDES) -fMakefile 2> kk.kk ; cat kk.kk
+
+doc: camera-doc
+
+camera-doc: 
+	@echo "Generating documentation for camera . . . "
+	$(DOCUM) -latex -o camera.tex \
+	camera.cxx camera.h \
+	creadparam.cxx creadparam.h \
+	moments.cxx moments.h
+	latex "\nonstopmode\input{camera.tex}" && \
+	makeindex camera && \
+	latex "\nonstopmode\input{camera.tex}" && \
+	latex "\nonstopmode\input{camera.tex}"
+	@echo "Files camera.tex and camera.dvi generated."
+
+${PROGRAM}: $(OBJS) MDiag.so
+	@echo "Linking..." 
+	echo `ls -m $(OBJS)|sed 's/,/ +/g' `" + libraries => " $@
+	$(CXX) $(CXXFLAGS) $(OBJS) $(LIBS) -o $@
+	@echo "done."
+
+MDiagdict.o:     MDiagdict.cxx MDiag.h 
+	$(CXX) $(CXXFLAGS) -I${INCLUDE_ROOT} -c MDiagdict.cxx
+
+MDiagdict.cxx:  MDiag.h  MDiagLinkDef.h
+	${ROOTSYS}/bin/rootcint -f MDiagdict.cxx -c MDiag.h MDiagLinkDef.h 
+
+MDiag.o:        MDiag.cxx MDiag.h 
+	$(CXX) $(CXXFLAGS) -I${INCLUDE_ROOT} -c MDiag.cxx -o MDiag.o
+
+# the following shared object library is for being loaded into ROOT using 
+#".L MDiag.so" if the diagnostic output is to be read e.g. with a TTree viewer 
+MDiag.so: MDiag.o MDiagdict.o
+	$(CXX) -shared -g -I${INCLUDE_ROOT} MDiag.o MDiagdict.o -o MDiag.so  
+
+
+MCamCint.cxx: 	${INCLUDE_EVITA}/MRawPixel.h \
+		${INCLUDE_EVITA}/MRawEvt.h \
+		${INCLUDE_EVITA}/MMcEvt.h \
+		${INCLUDE_EVITA}/Mdefine.h
+
+		@echo
+		@echo "Generating dictionary ..."
+		@echo
+
+		@$(ROOTSYS)/bin/rootcint -f  \
+		MCamCint.cxx -c \
+		${INCLUDE_EVITA}/MRawPixel.h \
+		${INCLUDE_EVITA}/MRawEvt.h \
+		${INCLUDE_EVITA}/MMcEvt.h \
+#		${INCLUDE_EVITA}/MCameraDisplay.h \
+		${INCLUDE_EVITA}/Mdefine.h \
+		${INCLUDE_EVITA}/LinkDef.h
+
+		@echo
+		@echo "Dictionary done"
+		@echo
+
+.cxx.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo "Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+lclean:
+	@echo "Cleanning..."
+	@rm -f *.o core 
+
+clean:
+	@echo "Cleanning..."
+	@rm -f $(OBJS) core 
+	@rm -f MCamCint.cxx MCamCint.h 
+
+mrproper: clean
+	@echo "Mr.Proper in action . . ."
+	@rm -f $(PROGRAM)
+
+ctags:
+	@echo "Creating CTAGS file . . ."
+	@ctags -txw $(SRCS) $(HEADERS) > CTAGS
+
+etags:
+	@echo "Creating TAGS file . . ."
+	@etags -C $(SRCS) $(HEADERS)
+
+listsrc:
+	@ls -m $(SRCS) $(HEADERS) | sed 's/,//g'
+
+redo: clean all
+
+cflags: 
+	@echo $(INCLUDES) $(CXXFLAGS)
+
+# @endcode
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+../include-MC/MCEventHeader.o: ../include-MC/MCEventHeader.hxx
+../include-MC/MCEventHeader.o: ../include-GENERAL/Rtypes.h
+../include-MC/MCEventHeader.o: /usr/include/g++/iostream.h
+../include-MC/MCEventHeader.o: /usr/include/g++/streambuf.h
+../include-MC/MCEventHeader.o: /usr/include/libio.h /usr/include/features.h
+../include-MC/MCEventHeader.o: /usr/include/sys/cdefs.h
+../include-MC/MCEventHeader.o: /usr/include/gnu/stubs.h
+../include-MC/MCEventHeader.o: /usr/include/_G_config.h
+../include-MC/MCEventHeader.o: /usr/include/gnu/types.h
+../include-MC/MCEventHeader.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+../include-MC/MCEventHeader.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stdarg.h
+../include-MC/MCEventHeader.o: /usr/include/g++/iomanip.h
+../include-MC/MCEventHeader.o: /usr/include/g++/fstream.h
+../include-MC/MCEventHeader.o: /usr/include/stdlib.h /usr/include/sys/types.h
+../include-MC/MCEventHeader.o: /usr/include/time.h /usr/include/endian.h
+../include-MC/MCEventHeader.o: /usr/include/bytesex.h
+../include-MC/MCEventHeader.o: /usr/include/sys/select.h
+../include-MC/MCEventHeader.o: /usr/include/selectbits.h
+../include-MC/MCEventHeader.o: /usr/include/alloca.h /usr/include/math.h
+../include-MC/MCEventHeader.o: /usr/include/huge_val.h
+../include-MC/MCEventHeader.o: /usr/include/mathcalls.h
+../include-MC/MCEventHeader.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/float.h
+../include-MC/MCEventHeader.o: ../include-CORSIKA/COREventHeader.hxx
+../include-MC/MCCphoton.o: ../include-MC/MCCphoton.hxx
+../include-MC/MCCphoton.o: ../include-GENERAL/Rtypes.h
+../include-MC/MCCphoton.o: /usr/include/g++/iostream.h
+../include-MC/MCCphoton.o: /usr/include/g++/streambuf.h /usr/include/libio.h
+../include-MC/MCCphoton.o: /usr/include/features.h /usr/include/sys/cdefs.h
+../include-MC/MCCphoton.o: /usr/include/gnu/stubs.h /usr/include/_G_config.h
+../include-MC/MCCphoton.o: /usr/include/gnu/types.h
+../include-MC/MCCphoton.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+../include-MC/MCCphoton.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stdarg.h
+../include-MC/MCCphoton.o: /usr/include/g++/iomanip.h
+../include-MC/MCCphoton.o: /usr/include/g++/fstream.h /usr/include/stdlib.h
+../include-MC/MCCphoton.o: /usr/include/sys/types.h /usr/include/time.h
+../include-MC/MCCphoton.o: /usr/include/endian.h /usr/include/bytesex.h
+../include-MC/MCCphoton.o: /usr/include/sys/select.h
+../include-MC/MCCphoton.o: /usr/include/selectbits.h /usr/include/alloca.h
+../include-MC/MCCphoton.o: /usr/include/string.h /usr/include/math.h
+../include-MC/MCCphoton.o: /usr/include/huge_val.h /usr/include/mathcalls.h
+../include-MC/MCCphoton.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/float.h
+../include-MC/MCCphoton.o: ../include-GENERAL/jcmacros.h
+../include-MTrigger/MTrigger.o: ../include-MTrigger/MTrigger.hxx
+../include-MTrigger/MTrigger.o: /usr/include/g++/iostream.h
+../include-MTrigger/MTrigger.o: /usr/include/g++/streambuf.h
+../include-MTrigger/MTrigger.o: /usr/include/libio.h /usr/include/features.h
+../include-MTrigger/MTrigger.o: /usr/include/sys/cdefs.h
+../include-MTrigger/MTrigger.o: /usr/include/gnu/stubs.h
+../include-MTrigger/MTrigger.o: /usr/include/_G_config.h
+../include-MTrigger/MTrigger.o: /usr/include/gnu/types.h
+../include-MTrigger/MTrigger.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+../include-MTrigger/MTrigger.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stdarg.h
+../include-MTrigger/MTrigger.o: /usr/include/math.h /usr/include/huge_val.h
+../include-MTrigger/MTrigger.o: /usr/include/mathcalls.h
+../include-MTrigger/MTrigger.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/float.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TObject.h
+../include-MTrigger/MTrigger.o: ../../../include-Classes/Mdefine.h
+../../../include-Classes/MRawPixel.o: /usr/include/g++/iostream.h
+../../../include-Classes/MRawPixel.o: /usr/include/g++/streambuf.h
+../../../include-Classes/MRawPixel.o: /usr/include/libio.h
+../../../include-Classes/MRawPixel.o: /usr/include/features.h
+../../../include-Classes/MRawPixel.o: /usr/include/sys/cdefs.h
+../../../include-Classes/MRawPixel.o: /usr/include/gnu/stubs.h
+../../../include-Classes/MRawPixel.o: /usr/include/_G_config.h
+../../../include-Classes/MRawPixel.o: /usr/include/gnu/types.h
+../../../include-Classes/MRawPixel.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+../../../include-Classes/MRawPixel.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stdarg.h
+../../../include-Classes/MRawPixel.o: /cern/root/include/TClonesArray.h
+../../../include-Classes/MRawPixel.o: /cern/root/include/TString.h
+../../../include-Classes/MRawPixel.o: /usr/include/string.h
+../../../include-Classes/MRawPixel.o: /cern/root/include/TRandom.h
+../../../include-Classes/MRawPixel.o: ../../../include-Classes/MRawPixel.h
+../../../include-Classes/MRawPixel.o: /cern/root/include/TObject.h
+../../../include-Classes/MRawPixel.o: ../../../include-Classes/Mdefine.h
+../../../include-Classes/MRawEvt.o: /usr/include/g++/iostream.h
+../../../include-Classes/MRawEvt.o: /usr/include/g++/streambuf.h
+../../../include-Classes/MRawEvt.o: /usr/include/libio.h
+../../../include-Classes/MRawEvt.o: /usr/include/features.h
+../../../include-Classes/MRawEvt.o: /usr/include/sys/cdefs.h
+../../../include-Classes/MRawEvt.o: /usr/include/gnu/stubs.h
+../../../include-Classes/MRawEvt.o: /usr/include/_G_config.h
+../../../include-Classes/MRawEvt.o: /usr/include/gnu/types.h
+../../../include-Classes/MRawEvt.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+../../../include-Classes/MRawEvt.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stdarg.h
+../../../include-Classes/MRawEvt.o: /cern/root/include/TClonesArray.h
+../../../include-Classes/MRawEvt.o: /cern/root/include/TString.h
+../../../include-Classes/MRawEvt.o: /usr/include/string.h
+../../../include-Classes/MRawEvt.o: /cern/root/include/TRandom.h
+../../../include-Classes/MRawEvt.o: ../../../include-Classes/MRawEvt.h
+../../../include-Classes/MRawEvt.o: /cern/root/include/TObject.h
+../../../include-Classes/MRawEvt.o: ../../../include-Classes/Mdefine.h
+../../../include-Classes/MRawEvt.o: ../../../include-Classes/MRawPixel.h
+../../../include-Classes/MMcEvt.o: /usr/include/g++/iostream.h
+../../../include-Classes/MMcEvt.o: /usr/include/g++/streambuf.h
+../../../include-Classes/MMcEvt.o: /usr/include/libio.h
+../../../include-Classes/MMcEvt.o: /usr/include/features.h
+../../../include-Classes/MMcEvt.o: /usr/include/sys/cdefs.h
+../../../include-Classes/MMcEvt.o: /usr/include/gnu/stubs.h
+../../../include-Classes/MMcEvt.o: /usr/include/_G_config.h
+../../../include-Classes/MMcEvt.o: /usr/include/gnu/types.h
+../../../include-Classes/MMcEvt.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+../../../include-Classes/MMcEvt.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stdarg.h
+../../../include-Classes/MMcEvt.o: ../../../include-Classes/MMcEvt.h
+../../../include-Classes/MMcEvt.o: /usr/include/stdlib.h
+../../../include-Classes/MMcEvt.o: /usr/include/sys/types.h
+../../../include-Classes/MMcEvt.o: /usr/include/time.h /usr/include/endian.h
+../../../include-Classes/MMcEvt.o: /usr/include/bytesex.h
+../../../include-Classes/MMcEvt.o: /usr/include/sys/select.h
+../../../include-Classes/MMcEvt.o: /usr/include/selectbits.h
+../../../include-Classes/MMcEvt.o: /usr/include/alloca.h /usr/include/stdio.h
+../../../include-Classes/MMcEvt.o: /usr/include/stdio_lim.h
+../../../include-Classes/MMcEvt.o: /usr/include/string.h
+../../../include-Classes/MMcEvt.o: /usr/include/unistd.h
+../../../include-Classes/MMcEvt.o: /usr/include/posix_opt.h
+../../../include-Classes/MMcEvt.o: /usr/include/confname.h
+../../../include-Classes/MMcEvt.o: /usr/include/fcntl.h
+../../../include-Classes/MMcEvt.o: /usr/include/fcntlbits.h
+../../../include-Classes/MMcEvt.o: /cern/root/include/TObject.h
+MDiag.o: MDiag.h /usr/include/stdlib.h /usr/include/features.h
+MDiag.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+MDiag.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+MDiag.o: /usr/include/sys/types.h /usr/include/gnu/types.h
+MDiag.o: /usr/include/time.h /usr/include/endian.h /usr/include/bytesex.h
+MDiag.o: /usr/include/sys/select.h /usr/include/selectbits.h
+MDiag.o: /usr/include/alloca.h /usr/include/g++/iostream.h
+MDiag.o: /usr/include/g++/streambuf.h /usr/include/libio.h
+MDiag.o: /usr/include/_G_config.h
+MDiag.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stdarg.h
+MDiag.o: /usr/include/g++/fstream.h /usr/include/string.h
+MDiag.o: /cern/root/include/TROOT.h /cern/root/include/TFile.h
+MDiag.o: /cern/root/include/TRandom.h /cern/root/include/TTree.h
+moments.o: moments.h /usr/include/g++/iostream.h /usr/include/g++/streambuf.h
+moments.o: /usr/include/libio.h /usr/include/features.h
+moments.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+moments.o: /usr/include/_G_config.h /usr/include/gnu/types.h
+moments.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+moments.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stdarg.h
+moments.o: /usr/include/g++/fstream.h /usr/include/stdlib.h
+moments.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/endian.h
+moments.o: /usr/include/bytesex.h /usr/include/sys/select.h
+moments.o: /usr/include/selectbits.h /usr/include/alloca.h
+moments.o: /usr/include/stdio.h /usr/include/stdio_lim.h
+moments.o: /usr/include/string.h /usr/include/math.h /usr/include/huge_val.h
+moments.o: /usr/include/mathcalls.h
+moments.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/float.h
+moments.o: ../include-GENERAL/jcmacros.h ../include-GENERAL/jcdebug.h
+moments.o: camera-v.h
+creadparam.o: creadparam.h /usr/include/g++/iostream.h
+creadparam.o: /usr/include/g++/streambuf.h /usr/include/libio.h
+creadparam.o: /usr/include/features.h /usr/include/sys/cdefs.h
+creadparam.o: /usr/include/gnu/stubs.h /usr/include/_G_config.h
+creadparam.o: /usr/include/gnu/types.h
+creadparam.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+creadparam.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stdarg.h
+creadparam.o: /usr/include/g++/fstream.h /usr/include/stdlib.h
+creadparam.o: /usr/include/sys/types.h /usr/include/time.h
+creadparam.o: /usr/include/endian.h /usr/include/bytesex.h
+creadparam.o: /usr/include/sys/select.h /usr/include/selectbits.h
+creadparam.o: /usr/include/alloca.h /usr/include/stdio.h
+creadparam.o: /usr/include/stdio_lim.h /usr/include/string.h
+creadparam.o: /usr/include/math.h /usr/include/huge_val.h
+creadparam.o: /usr/include/mathcalls.h
+creadparam.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/float.h
+creadparam.o: ../include-GENERAL/jcmacros.h ../include-GENERAL/jcdebug.h
+creadparam.o: camera-v.h
+camera.o: /cern/root/include/TROOT.h /cern/root/include/TFile.h
+camera.o: /cern/root/include/TTree.h /cern/root/include/TBranch.h MDiag.h
+camera.o: /usr/include/stdlib.h /usr/include/features.h
+camera.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+camera.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+camera.o: /usr/include/sys/types.h /usr/include/gnu/types.h
+camera.o: /usr/include/time.h /usr/include/endian.h /usr/include/bytesex.h
+camera.o: /usr/include/sys/select.h /usr/include/selectbits.h
+camera.o: /usr/include/alloca.h /usr/include/g++/iostream.h
+camera.o: /usr/include/g++/streambuf.h /usr/include/libio.h
+camera.o: /usr/include/_G_config.h
+camera.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stdarg.h
+camera.o: /usr/include/g++/fstream.h /usr/include/string.h
+camera.o: /cern/root/include/TRandom.h ../include-MTrigger/MTrigger.hxx
+camera.o: /usr/include/math.h /usr/include/huge_val.h
+camera.o: /usr/include/mathcalls.h
+camera.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/float.h
+camera.o: /cern/root/include/TObject.h ../../../include-Classes/Mdefine.h
+camera.o: ../../../include-Classes/MRawEvt.h
+camera.o: /cern/root/include/TClonesArray.h ../../../include-Classes/MMcEvt.h
+camera.o: /usr/include/stdio.h /usr/include/stdio_lim.h /usr/include/unistd.h
+camera.o: /usr/include/posix_opt.h /usr/include/confname.h
+camera.o: /usr/include/fcntl.h /usr/include/fcntlbits.h camera.h
+camera.o: /usr/include/dirent.h /usr/include/direntry.h
+camera.o: /usr/include/posix1_lim.h /usr/include/local_lim.h
+camera.o: /usr/include/linux/limits.h /usr/include/libgen.h camera-v.h
+camera.o: ../include-GENERAL/jcmacros.h ../include-GENERAL/jcdebug.h
+camera.o: creadparam.h ../Reflector/atm.h ../Reflector/reflector-v.h
+camera.o: moments.h ../include-GENERAL/lagrange.h
+camera.o: ../include-MC/MCEventHeader.hxx ../include-GENERAL/Rtypes.h
+camera.o: /usr/include/g++/iomanip.h ../include-CORSIKA/COREventHeader.hxx
+camera.o: ../include-MC/MCCphoton.hxx ../include-GENERAL/ranlib.h
Index: /branches/start/MagicSoft/Simulation/Detector/Camera/camera-v.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Camera/camera-v.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Camera/camera-v.h	(revision 4308)
@@ -0,0 +1,12 @@
+#ifndef VERSION 
+
+#define PROGRAM camera
+#define VERSION 0.2
+
+#define GLUE_prep(x,y) #x" "#y
+#define GLUE_postp(x,y) GLUE_prep(x,y)
+
+const char SIGNATURE[] = GLUE_postp( PROGRAM, VERSION );
+
+#endif // ! VERSION
+
Index: /branches/start/MagicSoft/Simulation/Detector/Camera/camera.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Camera/camera.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Camera/camera.cxx	(revision 4308)
@@ -0,0 +1,3131 @@
+//!/////////////////////////////////////////////////////////////////////
+//
+// camera                
+//
+// @file        camera.cxx
+// @title       Camera simulation
+// @subtitle    Code for the simulation of the camera phase
+// @desc        Code for the simulation of the camera of CT1 and MAGIC
+// @author      J C Gonzalez
+// @email       gonzalez@mppmu.mpg.de
+// @date        Thu May  7 16:24:22 1998
+//
+//----------------------------------------------------------------------
+//
+// Created: Thu May  7 16:24:22 1998
+// Author:  Jose Carlos Gonzalez
+// Purpose: Program for reflector simulation
+// Notes:   See files README for details
+//    
+//----------------------------------------------------------------------
+//
+// $RCSfile: camera.cxx,v $
+// $Revision: 1.1.1.1 $
+// $Author: harald $ 
+// $Date: 1999-11-05 11:59:31 $
+//
+////////////////////////////////////////////////////////////////////////
+// @tableofcontents @coverpage
+
+//=-----------------------------------------------------------
+//!@section Source code of |camera.cxx|.
+
+/*!@"
+
+  In this section we show the (commented) code of the program for the
+  read-out of the output files generated by the simulator of the
+  reflector, |reflector 0.3|.
+
+  @"*/
+
+//=-----------------------------------------------------------
+//!@subsection Includes and Global variables definition.
+
+//!@{
+
+// includes for ROOT
+// BEWARE: the order matters!
+
+#include "TROOT.h"
+
+#include "TFile.h"
+#include "TTree.h"
+#include "TBranch.h"
+
+#include "MDiag.h"
+
+#include "MTrigger.hxx"
+
+#include "MRawEvt.h"
+#include "MMcEvt.h"
+
+/*!@" 
+
+  All the defines are located in the file |camera.h|.
+
+  @"*/
+
+#include "camera.h"
+//!@}
+
+/*!@"
+
+  The following set of flags are used in time of compilation. They do
+  not affect directly the behaviour of the program at run-time
+  (though, of course, if you disconnected the option for
+  implementation of the Trigger logic, you will not be able to use any
+  trigger at all. The 'default' values mean default in the sense of
+  what you got from the server when you obtained this program.
+
+  @"*/
+
+//!@{
+
+// flag for debugging (default: OFF )
+#define __DEBUG__
+#undef  __DEBUG__
+
+// flag for NNT in CT1 camera (default: ON )
+#undef  __CT1_NO_NEIGHBOURS__
+#define __CT1_NO_NEIGHBOURS__
+
+// flag for calculation of NSB (default: ON )
+#undef  __NSB__
+#define __NSB__
+
+// flag for calculation of QE for pixels (default: ON )
+#undef  __QE__
+#define __QE__
+
+
+// flag for implementation of DETAIL_TRIGGER (default: ON )
+//
+//      This is the new implementation of Trigger studies
+//      It relies on a better simulation of the time stucture 
+//      of the PhotoMultiplier. For more details see the 
+//      documentation of the --> class MTrigger <-- 
+#define __DETAIL_TRIGGER__
+#undef  __DETAIL_TRIGGER__
+
+// flag for implementation of TRIGGER (default: ON )
+#undef  __TRIGGER__
+#define __TRIGGER__
+
+// flag for implementation of Tail-Cut (default: ON )
+#undef  __TAILCUT__
+#define __TAILCUT__
+
+// flag for calculation of islands stat. (default: ON )
+#define __ISLANDS__
+#undef  __ISLANDS__
+
+// flag for calculation of image parameters (default: ON )
+#undef  __MOMENTS__
+#define __MOMENTS__
+
+// flag for ROOT  (default: ON )
+#undef  __ROOT__
+#define __ROOT__
+
+//!@}
+
+//=-----------------------------------------------------------
+//!@subsection Definition of global variables.
+
+/*!@"
+
+  Now we define some global variables with data about the telescope, 
+  such as "focal distance",  number of pixels/mirrors, 
+  "size of the camera", and so on.
+
+  @"*/
+
+/*!@"
+
+  Depending on the telescope we are using (CT1 or MAGIC), the 
+  information stored in the definition file is different.
+  The variable |ct_Type| has the value 0 when we use
+  CT1, and 1 when we use MAGIC.
+
+  @"*/
+
+//!@{
+static int   ct_Type;         //@< Type of telescope: 0:CT1, 1:MAGIC
+//!@}
+
+/*!@"
+
+  And this is the information about the whole telescope.
+
+  @"*/
+
+//!@{
+
+// parameters of the CT (from the CT definition file) 
+
+////@: Focal distances [cm]
+//static float *ct_Focal;       
+
+//@: Mean Focal distances [cm]
+static float ct_Focal_mean;   
+
+//@: STDev. Focal distances [cm]
+static float ct_Focal_std;    
+
+//@: Mean Point Spread function [cm]
+static float ct_PSpread_mean; 
+
+//@: STDev. Point Spread function [cm]
+static float ct_PSpread_std;  
+
+//@: STDev. Adjustmente deviation [cm]
+static float ct_Adjustment_std; 
+
+//@: Radius of the Black Spot in mirror [cm]
+static float ct_BlackSpot_rad;
+
+//@: Radius of one mirror [cm]
+static float ct_RMirror;      
+
+//@: Camera width [cm]
+static float ct_CameraWidth;  
+
+//@: Pixel width [cm]
+static float ct_PixelWidth;   
+
+//@: ct_PixelWidth_corner_2_corner = ct_PixelWidth / cos(60)
+static float ct_PixelWidth_corner_2_corner; 
+
+//@: ct_PixelWidth_corner_2_corner / 2
+static float ct_PixelWidth_corner_2_corner_half; 
+
+//@: Number of mirrors
+static int ct_NMirrors = 0;   
+
+//@: Number of pixels
+static int ct_NPixels;        
+
+//@: Number of pixels
+static int ct_NCentralPixels;        
+
+//@: Number of pixels
+static int ct_NGapPixels;        
+
+//@: ct_Apot = ct_PixelWidth / 2
+static float ct_Apot;          
+
+//@: ct_2Apot = 2 * ct_Apot = ct_PixelWidth 
+static float ct_2Apot;         
+
+//@: name of the CT definition file to use
+static char ct_filename[256];  
+
+//@: list of showers to be skipped
+static int *Skip;
+
+//@: number of showers to be skipped
+static int nSkip=0;
+
+//@: flag: TRUE: data come from STDIN; FALSE: from file
+static int Data_From_STDIN = FALSE;
+
+//@: flag: TRUE: write all images to output; FALSE: only triggered showers
+static int Write_All_Images = FALSE;
+
+//@: flag: TRUE: write all data to output; FALSE: only triggered showers
+static int Write_All_Data = FALSE;
+
+//@: flag: TRUE: selection on the energy
+static int Select_Energy = TRUE;
+
+//@: Lower edge of the selected energy range (in GeV)
+static float Select_Energy_le = 0.0; 
+
+//@: Upper edge of the selected energy range (in GeV)
+static float Select_Energy_ue = 100000.0; 
+
+//!@}
+
+/*!@"
+
+  The following double-pointer is a 2-dimensional table with information 
+  about each pixel. The routine read_pixels will generate
+  the information for filling it using igen_pixel_coordinates().
+
+  @"*/
+
+//!@{
+// Pointer to a tables/Arrays with information about the pixels
+// and data stored on them with information about the pixels
+
+//@: table for IJ sys.
+static float pixels[PIX_ARRAY_SIDE][PIX_ARRAY_SIDE][4];   
+
+//@: coordinates x,y for each pixel
+static float **pixary;  
+
+//@: indexes of pixels neighbours of a given one
+static int **pixneig;   
+
+//@: number of neighbours a pixel have
+static int *npixneig;   
+
+//@: contents of the pixels (ph.e.)
+static float *fnpix;    
+
+//@: contents of the pixels (ph.e.) after cleanning
+static float *fnpixclean; 
+
+//@: contents of the sum of all ph.e. in one timeslice of 1 ns
+static float *fnslicesum ;
+
+ 
+//!@}
+
+/*!@"
+
+  The following double-pointer is a 2-dimensional table with the
+  Quantum Efficiency @$QE@$ of each pixel in the camera, as a function
+  of the wavelength @$\lambda@$. The routine |read_pixels()| will read
+  also this information from the file |qe.dat|.
+
+  @"*/
+
+//!@{
+// Pointer to a table with QE, number of datapoints, and wavelengths
+
+//@: table of QE
+static float ***QE;
+
+//@: number of datapoints for the QE curve
+static int pointsQE;
+
+//@: table of QE
+static float *QElambda;
+//!@}
+
+/*!@"
+
+  The following double-pointer is a 2-dimensional table with information 
+  about each mirror in the dish. The routine |read_ct_file()| will read
+  this information from the CT definition file.
+
+  @"*/
+
+//!@{
+// Pointer to a table with the following info.:
+
+static float **ct_data;       
+
+/*
+ *  TYPE=0  (CT1)
+ *      i   s   rho   theta   x   y   z   thetan  phin  xn   yn   zn
+ * 
+ *       i : number of the mirror
+ *       s : arc length [cm]
+ *     rho : polar rho of the position of the center of the mirror [cm]
+ *   theta : polar angle of the position of the center of the mirror [cm]
+ *       x : x coordinate of the center of the mirror [cm]
+ *       y : y coordinate of the center of the mirror [cm]
+ *       z : z coordinate of the center of the mirror [cm]
+ *  thetan : polar theta angle of the direction where the mirror points to
+ *    phin : polar phi angle of the direction where the mirror points to
+ *      xn : xn coordinate of the normal vector in the center (normalized)
+ *      yn : yn coordinate of the normal vector in the center (normalized)
+ *      zn : zn coordinate of the normal vector in the center (normalized)
+ * 
+ *  TYPE=1  (MAGIC)
+ *      i  f   sx   sy   x   y   z   thetan  phin 
+ * 
+ *       i : number of the mirror
+ *       f : focal distance of that mirror
+ *      sx : curvilinear coordinate of mirror's center in X[cm]
+ *      sy : curvilinear coordinate of mirror's center in X[cm]
+ *       x : x coordinate of the center of the mirror [cm]
+ *       y : y coordinate of the center of the mirror [cm]
+ *       z : z coordinate of the center of the mirror [cm]
+ *  thetan : polar theta angle of the direction where the mirror points to
+ *    phin : polar phi angle of the direction where the mirror points to
+ *      xn : xn coordinate of the normal vector in the center (normalized)
+ *      yn : yn coordinate of the normal vector in the center (normalized)
+ *      zn : zn coordinate of the normal vector in the center (normalized)
+ */
+//!@} 
+
+/*!@"
+
+  We define a table into where random numbers will be stored. 
+  The routines used for random number generation are provided by
+  |RANLIB| (taken from NETLIB, |www.netlib.org|), and by 
+  the routine |double drand48(void)| (prototype defined in 
+  |stdlib.h|) through the macro |RandomNumber| defined in 
+  |camera.h|.
+
+  @"*/
+
+//!@{
+// table of random numbers
+
+// (unused)
+//static double RandomNumbers[500];  
+//!@}
+
+/*!@"
+
+  The following is a variable to count the number of Cphotons
+  in the different steps of the simulation. 
+  The definition is as follows:
+  @[
+  \mbox{CountCphotons}[ \mbox{FILTER} ] \equiv
+  \mbox{\it Number of photons after the filter} \mbox{FILTER}
+  @]
+  The filters are defined and can be found in the file |camera.h|.
+
+  @"*/
+
+//!@{
+// vector to count photons at any given step of the simulation
+
+static int CountCphotons[10];  
+//!@}
+
+/*!@"
+
+  The following are the set of parameters calculated for each image.
+  The routines for their calculations are in |moments.cxx|.
+
+  @"*/
+
+//!@{
+// parameters of the images
+
+static Moments_Info *moments_ptr; 
+static LenWid_Info *lenwid_ptr;
+
+static float *maxs;
+static int *nmaxs;
+static float length, width, dist, xdist, azw, miss, alpha, *conc; 
+static float phiasym, asymx, asymy;
+static float charge, smax, maxtrigthr_phe;
+
+//!@}
+
+extern char FileName[];
+
+
+//=-----------------------------------------------------------
+// @subsection Main program.
+
+//!@{
+
+//++++++++++++++++++++++++++++++++++++++++
+// MAIN PROGRAM 
+//----------------------------------------
+
+int main(int argc, char **argv) 
+{
+
+  //!@' @#### Definition of variables.
+  //@'
+
+  char inname[256];           //@< input file name
+  char outname[256];          //@< output file name
+  char datname[256];          //@< data (ASCII) output file name
+  char diagname[256];         //@< diagnistic output file (ROOT format)
+  char rootname[256] ;        //@< ROOT file name 
+
+  char parname[256];          //@< parameters file name
+
+  char sign[20];              //@< initialize sign
+
+  char flag[SIZE_OF_FLAGS + 1];  //@< flags in the .rfl file
+
+  ifstream inputfile;         //@< stream for the input file
+  ofstream outputfile;        //@< stream for the output file
+  ofstream datafile;          //@< stream for the data file
+
+  MCEventHeader mcevth;       //@< Event Header class (MC)
+  MCCphoton cphoton;          //@< Cherenkov Photon class (MC)
+
+  float thetaCT, phiCT;       //@< parameters of a given shower
+  float thetashw, phishw;     //@< parameters of a given shower
+  float coreD, coreX, coreY;  //@< core position and distance
+  float impactD;              //@< impact parameter
+  float l1, m1, n1;           //@< auxiliary variables
+  float l2, m2, n2;           //@< auxiliary variables
+  float num, den;             //@< auxiliary variables
+
+  int nshow=0;                //@< partial number of shower in a given run
+  int ntshow=0;               //@< total number of showers
+  int ncph=0;                 //@< partial number of shower in a given run
+  int ntcph=0;                //@< total number of showers
+
+  int i, ii, j, k;            //@< simple counters
+
+  float t_ini;                //@< time of the first Cphoton read in
+  float t;                    //@< time for a single photon
+  int   t_chan ;              //@< the bin (channel) in time of a single photon
+  
+  int   startchan ;           //@< the first bin with entries in the time slices
+
+  float cx, cy, ci, cj;       //@< coordinates in the XY and IJ systems
+  int ici, icj, iici, iicj;   //@< coordinates in the IJ (integers)
+
+  int nPMT;                   //@< number of pixel
+
+  float wl, last_wl;          //@< wavelength of the photon
+  float qe;                   //@< quantum efficiency
+  float **qeptr;
+
+  int simulateNSB;            //@< Will we simulate NSB?
+  float meanNSB;              //@< NSB mean value (per pixel)
+  float qThreshold;           //@< Threshold value
+  float qTailCut;             //@< Tail Cut value
+  int nIslandsCut;            //@< Islands Cut value
+  int countIslands;           //@< Will we count the islands?
+  int anaPixels;
+    
+  float fCorrection;          //@< Factor to apply to pixel values (def. 1.)
+
+  float q0;                   //@< trigger threshold ( intermediate variable )
+  float maxcharge;            //@< maximum charge in pixels
+  int noverq0, novq0;         //@< number of pixels above threshold
+  int ngrpq0, mxgrp;          //@< number of pixels in a group
+
+  int trigger;                //@< trigger flag 
+  int itrigger;               //@< index of pixel fired
+  int ntrigger = 0;           //@< number of triggers in the whole file
+  unsigned char triggerBits;  //@< byte for trigger condition check (MAGIC)
+  int bit;                    //@< intermediate variable
+
+  float plateScale_cm2deg;    //@< plate scale (deg/cm)
+  float degTriggerZone;       //@< trigger area in the camera (radius, in deg.)
+
+  float dtheta, dphi;         //@< deviations of CT from shower axis
+
+  int still_in_loop = FALSE;
+
+  char    Signature[20];
+
+  float *image_data;
+  int nvar, hidt;
+
+  struct camera cam; // structure holding the camera definition
+
+#ifdef __DETAIL_TRIGGER__
+
+  MTrigger  Trigger ;         //@< A instance of the Class MTrigger 
+
+#endif __DETAIL_TRIGGER__ 
+
+  //!@' @#### Definition of variables for |getopt()|.
+  //@'
+
+  int ch, errflg = 0;          //@< used by getopt
+
+  /*!@'
+
+    @#### Beginning of the program.
+    
+    We start with the main program. First we (could) make some
+    presentation, and follows the reading of the parameters file (now
+    from the |stdin|), the reading of the CT parameters file, and the
+    creation of the output file, where the processed data will be
+    stored.
+
+  */
+
+  //++
+  // START
+  //--
+
+  // make unbuffered output
+
+  cout.setf ( ios::stdio );
+
+  // parse command line options (see reflector.h)
+  
+  parname[0] = '\0';
+
+  optarg = NULL;
+  while ( !errflg && ((ch = getopt(argc, argv, COMMAND_LINE_OPTIONS)) != -1) )
+    switch (ch) {
+    case 'f':
+      strcpy(parname, optarg);
+      break;
+    case 'h':
+      usage();
+      break;
+    default :
+      errflg++;
+    }
+  
+  // show help if error
+  
+  if ( errflg>0 )
+    usage();
+
+  // make some sort of presentation
+
+  present();
+  
+  // read parameters file
+
+  if ( strlen(parname) < 1 )
+    readparam(NULL);
+  else
+    readparam(parname);
+
+  // read data from file or from STDIN?
+
+  Data_From_STDIN = get_data_from_stdin();
+
+  // write all images, even those without trigger?
+
+  Write_All_Images = get_write_all_images();
+
+  // write all data (i.e., ph.e.s in pixels)
+
+  Write_All_Data = get_write_all_data();
+
+  // get filenames
+
+  strcpy( inname, get_input_filename() );
+  strcpy( outname, get_output_filename() );
+  strcpy( datname, get_data_filename() );
+  strcpy( diagname, get_diag_filename() );
+  strcpy( rootname, get_root_filename() );
+  strcpy( ct_filename, get_ct_filename() );
+
+  // get different parameters of the simulation
+
+  qThreshold = get_threshold();
+  qTailCut = get_tail_cut();
+  simulateNSB = get_nsb( &meanNSB );
+  countIslands = get_islands_cut( &nIslandsCut );
+
+  // get selections on the parameters
+  
+  Select_Energy = get_select_energy( &Select_Energy_le, &Select_Energy_ue);
+  
+  // log filenames information
+
+  log(SIGNATURE,
+      "%s:\n\t%20s:\t%s\n\t%20s:\t%s\n\t%20s:\t%s\n\t%20s:\t%s\n\t%20s:\t%s\n\t%20s:\t%s\n",
+      "Filenames",
+      "In", inname, 
+      "Out", outname, 
+      "Data", datname,
+      "Diag", diagname,
+      "ROOT",  rootname, 
+      "CT", ct_filename);
+
+  
+  // log flags information
+
+  log(SIGNATURE,
+      "%s:\n\t%20s: %s\n\t%20s: %s\n\t%20s: %s\n",
+      "Flags",
+      "Data_From_STDIN",   ONoff(Data_From_STDIN),  
+      "Write_All_Images",  ONoff(Write_All_Images), 
+      "Write_All_Data",    ONoff(Write_All_Data));
+      
+  // log parameters information
+  
+  log(SIGNATURE,
+      "%s:\n\t%20s: %f\n\t%20s: %f\n\t%20s: %f %s\n\t%20s: %f %s\n",
+      "Parameters",
+      "q0 (Threshold)", qThreshold,
+      "t0 (Tail-cut)", qTailCut,
+      "NSB (phes/pixel)", meanNSB, ONoff(simulateNSB),
+      "i0 (Islands-cut)", nIslandsCut, ONoff(countIslands));
+  
+  // log selections
+  
+  log(SIGNATURE,
+      "%s:\n\t%20s: %s  (%f:%f)\n",
+      "Selections:",
+      "Energy", ONoff(Select_Energy), Select_Energy_le, Select_Energy_ue);
+  
+  // set all random numbers seeds
+
+  setall( get_seeds(0), get_seeds(1) );
+
+  // get list of showers to evt. skip
+
+  nSkip = get_nskip_showers();
+
+  if (nSkip > 0) {
+    Skip = new int[ nSkip ]; 
+    get_skip_showers( Skip );
+
+    log(SIGNATURE, "There are some showers to skip:\n");
+    for (i=0; i<nSkip; ++i)
+      log(SIGNATURE, "\tshower # %d\n", Skip[i]);
+  }
+  
+  // read parameters from the ct.def file
+
+  read_ct_file();
+
+  // read pixels data
+
+  read_pixels(&cam);
+
+  // initialise ROOT
+
+  TROOT simple("simple", "MAGIC Telescope Monte Carlo");
+
+  // prepare ROOT tree for the diagnostic data 
+  
+  TFile *hfile;
+
+  hfile = new TFile( diagname,"RECREATE", "MAGIC Telescope MC diagnostic data");
+  
+  
+  // Create the ROOT Tree for the diagnostic data
+  
+  TTree *tree = new TTree("T","MAGIC Telescope MC diagnostic data");
+  tree->SetAutoSave(100000000); 
+  
+  Int_t split = 1;
+  Int_t bsize = 64000;
+  MDiagEventobject  *event = 0;
+  
+  // Create one branch. If splitlevel is set, event is a superbranch
+  // creating a sub branch for each data member of the Eventobject event.
+  
+  tree->Branch("event", "MDiagEventobject", &event, bsize, split);
+
+#ifdef __ROOT__
+
+  MRawEvt *Evt   = new MRawEvt() ; 
+  MMcEvt  *McEvt = new MMcEvt (); 
+
+  // initalize the ROOT file 
+  //
+  //     erzeuge ein Root file 
+  //
+
+  TFile outfile ( rootname , "RECREATE" ) ; 
+
+  //
+  //      create a Tree for the Event data stream 
+  //
+
+  TTree EvtTree("EvtTree","Events of Run");
+
+  bsize=128000; split=1;
+
+  EvtTree.Branch("MRawEvt","MRawEvt", 
+  		 &Evt, bsize, split);
+
+  EvtTree.Branch("MMcEvt","MMcEvt", 
+  		 &McEvt, bsize, split);
+
+
+  float  flli = 0. ; 
+  unsigned short ulli = 0 ; 
+
+#endif __ROOT__
+
+  // for safety and for dimensioning image_data: count the elements in the 
+  // diagnostic data branch
+
+  i=0;
+  i++; // "n"
+  i++; // "primary"
+  i++; // "energy"
+  i++; // "cored"
+  i++; // "impact"
+  i++; // "xcore"
+  i++; // "ycore"
+  i++; // "theta"
+  i++; // "phi"
+  i++; // "deviations"
+  i++; // "dtheta"
+  i++; // "dphi"
+  i++; // "trigger"
+  i++; // "ncphs"
+  i++; // "maxpassthr_phe"    
+  i++; // "nphes"
+  i++; // "nphes2"
+  i++; // "length"
+  i++; // "width"
+  i++; // "dist"
+  i++; // "xdist"
+  i++; // "azw"
+  i++; // "miss"
+  i++; // "alpha"
+  i++; // "conc2"
+  i++; // "conc3"
+  i++; // "conc4"
+  i++; // "conc5"
+  i++; // "conc6"
+  i++; // "conc7"
+  i++; // "conc8"
+  i++; // "conc9"
+  i++; // "conc10"
+  i++; // "asymx"
+  i++; // "asymy"
+  i++; // "phiasym"
+
+  nvar = i;
+  image_data = new float[nvar];
+
+  // set plate scale (deg/cm) and trigger area (deg)
+
+  plateScale_cm2deg = ( ct_Type == 0 ) ? (0.244/2.1) : 0.030952381;
+
+  if ( ! get_trigger_radius( &degTriggerZone ) )
+    degTriggerZone = ( ct_Type == 0 ) ? (5.0) : (5.0);
+
+  if ( ! get_correction( &fCorrection ) )
+    fCorrection = 1.0;
+
+  // number of pixels for parameters
+    
+  anaPixels = get_ana_pixels();
+  anaPixels = (anaPixels == -1) ? ct_NPixels : anaPixels;
+
+  // open input file if we DO read data from a file
+
+  if (! Data_From_STDIN) {  
+    log( SIGNATURE, "Openning input \"rfl\" file %s\n", inname );
+    inputfile.open( inname );
+    if ( inputfile.bad() ) 
+      error( SIGNATURE, "Cannot open input file: %s\n", inname );
+  }
+  
+  // get signature, and check it
+  // NOTE: this part repeats further down in the code;
+  // if you change something here you probably want to change it 
+  // there as well
+
+  strcpy(Signature, REFL_SIGNATURE);
+
+  strcpy(sign, Signature);
+
+  if ( Data_From_STDIN ) 
+    cin.read( (char *)sign, strlen(Signature));
+  else
+    inputfile.read( (char *)sign, strlen(Signature));
+
+  if (strcmp(sign, Signature) != 0) {
+    cerr << "ERROR: Signature of .rfl file is not correct\n";
+    cerr << '"' << sign << '"' << '\n';
+    cerr << "should be: " << Signature << '\n';
+    exit(1);
+  }
+
+  if ( Data_From_STDIN ) 
+    cin.read( (char *)sign, 1);
+  else
+    inputfile.read( (char *)sign, 1);
+
+  // open output file
+  
+  log( SIGNATURE, "Openning output \"phe\" file %s\n", outname );
+  outputfile.open( outname );
+  
+  if ( outputfile.bad() ) 
+    error( SIGNATURE, "Cannot open output file: %s\n", outname );
+  
+  // open data file
+  
+  log( SIGNATURE, "Openning data \"dat\" file %s\n", datname );
+  datafile.open( datname );
+  
+  if ( outputfile.bad() ) 
+    error( SIGNATURE, "Cannot open output file: %s\n", outname );
+  
+  // write signature
+
+  outputfile.write( SIGNATURE, sizeof(SIGNATURE) );
+
+  // initializes flag
+  
+  strcpy( flag, "                                        \0" );
+
+  // allocate space for PMTs numbers of pixels
+  
+  fnpix = new float [ ct_NPixels ];
+  fnpixclean = new float [ ct_NPixels ];
+
+#ifdef __ROOT__
+  
+  fnslicesum = new float [ (2 * SLICES) ] ; 
+  
+  float slices   [ct_NPixels][ (2 * SLICES) ] ; 
+  float slices2  [ct_NPixels][ SLICES ] ; 
+
+  float trans    [ SLICES ] ; 
+#endif __ROOT__ 
+
+  
+  moments_ptr = moments( anaPixels, NULL, NULL, 0.0, 1 );
+        
+  //!@' @#### Main loop.
+  //@'
+
+  //begin my version
+                                           
+  // get flag
+    
+  if ( Data_From_STDIN ) 
+    cin.read( flag, SIZE_OF_FLAGS );
+  else
+    inputfile.read ( flag, SIZE_OF_FLAGS );
+
+  // loop over the file
+
+  still_in_loop = TRUE;
+
+  while (
+         ((! Data_From_STDIN) && (! inputfile.eof()))
+         ||
+         (Data_From_STDIN && still_in_loop)
+         ) { 
+
+    // reading .rfl files 
+    if(!isA( flag, FLAG_START_OF_RUN )){
+      error( SIGNATURE, "Expected start of run flag, but found: %s\n", flag );
+    }
+    else { // found start of run
+      nshow=0;
+      // read next flag
+
+      if ( Data_From_STDIN ) 
+	cin.read( flag, SIZE_OF_FLAGS );
+      else
+	inputfile.read ( flag, SIZE_OF_FLAGS );
+
+      while( isA( flag, FLAG_START_OF_EVENT   )){ // while there is a next event
+	/*!@'
+	  
+	  For the case  |FLAG\_START\_OF\_EVENT|,
+	  we read each Cherenkov photon, and follow these steps:
+	  
+	  @enumerate
+	  
+	  @- Transform XY-coordinates to IJ-coordinates.
+	  
+	  @- With this, we obtain the pixel where the photon hits.
+	  
+	  @- Use the wavelength $\lambda$ and the table of QE, and
+	  calculate the estimated (third order interpolated) quantum
+	  efficiency for that photon. The photon can be rejected.
+	  
+	  @- If accepted, then add to the pixel.
+	  
+	  @endenumerate
+	  
+	  In principle, we should stop here, and use another program to
+	  'smear' the image, to add the Night Sky Background, and to
+	  simulate the trigger logic, but we will make this program
+	  quick and dirty, and include all here.
+	  
+	  If we are reading PHE files, we jump to the point where the
+	  pixelization process already has finished.
+	  
+	*/
+	
+	++nshow;
+	log(SIGNATURE, "Event %d(+%d)\n", nshow, ntshow);
+	
+	// get MCEventHeader
+	
+	if ( Data_From_STDIN ) 
+	  cin.read( (char*)&mcevth, mcevth.mysize() );
+	else
+	  mcevth.read( inputfile );
+	
+	// calculate core distance and impact parameter
+	
+	coreD = mcevth.get_core(&coreX, &coreY);
+	
+	// calculate impact parameter (shortest distance betwee the original
+	// trajectory of the primary (assumed shower-axis) and the
+	// direction where the telescope points to
+	// 
+	// we use the following equation, given that the shower core position
+	// is (x1,y1,z1)=(x,y,0),the  trajectory is given by (l1,m1,n1),
+	// and the telescope position and orientation are (x2,y2,z2)=(0,0,0)
+	// and (l2,m2,n2)
+	//
+	//               |                     |
+	//               | x1-x2  y1-y2  z1-z2 |
+	//               |                     |
+	//             + |   l1     m1     n1  |
+	//             - |                     |
+	//               |   l2     m2     n2  |
+	//               |                     |
+	// dist = ------------------------------------        ( > 0 )
+	//        [ |l1 m1|2   |m1 n1|2   |n1 l1|2 ]1/2
+	//        [ |     |  + |     |  + |     |  ]
+	//        [ |l2 m2|    |m2 n2|    |n2 l2|  ]
+	//
+	// playing a little bit, we get this reduced for in our case:
+	//
+	//
+	// dist = (- m2 n1 x + m1 n2 x + l2 n1 y - l1 n2 y - l2 m1 z + l1 m2 z) /
+	//         [(l2^2 (m1^2 + n1^2) + (m2 n1 - m1 n2)^2 - 
+	//          2 l1 l2 (m1 m2 + n1 n2) + l1^2 (m2^2 + n2^2) ] ^(1/2)
+	
+	// read the direction of the incoming shower
+	
+	thetashw = mcevth.get_theta();
+	phishw = mcevth.get_phi();
+	
+	// calculate vector for shower
+	
+	l1 = sin(thetashw)*cos(phishw);
+	m1 = sin(thetashw)*sin(phishw);
+	n1 = cos(thetashw);
+	
+	// read the deviation of the telescope with respect to the shower
+	
+	mcevth.get_deviations ( &thetaCT, &phiCT );
+	
+	if ( (thetaCT == 0.) && (phiCT == 0.) ) {
+	  
+	  // CT was looking to the source (both lines are parallel)
+	  // therefore, we calculate the impact parameter as the distance 
+	  // between the CT axis and the core position
+	  
+	  impactD = dist_r_P( 0., 0., 0., l1, m1, n1, coreX, coreY, 0. );
+	  
+	} else {
+	  
+	  // the shower comes off-axis
+	  
+	  // obtain with this the final direction of the CT
+	  
+	  thetaCT += thetashw;
+	  phiCT   += phishw;
+	  
+	  // calculate vector for telescope
+	  
+	  l2 = sin(thetaCT)*cos(phiCT);
+	  m2 = sin(thetaCT)*sin(phiCT);
+	  n2 = cos(thetaCT);
+	  
+	  num = (m1*n2*coreX - m2*n1*coreX + l2*n1*coreY - l1*n2*coreY);
+	  den = (SQR(l1*m2 - l2*m1) + 
+		 SQR(m1*n2 - m2*n1) + 
+		 SQR(n1*l2 - n2*l1));
+	  den = sqrt(den);
+	  
+	  impactD = fabs(num)/den;
+	  
+	  // fprintf(stderr, "[%f %f,%f %f] (%f %f %f) (%f %f %f) %f/%f = ",
+	  //         thetashw, phishw, thetaCT, phiCT, l1, m1, n1, l2, m2, n2,
+	  //         num, den);
+	  
+	}
+
+	// clear camera
+	
+	for ( i=0; i<ct_NPixels; ++i ){
+ 
+	  fnpix[i] = 0.0;
+#ifdef __ROOT__	
+	  for ( ii=0; ii<(2 * SLICES); ii++ ) { 
+	    slices [i][ii] = 0 ; 
+	  }
+#endif __ROOT__ 
+	}
+
+	ntcph +=ncph;
+	ncph = 0;
+
+#ifdef __DETAIL_TRIGGER__ 
+	//
+	//   clear Trigger 
+	//
+      
+	Trigger.Reset() ; 
+#endif __DETAIL_TRIGGER__ 
+       
+	//- - - - - - - - - - - - - - - - - - - - - - - - - 
+	// read photons and "map" them into the pixels
+	//--------------------------------------------------      
+	
+	// initialize CPhoton
+	
+	cphoton.fill(0., 0., 0., 0., 0., 0., 0., 0.);
+	
+	// read the photons data
+	
+	if ( Data_From_STDIN ) 
+	  cin.read( flag, SIZE_OF_FLAGS );
+	else
+	  inputfile.read ( flag, SIZE_OF_FLAGS );
+	 
+	// loop over the photons
+
+	t_ini = -99999;
+	
+	while ( !isA( flag, FLAG_END_OF_EVENT ) ) {
+	  
+	  memcpy( (char*)&cphoton, flag, SIZE_OF_FLAGS );
+
+	  if ( Data_From_STDIN ) 
+	    cin.read( ((char*)&cphoton)+SIZE_OF_FLAGS, cphoton.mysize()-SIZE_OF_FLAGS );
+	  else
+	    inputfile.read( ((char*)&cphoton)+SIZE_OF_FLAGS, cphoton.mysize()-SIZE_OF_FLAGS );
+	
+	  // increase number of photons
+	  
+	  ncph++;
+
+	  t = cphoton.get_t() ; 
+
+	  if(t_ini == -99999){ // this is the first photon we read from this event
+	    t_ini = t; // memorize time
+	  }
+
+	  // The photons don't come in chronological order!
+          // Put the first photon at the center of the array by adding the constant SLICES
+             
+	  t_chan = (int) ((t - t_ini )/ WIDTH_TIMESLICE ) + SLICES ; 	  
+
+	  if (t_chan > (2 * SLICES)){
+	    log(SIGNATURE, "warning, channel number (%d) exceded limit (%d).\n Setting it to %d .\n",
+	    t_chan, (2 * SLICES), (2 * SLICES));
+	    t_chan = (2 * SLICES);
+	  }
+	  else if(t_chan < 0){
+	    log(SIGNATURE, "warning, channel number (%d) below limit (%d).\n Setting it to %d .\n",
+	    t_chan, 0, 0);
+	    t_chan = 0;
+	  } 
+	  /*!@'
+	    
+	    @#### Pixelization (for the central pixels).
+	    
+	    In order to calculate the coordinates, we use the
+	    change of system described in the documentation
+	    of the source code of |pixel\_coord.cxx|.
+	    Then, we will use simply the matrix of change
+	    from one system to the other. In our case, this is:
+	    
+	    @[
+	    \begin{bmatrix}X\\Y\\\end{bmatrix}                                
+	    =
+	    \begin{bmatrix}
+	    1 & \cos(60^\circ)\\
+	    0 & \sin(60^\circ)\\
+	    \end{bmatrix}                                
+	    \begin{bmatrix}I\\J\\\end{bmatrix}                                
+	    @]
+	    
+	    and hence
+	    
+	    @[
+	    \begin{bmatrix}I\\J\\\end{bmatrix}                                
+	    =
+	    \begin{bmatrix}    
+	    1 & -\frac{\cos(60^\circ)}{\sin(60^\circ)}\\
+	    0 &\frac{1}{\sin(60^\circ)}\\
+	    \end{bmatrix}                                
+	    \begin{bmatrix}X\\Y\\\end{bmatrix}                                
+	    @]
+	    
+	  */
+	  
+	  //+++
+	  // Pixelization
+	  //---
+	  
+	  // calculate ij-coordinates
+	  
+	  // We use a change of coordinate system, using the following 
+	  // matrix of change (m^-1) (this is taken from Mathematica output).
+	  /*
+	   * In[1]:= m={{1,cos60},{0,sin60}}; MatrixForm[m]
+	   *
+	   * Out[1]//MatrixForm= 1       cos60
+	   * 
+	   *                     0       sin60
+	   * 
+	   * In[2]:= inv=Inverse[m]; MatrixForm[inv]
+	   * 
+	   * Out[2]//MatrixForm=              cos60
+	   *                                -(-----)
+	   *                       1          sin60
+	   * 
+	   *                                    1
+	   *                                  -----
+	   *                       0          sin60
+	   * 
+	   */
+	  
+	  // go to IJ-coordinate system
+	  
+	  cx = cphoton.get_x();
+	  cy = cphoton.get_y(); 
+	  
+	  // get wavelength
+	  
+	  last_wl = wl;
+	  wl = cphoton.get_wl();
+	  
+	  if ( wl < 1.0 )
+	    break;
+	  
+	  if ( (wl > 600.0) || (wl < 290.0) )
+	    break;
+	  
+	  // check if photon is inside outermost camera radius
+
+	  if(sqrt(cx*cx + cy*cy) > (cam.dxc[ct_NPixels-1]+1.5*ct_PixelWidth)){ 
+	   
+	    // read next CPhoton
+	    if ( Data_From_STDIN ) 
+	      cin.read( flag, SIZE_OF_FLAGS );
+	    else
+	      inputfile.read ( flag, SIZE_OF_FLAGS );
+	    
+	    // go to beginning of loop, the photon is lost
+	    continue;
+
+	  }
+
+	  // cout << "@#1 " << nshow << ' ' << cx << ' ' << cy << endl;
+	  
+	  ci = floor( (cx - cy*COS60/SIN60)/ ct_2Apot + 0.5);
+	  cj = floor( (cy/SIN60) / ct_2Apot + 0.5);
+	  
+	  ici = (int)(ci);
+	  icj = (int)(cj);
+	  
+	  iici = ici+PIX_ARRAY_HALF_SIDE;
+	  iicj = icj+PIX_ARRAY_HALF_SIDE;
+	  
+	  // is it inside the array?
+	  
+	  if ( (iici > 0) && (iici < PIX_ARRAY_SIDE) &&
+	       (iicj > 0) && (iicj < PIX_ARRAY_SIDE) ) {
+	    	  
+	    // try to put into pixel
+	    
+	    // obtain the pixel number for this photon
+	    
+	    nPMT = (int)
+	      pixels[ici+PIX_ARRAY_HALF_SIDE][icj+PIX_ARRAY_HALF_SIDE][PIXNUM];
+	  
+	  }
+	  else{
+
+	    nPMT = -1;
+
+	  }
+
+	  // check if outside the central camera
+	  
+	  if ( (nPMT < 0) || (nPMT >= ct_NCentralPixels) ) {
+
+	    // check the outer pixels
+	    nPMT = -1;
+
+	    for(i=ct_NCentralPixels; i<ct_NPixels; i++){
+	      if( bpoint_is_in_pix( cx, cy, i, &cam) ){
+		nPMT = i;
+		break;
+	      }
+	    }
+	   
+	    if(nPMT==-1){// the photon is in none of the pixels
+
+	      // read next CPhoton
+	      if ( Data_From_STDIN ) 
+		cin.read( flag, SIZE_OF_FLAGS );
+	      else
+		inputfile.read ( flag, SIZE_OF_FLAGS );
+	      
+	      // go to beginning of loop, the photon is lost
+	      continue;
+	    }
+	    
+	  }
+	  
+#ifdef __QE__
+	  
+	  //!@' @#### QE simulation.
+	  //@'
+	  
+	  //+++
+	  // QE simulation
+	  //---
+	  
+	  // find data point to be used in Lagrange interpolation (-> k)
+	  
+	  qeptr = (float **)QE[nPMT];
+	  
+	  FindLagrange(qeptr,k,wl);
+	  
+	  // if random > quantum efficiency, reject it
+	  
+	  qe = Lagrange(qeptr,k,wl) / 100.0;
+
+	  // fprintf(stdout, "%f\n", qe);
+	  
+	  if ( RandomNumber > qe ) {
+	    
+	    // read next CPhoton
+	    if ( Data_From_STDIN ) 
+	      cin.read( flag, SIZE_OF_FLAGS );
+	    else
+	      inputfile.read ( flag, SIZE_OF_FLAGS );
+	    
+	    // go to beginning of loop
+	    continue;
+	    
+	  }
+	  
+#endif // __QE__
+	  
+	  //+++
+	  // Cphoton is accepted
+	  //---
+	  
+	  // increase the number of Cphs. in the PMT, i.e.,
+	  // increase in one unit the counter of the photons
+	  // stored in the pixel nPMT
+	  
+	  fnpix[nPMT] += 1.0;
+
+#ifdef __ROOT__ 
+	  fnslicesum[t_chan]  += 1.0 ; 
+	  slices[nPMT][t_chan] += 1.0 ; 
+#endif __ROOT__ 	  
+
+#ifdef __DETAIL_TRIGGER__ 
+	  //
+	  //  fill the Trigger class with this phe
+	  //
+	  //
+
+	  Trigger.Fill( nPMT, ( t - t_ini  ) ) ; 
+#endif __DETAIL_TRIGGER__ 
+	  
+	  // read next CPhoton
+
+	  if ( Data_From_STDIN ) 
+	    cin.read( flag, SIZE_OF_FLAGS );
+	  else
+	    inputfile.read ( flag, SIZE_OF_FLAGS );
+
+	}  // end while, i.e. found end of event
+	
+	log(SIGNATURE, "End of this event: %d cphs(+%d). . .\n",
+	    ncph, ntcph);
+
+	// show number of photons
+	
+	//cout << ncph << " photons read . . . " << endl << flush;
+	
+	// skip it ?
+	
+	for ( i=0; i<nSkip; ++i ) {
+	  if (Skip[i] == (nshow+ntshow)) {
+	    i = -1;
+	    break;
+	  }
+	}
+	
+	// if after the previous loop, the exit value of i is -1
+	// then the shower number is in the list of showers to be
+	// skipped
+	
+	if (i == -1) {
+	  log(SIGNATURE, "\t\tskipped!\n");
+	  continue;
+	}
+	
+	/*!@'
+	  
+	  After reading all the Cherenkov photons for a given event,
+	  we have in the table of number of photons for each pixel
+	  only the 'raw' amount of Cherenkov photons @$n_p@$. Now, we
+	  should take this number as the mean value of the
+	  distribution of photons in that pixel @$p@$, following a
+	  Poisson distribution.
+	  
+	  @[ n_p \equiv \mu_p @]
+	  
+	  and with this number the amount of light coming from the
+	  shower is calculated @$\hat{n}_p@$.
+	  
+	  Then, we calculate the amount of Night Sky Background we
+	  must introduce in that pixel @$p@$. We calculate this using
+	  again a Poisson distribution with mean @$\mu_\mathrm{NSB}@$
+	  (defined in the |camera.h| file). The value of
+	  @$\mu_\mathrm{NSB}@$ is obtained from measurements. With this
+	  value, the amount of photons @$\hat{n}_\mathrm{NSB}@$ coming
+	  from the Night Sky Background is calculated.
+	  
+	  Finally, the amount of photons for that pixels is:
+	  @[ \hat{n}_p^\mathrm{final} = \hat{n}_p + \hat{n}_\mathrm{NSB} @]
+	  
+	*/
+	
+	// after reading all the photons, our camera is filled
+	
+	if ( Select_Energy ) {
+	  if (( mcevth.get_energy() < Select_Energy_le ) ||
+	      ( mcevth.get_energy() > Select_Energy_ue )) {
+	    log(SIGNATURE, "select_energy: shower rejected.\n");
+	    continue;
+	  }
+	}
+	
+#ifdef __NSB__
+	
+	//!@' @#### NSB (Night Sky Background) simulation.
+	//@'
+	
+	//+++
+	// NSB simulation
+	//---
+	
+	// add NSB "noise"
+	// TO DO: make meanNSB an array and read the contents from a file!
+	
+	if ( simulateNSB )
+	  for ( i=0; i<ct_NPixels; ++i ) 
+	    fnpix[i] += (float)ignpoi( meanNSB );
+	
+#endif // __NSB__
+	
+	// if we should apply any kind of correction, do it here.
+
+	for ( i=0; i<ct_NPixels; ++i ) 
+	  fnpix[i] *= fCorrection;
+
+#ifdef __DETAIL_TRIGGER__ 
+      //   Trigger.Print() ; 
+      cout << Trigger.Diskriminate() << endl << endl ;
+#endif __DETAIL_TRIGGER__ 
+
+#ifdef __ROOT__
+
+      //
+      //  Fill the header of this event 
+      //
+      
+      Evt->FillHeader ( (UShort_t) (ntshow + nshow) ,  20 ) ; 
+
+      //  now put out the data of interest
+      //
+      //  1.  -> look for the first slice with signal
+      //
+
+      for ( i=0; i<(2 * SLICES); i++ ) 
+	if ( fnslicesum[i] > 0. )
+	  break ; 
+
+      startchan = i ; 
+
+      //
+      //     copy the slices out of the big array 
+      //   
+      //     put the first slice with signal to slice 4
+      //
+      
+      for (i=0; i<ct_NPixels; i++ ) 
+	for ( ii=(startchan-3); ii < (startchan+12); ii++ )  
+	  slices2 [i][ii-startchan+3] = slices [i][ii] ; 
+
+
+      // 
+      //  if a pixes has a signal put it to the MRawEvt
+      //
+      
+      for (i=0; i<ct_NPixels; i++ ) {
+	if ( fnpix[i] > 0 ) {
+
+	  for ( ii=0; ii < 15; ii++ ) {
+	    trans [ii] = slices2[i][ii] ; 
+	  }
+	
+	  Evt->FillPixel ( (UShort_t) i , trans ) ; 
+	  
+	}
+      }
+      
+      //
+      //   
+      //
+      
+      McEvt->Fill( (UShort_t) mcevth.get_primary() , 
+		   mcevth.get_energy(), 
+		   mcevth.get_theta(), 
+		   mcevth.get_phi(), 
+		   mcevth.get_core(),
+		   mcevth.get_coreX(),
+		   mcevth.get_coreY(),
+		   flli,
+		   ulli, ulli, ulli, ulli, ulli ) ; 
+      
+      //
+      //    write it out to the file outfile
+      // 
+
+      EvtTree.Fill() ; 
+
+      //    clear all
+
+      Evt->Clear() ; 
+      McEvt->Clear() ; 
+
+#endif __ROOT__
+	
+	//++++++++++++++++++++++++++++++++++++++++++++++++++
+	// at this point we have a camera full of
+	// ph.e.s
+	// we should first apply the trigger condition,
+	// and if there's trigger, then clean the image,
+	// calculate the islands statistics and the
+	// other parameters of the image (Hillas' parameters
+	// and so on).
+	//--------------------------------------------------
+	
+#ifdef __DEBUG__  
+	printf("\n");
+	
+	for ( ici=0; ici<PIX_ARRAY_SIDE; ++ici ) {
+	  
+	  for ( icj=0; icj<PIX_ARRAY_SIDE; ++icj ) {
+	    
+	    if ( (int)pixels[ici][icj][PIXNUM] > -1 ) {
+	      
+	      if ( fnpix[(int)pixels[ici][icj][PIXNUM]] > 0. ) {
+		
+		printf ("@@ %4d %4d %10f %10f %4f (%4d %4d)\n", nshow, 
+			(int)pixels[ici][icj][PIXNUM], 
+			pixels[ici][icj][PIXX],
+			pixels[ici][icj][PIXY],
+			fnpix[(int)pixels[ici][icj][PIXNUM]], ici, icj);
+		
+	      }
+	      
+	    }
+	    
+	  }
+	  
+	}
+	
+	for (i=0; i<ct_NPixels; ++i) {
+	  printf("%d (%d): ", i, npixneig[i]);
+	  for (j=0; j<npixneig[i]; ++i) 
+	    printf(" %d", pixneig[i][j]);
+	  printf("\n");
+	}
+	
+#endif // __DEBUG__
+	
+#ifdef __TRIGGER__
+	
+	/*!@'
+	  
+	  @#### Trigger logic simulation.
+	  
+	  In the following block we look at the pixel contents, looking
+	  for pixels fulfilling the trigger condition. This condition,
+	  in this current version of the program, is the following:
+	  
+	  @itemize
+	  
+	  @- |CT1|: Two neighbour pixels with charge above the threshold
+	  @$q_0@$. For the old CT1 data, however, the trigger condition
+	  was 'any two pixels with charge above the threshold @$q_0@$'.
+	  
+	  @- |MAGIC|: A 'closed-packet' of four neighbour pixels, each
+	  of them with charge above the threshold @$q_0@$.
+	  
+	  @enditemize
+	  
+	  In the following figure you can find a sort of description 
+	  about the meanning of 'closed-packet'.
+	  
+	  @F
+	  
+	  \begin{figure}[htbp]
+	  \begin{center}
+	  \includegraphics{closepck.eps}
+	  \caption{Meanning of the expression ``{\it close-packet}''}
+	  \label{fig:closepacket}
+	  \end{center}
+	  \end{figure}
+	  
+	  @F
+	  
+	*/
+	
+	//++ 
+	// TRIGGER Condition
+	//--
+	
+	//@ If the input parameter "threshold" is 0 we find the maximum 
+	//@ trigger threshold this event can pass
+
+	for(k=0; ( qThreshold == 0 ? (k <= iMAX_THRESHOLD_PHE) : (k == 1) ); k++){
+	  
+	  // is there trigger?
+	  
+	  noverq0 = 0;
+	  q0 = ( qThreshold == 0. ? (float) k : qThreshold );
+	  trigger = FALSE;
+	  mxgrp = 0;
+	  maxcharge = 0.0;
+	  
+	  // Warning! NOT all the camera is able to give trigger
+	  // only up to 'degTrigger' degrees 
+	  
+	  for ( i=0 ; (i<ct_NCentralPixels) && (trigger==FALSE) ; ++i ) {
+	    
+	    // calculate absolute maximum
+	    
+	    maxcharge = MAX(fnpix[i],maxcharge); 
+	    
+	    // is this pixel above threshold ?
+	    
+	    if ( fnpix[i] <= q0 )   
+	      continue;
+	    
+	    // it is: increment the number of pixels above threshold
+	    
+	    ++noverq0;
+	    
+	    // if the trigger already fired, just count the pixels 
+	    // above threshold 
+	    
+	    if ( trigger == TRUE )    
+	      continue;
+	    
+	    // is this pixel inside the trigger zone in the camera ?
+	    
+	    if ( (sqrt(SQR(pixary[i][0]) + 
+		       SQR(pixary[i][1]))*plateScale_cm2deg) > degTriggerZone) 
+	      continue;
+	    
+	    // 'ngrpq0' is the number of neighbours of pixel i with q > q0
+	    
+	    ngrpq0 = 0;
+	    
+	    // look at each pixel in the neighborhood, and count
+	    // those above threshold q0
+	    
+	    for ( j=0 ; j<npixneig[i] && pixneig[i][j]>-1 ; ++j )
+	      if ( fnpix[pixneig[i][j]] > q0 )
+		++ngrpq0;
+	    
+	    // check whether we have trigger
+	    
+	    if ( ct_Type == 0 ) {
+	      
+	      //++ >>>>> CT1 <<<<<
+	      
+#ifdef __CT1_NO_NEIGHBOURS__
+	      
+	      if ( noverq0 > 1 )
+		trigger = TRUE;
+	      
+#else
+	      
+	      if ( ngrpq0 > 0 )
+		trigger = TRUE;
+	      
+#endif
+	      
+	      //-- >>>>> CT1 <<<<<
+	      
+	    } else {
+	      
+	      //++ >>>>> MAGIC <<<<<
+	      
+	      // (at least 4 packed with at least q0 phes)
+	      
+	      // there are 3 cases
+	      // 1. zero, one or two neighbours have enough charge: no trigger
+	      // 2. five or six neighbours with enough charge: trigger? sure!!
+	      // 3. three or four neighbours with q > q0 : we must look
+	      //    for 'closeness'.
+	      
+	      switch ( ngrpq0 ) {
+		
+	      case 0:
+	      case 1:
+	      case 2:
+		
+		trigger = FALSE;
+		break;
+		
+	      case 3:
+	      case 4:
+		
+		// if reaches this line, it means three or four neighbours
+		// around the central pixel
+		
+		triggerBits = 1;
+		
+		for ( j=0 ; j<npixneig[i] && pixneig[i][j]>-1; ++j ) {
+		  
+		  if ( fnpix[pixneig[i][j]] > q0 ) {
+		    
+		    if ( pixary[pixneig[i][j]][0] > pixary[i][0] ) {
+		      
+		      if ( nint(pixary[pixneig[i][j]][1]*10.0) >
+			   nint(pixary[i][1]*10.0) )
+			bit = 2;
+		      else if ( nint(pixary[pixneig[i][j]][1]*10.0) <
+				nint(pixary[i][1]*10.0) )
+			bit = 6;
+		      else 
+			bit = 1;
+		      
+		    } else {
+		      
+		      if ( nint(pixary[pixneig[i][j]][1]*10.0) >
+			   nint(pixary[i][1]*10.0) )
+			bit = 3;
+		      else if ( nint(pixary[pixneig[i][j]][1]*10.0) <
+				nint(pixary[i][1]*10.0) )
+			bit = 5;
+		      else 
+			bit = 4;
+		      
+		    }
+		    
+		    triggerBits |= (1<<bit);
+		    
+		  }
+		  
+		}
+		
+		if ( ngrpq0 == 3 ) {  // 4-fold trigger
+		  
+		  switch ( triggerBits ) {
+		    
+		  case 0x0f:          // 0 000111 1
+		  case 0x1d:          // 0 001110 1
+		  case 0x39:          // 0 011100 1
+		  case 0x71:          // 0 111000 1
+		  case 0x63:          // 0 110001 1
+		  case 0x47:          // 0 100011 1
+		    
+		    trigger = TRUE;
+		    break;
+		    
+		  default:
+		    
+		    trigger = FALSE;
+		    
+		  }
+		  
+		} else {              // 4-fold trigger
+		  
+		  switch ( triggerBits ) {
+		    
+		  case 0x1f:          // 0 001111 1
+		  case 0x3d:          // 0 011110 1
+		  case 0x79:          // 0 111100 1
+		  case 0x73:          // 0 111001 1
+		  case 0x67:          // 0 110011 1
+		  case 0x4f:          // 0 100111 1
+		    
+		    trigger = TRUE;
+		    break;
+		    
+		  default:
+		    
+		    trigger = FALSE;
+		  
+		  }
+		  
+		}
+		
+		mxgrp = MAX(ngrpq0,mxgrp);
+		
+		break;
+		
+	      case 5:
+	      case 6:
+		
+		trigger = TRUE;
+		break;
+		
+	      default:
+		
+		trigger = FALSE;
+		error( SIGNATURE, "Number of neighbours > 6 !!! Exiting.\n\n");
+		break;
+		
+	      } // switch (ngrpq0)
+	      
+	    } // ct_Type
+	    
+	  } // for each pixel i
+	  
+	  if ( trigger == FALSE ) {
+	    break;
+	  } // end if
+	  
+	} //end  for each threshold
+	maxtrigthr_phe = (float) k-1;  // i.e. maxtrigthr_phe < 0. means that
+	// the event doesn't even pass threshold 0.
+	//  maxtrigthr_phe >= 0 means, the event passes some threshold
+	//  or (in case the input parameter "threshold" was > 0), the event
+	//  passes the threshold given by the input parameter. 
+	if ( maxtrigthr_phe >= 0. ) {
+	  trigger = TRUE;
+	}
+	
+	
+	novq0 = noverq0;
+	
+	if ( trigger == TRUE ) {
+	  
+	  itrigger = i;
+	  ++ntrigger;
+	  
+	  memcpy( fnpixclean, fnpix, sizeof(float) * ct_NPixels );
+	  
+#ifdef __TAILCUT__
+	  
+	  //!@' @#### Tail-cut condition.
+	  //@'
+	  
+	  //++
+	  // tail-cut 
+	  //--
+	  
+	  // Tail-Cut = 0   : No Tail-Cut
+	  // Tail-Cut > 0   : Make Tail-Cut
+	  // Tail-Cut < 0   : Make Tail-Cut with t_0 = Sqrt[ maximum ]
+	  
+	  if (qTailCut > 0.0) {
+	    
+	    for ( i=0; i<ct_NPixels; ++i ) 
+	      if ( fnpix[i] < qTailCut ) 
+		fnpixclean[i] = 0.0;
+	    
+	  } else if (qTailCut < 0.0) {
+	    
+	    maxcharge = sqrt(maxcharge);
+	    for ( i=0; i<ct_NPixels; ++i ) 
+	      if ( fnpix[i] < maxcharge ) 
+		fnpixclean[i] = 0.0;
+	    
+	  }
+	  
+#endif // __TAILCUT__
+	  
+#ifdef __ISLANDS__
+	  
+	  //!@' @#### Islands algorithm.
+	  //@'
+	  
+	  //++
+	  // islands counting, and cleanning
+	  //--
+	  
+	  if ( countIslands )
+	    do_islands( ct_NPixels, fnpixclean, pixneig, npixneig, 
+			countIslands, nIslandsCut);
+	  
+#endif // __ISLANDS__
+	  
+#ifdef __MOMENTS__
+	  
+	  //!@' @#### Calculation of parameters of the image.
+	  //@'
+	  
+	  //++
+	  // moments calculation
+	  //--
+	  
+	  // calculate moments and other things
+
+	  moments_ptr = moments( anaPixels, fnpixclean, pixary,
+                               plateScale_cm2deg, 0 );
+	  
+	  charge = moments_ptr->charge ;
+	  smax   = moments_ptr->smax   ;
+	  maxs   = moments_ptr->maxs   ;
+	  nmaxs  = moments_ptr->nmaxs  ;
+	  length = moments_ptr->length ;
+	  width  = moments_ptr->width  ;
+	  dist   = moments_ptr->dist   ;
+	  xdist  = moments_ptr->xdist  ;
+	  azw    = moments_ptr->azw    ;
+	  miss   = moments_ptr->miss   ;
+	  alpha  = moments_ptr->alpha  ;
+	  conc   = moments_ptr->conc   ;
+	  asymx  = moments_ptr->asymx  ;
+	  asymx  = moments_ptr->asymx  ;
+	  phiasym= moments_ptr->phi;
+
+	  lenwid_ptr = lenwid( anaPixels, fnpixclean, pixary,
+			       plateScale_cm2deg,
+			       ct_PixelWidth_corner_2_corner_half);
+          
+
+	  // fill the diagnostic Tree
+	  
+	  event = new MDiagEventobject();
+	  
+	  i=0;
+	  image_data[i] =	event->n       = hidt/10; i++;
+	  image_data[i] =       event->primary = mcevth.get_primary(); i++;
+	  image_data[i] =	event->energy  = mcevth.get_energy(); i++;
+	  image_data[i] =	event->cored   = coreD;  i++;
+	  image_data[i] =	event->impact  = impactD; i++;
+	  image_data[i] =	event->xcore   = coreX; i++;
+	  image_data[i] =	event->ycore   = coreY; i++;
+	  image_data[i] =	event->theta   = mcevth.get_theta(); i++;
+	  image_data[i] =	event->phi     = mcevth.get_phi(); i++;
+	  image_data[i] =       event->deviations = mcevth.get_deviations (&dtheta, &dphi); i++;
+	  image_data[i] =       event->dtheta  = dtheta; i++;
+	  image_data[i] =       event->dphi    = dphi; i++;
+	  image_data[i] =       event->trigger = trigger; i++;
+	  image_data[i] =	event->ncphs   = ncph; i++;
+	  image_data[i] =	event->maxpassthr_phe   = maxtrigthr_phe; i++;
+	  image_data[i] =	event->nphes   = charge; i++;
+	  image_data[i] =	event->nphes2  = smax; i++;
+	  image_data[i] =	event->length  = length; i++;
+	  image_data[i] =	event->width   = width; i++;
+	  image_data[i] =	event->dist    = dist; i++;
+	  image_data[i] =	event->xdist   = xdist; i++;
+	  image_data[i] =	event->azw     = azw; i++;
+	  image_data[i] =	event->miss    = miss; i++;
+	  image_data[i] =	event->alpha   = alpha; i++;
+	  image_data[i] =	event->conc2   = conc[0]; i++;
+	  image_data[i] =	event->conc3   = conc[1]; i++;
+	  image_data[i] =	event->conc4   = conc[2]; i++;
+	  image_data[i] =	event->conc5   = conc[3]; i++;
+	  image_data[i] =	event->conc6   = conc[4]; i++;
+	  image_data[i] =	event->conc7   = conc[5]; i++;
+	  image_data[i] =	event->conc8   = conc[6]; i++;
+	  image_data[i] =	event->conc9   = conc[7]; i++;
+	  image_data[i] =	event->conc10  = conc[8]; i++;
+	  image_data[i] =	event->asymx   = asymx; i++;
+	  image_data[i] =	event->asymy   = asymy; i++;
+	  image_data[i] =	event->phiasym = phiasym; i++;
+	  
+	  // there should be "nvar" variables
+	  
+	  if ( i != nvar ) 
+	    error( SIGNATURE, "Wrong entry number for diagnostic data.\n" );
+	  
+	  tree->Fill();
+	  delete event;
+	  
+	  // put information in the data file, 
+	  
+	  datafile << ntrigger;
+	  for(i=0;i<nvar;i++) {
+	    datafile << ' ' << image_data[i];
+	  }
+	  
+	  
+#endif // __MOMENTS__
+	  
+	  
+	  // revert the fnpixclean matrix into fnpix
+	  // (now we do this, but maybe in a future we want to
+	  // use both fnpix and fnpixclean for different things
+	  
+	  memcpy( fnpix, fnpixclean, sizeof(float) * ct_NPixels );
+	  
+	  // put this information in the data file, 
+	  
+	  if ( Write_All_Data ) {
+	    datafile << ' ' << -9999;
+	    for ( i=0; i<ct_NPixels; ++i )
+	      datafile << ' ' << fnpix[i];
+	  }
+	  
+	  datafile << endl;  
+	  
+	  mcevth.set_trigger( TRUE );
+	  
+	  log(SIGNATURE, "TRIGGER\n");
+	  
+	} else { // ( trigger == FALSE )
+	  
+	  event = new MDiagEventobject();
+	  
+	  i=0;
+	  image_data[i] =	event->n       = hidt/10; i++;
+	  image_data[i] =       event->primary = mcevth.get_primary(); i++;
+	  image_data[i] =	event->energy  = mcevth.get_energy(); i++;
+	  image_data[i] =	event->cored   = coreD = mcevth.get_core(&coreX, &coreY); i++;
+	  image_data[i] =	event->impact  = coreD; i++;
+	  image_data[i] =	event->xcore   = coreX; i++;
+	  image_data[i] =	event->ycore   = coreY; i++;
+	  image_data[i] =	event->theta   = mcevth.get_theta(); i++;
+	  image_data[i] =	event->phi     = mcevth.get_phi(); i++;
+	  image_data[i] =       event->deviations = mcevth.get_deviations(&dtheta, &dphi); i++;
+	  image_data[i] =       event->dtheta = dtheta; i++;
+	  image_data[i] =       event->dphi = dphi; i++;
+	  image_data[i] =       event->trigger = trigger; i++;
+	  image_data[i] =	event->ncphs   = ncph; i++;
+	  image_data[i] =	event->maxpassthr_phe   = maxtrigthr_phe; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+	  image_data[i] =	-1.; i++;
+
+	  // there should be "nvar" variables
+
+	  if ( i != nvar ) 
+	    error( SIGNATURE, "Wrong entry length for Ntuple.\n" );
+	  
+	  tree->Fill();
+	  delete event;
+	  
+	  // put this information in the data file, 
+
+	  if ( Write_All_Data ) {
+
+	    datafile << ntrigger;
+	    for ( i=0; i<nvar; ++i )
+	      datafile << ' ' << image_data[i];
+	    
+	    datafile << -9999;
+	    for ( i=0; i<ct_NPixels; ++i )
+	      datafile << ' ' << fnpix[i];
+	    
+	    datafile << endl;  
+	  }
+	  
+	  mcevth.set_trigger( FALSE );
+	  
+	} // trigger == FALSE 
+        
+#endif // __TRIGGER__
+
+	//!@' @#### Save data.
+	//@'
+	
+	//++++++++++++++++++++++++++++++++++++++++++++++++++
+	// we now have all information we want
+	// the only thing we must do now is writing it to 
+	// the output file
+	//--------------------------------------------------
+
+	//++ 
+	// save the image to the file
+	//--
+	
+	// write MCEventHeader to output file
+	
+	outputfile.write( (char *)&mcevth, mcevth.mysize() ); 
+      
+#ifdef __TRIGGER__
+
+	// save the image 
+      
+	if ( (trigger == TRUE) || (Write_All_Images == TRUE) )
+	  outputfile.write( (char *) fnpix, ct_NPixels * sizeof( float ) );
+
+#else
+
+	// save the image 
+      
+	outputfile.write( (char *) fnpix, ct_NPixels * sizeof( float ) );
+
+#endif // __TRIGGER__
+
+	if ( Data_From_STDIN ) 
+	  cin.read( flag, SIZE_OF_FLAGS );
+	else
+	  inputfile.read ( flag, SIZE_OF_FLAGS );
+	
+      } // end while there is a next event
+
+      if( !isA( flag, FLAG_END_OF_RUN   )){
+	error( SIGNATURE, "Expected end of run flag, but found: %s\n", flag );
+      }
+      else { // found end of run
+	ntshow += nshow;
+	log(SIGNATURE, "End of this run with %d events . . .\n", nshow);
+	
+	if ( Data_From_STDIN ) 
+	  cin.read( flag, SIZE_OF_FLAGS );
+	else
+	  inputfile.read ( flag, SIZE_OF_FLAGS );
+	
+	if( isA( flag, FLAG_END_OF_FILE ) ){ // end of file
+	  log(SIGNATURE, "End of file . . .\n");
+	  still_in_loop  = FALSE;
+	  
+	  if ((! Data_From_STDIN) && (! inputfile.eof())){
+	    
+	    // we have concatenated input files.
+	    // get signature of the next part and check it.
+	    // NOTE: this part repeats further up in the code;
+	    // if you change something here you probably want to change it 
+	    // there as well
+	    
+	    strcpy(Signature, REFL_SIGNATURE);
+	    
+	    strcpy(sign, Signature);
+	    
+	    inputfile.read( (char *)sign, strlen(Signature));
+	    
+	    if (strcmp(sign, Signature) != 0) {
+	      cerr << "ERROR: Signature of .rfl file is not correct\n";
+	      cerr << '"' << sign << '"' << '\n';
+	      cerr << "should be: " << Signature << '\n';
+	      exit(1);
+	    }
+	    
+	    if ( Data_From_STDIN ) 
+	      cin.read( (char *)sign, 1);
+	    else
+	      inputfile.read( (char *)sign, 1);
+	    
+	  }
+	
+	} // end if found end of file
+      } // end if found end of run
+      if ( Data_From_STDIN ) 
+	cin.read( flag, SIZE_OF_FLAGS );
+      else
+	inputfile.read ( flag, SIZE_OF_FLAGS );
+    } // end if else found start of run
+  } // end big while loop
+
+  //!@' @#### End of program.
+  //@'
+
+  //end my version
+
+#ifdef __ROOT__
+      //++
+      // put the Event to the root file
+      //--
+
+      EvtTree.Write() ; 
+      outfile.Write() ;
+      outfile.Close() ; 
+
+#endif __ROOT__
+              
+  // close input file
+  
+  ntcph += ncph;
+  log( SIGNATURE, "%d event(s), with a total of %d C.photons\n", 
+       ntshow, ntcph );
+  log( SIGNATURE, "Fraction of triggers: %5.1f%% (%d out of %d)\n", 
+       ((float)ntrigger) / ((float)ntshow) * 100.0, ntrigger, ntshow);
+
+  // close files
+  
+  log( SIGNATURE, "Closing files\n" );
+
+  inputfile.close();
+  outputfile.close();
+  datafile.close();
+
+  hfile->Write();
+
+  hfile->Close();
+
+#ifdef __DETAIL_TRIGGER__ 
+  // Output of Trigger statistics
+  //
+
+  Trigger.PrintStat() ; 
+#endif __DETAIL_TRIGGER__ 
+
+  // program finished
+
+  log( SIGNATURE, "Done.\n");
+  
+  return( 0 );
+}
+//!@}
+
+// @T \newpage
+
+//!@subsection Functions definition.
+
+//!-----------------------------------------------------------
+// @name present
+//
+// @desc Make some presentation
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//------------------------------------------------------------
+// @function
+
+//!@{
+void 
+present(void)
+{
+  cout << "##################################################\n"
+       <<  SIGNATURE << '\n' << '\n'
+       << "Processor of the reflector output\n"
+       << "J C Gonzalez, Jun 1998\n"
+       << "##################################################\n\n"
+       << flush ;
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name usage
+//
+// @desc show help
+//
+// @date Tue Dec 15 16:23:30 MET 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+void 
+usage(void)
+{
+  present();
+  cout << "\nusage ::\n\n"
+       << "\t camera "
+       << " [ -@ paramfile ] "
+       << " [ -h ] "
+       << "\n\n or \n\n"
+       << "\t camera < paramfile"
+       << "\n\n";
+  exit(0);
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name log                             
+//                                   
+// @desc function to send log information
+//
+// @var    funct  Name of the caller function
+// @var    fmt    Format to be used (message)
+// @var    ...    Other information to be shown
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//------------------------------------------------------------
+// @function  
+
+//!@{
+void
+log(const char *funct, char *fmt, ...)
+{
+  va_list args;
+  
+  //  Display the name of the function that called error
+  printf("[%s]: ", funct);
+  
+  // Display the remainder of the message
+  va_start(args, fmt);
+  vprintf(fmt, args);
+  va_end(args);
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name error                                                    
+//                                                           
+// @desc function to send an error message, and abort the program
+//
+// @var    funct  Name of the caller function
+// @var    fmt    Format to be used (message)
+// @var    ...    Other information to be shown
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//------------------------------------------------------------
+// @function  
+
+//!@{
+void
+error(const char *funct, char *fmt, ...)
+{
+  va_list args;
+
+  //  Display the name of the function that called error
+  fprintf(stderr, "ERROR in %s: ", funct);
+
+  // Display the remainder of the message
+  va_start(args, fmt);
+  vfprintf(stderr, fmt, args);
+  va_end(args);
+
+  perror(funct);
+
+  abort();
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name isA                               
+//                                             
+// @desc returns TRUE(FALSE), if the flag is(is not) the given
+//
+// @var    s1     String to be searched
+// @var    flag   Flag to compare with string s1
+// @return TRUE: both strings match; FALSE: oth.
+//
+// @date Wed Jul  8 15:25:39 MET DST 1998
+//------------------------------------------------------------
+// @function  
+
+//!@{
+int 
+isA( char * s1, const char * flag ) {
+  return ( (strncmp((char *)s1, flag, SIZE_OF_FLAGS)==0) ? 1 : 0 ); 
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name read_ct_file           
+//                          
+// @desc read CT definition file
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//------------------------------------------------------------
+// @function  
+
+//!@{
+void
+read_ct_file(void)
+{
+  char line[LINE_MAX_LENGTH];    //@< line to get from the ctin
+  char token[ITEM_MAX_LENGTH];   //@< a single token
+  int i, j;                      //@< dummy counters
+
+  log( "read_ct_file", "start.\n" );
+
+  ifstream ctin ( ct_filename );
+
+  if ( ctin.bad() ) 
+    error( "read_ct_file", 
+           "Cannot open CT def. file: %s\n", ct_filename );
+  
+  // loop till the "end" directive is reached
+
+  while (!ctin.eof()) {          
+
+    // get line from stdin
+
+    ctin.getline(line, LINE_MAX_LENGTH);
+
+    // look for each item at the beginning of the line
+
+    for (i=0; i<=define_mirrors; i++) 
+      if (strstr(line, CT_ITEM_NAMES[i]) == line)
+        break;
+    
+    // if it is not a valid line, just ignore it
+
+    if (i == define_mirrors+1) 
+      continue;
+    
+    // case block for each directive
+
+    switch ( i ) {
+
+    case type:                // <type of telescope> (0:CT1 ¦ 1:MAGIC)
+      
+      // get focal distance
+
+      sscanf(line, "%s %d", token, &ct_Type);
+
+      log( "read_ct_file", "<Type of Telescope>: %s\n", 
+           ((ct_Type==0) ? "CT1" : "MAGIC") );
+
+      break;
+
+    case focal_distance:      // <focal distance> [cm]
+      
+      // get focal distance
+
+      sscanf(line, "%s %f", token, &ct_Focal_mean);
+
+      log( "read_ct_file", "<Focal distance>: %f cm\n", ct_Focal_mean );
+
+      break;
+
+    case focal_std:           // s(focal distance) [cm]
+      
+      // get focal distance
+
+      sscanf(line, "%s %f", token, &ct_Focal_std);
+
+      log( "read_ct_file", "s(Focal distance): %f cm\n", ct_Focal_std );
+
+      break;
+
+    case point_spread:        // <point spread> [cm]
+      
+      // get point spread
+
+      sscanf(line, "%s %f", token, &ct_PSpread_mean);
+
+      log( "read_ct_file", "<Point spread>: %f cm\n", ct_PSpread_mean );
+
+      break;
+
+    case point_std:           // s(point spread) [cm]
+      
+      // get point spread
+
+      sscanf(line, "%s %f", token, &ct_PSpread_std);
+
+      log( "read_ct_file", "s(Point spread): %f cm\n", ct_PSpread_std );
+
+      break;
+
+    case adjustment_dev:      // s(adjustment_dev) [cm]
+      
+      // get point spread
+
+      sscanf(line, "%s %f", token, &ct_Adjustment_std);
+
+      log( "read_ct_file", "s(Adjustment): %f cm\n", ct_Adjustment_std );
+
+      break;
+
+    case black_spot:          // radius of the black spot in the center [cm]
+      
+      // get black spot radius
+
+      sscanf(line, "%s %f", token, &ct_BlackSpot_rad);
+
+      log( "read_ct_file", "Radius of the black spots: %f cm\n", 
+           ct_BlackSpot_rad);
+
+      break;
+
+    case r_mirror:            // radius of the mirrors [cm]
+      
+      // get radius of mirror
+
+      sscanf(line, "%s %f", token, &ct_RMirror);
+
+      log( "read_ct_file", "Radii of the mirrors: %f cm\n", ct_RMirror );
+
+      break;
+
+    case n_mirrors:           // number of mirrors
+      
+      // get the name of the output_file from the line
+
+      sscanf(line, "%s %d", token, &ct_NMirrors);
+
+      log( "read_ct_file", "Number of mirrors: %d\n", ct_NMirrors );
+
+      break;
+
+    case camera_width:        // camera width [cm]
+      
+      // get the name of the ct_file from the line
+
+      sscanf(line, "%s %f", token, &ct_CameraWidth);
+
+      log( "read_ct_file", "Camera width: %f cm\n", ct_CameraWidth );
+
+      break;
+
+    case n_pixels:           // number of pixels
+      
+      // get the name of the output_file from the line
+
+      sscanf(line, "%s %d", token, &ct_NPixels);
+
+      log( "read_ct_file", "Number of pixels: %d\n", ct_NPixels );
+
+      break;
+
+    case n_centralpixels:           // number of central pixels
+      
+      // get the name of the output_file from the line
+
+      sscanf(line, "%s %d", token, &ct_NCentralPixels);
+
+      log( "read_ct_file", "Number of central pixels: %d\n", ct_NCentralPixels );
+
+      break;
+
+    case n_gappixels:           // number of gap pixels
+      
+      // get the name of the output_file from the line
+
+      sscanf(line, "%s %d", token, &ct_NGapPixels);
+
+      log( "read_ct_file", "Number of gap pixels: %d\n", ct_NGapPixels );
+
+      break;
+
+    case pixel_width:         // pixel width [cm]
+      
+      // get the name of the ct_file from the line
+
+      sscanf(line, "%s %f", token, &ct_PixelWidth);
+
+      ct_PixelWidth_corner_2_corner = ct_PixelWidth / cos(RAD(30.0));
+      ct_PixelWidth_corner_2_corner_half =
+        ct_PixelWidth_corner_2_corner * 0.50;
+      ct_Apot = ct_PixelWidth / 2;
+      ct_2Apot = ct_Apot * 2.0;
+
+      log( "read_ct_file", "Pixel width: %f cm\n", ct_PixelWidth );
+
+      break;
+
+    case define_mirrors:      // read table with the parameters of the mirrors
+
+      log( "read_ct_file", "Table of mirrors data:\n" );
+
+      // check whether the number of mirrors was already set
+
+      if ( ct_NMirrors == 0 )
+        error( "read_ct_file", "NMirrors was not set.\n" );
+      
+      // allocate memory for paths list
+
+      log( "read_ct_file", "Allocating memory for ct_data\n" );
+
+      ct_data = new float*[ct_NMirrors];
+
+      for (i=0; i<ct_NMirrors; i++) 
+        ct_data[i] = new float[CT_NDATA];
+
+      // read data
+
+      log( "read_ct_file", "Reading mirrors data...\n" );
+
+      for (i=0; i<ct_NMirrors; i++)
+        for (j=0; j<CT_NDATA; j++)
+          ctin >> ct_data[i][j];
+
+      break;
+
+    } // switch ( i ) 
+
+  } // end while
+
+  // end
+
+  log( "read_ct_file", "done.\n" );
+
+  return;
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name read_pixels  
+//                          
+// @desc read pixels data
+//
+// @date Fri Mar 12 16:33:34 MET 1999
+//------------------------------------------------------------
+// @function
+
+//!@{
+void 
+read_pixels(struct camera *pcam)
+{
+  ifstream qefile;
+  char line[LINE_MAX_LENGTH];
+  int n, i, j, k;
+  float qe;
+
+  //------------------------------------------------------------
+  // first, pixels' coordinates
+
+  pcam->inumpixels = ct_NPixels;
+  pcam->inumcentralpixels = ct_NCentralPixels;
+  pcam->inumgappixels = ct_NGapPixels;
+  pcam->inumbigpixels = ct_NPixels - ct_NCentralPixels - ct_NGapPixels;
+  pcam->dpixdiameter_cm =  ct_PixelWidth; 
+
+  // initialize pixel numbers
+
+  for ( i=0; i<PIX_ARRAY_SIDE; ++i ) 
+    for ( j=0; j<PIX_ARRAY_SIDE; ++j ) 
+      pixels[i][j][PIXNUM] = -1;
+
+  pixary = new float* [2*ct_NCentralPixels];
+  for ( i=0; i<2*ct_NCentralPixels; ++i ) 
+    pixary[i] = new float[2];
+
+  pixneig = new int* [ct_NCentralPixels];
+  for ( i=0; i<ct_NCentralPixels; ++i ) {
+    pixneig[i] = new int[6];
+    for ( j=0; j<6; ++j ) 
+      pixneig[i][j] = -1;
+  }
+
+  npixneig = new int[ct_NCentralPixels];
+  for ( i=0; i<ct_NCentralPixels; ++i ) 
+    npixneig[i] = 0;
+
+  // generate all coordinates
+
+  igen_pixel_coordinates(pcam);
+
+  // transfer coordinates to the working arrays for
+  // the central pixels
+
+  for(k=0; k<ct_NCentralPixels; k++){
+
+    i = (int) pcam->di[k];
+    j = (int) pcam->dj[k];
+
+    pixels[i+PIX_ARRAY_HALF_SIDE][j+PIX_ARRAY_HALF_SIDE][PIXNUM] = k;
+    pixels[i+PIX_ARRAY_HALF_SIDE][j+PIX_ARRAY_HALF_SIDE][PIXX] = pcam->dxc[k];
+    pixels[i+PIX_ARRAY_HALF_SIDE][j+PIX_ARRAY_HALF_SIDE][PIXY] = pcam->dyc[k];
+   
+    pixary[k][0] = pcam->dxc[k];
+    pixary[k][1] = pcam->dyc[k];
+  }
+
+  // calculate tables of neighbours
+  
+#ifdef __DEBUG__
+  for ( n=0 ; n<ct_NPixels ; ++n ) {
+    cout << "Para el pixel " << n << ": ";	
+    for ( i=n+1 ; (i<ct_NPixels)&&(npixneig[n]<6) ; ++i) {
+      if ( pixels_are_neig(n,i) == TRUE ) {
+        pixneig[n][npixneig[n]] = i;
+        pixneig[i][npixneig[i]] = n;
+        cout << i << ' ';
+        ++npixneig[n];
+        ++npixneig[i];
+      }
+    }
+    cout << endl << flush;
+  }
+#else // ! __DEBUG__
+  for ( n=0 ; n<ct_NCentralPixels ; ++n ) 
+    for ( i=n+1 ; (i<ct_NCentralPixels)&&(npixneig[n]<6) ; ++i) 
+      if ( pixels_are_neig(n,i) == TRUE ) {
+        pixneig[n][npixneig[n]] = i;
+        pixneig[i][npixneig[i]] = n;
+        ++npixneig[n];
+        ++npixneig[i];
+      }
+#endif // ! __DEBUG__
+  
+#ifdef __DEBUG__
+  for ( n=0 ; n<ct_NPixels ; ++n ) {
+    cout << n << ':';
+    for ( j=0; j<npixneig[n]; ++j) 
+      cout << ' ' << pixneig[n][j];
+    cout << endl << flush;
+  }
+#endif // __DEBUG__  
+
+  //------------------------------------------------------------
+  // second, pixels' QE
+
+  // try to open the file
+
+  log("read_pixels", "Openning the file \"%s\" . . .\n", QE_FILE);
+  
+  qefile.open( QE_FILE );
+  
+  // if it is wrong or does not exist, exit
+  
+  if ( qefile.bad() )
+    error( "read_pixels", "Cannot open \"%s\". Exiting.\n", QE_FILE );
+  
+  // read file
+
+  log("read_pixels", "Reading data . . .\n");
+
+  i=-1;
+
+  while ( ! qefile.eof() ) {          
+
+    // get line from the file
+
+    qefile.getline(line, LINE_MAX_LENGTH);
+
+    // skip if comment
+
+    if ( *line == '#' )
+      continue;
+
+    // if it is the first valid value, it is the number of QE data points
+
+    if ( i < 0 ) {
+
+      // get the number of datapoints 
+
+      sscanf(line, "%d", &pointsQE);
+      
+      // allocate memory for the table of QEs
+      
+      QE = new float ** [ct_NPixels];
+
+      for ( i=0; i<ct_NPixels; ++i ) {
+        QE[i] = new float * [2];
+        QE[i][0] = new float[pointsQE];
+        QE[i][1] = new float[pointsQE];
+      }
+      
+      QElambda = new float [pointsQE];
+
+      for ( i=0; i<pointsQE; ++i ) {
+        qefile.getline(line, LINE_MAX_LENGTH);
+        sscanf(line, "%f", &QElambda[i]);
+      }
+
+      i=0;
+
+      continue;
+    }
+
+    // get the values (num-pixel, num-datapoint, QE-value)
+    
+    sscanf(line, "%d %d %f", &i, &j, &qe);
+
+    if ( ((i-1) < ct_NPixels) && ((i-1) > -1) &&
+         ((j-1) < pointsQE)   && ((j-1) > -1) ) {
+      QE[i-1][0][j-1] = QElambda[j-1];
+      QE[i-1][1][j-1] = qe;
+    }
+
+  }
+
+  // close file
+
+  qefile.close();
+
+  // end
+
+  log("read_pixels", "Done.\n");
+
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name pixels_are_neig                        
+//                                             
+// @desc check whether two pixels are neighbours
+//
+// @var pix1      Number of the first pixel
+// @var pix2      Number of the second pixel
+// @return        TRUE: both pixels are neighbours; FALSE: oth.
+//
+// @date Wed Sep  9 17:58:37 MET DST 1998
+//------------------------------------------------------------
+// @function  
+
+//!@{
+int
+pixels_are_neig(int pix1, int pix2)
+{ 
+  if ( sqrt(SQR( pixary[pix1][0] - pixary[pix2][0] ) +
+            SQR( pixary[pix1][1] - pixary[pix2][1] ) ) 
+       > ct_PixelWidth_corner_2_corner ) 
+    return ( FALSE );
+  else
+    return ( TRUE );
+}
+//!@}
+
+//!-----------------------------------------------------------
+// @name igen_pixel_coordinates
+//                                             
+// @desc generate the pixel center coordinates
+//
+// @var *pcam     structure camera containing all the
+//                camera information
+// @return        total number of pixels
+//
+// DP
+//
+// @date Thu Oct 14 10:41:03 CEST 1999
+//------------------------------------------------------------
+// @function  
+
+//!@{
+/******** igen_pixel_coordinates() *********************************/
+
+int igen_pixel_coordinates(struct camera *pcam) { 
+            /* generate pixel coordinates, return value is number of pixels */
+
+  int i, itot_inside_ring, iN, in, ipixno, iring_no, ipix_in_ring, isegment;
+  float fsegment_fract;
+  double dtsize;
+  double dhsize;
+  double dpsize;
+  double dxfirst_pix;
+  double dyfirst_pix;
+  double ddxseg1, ddxseg2, ddxseg3, ddxseg4, ddxseg5, ddxseg6;
+  double ddyseg1, ddyseg2, ddyseg3, ddyseg4, ddyseg5, ddyseg6;
+  
+
+  double dstartx, dstarty;   /* for the gap pixels and outer pixels */
+  int j, nrow;
+
+  dpsize = pcam->dpixdiameter_cm;
+  dtsize = dpsize * sqrt(3.) / 2.;
+  dhsize = dpsize / 2.;
+
+  /* Loop over central pixels to generate co-ordinates  */
+
+  for(ipixno=1; ipixno <= pcam->inumcentralpixels; ipixno++){
+
+    /* Initialise variables. The central pixel = ipixno 1 in ring iring_no 0 */
+
+    pcam->dpixsizefactor[ipixno] = 1.;
+
+    in = 0;
+
+    i = 0;
+    itot_inside_ring = 0;
+    iring_no = 0;
+
+    /* Calculate the number of pixels out to and including the ring containing pixel number */
+    /* ipixno e.g. for pixel number 17 in ring number 2 itot_inside_ring = 19 */
+
+    while (itot_inside_ring == 0){
+      
+      iN = 3*(i*(i+1)) + 1;
+      
+      if (ipixno <= iN){
+	iring_no = i;
+	itot_inside_ring = iN;
+      }
+      
+      i++;
+    }
+    
+    
+    /* Find the number of pixels which make up ring number iring_no e.g. ipix_in_ring = 6 for ring 1 */    
+        
+    ipix_in_ring = 0;
+    for (i = 0; i < iring_no; ++i){
+
+      ipix_in_ring = ipix_in_ring + 6;
+    }
+
+    /* The camera is viewed as 6 radial segments ("pie slices"). Knowing the number of pixels in its */
+    /* ring calculate which segment the pixel ipixno is in. Then find how far across this segment it is */
+    /* as a fraction of the number of pixels in this sixth of the ring (ask SMB). */
+        
+    isegment = 0;
+    fsegment_fract = 0.;
+    if (iring_no > 0) {
+      
+      isegment = (int)((ipixno - itot_inside_ring + ipix_in_ring - 0.5) / iring_no + 1); /* integer division ! numbering starts at 1 */
+      
+      fsegment_fract = (ipixno - (itot_inside_ring - ipix_in_ring)) - ((isegment-1)*iring_no) - 1 ;
+      
+    }
+
+    /* the first pixel in each ring lies on the positive x axis at a distance dxfirst_pix = iring_no * the */
+    /* pixel width (flat to flat) dpsize. */
+        
+    dxfirst_pix = dpsize*iring_no;
+    dyfirst_pix = 0.;
+
+    /* the vector between the first and last pixels in a segment n is (ddxsegn, ddysegn) */
+
+    ddxseg1 = - dhsize*iring_no;
+    ddyseg1 = dtsize*iring_no;
+    ddxseg2 = -dpsize*iring_no;
+    ddyseg2 = 0.;
+    ddxseg3 = ddxseg1;
+    ddyseg3 = -ddyseg1;
+    ddxseg4 = -ddxseg1;
+    ddyseg4 = -ddyseg1;
+    ddxseg5 = -ddxseg2;
+    ddyseg5 = 0.;
+    ddxseg6 = -ddxseg1;
+    ddyseg6 = ddyseg1;
+    
+    /* to find the position of pixel ipixno take the position of the first pixel in the ring and move */
+    /* anti-clockwise around the ring by adding the segment to segment vectors. */
+
+    switch (isegment) {
+      
+    case 0:
+
+      pcam->dxc[ipixno-1] = 0.;
+      pcam->dyc[ipixno-1] = 0.; 
+
+    case 1: 
+      pcam->dxc[ipixno-1] = dxfirst_pix - dhsize*fsegment_fract;
+      pcam->dyc[ipixno-1] = dyfirst_pix + dtsize*fsegment_fract;
+      
+      break;
+      
+    case 2:
+      
+      pcam->dxc[ipixno-1] = dxfirst_pix + ddxseg1 - dpsize*fsegment_fract;
+      pcam->dyc[ipixno-1] = dyfirst_pix + ddyseg1 + 0.;
+      
+      break;
+      
+    case 3:
+      
+      pcam->dxc[ipixno-1] = dxfirst_pix + ddxseg1 + ddxseg2 - dhsize*fsegment_fract;
+      pcam->dyc[ipixno-1] = dyfirst_pix + ddyseg1 + ddyseg2 - dtsize*fsegment_fract;
+      
+      break;
+      
+    case 4:
+      
+      pcam->dxc[ipixno-1] = dxfirst_pix + ddxseg1 + ddxseg2 + ddxseg3 + dhsize*fsegment_fract;
+      pcam->dyc[ipixno-1] = dyfirst_pix + ddyseg1 + ddyseg2 + ddyseg3 - dtsize*fsegment_fract;
+      
+      break;
+      
+    case 5:
+      
+      pcam->dxc[ipixno-1] = dxfirst_pix + ddxseg1 + ddxseg2 + ddxseg3 + ddxseg4 + dpsize*fsegment_fract;
+      pcam->dyc[ipixno-1] = dyfirst_pix + ddyseg1 + ddyseg2 + ddyseg3 + ddyseg4 + 0.;
+    
+      break;
+      
+    case 6:
+      
+      pcam->dxc[ipixno-1] = dxfirst_pix + ddxseg1 + ddxseg2 + ddxseg3 + ddxseg4 + ddxseg5 + dhsize*fsegment_fract;
+      pcam->dyc[ipixno-1] = dyfirst_pix + ddyseg1 + ddyseg2 + ddyseg3 + ddyseg4 + ddyseg5 + dtsize*fsegment_fract;
+      
+      break;
+      
+    default: 
+
+      fprintf(stderr, "ERROR: problem in coordinate generation for pixel %d\n", ipixno);
+      return(0);
+      
+    } /* end switch */
+
+  } /* end for */
+
+  dstartx = pcam->dxc[pcam->inumcentralpixels - 1] + dhsize;
+  dstarty = pcam->dyc[pcam->inumcentralpixels - 1] + dtsize;
+
+  if(pcam->inumgappixels > 0){   /* generate the positions of the gap pixels */
+    
+    j = pcam->inumcentralpixels;
+
+    for(i=0; i<pcam->inumgappixels; i=i+6){
+      pcam->dxc[j + i ] = dstartx + 2. * (i/6 + 1) * dpsize; 
+      pcam->dyc[j + i ] = dstarty;
+      pcam->dpixsizefactor[j + i] = 1.;
+      pcam->dxc[j + i + 1] = pcam->dxc[j + i ] / 2.;
+      pcam->dyc[j + i + 1] = sqrt(3.) * pcam->dxc[j + i + 1];
+      pcam->dpixsizefactor[j + i + 1] = 1.;
+      pcam->dxc[j + i + 2] = - pcam->dxc[j + i + 1];
+      pcam->dyc[j + i + 2] = pcam->dyc[j + i + 1];
+      pcam->dpixsizefactor[j + i+ 2] = 1.;
+      pcam->dxc[j + i + 3] = - pcam->dxc[j + i];
+      pcam->dyc[j + i + 3] = dstarty;
+      pcam->dpixsizefactor[j + i+ 3] = 1.;
+      pcam->dxc[j + i + 4] = pcam->dxc[j + i + 2];
+      pcam->dyc[j + i + 4] = - pcam->dyc[j + i + 2];
+      pcam->dpixsizefactor[j + i+ 4] = 1.;
+      pcam->dxc[j + i + 5] = pcam->dxc[j + i + 1];
+      pcam->dyc[j + i + 5] = - pcam->dyc[j + i + 1];
+      pcam->dpixsizefactor[j + i + 5] = 1.;
+    } /* end for */
+  } /* end if */
+
+  /* generate positions of the outer pixels */
+
+  if( pcam->inumbigpixels > 0 ){
+
+    j = pcam->inumcentralpixels + pcam->inumgappixels;
+
+    for(i=0; i<pcam->inumbigpixels; i++){
+      pcam->dpixsizefactor[j + i] = 2.;
+    }
+
+    in = 0;
+
+    nrow = (int) ceil(dstartx / 2. / dpsize);    
+
+    while(in < pcam->inumbigpixels){
+
+      pcam->dxc[j + in] = dstartx + dpsize;
+      pcam->dyc[j + in] = dstarty + 2 * dpsize / sqrt(3.);
+      pcam->dxc[j + in + nrow] = dstartx / 2. - dpsize / 2.;
+      pcam->dyc[j + in + nrow] = sqrt(3.)/2. * dstartx + 2.5 * dpsize/sqrt(3.);
+      pcam->dxc[j + in + 3 * nrow - 1] = - pcam->dxc[j + in];
+      pcam->dyc[j + in + 3 * nrow - 1] = pcam->dyc[j + in];
+      pcam->dxc[j + in + 3 * nrow] = - pcam->dxc[j + in];
+      pcam->dyc[j + in + 3 * nrow] = - pcam->dyc[j + in];
+      pcam->dxc[j + in + 5 * nrow - 1] = pcam->dxc[j + in + nrow];
+      pcam->dyc[j + in + 5 * nrow - 1] = - pcam->dyc[j + in + nrow];
+      pcam->dxc[j + in + 6 * nrow - 1] = pcam->dxc[j + in];
+      pcam->dyc[j + in + 6 * nrow - 1] = - pcam->dyc[j + in];
+      for(i=1; i<nrow; i++){
+	pcam->dxc[j + in + i] = pcam->dxc[j + in] - i * dpsize;
+	pcam->dyc[j + in + i] = pcam->dyc[j + in] + i * dpsize * sqrt(3.);
+	pcam->dxc[j + in + i + nrow] = pcam->dxc[j + in + nrow] - i * 2 * dpsize;
+	pcam->dyc[j + in + i + nrow] = pcam->dyc[j + in + nrow];
+        pcam->dxc[j + in + 3 * nrow - 1 - i] = - pcam->dxc[j + in + i];
+	pcam->dyc[j + in + 3 * nrow - 1- i] = pcam->dyc[j + in + i];
+	pcam->dxc[j + in + i + 3 * nrow] = - pcam->dxc[j + in + i];
+	pcam->dyc[j + in + i + 3 * nrow] = - pcam->dyc[j + in + i];
+	pcam->dxc[j + in + 5 * nrow - 1 - i] = pcam->dxc[j + in + i + nrow];
+	pcam->dyc[j + in + 5 * nrow - 1 - i] = - pcam->dyc[j + in + i + nrow];
+	pcam->dxc[j + in + 6 * nrow - 1 - i] = pcam->dxc[j + in + i];
+	pcam->dyc[j + in + 6 * nrow - 1 - i] = - pcam->dyc[j + in + i];
+      }
+      in = in + 6 * nrow;
+      dstartx = dstartx + 2. * dpsize;
+      nrow = nrow + 1;
+    } /* end while */
+
+  } /* end if */
+
+  /* generate the ij coordinates */
+
+  for(i=0; i<pcam->inumpixels; i++){
+    pcam->dj[i] = pcam->dyc[i]/SIN60/dpsize;
+    pcam->di[i] = pcam->dxc[i]/dpsize - pcam->dj[i]*COS60;
+
+    //    fprintf(stdout, "%d %f %f %f %f %f\n", 
+    //	    i+1, pcam->di[i], pcam->dj[i], pcam->dxc[i], pcam->dyc[i],
+    //	    pcam->dpixsizefactor[i]);
+
+  }
+
+  return(pcam->inumpixels);
+
+}
+//!@}
+
+//!-----------------------------------------------------------
+// @name bpoint_is_in_pix
+//                                             
+// @desc check if a point (x,y) in camera coordinates is inside a given pixel
+// 
+// @var *pcam     structure camera containing all the
+//                camera information
+// @var dx, dy    point coordinates in centimeters
+// @var ipixnum   pixel number (starting at 0)
+// @return        TRUE if the point is inside the pixel, FALSE otherwise
+//
+// DP
+//
+// @date Thu Oct 14 16:59:04 CEST 1999
+//------------------------------------------------------------
+// @function  
+
+//!@{
+
+/******** bpoint_is_in_pix() ***************************************/
+
+int bpoint_is_in_pix(double dx, double dy, int ipixnum, struct camera *pcam){
+  /* return TRUE if point (dx, dy) is in pixel number ipixnum, else return FALSE (use camera coordinate system) */
+  /* the pixel is assumed to be a "closed set" */
+
+  double a, b; /* a = length of one of the edges of one pixel, b = half the width of one pixel */
+  double c, xx, yy; /* auxiliary variable */
+
+  b = pcam->dpixdiameter_cm / 2. * pcam->dpixsizefactor[ipixnum];
+  a = pcam->dpixdiameter_cm / sqrt(3.) * pcam->dpixsizefactor[ipixnum];
+  c = 1. - 1./sqrt(3.);
+  if((ipixnum < 0)||(ipixnum >= pcam->inumpixels)){
+    fprintf(stderr, "Error in bpoint_is_in_pix: invalid pixel number %d\n", ipixnum);
+    fprintf(stderr, "Exiting.\n");
+    exit(203);
+  }
+  xx = dx - pcam->dxc[ipixnum];
+  yy = dy - pcam->dyc[ipixnum];
+
+  if(((-b <= xx) && (xx <= 0.) && ((-c * xx - a) <= yy) && (yy <= ( c * xx + a))) ||
+     ((0. <  xx) && (xx <= b ) && (( c * xx - a) <= yy) && (yy <= (-c * xx + a)))   ){
+    return(TRUE); /* point is inside */
+  }
+  else{
+    return(FALSE); /* point is outside */
+  }
+}
+
+//!@}
+
+//------------------------------------------------------------
+// @name dist_r_P                          
+//                                     
+// @desc distance straight line r - point P
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// @function @code 
+//------------------------------------------------------------
+// dist_r_P
+//
+// distance straight line r - point P
+//------------------------------------------------------------
+
+float 
+dist_r_P(float a, float b, float c, 
+         float l, float m, float n,
+         float x, float y, float z)
+{
+  return (
+          sqrt((SQR((a-x)*m-(b-y)*l) +
+                SQR((b-y)*n-(c-z)*m) +
+                SQR((c-z)*l-(a-x)*n))/
+               (SQR(l)+SQR(m)+SQR(n))
+               )
+          );
+}
+// @endcode
+
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+//
+// $Log: not supported by cvs2svn $
+// Revision 1.3  1999/10/22 15:01:28  petry
+// version sent to H.K. and N.M. on Fri Oct 22 1999
+//
+// Revision 1.2  1999/10/22 09:44:23  petry
+// first synthesized version which compiles and runs without crashing;
+//
+// Revision 1.1.1.1  1999/10/21 16:35:10  petry
+// first synthesised version
+//
+// Revision 1.13  1999/03/15  14:59:05  gonzalez
+// camera-1_1
+//
+// Revision 1.12  1999/03/02  09:56:10  gonzalez
+// *** empty log message ***
+//
+//
+//!@}
+
+//=EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Camera/camera.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Camera/camera.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Camera/camera.h	(revision 4308)
@@ -0,0 +1,302 @@
+//=//////////////////////////////////////////////////////////////////////
+//=
+//= camera                
+//=
+//= @file        camera.h
+//= @desc        Header file
+//= @author      J C Gonzalez
+//= @email       gonzalez@mppmu.mpg.de
+//= @date        Thu May  7 16:24:22 1998
+//=
+//=----------------------------------------------------------------------
+//=
+//= Created: Thu May  7 16:24:22 1998
+//= Author:  Jose Carlos Gonzalez
+//= Purpose: Program for reflector simulation
+//= Notes:   See files README for details
+//=    
+//=----------------------------------------------------------------------
+//=
+//= $RCSfile: camera.h,v $
+//= $Revision: 1.1.1.1 $
+//= $Author: harald $ 
+//= $Date: 1999-11-05 11:59:31 $
+//=
+//=//////////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+//!@section Source code of |camera.h|.
+
+/*!@"
+
+  This section shows the include file |camera.h|
+
+  @"*/
+
+//=-----------------------------------------------------------
+//!@subsection Include files.
+
+//!@{
+
+#include <iostream.h>
+#include <fstream.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include <math.h>
+#include <sys/types.h>
+#include <dirent.h>
+#include <unistd.h>
+#include <libgen.h>
+
+#include "camera-v.h"
+
+#include "jcmacros.h"
+#include "jcdebug.h"
+
+#include "creadparam.h"
+#include "atm.h"
+#include "moments.h"
+
+#include "lagrange.h"
+
+#include "MCEventHeader.hxx"
+#include "MCCphoton.hxx"
+
+// command line options available
+
+#define COMMAND_LINE_OPTIONS    "f:h"
+
+/*@'
+
+  This is C++, but RANLIB routines are written in pure ANSI C.
+  In order to read easily these routines, we must include
+  the following directive
+  
+*/
+
+extern "C" { 
+#include "ranlib.h"       
+}
+
+// version of the reflector program that can read
+
+#define REFL_PROGRAM reflector
+#define REFL_VERSION 0.4
+
+const char REFL_SIGNATURE[] = GLUE_postp( REFL_PROGRAM, REFL_VERSION );
+
+//!@}
+
+//=------------------------------------------------------------
+//!@subsection Macro-definitions, and constants.
+
+//!@{
+
+#define SLICES            100
+#define WIDTH_TIMESLICE   3.3
+ 
+#define SIN60   0.866025403784439
+#define COS60   0.500000000000000
+
+#define RandomNumber  drand48()
+
+#define PIX_ARRAY_SIDE       40
+#define PIX_ARRAY_HALF_SIDE  20
+#define PIXNUM               0
+#define PIXX                 1
+#define PIXY                 2
+
+#define iMAXNUMPIX  595 // total maximum possible number of pixels in the camera
+
+//@ the trigger threshold up to which the maximum passable threshold is tested 
+#define iMAX_THRESHOLD_PHE   50 
+
+//@ number of the 1st. pixel of a sector s in a ring r (central pixel: ring=0)
+#define FIRST_PIXEL(r,s)   ( ((r)>0) ? (3*(r)*((r)-1) + (r)*(s) + 1) : 0 )
+
+//@ number of the pixels include in a camera of r pixels
+#define NUMBER_PIXELS(r)   ( ((r)>0) ? FIRST_PIXEL((r)+1,0) : 1 )
+
+//@ now we define the list CT_ITEM_LIST of possible items in the CT def. file
+#define CT_ITEM_LIST  /* LIST OF ITEMS IN THE CT DEFINITION FILE */  \
+T(type),              /* type of definition file */                  \
+T(focal_distance),    /* std(focal distance) */                      \
+T(focal_std),         /* focal distance */                           \
+T(point_spread),      /* std(point spread)   */                      \
+T(point_std),         /* point spread   */                           \
+T(adjustment_dev),    /* std of adjustment deviation   */            \
+T(black_spot),        /* radius of the black spot in center of mirror */ \
+T(n_mirrors),         /* number of mirrors */                        \
+T(r_mirror),          /* radius of one mirror */                     \
+T(camera_width),      /* camera width */                             \
+T(n_pixels),          /* total number of pixels in the camera */     \
+T(n_centralpixels),   /* number of central pixels in the camera */   \
+T(n_gappixels),       /* number of gap pixels in the camera */       \
+T(pixel_width),       /* pixel width */                              \
+T(define_mirrors)     /* this entry is followed by the def. of pixels */
+  
+#define T(x)  x               //@< define T() as the name as it is
+
+enum CT_ITEM_TYPE {
+  CT_ITEM_LIST
+};
+
+#undef T
+
+#define T(x)  #x              //@< define T() as the string of x
+
+const char *const CT_ITEM_NAMES[] = {
+  CT_ITEM_LIST
+};
+
+#undef T
+
+
+// TYPE=0  (CT1)
+//     i   s   rho   theta   x   y   z   thetan  phin  xn   yn   zn
+//
+//      i : number of the mirror
+//      s : arc length [cm]
+//    rho : polar rho of the position of the center of the mirror [cm]
+//  theta : polar angle of the position of the center of the mirror [cm]
+//      x : x coordinate of the center of the mirror [cm]
+//      y : y coordinate of the center of the mirror [cm]
+//      z : z coordinate of the center of the mirror [cm]
+// thetan : polar theta angle of the direction where the mirror points to
+//   phin : polar phi angle of the direction where the mirror points to
+//     xn : xn coordinate of the normal vector in the center (normalized)
+//     yn : yn coordinate of the normal vector in the center (normalized)
+//     zn : zn coordinate of the normal vector in the center (normalized)
+//
+// TYPE=1  (MAGIC)
+//     i  f   sx   sy   x   y   z   thetan  phin 
+//
+//      i : number of the mirror
+//      f : focal distance of that mirror
+//     sx : curvilinear coordinate of mirror's center in X[cm]
+//     sy : curvilinear coordinate of mirror's center in X[cm]
+//      x : x coordinate of the center of the mirror [cm]
+//      y : y coordinate of the center of the mirror [cm]
+//      z : z coordinate of the center of the mirror [cm]
+// thetan : polar theta angle of the direction where the mirror points to
+//   phin : polar phi angle of the direction where the mirror points to
+//     xn : xn coordinate of the normal vector in the center (normalized)
+//     yn : yn coordinate of the normal vector in the center (normalized)
+//     zn : zn coordinate of the normal vector in the center (normalized)
+
+#define CT_I       0
+
+#define CT_S       1
+#define CT_RHO     2
+#define CT_THETA   3
+
+#define CT_FOCAL   1
+#define CT_SX      2
+#define CT_SY      3
+
+#define CT_X       4
+#define CT_Y       5
+#define CT_Z       6
+#define CT_THETAN  7
+#define CT_PHIN    8
+#define CT_XN      9
+#define CT_YN     10
+#define CT_ZN     11
+
+#define CT_NDATA  12
+ 
+//!@}
+
+//=------------------------------------------------------------
+//!@subsection data types
+
+struct camera { /* camera parameters for imaging */
+  int inumpixels;
+  int inumcentralpixels;
+  int inumgappixels;
+  int inumbigpixels;
+  double dpixdiameter_cm; /* diameter of the central and gap pixels in centimeters */
+  double dpixsizefactor[iMAXNUMPIX]; /* size of the pixel relative to  dpixdiameter_deg */
+  double dxc[iMAXNUMPIX]; /* Pixel coordinates in camera coordinate system (x points from pixel 1 to 2). */
+  double dyc[iMAXNUMPIX]; /* The numbering of the pixels in these arrays starts at 0! */
+  double dxpointcorr_deg; /* correction of the pixel coordinates; to be added to dxc[] to get correct value */
+  double dypointcorr_deg; /* correction of the pixel coordinates; to be added to dxc[] to get correct value */
+  double di[iMAXNUMPIX]; /* i coordinate in JCs bi-axis hexagonal coordinate system */
+  double dj[iMAXNUMPIX]; /* j coordinate in JCs bi-axis hexagonal coordinate system */
+ 
+};
+
+
+//=------------------------------------------------------------
+//!@subsection Pre-defined file names.
+
+//!@{
+
+#define QE_FILE     "qe.dat"
+
+//!@}
+
+//=------------------------------------------------------------
+//!@subsection Prototypes of functions.
+
+//!@{
+
+//++
+// prototypes
+//--
+
+#define ONoff(x)  ((x==TRUE) ? "[ ON ]" : "[ off]")
+
+// Under Linux, the nint function does not exist, so we have to define it.
+#define nint(x)  ((int)floor((x)+0.5))
+
+void present(void);
+void usage(void);
+void clean(void);
+void log(const char *funct, char *fmt, ...);
+void error(const char *funct, char *fmt, ...);
+int isA( char * s1, const char * flag );
+void read_ct_file(void);
+int igen_pixel_coordinates(struct camera *cam);
+void read_pixels(struct camera *cam); 
+int pixels_are_neig(int pix1, int pix2);
+int bpoint_is_in_pix(double dx, double dy, int ipixnum, struct camera *pcam); 
+float  dist_r_P(float a, float b, float c, 
+                float l, float m, float n,
+                float x, float y, float z);
+     
+//!@}
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+
+/*
+ *$Log: not supported by cvs2svn $
+ *Revision 1.3  1999/10/22 15:32:56  petry
+ *tidied-up version, really sent to H.K. and N.M., 22-10-99
+ *
+ *Revision 1.2  1999/10/22 15:01:28  petry
+ *version sent to H.K. and N.M. on Fri Oct 22 1999
+ *
+ *Revision 1.1.1.1  1999/10/21 16:35:10  petry
+ *first synthesised version
+ *
+ * Revision 1.8  1999/03/15  14:59:06  gonzalez
+ * camera-1_1
+ *
+ * Revision 1.7  1999/03/02  09:56:11  gonzalez
+ * *** empty log message ***
+ *
+ * Revision 1.6  1999/01/14  17:32:40  gonzalez
+ * Added to camera the STDIN input option (data_from_input)
+ *
+ */
+
+//!@}
+//=EOF
+
Index: /branches/start/MagicSoft/Simulation/Detector/Camera/config.mk.linux-gnu
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Camera/config.mk.linux-gnu	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Camera/config.mk.linux-gnu	(revision 4308)
@@ -0,0 +1,69 @@
+##################################################################
+#
+# config.mk
+#
+# @file        config.mk
+# @title       small configuration file for Makefile
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the camera program
+# Notes:   
+#    
+#---------------------------------------------------------------
+# $RCSfile: config.mk.linux-gnu,v $
+# $Revision: 1.1.1.1 $
+# $Author: harald $ 
+# $Date: 1999-11-05 11:59:32 $
+##################################################################
+# @maintitle
+
+# @code
+
+# program
+
+PROGRAM = camera
+
+# compilers
+
+CC            = g++
+CXX           = g++
+F77           = f77
+
+DOCUM         = ${HOME}/detector/sus/sus
+
+# includes
+
+INCLUDE         = ../include-GENERAL
+INCLUDE_COR     = ../include-CORSIKA
+INCLUDE_MC      = ../include-MC
+INCLUDE_TRIGGER = ../include-MTrigger
+INCLUDE_EVITA   = ../../../include-Classes
+INCLUDE_REFL    = ../Reflector
+INCLUDE_ROOT    = ${ROOTSYS}/include
+INCLUDE_g++     = /usr/include/g++
+
+#OPTIM    = -O2 -ieee  
+OPTIM    = -O2 -Wall -fno-rtti -fno-exceptions -fPIC
+DEBUG    = -g 
+
+# libraries
+
+RANLIBDIR = ../lib
+CERNDIR = /cern
+
+# system
+
+SYSTEM  = linux
+
+# uncomment this for quiet compilation
+
+.SILENT:
+
+# @endcode
+##EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Camera/creadparam.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Camera/creadparam.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Camera/creadparam.cxx	(revision 4308)
@@ -0,0 +1,856 @@
+//=//////////////////////////////////////////////////////////////////////
+//=
+//= creadparam            
+//=
+//= @file        creadparam.cxx
+//= @desc        Reading of parameters file
+//= @author      J C Gonzalez
+//= @email       gonzalez@mppmu.mpg.de
+//= @date        Thu May  7 16:24:22 1998
+//=
+//=----------------------------------------------------------------------
+//=
+//= Created: Thu May  7 16:24:22 1998
+//= Author:  Jose Carlos Gonzalez
+//= Purpose: Program for reflector simulation
+//= Notes:   See files README for details
+//=    
+//=----------------------------------------------------------------------
+//=
+//= $RCSfile: creadparam.cxx,v $
+//= $Revision: 1.1.1.1 $
+//= $Author: harald $ 
+//= $Date: 1999-11-05 11:59:34 $
+//=
+//=//////////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+//!@section Source code of |creadparam.cxx|.
+
+/*!@"
+  
+  This section describes briefly the source code for the file
+  |creadparam.cxx|. This file is very closely related to the file
+  |readparams.cxx| from the |reflector| program. Actually, this later
+  file was the ancestror of the file you are looking at.
+
+  All the defines it uses are located in the file |creadparam.h|. In
+  the first one we can see the definitions of the commands available
+  for the parameters file. We describe these commands in a later
+  section.
+  
+  @"*/
+
+//!@subsection Includes and Global variables definition.
+
+/*!@"
+  
+  All the defines are located in the file {\tt creadparam.h}.
+
+  @"*/
+ 
+//!@{
+
+#include "creadparam.h"
+
+//!@}
+
+//!@subsection Definition of global variables.
+
+/*!@"
+
+  Here we define the global variables where the values from the
+  parameters file are stored.
+  
+  @"*/
+
+//!@{
+
+static char Input_filename[PATH_MAX_LENGTH];  //@< input filename
+static char Output_filename[PATH_MAX_LENGTH]; //@< output filename
+static char Data_filename[PATH_MAX_LENGTH];   //@< data filename
+static char DIAG_filename[PATH_MAX_LENGTH];  //@< data filename
+static char ROOT_filename[PATH_MAX_LENGTH];   //@< data filename
+static char CT_filename[PATH_MAX_LENGTH];     //@< name of the CT def. file
+static int simulateNSB = TRUE;                //@< Will we simulate NSB?
+static int anaPixels = -1;      //@< number of pixels for the analysis
+static float meanNSB;           //@< NSB mean value (per pixel)
+static float qThreshold;        //@< Threshold value
+static float qTailCut;          //@< Tail Cut value
+static int nIslandsCut;         //@< Islands Cut value
+static int countIslands = TRUE; //@< Will we count the islands?
+static long int Seeds[2]; 
+static int *Skip;
+static int nSkip=0;
+static int Data_From_STDIN = FALSE;
+static int Read_Phe = FALSE;
+static int Read_Phe_All = FALSE;
+static int Write_All_Images = FALSE;
+static int Write_All_Data = FALSE;
+static int Select_Energy = TRUE;
+static float Select_Energy_le = 0.0;           //@< GeV
+static float Select_Energy_ue = 100000.0;      //@< GeV
+static float Trigger_Radius;
+static int Set_Trigger_Radius=FALSE;
+static float fCorrection;
+static int Apply_Correction=FALSE;
+//!@}
+
+//!@subsection The function |readparam()|.
+
+//!-----------------------------------------------------------
+// @name  creadparam
+//                                                
+// @desc  read parameters from the stdin / parameters file
+//
+// @var   *filename  Name of the parameters file (NULL->STDIN)
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function
+
+//!@{ 
+void 
+readparam(char * filename)
+{
+  char sign[] = GLUE_postp( PROGRAM, VERSION ); //@< initialize sign
+  char line[LINE_MAX_LENGTH];    //@< line to get from the stdin
+  char token[ITEM_MAX_LENGTH];   //@< a single token
+  int i, j;                      //@< dummy counters
+  ifstream ifile;
+
+  // use cin or ifile (reading from STDIN or from parameters file?
+  if ( filename != NULL )
+    ifile.open( filename );
+
+  // get signature
+  if ( filename != NULL )
+    ifile.getline(line, LINE_MAX_LENGTH);
+  else
+    cin.getline(line, LINE_MAX_LENGTH);
+  line[strlen(SIGNATURE)] = '\0';
+  strcpy(line, sign);
+  if (strcmp(sign, SIGNATURE) != 0) {
+    cerr << "ERROR: Signature of parameters file is not correct\n";
+    cerr << '"' << sign << '"' << '\n';
+    cerr << "should be: " << SIGNATURE << '\n';
+    exit(1);
+  }
+
+  // loop till the "end" directive is reached
+  int is_end = FALSE;
+  while (! is_end) {          
+
+    // get line from file or stdin
+    if ( filename != NULL )
+      ifile.getline(line, LINE_MAX_LENGTH);
+    else
+      cin.getline(line, LINE_MAX_LENGTH);
+
+    // skip comments (start with '#')
+    if (line[0] == '#')
+      continue;
+
+    // show user comments (start with '>')
+    if (line[0] == '>') {
+      cout << line << endl << flush;
+      continue;
+    }
+
+    // look for each item at the beginning of the line
+    for (i=0; i<=end_file; i++) 
+      if (strstr(line, ITEM_NAMES[i]) == line)
+        break;
+        
+    // if it is not a valid line, just ignore it
+    if (i == end_file+1) {
+      cerr << "Skipping unknown token in [" << line << "]\n";
+      continue;
+    }
+
+    // case block for each directive
+    switch ( i ) {
+
+    case input_file:          //@< name of the input file
+          
+      // get the name of the input_file from the line
+      sscanf(line, "%s %s", token, Input_filename);
+
+      break;
+
+    case output_file:         //@< name of the output file
+          
+      // get the name of the output_file from the line
+      sscanf(line, "%s %s", token, Output_filename);
+
+      break;
+
+    case data_file:           //@< name of the data file
+          
+      // get the name of the data_file from the line
+      sscanf(line, "%s %s", token, Data_filename);
+
+      break;
+
+    case diag_file:          //@< name of the DIAG file
+          
+      // get the name of the data_file from the line
+      sscanf(line, "%s %s", token, DIAG_filename);
+      cout << '[' << DIAG_filename << ']' << endl << flush;
+
+      break;
+
+    case root_file:          //@< name of the ROOT file
+          
+      // get the name of the data_file from the line
+      sscanf(line, "%s %s", token, ROOT_filename);
+      cout << '[' << ROOT_filename << ']' << endl << flush;
+
+      break;
+
+    case ct_file:             //@< name of the telescope file
+          
+      // get the name of the ct_file from the line
+      sscanf(line, "%s %s", token, CT_filename);
+
+      break;
+
+    case nsb_on:              //@< simulate NSB?
+          
+      // we will simulate NSB
+      simulateNSB = TRUE;
+          
+      break;
+
+    case nsb_off:             //@< simulate NSB?
+          
+      // we will NOT simulate NSB
+      simulateNSB = FALSE;
+          
+      break;
+
+    case nsb_mean:            //@< value of <NSB> per pixel
+          
+      // get value of <NSB> (in photons)
+      sscanf(line, "%s %f", token, &meanNSB);
+      simulateNSB = TRUE;
+
+      break;
+
+    case ana_pixels:          //@< number of pixels for analysis
+          
+      // number of pixels for analysis
+      sscanf(line, "%s %d", token, &anaPixels);
+
+      break;
+
+    case threshold:           //@< value of threshold for trigger (q0)
+          
+      // get value of threshold (in ph.e.)
+      sscanf(line, "%s %f", token, &qThreshold);
+
+      break;
+
+    case tail_cut:            //@< value of tail_cut (t0)
+          
+      // get value of tail_cut (in ph.e.)
+      sscanf(line, "%s %f", token, &qTailCut);
+
+      break;
+
+    case islands_on:          //@< DO count islands
+          
+      // DO count islands
+      countIslands = TRUE;
+          
+      break;
+
+    case islands_off:         //@< do NOT count islands
+          
+      // do NOT count islands
+      countIslands = FALSE;
+          
+      break;
+
+    case islands_cut:         //@< value of islands_cut (i0)
+          
+      // get value of islands_cut (in ph.e.)
+      sscanf(line, "%s %d", token, &nIslandsCut);
+      countIslands = TRUE;
+
+      break;
+
+    case seeds:               //@< values of seeds for random numbers
+          
+      // get seeds
+      sscanf(line, "%s %ld %ld", token, &Seeds[0], &Seeds[1]);
+
+      break;
+
+    case skip:                //@< skip pathological showers
+          
+      // get showers to skip
+      cin >> nSkip;
+      Skip = new int[nSkip];
+      for (j=0; j<nSkip; ++j) {
+        cin >> Skip[j];
+        cout << Skip[j] << endl << flush;
+      }
+
+      break;
+
+    case data_from_stdin:     //@< to read data from stdin
+          
+      // change boolean value
+      Data_From_STDIN = TRUE;
+
+      break;
+
+    case read_phe:            //@< to read PHE files
+          
+      // change boolean value
+      Read_Phe = TRUE;
+
+      break;
+
+    case read_phe_all:        //@< to read PHE files from write_all_images
+          
+      // change boolean value
+      Read_Phe_All = TRUE;
+
+      break;
+
+    case write_all_images:    //@< to write ALL the images
+          
+      // change boolean value
+      Write_All_Images = TRUE;
+
+      break;
+
+    case write_all_data:      //@< to write single pixel data
+          
+      // change boolean value
+      Write_All_Data = TRUE;
+
+      break;
+
+    case select_energy:       //@< value of islands_cut (i0)
+          
+      // get energy range
+      sscanf(line, "%s %f %f", token, &Select_Energy_le, &Select_Energy_ue);
+      Select_Energy = TRUE;
+
+      break;
+
+    case trigger_radius:      //@< set radius of trigger area 
+          
+      // get trigger radius
+      sscanf(line, "%s %f", token, &Trigger_Radius);
+      Set_Trigger_Radius = TRUE;
+
+      break;
+
+    case correction:          //@< apply a kind of correction to pixel values
+          
+      // get trigger radius
+      sscanf(line, "%s %f", token, &fCorrection);
+      Apply_Correction = TRUE;
+
+      break;
+
+    case end_file:            //@< end of the parameters file
+
+      // show a short message
+      is_end = TRUE;
+
+      break;
+
+    } // switch ( i ) 
+
+  } // while (! is_end)
+
+  // after the loop is finished, return to the main function
+  return;
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_input_filename
+//                                                
+// @desc get name of the input file
+//
+// @return   Name of the Input file
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+char *
+get_input_filename(void)
+{
+  return (Input_filename);
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_output_filename
+//                                                
+// @desc get name of the output file
+//
+// @return   Name of the Output file
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+char *
+get_output_filename(void)
+{
+  return (Output_filename);
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_data_filename
+//                                                
+// @desc get name of the data file
+//
+// @return   Name of the Data file
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+char *
+get_data_filename(void)
+{
+  return (Data_filename);
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_diag_filename
+//                                                
+// @desc get name of the diagnostic output file
+//
+// @return   Name of the DIAG file
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+char *
+get_diag_filename(void)
+{
+  return (DIAG_filename);
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_root_filename
+//                                                
+// @desc get name of the ROOT file
+//
+// @return   Name of the ROOT file
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+char *
+get_root_filename(void)
+{
+  return (ROOT_filename);
+}
+//!@}
+
+
+
+//!-----------------------------------------------------------
+// @name get_ct_filename
+//                                                
+// @desc get name of CT definition file
+//
+// @return   Name of the CT definition file
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+char *
+get_ct_filename(void)
+{
+  return (CT_filename);
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_nsb
+//                                                
+// @desc are we going to simulate NSB ?
+//
+// @var  *n  Mean value for the NSB (ph.e./pixel)
+// @return   TRUE: we'll simulate NSB; FALSE: we won't
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_nsb(float *n)
+{
+  *n = meanNSB;
+  return ( simulateNSB );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_threshold   
+//                                                
+// @desc get threshold value
+//
+// @return   Value of the threshold q$_0$
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+float 
+get_threshold(void)
+{
+  return( qThreshold );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_tail_cut   
+//                                                
+// @desc get tail cut value
+//
+// @return   Value for the Tail-cut
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+float 
+get_tail_cut(void)
+{
+  return( qTailCut );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_islands_cut
+//                                                
+// @desc are we going to count the islands ?
+//
+// @var  *n  Cut on islands number
+// @return   TRUE: we'll count the islands; FALSE: we won't
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_islands_cut(int *n)
+{
+  *n = nIslandsCut;
+  return ( countIslands );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_ana_pixels
+//                                                
+// @desc number of pixels for the analysis
+//
+// @return  Number of pixels to use in the image parameters
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_ana_pixels(void)
+{
+  return ( anaPixels );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_seeds
+//                                                
+// @desc are we going to count the islands ?
+//
+// @var  *n  Number of the seed
+// @return   N-th random-number Seed
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+long int
+get_seeds(int n)
+{
+  return ( Seeds[n] );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_skip_showers
+//                                                
+// @desc get list of showers to skip
+//
+// @var *s1  Pointer to a vector of number of showers
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+void 
+get_skip_showers( int *s )
+{
+  int i;
+  for (i=0; i<nSkip; ++i)
+    s[i] = Skip[i];
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_nskip_showers
+//                                                
+// @desc get number of showers to skip
+//
+// @return  Number of showers to be skipped
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int 
+get_nskip_showers( void )
+{
+  return( nSkip );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_data_from_stdin
+//                                                
+// @desc get whether we will read the data from the STDIN
+//
+// @return  TRUE: we'll read data from STDIN; FALSE: we won't
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_data_from_stdin(void)
+{
+  return ( Data_From_STDIN );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_read_phe
+//                                                
+// @desc get whether we will read PHE files
+//
+// @return  TRUE: we'll read PHE files; FALSE: we won't
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_read_phe(void)
+{
+  return ( Read_Phe );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_read_phe_all
+//                                                
+// @desc get whether we will read PHE files, with write_all_images
+//
+// @return  TRUE: we'll do it; FALSE: we won't
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_read_phe_all(void)
+{
+  return ( Read_Phe_All );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name write_all_images
+//                                                
+// @desc write all images to .phe, even those without trigger
+//
+// @return  TRUE: we'll write everything; FALSE: we won't
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_write_all_images(void)
+{
+  return ( Write_All_Images );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name write_all_data
+//                                                
+// @desc write single pixel data to file .dat
+//
+// @return  TRUE: we'll write everything; FALSE: we won't
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_write_all_data(void)
+{
+  return ( Write_All_Data );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_select_energy                                      
+//
+// @desc return energy range allowed for showers from .phe file
+//
+// @var *le  Lower limit in the allowed energy range
+// @var *ue  Lower limit in the allowed energy range
+// @return  TRUE: we make selection on the energy; FALSE: we don't
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_select_energy(float *le, float *ue)
+{
+  *le = Select_Energy_le;
+  *ue = Select_Energy_ue;
+  return ( Select_Energy );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_trigger_radius                                  
+//
+// @desc return the radius of the trigger area in the camera (if set)
+//
+// @var *radius  Radius of the trigger area in the camera
+// @return  TRUE: we choose a given radius for the trigger area
+//
+// @date Fri May  7 11:07:43 MET DST 1999
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int get_trigger_radius(float *radius)
+{
+  *radius = Trigger_Radius;
+  return ( Set_Trigger_Radius );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_trigger_radius                                  
+//
+// @desc return the radius of the trigger area in the camera (if set)
+//
+// @var *radius  Radius of the trigger area in the camera
+// @return  TRUE: we choose a given radius for the trigger area
+//
+// @date Fri May  7 11:07:43 MET DST 1999
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int get_correction(float *corr)
+{
+  *corr = fCorrection;
+  return ( Apply_Correction );
+}
+//!@}
+
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+//
+// $Log: not supported by cvs2svn $
+// Revision 1.2  1999/10/22 15:01:28  petry
+// version sent to H.K. and N.M. on Fri Oct 22 1999
+//
+// Revision 1.1.1.1  1999/10/21 16:35:11  petry
+// first synthesised version
+//
+// Revision 1.6  1999/03/15  14:59:08  gonzalez
+// camera-1_1
+//
+// Revision 1.5  1999/03/02  09:56:12  gonzalez
+// *** empty log message ***
+//
+// Revision 1.4  1999/01/14  17:32:41  gonzalez
+// Added to camera the STDIN input option (data_from_input)
+//
+//!@}
+
+//=EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Camera/creadparam.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Camera/creadparam.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Camera/creadparam.h	(revision 4308)
@@ -0,0 +1,258 @@
+//=//////////////////////////////////////////////////////////////////////
+//=
+//= creadparam                
+//=
+//= @file        creadparam.h
+//= @desc        Header file
+//= @author      J C Gonzalez
+//= @email       gonzalez@mppmu.mpg.de
+//= @date        Thu May  7 16:24:22 1998
+//=
+//=----------------------------------------------------------------------
+//=
+//= Created: Thu May  7 16:24:22 1998
+//= Author:  Jose Carlos Gonzalez
+//= Purpose: Program for reflector simulation
+//= Notes:   See files README for details
+//=    
+//=----------------------------------------------------------------------
+//=
+//= $RCSfile: creadparam.h,v $
+//= $Revision: 1.1.1.1 $
+//= $Author: harald $ 
+//= $Date: 1999-11-05 11:59:34 $
+//=
+//=//////////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+//!@section Source code of |creadparam.h|.
+
+/*!@"
+
+  In this section you can find the source code for the file
+  |creadparam.h|.  This file is mainly needed by
+  |creadparam.cxx|. Here is located the definition of the commands you
+  can use in the parameters file. In this file, the first line must be
+  |camera 'version'|, where |'version'| is the appropiate version of
+  the output format (NOT the version of the camera program) which can
+  read the commands written in that parameters file. You cannot mix
+  parameters files and executables with different versions. The
+  current version is |camera 0.2|.
+
+  The commands now available for the parameters file are:
+
+  @itemize
+  
+  @- |input_file| filename :    
+     Sets the name of the input file (|.rfl|).
+  @- |output_file| filename :    
+     Sets the name of the output file (|.phe|).
+  @- |ct_file| filename :    
+     Sets the name of the CT definition file (|.def|).
+  @- |data_file| filename :    
+     Sets the name of the output data file (|.dat|).
+  @- |nsb_on| :    
+     Activates the NSB simulation. This is the default.
+  @- |nsb_off| :    
+     De-activates the NSB simulation.
+  @- |nsb_mean| number :    
+     Sets the mean value for the NSB.
+     Default value: 6 for CT1, 6 for MAGIC.
+     This implies always |nsb_on|.
+  @- |threshold| number :    
+     Sets the Threshold value q0. Default value: 10.
+  @- |tail_cut| number : 
+     Sets the Tail-Cut value.
+     Default value: 7.
+  @- |islands_cut| number :    
+     Sets the Islands-Cut value i0.
+     Default value: 10.
+  @- |end_file|
+     Last command in the parameters file.
+
+  @enditemize
+
+  @ignoreHTML
+  A parameters file (a small one) looks like this:
+
+  |camera 0.2|
+
+  |input_file    gm100-500.rfl|
+
+  |output_file   gm100-500.phe|
+
+  |output_file   gm100-500.dat|
+
+  |ct_file       magic.def|
+
+  |threshold     10.0|
+
+  |tail_cut      7.0|
+
+  |nsb_mean      5.0|
+
+  |end_file|
+  @endignoreHTML
+
+@"*/
+
+//!@{
+
+#ifndef _creadparam_
+#define _creadparam_
+
+#ifndef _this_
+#define _this_ creadparam
+#endif
+
+//!@}
+
+//!@subsection Include files.
+
+//!@{
+
+#include <iostream.h>
+#include <fstream.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+#include <float.h>
+
+#include "jcmacros.h"
+#include "jcdebug.h"
+
+#include "camera-v.h"
+
+//!@}
+
+//!@subsection Macro-definitions, and constants.
+
+//!@{
+
+// now we define the list ITEM_LIST of possible items in
+// the parameters file. note that they are functions of
+// T(x). we will change T(x) to be the real item or the
+// string of this item when needed
+
+#define ITEM_LIST   /* LIST OF ITEMS IN THE PARAMETERS FILE */     \
+T(input_file),      /* input file */                              \
+T(output_file),     /* output file */                              \
+T(data_file),       /* data file */                              \
+T(diag_file),       /* diagnostic output file (ROOT format) */   \
+T(root_file),       /* ROOT file */                              \
+T(ct_file),         /* file with the characteristics of the CT */  \
+T(ana_pixels),      /* size of the camera for parameters calculation */  \
+T(nsb_on),          /* activates NSB simulation */ \
+T(nsb_off),         /* de-activates NSB simulation */ \
+T(nsb_mean),        /* mean value of NSB contribution per pixel */ \
+T(threshold),       /* value of q0 for trigger */ \
+T(tail_cut),        /* value of tail cut (t0) */ \
+T(islands_on),      /* DO count islands */ \
+T(islands_off),     /* do NOT count islands */ \
+T(islands_cut),     /* value of islands cut (i0) */ \
+T(seeds),           /* seeds for random number generation */ \
+T(data_from_stdin), /* to read data from STDIN */ \
+T(skip),            /* skip pathological showers */ \
+T(read_phe_all),    /* id., but was processed with write_all_images */ \
+T(read_phe),        /* read an already camera processed file */ \
+T(write_all_images),/* write to file .phe ALL images (even w.o. trigger)*/ \
+T(write_all_data),  /* write to file .dat ALL image data */ \
+T(select_energy),   /* energy range to read: only for .phe files */ \
+T(trigger_radius),  /* trigger radius for the camera */ \
+T(correction),      /* factor for correction in the pixel values */ \
+T(end_file)         /* end of the parameters file */
+  
+#define T(x)  x             // define T() as the name as it is
+
+enum ITEM_TYPE {
+  ITEM_LIST
+};
+
+#undef T
+
+#define T(x)  #x              // define T() as the string of x
+
+const char *const ITEM_NAMES[] = {
+  ITEM_LIST
+};
+
+#undef T
+
+#define LINE_MAX_LENGTH  400
+#define ITEM_MAX_LENGTH  40
+#define PATH_MAX_LENGTH  120
+
+// mean values of NSB contribution per pixel
+
+static const float Mean_NSB_MAGIC = 5.0; //@< for MAGIC
+static const float Mean_NSB_CT1 = 5.0;   //@< for CT1
+
+//!@}
+
+//!@subsection Prototypes of functions.
+
+//!@{
+
+//++
+// prototypes
+//--
+
+void readparam(char * filename);
+char *get_input_filename(void);
+char *get_output_filename(void);
+char *get_data_filename(void);
+char *get_diag_filename(void);
+char *get_root_filename(void);
+char *get_ct_filename(void);
+int get_nsb(float *n);
+float get_threshold(void);
+float get_tail_cut(void);
+int get_islands_cut(int *n);
+long int get_seeds(int n);
+int get_ana_pixels(void);
+void get_skip_showers( int *s ); 
+int get_nskip_showers( void ); 
+int get_data_from_stdin(void);
+int get_read_phe(void);
+int get_read_phe_all(void);
+int get_write_all_images(void);
+int get_write_all_data(void);
+int get_select_energy(float *le, float *ue);
+int get_trigger_radius(float *radius);
+int get_correction(float *corr);
+//!@}
+
+//!@{
+
+#endif // ! _creadparam_
+
+//!@}
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+
+/*
+ * $Log: not supported by cvs2svn $
+ * Revision 1.2  1999/10/22 15:01:29  petry
+ * version sent to H.K. and N.M. on Fri Oct 22 1999
+ *
+ * Revision 1.1.1.1  1999/10/21 16:35:11  petry
+ * first synthesised version
+ *
+ * Revision 1.7  1999/03/15  14:59:09  gonzalez
+ * camera-1_1
+ *
+ * Revision 1.6  1999/03/02  09:56:13  gonzalez
+ * *** empty log message ***
+ *
+ * Revision 1.5  1999/01/14  17:32:43  gonzalez
+ * Added to camera the STDIN input option (data_from_input)
+ *
+ */
+
+//!@}
+//=EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Camera/moments.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Camera/moments.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Camera/moments.cxx	(revision 4308)
@@ -0,0 +1,728 @@
+//=//////////////////////////////////////////////////////////////////////
+//=
+//= moments            
+//=
+//= @file        moments.cxx
+//= @desc        Calculation of image parameters
+//= @author      J C Gonzalez
+//= @email       gonzalez@mppmu.mpg.de
+//= @date        Thu May  7 16:24:22 1998
+//=
+//=----------------------------------------------------------------------
+//=
+//= Created: Thu May  7 16:24:22 1998
+//= Author:  Jose Carlos Gonzalez
+//= Purpose: Program for reflector simulation
+//= Notes:   See files README for details
+//=    
+//=----------------------------------------------------------------------
+//=
+//= $RCSfile: moments.cxx,v $
+//= $Revision: 1.1.1.1 $
+//= $Author: harald $ 
+//= $Date: 1999-11-05 11:59:33 $
+//=
+//=//////////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+//!@section Source code of |moments.cxx|.
+
+/*!@{
+
+  This section describes briefly the source code for the file
+  |moments.cxx|. All the defines it uses are located in the file
+  |moments.h|.
+
+  @"*/
+
+//!@subsection Includes and Global variables definition.
+
+/*!@" 
+
+  All the defines are located in the file |moments.h|.
+
+  @"*/
+ 
+//!@{
+
+#include "moments.h"
+
+//!@}
+
+//!@subsection Definition of global variables.
+
+//!@{
+
+static int npix;                 //@< number of pixels
+static float *q;                 //@< charges in the pixels
+static float xm, ym;             //@< centroid (used in moments and lenwid)
+
+//@: structure with information about the image
+static Moments_Info m;           
+
+//@: structure with information about islands
+static Islands_Info is;          
+
+//@: structure with information about lenwid
+static LenWid_Info  lw;          
+
+//!@}
+
+//!@subsection The function |moments()|.
+
+//!-----------------------------------------------------------
+// @name moments               
+//                                             
+// @desc calculate moments on the image
+//
+// @var  n           Number of pixels
+// @var  *image      Vector of ph.e.s in pixels
+// @var  **pix       Array with information about the pixels
+// @var  plateScale  Plate scale for the CT in use
+// @var  flag        1: initialize; other: normal 
+//
+// @return           Pointer to structure Moments_Info
+//
+// @date Mon Sep 14 15:22:44 MET DST 1998
+//------------------------------------------------------------
+// @function
+
+//!@{
+Moments_Info * 
+moments( int n, float *image, float **pix, 
+         float plateScale, int flag )
+{
+  register int i, k;
+
+  float x, y;
+  float x2m, xym, y2m;
+  float x3m, x2ym, xy2m, y3m;
+  float zz, zd, zu, zv;
+  float ax, ay, unitx, unity, sigmaax;
+  float sx2, sxy, sy2;
+  float sx3, sx2y, sxy2, sy3;
+  
+  if ( flag == 1 ) {
+    q = new float[n];
+    is.fi = new float[n];
+    is.vislands = new float[n];
+    is.islands = new int[n];
+    is.isl = new int[n];
+    for (i=1; i<n; ++i) {
+      q[i] = is.fi[i] = is.vislands[i] = 0.0;
+      is.islands[i] = is.isl[i] = 0;
+    }
+    return &m;
+  } else {
+    memcpy( q, image, sizeof(float) * n );
+    /*
+      for (i=1; i<n; ++i) 
+      cout << q[i] << '\n';
+      cout << endl << flush;
+    */
+  }
+
+  // save number of pixels
+  npix = n;
+  
+  // calculate sum of values
+  xm = ym = 0.0;
+  x2m = xym = y2m = 0.0;
+  x3m = x2ym = xy2m = y3m = 0.0;
+  m.charge = 0.0;
+  
+  for (i=0; i<npix; ++i)
+    if ( q[i] > 0.0 ) {
+      x = pix[i][0];
+      y = pix[i][1];
+      xm += x * q[i];
+      ym += y * q[i];
+      x2m += x * x * q[i];
+      xym += x * y * q[i];
+      y2m += y * y * q[i];
+      x3m  += x * x * x * q[i];
+      x2ym += x * x * y * q[i];
+      xy2m += x * y * y * q[i];
+      y3m  += y * y * y * q[i];
+      m.charge += q[i];
+    }
+
+  xm *= plateScale;
+  ym *= plateScale;
+  x2m *= plateScale * plateScale;
+  xym *= plateScale * plateScale;
+  y2m *= plateScale * plateScale;
+  x3m  *= plateScale * plateScale * plateScale;
+  x2ym *= plateScale * plateScale * plateScale;
+  xy2m *= plateScale * plateScale * plateScale;
+  y3m  *= plateScale * plateScale * plateScale;
+  
+  //++++++++++++++++++++++++++++++++++++++++++++++++++ 
+  // extremes and charges
+  //--------------------------------------------------
+
+  for (i=0; i<10; ++i) 
+    m.maxs[i] = 0.0;
+
+  for (i=0; i<npix; ++i) {
+    if ( q[i] > m.maxs[0] ) {
+      for (k=9; k>0; --k)
+        m.maxs[k] = m.maxs[k-1];
+      for (k=9; k>0; --k)
+        m.nmaxs[k] = m.nmaxs[k-1];
+      m.maxs[0] = q[i];
+      m.nmaxs[0] = i;
+    }
+  }
+
+  // calculates weighted position of the maximum (6 pixels)
+
+  m.xmax = m.ymax = m.smax = 0.0;
+
+  for (i=0; i<6; ++i) {
+    m.xmax += pix[m.nmaxs[i]][0] * q[m.nmaxs[i]];
+    m.ymax += pix[m.nmaxs[i]][1] * q[m.nmaxs[i]];
+    m.smax += q[m.nmaxs[i]];
+  }
+
+  if (m.smax==0.) m.smax=1.;
+  if (m.charge==0.) m.charge=1.;
+
+  m.xmax = m.xmax * plateScale / m.smax;
+  m.ymax = m.ymax * plateScale / m.smax;
+
+  // calculate concentrations with 2,3,4...10 pixels
+
+  m.conc[0] = q[ m.nmaxs[0] ] + q[ m.nmaxs[1] ];
+
+  for (i=2; i<10; ++i) 
+    m.conc[i-1] = m.conc[i-2] + q[ m.nmaxs[i] ];
+
+  for (i=0; i<9; ++i) 
+    m.conc[i] /= m.charge;  
+  
+  //++++++++++++++++++++++++++++++++++++++++++++++++++ 
+  // 1st moments
+  //--------------------------------------------------
+
+  xm /= m.charge;
+  ym /= m.charge;
+
+  m.m1x = xm;
+  m.m1y = ym;
+
+  //++++++++++++++++++++++++++++++++++++++++++++++++++
+  // 2nd moments
+  //--------------------------------------------------
+
+  x2m /= m.charge;
+  xym /= m.charge;
+  y2m /= m.charge;
+
+  // around the origin
+  m.m2xx = x2m;
+  m.m2xy = xym;
+  m.m2yy = y2m;
+  
+  // around the mean
+  sx2 = x2m - SQR(xm);
+  sxy = xym - xm * ym;
+  sy2 = y2m - SQR(ym);
+
+  m.m2cxx = sx2;
+  m.m2cxy = sxy;
+  m.m2cyy = sy2;
+
+  //++++++++++++++++++++++++++++++++++++++++++++++++++
+  // 3rd moments
+  //--------------------------------------------------
+
+  x3m  /= m.charge;
+  x2ym /= m.charge;
+  xy2m /= m.charge;
+  y3m  /= m.charge;
+
+  // around the origin
+  m.m3xxx = x3m;
+  m.m3xxy = x2ym;
+  m.m3xyy = xy2m;
+  m.m3yyy = y3m;
+
+  // around the mean
+  sx3  = x3m  - 3 * x2m * xm + 2 * xm * xm * xm;
+  sx2y = x2ym - 2 * xym * xm + 2 * xm * xm * ym - x2m * ym;
+  sxy2 = xy2m - 2 * xym * ym + 2 * xm * ym * ym - y2m * xm;
+  sy3  = y3m  - 3 * y2m * ym + 2 * ym * ym * ym;
+
+  m.m3cxxx = x3m;
+  m.m3cxxy = x2ym;
+  m.m3cxyy = xy2m;
+  m.m3cyyy = y3m;
+
+  //++++++++++++++++++++++++++++++++++++++++++++++++++ 
+  // hillas' parameters
+  //--------------------------------------------------
+
+  zd = sy2 - sx2;
+  zz = sqrt( SQR(zd) + 4.*SQR( sxy ));;
+  if ( (zz < 1.e-6) || (sxy == 0.) ) {
+    m.dist = -1.;
+    return &m;
+  }
+  zu = 1.0 + zd / zz;
+  zv = 2.0 - zu;
+
+  /*
+    a = (zd + zz) / (2 * sxy);
+    b = ym - a * xm;
+    
+    m.length = sqrt( fabs( sx2 + 2 * a * sxy + a * a * sy2 ) / (1+a*a) );
+    m.width  = sqrt( fabs( sx2 - 2 * a * sxy + a * a * sy2 ) / (1+a*a) );
+    m.dist   = sqrt( SQR(xm) + SQR(ym) );
+    m.xdist  = sqrt( SQR( m.xmax ) + SQR( m.ymax ) );
+    m.azw    = sqrt( fabs( SQR(xm)* y2m - 2.* xm * ym * xym + x2m*SQR(ym) ) );
+    m.miss   = fabs( b / sqrt(1+a*a) );
+    m.alpha  = DEG( asin( m.miss / m.dist ) );
+  */
+  
+  m.length = sqrt( fabs(sx2 + sy2 + zz) / 2. );
+  m.width  = sqrt( fabs(sx2 + sy2 - zz) / 2. );
+  m.dist   = sqrt( SQR(xm) + SQR(ym) );
+  m.xdist  = sqrt( SQR(m.xmax) + SQR(m.ymax) );
+  m.azw    = sqrt( fabs( SQR(xm)*y2m - 2.*xm*ym*xym + x2m*SQR(ym) ) ) / m.dist;
+  m.miss   = sqrt( fabs( (SQR(xm)*zu + SQR(ym)*zv)/2. - (2.*sxy*xm*ym/zz) ) );
+  m.alpha  = DEG( asin( m.miss/m.dist ) );
+ 
+
+  /*
+    length = sqrt( fabs(sx2 + sy2 + zz)  /2. );
+    width  = sqrt( fabs(sx2 + sy2 - zz) / 2. );
+    dist   = sqrt( SQR(xm) + SQR(ym) );
+    xdist  = sqrt( SQR(m.xmax) + SQR(m.ymax) );
+    azw    = sqrt( fabs( SQR(xm)*y2m - 2.*xm*ym*xym + x2m*SQR(ym) ) );
+    miss   = sqrt( fabs( (SQR(xm)*zu + SQR(ym)*zv)/2. - (2.*sxy*xm*ym/zz) ) );
+    alpha  = DEG( asin(miss/dist) );
+  */  
+
+  //++++++++++++++++++++++++++++++++++++++++++++++++++
+  // asymetry
+  //--------------------------------------------------
+  
+  unitx = sqrt(0.5*zv);
+  unity = SGN( sxy )*sqrt(0.5*zu);
+
+  if ( m.xdist > 0.0 ) {
+
+    m.phi = acos((unitx*m.xmax + unity*m.ymax )/m.xdist);
+  
+    sigmaax = sx3*CUB(cos(m.phi)) + 3.0*sx2y*SQR(cos(m.phi))*sin(m.phi) +
+      3.0*sxy2*cos(m.phi)*SQR(sin(m.phi)) + sy3*CUB(sin(m.phi));
+    sigmaax = pow(fabs(sigmaax),0.3333333)*SGN(sigmaax);
+    
+    ax = sigmaax*unitx;
+    ay = sigmaax*unity;
+    m.asymx = (ax*m.xmax + ay*m.ymax)/(m.xdist*m.length*cos(m.phi));
+    m.asymy = 0.0;
+
+  } else {
+
+    m.phi=-1000.0;
+    m.asymx = -1000.0;
+    m.asymy = -1000.0;
+
+  }
+
+  /*
+	cout 
+    << "length "<< length << endl 
+    << "width  "<< width  << endl 
+    << "dist   "<< dist   << endl 
+    << "xdist  "<< xdist  << endl 
+    << "azw    "<< azw    << endl 
+    << "miss   "<< miss   << endl 
+    << "alpha  "<< alpha  << endl << flush;
+  */
+
+  return &m;
+}
+//!@}
+
+// @T \newpage
+
+//!@subsection The function |islands()|.
+
+//!-----------------------------------------------------------
+// @name islands
+//                                             
+// @desc implementation of the "islands" algorithm
+//
+// @var  n             Number of pixels
+// @var  f             Vector with the image (ph.e.s in pixels)
+// @var  **pixneig     Array with indices of neighbour pixels
+// @var  *npixneig     Vector with number of neighbours per pixel
+// @var  cleanning     TRUE: remove spurious islands
+// @var  ipixcut       Islands number cut
+//
+// @return           Pointer to structure Islands_Info
+//
+// @date Mon Sep 14 15:22:44 MET DST 1998
+//------------------------------------------------------------
+// @function
+
+//!@{
+Islands_Info *
+islands( int n, float *f, int **pixneig, int *npixneig,
+         int cleanning, int ipixcut)
+{ 
+  register int i;
+  int j, k;
+  int haschanged;
+  
+  is.numisl = 0;
+
+  memcpy( is.fi, f, sizeof(float) * n );
+
+  // be aware: here we use the side effect of ++
+  // there are two possibilities of using the operator ++:
+  // 1) a = ++i  => is.first increments i, then evaluates expresion
+  // 2) a = i++  => is.first evaluates expresion, then increments i
+  // we INTENTIONALLY use the second form
+
+  // algorithm to isolate/detect is.islands
+  j=1;
+  for (i=0; i<n; ++i) 
+    if ( is.fi[i]>0.0 ) {
+      is.isl[i] = j;
+      ++j;
+    } else {
+      is.isl[i] = 0;
+    }
+ 
+  haschanged = TRUE;
+  while ( haschanged ) {
+    haschanged = FALSE;
+    for (i=0; i<n; ++i)
+      if ( is.isl[i] > 0 )
+        for (j=0; (j<npixneig[i]) && (pixneig[i][j]>-1); ++j)
+          if ( (k=is.isl[pixneig[i][j]]) > 0 ) 
+            if ( is.isl[i] > is.isl[k] ) {
+              is.isl[i] = is.isl[k];
+              haschanged=TRUE;
+            } 
+  }
+
+  // count is.islands
+
+  for (i=0;i<n;++i)
+    is.islands[i] = 0;
+
+  for (i=0;i<n;++i)
+    is.vislands[i] = 0.0;
+
+  for (i=0;i<n;++i)
+    if (is.isl[i]>0) {
+      is.islands[is.isl[i]]++;
+      is.vislands[is.isl[i]] += is.fi[i];
+    }
+	
+  for (i=0,j=0,is.numisl=0; i<n; ++i) {
+    
+    if (is.islands[i]>0) {
+      j++;	
+      //cout << '#' << j << ':' << is.islands[i] << "  q=" << is.vislands[i]
+      //     << endl;
+      
+      if (is.islands[i] > ipixcut)
+        is.numisl++;
+    }
+    
+  }
+
+  cout << j << '[' << is.numisl << "] is.islands\n" << flush;
+
+  if ( cleanning ) {
+
+    // cleanning image: pixcut = 3 (any is.island with <= 3 pixels is removed
+    for (i=0;i<n;++i)
+      if (is.islands[is.isl[i]] <= ipixcut)
+        f[i] = 0.0;
+  }
+
+  return &is;
+}
+//!@}
+
+
+//!@subsection The function |lenwid()|.
+
+//!-----------------------------------------------------------
+// @name lenwid
+//                                             
+// @desc calculation of extended length and width params.
+//
+// @var  n           Number of pixels
+// @var  *image      Vector of ph.e.s in pixels
+// @var  **pix       Array with information about the pixels
+// @var  plateScale  Plate scale for the CT in use
+// @var  flag        1: initialize; other: normal 
+//
+// @return           Pointer to structure LenWid_Info
+//
+// @date Mon Sep 14 15:22:44 MET DST 1998
+//------------------------------------------------------------
+// @function
+
+//!@{
+LenWid_Info * 
+lenwid( int n, float *image, float **pix, 
+        float plateScale,
+        float max_distance)
+{
+  register int i, j, k;
+  float chi, phi;
+  float cp, sp;
+  float px1[2], px2[2], py1[2], py2[2];
+  float x1, x2, y1, y2;
+  int sign_of_semiplane;
+  float a, b, c;
+  float dist_to_axis;
+  float x, y;
+  float wsum[4];
+  float sum[4];
+  float weight;
+  float alpha;
+  float radius, radius2;
+
+  // calculate the radius of a circle with the same area of a pixel
+  
+  radius2 = max_distance*max_distance*cos(DEG30)*3.0 / M_PI;
+  radius = sqrt(radius2);
+  
+  /* @comment
+     We have now an image in the camera. In this image we have
+     defined two axes, Xe and Ye. Given the definition of alpha,
+     we define phi, which is the angle of the rotation that should
+     be applied to the original axis X and Y to get, together with
+     a translation to the point (xm, ym), the new axes Xe and Ye.
+     @endcomment */
+
+  chi = atan2(ym,xm);
+  phi = m.alpha + chi;
+
+  /* If the angle is phi, the rotation will be:
+   *           / cos(phi)   sin(phi)\
+   *  R(phi) = |                    |
+   *           \-sin(phi)   cos(phi)/ 
+   */
+
+  cp=cos(phi);
+  sp=sin(phi);
+
+  /* The reference points for each axis will be px1,px2 and py1,py2
+     We obtain these points by rotation and translation of the
+     points [+-1000,0] and [0,+-1000] */
+
+  /* Note! The rotation has to be R(-phi) */
+  
+  px1[0] = cp*1000 + xm;
+  px1[1] = sp*1000 + ym;
+    
+  px2[0] = -cp*1000 + xm;
+  px2[1] = -sp*1000 + ym;
+    
+  py1[0] = -sp*1000 + xm;
+  py1[1] = cp*1000 + ym;
+    
+  py2[0] = sp*1000 + xm;
+  py2[1] = -cp*1000 + ym;
+
+  /* Now we have finally two points for each of the axes.
+     We can now do, for each axis, and for each semi-plane
+     it defines, the loop over the pixels */
+
+  // Note that the possible values for sign_of_semiplane in the
+  // next loops are precisely -1 and +1 
+
+  for (i=0; i<4; ++i) {
+    wsum[i] = sum[i] = 0.;
+  }
+  
+  // first with the X, then with the Y
+
+  for (k=1; k<=2; ++k) {
+    
+    if ( k == 1) {
+      x1 = px1[0];
+      y1 = px1[1];
+      x2 = px2[0];
+      y2 = px2[1];
+    } else {
+      x1 = py1[0];
+      y1 = py1[1];
+      x2 = py2[0];
+      y2 = py2[1];
+    }
+  
+    for ( sign_of_semiplane = -1;
+          sign_of_semiplane < 2;
+          sign_of_semiplane += 2 ) {
+      
+      // loop on pixels
+      for ( i=0; i<n; ++i ) {
+        
+        // let's calculate the distance between the point and the axis
+        
+        x = pix[i][0];
+        y = pix[i][1];
+        
+        a = (y2 - y1);
+        b = (x1 - x2);
+        c = (x1 * (y1-y2) + y1 * (x2 - x1));
+      
+        dist_to_axis = (a*x + b*y + c) / sqrt(a*a+b*b);
+      
+        // we have THREE cases:
+      
+        // (A)
+        
+        // if distance to the axis if larger than pixel diameter,
+        // AND 
+        // the semiplane is the WRONG one  -> forget that pixel
+      
+        if ( (fabs(dist_to_axis) > max_distance) &&
+             (SGN(dist_to_axis) != sign_of_semiplane) )
+          continue;
+        
+        // (B)
+        
+        // if distance to the axis if larger than pixel diameter,
+        // AND 
+        // the semiplane is the GOOD one  -> add this pixel
+        
+        if ( (fabs(dist_to_axis) > max_distance) &&
+             (SGN(dist_to_axis) == sign_of_semiplane) ) {
+          
+          // here the sum
+          
+          weight = image[i];
+          j = k+sign_of_semiplane;
+          wsum[j] += weight * dist_to_axis * dist_to_axis;
+          sum[j] += weight;
+        
+          continue;
+        }
+      
+        // (C)
+        // if we reach this point, that means that the center
+        // of our pixel is too close to the axis, and we have
+        // to feed it into the routine to check if the pixel
+        // crosses the axis
+      
+        // ** NOTE ** NOTE ** NOTE ** NOTE ** NOTE ** NOTE ** NOTE
+        // simplified algorithm
+        // assume the pixels are circular, and takes
+        // the fraction of the surface lying on the semiplane
+        // ** NOTE ** NOTE ** NOTE ** NOTE ** NOTE ** NOTE ** NOTE
+        
+        // alpha
+        alpha = 2*asin(sqrt(2*(radius-dist_to_axis)*radius -
+                            radius2) / radius);
+        
+        // here the sum
+        // the fraction is the fraction of the area inside the semiplane
+        weight = image[i] * ( (alpha * radius2 / 2.0) / (M_PI * radius2));
+        j = k+sign_of_semiplane;
+        wsum[j] += weight * dist_to_axis * dist_to_axis;
+        sum[j] += weight;   
+      
+      } // foreach pixel pixels
+    
+    } // foreach semiplane
+
+  } // foreach axis
+
+  lw.length1 = (sum[0] > 0.) ?  sqrt(wsum[0] / sum[0]) : -1;
+  lw.width1  = (sum[1] > 0.) ?  sqrt(wsum[1] / sum[1]) : -1;
+  lw.length2 = (sum[2] > 0.) ?  sqrt(wsum[2] / sum[2]) : -1;
+  lw.width2  = (sum[3] > 0.) ?  sqrt(wsum[3] / sum[3]) : -1;
+  
+  lw.length1 *= plateScale;
+  lw.width1  *= plateScale;
+  lw.length2 *= plateScale;
+  lw.width2  *= plateScale;
+
+  return &lw;
+}
+//!@}
+
+
+//!@subsection Auxiliary functions.
+
+//!-----------------------------------------------------------
+// @name crosspt
+//                                             
+// @desc calculate cross point of segments AB and CD
+//
+// @var ax         Coor. X of point A
+// @var ay         Coor. Y of point A
+// @var bx         Coor. X of point A
+// @var by         Coor. Y of point A
+// @var cx         Coor. X of point A
+// @var cy         Coor. Y of point A
+// @var dx         Coor. X of point A
+// @var dy         Coor. Y of point A
+// @var *pcrossx   Coor. X of cross point
+// @var *pcrossy   Coor. Y of cross point
+//
+// @date Mon Mar  8 13:35:54 MET 1999
+//------------------------------------------------------------
+// @function
+
+//!@{
+void
+crosspt( float ax, float ay,
+         float bx, float by,
+         float cx, float cy,
+         float dx, float dy,
+         float * pcrossx, float * pcrossy)
+{
+  float w, r;
+  
+  // the points A and B, and C and D define two segments (AB and CD)
+  // the coordinates of these points are
+  // A(ax,ay), B(bx,by), C(cx,cy), D(dx,dy)
+
+  w=(bx-ax)*(dy-cy)-(by-ay)*(dx-cx);
+  r=(ay-cy)*(dx-cx)-(ax-cx)*(dy-cy);
+
+  *pcrossx = ax + r*(bx-ax)/w;
+  *pcrossy = ay + r*(by-ay)/w;
+
+}
+//!@}
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+//
+// $Log: not supported by cvs2svn $
+// Revision 1.2  1999/10/22 15:01:29  petry
+// version sent to H.K. and N.M. on Fri Oct 22 1999
+//
+// Revision 1.1.1.1  1999/10/21 16:35:10  petry
+// first synthesised version
+//
+// Revision 1.1  1999/03/08  10:04:06  gonzalez
+// *** empty log message ***
+//
+// Revision 1.4  1999/03/02  09:56:14  gonzalez
+// *** empty log message ***
+//
+// Revision 1.5  1999/03/15  14:59:10  gonzalez
+// camera-1_1
+//
+//!@}
+
+//=EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Camera/moments.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Camera/moments.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Camera/moments.h	(revision 4308)
@@ -0,0 +1,158 @@
+//=//////////////////////////////////////////////////////////////////////
+//=
+//= moments                
+//=
+//= @file        moments.h
+//= @desc        Header file
+//= @author      J C Gonzalez
+//= @email       gonzalez@mppmu.mpg.de
+//= @date        Thu May  7 16:24:22 1998
+//=
+//=----------------------------------------------------------------------
+//=
+//= Created: Thu May  7 16:24:22 1998
+//= Author:  Jose Carlos Gonzalez
+//= Purpose: Program for reflector simulation
+//= Notes:   See files README for details
+//=    
+//=----------------------------------------------------------------------
+//=
+//= $RCSfile: moments.h,v $
+//= $Revision: 1.1.1.1 $
+//= $Author: harald $ 
+//= $Date: 1999-11-05 11:59:33 $
+//=
+//=//////////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+//!@section Source code of |moments.h|.
+
+/*!@"
+
+  In this section you can find the source code for the file
+  |moments.h|.  This file is mainly needed by |moments.cxx|.
+
+  @"*/
+
+//!@{
+
+#ifndef _moments_
+#define _moments_
+
+#ifndef _this_
+#define _this_ moments
+#endif
+
+//!@}
+
+//!@subsection Include files.
+
+//!@{
+
+#include <iostream.h>
+#include <fstream.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+#include <float.h>
+
+#include "jcmacros.h"
+#include "jcdebug.h"
+
+#include "camera-v.h"
+
+//!@}
+
+//!@subsection Macro-definitions, and constants.
+
+//!@{
+
+typedef struct {
+
+  // moments
+  float m1x, m1y;                       // first moments (mean)
+  float m2xx, m2xy, m2yy;               // second moments (around origin)
+  float m2cxx, m2cxy, m2cyy;            // second moments (around mean)
+  float m3xxx, m3xxy, m3xyy, m3yyy;     // third moments (around origin)
+  float m3cxxx, m3cxxy, m3cxyy, m3cyyy; // third moments (around mean)
+
+  // charges
+  float charge;                         // total charge in the image
+  float xmax, ymax;                     // position of the maximum
+  float smax;                           // charge of the block of maximum
+  float maxs[10];                       // charges of the first 10 max.
+  int nmaxs[10];                        // number of pixels of 10 max.
+  
+  // parameters of the image
+  float length, width, dist, xdist, azw, miss, alpha, conc[9]; 
+  float phi, asymx, asymy;
+  
+} Moments_Info;
+
+
+typedef struct {
+  float *fi;
+  int *isl, *islands; 
+  float *vislands; 
+  int numisl;
+} Islands_Info;
+
+
+typedef struct {
+  float length1, length2;
+  float width1,  width2;
+} LenWid_Info;
+
+//!@}
+
+//!@subsection Prototypes of functions.
+
+//!@{
+
+//++
+// prototypes
+//--
+
+Moments_Info * moments( int n, float *image, float **pix, 
+                        float plateScale, int flag);
+Islands_Info * islands( int n, float *f, int **pixneig, int *npixneig,
+                        int cleanning, int ipixcut );
+LenWid_Info * lenwid( int n, float *image, float **pix, 
+                      float plateScale, float max_distance);
+
+void crosspt( float ax, float ay,
+              float bx, float by,
+              float cx, float cy,
+              float dx, float dy,
+              float * pcrossx, float * pcrossy);
+
+//!@}
+
+//!@{
+
+#endif // ! _moments_
+
+//!@}
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+
+/*
+ *$Log: not supported by cvs2svn $
+ *Revision 1.1.1.1  1999/10/21 16:35:10  petry
+ *first synthesised version
+ *
+ * Revision 1.4  1999/03/15  14:59:10  gonzalez
+ * camera-1_1
+ *
+ * Revision 1.3  1999/03/02  09:56:15  gonzalez
+ * *** empty log message ***
+ *
+ */
+
+//!@}
+//=EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Data/ct1-perfect.def
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Data/ct1-perfect.def	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Data/ct1-perfect.def	(revision 4308)
@@ -0,0 +1,104 @@
+############################################################# 
+# CT1 definition file
+# J C Gonzalez, 1998
+#############################################################
+# @file         ct1.def
+# @title        CT1 definition file
+# @description  CT1 def. file to be used by {\tt reflector} and {\tt camera}
+# @author       J C Gonz\'alez
+# @email        gonzalez@mppmu.mpg.de
+#
+# @maintitle
+# @code
+#------------------------------------------------------------ 
+# CT1 definition file
+# J C Gonzalez, 1998
+#------------------------------------------------------------
+#
+# type of definition file  (0: CT1, 1: MAGIC)
+#
+type  0
+#
+# focal distance [cm]
+#
+focal_distance      488.87
+#
+# std(focal_distance) [cm]
+#
+focal_std           1.0849
+#
+# point spread function [cm]
+#
+point_spread        0.0
+#
+# std(point spread function) [cm]
+#
+point_std           0.0
+#
+# std value of adjustment deviation [cm]
+#
+adjustment_dev      0.0
+#
+# black spot in the center of the mirror, radius [cm]
+#
+black_spot          0.0
+#
+# camera width [cm]
+#
+camera_width        200.
+#
+# number of pixels in the camera 
+#   PIXELS = 3 x N x (N+1) + 1      (N=number of rings)
+#
+n_pixels 127
+#
+# pixel width (small diameter) [cm] 
+#
+pixel_width 2.1
+#
+# number of mirrors
+#
+n_mirrors 33
+#
+# radius of a single mirror
+#
+r_mirror 32.
+#
+# this entry is followed by the def. of pixels, everything in [radians] or [cm]
+#
+define_mirrors
+  1    60.0000    59.9623     0.0000    59.9623     0.0000     1.8419   0.06138963   0.00000000  -0.06135108  -0.00000000   0.99811625
+  2    60.0000    59.9623     1.0472    29.9812    51.9289     1.8419   0.06138968   1.04719710  -0.03067559  -0.05313163   0.99811625
+  3    60.0000    59.9623     2.0944   -29.9812    51.9289     1.8419   0.06138968   2.09439564   0.03067559  -0.05313162   0.99811625
+  4    60.0000    59.9623     3.1416   -59.9623     0.0000     1.8419   0.06138963   3.14159274   0.06135108   0.00000001   0.99811625
+  5    60.0000    59.9623    -2.0944   -29.9812   -51.9289     1.8419   0.06138968   4.18878984   0.03067558   0.05313163   0.99811625
+  6    60.0000    59.9623    -1.0472    29.9812   -51.9289     1.8419   0.06138968   5.23598814  -0.03067559   0.05313163   0.99811625
+  7   120.0000   119.7006     0.0000   119.7006     0.0000     7.3403   0.12209448   0.00000000  -0.12179136  -0.00000000   0.99255574
+  8   103.9230   103.7281     0.5236    89.8312    51.8641     5.5120   0.10593323   0.52359909  -0.09156937  -0.05286764   0.99439430
+  9   120.0000   119.7006     1.0472    59.8503   103.6638     7.3403   0.12209452   1.04719770  -0.06089569  -0.10547446   0.99255574
+ 10   103.9230   103.7281     1.5708     0.0000   103.7281     5.5120   0.10593319   1.57079637   0.00000000  -0.10573518   0.99439430
+ 11   120.0000   119.7006     2.0944   -59.8503   103.6638     7.3403   0.12209452   2.09439492   0.06089568  -0.10547446   0.99255574
+ 12   103.9230   103.7281     2.6180   -89.8312    51.8641     5.5120   0.10593323   2.61799359   0.09156937  -0.05286764   0.99439430
+ 13   120.0000   119.7006     3.1416  -119.7006     0.0000     7.3403   0.12209448   3.14159274   0.12179136   0.00000001   0.99255574
+ 14   103.9230   103.7281    -2.6180   -89.8312   -51.8641     5.5120   0.10593323   3.66519165   0.09156937   0.05286763   0.99439430
+ 15   120.0000   119.7006    -2.0944   -59.8503  -103.6638     7.3403   0.12209452   4.18879032   0.06089569   0.10547446   0.99255574
+ 16   103.9230   103.7281    -1.5708     0.0000  -103.7281     5.5120   0.10593319   4.71238899  -0.00000000   0.10573518   0.99439430
+ 17   120.0000   119.7006    -1.0472    59.8503  -103.6638     7.3403   0.12209452   5.23598766  -0.06089569   0.10547445   0.99255574
+ 18   103.9230   103.7281    -0.5236    89.8312   -51.8641     5.5120   0.10593323   5.75958633  -0.09156937   0.05286763   0.99439430
+ 19   158.7451   158.0569     0.3335   149.3497    51.7363    12.7981   0.16062872   0.33347344  -0.15112801  -0.05235232   0.98712695
+ 20   158.7451   158.0569     0.7137   119.4798   103.4725    12.7981   0.16062872   0.71372420  -0.12090243  -0.10470454   0.98712695
+ 21   180.0000   179.0015     1.0472    89.5007   155.0198    16.4147   0.18147679   1.04719770  -0.09024113  -0.15630227   0.98357821
+ 22   158.7451   158.0569     1.3807    29.8699   155.2088    12.7981   0.16062874   1.38067102  -0.03022556  -0.15705687   0.98712695
+ 23   158.7451   158.0569     1.7609   -29.8699   155.2088    12.7981   0.16062874   1.76092160   0.03022555  -0.15705687   0.98712695
+ 24   158.7451   158.0569     2.4279  -119.4798   103.4725    12.7981   0.16062872   2.42786837   0.12090243  -0.10470455   0.98712695
+ 25   158.7451   158.0569     2.8081  -149.3497    51.7363    12.7981   0.16062872   2.80811930   0.15112801  -0.05235231   0.98712695
+ 26   180.0000   179.0015     3.1416  -179.0015     0.0000    16.4147   0.18147683   3.14159274   0.18048234   0.00000002   0.98357821
+ 27   158.7451   158.0569    -2.8081  -149.3497   -51.7363    12.7981   0.16062872   3.47506595   0.15112802   0.05235230   0.98712695
+ 28   158.7451   158.0569    -2.4279  -119.4798  -103.4725    12.7981   0.16062872   3.85531688   0.12090243   0.10470454   0.98712695
+ 29   158.7451   158.0569    -1.7609   -29.8699  -155.2088    12.7981   0.16062874   4.52226353   0.03022558   0.15705687   0.98712695
+ 30   158.7451   158.0569    -1.3807    29.8699  -155.2088    12.7981   0.16062874   4.90251446  -0.03022559   0.15705687   0.98712695
+ 31   180.0000   179.0015    -1.0472    89.5007  -155.0198    16.4147   0.18147679   5.23598766  -0.09024114   0.15630227   0.98357821
+ 32   158.7451   158.0569    -0.7137   119.4798  -103.4725    12.7981   0.16062872   5.56946135  -0.12090246   0.10470451   0.98712695
+ 33   158.7451   158.0569    -0.3335   149.3497   -51.7363    12.7981   0.16062872   5.94971180  -0.15112801   0.05235234   0.98712695
+#EOF
+#@endcode
Index: /branches/start/MagicSoft/Simulation/Detector/Data/ct1.def
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Data/ct1.def	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Data/ct1.def	(revision 4308)
@@ -0,0 +1,104 @@
+############################################################# 
+# CT1 definition file
+# J C Gonzalez, 1998
+#############################################################
+# @file         ct1.def
+# @title        CT1 definition file
+# @description  CT1 def. file to be used by {\tt reflector} and {\tt camera}
+# @author       J C Gonz\'alez
+# @email        gonzalez@mppmu.mpg.de
+#
+# @maintitle
+# @code
+#------------------------------------------------------------ 
+# CT1 definition file
+# J C Gonzalez, 1998
+#------------------------------------------------------------
+#
+# type of definition file  (0: CT1, 1: MAGIC)
+#
+type  0
+#
+# focal distance [cm]
+#
+focal_distance      488.87
+#
+# std(focal_distance) [cm]
+#
+focal_std           1.0849
+#
+# point spread function [cm]
+#
+point_spread        0.38281
+#
+# std(point spread function) [cm]
+#
+point_std           0.13296
+#
+# std value of adjustment deviation [cm]
+#
+adjustment_dev      0.5
+#
+# black spot in the center of the mirror, radius [cm]
+#
+black_spot          0.5
+#
+# camera width [cm]
+#
+camera_width        200.
+#
+# number of pixels in the camera 
+#   PIXELS = 3 x N x (N+1) + 1      (N=number of rings)
+#
+n_pixels 127 
+#
+# pixel width (small diameter) [cm] 
+#
+pixel_width 2.1
+#
+# number of mirrors
+#
+n_mirrors 33
+#
+# radius of a single mirror
+#
+r_mirror 32.
+#
+# this entry is followed by the def. of pixels, everything in [radians] or [cm]
+#
+define_mirrors
+  1    60.0000    59.9623     0.0000    59.9623     0.0000     1.8419   0.06138963   0.00000000  -0.06135108  -0.00000000   0.99811625
+  2    60.0000    59.9623     1.0472    29.9812    51.9289     1.8419   0.06138968   1.04719710  -0.03067559  -0.05313163   0.99811625
+  3    60.0000    59.9623     2.0944   -29.9812    51.9289     1.8419   0.06138968   2.09439564   0.03067559  -0.05313162   0.99811625
+  4    60.0000    59.9623     3.1416   -59.9623     0.0000     1.8419   0.06138963   3.14159274   0.06135108   0.00000001   0.99811625
+  5    60.0000    59.9623    -2.0944   -29.9812   -51.9289     1.8419   0.06138968   4.18878984   0.03067558   0.05313163   0.99811625
+  6    60.0000    59.9623    -1.0472    29.9812   -51.9289     1.8419   0.06138968   5.23598814  -0.03067559   0.05313163   0.99811625
+  7   120.0000   119.7006     0.0000   119.7006     0.0000     7.3403   0.12209448   0.00000000  -0.12179136  -0.00000000   0.99255574
+  8   103.9230   103.7281     0.5236    89.8312    51.8641     5.5120   0.10593323   0.52359909  -0.09156937  -0.05286764   0.99439430
+  9   120.0000   119.7006     1.0472    59.8503   103.6638     7.3403   0.12209452   1.04719770  -0.06089569  -0.10547446   0.99255574
+ 10   103.9230   103.7281     1.5708     0.0000   103.7281     5.5120   0.10593319   1.57079637   0.00000000  -0.10573518   0.99439430
+ 11   120.0000   119.7006     2.0944   -59.8503   103.6638     7.3403   0.12209452   2.09439492   0.06089568  -0.10547446   0.99255574
+ 12   103.9230   103.7281     2.6180   -89.8312    51.8641     5.5120   0.10593323   2.61799359   0.09156937  -0.05286764   0.99439430
+ 13   120.0000   119.7006     3.1416  -119.7006     0.0000     7.3403   0.12209448   3.14159274   0.12179136   0.00000001   0.99255574
+ 14   103.9230   103.7281    -2.6180   -89.8312   -51.8641     5.5120   0.10593323   3.66519165   0.09156937   0.05286763   0.99439430
+ 15   120.0000   119.7006    -2.0944   -59.8503  -103.6638     7.3403   0.12209452   4.18879032   0.06089569   0.10547446   0.99255574
+ 16   103.9230   103.7281    -1.5708     0.0000  -103.7281     5.5120   0.10593319   4.71238899  -0.00000000   0.10573518   0.99439430
+ 17   120.0000   119.7006    -1.0472    59.8503  -103.6638     7.3403   0.12209452   5.23598766  -0.06089569   0.10547445   0.99255574
+ 18   103.9230   103.7281    -0.5236    89.8312   -51.8641     5.5120   0.10593323   5.75958633  -0.09156937   0.05286763   0.99439430
+ 19   158.7451   158.0569     0.3335   149.3497    51.7363    12.7981   0.16062872   0.33347344  -0.15112801  -0.05235232   0.98712695
+ 20   158.7451   158.0569     0.7137   119.4798   103.4725    12.7981   0.16062872   0.71372420  -0.12090243  -0.10470454   0.98712695
+ 21   180.0000   179.0015     1.0472    89.5007   155.0198    16.4147   0.18147679   1.04719770  -0.09024113  -0.15630227   0.98357821
+ 22   158.7451   158.0569     1.3807    29.8699   155.2088    12.7981   0.16062874   1.38067102  -0.03022556  -0.15705687   0.98712695
+ 23   158.7451   158.0569     1.7609   -29.8699   155.2088    12.7981   0.16062874   1.76092160   0.03022555  -0.15705687   0.98712695
+ 24   158.7451   158.0569     2.4279  -119.4798   103.4725    12.7981   0.16062872   2.42786837   0.12090243  -0.10470455   0.98712695
+ 25   158.7451   158.0569     2.8081  -149.3497    51.7363    12.7981   0.16062872   2.80811930   0.15112801  -0.05235231   0.98712695
+ 26   180.0000   179.0015     3.1416  -179.0015     0.0000    16.4147   0.18147683   3.14159274   0.18048234   0.00000002   0.98357821
+ 27   158.7451   158.0569    -2.8081  -149.3497   -51.7363    12.7981   0.16062872   3.47506595   0.15112802   0.05235230   0.98712695
+ 28   158.7451   158.0569    -2.4279  -119.4798  -103.4725    12.7981   0.16062872   3.85531688   0.12090243   0.10470454   0.98712695
+ 29   158.7451   158.0569    -1.7609   -29.8699  -155.2088    12.7981   0.16062874   4.52226353   0.03022558   0.15705687   0.98712695
+ 30   158.7451   158.0569    -1.3807    29.8699  -155.2088    12.7981   0.16062874   4.90251446  -0.03022559   0.15705687   0.98712695
+ 31   180.0000   179.0015    -1.0472    89.5007  -155.0198    16.4147   0.18147679   5.23598766  -0.09024114   0.15630227   0.98357821
+ 32   158.7451   158.0569    -0.7137   119.4798  -103.4725    12.7981   0.16062872   5.56946135  -0.12090246   0.10470451   0.98712695
+ 33   158.7451   158.0569    -0.3335   149.3497   -51.7363    12.7981   0.16062872   5.94971180  -0.15112801   0.05235234   0.98712695
+#EOF
+#@endcode
Index: /branches/start/MagicSoft/Simulation/Detector/Data/focals.dat
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Data/focals.dat	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Data/focals.dat	(revision 4308)
@@ -0,0 +1,36 @@
+# focals file
+# focals for each mirror in the frame
+# J C Gonzalez, 1998
+489.665
+487.626
+487.392
+489.385
+490.11
+487.796
+486.167
+487.292
+487.321
+490.258
+489.74
+489.207
+489.128
+489.297
+486.834
+488.441
+487.925
+488.329
+487.514
+489.985
+488.789
+487.173
+490.37
+489.641
+489.781
+487.731
+488.675
+488.55
+489.496
+488.881
+487.551
+488.596
+488.797
Index: /branches/start/MagicSoft/Simulation/Detector/Data/magic-perfect.def
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Data/magic-perfect.def	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Data/magic-perfect.def	(revision 4308)
@@ -0,0 +1,1036 @@
+###################################################-*-sh-*-##
+# MAGIC definition file
+# J C Gonzalez, 1998
+#############################################################
+# @file         magic.def
+# @title        MAGIC definition file
+# @description  MAGIC def. file to be used by {\tt reflector} and {\tt camera}
+# @author       J C Gonz\'alez
+# @email        gonzalez@mppmu.mpg.de
+#
+# @maintitle
+# @code
+#------------------------------------------------------------ 
+# MAGIC definition file
+# J C Gonzalez, 1998
+#------------------------------------------------------------
+#
+# type of definition file  (0: CT1, 1: MAGIC)
+#
+type  1
+#
+# focal distance [cm]
+#
+focal_distance      1700.0
+#
+# std(focal_distance) [cm]
+#
+focal_std           0.0
+#
+# point spread function [cm]
+#
+point_spread        0.0
+#
+# std(point spread function) [cm]
+#
+point_std           0.0
+#
+# std value of adjustment deviation [cm]
+#
+adjustment_dev      0.0
+#
+# black spot in the center of the mirror, radius [cm]
+#
+black_spot          0.0
+#
+# camera width [cm]
+#
+camera_width        1000.
+#
+# number of pixels in the camera 
+#   PIXELS = 3 x N x (N+1) + 1      (N=number of rings)
+#
+n_pixels 919
+#
+# pixel width (small diameter) [cm] 
+#
+pixel_width 3.0
+#
+# number of mirrors
+#
+n_mirrors 920
+#
+# radius of a single mirror
+#
+r_mirror 24.75
+#
+# this entry is followed by the def. of pixels, everything in [radians] or [cm]
+#
+#*  TYPE=0  (CT1)
+#*      i   s   rho   theta   x   y   z   thetan  phin  xn   yn   zn
+#* 
+#*       i : number of the mirror
+#*       s : arc length [cm]
+#*     rho : polar rho of the position of the center of the mirror [cm]
+#*   theta : polar angle of the position of the center of the mirror [cm]
+#*       x : x coordinate of the center of the mirror [cm]
+#*       y : y coordinate of the center of the mirror [cm]
+#*       z : z coordinate of the center of the mirror [cm]
+#*  thetan : polar theta angle of the direction where the mirror points to
+#*    phin : polar phi angle of the direction where the mirror points to
+#*      xn : xn coordinate of the normal vector in the center (normalized)
+#*      yn : yn coordinate of the normal vector in the center (normalized)
+#*      zn : zn coordinate of the normal vector in the center (normalized)
+#* 
+#*  TYPE=1  (MAGIC)
+#*      i  f   sx   sy   x   y   z   thetan  phin 
+#* 
+#*       i : number of the mirror
+#*       f : focal distance of that mirror
+#*      sx : curvilinear coordinate of mirror's center in X[cm]
+#*      sy : curvilinear coordinate of mirror's center in X[cm]
+#*       x : x coordinate of the center of the mirror [cm]
+#*       y : y coordinate of the center of the mirror [cm]
+#*       z : z coordinate of the center of the mirror [cm]
+#*  thetan : polar theta angle of the direction where the mirror points to
+#*    phin : polar phi angle of the direction where the mirror points to
+#*      xn : xn coordinate of the normal vector in the center (normalized)
+#*      yn : yn coordinate of the normal vector in the center (normalized)
+#*      zn : zn coordinate of the normal vector in the center (normalized)
+#
+define_mirrors
+  1  1805.4000  -825.0000  -325.0000  -817.1337  -324.5073   113.6783   0.25348800   3.51962137   0.23307531   0.09256091   0.96804357
+  2  1805.4000  -825.0000  -275.0000  -817.1337  -274.7011   109.2895   0.24874869   3.46589971   0.23335783   0.07844938   0.96922123
+  3  1805.4000  -825.0000  -225.0000  -817.1337  -224.8361   105.6263   0.24471071   3.41010022   0.23359442   0.06427398   0.97020745
+  4  1805.4000  -825.0000  -175.0000  -817.1337  -174.9228   102.6920   0.24141937   3.35247850   0.23378445   0.05004594   0.97099960
+  5  1805.4000  -825.0000  -125.0000  -817.1337  -124.9719   100.4890   0.23891383   3.29335594   0.23392743   0.03577669   0.97159559
+  6  1805.4000  -825.0000   -75.0000  -817.1337   -74.9939    99.0194   0.23722523   3.23311305   0.23402296   0.02147787   0.97199380
+  7  1805.4000  -825.0000   -25.0000  -817.1337   -24.9998    98.2842   0.23637535   3.17217755   0.23407079   0.00716126   0.97219318
+  8  1805.4000  -825.0000    25.0000  -817.1337    24.9998    98.2842   0.23637535   3.11100769   0.23407079  -0.00716128   0.97219318
+  9  1805.4000  -825.0000    75.0000  -817.1337    74.9939    99.0194   0.23722523   3.05007219   0.23402296  -0.02147789   0.97199380
+ 10  1805.4000  -825.0000   125.0000  -817.1337   124.9719   100.4890   0.23891383   2.98982930   0.23392743  -0.03577670   0.97159559
+ 11  1805.4000  -825.0000   175.0000  -817.1337   174.9228   102.6920   0.24141937   2.93070674   0.23378444  -0.05004595   0.97099960
+ 12  1805.4000  -825.0000   225.0000  -817.1337   224.8361   105.6263   0.24471071   2.87308502   0.23359442  -0.06427400   0.97020745
+ 13  1805.4000  -825.0000   275.0000  -817.1337   274.7011   109.2895   0.24874869   2.81728554   0.23335783  -0.07844939   0.96922123
+ 14  1805.4000  -825.0000   325.0000  -817.1337   324.5073   113.6783   0.25348800   2.76356387   0.23307531  -0.09256092   0.96804357
+ 15  1805.4000  -775.0000  -375.0000  -768.4574  -374.2443   107.4391   0.24671859   3.59479213   0.21956910   0.10693174   0.96971905
+ 16  1805.4000  -775.0000  -325.0000  -768.4574  -324.5073   102.3282   0.24100770   3.54116058   0.21988019   0.09285189   0.97109795
+ 17  1805.4000  -775.0000  -275.0000  -768.4574  -274.7011    97.9393   0.23597544   3.48490739   0.22014838   0.07869662   0.97228676
+ 18  1805.4000  -775.0000  -225.0000  -768.4574  -224.8361    94.2762   0.23167872   3.42622924   0.22037300   0.06447696   0.97328234
+ 19  1784.7300  -775.0000  -175.0000  -768.4574  -174.9228    91.3419   0.22816989   3.36540747   0.22055343   0.05020423   0.97408199
+ 20  1784.7300  -775.0000  -125.0000  -768.4574  -124.9719    89.1389   0.22549459   3.30280828   0.22068916   0.03589002   0.97468364
+ 21  1784.7300  -775.0000   -75.0000  -768.4574   -74.9939    87.6692   0.22368950   3.23887467   0.22077985   0.02154592   0.97508568
+ 22  1784.7300  -775.0000   -25.0000  -768.4574   -24.9998    86.9341   0.22278035   3.17411351   0.22082528   0.00718396   0.97528690
+ 23  1784.7300  -775.0000    25.0000  -768.4574    24.9998    86.9341   0.22278035   3.10907173   0.22082528  -0.00718397   0.97528690
+ 24  1784.7300  -775.0000    75.0000  -768.4574    74.9939    87.6692   0.22368950   3.04431057   0.22077985  -0.02154594   0.97508568
+ 25  1784.7300  -775.0000   125.0000  -768.4574   124.9719    89.1389   0.22549459   2.98037696   0.22068916  -0.03589003   0.97468364
+ 26  1784.7300  -775.0000   175.0000  -768.4574   174.9228    91.3419   0.22816989   2.91777778   0.22055343  -0.05020425   0.97408199
+ 27  1805.4000  -775.0000   225.0000  -768.4574   224.8361    94.2762   0.23167872   2.85695601   0.22037300  -0.06447697   0.97328234
+ 28  1805.4000  -775.0000   275.0000  -768.4574   274.7011    97.9393   0.23597544   2.79827785   0.22014838  -0.07869663   0.97228676
+ 29  1805.4000  -775.0000   325.0000  -768.4574   324.5073   102.3282   0.24100770   2.74202466   0.21988019  -0.09285191   0.97109795
+ 30  1805.4000  -775.0000   375.0000  -768.4574   374.2443   107.4391   0.24671859   2.68839312   0.21956909  -0.10693175   0.96971905
+ 31  1805.4000  -725.0000  -425.0000  -719.6271  -423.9018   102.5817   0.24129471   3.67392731   0.20589381   0.12128329   0.97102940
+ 32  1805.4000  -725.0000  -375.0000  -719.6271  -374.2443    96.7532   0.23459409   3.62115359   0.20622750   0.10724921   0.97260875
+ 33  1784.7300  -725.0000  -325.0000  -719.6271  -324.5073    91.6424   0.22853206   3.56522632   0.20652144   0.09312835   0.97399998
+ 34  1784.7300  -725.0000  -275.0000  -719.6271  -274.7011    87.2535   0.22317588   3.50624776   0.20677485   0.07893151   0.97519946
+ 35  1784.7300  -725.0000  -225.0000  -719.6271  -224.8361    83.5904   0.21859103   3.44441748   0.20698707   0.06466982   0.97620398
+ 36  1784.7300  -725.0000  -175.0000  -719.6271  -174.9228    80.6560   0.21483852   3.38004231   0.20715754   0.05035464   0.97701085
+ 37  1784.7300  -725.0000  -125.0000  -719.6271  -124.9719    78.4531   0.21197213   3.31353974   0.20728581   0.03599766   0.97761792
+ 38  1784.7300  -725.0000   -75.0000  -719.6271   -74.9939    76.9834   0.21003537   3.24542999   0.20737149   0.02161063   0.97802353
+ 39  1784.7300  -725.0000   -25.0000  -719.6271   -24.9998    76.2482   0.20905904   3.17631865   0.20741440   0.00720557   0.97822666
+ 40  1784.7300  -725.0000    25.0000  -719.6271    24.9998    76.2482   0.20905904   3.10686660   0.20741440  -0.00720558   0.97822666
+ 41  1784.7300  -725.0000    75.0000  -719.6271    74.9939    76.9834   0.21003537   3.03775525   0.20737149  -0.02161064   0.97802353
+ 42  1784.7300  -725.0000   125.0000  -719.6271   124.9719    78.4531   0.21197213   2.96964550   0.20728581  -0.03599767   0.97761792
+ 43  1784.7300  -725.0000   175.0000  -719.6271   174.9228    80.6560   0.21483852   2.90314293   0.20715752  -0.05035465   0.97701085
+ 44  1784.7300  -725.0000   225.0000  -719.6271   224.8361    83.5904   0.21859103   2.83876777   0.20698707  -0.06466983   0.97620398
+ 45  1784.7300  -725.0000   275.0000  -719.6271   274.7011    87.2535   0.22317588   2.77693748   0.20677483  -0.07893153   0.97519946
+ 46  1784.7300  -725.0000   325.0000  -719.6271   324.5073    91.6424   0.22853206   2.71795893   0.20652144  -0.09312837   0.97399998
+ 47  1805.4000  -725.0000   375.0000  -719.6271   374.2443    96.7532   0.23459409   2.66203165   0.20622748  -0.10724922   0.97260875
+ 48  1805.4000  -725.0000   425.0000  -719.6271   423.9018   102.5817   0.24129471   2.60925794   0.20589380  -0.12128329   0.97102940
+ 49  1805.4000  -675.0000  -475.0000  -670.6511  -473.4697    99.1098   0.23732954   3.75632405   0.19206630   0.13559590   0.97196931
+ 50  1784.7300  -675.0000  -425.0000  -670.6511  -423.9018    92.5685   0.22964412   3.70526338   0.19241638   0.12162157   0.97374749
+ 51  1784.7300  -675.0000  -375.0000  -670.6511  -374.2443    86.7400   0.22253957   3.65058088   0.19272998   0.10754933   0.97534007
+ 52  1784.7300  -675.0000  -325.0000  -670.6511  -324.5073    81.6291   0.21609105   3.59225225   0.19300622   0.09338970   0.97674304
+ 53  1784.7300  -675.0000  -275.0000  -670.6511  -274.7011    77.2402   0.21037526   3.53035045   0.19324437   0.07915358   0.97795260
+ 54  1784.7300  -675.0000  -225.0000  -670.6511  -224.8361    73.5771   0.20546794   3.46506763   0.19344383   0.06485213   0.97896564
+ 55  1763.2600  -675.0000  -175.0000  -670.6511  -174.9228    70.6428   0.20144072   3.39673352   0.19360405   0.05049682   0.97977936
+ 56  1763.2600  -675.0000  -125.0000  -670.6511  -124.9719    68.4398   0.19835755   3.32582378   0.19372460   0.03609945   0.98039156
+ 57  1763.2600  -675.0000   -75.0000  -670.6511   -74.9939    66.9702   0.19627079   3.25295258   0.19380516   0.02167179   0.98080063
+ 58  1763.2600  -675.0000   -25.0000  -670.6511   -24.9998    66.2350   0.19521770   3.17885232   0.19384547   0.00722596   0.98100549
+ 59  1763.2600  -675.0000    25.0000  -670.6511    24.9998    66.2350   0.19521770   3.10433292   0.19384547  -0.00722597   0.98100549
+ 60  1763.2600  -675.0000    75.0000  -670.6511    74.9939    66.9702   0.19627079   3.03023267   0.19380516  -0.02167180   0.98080063
+ 61  1763.2600  -675.0000   125.0000  -670.6511   124.9719    68.4398   0.19835755   2.95736146   0.19372459  -0.03609946   0.98039156
+ 62  1763.2600  -675.0000   175.0000  -670.6511   174.9228    70.6428   0.20144072   2.88645172   0.19360405  -0.05049683   0.97977936
+ 63  1784.7300  -675.0000   225.0000  -670.6511   224.8361    73.5771   0.20546794   2.81811762   0.19344382  -0.06485214   0.97896564
+ 64  1784.7300  -675.0000   275.0000  -670.6511   274.7011    77.2402   0.21037526   2.75283480   0.19324437  -0.07915360   0.97795260
+ 65  1784.7300  -675.0000   325.0000  -670.6511   324.5073    81.6291   0.21609105   2.69093299   0.19300622  -0.09338970   0.97674304
+ 66  1784.7300  -675.0000   375.0000  -670.6511   374.2443    86.7400   0.22253957   2.63260436   0.19272998  -0.10754934   0.97534007
+ 67  1784.7300  -675.0000   425.0000  -670.6511   423.9018    92.5685   0.22964412   2.57792187   0.19241638  -0.12162159   0.97374749
+ 68  1805.4000  -675.0000   475.0000  -670.6511   473.4697    99.1098   0.23732954   2.52686119   0.19206628  -0.13559592   0.97196931
+ 69  1805.4000  -625.0000  -525.0000  -621.5383  -522.9382    97.0256   0.23491217   3.84104991   0.17810416   0.14984991   0.97253478
+ 70  1784.7300  -625.0000  -475.0000  -621.5383  -473.4697    89.7770   0.22627315   3.79258442   0.17846446   0.13594896   0.97450930
+ 71  1784.7300  -625.0000  -425.0000  -621.5383  -423.9018    83.2357   0.21814133   3.74014950   0.17879148   0.12193942   0.97630137
+ 72  1784.7300  -625.0000  -375.0000  -621.5383  -374.2443    77.4072   0.21059583   3.68357372   0.17908439   0.10783131   0.97790653
+ 73  1784.7300  -625.0000  -325.0000  -621.5383  -324.5073    72.2963   0.20372099   3.62276626   0.17934240   0.09363528   0.97932053
+ 74  1763.2600  -625.0000  -275.0000  -621.5383  -274.7011    67.9074   0.19760442   3.55774856   0.17956488   0.07936224   0.98053968
+ 75  1763.2600  -625.0000  -225.0000  -621.5383  -224.8361    64.2443   0.19233420   3.48868895   0.17975120   0.06502344   0.98156071
+ 76  1763.2600  -625.0000  -175.0000  -621.5383  -174.9228    61.3100   0.18799514   3.41593170   0.17990088   0.05063044   0.98238093
+ 77  1763.2600  -625.0000  -125.0000  -621.5383  -124.9719    59.1070   0.18466403   3.34001541   0.18001349   0.03619504   0.98299801
+ 78  1763.2600  -625.0000   -75.0000  -621.5383   -74.9939    57.6373   0.18240470   3.26167059   0.18008873   0.02172922   0.98341036
+ 79  1763.2600  -625.0000   -25.0000  -621.5383   -24.9998    56.9022   0.18126303   3.18179345   0.18012640   0.00724513   0.98361677
+ 80  1763.2600  -625.0000    25.0000  -621.5383    24.9998    56.9022   0.18126303   3.10139179   0.18012640  -0.00724514   0.98361677
+ 81  1763.2600  -625.0000    75.0000  -621.5383    74.9939    57.6373   0.18240470   3.02151465   0.18008873  -0.02172923   0.98341036
+ 82  1763.2600  -625.0000   125.0000  -621.5383   124.9719    59.1070   0.18466403   2.94316983   0.18001349  -0.03619505   0.98299801
+ 83  1763.2600  -625.0000   175.0000  -621.5383   174.9228    61.3100   0.18799514   2.86725354   0.17990088  -0.05063045   0.98238093
+ 84  1763.2600  -625.0000   225.0000  -621.5383   224.8361    64.2443   0.19233420   2.79449630   0.17975120  -0.06502345   0.98156071
+ 85  1763.2600  -625.0000   275.0000  -621.5383   274.7011    67.9074   0.19760442   2.72543669   0.17956486  -0.07936225   0.98053968
+ 86  1784.7300  -625.0000   325.0000  -621.5383   324.5073    72.2963   0.20372099   2.66041899   0.17934239  -0.09363530   0.97932053
+ 87  1784.7300  -625.0000   375.0000  -621.5383   374.2443    77.4072   0.21059583   2.59961152   0.17908438  -0.10783133   0.97790653
+ 88  1784.7300  -625.0000   425.0000  -621.5383   423.9018    83.2357   0.21814133   2.54303575   0.17879148  -0.12193943   0.97630137
+ 89  1784.7300  -625.0000   475.0000  -621.5383   473.4697    89.7770   0.22627315   2.49060082   0.17846446  -0.13594897   0.97450930
+ 90  1805.4000  -625.0000   525.0000  -621.5383   522.9382    97.0256   0.23491217   2.44213533   0.17810416  -0.14984991   0.97253478
+ 91  1805.4000  -575.0000  -575.0000  -572.2976  -572.2976    96.3307   0.23409981   3.92699075   0.16402575   0.16402574   0.97272354
+ 92  1784.7300  -575.0000  -525.0000  -572.2976  -522.9382    88.3807   0.22456542   3.88195372   0.16438995   0.15021163   0.97489095
+ 93  1784.7300  -575.0000  -475.0000  -572.2976  -473.4697    81.1321   0.21545230   3.83276772   0.16472411   0.13627850   0.97687978
+ 94  1784.7300  -575.0000  -425.0000  -572.2976  -423.9018    74.5908   0.20683894   3.77911615   0.16502742   0.12223607   0.97868496
+ 95  1763.2600  -575.0000  -375.0000  -572.2976  -374.2443    68.7622   0.19881210   3.72072768   0.16529909   0.10809451   0.98030186
+ 96  1763.2600  -575.0000  -325.0000  -572.2976  -324.5073    63.6514   0.19146617   3.65741301   0.16553843   0.09386446   0.98172629
+ 97  1763.2600  -575.0000  -275.0000  -572.2976  -274.7011    59.2625   0.18490130   3.58911014   0.16574478   0.07955699   0.98295438
+ 98  1763.2600  -575.0000  -225.0000  -572.2976  -224.8361    55.5994   0.17922038   3.51593351   0.16591761   0.06518330   0.98398298
+ 99  1763.2600  -575.0000  -175.0000  -572.2976  -174.9228    52.6651   0.17452455   3.43822479   0.16605644   0.05075514   0.98480922
+100  1745.0699  -575.0000  -125.0000  -572.2976  -124.9719    50.4621   0.17090724   3.35658646   0.16616090   0.03628434   0.98543090
+101  1745.0699  -575.0000   -75.0000  -572.2976   -74.9939    48.9924   0.16844730   3.27189016   0.16623069   0.02178286   0.98584628
+102  1745.0699  -575.0000   -25.0000  -572.2976   -24.9998    48.2573   0.16720217   3.18524814   0.16626564   0.00726302   0.98605424
+103  1745.0699  -575.0000    25.0000  -572.2976    24.9998    48.2573   0.16720217   3.09793711   0.16626564  -0.00726303   0.98605424
+104  1745.0699  -575.0000    75.0000  -572.2976    74.9939    48.9924   0.16844730   3.01129508   0.16623069  -0.02178287   0.98584628
+105  1745.0699  -575.0000   125.0000  -572.2976   124.9719    50.4621   0.17090724   2.92659879   0.16616090  -0.03628435   0.98543090
+106  1763.2600  -575.0000   175.0000  -572.2976   174.9228    52.6651   0.17452455   2.84496045   0.16605642  -0.05075515   0.98480922
+107  1763.2600  -575.0000   225.0000  -572.2976   224.8361    55.5994   0.17922038   2.76725173   0.16591761  -0.06518332   0.98398298
+108  1763.2600  -575.0000   275.0000  -572.2976   274.7011    59.2625   0.18490130   2.69407511   0.16574477  -0.07955699   0.98295438
+109  1763.2600  -575.0000   325.0000  -572.2976   324.5073    63.6514   0.19146617   2.62577224   0.16553843  -0.09386447   0.98172629
+110  1763.2600  -575.0000   375.0000  -572.2976   374.2443    68.7622   0.19881210   2.56245756   0.16529909  -0.10809452   0.98030186
+111  1784.7300  -575.0000   425.0000  -572.2976   423.9018    74.5908   0.20683894   2.50406909   0.16502741  -0.12223608   0.97868496
+112  1784.7300  -575.0000   475.0000  -572.2976   473.4697    81.1321   0.21545230   2.45041752   0.16472411  -0.13627850   0.97687978
+113  1784.7300  -575.0000   525.0000  -572.2976   522.9382    88.3807   0.22456542   2.40123153   0.16438995  -0.15021163   0.97489095
+114  1805.4000  -575.0000   575.0000  -572.2976   572.2976    96.3307   0.23409981   2.35619450   0.16402575  -0.16402575   0.97272354
+115  1805.4000  -525.0000  -625.0000  -522.9382  -621.5383    97.0256   0.23491217   4.01293182   0.14984988   0.17810418   0.97253478
+116  1784.7300  -525.0000  -575.0000  -522.9382  -572.2976    88.3807   0.22456542   3.97202778   0.15021165   0.16438994   0.97489095
+117  1784.7300  -525.0000  -525.0000  -522.9382  -522.9382    80.4307   0.21454726   3.92699075   0.15054664   0.15054663   0.97707289
+118  1784.7300  -525.0000  -475.0000  -522.9382  -473.4697    73.1821   0.20493087   3.87738466   0.15085404   0.13658366   0.97907507
+119  1763.2600  -525.0000  -425.0000  -522.9382  -423.9018    66.6407   0.19579971   3.82277298   0.15113308   0.12251080   0.98089242
+120  1763.2600  -525.0000  -375.0000  -522.9382  -374.2443    60.8122   0.18724811   3.76274943   0.15138298   0.10833827   0.98252022
+121  1763.2600  -525.0000  -325.0000  -522.9382  -324.5073    55.7014   0.17938119   3.69698286   0.15160316   0.09407678   0.98395431
+122  1745.0699  -525.0000  -275.0000  -522.9382  -274.7011    51.3125   0.17231330   3.62527728   0.15179302   0.07973735   0.98519075
+123  1745.0699  -525.0000  -225.0000  -522.9382  -224.8361    47.6494   0.16616496   3.54764652   0.15195203   0.06533141   0.98622632
+124  1745.0699  -525.0000  -175.0000  -522.9382  -174.9228    44.7151   0.16105770   3.46439266   0.15207973   0.05087064   0.98705822
+125  1745.0699  -525.0000  -125.0000  -522.9382  -124.9719    42.5121   0.15710649   3.37617326   0.15217583   0.03636703   0.98768413
+126  1745.0699  -525.0000   -75.0000  -522.9382   -74.9939    41.0424   0.15441042   3.28403020   0.15224004   0.02183255   0.98810238
+127  1745.0699  -525.0000   -25.0000  -522.9382   -24.9998    40.3073   0.15304284   3.18936253   0.15227219   0.00727956   0.98831177
+128  1745.0699  -525.0000    25.0000  -522.9382    24.9998    40.3073   0.15304284   3.09382272   0.15227219  -0.00727957   0.98831177
+129  1745.0699  -525.0000    75.0000  -522.9382    74.9939    41.0424   0.15441042   2.99915504   0.15224004  -0.02183256   0.98810238
+130  1745.0699  -525.0000   125.0000  -522.9382   124.9719    42.5121   0.15710649   2.90701199   0.15217581  -0.03636704   0.98768413
+131  1745.0699  -525.0000   175.0000  -522.9382   174.9228    44.7151   0.16105770   2.81879258   0.15207973  -0.05087065   0.98705822
+132  1745.0699  -525.0000   225.0000  -522.9382   224.8361    47.6494   0.16616496   2.73553872   0.15195201  -0.06533142   0.98622632
+133  1745.0699  -525.0000   275.0000  -522.9382   274.7011    51.3125   0.17231330   2.65790796   0.15179302  -0.07973737   0.98519075
+134  1763.2600  -525.0000   325.0000  -522.9382   324.5073    55.7014   0.17938119   2.58620238   0.15160315  -0.09407678   0.98395431
+135  1763.2600  -525.0000   375.0000  -522.9382   374.2443    60.8122   0.18724811   2.52043581   0.15138298  -0.10833827   0.98252022
+136  1763.2600  -525.0000   425.0000  -522.9382   423.9018    66.6407   0.19579971   2.46041226   0.15113306  -0.12251081   0.98089242
+137  1784.7300  -525.0000   475.0000  -522.9382   473.4697    73.1821   0.20493087   2.40580058   0.15085404  -0.13658367   0.97907507
+138  1784.7300  -525.0000   525.0000  -522.9382   522.9382    80.4307   0.21454726   2.35619450   0.15054664  -0.15054664   0.97707289
+139  1784.7300  -525.0000   575.0000  -522.9382   572.2976    88.3807   0.22456542   2.31115746   0.15021163  -0.16438994   0.97489095
+140  1805.4000  -525.0000   625.0000  -522.9382   621.5383    97.0256   0.23491217   2.27025366   0.14984992  -0.17810415   0.97253478
+141  1805.4000  -475.0000  -675.0000  -473.4697  -670.6511    99.1098   0.23732954   4.09765768   0.13559589   0.19206630   0.97196931
+142  1784.7300  -475.0000  -625.0000  -473.4697  -621.5383    89.7770   0.22627315   4.06139708   0.13594899   0.17846444   0.97450930
+143  1784.7300  -475.0000  -575.0000  -473.4697  -572.2976    81.1321   0.21545230   4.02121401   0.13627848   0.16472413   0.97687978
+144  1784.7300  -475.0000  -525.0000  -473.4697  -522.9382    73.1821   0.20493087   3.97659683   0.13658367   0.15085402   0.97907507
+145  1763.2600  -475.0000  -475.0000  -473.4697  -473.4697    65.9334   0.19478387   3.92699075   0.13686371   0.13686368   0.98108953
+146  1763.2600  -475.0000  -425.0000  -473.4697  -423.9018    59.3921   0.18509875   3.87180996   0.13711791   0.12276289   0.98291808
+147  1763.2600  -475.0000  -375.0000  -473.4697  -374.2443    53.5636   0.17597687   3.81047034   0.13734560   0.10856195   0.98455596
+148  1745.0699  -475.0000  -325.0000  -473.4697  -324.5073    48.4527   0.16753416   3.74243975   0.13754618   0.09427155   0.98599893
+149  1745.0699  -475.0000  -275.0000  -473.4697  -274.7011    44.0639   0.15990058   3.66731644   0.13771912   0.07990286   0.98724312
+150  1745.0699  -475.0000  -225.0000  -473.4697  -224.8361    40.4007   0.15321741   3.58493400   0.13786398   0.06546731   0.98828518
+151  1745.0699  -475.0000  -175.0000  -473.4697  -174.9228    37.4664   0.14763157   3.49548769   0.13798034   0.05097668   0.98912221
+152  1730.0601  -475.0000  -125.0000  -473.4697  -124.9719    35.2635   0.14328626   3.39965606   0.13806790   0.03644288   0.98975205
+153  1730.0601  -475.0000   -75.0000  -473.4697   -74.9939    33.7938   0.14030823   3.29867983   0.13812639   0.02187814   0.99017292
+154  1730.0601  -475.0000   -25.0000  -473.4697   -24.9998    33.0586   0.13879332   3.19434476   0.13815568   0.00729477   0.99038368
+155  1730.0601  -475.0000    25.0000  -473.4697    24.9998    33.0586   0.13879332   3.08884048   0.13815568  -0.00729478   0.99038368
+156  1730.0601  -475.0000    75.0000  -473.4697    74.9939    33.7938   0.14030823   2.98450541   0.13812639  -0.02187815   0.99017292
+157  1730.0601  -475.0000   125.0000  -473.4697   124.9719    35.2635   0.14328626   2.88352919   0.13806790  -0.03644289   0.98975205
+158  1745.0699  -475.0000   175.0000  -473.4697   174.9228    37.4664   0.14763157   2.78769755   0.13798034  -0.05097669   0.98912221
+159  1745.0699  -475.0000   225.0000  -473.4697   224.8361    40.4007   0.15321741   2.69825125   0.13786398  -0.06546732   0.98828518
+160  1745.0699  -475.0000   275.0000  -473.4697   274.7011    44.0639   0.15990058   2.61586881   0.13771912  -0.07990287   0.98724312
+161  1745.0699  -475.0000   325.0000  -473.4697   324.5073    48.4527   0.16753416   2.54074550   0.13754617  -0.09427156   0.98599893
+162  1763.2600  -475.0000   375.0000  -473.4697   374.2443    53.5636   0.17597687   2.47271490   0.13734558  -0.10856196   0.98455596
+163  1763.2600  -475.0000   425.0000  -473.4697   423.9018    59.3921   0.18509875   2.41137528   0.13711789  -0.12276290   0.98291808
+164  1763.2600  -475.0000   475.0000  -473.4697   473.4697    65.9334   0.19478387   2.35619450   0.13686369  -0.13686369   0.98108953
+165  1784.7300  -475.0000   525.0000  -473.4697   522.9382    73.1821   0.20493087   2.30658841   0.13658367  -0.15085404   0.97907507
+166  1784.7300  -475.0000   575.0000  -473.4697   572.2976    81.1321   0.21545230   2.26197147   0.13627850  -0.16472411   0.97687978
+167  1784.7300  -475.0000   625.0000  -473.4697   621.5383    89.7770   0.22627315   2.22178817   0.13594897  -0.17846446   0.97450930
+168  1805.4000  -475.0000   675.0000  -473.4697   670.6511    99.1098   0.23732954   2.18552780   0.13559592  -0.19206628   0.97196931
+169  1805.4000  -425.0000  -725.0000  -423.9018  -719.6271   102.5817   0.24129471   4.18005419   0.12128332   0.20589380   0.97102940
+170  1784.7300  -425.0000  -675.0000  -423.9018  -670.6511    92.5685   0.22964412   4.14871836   0.12162155   0.19241640   0.97374749
+171  1784.7300  -425.0000  -625.0000  -423.9018  -621.5383    83.2357   0.21814133   4.11383200   0.12193944   0.17879146   0.97630137
+172  1784.7300  -425.0000  -575.0000  -423.9018  -572.2976    74.5908   0.20683894   4.07486534   0.12223609   0.16502739   0.97868496
+173  1763.2600  -425.0000  -525.0000  -423.9018  -522.9382    66.6407   0.19579971   4.03120852   0.12251082   0.15113306   0.98089242
+174  1763.2600  -425.0000  -475.0000  -423.9018  -473.4697    59.3921   0.18509875   3.98217154   0.12276290   0.13711789   0.98291808
+175  1763.2600  -425.0000  -425.0000  -423.9018  -423.9018    52.8508   0.17482582   3.92699075   0.12299177   0.12299175   0.98475683
+176  1745.0699  -425.0000  -375.0000  -423.9018  -374.2443    47.0223   0.16508774   3.86485481   0.12319676   0.10876501   0.98640394
+177  1745.0699  -425.0000  -325.0000  -423.9018  -324.5073    41.9114   0.15601057   3.79495573   0.12337735   0.09444840   0.98785502
+178  1745.0699  -425.0000  -275.0000  -423.9018  -274.7011    37.5226   0.14774057   3.71658182   0.12353308   0.08005315   0.98910618
+179  1730.0601  -425.0000  -225.0000  -423.9018  -224.8361    33.8594   0.14044267   3.62926078   0.12366351   0.06559070   0.99015415
+180  1730.0601  -425.0000  -175.0000  -423.9018  -174.9228    30.9251   0.13429515   3.53295588   0.12376827   0.05107290   0.99099594
+181  1730.0601  -425.0000  -125.0000  -423.9018  -124.9719    28.7222   0.12947854   3.42828417   0.12384712   0.03651177   0.99162936
+182  1730.0601  -425.0000   -75.0000  -423.9018   -74.9939    27.2525   0.12615816   3.31669426   0.12389979   0.02191953   0.99205261
+183  1730.0601  -425.0000   -25.0000  -423.9018   -24.9998    26.5173   0.12446258   3.20049977   0.12392616   0.00730859   0.99226451
+184  1730.0601  -425.0000    25.0000  -423.9018    24.9998    26.5173   0.12446258   3.08268547   0.12392616  -0.00730860   0.99226451
+185  1730.0601  -425.0000    75.0000  -423.9018    74.9939    27.2525   0.12615816   2.96649098   0.12389978  -0.02191954   0.99205261
+186  1730.0601  -425.0000   125.0000  -423.9018   124.9719    28.7222   0.12947854   2.85490108   0.12384711  -0.03651178   0.99162936
+187  1730.0601  -425.0000   175.0000  -423.9018   174.9228    30.9251   0.13429515   2.75022936   0.12376826  -0.05107291   0.99099594
+188  1730.0601  -425.0000   225.0000  -423.9018   224.8361    33.8594   0.14044267   2.65392447   0.12366351  -0.06559071   0.99015415
+189  1745.0699  -425.0000   275.0000  -423.9018   274.7011    37.5226   0.14774057   2.56660342   0.12353307  -0.08005316   0.98910618
+190  1745.0699  -425.0000   325.0000  -423.9018   324.5073    41.9114   0.15601057   2.48822951   0.12337734  -0.09444841   0.98785502
+191  1745.0699  -425.0000   375.0000  -423.9018   374.2443    47.0223   0.16508774   2.41833043   0.12319675  -0.10876501   0.98640394
+192  1763.2600  -425.0000   425.0000  -423.9018   423.9018    52.8508   0.17482582   2.35619450   0.12299176  -0.12299176   0.98475683
+193  1763.2600  -425.0000   475.0000  -423.9018   473.4697    59.3921   0.18509875   2.30101371   0.12276290  -0.13711789   0.98291808
+194  1763.2600  -425.0000   525.0000  -423.9018   522.9382    66.6407   0.19579971   2.25197673   0.12251081  -0.15113306   0.98089242
+195  1784.7300  -425.0000   575.0000  -423.9018   572.2976    74.5908   0.20683894   2.20831990   0.12223608  -0.16502741   0.97868496
+196  1784.7300  -425.0000   625.0000  -423.9018   621.5383    83.2357   0.21814133   2.16935325   0.12193943  -0.17879148   0.97630137
+197  1784.7300  -425.0000   675.0000  -423.9018   670.6511    92.5685   0.22964412   2.13446712   0.12162159  -0.19241638   0.97374749
+198  1805.4000  -425.0000   725.0000  -423.9018   719.6271   102.5817   0.24129471   2.10313106   0.12128330  -0.20589380   0.97102940
+199  1805.4000  -375.0000  -775.0000  -374.2443  -768.4574   107.4391   0.24671859   4.25918961   0.10693172   0.21956910   0.96971905
+200  1805.4000  -375.0000  -725.0000  -374.2443  -719.6271    96.7532   0.23459409   4.23282814   0.10724919   0.20622751   0.97260875
+201  1784.7300  -375.0000  -675.0000  -374.2443  -670.6511    86.7400   0.22253957   4.20340061   0.10754935   0.19272996   0.97534007
+202  1784.7300  -375.0000  -625.0000  -374.2443  -621.5383    77.4072   0.21059583   4.17040777   0.10783134   0.17908438   0.97790653
+203  1763.2600  -375.0000  -575.0000  -374.2443  -572.2976    68.7622   0.19881210   4.13325405   0.10809449   0.16529910   0.98030186
+204  1763.2600  -375.0000  -525.0000  -374.2443  -522.9382    60.8122   0.18724811   4.09123230   0.10833825   0.15138300   0.98252022
+205  1763.2600  -375.0000  -475.0000  -374.2443  -473.4697    53.5636   0.17597687   4.04351139   0.10856193   0.13734560   0.98455596
+206  1745.0699  -375.0000  -425.0000  -374.2443  -423.9018    47.0223   0.16508774   3.98912668   0.10876502   0.12319674   0.98640394
+207  1745.0699  -375.0000  -375.0000  -374.2443  -374.2443    41.1938   0.15469038   3.92699075   0.10894691   0.10894690   0.98805928
+208  1730.0601  -375.0000  -325.0000  -374.2443  -324.5073    36.0829   0.14491870   3.85593081   0.10910714   0.09460682   0.98951763
+209  1730.0601  -375.0000  -275.0000  -374.2443  -274.7011    31.6941   0.13593437   3.77478480   0.10924534   0.08018775   0.99077517
+210  1730.0601  -375.0000  -225.0000  -374.2443  -224.8361    28.0309   0.12792800   3.68258071   0.10936105   0.06570122   0.99182838
+211  1730.0601  -375.0000  -175.0000  -374.2443  -174.9228    25.0966   0.12111574   3.57882404   0.10945402   0.05115911   0.99267447
+212  1718.1400  -375.0000  -125.0000  -374.2443  -124.9719    22.8936   0.11572728   3.46388125   0.10952397   0.03657348   0.99331105
+213  1718.1400  -375.0000   -75.0000  -374.2443   -74.9939    21.4240   0.11198288   3.33936071   0.10957072   0.02195659   0.99373645
+214  1718.1400  -375.0000   -25.0000  -374.2443   -24.9998    20.6888   0.11006044   3.20829415   0.10959412   0.00732095   0.99394947
+215  1718.1400  -375.0000    25.0000  -374.2443    24.9998    20.6888   0.11006044   3.07489109   0.10959412  -0.00732096   0.99394947
+216  1718.1400  -375.0000    75.0000  -374.2443    74.9939    21.4240   0.11198288   2.94382453   0.10957072  -0.02195660   0.99373645
+217  1718.1400  -375.0000   125.0000  -374.2443   124.9719    22.8936   0.11572728   2.81930399   0.10952397  -0.03657348   0.99331105
+218  1730.0601  -375.0000   175.0000  -374.2443   174.9228    25.0966   0.12111574   2.70436120   0.10945402  -0.05115911   0.99267447
+219  1730.0601  -375.0000   225.0000  -374.2443   224.8361    28.0309   0.12792800   2.60060453   0.10936105  -0.06570123   0.99182838
+220  1730.0601  -375.0000   275.0000  -374.2443   274.7011    31.6941   0.13593437   2.50840044   0.10924533  -0.08018775   0.99077517
+221  1730.0601  -375.0000   325.0000  -374.2443   324.5073    36.0829   0.14491870   2.42725444   0.10910714  -0.09460682   0.98951763
+222  1745.0699  -375.0000   375.0000  -374.2443   374.2443    41.1938   0.15469038   2.35619450   0.10894690  -0.10894690   0.98805928
+223  1745.0699  -375.0000   425.0000  -374.2443   423.9018    47.0223   0.16508774   2.29405856   0.10876501  -0.12319675   0.98640394
+224  1763.2600  -375.0000   475.0000  -374.2443   473.4697    53.5636   0.17597687   2.23967409   0.10856196  -0.13734558   0.98455596
+225  1763.2600  -375.0000   525.0000  -374.2443   522.9382    60.8122   0.18724811   2.19195318   0.10833827  -0.15138298   0.98252022
+226  1763.2600  -375.0000   575.0000  -374.2443   572.2976    68.7622   0.19881210   2.14993143   0.10809452  -0.16529909   0.98030186
+227  1784.7300  -375.0000   625.0000  -374.2443   621.5383    77.4072   0.21059583   2.11277747   0.10783133  -0.17908438   0.97790653
+228  1784.7300  -375.0000   675.0000  -374.2443   670.6511    86.7400   0.22253957   2.07978463   0.10754935  -0.19272998   0.97534007
+229  1805.4000  -375.0000   725.0000  -374.2443   719.6271    96.7532   0.23459409   2.05035734   0.10724922  -0.20622748   0.97260875
+230  1805.4000  -375.0000   775.0000  -374.2443   768.4574   107.4391   0.24671859   2.02399588   0.10693175  -0.21956909   0.96971905
+231  1805.4000  -325.0000  -825.0000  -324.5073  -817.1337   113.6783   0.25348800   4.33436012   0.09256094   0.23307529   0.96804357
+232  1805.4000  -325.0000  -775.0000  -324.5073  -768.4574   102.3282   0.24100770   4.31282091   0.09285192   0.21988018   0.97109795
+233  1784.7300  -325.0000  -725.0000  -324.5073  -719.6271    91.6424   0.22853206   4.28875494   0.09312844   0.20652141   0.97399998
+234  1784.7300  -325.0000  -675.0000  -324.5073  -670.6511    81.6291   0.21609105   4.26172924   0.09338972   0.19300620   0.97674304
+235  1784.7300  -325.0000  -625.0000  -324.5073  -621.5383    72.2963   0.20372099   4.23121548   0.09363527   0.17934240   0.97932053
+236  1763.2600  -325.0000  -575.0000  -324.5073  -572.2976    63.6514   0.19146617   4.19656849   0.09386449   0.16553842   0.98172629
+237  1763.2600  -325.0000  -525.0000  -324.5073  -522.9382    55.7014   0.17938119   4.15699863   0.09407679   0.15160315   0.98395431
+238  1745.0699  -325.0000  -475.0000  -324.5073  -473.4697    48.4527   0.16753416   4.11154175   0.09427157   0.13754617   0.98599893
+239  1745.0699  -325.0000  -425.0000  -324.5073  -423.9018    41.9114   0.15601057   4.05902576   0.09444842   0.12337733   0.98785502
+240  1730.0601  -325.0000  -375.0000  -324.5073  -374.2443    36.0829   0.14491870   3.99805069   0.09460683   0.10910714   0.98951763
+241  1730.0601  -325.0000  -325.0000  -324.5073  -324.5073    30.9721   0.13439584   3.92699075   0.09474639   0.09474638   0.99098247
+242  1730.0601  -325.0000  -275.0000  -324.5073  -274.7011    26.5832   0.12461551   3.84406137   0.09486675   0.08030634   0.99224555
+243  1718.1400  -325.0000  -225.0000  -324.5073  -224.8361    22.9200   0.11579338   3.74750638   0.09496753   0.06579861   0.99330342
+244  1718.1400  -325.0000  -175.0000  -324.5073  -174.9228    19.9857   0.10818893   3.63598323   0.09504850   0.05123505   0.99415326
+245  1718.1400  -325.0000  -125.0000  -324.5073  -124.9719    17.7828   0.10209588   3.50919962   0.09510943   0.03662784   0.99479276
+246  1718.1400  -325.0000   -75.0000  -324.5073   -74.9939    16.3131   0.09781386   3.36870623   0.09515014   0.02198927   0.99522007
+247  1718.1400  -325.0000   -25.0000  -324.5073   -24.9998    15.5779   0.09559806   3.21847987   0.09517052   0.00733185   0.99543399
+248  1718.1400  -325.0000    25.0000  -324.5073    24.9998    15.5779   0.09559806   3.06470537   0.09517052  -0.00733186   0.99543399
+249  1718.1400  -325.0000    75.0000  -324.5073    74.9939    16.3131   0.09781386   2.91447902   0.09515014  -0.02198927   0.99522007
+250  1718.1400  -325.0000   125.0000  -324.5073   124.9719    17.7828   0.10209588   2.77398562   0.09510943  -0.03662785   0.99479276
+251  1718.1400  -325.0000   175.0000  -324.5073   174.9228    19.9857   0.10818893   2.64720201   0.09504850  -0.05123506   0.99415326
+252  1718.1400  -325.0000   225.0000  -324.5073   224.8361    22.9200   0.11579338   2.53567886   0.09496753  -0.06579862   0.99330342
+253  1730.0601  -325.0000   275.0000  -324.5073   274.7011    26.5832   0.12461551   2.43912387   0.09486674  -0.08030635   0.99224555
+254  1730.0601  -325.0000   325.0000  -324.5073   324.5073    30.9721   0.13439584   2.35619450   0.09474638  -0.09474638   0.99098247
+255  1730.0601  -325.0000   375.0000  -324.5073   374.2443    36.0829   0.14491870   2.28513455   0.09460682  -0.10910714   0.98951763
+256  1745.0699  -325.0000   425.0000  -324.5073   423.9018    41.9114   0.15601057   2.22415948   0.09444841  -0.12337734   0.98785502
+257  1745.0699  -325.0000   475.0000  -324.5073   473.4697    48.4527   0.16753416   2.17164350   0.09427156  -0.13754617   0.98599893
+258  1763.2600  -325.0000   525.0000  -324.5073   522.9382    55.7014   0.17938119   2.12618661   0.09407678  -0.15160315   0.98395431
+259  1763.2600  -325.0000   575.0000  -324.5073   572.2976    63.6514   0.19146617   2.08661675   0.09386447  -0.16553843   0.98172629
+260  1784.7300  -325.0000   625.0000  -324.5073   621.5383    72.2963   0.20372099   2.05197001   0.09363530  -0.17934239   0.97932053
+261  1784.7300  -325.0000   675.0000  -324.5073   670.6511    81.6291   0.21609105   2.02145600   0.09338970  -0.19300620   0.97674304
+262  1784.7300  -325.0000   725.0000  -324.5073   719.6271    91.6424   0.22853206   1.99443018   0.09312840  -0.20652142   0.97399998
+263  1805.4000  -325.0000   775.0000  -324.5073   768.4574   102.3282   0.24100770   1.97036433   0.09285191  -0.21988019   0.97109795
+264  1805.4000  -325.0000   825.0000  -324.5073   817.1337   113.6783   0.25348800   1.94882500   0.09256089  -0.23307531   0.96804357
+265  1805.4000  -275.0000  -825.0000  -274.7011  -817.1337   109.2895   0.24874869   4.38808203   0.07844935   0.23335785   0.96922123
+266  1805.4000  -275.0000  -775.0000  -274.7011  -768.4574    97.9393   0.23597544   4.36907434   0.07869659   0.22014840   0.97228676
+267  1784.7300  -275.0000  -725.0000  -274.7011  -719.6271    87.2535   0.22317588   4.34773350   0.07893158   0.20677482   0.97519946
+268  1784.7300  -275.0000  -675.0000  -274.7011  -670.6511    77.2402   0.21037526   4.32363129   0.07915356   0.19324438   0.97795260
+269  1763.2600  -275.0000  -625.0000  -274.7011  -621.5383    67.9074   0.19760442   4.29623318   0.07936222   0.17956488   0.98053968
+270  1763.2600  -275.0000  -575.0000  -274.7011  -572.2976    59.2625   0.18490130   4.26487160   0.07955696   0.16574478   0.98295438
+271  1745.0699  -275.0000  -525.0000  -274.7011  -522.9382    51.3125   0.17231330   4.22870445   0.07973734   0.15179303   0.98519075
+272  1745.0699  -275.0000  -475.0000  -274.7011  -473.4697    44.0639   0.15990058   4.18666506   0.07990288   0.13771911   0.98724312
+273  1745.0699  -275.0000  -425.0000  -274.7011  -423.9018    37.5226   0.14774057   4.13739967   0.08005317   0.12353306   0.98910618
+274  1730.0601  -275.0000  -375.0000  -274.7011  -374.2443    31.6941   0.13593437   4.07919693   0.08018774   0.10924534   0.99077517
+275  1730.0601  -275.0000  -325.0000  -274.7011  -324.5073    26.5832   0.12461551   4.00992012   0.08030636   0.09486674   0.99224555
+276  1718.1400  -275.0000  -275.0000  -274.7011  -274.7011    22.1943   0.11396147   3.92699075   0.08040862   0.08040861   0.99351341
+277  1718.1400  -275.0000  -225.0000  -274.7011  -224.8361    18.5312   0.10420696   3.82749796   0.08049427   0.06588258   0.99457538
+278  1718.1400  -275.0000  -175.0000  -274.7011  -174.9228    15.5969   0.09565578   3.70861459   0.08056308   0.05130055   0.99542850
+279  1718.1400  -275.0000  -125.0000  -274.7011  -124.9719    13.3939   0.08868136   3.56854510   0.08061485   0.03667473   0.99607038
+280  1709.2200  -275.0000   -75.0000  -274.7011   -74.9939    11.9242   0.08369853   3.40810013   0.08064944   0.02201744   0.99649930
+281  1709.2200  -275.0000   -25.0000  -274.7011   -24.9998    11.1891   0.08108898   3.23234987   0.08066677   0.00734126   0.99671412
+282  1709.2200  -275.0000    25.0000  -274.7011    24.9998    11.1891   0.08108898   3.05083537   0.08066677  -0.00734126   0.99671412
+283  1709.2200  -275.0000    75.0000  -274.7011    74.9939    11.9242   0.08369853   2.87508512   0.08064944  -0.02201744   0.99649930
+284  1718.1400  -275.0000   125.0000  -274.7011   124.9719    13.3939   0.08868136   2.71464014   0.08061485  -0.03667473   0.99607038
+285  1718.1400  -275.0000   175.0000  -274.7011   174.9228    15.5969   0.09565578   2.57457066   0.08056307  -0.05130056   0.99542850
+286  1718.1400  -275.0000   225.0000  -274.7011   224.8361    18.5312   0.10420696   2.45568728   0.08049427  -0.06588258   0.99457538
+287  1718.1400  -275.0000   275.0000  -274.7011   274.7011    22.1943   0.11396147   2.35619450   0.08040862  -0.08040861   0.99351341
+288  1730.0601  -275.0000   325.0000  -274.7011   324.5073    26.5832   0.12461551   2.27326512   0.08030635  -0.09486674   0.99224555
+289  1730.0601  -275.0000   375.0000  -274.7011   374.2443    31.6941   0.13593437   2.20398855   0.08018775  -0.10924533   0.99077517
+290  1745.0699  -275.0000   425.0000  -274.7011   423.9018    37.5226   0.14774057   2.14578557   0.08005317  -0.12353307   0.98910618
+291  1745.0699  -275.0000   475.0000  -274.7011   473.4697    44.0639   0.15990058   2.09652019   0.07990287  -0.13771912   0.98724312
+292  1745.0699  -275.0000   525.0000  -274.7011   522.9382    51.3125   0.17231330   2.05448103   0.07973737  -0.15179302   0.98519075
+293  1763.2600  -275.0000   575.0000  -274.7011   572.2976    59.2625   0.18490130   2.01831388   0.07955699  -0.16574477   0.98295438
+294  1763.2600  -275.0000   625.0000  -274.7011   621.5383    67.9074   0.19760442   1.98695219   0.07936223  -0.17956488   0.98053968
+295  1784.7300  -275.0000   675.0000  -274.7011   670.6511    77.2402   0.21037526   1.95955420   0.07915360  -0.19324437   0.97795260
+296  1784.7300  -275.0000   725.0000  -274.7011   719.6271    87.2535   0.22317588   1.93545163   0.07893155  -0.20677483   0.97519946
+297  1805.4000  -275.0000   775.0000  -274.7011   768.4574    97.9393   0.23597544   1.91411114   0.07869663  -0.22014838   0.97228676
+298  1805.4000  -275.0000   825.0000  -274.7011   817.1337   109.2895   0.24874869   1.89510345   0.07844940  -0.23335783   0.96922123
+299  1805.4000  -225.0000  -825.0000  -224.8361  -817.1337   105.6263   0.24471071   4.44388151   0.06427396   0.23359443   0.97020745
+300  1805.4000  -225.0000  -775.0000  -224.8361  -768.4574    94.2762   0.23167872   4.42775249   0.06447694   0.22037302   0.97328234
+301  1784.7300  -225.0000  -725.0000  -224.8361  -719.6271    83.5904   0.21859103   4.40956402   0.06466985   0.20698705   0.97620398
+302  1784.7300  -225.0000  -675.0000  -224.8361  -670.6511    73.5771   0.20546794   4.38891411   0.06485211   0.19344383   0.97896564
+303  1763.2600  -225.0000  -625.0000  -224.8361  -621.5383    64.2443   0.19233420   4.36529255   0.06502347   0.17975119   0.98156071
+304  1763.2600  -225.0000  -575.0000  -224.8361  -572.2976    55.5994   0.17922038   4.33804798   0.06518333   0.16591761   0.98398298
+305  1745.0699  -225.0000  -525.0000  -224.8361  -522.9382    47.6494   0.16616496   4.30633497   0.06533144   0.15195201   0.98622632
+306  1745.0699  -225.0000  -475.0000  -224.8361  -473.4697    40.4007   0.15321741   4.26904774   0.06546730   0.13786399   0.98828518
+307  1730.0601  -225.0000  -425.0000  -224.8361  -423.9018    33.8594   0.14044267   4.22472095   0.06559069   0.12366351   0.99015415
+308  1730.0601  -225.0000  -375.0000  -224.8361  -374.2443    28.0309   0.12792800   4.17140102   0.06570122   0.10936106   0.99182838
+309  1718.1400  -225.0000  -325.0000  -224.8361  -324.5073    22.9200   0.11579338   4.10647535   0.06579860   0.09496754   0.99330342
+310  1718.1400  -225.0000  -275.0000  -224.8361  -274.7011    18.5312   0.10420696   4.02648354   0.06588259   0.08049426   0.99457538
+311  1718.1400  -225.0000  -225.0000  -224.8361  -224.8361    14.8680   0.09340727   3.92699075   0.06595291   0.06595290   0.99564070
+312  1709.2200  -225.0000  -175.0000  -224.8361  -174.9228    11.9337   0.08373164   3.80277514   0.06600940   0.05135541   0.99649656
+313  1709.2200  -225.0000  -125.0000  -224.8361  -124.9719     9.7308   0.07564178   3.64890504   0.06605192   0.03671400   0.99714053
+314  1709.2200  -225.0000   -75.0000  -224.8361   -74.9939     8.2611   0.06971575   3.46353745   0.06608032   0.02204104   0.99757081
+315  1709.2200  -225.0000   -25.0000  -224.8361   -24.9998     7.5259   0.06655098   3.25232887   0.06609455   0.00734912   0.99778628
+316  1709.2200  -225.0000    25.0000  -224.8361    24.9998     7.5259   0.06655098   3.03085637   0.06609455  -0.00734913   0.99778628
+317  1709.2200  -225.0000    75.0000  -224.8361    74.9939     8.2611   0.06971575   2.81964779   0.06608032  -0.02204104   0.99757081
+318  1709.2200  -225.0000   125.0000  -224.8361   124.9719     9.7308   0.07564178   2.63428020   0.06605192  -0.03671401   0.99714053
+319  1709.2200  -225.0000   175.0000  -224.8361   174.9228    11.9337   0.08373164   2.48041010   0.06600939  -0.05135541   0.99649656
+320  1718.1400  -225.0000   225.0000  -224.8361   224.8361    14.8680   0.09340727   2.35619450   0.06595290  -0.06595290   0.99564070
+321  1718.1400  -225.0000   275.0000  -224.8361   274.7011    18.5312   0.10420696   2.25670171   0.06588259  -0.08049427   0.99457538
+322  1718.1400  -225.0000   325.0000  -224.8361   324.5073    22.9200   0.11579338   2.17671013   0.06579862  -0.09496752   0.99330342
+323  1730.0601  -225.0000   375.0000  -224.8361   374.2443    28.0309   0.12792800   2.11178446   0.06570123  -0.10936105   0.99182838
+324  1730.0601  -225.0000   425.0000  -224.8361   423.9018    33.8594   0.14044267   2.05846453   0.06559071  -0.12366351   0.99015415
+325  1745.0699  -225.0000   475.0000  -224.8361   473.4697    40.4007   0.15321741   2.01413774   0.06546732  -0.13786398   0.98828518
+326  1745.0699  -225.0000   525.0000  -224.8361   522.9382    47.6494   0.16616496   1.97685027   0.06533142  -0.15195201   0.98622632
+327  1763.2600  -225.0000   575.0000  -224.8361   572.2976    55.5994   0.17922038   1.94513738   0.06518334  -0.16591759   0.98398298
+328  1763.2600  -225.0000   625.0000  -224.8361   621.5383    64.2443   0.19233420   1.91789258   0.06502344  -0.17975120   0.98156071
+329  1784.7300  -225.0000   675.0000  -224.8361   670.6511    73.5771   0.20546794   1.89427125   0.06485213  -0.19344383   0.97896564
+330  1784.7300  -225.0000   725.0000  -224.8361   719.6271    83.5904   0.21859103   1.87362123   0.06466983  -0.20698707   0.97620398
+331  1805.4000  -225.0000   775.0000  -224.8361   768.4574    94.2762   0.23167872   1.85543299   0.06447698  -0.22037300   0.97328234
+332  1805.4000  -225.0000   825.0000  -224.8361   817.1337   105.6263   0.24471071   1.83930397   0.06427401  -0.23359442   0.97020745
+333  1805.4000  -175.0000  -825.0000  -174.9228  -817.1337   102.6920   0.24141937   4.50150299   0.05004597   0.23378444   0.97099960
+334  1784.7300  -175.0000  -775.0000  -174.9228  -768.4574    91.3419   0.22816989   4.48857403   0.05020426   0.22055343   0.97408199
+335  1784.7300  -175.0000  -725.0000  -174.9228  -719.6271    80.6560   0.21483852   4.47393942   0.05035462   0.20715754   0.97701085
+336  1763.2600  -175.0000  -675.0000  -174.9228  -670.6511    70.6428   0.20144072   4.45724821   0.05049680   0.19360405   0.97977936
+337  1763.2600  -175.0000  -625.0000  -174.9228  -621.5383    61.3100   0.18799514   4.43804979   0.05063047   0.17990088   0.98238093
+338  1763.2600  -175.0000  -575.0000  -174.9228  -572.2976    52.6651   0.17452455   4.41575670   0.05075516   0.16605642   0.98480922
+339  1745.0699  -175.0000  -525.0000  -174.9228  -522.9382    44.7151   0.16105770   4.38958883   0.05087066   0.15207973   0.98705822
+340  1745.0699  -175.0000  -475.0000  -174.9228  -473.4697    37.4664   0.14763157   4.35849380   0.05097670   0.13798034   0.98912221
+341  1730.0601  -175.0000  -425.0000  -174.9228  -423.9018    30.9251   0.13429515   4.32102585   0.05107289   0.12376827   0.99099594
+342  1730.0601  -175.0000  -375.0000  -174.9228  -374.2443    25.0966   0.12111574   4.27515745   0.05115912   0.10945401   0.99267447
+343  1718.1400  -175.0000  -325.0000  -174.9228  -324.5073    19.9857   0.10818893   4.21799850   0.05123504   0.09504851   0.99415326
+344  1718.1400  -175.0000  -275.0000  -174.9228  -274.7011    15.5969   0.09565578   4.14536715   0.05130054   0.08056308   0.99542850
+345  1709.2200  -175.0000  -225.0000  -174.9228  -224.8361    11.9337   0.08373164   4.05120659   0.05135540   0.06600941   0.99649656
+346  1709.2200  -175.0000  -175.0000  -174.9228  -174.9228     8.9994   0.07275400   3.92699075   0.05139948   0.05139947   0.99735457
+347  1709.2200  -175.0000  -125.0000  -174.9228  -124.9719     6.7965   0.06325255   3.76194453   0.05143264   0.03674555   0.99800020
+348  1703.3400  -175.0000   -75.0000  -174.9228   -74.9939     5.3268   0.05601357   3.54661465   0.05145480   0.02205999   0.99843162
+349  1703.3400  -175.0000   -25.0000  -174.9228   -24.9998     4.5916   0.05201230   3.28355026   0.05146589   0.00735545   0.99864769
+350  1703.3400  -175.0000    25.0000  -174.9228    24.9998     4.5916   0.05201230   2.99963498   0.05146589  -0.00735545   0.99864769
+351  1703.3400  -175.0000    75.0000  -174.9228    74.9939     5.3268   0.05601357   2.73657060   0.05145480  -0.02205999   0.99843162
+352  1709.2200  -175.0000   125.0000  -174.9228   124.9719     6.7965   0.06325255   2.52124071   0.05143264  -0.03674556   0.99800020
+353  1709.2200  -175.0000   175.0000  -174.9228   174.9228     8.9994   0.07275400   2.35619450   0.05139948  -0.05139948   0.99735457
+354  1709.2200  -175.0000   225.0000  -174.9228   224.8361    11.9337   0.08373164   2.23197889   0.05135541  -0.06600939   0.99649656
+355  1718.1400  -175.0000   275.0000  -174.9228   274.7011    15.5969   0.09565578   2.13781834   0.05130056  -0.08056307   0.99542850
+356  1718.1400  -175.0000   325.0000  -174.9228   324.5073    19.9857   0.10818893   2.06518698   0.05123506  -0.09504850   0.99415326
+357  1730.0601  -175.0000   375.0000  -174.9228   374.2443    25.0966   0.12111574   2.00802779   0.05115911  -0.10945402   0.99267447
+358  1730.0601  -175.0000   425.0000  -174.9228   423.9018    30.9251   0.13429515   1.96215951   0.05107290  -0.12376827   0.99099594
+359  1745.0699  -175.0000   475.0000  -174.9228   473.4697    37.4664   0.14763157   1.92469132   0.05097667  -0.13798036   0.98912221
+360  1745.0699  -175.0000   525.0000  -174.9228   522.9382    44.7151   0.16105770   1.89359653   0.05087067  -0.15207973   0.98705822
+361  1763.2600  -175.0000   575.0000  -174.9228   572.2976    52.6651   0.17452455   1.86742854   0.05075515  -0.16605642   0.98480922
+362  1763.2600  -175.0000   625.0000  -174.9228   621.5383    61.3100   0.18799514   1.84513545   0.05063045  -0.17990088   0.98238093
+363  1763.2600  -175.0000   675.0000  -174.9228   670.6511    70.6428   0.20144072   1.82593727   0.05049684  -0.19360405   0.97977936
+364  1784.7300  -175.0000   725.0000  -174.9228   719.6271    80.6560   0.21483852   1.80924606   0.05035466  -0.20715752   0.97701085
+365  1784.7300  -175.0000   775.0000  -174.9228   768.4574    91.3419   0.22816989   1.79461122   0.05020425  -0.22055343   0.97408199
+366  1805.4000  -175.0000   825.0000  -174.9228   817.1337   102.6920   0.24141937   1.78168225   0.05004595  -0.23378444   0.97099960
+367  1805.4000  -125.0000  -825.0000  -124.9719  -817.1337   100.4890   0.23891383   4.56062555   0.03577672   0.23392743   0.97159559
+368  1784.7300  -125.0000  -775.0000  -124.9719  -768.4574    89.1389   0.22549459   4.55117321   0.03589005   0.22068916   0.97468364
+369  1784.7300  -125.0000  -725.0000  -124.9719  -719.6271    78.4531   0.21197213   4.54044199   0.03599764   0.20728581   0.97761792
+370  1763.2600  -125.0000  -675.0000  -124.9719  -670.6511    68.4398   0.19835755   4.52815771   0.03609947   0.19372459   0.98039156
+371  1763.2600  -125.0000  -625.0000  -124.9719  -621.5383    59.1070   0.18466403   4.51396608   0.03619507   0.18001349   0.98299801
+372  1745.0699  -125.0000  -575.0000  -124.9719  -572.2976    50.4621   0.17090724   4.49739504   0.03628436   0.16616090   0.98543090
+373  1745.0699  -125.0000  -525.0000  -124.9719  -522.9382    42.5121   0.15710649   4.47780848   0.03636701   0.15217583   0.98768413
+374  1730.0601  -125.0000  -475.0000  -124.9719  -473.4697    35.2635   0.14328626   4.45432568   0.03644286   0.13806790   0.98975205
+375  1730.0601  -125.0000  -425.0000  -124.9719  -423.9018    28.7222   0.12947854   4.42569733   0.03651179   0.12384711   0.99162936
+376  1718.1400  -125.0000  -375.0000  -124.9719  -374.2443    22.8936   0.11572728   4.39010048   0.03657347   0.10952397   0.99331105
+377  1718.1400  -125.0000  -325.0000  -124.9719  -324.5073    17.7828   0.10209588   4.34478188   0.03662786   0.09510942   0.99479276
+378  1718.1400  -125.0000  -275.0000  -124.9719  -274.7011    13.3939   0.08868136   4.28543663   0.03667472   0.08061485   0.99607038
+379  1709.2200  -125.0000  -225.0000  -124.9719  -224.8361     9.7308   0.07564178   4.20507669   0.03671400   0.06605193   0.99714053
+380  1709.2200  -125.0000  -175.0000  -124.9719  -174.9228     6.7965   0.06325255   4.09203720   0.03674555   0.05143264   0.99800020
+381  1703.3400  -125.0000  -125.0000  -124.9719  -124.9719     4.5935   0.05202308   3.92699075   0.03676929   0.03676928   0.99864709
+382  1703.3400  -125.0000   -75.0000  -124.9719   -74.9939     3.1238   0.04291328   3.68207526   0.03678515   0.02207425   0.99907935
+383  1703.3400  -125.0000   -25.0000  -124.9719   -24.9998     2.3887   0.03753085   3.33902979   0.03679309   0.00736021   0.99929577
+384  1703.3400  -125.0000    25.0000  -124.9719    24.9998     2.3887   0.03753085   2.94415545   0.03679309  -0.00736021   0.99929577
+385  1703.3400  -125.0000    75.0000  -124.9719    74.9939     3.1238   0.04291328   2.60110998   0.03678515  -0.02207425   0.99907935
+386  1703.3400  -125.0000   125.0000  -124.9719   124.9719     4.5935   0.05202308   2.35619450   0.03676929  -0.03676928   0.99864709
+387  1709.2200  -125.0000   175.0000  -124.9719   174.9228     6.7965   0.06325255   2.19114828   0.03674556  -0.05143264   0.99800020
+388  1709.2200  -125.0000   225.0000  -124.9719   224.8361     9.7308   0.07564178   2.07810879   0.03671401  -0.06605192   0.99714053
+389  1718.1400  -125.0000   275.0000  -124.9719   274.7011    13.3939   0.08868136   1.99774885   0.03667473  -0.08061485   0.99607038
+390  1718.1400  -125.0000   325.0000  -124.9719   324.5073    17.7828   0.10209588   1.93840337   0.03662785  -0.09510943   0.99479276
+391  1718.1400  -125.0000   375.0000  -124.9719   374.2443    22.8936   0.11572728   1.89308500   0.03657349  -0.10952397   0.99331105
+392  1730.0601  -125.0000   425.0000  -124.9719   423.9018    28.7222   0.12947854   1.85748792   0.03651178  -0.12384711   0.99162936
+393  1730.0601  -125.0000   475.0000  -124.9719   473.4697    35.2635   0.14328626   1.82885981   0.03644289  -0.13806790   0.98975205
+394  1745.0699  -125.0000   525.0000  -124.9719   522.9382    42.5121   0.15710649   1.80537689   0.03636702  -0.15217583   0.98768413
+395  1745.0699  -125.0000   575.0000  -124.9719   572.2976    50.4621   0.17090724   1.78579009   0.03628433  -0.16616090   0.98543090
+396  1763.2600  -125.0000   625.0000  -124.9719   621.5383    59.1070   0.18466403   1.76921928   0.03619508  -0.18001349   0.98299801
+397  1763.2600  -125.0000   675.0000  -124.9719   670.6511    68.4398   0.19835755   1.75502741   0.03609944  -0.19372460   0.98039156
+398  1784.7300  -125.0000   725.0000  -124.9719   719.6271    78.4531   0.21197213   1.74274349   0.03599767  -0.20728581   0.97761792
+399  1784.7300  -125.0000   775.0000  -124.9719   768.4574    89.1389   0.22549459   1.73201191   0.03589001  -0.22068916   0.97468364
+400  1805.4000  -125.0000   825.0000  -124.9719   817.1337   100.4890   0.23891383   1.72255969   0.03577671  -0.23392743   0.97159559
+401  1805.4000   -75.0000  -825.0000   -74.9939  -817.1337    99.0194   0.23722523   4.62086868   0.02147785   0.23402296   0.97199380
+402  1784.7300   -75.0000  -775.0000   -74.9939  -768.4574    87.6692   0.22368950   4.61510706   0.02154590   0.22077987   0.97508568
+403  1784.7300   -75.0000  -725.0000   -74.9939  -719.6271    76.9834   0.21003537   4.60855150   0.02161066   0.20737149   0.97802353
+404  1763.2600   -75.0000  -675.0000   -74.9939  -670.6511    66.9702   0.19627079   4.60102892   0.02167181   0.19380516   0.98080063
+405  1763.2600   -75.0000  -625.0000   -74.9939  -621.5383    57.6373   0.18240470   4.59231091   0.02172924   0.18008873   0.98341036
+406  1745.0699   -75.0000  -575.0000   -74.9939  -572.2976    48.9924   0.16844730   4.58209133   0.02178288   0.16623069   0.98584628
+407  1745.0699   -75.0000  -525.0000   -74.9939  -522.9382    41.0424   0.15441042   4.56995153   0.02183253   0.15224004   0.98810238
+408  1730.0601   -75.0000  -475.0000   -74.9939  -473.4697    33.7938   0.14030823   4.55530167   0.02187816   0.13812639   0.99017292
+409  1730.0601   -75.0000  -425.0000   -74.9939  -423.9018    27.2525   0.12615816   4.53728724   0.02191955   0.12389978   0.99205261
+410  1718.1400   -75.0000  -375.0000   -74.9939  -374.2443    21.4240   0.11198288   4.51462078   0.02195661   0.10957072   0.99373645
+411  1718.1400   -75.0000  -325.0000   -74.9939  -324.5073    16.3131   0.09781386   4.48527527   0.02198928   0.09515014   0.99522007
+412  1709.2200   -75.0000  -275.0000   -74.9939  -274.7011    11.9242   0.08369853   4.44588137   0.02201745   0.08064944   0.99649930
+413  1709.2200   -75.0000  -225.0000   -74.9939  -224.8361     8.2611   0.06971575   4.39044428   0.02204103   0.06608032   0.99757081
+414  1703.3400   -75.0000  -175.0000   -74.9939  -174.9228     5.3268   0.05601357   4.30736685   0.02206000   0.05145480   0.99843162
+415  1703.3400   -75.0000  -125.0000   -74.9939  -124.9719     3.1238   0.04291328   4.17190647   0.02207424   0.03678515   0.99907935
+416  1703.3400   -75.0000   125.0000   -74.9939   124.9719     3.1238   0.04291328   2.11127901   0.02207425  -0.03678515   0.99907935
+417  1703.3400   -75.0000   175.0000   -74.9939   174.9228     5.3268   0.05601357   1.97581840   0.02205999  -0.05145480   0.99843162
+418  1709.2200   -75.0000   225.0000   -74.9939   224.8361     8.2611   0.06971575   1.89274108   0.02204103  -0.06608032   0.99757081
+419  1709.2200   -75.0000   275.0000   -74.9939   274.7011    11.9242   0.08369853   1.83730388   0.02201744  -0.08064944   0.99649930
+420  1718.1400   -75.0000   325.0000   -74.9939   324.5073    16.3131   0.09781386   1.79790998   0.02198927  -0.09515014   0.99522007
+421  1718.1400   -75.0000   375.0000   -74.9939   374.2443    21.4240   0.11198288   1.76856446   0.02195660  -0.10957072   0.99373645
+422  1730.0601   -75.0000   425.0000   -74.9939   423.9018    27.2525   0.12615816   1.74589789   0.02191953  -0.12389979   0.99205261
+423  1730.0601   -75.0000   475.0000   -74.9939   473.4697    33.7938   0.14030823   1.72788346   0.02187813  -0.13812639   0.99017292
+424  1745.0699   -75.0000   525.0000   -74.9939   522.9382    41.0424   0.15441042   1.71323395   0.02183256  -0.15224004   0.98810238
+425  1745.0699   -75.0000   575.0000   -74.9939   572.2976    48.9924   0.16844730   1.70109391   0.02178287  -0.16623069   0.98584628
+426  1763.2600   -75.0000   625.0000   -74.9939   621.5383    57.6373   0.18240470   1.69087434   0.02172923  -0.18008873   0.98341036
+427  1763.2600   -75.0000   675.0000   -74.9939   670.6511    66.9702   0.19627079   1.68215621   0.02167178  -0.19380516   0.98080063
+428  1784.7300   -75.0000   725.0000   -74.9939   719.6271    76.9834   0.21003537   1.67463362   0.02161062  -0.20737149   0.97802353
+429  1784.7300   -75.0000   775.0000   -74.9939   768.4574    87.6692   0.22368950   1.66807842   0.02154594  -0.22077985   0.97508568
+430  1805.4000   -75.0000   825.0000   -74.9939   817.1337    99.0194   0.23722523   1.66231668   0.02147786  -0.23402296   0.97199380
+431  1805.4000   -25.0000  -825.0000   -24.9998  -817.1337    98.2842   0.23637535   4.68180418   0.00716124   0.23407079   0.97219318
+432  1784.7300   -25.0000  -775.0000   -24.9998  -768.4574    86.9341   0.22278035   4.67986822   0.00718394   0.22082528   0.97528690
+433  1784.7300   -25.0000  -725.0000   -24.9998  -719.6271    76.2482   0.20905904   4.67766285   0.00720560   0.20741440   0.97822666
+434  1763.2600   -25.0000  -675.0000   -24.9998  -670.6511    66.2350   0.19521770   4.67512941   0.00722594   0.19384547   0.98100549
+435  1763.2600   -25.0000  -625.0000   -24.9998  -621.5383    56.9022   0.18126303   4.67218828   0.00724511   0.18012640   0.98361677
+436  1745.0699   -25.0000  -575.0000   -24.9998  -572.2976    48.2573   0.16720217   4.66873360   0.00726300   0.16626564   0.98605424
+437  1745.0699   -25.0000  -525.0000   -24.9998  -522.9382    40.3073   0.15304284   4.66461897   0.00727958   0.15227219   0.98831177
+438  1730.0601   -25.0000  -475.0000   -24.9998  -473.4697    33.0586   0.13879332   4.65963650   0.00729482   0.13815568   0.99038368
+439  1730.0601   -25.0000  -425.0000   -24.9998  -423.9018    26.5173   0.12446258   4.65348196   0.00730858   0.12392616   0.99226451
+440  1718.1400   -25.0000  -375.0000   -24.9998  -374.2443    20.6888   0.11006044   4.64568710   0.00732099   0.10959412   0.99394947
+441  1718.1400   -25.0000  -325.0000   -24.9998  -324.5073    15.5779   0.09559806   4.63550138   0.00733189   0.09517051   0.99543399
+442  1709.2200   -25.0000  -275.0000   -24.9998  -274.7011    11.1891   0.08108898   4.62163162   0.00734127   0.08066677   0.99671412
+443  1709.2200   -25.0000  -225.0000   -24.9998  -224.8361     7.5259   0.06655098   4.60165262   0.00734913   0.06609455   0.99778628
+444  1703.3400   -25.0000  -175.0000   -24.9998  -174.9228     4.5916   0.05201230   4.57043123   0.00735546   0.05146589   0.99864769
+445  1703.3400   -25.0000  -125.0000   -24.9998  -124.9719     2.3887   0.03753085   4.51495171   0.00736021   0.03679308   0.99929577
+446  1703.3400   -25.0000   125.0000   -24.9998   124.9719     2.3887   0.03753085   1.76823354   0.00736021  -0.03679309   0.99929577
+447  1703.3400   -25.0000   175.0000   -24.9998   174.9228     4.5916   0.05201230   1.71275401   0.00735545  -0.05146589   0.99864769
+448  1709.2200   -25.0000   225.0000   -24.9998   224.8361     7.5259   0.06655098   1.68153262   0.00734913  -0.06609455   0.99778628
+449  1709.2200   -25.0000   275.0000   -24.9998   274.7011    11.1891   0.08108898   1.66155362   0.00734127  -0.08066677   0.99671412
+450  1718.1400   -25.0000   325.0000   -24.9998   324.5073    15.5779   0.09559806   1.64768374   0.00733187  -0.09517051   0.99543399
+451  1718.1400   -25.0000   375.0000   -24.9998   374.2443    20.6888   0.11006044   1.63749802   0.00732097  -0.10959412   0.99394947
+452  1730.0601   -25.0000   425.0000   -24.9998   423.9018    26.5173   0.12446258   1.62970352   0.00730860  -0.12392616   0.99226451
+453  1730.0601   -25.0000   475.0000   -24.9998   473.4697    33.0586   0.13879332   1.62354863   0.00729480  -0.13815568   0.99038368
+454  1745.0699   -25.0000   525.0000   -24.9998   522.9382    40.3073   0.15304284   1.61856639   0.00727959  -0.15227219   0.98831177
+455  1745.0699   -25.0000   575.0000   -24.9998   572.2976    48.2573   0.16720217   1.61445177   0.00726301  -0.16626564   0.98605424
+456  1763.2600   -25.0000   625.0000   -24.9998   621.5383    56.9022   0.18126303   1.61099708   0.00724512  -0.18012640   0.98361677
+457  1763.2600   -25.0000   675.0000   -24.9998   670.6511    66.2350   0.19521770   1.60805595   0.00722595  -0.19384547   0.98100549
+458  1784.7300   -25.0000   725.0000   -24.9998   719.6271    76.2482   0.20905904   1.60552227   0.00720556  -0.20741440   0.97822666
+459  1784.7300   -25.0000   775.0000   -24.9998   768.4574    86.9341   0.22278035   1.60331726   0.00718398  -0.22082528   0.97528690
+460  1805.4000   -25.0000   825.0000   -24.9998   817.1337    98.2842   0.23637535   1.60138130   0.00716128  -0.23407079   0.97219318
+461  1805.4000    25.0000  -825.0000    24.9998  -817.1337    98.2842   0.23637535   4.74297380  -0.00716125   0.23407079   0.97219318
+462  1784.7300    25.0000  -775.0000    24.9998  -768.4574    86.9341   0.22278035   4.74490976  -0.00718394   0.22082528   0.97528690
+463  1784.7300    25.0000  -725.0000    24.9998  -719.6271    76.2482   0.20905904   4.74711514  -0.00720560   0.20741440   0.97822666
+464  1763.2600    25.0000  -675.0000    24.9998  -670.6511    66.2350   0.19521770   4.74964857  -0.00722595   0.19384547   0.98100549
+465  1763.2600    25.0000  -625.0000    24.9998  -621.5383    56.9022   0.18126303   4.75258970  -0.00724512   0.18012640   0.98361677
+466  1745.0699    25.0000  -575.0000    24.9998  -572.2976    48.2573   0.16720217   4.75604439  -0.00726301   0.16626564   0.98605424
+467  1745.0699    25.0000  -525.0000    24.9998  -522.9382    40.3073   0.15304284   4.76015902  -0.00727959   0.15227219   0.98831177
+468  1730.0601    25.0000  -475.0000    24.9998  -473.4697    33.0586   0.13879332   4.76514149  -0.00729483   0.13815568   0.99038368
+469  1730.0601    25.0000  -425.0000    24.9998  -423.9018    26.5173   0.12446258   4.77129602  -0.00730858   0.12392616   0.99226451
+470  1718.1400    25.0000  -375.0000    24.9998  -374.2443    20.6888   0.11006044   4.77909040  -0.00732094   0.10959412   0.99394947
+471  1718.1400    25.0000  -325.0000    24.9998  -324.5073    15.5779   0.09559806   4.78927612  -0.00733184   0.09517052   0.99543399
+472  1709.2200    25.0000  -275.0000    24.9998  -274.7011    11.1891   0.08108898   4.80314636  -0.00734127   0.08066677   0.99671412
+473  1709.2200    25.0000  -225.0000    24.9998  -224.8361     7.5259   0.06655098   4.82312536  -0.00734913   0.06609455   0.99778628
+474  1703.3400    25.0000  -175.0000    24.9998  -174.9228     4.5916   0.05201230   4.85434675  -0.00735546   0.05146589   0.99864769
+475  1703.3400    25.0000  -125.0000    24.9998  -124.9719     2.3887   0.03753085   4.90982628  -0.00736021   0.03679308   0.99929577
+476  1703.3400    25.0000   125.0000    24.9998   124.9719     2.3887   0.03753085   1.37335908  -0.00736021  -0.03679308   0.99929577
+477  1703.3400    25.0000   175.0000    24.9998   174.9228     4.5916   0.05201230   1.42883861  -0.00735546  -0.05146589   0.99864769
+478  1709.2200    25.0000   225.0000    24.9998   224.8361     7.5259   0.06655098   1.46006000  -0.00734913  -0.06609455   0.99778628
+479  1709.2200    25.0000   275.0000    24.9998   274.7011    11.1891   0.08108898   1.48003912  -0.00734126  -0.08066677   0.99671412
+480  1718.1400    25.0000   325.0000    24.9998   324.5073    15.5779   0.09559806   1.49390900  -0.00733186  -0.09517052   0.99543399
+481  1718.1400    25.0000   375.0000    24.9998   374.2443    20.6888   0.11006044   1.50409472  -0.00732096  -0.10959412   0.99394947
+482  1730.0601    25.0000   425.0000    24.9998   423.9018    26.5173   0.12446258   1.51188910  -0.00730860  -0.12392616   0.99226451
+483  1730.0601    25.0000   475.0000    24.9998   473.4697    33.0586   0.13879332   1.51804399  -0.00729480  -0.13815568   0.99038368
+484  1745.0699    25.0000   525.0000    24.9998   522.9382    40.3073   0.15304284   1.52302623  -0.00727960  -0.15227219   0.98831177
+485  1745.0699    25.0000   575.0000    24.9998   572.2976    48.2573   0.16720217   1.52714086  -0.00726302  -0.16626564   0.98605424
+486  1763.2600    25.0000   625.0000    24.9998   621.5383    56.9022   0.18126303   1.53059554  -0.00724513  -0.18012640   0.98361677
+487  1763.2600    25.0000   675.0000    24.9998   670.6511    66.2350   0.19521770   1.53353667  -0.00722596  -0.19384547   0.98100549
+488  1784.7300    25.0000   725.0000    24.9998   719.6271    76.2482   0.20905904   1.53607035  -0.00720556  -0.20741440   0.97822666
+489  1784.7300    25.0000   775.0000    24.9998   768.4574    86.9341   0.22278035   1.53827536  -0.00718398  -0.22082528   0.97528690
+490  1805.4000    25.0000   825.0000    24.9998   817.1337    98.2842   0.23637535   1.54021132  -0.00716129  -0.23407079   0.97219318
+491  1805.4000    75.0000  -825.0000    74.9939  -817.1337    99.0194   0.23722523   4.80390930  -0.02147786   0.23402296   0.97199380
+492  1784.7300    75.0000  -775.0000    74.9939  -768.4574    87.6692   0.22368950   4.80967093  -0.02154591   0.22077987   0.97508568
+493  1784.7300    75.0000  -725.0000    74.9939  -719.6271    76.9834   0.21003537   4.81622648  -0.02161066   0.20737149   0.97802353
+494  1763.2600    75.0000  -675.0000    74.9939  -670.6511    66.9702   0.19627079   4.82374907  -0.02167182   0.19380516   0.98080063
+495  1763.2600    75.0000  -625.0000    74.9939  -621.5383    57.6373   0.18240470   4.83246708  -0.02172925   0.18008873   0.98341036
+496  1745.0699    75.0000  -575.0000    74.9939  -572.2976    48.9924   0.16844730   4.84268665  -0.02178288   0.16623069   0.98584628
+497  1745.0699    75.0000  -525.0000    74.9939  -522.9382    41.0424   0.15441042   4.85482645  -0.02183254   0.15224004   0.98810238
+498  1730.0601    75.0000  -475.0000    74.9939  -473.4697    33.7938   0.14030823   4.86947632  -0.02187816   0.13812639   0.99017292
+499  1730.0601    75.0000  -425.0000    74.9939  -423.9018    27.2525   0.12615816   4.88749075  -0.02191955   0.12389978   0.99205261
+500  1718.1400    75.0000  -375.0000    74.9939  -374.2443    21.4240   0.11198288   4.91015720  -0.02195661   0.10957072   0.99373645
+501  1718.1400    75.0000  -325.0000    74.9939  -324.5073    16.3131   0.09781386   4.93950272  -0.02198928   0.09515014   0.99522007
+502  1709.2200    75.0000  -275.0000    74.9939  -274.7011    11.9242   0.08369853   4.97889662  -0.02201745   0.08064944   0.99649930
+503  1709.2200    75.0000  -225.0000    74.9939  -224.8361     8.2611   0.06971575   5.03433371  -0.02204103   0.06608032   0.99757081
+504  1703.3400    75.0000  -175.0000    74.9939  -174.9228     5.3268   0.05601357   5.11741114  -0.02206000   0.05145480   0.99843162
+505  1703.3400    75.0000  -125.0000    74.9939  -124.9719     3.1238   0.04291328   5.25287199  -0.02207426   0.03678514   0.99907935
+506  1703.3400    75.0000   125.0000    74.9939   124.9719     3.1238   0.04291328   1.03031349  -0.02207425  -0.03678514   0.99907935
+507  1703.3400    75.0000   175.0000    74.9939   174.9228     5.3268   0.05601357   1.16577423  -0.02205999  -0.05145480   0.99843162
+508  1709.2200    75.0000   225.0000    74.9939   224.8361     8.2611   0.06971575   1.24885154  -0.02204104  -0.06608032   0.99757081
+509  1709.2200    75.0000   275.0000    74.9939   274.7011    11.9242   0.08369853   1.30428874  -0.02201744  -0.08064944   0.99649930
+510  1718.1400    75.0000   325.0000    74.9939   324.5073    16.3131   0.09781386   1.34368265  -0.02198928  -0.09515014   0.99522007
+511  1718.1400    75.0000   375.0000    74.9939   374.2443    21.4240   0.11198288   1.37302816  -0.02195661  -0.10957072   0.99373645
+512  1730.0601    75.0000   425.0000    74.9939   423.9018    27.2525   0.12615816   1.39569473  -0.02191953  -0.12389979   0.99205261
+513  1730.0601    75.0000   475.0000    74.9939   473.4697    33.7938   0.14030823   1.41370916  -0.02187814  -0.13812639   0.99017292
+514  1745.0699    75.0000   525.0000    74.9939   522.9382    41.0424   0.15441042   1.42835879  -0.02183255  -0.15224004   0.98810238
+515  1745.0699    75.0000   575.0000    74.9939   572.2976    48.9924   0.16844730   1.44049871  -0.02178288  -0.16623069   0.98584628
+516  1763.2600    75.0000   625.0000    74.9939   621.5383    57.6373   0.18240470   1.45071828  -0.02172924  -0.18008873   0.98341036
+517  1763.2600    75.0000   675.0000    74.9939   670.6511    66.9702   0.19627079   1.45943642  -0.02167178  -0.19380516   0.98080063
+518  1784.7300    75.0000   725.0000    74.9939   719.6271    76.9834   0.21003537   1.46695900  -0.02161063  -0.20737149   0.97802353
+519  1784.7300    75.0000   775.0000    74.9939   768.4574    87.6692   0.22368950   1.47351420  -0.02154595  -0.22077985   0.97508568
+520  1805.4000    75.0000   825.0000    74.9939   817.1337    99.0194   0.23722523   1.47927594  -0.02147787  -0.23402296   0.97199380
+521  1805.4000   125.0000  -825.0000   124.9719  -817.1337   100.4890   0.23891383   4.86415243  -0.03577673   0.23392743   0.97159559
+522  1784.7300   125.0000  -775.0000   124.9719  -768.4574    89.1389   0.22549459   4.87360477  -0.03589005   0.22068916   0.97468364
+523  1784.7300   125.0000  -725.0000   124.9719  -719.6271    78.4531   0.21197213   4.88433599  -0.03599764   0.20728581   0.97761792
+524  1763.2600   125.0000  -675.0000   124.9719  -670.6511    68.4398   0.19835755   4.89662027  -0.03609948   0.19372459   0.98039156
+525  1763.2600   125.0000  -625.0000   124.9719  -621.5383    59.1070   0.18466403   4.91081190  -0.03619507   0.18001349   0.98299801
+526  1745.0699   125.0000  -575.0000   124.9719  -572.2976    50.4621   0.17090724   4.92738295  -0.03628437   0.16616090   0.98543090
+527  1745.0699   125.0000  -525.0000   124.9719  -522.9382    42.5121   0.15710649   4.94696951  -0.03636701   0.15217583   0.98768413
+528  1730.0601   125.0000  -475.0000   124.9719  -473.4697    35.2635   0.14328626   4.97045231  -0.03644287   0.13806790   0.98975205
+529  1730.0601   125.0000  -425.0000   124.9719  -423.9018    28.7222   0.12947854   4.99908066  -0.03651179   0.12384711   0.99162936
+530  1718.1400   125.0000  -375.0000   124.9719  -374.2443    22.8936   0.11572728   5.03467751  -0.03657347   0.10952397   0.99331105
+531  1718.1400   125.0000  -325.0000   124.9719  -324.5073    17.7828   0.10209588   5.07999611  -0.03662786   0.09510942   0.99479276
+532  1718.1400   125.0000  -275.0000   124.9719  -274.7011    13.3939   0.08868136   5.13934135  -0.03667472   0.08061485   0.99607038
+533  1709.2200   125.0000  -225.0000   124.9719  -224.8361     9.7308   0.07564178   5.21970129  -0.03671400   0.06605193   0.99714053
+534  1709.2200   125.0000  -175.0000   124.9719  -174.9228     6.7965   0.06325255   5.33274078  -0.03674555   0.05143264   0.99800020
+535  1703.3400   125.0000  -125.0000   124.9719  -124.9719     4.5935   0.05202308   5.49778700  -0.03676928   0.03676929   0.99864709
+536  1703.3400   125.0000   -75.0000   124.9719   -74.9939     3.1238   0.04291328   5.74270248  -0.03678514   0.02207425   0.99907935
+537  1703.3400   125.0000   -25.0000   124.9719   -24.9998     2.3887   0.03753085   6.08574820  -0.03679309   0.00736021   0.99929577
+538  1703.3400   125.0000    25.0000   124.9719    24.9998     2.3887   0.03753085   0.19743726  -0.03679308  -0.00736021   0.99929577
+539  1703.3400   125.0000    75.0000   124.9719    74.9939     3.1238   0.04291328   0.54048276  -0.03678514  -0.02207425   0.99907935
+540  1703.3400   125.0000   125.0000   124.9719   124.9719     4.5935   0.05202308   0.78539819  -0.03676928  -0.03676929   0.99864709
+541  1709.2200   125.0000   175.0000   124.9719   174.9228     6.7965   0.06325255   0.95044452  -0.03674555  -0.05143264   0.99800020
+542  1709.2200   125.0000   225.0000   124.9719   224.8361     9.7308   0.07564178   1.06348383  -0.03671401  -0.06605192   0.99714053
+543  1718.1400   125.0000   275.0000   124.9719   274.7011    13.3939   0.08868136   1.14384377  -0.03667473  -0.08061484   0.99607038
+544  1718.1400   125.0000   325.0000   124.9719   324.5073    17.7828   0.10209588   1.20318925  -0.03662786  -0.09510943   0.99479276
+545  1718.1400   125.0000   375.0000   124.9719   374.2443    22.8936   0.11572728   1.24850762  -0.03657349  -0.10952397   0.99331105
+546  1730.0601   125.0000   425.0000   124.9719   423.9018    28.7222   0.12947854   1.28410470  -0.03651178  -0.12384711   0.99162936
+547  1730.0601   125.0000   475.0000   124.9719   473.4697    35.2635   0.14328626   1.31273282  -0.03644289  -0.13806790   0.98975205
+548  1745.0699   125.0000   525.0000   124.9719   522.9382    42.5121   0.15710649   1.33621573  -0.03636703  -0.15217583   0.98768413
+549  1745.0699   125.0000   575.0000   124.9719   572.2976    50.4621   0.17090724   1.35580254  -0.03628434  -0.16616090   0.98543090
+550  1763.2600   125.0000   625.0000   124.9719   621.5383    59.1070   0.18466403   1.37237334  -0.03619508  -0.18001348   0.98299801
+551  1763.2600   125.0000   675.0000   124.9719   670.6511    68.4398   0.19835755   1.38656521  -0.03609945  -0.19372460   0.98039156
+552  1784.7300   125.0000   725.0000   124.9719   719.6271    78.4531   0.21197213   1.39884913  -0.03599768  -0.20728581   0.97761792
+553  1784.7300   125.0000   775.0000   124.9719   768.4574    89.1389   0.22549459   1.40958071  -0.03589001  -0.22068916   0.97468364
+554  1805.4000   125.0000   825.0000   124.9719   817.1337   100.4890   0.23891383   1.41903293  -0.03577672  -0.23392743   0.97159559
+555  1805.4000   175.0000  -825.0000   174.9228  -817.1337   102.6920   0.24141937   4.92327499  -0.05004597   0.23378444   0.97099960
+556  1784.7300   175.0000  -775.0000   174.9228  -768.4574    91.3419   0.22816989   4.93620396  -0.05020427   0.22055341   0.97408199
+557  1784.7300   175.0000  -725.0000   174.9228  -719.6271    80.6560   0.21483852   4.95083857  -0.05035462   0.20715754   0.97701085
+558  1763.2600   175.0000  -675.0000   174.9228  -670.6511    70.6428   0.20144072   4.96752977  -0.05049681   0.19360405   0.97977936
+559  1763.2600   175.0000  -625.0000   174.9228  -621.5383    61.3100   0.18799514   4.98672819  -0.05063047   0.17990088   0.98238093
+560  1763.2600   175.0000  -575.0000   174.9228  -572.2976    52.6651   0.17452455   5.00902128  -0.05075517   0.16605642   0.98480922
+561  1745.0699   175.0000  -525.0000   174.9228  -522.9382    44.7151   0.16105770   5.03518915  -0.05087067   0.15207973   0.98705822
+562  1745.0699   175.0000  -475.0000   174.9228  -473.4697    37.4664   0.14763157   5.06628418  -0.05097670   0.13798034   0.98912221
+563  1730.0601   175.0000  -425.0000   174.9228  -423.9018    30.9251   0.13429515   5.10375214  -0.05107289   0.12376827   0.99099594
+564  1730.0601   175.0000  -375.0000   174.9228  -374.2443    25.0966   0.12111574   5.14962053  -0.05115912   0.10945401   0.99267447
+565  1718.1400   175.0000  -325.0000   174.9228  -324.5073    19.9857   0.10818893   5.20677948  -0.05123505   0.09504851   0.99415326
+566  1718.1400   175.0000  -275.0000   174.9228  -274.7011    15.5969   0.09565578   5.27941084  -0.05130054   0.08056308   0.99542850
+567  1709.2200   175.0000  -225.0000   174.9228  -224.8361    11.9337   0.08373164   5.37357140  -0.05135540   0.06600940   0.99649656
+568  1709.2200   175.0000  -175.0000   174.9228  -174.9228     8.9994   0.07275400   5.49778700  -0.05139947   0.05139948   0.99735457
+569  1709.2200   175.0000  -125.0000   174.9228  -124.9719     6.7965   0.06325255   5.66283369  -0.05143265   0.03674554   0.99800020
+570  1703.3400   175.0000   -75.0000   174.9228   -74.9939     5.3268   0.05601357   5.87816334  -0.05145480   0.02205999   0.99843162
+571  1703.3400   175.0000   -25.0000   174.9228   -24.9998     4.5916   0.05201230   6.14122772  -0.05146589   0.00735545   0.99864769
+572  1703.3400   175.0000    25.0000   174.9228    24.9998     4.5916   0.05201230   0.14195772  -0.05146589  -0.00735546   0.99864769
+573  1703.3400   175.0000    75.0000   174.9228    74.9939     5.3268   0.05601357   0.40502208  -0.05145480  -0.02205999   0.99843162
+574  1709.2200   175.0000   125.0000   174.9228   124.9719     6.7965   0.06325255   0.62035185  -0.05143264  -0.03674555   0.99800020
+575  1709.2200   175.0000   175.0000   174.9228   174.9228     8.9994   0.07275400   0.78539819  -0.05139948  -0.05139948   0.99735457
+576  1709.2200   175.0000   225.0000   174.9228   224.8361    11.9337   0.08373164   0.90961385  -0.05135541  -0.06600940   0.99649656
+577  1718.1400   175.0000   275.0000   174.9228   274.7011    15.5969   0.09565578   1.00377440  -0.05130055  -0.08056308   0.99542850
+578  1718.1400   175.0000   325.0000   174.9228   324.5073    19.9857   0.10818893   1.07640564  -0.05123506  -0.09504850   0.99415326
+579  1730.0601   175.0000   375.0000   174.9228   374.2443    25.0966   0.12111574   1.13356495  -0.05115910  -0.10945402   0.99267447
+580  1730.0601   175.0000   425.0000   174.9228   423.9018    30.9251   0.13429515   1.17943311  -0.05107290  -0.12376827   0.99099594
+581  1745.0699   175.0000   475.0000   174.9228   473.4697    37.4664   0.14763157   1.21690130  -0.05097668  -0.13798034   0.98912221
+582  1745.0699   175.0000   525.0000   174.9228   522.9382    44.7151   0.16105770   1.24799621  -0.05087066  -0.15207973   0.98705822
+583  1763.2600   175.0000   575.0000   174.9228   572.2976    52.6651   0.17452455   1.27416408  -0.05075516  -0.16605642   0.98480922
+584  1763.2600   175.0000   625.0000   174.9228   621.5383    61.3100   0.18799514   1.29645717  -0.05063046  -0.17990088   0.98238093
+585  1763.2600   175.0000   675.0000   174.9228   670.6511    70.6428   0.20144072   1.31565535  -0.05049684  -0.19360405   0.97977936
+586  1784.7300   175.0000   725.0000   174.9228   719.6271    80.6560   0.21483852   1.33234656  -0.05035466  -0.20715752   0.97701085
+587  1784.7300   175.0000   775.0000   174.9228   768.4574    91.3419   0.22816989   1.34698141  -0.05020425  -0.22055343   0.97408199
+588  1805.4000   175.0000   825.0000   174.9228   817.1337   102.6920   0.24141937   1.35991049  -0.05004593  -0.23378445   0.97099960
+589  1805.4000   225.0000  -825.0000   224.8361  -817.1337   105.6263   0.24471071   4.98089647  -0.06427397   0.23359443   0.97020745
+590  1805.4000   225.0000  -775.0000   224.8361  -768.4574    94.2762   0.23167872   4.99702549  -0.06447694   0.22037302   0.97328234
+591  1784.7300   225.0000  -725.0000   224.8361  -719.6271    83.5904   0.21859103   5.01521397  -0.06466985   0.20698705   0.97620398
+592  1784.7300   225.0000  -675.0000   224.8361  -670.6511    73.5771   0.20546794   5.03586388  -0.06485212   0.19344383   0.97896564
+593  1763.2600   225.0000  -625.0000   224.8361  -621.5383    64.2443   0.19233420   5.05948544  -0.06502347   0.17975119   0.98156071
+594  1763.2600   225.0000  -575.0000   224.8361  -572.2976    55.5994   0.17922038   5.08673000  -0.06518333   0.16591761   0.98398298
+595  1745.0699   225.0000  -525.0000   224.8361  -522.9382    47.6494   0.16616496   5.11844301  -0.06533144   0.15195201   0.98622632
+596  1745.0699   225.0000  -475.0000   224.8361  -473.4697    40.4007   0.15321741   5.15573025  -0.06546731   0.13786398   0.98828518
+597  1730.0601   225.0000  -425.0000   224.8361  -423.9018    33.8594   0.14044267   5.20005703  -0.06559069   0.12366351   0.99015415
+598  1730.0601   225.0000  -375.0000   224.8361  -374.2443    28.0309   0.12792800   5.25337696  -0.06570122   0.10936106   0.99182838
+599  1718.1400   225.0000  -325.0000   224.8361  -324.5073    22.9200   0.11579338   5.31830263  -0.06579860   0.09496754   0.99330342
+600  1718.1400   225.0000  -275.0000   224.8361  -274.7011    18.5312   0.10420696   5.39829445  -0.06588259   0.08049426   0.99457538
+601  1718.1400   225.0000  -225.0000   224.8361  -224.8361    14.8680   0.09340727   5.49778700  -0.06595290   0.06595292   0.99564070
+602  1709.2200   225.0000  -175.0000   224.8361  -174.9228    11.9337   0.08373164   5.62200308  -0.06600942   0.05135539   0.99649656
+603  1709.2200   225.0000  -125.0000   224.8361  -124.9719     9.7308   0.07564178   5.77587271  -0.06605192   0.03671402   0.99714053
+604  1709.2200   225.0000   -75.0000   224.8361   -74.9939     8.2611   0.06971575   5.96124029  -0.06608032   0.02204105   0.99757081
+605  1709.2200   225.0000   -25.0000   224.8361   -24.9998     7.5259   0.06655098   6.17244911  -0.06609455   0.00734912   0.99778628
+606  1709.2200   225.0000    25.0000   224.8361    24.9998     7.5259   0.06655098   0.11073635  -0.06609455  -0.00734913   0.99778628
+607  1709.2200   225.0000    75.0000   224.8361    74.9939     8.2611   0.06971575   0.32194480  -0.06608032  -0.02204104   0.99757081
+608  1709.2200   225.0000   125.0000   224.8361   124.9719     9.7308   0.07564178   0.50731242  -0.06605192  -0.03671401   0.99714053
+609  1709.2200   225.0000   175.0000   224.8361   174.9228    11.9337   0.08373164   0.66118246  -0.06600940  -0.05135541   0.99649656
+610  1718.1400   225.0000   225.0000   224.8361   224.8361    14.8680   0.09340727   0.78539819  -0.06595290  -0.06595291   0.99564070
+611  1718.1400   225.0000   275.0000   224.8361   274.7011    18.5312   0.10420696   0.88489097  -0.06588258  -0.08049427   0.99457538
+612  1718.1400   225.0000   325.0000   224.8361   324.5073    22.9200   0.11579338   0.96488261  -0.06579861  -0.09496753   0.99330342
+613  1730.0601   225.0000   375.0000   224.8361   374.2443    28.0309   0.12792800   1.02980816  -0.06570124  -0.10936105   0.99182838
+614  1730.0601   225.0000   425.0000   224.8361   423.9018    33.8594   0.14044267   1.08312809  -0.06559072  -0.12366350   0.99015415
+615  1745.0699   225.0000   475.0000   224.8361   473.4697    40.4007   0.15321741   1.12745488  -0.06546733  -0.13786398   0.98828518
+616  1745.0699   225.0000   525.0000   224.8361   522.9382    47.6494   0.16616496   1.16474235  -0.06533143  -0.15195201   0.98622632
+617  1763.2600   225.0000   575.0000   224.8361   572.2976    55.5994   0.17922038   1.19645524  -0.06518334  -0.16591759   0.98398298
+618  1763.2600   225.0000   625.0000   224.8361   621.5383    64.2443   0.19233420   1.22370005  -0.06502344  -0.17975120   0.98156071
+619  1784.7300   225.0000   675.0000   224.8361   670.6511    73.5771   0.20546794   1.24732137  -0.06485213  -0.19344383   0.97896564
+620  1784.7300   225.0000   725.0000   224.8361   719.6271    83.5904   0.21859103   1.26797140  -0.06466984  -0.20698705   0.97620398
+621  1805.4000   225.0000   775.0000   224.8361   768.4574    94.2762   0.23167872   1.28615963  -0.06447699  -0.22037300   0.97328234
+622  1805.4000   225.0000   825.0000   224.8361   817.1337   105.6263   0.24471071   1.30228865  -0.06427401  -0.23359442   0.97020745
+623  1805.4000   275.0000  -825.0000   274.7011  -817.1337   109.2895   0.24874869   5.03669596  -0.07844936   0.23335785   0.96922123
+624  1805.4000   275.0000  -775.0000   274.7011  -768.4574    97.9393   0.23597544   5.05570364  -0.07869660   0.22014840   0.97228676
+625  1784.7300   275.0000  -725.0000   274.7011  -719.6271    87.2535   0.22317588   5.07704401  -0.07893150   0.20677485   0.97519946
+626  1784.7300   275.0000  -675.0000   274.7011  -670.6511    77.2402   0.21037526   5.10114670  -0.07915357   0.19324438   0.97795260
+627  1763.2600   275.0000  -625.0000   274.7011  -621.5383    67.9074   0.19760442   5.12854481  -0.07936222   0.17956488   0.98053968
+628  1763.2600   275.0000  -575.0000   274.7011  -572.2976    59.2625   0.18490130   5.15990639  -0.07955697   0.16574478   0.98295438
+629  1745.0699   275.0000  -525.0000   274.7011  -522.9382    51.3125   0.17231330   5.19607353  -0.07973734   0.15179302   0.98519075
+630  1745.0699   275.0000  -475.0000   274.7011  -473.4697    44.0639   0.15990058   5.23811293  -0.07990288   0.13771911   0.98724312
+631  1745.0699   275.0000  -425.0000   274.7011  -423.9018    37.5226   0.14774057   5.28737831  -0.08005317   0.12353306   0.98910618
+632  1730.0601   275.0000  -375.0000   274.7011  -374.2443    31.6941   0.13593437   5.34558153  -0.08018779   0.10924531   0.99077517
+633  1730.0601   275.0000  -325.0000   274.7011  -324.5073    26.5832   0.12461551   5.41485786  -0.08030636   0.09486673   0.99224555
+634  1718.1400   275.0000  -275.0000   274.7011  -274.7011    22.1943   0.11396147   5.49778700  -0.08040860   0.08040863   0.99351341
+635  1718.1400   275.0000  -225.0000   274.7011  -224.8361    18.5312   0.10420696   5.59728003  -0.08049428   0.06588257   0.99457538
+636  1718.1400   275.0000  -175.0000   274.7011  -174.9228    15.5969   0.09565578   5.71616316  -0.08056306   0.05130057   0.99542850
+637  1718.1400   275.0000  -125.0000   274.7011  -124.9719    13.3939   0.08868136   5.85623264  -0.08061484   0.03667475   0.99607038
+638  1709.2200   275.0000   -75.0000   274.7011   -74.9939    11.9242   0.08369853   6.01667786  -0.08064944   0.02201743   0.99649930
+639  1709.2200   275.0000   -25.0000   274.7011   -24.9998    11.1891   0.08108898   6.19242811  -0.08066677   0.00734126   0.99671412
+640  1709.2200   275.0000    25.0000   274.7011    24.9998    11.1891   0.08108898   0.09075727  -0.08066677  -0.00734126   0.99671412
+641  1709.2200   275.0000    75.0000   274.7011    74.9939    11.9242   0.08369853   0.26650754  -0.08064944  -0.02201744   0.99649930
+642  1718.1400   275.0000   125.0000   274.7011   124.9719    13.3939   0.08868136   0.42695254  -0.08061484  -0.03667473   0.99607038
+643  1718.1400   275.0000   175.0000   274.7011   174.9228    15.5969   0.09565578   0.56702197  -0.08056308  -0.05130055   0.99542850
+644  1718.1400   275.0000   225.0000   274.7011   224.8361    18.5312   0.10420696   0.68590534  -0.08049427  -0.06588258   0.99457538
+645  1718.1400   275.0000   275.0000   274.7011   274.7011    22.1943   0.11396147   0.78539819  -0.08040861  -0.08040862   0.99351341
+646  1730.0601   275.0000   325.0000   274.7011   324.5073    26.5832   0.12461551   0.86832750  -0.08030636  -0.09486674   0.99224555
+647  1730.0601   275.0000   375.0000   274.7011   374.2443    31.6941   0.13593437   0.93760401  -0.08018777  -0.10924532   0.99077517
+648  1745.0699   275.0000   425.0000   274.7011   423.9018    37.5226   0.14774057   0.99580717  -0.08005315  -0.12353308   0.98910618
+649  1745.0699   275.0000   475.0000   274.7011   473.4697    44.0639   0.15990058   1.04507244  -0.07990287  -0.13771912   0.98724312
+650  1745.0699   275.0000   525.0000   274.7011   522.9382    51.3125   0.17231330   1.08711159  -0.07973737  -0.15179302   0.98519075
+651  1763.2600   275.0000   575.0000   274.7011   572.2976    59.2625   0.18490130   1.12327886  -0.07955698  -0.16574478   0.98295438
+652  1763.2600   275.0000   625.0000   274.7011   621.5383    67.9074   0.19760442   1.15464044  -0.07936224  -0.17956488   0.98053968
+653  1784.7300   275.0000   675.0000   274.7011   670.6511    77.2402   0.21037526   1.18203855  -0.07915358  -0.19324437   0.97795260
+654  1784.7300   275.0000   725.0000   274.7011   719.6271    87.2535   0.22317588   1.20614111  -0.07893153  -0.20677483   0.97519946
+655  1805.4000   275.0000   775.0000   274.7011   768.4574    97.9393   0.23597544   1.22748148  -0.07869664  -0.22014838   0.97228676
+656  1805.4000   275.0000   825.0000   274.7011   817.1337   109.2895   0.24874869   1.24648917  -0.07844941  -0.23335783   0.96922123
+657  1805.4000   325.0000  -825.0000   324.5073  -817.1337   113.6783   0.25348800   5.09041786  -0.09256095   0.23307529   0.96804357
+658  1805.4000   325.0000  -775.0000   324.5073  -768.4574   102.3282   0.24100770   5.11195707  -0.09285193   0.21988018   0.97109795
+659  1784.7300   325.0000  -725.0000   324.5073  -719.6271    91.6424   0.22853206   5.13602257  -0.09312834   0.20652144   0.97399998
+660  1784.7300   325.0000  -675.0000   324.5073  -670.6511    81.6291   0.21609105   5.16304874  -0.09338973   0.19300620   0.97674304
+661  1784.7300   325.0000  -625.0000   324.5073  -621.5383    72.2963   0.20372099   5.19356251  -0.09363527   0.17934240   0.97932053
+662  1763.2600   325.0000  -575.0000   324.5073  -572.2976    63.6514   0.19146617   5.22820950  -0.09386449   0.16553842   0.98172629
+663  1763.2600   325.0000  -525.0000   324.5073  -522.9382    55.7014   0.17938119   5.26777935  -0.09407680   0.15160315   0.98395431
+664  1745.0699   325.0000  -475.0000   324.5073  -473.4697    48.4527   0.16753416   5.31323624  -0.09427157   0.13754617   0.98599893
+665  1745.0699   325.0000  -425.0000   324.5073  -423.9018    41.9114   0.15601057   5.36575222  -0.09444842   0.12337733   0.98785502
+666  1730.0601   325.0000  -375.0000   324.5073  -374.2443    36.0829   0.14491870   5.42672729  -0.09460683   0.10910713   0.98951763
+667  1730.0601   325.0000  -325.0000   324.5073  -324.5073    30.9721   0.13439584   5.49778700  -0.09474637   0.09474640   0.99098247
+668  1730.0601   325.0000  -275.0000   324.5073  -274.7011    26.5832   0.12461551   5.58071661  -0.09486675   0.08030634   0.99224555
+669  1718.1400   325.0000  -225.0000   324.5073  -224.8361    22.9200   0.11579338   5.67727184  -0.09496754   0.06579859   0.99330342
+670  1718.1400   325.0000  -175.0000   324.5073  -174.9228    19.9857   0.10818893   5.78879452  -0.09504849   0.05123507   0.99415326
+671  1718.1400   325.0000  -125.0000   324.5073  -124.9719    17.7828   0.10209588   5.91557837  -0.09510943   0.03662784   0.99479276
+672  1718.1400   325.0000   -75.0000   324.5073   -74.9939    16.3131   0.09781386   6.05607176  -0.09515014   0.02198927   0.99522007
+673  1718.1400   325.0000   -25.0000   324.5073   -24.9998    15.5779   0.09559806   6.20629787  -0.09517051   0.00733187   0.99543399
+674  1718.1400   325.0000    25.0000   324.5073    24.9998    15.5779   0.09559806   0.07688738  -0.09517051  -0.00733187   0.99543399
+675  1718.1400   325.0000    75.0000   324.5073    74.9939    16.3131   0.09781386   0.22711363  -0.09515014  -0.02198927   0.99522007
+676  1718.1400   325.0000   125.0000   324.5073   124.9719    17.7828   0.10209588   0.36760706  -0.09510943  -0.03662786   0.99479276
+677  1718.1400   325.0000   175.0000   324.5073   174.9228    19.9857   0.10818893   0.49439064  -0.09504850  -0.05123506   0.99415326
+678  1718.1400   325.0000   225.0000   324.5073   224.8361    22.9200   0.11579338   0.60591370  -0.09496753  -0.06579861   0.99330342
+679  1730.0601   325.0000   275.0000   324.5073   274.7011    26.5832   0.12461551   0.70246881  -0.09486674  -0.08030635   0.99224555
+680  1730.0601   325.0000   325.0000   324.5073   324.5073    30.9721   0.13439584   0.78539819  -0.09474638  -0.09474639   0.99098247
+681  1730.0601   325.0000   375.0000   324.5073   374.2443    36.0829   0.14491870   0.85645813  -0.09460682  -0.10910714   0.98951763
+682  1745.0699   325.0000   425.0000   324.5073   423.9018    41.9114   0.15601057   0.91743320  -0.09444841  -0.12337735   0.98785502
+683  1745.0699   325.0000   475.0000   324.5073   473.4697    48.4527   0.16753416   0.96994907  -0.09427157  -0.13754617   0.98599893
+684  1763.2600   325.0000   525.0000   324.5073   522.9382    55.7014   0.17938119   1.01540613  -0.09407677  -0.15160316   0.98395431
+685  1763.2600   325.0000   575.0000   324.5073   572.2976    63.6514   0.19146617   1.05497575  -0.09386450  -0.16553842   0.98172629
+686  1784.7300   325.0000   625.0000   324.5073   621.5383    72.2963   0.20372099   1.08962274  -0.09363528  -0.17934240   0.97932053
+687  1784.7300   325.0000   675.0000   324.5073   670.6511    81.6291   0.21609105   1.12013662  -0.09338971  -0.19300620   0.97674304
+688  1784.7300   325.0000   725.0000   324.5073   719.6271    91.6424   0.22853206   1.14716256  -0.09312838  -0.20652142   0.97399998
+689  1805.4000   325.0000   775.0000   324.5073   768.4574   102.3282   0.24100770   1.17122841  -0.09285188  -0.21988019   0.97109795
+690  1805.4000   325.0000   825.0000   324.5073   817.1337   113.6783   0.25348800   1.19276762  -0.09256090  -0.23307531   0.96804357
+691  1805.4000   375.0000  -775.0000   374.2443  -768.4574   107.4391   0.24671859   5.16558838  -0.10693172   0.21956910   0.96971905
+692  1805.4000   375.0000  -725.0000   374.2443  -719.6271    96.7532   0.23459409   5.19194984  -0.10724919   0.20622750   0.97260875
+693  1784.7300   375.0000  -675.0000   374.2443  -670.6511    86.7400   0.22253957   5.22137737  -0.10754936   0.19272996   0.97534007
+694  1784.7300   375.0000  -625.0000   374.2443  -621.5383    77.4072   0.21059583   5.25437021  -0.10783134   0.17908438   0.97790653
+695  1763.2600   375.0000  -575.0000   374.2443  -572.2976    68.7622   0.19881210   5.29152393  -0.10809450   0.16529910   0.98030186
+696  1763.2600   375.0000  -525.0000   374.2443  -522.9382    60.8122   0.18724811   5.33354568  -0.10833825   0.15138300   0.98252022
+697  1763.2600   375.0000  -475.0000   374.2443  -473.4697    53.5636   0.17597687   5.38126659  -0.10856193   0.13734560   0.98455596
+698  1745.0699   375.0000  -425.0000   374.2443  -423.9018    47.0223   0.16508774   5.43565130  -0.10876503   0.12319674   0.98640394
+699  1745.0699   375.0000  -375.0000   374.2443  -374.2443    41.1938   0.15469038   5.49778700  -0.10894689   0.10894692   0.98805928
+700  1730.0601   375.0000  -325.0000   374.2443  -324.5073    36.0829   0.14491870   5.56884718  -0.10910715   0.09460682   0.98951763
+701  1730.0601   375.0000  -275.0000   374.2443  -274.7011    31.6941   0.13593437   5.64999294  -0.10924532   0.08018777   0.99077517
+702  1730.0601   375.0000  -225.0000   374.2443  -224.8361    28.0309   0.12792800   5.74219704  -0.10936105   0.06570125   0.99182838
+703  1730.0601   375.0000  -175.0000   374.2443  -174.9228    25.0966   0.12111574   5.84595394  -0.10945402   0.05115910   0.99267447
+704  1718.1400   375.0000  -125.0000   374.2443  -124.9719    22.8936   0.11572728   5.96089649  -0.10952397   0.03657350   0.99331105
+705  1718.1400   375.0000   -75.0000   374.2443   -74.9939    21.4240   0.11198288   6.08541727  -0.10957072   0.02195659   0.99373645
+706  1718.1400   375.0000   -25.0000   374.2443   -24.9998    20.6888   0.11006044   6.21648359  -0.10959412   0.00732098   0.99394947
+707  1718.1400   375.0000    25.0000   374.2443    24.9998    20.6888   0.11006044   0.06670165  -0.10959412  -0.00732097   0.99394947
+708  1718.1400   375.0000    75.0000   374.2443    74.9939    21.4240   0.11198288   0.19776818  -0.10957072  -0.02195661   0.99373645
+709  1718.1400   375.0000   125.0000   374.2443   124.9719    22.8936   0.11572728   0.32228866  -0.10952397  -0.03657348   0.99331105
+710  1730.0601   375.0000   175.0000   374.2443   174.9228    25.0966   0.12111574   0.43723142  -0.10945402  -0.05115911   0.99267447
+711  1730.0601   375.0000   225.0000   374.2443   224.8361    28.0309   0.12792800   0.54098815  -0.10936105  -0.06570123   0.99182838
+712  1730.0601   375.0000   275.0000   374.2443   274.7011    31.6941   0.13593437   0.63319230  -0.10924532  -0.08018776   0.99077517
+713  1730.0601   375.0000   325.0000   374.2443   324.5073    36.0829   0.14491870   0.71433818  -0.10910714  -0.09460682   0.98951763
+714  1745.0699   375.0000   375.0000   374.2443   374.2443    41.1938   0.15469038   0.78539819  -0.10894690  -0.10894690   0.98805928
+715  1745.0699   375.0000   425.0000   374.2443   423.9018    47.0223   0.16508774   0.84753412  -0.10876501  -0.12319676   0.98640394
+716  1763.2600   375.0000   475.0000   374.2443   473.4697    53.5636   0.17597687   0.90191853  -0.10856196  -0.13734558   0.98455596
+717  1763.2600   375.0000   525.0000   374.2443   522.9382    60.8122   0.18724811   0.94963950  -0.10833827  -0.15138298   0.98252022
+718  1763.2600   375.0000   575.0000   374.2443   572.2976    68.7622   0.19881210   0.99166119  -0.10809453  -0.16529907   0.98030186
+719  1784.7300   375.0000   625.0000   374.2443   621.5383    77.4072   0.21059583   1.02881515  -0.10783134  -0.17908438   0.97790653
+720  1784.7300   375.0000   675.0000   374.2443   670.6511    86.7400   0.22253957   1.06180799  -0.10754935  -0.19272996   0.97534007
+721  1805.4000   375.0000   725.0000   374.2443   719.6271    96.7532   0.23459409   1.09123528  -0.10724923  -0.20622748   0.97260875
+722  1805.4000   375.0000   775.0000   374.2443   768.4574   107.4391   0.24671859   1.11759686  -0.10693174  -0.21956910   0.96971905
+723  1805.4000   425.0000  -725.0000   423.9018  -719.6271   102.5817   0.24129471   5.24472380  -0.12128332   0.20589378   0.97102940
+724  1784.7300   425.0000  -675.0000   423.9018  -670.6511    92.5685   0.22964412   5.27605963  -0.12162156   0.19241640   0.97374749
+725  1784.7300   425.0000  -625.0000   423.9018  -621.5383    83.2357   0.21814133   5.31094599  -0.12193944   0.17879146   0.97630137
+726  1784.7300   425.0000  -575.0000   423.9018  -572.2976    74.5908   0.20683894   5.34991264  -0.12223610   0.16502739   0.97868496
+727  1763.2600   425.0000  -525.0000   423.9018  -522.9382    66.6407   0.19579971   5.39356947  -0.12251082   0.15113305   0.98089242
+728  1763.2600   425.0000  -475.0000   423.9018  -473.4697    59.3921   0.18509875   5.44260645  -0.12276291   0.13711789   0.98291808
+729  1763.2600   425.0000  -425.0000   423.9018  -423.9018    52.8508   0.17482582   5.49778700  -0.12299174   0.12299178   0.98475683
+730  1745.0699   425.0000  -375.0000   423.9018  -374.2443    47.0223   0.16508774   5.55992317  -0.12319677   0.10876501   0.98640394
+731  1745.0699   425.0000  -325.0000   423.9018  -324.5073    41.9114   0.15601057   5.62982225  -0.12337735   0.09444840   0.98785502
+732  1745.0699   425.0000  -275.0000   423.9018  -274.7011    37.5226   0.14774057   5.70819616  -0.12353308   0.08005315   0.98910618
+733  1730.0601   425.0000  -225.0000   423.9018  -224.8361    33.8594   0.14044267   5.79551697  -0.12366349   0.06559072   0.99015415
+734  1730.0601   425.0000  -175.0000   423.9018  -174.9228    30.9251   0.13429515   5.89182234  -0.12376828   0.05107287   0.99099594
+735  1730.0601   425.0000  -125.0000   423.9018  -124.9719    28.7222   0.12947854   5.99649382  -0.12384712   0.03651176   0.99162936
+736  1730.0601   425.0000   -75.0000   423.9018   -74.9939    27.2525   0.12615816   6.10808372  -0.12389979   0.02191953   0.99205261
+737  1730.0601   425.0000   -25.0000   423.9018   -24.9998    26.5173   0.12446258   6.22427797  -0.12392616   0.00730862   0.99226451
+738  1730.0601   425.0000    25.0000   423.9018    24.9998    26.5173   0.12446258   0.05890722  -0.12392616  -0.00730860   0.99226451
+739  1730.0601   425.0000    75.0000   423.9018    74.9939    27.2525   0.12615816   0.17510158  -0.12389979  -0.02191953   0.99205261
+740  1730.0601   425.0000   125.0000   423.9018   124.9719    28.7222   0.12947854   0.28669161  -0.12384711  -0.03651178   0.99162936
+741  1730.0601   425.0000   175.0000   423.9018   174.9228    30.9251   0.13429515   0.39136320  -0.12376827  -0.05107290   0.99099594
+742  1730.0601   425.0000   225.0000   423.9018   224.8361    33.8594   0.14044267   0.48766822  -0.12366350  -0.06559071   0.99015415
+743  1745.0699   425.0000   275.0000   423.9018   274.7011    37.5226   0.14774057   0.57498914  -0.12353308  -0.08005315   0.98910618
+744  1745.0699   425.0000   325.0000   423.9018   324.5073    41.9114   0.15601057   0.65336311  -0.12337735  -0.09444840   0.98785502
+745  1745.0699   425.0000   375.0000   423.9018   374.2443    47.0223   0.16508774   0.72326219  -0.12319676  -0.10876501   0.98640394
+746  1763.2600   425.0000   425.0000   423.9018   423.9018    52.8508   0.17482582   0.78539819  -0.12299176  -0.12299176   0.98475683
+747  1763.2600   425.0000   475.0000   423.9018   473.4697    59.3921   0.18509875   0.84057885  -0.12276291  -0.13711789   0.98291808
+748  1763.2600   425.0000   525.0000   423.9018   522.9382    66.6407   0.19579971   0.88961595  -0.12251081  -0.15113306   0.98089242
+749  1784.7300   425.0000   575.0000   423.9018   572.2976    74.5908   0.20683894   0.93327278  -0.12223607  -0.16502741   0.97868496
+750  1784.7300   425.0000   625.0000   423.9018   621.5383    83.2357   0.21814133   0.97223943  -0.12193943  -0.17879148   0.97630137
+751  1784.7300   425.0000   675.0000   423.9018   670.6511    92.5685   0.22964412   1.00712550  -0.12162159  -0.19241637   0.97374749
+752  1805.4000   425.0000   725.0000   423.9018   719.6271   102.5817   0.24129471   1.03846157  -0.12128331  -0.20589380   0.97102940
+753  1805.4000   475.0000  -675.0000   473.4697  -670.6511    99.1098   0.23732954   5.32712030  -0.13559589   0.19206630   0.97196931
+754  1784.7300   475.0000  -625.0000   473.4697  -621.5383    89.7770   0.22627315   5.36338091  -0.13594899   0.17846444   0.97450930
+755  1784.7300   475.0000  -575.0000   473.4697  -572.2976    81.1321   0.21545230   5.40356445  -0.13627855   0.16472407   0.97687978
+756  1784.7300   475.0000  -525.0000   473.4697  -522.9382    73.1821   0.20493087   5.44818115  -0.13658369   0.15085402   0.97907507
+757  1763.2600   475.0000  -475.0000   473.4697  -473.4697    65.9334   0.19478387   5.49778700  -0.13686368   0.13686371   0.98108953
+758  1763.2600   475.0000  -425.0000   473.4697  -423.9018    59.3921   0.18509875   5.55296803  -0.13711791   0.12276288   0.98291808
+759  1763.2600   475.0000  -375.0000   473.4697  -374.2443    53.5636   0.17597687   5.61430740  -0.13734557   0.10856198   0.98455596
+760  1745.0699   475.0000  -325.0000   473.4697  -324.5073    48.4527   0.16753416   5.68233824  -0.13754618   0.09427155   0.98599893
+761  1745.0699   475.0000  -275.0000   473.4697  -274.7011    44.0639   0.15990058   5.75746155  -0.13771912   0.07990286   0.98724312
+762  1745.0699   475.0000  -225.0000   473.4697  -224.8361    40.4007   0.15321741   5.83984375  -0.13786396   0.06546734   0.98828518
+763  1745.0699   475.0000  -175.0000   473.4697  -174.9228    37.4664   0.14763157   5.92929029  -0.13798034   0.05097668   0.98912221
+764  1730.0601   475.0000  -125.0000   473.4697  -124.9719    35.2635   0.14328626   6.02512169  -0.13806790   0.03644291   0.98975205
+765  1730.0601   475.0000   -75.0000   473.4697   -74.9939    33.7938   0.14030823   6.12609816  -0.13812639   0.02187814   0.99017292
+766  1730.0601   475.0000   -25.0000   473.4697   -24.9998    33.0586   0.13879332   6.23043299  -0.13815568   0.00729480   0.99038368
+767  1730.0601   475.0000    25.0000   473.4697    24.9998    33.0586   0.13879332   0.05275228  -0.13815568  -0.00729480   0.99038368
+768  1730.0601   475.0000    75.0000   473.4697    74.9939    33.7938   0.14030823   0.15708718  -0.13812639  -0.02187814   0.99017292
+769  1730.0601   475.0000   125.0000   473.4697   124.9719    35.2635   0.14328626   0.25806352  -0.13806790  -0.03644289   0.98975205
+770  1745.0699   475.0000   175.0000   473.4697   174.9228    37.4664   0.14763157   0.35389501  -0.13798036  -0.05097668   0.98912221
+771  1745.0699   475.0000   225.0000   473.4697   224.8361    40.4007   0.15321741   0.44334149  -0.13786396  -0.06546734   0.98828518
+772  1745.0699   475.0000   275.0000   473.4697   274.7011    44.0639   0.15990058   0.52572393  -0.13771911  -0.07990288   0.98724312
+773  1745.0699   475.0000   325.0000   473.4697   324.5073    48.4527   0.16753416   0.60084724  -0.13754617  -0.09427157   0.98599893
+774  1763.2600   475.0000   375.0000   473.4697   374.2443    53.5636   0.17597687   0.66887778  -0.13734558  -0.10856196   0.98455596
+775  1763.2600   475.0000   425.0000   473.4697   423.9018    59.3921   0.18509875   0.73021746  -0.13711789  -0.12276291   0.98291808
+776  1763.2600   475.0000   475.0000   473.4697   473.4697    65.9334   0.19478387   0.78539819  -0.13686369  -0.13686369   0.98108953
+777  1784.7300   475.0000   525.0000   473.4697   522.9382    73.1821   0.20493087   0.83500427  -0.13658367  -0.15085404   0.97907507
+778  1784.7300   475.0000   575.0000   473.4697   572.2976    81.1321   0.21545230   0.87962109  -0.13627851  -0.16472410   0.97687978
+779  1784.7300   475.0000   625.0000   473.4697   621.5383    89.7770   0.22627315   0.91980445  -0.13594899  -0.17846444   0.97450930
+780  1805.4000   475.0000   675.0000   473.4697   670.6511    99.1098   0.23732954   0.95606482  -0.13559592  -0.19206628   0.97196931
+781  1805.4000   525.0000  -625.0000   522.9382  -621.5383    97.0256   0.23491217   5.41184616  -0.14984989   0.17810418   0.97253478
+782  1784.7300   525.0000  -575.0000   522.9382  -572.2976    88.3807   0.22456542   5.45275021  -0.15021165   0.16438994   0.97489095
+783  1784.7300   525.0000  -525.0000   522.9382  -522.9382    80.4307   0.21454726   5.49778700  -0.15054661   0.15054666   0.97707289
+784  1784.7300   525.0000  -475.0000   522.9382  -473.4697    73.1821   0.20493087   5.54739332  -0.15085405   0.13658366   0.97907507
+785  1763.2600   525.0000  -425.0000   522.9382  -423.9018    66.6407   0.19579971   5.60200500  -0.15113308   0.12251080   0.98089242
+786  1763.2600   525.0000  -375.0000   522.9382  -374.2443    60.8122   0.18724811   5.66202831  -0.15138297   0.10833830   0.98252022
+787  1763.2600   525.0000  -325.0000   522.9382  -324.5073    55.7014   0.17938119   5.72779512  -0.15160316   0.09407677   0.98395431
+788  1745.0699   525.0000  -275.0000   522.9382  -274.7011    51.3125   0.17231330   5.79950047  -0.15179300   0.07973739   0.98519075
+789  1745.0699   525.0000  -225.0000   522.9382  -224.8361    47.6494   0.16616496   5.87713146  -0.15195203   0.06533141   0.98622632
+790  1745.0699   525.0000  -175.0000   522.9382  -174.9228    44.7151   0.16105770   5.96038532  -0.15207973   0.05087064   0.98705822
+791  1745.0699   525.0000  -125.0000   522.9382  -124.9719    42.5121   0.15710649   6.04860497  -0.15217583   0.03636698   0.98768413
+792  1745.0699   525.0000   -75.0000   522.9382   -74.9939    41.0424   0.15441042   6.14074755  -0.15224004   0.02183258   0.98810238
+793  1745.0699   525.0000   -25.0000   522.9382   -24.9998    40.3073   0.15304284   6.23541546  -0.15227219   0.00727956   0.98831177
+794  1745.0699   525.0000    25.0000   522.9382    24.9998    40.3073   0.15304284   0.04777005  -0.15227219  -0.00727959   0.98831177
+795  1745.0699   525.0000    75.0000   522.9382    74.9939    41.0424   0.15441042   0.14243756  -0.15224004  -0.02183255   0.98810238
+796  1745.0699   525.0000   125.0000   522.9382   124.9719    42.5121   0.15710649   0.23458056  -0.15217583  -0.03636702   0.98768413
+797  1745.0699   525.0000   175.0000   522.9382   174.9228    44.7151   0.16105770   0.32280016  -0.15207973  -0.05087066   0.98705822
+798  1745.0699   525.0000   225.0000   522.9382   224.8361    47.6494   0.16616496   0.40605399  -0.15195201  -0.06533143   0.98622632
+799  1745.0699   525.0000   275.0000   522.9382   274.7011    51.3125   0.17231330   0.48368469  -0.15179302  -0.07973737   0.98519075
+800  1763.2600   525.0000   325.0000   522.9382   324.5073    55.7014   0.17938119   0.55539018  -0.15160316  -0.09407677   0.98395431
+801  1763.2600   525.0000   375.0000   522.9382   374.2443    60.8122   0.18724811   0.62115681  -0.15138298  -0.10833827   0.98252022
+802  1763.2600   525.0000   425.0000   522.9382   423.9018    66.6407   0.19579971   0.68118036  -0.15113308  -0.12251081   0.98089242
+803  1784.7300   525.0000   475.0000   522.9382   473.4697    73.1821   0.20493087   0.73579210  -0.15085404  -0.13658367   0.97907507
+804  1784.7300   525.0000   525.0000   522.9382   522.9382    80.4307   0.21454726   0.78539819  -0.15054663  -0.15054664   0.97707289
+805  1784.7300   525.0000   575.0000   522.9382   572.2976    88.3807   0.22456542   0.83043510  -0.15021165  -0.16438994   0.97489095
+806  1805.4000   525.0000   625.0000   522.9382   621.5383    97.0256   0.23491217   0.87133902  -0.14984991  -0.17810416   0.97253478
+807  1805.4000   575.0000  -575.0000   572.2976  -572.2976    96.3307   0.23409981   5.49778700  -0.16402572   0.16402577   0.97272354
+808  1784.7300   575.0000  -525.0000   572.2976  -522.9382    88.3807   0.22456542   5.54282427  -0.16438995   0.15021162   0.97489095
+809  1784.7300   575.0000  -475.0000   572.2976  -473.4697    81.1321   0.21545230   5.59201002  -0.16472408   0.13627852   0.97687978
+810  1784.7300   575.0000  -425.0000   572.2976  -423.9018    74.5908   0.20683894   5.64566183  -0.16502742   0.12223607   0.97868496
+811  1763.2600   575.0000  -375.0000   572.2976  -374.2443    68.7622   0.19881210   5.70405006  -0.16529907   0.10809454   0.98030186
+812  1763.2600   575.0000  -325.0000   572.2976  -324.5073    63.6514   0.19146617   5.76736498  -0.16553843   0.09386446   0.98172629
+813  1763.2600   575.0000  -275.0000   572.2976  -274.7011    59.2625   0.18490130   5.83566761  -0.16574475   0.07955702   0.98295438
+814  1763.2600   575.0000  -225.0000   572.2976  -224.8361    55.5994   0.17922038   5.90884447  -0.16591761   0.06518330   0.98398298
+815  1763.2600   575.0000  -175.0000   572.2976  -174.9228    52.6651   0.17452455   5.98655319  -0.16605644   0.05075514   0.98480922
+816  1745.0699   575.0000  -125.0000   572.2976  -124.9719    50.4621   0.17090724   6.06819153  -0.16616090   0.03628434   0.98543090
+817  1745.0699   575.0000   -75.0000   572.2976   -74.9939    48.9924   0.16844730   6.15288782  -0.16623069   0.02178285   0.98584628
+818  1745.0699   575.0000   -25.0000   572.2976   -24.9998    48.2573   0.16720217   6.23952961  -0.16626564   0.00726306   0.98605424
+819  1745.0699   575.0000    25.0000   572.2976    24.9998    48.2573   0.16720217   0.04365546  -0.16626564  -0.00726302   0.98605424
+820  1745.0699   575.0000    75.0000   572.2976    74.9939    48.9924   0.16844730   0.13029762  -0.16623069  -0.02178288   0.98584628
+821  1745.0699   575.0000   125.0000   572.2976   124.9719    50.4621   0.17090724   0.21499380  -0.16616090  -0.03628434   0.98543090
+822  1763.2600   575.0000   175.0000   572.2976   174.9228    52.6651   0.17452455   0.29663226  -0.16605642  -0.05075516   0.98480922
+823  1763.2600   575.0000   225.0000   572.2976   224.8361    55.5994   0.17922038   0.37434104  -0.16591761  -0.06518333   0.98398298
+824  1763.2600   575.0000   275.0000   572.2976   274.7011    59.2625   0.18490130   0.44751751  -0.16574477  -0.07955699   0.98295438
+825  1763.2600   575.0000   325.0000   572.2976   324.5073    63.6514   0.19146617   0.51582050  -0.16553842  -0.09386449   0.98172629
+826  1763.2600   575.0000   375.0000   572.2976   374.2443    68.7622   0.19881210   0.57913512  -0.16529907  -0.10809453   0.98030186
+827  1784.7300   575.0000   425.0000   572.2976   423.9018    74.5908   0.20683894   0.63752359  -0.16502741  -0.12223608   0.97868496
+828  1784.7300   575.0000   475.0000   572.2976   473.4697    81.1321   0.21545230   0.69117522  -0.16472410  -0.13627851   0.97687978
+829  1784.7300   575.0000   525.0000   572.2976   522.9382    88.3807   0.22456542   0.74036121  -0.16438994  -0.15021165   0.97489095
+830  1805.4000   575.0000   575.0000   572.2976   572.2976    96.3307   0.23409981   0.78539819  -0.16402574  -0.16402575   0.97272354
+831  1805.4000   625.0000  -525.0000   621.5383  -522.9382    97.0256   0.23491217   5.58372784  -0.17810413   0.14984994   0.97253478
+832  1784.7300   625.0000  -475.0000   621.5383  -473.4697    89.7770   0.22627315   5.63219357  -0.17846446   0.13594896   0.97450930
+833  1784.7300   625.0000  -425.0000   621.5383  -423.9018    83.2357   0.21814133   5.68462849  -0.17879148   0.12193941   0.97630137
+834  1784.7300   625.0000  -375.0000   621.5383  -374.2443    77.4072   0.21059583   5.74120426  -0.17908439   0.10783131   0.97790653
+835  1784.7300   625.0000  -325.0000   621.5383  -324.5073    72.2963   0.20372099   5.80201197  -0.17934242   0.09363524   0.97932053
+836  1763.2600   625.0000  -275.0000   621.5383  -274.7011    67.9074   0.19760442   5.86702919  -0.17956486   0.07936227   0.98053968
+837  1763.2600   625.0000  -225.0000   621.5383  -224.8361    64.2443   0.19233420   5.93608904  -0.17975120   0.06502344   0.98156071
+838  1763.2600   625.0000  -175.0000   621.5383  -174.9228    61.3100   0.18799514   6.00884628  -0.17990088   0.05063044   0.98238093
+839  1763.2600   625.0000  -125.0000   621.5383  -124.9719    59.1070   0.18466403   6.08476257  -0.18001349   0.03619504   0.98299801
+840  1763.2600   625.0000   -75.0000   621.5383   -74.9939    57.6373   0.18240470   6.16310740  -0.18008873   0.02172921   0.98341036
+841  1763.2600   625.0000   -25.0000   621.5383   -24.9998    56.9022   0.18126303   6.24298429  -0.18012640   0.00724517   0.98361677
+842  1763.2600   625.0000    25.0000   621.5383    24.9998    56.9022   0.18126303   0.04020079  -0.18012640  -0.00724513   0.98361677
+843  1763.2600   625.0000    75.0000   621.5383    74.9939    57.6373   0.18240470   0.12007805  -0.18008873  -0.02172924   0.98341036
+844  1763.2600   625.0000   125.0000   621.5383   124.9719    59.1070   0.18466403   0.19842294  -0.18001349  -0.03619508   0.98299801
+845  1763.2600   625.0000   175.0000   621.5383   174.9228    61.3100   0.18799514   0.27433914  -0.17990088  -0.05063045   0.98238093
+846  1763.2600   625.0000   225.0000   621.5383   224.8361    64.2443   0.19233420   0.34709626  -0.17975120  -0.06502344   0.98156071
+847  1763.2600   625.0000   275.0000   621.5383   274.7011    67.9074   0.19760442   0.41615590  -0.17956488  -0.07936224   0.98053968
+848  1784.7300   625.0000   325.0000   621.5383   324.5073    72.2963   0.20372099   0.48117357  -0.17934240  -0.09363528   0.97932053
+849  1784.7300   625.0000   375.0000   621.5383   374.2443    77.4072   0.21059583   0.54198116  -0.17908438  -0.10783134   0.97790653
+850  1784.7300   625.0000   425.0000   621.5383   423.9018    83.2357   0.21814133   0.59855688  -0.17879148  -0.12193942   0.97630137
+851  1784.7300   625.0000   475.0000   621.5383   473.4697    89.7770   0.22627315   0.65099192  -0.17846444  -0.13594899   0.97450930
+852  1805.4000   625.0000   525.0000   621.5383   522.9382    97.0256   0.23491217   0.69945729  -0.17810416  -0.14984991   0.97253478
+853  1805.4000   675.0000  -475.0000   670.6511  -473.4697    99.1098   0.23732954   5.66845369  -0.19206627   0.13559595   0.97196931
+854  1784.7300   675.0000  -425.0000   670.6511  -423.9018    92.5685   0.22964412   5.71951437  -0.19241636   0.12162161   0.97374749
+855  1784.7300   675.0000  -375.0000   670.6511  -374.2443    86.7400   0.22253957   5.77419710  -0.19272998   0.10754932   0.97534007
+856  1784.7300   675.0000  -325.0000   670.6511  -324.5073    81.6291   0.21609105   5.83252573  -0.19300622   0.09338969   0.97674304
+857  1784.7300   675.0000  -275.0000   670.6511  -274.7011    77.2402   0.21037526   5.89442730  -0.19324435   0.07915362   0.97795260
+858  1784.7300   675.0000  -225.0000   670.6511  -224.8361    73.5771   0.20546794   5.95971012  -0.19344382   0.06485217   0.97896564
+859  1763.2600   675.0000  -175.0000   670.6511  -174.9228    70.6428   0.20144072   6.02804422  -0.19360404   0.05049686   0.97977936
+860  1763.2600   675.0000  -125.0000   670.6511  -124.9719    68.4398   0.19835755   6.09895420  -0.19372460   0.03609944   0.98039156
+861  1763.2600   675.0000   -75.0000   670.6511   -74.9939    66.9702   0.19627079   6.17182541  -0.19380516   0.02167178   0.98080063
+862  1763.2600   675.0000   -25.0000   670.6511   -24.9998    66.2350   0.19521770   6.24592543  -0.19384547   0.00722600   0.98100549
+863  1763.2600   675.0000    25.0000   670.6511    24.9998    66.2350   0.19521770   0.03725966  -0.19384547  -0.00722596   0.98100549
+864  1763.2600   675.0000    75.0000   670.6511    74.9939    66.9702   0.19627079   0.11135989  -0.19380516  -0.02167178   0.98080063
+865  1763.2600   675.0000   125.0000   670.6511   124.9719    68.4398   0.19835755   0.18423110  -0.19372460  -0.03609944   0.98039156
+866  1763.2600   675.0000   175.0000   670.6511   174.9228    70.6428   0.20144072   0.25514099  -0.19360405  -0.05049684   0.97977936
+867  1784.7300   675.0000   225.0000   670.6511   224.8361    73.5771   0.20546794   0.32347497  -0.19344383  -0.06485213   0.97896564
+868  1784.7300   675.0000   275.0000   670.6511   274.7011    77.2402   0.21037526   0.38875782  -0.19324437  -0.07915359   0.97795260
+869  1784.7300   675.0000   325.0000   670.6511   324.5073    81.6291   0.21609105   0.45065975  -0.19300620  -0.09338972   0.97674304
+870  1784.7300   675.0000   375.0000   670.6511   374.2443    86.7400   0.22253957   0.50898832  -0.19272996  -0.10754935   0.97534007
+871  1784.7300   675.0000   425.0000   670.6511   423.9018    92.5685   0.22964412   0.56367075  -0.19241638  -0.12162158   0.97374749
+872  1805.4000   675.0000   475.0000   670.6511   473.4697    99.1098   0.23732954   0.61473155  -0.19206627  -0.13559593   0.97196931
+873  1805.4000   725.0000  -425.0000   719.6271  -423.9018   102.5817   0.24129471   5.75085068  -0.20589381   0.12128328   0.97102940
+874  1805.4000   725.0000  -375.0000   719.6271  -374.2443    96.7532   0.23459409   5.80362415  -0.20622747   0.10724925   0.97260875
+875  1784.7300   725.0000  -325.0000   719.6271  -324.5073    91.6424   0.22853206   5.85955143  -0.20652142   0.09312840   0.97399998
+876  1784.7300   725.0000  -275.0000   719.6271  -274.7011    87.2535   0.22317588   5.91852999  -0.20677483   0.07893156   0.97519946
+877  1784.7300   725.0000  -225.0000   719.6271  -224.8361    83.5904   0.21859103   5.98036051  -0.20698707   0.06466981   0.97620398
+878  1784.7300   725.0000  -175.0000   719.6271  -174.9228    80.6560   0.21483852   6.04473543  -0.20715752   0.05035468   0.97701085
+879  1784.7300   725.0000  -125.0000   719.6271  -124.9719    78.4531   0.21197213   6.11123800  -0.20728579   0.03599770   0.97761792
+880  1784.7300   725.0000   -75.0000   719.6271   -74.9939    76.9834   0.21003537   6.17934799  -0.20737149   0.02161063   0.97802353
+881  1784.7300   725.0000   -25.0000   719.6271   -24.9998    76.2482   0.20905904   6.24845934  -0.20741440   0.00720556   0.97822666
+882  1784.7300   725.0000    25.0000   719.6271    24.9998    76.2482   0.20905904   0.03472597  -0.20741440  -0.00720556   0.97822666
+883  1784.7300   725.0000    75.0000   719.6271    74.9939    76.9834   0.21003537   0.10383735  -0.20737149  -0.02161063   0.97802353
+884  1784.7300   725.0000   125.0000   719.6271   124.9719    78.4531   0.21197213   0.17194717  -0.20728581  -0.03599767   0.97761792
+885  1784.7300   725.0000   175.0000   719.6271   174.9228    80.6560   0.21483852   0.23844975  -0.20715752  -0.05035466   0.97701085
+886  1784.7300   725.0000   225.0000   719.6271   224.8361    83.5904   0.21859103   0.30282491  -0.20698707  -0.06466983   0.97620398
+887  1784.7300   725.0000   275.0000   719.6271   274.7011    87.2535   0.22317588   0.36465526  -0.20677483  -0.07893154   0.97519946
+888  1784.7300   725.0000   325.0000   719.6271   324.5073    91.6424   0.22853206   0.42363381  -0.20652142  -0.09312839   0.97399998
+889  1805.4000   725.0000   375.0000   719.6271   374.2443    96.7532   0.23459409   0.47956109  -0.20622748  -0.10724924   0.97260875
+890  1805.4000   725.0000   425.0000   719.6271   423.9018   102.5817   0.24129471   0.53233474  -0.20589380  -0.12128330   0.97102940
+891  1805.4000   775.0000  -375.0000   768.4574  -374.2443   107.4391   0.24671859   5.82998610  -0.21956913   0.10693168   0.96971905
+892  1805.4000   775.0000  -325.0000   768.4574  -324.5073   102.3282   0.24100770   5.88361740  -0.21988019   0.09285188   0.97109795
+893  1805.4000   775.0000  -275.0000   768.4574  -274.7011    97.9393   0.23597544   5.93987036  -0.22014837   0.07869666   0.97228676
+894  1805.4000   775.0000  -225.0000   768.4574  -224.8361    94.2762   0.23167872   5.99854851  -0.22037299   0.06447701   0.97328234
+895  1784.7300   775.0000  -175.0000   768.4574  -174.9228    91.3419   0.22816989   6.05937052  -0.22055343   0.05020422   0.97408199
+896  1784.7300   775.0000  -125.0000   768.4574  -124.9719    89.1389   0.22549459   6.12196970  -0.22068916   0.03589001   0.97468364
+897  1784.7300   775.0000   -75.0000   768.4574   -74.9939    87.6692   0.22368950   6.18590307  -0.22077985   0.02154597   0.97508568
+898  1784.7300   775.0000   -25.0000   768.4574   -24.9998    86.9341   0.22278035   6.25066423  -0.22082528   0.00718401   0.97528690
+899  1784.7300   775.0000    25.0000   768.4574    24.9998    86.9341   0.22278035   0.03252098  -0.22082528  -0.00718399   0.97528690
+900  1784.7300   775.0000    75.0000   768.4574    74.9939    87.6692   0.22368950   0.09728213  -0.22077985  -0.02154594   0.97508568
+901  1784.7300   775.0000   125.0000   768.4574   124.9719    89.1389   0.22549459   0.16121560  -0.22068916  -0.03589001   0.97468364
+902  1784.7300   775.0000   175.0000   768.4574   174.9228    91.3419   0.22816989   0.22381487  -0.22055343  -0.05020425   0.97408199
+903  1805.4000   775.0000   225.0000   768.4574   224.8361    94.2762   0.23167872   0.28463665  -0.22037300  -0.06447697   0.97328234
+904  1805.4000   775.0000   275.0000   768.4574   274.7011    97.9393   0.23597544   0.34331480  -0.22014838  -0.07869663   0.97228676
+905  1805.4000   775.0000   325.0000   768.4574   324.5073   102.3282   0.24100770   0.39956796  -0.21988019  -0.09285190   0.97109795
+906  1805.4000   775.0000   375.0000   768.4574   374.2443   107.4391   0.24671859   0.45319945  -0.21956910  -0.10693173   0.96971905
+907  1805.4000   825.0000  -325.0000   817.1337  -324.5073   113.6783   0.25348800   5.90515661  -0.23307531   0.09256090   0.96804357
+908  1805.4000   825.0000  -275.0000   817.1337  -274.7011   109.2895   0.24874869   5.95887804  -0.23335782   0.07844943   0.96922123
+909  1805.4000   825.0000  -225.0000   817.1337  -224.8361   105.6263   0.24471071   6.01467752  -0.23359440   0.06427404   0.97020745
+910  1805.4000   825.0000  -175.0000   817.1337  -174.9228   102.6920   0.24141937   6.07229948  -0.23378445   0.05004593   0.97099960
+911  1805.4000   825.0000  -125.0000   817.1337  -124.9719   100.4890   0.23891383   6.13142204  -0.23392744   0.03577669   0.97159559
+912  1805.4000   825.0000   -75.0000   817.1337   -74.9939    99.0194   0.23722523   6.19166470  -0.23402296   0.02147792   0.97199380
+913  1805.4000   825.0000   -25.0000   817.1337   -24.9998    98.2842   0.23637535   6.25260019  -0.23407079   0.00716132   0.97219318
+914  1805.4000   825.0000    25.0000   817.1337    24.9998    98.2842   0.23637535   0.03058496  -0.23407079  -0.00716128   0.97219318
+915  1805.4000   825.0000    75.0000   817.1337    74.9939    99.0194   0.23722523   0.09152039  -0.23402296  -0.02147787   0.97199380
+916  1805.4000   825.0000   125.0000   817.1337   124.9719   100.4890   0.23891383   0.15176336  -0.23392743  -0.03577671   0.97159559
+917  1805.4000   825.0000   175.0000   817.1337   174.9228   102.6920   0.24141937   0.21088590  -0.23378444  -0.05004594   0.97099960
+918  1805.4000   825.0000   225.0000   817.1337   224.8361   105.6263   0.24471071   0.26850766  -0.23359442  -0.06427401   0.97020745
+919  1805.4000   825.0000   275.0000   817.1337   274.7011   109.2895   0.24874869   0.32430717  -0.23335783  -0.07844941   0.96922123
+920  1805.4000   825.0000   325.0000   817.1337   324.5073   113.6783   0.25348800   0.37802872  -0.23307531  -0.09256091   0.96804357
+#@endcode
+#
+# $Log: not supported by cvs2svn $
+# Revision 1.1  1999/10/05  11:53:01  gonzalez
+# Sep. 1999
+#
+# Revision 1.1  1999/03/02  12:06:46  gonzalez
+# Working directory.
+# You should run reflector and camera from this directory
+#
+# Revision 1.6  1999/02/15  10:12:44  gonzalez
+# Just maintenance
+#
+#
+#EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Data/magic.def
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Data/magic.def	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Data/magic.def	(revision 4308)
@@ -0,0 +1,1039 @@
+###################################################-*-sh-*-##
+# MAGIC definition file
+# J C Gonzalez, 1998
+#############################################################
+# @file         magic.def
+# @title        MAGIC definition file
+# @description  MAGIC def. file to be used by {\tt reflector} and {\tt camera}
+# @author       J C Gonz\'alez
+# @email        gonzalez@mppmu.mpg.de
+#
+# @maintitle
+# @code
+#------------------------------------------------------------ 
+# MAGIC definition file
+# J C Gonzalez, 1998
+#------------------------------------------------------------
+#
+# type of definition file  (0: CT1, 1: MAGIC)
+#
+type  1
+#
+# focal distance [cm]
+#
+focal_distance      1700.0
+#
+# std(focal_distance) [cm]
+#
+focal_std           0.0
+#
+# point spread function [cm]
+#
+point_spread        0.5
+#
+# std(point spread function) [cm]
+#
+point_std           0.5
+#
+# std value of adjustment deviation [cm]
+#
+adjustment_dev      0.5
+#
+# black spot in the center of the mirror, radius [cm]
+#
+black_spot          0.5
+#
+# camera width [cm]
+#
+camera_width        1000.
+#
+# number of pixels in the camera 
+#
+n_pixels 595
+#
+# pixel width (small diameter) [cm] 
+#
+pixel_width 3.0
+#
+# number of central pixels
+#   PIXELS = 3 x N x (N+1) + 1      (N=number of rings)
+n_centralpixels 397
+#
+# number of "gap pixels" (must be multiple of 6)
+#
+n_gappixels 18
+#
+# number of mirrors
+#
+n_mirrors 920
+#
+# radius of a single mirror
+#
+r_mirror 24.75
+#
+# this entry is followed by the def. of mirrors, everything in [radians] or [cm]
+#
+#*  TYPE=0  (CT1)
+#*      i   s   rho   theta   x   y   z   thetan  phin  xn   yn   zn
+#* 
+#*       i : number of the mirror
+#*       s : arc length [cm]
+#*     rho : polar rho of the position of the center of the mirror [cm]
+#*   theta : polar angle of the position of the center of the mirror [cm]
+#*       x : x coordinate of the center of the mirror [cm]
+#*       y : y coordinate of the center of the mirror [cm]
+#*       z : z coordinate of the center of the mirror [cm]
+#*  thetan : polar theta angle of the direction where the mirror points to
+#*    phin : polar phi angle of the direction where the mirror points to
+#*      xn : xn coordinate of the normal vector in the center (normalized)
+#*      yn : yn coordinate of the normal vector in the center (normalized)
+#*      zn : zn coordinate of the normal vector in the center (normalized)
+#* 
+#*  TYPE=1  (MAGIC)
+#*      i  f   sx   sy   x   y   z   thetan  phin 
+#* 
+#*       i : number of the mirror
+#*       f : focal distance of that mirror
+#*      sx : curvilinear coordinate of mirror's center in X[cm]
+#*      sy : curvilinear coordinate of mirror's center in X[cm]
+#*       x : x coordinate of the center of the mirror [cm]
+#*       y : y coordinate of the center of the mirror [cm]
+#*       z : z coordinate of the center of the mirror [cm]
+#*  thetan : polar theta angle of the direction where the mirror points to
+#*    phin : polar phi angle of the direction where the mirror points to
+#*      xn : xn coordinate of the normal vector in the center (normalized)
+#*      yn : yn coordinate of the normal vector in the center (normalized)
+#*      zn : zn coordinate of the normal vector in the center (normalized)
+#
+define_mirrors
+  1  1805.4000  -825.0000  -325.0000  -817.1337  -324.5073   113.6783   0.25348800   3.51962137   0.23307531   0.09256091   0.96804357
+  2  1805.4000  -825.0000  -275.0000  -817.1337  -274.7011   109.2895   0.24874869   3.46589971   0.23335783   0.07844938   0.96922123
+  3  1805.4000  -825.0000  -225.0000  -817.1337  -224.8361   105.6263   0.24471071   3.41010022   0.23359442   0.06427398   0.97020745
+  4  1805.4000  -825.0000  -175.0000  -817.1337  -174.9228   102.6920   0.24141937   3.35247850   0.23378445   0.05004594   0.97099960
+  5  1805.4000  -825.0000  -125.0000  -817.1337  -124.9719   100.4890   0.23891383   3.29335594   0.23392743   0.03577669   0.97159559
+  6  1805.4000  -825.0000   -75.0000  -817.1337   -74.9939    99.0194   0.23722523   3.23311305   0.23402296   0.02147787   0.97199380
+  7  1805.4000  -825.0000   -25.0000  -817.1337   -24.9998    98.2842   0.23637535   3.17217755   0.23407079   0.00716126   0.97219318
+  8  1805.4000  -825.0000    25.0000  -817.1337    24.9998    98.2842   0.23637535   3.11100769   0.23407079  -0.00716128   0.97219318
+  9  1805.4000  -825.0000    75.0000  -817.1337    74.9939    99.0194   0.23722523   3.05007219   0.23402296  -0.02147789   0.97199380
+ 10  1805.4000  -825.0000   125.0000  -817.1337   124.9719   100.4890   0.23891383   2.98982930   0.23392743  -0.03577670   0.97159559
+ 11  1805.4000  -825.0000   175.0000  -817.1337   174.9228   102.6920   0.24141937   2.93070674   0.23378444  -0.05004595   0.97099960
+ 12  1805.4000  -825.0000   225.0000  -817.1337   224.8361   105.6263   0.24471071   2.87308502   0.23359442  -0.06427400   0.97020745
+ 13  1805.4000  -825.0000   275.0000  -817.1337   274.7011   109.2895   0.24874869   2.81728554   0.23335783  -0.07844939   0.96922123
+ 14  1805.4000  -825.0000   325.0000  -817.1337   324.5073   113.6783   0.25348800   2.76356387   0.23307531  -0.09256092   0.96804357
+ 15  1805.4000  -775.0000  -375.0000  -768.4574  -374.2443   107.4391   0.24671859   3.59479213   0.21956910   0.10693174   0.96971905
+ 16  1805.4000  -775.0000  -325.0000  -768.4574  -324.5073   102.3282   0.24100770   3.54116058   0.21988019   0.09285189   0.97109795
+ 17  1805.4000  -775.0000  -275.0000  -768.4574  -274.7011    97.9393   0.23597544   3.48490739   0.22014838   0.07869662   0.97228676
+ 18  1805.4000  -775.0000  -225.0000  -768.4574  -224.8361    94.2762   0.23167872   3.42622924   0.22037300   0.06447696   0.97328234
+ 19  1784.7300  -775.0000  -175.0000  -768.4574  -174.9228    91.3419   0.22816989   3.36540747   0.22055343   0.05020423   0.97408199
+ 20  1784.7300  -775.0000  -125.0000  -768.4574  -124.9719    89.1389   0.22549459   3.30280828   0.22068916   0.03589002   0.97468364
+ 21  1784.7300  -775.0000   -75.0000  -768.4574   -74.9939    87.6692   0.22368950   3.23887467   0.22077985   0.02154592   0.97508568
+ 22  1784.7300  -775.0000   -25.0000  -768.4574   -24.9998    86.9341   0.22278035   3.17411351   0.22082528   0.00718396   0.97528690
+ 23  1784.7300  -775.0000    25.0000  -768.4574    24.9998    86.9341   0.22278035   3.10907173   0.22082528  -0.00718397   0.97528690
+ 24  1784.7300  -775.0000    75.0000  -768.4574    74.9939    87.6692   0.22368950   3.04431057   0.22077985  -0.02154594   0.97508568
+ 25  1784.7300  -775.0000   125.0000  -768.4574   124.9719    89.1389   0.22549459   2.98037696   0.22068916  -0.03589003   0.97468364
+ 26  1784.7300  -775.0000   175.0000  -768.4574   174.9228    91.3419   0.22816989   2.91777778   0.22055343  -0.05020425   0.97408199
+ 27  1805.4000  -775.0000   225.0000  -768.4574   224.8361    94.2762   0.23167872   2.85695601   0.22037300  -0.06447697   0.97328234
+ 28  1805.4000  -775.0000   275.0000  -768.4574   274.7011    97.9393   0.23597544   2.79827785   0.22014838  -0.07869663   0.97228676
+ 29  1805.4000  -775.0000   325.0000  -768.4574   324.5073   102.3282   0.24100770   2.74202466   0.21988019  -0.09285191   0.97109795
+ 30  1805.4000  -775.0000   375.0000  -768.4574   374.2443   107.4391   0.24671859   2.68839312   0.21956909  -0.10693175   0.96971905
+ 31  1805.4000  -725.0000  -425.0000  -719.6271  -423.9018   102.5817   0.24129471   3.67392731   0.20589381   0.12128329   0.97102940
+ 32  1805.4000  -725.0000  -375.0000  -719.6271  -374.2443    96.7532   0.23459409   3.62115359   0.20622750   0.10724921   0.97260875
+ 33  1784.7300  -725.0000  -325.0000  -719.6271  -324.5073    91.6424   0.22853206   3.56522632   0.20652144   0.09312835   0.97399998
+ 34  1784.7300  -725.0000  -275.0000  -719.6271  -274.7011    87.2535   0.22317588   3.50624776   0.20677485   0.07893151   0.97519946
+ 35  1784.7300  -725.0000  -225.0000  -719.6271  -224.8361    83.5904   0.21859103   3.44441748   0.20698707   0.06466982   0.97620398
+ 36  1784.7300  -725.0000  -175.0000  -719.6271  -174.9228    80.6560   0.21483852   3.38004231   0.20715754   0.05035464   0.97701085
+ 37  1784.7300  -725.0000  -125.0000  -719.6271  -124.9719    78.4531   0.21197213   3.31353974   0.20728581   0.03599766   0.97761792
+ 38  1784.7300  -725.0000   -75.0000  -719.6271   -74.9939    76.9834   0.21003537   3.24542999   0.20737149   0.02161063   0.97802353
+ 39  1784.7300  -725.0000   -25.0000  -719.6271   -24.9998    76.2482   0.20905904   3.17631865   0.20741440   0.00720557   0.97822666
+ 40  1784.7300  -725.0000    25.0000  -719.6271    24.9998    76.2482   0.20905904   3.10686660   0.20741440  -0.00720558   0.97822666
+ 41  1784.7300  -725.0000    75.0000  -719.6271    74.9939    76.9834   0.21003537   3.03775525   0.20737149  -0.02161064   0.97802353
+ 42  1784.7300  -725.0000   125.0000  -719.6271   124.9719    78.4531   0.21197213   2.96964550   0.20728581  -0.03599767   0.97761792
+ 43  1784.7300  -725.0000   175.0000  -719.6271   174.9228    80.6560   0.21483852   2.90314293   0.20715752  -0.05035465   0.97701085
+ 44  1784.7300  -725.0000   225.0000  -719.6271   224.8361    83.5904   0.21859103   2.83876777   0.20698707  -0.06466983   0.97620398
+ 45  1784.7300  -725.0000   275.0000  -719.6271   274.7011    87.2535   0.22317588   2.77693748   0.20677483  -0.07893153   0.97519946
+ 46  1784.7300  -725.0000   325.0000  -719.6271   324.5073    91.6424   0.22853206   2.71795893   0.20652144  -0.09312837   0.97399998
+ 47  1805.4000  -725.0000   375.0000  -719.6271   374.2443    96.7532   0.23459409   2.66203165   0.20622748  -0.10724922   0.97260875
+ 48  1805.4000  -725.0000   425.0000  -719.6271   423.9018   102.5817   0.24129471   2.60925794   0.20589380  -0.12128329   0.97102940
+ 49  1805.4000  -675.0000  -475.0000  -670.6511  -473.4697    99.1098   0.23732954   3.75632405   0.19206630   0.13559590   0.97196931
+ 50  1784.7300  -675.0000  -425.0000  -670.6511  -423.9018    92.5685   0.22964412   3.70526338   0.19241638   0.12162157   0.97374749
+ 51  1784.7300  -675.0000  -375.0000  -670.6511  -374.2443    86.7400   0.22253957   3.65058088   0.19272998   0.10754933   0.97534007
+ 52  1784.7300  -675.0000  -325.0000  -670.6511  -324.5073    81.6291   0.21609105   3.59225225   0.19300622   0.09338970   0.97674304
+ 53  1784.7300  -675.0000  -275.0000  -670.6511  -274.7011    77.2402   0.21037526   3.53035045   0.19324437   0.07915358   0.97795260
+ 54  1784.7300  -675.0000  -225.0000  -670.6511  -224.8361    73.5771   0.20546794   3.46506763   0.19344383   0.06485213   0.97896564
+ 55  1763.2600  -675.0000  -175.0000  -670.6511  -174.9228    70.6428   0.20144072   3.39673352   0.19360405   0.05049682   0.97977936
+ 56  1763.2600  -675.0000  -125.0000  -670.6511  -124.9719    68.4398   0.19835755   3.32582378   0.19372460   0.03609945   0.98039156
+ 57  1763.2600  -675.0000   -75.0000  -670.6511   -74.9939    66.9702   0.19627079   3.25295258   0.19380516   0.02167179   0.98080063
+ 58  1763.2600  -675.0000   -25.0000  -670.6511   -24.9998    66.2350   0.19521770   3.17885232   0.19384547   0.00722596   0.98100549
+ 59  1763.2600  -675.0000    25.0000  -670.6511    24.9998    66.2350   0.19521770   3.10433292   0.19384547  -0.00722597   0.98100549
+ 60  1763.2600  -675.0000    75.0000  -670.6511    74.9939    66.9702   0.19627079   3.03023267   0.19380516  -0.02167180   0.98080063
+ 61  1763.2600  -675.0000   125.0000  -670.6511   124.9719    68.4398   0.19835755   2.95736146   0.19372459  -0.03609946   0.98039156
+ 62  1763.2600  -675.0000   175.0000  -670.6511   174.9228    70.6428   0.20144072   2.88645172   0.19360405  -0.05049683   0.97977936
+ 63  1784.7300  -675.0000   225.0000  -670.6511   224.8361    73.5771   0.20546794   2.81811762   0.19344382  -0.06485214   0.97896564
+ 64  1784.7300  -675.0000   275.0000  -670.6511   274.7011    77.2402   0.21037526   2.75283480   0.19324437  -0.07915360   0.97795260
+ 65  1784.7300  -675.0000   325.0000  -670.6511   324.5073    81.6291   0.21609105   2.69093299   0.19300622  -0.09338970   0.97674304
+ 66  1784.7300  -675.0000   375.0000  -670.6511   374.2443    86.7400   0.22253957   2.63260436   0.19272998  -0.10754934   0.97534007
+ 67  1784.7300  -675.0000   425.0000  -670.6511   423.9018    92.5685   0.22964412   2.57792187   0.19241638  -0.12162159   0.97374749
+ 68  1805.4000  -675.0000   475.0000  -670.6511   473.4697    99.1098   0.23732954   2.52686119   0.19206628  -0.13559592   0.97196931
+ 69  1805.4000  -625.0000  -525.0000  -621.5383  -522.9382    97.0256   0.23491217   3.84104991   0.17810416   0.14984991   0.97253478
+ 70  1784.7300  -625.0000  -475.0000  -621.5383  -473.4697    89.7770   0.22627315   3.79258442   0.17846446   0.13594896   0.97450930
+ 71  1784.7300  -625.0000  -425.0000  -621.5383  -423.9018    83.2357   0.21814133   3.74014950   0.17879148   0.12193942   0.97630137
+ 72  1784.7300  -625.0000  -375.0000  -621.5383  -374.2443    77.4072   0.21059583   3.68357372   0.17908439   0.10783131   0.97790653
+ 73  1784.7300  -625.0000  -325.0000  -621.5383  -324.5073    72.2963   0.20372099   3.62276626   0.17934240   0.09363528   0.97932053
+ 74  1763.2600  -625.0000  -275.0000  -621.5383  -274.7011    67.9074   0.19760442   3.55774856   0.17956488   0.07936224   0.98053968
+ 75  1763.2600  -625.0000  -225.0000  -621.5383  -224.8361    64.2443   0.19233420   3.48868895   0.17975120   0.06502344   0.98156071
+ 76  1763.2600  -625.0000  -175.0000  -621.5383  -174.9228    61.3100   0.18799514   3.41593170   0.17990088   0.05063044   0.98238093
+ 77  1763.2600  -625.0000  -125.0000  -621.5383  -124.9719    59.1070   0.18466403   3.34001541   0.18001349   0.03619504   0.98299801
+ 78  1763.2600  -625.0000   -75.0000  -621.5383   -74.9939    57.6373   0.18240470   3.26167059   0.18008873   0.02172922   0.98341036
+ 79  1763.2600  -625.0000   -25.0000  -621.5383   -24.9998    56.9022   0.18126303   3.18179345   0.18012640   0.00724513   0.98361677
+ 80  1763.2600  -625.0000    25.0000  -621.5383    24.9998    56.9022   0.18126303   3.10139179   0.18012640  -0.00724514   0.98361677
+ 81  1763.2600  -625.0000    75.0000  -621.5383    74.9939    57.6373   0.18240470   3.02151465   0.18008873  -0.02172923   0.98341036
+ 82  1763.2600  -625.0000   125.0000  -621.5383   124.9719    59.1070   0.18466403   2.94316983   0.18001349  -0.03619505   0.98299801
+ 83  1763.2600  -625.0000   175.0000  -621.5383   174.9228    61.3100   0.18799514   2.86725354   0.17990088  -0.05063045   0.98238093
+ 84  1763.2600  -625.0000   225.0000  -621.5383   224.8361    64.2443   0.19233420   2.79449630   0.17975120  -0.06502345   0.98156071
+ 85  1763.2600  -625.0000   275.0000  -621.5383   274.7011    67.9074   0.19760442   2.72543669   0.17956486  -0.07936225   0.98053968
+ 86  1784.7300  -625.0000   325.0000  -621.5383   324.5073    72.2963   0.20372099   2.66041899   0.17934239  -0.09363530   0.97932053
+ 87  1784.7300  -625.0000   375.0000  -621.5383   374.2443    77.4072   0.21059583   2.59961152   0.17908438  -0.10783133   0.97790653
+ 88  1784.7300  -625.0000   425.0000  -621.5383   423.9018    83.2357   0.21814133   2.54303575   0.17879148  -0.12193943   0.97630137
+ 89  1784.7300  -625.0000   475.0000  -621.5383   473.4697    89.7770   0.22627315   2.49060082   0.17846446  -0.13594897   0.97450930
+ 90  1805.4000  -625.0000   525.0000  -621.5383   522.9382    97.0256   0.23491217   2.44213533   0.17810416  -0.14984991   0.97253478
+ 91  1805.4000  -575.0000  -575.0000  -572.2976  -572.2976    96.3307   0.23409981   3.92699075   0.16402575   0.16402574   0.97272354
+ 92  1784.7300  -575.0000  -525.0000  -572.2976  -522.9382    88.3807   0.22456542   3.88195372   0.16438995   0.15021163   0.97489095
+ 93  1784.7300  -575.0000  -475.0000  -572.2976  -473.4697    81.1321   0.21545230   3.83276772   0.16472411   0.13627850   0.97687978
+ 94  1784.7300  -575.0000  -425.0000  -572.2976  -423.9018    74.5908   0.20683894   3.77911615   0.16502742   0.12223607   0.97868496
+ 95  1763.2600  -575.0000  -375.0000  -572.2976  -374.2443    68.7622   0.19881210   3.72072768   0.16529909   0.10809451   0.98030186
+ 96  1763.2600  -575.0000  -325.0000  -572.2976  -324.5073    63.6514   0.19146617   3.65741301   0.16553843   0.09386446   0.98172629
+ 97  1763.2600  -575.0000  -275.0000  -572.2976  -274.7011    59.2625   0.18490130   3.58911014   0.16574478   0.07955699   0.98295438
+ 98  1763.2600  -575.0000  -225.0000  -572.2976  -224.8361    55.5994   0.17922038   3.51593351   0.16591761   0.06518330   0.98398298
+ 99  1763.2600  -575.0000  -175.0000  -572.2976  -174.9228    52.6651   0.17452455   3.43822479   0.16605644   0.05075514   0.98480922
+100  1745.0699  -575.0000  -125.0000  -572.2976  -124.9719    50.4621   0.17090724   3.35658646   0.16616090   0.03628434   0.98543090
+101  1745.0699  -575.0000   -75.0000  -572.2976   -74.9939    48.9924   0.16844730   3.27189016   0.16623069   0.02178286   0.98584628
+102  1745.0699  -575.0000   -25.0000  -572.2976   -24.9998    48.2573   0.16720217   3.18524814   0.16626564   0.00726302   0.98605424
+103  1745.0699  -575.0000    25.0000  -572.2976    24.9998    48.2573   0.16720217   3.09793711   0.16626564  -0.00726303   0.98605424
+104  1745.0699  -575.0000    75.0000  -572.2976    74.9939    48.9924   0.16844730   3.01129508   0.16623069  -0.02178287   0.98584628
+105  1745.0699  -575.0000   125.0000  -572.2976   124.9719    50.4621   0.17090724   2.92659879   0.16616090  -0.03628435   0.98543090
+106  1763.2600  -575.0000   175.0000  -572.2976   174.9228    52.6651   0.17452455   2.84496045   0.16605642  -0.05075515   0.98480922
+107  1763.2600  -575.0000   225.0000  -572.2976   224.8361    55.5994   0.17922038   2.76725173   0.16591761  -0.06518332   0.98398298
+108  1763.2600  -575.0000   275.0000  -572.2976   274.7011    59.2625   0.18490130   2.69407511   0.16574477  -0.07955699   0.98295438
+109  1763.2600  -575.0000   325.0000  -572.2976   324.5073    63.6514   0.19146617   2.62577224   0.16553843  -0.09386447   0.98172629
+110  1763.2600  -575.0000   375.0000  -572.2976   374.2443    68.7622   0.19881210   2.56245756   0.16529909  -0.10809452   0.98030186
+111  1784.7300  -575.0000   425.0000  -572.2976   423.9018    74.5908   0.20683894   2.50406909   0.16502741  -0.12223608   0.97868496
+112  1784.7300  -575.0000   475.0000  -572.2976   473.4697    81.1321   0.21545230   2.45041752   0.16472411  -0.13627850   0.97687978
+113  1784.7300  -575.0000   525.0000  -572.2976   522.9382    88.3807   0.22456542   2.40123153   0.16438995  -0.15021163   0.97489095
+114  1805.4000  -575.0000   575.0000  -572.2976   572.2976    96.3307   0.23409981   2.35619450   0.16402575  -0.16402575   0.97272354
+115  1805.4000  -525.0000  -625.0000  -522.9382  -621.5383    97.0256   0.23491217   4.01293182   0.14984988   0.17810418   0.97253478
+116  1784.7300  -525.0000  -575.0000  -522.9382  -572.2976    88.3807   0.22456542   3.97202778   0.15021165   0.16438994   0.97489095
+117  1784.7300  -525.0000  -525.0000  -522.9382  -522.9382    80.4307   0.21454726   3.92699075   0.15054664   0.15054663   0.97707289
+118  1784.7300  -525.0000  -475.0000  -522.9382  -473.4697    73.1821   0.20493087   3.87738466   0.15085404   0.13658366   0.97907507
+119  1763.2600  -525.0000  -425.0000  -522.9382  -423.9018    66.6407   0.19579971   3.82277298   0.15113308   0.12251080   0.98089242
+120  1763.2600  -525.0000  -375.0000  -522.9382  -374.2443    60.8122   0.18724811   3.76274943   0.15138298   0.10833827   0.98252022
+121  1763.2600  -525.0000  -325.0000  -522.9382  -324.5073    55.7014   0.17938119   3.69698286   0.15160316   0.09407678   0.98395431
+122  1745.0699  -525.0000  -275.0000  -522.9382  -274.7011    51.3125   0.17231330   3.62527728   0.15179302   0.07973735   0.98519075
+123  1745.0699  -525.0000  -225.0000  -522.9382  -224.8361    47.6494   0.16616496   3.54764652   0.15195203   0.06533141   0.98622632
+124  1745.0699  -525.0000  -175.0000  -522.9382  -174.9228    44.7151   0.16105770   3.46439266   0.15207973   0.05087064   0.98705822
+125  1745.0699  -525.0000  -125.0000  -522.9382  -124.9719    42.5121   0.15710649   3.37617326   0.15217583   0.03636703   0.98768413
+126  1745.0699  -525.0000   -75.0000  -522.9382   -74.9939    41.0424   0.15441042   3.28403020   0.15224004   0.02183255   0.98810238
+127  1745.0699  -525.0000   -25.0000  -522.9382   -24.9998    40.3073   0.15304284   3.18936253   0.15227219   0.00727956   0.98831177
+128  1745.0699  -525.0000    25.0000  -522.9382    24.9998    40.3073   0.15304284   3.09382272   0.15227219  -0.00727957   0.98831177
+129  1745.0699  -525.0000    75.0000  -522.9382    74.9939    41.0424   0.15441042   2.99915504   0.15224004  -0.02183256   0.98810238
+130  1745.0699  -525.0000   125.0000  -522.9382   124.9719    42.5121   0.15710649   2.90701199   0.15217581  -0.03636704   0.98768413
+131  1745.0699  -525.0000   175.0000  -522.9382   174.9228    44.7151   0.16105770   2.81879258   0.15207973  -0.05087065   0.98705822
+132  1745.0699  -525.0000   225.0000  -522.9382   224.8361    47.6494   0.16616496   2.73553872   0.15195201  -0.06533142   0.98622632
+133  1745.0699  -525.0000   275.0000  -522.9382   274.7011    51.3125   0.17231330   2.65790796   0.15179302  -0.07973737   0.98519075
+134  1763.2600  -525.0000   325.0000  -522.9382   324.5073    55.7014   0.17938119   2.58620238   0.15160315  -0.09407678   0.98395431
+135  1763.2600  -525.0000   375.0000  -522.9382   374.2443    60.8122   0.18724811   2.52043581   0.15138298  -0.10833827   0.98252022
+136  1763.2600  -525.0000   425.0000  -522.9382   423.9018    66.6407   0.19579971   2.46041226   0.15113306  -0.12251081   0.98089242
+137  1784.7300  -525.0000   475.0000  -522.9382   473.4697    73.1821   0.20493087   2.40580058   0.15085404  -0.13658367   0.97907507
+138  1784.7300  -525.0000   525.0000  -522.9382   522.9382    80.4307   0.21454726   2.35619450   0.15054664  -0.15054664   0.97707289
+139  1784.7300  -525.0000   575.0000  -522.9382   572.2976    88.3807   0.22456542   2.31115746   0.15021163  -0.16438994   0.97489095
+140  1805.4000  -525.0000   625.0000  -522.9382   621.5383    97.0256   0.23491217   2.27025366   0.14984992  -0.17810415   0.97253478
+141  1805.4000  -475.0000  -675.0000  -473.4697  -670.6511    99.1098   0.23732954   4.09765768   0.13559589   0.19206630   0.97196931
+142  1784.7300  -475.0000  -625.0000  -473.4697  -621.5383    89.7770   0.22627315   4.06139708   0.13594899   0.17846444   0.97450930
+143  1784.7300  -475.0000  -575.0000  -473.4697  -572.2976    81.1321   0.21545230   4.02121401   0.13627848   0.16472413   0.97687978
+144  1784.7300  -475.0000  -525.0000  -473.4697  -522.9382    73.1821   0.20493087   3.97659683   0.13658367   0.15085402   0.97907507
+145  1763.2600  -475.0000  -475.0000  -473.4697  -473.4697    65.9334   0.19478387   3.92699075   0.13686371   0.13686368   0.98108953
+146  1763.2600  -475.0000  -425.0000  -473.4697  -423.9018    59.3921   0.18509875   3.87180996   0.13711791   0.12276289   0.98291808
+147  1763.2600  -475.0000  -375.0000  -473.4697  -374.2443    53.5636   0.17597687   3.81047034   0.13734560   0.10856195   0.98455596
+148  1745.0699  -475.0000  -325.0000  -473.4697  -324.5073    48.4527   0.16753416   3.74243975   0.13754618   0.09427155   0.98599893
+149  1745.0699  -475.0000  -275.0000  -473.4697  -274.7011    44.0639   0.15990058   3.66731644   0.13771912   0.07990286   0.98724312
+150  1745.0699  -475.0000  -225.0000  -473.4697  -224.8361    40.4007   0.15321741   3.58493400   0.13786398   0.06546731   0.98828518
+151  1745.0699  -475.0000  -175.0000  -473.4697  -174.9228    37.4664   0.14763157   3.49548769   0.13798034   0.05097668   0.98912221
+152  1730.0601  -475.0000  -125.0000  -473.4697  -124.9719    35.2635   0.14328626   3.39965606   0.13806790   0.03644288   0.98975205
+153  1730.0601  -475.0000   -75.0000  -473.4697   -74.9939    33.7938   0.14030823   3.29867983   0.13812639   0.02187814   0.99017292
+154  1730.0601  -475.0000   -25.0000  -473.4697   -24.9998    33.0586   0.13879332   3.19434476   0.13815568   0.00729477   0.99038368
+155  1730.0601  -475.0000    25.0000  -473.4697    24.9998    33.0586   0.13879332   3.08884048   0.13815568  -0.00729478   0.99038368
+156  1730.0601  -475.0000    75.0000  -473.4697    74.9939    33.7938   0.14030823   2.98450541   0.13812639  -0.02187815   0.99017292
+157  1730.0601  -475.0000   125.0000  -473.4697   124.9719    35.2635   0.14328626   2.88352919   0.13806790  -0.03644289   0.98975205
+158  1745.0699  -475.0000   175.0000  -473.4697   174.9228    37.4664   0.14763157   2.78769755   0.13798034  -0.05097669   0.98912221
+159  1745.0699  -475.0000   225.0000  -473.4697   224.8361    40.4007   0.15321741   2.69825125   0.13786398  -0.06546732   0.98828518
+160  1745.0699  -475.0000   275.0000  -473.4697   274.7011    44.0639   0.15990058   2.61586881   0.13771912  -0.07990287   0.98724312
+161  1745.0699  -475.0000   325.0000  -473.4697   324.5073    48.4527   0.16753416   2.54074550   0.13754617  -0.09427156   0.98599893
+162  1763.2600  -475.0000   375.0000  -473.4697   374.2443    53.5636   0.17597687   2.47271490   0.13734558  -0.10856196   0.98455596
+163  1763.2600  -475.0000   425.0000  -473.4697   423.9018    59.3921   0.18509875   2.41137528   0.13711789  -0.12276290   0.98291808
+164  1763.2600  -475.0000   475.0000  -473.4697   473.4697    65.9334   0.19478387   2.35619450   0.13686369  -0.13686369   0.98108953
+165  1784.7300  -475.0000   525.0000  -473.4697   522.9382    73.1821   0.20493087   2.30658841   0.13658367  -0.15085404   0.97907507
+166  1784.7300  -475.0000   575.0000  -473.4697   572.2976    81.1321   0.21545230   2.26197147   0.13627850  -0.16472411   0.97687978
+167  1784.7300  -475.0000   625.0000  -473.4697   621.5383    89.7770   0.22627315   2.22178817   0.13594897  -0.17846446   0.97450930
+168  1805.4000  -475.0000   675.0000  -473.4697   670.6511    99.1098   0.23732954   2.18552780   0.13559592  -0.19206628   0.97196931
+169  1805.4000  -425.0000  -725.0000  -423.9018  -719.6271   102.5817   0.24129471   4.18005419   0.12128332   0.20589380   0.97102940
+170  1784.7300  -425.0000  -675.0000  -423.9018  -670.6511    92.5685   0.22964412   4.14871836   0.12162155   0.19241640   0.97374749
+171  1784.7300  -425.0000  -625.0000  -423.9018  -621.5383    83.2357   0.21814133   4.11383200   0.12193944   0.17879146   0.97630137
+172  1784.7300  -425.0000  -575.0000  -423.9018  -572.2976    74.5908   0.20683894   4.07486534   0.12223609   0.16502739   0.97868496
+173  1763.2600  -425.0000  -525.0000  -423.9018  -522.9382    66.6407   0.19579971   4.03120852   0.12251082   0.15113306   0.98089242
+174  1763.2600  -425.0000  -475.0000  -423.9018  -473.4697    59.3921   0.18509875   3.98217154   0.12276290   0.13711789   0.98291808
+175  1763.2600  -425.0000  -425.0000  -423.9018  -423.9018    52.8508   0.17482582   3.92699075   0.12299177   0.12299175   0.98475683
+176  1745.0699  -425.0000  -375.0000  -423.9018  -374.2443    47.0223   0.16508774   3.86485481   0.12319676   0.10876501   0.98640394
+177  1745.0699  -425.0000  -325.0000  -423.9018  -324.5073    41.9114   0.15601057   3.79495573   0.12337735   0.09444840   0.98785502
+178  1745.0699  -425.0000  -275.0000  -423.9018  -274.7011    37.5226   0.14774057   3.71658182   0.12353308   0.08005315   0.98910618
+179  1730.0601  -425.0000  -225.0000  -423.9018  -224.8361    33.8594   0.14044267   3.62926078   0.12366351   0.06559070   0.99015415
+180  1730.0601  -425.0000  -175.0000  -423.9018  -174.9228    30.9251   0.13429515   3.53295588   0.12376827   0.05107290   0.99099594
+181  1730.0601  -425.0000  -125.0000  -423.9018  -124.9719    28.7222   0.12947854   3.42828417   0.12384712   0.03651177   0.99162936
+182  1730.0601  -425.0000   -75.0000  -423.9018   -74.9939    27.2525   0.12615816   3.31669426   0.12389979   0.02191953   0.99205261
+183  1730.0601  -425.0000   -25.0000  -423.9018   -24.9998    26.5173   0.12446258   3.20049977   0.12392616   0.00730859   0.99226451
+184  1730.0601  -425.0000    25.0000  -423.9018    24.9998    26.5173   0.12446258   3.08268547   0.12392616  -0.00730860   0.99226451
+185  1730.0601  -425.0000    75.0000  -423.9018    74.9939    27.2525   0.12615816   2.96649098   0.12389978  -0.02191954   0.99205261
+186  1730.0601  -425.0000   125.0000  -423.9018   124.9719    28.7222   0.12947854   2.85490108   0.12384711  -0.03651178   0.99162936
+187  1730.0601  -425.0000   175.0000  -423.9018   174.9228    30.9251   0.13429515   2.75022936   0.12376826  -0.05107291   0.99099594
+188  1730.0601  -425.0000   225.0000  -423.9018   224.8361    33.8594   0.14044267   2.65392447   0.12366351  -0.06559071   0.99015415
+189  1745.0699  -425.0000   275.0000  -423.9018   274.7011    37.5226   0.14774057   2.56660342   0.12353307  -0.08005316   0.98910618
+190  1745.0699  -425.0000   325.0000  -423.9018   324.5073    41.9114   0.15601057   2.48822951   0.12337734  -0.09444841   0.98785502
+191  1745.0699  -425.0000   375.0000  -423.9018   374.2443    47.0223   0.16508774   2.41833043   0.12319675  -0.10876501   0.98640394
+192  1763.2600  -425.0000   425.0000  -423.9018   423.9018    52.8508   0.17482582   2.35619450   0.12299176  -0.12299176   0.98475683
+193  1763.2600  -425.0000   475.0000  -423.9018   473.4697    59.3921   0.18509875   2.30101371   0.12276290  -0.13711789   0.98291808
+194  1763.2600  -425.0000   525.0000  -423.9018   522.9382    66.6407   0.19579971   2.25197673   0.12251081  -0.15113306   0.98089242
+195  1784.7300  -425.0000   575.0000  -423.9018   572.2976    74.5908   0.20683894   2.20831990   0.12223608  -0.16502741   0.97868496
+196  1784.7300  -425.0000   625.0000  -423.9018   621.5383    83.2357   0.21814133   2.16935325   0.12193943  -0.17879148   0.97630137
+197  1784.7300  -425.0000   675.0000  -423.9018   670.6511    92.5685   0.22964412   2.13446712   0.12162159  -0.19241638   0.97374749
+198  1805.4000  -425.0000   725.0000  -423.9018   719.6271   102.5817   0.24129471   2.10313106   0.12128330  -0.20589380   0.97102940
+199  1805.4000  -375.0000  -775.0000  -374.2443  -768.4574   107.4391   0.24671859   4.25918961   0.10693172   0.21956910   0.96971905
+200  1805.4000  -375.0000  -725.0000  -374.2443  -719.6271    96.7532   0.23459409   4.23282814   0.10724919   0.20622751   0.97260875
+201  1784.7300  -375.0000  -675.0000  -374.2443  -670.6511    86.7400   0.22253957   4.20340061   0.10754935   0.19272996   0.97534007
+202  1784.7300  -375.0000  -625.0000  -374.2443  -621.5383    77.4072   0.21059583   4.17040777   0.10783134   0.17908438   0.97790653
+203  1763.2600  -375.0000  -575.0000  -374.2443  -572.2976    68.7622   0.19881210   4.13325405   0.10809449   0.16529910   0.98030186
+204  1763.2600  -375.0000  -525.0000  -374.2443  -522.9382    60.8122   0.18724811   4.09123230   0.10833825   0.15138300   0.98252022
+205  1763.2600  -375.0000  -475.0000  -374.2443  -473.4697    53.5636   0.17597687   4.04351139   0.10856193   0.13734560   0.98455596
+206  1745.0699  -375.0000  -425.0000  -374.2443  -423.9018    47.0223   0.16508774   3.98912668   0.10876502   0.12319674   0.98640394
+207  1745.0699  -375.0000  -375.0000  -374.2443  -374.2443    41.1938   0.15469038   3.92699075   0.10894691   0.10894690   0.98805928
+208  1730.0601  -375.0000  -325.0000  -374.2443  -324.5073    36.0829   0.14491870   3.85593081   0.10910714   0.09460682   0.98951763
+209  1730.0601  -375.0000  -275.0000  -374.2443  -274.7011    31.6941   0.13593437   3.77478480   0.10924534   0.08018775   0.99077517
+210  1730.0601  -375.0000  -225.0000  -374.2443  -224.8361    28.0309   0.12792800   3.68258071   0.10936105   0.06570122   0.99182838
+211  1730.0601  -375.0000  -175.0000  -374.2443  -174.9228    25.0966   0.12111574   3.57882404   0.10945402   0.05115911   0.99267447
+212  1718.1400  -375.0000  -125.0000  -374.2443  -124.9719    22.8936   0.11572728   3.46388125   0.10952397   0.03657348   0.99331105
+213  1718.1400  -375.0000   -75.0000  -374.2443   -74.9939    21.4240   0.11198288   3.33936071   0.10957072   0.02195659   0.99373645
+214  1718.1400  -375.0000   -25.0000  -374.2443   -24.9998    20.6888   0.11006044   3.20829415   0.10959412   0.00732095   0.99394947
+215  1718.1400  -375.0000    25.0000  -374.2443    24.9998    20.6888   0.11006044   3.07489109   0.10959412  -0.00732096   0.99394947
+216  1718.1400  -375.0000    75.0000  -374.2443    74.9939    21.4240   0.11198288   2.94382453   0.10957072  -0.02195660   0.99373645
+217  1718.1400  -375.0000   125.0000  -374.2443   124.9719    22.8936   0.11572728   2.81930399   0.10952397  -0.03657348   0.99331105
+218  1730.0601  -375.0000   175.0000  -374.2443   174.9228    25.0966   0.12111574   2.70436120   0.10945402  -0.05115911   0.99267447
+219  1730.0601  -375.0000   225.0000  -374.2443   224.8361    28.0309   0.12792800   2.60060453   0.10936105  -0.06570123   0.99182838
+220  1730.0601  -375.0000   275.0000  -374.2443   274.7011    31.6941   0.13593437   2.50840044   0.10924533  -0.08018775   0.99077517
+221  1730.0601  -375.0000   325.0000  -374.2443   324.5073    36.0829   0.14491870   2.42725444   0.10910714  -0.09460682   0.98951763
+222  1745.0699  -375.0000   375.0000  -374.2443   374.2443    41.1938   0.15469038   2.35619450   0.10894690  -0.10894690   0.98805928
+223  1745.0699  -375.0000   425.0000  -374.2443   423.9018    47.0223   0.16508774   2.29405856   0.10876501  -0.12319675   0.98640394
+224  1763.2600  -375.0000   475.0000  -374.2443   473.4697    53.5636   0.17597687   2.23967409   0.10856196  -0.13734558   0.98455596
+225  1763.2600  -375.0000   525.0000  -374.2443   522.9382    60.8122   0.18724811   2.19195318   0.10833827  -0.15138298   0.98252022
+226  1763.2600  -375.0000   575.0000  -374.2443   572.2976    68.7622   0.19881210   2.14993143   0.10809452  -0.16529909   0.98030186
+227  1784.7300  -375.0000   625.0000  -374.2443   621.5383    77.4072   0.21059583   2.11277747   0.10783133  -0.17908438   0.97790653
+228  1784.7300  -375.0000   675.0000  -374.2443   670.6511    86.7400   0.22253957   2.07978463   0.10754935  -0.19272998   0.97534007
+229  1805.4000  -375.0000   725.0000  -374.2443   719.6271    96.7532   0.23459409   2.05035734   0.10724922  -0.20622748   0.97260875
+230  1805.4000  -375.0000   775.0000  -374.2443   768.4574   107.4391   0.24671859   2.02399588   0.10693175  -0.21956909   0.96971905
+231  1805.4000  -325.0000  -825.0000  -324.5073  -817.1337   113.6783   0.25348800   4.33436012   0.09256094   0.23307529   0.96804357
+232  1805.4000  -325.0000  -775.0000  -324.5073  -768.4574   102.3282   0.24100770   4.31282091   0.09285192   0.21988018   0.97109795
+233  1784.7300  -325.0000  -725.0000  -324.5073  -719.6271    91.6424   0.22853206   4.28875494   0.09312844   0.20652141   0.97399998
+234  1784.7300  -325.0000  -675.0000  -324.5073  -670.6511    81.6291   0.21609105   4.26172924   0.09338972   0.19300620   0.97674304
+235  1784.7300  -325.0000  -625.0000  -324.5073  -621.5383    72.2963   0.20372099   4.23121548   0.09363527   0.17934240   0.97932053
+236  1763.2600  -325.0000  -575.0000  -324.5073  -572.2976    63.6514   0.19146617   4.19656849   0.09386449   0.16553842   0.98172629
+237  1763.2600  -325.0000  -525.0000  -324.5073  -522.9382    55.7014   0.17938119   4.15699863   0.09407679   0.15160315   0.98395431
+238  1745.0699  -325.0000  -475.0000  -324.5073  -473.4697    48.4527   0.16753416   4.11154175   0.09427157   0.13754617   0.98599893
+239  1745.0699  -325.0000  -425.0000  -324.5073  -423.9018    41.9114   0.15601057   4.05902576   0.09444842   0.12337733   0.98785502
+240  1730.0601  -325.0000  -375.0000  -324.5073  -374.2443    36.0829   0.14491870   3.99805069   0.09460683   0.10910714   0.98951763
+241  1730.0601  -325.0000  -325.0000  -324.5073  -324.5073    30.9721   0.13439584   3.92699075   0.09474639   0.09474638   0.99098247
+242  1730.0601  -325.0000  -275.0000  -324.5073  -274.7011    26.5832   0.12461551   3.84406137   0.09486675   0.08030634   0.99224555
+243  1718.1400  -325.0000  -225.0000  -324.5073  -224.8361    22.9200   0.11579338   3.74750638   0.09496753   0.06579861   0.99330342
+244  1718.1400  -325.0000  -175.0000  -324.5073  -174.9228    19.9857   0.10818893   3.63598323   0.09504850   0.05123505   0.99415326
+245  1718.1400  -325.0000  -125.0000  -324.5073  -124.9719    17.7828   0.10209588   3.50919962   0.09510943   0.03662784   0.99479276
+246  1718.1400  -325.0000   -75.0000  -324.5073   -74.9939    16.3131   0.09781386   3.36870623   0.09515014   0.02198927   0.99522007
+247  1718.1400  -325.0000   -25.0000  -324.5073   -24.9998    15.5779   0.09559806   3.21847987   0.09517052   0.00733185   0.99543399
+248  1718.1400  -325.0000    25.0000  -324.5073    24.9998    15.5779   0.09559806   3.06470537   0.09517052  -0.00733186   0.99543399
+249  1718.1400  -325.0000    75.0000  -324.5073    74.9939    16.3131   0.09781386   2.91447902   0.09515014  -0.02198927   0.99522007
+250  1718.1400  -325.0000   125.0000  -324.5073   124.9719    17.7828   0.10209588   2.77398562   0.09510943  -0.03662785   0.99479276
+251  1718.1400  -325.0000   175.0000  -324.5073   174.9228    19.9857   0.10818893   2.64720201   0.09504850  -0.05123506   0.99415326
+252  1718.1400  -325.0000   225.0000  -324.5073   224.8361    22.9200   0.11579338   2.53567886   0.09496753  -0.06579862   0.99330342
+253  1730.0601  -325.0000   275.0000  -324.5073   274.7011    26.5832   0.12461551   2.43912387   0.09486674  -0.08030635   0.99224555
+254  1730.0601  -325.0000   325.0000  -324.5073   324.5073    30.9721   0.13439584   2.35619450   0.09474638  -0.09474638   0.99098247
+255  1730.0601  -325.0000   375.0000  -324.5073   374.2443    36.0829   0.14491870   2.28513455   0.09460682  -0.10910714   0.98951763
+256  1745.0699  -325.0000   425.0000  -324.5073   423.9018    41.9114   0.15601057   2.22415948   0.09444841  -0.12337734   0.98785502
+257  1745.0699  -325.0000   475.0000  -324.5073   473.4697    48.4527   0.16753416   2.17164350   0.09427156  -0.13754617   0.98599893
+258  1763.2600  -325.0000   525.0000  -324.5073   522.9382    55.7014   0.17938119   2.12618661   0.09407678  -0.15160315   0.98395431
+259  1763.2600  -325.0000   575.0000  -324.5073   572.2976    63.6514   0.19146617   2.08661675   0.09386447  -0.16553843   0.98172629
+260  1784.7300  -325.0000   625.0000  -324.5073   621.5383    72.2963   0.20372099   2.05197001   0.09363530  -0.17934239   0.97932053
+261  1784.7300  -325.0000   675.0000  -324.5073   670.6511    81.6291   0.21609105   2.02145600   0.09338970  -0.19300620   0.97674304
+262  1784.7300  -325.0000   725.0000  -324.5073   719.6271    91.6424   0.22853206   1.99443018   0.09312840  -0.20652142   0.97399998
+263  1805.4000  -325.0000   775.0000  -324.5073   768.4574   102.3282   0.24100770   1.97036433   0.09285191  -0.21988019   0.97109795
+264  1805.4000  -325.0000   825.0000  -324.5073   817.1337   113.6783   0.25348800   1.94882500   0.09256089  -0.23307531   0.96804357
+265  1805.4000  -275.0000  -825.0000  -274.7011  -817.1337   109.2895   0.24874869   4.38808203   0.07844935   0.23335785   0.96922123
+266  1805.4000  -275.0000  -775.0000  -274.7011  -768.4574    97.9393   0.23597544   4.36907434   0.07869659   0.22014840   0.97228676
+267  1784.7300  -275.0000  -725.0000  -274.7011  -719.6271    87.2535   0.22317588   4.34773350   0.07893158   0.20677482   0.97519946
+268  1784.7300  -275.0000  -675.0000  -274.7011  -670.6511    77.2402   0.21037526   4.32363129   0.07915356   0.19324438   0.97795260
+269  1763.2600  -275.0000  -625.0000  -274.7011  -621.5383    67.9074   0.19760442   4.29623318   0.07936222   0.17956488   0.98053968
+270  1763.2600  -275.0000  -575.0000  -274.7011  -572.2976    59.2625   0.18490130   4.26487160   0.07955696   0.16574478   0.98295438
+271  1745.0699  -275.0000  -525.0000  -274.7011  -522.9382    51.3125   0.17231330   4.22870445   0.07973734   0.15179303   0.98519075
+272  1745.0699  -275.0000  -475.0000  -274.7011  -473.4697    44.0639   0.15990058   4.18666506   0.07990288   0.13771911   0.98724312
+273  1745.0699  -275.0000  -425.0000  -274.7011  -423.9018    37.5226   0.14774057   4.13739967   0.08005317   0.12353306   0.98910618
+274  1730.0601  -275.0000  -375.0000  -274.7011  -374.2443    31.6941   0.13593437   4.07919693   0.08018774   0.10924534   0.99077517
+275  1730.0601  -275.0000  -325.0000  -274.7011  -324.5073    26.5832   0.12461551   4.00992012   0.08030636   0.09486674   0.99224555
+276  1718.1400  -275.0000  -275.0000  -274.7011  -274.7011    22.1943   0.11396147   3.92699075   0.08040862   0.08040861   0.99351341
+277  1718.1400  -275.0000  -225.0000  -274.7011  -224.8361    18.5312   0.10420696   3.82749796   0.08049427   0.06588258   0.99457538
+278  1718.1400  -275.0000  -175.0000  -274.7011  -174.9228    15.5969   0.09565578   3.70861459   0.08056308   0.05130055   0.99542850
+279  1718.1400  -275.0000  -125.0000  -274.7011  -124.9719    13.3939   0.08868136   3.56854510   0.08061485   0.03667473   0.99607038
+280  1709.2200  -275.0000   -75.0000  -274.7011   -74.9939    11.9242   0.08369853   3.40810013   0.08064944   0.02201744   0.99649930
+281  1709.2200  -275.0000   -25.0000  -274.7011   -24.9998    11.1891   0.08108898   3.23234987   0.08066677   0.00734126   0.99671412
+282  1709.2200  -275.0000    25.0000  -274.7011    24.9998    11.1891   0.08108898   3.05083537   0.08066677  -0.00734126   0.99671412
+283  1709.2200  -275.0000    75.0000  -274.7011    74.9939    11.9242   0.08369853   2.87508512   0.08064944  -0.02201744   0.99649930
+284  1718.1400  -275.0000   125.0000  -274.7011   124.9719    13.3939   0.08868136   2.71464014   0.08061485  -0.03667473   0.99607038
+285  1718.1400  -275.0000   175.0000  -274.7011   174.9228    15.5969   0.09565578   2.57457066   0.08056307  -0.05130056   0.99542850
+286  1718.1400  -275.0000   225.0000  -274.7011   224.8361    18.5312   0.10420696   2.45568728   0.08049427  -0.06588258   0.99457538
+287  1718.1400  -275.0000   275.0000  -274.7011   274.7011    22.1943   0.11396147   2.35619450   0.08040862  -0.08040861   0.99351341
+288  1730.0601  -275.0000   325.0000  -274.7011   324.5073    26.5832   0.12461551   2.27326512   0.08030635  -0.09486674   0.99224555
+289  1730.0601  -275.0000   375.0000  -274.7011   374.2443    31.6941   0.13593437   2.20398855   0.08018775  -0.10924533   0.99077517
+290  1745.0699  -275.0000   425.0000  -274.7011   423.9018    37.5226   0.14774057   2.14578557   0.08005317  -0.12353307   0.98910618
+291  1745.0699  -275.0000   475.0000  -274.7011   473.4697    44.0639   0.15990058   2.09652019   0.07990287  -0.13771912   0.98724312
+292  1745.0699  -275.0000   525.0000  -274.7011   522.9382    51.3125   0.17231330   2.05448103   0.07973737  -0.15179302   0.98519075
+293  1763.2600  -275.0000   575.0000  -274.7011   572.2976    59.2625   0.18490130   2.01831388   0.07955699  -0.16574477   0.98295438
+294  1763.2600  -275.0000   625.0000  -274.7011   621.5383    67.9074   0.19760442   1.98695219   0.07936223  -0.17956488   0.98053968
+295  1784.7300  -275.0000   675.0000  -274.7011   670.6511    77.2402   0.21037526   1.95955420   0.07915360  -0.19324437   0.97795260
+296  1784.7300  -275.0000   725.0000  -274.7011   719.6271    87.2535   0.22317588   1.93545163   0.07893155  -0.20677483   0.97519946
+297  1805.4000  -275.0000   775.0000  -274.7011   768.4574    97.9393   0.23597544   1.91411114   0.07869663  -0.22014838   0.97228676
+298  1805.4000  -275.0000   825.0000  -274.7011   817.1337   109.2895   0.24874869   1.89510345   0.07844940  -0.23335783   0.96922123
+299  1805.4000  -225.0000  -825.0000  -224.8361  -817.1337   105.6263   0.24471071   4.44388151   0.06427396   0.23359443   0.97020745
+300  1805.4000  -225.0000  -775.0000  -224.8361  -768.4574    94.2762   0.23167872   4.42775249   0.06447694   0.22037302   0.97328234
+301  1784.7300  -225.0000  -725.0000  -224.8361  -719.6271    83.5904   0.21859103   4.40956402   0.06466985   0.20698705   0.97620398
+302  1784.7300  -225.0000  -675.0000  -224.8361  -670.6511    73.5771   0.20546794   4.38891411   0.06485211   0.19344383   0.97896564
+303  1763.2600  -225.0000  -625.0000  -224.8361  -621.5383    64.2443   0.19233420   4.36529255   0.06502347   0.17975119   0.98156071
+304  1763.2600  -225.0000  -575.0000  -224.8361  -572.2976    55.5994   0.17922038   4.33804798   0.06518333   0.16591761   0.98398298
+305  1745.0699  -225.0000  -525.0000  -224.8361  -522.9382    47.6494   0.16616496   4.30633497   0.06533144   0.15195201   0.98622632
+306  1745.0699  -225.0000  -475.0000  -224.8361  -473.4697    40.4007   0.15321741   4.26904774   0.06546730   0.13786399   0.98828518
+307  1730.0601  -225.0000  -425.0000  -224.8361  -423.9018    33.8594   0.14044267   4.22472095   0.06559069   0.12366351   0.99015415
+308  1730.0601  -225.0000  -375.0000  -224.8361  -374.2443    28.0309   0.12792800   4.17140102   0.06570122   0.10936106   0.99182838
+309  1718.1400  -225.0000  -325.0000  -224.8361  -324.5073    22.9200   0.11579338   4.10647535   0.06579860   0.09496754   0.99330342
+310  1718.1400  -225.0000  -275.0000  -224.8361  -274.7011    18.5312   0.10420696   4.02648354   0.06588259   0.08049426   0.99457538
+311  1718.1400  -225.0000  -225.0000  -224.8361  -224.8361    14.8680   0.09340727   3.92699075   0.06595291   0.06595290   0.99564070
+312  1709.2200  -225.0000  -175.0000  -224.8361  -174.9228    11.9337   0.08373164   3.80277514   0.06600940   0.05135541   0.99649656
+313  1709.2200  -225.0000  -125.0000  -224.8361  -124.9719     9.7308   0.07564178   3.64890504   0.06605192   0.03671400   0.99714053
+314  1709.2200  -225.0000   -75.0000  -224.8361   -74.9939     8.2611   0.06971575   3.46353745   0.06608032   0.02204104   0.99757081
+315  1709.2200  -225.0000   -25.0000  -224.8361   -24.9998     7.5259   0.06655098   3.25232887   0.06609455   0.00734912   0.99778628
+316  1709.2200  -225.0000    25.0000  -224.8361    24.9998     7.5259   0.06655098   3.03085637   0.06609455  -0.00734913   0.99778628
+317  1709.2200  -225.0000    75.0000  -224.8361    74.9939     8.2611   0.06971575   2.81964779   0.06608032  -0.02204104   0.99757081
+318  1709.2200  -225.0000   125.0000  -224.8361   124.9719     9.7308   0.07564178   2.63428020   0.06605192  -0.03671401   0.99714053
+319  1709.2200  -225.0000   175.0000  -224.8361   174.9228    11.9337   0.08373164   2.48041010   0.06600939  -0.05135541   0.99649656
+320  1718.1400  -225.0000   225.0000  -224.8361   224.8361    14.8680   0.09340727   2.35619450   0.06595290  -0.06595290   0.99564070
+321  1718.1400  -225.0000   275.0000  -224.8361   274.7011    18.5312   0.10420696   2.25670171   0.06588259  -0.08049427   0.99457538
+322  1718.1400  -225.0000   325.0000  -224.8361   324.5073    22.9200   0.11579338   2.17671013   0.06579862  -0.09496752   0.99330342
+323  1730.0601  -225.0000   375.0000  -224.8361   374.2443    28.0309   0.12792800   2.11178446   0.06570123  -0.10936105   0.99182838
+324  1730.0601  -225.0000   425.0000  -224.8361   423.9018    33.8594   0.14044267   2.05846453   0.06559071  -0.12366351   0.99015415
+325  1745.0699  -225.0000   475.0000  -224.8361   473.4697    40.4007   0.15321741   2.01413774   0.06546732  -0.13786398   0.98828518
+326  1745.0699  -225.0000   525.0000  -224.8361   522.9382    47.6494   0.16616496   1.97685027   0.06533142  -0.15195201   0.98622632
+327  1763.2600  -225.0000   575.0000  -224.8361   572.2976    55.5994   0.17922038   1.94513738   0.06518334  -0.16591759   0.98398298
+328  1763.2600  -225.0000   625.0000  -224.8361   621.5383    64.2443   0.19233420   1.91789258   0.06502344  -0.17975120   0.98156071
+329  1784.7300  -225.0000   675.0000  -224.8361   670.6511    73.5771   0.20546794   1.89427125   0.06485213  -0.19344383   0.97896564
+330  1784.7300  -225.0000   725.0000  -224.8361   719.6271    83.5904   0.21859103   1.87362123   0.06466983  -0.20698707   0.97620398
+331  1805.4000  -225.0000   775.0000  -224.8361   768.4574    94.2762   0.23167872   1.85543299   0.06447698  -0.22037300   0.97328234
+332  1805.4000  -225.0000   825.0000  -224.8361   817.1337   105.6263   0.24471071   1.83930397   0.06427401  -0.23359442   0.97020745
+333  1805.4000  -175.0000  -825.0000  -174.9228  -817.1337   102.6920   0.24141937   4.50150299   0.05004597   0.23378444   0.97099960
+334  1784.7300  -175.0000  -775.0000  -174.9228  -768.4574    91.3419   0.22816989   4.48857403   0.05020426   0.22055343   0.97408199
+335  1784.7300  -175.0000  -725.0000  -174.9228  -719.6271    80.6560   0.21483852   4.47393942   0.05035462   0.20715754   0.97701085
+336  1763.2600  -175.0000  -675.0000  -174.9228  -670.6511    70.6428   0.20144072   4.45724821   0.05049680   0.19360405   0.97977936
+337  1763.2600  -175.0000  -625.0000  -174.9228  -621.5383    61.3100   0.18799514   4.43804979   0.05063047   0.17990088   0.98238093
+338  1763.2600  -175.0000  -575.0000  -174.9228  -572.2976    52.6651   0.17452455   4.41575670   0.05075516   0.16605642   0.98480922
+339  1745.0699  -175.0000  -525.0000  -174.9228  -522.9382    44.7151   0.16105770   4.38958883   0.05087066   0.15207973   0.98705822
+340  1745.0699  -175.0000  -475.0000  -174.9228  -473.4697    37.4664   0.14763157   4.35849380   0.05097670   0.13798034   0.98912221
+341  1730.0601  -175.0000  -425.0000  -174.9228  -423.9018    30.9251   0.13429515   4.32102585   0.05107289   0.12376827   0.99099594
+342  1730.0601  -175.0000  -375.0000  -174.9228  -374.2443    25.0966   0.12111574   4.27515745   0.05115912   0.10945401   0.99267447
+343  1718.1400  -175.0000  -325.0000  -174.9228  -324.5073    19.9857   0.10818893   4.21799850   0.05123504   0.09504851   0.99415326
+344  1718.1400  -175.0000  -275.0000  -174.9228  -274.7011    15.5969   0.09565578   4.14536715   0.05130054   0.08056308   0.99542850
+345  1709.2200  -175.0000  -225.0000  -174.9228  -224.8361    11.9337   0.08373164   4.05120659   0.05135540   0.06600941   0.99649656
+346  1709.2200  -175.0000  -175.0000  -174.9228  -174.9228     8.9994   0.07275400   3.92699075   0.05139948   0.05139947   0.99735457
+347  1709.2200  -175.0000  -125.0000  -174.9228  -124.9719     6.7965   0.06325255   3.76194453   0.05143264   0.03674555   0.99800020
+348  1703.3400  -175.0000   -75.0000  -174.9228   -74.9939     5.3268   0.05601357   3.54661465   0.05145480   0.02205999   0.99843162
+349  1703.3400  -175.0000   -25.0000  -174.9228   -24.9998     4.5916   0.05201230   3.28355026   0.05146589   0.00735545   0.99864769
+350  1703.3400  -175.0000    25.0000  -174.9228    24.9998     4.5916   0.05201230   2.99963498   0.05146589  -0.00735545   0.99864769
+351  1703.3400  -175.0000    75.0000  -174.9228    74.9939     5.3268   0.05601357   2.73657060   0.05145480  -0.02205999   0.99843162
+352  1709.2200  -175.0000   125.0000  -174.9228   124.9719     6.7965   0.06325255   2.52124071   0.05143264  -0.03674556   0.99800020
+353  1709.2200  -175.0000   175.0000  -174.9228   174.9228     8.9994   0.07275400   2.35619450   0.05139948  -0.05139948   0.99735457
+354  1709.2200  -175.0000   225.0000  -174.9228   224.8361    11.9337   0.08373164   2.23197889   0.05135541  -0.06600939   0.99649656
+355  1718.1400  -175.0000   275.0000  -174.9228   274.7011    15.5969   0.09565578   2.13781834   0.05130056  -0.08056307   0.99542850
+356  1718.1400  -175.0000   325.0000  -174.9228   324.5073    19.9857   0.10818893   2.06518698   0.05123506  -0.09504850   0.99415326
+357  1730.0601  -175.0000   375.0000  -174.9228   374.2443    25.0966   0.12111574   2.00802779   0.05115911  -0.10945402   0.99267447
+358  1730.0601  -175.0000   425.0000  -174.9228   423.9018    30.9251   0.13429515   1.96215951   0.05107290  -0.12376827   0.99099594
+359  1745.0699  -175.0000   475.0000  -174.9228   473.4697    37.4664   0.14763157   1.92469132   0.05097667  -0.13798036   0.98912221
+360  1745.0699  -175.0000   525.0000  -174.9228   522.9382    44.7151   0.16105770   1.89359653   0.05087067  -0.15207973   0.98705822
+361  1763.2600  -175.0000   575.0000  -174.9228   572.2976    52.6651   0.17452455   1.86742854   0.05075515  -0.16605642   0.98480922
+362  1763.2600  -175.0000   625.0000  -174.9228   621.5383    61.3100   0.18799514   1.84513545   0.05063045  -0.17990088   0.98238093
+363  1763.2600  -175.0000   675.0000  -174.9228   670.6511    70.6428   0.20144072   1.82593727   0.05049684  -0.19360405   0.97977936
+364  1784.7300  -175.0000   725.0000  -174.9228   719.6271    80.6560   0.21483852   1.80924606   0.05035466  -0.20715752   0.97701085
+365  1784.7300  -175.0000   775.0000  -174.9228   768.4574    91.3419   0.22816989   1.79461122   0.05020425  -0.22055343   0.97408199
+366  1805.4000  -175.0000   825.0000  -174.9228   817.1337   102.6920   0.24141937   1.78168225   0.05004595  -0.23378444   0.97099960
+367  1805.4000  -125.0000  -825.0000  -124.9719  -817.1337   100.4890   0.23891383   4.56062555   0.03577672   0.23392743   0.97159559
+368  1784.7300  -125.0000  -775.0000  -124.9719  -768.4574    89.1389   0.22549459   4.55117321   0.03589005   0.22068916   0.97468364
+369  1784.7300  -125.0000  -725.0000  -124.9719  -719.6271    78.4531   0.21197213   4.54044199   0.03599764   0.20728581   0.97761792
+370  1763.2600  -125.0000  -675.0000  -124.9719  -670.6511    68.4398   0.19835755   4.52815771   0.03609947   0.19372459   0.98039156
+371  1763.2600  -125.0000  -625.0000  -124.9719  -621.5383    59.1070   0.18466403   4.51396608   0.03619507   0.18001349   0.98299801
+372  1745.0699  -125.0000  -575.0000  -124.9719  -572.2976    50.4621   0.17090724   4.49739504   0.03628436   0.16616090   0.98543090
+373  1745.0699  -125.0000  -525.0000  -124.9719  -522.9382    42.5121   0.15710649   4.47780848   0.03636701   0.15217583   0.98768413
+374  1730.0601  -125.0000  -475.0000  -124.9719  -473.4697    35.2635   0.14328626   4.45432568   0.03644286   0.13806790   0.98975205
+375  1730.0601  -125.0000  -425.0000  -124.9719  -423.9018    28.7222   0.12947854   4.42569733   0.03651179   0.12384711   0.99162936
+376  1718.1400  -125.0000  -375.0000  -124.9719  -374.2443    22.8936   0.11572728   4.39010048   0.03657347   0.10952397   0.99331105
+377  1718.1400  -125.0000  -325.0000  -124.9719  -324.5073    17.7828   0.10209588   4.34478188   0.03662786   0.09510942   0.99479276
+378  1718.1400  -125.0000  -275.0000  -124.9719  -274.7011    13.3939   0.08868136   4.28543663   0.03667472   0.08061485   0.99607038
+379  1709.2200  -125.0000  -225.0000  -124.9719  -224.8361     9.7308   0.07564178   4.20507669   0.03671400   0.06605193   0.99714053
+380  1709.2200  -125.0000  -175.0000  -124.9719  -174.9228     6.7965   0.06325255   4.09203720   0.03674555   0.05143264   0.99800020
+381  1703.3400  -125.0000  -125.0000  -124.9719  -124.9719     4.5935   0.05202308   3.92699075   0.03676929   0.03676928   0.99864709
+382  1703.3400  -125.0000   -75.0000  -124.9719   -74.9939     3.1238   0.04291328   3.68207526   0.03678515   0.02207425   0.99907935
+383  1703.3400  -125.0000   -25.0000  -124.9719   -24.9998     2.3887   0.03753085   3.33902979   0.03679309   0.00736021   0.99929577
+384  1703.3400  -125.0000    25.0000  -124.9719    24.9998     2.3887   0.03753085   2.94415545   0.03679309  -0.00736021   0.99929577
+385  1703.3400  -125.0000    75.0000  -124.9719    74.9939     3.1238   0.04291328   2.60110998   0.03678515  -0.02207425   0.99907935
+386  1703.3400  -125.0000   125.0000  -124.9719   124.9719     4.5935   0.05202308   2.35619450   0.03676929  -0.03676928   0.99864709
+387  1709.2200  -125.0000   175.0000  -124.9719   174.9228     6.7965   0.06325255   2.19114828   0.03674556  -0.05143264   0.99800020
+388  1709.2200  -125.0000   225.0000  -124.9719   224.8361     9.7308   0.07564178   2.07810879   0.03671401  -0.06605192   0.99714053
+389  1718.1400  -125.0000   275.0000  -124.9719   274.7011    13.3939   0.08868136   1.99774885   0.03667473  -0.08061485   0.99607038
+390  1718.1400  -125.0000   325.0000  -124.9719   324.5073    17.7828   0.10209588   1.93840337   0.03662785  -0.09510943   0.99479276
+391  1718.1400  -125.0000   375.0000  -124.9719   374.2443    22.8936   0.11572728   1.89308500   0.03657349  -0.10952397   0.99331105
+392  1730.0601  -125.0000   425.0000  -124.9719   423.9018    28.7222   0.12947854   1.85748792   0.03651178  -0.12384711   0.99162936
+393  1730.0601  -125.0000   475.0000  -124.9719   473.4697    35.2635   0.14328626   1.82885981   0.03644289  -0.13806790   0.98975205
+394  1745.0699  -125.0000   525.0000  -124.9719   522.9382    42.5121   0.15710649   1.80537689   0.03636702  -0.15217583   0.98768413
+395  1745.0699  -125.0000   575.0000  -124.9719   572.2976    50.4621   0.17090724   1.78579009   0.03628433  -0.16616090   0.98543090
+396  1763.2600  -125.0000   625.0000  -124.9719   621.5383    59.1070   0.18466403   1.76921928   0.03619508  -0.18001349   0.98299801
+397  1763.2600  -125.0000   675.0000  -124.9719   670.6511    68.4398   0.19835755   1.75502741   0.03609944  -0.19372460   0.98039156
+398  1784.7300  -125.0000   725.0000  -124.9719   719.6271    78.4531   0.21197213   1.74274349   0.03599767  -0.20728581   0.97761792
+399  1784.7300  -125.0000   775.0000  -124.9719   768.4574    89.1389   0.22549459   1.73201191   0.03589001  -0.22068916   0.97468364
+400  1805.4000  -125.0000   825.0000  -124.9719   817.1337   100.4890   0.23891383   1.72255969   0.03577671  -0.23392743   0.97159559
+401  1805.4000   -75.0000  -825.0000   -74.9939  -817.1337    99.0194   0.23722523   4.62086868   0.02147785   0.23402296   0.97199380
+402  1784.7300   -75.0000  -775.0000   -74.9939  -768.4574    87.6692   0.22368950   4.61510706   0.02154590   0.22077987   0.97508568
+403  1784.7300   -75.0000  -725.0000   -74.9939  -719.6271    76.9834   0.21003537   4.60855150   0.02161066   0.20737149   0.97802353
+404  1763.2600   -75.0000  -675.0000   -74.9939  -670.6511    66.9702   0.19627079   4.60102892   0.02167181   0.19380516   0.98080063
+405  1763.2600   -75.0000  -625.0000   -74.9939  -621.5383    57.6373   0.18240470   4.59231091   0.02172924   0.18008873   0.98341036
+406  1745.0699   -75.0000  -575.0000   -74.9939  -572.2976    48.9924   0.16844730   4.58209133   0.02178288   0.16623069   0.98584628
+407  1745.0699   -75.0000  -525.0000   -74.9939  -522.9382    41.0424   0.15441042   4.56995153   0.02183253   0.15224004   0.98810238
+408  1730.0601   -75.0000  -475.0000   -74.9939  -473.4697    33.7938   0.14030823   4.55530167   0.02187816   0.13812639   0.99017292
+409  1730.0601   -75.0000  -425.0000   -74.9939  -423.9018    27.2525   0.12615816   4.53728724   0.02191955   0.12389978   0.99205261
+410  1718.1400   -75.0000  -375.0000   -74.9939  -374.2443    21.4240   0.11198288   4.51462078   0.02195661   0.10957072   0.99373645
+411  1718.1400   -75.0000  -325.0000   -74.9939  -324.5073    16.3131   0.09781386   4.48527527   0.02198928   0.09515014   0.99522007
+412  1709.2200   -75.0000  -275.0000   -74.9939  -274.7011    11.9242   0.08369853   4.44588137   0.02201745   0.08064944   0.99649930
+413  1709.2200   -75.0000  -225.0000   -74.9939  -224.8361     8.2611   0.06971575   4.39044428   0.02204103   0.06608032   0.99757081
+414  1703.3400   -75.0000  -175.0000   -74.9939  -174.9228     5.3268   0.05601357   4.30736685   0.02206000   0.05145480   0.99843162
+415  1703.3400   -75.0000  -125.0000   -74.9939  -124.9719     3.1238   0.04291328   4.17190647   0.02207424   0.03678515   0.99907935
+416  1703.3400   -75.0000   125.0000   -74.9939   124.9719     3.1238   0.04291328   2.11127901   0.02207425  -0.03678515   0.99907935
+417  1703.3400   -75.0000   175.0000   -74.9939   174.9228     5.3268   0.05601357   1.97581840   0.02205999  -0.05145480   0.99843162
+418  1709.2200   -75.0000   225.0000   -74.9939   224.8361     8.2611   0.06971575   1.89274108   0.02204103  -0.06608032   0.99757081
+419  1709.2200   -75.0000   275.0000   -74.9939   274.7011    11.9242   0.08369853   1.83730388   0.02201744  -0.08064944   0.99649930
+420  1718.1400   -75.0000   325.0000   -74.9939   324.5073    16.3131   0.09781386   1.79790998   0.02198927  -0.09515014   0.99522007
+421  1718.1400   -75.0000   375.0000   -74.9939   374.2443    21.4240   0.11198288   1.76856446   0.02195660  -0.10957072   0.99373645
+422  1730.0601   -75.0000   425.0000   -74.9939   423.9018    27.2525   0.12615816   1.74589789   0.02191953  -0.12389979   0.99205261
+423  1730.0601   -75.0000   475.0000   -74.9939   473.4697    33.7938   0.14030823   1.72788346   0.02187813  -0.13812639   0.99017292
+424  1745.0699   -75.0000   525.0000   -74.9939   522.9382    41.0424   0.15441042   1.71323395   0.02183256  -0.15224004   0.98810238
+425  1745.0699   -75.0000   575.0000   -74.9939   572.2976    48.9924   0.16844730   1.70109391   0.02178287  -0.16623069   0.98584628
+426  1763.2600   -75.0000   625.0000   -74.9939   621.5383    57.6373   0.18240470   1.69087434   0.02172923  -0.18008873   0.98341036
+427  1763.2600   -75.0000   675.0000   -74.9939   670.6511    66.9702   0.19627079   1.68215621   0.02167178  -0.19380516   0.98080063
+428  1784.7300   -75.0000   725.0000   -74.9939   719.6271    76.9834   0.21003537   1.67463362   0.02161062  -0.20737149   0.97802353
+429  1784.7300   -75.0000   775.0000   -74.9939   768.4574    87.6692   0.22368950   1.66807842   0.02154594  -0.22077985   0.97508568
+430  1805.4000   -75.0000   825.0000   -74.9939   817.1337    99.0194   0.23722523   1.66231668   0.02147786  -0.23402296   0.97199380
+431  1805.4000   -25.0000  -825.0000   -24.9998  -817.1337    98.2842   0.23637535   4.68180418   0.00716124   0.23407079   0.97219318
+432  1784.7300   -25.0000  -775.0000   -24.9998  -768.4574    86.9341   0.22278035   4.67986822   0.00718394   0.22082528   0.97528690
+433  1784.7300   -25.0000  -725.0000   -24.9998  -719.6271    76.2482   0.20905904   4.67766285   0.00720560   0.20741440   0.97822666
+434  1763.2600   -25.0000  -675.0000   -24.9998  -670.6511    66.2350   0.19521770   4.67512941   0.00722594   0.19384547   0.98100549
+435  1763.2600   -25.0000  -625.0000   -24.9998  -621.5383    56.9022   0.18126303   4.67218828   0.00724511   0.18012640   0.98361677
+436  1745.0699   -25.0000  -575.0000   -24.9998  -572.2976    48.2573   0.16720217   4.66873360   0.00726300   0.16626564   0.98605424
+437  1745.0699   -25.0000  -525.0000   -24.9998  -522.9382    40.3073   0.15304284   4.66461897   0.00727958   0.15227219   0.98831177
+438  1730.0601   -25.0000  -475.0000   -24.9998  -473.4697    33.0586   0.13879332   4.65963650   0.00729482   0.13815568   0.99038368
+439  1730.0601   -25.0000  -425.0000   -24.9998  -423.9018    26.5173   0.12446258   4.65348196   0.00730858   0.12392616   0.99226451
+440  1718.1400   -25.0000  -375.0000   -24.9998  -374.2443    20.6888   0.11006044   4.64568710   0.00732099   0.10959412   0.99394947
+441  1718.1400   -25.0000  -325.0000   -24.9998  -324.5073    15.5779   0.09559806   4.63550138   0.00733189   0.09517051   0.99543399
+442  1709.2200   -25.0000  -275.0000   -24.9998  -274.7011    11.1891   0.08108898   4.62163162   0.00734127   0.08066677   0.99671412
+443  1709.2200   -25.0000  -225.0000   -24.9998  -224.8361     7.5259   0.06655098   4.60165262   0.00734913   0.06609455   0.99778628
+444  1703.3400   -25.0000  -175.0000   -24.9998  -174.9228     4.5916   0.05201230   4.57043123   0.00735546   0.05146589   0.99864769
+445  1703.3400   -25.0000  -125.0000   -24.9998  -124.9719     2.3887   0.03753085   4.51495171   0.00736021   0.03679308   0.99929577
+446  1703.3400   -25.0000   125.0000   -24.9998   124.9719     2.3887   0.03753085   1.76823354   0.00736021  -0.03679309   0.99929577
+447  1703.3400   -25.0000   175.0000   -24.9998   174.9228     4.5916   0.05201230   1.71275401   0.00735545  -0.05146589   0.99864769
+448  1709.2200   -25.0000   225.0000   -24.9998   224.8361     7.5259   0.06655098   1.68153262   0.00734913  -0.06609455   0.99778628
+449  1709.2200   -25.0000   275.0000   -24.9998   274.7011    11.1891   0.08108898   1.66155362   0.00734127  -0.08066677   0.99671412
+450  1718.1400   -25.0000   325.0000   -24.9998   324.5073    15.5779   0.09559806   1.64768374   0.00733187  -0.09517051   0.99543399
+451  1718.1400   -25.0000   375.0000   -24.9998   374.2443    20.6888   0.11006044   1.63749802   0.00732097  -0.10959412   0.99394947
+452  1730.0601   -25.0000   425.0000   -24.9998   423.9018    26.5173   0.12446258   1.62970352   0.00730860  -0.12392616   0.99226451
+453  1730.0601   -25.0000   475.0000   -24.9998   473.4697    33.0586   0.13879332   1.62354863   0.00729480  -0.13815568   0.99038368
+454  1745.0699   -25.0000   525.0000   -24.9998   522.9382    40.3073   0.15304284   1.61856639   0.00727959  -0.15227219   0.98831177
+455  1745.0699   -25.0000   575.0000   -24.9998   572.2976    48.2573   0.16720217   1.61445177   0.00726301  -0.16626564   0.98605424
+456  1763.2600   -25.0000   625.0000   -24.9998   621.5383    56.9022   0.18126303   1.61099708   0.00724512  -0.18012640   0.98361677
+457  1763.2600   -25.0000   675.0000   -24.9998   670.6511    66.2350   0.19521770   1.60805595   0.00722595  -0.19384547   0.98100549
+458  1784.7300   -25.0000   725.0000   -24.9998   719.6271    76.2482   0.20905904   1.60552227   0.00720556  -0.20741440   0.97822666
+459  1784.7300   -25.0000   775.0000   -24.9998   768.4574    86.9341   0.22278035   1.60331726   0.00718398  -0.22082528   0.97528690
+460  1805.4000   -25.0000   825.0000   -24.9998   817.1337    98.2842   0.23637535   1.60138130   0.00716128  -0.23407079   0.97219318
+461  1805.4000    25.0000  -825.0000    24.9998  -817.1337    98.2842   0.23637535   4.74297380  -0.00716125   0.23407079   0.97219318
+462  1784.7300    25.0000  -775.0000    24.9998  -768.4574    86.9341   0.22278035   4.74490976  -0.00718394   0.22082528   0.97528690
+463  1784.7300    25.0000  -725.0000    24.9998  -719.6271    76.2482   0.20905904   4.74711514  -0.00720560   0.20741440   0.97822666
+464  1763.2600    25.0000  -675.0000    24.9998  -670.6511    66.2350   0.19521770   4.74964857  -0.00722595   0.19384547   0.98100549
+465  1763.2600    25.0000  -625.0000    24.9998  -621.5383    56.9022   0.18126303   4.75258970  -0.00724512   0.18012640   0.98361677
+466  1745.0699    25.0000  -575.0000    24.9998  -572.2976    48.2573   0.16720217   4.75604439  -0.00726301   0.16626564   0.98605424
+467  1745.0699    25.0000  -525.0000    24.9998  -522.9382    40.3073   0.15304284   4.76015902  -0.00727959   0.15227219   0.98831177
+468  1730.0601    25.0000  -475.0000    24.9998  -473.4697    33.0586   0.13879332   4.76514149  -0.00729483   0.13815568   0.99038368
+469  1730.0601    25.0000  -425.0000    24.9998  -423.9018    26.5173   0.12446258   4.77129602  -0.00730858   0.12392616   0.99226451
+470  1718.1400    25.0000  -375.0000    24.9998  -374.2443    20.6888   0.11006044   4.77909040  -0.00732094   0.10959412   0.99394947
+471  1718.1400    25.0000  -325.0000    24.9998  -324.5073    15.5779   0.09559806   4.78927612  -0.00733184   0.09517052   0.99543399
+472  1709.2200    25.0000  -275.0000    24.9998  -274.7011    11.1891   0.08108898   4.80314636  -0.00734127   0.08066677   0.99671412
+473  1709.2200    25.0000  -225.0000    24.9998  -224.8361     7.5259   0.06655098   4.82312536  -0.00734913   0.06609455   0.99778628
+474  1703.3400    25.0000  -175.0000    24.9998  -174.9228     4.5916   0.05201230   4.85434675  -0.00735546   0.05146589   0.99864769
+475  1703.3400    25.0000  -125.0000    24.9998  -124.9719     2.3887   0.03753085   4.90982628  -0.00736021   0.03679308   0.99929577
+476  1703.3400    25.0000   125.0000    24.9998   124.9719     2.3887   0.03753085   1.37335908  -0.00736021  -0.03679308   0.99929577
+477  1703.3400    25.0000   175.0000    24.9998   174.9228     4.5916   0.05201230   1.42883861  -0.00735546  -0.05146589   0.99864769
+478  1709.2200    25.0000   225.0000    24.9998   224.8361     7.5259   0.06655098   1.46006000  -0.00734913  -0.06609455   0.99778628
+479  1709.2200    25.0000   275.0000    24.9998   274.7011    11.1891   0.08108898   1.48003912  -0.00734126  -0.08066677   0.99671412
+480  1718.1400    25.0000   325.0000    24.9998   324.5073    15.5779   0.09559806   1.49390900  -0.00733186  -0.09517052   0.99543399
+481  1718.1400    25.0000   375.0000    24.9998   374.2443    20.6888   0.11006044   1.50409472  -0.00732096  -0.10959412   0.99394947
+482  1730.0601    25.0000   425.0000    24.9998   423.9018    26.5173   0.12446258   1.51188910  -0.00730860  -0.12392616   0.99226451
+483  1730.0601    25.0000   475.0000    24.9998   473.4697    33.0586   0.13879332   1.51804399  -0.00729480  -0.13815568   0.99038368
+484  1745.0699    25.0000   525.0000    24.9998   522.9382    40.3073   0.15304284   1.52302623  -0.00727960  -0.15227219   0.98831177
+485  1745.0699    25.0000   575.0000    24.9998   572.2976    48.2573   0.16720217   1.52714086  -0.00726302  -0.16626564   0.98605424
+486  1763.2600    25.0000   625.0000    24.9998   621.5383    56.9022   0.18126303   1.53059554  -0.00724513  -0.18012640   0.98361677
+487  1763.2600    25.0000   675.0000    24.9998   670.6511    66.2350   0.19521770   1.53353667  -0.00722596  -0.19384547   0.98100549
+488  1784.7300    25.0000   725.0000    24.9998   719.6271    76.2482   0.20905904   1.53607035  -0.00720556  -0.20741440   0.97822666
+489  1784.7300    25.0000   775.0000    24.9998   768.4574    86.9341   0.22278035   1.53827536  -0.00718398  -0.22082528   0.97528690
+490  1805.4000    25.0000   825.0000    24.9998   817.1337    98.2842   0.23637535   1.54021132  -0.00716129  -0.23407079   0.97219318
+491  1805.4000    75.0000  -825.0000    74.9939  -817.1337    99.0194   0.23722523   4.80390930  -0.02147786   0.23402296   0.97199380
+492  1784.7300    75.0000  -775.0000    74.9939  -768.4574    87.6692   0.22368950   4.80967093  -0.02154591   0.22077987   0.97508568
+493  1784.7300    75.0000  -725.0000    74.9939  -719.6271    76.9834   0.21003537   4.81622648  -0.02161066   0.20737149   0.97802353
+494  1763.2600    75.0000  -675.0000    74.9939  -670.6511    66.9702   0.19627079   4.82374907  -0.02167182   0.19380516   0.98080063
+495  1763.2600    75.0000  -625.0000    74.9939  -621.5383    57.6373   0.18240470   4.83246708  -0.02172925   0.18008873   0.98341036
+496  1745.0699    75.0000  -575.0000    74.9939  -572.2976    48.9924   0.16844730   4.84268665  -0.02178288   0.16623069   0.98584628
+497  1745.0699    75.0000  -525.0000    74.9939  -522.9382    41.0424   0.15441042   4.85482645  -0.02183254   0.15224004   0.98810238
+498  1730.0601    75.0000  -475.0000    74.9939  -473.4697    33.7938   0.14030823   4.86947632  -0.02187816   0.13812639   0.99017292
+499  1730.0601    75.0000  -425.0000    74.9939  -423.9018    27.2525   0.12615816   4.88749075  -0.02191955   0.12389978   0.99205261
+500  1718.1400    75.0000  -375.0000    74.9939  -374.2443    21.4240   0.11198288   4.91015720  -0.02195661   0.10957072   0.99373645
+501  1718.1400    75.0000  -325.0000    74.9939  -324.5073    16.3131   0.09781386   4.93950272  -0.02198928   0.09515014   0.99522007
+502  1709.2200    75.0000  -275.0000    74.9939  -274.7011    11.9242   0.08369853   4.97889662  -0.02201745   0.08064944   0.99649930
+503  1709.2200    75.0000  -225.0000    74.9939  -224.8361     8.2611   0.06971575   5.03433371  -0.02204103   0.06608032   0.99757081
+504  1703.3400    75.0000  -175.0000    74.9939  -174.9228     5.3268   0.05601357   5.11741114  -0.02206000   0.05145480   0.99843162
+505  1703.3400    75.0000  -125.0000    74.9939  -124.9719     3.1238   0.04291328   5.25287199  -0.02207426   0.03678514   0.99907935
+506  1703.3400    75.0000   125.0000    74.9939   124.9719     3.1238   0.04291328   1.03031349  -0.02207425  -0.03678514   0.99907935
+507  1703.3400    75.0000   175.0000    74.9939   174.9228     5.3268   0.05601357   1.16577423  -0.02205999  -0.05145480   0.99843162
+508  1709.2200    75.0000   225.0000    74.9939   224.8361     8.2611   0.06971575   1.24885154  -0.02204104  -0.06608032   0.99757081
+509  1709.2200    75.0000   275.0000    74.9939   274.7011    11.9242   0.08369853   1.30428874  -0.02201744  -0.08064944   0.99649930
+510  1718.1400    75.0000   325.0000    74.9939   324.5073    16.3131   0.09781386   1.34368265  -0.02198928  -0.09515014   0.99522007
+511  1718.1400    75.0000   375.0000    74.9939   374.2443    21.4240   0.11198288   1.37302816  -0.02195661  -0.10957072   0.99373645
+512  1730.0601    75.0000   425.0000    74.9939   423.9018    27.2525   0.12615816   1.39569473  -0.02191953  -0.12389979   0.99205261
+513  1730.0601    75.0000   475.0000    74.9939   473.4697    33.7938   0.14030823   1.41370916  -0.02187814  -0.13812639   0.99017292
+514  1745.0699    75.0000   525.0000    74.9939   522.9382    41.0424   0.15441042   1.42835879  -0.02183255  -0.15224004   0.98810238
+515  1745.0699    75.0000   575.0000    74.9939   572.2976    48.9924   0.16844730   1.44049871  -0.02178288  -0.16623069   0.98584628
+516  1763.2600    75.0000   625.0000    74.9939   621.5383    57.6373   0.18240470   1.45071828  -0.02172924  -0.18008873   0.98341036
+517  1763.2600    75.0000   675.0000    74.9939   670.6511    66.9702   0.19627079   1.45943642  -0.02167178  -0.19380516   0.98080063
+518  1784.7300    75.0000   725.0000    74.9939   719.6271    76.9834   0.21003537   1.46695900  -0.02161063  -0.20737149   0.97802353
+519  1784.7300    75.0000   775.0000    74.9939   768.4574    87.6692   0.22368950   1.47351420  -0.02154595  -0.22077985   0.97508568
+520  1805.4000    75.0000   825.0000    74.9939   817.1337    99.0194   0.23722523   1.47927594  -0.02147787  -0.23402296   0.97199380
+521  1805.4000   125.0000  -825.0000   124.9719  -817.1337   100.4890   0.23891383   4.86415243  -0.03577673   0.23392743   0.97159559
+522  1784.7300   125.0000  -775.0000   124.9719  -768.4574    89.1389   0.22549459   4.87360477  -0.03589005   0.22068916   0.97468364
+523  1784.7300   125.0000  -725.0000   124.9719  -719.6271    78.4531   0.21197213   4.88433599  -0.03599764   0.20728581   0.97761792
+524  1763.2600   125.0000  -675.0000   124.9719  -670.6511    68.4398   0.19835755   4.89662027  -0.03609948   0.19372459   0.98039156
+525  1763.2600   125.0000  -625.0000   124.9719  -621.5383    59.1070   0.18466403   4.91081190  -0.03619507   0.18001349   0.98299801
+526  1745.0699   125.0000  -575.0000   124.9719  -572.2976    50.4621   0.17090724   4.92738295  -0.03628437   0.16616090   0.98543090
+527  1745.0699   125.0000  -525.0000   124.9719  -522.9382    42.5121   0.15710649   4.94696951  -0.03636701   0.15217583   0.98768413
+528  1730.0601   125.0000  -475.0000   124.9719  -473.4697    35.2635   0.14328626   4.97045231  -0.03644287   0.13806790   0.98975205
+529  1730.0601   125.0000  -425.0000   124.9719  -423.9018    28.7222   0.12947854   4.99908066  -0.03651179   0.12384711   0.99162936
+530  1718.1400   125.0000  -375.0000   124.9719  -374.2443    22.8936   0.11572728   5.03467751  -0.03657347   0.10952397   0.99331105
+531  1718.1400   125.0000  -325.0000   124.9719  -324.5073    17.7828   0.10209588   5.07999611  -0.03662786   0.09510942   0.99479276
+532  1718.1400   125.0000  -275.0000   124.9719  -274.7011    13.3939   0.08868136   5.13934135  -0.03667472   0.08061485   0.99607038
+533  1709.2200   125.0000  -225.0000   124.9719  -224.8361     9.7308   0.07564178   5.21970129  -0.03671400   0.06605193   0.99714053
+534  1709.2200   125.0000  -175.0000   124.9719  -174.9228     6.7965   0.06325255   5.33274078  -0.03674555   0.05143264   0.99800020
+535  1703.3400   125.0000  -125.0000   124.9719  -124.9719     4.5935   0.05202308   5.49778700  -0.03676928   0.03676929   0.99864709
+536  1703.3400   125.0000   -75.0000   124.9719   -74.9939     3.1238   0.04291328   5.74270248  -0.03678514   0.02207425   0.99907935
+537  1703.3400   125.0000   -25.0000   124.9719   -24.9998     2.3887   0.03753085   6.08574820  -0.03679309   0.00736021   0.99929577
+538  1703.3400   125.0000    25.0000   124.9719    24.9998     2.3887   0.03753085   0.19743726  -0.03679308  -0.00736021   0.99929577
+539  1703.3400   125.0000    75.0000   124.9719    74.9939     3.1238   0.04291328   0.54048276  -0.03678514  -0.02207425   0.99907935
+540  1703.3400   125.0000   125.0000   124.9719   124.9719     4.5935   0.05202308   0.78539819  -0.03676928  -0.03676929   0.99864709
+541  1709.2200   125.0000   175.0000   124.9719   174.9228     6.7965   0.06325255   0.95044452  -0.03674555  -0.05143264   0.99800020
+542  1709.2200   125.0000   225.0000   124.9719   224.8361     9.7308   0.07564178   1.06348383  -0.03671401  -0.06605192   0.99714053
+543  1718.1400   125.0000   275.0000   124.9719   274.7011    13.3939   0.08868136   1.14384377  -0.03667473  -0.08061484   0.99607038
+544  1718.1400   125.0000   325.0000   124.9719   324.5073    17.7828   0.10209588   1.20318925  -0.03662786  -0.09510943   0.99479276
+545  1718.1400   125.0000   375.0000   124.9719   374.2443    22.8936   0.11572728   1.24850762  -0.03657349  -0.10952397   0.99331105
+546  1730.0601   125.0000   425.0000   124.9719   423.9018    28.7222   0.12947854   1.28410470  -0.03651178  -0.12384711   0.99162936
+547  1730.0601   125.0000   475.0000   124.9719   473.4697    35.2635   0.14328626   1.31273282  -0.03644289  -0.13806790   0.98975205
+548  1745.0699   125.0000   525.0000   124.9719   522.9382    42.5121   0.15710649   1.33621573  -0.03636703  -0.15217583   0.98768413
+549  1745.0699   125.0000   575.0000   124.9719   572.2976    50.4621   0.17090724   1.35580254  -0.03628434  -0.16616090   0.98543090
+550  1763.2600   125.0000   625.0000   124.9719   621.5383    59.1070   0.18466403   1.37237334  -0.03619508  -0.18001348   0.98299801
+551  1763.2600   125.0000   675.0000   124.9719   670.6511    68.4398   0.19835755   1.38656521  -0.03609945  -0.19372460   0.98039156
+552  1784.7300   125.0000   725.0000   124.9719   719.6271    78.4531   0.21197213   1.39884913  -0.03599768  -0.20728581   0.97761792
+553  1784.7300   125.0000   775.0000   124.9719   768.4574    89.1389   0.22549459   1.40958071  -0.03589001  -0.22068916   0.97468364
+554  1805.4000   125.0000   825.0000   124.9719   817.1337   100.4890   0.23891383   1.41903293  -0.03577672  -0.23392743   0.97159559
+555  1805.4000   175.0000  -825.0000   174.9228  -817.1337   102.6920   0.24141937   4.92327499  -0.05004597   0.23378444   0.97099960
+556  1784.7300   175.0000  -775.0000   174.9228  -768.4574    91.3419   0.22816989   4.93620396  -0.05020427   0.22055341   0.97408199
+557  1784.7300   175.0000  -725.0000   174.9228  -719.6271    80.6560   0.21483852   4.95083857  -0.05035462   0.20715754   0.97701085
+558  1763.2600   175.0000  -675.0000   174.9228  -670.6511    70.6428   0.20144072   4.96752977  -0.05049681   0.19360405   0.97977936
+559  1763.2600   175.0000  -625.0000   174.9228  -621.5383    61.3100   0.18799514   4.98672819  -0.05063047   0.17990088   0.98238093
+560  1763.2600   175.0000  -575.0000   174.9228  -572.2976    52.6651   0.17452455   5.00902128  -0.05075517   0.16605642   0.98480922
+561  1745.0699   175.0000  -525.0000   174.9228  -522.9382    44.7151   0.16105770   5.03518915  -0.05087067   0.15207973   0.98705822
+562  1745.0699   175.0000  -475.0000   174.9228  -473.4697    37.4664   0.14763157   5.06628418  -0.05097670   0.13798034   0.98912221
+563  1730.0601   175.0000  -425.0000   174.9228  -423.9018    30.9251   0.13429515   5.10375214  -0.05107289   0.12376827   0.99099594
+564  1730.0601   175.0000  -375.0000   174.9228  -374.2443    25.0966   0.12111574   5.14962053  -0.05115912   0.10945401   0.99267447
+565  1718.1400   175.0000  -325.0000   174.9228  -324.5073    19.9857   0.10818893   5.20677948  -0.05123505   0.09504851   0.99415326
+566  1718.1400   175.0000  -275.0000   174.9228  -274.7011    15.5969   0.09565578   5.27941084  -0.05130054   0.08056308   0.99542850
+567  1709.2200   175.0000  -225.0000   174.9228  -224.8361    11.9337   0.08373164   5.37357140  -0.05135540   0.06600940   0.99649656
+568  1709.2200   175.0000  -175.0000   174.9228  -174.9228     8.9994   0.07275400   5.49778700  -0.05139947   0.05139948   0.99735457
+569  1709.2200   175.0000  -125.0000   174.9228  -124.9719     6.7965   0.06325255   5.66283369  -0.05143265   0.03674554   0.99800020
+570  1703.3400   175.0000   -75.0000   174.9228   -74.9939     5.3268   0.05601357   5.87816334  -0.05145480   0.02205999   0.99843162
+571  1703.3400   175.0000   -25.0000   174.9228   -24.9998     4.5916   0.05201230   6.14122772  -0.05146589   0.00735545   0.99864769
+572  1703.3400   175.0000    25.0000   174.9228    24.9998     4.5916   0.05201230   0.14195772  -0.05146589  -0.00735546   0.99864769
+573  1703.3400   175.0000    75.0000   174.9228    74.9939     5.3268   0.05601357   0.40502208  -0.05145480  -0.02205999   0.99843162
+574  1709.2200   175.0000   125.0000   174.9228   124.9719     6.7965   0.06325255   0.62035185  -0.05143264  -0.03674555   0.99800020
+575  1709.2200   175.0000   175.0000   174.9228   174.9228     8.9994   0.07275400   0.78539819  -0.05139948  -0.05139948   0.99735457
+576  1709.2200   175.0000   225.0000   174.9228   224.8361    11.9337   0.08373164   0.90961385  -0.05135541  -0.06600940   0.99649656
+577  1718.1400   175.0000   275.0000   174.9228   274.7011    15.5969   0.09565578   1.00377440  -0.05130055  -0.08056308   0.99542850
+578  1718.1400   175.0000   325.0000   174.9228   324.5073    19.9857   0.10818893   1.07640564  -0.05123506  -0.09504850   0.99415326
+579  1730.0601   175.0000   375.0000   174.9228   374.2443    25.0966   0.12111574   1.13356495  -0.05115910  -0.10945402   0.99267447
+580  1730.0601   175.0000   425.0000   174.9228   423.9018    30.9251   0.13429515   1.17943311  -0.05107290  -0.12376827   0.99099594
+581  1745.0699   175.0000   475.0000   174.9228   473.4697    37.4664   0.14763157   1.21690130  -0.05097668  -0.13798034   0.98912221
+582  1745.0699   175.0000   525.0000   174.9228   522.9382    44.7151   0.16105770   1.24799621  -0.05087066  -0.15207973   0.98705822
+583  1763.2600   175.0000   575.0000   174.9228   572.2976    52.6651   0.17452455   1.27416408  -0.05075516  -0.16605642   0.98480922
+584  1763.2600   175.0000   625.0000   174.9228   621.5383    61.3100   0.18799514   1.29645717  -0.05063046  -0.17990088   0.98238093
+585  1763.2600   175.0000   675.0000   174.9228   670.6511    70.6428   0.20144072   1.31565535  -0.05049684  -0.19360405   0.97977936
+586  1784.7300   175.0000   725.0000   174.9228   719.6271    80.6560   0.21483852   1.33234656  -0.05035466  -0.20715752   0.97701085
+587  1784.7300   175.0000   775.0000   174.9228   768.4574    91.3419   0.22816989   1.34698141  -0.05020425  -0.22055343   0.97408199
+588  1805.4000   175.0000   825.0000   174.9228   817.1337   102.6920   0.24141937   1.35991049  -0.05004593  -0.23378445   0.97099960
+589  1805.4000   225.0000  -825.0000   224.8361  -817.1337   105.6263   0.24471071   4.98089647  -0.06427397   0.23359443   0.97020745
+590  1805.4000   225.0000  -775.0000   224.8361  -768.4574    94.2762   0.23167872   4.99702549  -0.06447694   0.22037302   0.97328234
+591  1784.7300   225.0000  -725.0000   224.8361  -719.6271    83.5904   0.21859103   5.01521397  -0.06466985   0.20698705   0.97620398
+592  1784.7300   225.0000  -675.0000   224.8361  -670.6511    73.5771   0.20546794   5.03586388  -0.06485212   0.19344383   0.97896564
+593  1763.2600   225.0000  -625.0000   224.8361  -621.5383    64.2443   0.19233420   5.05948544  -0.06502347   0.17975119   0.98156071
+594  1763.2600   225.0000  -575.0000   224.8361  -572.2976    55.5994   0.17922038   5.08673000  -0.06518333   0.16591761   0.98398298
+595  1745.0699   225.0000  -525.0000   224.8361  -522.9382    47.6494   0.16616496   5.11844301  -0.06533144   0.15195201   0.98622632
+596  1745.0699   225.0000  -475.0000   224.8361  -473.4697    40.4007   0.15321741   5.15573025  -0.06546731   0.13786398   0.98828518
+597  1730.0601   225.0000  -425.0000   224.8361  -423.9018    33.8594   0.14044267   5.20005703  -0.06559069   0.12366351   0.99015415
+598  1730.0601   225.0000  -375.0000   224.8361  -374.2443    28.0309   0.12792800   5.25337696  -0.06570122   0.10936106   0.99182838
+599  1718.1400   225.0000  -325.0000   224.8361  -324.5073    22.9200   0.11579338   5.31830263  -0.06579860   0.09496754   0.99330342
+600  1718.1400   225.0000  -275.0000   224.8361  -274.7011    18.5312   0.10420696   5.39829445  -0.06588259   0.08049426   0.99457538
+601  1718.1400   225.0000  -225.0000   224.8361  -224.8361    14.8680   0.09340727   5.49778700  -0.06595290   0.06595292   0.99564070
+602  1709.2200   225.0000  -175.0000   224.8361  -174.9228    11.9337   0.08373164   5.62200308  -0.06600942   0.05135539   0.99649656
+603  1709.2200   225.0000  -125.0000   224.8361  -124.9719     9.7308   0.07564178   5.77587271  -0.06605192   0.03671402   0.99714053
+604  1709.2200   225.0000   -75.0000   224.8361   -74.9939     8.2611   0.06971575   5.96124029  -0.06608032   0.02204105   0.99757081
+605  1709.2200   225.0000   -25.0000   224.8361   -24.9998     7.5259   0.06655098   6.17244911  -0.06609455   0.00734912   0.99778628
+606  1709.2200   225.0000    25.0000   224.8361    24.9998     7.5259   0.06655098   0.11073635  -0.06609455  -0.00734913   0.99778628
+607  1709.2200   225.0000    75.0000   224.8361    74.9939     8.2611   0.06971575   0.32194480  -0.06608032  -0.02204104   0.99757081
+608  1709.2200   225.0000   125.0000   224.8361   124.9719     9.7308   0.07564178   0.50731242  -0.06605192  -0.03671401   0.99714053
+609  1709.2200   225.0000   175.0000   224.8361   174.9228    11.9337   0.08373164   0.66118246  -0.06600940  -0.05135541   0.99649656
+610  1718.1400   225.0000   225.0000   224.8361   224.8361    14.8680   0.09340727   0.78539819  -0.06595290  -0.06595291   0.99564070
+611  1718.1400   225.0000   275.0000   224.8361   274.7011    18.5312   0.10420696   0.88489097  -0.06588258  -0.08049427   0.99457538
+612  1718.1400   225.0000   325.0000   224.8361   324.5073    22.9200   0.11579338   0.96488261  -0.06579861  -0.09496753   0.99330342
+613  1730.0601   225.0000   375.0000   224.8361   374.2443    28.0309   0.12792800   1.02980816  -0.06570124  -0.10936105   0.99182838
+614  1730.0601   225.0000   425.0000   224.8361   423.9018    33.8594   0.14044267   1.08312809  -0.06559072  -0.12366350   0.99015415
+615  1745.0699   225.0000   475.0000   224.8361   473.4697    40.4007   0.15321741   1.12745488  -0.06546733  -0.13786398   0.98828518
+616  1745.0699   225.0000   525.0000   224.8361   522.9382    47.6494   0.16616496   1.16474235  -0.06533143  -0.15195201   0.98622632
+617  1763.2600   225.0000   575.0000   224.8361   572.2976    55.5994   0.17922038   1.19645524  -0.06518334  -0.16591759   0.98398298
+618  1763.2600   225.0000   625.0000   224.8361   621.5383    64.2443   0.19233420   1.22370005  -0.06502344  -0.17975120   0.98156071
+619  1784.7300   225.0000   675.0000   224.8361   670.6511    73.5771   0.20546794   1.24732137  -0.06485213  -0.19344383   0.97896564
+620  1784.7300   225.0000   725.0000   224.8361   719.6271    83.5904   0.21859103   1.26797140  -0.06466984  -0.20698705   0.97620398
+621  1805.4000   225.0000   775.0000   224.8361   768.4574    94.2762   0.23167872   1.28615963  -0.06447699  -0.22037300   0.97328234
+622  1805.4000   225.0000   825.0000   224.8361   817.1337   105.6263   0.24471071   1.30228865  -0.06427401  -0.23359442   0.97020745
+623  1805.4000   275.0000  -825.0000   274.7011  -817.1337   109.2895   0.24874869   5.03669596  -0.07844936   0.23335785   0.96922123
+624  1805.4000   275.0000  -775.0000   274.7011  -768.4574    97.9393   0.23597544   5.05570364  -0.07869660   0.22014840   0.97228676
+625  1784.7300   275.0000  -725.0000   274.7011  -719.6271    87.2535   0.22317588   5.07704401  -0.07893150   0.20677485   0.97519946
+626  1784.7300   275.0000  -675.0000   274.7011  -670.6511    77.2402   0.21037526   5.10114670  -0.07915357   0.19324438   0.97795260
+627  1763.2600   275.0000  -625.0000   274.7011  -621.5383    67.9074   0.19760442   5.12854481  -0.07936222   0.17956488   0.98053968
+628  1763.2600   275.0000  -575.0000   274.7011  -572.2976    59.2625   0.18490130   5.15990639  -0.07955697   0.16574478   0.98295438
+629  1745.0699   275.0000  -525.0000   274.7011  -522.9382    51.3125   0.17231330   5.19607353  -0.07973734   0.15179302   0.98519075
+630  1745.0699   275.0000  -475.0000   274.7011  -473.4697    44.0639   0.15990058   5.23811293  -0.07990288   0.13771911   0.98724312
+631  1745.0699   275.0000  -425.0000   274.7011  -423.9018    37.5226   0.14774057   5.28737831  -0.08005317   0.12353306   0.98910618
+632  1730.0601   275.0000  -375.0000   274.7011  -374.2443    31.6941   0.13593437   5.34558153  -0.08018779   0.10924531   0.99077517
+633  1730.0601   275.0000  -325.0000   274.7011  -324.5073    26.5832   0.12461551   5.41485786  -0.08030636   0.09486673   0.99224555
+634  1718.1400   275.0000  -275.0000   274.7011  -274.7011    22.1943   0.11396147   5.49778700  -0.08040860   0.08040863   0.99351341
+635  1718.1400   275.0000  -225.0000   274.7011  -224.8361    18.5312   0.10420696   5.59728003  -0.08049428   0.06588257   0.99457538
+636  1718.1400   275.0000  -175.0000   274.7011  -174.9228    15.5969   0.09565578   5.71616316  -0.08056306   0.05130057   0.99542850
+637  1718.1400   275.0000  -125.0000   274.7011  -124.9719    13.3939   0.08868136   5.85623264  -0.08061484   0.03667475   0.99607038
+638  1709.2200   275.0000   -75.0000   274.7011   -74.9939    11.9242   0.08369853   6.01667786  -0.08064944   0.02201743   0.99649930
+639  1709.2200   275.0000   -25.0000   274.7011   -24.9998    11.1891   0.08108898   6.19242811  -0.08066677   0.00734126   0.99671412
+640  1709.2200   275.0000    25.0000   274.7011    24.9998    11.1891   0.08108898   0.09075727  -0.08066677  -0.00734126   0.99671412
+641  1709.2200   275.0000    75.0000   274.7011    74.9939    11.9242   0.08369853   0.26650754  -0.08064944  -0.02201744   0.99649930
+642  1718.1400   275.0000   125.0000   274.7011   124.9719    13.3939   0.08868136   0.42695254  -0.08061484  -0.03667473   0.99607038
+643  1718.1400   275.0000   175.0000   274.7011   174.9228    15.5969   0.09565578   0.56702197  -0.08056308  -0.05130055   0.99542850
+644  1718.1400   275.0000   225.0000   274.7011   224.8361    18.5312   0.10420696   0.68590534  -0.08049427  -0.06588258   0.99457538
+645  1718.1400   275.0000   275.0000   274.7011   274.7011    22.1943   0.11396147   0.78539819  -0.08040861  -0.08040862   0.99351341
+646  1730.0601   275.0000   325.0000   274.7011   324.5073    26.5832   0.12461551   0.86832750  -0.08030636  -0.09486674   0.99224555
+647  1730.0601   275.0000   375.0000   274.7011   374.2443    31.6941   0.13593437   0.93760401  -0.08018777  -0.10924532   0.99077517
+648  1745.0699   275.0000   425.0000   274.7011   423.9018    37.5226   0.14774057   0.99580717  -0.08005315  -0.12353308   0.98910618
+649  1745.0699   275.0000   475.0000   274.7011   473.4697    44.0639   0.15990058   1.04507244  -0.07990287  -0.13771912   0.98724312
+650  1745.0699   275.0000   525.0000   274.7011   522.9382    51.3125   0.17231330   1.08711159  -0.07973737  -0.15179302   0.98519075
+651  1763.2600   275.0000   575.0000   274.7011   572.2976    59.2625   0.18490130   1.12327886  -0.07955698  -0.16574478   0.98295438
+652  1763.2600   275.0000   625.0000   274.7011   621.5383    67.9074   0.19760442   1.15464044  -0.07936224  -0.17956488   0.98053968
+653  1784.7300   275.0000   675.0000   274.7011   670.6511    77.2402   0.21037526   1.18203855  -0.07915358  -0.19324437   0.97795260
+654  1784.7300   275.0000   725.0000   274.7011   719.6271    87.2535   0.22317588   1.20614111  -0.07893153  -0.20677483   0.97519946
+655  1805.4000   275.0000   775.0000   274.7011   768.4574    97.9393   0.23597544   1.22748148  -0.07869664  -0.22014838   0.97228676
+656  1805.4000   275.0000   825.0000   274.7011   817.1337   109.2895   0.24874869   1.24648917  -0.07844941  -0.23335783   0.96922123
+657  1805.4000   325.0000  -825.0000   324.5073  -817.1337   113.6783   0.25348800   5.09041786  -0.09256095   0.23307529   0.96804357
+658  1805.4000   325.0000  -775.0000   324.5073  -768.4574   102.3282   0.24100770   5.11195707  -0.09285193   0.21988018   0.97109795
+659  1784.7300   325.0000  -725.0000   324.5073  -719.6271    91.6424   0.22853206   5.13602257  -0.09312834   0.20652144   0.97399998
+660  1784.7300   325.0000  -675.0000   324.5073  -670.6511    81.6291   0.21609105   5.16304874  -0.09338973   0.19300620   0.97674304
+661  1784.7300   325.0000  -625.0000   324.5073  -621.5383    72.2963   0.20372099   5.19356251  -0.09363527   0.17934240   0.97932053
+662  1763.2600   325.0000  -575.0000   324.5073  -572.2976    63.6514   0.19146617   5.22820950  -0.09386449   0.16553842   0.98172629
+663  1763.2600   325.0000  -525.0000   324.5073  -522.9382    55.7014   0.17938119   5.26777935  -0.09407680   0.15160315   0.98395431
+664  1745.0699   325.0000  -475.0000   324.5073  -473.4697    48.4527   0.16753416   5.31323624  -0.09427157   0.13754617   0.98599893
+665  1745.0699   325.0000  -425.0000   324.5073  -423.9018    41.9114   0.15601057   5.36575222  -0.09444842   0.12337733   0.98785502
+666  1730.0601   325.0000  -375.0000   324.5073  -374.2443    36.0829   0.14491870   5.42672729  -0.09460683   0.10910713   0.98951763
+667  1730.0601   325.0000  -325.0000   324.5073  -324.5073    30.9721   0.13439584   5.49778700  -0.09474637   0.09474640   0.99098247
+668  1730.0601   325.0000  -275.0000   324.5073  -274.7011    26.5832   0.12461551   5.58071661  -0.09486675   0.08030634   0.99224555
+669  1718.1400   325.0000  -225.0000   324.5073  -224.8361    22.9200   0.11579338   5.67727184  -0.09496754   0.06579859   0.99330342
+670  1718.1400   325.0000  -175.0000   324.5073  -174.9228    19.9857   0.10818893   5.78879452  -0.09504849   0.05123507   0.99415326
+671  1718.1400   325.0000  -125.0000   324.5073  -124.9719    17.7828   0.10209588   5.91557837  -0.09510943   0.03662784   0.99479276
+672  1718.1400   325.0000   -75.0000   324.5073   -74.9939    16.3131   0.09781386   6.05607176  -0.09515014   0.02198927   0.99522007
+673  1718.1400   325.0000   -25.0000   324.5073   -24.9998    15.5779   0.09559806   6.20629787  -0.09517051   0.00733187   0.99543399
+674  1718.1400   325.0000    25.0000   324.5073    24.9998    15.5779   0.09559806   0.07688738  -0.09517051  -0.00733187   0.99543399
+675  1718.1400   325.0000    75.0000   324.5073    74.9939    16.3131   0.09781386   0.22711363  -0.09515014  -0.02198927   0.99522007
+676  1718.1400   325.0000   125.0000   324.5073   124.9719    17.7828   0.10209588   0.36760706  -0.09510943  -0.03662786   0.99479276
+677  1718.1400   325.0000   175.0000   324.5073   174.9228    19.9857   0.10818893   0.49439064  -0.09504850  -0.05123506   0.99415326
+678  1718.1400   325.0000   225.0000   324.5073   224.8361    22.9200   0.11579338   0.60591370  -0.09496753  -0.06579861   0.99330342
+679  1730.0601   325.0000   275.0000   324.5073   274.7011    26.5832   0.12461551   0.70246881  -0.09486674  -0.08030635   0.99224555
+680  1730.0601   325.0000   325.0000   324.5073   324.5073    30.9721   0.13439584   0.78539819  -0.09474638  -0.09474639   0.99098247
+681  1730.0601   325.0000   375.0000   324.5073   374.2443    36.0829   0.14491870   0.85645813  -0.09460682  -0.10910714   0.98951763
+682  1745.0699   325.0000   425.0000   324.5073   423.9018    41.9114   0.15601057   0.91743320  -0.09444841  -0.12337735   0.98785502
+683  1745.0699   325.0000   475.0000   324.5073   473.4697    48.4527   0.16753416   0.96994907  -0.09427157  -0.13754617   0.98599893
+684  1763.2600   325.0000   525.0000   324.5073   522.9382    55.7014   0.17938119   1.01540613  -0.09407677  -0.15160316   0.98395431
+685  1763.2600   325.0000   575.0000   324.5073   572.2976    63.6514   0.19146617   1.05497575  -0.09386450  -0.16553842   0.98172629
+686  1784.7300   325.0000   625.0000   324.5073   621.5383    72.2963   0.20372099   1.08962274  -0.09363528  -0.17934240   0.97932053
+687  1784.7300   325.0000   675.0000   324.5073   670.6511    81.6291   0.21609105   1.12013662  -0.09338971  -0.19300620   0.97674304
+688  1784.7300   325.0000   725.0000   324.5073   719.6271    91.6424   0.22853206   1.14716256  -0.09312838  -0.20652142   0.97399998
+689  1805.4000   325.0000   775.0000   324.5073   768.4574   102.3282   0.24100770   1.17122841  -0.09285188  -0.21988019   0.97109795
+690  1805.4000   325.0000   825.0000   324.5073   817.1337   113.6783   0.25348800   1.19276762  -0.09256090  -0.23307531   0.96804357
+691  1805.4000   375.0000  -775.0000   374.2443  -768.4574   107.4391   0.24671859   5.16558838  -0.10693172   0.21956910   0.96971905
+692  1805.4000   375.0000  -725.0000   374.2443  -719.6271    96.7532   0.23459409   5.19194984  -0.10724919   0.20622750   0.97260875
+693  1784.7300   375.0000  -675.0000   374.2443  -670.6511    86.7400   0.22253957   5.22137737  -0.10754936   0.19272996   0.97534007
+694  1784.7300   375.0000  -625.0000   374.2443  -621.5383    77.4072   0.21059583   5.25437021  -0.10783134   0.17908438   0.97790653
+695  1763.2600   375.0000  -575.0000   374.2443  -572.2976    68.7622   0.19881210   5.29152393  -0.10809450   0.16529910   0.98030186
+696  1763.2600   375.0000  -525.0000   374.2443  -522.9382    60.8122   0.18724811   5.33354568  -0.10833825   0.15138300   0.98252022
+697  1763.2600   375.0000  -475.0000   374.2443  -473.4697    53.5636   0.17597687   5.38126659  -0.10856193   0.13734560   0.98455596
+698  1745.0699   375.0000  -425.0000   374.2443  -423.9018    47.0223   0.16508774   5.43565130  -0.10876503   0.12319674   0.98640394
+699  1745.0699   375.0000  -375.0000   374.2443  -374.2443    41.1938   0.15469038   5.49778700  -0.10894689   0.10894692   0.98805928
+700  1730.0601   375.0000  -325.0000   374.2443  -324.5073    36.0829   0.14491870   5.56884718  -0.10910715   0.09460682   0.98951763
+701  1730.0601   375.0000  -275.0000   374.2443  -274.7011    31.6941   0.13593437   5.64999294  -0.10924532   0.08018777   0.99077517
+702  1730.0601   375.0000  -225.0000   374.2443  -224.8361    28.0309   0.12792800   5.74219704  -0.10936105   0.06570125   0.99182838
+703  1730.0601   375.0000  -175.0000   374.2443  -174.9228    25.0966   0.12111574   5.84595394  -0.10945402   0.05115910   0.99267447
+704  1718.1400   375.0000  -125.0000   374.2443  -124.9719    22.8936   0.11572728   5.96089649  -0.10952397   0.03657350   0.99331105
+705  1718.1400   375.0000   -75.0000   374.2443   -74.9939    21.4240   0.11198288   6.08541727  -0.10957072   0.02195659   0.99373645
+706  1718.1400   375.0000   -25.0000   374.2443   -24.9998    20.6888   0.11006044   6.21648359  -0.10959412   0.00732098   0.99394947
+707  1718.1400   375.0000    25.0000   374.2443    24.9998    20.6888   0.11006044   0.06670165  -0.10959412  -0.00732097   0.99394947
+708  1718.1400   375.0000    75.0000   374.2443    74.9939    21.4240   0.11198288   0.19776818  -0.10957072  -0.02195661   0.99373645
+709  1718.1400   375.0000   125.0000   374.2443   124.9719    22.8936   0.11572728   0.32228866  -0.10952397  -0.03657348   0.99331105
+710  1730.0601   375.0000   175.0000   374.2443   174.9228    25.0966   0.12111574   0.43723142  -0.10945402  -0.05115911   0.99267447
+711  1730.0601   375.0000   225.0000   374.2443   224.8361    28.0309   0.12792800   0.54098815  -0.10936105  -0.06570123   0.99182838
+712  1730.0601   375.0000   275.0000   374.2443   274.7011    31.6941   0.13593437   0.63319230  -0.10924532  -0.08018776   0.99077517
+713  1730.0601   375.0000   325.0000   374.2443   324.5073    36.0829   0.14491870   0.71433818  -0.10910714  -0.09460682   0.98951763
+714  1745.0699   375.0000   375.0000   374.2443   374.2443    41.1938   0.15469038   0.78539819  -0.10894690  -0.10894690   0.98805928
+715  1745.0699   375.0000   425.0000   374.2443   423.9018    47.0223   0.16508774   0.84753412  -0.10876501  -0.12319676   0.98640394
+716  1763.2600   375.0000   475.0000   374.2443   473.4697    53.5636   0.17597687   0.90191853  -0.10856196  -0.13734558   0.98455596
+717  1763.2600   375.0000   525.0000   374.2443   522.9382    60.8122   0.18724811   0.94963950  -0.10833827  -0.15138298   0.98252022
+718  1763.2600   375.0000   575.0000   374.2443   572.2976    68.7622   0.19881210   0.99166119  -0.10809453  -0.16529907   0.98030186
+719  1784.7300   375.0000   625.0000   374.2443   621.5383    77.4072   0.21059583   1.02881515  -0.10783134  -0.17908438   0.97790653
+720  1784.7300   375.0000   675.0000   374.2443   670.6511    86.7400   0.22253957   1.06180799  -0.10754935  -0.19272996   0.97534007
+721  1805.4000   375.0000   725.0000   374.2443   719.6271    96.7532   0.23459409   1.09123528  -0.10724923  -0.20622748   0.97260875
+722  1805.4000   375.0000   775.0000   374.2443   768.4574   107.4391   0.24671859   1.11759686  -0.10693174  -0.21956910   0.96971905
+723  1805.4000   425.0000  -725.0000   423.9018  -719.6271   102.5817   0.24129471   5.24472380  -0.12128332   0.20589378   0.97102940
+724  1784.7300   425.0000  -675.0000   423.9018  -670.6511    92.5685   0.22964412   5.27605963  -0.12162156   0.19241640   0.97374749
+725  1784.7300   425.0000  -625.0000   423.9018  -621.5383    83.2357   0.21814133   5.31094599  -0.12193944   0.17879146   0.97630137
+726  1784.7300   425.0000  -575.0000   423.9018  -572.2976    74.5908   0.20683894   5.34991264  -0.12223610   0.16502739   0.97868496
+727  1763.2600   425.0000  -525.0000   423.9018  -522.9382    66.6407   0.19579971   5.39356947  -0.12251082   0.15113305   0.98089242
+728  1763.2600   425.0000  -475.0000   423.9018  -473.4697    59.3921   0.18509875   5.44260645  -0.12276291   0.13711789   0.98291808
+729  1763.2600   425.0000  -425.0000   423.9018  -423.9018    52.8508   0.17482582   5.49778700  -0.12299174   0.12299178   0.98475683
+730  1745.0699   425.0000  -375.0000   423.9018  -374.2443    47.0223   0.16508774   5.55992317  -0.12319677   0.10876501   0.98640394
+731  1745.0699   425.0000  -325.0000   423.9018  -324.5073    41.9114   0.15601057   5.62982225  -0.12337735   0.09444840   0.98785502
+732  1745.0699   425.0000  -275.0000   423.9018  -274.7011    37.5226   0.14774057   5.70819616  -0.12353308   0.08005315   0.98910618
+733  1730.0601   425.0000  -225.0000   423.9018  -224.8361    33.8594   0.14044267   5.79551697  -0.12366349   0.06559072   0.99015415
+734  1730.0601   425.0000  -175.0000   423.9018  -174.9228    30.9251   0.13429515   5.89182234  -0.12376828   0.05107287   0.99099594
+735  1730.0601   425.0000  -125.0000   423.9018  -124.9719    28.7222   0.12947854   5.99649382  -0.12384712   0.03651176   0.99162936
+736  1730.0601   425.0000   -75.0000   423.9018   -74.9939    27.2525   0.12615816   6.10808372  -0.12389979   0.02191953   0.99205261
+737  1730.0601   425.0000   -25.0000   423.9018   -24.9998    26.5173   0.12446258   6.22427797  -0.12392616   0.00730862   0.99226451
+738  1730.0601   425.0000    25.0000   423.9018    24.9998    26.5173   0.12446258   0.05890722  -0.12392616  -0.00730860   0.99226451
+739  1730.0601   425.0000    75.0000   423.9018    74.9939    27.2525   0.12615816   0.17510158  -0.12389979  -0.02191953   0.99205261
+740  1730.0601   425.0000   125.0000   423.9018   124.9719    28.7222   0.12947854   0.28669161  -0.12384711  -0.03651178   0.99162936
+741  1730.0601   425.0000   175.0000   423.9018   174.9228    30.9251   0.13429515   0.39136320  -0.12376827  -0.05107290   0.99099594
+742  1730.0601   425.0000   225.0000   423.9018   224.8361    33.8594   0.14044267   0.48766822  -0.12366350  -0.06559071   0.99015415
+743  1745.0699   425.0000   275.0000   423.9018   274.7011    37.5226   0.14774057   0.57498914  -0.12353308  -0.08005315   0.98910618
+744  1745.0699   425.0000   325.0000   423.9018   324.5073    41.9114   0.15601057   0.65336311  -0.12337735  -0.09444840   0.98785502
+745  1745.0699   425.0000   375.0000   423.9018   374.2443    47.0223   0.16508774   0.72326219  -0.12319676  -0.10876501   0.98640394
+746  1763.2600   425.0000   425.0000   423.9018   423.9018    52.8508   0.17482582   0.78539819  -0.12299176  -0.12299176   0.98475683
+747  1763.2600   425.0000   475.0000   423.9018   473.4697    59.3921   0.18509875   0.84057885  -0.12276291  -0.13711789   0.98291808
+748  1763.2600   425.0000   525.0000   423.9018   522.9382    66.6407   0.19579971   0.88961595  -0.12251081  -0.15113306   0.98089242
+749  1784.7300   425.0000   575.0000   423.9018   572.2976    74.5908   0.20683894   0.93327278  -0.12223607  -0.16502741   0.97868496
+750  1784.7300   425.0000   625.0000   423.9018   621.5383    83.2357   0.21814133   0.97223943  -0.12193943  -0.17879148   0.97630137
+751  1784.7300   425.0000   675.0000   423.9018   670.6511    92.5685   0.22964412   1.00712550  -0.12162159  -0.19241637   0.97374749
+752  1805.4000   425.0000   725.0000   423.9018   719.6271   102.5817   0.24129471   1.03846157  -0.12128331  -0.20589380   0.97102940
+753  1805.4000   475.0000  -675.0000   473.4697  -670.6511    99.1098   0.23732954   5.32712030  -0.13559589   0.19206630   0.97196931
+754  1784.7300   475.0000  -625.0000   473.4697  -621.5383    89.7770   0.22627315   5.36338091  -0.13594899   0.17846444   0.97450930
+755  1784.7300   475.0000  -575.0000   473.4697  -572.2976    81.1321   0.21545230   5.40356445  -0.13627855   0.16472407   0.97687978
+756  1784.7300   475.0000  -525.0000   473.4697  -522.9382    73.1821   0.20493087   5.44818115  -0.13658369   0.15085402   0.97907507
+757  1763.2600   475.0000  -475.0000   473.4697  -473.4697    65.9334   0.19478387   5.49778700  -0.13686368   0.13686371   0.98108953
+758  1763.2600   475.0000  -425.0000   473.4697  -423.9018    59.3921   0.18509875   5.55296803  -0.13711791   0.12276288   0.98291808
+759  1763.2600   475.0000  -375.0000   473.4697  -374.2443    53.5636   0.17597687   5.61430740  -0.13734557   0.10856198   0.98455596
+760  1745.0699   475.0000  -325.0000   473.4697  -324.5073    48.4527   0.16753416   5.68233824  -0.13754618   0.09427155   0.98599893
+761  1745.0699   475.0000  -275.0000   473.4697  -274.7011    44.0639   0.15990058   5.75746155  -0.13771912   0.07990286   0.98724312
+762  1745.0699   475.0000  -225.0000   473.4697  -224.8361    40.4007   0.15321741   5.83984375  -0.13786396   0.06546734   0.98828518
+763  1745.0699   475.0000  -175.0000   473.4697  -174.9228    37.4664   0.14763157   5.92929029  -0.13798034   0.05097668   0.98912221
+764  1730.0601   475.0000  -125.0000   473.4697  -124.9719    35.2635   0.14328626   6.02512169  -0.13806790   0.03644291   0.98975205
+765  1730.0601   475.0000   -75.0000   473.4697   -74.9939    33.7938   0.14030823   6.12609816  -0.13812639   0.02187814   0.99017292
+766  1730.0601   475.0000   -25.0000   473.4697   -24.9998    33.0586   0.13879332   6.23043299  -0.13815568   0.00729480   0.99038368
+767  1730.0601   475.0000    25.0000   473.4697    24.9998    33.0586   0.13879332   0.05275228  -0.13815568  -0.00729480   0.99038368
+768  1730.0601   475.0000    75.0000   473.4697    74.9939    33.7938   0.14030823   0.15708718  -0.13812639  -0.02187814   0.99017292
+769  1730.0601   475.0000   125.0000   473.4697   124.9719    35.2635   0.14328626   0.25806352  -0.13806790  -0.03644289   0.98975205
+770  1745.0699   475.0000   175.0000   473.4697   174.9228    37.4664   0.14763157   0.35389501  -0.13798036  -0.05097668   0.98912221
+771  1745.0699   475.0000   225.0000   473.4697   224.8361    40.4007   0.15321741   0.44334149  -0.13786396  -0.06546734   0.98828518
+772  1745.0699   475.0000   275.0000   473.4697   274.7011    44.0639   0.15990058   0.52572393  -0.13771911  -0.07990288   0.98724312
+773  1745.0699   475.0000   325.0000   473.4697   324.5073    48.4527   0.16753416   0.60084724  -0.13754617  -0.09427157   0.98599893
+774  1763.2600   475.0000   375.0000   473.4697   374.2443    53.5636   0.17597687   0.66887778  -0.13734558  -0.10856196   0.98455596
+775  1763.2600   475.0000   425.0000   473.4697   423.9018    59.3921   0.18509875   0.73021746  -0.13711789  -0.12276291   0.98291808
+776  1763.2600   475.0000   475.0000   473.4697   473.4697    65.9334   0.19478387   0.78539819  -0.13686369  -0.13686369   0.98108953
+777  1784.7300   475.0000   525.0000   473.4697   522.9382    73.1821   0.20493087   0.83500427  -0.13658367  -0.15085404   0.97907507
+778  1784.7300   475.0000   575.0000   473.4697   572.2976    81.1321   0.21545230   0.87962109  -0.13627851  -0.16472410   0.97687978
+779  1784.7300   475.0000   625.0000   473.4697   621.5383    89.7770   0.22627315   0.91980445  -0.13594899  -0.17846444   0.97450930
+780  1805.4000   475.0000   675.0000   473.4697   670.6511    99.1098   0.23732954   0.95606482  -0.13559592  -0.19206628   0.97196931
+781  1805.4000   525.0000  -625.0000   522.9382  -621.5383    97.0256   0.23491217   5.41184616  -0.14984989   0.17810418   0.97253478
+782  1784.7300   525.0000  -575.0000   522.9382  -572.2976    88.3807   0.22456542   5.45275021  -0.15021165   0.16438994   0.97489095
+783  1784.7300   525.0000  -525.0000   522.9382  -522.9382    80.4307   0.21454726   5.49778700  -0.15054661   0.15054666   0.97707289
+784  1784.7300   525.0000  -475.0000   522.9382  -473.4697    73.1821   0.20493087   5.54739332  -0.15085405   0.13658366   0.97907507
+785  1763.2600   525.0000  -425.0000   522.9382  -423.9018    66.6407   0.19579971   5.60200500  -0.15113308   0.12251080   0.98089242
+786  1763.2600   525.0000  -375.0000   522.9382  -374.2443    60.8122   0.18724811   5.66202831  -0.15138297   0.10833830   0.98252022
+787  1763.2600   525.0000  -325.0000   522.9382  -324.5073    55.7014   0.17938119   5.72779512  -0.15160316   0.09407677   0.98395431
+788  1745.0699   525.0000  -275.0000   522.9382  -274.7011    51.3125   0.17231330   5.79950047  -0.15179300   0.07973739   0.98519075
+789  1745.0699   525.0000  -225.0000   522.9382  -224.8361    47.6494   0.16616496   5.87713146  -0.15195203   0.06533141   0.98622632
+790  1745.0699   525.0000  -175.0000   522.9382  -174.9228    44.7151   0.16105770   5.96038532  -0.15207973   0.05087064   0.98705822
+791  1745.0699   525.0000  -125.0000   522.9382  -124.9719    42.5121   0.15710649   6.04860497  -0.15217583   0.03636698   0.98768413
+792  1745.0699   525.0000   -75.0000   522.9382   -74.9939    41.0424   0.15441042   6.14074755  -0.15224004   0.02183258   0.98810238
+793  1745.0699   525.0000   -25.0000   522.9382   -24.9998    40.3073   0.15304284   6.23541546  -0.15227219   0.00727956   0.98831177
+794  1745.0699   525.0000    25.0000   522.9382    24.9998    40.3073   0.15304284   0.04777005  -0.15227219  -0.00727959   0.98831177
+795  1745.0699   525.0000    75.0000   522.9382    74.9939    41.0424   0.15441042   0.14243756  -0.15224004  -0.02183255   0.98810238
+796  1745.0699   525.0000   125.0000   522.9382   124.9719    42.5121   0.15710649   0.23458056  -0.15217583  -0.03636702   0.98768413
+797  1745.0699   525.0000   175.0000   522.9382   174.9228    44.7151   0.16105770   0.32280016  -0.15207973  -0.05087066   0.98705822
+798  1745.0699   525.0000   225.0000   522.9382   224.8361    47.6494   0.16616496   0.40605399  -0.15195201  -0.06533143   0.98622632
+799  1745.0699   525.0000   275.0000   522.9382   274.7011    51.3125   0.17231330   0.48368469  -0.15179302  -0.07973737   0.98519075
+800  1763.2600   525.0000   325.0000   522.9382   324.5073    55.7014   0.17938119   0.55539018  -0.15160316  -0.09407677   0.98395431
+801  1763.2600   525.0000   375.0000   522.9382   374.2443    60.8122   0.18724811   0.62115681  -0.15138298  -0.10833827   0.98252022
+802  1763.2600   525.0000   425.0000   522.9382   423.9018    66.6407   0.19579971   0.68118036  -0.15113308  -0.12251081   0.98089242
+803  1784.7300   525.0000   475.0000   522.9382   473.4697    73.1821   0.20493087   0.73579210  -0.15085404  -0.13658367   0.97907507
+804  1784.7300   525.0000   525.0000   522.9382   522.9382    80.4307   0.21454726   0.78539819  -0.15054663  -0.15054664   0.97707289
+805  1784.7300   525.0000   575.0000   522.9382   572.2976    88.3807   0.22456542   0.83043510  -0.15021165  -0.16438994   0.97489095
+806  1805.4000   525.0000   625.0000   522.9382   621.5383    97.0256   0.23491217   0.87133902  -0.14984991  -0.17810416   0.97253478
+807  1805.4000   575.0000  -575.0000   572.2976  -572.2976    96.3307   0.23409981   5.49778700  -0.16402572   0.16402577   0.97272354
+808  1784.7300   575.0000  -525.0000   572.2976  -522.9382    88.3807   0.22456542   5.54282427  -0.16438995   0.15021162   0.97489095
+809  1784.7300   575.0000  -475.0000   572.2976  -473.4697    81.1321   0.21545230   5.59201002  -0.16472408   0.13627852   0.97687978
+810  1784.7300   575.0000  -425.0000   572.2976  -423.9018    74.5908   0.20683894   5.64566183  -0.16502742   0.12223607   0.97868496
+811  1763.2600   575.0000  -375.0000   572.2976  -374.2443    68.7622   0.19881210   5.70405006  -0.16529907   0.10809454   0.98030186
+812  1763.2600   575.0000  -325.0000   572.2976  -324.5073    63.6514   0.19146617   5.76736498  -0.16553843   0.09386446   0.98172629
+813  1763.2600   575.0000  -275.0000   572.2976  -274.7011    59.2625   0.18490130   5.83566761  -0.16574475   0.07955702   0.98295438
+814  1763.2600   575.0000  -225.0000   572.2976  -224.8361    55.5994   0.17922038   5.90884447  -0.16591761   0.06518330   0.98398298
+815  1763.2600   575.0000  -175.0000   572.2976  -174.9228    52.6651   0.17452455   5.98655319  -0.16605644   0.05075514   0.98480922
+816  1745.0699   575.0000  -125.0000   572.2976  -124.9719    50.4621   0.17090724   6.06819153  -0.16616090   0.03628434   0.98543090
+817  1745.0699   575.0000   -75.0000   572.2976   -74.9939    48.9924   0.16844730   6.15288782  -0.16623069   0.02178285   0.98584628
+818  1745.0699   575.0000   -25.0000   572.2976   -24.9998    48.2573   0.16720217   6.23952961  -0.16626564   0.00726306   0.98605424
+819  1745.0699   575.0000    25.0000   572.2976    24.9998    48.2573   0.16720217   0.04365546  -0.16626564  -0.00726302   0.98605424
+820  1745.0699   575.0000    75.0000   572.2976    74.9939    48.9924   0.16844730   0.13029762  -0.16623069  -0.02178288   0.98584628
+821  1745.0699   575.0000   125.0000   572.2976   124.9719    50.4621   0.17090724   0.21499380  -0.16616090  -0.03628434   0.98543090
+822  1763.2600   575.0000   175.0000   572.2976   174.9228    52.6651   0.17452455   0.29663226  -0.16605642  -0.05075516   0.98480922
+823  1763.2600   575.0000   225.0000   572.2976   224.8361    55.5994   0.17922038   0.37434104  -0.16591761  -0.06518333   0.98398298
+824  1763.2600   575.0000   275.0000   572.2976   274.7011    59.2625   0.18490130   0.44751751  -0.16574477  -0.07955699   0.98295438
+825  1763.2600   575.0000   325.0000   572.2976   324.5073    63.6514   0.19146617   0.51582050  -0.16553842  -0.09386449   0.98172629
+826  1763.2600   575.0000   375.0000   572.2976   374.2443    68.7622   0.19881210   0.57913512  -0.16529907  -0.10809453   0.98030186
+827  1784.7300   575.0000   425.0000   572.2976   423.9018    74.5908   0.20683894   0.63752359  -0.16502741  -0.12223608   0.97868496
+828  1784.7300   575.0000   475.0000   572.2976   473.4697    81.1321   0.21545230   0.69117522  -0.16472410  -0.13627851   0.97687978
+829  1784.7300   575.0000   525.0000   572.2976   522.9382    88.3807   0.22456542   0.74036121  -0.16438994  -0.15021165   0.97489095
+830  1805.4000   575.0000   575.0000   572.2976   572.2976    96.3307   0.23409981   0.78539819  -0.16402574  -0.16402575   0.97272354
+831  1805.4000   625.0000  -525.0000   621.5383  -522.9382    97.0256   0.23491217   5.58372784  -0.17810413   0.14984994   0.97253478
+832  1784.7300   625.0000  -475.0000   621.5383  -473.4697    89.7770   0.22627315   5.63219357  -0.17846446   0.13594896   0.97450930
+833  1784.7300   625.0000  -425.0000   621.5383  -423.9018    83.2357   0.21814133   5.68462849  -0.17879148   0.12193941   0.97630137
+834  1784.7300   625.0000  -375.0000   621.5383  -374.2443    77.4072   0.21059583   5.74120426  -0.17908439   0.10783131   0.97790653
+835  1784.7300   625.0000  -325.0000   621.5383  -324.5073    72.2963   0.20372099   5.80201197  -0.17934242   0.09363524   0.97932053
+836  1763.2600   625.0000  -275.0000   621.5383  -274.7011    67.9074   0.19760442   5.86702919  -0.17956486   0.07936227   0.98053968
+837  1763.2600   625.0000  -225.0000   621.5383  -224.8361    64.2443   0.19233420   5.93608904  -0.17975120   0.06502344   0.98156071
+838  1763.2600   625.0000  -175.0000   621.5383  -174.9228    61.3100   0.18799514   6.00884628  -0.17990088   0.05063044   0.98238093
+839  1763.2600   625.0000  -125.0000   621.5383  -124.9719    59.1070   0.18466403   6.08476257  -0.18001349   0.03619504   0.98299801
+840  1763.2600   625.0000   -75.0000   621.5383   -74.9939    57.6373   0.18240470   6.16310740  -0.18008873   0.02172921   0.98341036
+841  1763.2600   625.0000   -25.0000   621.5383   -24.9998    56.9022   0.18126303   6.24298429  -0.18012640   0.00724517   0.98361677
+842  1763.2600   625.0000    25.0000   621.5383    24.9998    56.9022   0.18126303   0.04020079  -0.18012640  -0.00724513   0.98361677
+843  1763.2600   625.0000    75.0000   621.5383    74.9939    57.6373   0.18240470   0.12007805  -0.18008873  -0.02172924   0.98341036
+844  1763.2600   625.0000   125.0000   621.5383   124.9719    59.1070   0.18466403   0.19842294  -0.18001349  -0.03619508   0.98299801
+845  1763.2600   625.0000   175.0000   621.5383   174.9228    61.3100   0.18799514   0.27433914  -0.17990088  -0.05063045   0.98238093
+846  1763.2600   625.0000   225.0000   621.5383   224.8361    64.2443   0.19233420   0.34709626  -0.17975120  -0.06502344   0.98156071
+847  1763.2600   625.0000   275.0000   621.5383   274.7011    67.9074   0.19760442   0.41615590  -0.17956488  -0.07936224   0.98053968
+848  1784.7300   625.0000   325.0000   621.5383   324.5073    72.2963   0.20372099   0.48117357  -0.17934240  -0.09363528   0.97932053
+849  1784.7300   625.0000   375.0000   621.5383   374.2443    77.4072   0.21059583   0.54198116  -0.17908438  -0.10783134   0.97790653
+850  1784.7300   625.0000   425.0000   621.5383   423.9018    83.2357   0.21814133   0.59855688  -0.17879148  -0.12193942   0.97630137
+851  1784.7300   625.0000   475.0000   621.5383   473.4697    89.7770   0.22627315   0.65099192  -0.17846444  -0.13594899   0.97450930
+852  1805.4000   625.0000   525.0000   621.5383   522.9382    97.0256   0.23491217   0.69945729  -0.17810416  -0.14984991   0.97253478
+853  1805.4000   675.0000  -475.0000   670.6511  -473.4697    99.1098   0.23732954   5.66845369  -0.19206627   0.13559595   0.97196931
+854  1784.7300   675.0000  -425.0000   670.6511  -423.9018    92.5685   0.22964412   5.71951437  -0.19241636   0.12162161   0.97374749
+855  1784.7300   675.0000  -375.0000   670.6511  -374.2443    86.7400   0.22253957   5.77419710  -0.19272998   0.10754932   0.97534007
+856  1784.7300   675.0000  -325.0000   670.6511  -324.5073    81.6291   0.21609105   5.83252573  -0.19300622   0.09338969   0.97674304
+857  1784.7300   675.0000  -275.0000   670.6511  -274.7011    77.2402   0.21037526   5.89442730  -0.19324435   0.07915362   0.97795260
+858  1784.7300   675.0000  -225.0000   670.6511  -224.8361    73.5771   0.20546794   5.95971012  -0.19344382   0.06485217   0.97896564
+859  1763.2600   675.0000  -175.0000   670.6511  -174.9228    70.6428   0.20144072   6.02804422  -0.19360404   0.05049686   0.97977936
+860  1763.2600   675.0000  -125.0000   670.6511  -124.9719    68.4398   0.19835755   6.09895420  -0.19372460   0.03609944   0.98039156
+861  1763.2600   675.0000   -75.0000   670.6511   -74.9939    66.9702   0.19627079   6.17182541  -0.19380516   0.02167178   0.98080063
+862  1763.2600   675.0000   -25.0000   670.6511   -24.9998    66.2350   0.19521770   6.24592543  -0.19384547   0.00722600   0.98100549
+863  1763.2600   675.0000    25.0000   670.6511    24.9998    66.2350   0.19521770   0.03725966  -0.19384547  -0.00722596   0.98100549
+864  1763.2600   675.0000    75.0000   670.6511    74.9939    66.9702   0.19627079   0.11135989  -0.19380516  -0.02167178   0.98080063
+865  1763.2600   675.0000   125.0000   670.6511   124.9719    68.4398   0.19835755   0.18423110  -0.19372460  -0.03609944   0.98039156
+866  1763.2600   675.0000   175.0000   670.6511   174.9228    70.6428   0.20144072   0.25514099  -0.19360405  -0.05049684   0.97977936
+867  1784.7300   675.0000   225.0000   670.6511   224.8361    73.5771   0.20546794   0.32347497  -0.19344383  -0.06485213   0.97896564
+868  1784.7300   675.0000   275.0000   670.6511   274.7011    77.2402   0.21037526   0.38875782  -0.19324437  -0.07915359   0.97795260
+869  1784.7300   675.0000   325.0000   670.6511   324.5073    81.6291   0.21609105   0.45065975  -0.19300620  -0.09338972   0.97674304
+870  1784.7300   675.0000   375.0000   670.6511   374.2443    86.7400   0.22253957   0.50898832  -0.19272996  -0.10754935   0.97534007
+871  1784.7300   675.0000   425.0000   670.6511   423.9018    92.5685   0.22964412   0.56367075  -0.19241638  -0.12162158   0.97374749
+872  1805.4000   675.0000   475.0000   670.6511   473.4697    99.1098   0.23732954   0.61473155  -0.19206627  -0.13559593   0.97196931
+873  1805.4000   725.0000  -425.0000   719.6271  -423.9018   102.5817   0.24129471   5.75085068  -0.20589381   0.12128328   0.97102940
+874  1805.4000   725.0000  -375.0000   719.6271  -374.2443    96.7532   0.23459409   5.80362415  -0.20622747   0.10724925   0.97260875
+875  1784.7300   725.0000  -325.0000   719.6271  -324.5073    91.6424   0.22853206   5.85955143  -0.20652142   0.09312840   0.97399998
+876  1784.7300   725.0000  -275.0000   719.6271  -274.7011    87.2535   0.22317588   5.91852999  -0.20677483   0.07893156   0.97519946
+877  1784.7300   725.0000  -225.0000   719.6271  -224.8361    83.5904   0.21859103   5.98036051  -0.20698707   0.06466981   0.97620398
+878  1784.7300   725.0000  -175.0000   719.6271  -174.9228    80.6560   0.21483852   6.04473543  -0.20715752   0.05035468   0.97701085
+879  1784.7300   725.0000  -125.0000   719.6271  -124.9719    78.4531   0.21197213   6.11123800  -0.20728579   0.03599770   0.97761792
+880  1784.7300   725.0000   -75.0000   719.6271   -74.9939    76.9834   0.21003537   6.17934799  -0.20737149   0.02161063   0.97802353
+881  1784.7300   725.0000   -25.0000   719.6271   -24.9998    76.2482   0.20905904   6.24845934  -0.20741440   0.00720556   0.97822666
+882  1784.7300   725.0000    25.0000   719.6271    24.9998    76.2482   0.20905904   0.03472597  -0.20741440  -0.00720556   0.97822666
+883  1784.7300   725.0000    75.0000   719.6271    74.9939    76.9834   0.21003537   0.10383735  -0.20737149  -0.02161063   0.97802353
+884  1784.7300   725.0000   125.0000   719.6271   124.9719    78.4531   0.21197213   0.17194717  -0.20728581  -0.03599767   0.97761792
+885  1784.7300   725.0000   175.0000   719.6271   174.9228    80.6560   0.21483852   0.23844975  -0.20715752  -0.05035466   0.97701085
+886  1784.7300   725.0000   225.0000   719.6271   224.8361    83.5904   0.21859103   0.30282491  -0.20698707  -0.06466983   0.97620398
+887  1784.7300   725.0000   275.0000   719.6271   274.7011    87.2535   0.22317588   0.36465526  -0.20677483  -0.07893154   0.97519946
+888  1784.7300   725.0000   325.0000   719.6271   324.5073    91.6424   0.22853206   0.42363381  -0.20652142  -0.09312839   0.97399998
+889  1805.4000   725.0000   375.0000   719.6271   374.2443    96.7532   0.23459409   0.47956109  -0.20622748  -0.10724924   0.97260875
+890  1805.4000   725.0000   425.0000   719.6271   423.9018   102.5817   0.24129471   0.53233474  -0.20589380  -0.12128330   0.97102940
+891  1805.4000   775.0000  -375.0000   768.4574  -374.2443   107.4391   0.24671859   5.82998610  -0.21956913   0.10693168   0.96971905
+892  1805.4000   775.0000  -325.0000   768.4574  -324.5073   102.3282   0.24100770   5.88361740  -0.21988019   0.09285188   0.97109795
+893  1805.4000   775.0000  -275.0000   768.4574  -274.7011    97.9393   0.23597544   5.93987036  -0.22014837   0.07869666   0.97228676
+894  1805.4000   775.0000  -225.0000   768.4574  -224.8361    94.2762   0.23167872   5.99854851  -0.22037299   0.06447701   0.97328234
+895  1784.7300   775.0000  -175.0000   768.4574  -174.9228    91.3419   0.22816989   6.05937052  -0.22055343   0.05020422   0.97408199
+896  1784.7300   775.0000  -125.0000   768.4574  -124.9719    89.1389   0.22549459   6.12196970  -0.22068916   0.03589001   0.97468364
+897  1784.7300   775.0000   -75.0000   768.4574   -74.9939    87.6692   0.22368950   6.18590307  -0.22077985   0.02154597   0.97508568
+898  1784.7300   775.0000   -25.0000   768.4574   -24.9998    86.9341   0.22278035   6.25066423  -0.22082528   0.00718401   0.97528690
+899  1784.7300   775.0000    25.0000   768.4574    24.9998    86.9341   0.22278035   0.03252098  -0.22082528  -0.00718399   0.97528690
+900  1784.7300   775.0000    75.0000   768.4574    74.9939    87.6692   0.22368950   0.09728213  -0.22077985  -0.02154594   0.97508568
+901  1784.7300   775.0000   125.0000   768.4574   124.9719    89.1389   0.22549459   0.16121560  -0.22068916  -0.03589001   0.97468364
+902  1784.7300   775.0000   175.0000   768.4574   174.9228    91.3419   0.22816989   0.22381487  -0.22055343  -0.05020425   0.97408199
+903  1805.4000   775.0000   225.0000   768.4574   224.8361    94.2762   0.23167872   0.28463665  -0.22037300  -0.06447697   0.97328234
+904  1805.4000   775.0000   275.0000   768.4574   274.7011    97.9393   0.23597544   0.34331480  -0.22014838  -0.07869663   0.97228676
+905  1805.4000   775.0000   325.0000   768.4574   324.5073   102.3282   0.24100770   0.39956796  -0.21988019  -0.09285190   0.97109795
+906  1805.4000   775.0000   375.0000   768.4574   374.2443   107.4391   0.24671859   0.45319945  -0.21956910  -0.10693173   0.96971905
+907  1805.4000   825.0000  -325.0000   817.1337  -324.5073   113.6783   0.25348800   5.90515661  -0.23307531   0.09256090   0.96804357
+908  1805.4000   825.0000  -275.0000   817.1337  -274.7011   109.2895   0.24874869   5.95887804  -0.23335782   0.07844943   0.96922123
+909  1805.4000   825.0000  -225.0000   817.1337  -224.8361   105.6263   0.24471071   6.01467752  -0.23359440   0.06427404   0.97020745
+910  1805.4000   825.0000  -175.0000   817.1337  -174.9228   102.6920   0.24141937   6.07229948  -0.23378445   0.05004593   0.97099960
+911  1805.4000   825.0000  -125.0000   817.1337  -124.9719   100.4890   0.23891383   6.13142204  -0.23392744   0.03577669   0.97159559
+912  1805.4000   825.0000   -75.0000   817.1337   -74.9939    99.0194   0.23722523   6.19166470  -0.23402296   0.02147792   0.97199380
+913  1805.4000   825.0000   -25.0000   817.1337   -24.9998    98.2842   0.23637535   6.25260019  -0.23407079   0.00716132   0.97219318
+914  1805.4000   825.0000    25.0000   817.1337    24.9998    98.2842   0.23637535   0.03058496  -0.23407079  -0.00716128   0.97219318
+915  1805.4000   825.0000    75.0000   817.1337    74.9939    99.0194   0.23722523   0.09152039  -0.23402296  -0.02147787   0.97199380
+916  1805.4000   825.0000   125.0000   817.1337   124.9719   100.4890   0.23891383   0.15176336  -0.23392743  -0.03577671   0.97159559
+917  1805.4000   825.0000   175.0000   817.1337   174.9228   102.6920   0.24141937   0.21088590  -0.23378444  -0.05004594   0.97099960
+918  1805.4000   825.0000   225.0000   817.1337   224.8361   105.6263   0.24471071   0.26850766  -0.23359442  -0.06427401   0.97020745
+919  1805.4000   825.0000   275.0000   817.1337   274.7011   109.2895   0.24874869   0.32430717  -0.23335783  -0.07844941   0.96922123
+920  1805.4000   825.0000   325.0000   817.1337   324.5073   113.6783   0.25348800   0.37802872  -0.23307531  -0.09256091   0.96804357
+#@endcode
+#
+# $Log: not supported by cvs2svn $
+# Revision 1.2  1999/10/22 15:01:29  petry
+# version sent to H.K. and N.M. on Fri Oct 22 1999
+#
+# Revision 1.6  1999/02/15  10:12:44  gonzalez
+# Just maintenance
+#
+#
+#EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Data/magic.def.jc
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Data/magic.def.jc	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Data/magic.def.jc	(revision 4308)
@@ -0,0 +1,1029 @@
+###################################################-*-sh-*-##
+# MAGIC definition file
+# J C Gonzalez, 1998
+#############################################################
+# @file         magic.def
+# @title        MAGIC definition file
+# @description  MAGIC def. file to be used by {\tt reflector} and {\tt camera}
+# @author       J C Gonz\'alez
+# @email        gonzalez@mppmu.mpg.de
+#
+# @maintitle
+# @code
+#------------------------------------------------------------ 
+# MAGIC definition file
+# J C Gonzalez, 1998
+#------------------------------------------------------------
+#
+# type of definition file  (0: CT1, 1: MAGIC)
+#
+type  1
+#
+# focal distance [cm]
+#
+focal_distance      1700.0
+#
+# std(focal_distance) [cm]
+#
+focal_std           0.0
+#
+# point spread function [cm]
+#
+point_spread        0.5
+#
+# std(point spread function) [cm]
+#
+point_std           0.5
+#
+# std value of adjustment deviation [cm]
+#
+adjustment_dev      0.5
+#
+# black spot in the center of the mirror, radius [cm]
+#
+black_spot          0.5
+#
+# camera width [cm]
+#
+camera_width        1000.
+#
+# number of pixels in the camera 
+#   PIXELS = 3 x N x (N+1) + 1      (N=number of rings)
+#
+n_pixels 919
+#
+# pixel width (small diameter) [cm] 
+#
+pixel_width 3.0
+#
+# number of mirrors
+#
+n_mirrors 920
+#
+# radius of a single mirror
+#
+r_mirror 24.75
+#
+# this entry is followed by the def. of pixels, everything in [radians] or [cm]
+#
+#*  TYPE=0  (CT1)
+#*      i   s   rho   theta   x   y   z   thetan  phin  xn   yn   zn
+#* 
+#*       i : number of the mirror
+#*       s : arc length [cm]
+#*     rho : polar rho of the position of the center of the mirror [cm]
+#*   theta : polar angle of the position of the center of the mirror [cm]
+#*       x : x coordinate of the center of the mirror [cm]
+#*       y : y coordinate of the center of the mirror [cm]
+#*       z : z coordinate of the center of the mirror [cm]
+#*  thetan : polar theta angle of the direction where the mirror points to
+#*    phin : polar phi angle of the direction where the mirror points to
+#*      xn : xn coordinate of the normal vector in the center (normalized)
+#*      yn : yn coordinate of the normal vector in the center (normalized)
+#*      zn : zn coordinate of the normal vector in the center (normalized)
+#* 
+#*  TYPE=1  (MAGIC)
+#*      i  f   sx   sy   x   y   z   thetan  phin 
+#* 
+#*       i : number of the mirror
+#*       f : focal distance of that mirror
+#*      sx : curvilinear coordinate of mirror's center in X[cm]
+#*      sy : curvilinear coordinate of mirror's center in X[cm]
+#*       x : x coordinate of the center of the mirror [cm]
+#*       y : y coordinate of the center of the mirror [cm]
+#*       z : z coordinate of the center of the mirror [cm]
+#*  thetan : polar theta angle of the direction where the mirror points to
+#*    phin : polar phi angle of the direction where the mirror points to
+#*      xn : xn coordinate of the normal vector in the center (normalized)
+#*      yn : yn coordinate of the normal vector in the center (normalized)
+#*      zn : zn coordinate of the normal vector in the center (normalized)
+#
+define_mirrors
+  1  1805.4000  -825.0000  -325.0000  -817.1337  -324.5073   113.6783   0.25348800   3.51962137   0.23307531   0.09256091   0.96804357
+  2  1805.4000  -825.0000  -275.0000  -817.1337  -274.7011   109.2895   0.24874869   3.46589971   0.23335783   0.07844938   0.96922123
+  3  1805.4000  -825.0000  -225.0000  -817.1337  -224.8361   105.6263   0.24471071   3.41010022   0.23359442   0.06427398   0.97020745
+  4  1805.4000  -825.0000  -175.0000  -817.1337  -174.9228   102.6920   0.24141937   3.35247850   0.23378445   0.05004594   0.97099960
+  5  1805.4000  -825.0000  -125.0000  -817.1337  -124.9719   100.4890   0.23891383   3.29335594   0.23392743   0.03577669   0.97159559
+  6  1805.4000  -825.0000   -75.0000  -817.1337   -74.9939    99.0194   0.23722523   3.23311305   0.23402296   0.02147787   0.97199380
+  7  1805.4000  -825.0000   -25.0000  -817.1337   -24.9998    98.2842   0.23637535   3.17217755   0.23407079   0.00716126   0.97219318
+  8  1805.4000  -825.0000    25.0000  -817.1337    24.9998    98.2842   0.23637535   3.11100769   0.23407079  -0.00716128   0.97219318
+  9  1805.4000  -825.0000    75.0000  -817.1337    74.9939    99.0194   0.23722523   3.05007219   0.23402296  -0.02147789   0.97199380
+ 10  1805.4000  -825.0000   125.0000  -817.1337   124.9719   100.4890   0.23891383   2.98982930   0.23392743  -0.03577670   0.97159559
+ 11  1805.4000  -825.0000   175.0000  -817.1337   174.9228   102.6920   0.24141937   2.93070674   0.23378444  -0.05004595   0.97099960
+ 12  1805.4000  -825.0000   225.0000  -817.1337   224.8361   105.6263   0.24471071   2.87308502   0.23359442  -0.06427400   0.97020745
+ 13  1805.4000  -825.0000   275.0000  -817.1337   274.7011   109.2895   0.24874869   2.81728554   0.23335783  -0.07844939   0.96922123
+ 14  1805.4000  -825.0000   325.0000  -817.1337   324.5073   113.6783   0.25348800   2.76356387   0.23307531  -0.09256092   0.96804357
+ 15  1805.4000  -775.0000  -375.0000  -768.4574  -374.2443   107.4391   0.24671859   3.59479213   0.21956910   0.10693174   0.96971905
+ 16  1805.4000  -775.0000  -325.0000  -768.4574  -324.5073   102.3282   0.24100770   3.54116058   0.21988019   0.09285189   0.97109795
+ 17  1805.4000  -775.0000  -275.0000  -768.4574  -274.7011    97.9393   0.23597544   3.48490739   0.22014838   0.07869662   0.97228676
+ 18  1805.4000  -775.0000  -225.0000  -768.4574  -224.8361    94.2762   0.23167872   3.42622924   0.22037300   0.06447696   0.97328234
+ 19  1784.7300  -775.0000  -175.0000  -768.4574  -174.9228    91.3419   0.22816989   3.36540747   0.22055343   0.05020423   0.97408199
+ 20  1784.7300  -775.0000  -125.0000  -768.4574  -124.9719    89.1389   0.22549459   3.30280828   0.22068916   0.03589002   0.97468364
+ 21  1784.7300  -775.0000   -75.0000  -768.4574   -74.9939    87.6692   0.22368950   3.23887467   0.22077985   0.02154592   0.97508568
+ 22  1784.7300  -775.0000   -25.0000  -768.4574   -24.9998    86.9341   0.22278035   3.17411351   0.22082528   0.00718396   0.97528690
+ 23  1784.7300  -775.0000    25.0000  -768.4574    24.9998    86.9341   0.22278035   3.10907173   0.22082528  -0.00718397   0.97528690
+ 24  1784.7300  -775.0000    75.0000  -768.4574    74.9939    87.6692   0.22368950   3.04431057   0.22077985  -0.02154594   0.97508568
+ 25  1784.7300  -775.0000   125.0000  -768.4574   124.9719    89.1389   0.22549459   2.98037696   0.22068916  -0.03589003   0.97468364
+ 26  1784.7300  -775.0000   175.0000  -768.4574   174.9228    91.3419   0.22816989   2.91777778   0.22055343  -0.05020425   0.97408199
+ 27  1805.4000  -775.0000   225.0000  -768.4574   224.8361    94.2762   0.23167872   2.85695601   0.22037300  -0.06447697   0.97328234
+ 28  1805.4000  -775.0000   275.0000  -768.4574   274.7011    97.9393   0.23597544   2.79827785   0.22014838  -0.07869663   0.97228676
+ 29  1805.4000  -775.0000   325.0000  -768.4574   324.5073   102.3282   0.24100770   2.74202466   0.21988019  -0.09285191   0.97109795
+ 30  1805.4000  -775.0000   375.0000  -768.4574   374.2443   107.4391   0.24671859   2.68839312   0.21956909  -0.10693175   0.96971905
+ 31  1805.4000  -725.0000  -425.0000  -719.6271  -423.9018   102.5817   0.24129471   3.67392731   0.20589381   0.12128329   0.97102940
+ 32  1805.4000  -725.0000  -375.0000  -719.6271  -374.2443    96.7532   0.23459409   3.62115359   0.20622750   0.10724921   0.97260875
+ 33  1784.7300  -725.0000  -325.0000  -719.6271  -324.5073    91.6424   0.22853206   3.56522632   0.20652144   0.09312835   0.97399998
+ 34  1784.7300  -725.0000  -275.0000  -719.6271  -274.7011    87.2535   0.22317588   3.50624776   0.20677485   0.07893151   0.97519946
+ 35  1784.7300  -725.0000  -225.0000  -719.6271  -224.8361    83.5904   0.21859103   3.44441748   0.20698707   0.06466982   0.97620398
+ 36  1784.7300  -725.0000  -175.0000  -719.6271  -174.9228    80.6560   0.21483852   3.38004231   0.20715754   0.05035464   0.97701085
+ 37  1784.7300  -725.0000  -125.0000  -719.6271  -124.9719    78.4531   0.21197213   3.31353974   0.20728581   0.03599766   0.97761792
+ 38  1784.7300  -725.0000   -75.0000  -719.6271   -74.9939    76.9834   0.21003537   3.24542999   0.20737149   0.02161063   0.97802353
+ 39  1784.7300  -725.0000   -25.0000  -719.6271   -24.9998    76.2482   0.20905904   3.17631865   0.20741440   0.00720557   0.97822666
+ 40  1784.7300  -725.0000    25.0000  -719.6271    24.9998    76.2482   0.20905904   3.10686660   0.20741440  -0.00720558   0.97822666
+ 41  1784.7300  -725.0000    75.0000  -719.6271    74.9939    76.9834   0.21003537   3.03775525   0.20737149  -0.02161064   0.97802353
+ 42  1784.7300  -725.0000   125.0000  -719.6271   124.9719    78.4531   0.21197213   2.96964550   0.20728581  -0.03599767   0.97761792
+ 43  1784.7300  -725.0000   175.0000  -719.6271   174.9228    80.6560   0.21483852   2.90314293   0.20715752  -0.05035465   0.97701085
+ 44  1784.7300  -725.0000   225.0000  -719.6271   224.8361    83.5904   0.21859103   2.83876777   0.20698707  -0.06466983   0.97620398
+ 45  1784.7300  -725.0000   275.0000  -719.6271   274.7011    87.2535   0.22317588   2.77693748   0.20677483  -0.07893153   0.97519946
+ 46  1784.7300  -725.0000   325.0000  -719.6271   324.5073    91.6424   0.22853206   2.71795893   0.20652144  -0.09312837   0.97399998
+ 47  1805.4000  -725.0000   375.0000  -719.6271   374.2443    96.7532   0.23459409   2.66203165   0.20622748  -0.10724922   0.97260875
+ 48  1805.4000  -725.0000   425.0000  -719.6271   423.9018   102.5817   0.24129471   2.60925794   0.20589380  -0.12128329   0.97102940
+ 49  1805.4000  -675.0000  -475.0000  -670.6511  -473.4697    99.1098   0.23732954   3.75632405   0.19206630   0.13559590   0.97196931
+ 50  1784.7300  -675.0000  -425.0000  -670.6511  -423.9018    92.5685   0.22964412   3.70526338   0.19241638   0.12162157   0.97374749
+ 51  1784.7300  -675.0000  -375.0000  -670.6511  -374.2443    86.7400   0.22253957   3.65058088   0.19272998   0.10754933   0.97534007
+ 52  1784.7300  -675.0000  -325.0000  -670.6511  -324.5073    81.6291   0.21609105   3.59225225   0.19300622   0.09338970   0.97674304
+ 53  1784.7300  -675.0000  -275.0000  -670.6511  -274.7011    77.2402   0.21037526   3.53035045   0.19324437   0.07915358   0.97795260
+ 54  1784.7300  -675.0000  -225.0000  -670.6511  -224.8361    73.5771   0.20546794   3.46506763   0.19344383   0.06485213   0.97896564
+ 55  1763.2600  -675.0000  -175.0000  -670.6511  -174.9228    70.6428   0.20144072   3.39673352   0.19360405   0.05049682   0.97977936
+ 56  1763.2600  -675.0000  -125.0000  -670.6511  -124.9719    68.4398   0.19835755   3.32582378   0.19372460   0.03609945   0.98039156
+ 57  1763.2600  -675.0000   -75.0000  -670.6511   -74.9939    66.9702   0.19627079   3.25295258   0.19380516   0.02167179   0.98080063
+ 58  1763.2600  -675.0000   -25.0000  -670.6511   -24.9998    66.2350   0.19521770   3.17885232   0.19384547   0.00722596   0.98100549
+ 59  1763.2600  -675.0000    25.0000  -670.6511    24.9998    66.2350   0.19521770   3.10433292   0.19384547  -0.00722597   0.98100549
+ 60  1763.2600  -675.0000    75.0000  -670.6511    74.9939    66.9702   0.19627079   3.03023267   0.19380516  -0.02167180   0.98080063
+ 61  1763.2600  -675.0000   125.0000  -670.6511   124.9719    68.4398   0.19835755   2.95736146   0.19372459  -0.03609946   0.98039156
+ 62  1763.2600  -675.0000   175.0000  -670.6511   174.9228    70.6428   0.20144072   2.88645172   0.19360405  -0.05049683   0.97977936
+ 63  1784.7300  -675.0000   225.0000  -670.6511   224.8361    73.5771   0.20546794   2.81811762   0.19344382  -0.06485214   0.97896564
+ 64  1784.7300  -675.0000   275.0000  -670.6511   274.7011    77.2402   0.21037526   2.75283480   0.19324437  -0.07915360   0.97795260
+ 65  1784.7300  -675.0000   325.0000  -670.6511   324.5073    81.6291   0.21609105   2.69093299   0.19300622  -0.09338970   0.97674304
+ 66  1784.7300  -675.0000   375.0000  -670.6511   374.2443    86.7400   0.22253957   2.63260436   0.19272998  -0.10754934   0.97534007
+ 67  1784.7300  -675.0000   425.0000  -670.6511   423.9018    92.5685   0.22964412   2.57792187   0.19241638  -0.12162159   0.97374749
+ 68  1805.4000  -675.0000   475.0000  -670.6511   473.4697    99.1098   0.23732954   2.52686119   0.19206628  -0.13559592   0.97196931
+ 69  1805.4000  -625.0000  -525.0000  -621.5383  -522.9382    97.0256   0.23491217   3.84104991   0.17810416   0.14984991   0.97253478
+ 70  1784.7300  -625.0000  -475.0000  -621.5383  -473.4697    89.7770   0.22627315   3.79258442   0.17846446   0.13594896   0.97450930
+ 71  1784.7300  -625.0000  -425.0000  -621.5383  -423.9018    83.2357   0.21814133   3.74014950   0.17879148   0.12193942   0.97630137
+ 72  1784.7300  -625.0000  -375.0000  -621.5383  -374.2443    77.4072   0.21059583   3.68357372   0.17908439   0.10783131   0.97790653
+ 73  1784.7300  -625.0000  -325.0000  -621.5383  -324.5073    72.2963   0.20372099   3.62276626   0.17934240   0.09363528   0.97932053
+ 74  1763.2600  -625.0000  -275.0000  -621.5383  -274.7011    67.9074   0.19760442   3.55774856   0.17956488   0.07936224   0.98053968
+ 75  1763.2600  -625.0000  -225.0000  -621.5383  -224.8361    64.2443   0.19233420   3.48868895   0.17975120   0.06502344   0.98156071
+ 76  1763.2600  -625.0000  -175.0000  -621.5383  -174.9228    61.3100   0.18799514   3.41593170   0.17990088   0.05063044   0.98238093
+ 77  1763.2600  -625.0000  -125.0000  -621.5383  -124.9719    59.1070   0.18466403   3.34001541   0.18001349   0.03619504   0.98299801
+ 78  1763.2600  -625.0000   -75.0000  -621.5383   -74.9939    57.6373   0.18240470   3.26167059   0.18008873   0.02172922   0.98341036
+ 79  1763.2600  -625.0000   -25.0000  -621.5383   -24.9998    56.9022   0.18126303   3.18179345   0.18012640   0.00724513   0.98361677
+ 80  1763.2600  -625.0000    25.0000  -621.5383    24.9998    56.9022   0.18126303   3.10139179   0.18012640  -0.00724514   0.98361677
+ 81  1763.2600  -625.0000    75.0000  -621.5383    74.9939    57.6373   0.18240470   3.02151465   0.18008873  -0.02172923   0.98341036
+ 82  1763.2600  -625.0000   125.0000  -621.5383   124.9719    59.1070   0.18466403   2.94316983   0.18001349  -0.03619505   0.98299801
+ 83  1763.2600  -625.0000   175.0000  -621.5383   174.9228    61.3100   0.18799514   2.86725354   0.17990088  -0.05063045   0.98238093
+ 84  1763.2600  -625.0000   225.0000  -621.5383   224.8361    64.2443   0.19233420   2.79449630   0.17975120  -0.06502345   0.98156071
+ 85  1763.2600  -625.0000   275.0000  -621.5383   274.7011    67.9074   0.19760442   2.72543669   0.17956486  -0.07936225   0.98053968
+ 86  1784.7300  -625.0000   325.0000  -621.5383   324.5073    72.2963   0.20372099   2.66041899   0.17934239  -0.09363530   0.97932053
+ 87  1784.7300  -625.0000   375.0000  -621.5383   374.2443    77.4072   0.21059583   2.59961152   0.17908438  -0.10783133   0.97790653
+ 88  1784.7300  -625.0000   425.0000  -621.5383   423.9018    83.2357   0.21814133   2.54303575   0.17879148  -0.12193943   0.97630137
+ 89  1784.7300  -625.0000   475.0000  -621.5383   473.4697    89.7770   0.22627315   2.49060082   0.17846446  -0.13594897   0.97450930
+ 90  1805.4000  -625.0000   525.0000  -621.5383   522.9382    97.0256   0.23491217   2.44213533   0.17810416  -0.14984991   0.97253478
+ 91  1805.4000  -575.0000  -575.0000  -572.2976  -572.2976    96.3307   0.23409981   3.92699075   0.16402575   0.16402574   0.97272354
+ 92  1784.7300  -575.0000  -525.0000  -572.2976  -522.9382    88.3807   0.22456542   3.88195372   0.16438995   0.15021163   0.97489095
+ 93  1784.7300  -575.0000  -475.0000  -572.2976  -473.4697    81.1321   0.21545230   3.83276772   0.16472411   0.13627850   0.97687978
+ 94  1784.7300  -575.0000  -425.0000  -572.2976  -423.9018    74.5908   0.20683894   3.77911615   0.16502742   0.12223607   0.97868496
+ 95  1763.2600  -575.0000  -375.0000  -572.2976  -374.2443    68.7622   0.19881210   3.72072768   0.16529909   0.10809451   0.98030186
+ 96  1763.2600  -575.0000  -325.0000  -572.2976  -324.5073    63.6514   0.19146617   3.65741301   0.16553843   0.09386446   0.98172629
+ 97  1763.2600  -575.0000  -275.0000  -572.2976  -274.7011    59.2625   0.18490130   3.58911014   0.16574478   0.07955699   0.98295438
+ 98  1763.2600  -575.0000  -225.0000  -572.2976  -224.8361    55.5994   0.17922038   3.51593351   0.16591761   0.06518330   0.98398298
+ 99  1763.2600  -575.0000  -175.0000  -572.2976  -174.9228    52.6651   0.17452455   3.43822479   0.16605644   0.05075514   0.98480922
+100  1745.0699  -575.0000  -125.0000  -572.2976  -124.9719    50.4621   0.17090724   3.35658646   0.16616090   0.03628434   0.98543090
+101  1745.0699  -575.0000   -75.0000  -572.2976   -74.9939    48.9924   0.16844730   3.27189016   0.16623069   0.02178286   0.98584628
+102  1745.0699  -575.0000   -25.0000  -572.2976   -24.9998    48.2573   0.16720217   3.18524814   0.16626564   0.00726302   0.98605424
+103  1745.0699  -575.0000    25.0000  -572.2976    24.9998    48.2573   0.16720217   3.09793711   0.16626564  -0.00726303   0.98605424
+104  1745.0699  -575.0000    75.0000  -572.2976    74.9939    48.9924   0.16844730   3.01129508   0.16623069  -0.02178287   0.98584628
+105  1745.0699  -575.0000   125.0000  -572.2976   124.9719    50.4621   0.17090724   2.92659879   0.16616090  -0.03628435   0.98543090
+106  1763.2600  -575.0000   175.0000  -572.2976   174.9228    52.6651   0.17452455   2.84496045   0.16605642  -0.05075515   0.98480922
+107  1763.2600  -575.0000   225.0000  -572.2976   224.8361    55.5994   0.17922038   2.76725173   0.16591761  -0.06518332   0.98398298
+108  1763.2600  -575.0000   275.0000  -572.2976   274.7011    59.2625   0.18490130   2.69407511   0.16574477  -0.07955699   0.98295438
+109  1763.2600  -575.0000   325.0000  -572.2976   324.5073    63.6514   0.19146617   2.62577224   0.16553843  -0.09386447   0.98172629
+110  1763.2600  -575.0000   375.0000  -572.2976   374.2443    68.7622   0.19881210   2.56245756   0.16529909  -0.10809452   0.98030186
+111  1784.7300  -575.0000   425.0000  -572.2976   423.9018    74.5908   0.20683894   2.50406909   0.16502741  -0.12223608   0.97868496
+112  1784.7300  -575.0000   475.0000  -572.2976   473.4697    81.1321   0.21545230   2.45041752   0.16472411  -0.13627850   0.97687978
+113  1784.7300  -575.0000   525.0000  -572.2976   522.9382    88.3807   0.22456542   2.40123153   0.16438995  -0.15021163   0.97489095
+114  1805.4000  -575.0000   575.0000  -572.2976   572.2976    96.3307   0.23409981   2.35619450   0.16402575  -0.16402575   0.97272354
+115  1805.4000  -525.0000  -625.0000  -522.9382  -621.5383    97.0256   0.23491217   4.01293182   0.14984988   0.17810418   0.97253478
+116  1784.7300  -525.0000  -575.0000  -522.9382  -572.2976    88.3807   0.22456542   3.97202778   0.15021165   0.16438994   0.97489095
+117  1784.7300  -525.0000  -525.0000  -522.9382  -522.9382    80.4307   0.21454726   3.92699075   0.15054664   0.15054663   0.97707289
+118  1784.7300  -525.0000  -475.0000  -522.9382  -473.4697    73.1821   0.20493087   3.87738466   0.15085404   0.13658366   0.97907507
+119  1763.2600  -525.0000  -425.0000  -522.9382  -423.9018    66.6407   0.19579971   3.82277298   0.15113308   0.12251080   0.98089242
+120  1763.2600  -525.0000  -375.0000  -522.9382  -374.2443    60.8122   0.18724811   3.76274943   0.15138298   0.10833827   0.98252022
+121  1763.2600  -525.0000  -325.0000  -522.9382  -324.5073    55.7014   0.17938119   3.69698286   0.15160316   0.09407678   0.98395431
+122  1745.0699  -525.0000  -275.0000  -522.9382  -274.7011    51.3125   0.17231330   3.62527728   0.15179302   0.07973735   0.98519075
+123  1745.0699  -525.0000  -225.0000  -522.9382  -224.8361    47.6494   0.16616496   3.54764652   0.15195203   0.06533141   0.98622632
+124  1745.0699  -525.0000  -175.0000  -522.9382  -174.9228    44.7151   0.16105770   3.46439266   0.15207973   0.05087064   0.98705822
+125  1745.0699  -525.0000  -125.0000  -522.9382  -124.9719    42.5121   0.15710649   3.37617326   0.15217583   0.03636703   0.98768413
+126  1745.0699  -525.0000   -75.0000  -522.9382   -74.9939    41.0424   0.15441042   3.28403020   0.15224004   0.02183255   0.98810238
+127  1745.0699  -525.0000   -25.0000  -522.9382   -24.9998    40.3073   0.15304284   3.18936253   0.15227219   0.00727956   0.98831177
+128  1745.0699  -525.0000    25.0000  -522.9382    24.9998    40.3073   0.15304284   3.09382272   0.15227219  -0.00727957   0.98831177
+129  1745.0699  -525.0000    75.0000  -522.9382    74.9939    41.0424   0.15441042   2.99915504   0.15224004  -0.02183256   0.98810238
+130  1745.0699  -525.0000   125.0000  -522.9382   124.9719    42.5121   0.15710649   2.90701199   0.15217581  -0.03636704   0.98768413
+131  1745.0699  -525.0000   175.0000  -522.9382   174.9228    44.7151   0.16105770   2.81879258   0.15207973  -0.05087065   0.98705822
+132  1745.0699  -525.0000   225.0000  -522.9382   224.8361    47.6494   0.16616496   2.73553872   0.15195201  -0.06533142   0.98622632
+133  1745.0699  -525.0000   275.0000  -522.9382   274.7011    51.3125   0.17231330   2.65790796   0.15179302  -0.07973737   0.98519075
+134  1763.2600  -525.0000   325.0000  -522.9382   324.5073    55.7014   0.17938119   2.58620238   0.15160315  -0.09407678   0.98395431
+135  1763.2600  -525.0000   375.0000  -522.9382   374.2443    60.8122   0.18724811   2.52043581   0.15138298  -0.10833827   0.98252022
+136  1763.2600  -525.0000   425.0000  -522.9382   423.9018    66.6407   0.19579971   2.46041226   0.15113306  -0.12251081   0.98089242
+137  1784.7300  -525.0000   475.0000  -522.9382   473.4697    73.1821   0.20493087   2.40580058   0.15085404  -0.13658367   0.97907507
+138  1784.7300  -525.0000   525.0000  -522.9382   522.9382    80.4307   0.21454726   2.35619450   0.15054664  -0.15054664   0.97707289
+139  1784.7300  -525.0000   575.0000  -522.9382   572.2976    88.3807   0.22456542   2.31115746   0.15021163  -0.16438994   0.97489095
+140  1805.4000  -525.0000   625.0000  -522.9382   621.5383    97.0256   0.23491217   2.27025366   0.14984992  -0.17810415   0.97253478
+141  1805.4000  -475.0000  -675.0000  -473.4697  -670.6511    99.1098   0.23732954   4.09765768   0.13559589   0.19206630   0.97196931
+142  1784.7300  -475.0000  -625.0000  -473.4697  -621.5383    89.7770   0.22627315   4.06139708   0.13594899   0.17846444   0.97450930
+143  1784.7300  -475.0000  -575.0000  -473.4697  -572.2976    81.1321   0.21545230   4.02121401   0.13627848   0.16472413   0.97687978
+144  1784.7300  -475.0000  -525.0000  -473.4697  -522.9382    73.1821   0.20493087   3.97659683   0.13658367   0.15085402   0.97907507
+145  1763.2600  -475.0000  -475.0000  -473.4697  -473.4697    65.9334   0.19478387   3.92699075   0.13686371   0.13686368   0.98108953
+146  1763.2600  -475.0000  -425.0000  -473.4697  -423.9018    59.3921   0.18509875   3.87180996   0.13711791   0.12276289   0.98291808
+147  1763.2600  -475.0000  -375.0000  -473.4697  -374.2443    53.5636   0.17597687   3.81047034   0.13734560   0.10856195   0.98455596
+148  1745.0699  -475.0000  -325.0000  -473.4697  -324.5073    48.4527   0.16753416   3.74243975   0.13754618   0.09427155   0.98599893
+149  1745.0699  -475.0000  -275.0000  -473.4697  -274.7011    44.0639   0.15990058   3.66731644   0.13771912   0.07990286   0.98724312
+150  1745.0699  -475.0000  -225.0000  -473.4697  -224.8361    40.4007   0.15321741   3.58493400   0.13786398   0.06546731   0.98828518
+151  1745.0699  -475.0000  -175.0000  -473.4697  -174.9228    37.4664   0.14763157   3.49548769   0.13798034   0.05097668   0.98912221
+152  1730.0601  -475.0000  -125.0000  -473.4697  -124.9719    35.2635   0.14328626   3.39965606   0.13806790   0.03644288   0.98975205
+153  1730.0601  -475.0000   -75.0000  -473.4697   -74.9939    33.7938   0.14030823   3.29867983   0.13812639   0.02187814   0.99017292
+154  1730.0601  -475.0000   -25.0000  -473.4697   -24.9998    33.0586   0.13879332   3.19434476   0.13815568   0.00729477   0.99038368
+155  1730.0601  -475.0000    25.0000  -473.4697    24.9998    33.0586   0.13879332   3.08884048   0.13815568  -0.00729478   0.99038368
+156  1730.0601  -475.0000    75.0000  -473.4697    74.9939    33.7938   0.14030823   2.98450541   0.13812639  -0.02187815   0.99017292
+157  1730.0601  -475.0000   125.0000  -473.4697   124.9719    35.2635   0.14328626   2.88352919   0.13806790  -0.03644289   0.98975205
+158  1745.0699  -475.0000   175.0000  -473.4697   174.9228    37.4664   0.14763157   2.78769755   0.13798034  -0.05097669   0.98912221
+159  1745.0699  -475.0000   225.0000  -473.4697   224.8361    40.4007   0.15321741   2.69825125   0.13786398  -0.06546732   0.98828518
+160  1745.0699  -475.0000   275.0000  -473.4697   274.7011    44.0639   0.15990058   2.61586881   0.13771912  -0.07990287   0.98724312
+161  1745.0699  -475.0000   325.0000  -473.4697   324.5073    48.4527   0.16753416   2.54074550   0.13754617  -0.09427156   0.98599893
+162  1763.2600  -475.0000   375.0000  -473.4697   374.2443    53.5636   0.17597687   2.47271490   0.13734558  -0.10856196   0.98455596
+163  1763.2600  -475.0000   425.0000  -473.4697   423.9018    59.3921   0.18509875   2.41137528   0.13711789  -0.12276290   0.98291808
+164  1763.2600  -475.0000   475.0000  -473.4697   473.4697    65.9334   0.19478387   2.35619450   0.13686369  -0.13686369   0.98108953
+165  1784.7300  -475.0000   525.0000  -473.4697   522.9382    73.1821   0.20493087   2.30658841   0.13658367  -0.15085404   0.97907507
+166  1784.7300  -475.0000   575.0000  -473.4697   572.2976    81.1321   0.21545230   2.26197147   0.13627850  -0.16472411   0.97687978
+167  1784.7300  -475.0000   625.0000  -473.4697   621.5383    89.7770   0.22627315   2.22178817   0.13594897  -0.17846446   0.97450930
+168  1805.4000  -475.0000   675.0000  -473.4697   670.6511    99.1098   0.23732954   2.18552780   0.13559592  -0.19206628   0.97196931
+169  1805.4000  -425.0000  -725.0000  -423.9018  -719.6271   102.5817   0.24129471   4.18005419   0.12128332   0.20589380   0.97102940
+170  1784.7300  -425.0000  -675.0000  -423.9018  -670.6511    92.5685   0.22964412   4.14871836   0.12162155   0.19241640   0.97374749
+171  1784.7300  -425.0000  -625.0000  -423.9018  -621.5383    83.2357   0.21814133   4.11383200   0.12193944   0.17879146   0.97630137
+172  1784.7300  -425.0000  -575.0000  -423.9018  -572.2976    74.5908   0.20683894   4.07486534   0.12223609   0.16502739   0.97868496
+173  1763.2600  -425.0000  -525.0000  -423.9018  -522.9382    66.6407   0.19579971   4.03120852   0.12251082   0.15113306   0.98089242
+174  1763.2600  -425.0000  -475.0000  -423.9018  -473.4697    59.3921   0.18509875   3.98217154   0.12276290   0.13711789   0.98291808
+175  1763.2600  -425.0000  -425.0000  -423.9018  -423.9018    52.8508   0.17482582   3.92699075   0.12299177   0.12299175   0.98475683
+176  1745.0699  -425.0000  -375.0000  -423.9018  -374.2443    47.0223   0.16508774   3.86485481   0.12319676   0.10876501   0.98640394
+177  1745.0699  -425.0000  -325.0000  -423.9018  -324.5073    41.9114   0.15601057   3.79495573   0.12337735   0.09444840   0.98785502
+178  1745.0699  -425.0000  -275.0000  -423.9018  -274.7011    37.5226   0.14774057   3.71658182   0.12353308   0.08005315   0.98910618
+179  1730.0601  -425.0000  -225.0000  -423.9018  -224.8361    33.8594   0.14044267   3.62926078   0.12366351   0.06559070   0.99015415
+180  1730.0601  -425.0000  -175.0000  -423.9018  -174.9228    30.9251   0.13429515   3.53295588   0.12376827   0.05107290   0.99099594
+181  1730.0601  -425.0000  -125.0000  -423.9018  -124.9719    28.7222   0.12947854   3.42828417   0.12384712   0.03651177   0.99162936
+182  1730.0601  -425.0000   -75.0000  -423.9018   -74.9939    27.2525   0.12615816   3.31669426   0.12389979   0.02191953   0.99205261
+183  1730.0601  -425.0000   -25.0000  -423.9018   -24.9998    26.5173   0.12446258   3.20049977   0.12392616   0.00730859   0.99226451
+184  1730.0601  -425.0000    25.0000  -423.9018    24.9998    26.5173   0.12446258   3.08268547   0.12392616  -0.00730860   0.99226451
+185  1730.0601  -425.0000    75.0000  -423.9018    74.9939    27.2525   0.12615816   2.96649098   0.12389978  -0.02191954   0.99205261
+186  1730.0601  -425.0000   125.0000  -423.9018   124.9719    28.7222   0.12947854   2.85490108   0.12384711  -0.03651178   0.99162936
+187  1730.0601  -425.0000   175.0000  -423.9018   174.9228    30.9251   0.13429515   2.75022936   0.12376826  -0.05107291   0.99099594
+188  1730.0601  -425.0000   225.0000  -423.9018   224.8361    33.8594   0.14044267   2.65392447   0.12366351  -0.06559071   0.99015415
+189  1745.0699  -425.0000   275.0000  -423.9018   274.7011    37.5226   0.14774057   2.56660342   0.12353307  -0.08005316   0.98910618
+190  1745.0699  -425.0000   325.0000  -423.9018   324.5073    41.9114   0.15601057   2.48822951   0.12337734  -0.09444841   0.98785502
+191  1745.0699  -425.0000   375.0000  -423.9018   374.2443    47.0223   0.16508774   2.41833043   0.12319675  -0.10876501   0.98640394
+192  1763.2600  -425.0000   425.0000  -423.9018   423.9018    52.8508   0.17482582   2.35619450   0.12299176  -0.12299176   0.98475683
+193  1763.2600  -425.0000   475.0000  -423.9018   473.4697    59.3921   0.18509875   2.30101371   0.12276290  -0.13711789   0.98291808
+194  1763.2600  -425.0000   525.0000  -423.9018   522.9382    66.6407   0.19579971   2.25197673   0.12251081  -0.15113306   0.98089242
+195  1784.7300  -425.0000   575.0000  -423.9018   572.2976    74.5908   0.20683894   2.20831990   0.12223608  -0.16502741   0.97868496
+196  1784.7300  -425.0000   625.0000  -423.9018   621.5383    83.2357   0.21814133   2.16935325   0.12193943  -0.17879148   0.97630137
+197  1784.7300  -425.0000   675.0000  -423.9018   670.6511    92.5685   0.22964412   2.13446712   0.12162159  -0.19241638   0.97374749
+198  1805.4000  -425.0000   725.0000  -423.9018   719.6271   102.5817   0.24129471   2.10313106   0.12128330  -0.20589380   0.97102940
+199  1805.4000  -375.0000  -775.0000  -374.2443  -768.4574   107.4391   0.24671859   4.25918961   0.10693172   0.21956910   0.96971905
+200  1805.4000  -375.0000  -725.0000  -374.2443  -719.6271    96.7532   0.23459409   4.23282814   0.10724919   0.20622751   0.97260875
+201  1784.7300  -375.0000  -675.0000  -374.2443  -670.6511    86.7400   0.22253957   4.20340061   0.10754935   0.19272996   0.97534007
+202  1784.7300  -375.0000  -625.0000  -374.2443  -621.5383    77.4072   0.21059583   4.17040777   0.10783134   0.17908438   0.97790653
+203  1763.2600  -375.0000  -575.0000  -374.2443  -572.2976    68.7622   0.19881210   4.13325405   0.10809449   0.16529910   0.98030186
+204  1763.2600  -375.0000  -525.0000  -374.2443  -522.9382    60.8122   0.18724811   4.09123230   0.10833825   0.15138300   0.98252022
+205  1763.2600  -375.0000  -475.0000  -374.2443  -473.4697    53.5636   0.17597687   4.04351139   0.10856193   0.13734560   0.98455596
+206  1745.0699  -375.0000  -425.0000  -374.2443  -423.9018    47.0223   0.16508774   3.98912668   0.10876502   0.12319674   0.98640394
+207  1745.0699  -375.0000  -375.0000  -374.2443  -374.2443    41.1938   0.15469038   3.92699075   0.10894691   0.10894690   0.98805928
+208  1730.0601  -375.0000  -325.0000  -374.2443  -324.5073    36.0829   0.14491870   3.85593081   0.10910714   0.09460682   0.98951763
+209  1730.0601  -375.0000  -275.0000  -374.2443  -274.7011    31.6941   0.13593437   3.77478480   0.10924534   0.08018775   0.99077517
+210  1730.0601  -375.0000  -225.0000  -374.2443  -224.8361    28.0309   0.12792800   3.68258071   0.10936105   0.06570122   0.99182838
+211  1730.0601  -375.0000  -175.0000  -374.2443  -174.9228    25.0966   0.12111574   3.57882404   0.10945402   0.05115911   0.99267447
+212  1718.1400  -375.0000  -125.0000  -374.2443  -124.9719    22.8936   0.11572728   3.46388125   0.10952397   0.03657348   0.99331105
+213  1718.1400  -375.0000   -75.0000  -374.2443   -74.9939    21.4240   0.11198288   3.33936071   0.10957072   0.02195659   0.99373645
+214  1718.1400  -375.0000   -25.0000  -374.2443   -24.9998    20.6888   0.11006044   3.20829415   0.10959412   0.00732095   0.99394947
+215  1718.1400  -375.0000    25.0000  -374.2443    24.9998    20.6888   0.11006044   3.07489109   0.10959412  -0.00732096   0.99394947
+216  1718.1400  -375.0000    75.0000  -374.2443    74.9939    21.4240   0.11198288   2.94382453   0.10957072  -0.02195660   0.99373645
+217  1718.1400  -375.0000   125.0000  -374.2443   124.9719    22.8936   0.11572728   2.81930399   0.10952397  -0.03657348   0.99331105
+218  1730.0601  -375.0000   175.0000  -374.2443   174.9228    25.0966   0.12111574   2.70436120   0.10945402  -0.05115911   0.99267447
+219  1730.0601  -375.0000   225.0000  -374.2443   224.8361    28.0309   0.12792800   2.60060453   0.10936105  -0.06570123   0.99182838
+220  1730.0601  -375.0000   275.0000  -374.2443   274.7011    31.6941   0.13593437   2.50840044   0.10924533  -0.08018775   0.99077517
+221  1730.0601  -375.0000   325.0000  -374.2443   324.5073    36.0829   0.14491870   2.42725444   0.10910714  -0.09460682   0.98951763
+222  1745.0699  -375.0000   375.0000  -374.2443   374.2443    41.1938   0.15469038   2.35619450   0.10894690  -0.10894690   0.98805928
+223  1745.0699  -375.0000   425.0000  -374.2443   423.9018    47.0223   0.16508774   2.29405856   0.10876501  -0.12319675   0.98640394
+224  1763.2600  -375.0000   475.0000  -374.2443   473.4697    53.5636   0.17597687   2.23967409   0.10856196  -0.13734558   0.98455596
+225  1763.2600  -375.0000   525.0000  -374.2443   522.9382    60.8122   0.18724811   2.19195318   0.10833827  -0.15138298   0.98252022
+226  1763.2600  -375.0000   575.0000  -374.2443   572.2976    68.7622   0.19881210   2.14993143   0.10809452  -0.16529909   0.98030186
+227  1784.7300  -375.0000   625.0000  -374.2443   621.5383    77.4072   0.21059583   2.11277747   0.10783133  -0.17908438   0.97790653
+228  1784.7300  -375.0000   675.0000  -374.2443   670.6511    86.7400   0.22253957   2.07978463   0.10754935  -0.19272998   0.97534007
+229  1805.4000  -375.0000   725.0000  -374.2443   719.6271    96.7532   0.23459409   2.05035734   0.10724922  -0.20622748   0.97260875
+230  1805.4000  -375.0000   775.0000  -374.2443   768.4574   107.4391   0.24671859   2.02399588   0.10693175  -0.21956909   0.96971905
+231  1805.4000  -325.0000  -825.0000  -324.5073  -817.1337   113.6783   0.25348800   4.33436012   0.09256094   0.23307529   0.96804357
+232  1805.4000  -325.0000  -775.0000  -324.5073  -768.4574   102.3282   0.24100770   4.31282091   0.09285192   0.21988018   0.97109795
+233  1784.7300  -325.0000  -725.0000  -324.5073  -719.6271    91.6424   0.22853206   4.28875494   0.09312844   0.20652141   0.97399998
+234  1784.7300  -325.0000  -675.0000  -324.5073  -670.6511    81.6291   0.21609105   4.26172924   0.09338972   0.19300620   0.97674304
+235  1784.7300  -325.0000  -625.0000  -324.5073  -621.5383    72.2963   0.20372099   4.23121548   0.09363527   0.17934240   0.97932053
+236  1763.2600  -325.0000  -575.0000  -324.5073  -572.2976    63.6514   0.19146617   4.19656849   0.09386449   0.16553842   0.98172629
+237  1763.2600  -325.0000  -525.0000  -324.5073  -522.9382    55.7014   0.17938119   4.15699863   0.09407679   0.15160315   0.98395431
+238  1745.0699  -325.0000  -475.0000  -324.5073  -473.4697    48.4527   0.16753416   4.11154175   0.09427157   0.13754617   0.98599893
+239  1745.0699  -325.0000  -425.0000  -324.5073  -423.9018    41.9114   0.15601057   4.05902576   0.09444842   0.12337733   0.98785502
+240  1730.0601  -325.0000  -375.0000  -324.5073  -374.2443    36.0829   0.14491870   3.99805069   0.09460683   0.10910714   0.98951763
+241  1730.0601  -325.0000  -325.0000  -324.5073  -324.5073    30.9721   0.13439584   3.92699075   0.09474639   0.09474638   0.99098247
+242  1730.0601  -325.0000  -275.0000  -324.5073  -274.7011    26.5832   0.12461551   3.84406137   0.09486675   0.08030634   0.99224555
+243  1718.1400  -325.0000  -225.0000  -324.5073  -224.8361    22.9200   0.11579338   3.74750638   0.09496753   0.06579861   0.99330342
+244  1718.1400  -325.0000  -175.0000  -324.5073  -174.9228    19.9857   0.10818893   3.63598323   0.09504850   0.05123505   0.99415326
+245  1718.1400  -325.0000  -125.0000  -324.5073  -124.9719    17.7828   0.10209588   3.50919962   0.09510943   0.03662784   0.99479276
+246  1718.1400  -325.0000   -75.0000  -324.5073   -74.9939    16.3131   0.09781386   3.36870623   0.09515014   0.02198927   0.99522007
+247  1718.1400  -325.0000   -25.0000  -324.5073   -24.9998    15.5779   0.09559806   3.21847987   0.09517052   0.00733185   0.99543399
+248  1718.1400  -325.0000    25.0000  -324.5073    24.9998    15.5779   0.09559806   3.06470537   0.09517052  -0.00733186   0.99543399
+249  1718.1400  -325.0000    75.0000  -324.5073    74.9939    16.3131   0.09781386   2.91447902   0.09515014  -0.02198927   0.99522007
+250  1718.1400  -325.0000   125.0000  -324.5073   124.9719    17.7828   0.10209588   2.77398562   0.09510943  -0.03662785   0.99479276
+251  1718.1400  -325.0000   175.0000  -324.5073   174.9228    19.9857   0.10818893   2.64720201   0.09504850  -0.05123506   0.99415326
+252  1718.1400  -325.0000   225.0000  -324.5073   224.8361    22.9200   0.11579338   2.53567886   0.09496753  -0.06579862   0.99330342
+253  1730.0601  -325.0000   275.0000  -324.5073   274.7011    26.5832   0.12461551   2.43912387   0.09486674  -0.08030635   0.99224555
+254  1730.0601  -325.0000   325.0000  -324.5073   324.5073    30.9721   0.13439584   2.35619450   0.09474638  -0.09474638   0.99098247
+255  1730.0601  -325.0000   375.0000  -324.5073   374.2443    36.0829   0.14491870   2.28513455   0.09460682  -0.10910714   0.98951763
+256  1745.0699  -325.0000   425.0000  -324.5073   423.9018    41.9114   0.15601057   2.22415948   0.09444841  -0.12337734   0.98785502
+257  1745.0699  -325.0000   475.0000  -324.5073   473.4697    48.4527   0.16753416   2.17164350   0.09427156  -0.13754617   0.98599893
+258  1763.2600  -325.0000   525.0000  -324.5073   522.9382    55.7014   0.17938119   2.12618661   0.09407678  -0.15160315   0.98395431
+259  1763.2600  -325.0000   575.0000  -324.5073   572.2976    63.6514   0.19146617   2.08661675   0.09386447  -0.16553843   0.98172629
+260  1784.7300  -325.0000   625.0000  -324.5073   621.5383    72.2963   0.20372099   2.05197001   0.09363530  -0.17934239   0.97932053
+261  1784.7300  -325.0000   675.0000  -324.5073   670.6511    81.6291   0.21609105   2.02145600   0.09338970  -0.19300620   0.97674304
+262  1784.7300  -325.0000   725.0000  -324.5073   719.6271    91.6424   0.22853206   1.99443018   0.09312840  -0.20652142   0.97399998
+263  1805.4000  -325.0000   775.0000  -324.5073   768.4574   102.3282   0.24100770   1.97036433   0.09285191  -0.21988019   0.97109795
+264  1805.4000  -325.0000   825.0000  -324.5073   817.1337   113.6783   0.25348800   1.94882500   0.09256089  -0.23307531   0.96804357
+265  1805.4000  -275.0000  -825.0000  -274.7011  -817.1337   109.2895   0.24874869   4.38808203   0.07844935   0.23335785   0.96922123
+266  1805.4000  -275.0000  -775.0000  -274.7011  -768.4574    97.9393   0.23597544   4.36907434   0.07869659   0.22014840   0.97228676
+267  1784.7300  -275.0000  -725.0000  -274.7011  -719.6271    87.2535   0.22317588   4.34773350   0.07893158   0.20677482   0.97519946
+268  1784.7300  -275.0000  -675.0000  -274.7011  -670.6511    77.2402   0.21037526   4.32363129   0.07915356   0.19324438   0.97795260
+269  1763.2600  -275.0000  -625.0000  -274.7011  -621.5383    67.9074   0.19760442   4.29623318   0.07936222   0.17956488   0.98053968
+270  1763.2600  -275.0000  -575.0000  -274.7011  -572.2976    59.2625   0.18490130   4.26487160   0.07955696   0.16574478   0.98295438
+271  1745.0699  -275.0000  -525.0000  -274.7011  -522.9382    51.3125   0.17231330   4.22870445   0.07973734   0.15179303   0.98519075
+272  1745.0699  -275.0000  -475.0000  -274.7011  -473.4697    44.0639   0.15990058   4.18666506   0.07990288   0.13771911   0.98724312
+273  1745.0699  -275.0000  -425.0000  -274.7011  -423.9018    37.5226   0.14774057   4.13739967   0.08005317   0.12353306   0.98910618
+274  1730.0601  -275.0000  -375.0000  -274.7011  -374.2443    31.6941   0.13593437   4.07919693   0.08018774   0.10924534   0.99077517
+275  1730.0601  -275.0000  -325.0000  -274.7011  -324.5073    26.5832   0.12461551   4.00992012   0.08030636   0.09486674   0.99224555
+276  1718.1400  -275.0000  -275.0000  -274.7011  -274.7011    22.1943   0.11396147   3.92699075   0.08040862   0.08040861   0.99351341
+277  1718.1400  -275.0000  -225.0000  -274.7011  -224.8361    18.5312   0.10420696   3.82749796   0.08049427   0.06588258   0.99457538
+278  1718.1400  -275.0000  -175.0000  -274.7011  -174.9228    15.5969   0.09565578   3.70861459   0.08056308   0.05130055   0.99542850
+279  1718.1400  -275.0000  -125.0000  -274.7011  -124.9719    13.3939   0.08868136   3.56854510   0.08061485   0.03667473   0.99607038
+280  1709.2200  -275.0000   -75.0000  -274.7011   -74.9939    11.9242   0.08369853   3.40810013   0.08064944   0.02201744   0.99649930
+281  1709.2200  -275.0000   -25.0000  -274.7011   -24.9998    11.1891   0.08108898   3.23234987   0.08066677   0.00734126   0.99671412
+282  1709.2200  -275.0000    25.0000  -274.7011    24.9998    11.1891   0.08108898   3.05083537   0.08066677  -0.00734126   0.99671412
+283  1709.2200  -275.0000    75.0000  -274.7011    74.9939    11.9242   0.08369853   2.87508512   0.08064944  -0.02201744   0.99649930
+284  1718.1400  -275.0000   125.0000  -274.7011   124.9719    13.3939   0.08868136   2.71464014   0.08061485  -0.03667473   0.99607038
+285  1718.1400  -275.0000   175.0000  -274.7011   174.9228    15.5969   0.09565578   2.57457066   0.08056307  -0.05130056   0.99542850
+286  1718.1400  -275.0000   225.0000  -274.7011   224.8361    18.5312   0.10420696   2.45568728   0.08049427  -0.06588258   0.99457538
+287  1718.1400  -275.0000   275.0000  -274.7011   274.7011    22.1943   0.11396147   2.35619450   0.08040862  -0.08040861   0.99351341
+288  1730.0601  -275.0000   325.0000  -274.7011   324.5073    26.5832   0.12461551   2.27326512   0.08030635  -0.09486674   0.99224555
+289  1730.0601  -275.0000   375.0000  -274.7011   374.2443    31.6941   0.13593437   2.20398855   0.08018775  -0.10924533   0.99077517
+290  1745.0699  -275.0000   425.0000  -274.7011   423.9018    37.5226   0.14774057   2.14578557   0.08005317  -0.12353307   0.98910618
+291  1745.0699  -275.0000   475.0000  -274.7011   473.4697    44.0639   0.15990058   2.09652019   0.07990287  -0.13771912   0.98724312
+292  1745.0699  -275.0000   525.0000  -274.7011   522.9382    51.3125   0.17231330   2.05448103   0.07973737  -0.15179302   0.98519075
+293  1763.2600  -275.0000   575.0000  -274.7011   572.2976    59.2625   0.18490130   2.01831388   0.07955699  -0.16574477   0.98295438
+294  1763.2600  -275.0000   625.0000  -274.7011   621.5383    67.9074   0.19760442   1.98695219   0.07936223  -0.17956488   0.98053968
+295  1784.7300  -275.0000   675.0000  -274.7011   670.6511    77.2402   0.21037526   1.95955420   0.07915360  -0.19324437   0.97795260
+296  1784.7300  -275.0000   725.0000  -274.7011   719.6271    87.2535   0.22317588   1.93545163   0.07893155  -0.20677483   0.97519946
+297  1805.4000  -275.0000   775.0000  -274.7011   768.4574    97.9393   0.23597544   1.91411114   0.07869663  -0.22014838   0.97228676
+298  1805.4000  -275.0000   825.0000  -274.7011   817.1337   109.2895   0.24874869   1.89510345   0.07844940  -0.23335783   0.96922123
+299  1805.4000  -225.0000  -825.0000  -224.8361  -817.1337   105.6263   0.24471071   4.44388151   0.06427396   0.23359443   0.97020745
+300  1805.4000  -225.0000  -775.0000  -224.8361  -768.4574    94.2762   0.23167872   4.42775249   0.06447694   0.22037302   0.97328234
+301  1784.7300  -225.0000  -725.0000  -224.8361  -719.6271    83.5904   0.21859103   4.40956402   0.06466985   0.20698705   0.97620398
+302  1784.7300  -225.0000  -675.0000  -224.8361  -670.6511    73.5771   0.20546794   4.38891411   0.06485211   0.19344383   0.97896564
+303  1763.2600  -225.0000  -625.0000  -224.8361  -621.5383    64.2443   0.19233420   4.36529255   0.06502347   0.17975119   0.98156071
+304  1763.2600  -225.0000  -575.0000  -224.8361  -572.2976    55.5994   0.17922038   4.33804798   0.06518333   0.16591761   0.98398298
+305  1745.0699  -225.0000  -525.0000  -224.8361  -522.9382    47.6494   0.16616496   4.30633497   0.06533144   0.15195201   0.98622632
+306  1745.0699  -225.0000  -475.0000  -224.8361  -473.4697    40.4007   0.15321741   4.26904774   0.06546730   0.13786399   0.98828518
+307  1730.0601  -225.0000  -425.0000  -224.8361  -423.9018    33.8594   0.14044267   4.22472095   0.06559069   0.12366351   0.99015415
+308  1730.0601  -225.0000  -375.0000  -224.8361  -374.2443    28.0309   0.12792800   4.17140102   0.06570122   0.10936106   0.99182838
+309  1718.1400  -225.0000  -325.0000  -224.8361  -324.5073    22.9200   0.11579338   4.10647535   0.06579860   0.09496754   0.99330342
+310  1718.1400  -225.0000  -275.0000  -224.8361  -274.7011    18.5312   0.10420696   4.02648354   0.06588259   0.08049426   0.99457538
+311  1718.1400  -225.0000  -225.0000  -224.8361  -224.8361    14.8680   0.09340727   3.92699075   0.06595291   0.06595290   0.99564070
+312  1709.2200  -225.0000  -175.0000  -224.8361  -174.9228    11.9337   0.08373164   3.80277514   0.06600940   0.05135541   0.99649656
+313  1709.2200  -225.0000  -125.0000  -224.8361  -124.9719     9.7308   0.07564178   3.64890504   0.06605192   0.03671400   0.99714053
+314  1709.2200  -225.0000   -75.0000  -224.8361   -74.9939     8.2611   0.06971575   3.46353745   0.06608032   0.02204104   0.99757081
+315  1709.2200  -225.0000   -25.0000  -224.8361   -24.9998     7.5259   0.06655098   3.25232887   0.06609455   0.00734912   0.99778628
+316  1709.2200  -225.0000    25.0000  -224.8361    24.9998     7.5259   0.06655098   3.03085637   0.06609455  -0.00734913   0.99778628
+317  1709.2200  -225.0000    75.0000  -224.8361    74.9939     8.2611   0.06971575   2.81964779   0.06608032  -0.02204104   0.99757081
+318  1709.2200  -225.0000   125.0000  -224.8361   124.9719     9.7308   0.07564178   2.63428020   0.06605192  -0.03671401   0.99714053
+319  1709.2200  -225.0000   175.0000  -224.8361   174.9228    11.9337   0.08373164   2.48041010   0.06600939  -0.05135541   0.99649656
+320  1718.1400  -225.0000   225.0000  -224.8361   224.8361    14.8680   0.09340727   2.35619450   0.06595290  -0.06595290   0.99564070
+321  1718.1400  -225.0000   275.0000  -224.8361   274.7011    18.5312   0.10420696   2.25670171   0.06588259  -0.08049427   0.99457538
+322  1718.1400  -225.0000   325.0000  -224.8361   324.5073    22.9200   0.11579338   2.17671013   0.06579862  -0.09496752   0.99330342
+323  1730.0601  -225.0000   375.0000  -224.8361   374.2443    28.0309   0.12792800   2.11178446   0.06570123  -0.10936105   0.99182838
+324  1730.0601  -225.0000   425.0000  -224.8361   423.9018    33.8594   0.14044267   2.05846453   0.06559071  -0.12366351   0.99015415
+325  1745.0699  -225.0000   475.0000  -224.8361   473.4697    40.4007   0.15321741   2.01413774   0.06546732  -0.13786398   0.98828518
+326  1745.0699  -225.0000   525.0000  -224.8361   522.9382    47.6494   0.16616496   1.97685027   0.06533142  -0.15195201   0.98622632
+327  1763.2600  -225.0000   575.0000  -224.8361   572.2976    55.5994   0.17922038   1.94513738   0.06518334  -0.16591759   0.98398298
+328  1763.2600  -225.0000   625.0000  -224.8361   621.5383    64.2443   0.19233420   1.91789258   0.06502344  -0.17975120   0.98156071
+329  1784.7300  -225.0000   675.0000  -224.8361   670.6511    73.5771   0.20546794   1.89427125   0.06485213  -0.19344383   0.97896564
+330  1784.7300  -225.0000   725.0000  -224.8361   719.6271    83.5904   0.21859103   1.87362123   0.06466983  -0.20698707   0.97620398
+331  1805.4000  -225.0000   775.0000  -224.8361   768.4574    94.2762   0.23167872   1.85543299   0.06447698  -0.22037300   0.97328234
+332  1805.4000  -225.0000   825.0000  -224.8361   817.1337   105.6263   0.24471071   1.83930397   0.06427401  -0.23359442   0.97020745
+333  1805.4000  -175.0000  -825.0000  -174.9228  -817.1337   102.6920   0.24141937   4.50150299   0.05004597   0.23378444   0.97099960
+334  1784.7300  -175.0000  -775.0000  -174.9228  -768.4574    91.3419   0.22816989   4.48857403   0.05020426   0.22055343   0.97408199
+335  1784.7300  -175.0000  -725.0000  -174.9228  -719.6271    80.6560   0.21483852   4.47393942   0.05035462   0.20715754   0.97701085
+336  1763.2600  -175.0000  -675.0000  -174.9228  -670.6511    70.6428   0.20144072   4.45724821   0.05049680   0.19360405   0.97977936
+337  1763.2600  -175.0000  -625.0000  -174.9228  -621.5383    61.3100   0.18799514   4.43804979   0.05063047   0.17990088   0.98238093
+338  1763.2600  -175.0000  -575.0000  -174.9228  -572.2976    52.6651   0.17452455   4.41575670   0.05075516   0.16605642   0.98480922
+339  1745.0699  -175.0000  -525.0000  -174.9228  -522.9382    44.7151   0.16105770   4.38958883   0.05087066   0.15207973   0.98705822
+340  1745.0699  -175.0000  -475.0000  -174.9228  -473.4697    37.4664   0.14763157   4.35849380   0.05097670   0.13798034   0.98912221
+341  1730.0601  -175.0000  -425.0000  -174.9228  -423.9018    30.9251   0.13429515   4.32102585   0.05107289   0.12376827   0.99099594
+342  1730.0601  -175.0000  -375.0000  -174.9228  -374.2443    25.0966   0.12111574   4.27515745   0.05115912   0.10945401   0.99267447
+343  1718.1400  -175.0000  -325.0000  -174.9228  -324.5073    19.9857   0.10818893   4.21799850   0.05123504   0.09504851   0.99415326
+344  1718.1400  -175.0000  -275.0000  -174.9228  -274.7011    15.5969   0.09565578   4.14536715   0.05130054   0.08056308   0.99542850
+345  1709.2200  -175.0000  -225.0000  -174.9228  -224.8361    11.9337   0.08373164   4.05120659   0.05135540   0.06600941   0.99649656
+346  1709.2200  -175.0000  -175.0000  -174.9228  -174.9228     8.9994   0.07275400   3.92699075   0.05139948   0.05139947   0.99735457
+347  1709.2200  -175.0000  -125.0000  -174.9228  -124.9719     6.7965   0.06325255   3.76194453   0.05143264   0.03674555   0.99800020
+348  1703.3400  -175.0000   -75.0000  -174.9228   -74.9939     5.3268   0.05601357   3.54661465   0.05145480   0.02205999   0.99843162
+349  1703.3400  -175.0000   -25.0000  -174.9228   -24.9998     4.5916   0.05201230   3.28355026   0.05146589   0.00735545   0.99864769
+350  1703.3400  -175.0000    25.0000  -174.9228    24.9998     4.5916   0.05201230   2.99963498   0.05146589  -0.00735545   0.99864769
+351  1703.3400  -175.0000    75.0000  -174.9228    74.9939     5.3268   0.05601357   2.73657060   0.05145480  -0.02205999   0.99843162
+352  1709.2200  -175.0000   125.0000  -174.9228   124.9719     6.7965   0.06325255   2.52124071   0.05143264  -0.03674556   0.99800020
+353  1709.2200  -175.0000   175.0000  -174.9228   174.9228     8.9994   0.07275400   2.35619450   0.05139948  -0.05139948   0.99735457
+354  1709.2200  -175.0000   225.0000  -174.9228   224.8361    11.9337   0.08373164   2.23197889   0.05135541  -0.06600939   0.99649656
+355  1718.1400  -175.0000   275.0000  -174.9228   274.7011    15.5969   0.09565578   2.13781834   0.05130056  -0.08056307   0.99542850
+356  1718.1400  -175.0000   325.0000  -174.9228   324.5073    19.9857   0.10818893   2.06518698   0.05123506  -0.09504850   0.99415326
+357  1730.0601  -175.0000   375.0000  -174.9228   374.2443    25.0966   0.12111574   2.00802779   0.05115911  -0.10945402   0.99267447
+358  1730.0601  -175.0000   425.0000  -174.9228   423.9018    30.9251   0.13429515   1.96215951   0.05107290  -0.12376827   0.99099594
+359  1745.0699  -175.0000   475.0000  -174.9228   473.4697    37.4664   0.14763157   1.92469132   0.05097667  -0.13798036   0.98912221
+360  1745.0699  -175.0000   525.0000  -174.9228   522.9382    44.7151   0.16105770   1.89359653   0.05087067  -0.15207973   0.98705822
+361  1763.2600  -175.0000   575.0000  -174.9228   572.2976    52.6651   0.17452455   1.86742854   0.05075515  -0.16605642   0.98480922
+362  1763.2600  -175.0000   625.0000  -174.9228   621.5383    61.3100   0.18799514   1.84513545   0.05063045  -0.17990088   0.98238093
+363  1763.2600  -175.0000   675.0000  -174.9228   670.6511    70.6428   0.20144072   1.82593727   0.05049684  -0.19360405   0.97977936
+364  1784.7300  -175.0000   725.0000  -174.9228   719.6271    80.6560   0.21483852   1.80924606   0.05035466  -0.20715752   0.97701085
+365  1784.7300  -175.0000   775.0000  -174.9228   768.4574    91.3419   0.22816989   1.79461122   0.05020425  -0.22055343   0.97408199
+366  1805.4000  -175.0000   825.0000  -174.9228   817.1337   102.6920   0.24141937   1.78168225   0.05004595  -0.23378444   0.97099960
+367  1805.4000  -125.0000  -825.0000  -124.9719  -817.1337   100.4890   0.23891383   4.56062555   0.03577672   0.23392743   0.97159559
+368  1784.7300  -125.0000  -775.0000  -124.9719  -768.4574    89.1389   0.22549459   4.55117321   0.03589005   0.22068916   0.97468364
+369  1784.7300  -125.0000  -725.0000  -124.9719  -719.6271    78.4531   0.21197213   4.54044199   0.03599764   0.20728581   0.97761792
+370  1763.2600  -125.0000  -675.0000  -124.9719  -670.6511    68.4398   0.19835755   4.52815771   0.03609947   0.19372459   0.98039156
+371  1763.2600  -125.0000  -625.0000  -124.9719  -621.5383    59.1070   0.18466403   4.51396608   0.03619507   0.18001349   0.98299801
+372  1745.0699  -125.0000  -575.0000  -124.9719  -572.2976    50.4621   0.17090724   4.49739504   0.03628436   0.16616090   0.98543090
+373  1745.0699  -125.0000  -525.0000  -124.9719  -522.9382    42.5121   0.15710649   4.47780848   0.03636701   0.15217583   0.98768413
+374  1730.0601  -125.0000  -475.0000  -124.9719  -473.4697    35.2635   0.14328626   4.45432568   0.03644286   0.13806790   0.98975205
+375  1730.0601  -125.0000  -425.0000  -124.9719  -423.9018    28.7222   0.12947854   4.42569733   0.03651179   0.12384711   0.99162936
+376  1718.1400  -125.0000  -375.0000  -124.9719  -374.2443    22.8936   0.11572728   4.39010048   0.03657347   0.10952397   0.99331105
+377  1718.1400  -125.0000  -325.0000  -124.9719  -324.5073    17.7828   0.10209588   4.34478188   0.03662786   0.09510942   0.99479276
+378  1718.1400  -125.0000  -275.0000  -124.9719  -274.7011    13.3939   0.08868136   4.28543663   0.03667472   0.08061485   0.99607038
+379  1709.2200  -125.0000  -225.0000  -124.9719  -224.8361     9.7308   0.07564178   4.20507669   0.03671400   0.06605193   0.99714053
+380  1709.2200  -125.0000  -175.0000  -124.9719  -174.9228     6.7965   0.06325255   4.09203720   0.03674555   0.05143264   0.99800020
+381  1703.3400  -125.0000  -125.0000  -124.9719  -124.9719     4.5935   0.05202308   3.92699075   0.03676929   0.03676928   0.99864709
+382  1703.3400  -125.0000   -75.0000  -124.9719   -74.9939     3.1238   0.04291328   3.68207526   0.03678515   0.02207425   0.99907935
+383  1703.3400  -125.0000   -25.0000  -124.9719   -24.9998     2.3887   0.03753085   3.33902979   0.03679309   0.00736021   0.99929577
+384  1703.3400  -125.0000    25.0000  -124.9719    24.9998     2.3887   0.03753085   2.94415545   0.03679309  -0.00736021   0.99929577
+385  1703.3400  -125.0000    75.0000  -124.9719    74.9939     3.1238   0.04291328   2.60110998   0.03678515  -0.02207425   0.99907935
+386  1703.3400  -125.0000   125.0000  -124.9719   124.9719     4.5935   0.05202308   2.35619450   0.03676929  -0.03676928   0.99864709
+387  1709.2200  -125.0000   175.0000  -124.9719   174.9228     6.7965   0.06325255   2.19114828   0.03674556  -0.05143264   0.99800020
+388  1709.2200  -125.0000   225.0000  -124.9719   224.8361     9.7308   0.07564178   2.07810879   0.03671401  -0.06605192   0.99714053
+389  1718.1400  -125.0000   275.0000  -124.9719   274.7011    13.3939   0.08868136   1.99774885   0.03667473  -0.08061485   0.99607038
+390  1718.1400  -125.0000   325.0000  -124.9719   324.5073    17.7828   0.10209588   1.93840337   0.03662785  -0.09510943   0.99479276
+391  1718.1400  -125.0000   375.0000  -124.9719   374.2443    22.8936   0.11572728   1.89308500   0.03657349  -0.10952397   0.99331105
+392  1730.0601  -125.0000   425.0000  -124.9719   423.9018    28.7222   0.12947854   1.85748792   0.03651178  -0.12384711   0.99162936
+393  1730.0601  -125.0000   475.0000  -124.9719   473.4697    35.2635   0.14328626   1.82885981   0.03644289  -0.13806790   0.98975205
+394  1745.0699  -125.0000   525.0000  -124.9719   522.9382    42.5121   0.15710649   1.80537689   0.03636702  -0.15217583   0.98768413
+395  1745.0699  -125.0000   575.0000  -124.9719   572.2976    50.4621   0.17090724   1.78579009   0.03628433  -0.16616090   0.98543090
+396  1763.2600  -125.0000   625.0000  -124.9719   621.5383    59.1070   0.18466403   1.76921928   0.03619508  -0.18001349   0.98299801
+397  1763.2600  -125.0000   675.0000  -124.9719   670.6511    68.4398   0.19835755   1.75502741   0.03609944  -0.19372460   0.98039156
+398  1784.7300  -125.0000   725.0000  -124.9719   719.6271    78.4531   0.21197213   1.74274349   0.03599767  -0.20728581   0.97761792
+399  1784.7300  -125.0000   775.0000  -124.9719   768.4574    89.1389   0.22549459   1.73201191   0.03589001  -0.22068916   0.97468364
+400  1805.4000  -125.0000   825.0000  -124.9719   817.1337   100.4890   0.23891383   1.72255969   0.03577671  -0.23392743   0.97159559
+401  1805.4000   -75.0000  -825.0000   -74.9939  -817.1337    99.0194   0.23722523   4.62086868   0.02147785   0.23402296   0.97199380
+402  1784.7300   -75.0000  -775.0000   -74.9939  -768.4574    87.6692   0.22368950   4.61510706   0.02154590   0.22077987   0.97508568
+403  1784.7300   -75.0000  -725.0000   -74.9939  -719.6271    76.9834   0.21003537   4.60855150   0.02161066   0.20737149   0.97802353
+404  1763.2600   -75.0000  -675.0000   -74.9939  -670.6511    66.9702   0.19627079   4.60102892   0.02167181   0.19380516   0.98080063
+405  1763.2600   -75.0000  -625.0000   -74.9939  -621.5383    57.6373   0.18240470   4.59231091   0.02172924   0.18008873   0.98341036
+406  1745.0699   -75.0000  -575.0000   -74.9939  -572.2976    48.9924   0.16844730   4.58209133   0.02178288   0.16623069   0.98584628
+407  1745.0699   -75.0000  -525.0000   -74.9939  -522.9382    41.0424   0.15441042   4.56995153   0.02183253   0.15224004   0.98810238
+408  1730.0601   -75.0000  -475.0000   -74.9939  -473.4697    33.7938   0.14030823   4.55530167   0.02187816   0.13812639   0.99017292
+409  1730.0601   -75.0000  -425.0000   -74.9939  -423.9018    27.2525   0.12615816   4.53728724   0.02191955   0.12389978   0.99205261
+410  1718.1400   -75.0000  -375.0000   -74.9939  -374.2443    21.4240   0.11198288   4.51462078   0.02195661   0.10957072   0.99373645
+411  1718.1400   -75.0000  -325.0000   -74.9939  -324.5073    16.3131   0.09781386   4.48527527   0.02198928   0.09515014   0.99522007
+412  1709.2200   -75.0000  -275.0000   -74.9939  -274.7011    11.9242   0.08369853   4.44588137   0.02201745   0.08064944   0.99649930
+413  1709.2200   -75.0000  -225.0000   -74.9939  -224.8361     8.2611   0.06971575   4.39044428   0.02204103   0.06608032   0.99757081
+414  1703.3400   -75.0000  -175.0000   -74.9939  -174.9228     5.3268   0.05601357   4.30736685   0.02206000   0.05145480   0.99843162
+415  1703.3400   -75.0000  -125.0000   -74.9939  -124.9719     3.1238   0.04291328   4.17190647   0.02207424   0.03678515   0.99907935
+416  1703.3400   -75.0000   125.0000   -74.9939   124.9719     3.1238   0.04291328   2.11127901   0.02207425  -0.03678515   0.99907935
+417  1703.3400   -75.0000   175.0000   -74.9939   174.9228     5.3268   0.05601357   1.97581840   0.02205999  -0.05145480   0.99843162
+418  1709.2200   -75.0000   225.0000   -74.9939   224.8361     8.2611   0.06971575   1.89274108   0.02204103  -0.06608032   0.99757081
+419  1709.2200   -75.0000   275.0000   -74.9939   274.7011    11.9242   0.08369853   1.83730388   0.02201744  -0.08064944   0.99649930
+420  1718.1400   -75.0000   325.0000   -74.9939   324.5073    16.3131   0.09781386   1.79790998   0.02198927  -0.09515014   0.99522007
+421  1718.1400   -75.0000   375.0000   -74.9939   374.2443    21.4240   0.11198288   1.76856446   0.02195660  -0.10957072   0.99373645
+422  1730.0601   -75.0000   425.0000   -74.9939   423.9018    27.2525   0.12615816   1.74589789   0.02191953  -0.12389979   0.99205261
+423  1730.0601   -75.0000   475.0000   -74.9939   473.4697    33.7938   0.14030823   1.72788346   0.02187813  -0.13812639   0.99017292
+424  1745.0699   -75.0000   525.0000   -74.9939   522.9382    41.0424   0.15441042   1.71323395   0.02183256  -0.15224004   0.98810238
+425  1745.0699   -75.0000   575.0000   -74.9939   572.2976    48.9924   0.16844730   1.70109391   0.02178287  -0.16623069   0.98584628
+426  1763.2600   -75.0000   625.0000   -74.9939   621.5383    57.6373   0.18240470   1.69087434   0.02172923  -0.18008873   0.98341036
+427  1763.2600   -75.0000   675.0000   -74.9939   670.6511    66.9702   0.19627079   1.68215621   0.02167178  -0.19380516   0.98080063
+428  1784.7300   -75.0000   725.0000   -74.9939   719.6271    76.9834   0.21003537   1.67463362   0.02161062  -0.20737149   0.97802353
+429  1784.7300   -75.0000   775.0000   -74.9939   768.4574    87.6692   0.22368950   1.66807842   0.02154594  -0.22077985   0.97508568
+430  1805.4000   -75.0000   825.0000   -74.9939   817.1337    99.0194   0.23722523   1.66231668   0.02147786  -0.23402296   0.97199380
+431  1805.4000   -25.0000  -825.0000   -24.9998  -817.1337    98.2842   0.23637535   4.68180418   0.00716124   0.23407079   0.97219318
+432  1784.7300   -25.0000  -775.0000   -24.9998  -768.4574    86.9341   0.22278035   4.67986822   0.00718394   0.22082528   0.97528690
+433  1784.7300   -25.0000  -725.0000   -24.9998  -719.6271    76.2482   0.20905904   4.67766285   0.00720560   0.20741440   0.97822666
+434  1763.2600   -25.0000  -675.0000   -24.9998  -670.6511    66.2350   0.19521770   4.67512941   0.00722594   0.19384547   0.98100549
+435  1763.2600   -25.0000  -625.0000   -24.9998  -621.5383    56.9022   0.18126303   4.67218828   0.00724511   0.18012640   0.98361677
+436  1745.0699   -25.0000  -575.0000   -24.9998  -572.2976    48.2573   0.16720217   4.66873360   0.00726300   0.16626564   0.98605424
+437  1745.0699   -25.0000  -525.0000   -24.9998  -522.9382    40.3073   0.15304284   4.66461897   0.00727958   0.15227219   0.98831177
+438  1730.0601   -25.0000  -475.0000   -24.9998  -473.4697    33.0586   0.13879332   4.65963650   0.00729482   0.13815568   0.99038368
+439  1730.0601   -25.0000  -425.0000   -24.9998  -423.9018    26.5173   0.12446258   4.65348196   0.00730858   0.12392616   0.99226451
+440  1718.1400   -25.0000  -375.0000   -24.9998  -374.2443    20.6888   0.11006044   4.64568710   0.00732099   0.10959412   0.99394947
+441  1718.1400   -25.0000  -325.0000   -24.9998  -324.5073    15.5779   0.09559806   4.63550138   0.00733189   0.09517051   0.99543399
+442  1709.2200   -25.0000  -275.0000   -24.9998  -274.7011    11.1891   0.08108898   4.62163162   0.00734127   0.08066677   0.99671412
+443  1709.2200   -25.0000  -225.0000   -24.9998  -224.8361     7.5259   0.06655098   4.60165262   0.00734913   0.06609455   0.99778628
+444  1703.3400   -25.0000  -175.0000   -24.9998  -174.9228     4.5916   0.05201230   4.57043123   0.00735546   0.05146589   0.99864769
+445  1703.3400   -25.0000  -125.0000   -24.9998  -124.9719     2.3887   0.03753085   4.51495171   0.00736021   0.03679308   0.99929577
+446  1703.3400   -25.0000   125.0000   -24.9998   124.9719     2.3887   0.03753085   1.76823354   0.00736021  -0.03679309   0.99929577
+447  1703.3400   -25.0000   175.0000   -24.9998   174.9228     4.5916   0.05201230   1.71275401   0.00735545  -0.05146589   0.99864769
+448  1709.2200   -25.0000   225.0000   -24.9998   224.8361     7.5259   0.06655098   1.68153262   0.00734913  -0.06609455   0.99778628
+449  1709.2200   -25.0000   275.0000   -24.9998   274.7011    11.1891   0.08108898   1.66155362   0.00734127  -0.08066677   0.99671412
+450  1718.1400   -25.0000   325.0000   -24.9998   324.5073    15.5779   0.09559806   1.64768374   0.00733187  -0.09517051   0.99543399
+451  1718.1400   -25.0000   375.0000   -24.9998   374.2443    20.6888   0.11006044   1.63749802   0.00732097  -0.10959412   0.99394947
+452  1730.0601   -25.0000   425.0000   -24.9998   423.9018    26.5173   0.12446258   1.62970352   0.00730860  -0.12392616   0.99226451
+453  1730.0601   -25.0000   475.0000   -24.9998   473.4697    33.0586   0.13879332   1.62354863   0.00729480  -0.13815568   0.99038368
+454  1745.0699   -25.0000   525.0000   -24.9998   522.9382    40.3073   0.15304284   1.61856639   0.00727959  -0.15227219   0.98831177
+455  1745.0699   -25.0000   575.0000   -24.9998   572.2976    48.2573   0.16720217   1.61445177   0.00726301  -0.16626564   0.98605424
+456  1763.2600   -25.0000   625.0000   -24.9998   621.5383    56.9022   0.18126303   1.61099708   0.00724512  -0.18012640   0.98361677
+457  1763.2600   -25.0000   675.0000   -24.9998   670.6511    66.2350   0.19521770   1.60805595   0.00722595  -0.19384547   0.98100549
+458  1784.7300   -25.0000   725.0000   -24.9998   719.6271    76.2482   0.20905904   1.60552227   0.00720556  -0.20741440   0.97822666
+459  1784.7300   -25.0000   775.0000   -24.9998   768.4574    86.9341   0.22278035   1.60331726   0.00718398  -0.22082528   0.97528690
+460  1805.4000   -25.0000   825.0000   -24.9998   817.1337    98.2842   0.23637535   1.60138130   0.00716128  -0.23407079   0.97219318
+461  1805.4000    25.0000  -825.0000    24.9998  -817.1337    98.2842   0.23637535   4.74297380  -0.00716125   0.23407079   0.97219318
+462  1784.7300    25.0000  -775.0000    24.9998  -768.4574    86.9341   0.22278035   4.74490976  -0.00718394   0.22082528   0.97528690
+463  1784.7300    25.0000  -725.0000    24.9998  -719.6271    76.2482   0.20905904   4.74711514  -0.00720560   0.20741440   0.97822666
+464  1763.2600    25.0000  -675.0000    24.9998  -670.6511    66.2350   0.19521770   4.74964857  -0.00722595   0.19384547   0.98100549
+465  1763.2600    25.0000  -625.0000    24.9998  -621.5383    56.9022   0.18126303   4.75258970  -0.00724512   0.18012640   0.98361677
+466  1745.0699    25.0000  -575.0000    24.9998  -572.2976    48.2573   0.16720217   4.75604439  -0.00726301   0.16626564   0.98605424
+467  1745.0699    25.0000  -525.0000    24.9998  -522.9382    40.3073   0.15304284   4.76015902  -0.00727959   0.15227219   0.98831177
+468  1730.0601    25.0000  -475.0000    24.9998  -473.4697    33.0586   0.13879332   4.76514149  -0.00729483   0.13815568   0.99038368
+469  1730.0601    25.0000  -425.0000    24.9998  -423.9018    26.5173   0.12446258   4.77129602  -0.00730858   0.12392616   0.99226451
+470  1718.1400    25.0000  -375.0000    24.9998  -374.2443    20.6888   0.11006044   4.77909040  -0.00732094   0.10959412   0.99394947
+471  1718.1400    25.0000  -325.0000    24.9998  -324.5073    15.5779   0.09559806   4.78927612  -0.00733184   0.09517052   0.99543399
+472  1709.2200    25.0000  -275.0000    24.9998  -274.7011    11.1891   0.08108898   4.80314636  -0.00734127   0.08066677   0.99671412
+473  1709.2200    25.0000  -225.0000    24.9998  -224.8361     7.5259   0.06655098   4.82312536  -0.00734913   0.06609455   0.99778628
+474  1703.3400    25.0000  -175.0000    24.9998  -174.9228     4.5916   0.05201230   4.85434675  -0.00735546   0.05146589   0.99864769
+475  1703.3400    25.0000  -125.0000    24.9998  -124.9719     2.3887   0.03753085   4.90982628  -0.00736021   0.03679308   0.99929577
+476  1703.3400    25.0000   125.0000    24.9998   124.9719     2.3887   0.03753085   1.37335908  -0.00736021  -0.03679308   0.99929577
+477  1703.3400    25.0000   175.0000    24.9998   174.9228     4.5916   0.05201230   1.42883861  -0.00735546  -0.05146589   0.99864769
+478  1709.2200    25.0000   225.0000    24.9998   224.8361     7.5259   0.06655098   1.46006000  -0.00734913  -0.06609455   0.99778628
+479  1709.2200    25.0000   275.0000    24.9998   274.7011    11.1891   0.08108898   1.48003912  -0.00734126  -0.08066677   0.99671412
+480  1718.1400    25.0000   325.0000    24.9998   324.5073    15.5779   0.09559806   1.49390900  -0.00733186  -0.09517052   0.99543399
+481  1718.1400    25.0000   375.0000    24.9998   374.2443    20.6888   0.11006044   1.50409472  -0.00732096  -0.10959412   0.99394947
+482  1730.0601    25.0000   425.0000    24.9998   423.9018    26.5173   0.12446258   1.51188910  -0.00730860  -0.12392616   0.99226451
+483  1730.0601    25.0000   475.0000    24.9998   473.4697    33.0586   0.13879332   1.51804399  -0.00729480  -0.13815568   0.99038368
+484  1745.0699    25.0000   525.0000    24.9998   522.9382    40.3073   0.15304284   1.52302623  -0.00727960  -0.15227219   0.98831177
+485  1745.0699    25.0000   575.0000    24.9998   572.2976    48.2573   0.16720217   1.52714086  -0.00726302  -0.16626564   0.98605424
+486  1763.2600    25.0000   625.0000    24.9998   621.5383    56.9022   0.18126303   1.53059554  -0.00724513  -0.18012640   0.98361677
+487  1763.2600    25.0000   675.0000    24.9998   670.6511    66.2350   0.19521770   1.53353667  -0.00722596  -0.19384547   0.98100549
+488  1784.7300    25.0000   725.0000    24.9998   719.6271    76.2482   0.20905904   1.53607035  -0.00720556  -0.20741440   0.97822666
+489  1784.7300    25.0000   775.0000    24.9998   768.4574    86.9341   0.22278035   1.53827536  -0.00718398  -0.22082528   0.97528690
+490  1805.4000    25.0000   825.0000    24.9998   817.1337    98.2842   0.23637535   1.54021132  -0.00716129  -0.23407079   0.97219318
+491  1805.4000    75.0000  -825.0000    74.9939  -817.1337    99.0194   0.23722523   4.80390930  -0.02147786   0.23402296   0.97199380
+492  1784.7300    75.0000  -775.0000    74.9939  -768.4574    87.6692   0.22368950   4.80967093  -0.02154591   0.22077987   0.97508568
+493  1784.7300    75.0000  -725.0000    74.9939  -719.6271    76.9834   0.21003537   4.81622648  -0.02161066   0.20737149   0.97802353
+494  1763.2600    75.0000  -675.0000    74.9939  -670.6511    66.9702   0.19627079   4.82374907  -0.02167182   0.19380516   0.98080063
+495  1763.2600    75.0000  -625.0000    74.9939  -621.5383    57.6373   0.18240470   4.83246708  -0.02172925   0.18008873   0.98341036
+496  1745.0699    75.0000  -575.0000    74.9939  -572.2976    48.9924   0.16844730   4.84268665  -0.02178288   0.16623069   0.98584628
+497  1745.0699    75.0000  -525.0000    74.9939  -522.9382    41.0424   0.15441042   4.85482645  -0.02183254   0.15224004   0.98810238
+498  1730.0601    75.0000  -475.0000    74.9939  -473.4697    33.7938   0.14030823   4.86947632  -0.02187816   0.13812639   0.99017292
+499  1730.0601    75.0000  -425.0000    74.9939  -423.9018    27.2525   0.12615816   4.88749075  -0.02191955   0.12389978   0.99205261
+500  1718.1400    75.0000  -375.0000    74.9939  -374.2443    21.4240   0.11198288   4.91015720  -0.02195661   0.10957072   0.99373645
+501  1718.1400    75.0000  -325.0000    74.9939  -324.5073    16.3131   0.09781386   4.93950272  -0.02198928   0.09515014   0.99522007
+502  1709.2200    75.0000  -275.0000    74.9939  -274.7011    11.9242   0.08369853   4.97889662  -0.02201745   0.08064944   0.99649930
+503  1709.2200    75.0000  -225.0000    74.9939  -224.8361     8.2611   0.06971575   5.03433371  -0.02204103   0.06608032   0.99757081
+504  1703.3400    75.0000  -175.0000    74.9939  -174.9228     5.3268   0.05601357   5.11741114  -0.02206000   0.05145480   0.99843162
+505  1703.3400    75.0000  -125.0000    74.9939  -124.9719     3.1238   0.04291328   5.25287199  -0.02207426   0.03678514   0.99907935
+506  1703.3400    75.0000   125.0000    74.9939   124.9719     3.1238   0.04291328   1.03031349  -0.02207425  -0.03678514   0.99907935
+507  1703.3400    75.0000   175.0000    74.9939   174.9228     5.3268   0.05601357   1.16577423  -0.02205999  -0.05145480   0.99843162
+508  1709.2200    75.0000   225.0000    74.9939   224.8361     8.2611   0.06971575   1.24885154  -0.02204104  -0.06608032   0.99757081
+509  1709.2200    75.0000   275.0000    74.9939   274.7011    11.9242   0.08369853   1.30428874  -0.02201744  -0.08064944   0.99649930
+510  1718.1400    75.0000   325.0000    74.9939   324.5073    16.3131   0.09781386   1.34368265  -0.02198928  -0.09515014   0.99522007
+511  1718.1400    75.0000   375.0000    74.9939   374.2443    21.4240   0.11198288   1.37302816  -0.02195661  -0.10957072   0.99373645
+512  1730.0601    75.0000   425.0000    74.9939   423.9018    27.2525   0.12615816   1.39569473  -0.02191953  -0.12389979   0.99205261
+513  1730.0601    75.0000   475.0000    74.9939   473.4697    33.7938   0.14030823   1.41370916  -0.02187814  -0.13812639   0.99017292
+514  1745.0699    75.0000   525.0000    74.9939   522.9382    41.0424   0.15441042   1.42835879  -0.02183255  -0.15224004   0.98810238
+515  1745.0699    75.0000   575.0000    74.9939   572.2976    48.9924   0.16844730   1.44049871  -0.02178288  -0.16623069   0.98584628
+516  1763.2600    75.0000   625.0000    74.9939   621.5383    57.6373   0.18240470   1.45071828  -0.02172924  -0.18008873   0.98341036
+517  1763.2600    75.0000   675.0000    74.9939   670.6511    66.9702   0.19627079   1.45943642  -0.02167178  -0.19380516   0.98080063
+518  1784.7300    75.0000   725.0000    74.9939   719.6271    76.9834   0.21003537   1.46695900  -0.02161063  -0.20737149   0.97802353
+519  1784.7300    75.0000   775.0000    74.9939   768.4574    87.6692   0.22368950   1.47351420  -0.02154595  -0.22077985   0.97508568
+520  1805.4000    75.0000   825.0000    74.9939   817.1337    99.0194   0.23722523   1.47927594  -0.02147787  -0.23402296   0.97199380
+521  1805.4000   125.0000  -825.0000   124.9719  -817.1337   100.4890   0.23891383   4.86415243  -0.03577673   0.23392743   0.97159559
+522  1784.7300   125.0000  -775.0000   124.9719  -768.4574    89.1389   0.22549459   4.87360477  -0.03589005   0.22068916   0.97468364
+523  1784.7300   125.0000  -725.0000   124.9719  -719.6271    78.4531   0.21197213   4.88433599  -0.03599764   0.20728581   0.97761792
+524  1763.2600   125.0000  -675.0000   124.9719  -670.6511    68.4398   0.19835755   4.89662027  -0.03609948   0.19372459   0.98039156
+525  1763.2600   125.0000  -625.0000   124.9719  -621.5383    59.1070   0.18466403   4.91081190  -0.03619507   0.18001349   0.98299801
+526  1745.0699   125.0000  -575.0000   124.9719  -572.2976    50.4621   0.17090724   4.92738295  -0.03628437   0.16616090   0.98543090
+527  1745.0699   125.0000  -525.0000   124.9719  -522.9382    42.5121   0.15710649   4.94696951  -0.03636701   0.15217583   0.98768413
+528  1730.0601   125.0000  -475.0000   124.9719  -473.4697    35.2635   0.14328626   4.97045231  -0.03644287   0.13806790   0.98975205
+529  1730.0601   125.0000  -425.0000   124.9719  -423.9018    28.7222   0.12947854   4.99908066  -0.03651179   0.12384711   0.99162936
+530  1718.1400   125.0000  -375.0000   124.9719  -374.2443    22.8936   0.11572728   5.03467751  -0.03657347   0.10952397   0.99331105
+531  1718.1400   125.0000  -325.0000   124.9719  -324.5073    17.7828   0.10209588   5.07999611  -0.03662786   0.09510942   0.99479276
+532  1718.1400   125.0000  -275.0000   124.9719  -274.7011    13.3939   0.08868136   5.13934135  -0.03667472   0.08061485   0.99607038
+533  1709.2200   125.0000  -225.0000   124.9719  -224.8361     9.7308   0.07564178   5.21970129  -0.03671400   0.06605193   0.99714053
+534  1709.2200   125.0000  -175.0000   124.9719  -174.9228     6.7965   0.06325255   5.33274078  -0.03674555   0.05143264   0.99800020
+535  1703.3400   125.0000  -125.0000   124.9719  -124.9719     4.5935   0.05202308   5.49778700  -0.03676928   0.03676929   0.99864709
+536  1703.3400   125.0000   -75.0000   124.9719   -74.9939     3.1238   0.04291328   5.74270248  -0.03678514   0.02207425   0.99907935
+537  1703.3400   125.0000   -25.0000   124.9719   -24.9998     2.3887   0.03753085   6.08574820  -0.03679309   0.00736021   0.99929577
+538  1703.3400   125.0000    25.0000   124.9719    24.9998     2.3887   0.03753085   0.19743726  -0.03679308  -0.00736021   0.99929577
+539  1703.3400   125.0000    75.0000   124.9719    74.9939     3.1238   0.04291328   0.54048276  -0.03678514  -0.02207425   0.99907935
+540  1703.3400   125.0000   125.0000   124.9719   124.9719     4.5935   0.05202308   0.78539819  -0.03676928  -0.03676929   0.99864709
+541  1709.2200   125.0000   175.0000   124.9719   174.9228     6.7965   0.06325255   0.95044452  -0.03674555  -0.05143264   0.99800020
+542  1709.2200   125.0000   225.0000   124.9719   224.8361     9.7308   0.07564178   1.06348383  -0.03671401  -0.06605192   0.99714053
+543  1718.1400   125.0000   275.0000   124.9719   274.7011    13.3939   0.08868136   1.14384377  -0.03667473  -0.08061484   0.99607038
+544  1718.1400   125.0000   325.0000   124.9719   324.5073    17.7828   0.10209588   1.20318925  -0.03662786  -0.09510943   0.99479276
+545  1718.1400   125.0000   375.0000   124.9719   374.2443    22.8936   0.11572728   1.24850762  -0.03657349  -0.10952397   0.99331105
+546  1730.0601   125.0000   425.0000   124.9719   423.9018    28.7222   0.12947854   1.28410470  -0.03651178  -0.12384711   0.99162936
+547  1730.0601   125.0000   475.0000   124.9719   473.4697    35.2635   0.14328626   1.31273282  -0.03644289  -0.13806790   0.98975205
+548  1745.0699   125.0000   525.0000   124.9719   522.9382    42.5121   0.15710649   1.33621573  -0.03636703  -0.15217583   0.98768413
+549  1745.0699   125.0000   575.0000   124.9719   572.2976    50.4621   0.17090724   1.35580254  -0.03628434  -0.16616090   0.98543090
+550  1763.2600   125.0000   625.0000   124.9719   621.5383    59.1070   0.18466403   1.37237334  -0.03619508  -0.18001348   0.98299801
+551  1763.2600   125.0000   675.0000   124.9719   670.6511    68.4398   0.19835755   1.38656521  -0.03609945  -0.19372460   0.98039156
+552  1784.7300   125.0000   725.0000   124.9719   719.6271    78.4531   0.21197213   1.39884913  -0.03599768  -0.20728581   0.97761792
+553  1784.7300   125.0000   775.0000   124.9719   768.4574    89.1389   0.22549459   1.40958071  -0.03589001  -0.22068916   0.97468364
+554  1805.4000   125.0000   825.0000   124.9719   817.1337   100.4890   0.23891383   1.41903293  -0.03577672  -0.23392743   0.97159559
+555  1805.4000   175.0000  -825.0000   174.9228  -817.1337   102.6920   0.24141937   4.92327499  -0.05004597   0.23378444   0.97099960
+556  1784.7300   175.0000  -775.0000   174.9228  -768.4574    91.3419   0.22816989   4.93620396  -0.05020427   0.22055341   0.97408199
+557  1784.7300   175.0000  -725.0000   174.9228  -719.6271    80.6560   0.21483852   4.95083857  -0.05035462   0.20715754   0.97701085
+558  1763.2600   175.0000  -675.0000   174.9228  -670.6511    70.6428   0.20144072   4.96752977  -0.05049681   0.19360405   0.97977936
+559  1763.2600   175.0000  -625.0000   174.9228  -621.5383    61.3100   0.18799514   4.98672819  -0.05063047   0.17990088   0.98238093
+560  1763.2600   175.0000  -575.0000   174.9228  -572.2976    52.6651   0.17452455   5.00902128  -0.05075517   0.16605642   0.98480922
+561  1745.0699   175.0000  -525.0000   174.9228  -522.9382    44.7151   0.16105770   5.03518915  -0.05087067   0.15207973   0.98705822
+562  1745.0699   175.0000  -475.0000   174.9228  -473.4697    37.4664   0.14763157   5.06628418  -0.05097670   0.13798034   0.98912221
+563  1730.0601   175.0000  -425.0000   174.9228  -423.9018    30.9251   0.13429515   5.10375214  -0.05107289   0.12376827   0.99099594
+564  1730.0601   175.0000  -375.0000   174.9228  -374.2443    25.0966   0.12111574   5.14962053  -0.05115912   0.10945401   0.99267447
+565  1718.1400   175.0000  -325.0000   174.9228  -324.5073    19.9857   0.10818893   5.20677948  -0.05123505   0.09504851   0.99415326
+566  1718.1400   175.0000  -275.0000   174.9228  -274.7011    15.5969   0.09565578   5.27941084  -0.05130054   0.08056308   0.99542850
+567  1709.2200   175.0000  -225.0000   174.9228  -224.8361    11.9337   0.08373164   5.37357140  -0.05135540   0.06600940   0.99649656
+568  1709.2200   175.0000  -175.0000   174.9228  -174.9228     8.9994   0.07275400   5.49778700  -0.05139947   0.05139948   0.99735457
+569  1709.2200   175.0000  -125.0000   174.9228  -124.9719     6.7965   0.06325255   5.66283369  -0.05143265   0.03674554   0.99800020
+570  1703.3400   175.0000   -75.0000   174.9228   -74.9939     5.3268   0.05601357   5.87816334  -0.05145480   0.02205999   0.99843162
+571  1703.3400   175.0000   -25.0000   174.9228   -24.9998     4.5916   0.05201230   6.14122772  -0.05146589   0.00735545   0.99864769
+572  1703.3400   175.0000    25.0000   174.9228    24.9998     4.5916   0.05201230   0.14195772  -0.05146589  -0.00735546   0.99864769
+573  1703.3400   175.0000    75.0000   174.9228    74.9939     5.3268   0.05601357   0.40502208  -0.05145480  -0.02205999   0.99843162
+574  1709.2200   175.0000   125.0000   174.9228   124.9719     6.7965   0.06325255   0.62035185  -0.05143264  -0.03674555   0.99800020
+575  1709.2200   175.0000   175.0000   174.9228   174.9228     8.9994   0.07275400   0.78539819  -0.05139948  -0.05139948   0.99735457
+576  1709.2200   175.0000   225.0000   174.9228   224.8361    11.9337   0.08373164   0.90961385  -0.05135541  -0.06600940   0.99649656
+577  1718.1400   175.0000   275.0000   174.9228   274.7011    15.5969   0.09565578   1.00377440  -0.05130055  -0.08056308   0.99542850
+578  1718.1400   175.0000   325.0000   174.9228   324.5073    19.9857   0.10818893   1.07640564  -0.05123506  -0.09504850   0.99415326
+579  1730.0601   175.0000   375.0000   174.9228   374.2443    25.0966   0.12111574   1.13356495  -0.05115910  -0.10945402   0.99267447
+580  1730.0601   175.0000   425.0000   174.9228   423.9018    30.9251   0.13429515   1.17943311  -0.05107290  -0.12376827   0.99099594
+581  1745.0699   175.0000   475.0000   174.9228   473.4697    37.4664   0.14763157   1.21690130  -0.05097668  -0.13798034   0.98912221
+582  1745.0699   175.0000   525.0000   174.9228   522.9382    44.7151   0.16105770   1.24799621  -0.05087066  -0.15207973   0.98705822
+583  1763.2600   175.0000   575.0000   174.9228   572.2976    52.6651   0.17452455   1.27416408  -0.05075516  -0.16605642   0.98480922
+584  1763.2600   175.0000   625.0000   174.9228   621.5383    61.3100   0.18799514   1.29645717  -0.05063046  -0.17990088   0.98238093
+585  1763.2600   175.0000   675.0000   174.9228   670.6511    70.6428   0.20144072   1.31565535  -0.05049684  -0.19360405   0.97977936
+586  1784.7300   175.0000   725.0000   174.9228   719.6271    80.6560   0.21483852   1.33234656  -0.05035466  -0.20715752   0.97701085
+587  1784.7300   175.0000   775.0000   174.9228   768.4574    91.3419   0.22816989   1.34698141  -0.05020425  -0.22055343   0.97408199
+588  1805.4000   175.0000   825.0000   174.9228   817.1337   102.6920   0.24141937   1.35991049  -0.05004593  -0.23378445   0.97099960
+589  1805.4000   225.0000  -825.0000   224.8361  -817.1337   105.6263   0.24471071   4.98089647  -0.06427397   0.23359443   0.97020745
+590  1805.4000   225.0000  -775.0000   224.8361  -768.4574    94.2762   0.23167872   4.99702549  -0.06447694   0.22037302   0.97328234
+591  1784.7300   225.0000  -725.0000   224.8361  -719.6271    83.5904   0.21859103   5.01521397  -0.06466985   0.20698705   0.97620398
+592  1784.7300   225.0000  -675.0000   224.8361  -670.6511    73.5771   0.20546794   5.03586388  -0.06485212   0.19344383   0.97896564
+593  1763.2600   225.0000  -625.0000   224.8361  -621.5383    64.2443   0.19233420   5.05948544  -0.06502347   0.17975119   0.98156071
+594  1763.2600   225.0000  -575.0000   224.8361  -572.2976    55.5994   0.17922038   5.08673000  -0.06518333   0.16591761   0.98398298
+595  1745.0699   225.0000  -525.0000   224.8361  -522.9382    47.6494   0.16616496   5.11844301  -0.06533144   0.15195201   0.98622632
+596  1745.0699   225.0000  -475.0000   224.8361  -473.4697    40.4007   0.15321741   5.15573025  -0.06546731   0.13786398   0.98828518
+597  1730.0601   225.0000  -425.0000   224.8361  -423.9018    33.8594   0.14044267   5.20005703  -0.06559069   0.12366351   0.99015415
+598  1730.0601   225.0000  -375.0000   224.8361  -374.2443    28.0309   0.12792800   5.25337696  -0.06570122   0.10936106   0.99182838
+599  1718.1400   225.0000  -325.0000   224.8361  -324.5073    22.9200   0.11579338   5.31830263  -0.06579860   0.09496754   0.99330342
+600  1718.1400   225.0000  -275.0000   224.8361  -274.7011    18.5312   0.10420696   5.39829445  -0.06588259   0.08049426   0.99457538
+601  1718.1400   225.0000  -225.0000   224.8361  -224.8361    14.8680   0.09340727   5.49778700  -0.06595290   0.06595292   0.99564070
+602  1709.2200   225.0000  -175.0000   224.8361  -174.9228    11.9337   0.08373164   5.62200308  -0.06600942   0.05135539   0.99649656
+603  1709.2200   225.0000  -125.0000   224.8361  -124.9719     9.7308   0.07564178   5.77587271  -0.06605192   0.03671402   0.99714053
+604  1709.2200   225.0000   -75.0000   224.8361   -74.9939     8.2611   0.06971575   5.96124029  -0.06608032   0.02204105   0.99757081
+605  1709.2200   225.0000   -25.0000   224.8361   -24.9998     7.5259   0.06655098   6.17244911  -0.06609455   0.00734912   0.99778628
+606  1709.2200   225.0000    25.0000   224.8361    24.9998     7.5259   0.06655098   0.11073635  -0.06609455  -0.00734913   0.99778628
+607  1709.2200   225.0000    75.0000   224.8361    74.9939     8.2611   0.06971575   0.32194480  -0.06608032  -0.02204104   0.99757081
+608  1709.2200   225.0000   125.0000   224.8361   124.9719     9.7308   0.07564178   0.50731242  -0.06605192  -0.03671401   0.99714053
+609  1709.2200   225.0000   175.0000   224.8361   174.9228    11.9337   0.08373164   0.66118246  -0.06600940  -0.05135541   0.99649656
+610  1718.1400   225.0000   225.0000   224.8361   224.8361    14.8680   0.09340727   0.78539819  -0.06595290  -0.06595291   0.99564070
+611  1718.1400   225.0000   275.0000   224.8361   274.7011    18.5312   0.10420696   0.88489097  -0.06588258  -0.08049427   0.99457538
+612  1718.1400   225.0000   325.0000   224.8361   324.5073    22.9200   0.11579338   0.96488261  -0.06579861  -0.09496753   0.99330342
+613  1730.0601   225.0000   375.0000   224.8361   374.2443    28.0309   0.12792800   1.02980816  -0.06570124  -0.10936105   0.99182838
+614  1730.0601   225.0000   425.0000   224.8361   423.9018    33.8594   0.14044267   1.08312809  -0.06559072  -0.12366350   0.99015415
+615  1745.0699   225.0000   475.0000   224.8361   473.4697    40.4007   0.15321741   1.12745488  -0.06546733  -0.13786398   0.98828518
+616  1745.0699   225.0000   525.0000   224.8361   522.9382    47.6494   0.16616496   1.16474235  -0.06533143  -0.15195201   0.98622632
+617  1763.2600   225.0000   575.0000   224.8361   572.2976    55.5994   0.17922038   1.19645524  -0.06518334  -0.16591759   0.98398298
+618  1763.2600   225.0000   625.0000   224.8361   621.5383    64.2443   0.19233420   1.22370005  -0.06502344  -0.17975120   0.98156071
+619  1784.7300   225.0000   675.0000   224.8361   670.6511    73.5771   0.20546794   1.24732137  -0.06485213  -0.19344383   0.97896564
+620  1784.7300   225.0000   725.0000   224.8361   719.6271    83.5904   0.21859103   1.26797140  -0.06466984  -0.20698705   0.97620398
+621  1805.4000   225.0000   775.0000   224.8361   768.4574    94.2762   0.23167872   1.28615963  -0.06447699  -0.22037300   0.97328234
+622  1805.4000   225.0000   825.0000   224.8361   817.1337   105.6263   0.24471071   1.30228865  -0.06427401  -0.23359442   0.97020745
+623  1805.4000   275.0000  -825.0000   274.7011  -817.1337   109.2895   0.24874869   5.03669596  -0.07844936   0.23335785   0.96922123
+624  1805.4000   275.0000  -775.0000   274.7011  -768.4574    97.9393   0.23597544   5.05570364  -0.07869660   0.22014840   0.97228676
+625  1784.7300   275.0000  -725.0000   274.7011  -719.6271    87.2535   0.22317588   5.07704401  -0.07893150   0.20677485   0.97519946
+626  1784.7300   275.0000  -675.0000   274.7011  -670.6511    77.2402   0.21037526   5.10114670  -0.07915357   0.19324438   0.97795260
+627  1763.2600   275.0000  -625.0000   274.7011  -621.5383    67.9074   0.19760442   5.12854481  -0.07936222   0.17956488   0.98053968
+628  1763.2600   275.0000  -575.0000   274.7011  -572.2976    59.2625   0.18490130   5.15990639  -0.07955697   0.16574478   0.98295438
+629  1745.0699   275.0000  -525.0000   274.7011  -522.9382    51.3125   0.17231330   5.19607353  -0.07973734   0.15179302   0.98519075
+630  1745.0699   275.0000  -475.0000   274.7011  -473.4697    44.0639   0.15990058   5.23811293  -0.07990288   0.13771911   0.98724312
+631  1745.0699   275.0000  -425.0000   274.7011  -423.9018    37.5226   0.14774057   5.28737831  -0.08005317   0.12353306   0.98910618
+632  1730.0601   275.0000  -375.0000   274.7011  -374.2443    31.6941   0.13593437   5.34558153  -0.08018779   0.10924531   0.99077517
+633  1730.0601   275.0000  -325.0000   274.7011  -324.5073    26.5832   0.12461551   5.41485786  -0.08030636   0.09486673   0.99224555
+634  1718.1400   275.0000  -275.0000   274.7011  -274.7011    22.1943   0.11396147   5.49778700  -0.08040860   0.08040863   0.99351341
+635  1718.1400   275.0000  -225.0000   274.7011  -224.8361    18.5312   0.10420696   5.59728003  -0.08049428   0.06588257   0.99457538
+636  1718.1400   275.0000  -175.0000   274.7011  -174.9228    15.5969   0.09565578   5.71616316  -0.08056306   0.05130057   0.99542850
+637  1718.1400   275.0000  -125.0000   274.7011  -124.9719    13.3939   0.08868136   5.85623264  -0.08061484   0.03667475   0.99607038
+638  1709.2200   275.0000   -75.0000   274.7011   -74.9939    11.9242   0.08369853   6.01667786  -0.08064944   0.02201743   0.99649930
+639  1709.2200   275.0000   -25.0000   274.7011   -24.9998    11.1891   0.08108898   6.19242811  -0.08066677   0.00734126   0.99671412
+640  1709.2200   275.0000    25.0000   274.7011    24.9998    11.1891   0.08108898   0.09075727  -0.08066677  -0.00734126   0.99671412
+641  1709.2200   275.0000    75.0000   274.7011    74.9939    11.9242   0.08369853   0.26650754  -0.08064944  -0.02201744   0.99649930
+642  1718.1400   275.0000   125.0000   274.7011   124.9719    13.3939   0.08868136   0.42695254  -0.08061484  -0.03667473   0.99607038
+643  1718.1400   275.0000   175.0000   274.7011   174.9228    15.5969   0.09565578   0.56702197  -0.08056308  -0.05130055   0.99542850
+644  1718.1400   275.0000   225.0000   274.7011   224.8361    18.5312   0.10420696   0.68590534  -0.08049427  -0.06588258   0.99457538
+645  1718.1400   275.0000   275.0000   274.7011   274.7011    22.1943   0.11396147   0.78539819  -0.08040861  -0.08040862   0.99351341
+646  1730.0601   275.0000   325.0000   274.7011   324.5073    26.5832   0.12461551   0.86832750  -0.08030636  -0.09486674   0.99224555
+647  1730.0601   275.0000   375.0000   274.7011   374.2443    31.6941   0.13593437   0.93760401  -0.08018777  -0.10924532   0.99077517
+648  1745.0699   275.0000   425.0000   274.7011   423.9018    37.5226   0.14774057   0.99580717  -0.08005315  -0.12353308   0.98910618
+649  1745.0699   275.0000   475.0000   274.7011   473.4697    44.0639   0.15990058   1.04507244  -0.07990287  -0.13771912   0.98724312
+650  1745.0699   275.0000   525.0000   274.7011   522.9382    51.3125   0.17231330   1.08711159  -0.07973737  -0.15179302   0.98519075
+651  1763.2600   275.0000   575.0000   274.7011   572.2976    59.2625   0.18490130   1.12327886  -0.07955698  -0.16574478   0.98295438
+652  1763.2600   275.0000   625.0000   274.7011   621.5383    67.9074   0.19760442   1.15464044  -0.07936224  -0.17956488   0.98053968
+653  1784.7300   275.0000   675.0000   274.7011   670.6511    77.2402   0.21037526   1.18203855  -0.07915358  -0.19324437   0.97795260
+654  1784.7300   275.0000   725.0000   274.7011   719.6271    87.2535   0.22317588   1.20614111  -0.07893153  -0.20677483   0.97519946
+655  1805.4000   275.0000   775.0000   274.7011   768.4574    97.9393   0.23597544   1.22748148  -0.07869664  -0.22014838   0.97228676
+656  1805.4000   275.0000   825.0000   274.7011   817.1337   109.2895   0.24874869   1.24648917  -0.07844941  -0.23335783   0.96922123
+657  1805.4000   325.0000  -825.0000   324.5073  -817.1337   113.6783   0.25348800   5.09041786  -0.09256095   0.23307529   0.96804357
+658  1805.4000   325.0000  -775.0000   324.5073  -768.4574   102.3282   0.24100770   5.11195707  -0.09285193   0.21988018   0.97109795
+659  1784.7300   325.0000  -725.0000   324.5073  -719.6271    91.6424   0.22853206   5.13602257  -0.09312834   0.20652144   0.97399998
+660  1784.7300   325.0000  -675.0000   324.5073  -670.6511    81.6291   0.21609105   5.16304874  -0.09338973   0.19300620   0.97674304
+661  1784.7300   325.0000  -625.0000   324.5073  -621.5383    72.2963   0.20372099   5.19356251  -0.09363527   0.17934240   0.97932053
+662  1763.2600   325.0000  -575.0000   324.5073  -572.2976    63.6514   0.19146617   5.22820950  -0.09386449   0.16553842   0.98172629
+663  1763.2600   325.0000  -525.0000   324.5073  -522.9382    55.7014   0.17938119   5.26777935  -0.09407680   0.15160315   0.98395431
+664  1745.0699   325.0000  -475.0000   324.5073  -473.4697    48.4527   0.16753416   5.31323624  -0.09427157   0.13754617   0.98599893
+665  1745.0699   325.0000  -425.0000   324.5073  -423.9018    41.9114   0.15601057   5.36575222  -0.09444842   0.12337733   0.98785502
+666  1730.0601   325.0000  -375.0000   324.5073  -374.2443    36.0829   0.14491870   5.42672729  -0.09460683   0.10910713   0.98951763
+667  1730.0601   325.0000  -325.0000   324.5073  -324.5073    30.9721   0.13439584   5.49778700  -0.09474637   0.09474640   0.99098247
+668  1730.0601   325.0000  -275.0000   324.5073  -274.7011    26.5832   0.12461551   5.58071661  -0.09486675   0.08030634   0.99224555
+669  1718.1400   325.0000  -225.0000   324.5073  -224.8361    22.9200   0.11579338   5.67727184  -0.09496754   0.06579859   0.99330342
+670  1718.1400   325.0000  -175.0000   324.5073  -174.9228    19.9857   0.10818893   5.78879452  -0.09504849   0.05123507   0.99415326
+671  1718.1400   325.0000  -125.0000   324.5073  -124.9719    17.7828   0.10209588   5.91557837  -0.09510943   0.03662784   0.99479276
+672  1718.1400   325.0000   -75.0000   324.5073   -74.9939    16.3131   0.09781386   6.05607176  -0.09515014   0.02198927   0.99522007
+673  1718.1400   325.0000   -25.0000   324.5073   -24.9998    15.5779   0.09559806   6.20629787  -0.09517051   0.00733187   0.99543399
+674  1718.1400   325.0000    25.0000   324.5073    24.9998    15.5779   0.09559806   0.07688738  -0.09517051  -0.00733187   0.99543399
+675  1718.1400   325.0000    75.0000   324.5073    74.9939    16.3131   0.09781386   0.22711363  -0.09515014  -0.02198927   0.99522007
+676  1718.1400   325.0000   125.0000   324.5073   124.9719    17.7828   0.10209588   0.36760706  -0.09510943  -0.03662786   0.99479276
+677  1718.1400   325.0000   175.0000   324.5073   174.9228    19.9857   0.10818893   0.49439064  -0.09504850  -0.05123506   0.99415326
+678  1718.1400   325.0000   225.0000   324.5073   224.8361    22.9200   0.11579338   0.60591370  -0.09496753  -0.06579861   0.99330342
+679  1730.0601   325.0000   275.0000   324.5073   274.7011    26.5832   0.12461551   0.70246881  -0.09486674  -0.08030635   0.99224555
+680  1730.0601   325.0000   325.0000   324.5073   324.5073    30.9721   0.13439584   0.78539819  -0.09474638  -0.09474639   0.99098247
+681  1730.0601   325.0000   375.0000   324.5073   374.2443    36.0829   0.14491870   0.85645813  -0.09460682  -0.10910714   0.98951763
+682  1745.0699   325.0000   425.0000   324.5073   423.9018    41.9114   0.15601057   0.91743320  -0.09444841  -0.12337735   0.98785502
+683  1745.0699   325.0000   475.0000   324.5073   473.4697    48.4527   0.16753416   0.96994907  -0.09427157  -0.13754617   0.98599893
+684  1763.2600   325.0000   525.0000   324.5073   522.9382    55.7014   0.17938119   1.01540613  -0.09407677  -0.15160316   0.98395431
+685  1763.2600   325.0000   575.0000   324.5073   572.2976    63.6514   0.19146617   1.05497575  -0.09386450  -0.16553842   0.98172629
+686  1784.7300   325.0000   625.0000   324.5073   621.5383    72.2963   0.20372099   1.08962274  -0.09363528  -0.17934240   0.97932053
+687  1784.7300   325.0000   675.0000   324.5073   670.6511    81.6291   0.21609105   1.12013662  -0.09338971  -0.19300620   0.97674304
+688  1784.7300   325.0000   725.0000   324.5073   719.6271    91.6424   0.22853206   1.14716256  -0.09312838  -0.20652142   0.97399998
+689  1805.4000   325.0000   775.0000   324.5073   768.4574   102.3282   0.24100770   1.17122841  -0.09285188  -0.21988019   0.97109795
+690  1805.4000   325.0000   825.0000   324.5073   817.1337   113.6783   0.25348800   1.19276762  -0.09256090  -0.23307531   0.96804357
+691  1805.4000   375.0000  -775.0000   374.2443  -768.4574   107.4391   0.24671859   5.16558838  -0.10693172   0.21956910   0.96971905
+692  1805.4000   375.0000  -725.0000   374.2443  -719.6271    96.7532   0.23459409   5.19194984  -0.10724919   0.20622750   0.97260875
+693  1784.7300   375.0000  -675.0000   374.2443  -670.6511    86.7400   0.22253957   5.22137737  -0.10754936   0.19272996   0.97534007
+694  1784.7300   375.0000  -625.0000   374.2443  -621.5383    77.4072   0.21059583   5.25437021  -0.10783134   0.17908438   0.97790653
+695  1763.2600   375.0000  -575.0000   374.2443  -572.2976    68.7622   0.19881210   5.29152393  -0.10809450   0.16529910   0.98030186
+696  1763.2600   375.0000  -525.0000   374.2443  -522.9382    60.8122   0.18724811   5.33354568  -0.10833825   0.15138300   0.98252022
+697  1763.2600   375.0000  -475.0000   374.2443  -473.4697    53.5636   0.17597687   5.38126659  -0.10856193   0.13734560   0.98455596
+698  1745.0699   375.0000  -425.0000   374.2443  -423.9018    47.0223   0.16508774   5.43565130  -0.10876503   0.12319674   0.98640394
+699  1745.0699   375.0000  -375.0000   374.2443  -374.2443    41.1938   0.15469038   5.49778700  -0.10894689   0.10894692   0.98805928
+700  1730.0601   375.0000  -325.0000   374.2443  -324.5073    36.0829   0.14491870   5.56884718  -0.10910715   0.09460682   0.98951763
+701  1730.0601   375.0000  -275.0000   374.2443  -274.7011    31.6941   0.13593437   5.64999294  -0.10924532   0.08018777   0.99077517
+702  1730.0601   375.0000  -225.0000   374.2443  -224.8361    28.0309   0.12792800   5.74219704  -0.10936105   0.06570125   0.99182838
+703  1730.0601   375.0000  -175.0000   374.2443  -174.9228    25.0966   0.12111574   5.84595394  -0.10945402   0.05115910   0.99267447
+704  1718.1400   375.0000  -125.0000   374.2443  -124.9719    22.8936   0.11572728   5.96089649  -0.10952397   0.03657350   0.99331105
+705  1718.1400   375.0000   -75.0000   374.2443   -74.9939    21.4240   0.11198288   6.08541727  -0.10957072   0.02195659   0.99373645
+706  1718.1400   375.0000   -25.0000   374.2443   -24.9998    20.6888   0.11006044   6.21648359  -0.10959412   0.00732098   0.99394947
+707  1718.1400   375.0000    25.0000   374.2443    24.9998    20.6888   0.11006044   0.06670165  -0.10959412  -0.00732097   0.99394947
+708  1718.1400   375.0000    75.0000   374.2443    74.9939    21.4240   0.11198288   0.19776818  -0.10957072  -0.02195661   0.99373645
+709  1718.1400   375.0000   125.0000   374.2443   124.9719    22.8936   0.11572728   0.32228866  -0.10952397  -0.03657348   0.99331105
+710  1730.0601   375.0000   175.0000   374.2443   174.9228    25.0966   0.12111574   0.43723142  -0.10945402  -0.05115911   0.99267447
+711  1730.0601   375.0000   225.0000   374.2443   224.8361    28.0309   0.12792800   0.54098815  -0.10936105  -0.06570123   0.99182838
+712  1730.0601   375.0000   275.0000   374.2443   274.7011    31.6941   0.13593437   0.63319230  -0.10924532  -0.08018776   0.99077517
+713  1730.0601   375.0000   325.0000   374.2443   324.5073    36.0829   0.14491870   0.71433818  -0.10910714  -0.09460682   0.98951763
+714  1745.0699   375.0000   375.0000   374.2443   374.2443    41.1938   0.15469038   0.78539819  -0.10894690  -0.10894690   0.98805928
+715  1745.0699   375.0000   425.0000   374.2443   423.9018    47.0223   0.16508774   0.84753412  -0.10876501  -0.12319676   0.98640394
+716  1763.2600   375.0000   475.0000   374.2443   473.4697    53.5636   0.17597687   0.90191853  -0.10856196  -0.13734558   0.98455596
+717  1763.2600   375.0000   525.0000   374.2443   522.9382    60.8122   0.18724811   0.94963950  -0.10833827  -0.15138298   0.98252022
+718  1763.2600   375.0000   575.0000   374.2443   572.2976    68.7622   0.19881210   0.99166119  -0.10809453  -0.16529907   0.98030186
+719  1784.7300   375.0000   625.0000   374.2443   621.5383    77.4072   0.21059583   1.02881515  -0.10783134  -0.17908438   0.97790653
+720  1784.7300   375.0000   675.0000   374.2443   670.6511    86.7400   0.22253957   1.06180799  -0.10754935  -0.19272996   0.97534007
+721  1805.4000   375.0000   725.0000   374.2443   719.6271    96.7532   0.23459409   1.09123528  -0.10724923  -0.20622748   0.97260875
+722  1805.4000   375.0000   775.0000   374.2443   768.4574   107.4391   0.24671859   1.11759686  -0.10693174  -0.21956910   0.96971905
+723  1805.4000   425.0000  -725.0000   423.9018  -719.6271   102.5817   0.24129471   5.24472380  -0.12128332   0.20589378   0.97102940
+724  1784.7300   425.0000  -675.0000   423.9018  -670.6511    92.5685   0.22964412   5.27605963  -0.12162156   0.19241640   0.97374749
+725  1784.7300   425.0000  -625.0000   423.9018  -621.5383    83.2357   0.21814133   5.31094599  -0.12193944   0.17879146   0.97630137
+726  1784.7300   425.0000  -575.0000   423.9018  -572.2976    74.5908   0.20683894   5.34991264  -0.12223610   0.16502739   0.97868496
+727  1763.2600   425.0000  -525.0000   423.9018  -522.9382    66.6407   0.19579971   5.39356947  -0.12251082   0.15113305   0.98089242
+728  1763.2600   425.0000  -475.0000   423.9018  -473.4697    59.3921   0.18509875   5.44260645  -0.12276291   0.13711789   0.98291808
+729  1763.2600   425.0000  -425.0000   423.9018  -423.9018    52.8508   0.17482582   5.49778700  -0.12299174   0.12299178   0.98475683
+730  1745.0699   425.0000  -375.0000   423.9018  -374.2443    47.0223   0.16508774   5.55992317  -0.12319677   0.10876501   0.98640394
+731  1745.0699   425.0000  -325.0000   423.9018  -324.5073    41.9114   0.15601057   5.62982225  -0.12337735   0.09444840   0.98785502
+732  1745.0699   425.0000  -275.0000   423.9018  -274.7011    37.5226   0.14774057   5.70819616  -0.12353308   0.08005315   0.98910618
+733  1730.0601   425.0000  -225.0000   423.9018  -224.8361    33.8594   0.14044267   5.79551697  -0.12366349   0.06559072   0.99015415
+734  1730.0601   425.0000  -175.0000   423.9018  -174.9228    30.9251   0.13429515   5.89182234  -0.12376828   0.05107287   0.99099594
+735  1730.0601   425.0000  -125.0000   423.9018  -124.9719    28.7222   0.12947854   5.99649382  -0.12384712   0.03651176   0.99162936
+736  1730.0601   425.0000   -75.0000   423.9018   -74.9939    27.2525   0.12615816   6.10808372  -0.12389979   0.02191953   0.99205261
+737  1730.0601   425.0000   -25.0000   423.9018   -24.9998    26.5173   0.12446258   6.22427797  -0.12392616   0.00730862   0.99226451
+738  1730.0601   425.0000    25.0000   423.9018    24.9998    26.5173   0.12446258   0.05890722  -0.12392616  -0.00730860   0.99226451
+739  1730.0601   425.0000    75.0000   423.9018    74.9939    27.2525   0.12615816   0.17510158  -0.12389979  -0.02191953   0.99205261
+740  1730.0601   425.0000   125.0000   423.9018   124.9719    28.7222   0.12947854   0.28669161  -0.12384711  -0.03651178   0.99162936
+741  1730.0601   425.0000   175.0000   423.9018   174.9228    30.9251   0.13429515   0.39136320  -0.12376827  -0.05107290   0.99099594
+742  1730.0601   425.0000   225.0000   423.9018   224.8361    33.8594   0.14044267   0.48766822  -0.12366350  -0.06559071   0.99015415
+743  1745.0699   425.0000   275.0000   423.9018   274.7011    37.5226   0.14774057   0.57498914  -0.12353308  -0.08005315   0.98910618
+744  1745.0699   425.0000   325.0000   423.9018   324.5073    41.9114   0.15601057   0.65336311  -0.12337735  -0.09444840   0.98785502
+745  1745.0699   425.0000   375.0000   423.9018   374.2443    47.0223   0.16508774   0.72326219  -0.12319676  -0.10876501   0.98640394
+746  1763.2600   425.0000   425.0000   423.9018   423.9018    52.8508   0.17482582   0.78539819  -0.12299176  -0.12299176   0.98475683
+747  1763.2600   425.0000   475.0000   423.9018   473.4697    59.3921   0.18509875   0.84057885  -0.12276291  -0.13711789   0.98291808
+748  1763.2600   425.0000   525.0000   423.9018   522.9382    66.6407   0.19579971   0.88961595  -0.12251081  -0.15113306   0.98089242
+749  1784.7300   425.0000   575.0000   423.9018   572.2976    74.5908   0.20683894   0.93327278  -0.12223607  -0.16502741   0.97868496
+750  1784.7300   425.0000   625.0000   423.9018   621.5383    83.2357   0.21814133   0.97223943  -0.12193943  -0.17879148   0.97630137
+751  1784.7300   425.0000   675.0000   423.9018   670.6511    92.5685   0.22964412   1.00712550  -0.12162159  -0.19241637   0.97374749
+752  1805.4000   425.0000   725.0000   423.9018   719.6271   102.5817   0.24129471   1.03846157  -0.12128331  -0.20589380   0.97102940
+753  1805.4000   475.0000  -675.0000   473.4697  -670.6511    99.1098   0.23732954   5.32712030  -0.13559589   0.19206630   0.97196931
+754  1784.7300   475.0000  -625.0000   473.4697  -621.5383    89.7770   0.22627315   5.36338091  -0.13594899   0.17846444   0.97450930
+755  1784.7300   475.0000  -575.0000   473.4697  -572.2976    81.1321   0.21545230   5.40356445  -0.13627855   0.16472407   0.97687978
+756  1784.7300   475.0000  -525.0000   473.4697  -522.9382    73.1821   0.20493087   5.44818115  -0.13658369   0.15085402   0.97907507
+757  1763.2600   475.0000  -475.0000   473.4697  -473.4697    65.9334   0.19478387   5.49778700  -0.13686368   0.13686371   0.98108953
+758  1763.2600   475.0000  -425.0000   473.4697  -423.9018    59.3921   0.18509875   5.55296803  -0.13711791   0.12276288   0.98291808
+759  1763.2600   475.0000  -375.0000   473.4697  -374.2443    53.5636   0.17597687   5.61430740  -0.13734557   0.10856198   0.98455596
+760  1745.0699   475.0000  -325.0000   473.4697  -324.5073    48.4527   0.16753416   5.68233824  -0.13754618   0.09427155   0.98599893
+761  1745.0699   475.0000  -275.0000   473.4697  -274.7011    44.0639   0.15990058   5.75746155  -0.13771912   0.07990286   0.98724312
+762  1745.0699   475.0000  -225.0000   473.4697  -224.8361    40.4007   0.15321741   5.83984375  -0.13786396   0.06546734   0.98828518
+763  1745.0699   475.0000  -175.0000   473.4697  -174.9228    37.4664   0.14763157   5.92929029  -0.13798034   0.05097668   0.98912221
+764  1730.0601   475.0000  -125.0000   473.4697  -124.9719    35.2635   0.14328626   6.02512169  -0.13806790   0.03644291   0.98975205
+765  1730.0601   475.0000   -75.0000   473.4697   -74.9939    33.7938   0.14030823   6.12609816  -0.13812639   0.02187814   0.99017292
+766  1730.0601   475.0000   -25.0000   473.4697   -24.9998    33.0586   0.13879332   6.23043299  -0.13815568   0.00729480   0.99038368
+767  1730.0601   475.0000    25.0000   473.4697    24.9998    33.0586   0.13879332   0.05275228  -0.13815568  -0.00729480   0.99038368
+768  1730.0601   475.0000    75.0000   473.4697    74.9939    33.7938   0.14030823   0.15708718  -0.13812639  -0.02187814   0.99017292
+769  1730.0601   475.0000   125.0000   473.4697   124.9719    35.2635   0.14328626   0.25806352  -0.13806790  -0.03644289   0.98975205
+770  1745.0699   475.0000   175.0000   473.4697   174.9228    37.4664   0.14763157   0.35389501  -0.13798036  -0.05097668   0.98912221
+771  1745.0699   475.0000   225.0000   473.4697   224.8361    40.4007   0.15321741   0.44334149  -0.13786396  -0.06546734   0.98828518
+772  1745.0699   475.0000   275.0000   473.4697   274.7011    44.0639   0.15990058   0.52572393  -0.13771911  -0.07990288   0.98724312
+773  1745.0699   475.0000   325.0000   473.4697   324.5073    48.4527   0.16753416   0.60084724  -0.13754617  -0.09427157   0.98599893
+774  1763.2600   475.0000   375.0000   473.4697   374.2443    53.5636   0.17597687   0.66887778  -0.13734558  -0.10856196   0.98455596
+775  1763.2600   475.0000   425.0000   473.4697   423.9018    59.3921   0.18509875   0.73021746  -0.13711789  -0.12276291   0.98291808
+776  1763.2600   475.0000   475.0000   473.4697   473.4697    65.9334   0.19478387   0.78539819  -0.13686369  -0.13686369   0.98108953
+777  1784.7300   475.0000   525.0000   473.4697   522.9382    73.1821   0.20493087   0.83500427  -0.13658367  -0.15085404   0.97907507
+778  1784.7300   475.0000   575.0000   473.4697   572.2976    81.1321   0.21545230   0.87962109  -0.13627851  -0.16472410   0.97687978
+779  1784.7300   475.0000   625.0000   473.4697   621.5383    89.7770   0.22627315   0.91980445  -0.13594899  -0.17846444   0.97450930
+780  1805.4000   475.0000   675.0000   473.4697   670.6511    99.1098   0.23732954   0.95606482  -0.13559592  -0.19206628   0.97196931
+781  1805.4000   525.0000  -625.0000   522.9382  -621.5383    97.0256   0.23491217   5.41184616  -0.14984989   0.17810418   0.97253478
+782  1784.7300   525.0000  -575.0000   522.9382  -572.2976    88.3807   0.22456542   5.45275021  -0.15021165   0.16438994   0.97489095
+783  1784.7300   525.0000  -525.0000   522.9382  -522.9382    80.4307   0.21454726   5.49778700  -0.15054661   0.15054666   0.97707289
+784  1784.7300   525.0000  -475.0000   522.9382  -473.4697    73.1821   0.20493087   5.54739332  -0.15085405   0.13658366   0.97907507
+785  1763.2600   525.0000  -425.0000   522.9382  -423.9018    66.6407   0.19579971   5.60200500  -0.15113308   0.12251080   0.98089242
+786  1763.2600   525.0000  -375.0000   522.9382  -374.2443    60.8122   0.18724811   5.66202831  -0.15138297   0.10833830   0.98252022
+787  1763.2600   525.0000  -325.0000   522.9382  -324.5073    55.7014   0.17938119   5.72779512  -0.15160316   0.09407677   0.98395431
+788  1745.0699   525.0000  -275.0000   522.9382  -274.7011    51.3125   0.17231330   5.79950047  -0.15179300   0.07973739   0.98519075
+789  1745.0699   525.0000  -225.0000   522.9382  -224.8361    47.6494   0.16616496   5.87713146  -0.15195203   0.06533141   0.98622632
+790  1745.0699   525.0000  -175.0000   522.9382  -174.9228    44.7151   0.16105770   5.96038532  -0.15207973   0.05087064   0.98705822
+791  1745.0699   525.0000  -125.0000   522.9382  -124.9719    42.5121   0.15710649   6.04860497  -0.15217583   0.03636698   0.98768413
+792  1745.0699   525.0000   -75.0000   522.9382   -74.9939    41.0424   0.15441042   6.14074755  -0.15224004   0.02183258   0.98810238
+793  1745.0699   525.0000   -25.0000   522.9382   -24.9998    40.3073   0.15304284   6.23541546  -0.15227219   0.00727956   0.98831177
+794  1745.0699   525.0000    25.0000   522.9382    24.9998    40.3073   0.15304284   0.04777005  -0.15227219  -0.00727959   0.98831177
+795  1745.0699   525.0000    75.0000   522.9382    74.9939    41.0424   0.15441042   0.14243756  -0.15224004  -0.02183255   0.98810238
+796  1745.0699   525.0000   125.0000   522.9382   124.9719    42.5121   0.15710649   0.23458056  -0.15217583  -0.03636702   0.98768413
+797  1745.0699   525.0000   175.0000   522.9382   174.9228    44.7151   0.16105770   0.32280016  -0.15207973  -0.05087066   0.98705822
+798  1745.0699   525.0000   225.0000   522.9382   224.8361    47.6494   0.16616496   0.40605399  -0.15195201  -0.06533143   0.98622632
+799  1745.0699   525.0000   275.0000   522.9382   274.7011    51.3125   0.17231330   0.48368469  -0.15179302  -0.07973737   0.98519075
+800  1763.2600   525.0000   325.0000   522.9382   324.5073    55.7014   0.17938119   0.55539018  -0.15160316  -0.09407677   0.98395431
+801  1763.2600   525.0000   375.0000   522.9382   374.2443    60.8122   0.18724811   0.62115681  -0.15138298  -0.10833827   0.98252022
+802  1763.2600   525.0000   425.0000   522.9382   423.9018    66.6407   0.19579971   0.68118036  -0.15113308  -0.12251081   0.98089242
+803  1784.7300   525.0000   475.0000   522.9382   473.4697    73.1821   0.20493087   0.73579210  -0.15085404  -0.13658367   0.97907507
+804  1784.7300   525.0000   525.0000   522.9382   522.9382    80.4307   0.21454726   0.78539819  -0.15054663  -0.15054664   0.97707289
+805  1784.7300   525.0000   575.0000   522.9382   572.2976    88.3807   0.22456542   0.83043510  -0.15021165  -0.16438994   0.97489095
+806  1805.4000   525.0000   625.0000   522.9382   621.5383    97.0256   0.23491217   0.87133902  -0.14984991  -0.17810416   0.97253478
+807  1805.4000   575.0000  -575.0000   572.2976  -572.2976    96.3307   0.23409981   5.49778700  -0.16402572   0.16402577   0.97272354
+808  1784.7300   575.0000  -525.0000   572.2976  -522.9382    88.3807   0.22456542   5.54282427  -0.16438995   0.15021162   0.97489095
+809  1784.7300   575.0000  -475.0000   572.2976  -473.4697    81.1321   0.21545230   5.59201002  -0.16472408   0.13627852   0.97687978
+810  1784.7300   575.0000  -425.0000   572.2976  -423.9018    74.5908   0.20683894   5.64566183  -0.16502742   0.12223607   0.97868496
+811  1763.2600   575.0000  -375.0000   572.2976  -374.2443    68.7622   0.19881210   5.70405006  -0.16529907   0.10809454   0.98030186
+812  1763.2600   575.0000  -325.0000   572.2976  -324.5073    63.6514   0.19146617   5.76736498  -0.16553843   0.09386446   0.98172629
+813  1763.2600   575.0000  -275.0000   572.2976  -274.7011    59.2625   0.18490130   5.83566761  -0.16574475   0.07955702   0.98295438
+814  1763.2600   575.0000  -225.0000   572.2976  -224.8361    55.5994   0.17922038   5.90884447  -0.16591761   0.06518330   0.98398298
+815  1763.2600   575.0000  -175.0000   572.2976  -174.9228    52.6651   0.17452455   5.98655319  -0.16605644   0.05075514   0.98480922
+816  1745.0699   575.0000  -125.0000   572.2976  -124.9719    50.4621   0.17090724   6.06819153  -0.16616090   0.03628434   0.98543090
+817  1745.0699   575.0000   -75.0000   572.2976   -74.9939    48.9924   0.16844730   6.15288782  -0.16623069   0.02178285   0.98584628
+818  1745.0699   575.0000   -25.0000   572.2976   -24.9998    48.2573   0.16720217   6.23952961  -0.16626564   0.00726306   0.98605424
+819  1745.0699   575.0000    25.0000   572.2976    24.9998    48.2573   0.16720217   0.04365546  -0.16626564  -0.00726302   0.98605424
+820  1745.0699   575.0000    75.0000   572.2976    74.9939    48.9924   0.16844730   0.13029762  -0.16623069  -0.02178288   0.98584628
+821  1745.0699   575.0000   125.0000   572.2976   124.9719    50.4621   0.17090724   0.21499380  -0.16616090  -0.03628434   0.98543090
+822  1763.2600   575.0000   175.0000   572.2976   174.9228    52.6651   0.17452455   0.29663226  -0.16605642  -0.05075516   0.98480922
+823  1763.2600   575.0000   225.0000   572.2976   224.8361    55.5994   0.17922038   0.37434104  -0.16591761  -0.06518333   0.98398298
+824  1763.2600   575.0000   275.0000   572.2976   274.7011    59.2625   0.18490130   0.44751751  -0.16574477  -0.07955699   0.98295438
+825  1763.2600   575.0000   325.0000   572.2976   324.5073    63.6514   0.19146617   0.51582050  -0.16553842  -0.09386449   0.98172629
+826  1763.2600   575.0000   375.0000   572.2976   374.2443    68.7622   0.19881210   0.57913512  -0.16529907  -0.10809453   0.98030186
+827  1784.7300   575.0000   425.0000   572.2976   423.9018    74.5908   0.20683894   0.63752359  -0.16502741  -0.12223608   0.97868496
+828  1784.7300   575.0000   475.0000   572.2976   473.4697    81.1321   0.21545230   0.69117522  -0.16472410  -0.13627851   0.97687978
+829  1784.7300   575.0000   525.0000   572.2976   522.9382    88.3807   0.22456542   0.74036121  -0.16438994  -0.15021165   0.97489095
+830  1805.4000   575.0000   575.0000   572.2976   572.2976    96.3307   0.23409981   0.78539819  -0.16402574  -0.16402575   0.97272354
+831  1805.4000   625.0000  -525.0000   621.5383  -522.9382    97.0256   0.23491217   5.58372784  -0.17810413   0.14984994   0.97253478
+832  1784.7300   625.0000  -475.0000   621.5383  -473.4697    89.7770   0.22627315   5.63219357  -0.17846446   0.13594896   0.97450930
+833  1784.7300   625.0000  -425.0000   621.5383  -423.9018    83.2357   0.21814133   5.68462849  -0.17879148   0.12193941   0.97630137
+834  1784.7300   625.0000  -375.0000   621.5383  -374.2443    77.4072   0.21059583   5.74120426  -0.17908439   0.10783131   0.97790653
+835  1784.7300   625.0000  -325.0000   621.5383  -324.5073    72.2963   0.20372099   5.80201197  -0.17934242   0.09363524   0.97932053
+836  1763.2600   625.0000  -275.0000   621.5383  -274.7011    67.9074   0.19760442   5.86702919  -0.17956486   0.07936227   0.98053968
+837  1763.2600   625.0000  -225.0000   621.5383  -224.8361    64.2443   0.19233420   5.93608904  -0.17975120   0.06502344   0.98156071
+838  1763.2600   625.0000  -175.0000   621.5383  -174.9228    61.3100   0.18799514   6.00884628  -0.17990088   0.05063044   0.98238093
+839  1763.2600   625.0000  -125.0000   621.5383  -124.9719    59.1070   0.18466403   6.08476257  -0.18001349   0.03619504   0.98299801
+840  1763.2600   625.0000   -75.0000   621.5383   -74.9939    57.6373   0.18240470   6.16310740  -0.18008873   0.02172921   0.98341036
+841  1763.2600   625.0000   -25.0000   621.5383   -24.9998    56.9022   0.18126303   6.24298429  -0.18012640   0.00724517   0.98361677
+842  1763.2600   625.0000    25.0000   621.5383    24.9998    56.9022   0.18126303   0.04020079  -0.18012640  -0.00724513   0.98361677
+843  1763.2600   625.0000    75.0000   621.5383    74.9939    57.6373   0.18240470   0.12007805  -0.18008873  -0.02172924   0.98341036
+844  1763.2600   625.0000   125.0000   621.5383   124.9719    59.1070   0.18466403   0.19842294  -0.18001349  -0.03619508   0.98299801
+845  1763.2600   625.0000   175.0000   621.5383   174.9228    61.3100   0.18799514   0.27433914  -0.17990088  -0.05063045   0.98238093
+846  1763.2600   625.0000   225.0000   621.5383   224.8361    64.2443   0.19233420   0.34709626  -0.17975120  -0.06502344   0.98156071
+847  1763.2600   625.0000   275.0000   621.5383   274.7011    67.9074   0.19760442   0.41615590  -0.17956488  -0.07936224   0.98053968
+848  1784.7300   625.0000   325.0000   621.5383   324.5073    72.2963   0.20372099   0.48117357  -0.17934240  -0.09363528   0.97932053
+849  1784.7300   625.0000   375.0000   621.5383   374.2443    77.4072   0.21059583   0.54198116  -0.17908438  -0.10783134   0.97790653
+850  1784.7300   625.0000   425.0000   621.5383   423.9018    83.2357   0.21814133   0.59855688  -0.17879148  -0.12193942   0.97630137
+851  1784.7300   625.0000   475.0000   621.5383   473.4697    89.7770   0.22627315   0.65099192  -0.17846444  -0.13594899   0.97450930
+852  1805.4000   625.0000   525.0000   621.5383   522.9382    97.0256   0.23491217   0.69945729  -0.17810416  -0.14984991   0.97253478
+853  1805.4000   675.0000  -475.0000   670.6511  -473.4697    99.1098   0.23732954   5.66845369  -0.19206627   0.13559595   0.97196931
+854  1784.7300   675.0000  -425.0000   670.6511  -423.9018    92.5685   0.22964412   5.71951437  -0.19241636   0.12162161   0.97374749
+855  1784.7300   675.0000  -375.0000   670.6511  -374.2443    86.7400   0.22253957   5.77419710  -0.19272998   0.10754932   0.97534007
+856  1784.7300   675.0000  -325.0000   670.6511  -324.5073    81.6291   0.21609105   5.83252573  -0.19300622   0.09338969   0.97674304
+857  1784.7300   675.0000  -275.0000   670.6511  -274.7011    77.2402   0.21037526   5.89442730  -0.19324435   0.07915362   0.97795260
+858  1784.7300   675.0000  -225.0000   670.6511  -224.8361    73.5771   0.20546794   5.95971012  -0.19344382   0.06485217   0.97896564
+859  1763.2600   675.0000  -175.0000   670.6511  -174.9228    70.6428   0.20144072   6.02804422  -0.19360404   0.05049686   0.97977936
+860  1763.2600   675.0000  -125.0000   670.6511  -124.9719    68.4398   0.19835755   6.09895420  -0.19372460   0.03609944   0.98039156
+861  1763.2600   675.0000   -75.0000   670.6511   -74.9939    66.9702   0.19627079   6.17182541  -0.19380516   0.02167178   0.98080063
+862  1763.2600   675.0000   -25.0000   670.6511   -24.9998    66.2350   0.19521770   6.24592543  -0.19384547   0.00722600   0.98100549
+863  1763.2600   675.0000    25.0000   670.6511    24.9998    66.2350   0.19521770   0.03725966  -0.19384547  -0.00722596   0.98100549
+864  1763.2600   675.0000    75.0000   670.6511    74.9939    66.9702   0.19627079   0.11135989  -0.19380516  -0.02167178   0.98080063
+865  1763.2600   675.0000   125.0000   670.6511   124.9719    68.4398   0.19835755   0.18423110  -0.19372460  -0.03609944   0.98039156
+866  1763.2600   675.0000   175.0000   670.6511   174.9228    70.6428   0.20144072   0.25514099  -0.19360405  -0.05049684   0.97977936
+867  1784.7300   675.0000   225.0000   670.6511   224.8361    73.5771   0.20546794   0.32347497  -0.19344383  -0.06485213   0.97896564
+868  1784.7300   675.0000   275.0000   670.6511   274.7011    77.2402   0.21037526   0.38875782  -0.19324437  -0.07915359   0.97795260
+869  1784.7300   675.0000   325.0000   670.6511   324.5073    81.6291   0.21609105   0.45065975  -0.19300620  -0.09338972   0.97674304
+870  1784.7300   675.0000   375.0000   670.6511   374.2443    86.7400   0.22253957   0.50898832  -0.19272996  -0.10754935   0.97534007
+871  1784.7300   675.0000   425.0000   670.6511   423.9018    92.5685   0.22964412   0.56367075  -0.19241638  -0.12162158   0.97374749
+872  1805.4000   675.0000   475.0000   670.6511   473.4697    99.1098   0.23732954   0.61473155  -0.19206627  -0.13559593   0.97196931
+873  1805.4000   725.0000  -425.0000   719.6271  -423.9018   102.5817   0.24129471   5.75085068  -0.20589381   0.12128328   0.97102940
+874  1805.4000   725.0000  -375.0000   719.6271  -374.2443    96.7532   0.23459409   5.80362415  -0.20622747   0.10724925   0.97260875
+875  1784.7300   725.0000  -325.0000   719.6271  -324.5073    91.6424   0.22853206   5.85955143  -0.20652142   0.09312840   0.97399998
+876  1784.7300   725.0000  -275.0000   719.6271  -274.7011    87.2535   0.22317588   5.91852999  -0.20677483   0.07893156   0.97519946
+877  1784.7300   725.0000  -225.0000   719.6271  -224.8361    83.5904   0.21859103   5.98036051  -0.20698707   0.06466981   0.97620398
+878  1784.7300   725.0000  -175.0000   719.6271  -174.9228    80.6560   0.21483852   6.04473543  -0.20715752   0.05035468   0.97701085
+879  1784.7300   725.0000  -125.0000   719.6271  -124.9719    78.4531   0.21197213   6.11123800  -0.20728579   0.03599770   0.97761792
+880  1784.7300   725.0000   -75.0000   719.6271   -74.9939    76.9834   0.21003537   6.17934799  -0.20737149   0.02161063   0.97802353
+881  1784.7300   725.0000   -25.0000   719.6271   -24.9998    76.2482   0.20905904   6.24845934  -0.20741440   0.00720556   0.97822666
+882  1784.7300   725.0000    25.0000   719.6271    24.9998    76.2482   0.20905904   0.03472597  -0.20741440  -0.00720556   0.97822666
+883  1784.7300   725.0000    75.0000   719.6271    74.9939    76.9834   0.21003537   0.10383735  -0.20737149  -0.02161063   0.97802353
+884  1784.7300   725.0000   125.0000   719.6271   124.9719    78.4531   0.21197213   0.17194717  -0.20728581  -0.03599767   0.97761792
+885  1784.7300   725.0000   175.0000   719.6271   174.9228    80.6560   0.21483852   0.23844975  -0.20715752  -0.05035466   0.97701085
+886  1784.7300   725.0000   225.0000   719.6271   224.8361    83.5904   0.21859103   0.30282491  -0.20698707  -0.06466983   0.97620398
+887  1784.7300   725.0000   275.0000   719.6271   274.7011    87.2535   0.22317588   0.36465526  -0.20677483  -0.07893154   0.97519946
+888  1784.7300   725.0000   325.0000   719.6271   324.5073    91.6424   0.22853206   0.42363381  -0.20652142  -0.09312839   0.97399998
+889  1805.4000   725.0000   375.0000   719.6271   374.2443    96.7532   0.23459409   0.47956109  -0.20622748  -0.10724924   0.97260875
+890  1805.4000   725.0000   425.0000   719.6271   423.9018   102.5817   0.24129471   0.53233474  -0.20589380  -0.12128330   0.97102940
+891  1805.4000   775.0000  -375.0000   768.4574  -374.2443   107.4391   0.24671859   5.82998610  -0.21956913   0.10693168   0.96971905
+892  1805.4000   775.0000  -325.0000   768.4574  -324.5073   102.3282   0.24100770   5.88361740  -0.21988019   0.09285188   0.97109795
+893  1805.4000   775.0000  -275.0000   768.4574  -274.7011    97.9393   0.23597544   5.93987036  -0.22014837   0.07869666   0.97228676
+894  1805.4000   775.0000  -225.0000   768.4574  -224.8361    94.2762   0.23167872   5.99854851  -0.22037299   0.06447701   0.97328234
+895  1784.7300   775.0000  -175.0000   768.4574  -174.9228    91.3419   0.22816989   6.05937052  -0.22055343   0.05020422   0.97408199
+896  1784.7300   775.0000  -125.0000   768.4574  -124.9719    89.1389   0.22549459   6.12196970  -0.22068916   0.03589001   0.97468364
+897  1784.7300   775.0000   -75.0000   768.4574   -74.9939    87.6692   0.22368950   6.18590307  -0.22077985   0.02154597   0.97508568
+898  1784.7300   775.0000   -25.0000   768.4574   -24.9998    86.9341   0.22278035   6.25066423  -0.22082528   0.00718401   0.97528690
+899  1784.7300   775.0000    25.0000   768.4574    24.9998    86.9341   0.22278035   0.03252098  -0.22082528  -0.00718399   0.97528690
+900  1784.7300   775.0000    75.0000   768.4574    74.9939    87.6692   0.22368950   0.09728213  -0.22077985  -0.02154594   0.97508568
+901  1784.7300   775.0000   125.0000   768.4574   124.9719    89.1389   0.22549459   0.16121560  -0.22068916  -0.03589001   0.97468364
+902  1784.7300   775.0000   175.0000   768.4574   174.9228    91.3419   0.22816989   0.22381487  -0.22055343  -0.05020425   0.97408199
+903  1805.4000   775.0000   225.0000   768.4574   224.8361    94.2762   0.23167872   0.28463665  -0.22037300  -0.06447697   0.97328234
+904  1805.4000   775.0000   275.0000   768.4574   274.7011    97.9393   0.23597544   0.34331480  -0.22014838  -0.07869663   0.97228676
+905  1805.4000   775.0000   325.0000   768.4574   324.5073   102.3282   0.24100770   0.39956796  -0.21988019  -0.09285190   0.97109795
+906  1805.4000   775.0000   375.0000   768.4574   374.2443   107.4391   0.24671859   0.45319945  -0.21956910  -0.10693173   0.96971905
+907  1805.4000   825.0000  -325.0000   817.1337  -324.5073   113.6783   0.25348800   5.90515661  -0.23307531   0.09256090   0.96804357
+908  1805.4000   825.0000  -275.0000   817.1337  -274.7011   109.2895   0.24874869   5.95887804  -0.23335782   0.07844943   0.96922123
+909  1805.4000   825.0000  -225.0000   817.1337  -224.8361   105.6263   0.24471071   6.01467752  -0.23359440   0.06427404   0.97020745
+910  1805.4000   825.0000  -175.0000   817.1337  -174.9228   102.6920   0.24141937   6.07229948  -0.23378445   0.05004593   0.97099960
+911  1805.4000   825.0000  -125.0000   817.1337  -124.9719   100.4890   0.23891383   6.13142204  -0.23392744   0.03577669   0.97159559
+912  1805.4000   825.0000   -75.0000   817.1337   -74.9939    99.0194   0.23722523   6.19166470  -0.23402296   0.02147792   0.97199380
+913  1805.4000   825.0000   -25.0000   817.1337   -24.9998    98.2842   0.23637535   6.25260019  -0.23407079   0.00716132   0.97219318
+914  1805.4000   825.0000    25.0000   817.1337    24.9998    98.2842   0.23637535   0.03058496  -0.23407079  -0.00716128   0.97219318
+915  1805.4000   825.0000    75.0000   817.1337    74.9939    99.0194   0.23722523   0.09152039  -0.23402296  -0.02147787   0.97199380
+916  1805.4000   825.0000   125.0000   817.1337   124.9719   100.4890   0.23891383   0.15176336  -0.23392743  -0.03577671   0.97159559
+917  1805.4000   825.0000   175.0000   817.1337   174.9228   102.6920   0.24141937   0.21088590  -0.23378444  -0.05004594   0.97099960
+918  1805.4000   825.0000   225.0000   817.1337   224.8361   105.6263   0.24471071   0.26850766  -0.23359442  -0.06427401   0.97020745
+919  1805.4000   825.0000   275.0000   817.1337   274.7011   109.2895   0.24874869   0.32430717  -0.23335783  -0.07844941   0.96922123
+920  1805.4000   825.0000   325.0000   817.1337   324.5073   113.6783   0.25348800   0.37802872  -0.23307531  -0.09256091   0.96804357
+#@endcode
+#
+# $Log: not supported by cvs2svn $
+# Revision 1.6  1999/02/15  10:12:44  gonzalez
+# Just maintenance
+#
+#
+#EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Data/pixels.dat
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Data/pixels.dat	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Data/pixels.dat	(revision 4308)
@@ -0,0 +1,1141 @@
+  1      0      0    0.00000    0.00000
+  2      1      0    1.00000    0.00000
+  3      0      1    0.50000    0.86603
+  4     -1      1   -0.50000    0.86603
+  5     -1      0   -1.00000    0.00000
+  6      0     -1   -0.50000   -0.86603
+  7      1     -1    0.50000   -0.86603
+  8      2      0    2.00000    0.00000
+  9      1      1    1.50000    0.86603
+ 10      0      2    1.00000    1.73205
+ 11     -1      2    0.00000    1.73205
+ 12     -2      2   -1.00000    1.73205
+ 13     -2      1   -1.50000    0.86603
+ 14     -2      0   -2.00000    0.00000
+ 15     -1     -1   -1.50000   -0.86603
+ 16      0     -2   -1.00000   -1.73205
+ 17      1     -2    0.00000   -1.73205
+ 18      2     -2    1.00000   -1.73205
+ 19      2     -1    1.50000   -0.86603
+ 20      3      0    3.00000    0.00000
+ 21      2      1    2.50000    0.86603
+ 22      1      2    2.00000    1.73205
+ 23      0      3    1.50000    2.59808
+ 24     -1      3    0.50000    2.59808
+ 25     -2      3   -0.50000    2.59808
+ 26     -3      3   -1.50000    2.59808
+ 27     -3      2   -2.00000    1.73205
+ 28     -3      1   -2.50000    0.86603
+ 29     -3      0   -3.00000    0.00000
+ 30     -2     -1   -2.50000   -0.86603
+ 31     -1     -2   -2.00000   -1.73205
+ 32      0     -3   -1.50000   -2.59808
+ 33      1     -3   -0.50000   -2.59808
+ 34      2     -3    0.50000   -2.59808
+ 35      3     -3    1.50000   -2.59808
+ 36      3     -2    2.00000   -1.73205
+ 37      3     -1    2.50000   -0.86603
+ 38      4      0    4.00000    0.00000
+ 39      3      1    3.50000    0.86603
+ 40      2      2    3.00000    1.73205
+ 41      1      3    2.50000    2.59808
+ 42      0      4    2.00000    3.46410
+ 43     -1      4    1.00000    3.46410
+ 44     -2      4    0.00000    3.46410
+ 45     -3      4   -1.00000    3.46410
+ 46     -4      4   -2.00000    3.46410
+ 47     -4      3   -2.50000    2.59808
+ 48     -4      2   -3.00000    1.73205
+ 49     -4      1   -3.50000    0.86603
+ 50     -4      0   -4.00000    0.00000
+ 51     -3     -1   -3.50000   -0.86603
+ 52     -2     -2   -3.00000   -1.73205
+ 53     -1     -3   -2.50000   -2.59808
+ 54      0     -4   -2.00000   -3.46410
+ 55      1     -4   -1.00000   -3.46410
+ 56      2     -4    0.00000   -3.46410
+ 57      3     -4    1.00000   -3.46410
+ 58      4     -4    2.00000   -3.46410
+ 59      4     -3    2.50000   -2.59808
+ 60      4     -2    3.00000   -1.73205
+ 61      4     -1    3.50000   -0.86603
+ 62      5      0    5.00000    0.00000
+ 63      4      1    4.50000    0.86603
+ 64      3      2    4.00000    1.73205
+ 65      2      3    3.50000    2.59808
+ 66      1      4    3.00000    3.46410
+ 67      0      5    2.50000    4.33013
+ 68     -1      5    1.50000    4.33013
+ 69     -2      5    0.50000    4.33013
+ 70     -3      5   -0.50000    4.33013
+ 71     -4      5   -1.50000    4.33013
+ 72     -5      5   -2.50000    4.33013
+ 73     -5      4   -3.00000    3.46410
+ 74     -5      3   -3.50000    2.59808
+ 75     -5      2   -4.00000    1.73205
+ 76     -5      1   -4.50000    0.86603
+ 77     -5      0   -5.00000    0.00000
+ 78     -4     -1   -4.50000   -0.86603
+ 79     -3     -2   -4.00000   -1.73205
+ 80     -2     -3   -3.50000   -2.59808
+ 81     -1     -4   -3.00000   -3.46410
+ 82      0     -5   -2.50000   -4.33013
+ 83      1     -5   -1.50000   -4.33013
+ 84      2     -5   -0.50000   -4.33013
+ 85      3     -5    0.50000   -4.33013
+ 86      4     -5    1.50000   -4.33013
+ 87      5     -5    2.50000   -4.33013
+ 88      5     -4    3.00000   -3.46410
+ 89      5     -3    3.50000   -2.59808
+ 90      5     -2    4.00000   -1.73205
+ 91      5     -1    4.50000   -0.86603
+ 92      6      0    6.00000    0.00000
+ 93      5      1    5.50000    0.86603
+ 94      4      2    5.00000    1.73205
+ 95      3      3    4.50000    2.59808
+ 96      2      4    4.00000    3.46410
+ 97      1      5    3.50000    4.33013
+ 98      0      6    3.00000    5.19617
+ 99     -1      6    2.00000    5.19617
+100     -2      6    1.00000    5.19617
+101     -3      6    0.00000    5.19617
+102     -4      6   -1.00000    5.19617
+103     -5      6   -2.00000    5.19617
+104     -6      6   -3.00000    5.19617
+105     -6      5   -3.50000    4.33013
+106     -6      4   -4.00000    3.46410
+107     -6      3   -4.50000    2.59808
+108     -6      2   -5.00000    1.73205
+109     -6      1   -5.50000    0.86603
+110     -6      0   -6.00000    0.00000
+111     -5     -1   -5.50000   -0.86603
+112     -4     -2   -5.00000   -1.73205
+113     -3     -3   -4.50000   -2.59808
+114     -2     -4   -4.00000   -3.46410
+115     -1     -5   -3.50000   -4.33013
+116      0     -6   -3.00000   -5.19617
+117      1     -6   -2.00000   -5.19617
+118      2     -6   -1.00000   -5.19617
+119      3     -6    0.00000   -5.19617
+120      4     -6    1.00000   -5.19617
+121      5     -6    2.00000   -5.19617
+122      6     -6    3.00000   -5.19617
+123      6     -5    3.50000   -4.33013
+124      6     -4    4.00000   -3.46410
+125      6     -3    4.50000   -2.59808
+126      6     -2    5.00000   -1.73205
+127      6     -1    5.50000   -0.86603
+128      7      0    7.00000    0.00000
+129      6      1    6.50000    0.86603
+130      5      2    6.00000    1.73205
+131      4      3    5.50000    2.59808
+132      3      4    5.00000    3.46410
+133      2      5    4.50000    4.33013
+134      1      6    4.00000    5.19617
+135      0      7    3.50000    6.06217
+136     -1      7    2.50000    6.06217
+137     -2      7    1.50000    6.06217
+138     -3      7    0.50000    6.06217
+139     -4      7   -0.50000    6.06217
+140     -5      7   -1.50000    6.06217
+141     -6      7   -2.50000    6.06217
+142     -7      7   -3.50000    6.06217
+143     -7      6   -4.00000    5.19617
+144     -7      5   -4.50000    4.33013
+145     -7      4   -5.00000    3.46410
+146     -7      3   -5.50000    2.59808
+147     -7      2   -6.00000    1.73205
+148     -7      1   -6.50000    0.86603
+149     -7      0   -7.00000    0.00000
+150     -6     -1   -6.50000   -0.86603
+151     -5     -2   -6.00000   -1.73205
+152     -4     -3   -5.50000   -2.59808
+153     -3     -4   -5.00000   -3.46410
+154     -2     -5   -4.50000   -4.33013
+155     -1     -6   -4.00000   -5.19617
+156      0     -7   -3.50000   -6.06217
+157      1     -7   -2.50000   -6.06217
+158      2     -7   -1.50000   -6.06217
+159      3     -7   -0.50000   -6.06217
+160      4     -7    0.50000   -6.06217
+161      5     -7    1.50000   -6.06217
+162      6     -7    2.50000   -6.06217
+163      7     -7    3.50000   -6.06217
+164      7     -6    4.00000   -5.19617
+165      7     -5    4.50000   -4.33013
+166      7     -4    5.00000   -3.46410
+167      7     -3    5.50000   -2.59808
+168      7     -2    6.00000   -1.73205
+169      7     -1    6.50000   -0.86603
+170      8      0    8.00000    0.00000
+171      7      1    7.50000    0.86603
+172      6      2    7.00000    1.73205
+173      5      3    6.50000    2.59808
+174      4      4    6.00000    3.46410
+175      3      5    5.50000    4.33013
+176      2      6    5.00000    5.19617
+177      1      7    4.50000    6.06217
+178      0      8    4.00000    6.92820
+179     -1      8    3.00000    6.92820
+180     -2      8    2.00000    6.92820
+181     -3      8    1.00000    6.92820
+182     -4      8    0.00000    6.92820
+183     -5      8   -1.00000    6.92820
+184     -6      8   -2.00000    6.92820
+185     -7      8   -3.00000    6.92820
+186     -8      8   -4.00000    6.92820
+187     -8      7   -4.50000    6.06217
+188     -8      6   -5.00000    5.19617
+189     -8      5   -5.50000    4.33013
+190     -8      4   -6.00000    3.46410
+191     -8      3   -6.50000    2.59808
+192     -8      2   -7.00000    1.73205
+193     -8      1   -7.50000    0.86603
+194     -8      0   -8.00000    0.00000
+195     -7     -1   -7.50000   -0.86603
+196     -6     -2   -7.00000   -1.73205
+197     -5     -3   -6.50000   -2.59808
+198     -4     -4   -6.00000   -3.46410
+199     -3     -5   -5.50000   -4.33013
+200     -2     -6   -5.00000   -5.19617
+201     -1     -7   -4.50000   -6.06217
+202      0     -8   -4.00000   -6.92820
+203      1     -8   -3.00000   -6.92820
+204      2     -8   -2.00000   -6.92820
+205      3     -8   -1.00000   -6.92820
+206      4     -8    0.00000   -6.92820
+207      5     -8    1.00000   -6.92820
+208      6     -8    2.00000   -6.92820
+209      7     -8    3.00000   -6.92820
+210      8     -8    4.00000   -6.92820
+211      8     -7    4.50000   -6.06217
+212      8     -6    5.00000   -5.19617
+213      8     -5    5.50000   -4.33013
+214      8     -4    6.00000   -3.46410
+215      8     -3    6.50000   -2.59808
+216      8     -2    7.00000   -1.73205
+217      8     -1    7.50000   -0.86603
+218      9      0    9.00000    0.00000
+219      8      1    8.50000    0.86603
+220      7      2    8.00000    1.73205
+221      6      3    7.50000    2.59808
+222      5      4    7.00000    3.46410
+223      4      5    6.50000    4.33013
+224      3      6    6.00000    5.19617
+225      2      7    5.50000    6.06217
+226      1      8    5.00000    6.92820
+227      0      9    4.50000    7.79423
+228     -1      9    3.50000    7.79423
+229     -2      9    2.50000    7.79423
+230     -3      9    1.50000    7.79423
+231     -4      9    0.50000    7.79423
+232     -5      9   -0.50000    7.79423
+233     -6      9   -1.50000    7.79423
+234     -7      9   -2.50000    7.79423
+235     -8      9   -3.50000    7.79423
+236     -9      9   -4.50000    7.79423
+237     -9      8   -5.00000    6.92820
+238     -9      7   -5.50000    6.06217
+239     -9      6   -6.00000    5.19617
+240     -9      5   -6.50000    4.33013
+241     -9      4   -7.00000    3.46410
+242     -9      3   -7.50000    2.59808
+243     -9      2   -8.00000    1.73205
+244     -9      1   -8.50000    0.86603
+245     -9      0   -9.00000    0.00000
+246     -8     -1   -8.50000   -0.86603
+247     -7     -2   -8.00000   -1.73205
+248     -6     -3   -7.50000   -2.59808
+249     -5     -4   -7.00000   -3.46410
+250     -4     -5   -6.50000   -4.33013
+251     -3     -6   -6.00000   -5.19617
+252     -2     -7   -5.50000   -6.06217
+253     -1     -8   -5.00000   -6.92820
+254      0     -9   -4.50000   -7.79423
+255      1     -9   -3.50000   -7.79423
+256      2     -9   -2.50000   -7.79423
+257      3     -9   -1.50000   -7.79423
+258      4     -9   -0.50000   -7.79423
+259      5     -9    0.50000   -7.79423
+260      6     -9    1.50000   -7.79423
+261      7     -9    2.50000   -7.79423
+262      8     -9    3.50000   -7.79423
+263      9     -9    4.50000   -7.79423
+264      9     -8    5.00000   -6.92820
+265      9     -7    5.50000   -6.06217
+266      9     -6    6.00000   -5.19617
+267      9     -5    6.50000   -4.33013
+268      9     -4    7.00000   -3.46410
+269      9     -3    7.50000   -2.59808
+270      9     -2    8.00000   -1.73205
+271      9     -1    8.50000   -0.86603
+272     10      0   10.00000    0.00000
+273      9      1    9.50000    0.86603
+274      8      2    9.00000    1.73205
+275      7      3    8.50000    2.59808
+276      6      4    8.00000    3.46410
+277      5      5    7.50000    4.33013
+278      4      6    7.00000    5.19617
+279      3      7    6.50000    6.06217
+280      2      8    6.00000    6.92820
+281      1      9    5.50000    7.79423
+282      0     10    5.00000    8.66027
+283     -1     10    4.00000    8.66027
+284     -2     10    3.00000    8.66027
+285     -3     10    2.00000    8.66027
+286     -4     10    1.00000    8.66027
+287     -5     10    0.00000    8.66027
+288     -6     10   -1.00000    8.66027
+289     -7     10   -2.00000    8.66027
+290     -8     10   -3.00000    8.66027
+291     -9     10   -4.00000    8.66027
+292    -10     10   -5.00000    8.66027
+293    -10      9   -5.50000    7.79423
+294    -10      8   -6.00000    6.92820
+295    -10      7   -6.50000    6.06217
+296    -10      6   -7.00000    5.19617
+297    -10      5   -7.50000    4.33013
+298    -10      4   -8.00000    3.46410
+299    -10      3   -8.50000    2.59808
+300    -10      2   -9.00000    1.73205
+301    -10      1   -9.50000    0.86603
+302    -10      0  -10.00000    0.00000
+303     -9     -1   -9.50000   -0.86603
+304     -8     -2   -9.00000   -1.73205
+305     -7     -3   -8.50000   -2.59808
+306     -6     -4   -8.00000   -3.46410
+307     -5     -5   -7.50000   -4.33013
+308     -4     -6   -7.00000   -5.19617
+309     -3     -7   -6.50000   -6.06217
+310     -2     -8   -6.00000   -6.92820
+311     -1     -9   -5.50000   -7.79423
+312      0    -10   -5.00000   -8.66027
+313      1    -10   -4.00000   -8.66027
+314      2    -10   -3.00000   -8.66027
+315      3    -10   -2.00000   -8.66027
+316      4    -10   -1.00000   -8.66027
+317      5    -10    0.00000   -8.66027
+318      6    -10    1.00000   -8.66027
+319      7    -10    2.00000   -8.66027
+320      8    -10    3.00000   -8.66027
+321      9    -10    4.00000   -8.66027
+322     10    -10    5.00000   -8.66027
+323     10     -9    5.50000   -7.79423
+324     10     -8    6.00000   -6.92820
+325     10     -7    6.50000   -6.06217
+326     10     -6    7.00000   -5.19617
+327     10     -5    7.50000   -4.33013
+328     10     -4    8.00000   -3.46410
+329     10     -3    8.50000   -2.59808
+330     10     -2    9.00000   -1.73205
+331     10     -1    9.50000   -0.86603
+332     11      0   11.00000    0.00000
+333     10      1   10.50000    0.86603
+334      9      2   10.00000    1.73205
+335      8      3    9.50000    2.59808
+336      7      4    9.00000    3.46410
+337      6      5    8.50000    4.33013
+338      5      6    8.00000    5.19617
+339      4      7    7.50000    6.06217
+340      3      8    7.00000    6.92820
+341      2      9    6.50000    7.79423
+342      1     10    6.00000    8.66027
+343      0     11    5.50000    9.52627
+344     -1     11    4.50000    9.52627
+345     -2     11    3.50000    9.52627
+346     -3     11    2.50000    9.52627
+347     -4     11    1.50000    9.52627
+348     -5     11    0.50000    9.52627
+349     -6     11   -0.50000    9.52627
+350     -7     11   -1.50000    9.52627
+351     -8     11   -2.50000    9.52627
+352     -9     11   -3.50000    9.52627
+353    -10     11   -4.50000    9.52627
+354    -11     11   -5.50000    9.52627
+355    -11     10   -6.00000    8.66027
+356    -11      9   -6.50000    7.79423
+357    -11      8   -7.00000    6.92820
+358    -11      7   -7.50000    6.06217
+359    -11      6   -8.00000    5.19617
+360    -11      5   -8.50000    4.33013
+361    -11      4   -9.00000    3.46410
+362    -11      3   -9.50000    2.59808
+363    -11      2  -10.00000    1.73205
+364    -11      1  -10.50000    0.86603
+365    -11      0  -11.00000    0.00000
+366    -10     -1  -10.50000   -0.86603
+367     -9     -2  -10.00000   -1.73205
+368     -8     -3   -9.50000   -2.59808
+369     -7     -4   -9.00000   -3.46410
+370     -6     -5   -8.50000   -4.33013
+371     -5     -6   -8.00000   -5.19617
+372     -4     -7   -7.50000   -6.06217
+373     -3     -8   -7.00000   -6.92820
+374     -2     -9   -6.50000   -7.79423
+375     -1    -10   -6.00000   -8.66027
+376      0    -11   -5.50000   -9.52627
+377      1    -11   -4.50000   -9.52627
+378      2    -11   -3.50000   -9.52627
+379      3    -11   -2.50000   -9.52627
+380      4    -11   -1.50000   -9.52627
+381      5    -11   -0.50000   -9.52627
+382      6    -11    0.50000   -9.52627
+383      7    -11    1.50000   -9.52627
+384      8    -11    2.50000   -9.52627
+385      9    -11    3.50000   -9.52627
+386     10    -11    4.50000   -9.52627
+387     11    -11    5.50000   -9.52627
+388     11    -10    6.00000   -8.66027
+389     11     -9    6.50000   -7.79423
+390     11     -8    7.00000   -6.92820
+391     11     -7    7.50000   -6.06217
+392     11     -6    8.00000   -5.19617
+393     11     -5    8.50000   -4.33013
+394     11     -4    9.00000   -3.46410
+395     11     -3    9.50000   -2.59808
+396     11     -2   10.00000   -1.73205
+397     11     -1   10.50000   -0.86603
+398     12      0   12.00000    0.00000
+399     11      1   11.50000    0.86603
+400     10      2   11.00000    1.73205
+401      9      3   10.50000    2.59808
+402      8      4   10.00000    3.46410
+403      7      5    9.50000    4.33013
+404      6      6    9.00000    5.19617
+405      5      7    8.50000    6.06217
+406      4      8    8.00000    6.92820
+407      3      9    7.50000    7.79423
+408      2     10    7.00000    8.66027
+409      1     11    6.50000    9.52627
+410      0     12    6.00000   10.39230
+411     -1     12    5.00000   10.39230
+412     -2     12    4.00000   10.39230
+413     -3     12    3.00000   10.39230
+414     -4     12    2.00000   10.39230
+415     -5     12    1.00000   10.39230
+416     -6     12    0.00000   10.39230
+417     -7     12   -1.00000   10.39230
+418     -8     12   -2.00000   10.39230
+419     -9     12   -3.00000   10.39230
+420    -10     12   -4.00000   10.39230
+421    -11     12   -5.00000   10.39230
+422    -12     12   -6.00000   10.39230
+423    -12     11   -6.50000    9.52627
+424    -12     10   -7.00000    8.66027
+425    -12      9   -7.50000    7.79423
+426    -12      8   -8.00000    6.92820
+427    -12      7   -8.50000    6.06217
+428    -12      6   -9.00000    5.19617
+429    -12      5   -9.50000    4.33013
+430    -12      4  -10.00000    3.46410
+431    -12      3  -10.50000    2.59808
+432    -12      2  -11.00000    1.73205
+433    -12      1  -11.50000    0.86603
+434    -12      0  -12.00000    0.00000
+435    -11     -1  -11.50000   -0.86603
+436    -10     -2  -11.00000   -1.73205
+437     -9     -3  -10.50000   -2.59808
+438     -8     -4  -10.00000   -3.46410
+439     -7     -5   -9.50000   -4.33013
+440     -6     -6   -9.00000   -5.19617
+441     -5     -7   -8.50000   -6.06217
+442     -4     -8   -8.00000   -6.92820
+443     -3     -9   -7.50000   -7.79423
+444     -2    -10   -7.00000   -8.66027
+445     -1    -11   -6.50000   -9.52627
+446      0    -12   -6.00000  -10.39230
+447      1    -12   -5.00000  -10.39230
+448      2    -12   -4.00000  -10.39230
+449      3    -12   -3.00000  -10.39230
+450      4    -12   -2.00000  -10.39230
+451      5    -12   -1.00000  -10.39230
+452      6    -12    0.00000  -10.39230
+453      7    -12    1.00000  -10.39230
+454      8    -12    2.00000  -10.39230
+455      9    -12    3.00000  -10.39230
+456     10    -12    4.00000  -10.39230
+457     11    -12    5.00000  -10.39230
+458     12    -12    6.00000  -10.39230
+459     12    -11    6.50000   -9.52627
+460     12    -10    7.00000   -8.66027
+461     12     -9    7.50000   -7.79423
+462     12     -8    8.00000   -6.92820
+463     12     -7    8.50000   -6.06217
+464     12     -6    9.00000   -5.19617
+465     12     -5    9.50000   -4.33013
+466     12     -4   10.00000   -3.46410
+467     12     -3   10.50000   -2.59808
+468     12     -2   11.00000   -1.73205
+469     12     -1   11.50000   -0.86603
+470     13      0   13.00000    0.00000
+471     12      1   12.50000    0.86603
+472     11      2   12.00000    1.73205
+473     10      3   11.50000    2.59808
+474      9      4   11.00000    3.46410
+475      8      5   10.50000    4.33013
+476      7      6   10.00000    5.19617
+477      6      7    9.50000    6.06217
+478      5      8    9.00000    6.92820
+479      4      9    8.50000    7.79423
+480      3     10    8.00000    8.66027
+481      2     11    7.50000    9.52627
+482      1     12    7.00000   10.39230
+483      0     13    6.50000   11.25833
+484     -1     13    5.50000   11.25833
+485     -2     13    4.50000   11.25833
+486     -3     13    3.50000   11.25833
+487     -4     13    2.50000   11.25833
+488     -5     13    1.50000   11.25833
+489     -6     13    0.50000   11.25833
+490     -7     13   -0.50000   11.25833
+491     -8     13   -1.50000   11.25833
+492     -9     13   -2.50000   11.25833
+493    -10     13   -3.50000   11.25833
+494    -11     13   -4.50000   11.25833
+495    -12     13   -5.50000   11.25833
+496    -13     13   -6.50000   11.25833
+497    -13     12   -7.00000   10.39230
+498    -13     11   -7.50000    9.52627
+499    -13     10   -8.00000    8.66027
+500    -13      9   -8.50000    7.79423
+501    -13      8   -9.00000    6.92820
+502    -13      7   -9.50000    6.06217
+503    -13      6  -10.00000    5.19617
+504    -13      5  -10.50000    4.33013
+505    -13      4  -11.00000    3.46410
+506    -13      3  -11.50000    2.59808
+507    -13      2  -12.00000    1.73205
+508    -13      1  -12.50000    0.86603
+509    -13      0  -13.00000    0.00000
+510    -12     -1  -12.50000   -0.86603
+511    -11     -2  -12.00000   -1.73205
+512    -10     -3  -11.50000   -2.59808
+513     -9     -4  -11.00000   -3.46410
+514     -8     -5  -10.50000   -4.33013
+515     -7     -6  -10.00000   -5.19617
+516     -6     -7   -9.50000   -6.06217
+517     -5     -8   -9.00000   -6.92820
+518     -4     -9   -8.50000   -7.79423
+519     -3    -10   -8.00000   -8.66027
+520     -2    -11   -7.50000   -9.52627
+521     -1    -12   -7.00000  -10.39230
+522      0    -13   -6.50000  -11.25833
+523      1    -13   -5.50000  -11.25833
+524      2    -13   -4.50000  -11.25833
+525      3    -13   -3.50000  -11.25833
+526      4    -13   -2.50000  -11.25833
+527      5    -13   -1.50000  -11.25833
+528      6    -13   -0.50000  -11.25833
+529      7    -13    0.50000  -11.25833
+530      8    -13    1.50000  -11.25833
+531      9    -13    2.50000  -11.25833
+532     10    -13    3.50000  -11.25833
+533     11    -13    4.50000  -11.25833
+534     12    -13    5.50000  -11.25833
+535     13    -13    6.50000  -11.25833
+536     13    -12    7.00000  -10.39230
+537     13    -11    7.50000   -9.52627
+538     13    -10    8.00000   -8.66027
+539     13     -9    8.50000   -7.79423
+540     13     -8    9.00000   -6.92820
+541     13     -7    9.50000   -6.06217
+542     13     -6   10.00000   -5.19617
+543     13     -5   10.50000   -4.33013
+544     13     -4   11.00000   -3.46410
+545     13     -3   11.50000   -2.59808
+546     13     -2   12.00000   -1.73205
+547     13     -1   12.50000   -0.86603
+548     14      0   14.00000    0.00000
+549     13      1   13.50000    0.86603
+550     12      2   13.00000    1.73205
+551     11      3   12.50000    2.59808
+552     10      4   12.00000    3.46410
+553      9      5   11.50000    4.33013
+554      8      6   11.00000    5.19617
+555      7      7   10.50000    6.06217
+556      6      8   10.00000    6.92820
+557      5      9    9.50000    7.79423
+558      4     10    9.00000    8.66027
+559      3     11    8.50000    9.52627
+560      2     12    8.00000   10.39230
+561      1     13    7.50000   11.25833
+562      0     14    7.00000   12.12437
+563     -1     14    6.00000   12.12437
+564     -2     14    5.00000   12.12437
+565     -3     14    4.00000   12.12437
+566     -4     14    3.00000   12.12437
+567     -5     14    2.00000   12.12437
+568     -6     14    1.00000   12.12437
+569     -7     14    0.00000   12.12437
+570     -8     14   -1.00000   12.12437
+571     -9     14   -2.00000   12.12437
+572    -10     14   -3.00000   12.12437
+573    -11     14   -4.00000   12.12437
+574    -12     14   -5.00000   12.12437
+575    -13     14   -6.00000   12.12437
+576    -14     14   -7.00000   12.12437
+577    -14     13   -7.50000   11.25833
+578    -14     12   -8.00000   10.39230
+579    -14     11   -8.50000    9.52627
+580    -14     10   -9.00000    8.66027
+581    -14      9   -9.50000    7.79423
+582    -14      8  -10.00000    6.92820
+583    -14      7  -10.50000    6.06217
+584    -14      6  -11.00000    5.19617
+585    -14      5  -11.50000    4.33013
+586    -14      4  -12.00000    3.46410
+587    -14      3  -12.50000    2.59808
+588    -14      2  -13.00000    1.73205
+589    -14      1  -13.50000    0.86603
+590    -14      0  -14.00000    0.00000
+591    -13     -1  -13.50000   -0.86603
+592    -12     -2  -13.00000   -1.73205
+593    -11     -3  -12.50000   -2.59808
+594    -10     -4  -12.00000   -3.46410
+595     -9     -5  -11.50000   -4.33013
+596     -8     -6  -11.00000   -5.19617
+597     -7     -7  -10.50000   -6.06217
+598     -6     -8  -10.00000   -6.92820
+599     -5     -9   -9.50000   -7.79423
+600     -4    -10   -9.00000   -8.66027
+601     -3    -11   -8.50000   -9.52627
+602     -2    -12   -8.00000  -10.39230
+603     -1    -13   -7.50000  -11.25833
+604      0    -14   -7.00000  -12.12437
+605      1    -14   -6.00000  -12.12437
+606      2    -14   -5.00000  -12.12437
+607      3    -14   -4.00000  -12.12437
+608      4    -14   -3.00000  -12.12437
+609      5    -14   -2.00000  -12.12437
+610      6    -14   -1.00000  -12.12437
+611      7    -14    0.00000  -12.12437
+612      8    -14    1.00000  -12.12437
+613      9    -14    2.00000  -12.12437
+614     10    -14    3.00000  -12.12437
+615     11    -14    4.00000  -12.12437
+616     12    -14    5.00000  -12.12437
+617     13    -14    6.00000  -12.12437
+618     14    -14    7.00000  -12.12437
+619     14    -13    7.50000  -11.25833
+620     14    -12    8.00000  -10.39230
+621     14    -11    8.50000   -9.52627
+622     14    -10    9.00000   -8.66027
+623     14     -9    9.50000   -7.79423
+624     14     -8   10.00000   -6.92820
+625     14     -7   10.50000   -6.06217
+626     14     -6   11.00000   -5.19617
+627     14     -5   11.50000   -4.33013
+628     14     -4   12.00000   -3.46410
+629     14     -3   12.50000   -2.59808
+630     14     -2   13.00000   -1.73205
+631     14     -1   13.50000   -0.86603
+632     15      0   15.00000    0.00000
+633     14      1   14.50000    0.86603
+634     13      2   14.00000    1.73205
+635     12      3   13.50000    2.59808
+636     11      4   13.00000    3.46410
+637     10      5   12.50000    4.33013
+638      9      6   12.00000    5.19617
+639      8      7   11.50000    6.06217
+640      7      8   11.00000    6.92820
+641      6      9   10.50000    7.79423
+642      5     10   10.00000    8.66027
+643      4     11    9.50000    9.52627
+644      3     12    9.00000   10.39230
+645      2     13    8.50000   11.25833
+646      1     14    8.00000   12.12437
+647      0     15    7.50000   12.99037
+648     -1     15    6.50000   12.99037
+649     -2     15    5.50000   12.99037
+650     -3     15    4.50000   12.99037
+651     -4     15    3.50000   12.99037
+652     -5     15    2.50000   12.99037
+653     -6     15    1.50000   12.99037
+654     -7     15    0.50000   12.99037
+655     -8     15   -0.50000   12.99037
+656     -9     15   -1.50000   12.99037
+657    -10     15   -2.50000   12.99037
+658    -11     15   -3.50000   12.99037
+659    -12     15   -4.50000   12.99037
+660    -13     15   -5.50000   12.99037
+661    -14     15   -6.50000   12.99037
+662    -15     15   -7.50000   12.99037
+663    -15     14   -8.00000   12.12437
+664    -15     13   -8.50000   11.25833
+665    -15     12   -9.00000   10.39230
+666    -15     11   -9.50000    9.52627
+667    -15     10  -10.00000    8.66027
+668    -15      9  -10.50000    7.79423
+669    -15      8  -11.00000    6.92820
+670    -15      7  -11.50000    6.06217
+671    -15      6  -12.00000    5.19617
+672    -15      5  -12.50000    4.33013
+673    -15      4  -13.00000    3.46410
+674    -15      3  -13.50000    2.59808
+675    -15      2  -14.00000    1.73205
+676    -15      1  -14.50000    0.86603
+677    -15      0  -15.00000    0.00000
+678    -14     -1  -14.50000   -0.86603
+679    -13     -2  -14.00000   -1.73205
+680    -12     -3  -13.50000   -2.59808
+681    -11     -4  -13.00000   -3.46410
+682    -10     -5  -12.50000   -4.33013
+683     -9     -6  -12.00000   -5.19617
+684     -8     -7  -11.50000   -6.06217
+685     -7     -8  -11.00000   -6.92820
+686     -6     -9  -10.50000   -7.79423
+687     -5    -10  -10.00000   -8.66027
+688     -4    -11   -9.50000   -9.52627
+689     -3    -12   -9.00000  -10.39230
+690     -2    -13   -8.50000  -11.25833
+691     -1    -14   -8.00000  -12.12437
+692      0    -15   -7.50000  -12.99037
+693      1    -15   -6.50000  -12.99037
+694      2    -15   -5.50000  -12.99037
+695      3    -15   -4.50000  -12.99037
+696      4    -15   -3.50000  -12.99037
+697      5    -15   -2.50000  -12.99037
+698      6    -15   -1.50000  -12.99037
+699      7    -15   -0.50000  -12.99037
+700      8    -15    0.50000  -12.99037
+701      9    -15    1.50000  -12.99037
+702     10    -15    2.50000  -12.99037
+703     11    -15    3.50000  -12.99037
+704     12    -15    4.50000  -12.99037
+705     13    -15    5.50000  -12.99037
+706     14    -15    6.50000  -12.99037
+707     15    -15    7.50000  -12.99037
+708     15    -14    8.00000  -12.12437
+709     15    -13    8.50000  -11.25833
+710     15    -12    9.00000  -10.39230
+711     15    -11    9.50000   -9.52627
+712     15    -10   10.00000   -8.66027
+713     15     -9   10.50000   -7.79423
+714     15     -8   11.00000   -6.92820
+715     15     -7   11.50000   -6.06217
+716     15     -6   12.00000   -5.19617
+717     15     -5   12.50000   -4.33013
+718     15     -4   13.00000   -3.46410
+719     15     -3   13.50000   -2.59808
+720     15     -2   14.00000   -1.73205
+721     15     -1   14.50000   -0.86603
+722     16      0   16.00000    0.00000
+723     15      1   15.50000    0.86603
+724     14      2   15.00000    1.73205
+725     13      3   14.50000    2.59808
+726     12      4   14.00000    3.46410
+727     11      5   13.50000    4.33013
+728     10      6   13.00000    5.19617
+729      9      7   12.50000    6.06217
+730      8      8   12.00000    6.92820
+731      7      9   11.50000    7.79423
+732      6     10   11.00000    8.66027
+733      5     11   10.50000    9.52627
+734      4     12   10.00000   10.39230
+735      3     13    9.50000   11.25833
+736      2     14    9.00000   12.12437
+737      1     15    8.50000   12.99037
+738      0     16    8.00000   13.85640
+739     -1     16    7.00000   13.85640
+740     -2     16    6.00000   13.85640
+741     -3     16    5.00000   13.85640
+742     -4     16    4.00000   13.85640
+743     -5     16    3.00000   13.85640
+744     -6     16    2.00000   13.85640
+745     -7     16    1.00000   13.85640
+746     -8     16    0.00000   13.85640
+747     -9     16   -1.00000   13.85640
+748    -10     16   -2.00000   13.85640
+749    -11     16   -3.00000   13.85640
+750    -12     16   -4.00000   13.85640
+751    -13     16   -5.00000   13.85640
+752    -14     16   -6.00000   13.85640
+753    -15     16   -7.00000   13.85640
+754    -16     16   -8.00000   13.85640
+755    -16     15   -8.50000   12.99037
+756    -16     14   -9.00000   12.12437
+757    -16     13   -9.50000   11.25833
+758    -16     12  -10.00000   10.39230
+759    -16     11  -10.50000    9.52627
+760    -16     10  -11.00000    8.66027
+761    -16      9  -11.50000    7.79423
+762    -16      8  -12.00000    6.92820
+763    -16      7  -12.50000    6.06217
+764    -16      6  -13.00000    5.19617
+765    -16      5  -13.50000    4.33013
+766    -16      4  -14.00000    3.46410
+767    -16      3  -14.50000    2.59808
+768    -16      2  -15.00000    1.73205
+769    -16      1  -15.50000    0.86603
+770    -16      0  -16.00000    0.00000
+771    -15     -1  -15.50000   -0.86603
+772    -14     -2  -15.00000   -1.73205
+773    -13     -3  -14.50000   -2.59808
+774    -12     -4  -14.00000   -3.46410
+775    -11     -5  -13.50000   -4.33013
+776    -10     -6  -13.00000   -5.19617
+777     -9     -7  -12.50000   -6.06217
+778     -8     -8  -12.00000   -6.92820
+779     -7     -9  -11.50000   -7.79423
+780     -6    -10  -11.00000   -8.66027
+781     -5    -11  -10.50000   -9.52627
+782     -4    -12  -10.00000  -10.39230
+783     -3    -13   -9.50000  -11.25833
+784     -2    -14   -9.00000  -12.12437
+785     -1    -15   -8.50000  -12.99037
+786      0    -16   -8.00000  -13.85640
+787      1    -16   -7.00000  -13.85640
+788      2    -16   -6.00000  -13.85640
+789      3    -16   -5.00000  -13.85640
+790      4    -16   -4.00000  -13.85640
+791      5    -16   -3.00000  -13.85640
+792      6    -16   -2.00000  -13.85640
+793      7    -16   -1.00000  -13.85640
+794      8    -16    0.00000  -13.85640
+795      9    -16    1.00000  -13.85640
+796     10    -16    2.00000  -13.85640
+797     11    -16    3.00000  -13.85640
+798     12    -16    4.00000  -13.85640
+799     13    -16    5.00000  -13.85640
+800     14    -16    6.00000  -13.85640
+801     15    -16    7.00000  -13.85640
+802     16    -16    8.00000  -13.85640
+803     16    -15    8.50000  -12.99037
+804     16    -14    9.00000  -12.12437
+805     16    -13    9.50000  -11.25833
+806     16    -12   10.00000  -10.39230
+807     16    -11   10.50000   -9.52627
+808     16    -10   11.00000   -8.66027
+809     16     -9   11.50000   -7.79423
+810     16     -8   12.00000   -6.92820
+811     16     -7   12.50000   -6.06217
+812     16     -6   13.00000   -5.19617
+813     16     -5   13.50000   -4.33013
+814     16     -4   14.00000   -3.46410
+815     16     -3   14.50000   -2.59808
+816     16     -2   15.00000   -1.73205
+817     16     -1   15.50000   -0.86603
+818     17      0   17.00000    0.00000
+819     16      1   16.50000    0.86603
+820     15      2   16.00000    1.73205
+821     14      3   15.50000    2.59808
+822     13      4   15.00000    3.46410
+823     12      5   14.50000    4.33013
+824     11      6   14.00000    5.19617
+825     10      7   13.50000    6.06217
+826      9      8   13.00000    6.92820
+827      8      9   12.50000    7.79423
+828      7     10   12.00000    8.66027
+829      6     11   11.50000    9.52627
+830      5     12   11.00000   10.39230
+831      4     13   10.50000   11.25833
+832      3     14   10.00000   12.12437
+833      2     15    9.50000   12.99037
+834      1     16    9.00000   13.85640
+835      0     17    8.50000   14.72243
+836     -1     17    7.50000   14.72243
+837     -2     17    6.50000   14.72243
+838     -3     17    5.50000   14.72243
+839     -4     17    4.50000   14.72243
+840     -5     17    3.50000   14.72243
+841     -6     17    2.50000   14.72243
+842     -7     17    1.50000   14.72243
+843     -8     17    0.50000   14.72243
+844     -9     17   -0.50000   14.72243
+845    -10     17   -1.50000   14.72243
+846    -11     17   -2.50000   14.72243
+847    -12     17   -3.50000   14.72243
+848    -13     17   -4.50000   14.72243
+849    -14     17   -5.50000   14.72243
+850    -15     17   -6.50000   14.72243
+851    -16     17   -7.50000   14.72243
+852    -17     17   -8.50000   14.72243
+853    -17     16   -9.00000   13.85640
+854    -17     15   -9.50000   12.99037
+855    -17     14  -10.00000   12.12437
+856    -17     13  -10.50000   11.25833
+857    -17     12  -11.00000   10.39230
+858    -17     11  -11.50000    9.52627
+859    -17     10  -12.00000    8.66027
+860    -17      9  -12.50000    7.79423
+861    -17      8  -13.00000    6.92820
+862    -17      7  -13.50000    6.06217
+863    -17      6  -14.00000    5.19617
+864    -17      5  -14.50000    4.33013
+865    -17      4  -15.00000    3.46410
+866    -17      3  -15.50000    2.59808
+867    -17      2  -16.00000    1.73205
+868    -17      1  -16.50000    0.86603
+869    -17      0  -17.00000    0.00000
+870    -16     -1  -16.50000   -0.86603
+871    -15     -2  -16.00000   -1.73205
+872    -14     -3  -15.50000   -2.59808
+873    -13     -4  -15.00000   -3.46410
+874    -12     -5  -14.50000   -4.33013
+875    -11     -6  -14.00000   -5.19617
+876    -10     -7  -13.50000   -6.06217
+877     -9     -8  -13.00000   -6.92820
+878     -8     -9  -12.50000   -7.79423
+879     -7    -10  -12.00000   -8.66027
+880     -6    -11  -11.50000   -9.52627
+881     -5    -12  -11.00000  -10.39230
+882     -4    -13  -10.50000  -11.25833
+883     -3    -14  -10.00000  -12.12437
+884     -2    -15   -9.50000  -12.99037
+885     -1    -16   -9.00000  -13.85640
+886      0    -17   -8.50000  -14.72243
+887      1    -17   -7.50000  -14.72243
+888      2    -17   -6.50000  -14.72243
+889      3    -17   -5.50000  -14.72243
+890      4    -17   -4.50000  -14.72243
+891      5    -17   -3.50000  -14.72243
+892      6    -17   -2.50000  -14.72243
+893      7    -17   -1.50000  -14.72243
+894      8    -17   -0.50000  -14.72243
+895      9    -17    0.50000  -14.72243
+896     10    -17    1.50000  -14.72243
+897     11    -17    2.50000  -14.72243
+898     12    -17    3.50000  -14.72243
+899     13    -17    4.50000  -14.72243
+900     14    -17    5.50000  -14.72243
+901     15    -17    6.50000  -14.72243
+902     16    -17    7.50000  -14.72243
+903     17    -17    8.50000  -14.72243
+904     17    -16    9.00000  -13.85640
+905     17    -15    9.50000  -12.99037
+906     17    -14   10.00000  -12.12437
+907     17    -13   10.50000  -11.25833
+908     17    -12   11.00000  -10.39230
+909     17    -11   11.50000   -9.52627
+910     17    -10   12.00000   -8.66027
+911     17     -9   12.50000   -7.79423
+912     17     -8   13.00000   -6.92820
+913     17     -7   13.50000   -6.06217
+914     17     -6   14.00000   -5.19617
+915     17     -5   14.50000   -4.33013
+916     17     -4   15.00000   -3.46410
+917     17     -3   15.50000   -2.59808
+918     17     -2   16.00000   -1.73205
+919     17     -1   16.50000   -0.86603
+920     18      0   18.00000    0.00000
+921     17      1   17.50000    0.86603
+922     16      2   17.00000    1.73205
+923     15      3   16.50000    2.59808
+924     14      4   16.00000    3.46410
+925     13      5   15.50000    4.33013
+926     12      6   15.00000    5.19617
+927     11      7   14.50000    6.06217
+928     10      8   14.00000    6.92820
+929      9      9   13.50000    7.79423
+930      8     10   13.00000    8.66027
+931      7     11   12.50000    9.52627
+932      6     12   12.00000   10.39230
+933      5     13   11.50000   11.25833
+934      4     14   11.00000   12.12437
+935      3     15   10.50000   12.99037
+936      2     16   10.00000   13.85640
+937      1     17    9.50000   14.72243
+938      0     18    9.00000   15.58847
+939     -1     18    8.00000   15.58847
+940     -2     18    7.00000   15.58847
+941     -3     18    6.00000   15.58847
+942     -4     18    5.00000   15.58847
+943     -5     18    4.00000   15.58847
+944     -6     18    3.00000   15.58847
+945     -7     18    2.00000   15.58847
+946     -8     18    1.00000   15.58847
+947     -9     18    0.00000   15.58847
+948    -10     18   -1.00000   15.58847
+949    -11     18   -2.00000   15.58847
+950    -12     18   -3.00000   15.58847
+951    -13     18   -4.00000   15.58847
+952    -14     18   -5.00000   15.58847
+953    -15     18   -6.00000   15.58847
+954    -16     18   -7.00000   15.58847
+955    -17     18   -8.00000   15.58847
+956    -18     18   -9.00000   15.58847
+957    -18     17   -9.50000   14.72243
+958    -18     16  -10.00000   13.85640
+959    -18     15  -10.50000   12.99037
+960    -18     14  -11.00000   12.12437
+961    -18     13  -11.50000   11.25833
+962    -18     12  -12.00000   10.39230
+963    -18     11  -12.50000    9.52627
+964    -18     10  -13.00000    8.66027
+965    -18      9  -13.50000    7.79423
+966    -18      8  -14.00000    6.92820
+967    -18      7  -14.50000    6.06217
+968    -18      6  -15.00000    5.19617
+969    -18      5  -15.50000    4.33013
+970    -18      4  -16.00000    3.46410
+971    -18      3  -16.50000    2.59808
+972    -18      2  -17.00000    1.73205
+973    -18      1  -17.50000    0.86603
+974    -18      0  -18.00000    0.00000
+975    -17     -1  -17.50000   -0.86603
+976    -16     -2  -17.00000   -1.73205
+977    -15     -3  -16.50000   -2.59808
+978    -14     -4  -16.00000   -3.46410
+979    -13     -5  -15.50000   -4.33013
+980    -12     -6  -15.00000   -5.19617
+981    -11     -7  -14.50000   -6.06217
+982    -10     -8  -14.00000   -6.92820
+983     -9     -9  -13.50000   -7.79423
+984     -8    -10  -13.00000   -8.66027
+985     -7    -11  -12.50000   -9.52627
+986     -6    -12  -12.00000  -10.39230
+987     -5    -13  -11.50000  -11.25833
+988     -4    -14  -11.00000  -12.12437
+989     -3    -15  -10.50000  -12.99037
+990     -2    -16  -10.00000  -13.85640
+991     -1    -17   -9.50000  -14.72243
+992      0    -18   -9.00000  -15.58847
+993      1    -18   -8.00000  -15.58847
+994      2    -18   -7.00000  -15.58847
+995      3    -18   -6.00000  -15.58847
+996      4    -18   -5.00000  -15.58847
+997      5    -18   -4.00000  -15.58847
+998      6    -18   -3.00000  -15.58847
+999      7    -18   -2.00000  -15.58847
+1000      8    -18   -1.00000  -15.58847
+1001      9    -18    0.00000  -15.58847
+1002     10    -18    1.00000  -15.58847
+1003     11    -18    2.00000  -15.58847
+1004     12    -18    3.00000  -15.58847
+1005     13    -18    4.00000  -15.58847
+1006     14    -18    5.00000  -15.58847
+1007     15    -18    6.00000  -15.58847
+1008     16    -18    7.00000  -15.58847
+1009     17    -18    8.00000  -15.58847
+1010     18    -18    9.00000  -15.58847
+1011     18    -17    9.50000  -14.72243
+1012     18    -16   10.00000  -13.85640
+1013     18    -15   10.50000  -12.99037
+1014     18    -14   11.00000  -12.12437
+1015     18    -13   11.50000  -11.25833
+1016     18    -12   12.00000  -10.39230
+1017     18    -11   12.50000   -9.52627
+1018     18    -10   13.00000   -8.66027
+1019     18     -9   13.50000   -7.79423
+1020     18     -8   14.00000   -6.92820
+1021     18     -7   14.50000   -6.06217
+1022     18     -6   15.00000   -5.19617
+1023     18     -5   15.50000   -4.33013
+1024     18     -4   16.00000   -3.46410
+1025     18     -3   16.50000   -2.59808
+1026     18     -2   17.00000   -1.73205
+1027     18     -1   17.50000   -0.86603
+1028     19      0   19.00000    0.00000
+1029     18      1   18.50000    0.86603
+1030     17      2   18.00000    1.73205
+1031     16      3   17.50000    2.59808
+1032     15      4   17.00000    3.46410
+1033     14      5   16.50000    4.33013
+1034     13      6   16.00000    5.19617
+1035     12      7   15.50000    6.06217
+1036     11      8   15.00000    6.92820
+1037     10      9   14.50000    7.79423
+1038      9     10   14.00000    8.66027
+1039      8     11   13.50000    9.52627
+1040      7     12   13.00000   10.39230
+1041      6     13   12.50000   11.25833
+1042      5     14   12.00000   12.12437
+1043      4     15   11.50000   12.99037
+1044      3     16   11.00000   13.85640
+1045      2     17   10.50000   14.72243
+1046      1     18   10.00000   15.58847
+1047      0     19    9.50000   16.45447
+1048     -1     19    8.50000   16.45447
+1049     -2     19    7.50000   16.45447
+1050     -3     19    6.50000   16.45447
+1051     -4     19    5.50000   16.45447
+1052     -5     19    4.50000   16.45447
+1053     -6     19    3.50000   16.45447
+1054     -7     19    2.50000   16.45447
+1055     -8     19    1.50000   16.45447
+1056     -9     19    0.50000   16.45447
+1057    -10     19   -0.50000   16.45447
+1058    -11     19   -1.50000   16.45447
+1059    -12     19   -2.50000   16.45447
+1060    -13     19   -3.50000   16.45447
+1061    -14     19   -4.50000   16.45447
+1062    -15     19   -5.50000   16.45447
+1063    -16     19   -6.50000   16.45447
+1064    -17     19   -7.50000   16.45447
+1065    -18     19   -8.50000   16.45447
+1066    -19     19   -9.50000   16.45447
+1067    -19     18  -10.00000   15.58847
+1068    -19     17  -10.50000   14.72243
+1069    -19     16  -11.00000   13.85640
+1070    -19     15  -11.50000   12.99037
+1071    -19     14  -12.00000   12.12437
+1072    -19     13  -12.50000   11.25833
+1073    -19     12  -13.00000   10.39230
+1074    -19     11  -13.50000    9.52627
+1075    -19     10  -14.00000    8.66027
+1076    -19      9  -14.50000    7.79423
+1077    -19      8  -15.00000    6.92820
+1078    -19      7  -15.50000    6.06217
+1079    -19      6  -16.00000    5.19617
+1080    -19      5  -16.50000    4.33013
+1081    -19      4  -17.00000    3.46410
+1082    -19      3  -17.50000    2.59808
+1083    -19      2  -18.00000    1.73205
+1084    -19      1  -18.50000    0.86603
+1085    -19      0  -19.00000    0.00000
+1086    -18     -1  -18.50000   -0.86603
+1087    -17     -2  -18.00000   -1.73205
+1088    -16     -3  -17.50000   -2.59808
+1089    -15     -4  -17.00000   -3.46410
+1090    -14     -5  -16.50000   -4.33013
+1091    -13     -6  -16.00000   -5.19617
+1092    -12     -7  -15.50000   -6.06217
+1093    -11     -8  -15.00000   -6.92820
+1094    -10     -9  -14.50000   -7.79423
+1095     -9    -10  -14.00000   -8.66027
+1096     -8    -11  -13.50000   -9.52627
+1097     -7    -12  -13.00000  -10.39230
+1098     -6    -13  -12.50000  -11.25833
+1099     -5    -14  -12.00000  -12.12437
+1100     -4    -15  -11.50000  -12.99037
+1101     -3    -16  -11.00000  -13.85640
+1102     -2    -17  -10.50000  -14.72243
+1103     -1    -18  -10.00000  -15.58847
+1104      0    -19   -9.50000  -16.45447
+1105      1    -19   -8.50000  -16.45447
+1106      2    -19   -7.50000  -16.45447
+1107      3    -19   -6.50000  -16.45447
+1108      4    -19   -5.50000  -16.45447
+1109      5    -19   -4.50000  -16.45447
+1110      6    -19   -3.50000  -16.45447
+1111      7    -19   -2.50000  -16.45447
+1112      8    -19   -1.50000  -16.45447
+1113      9    -19   -0.50000  -16.45447
+1114     10    -19    0.50000  -16.45447
+1115     11    -19    1.50000  -16.45447
+1116     12    -19    2.50000  -16.45447
+1117     13    -19    3.50000  -16.45447
+1118     14    -19    4.50000  -16.45447
+1119     15    -19    5.50000  -16.45447
+1120     16    -19    6.50000  -16.45447
+1121     17    -19    7.50000  -16.45447
+1122     18    -19    8.50000  -16.45447
+1123     19    -19    9.50000  -16.45447
+1124     19    -18   10.00000  -15.58847
+1125     19    -17   10.50000  -14.72243
+1126     19    -16   11.00000  -13.85640
+1127     19    -15   11.50000  -12.99037
+1128     19    -14   12.00000  -12.12437
+1129     19    -13   12.50000  -11.25833
+1130     19    -12   13.00000  -10.39230
+1131     19    -11   13.50000   -9.52627
+1132     19    -10   14.00000   -8.66027
+1133     19     -9   14.50000   -7.79423
+1134     19     -8   15.00000   -6.92820
+1135     19     -7   15.50000   -6.06217
+1136     19     -6   16.00000   -5.19617
+1137     19     -5   16.50000   -4.33013
+1138     19     -4   17.00000   -3.46410
+1139     19     -3   17.50000   -2.59808
+1140     19     -2   18.00000   -1.73205
+1141     19     -1   18.50000   -0.86603
Index: /branches/start/MagicSoft/Simulation/Detector/Data/qe-emi.RFL.dat
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Data/qe-emi.RFL.dat	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Data/qe-emi.RFL.dat	(revision 4308)
@@ -0,0 +1,29819 @@
+############################################################
+# Quantum Efficiency file, for each pixel in the camera
+# Copyright (c) 1998, J C Gonzalez
+#############################################################
+# This file is (still) for test purposes only
+#
+# first, number of datapoints, and wavelengths
+28
+270
+280
+290
+300
+310
+320
+330
+340
+350
+360
+370
+380
+390
+400
+410
+420
+430
+440
+450
+460
+480
+500
+520
+540
+560
+580
+600
+620
+# pixel 1
+1  1  0.6817
+1  2  2.2155
+1  3  5.8797
+1  4 10.5663
+1  5 16.5312
+1  6 20.1101
+1  7 21.2179
+1  8 22.4109
+1  9 23.7743
+1 10 24.2856
+1 11 24.2856
+1 12 24.1151
+1 13 23.6039
+1 14 23.3482
+1 15 22.1552
+1 16 20.9623
+1 17 19.6841
+1 18 18.3207
+1 19 16.7869
+1 20 15.3382
+1 21 12.1002
+1 22  8.5212
+1 23  5.9649
+1 24  4.4310
+1 25  1.9599
+1 26  0.8521
+1 27  0.3408
+1 28  0.0852
+# pixel 2
+2  1  0.7135
+2  2  2.3189
+2  3  6.1541
+2  4 11.0595
+2  5 17.3027
+2  6 21.0486
+2  7 22.2081
+2  8 23.4567
+2  9 24.8838
+2 10 25.4189
+2 11 25.4189
+2 12 25.2405
+2 13 24.7054
+2 14 24.4378
+2 15 23.1892
+2 16 21.9405
+2 17 20.6027
+2 18 19.1757
+2 19 17.5703
+2 20 16.0540
+2 21 12.6649
+2 22  8.9189
+2 23  6.2432
+2 24  4.6378
+2 25  2.0514
+2 26  0.8919
+2 27  0.3568
+2 28  0.0892
+# pixel 3
+3  1  0.7000
+3  2  2.2751
+3  3  6.0379
+3  4 10.8507
+3  5 16.9760
+3  6 20.6513
+3  7 21.7888
+3  8 23.0139
+3  9 24.4140
+3 10 24.9390
+3 11 24.9390
+3 12 24.7640
+3 13 24.2390
+3 14 23.9765
+3 15 22.7514
+3 16 21.5263
+3 17 20.2137
+3 18 18.8137
+3 19 17.2386
+3 20 15.7510
+3 21 12.4258
+3 22  8.7505
+3 23  6.1254
+3 24  4.5503
+3 25  2.0126
+3 26  0.8751
+3 27  0.3500
+3 28  0.0875
+# pixel 4
+4  1  0.7046
+4  2  2.2899
+4  3  6.0770
+4  4 10.9210
+4  5 17.0861
+4  6 20.7852
+4  7 21.9302
+4  8 23.1632
+4  9 24.5723
+4 10 25.1008
+4 11 25.1008
+4 12 24.9246
+4 13 24.3962
+4 14 24.1320
+4 15 22.8990
+4 16 21.6659
+4 17 20.3448
+4 18 18.9357
+4 19 17.3504
+4 20 15.8531
+4 21 12.5064
+4 22  8.8073
+4 23  6.1651
+4 24  4.5798
+4 25  2.0257
+4 26  0.8807
+4 27  0.3523
+4 28  0.0881
+# pixel 5
+5  1  0.6915
+5  2  2.2475
+5  3  5.9644
+5  4 10.7187
+5  5 16.7696
+5  6 20.4001
+5  7 21.5239
+5  8 22.7340
+5  9 24.1171
+5 10 24.6358
+5 11 24.6358
+5 12 24.4629
+5 13 23.9442
+5 14 23.6849
+5 15 22.4747
+5 16 21.2645
+5 17 19.9679
+5 18 18.5849
+5 19 17.0289
+5 20 15.5594
+5 21 12.2747
+5 22  8.6441
+5 23  6.0509
+5 24  4.4949
+5 25  1.9881
+5 26  0.8644
+5 27  0.3458
+5 28  0.0864
+# pixel 6
+6  1  0.6690
+6  2  2.1743
+6  3  5.7701
+6  4 10.3695
+6  5 16.2233
+6  6 19.7356
+6  7 20.8227
+6  8 21.9934
+6  9 23.3314
+6 10 23.8332
+6 11 23.8332
+6 12 23.6659
+6 13 23.1642
+6 14 22.9133
+6 15 21.7426
+6 16 20.5718
+6 17 19.3174
+6 18 17.9794
+6 19 16.4742
+6 20 15.0525
+6 21 11.8748
+6 22  8.3625
+6 23  5.8538
+6 24  4.3485
+6 25  1.9234
+6 26  0.8363
+6 27  0.3345
+6 28  0.0836
+# pixel 7
+7  1  0.8461
+7  2  2.7498
+7  3  7.2975
+7  4 13.1144
+7  5 20.5176
+7  6 24.9596
+7  7 26.3345
+7  8 27.8151
+7  9 29.5073
+7 10 30.1419
+7 11 30.1419
+7 12 29.9303
+7 13 29.2958
+7 14 28.9785
+7 15 27.4978
+7 16 26.0172
+7 17 24.4308
+7 18 22.7386
+7 19 20.8349
+7 20 19.0370
+7 21 15.0181
+7 22 10.5761
+7 23  7.4033
+7 24  5.4996
+7 25  2.4325
+7 26  1.0576
+7 27  0.4230
+7 28  0.1058
+# pixel 8
+8  1  0.7628
+8  2  2.4791
+8  3  6.5791
+8  4 11.8233
+8  5 18.4977
+8  6 22.5024
+8  7 23.7419
+8  8 25.0768
+8  9 26.6024
+8 10 27.1745
+8 11 27.1745
+8 12 26.9838
+8 13 26.4117
+8 14 26.1256
+8 15 24.7907
+8 16 23.4558
+8 17 22.0256
+8 18 20.5000
+8 19 18.7837
+8 20 17.1628
+8 21 13.5396
+8 22  9.5349
+8 23  6.6744
+8 24  4.9581
+8 25  2.1930
+8 26  0.9535
+8 27  0.3814
+8 28  0.0953
+# pixel 9
+9  1  0.7937
+9  2  2.5796
+9  3  6.8460
+9  4 12.3029
+9  5 19.2481
+9  6 23.4152
+9  7 24.7050
+9  8 26.0941
+9  9 27.6815
+9 10 28.2768
+9 11 28.2768
+9 12 28.0784
+9 13 27.4831
+9 14 27.1854
+9 15 25.7964
+9 16 24.4074
+9 17 22.9191
+9 18 21.3316
+9 19 19.5457
+9 20 17.8590
+9 21 14.0888
+9 22  9.9217
+9 23  6.9452
+9 24  5.1593
+9 25  2.2820
+9 26  0.9922
+9 27  0.3969
+9 28  0.0992
+# pixel 10
+10  1  0.8050
+10  2  2.6162
+10  3  6.9430
+10  4 12.4772
+10  5 19.5208
+10  6 23.7469
+10  7 25.0550
+10  8 26.4637
+10  9 28.0737
+10 10 28.6774
+10 11 28.6774
+10 12 28.4762
+10 13 27.8725
+10 14 27.5706
+10 15 26.1619
+10 16 24.7532
+10 17 23.2438
+10 18 21.6339
+10 19 19.8227
+10 20 18.1121
+10 21 14.2884
+10 22 10.0623
+10 23  7.0436
+10 24  5.2324
+10 25  2.3143
+10 26  1.0062
+10 27  0.4025
+10 28  0.1006
+# pixel 11
+11  1  0.6351
+11  2  2.0639
+11  3  5.4773
+11  4  9.8433
+11  5 15.4000
+11  6 18.7341
+11  7 19.7660
+11  8 20.8774
+11  9 22.1475
+11 10 22.6238
+11 11 22.6238
+11 12 22.4650
+11 13 21.9887
+11 14 21.7506
+11 15 20.6392
+11 16 19.5279
+11 17 18.3372
+11 18 17.0671
+11 19 15.6382
+11 20 14.2887
+11 21 11.2722
+11 22  7.9382
+11 23  5.5567
+11 24  4.1278
+11 25  1.8258
+11 26  0.7938
+11 27  0.3175
+11 28  0.0794
+# pixel 12
+12  1  0.7618
+12  2  2.4757
+12  3  6.5703
+12  4 11.8074
+12  5 18.4729
+12  6 22.4722
+12  7 23.7100
+12  8 25.0431
+12  9 26.5667
+12 10 27.1380
+12 11 27.1380
+12 12 26.9475
+12 13 26.3762
+12 14 26.0906
+12 15 24.7575
+12 16 23.4244
+12 17 21.9961
+12 18 20.4725
+12 19 18.7585
+12 20 17.1398
+12 21 13.5214
+12 22  9.5221
+12 23  6.6655
+12 24  4.9515
+12 25  2.1901
+12 26  0.9522
+12 27  0.3809
+12 28  0.0952
+# pixel 13
+13  1  0.7411
+13  2  2.4087
+13  3  6.3923
+13  4 11.4876
+13  5 17.9726
+13  6 21.8636
+13  7 23.0679
+13  8 24.3649
+13  9 25.8472
+13 10 26.4030
+13 11 26.4030
+13 12 26.2177
+13 13 25.6619
+13 14 25.3840
+13 15 24.0870
+13 16 22.7900
+13 17 21.4003
+13 18 19.9181
+13 19 18.2505
+13 20 16.6756
+13 21 13.1552
+13 22  9.2642
+13 23  6.4850
+13 24  4.8174
+13 25  2.1308
+13 26  0.9264
+13 27  0.3706
+13 28  0.0926
+# pixel 14
+14  1  0.7494
+14  2  2.4357
+14  3  6.4639
+14  4 11.6162
+14  5 18.1738
+14  6 22.1083
+14  7 23.3262
+14  8 24.6377
+14  9 26.1366
+14 10 26.6986
+14 11 26.6986
+14 12 26.5113
+14 13 25.9492
+14 14 25.6682
+14 15 24.3567
+14 16 23.0451
+14 17 21.6399
+14 18 20.1411
+14 19 18.4548
+14 20 16.8623
+14 21 13.3025
+14 22  9.3679
+14 23  6.5576
+14 24  4.8713
+14 25  2.1546
+14 26  0.9368
+14 27  0.3747
+14 28  0.0937
+# pixel 15
+15  1  0.7811
+15  2  2.5385
+15  3  6.7367
+15  4 12.1065
+15  5 18.9408
+15  6 23.0414
+15  7 24.3106
+15  8 25.6775
+15  9 27.2396
+15 10 27.8254
+15 11 27.8254
+15 12 27.6301
+15 13 27.0443
+15 14 26.7514
+15 15 25.3846
+15 16 24.0177
+15 17 22.5532
+15 18 20.9911
+15 19 19.2337
+15 20 17.5739
+15 21 13.8639
+15 22  9.7633
+15 23  6.8343
+15 24  5.0769
+15 25  2.2456
+15 26  0.9763
+15 27  0.3905
+15 28  0.0976
+# pixel 16
+16  1  0.6894
+16  2  2.2404
+16  3  5.9456
+16  4 10.6849
+16  5 16.7168
+16  6 20.3358
+16  7 21.4560
+16  8 22.6624
+16  9 24.0411
+16 10 24.5581
+16 11 24.5581
+16 12 24.3858
+16 13 23.8688
+16 14 23.6103
+16 15 22.4039
+16 16 21.1975
+16 17 19.9050
+16 18 18.5263
+16 19 16.9753
+16 20 15.5104
+16 21 12.2360
+16 22  8.6169
+16 23  6.0318
+16 24  4.4808
+16 25  1.9819
+16 26  0.8617
+16 27  0.3447
+16 28  0.0862
+# pixel 17
+17  1  0.8102
+17  2  2.6330
+17  3  6.9876
+17  4 12.5574
+17  5 19.6463
+17  6 23.8997
+17  7 25.2162
+17  8 26.6339
+17  9 28.2542
+17 10 28.8619
+17 11 28.8619
+17 12 28.6593
+17 13 28.0517
+17 14 27.7479
+17 15 26.3301
+17 16 24.9123
+17 17 23.3933
+17 18 21.7730
+17 19 19.9501
+17 20 18.2285
+17 21 14.3803
+17 22 10.1270
+17 23  7.0889
+17 24  5.2660
+17 25  2.3292
+17 26  1.0127
+17 27  0.4051
+17 28  0.1013
+# pixel 18
+18  1  0.6997
+18  2  2.2741
+18  3  6.0352
+18  4 10.8459
+18  5 16.9686
+18  6 20.6422
+18  7 21.7793
+18  8 23.0038
+18  9 24.4033
+18 10 24.9281
+18 11 24.9281
+18 12 24.7532
+18 13 24.2284
+18 14 23.9660
+18 15 22.7414
+18 16 21.5169
+18 17 20.2049
+18 18 18.8054
+18 19 17.2310
+18 20 15.7441
+18 21 12.4203
+18 22  8.7467
+18 23  6.1227
+18 24  4.5483
+18 25  2.0117
+18 26  0.8747
+18 27  0.3499
+18 28  0.0875
+# pixel 19
+19  1  0.7263
+19  2  2.3604
+19  3  6.2642
+19  4 11.2573
+19  5 17.6123
+19  6 21.4252
+19  7 22.6054
+19  8 23.8764
+19  9 25.3290
+19 10 25.8737
+19 11 25.8737
+19 12 25.6921
+19 13 25.1474
+19 14 24.8750
+19 15 23.6041
+19 16 22.3331
+19 17 20.9713
+19 18 19.5187
+19 19 17.8846
+19 20 16.3413
+19 21 12.8914
+19 22  9.0785
+19 23  6.3549
+19 24  4.7208
+19 25  2.0881
+19 26  0.9078
+19 27  0.3631
+19 28  0.0908
+# pixel 20
+20  1  0.6934
+20  2  2.2534
+20  3  5.9803
+20  4 10.7472
+20  5 16.8142
+20  6 20.4544
+20  7 21.5811
+20  8 22.7945
+20  9 24.1812
+20 10 24.7013
+20 11 24.7013
+20 12 24.5279
+20 13 24.0079
+20 14 23.7479
+20 15 22.5345
+20 16 21.3211
+20 17 20.0210
+20 18 18.6343
+20 19 17.0742
+20 20 15.6008
+20 21 12.3073
+20 22  8.6671
+20 23  6.0670
+20 24  4.5069
+20 25  1.9934
+20 26  0.8667
+20 27  0.3467
+20 28  0.0867
+# pixel 21
+21  1  0.6788
+21  2  2.2061
+21  3  5.8545
+21  4 10.5212
+21  5 16.4606
+21  6 20.0242
+21  7 21.1272
+21  8 22.3151
+21  9 23.6727
+21 10 24.1817
+21 11 24.1817
+21 12 24.0120
+21 13 23.5030
+21 14 23.2484
+21 15 22.0605
+21 16 20.8727
+21 17 19.5999
+21 18 18.2424
+21 19 16.7151
+21 20 15.2727
+21 21 12.0484
+21 22  8.4848
+21 23  5.9394
+21 24  4.4121
+21 25  1.9515
+21 26  0.8485
+21 27  0.3394
+21 28  0.0848
+# pixel 22
+22  1  0.8059
+22  2  2.6192
+22  3  6.9508
+22  4 12.4914
+22  5 19.5429
+22  6 23.7739
+22  7 25.0835
+22  8 26.4938
+22  9 28.1056
+22 10 28.7100
+22 11 28.7100
+22 12 28.5085
+22 13 27.9041
+22 14 27.6019
+22 15 26.1916
+22 16 24.7813
+22 17 23.2702
+22 18 21.6584
+22 19 19.8452
+22 20 18.1326
+22 21 14.3046
+22 22 10.0737
+22 23  7.0516
+22 24  5.2383
+22 25  2.3169
+22 26  1.0074
+22 27  0.4029
+22 28  0.1007
+# pixel 23
+23  1  0.7317
+23  2  2.3782
+23  3  6.3113
+23  4 11.3420
+23  5 17.7448
+23  6 21.5864
+23  7 22.7755
+23  8 24.0561
+23  9 25.5195
+23 10 26.0683
+23 11 26.0683
+23 12 25.8854
+23 13 25.3366
+23 14 25.0622
+23 15 23.7817
+23 16 22.5011
+23 17 21.1291
+23 18 19.6656
+23 19 18.0192
+23 20 16.4642
+23 21 12.9884
+23 22  9.1468
+23 23  6.4028
+23 24  4.7563
+23 25  2.1038
+23 26  0.9147
+23 27  0.3659
+23 28  0.0915
+# pixel 24
+24  1  0.6833
+24  2  2.2206
+24  3  5.8932
+24  4 10.5907
+24  5 16.5694
+24  6 20.1566
+24  7 21.2669
+24  8 22.4626
+24  9 23.8292
+24 10 24.3416
+24 11 24.3416
+24 12 24.1708
+24 13 23.6583
+24 14 23.4021
+24 15 22.2064
+24 16 21.0107
+24 17 19.7295
+24 18 18.3630
+24 19 16.8256
+24 20 15.3737
+24 21 12.1281
+24 22  8.5409
+24 23  5.9786
+24 24  4.4413
+24 25  1.9644
+24 26  0.8541
+24 27  0.3416
+24 28  0.0854
+# pixel 25
+25  1  0.7114
+25  2  2.3120
+25  3  6.1356
+25  4 11.0262
+25  5 17.2507
+25  6 20.9854
+25  7 22.1414
+25  8 23.3863
+25  9 24.8090
+25 10 25.3426
+25 11 25.3426
+25 12 25.1647
+25 13 24.6312
+25 14 24.3644
+25 15 23.1195
+25 16 21.8746
+25 17 20.5408
+25 18 19.1181
+25 19 17.5175
+25 20 16.0058
+25 21 12.6268
+25 22  8.8921
+25 23  6.2245
+25 24  4.6239
+25 25  2.0452
+25 26  0.8892
+25 27  0.3557
+25 28  0.0889
+# pixel 26
+26  1  0.6831
+26  2  2.2199
+26  3  5.8913
+26  4 10.5873
+26  5 16.5640
+26  6 20.1501
+26  7 21.2600
+26  8 22.4554
+26  9 23.8215
+26 10 24.3338
+26 11 24.3338
+26 12 24.1630
+26 13 23.6507
+26 14 23.3946
+26 15 22.1992
+26 16 21.0039
+26 17 19.7232
+26 18 18.3570
+26 19 16.8202
+26 20 15.3687
+26 21 12.1242
+26 22  8.5382
+26 23  5.9767
+26 24  4.4398
+26 25  1.9638
+26 26  0.8538
+26 27  0.3415
+26 28  0.0854
+# pixel 27
+27  1  0.6877
+27  2  2.2349
+27  3  5.9311
+27  4 10.6588
+27  5 16.6758
+27  6 20.2860
+27  7 21.4035
+27  8 22.6069
+27  9 23.9822
+27 10 24.4979
+27 11 24.4979
+27 12 24.3260
+27 13 23.8103
+27 14 23.5524
+27 15 22.3490
+27 16 21.1456
+27 17 19.8562
+27 18 18.4809
+27 19 16.9337
+27 20 15.4724
+27 21 12.2060
+27 22  8.5958
+27 23  6.0170
+27 24  4.4698
+27 25  1.9770
+27 26  0.8596
+27 27  0.3438
+27 28  0.0860
+# pixel 28
+28  1  0.7363
+28  2  2.3931
+28  3  6.3509
+28  4 11.4132
+28  5 17.8562
+28  6 21.7220
+28  7 22.9185
+28  8 24.2071
+28  9 25.6798
+28 10 26.2320
+28 11 26.2320
+28 12 26.0479
+28 13 25.4957
+28 14 25.2196
+28 15 23.9310
+28 16 22.6424
+28 17 21.2617
+28 18 19.7891
+28 19 18.1323
+28 20 16.5676
+28 21 13.0700
+28 22  9.2042
+28 23  6.4430
+28 24  4.7862
+28 25  2.1170
+28 26  0.9204
+28 27  0.3682
+28 28  0.0920
+# pixel 29
+29  1  0.7242
+29  2  2.3535
+29  3  6.2459
+29  4 11.2245
+29  5 17.5610
+29  6 21.3628
+29  7 22.5396
+29  8 23.8069
+29  9 25.2552
+29 10 25.7983
+29 11 25.7983
+29 12 25.6173
+29 13 25.0741
+29 14 24.8026
+29 15 23.5353
+29 16 22.2680
+29 17 20.9102
+29 18 19.4619
+29 19 17.8325
+29 20 16.2937
+29 21 12.8539
+29 22  9.0520
+29 23  6.3364
+29 24  4.7071
+29 25  2.0820
+29 26  0.9052
+29 27  0.3621
+29 28  0.0905
+# pixel 30
+30  1  0.7281
+30  2  2.3663
+30  3  6.2798
+30  4 11.2855
+30  5 17.6563
+30  6 21.4788
+30  7 22.6619
+30  8 23.9361
+30  9 25.3923
+30 10 25.9383
+30 11 25.9383
+30 12 25.7563
+30 13 25.2102
+30 14 24.9372
+30 15 23.6630
+30 16 22.3889
+30 17 21.0237
+30 18 19.5675
+30 19 17.9293
+30 20 16.3821
+30 21 12.9237
+30 22  9.1012
+30 23  6.3708
+30 24  4.7326
+30 25  2.0933
+30 26  0.9101
+30 27  0.3640
+30 28  0.0910
+# pixel 31
+31  1  0.7412
+31  2  2.4089
+31  3  6.3929
+31  4 11.4886
+31  5 17.9742
+31  6 21.8655
+31  7 23.0699
+31  8 24.3671
+31  9 25.8495
+31 10 26.4054
+31 11 26.4054
+31 12 26.2201
+31 13 25.6642
+31 14 25.3862
+31 15 24.0891
+31 16 22.7920
+31 17 21.4022
+31 18 19.9198
+31 19 18.2521
+31 20 16.6771
+31 21 13.1564
+31 22  9.2650
+31 23  6.4855
+31 24  4.8178
+31 25  2.1310
+31 26  0.9265
+31 27  0.3706
+31 28  0.0927
+# pixel 32
+32  1  0.7442
+32  2  2.4188
+32  3  6.4190
+32  4 11.5356
+32  5 18.0477
+32  6 21.9549
+32  7 23.1643
+32  8 24.4667
+32  9 25.9552
+32 10 26.5134
+32 11 26.5134
+32 12 26.3273
+32 13 25.7691
+32 14 25.4900
+32 15 24.1876
+32 16 22.8852
+32 17 21.4898
+32 18 20.0013
+32 19 18.3268
+32 20 16.7453
+32 21 13.2102
+32 22  9.3029
+32 23  6.5121
+32 24  4.8375
+32 25  2.1397
+32 26  0.9303
+32 27  0.3721
+32 28  0.0930
+# pixel 33
+33  1  0.6260
+33  2  2.0344
+33  3  5.3989
+33  4  9.7023
+33  5 15.1794
+33  6 18.4657
+33  7 19.4828
+33  8 20.5783
+33  9 21.8302
+33 10 22.2996
+33 11 22.2996
+33 12 22.1431
+33 13 21.6737
+33 14 21.4389
+33 15 20.3435
+33 16 19.2481
+33 17 18.0744
+33 18 16.8225
+33 19 15.4141
+33 20 14.0840
+33 21 11.1107
+33 22  7.8244
+33 23  5.4771
+33 24  4.0687
+33 25  1.7996
+33 26  0.7824
+33 27  0.3130
+33 28  0.0782
+# pixel 34
+34  1  0.7254
+34  2  2.3576
+34  3  6.2566
+34  4 11.2438
+34  5 17.5910
+34  6 21.3994
+34  7 22.5782
+34  8 23.8476
+34  9 25.2984
+34 10 25.8425
+34 11 25.8425
+34 12 25.6611
+34 13 25.1171
+34 14 24.8451
+34 15 23.5756
+34 16 22.3062
+34 17 20.9460
+34 18 19.4952
+34 19 17.8631
+34 20 16.3216
+34 21 12.8759
+34 22  9.0675
+34 23  6.3473
+34 24  4.7151
+34 25  2.0855
+34 26  0.9068
+34 27  0.3627
+34 28  0.0907
+# pixel 35
+35  1  0.7109
+35  2  2.3103
+35  3  6.1312
+35  4 11.0184
+35  5 17.2384
+35  6 20.9705
+35  7 22.1256
+35  8 23.3696
+35  9 24.7914
+35 10 25.3245
+35 11 25.3245
+35 12 25.1468
+35 13 24.6136
+35 14 24.3471
+35 15 23.1031
+35 16 21.8591
+35 17 20.5262
+35 18 19.1045
+35 19 17.5050
+35 20 15.9944
+35 21 12.6178
+35 22  8.8858
+35 23  6.2201
+35 24  4.6206
+35 25  2.0437
+35 26  0.8886
+35 27  0.3554
+35 28  0.0889
+# pixel 36
+36  1  0.7534
+36  2  2.4485
+36  3  6.4979
+36  4 11.6773
+36  5 18.2693
+36  6 22.2246
+36  7 23.4488
+36  8 24.7672
+36  9 26.2740
+36 10 26.8390
+36 11 26.8390
+36 12 26.6506
+36 13 26.0856
+36 14 25.8031
+36 15 24.4847
+36 16 23.1663
+36 17 21.7537
+36 18 20.2470
+36 19 18.5519
+36 20 16.9509
+36 21 13.3724
+36 22  9.4172
+36 23  6.5920
+36 24  4.8969
+36 25  2.1660
+36 26  0.9417
+36 27  0.3767
+36 28  0.0942
+# pixel 37
+37  1  0.8047
+37  2  2.6152
+37  3  6.9404
+37  4 12.4725
+37  5 19.5135
+37  6 23.7380
+37  7 25.0456
+37  8 26.4538
+37  9 28.0632
+37 10 28.6667
+37 11 28.6667
+37 12 28.4655
+37 13 27.8620
+37 14 27.5603
+37 15 26.1521
+37 16 24.7439
+37 17 23.2351
+37 18 21.6258
+37 19 19.8152
+37 20 18.1053
+37 21 14.2831
+37 22 10.0585
+37 23  7.0409
+37 24  5.2304
+37 25  2.3135
+37 26  1.0058
+37 27  0.4023
+37 28  0.1006
+# pixel 38
+38  1  0.7662
+38  2  2.4901
+38  3  6.6083
+38  4 11.8757
+38  5 18.5798
+38  6 22.6022
+38  7 23.8473
+38  8 25.1881
+38  9 26.7204
+38 10 27.2951
+38 11 27.2951
+38 12 27.1035
+38 13 26.5289
+38 14 26.2416
+38 15 24.9008
+38 16 23.5600
+38 17 22.1234
+38 18 20.5910
+38 19 18.8671
+38 20 17.2390
+38 21 13.5996
+38 22  9.5772
+38 23  6.7041
+38 24  4.9802
+38 25  2.2028
+38 26  0.9577
+38 27  0.3831
+38 28  0.0958
+# pixel 39
+39  1  0.7650
+39  2  2.4862
+39  3  6.5979
+39  4 11.8570
+39  5 18.5505
+39  6 22.5666
+39  7 23.8097
+39  8 25.1484
+39  9 26.6783
+39 10 27.2520
+39 11 27.2520
+39 12 27.0608
+39 13 26.4871
+39 14 26.2002
+39 15 24.8615
+39 16 23.5228
+39 17 22.0885
+39 18 20.5586
+39 19 18.8374
+39 20 17.2118
+39 21 13.5782
+39 22  9.5621
+39 23  6.6935
+39 24  4.9723
+39 25  2.1993
+39 26  0.9562
+39 27  0.3825
+39 28  0.0956
+# pixel 40
+40  1  0.7369
+40  2  2.3948
+40  3  6.3555
+40  4 11.4215
+40  5 17.8692
+40  6 21.7378
+40  7 22.9352
+40  8 24.2247
+40  9 25.6985
+40 10 26.2511
+40 11 26.2511
+40 12 26.0669
+40 13 25.5142
+40 14 25.2379
+40 15 23.9484
+40 16 22.6589
+40 17 21.2772
+40 18 19.8035
+40 19 18.1455
+40 20 16.5797
+40 21 13.0795
+40 22  9.2109
+40 23  6.4476
+40 24  4.7897
+40 25  2.1185
+40 26  0.9211
+40 27  0.3684
+40 28  0.0921
+# pixel 41
+41  1  0.6993
+41  2  2.2728
+41  3  6.0318
+41  4 10.8397
+41  5 16.9589
+41  6 20.6305
+41  7 21.7669
+41  8 22.9907
+41  9 24.3894
+41 10 24.9139
+41 11 24.9139
+41 12 24.7391
+41 13 24.2146
+41 14 23.9523
+41 15 22.7285
+41 16 21.5046
+41 17 20.1934
+41 18 18.7947
+41 19 17.2212
+41 20 15.7351
+41 21 12.4132
+41 22  8.7417
+41 23  6.1192
+41 24  4.5457
+41 25  2.0106
+41 26  0.8742
+41 27  0.3497
+41 28  0.0874
+# pixel 42
+42  1  0.8431
+42  2  2.7399
+42  3  7.2714
+42  4 13.0674
+42  5 20.4442
+42  6 24.8703
+42  7 26.2403
+42  8 27.7156
+42  9 29.4017
+42 10 30.0340
+42 11 30.0340
+42 12 29.8233
+42 13 29.1910
+42 14 28.8748
+42 15 27.3995
+42 16 25.9241
+42 17 24.3434
+42 18 22.6573
+42 19 20.7604
+42 20 18.9689
+42 21 14.9643
+42 22 10.5383
+42 23  7.3768
+42 24  5.4799
+42 25  2.4238
+42 26  1.0538
+42 27  0.4215
+42 28  0.1054
+# pixel 43
+43  1  0.6972
+43  2  2.2658
+43  3  6.0132
+43  4 10.8063
+43  5 16.9066
+43  6 20.5668
+43  7 21.6997
+43  8 22.9198
+43  9 24.3141
+43 10 24.8370
+43 11 24.8370
+43 12 24.6627
+43 13 24.1398
+43 14 23.8784
+43 15 22.6583
+43 16 21.4383
+43 17 20.1311
+43 18 18.7367
+43 19 17.1680
+43 20 15.6865
+43 21 12.3749
+43 22  8.7147
+43 23  6.1003
+43 24  4.5317
+43 25  2.0044
+43 26  0.8715
+43 27  0.3486
+43 28  0.0871
+# pixel 44
+44  1  0.8253
+44  2  2.6822
+44  3  7.1181
+44  4 12.7919
+44  5 20.0131
+44  6 24.3459
+44  7 25.6870
+44  8 27.1312
+44  9 28.7818
+44 10 29.4007
+44 11 29.4007
+44 12 29.1944
+44 13 28.5754
+44 14 28.2660
+44 15 26.8217
+44 16 25.3775
+44 17 23.8301
+44 18 22.1795
+44 19 20.3226
+44 20 18.5689
+44 21 14.6488
+44 22 10.3160
+44 23  7.2212
+44 24  5.3643
+44 25  2.3727
+44 26  1.0316
+44 27  0.4126
+44 28  0.1032
+# pixel 45
+45  1  0.8569
+45  2  2.7850
+45  3  7.3910
+45  4 13.2823
+45  5 20.7804
+45  6 25.2793
+45  7 26.6718
+45  8 28.1714
+45  9 29.8853
+45 10 30.5280
+45 11 30.5280
+45 12 30.3137
+45 13 29.6710
+45 14 29.3497
+45 15 27.8501
+45 16 26.3504
+45 17 24.7437
+45 18 23.0299
+45 19 21.1018
+45 20 19.2808
+45 21 15.2104
+45 22 10.7116
+45 23  7.4981
+45 24  5.5700
+45 25  2.4637
+45 26  1.0712
+45 27  0.4285
+45 28  0.1071
+# pixel 46
+46  1  0.7792
+46  2  2.5325
+46  3  6.7208
+46  4 12.0780
+46  5 18.8963
+46  6 22.9872
+46  7 24.2535
+46  8 25.6171
+46  9 27.1756
+46 10 27.7600
+46 11 27.7600
+46 12 27.5652
+46 13 26.9808
+46 14 26.6886
+46 15 25.3249
+46 16 23.9613
+46 17 22.5002
+46 18 20.9418
+46 19 19.1885
+46 20 17.5326
+46 21 13.8313
+46 22  9.7404
+46 23  6.8182
+46 24  5.0650
+46 25  2.2403
+46 26  0.9740
+46 27  0.3896
+46 28  0.0974
+# pixel 47
+47  1  0.7502
+47  2  2.4382
+47  3  6.4707
+47  4 11.6285
+47  5 18.1930
+47  6 22.1317
+47  7 23.3508
+47  8 24.6637
+47  9 26.1641
+47 10 26.7268
+47 11 26.7268
+47 12 26.5392
+47 13 25.9766
+47 14 25.6952
+47 15 24.3823
+47 16 23.0694
+47 17 21.6628
+47 18 20.1623
+47 19 18.4743
+47 20 16.8801
+47 21 13.3165
+47 22  9.3778
+47 23  6.5645
+47 24  4.8765
+47 25  2.1569
+47 26  0.9378
+47 27  0.3751
+47 28  0.0938
+# pixel 48
+48  1  0.7195
+48  2  2.3385
+48  3  6.2060
+48  4 11.1529
+48  5 17.4489
+48  6 21.2264
+48  7 22.3957
+48  8 23.6549
+48  9 25.0940
+48 10 25.6336
+48 11 25.6336
+48 12 25.4537
+48 13 24.9141
+48 14 24.6443
+48 15 23.3851
+48 16 22.1259
+48 17 20.7767
+48 18 19.3376
+48 19 17.7187
+48 20 16.1897
+48 21 12.7718
+48 22  8.9943
+48 23  6.2960
+48 24  4.6770
+48 25  2.0687
+48 26  0.8994
+48 27  0.3598
+48 28  0.0899
+# pixel 49
+49  1  0.7548
+49  2  2.4530
+49  3  6.5099
+49  4 11.6990
+49  5 18.3033
+49  6 22.2659
+49  7 23.4924
+49  8 24.8132
+49  9 26.3228
+49 10 26.8889
+49 11 26.8889
+49 12 26.7002
+49 13 26.1341
+49 14 25.8511
+49 15 24.5302
+49 16 23.2093
+49 17 21.7941
+49 18 20.2846
+49 19 18.5863
+49 20 16.9824
+49 21 13.3973
+49 22  9.4347
+49 23  6.6043
+49 24  4.9060
+49 25  2.1700
+49 26  0.9435
+49 27  0.3774
+49 28  0.0943
+# pixel 50
+50  1  0.7132
+50  2  2.3178
+50  3  6.1511
+50  4 11.0542
+50  5 17.2945
+50  6 21.0387
+50  7 22.1976
+50  8 23.4457
+50  9 24.8720
+50 10 25.4069
+50 11 25.4069
+50 12 25.2286
+50 13 24.6937
+50 14 24.4263
+50 15 23.1782
+50 16 21.9302
+50 17 20.5930
+50 18 19.1666
+50 19 17.5620
+50 20 16.0465
+50 21 12.6589
+50 22  8.9147
+50 23  6.2403
+50 24  4.6356
+50 25  2.0504
+50 26  0.8915
+50 27  0.3566
+50 28  0.0891
+# pixel 51
+51  1  0.7803
+51  2  2.5359
+51  3  6.7299
+51  4 12.0942
+51  5 18.9216
+51  6 23.0181
+51  7 24.2860
+51  8 25.6515
+51  9 27.2121
+51 10 27.7973
+51 11 27.7973
+51 12 27.6022
+51 13 27.0170
+51 14 26.7244
+51 15 25.3589
+51 16 23.9934
+51 17 22.5304
+51 18 20.9699
+51 19 19.2143
+51 20 17.5562
+51 21 13.8499
+51 22  9.7534
+51 23  6.8274
+51 24  5.0718
+51 25  2.2433
+51 26  0.9753
+51 27  0.3901
+51 28  0.0975
+# pixel 52
+52  1  0.7113
+52  2  2.3119
+52  3  6.1354
+52  4 11.0259
+52  5 17.2502
+52  6 20.9848
+52  7 22.1407
+52  8 23.3856
+52  9 24.8083
+52 10 25.3418
+52 11 25.3418
+52 12 25.1639
+52 13 24.6304
+52 14 24.3637
+52 15 23.1188
+52 16 21.8740
+52 17 20.5402
+52 18 19.1175
+52 19 17.5169
+52 20 16.0053
+52 21 12.6264
+52 22  8.8919
+52 23  6.2243
+52 24  4.6238
+52 25  2.0451
+52 26  0.8892
+52 27  0.3557
+52 28  0.0889
+# pixel 53
+53  1  0.6633
+53  2  2.1558
+53  3  5.7213
+53  4 10.2817
+53  5 16.0859
+53  6 19.5684
+53  7 20.6464
+53  8 21.8072
+53  9 23.1339
+53 10 23.6314
+53 11 23.6314
+53 12 23.4655
+53 13 22.9680
+53 14 22.7193
+53 15 21.5585
+53 16 20.3976
+53 17 19.1539
+53 18 17.8272
+53 19 16.3347
+53 20 14.9251
+53 21 11.7742
+53 22  8.2917
+53 23  5.8042
+53 24  4.3117
+53 25  1.9071
+53 26  0.8292
+53 27  0.3317
+53 28  0.0829
+# pixel 54
+54  1  0.7450
+54  2  2.4212
+54  3  6.4256
+54  4 11.5474
+54  5 18.0661
+54  6 21.9773
+54  7 23.1879
+54  8 24.4916
+54  9 25.9816
+54 10 26.5403
+54 11 26.5403
+54 12 26.3541
+54 13 25.7954
+54 14 25.5160
+54 15 24.2122
+54 16 22.9085
+54 17 21.5116
+54 18 20.0217
+54 19 18.3454
+54 20 16.7623
+54 21 13.2236
+54 22  9.3124
+54 23  6.5187
+54 24  4.8424
+54 25  2.1419
+54 26  0.9312
+54 27  0.3725
+54 28  0.0931
+# pixel 55
+55  1  0.7297
+55  2  2.3716
+55  3  6.2939
+55  4 11.3107
+55  5 17.6958
+55  6 21.5269
+55  7 22.7127
+55  8 23.9897
+55  9 25.4492
+55 10 25.9965
+55 11 25.9965
+55 12 25.8140
+55 13 25.2667
+55 14 24.9931
+55 15 23.7161
+55 16 22.4391
+55 17 21.0708
+55 18 19.6114
+55 19 17.9695
+55 20 16.4188
+55 21 12.9526
+55 22  9.1216
+55 23  6.3851
+55 24  4.7432
+55 25  2.0980
+55 26  0.9122
+55 27  0.3649
+55 28  0.0912
+# pixel 56
+56  1  0.7419
+56  2  2.4112
+56  3  6.3991
+56  4 11.4998
+56  5 17.9916
+56  6 21.8867
+56  7 23.0923
+56  8 24.3906
+56  9 25.8745
+56 10 26.4309
+56 11 26.4309
+56 12 26.2454
+56 13 25.6890
+56 14 25.4108
+56 15 24.1124
+56 16 22.8141
+56 17 21.4230
+56 18 19.9391
+56 19 18.2698
+56 20 16.6932
+56 21 13.1691
+56 22  9.2740
+56 23  6.4918
+56 24  4.8225
+56 25  2.1330
+56 26  0.9274
+56 27  0.3710
+56 28  0.0927
+# pixel 57
+57  1  0.7409
+57  2  2.4081
+57  3  6.3907
+57  4 11.4847
+57  5 17.9680
+57  6 21.8579
+57  7 23.0620
+57  8 24.3586
+57  9 25.8405
+57 10 26.3962
+57 11 26.3962
+57 12 26.2110
+57 13 25.6553
+57 14 25.3774
+57 15 24.0808
+57 16 22.7841
+57 17 21.3948
+57 18 19.9130
+57 19 18.2458
+57 20 16.6713
+57 21 13.1518
+57 22  9.2618
+57 23  6.4833
+57 24  4.8162
+57 25  2.1302
+57 26  0.9262
+57 27  0.3705
+57 28  0.0926
+# pixel 58
+58  1  0.7922
+58  2  2.5745
+58  3  6.8323
+58  4 12.2784
+58  5 19.2097
+58  6 23.3685
+58  7 24.6558
+58  8 26.0420
+58  9 27.6263
+58 10 28.2205
+58 11 28.2205
+58 12 28.0224
+58 13 27.4283
+58 14 27.1312
+58 15 25.7450
+58 16 24.3587
+58 17 22.8734
+58 18 21.2891
+58 19 19.5068
+58 20 17.8234
+58 21 14.0607
+58 22  9.9019
+58 23  6.9313
+58 24  5.1490
+58 25  2.2774
+58 26  0.9902
+58 27  0.3961
+58 28  0.0990
+# pixel 59
+59  1  0.7745
+59  2  2.5172
+59  3  6.6802
+59  4 12.0049
+59  5 18.7819
+59  6 22.8481
+59  7 24.1067
+59  8 25.4621
+59  9 27.0111
+59 10 27.5920
+59 11 27.5920
+59 12 27.3984
+59 13 26.8175
+59 14 26.5271
+59 15 25.1717
+59 16 23.8163
+59 17 22.3640
+59 18 20.8150
+59 19 19.0724
+59 20 17.4265
+59 21 13.7476
+59 22  9.6814
+59 23  6.7770
+59 24  5.0343
+59 25  2.2267
+59 26  0.9681
+59 27  0.3873
+59 28  0.0968
+# pixel 60
+60  1  0.6662
+60  2  2.1650
+60  3  5.7456
+60  4 10.3255
+60  5 16.1544
+60  6 19.6518
+60  7 20.7343
+60  8 21.9001
+60  9 23.2324
+60 10 23.7320
+60 11 23.7320
+60 12 23.5655
+60 13 23.0659
+60 14 22.8161
+60 15 21.6503
+60 16 20.4845
+60 17 19.2354
+60 18 17.9031
+60 19 16.4042
+60 20 14.9886
+60 21 11.8244
+60 22  8.3270
+60 23  5.8289
+60 24  4.3301
+60 25  1.9152
+60 26  0.8327
+60 27  0.3331
+60 28  0.0833
+# pixel 61
+61  1  0.6956
+61  2  2.2608
+61  3  5.9998
+61  4 10.7822
+61  5 16.8690
+61  6 20.5210
+61  7 21.6514
+61  8 22.8688
+61  9 24.2600
+61 10 24.7817
+61 11 24.7817
+61 12 24.6078
+61 13 24.0861
+61 14 23.8253
+61 15 22.6079
+61 16 21.3906
+61 17 20.0863
+61 18 18.6950
+61 19 17.1298
+61 20 15.6516
+61 21 12.3474
+61 22  8.6953
+61 23  6.0867
+61 24  4.5216
+61 25  1.9999
+61 26  0.8695
+61 27  0.3478
+61 28  0.0870
+# pixel 62
+62  1  0.7884
+62  2  2.5622
+62  3  6.7997
+62  4 12.2197
+62  5 19.1179
+62  6 23.2568
+62  7 24.5379
+62  8 25.9176
+62  9 27.4943
+62 10 28.0856
+62 11 28.0856
+62 12 27.8885
+62 13 27.2972
+62 14 27.0016
+62 15 25.6219
+62 16 24.2423
+62 17 22.7641
+62 18 21.1874
+62 19 19.4135
+62 20 17.7383
+62 21 13.9935
+62 22  9.8546
+62 23  6.8982
+62 24  5.1244
+62 25  2.2666
+62 26  0.9855
+62 27  0.3942
+62 28  0.0985
+# pixel 63
+63  1  0.6982
+63  2  2.2693
+63  3  6.0222
+63  4 10.8226
+63  5 16.9321
+63  6 20.5978
+63  7 21.7325
+63  8 22.9544
+63  9 24.3508
+63 10 24.8745
+63 11 24.8745
+63 12 24.6999
+63 13 24.1763
+63 14 23.9144
+63 15 22.6925
+63 16 21.4706
+63 17 20.1614
+63 18 18.7650
+63 19 17.1940
+63 20 15.7102
+63 21 12.3936
+63 22  8.7279
+63 23  6.1095
+63 24  4.5385
+63 25  2.0074
+63 26  0.8728
+63 27  0.3491
+63 28  0.0873
+# pixel 64
+64  1  0.7063
+64  2  2.2954
+64  3  6.0917
+64  4 10.9473
+64  5 17.1273
+64  6 20.8353
+64  7 21.9830
+64  8 23.2190
+64  9 24.6315
+64 10 25.1612
+64 11 25.1612
+64 12 24.9847
+64 13 24.4550
+64 14 24.1901
+64 15 22.9541
+64 16 21.7181
+64 17 20.3939
+64 18 18.9813
+64 19 17.3922
+64 20 15.8913
+64 21 12.5365
+64 22  8.8285
+64 23  6.1800
+64 24  4.5908
+64 25  2.0306
+64 26  0.8829
+64 27  0.3531
+64 28  0.0883
+# pixel 65
+65  1  0.7337
+65  2  2.3847
+65  3  6.3286
+65  4 11.3731
+65  5 17.7933
+65  6 21.6455
+65  7 22.8378
+65  8 24.1219
+65  9 25.5894
+65 10 26.1397
+65 11 26.1397
+65 12 25.9562
+65 13 25.4059
+65 14 25.1308
+65 15 23.8467
+65 16 22.5627
+65 17 21.1869
+65 18 19.7194
+65 19 18.0685
+65 20 16.5093
+65 21 13.0240
+65 22  9.1718
+65 23  6.4203
+65 24  4.7693
+65 25  2.1095
+65 26  0.9172
+65 27  0.3669
+65 28  0.0917
+# pixel 66
+66  1  0.7268
+66  2  2.3621
+66  3  6.2686
+66  4 11.2654
+66  5 17.6248
+66  6 21.4405
+66  7 22.6216
+66  8 23.8935
+66  9 25.3471
+66 10 25.8922
+66 11 25.8922
+66 12 25.7105
+66 13 25.1654
+66 14 24.8928
+66 15 23.6209
+66 16 22.3490
+66 17 20.9863
+66 18 19.5327
+66 19 17.8974
+66 20 16.3529
+66 21 12.9007
+66 22  9.0850
+66 23  6.3595
+66 24  4.7242
+66 25  2.0895
+66 26  0.9085
+66 27  0.3634
+66 28  0.0908
+# pixel 67
+67  1  0.7850
+67  2  2.5513
+67  3  6.7709
+67  4 12.1679
+67  5 19.0369
+67  6 23.1583
+67  7 24.4340
+67  8 25.8078
+67  9 27.3778
+67 10 27.9666
+67 11 27.9666
+67 12 27.7703
+67 13 27.1816
+67 14 26.8872
+67 15 25.5134
+67 16 24.1396
+67 17 22.6677
+67 18 21.0976
+67 19 19.3313
+67 20 17.6631
+67 21 13.9342
+67 22  9.8128
+67 23  6.8690
+67 24  5.1027
+67 25  2.2570
+67 26  0.9813
+67 27  0.3925
+67 28  0.0981
+# pixel 68
+68  1  0.7194
+68  2  2.3380
+68  3  6.2047
+68  4 11.1506
+68  5 17.4452
+68  6 21.2220
+68  7 22.3910
+68  8 23.6500
+68  9 25.0888
+68 10 25.6283
+68 11 25.6283
+68 12 25.4485
+68 13 24.9089
+68 14 24.6391
+68 15 23.3802
+68 16 22.1213
+68 17 20.7724
+68 18 19.3336
+68 19 17.7150
+68 20 16.1863
+68 21 12.7692
+68 22  8.9924
+68 23  6.2947
+68 24  4.6760
+68 25  2.0682
+68 26  0.8992
+68 27  0.3597
+68 28  0.0899
+# pixel 69
+69  1  0.6444
+69  2  2.0941
+69  3  5.5575
+69  4  9.9875
+69  5 15.6255
+69  6 19.0084
+69  7 20.0555
+69  8 21.1831
+69  9 22.4718
+69 10 22.9550
+69 11 22.9550
+69 12 22.7939
+69 13 22.3107
+69 14 22.0691
+69 15 20.9414
+69 16 19.8138
+69 17 18.6057
+69 18 17.3170
+69 19 15.8672
+69 20 14.4979
+69 21 11.4372
+69 22  8.0544
+69 23  5.6381
+69 24  4.1883
+69 25  1.8525
+69 26  0.8054
+69 27  0.3222
+69 28  0.0805
+# pixel 70
+70  1  0.6190
+70  2  2.0116
+70  3  5.3386
+70  4  9.5940
+70  5 15.0100
+70  6 18.2595
+70  7 19.2654
+70  8 20.3486
+70  9 21.5865
+70 10 22.0507
+70 11 22.0507
+70 12 21.8960
+70 13 21.4318
+70 14 21.1996
+70 15 20.1164
+70 16 19.0333
+70 17 17.8727
+70 18 16.6348
+70 19 15.2421
+70 20 13.9268
+70 21 10.9867
+70 22  7.7371
+70 23  5.4160
+70 24  4.0233
+70 25  1.7795
+70 26  0.7737
+70 27  0.3095
+70 28  0.0774
+# pixel 71
+71  1  0.6813
+71  2  2.2143
+71  3  5.8763
+71  4 10.5603
+71  5 16.5217
+71  6 20.0986
+71  7 21.2057
+71  8 22.3980
+71  9 23.7606
+71 10 24.2716
+71 11 24.2716
+71 12 24.1013
+71 13 23.5903
+71 14 23.3348
+71 15 22.1425
+71 16 20.9502
+71 17 19.6728
+71 18 18.3102
+71 19 16.7772
+71 20 15.3294
+71 21 12.0932
+71 22  8.5164
+71 23  5.9614
+71 24  4.4285
+71 25  1.9588
+71 26  0.8516
+71 27  0.3407
+71 28  0.0852
+# pixel 72
+72  1  0.7386
+72  2  2.4003
+72  3  6.3701
+72  4 11.4476
+72  5 17.9100
+72  6 21.7874
+72  7 22.9876
+72  8 24.2801
+72  9 25.7572
+72 10 26.3111
+72 11 26.3111
+72 12 26.1264
+72 13 25.5725
+72 14 25.2956
+72 15 24.0031
+72 16 22.7106
+72 17 21.3258
+72 18 19.8487
+72 19 18.1870
+72 20 16.6175
+72 21 13.1094
+72 22  9.2320
+72 23  6.4624
+72 24  4.8006
+72 25  2.1234
+72 26  0.9232
+72 27  0.3693
+72 28  0.0923
+# pixel 73
+73  1  0.6408
+73  2  2.0826
+73  3  5.5269
+73  4  9.9323
+73  5 15.5393
+73  6 18.9035
+73  7 19.9448
+73  8 21.0662
+73  9 22.3478
+73 10 22.8284
+73 11 22.8284
+73 12 22.6682
+73 13 22.1876
+73 14 21.9473
+73 15 20.8259
+73 16 19.7045
+73 17 18.5030
+73 18 17.2214
+73 19 15.7796
+73 20 14.4179
+73 21 11.3741
+73 22  8.0100
+73 23  5.6070
+73 24  4.1652
+73 25  1.8423
+73 26  0.8010
+73 27  0.3204
+73 28  0.0801
+# pixel 74
+74  1  0.7783
+74  2  2.5294
+74  3  6.7126
+74  4 12.0631
+74  5 18.8730
+74  6 22.9589
+74  7 24.2236
+74  8 25.5855
+74  9 27.1421
+74 10 27.7258
+74 11 27.7258
+74 12 27.5312
+74 13 26.9475
+74 14 26.6557
+74 15 25.2937
+74 16 23.9317
+74 17 22.4725
+74 18 20.9159
+74 19 19.1648
+74 20 17.5110
+74 21 13.8142
+74 22  9.7283
+74 23  6.8098
+74 24  5.0587
+74 25  2.2375
+74 26  0.9728
+74 27  0.3891
+74 28  0.0973
+# pixel 75
+75  1  0.7618
+75  2  2.4758
+75  3  6.5705
+75  4 11.8078
+75  5 18.4735
+75  6 22.4729
+75  7 23.7108
+75  8 25.0439
+75  9 26.5675
+75 10 27.1388
+75 11 27.1388
+75 12 26.9484
+75 13 26.3771
+75 14 26.0914
+75 15 24.7582
+75 16 23.4251
+75 17 21.9968
+75 18 20.4732
+75 19 18.7591
+75 20 17.1403
+75 21 13.5218
+75 22  9.5224
+75 23  6.6657
+75 24  4.9516
+75 25  2.1902
+75 26  0.9522
+75 27  0.3809
+75 28  0.0952
+# pixel 76
+76  1  0.7547
+76  2  2.4528
+76  3  6.5095
+76  4 11.6981
+76  5 18.3019
+76  6 22.2642
+76  7 23.4906
+76  8 24.8114
+76  9 26.3208
+76 10 26.8869
+76 11 26.8869
+76 12 26.6982
+76 13 26.1322
+76 14 25.8491
+76 15 24.5284
+76 16 23.2076
+76 17 21.7925
+76 18 20.2831
+76 19 18.5850
+76 20 16.9812
+76 21 13.3963
+76 22  9.4340
+76 23  6.6038
+76 24  4.9057
+76 25  2.1698
+76 26  0.9434
+76 27  0.3774
+76 28  0.0943
+# pixel 77
+77  1  0.6344
+77  2  2.0617
+77  3  5.4714
+77  4  9.8327
+77  5 15.3834
+77  6 18.7138
+77  7 19.7446
+77  8 20.8548
+77  9 22.1235
+77 10 22.5993
+77 11 22.5993
+77 12 22.4407
+77 13 21.9649
+77 14 21.7270
+77 15 20.6169
+77 16 19.5067
+77 17 18.3173
+77 18 17.0486
+77 19 15.6213
+77 20 14.2732
+77 21 11.2600
+77 22  7.9296
+77 23  5.5507
+77 24  4.1234
+77 25  1.8238
+77 26  0.7930
+77 27  0.3172
+77 28  0.0793
+# pixel 78
+78  1  0.6705
+78  2  2.1791
+78  3  5.7829
+78  4 10.3924
+78  5 16.2591
+78  6 19.7791
+78  7 20.8687
+78  8 22.0420
+78  9 23.3830
+78 10 23.8858
+78 11 23.8858
+78 12 23.7182
+78 13 23.2153
+78 14 22.9639
+78 15 21.7906
+78 16 20.6172
+78 17 19.3601
+78 18 18.0191
+78 19 16.5106
+78 20 15.0858
+78 21 11.9010
+78 22  8.3810
+78 23  5.8667
+78 24  4.3581
+78 25  1.9276
+78 26  0.8381
+78 27  0.3352
+78 28  0.0838
+# pixel 79
+79  1  0.6628
+79  2  2.1541
+79  3  5.7165
+79  4 10.2732
+79  5 16.0726
+79  6 19.5522
+79  7 20.6292
+79  8 21.7891
+79  9 23.1147
+79 10 23.6118
+79 11 23.6118
+79 12 23.4461
+79 13 22.9490
+79 14 22.7004
+79 15 21.5406
+79 16 20.3807
+79 17 19.1380
+79 18 17.8124
+79 19 16.3211
+79 20 14.9127
+79 21 11.7645
+79 22  8.2848
+79 23  5.7994
+79 24  4.3081
+79 25  1.9055
+79 26  0.8285
+79 27  0.3314
+79 28  0.0828
+# pixel 80
+80  1  0.7484
+80  2  2.4323
+80  3  6.4550
+80  4 11.6003
+80  5 18.1489
+80  6 22.0780
+80  7 23.2942
+80  8 24.6039
+80  9 26.1007
+80 10 26.6620
+80 11 26.6620
+80 12 26.4749
+80 13 25.9136
+80 14 25.6329
+80 15 24.3232
+80 16 23.0135
+80 17 21.6102
+80 18 20.1134
+80 19 18.4295
+80 20 16.8392
+80 21 13.2842
+80 22  9.3551
+80 23  6.5486
+80 24  4.8646
+80 25  2.1517
+80 26  0.9355
+80 27  0.3742
+80 28  0.0936
+# pixel 81
+81  1  0.7199
+81  2  2.3395
+81  3  6.2087
+81  4 11.1577
+81  5 17.4564
+81  6 21.2357
+81  7 22.4054
+81  8 23.6652
+81  9 25.1049
+81 10 25.6448
+81 11 25.6448
+81 12 25.4648
+81 13 24.9249
+81 14 24.6550
+81 15 23.3952
+81 16 22.1355
+81 17 20.7858
+81 18 19.3461
+81 19 17.7264
+81 20 16.1967
+81 21 12.7774
+81 22  8.9982
+81 23  6.2987
+81 24  4.6790
+81 25  2.0696
+81 26  0.8998
+81 27  0.3599
+81 28  0.0900
+# pixel 82
+82  1  0.7570
+82  2  2.4601
+82  3  6.5288
+82  4 11.7329
+82  5 18.3563
+82  6 22.3303
+82  7 23.5604
+82  8 24.8851
+82  9 26.3990
+82 10 26.9667
+82 11 26.9667
+82 12 26.7775
+82 13 26.2097
+82 14 25.9259
+82 15 24.6012
+82 16 23.2765
+82 17 21.8572
+82 18 20.3433
+82 19 18.6401
+82 20 17.0316
+82 21 13.4360
+82 22  9.4620
+82 23  6.6234
+82 24  4.9202
+82 25  2.1763
+82 26  0.9462
+82 27  0.3785
+82 28  0.0946
+# pixel 83
+83  1  0.6877
+83  2  2.2349
+83  3  5.9311
+83  4 10.6588
+83  5 16.6758
+83  6 20.2860
+83  7 21.4035
+83  8 22.6069
+83  9 23.9822
+83 10 24.4979
+83 11 24.4979
+83 12 24.3260
+83 13 23.8103
+83 14 23.5524
+83 15 22.3490
+83 16 21.1456
+83 17 19.8562
+83 18 18.4809
+83 19 16.9337
+83 20 15.4724
+83 21 12.2060
+83 22  8.5958
+83 23  6.0170
+83 24  4.4698
+83 25  1.9770
+83 26  0.8596
+83 27  0.3438
+83 28  0.0860
+# pixel 84
+84  1  0.8439
+84  2  2.7426
+84  3  7.2784
+84  4 13.0800
+84  5 20.4639
+84  6 24.8942
+84  7 26.2655
+84  8 27.7422
+84  9 29.4300
+84 10 30.0629
+84 11 30.0629
+84 12 29.8519
+84 13 29.2190
+84 14 28.9026
+84 15 27.4258
+84 16 25.9490
+84 17 24.3668
+84 18 22.6790
+84 19 20.7803
+84 20 18.9871
+84 21 14.9787
+84 22 10.5484
+84 23  7.3839
+84 24  5.4852
+84 25  2.4261
+84 26  1.0548
+84 27  0.4219
+84 28  0.1055
+# pixel 85
+85  1  0.7750
+85  2  2.5187
+85  3  6.6843
+85  4 12.0124
+85  5 18.7936
+85  6 22.8623
+85  7 24.1216
+85  8 25.4779
+85  9 27.0279
+85 10 27.6091
+85 11 27.6091
+85 12 27.4154
+85 13 26.8341
+85 14 26.5435
+85 15 25.1873
+85 16 23.8310
+85 17 22.3779
+85 18 20.8279
+85 19 19.0842
+85 20 17.4373
+85 21 13.7561
+85 22  9.6874
+85 23  6.7812
+85 24  5.0375
+85 25  2.2281
+85 26  0.9687
+85 27  0.3875
+85 28  0.0969
+# pixel 86
+86  1  0.7676
+86  2  2.4946
+86  3  6.6203
+86  4 11.8974
+86  5 18.6137
+86  6 22.6435
+86  7 23.8908
+86  8 25.2340
+86  9 26.7692
+86 10 27.3449
+86 11 27.3449
+86 12 27.1530
+86 13 26.5773
+86 14 26.2894
+86 15 24.9462
+86 16 23.6029
+86 17 22.1637
+86 18 20.6286
+86 19 18.9015
+86 20 17.2704
+86 21 13.6245
+86 22  9.5947
+86 23  6.7163
+86 24  4.9892
+86 25  2.2068
+86 26  0.9595
+86 27  0.3838
+86 28  0.0959
+# pixel 87
+87  1  0.6958
+87  2  2.2612
+87  3  6.0010
+87  4 10.7844
+87  5 16.8724
+87  6 20.5252
+87  7 21.6558
+87  8 22.8734
+87  9 24.2649
+87 10 24.7868
+87 11 24.7868
+87 12 24.6128
+87 13 24.0910
+87 14 23.8301
+87 15 22.6125
+87 16 21.3949
+87 17 20.0903
+87 18 18.6988
+87 19 17.1333
+87 20 15.6548
+87 21 12.3499
+87 22  8.6971
+87 23  6.0880
+87 24  4.5225
+87 25  2.0003
+87 26  0.8697
+87 27  0.3479
+87 28  0.0870
+# pixel 88
+88  1  0.7398
+88  2  2.4043
+88  3  6.3807
+88  4 11.4668
+88  5 17.9400
+88  6 21.8240
+88  7 23.0261
+88  8 24.3208
+88  9 25.8004
+88 10 26.3552
+88 11 26.3552
+88 12 26.1703
+88 13 25.6154
+88 14 25.3380
+88 15 24.0434
+88 16 22.7487
+88 17 21.3616
+88 18 19.8820
+88 19 18.2175
+88 20 16.6454
+88 21 13.1314
+88 22  9.2474
+88 23  6.4732
+88 24  4.8087
+88 25  2.1269
+88 26  0.9247
+88 27  0.3699
+88 28  0.0925
+# pixel 89
+89  1  0.8372
+89  2  2.7210
+89  3  7.2210
+89  4 12.9769
+89  5 20.3026
+89  6 24.6980
+89  7 26.0585
+89  8 27.5237
+89  9 29.1981
+89 10 29.8260
+89 11 29.8260
+89 12 29.6167
+89 13 28.9888
+89 14 28.6748
+89 15 27.2097
+89 16 25.7446
+89 17 24.1748
+89 18 22.5003
+89 19 20.6166
+89 20 18.8375
+89 21 14.8607
+89 22 10.4653
+89 23  7.3257
+89 24  5.4419
+89 25  2.4070
+89 26  1.0465
+89 27  0.4186
+89 28  0.1047
+# pixel 90
+90  1  0.6772
+90  2  2.2010
+90  3  5.8412
+90  4 10.4972
+90  5 16.4230
+90  6 19.9785
+90  7 21.0790
+90  8 22.2642
+90  9 23.6187
+90 10 24.1266
+90 11 24.1266
+90 12 23.9573
+90 13 23.4494
+90 14 23.1954
+90 15 22.0102
+90 16 20.8251
+90 17 19.5553
+90 18 18.2008
+90 19 16.6770
+90 20 15.2379
+90 21 12.0210
+90 22  8.4655
+90 23  5.9258
+90 24  4.4020
+90 25  1.9471
+90 26  0.8465
+90 27  0.3386
+90 28  0.0847
+# pixel 91
+91  1  0.7189
+91  2  2.3366
+91  3  6.2008
+91  4 11.1435
+91  5 17.4343
+91  6 21.2087
+91  7 22.3770
+91  8 23.6351
+91  9 25.0730
+91 10 25.6122
+91 11 25.6122
+91 12 25.4324
+91 13 24.8932
+91 14 24.6236
+91 15 23.3655
+91 16 22.1074
+91 17 20.7593
+91 18 19.3215
+91 19 17.7039
+91 20 16.1761
+91 21 12.7612
+91 22  8.9867
+91 23  6.2907
+91 24  4.6731
+91 25  2.0669
+91 26  0.8987
+91 27  0.3595
+91 28  0.0899
+# pixel 92
+92  1  0.7341
+92  2  2.3857
+92  3  6.3313
+92  4 11.3780
+92  5 17.8011
+92  6 21.6549
+92  7 22.8478
+92  8 24.1324
+92  9 25.6005
+92 10 26.1511
+92 11 26.1511
+92 12 25.9676
+92 13 25.4170
+92 14 25.1417
+92 15 23.8571
+92 16 22.5725
+92 17 21.1961
+92 18 19.7280
+92 19 18.0764
+92 20 16.5165
+92 21 13.0297
+92 22  9.1758
+92 23  6.4231
+92 24  4.7714
+92 25  2.1104
+92 26  0.9176
+92 27  0.3670
+92 28  0.0918
+# pixel 93
+93  1  0.7905
+93  2  2.5693
+93  3  6.8185
+93  4 12.2535
+93  5 19.1708
+93  6 23.3212
+93  7 24.6058
+93  8 25.9893
+93  9 27.5704
+93 10 28.1633
+93 11 28.1633
+93 12 27.9656
+93 13 27.3727
+93 14 27.0763
+93 15 25.6928
+93 16 24.3093
+93 17 22.8271
+93 18 21.2460
+93 19 19.4672
+93 20 17.7873
+93 21 14.0322
+93 22  9.8818
+93 23  6.9173
+93 24  5.1386
+93 25  2.2728
+93 26  0.9882
+93 27  0.3953
+93 28  0.0988
+# pixel 94
+94  1  0.6066
+94  2  1.9714
+94  3  5.2317
+94  4  9.4019
+94  5 14.7095
+94  6 17.8940
+94  7 18.8797
+94  8 19.9412
+94  9 21.1544
+94 10 21.6093
+94 11 21.6093
+94 12 21.4577
+94 13 21.0027
+94 14 20.7753
+94 15 19.7137
+94 16 18.6522
+94 17 17.5149
+94 18 16.3017
+94 19 14.9370
+94 20 13.6480
+94 21 10.7667
+94 22  7.5822
+94 23  5.3075
+94 24  3.9427
+94 25  1.7439
+94 26  0.7582
+94 27  0.3033
+94 28  0.0758
+# pixel 95
+95  1  0.7748
+95  2  2.5180
+95  3  6.6823
+95  4 12.0087
+95  5 18.7879
+95  6 22.8553
+95  7 24.1143
+95  8 25.4701
+95  9 27.0196
+95 10 27.6007
+95 11 27.6007
+95 12 27.4070
+95 13 26.8260
+95 14 26.5354
+95 15 25.1796
+95 16 23.8238
+95 17 22.3711
+95 18 20.8216
+95 19 19.0784
+95 20 17.4320
+95 21 13.7519
+95 22  9.6845
+95 23  6.7791
+95 24  5.0359
+95 25  2.2274
+95 26  0.9684
+95 27  0.3874
+95 28  0.0968
+# pixel 96
+96  1  0.7561
+96  2  2.4573
+96  3  6.5213
+96  4 11.7195
+96  5 18.3353
+96  6 22.3048
+96  7 23.5334
+96  8 24.8566
+96  9 26.3688
+96 10 26.9358
+96 11 26.9358
+96 12 26.7468
+96 13 26.1797
+96 14 25.8962
+96 15 24.5730
+96 16 23.2499
+96 17 21.8322
+96 18 20.3200
+96 19 18.6188
+96 20 17.0121
+96 21 13.4207
+96 22  9.4512
+96 23  6.6158
+96 24  4.9146
+96 25  2.1738
+96 26  0.9451
+96 27  0.3780
+96 28  0.0945
+# pixel 97
+97  1  0.8477
+97  2  2.7549
+97  3  7.3110
+97  4 13.1387
+97  5 20.5557
+97  6 25.0059
+97  7 26.3833
+97  8 27.8667
+97  9 29.5620
+97 10 30.1978
+97 11 30.1978
+97 12 29.9858
+97 13 29.3501
+97 14 29.0322
+97 15 27.5488
+97 16 26.0654
+97 17 24.4761
+97 18 22.7808
+97 19 20.8735
+97 20 19.0723
+97 21 15.0459
+97 22 10.5957
+97 23  7.4170
+97 24  5.5098
+97 25  2.4370
+97 26  1.0596
+97 27  0.4238
+97 28  0.1060
+# pixel 98
+98  1  0.7103
+98  2  2.3083
+98  3  6.1259
+98  4 11.0089
+98  5 17.2237
+98  6 20.9525
+98  7 22.1066
+98  8 23.3496
+98  9 24.7701
+98 10 25.3028
+98 11 25.3028
+98 12 25.1252
+98 13 24.5925
+98 14 24.3262
+98 15 23.0832
+98 16 21.8403
+98 17 20.5086
+98 18 19.0881
+98 19 17.4900
+98 20 15.9807
+98 21 12.6070
+98 22  8.8782
+98 23  6.2147
+98 24  4.6166
+98 25  2.0420
+98 26  0.8878
+98 27  0.3551
+98 28  0.0888
+# pixel 99
+99  1  0.7824
+99  2  2.5428
+99  3  6.7481
+99  4 12.1271
+99  5 18.9730
+99  6 23.0806
+99  7 24.3520
+99  8 25.7211
+99  9 27.2859
+99 10 27.8727
+99 11 27.8727
+99 12 27.6771
+99 13 27.0903
+99 14 26.7969
+99 15 25.4277
+99 16 24.0586
+99 17 22.5916
+99 18 21.0268
+99 19 19.2664
+99 20 17.6038
+99 21 13.8875
+99 22  9.7799
+99 23  6.8459
+99 24  5.0855
+99 25  2.2494
+99 26  0.9780
+99 27  0.3912
+99 28  0.0978
+# pixel 100
+100  1  0.8255
+100  2  2.6828
+100  3  7.1198
+100  4 12.7950
+100  5 20.0179
+100  6 24.3517
+100  7 25.6931
+100  8 27.1377
+100  9 28.7887
+100 10 29.4078
+100 11 29.4078
+100 12 29.2014
+100 13 28.5823
+100 14 28.2727
+100 15 26.8281
+100 16 25.3835
+100 17 23.8358
+100 18 22.1848
+100 19 20.3275
+100 20 18.5733
+100 21 14.6523
+100 22 10.3185
+100 23  7.2230
+100 24  5.3656
+100 25  2.3733
+100 26  1.0319
+100 27  0.4127
+100 28  0.1032
+# pixel 101
+101  1  0.7414
+101  2  2.4097
+101  3  6.3949
+101  4 11.4924
+101  5 17.9800
+101  6 21.8726
+101  7 23.0774
+101  8 24.3749
+101  9 25.8578
+101 10 26.4139
+101 11 26.4139
+101 12 26.2285
+101 13 25.6725
+101 14 25.3944
+101 15 24.0969
+101 16 22.7994
+101 17 21.4092
+101 18 19.9263
+101 19 18.2580
+101 20 16.6825
+101 21 13.1606
+101 22  9.2680
+101 23  6.4876
+101 24  4.8194
+101 25  2.1316
+101 26  0.9268
+101 27  0.3707
+101 28  0.0927
+# pixel 102
+102  1  0.7154
+102  2  2.3250
+102  3  6.1702
+102  4 11.0884
+102  5 17.3480
+102  6 21.1037
+102  7 22.2662
+102  8 23.5181
+102  9 24.9489
+102 10 25.4854
+102 11 25.4854
+102 12 25.3066
+102 13 24.7701
+102 14 24.5018
+102 15 23.2499
+102 16 21.9980
+102 17 20.6566
+102 18 19.2259
+102 19 17.6162
+102 20 16.0961
+102 21 12.6980
+102 22  8.9423
+102 23  6.2596
+102 24  4.6500
+102 25  2.0567
+102 26  0.8942
+102 27  0.3577
+102 28  0.0894
+# pixel 103
+103  1  0.6960
+103  2  2.2620
+103  3  6.0029
+103  4 10.7879
+103  5 16.8778
+103  6 20.5317
+103  7 21.6627
+103  8 22.8807
+103  9 24.2727
+103 10 24.7947
+103 11 24.7947
+103 12 24.6207
+103 13 24.0987
+103 14 23.8377
+103 15 22.6197
+103 16 21.4017
+103 17 20.0967
+103 18 18.7047
+103 19 17.1388
+103 20 15.6598
+103 21 12.3538
+103 22  8.6999
+103 23  6.0899
+103 24  4.5239
+103 25  2.0010
+103 26  0.8700
+103 27  0.3480
+103 28  0.0870
+# pixel 104
+104  1  0.7724
+104  2  2.5102
+104  3  6.6617
+104  4 11.9718
+104  5 18.7300
+104  6 22.7850
+104  7 24.0401
+104  8 25.3917
+104  9 26.9365
+104 10 27.5158
+104 11 27.5158
+104 12 27.3227
+104 13 26.7434
+104 14 26.4537
+104 15 25.1021
+104 16 23.7504
+104 17 22.3022
+104 18 20.7575
+104 19 19.0197
+104 20 17.3784
+104 21 13.7096
+104 22  9.6547
+104 23  6.7583
+104 24  5.0204
+104 25  2.2206
+104 26  0.9655
+104 27  0.3862
+104 28  0.0965
+# pixel 105
+105  1  0.7490
+105  2  2.4343
+105  3  6.4603
+105  4 11.6099
+105  5 18.1639
+105  6 22.0963
+105  7 23.3134
+105  8 24.6242
+105  9 26.1223
+105 10 26.6840
+105 11 26.6840
+105 12 26.4968
+105 13 25.9350
+105 14 25.6541
+105 15 24.3433
+105 16 23.0325
+105 17 21.6281
+105 18 20.1301
+105 19 18.4448
+105 20 16.8531
+105 21 13.2952
+105 22  9.3628
+105 23  6.5540
+105 24  4.8687
+105 25  2.1534
+105 26  0.9363
+105 27  0.3745
+105 28  0.0936
+# pixel 106
+106  1  0.6812
+106  2  2.2138
+106  3  5.8752
+106  4 10.5583
+106  5 16.5186
+106  6 20.0948
+106  7 21.2017
+106  8 22.3938
+106  9 23.7561
+106 10 24.2670
+106 11 24.2670
+106 12 24.0967
+106 13 23.5858
+106 14 23.3304
+106 15 22.1383
+106 16 20.9463
+106 17 19.6691
+106 18 18.3067
+106 19 16.7740
+106 20 15.3265
+106 21 12.0909
+106 22  8.5147
+106 23  5.9603
+106 24  4.4277
+106 25  1.9584
+106 26  0.8515
+106 27  0.3406
+106 28  0.0851
+# pixel 107
+107  1  0.7204
+107  2  2.3412
+107  3  6.2132
+107  4 11.1658
+107  5 17.4690
+107  6 21.2509
+107  7 22.4216
+107  8 23.6822
+107  9 25.1229
+107 10 25.6632
+107 11 25.6632
+107 12 25.4831
+107 13 24.9429
+107 14 24.6727
+107 15 23.4121
+107 16 22.1514
+107 17 20.8007
+107 18 19.3600
+107 19 17.7391
+107 20 16.2084
+107 21 12.7866
+107 22  9.0046
+107 23  6.3032
+107 24  4.6824
+107 25  2.0711
+107 26  0.9005
+107 27  0.3602
+107 28  0.0900
+# pixel 108
+108  1  0.6509
+108  2  2.1155
+108  3  5.6142
+108  4 10.0893
+108  5 15.7849
+108  6 19.2023
+108  7 20.2600
+108  8 21.3992
+108  9 22.7010
+108 10 23.1892
+108 11 23.1892
+108 12 23.0265
+108 13 22.5383
+108 14 22.2942
+108 15 21.1551
+108 16 20.0159
+108 17 18.7955
+108 18 17.4936
+108 19 16.0290
+108 20 14.6458
+108 21 11.5539
+108 22  8.1366
+108 23  5.6956
+108 24  4.2310
+108 25  1.8714
+108 26  0.8137
+108 27  0.3255
+108 28  0.0814
+# pixel 109
+109  1  0.7480
+109  2  2.4311
+109  3  6.4517
+109  4 11.5943
+109  5 18.1395
+109  6 22.0666
+109  7 23.2821
+109  8 24.5912
+109  9 26.0872
+109 10 26.6482
+109 11 26.6482
+109 12 26.4612
+109 13 25.9002
+109 14 25.6197
+109 15 24.3107
+109 16 23.0016
+109 17 21.5991
+109 18 20.1031
+109 19 18.4200
+109 20 16.8305
+109 21 13.2774
+109 22  9.3503
+109 23  6.5452
+109 24  4.8621
+109 25  2.1506
+109 26  0.9350
+109 27  0.3740
+109 28  0.0935
+# pixel 110
+110  1  0.7886
+110  2  2.5629
+110  3  6.8017
+110  4 12.2233
+110  5 19.1235
+110  6 23.2637
+110  7 24.5451
+110  8 25.9252
+110  9 27.5024
+110 10 28.0938
+110 11 28.0938
+110 12 27.8967
+110 13 27.3052
+110 14 27.0095
+110 15 25.6295
+110 16 24.2494
+110 17 22.7708
+110 18 21.1936
+110 19 19.4192
+110 20 17.7435
+110 21 13.9976
+110 22  9.8575
+110 23  6.9002
+110 24  5.1259
+110 25  2.2672
+110 26  0.9857
+110 27  0.3943
+110 28  0.0986
+# pixel 111
+111  1  0.7349
+111  2  2.3883
+111  3  6.3381
+111  4 11.3902
+111  5 17.8202
+111  6 21.6782
+111  7 22.8723
+111  8 24.1583
+111  9 25.6280
+111 10 26.1792
+111 11 26.1792
+111 12 25.9955
+111 13 25.4443
+111 14 25.1688
+111 15 23.8828
+111 16 22.5968
+111 17 21.2189
+111 18 19.7492
+111 19 18.0958
+111 20 16.5342
+111 21 13.0437
+111 22  9.1857
+111 23  6.4300
+111 24  4.7766
+111 25  2.1127
+111 26  0.9186
+111 27  0.3674
+111 28  0.0919
+# pixel 112
+112  1  0.6509
+112  2  2.1155
+112  3  5.6143
+112  4 10.0895
+112  5 15.7852
+112  6 19.2026
+112  7 20.2604
+112  8 21.3995
+112  9 22.7014
+112 10 23.1896
+112 11 23.1896
+112 12 23.0268
+112 13 22.5386
+112 14 22.2945
+112 15 21.1554
+112 16 20.0163
+112 17 18.7958
+112 18 17.4939
+112 19 16.0293
+112 20 14.6460
+112 21 11.5541
+112 22  8.1367
+112 23  5.6957
+112 24  4.2311
+112 25  1.8714
+112 26  0.8137
+112 27  0.3255
+112 28  0.0814
+# pixel 113
+113  1  0.6036
+113  2  1.9616
+113  3  5.2058
+113  4  9.3553
+113  5 14.6365
+113  6 17.8052
+113  7 18.7860
+113  8 19.8422
+113  9 21.0494
+113 10 21.5021
+113 11 21.5021
+113 12 21.3512
+113 13 20.8985
+113 14 20.6722
+113 15 19.6159
+113 16 18.5597
+113 17 17.4280
+113 18 16.2209
+113 19 14.8628
+113 20 13.5802
+113 21 10.7133
+113 22  7.5446
+113 23  5.2812
+113 24  3.9232
+113 25  1.7353
+113 26  0.7545
+113 27  0.3018
+113 28  0.0754
+# pixel 114
+114  1  0.7250
+114  2  2.3564
+114  3  6.2535
+114  4 11.2382
+114  5 17.5824
+114  6 21.3889
+114  7 22.5671
+114  8 23.8360
+114  9 25.2861
+114 10 25.8298
+114 11 25.8298
+114 12 25.6486
+114 13 25.1048
+114 14 24.8329
+114 15 23.5641
+114 16 22.2952
+114 17 20.9358
+114 18 19.4857
+114 19 17.8543
+114 20 16.3136
+114 21 12.8696
+114 22  9.0631
+114 23  6.3442
+114 24  4.7128
+114 25  2.0845
+114 26  0.9063
+114 27  0.3625
+114 28  0.0906
+# pixel 115
+115  1  0.7581
+115  2  2.4637
+115  3  6.5382
+115  4 11.7499
+115  5 18.3829
+115  6 22.3627
+115  7 23.5945
+115  8 24.9211
+115  9 26.4372
+115 10 27.0058
+115 11 27.0058
+115 12 26.8163
+115 13 26.2477
+115 14 25.9635
+115 15 24.6369
+115 16 23.3103
+115 17 21.8889
+115 18 20.3728
+115 19 18.6672
+115 20 17.0563
+115 21 13.4555
+115 22  9.4757
+115 23  6.6330
+115 24  4.9274
+115 25  2.1794
+115 26  0.9476
+115 27  0.3790
+115 28  0.0948
+# pixel 116
+116  1  0.7642
+116  2  2.4838
+116  3  6.5916
+116  4 11.8458
+116  5 18.5329
+116  6 22.5452
+116  7 23.7871
+116  8 25.1246
+116  9 26.6530
+116 10 27.2262
+116 11 27.2262
+116 12 27.0352
+116 13 26.4620
+116 14 26.1754
+116 15 24.8380
+116 16 23.5005
+116 17 22.0676
+116 18 20.5391
+116 19 18.8195
+116 20 17.1955
+116 21 13.5654
+116 22  9.5531
+116 23  6.6871
+116 24  4.9676
+116 25  2.1972
+116 26  0.9553
+116 27  0.3821
+116 28  0.0955
+# pixel 117
+117  1  0.7356
+117  2  2.3908
+117  3  6.3447
+117  4 11.4021
+117  5 17.8388
+117  6 21.7008
+117  7 22.8962
+117  8 24.1835
+117  9 25.6547
+117 10 26.2065
+117 11 26.2065
+117 12 26.0226
+117 13 25.4708
+117 14 25.1950
+117 15 23.9076
+117 16 22.6203
+117 17 21.2410
+117 18 19.7698
+117 19 18.1146
+117 20 16.5514
+117 21 13.0573
+117 22  9.1952
+117 23  6.4367
+117 24  4.7815
+117 25  2.1149
+117 26  0.9195
+117 27  0.3678
+117 28  0.0920
+# pixel 118
+118  1  0.6746
+118  2  2.1926
+118  3  5.8188
+118  4 10.4570
+118  5 16.3602
+118  6 19.9021
+118  7 20.9984
+118  8 22.1790
+118  9 23.5283
+118 10 24.0343
+118 11 24.0343
+118 12 23.8657
+118 13 23.3597
+118 14 23.1067
+118 15 21.9260
+118 16 20.7454
+118 17 19.4804
+118 18 18.1312
+118 19 16.6132
+118 20 15.1796
+118 21 11.9750
+118 22  8.4331
+118 23  5.9032
+118 24  4.3852
+118 25  1.9396
+118 26  0.8433
+118 27  0.3373
+118 28  0.0843
+# pixel 119
+119  1  0.7354
+119  2  2.3899
+119  3  6.3424
+119  4 11.3980
+119  5 17.8323
+119  6 21.6929
+119  7 22.8878
+119  8 24.1747
+119  9 25.6454
+119 10 26.1969
+119 11 26.1969
+119 12 26.0131
+119 13 25.4616
+119 14 25.1858
+119 15 23.8989
+119 16 22.6121
+119 17 21.2333
+119 18 19.7626
+119 19 18.1080
+119 20 16.5454
+119 21 13.0525
+119 22  9.1919
+119 23  6.4343
+119 24  4.7798
+119 25  2.1141
+119 26  0.9192
+119 27  0.3677
+119 28  0.0919
+# pixel 120
+120  1  0.7567
+120  2  2.4593
+120  3  6.5265
+120  4 11.7288
+120  5 18.3499
+120  6 22.3226
+120  7 23.5522
+120  8 24.8765
+120  9 26.3899
+120 10 26.9574
+120 11 26.9574
+120 12 26.7682
+120 13 26.2007
+120 14 25.9169
+120 15 24.5927
+120 16 23.2685
+120 17 21.8497
+120 18 20.3363
+120 19 18.6337
+120 20 17.0257
+120 21 13.4314
+120 22  9.4587
+120 23  6.6211
+120 24  4.9185
+120 25  2.1755
+120 26  0.9459
+120 27  0.3783
+120 28  0.0946
+# pixel 121
+121  1  0.6828
+121  2  2.2192
+121  3  5.8895
+121  4 10.5841
+121  5 16.5589
+121  6 20.1439
+121  7 21.2535
+121  8 22.4485
+121  9 23.8141
+121 10 24.3263
+121 11 24.3263
+121 12 24.1556
+121 13 23.6434
+121 14 23.3874
+121 15 22.1924
+121 16 20.9974
+121 17 19.7171
+121 18 18.3514
+121 19 16.8150
+121 20 15.3640
+121 21 12.1205
+121 22  8.5355
+121 23  5.9749
+121 24  4.4385
+121 25  1.9632
+121 26  0.8536
+121 27  0.3414
+121 28  0.0854
+# pixel 122
+122  1  0.8052
+122  2  2.6168
+122  3  6.9445
+122  4 12.4801
+122  5 19.5253
+122  6 23.7524
+122  7 25.0608
+122  8 26.4698
+122  9 28.0801
+122 10 28.6840
+122 11 28.6840
+122 12 28.4827
+122 13 27.8788
+122 14 27.5769
+122 15 26.1679
+122 16 24.7588
+122 17 23.2491
+122 18 21.6388
+122 19 19.8272
+122 20 18.1162
+122 21 14.2917
+122 22 10.0646
+122 23  7.0452
+122 24  5.2336
+122 25  2.3148
+122 26  1.0065
+122 27  0.4026
+122 28  0.1006
+# pixel 123
+123  1  0.7381
+123  2  2.3989
+123  3  6.3663
+123  4 11.4409
+123  5 17.8995
+123  6 21.7747
+123  7 22.9741
+123  8 24.2659
+123  9 25.7421
+123 10 26.2957
+123 11 26.2957
+123 12 26.1112
+123 13 25.5576
+123 14 25.2808
+123 15 23.9891
+123 16 22.6973
+123 17 21.3134
+123 18 19.8371
+123 19 18.1763
+123 20 16.6078
+123 21 13.1017
+123 22  9.2266
+123 23  6.4586
+123 24  4.7978
+123 25  2.1221
+123 26  0.9227
+123 27  0.3691
+123 28  0.0923
+# pixel 124
+124  1  0.8332
+124  2  2.7079
+124  3  7.1864
+124  4 12.9147
+124  5 20.2053
+124  6 24.5797
+124  7 25.9336
+124  8 27.3917
+124  9 29.0582
+124 10 29.6831
+124 11 29.6831
+124 12 29.4748
+124 13 28.8499
+124 14 28.5374
+124 15 27.0793
+124 16 25.6212
+124 17 24.0589
+124 18 22.3925
+124 19 20.5178
+124 20 18.7472
+124 21 14.7895
+124 22 10.4151
+124 23  7.2906
+124 24  5.4159
+124 25  2.3955
+124 26  1.0415
+124 27  0.4166
+124 28  0.1042
+# pixel 125
+125  1  0.6259
+125  2  2.0341
+125  3  5.3982
+125  4  9.7011
+125  5 15.1776
+125  6 18.4635
+125  7 19.4805
+125  8 20.5758
+125  9 21.8276
+125 10 22.2970
+125 11 22.2970
+125 12 22.1405
+125 13 21.6711
+125 14 21.4364
+125 15 20.3411
+125 16 19.2458
+125 17 18.0723
+125 18 16.8205
+125 19 15.4123
+125 20 14.0823
+125 21 11.1094
+125 22  7.8235
+125 23  5.4765
+125 24  4.0682
+125 25  1.7994
+125 26  0.7824
+125 27  0.3129
+125 28  0.0782
+# pixel 126
+126  1  0.8103
+126  2  2.6335
+126  3  6.9889
+126  4 12.5598
+126  5 19.6499
+126  6 23.9041
+126  7 25.2208
+126  8 26.6388
+126  9 28.2595
+126 10 28.8672
+126 11 28.8672
+126 12 28.6646
+126 13 28.0569
+126 14 27.7530
+126 15 26.3350
+126 16 24.9169
+126 17 23.3976
+126 18 21.7770
+126 19 19.9538
+126 20 18.2319
+126 21 14.3829
+126 22 10.1288
+126 23  7.0902
+126 24  5.2670
+126 25  2.3296
+126 26  1.0129
+126 27  0.4052
+126 28  0.1013
+# pixel 127
+127  1  0.7616
+127  2  2.4751
+127  3  6.5687
+127  4 11.8046
+127  5 18.4684
+127  6 22.4667
+127  7 23.7043
+127  8 25.0371
+127  9 26.5602
+127 10 27.1314
+127 11 27.1314
+127 12 26.9410
+127 13 26.3699
+127 14 26.0843
+127 15 24.7515
+127 16 23.4187
+127 17 21.9907
+127 18 20.4676
+127 19 18.7540
+127 20 17.1356
+127 21 13.5181
+127 22  9.5198
+127 23  6.6639
+127 24  4.9503
+127 25  2.1896
+127 26  0.9520
+127 27  0.3808
+127 28  0.0952
+# pixel 128
+128  1  0.7839
+128  2  2.5478
+128  3  6.7614
+128  4 12.1510
+128  5 19.0104
+128  6 23.1261
+128  7 24.4000
+128  8 25.7718
+128  9 27.3397
+128 10 27.9277
+128 11 27.9277
+128 12 27.7317
+128 13 27.1437
+128 14 26.8497
+128 15 25.4779
+128 16 24.1060
+128 17 22.6361
+128 18 21.0682
+128 19 19.3044
+128 20 17.6385
+128 21 13.9148
+128 22  9.7992
+128 23  6.8594
+128 24  5.0956
+128 25  2.2538
+128 26  0.9799
+128 27  0.3920
+128 28  0.0980
+# pixel 129
+129  1  0.7441
+129  2  2.4184
+129  3  6.4182
+129  4 11.5341
+129  5 18.0452
+129  6 21.9519
+129  7 23.1612
+129  8 24.4634
+129  9 25.9517
+129 10 26.5098
+129 11 26.5098
+129 12 26.3237
+129 13 25.7656
+129 14 25.4866
+129 15 24.1843
+129 16 22.8821
+129 17 21.4869
+129 18 19.9986
+129 19 18.3243
+129 20 16.7430
+129 21 13.2084
+129 22  9.3017
+129 23  6.5112
+129 24  4.8369
+129 25  2.1394
+129 26  0.9302
+129 27  0.3721
+129 28  0.0930
+# pixel 130
+130  1  0.6949
+130  2  2.2583
+130  3  5.9932
+130  4 10.7704
+130  5 16.8505
+130  6 20.4986
+130  7 21.6277
+130  8 22.8437
+130  9 24.2335
+130 10 24.7546
+130 11 24.7546
+130 12 24.5809
+130 13 24.0598
+130 14 23.7992
+130 15 22.5832
+130 16 21.3671
+130 17 20.0643
+130 18 18.6745
+130 19 17.1111
+130 20 15.6345
+130 21 12.3339
+130 22  8.6858
+130 23  6.0801
+130 24  4.5166
+130 25  1.9977
+130 26  0.8686
+130 27  0.3474
+130 28  0.0869
+# pixel 131
+131  1  0.7420
+131  2  2.4115
+131  3  6.3996
+131  4 11.5008
+131  5 17.9932
+131  6 21.8886
+131  7 23.0943
+131  8 24.3928
+131  9 25.8768
+131 10 26.4333
+131 11 26.4333
+131 12 26.2478
+131 13 25.6913
+131 14 25.4130
+131 15 24.1146
+131 16 22.8161
+131 17 21.4249
+131 18 19.9409
+131 19 18.2714
+131 20 16.6947
+131 21 13.1703
+131 22  9.2748
+131 23  6.4924
+131 24  4.8229
+131 25  2.1332
+131 26  0.9275
+131 27  0.3710
+131 28  0.0927
+# pixel 132
+132  1  0.8158
+132  2  2.6514
+132  3  7.0364
+132  4 12.6452
+132  5 19.7836
+132  6 24.0667
+132  7 25.3924
+132  8 26.8201
+132  9 28.4517
+132 10 29.0636
+132 11 29.0636
+132 12 28.8596
+132 13 28.2477
+132 14 27.9418
+132 15 26.5141
+132 16 25.0864
+132 17 23.5568
+132 18 21.9251
+132 19 20.0895
+132 20 18.3559
+132 21 14.4808
+132 22 10.1977
+132 23  7.1384
+132 24  5.3028
+132 25  2.3455
+132 26  1.0198
+132 27  0.4079
+132 28  0.1020
+# pixel 133
+133  1  0.7845
+133  2  2.5497
+133  3  6.7666
+133  4 12.1603
+133  5 19.0250
+133  6 23.1439
+133  7 24.4187
+133  8 25.7917
+133  9 27.3608
+133 10 27.9492
+133 11 27.9492
+133 12 27.7530
+133 13 27.1646
+133 14 26.8704
+133 15 25.4975
+133 16 24.1245
+133 17 22.6535
+133 18 21.0845
+133 19 19.3192
+133 20 17.6521
+133 21 13.9255
+133 22  9.8067
+133 23  6.8647
+133 24  5.0995
+133 25  2.2555
+133 26  0.9807
+133 27  0.3923
+133 28  0.0981
+# pixel 134
+134  1  0.6988
+134  2  2.2710
+134  3  6.0268
+134  4 10.8308
+134  5 16.9450
+134  6 20.6135
+134  7 21.7490
+134  8 22.9718
+134  9 24.3693
+134 10 24.8934
+134 11 24.8934
+134 12 24.7187
+134 13 24.1947
+134 14 23.9326
+134 15 22.7098
+134 16 21.4870
+134 17 20.1768
+134 18 18.7792
+134 19 17.2070
+134 20 15.7222
+134 21 12.4030
+134 22  8.7345
+134 23  6.1142
+134 24  4.5420
+134 25  2.0089
+134 26  0.8735
+134 27  0.3494
+134 28  0.0873
+# pixel 135
+135  1  0.7141
+135  2  2.3208
+135  3  6.1591
+135  4 11.0685
+135  5 17.3168
+135  6 21.0658
+135  7 22.2262
+135  8 23.4759
+135  9 24.9041
+135 10 25.4396
+135 11 25.4396
+135 12 25.2611
+135 13 24.7255
+135 14 24.4578
+135 15 23.2081
+135 16 21.9584
+135 17 20.6195
+135 18 19.1913
+135 19 17.5846
+135 20 16.0671
+135 21 12.6752
+135 22  8.9262
+135 23  6.2483
+135 24  4.6416
+135 25  2.0530
+135 26  0.8926
+135 27  0.3570
+135 28  0.0893
+# pixel 136
+136  1  0.7320
+136  2  2.3791
+136  3  6.3137
+136  4 11.3463
+136  5 17.7514
+136  6 21.5945
+136  7 22.7841
+136  8 24.0651
+136  9 25.5291
+136 10 26.0781
+136 11 26.0781
+136 12 25.8951
+136 13 25.3461
+136 14 25.0716
+136 15 23.7906
+136 16 22.5095
+136 17 21.1370
+136 18 19.6730
+136 19 18.0259
+136 20 16.4704
+136 21 12.9933
+136 22  9.1502
+136 23  6.4052
+136 24  4.7581
+136 25  2.1046
+136 26  0.9150
+136 27  0.3660
+136 28  0.0915
+# pixel 137
+137  1  0.7070
+137  2  2.2977
+137  3  6.0978
+137  4 10.9584
+137  5 17.1445
+137  6 20.8562
+137  7 22.0051
+137  8 23.2423
+137  9 24.6563
+137 10 25.1866
+137 11 25.1866
+137 12 25.0098
+137 13 24.4796
+137 14 24.2145
+137 15 22.9772
+137 16 21.7400
+137 17 20.4144
+137 18 19.0004
+137 19 17.4097
+137 20 15.9073
+137 21 12.5491
+137 22  8.8374
+137 23  6.1862
+137 24  4.5954
+137 25  2.0326
+137 26  0.8837
+137 27  0.3535
+137 28  0.0884
+# pixel 138
+138  1  0.7167
+138  2  2.3292
+138  3  6.1814
+138  4 11.1087
+138  5 17.3797
+138  6 21.1423
+138  7 22.3069
+138  8 23.5612
+138  9 24.9945
+138 10 25.5320
+138 11 25.5320
+138 12 25.3529
+138 13 24.8154
+138 14 24.5466
+138 15 23.2924
+138 16 22.0382
+138 17 20.6944
+138 18 19.2610
+138 19 17.6485
+138 20 16.1255
+138 21 12.7212
+138 22  8.9586
+138 23  6.2710
+138 24  4.6585
+138 25  2.0605
+138 26  0.8959
+138 27  0.3583
+138 28  0.0896
+# pixel 139
+139  1  0.6733
+139  2  2.1882
+139  3  5.8071
+139  4 10.4360
+139  5 16.3273
+139  6 19.8621
+139  7 20.9562
+139  8 22.1344
+139  9 23.4810
+139 10 23.9860
+139 11 23.9860
+139 12 23.8176
+139 13 23.3127
+139 14 23.0602
+139 15 21.8819
+139 16 20.7037
+139 17 19.4413
+139 18 18.0947
+139 19 16.5798
+139 20 15.1490
+139 21 11.9509
+139 22  8.4161
+139 23  5.8913
+139 24  4.3764
+139 25  1.9357
+139 26  0.8416
+139 27  0.3366
+139 28  0.0842
+# pixel 140
+140  1  0.7426
+140  2  2.4134
+140  3  6.4047
+140  4 11.5100
+140  5 18.0075
+140  6 21.9061
+140  7 23.1128
+140  8 24.4123
+140  9 25.8974
+140 10 26.4544
+140 11 26.4544
+140 12 26.2687
+140 13 25.7118
+140 14 25.4333
+140 15 24.1338
+140 16 22.8343
+140 17 21.4420
+140 18 19.9568
+140 19 18.2860
+140 20 16.7080
+140 21 13.1808
+140 22  9.2822
+140 23  6.4976
+140 24  4.8268
+140 25  2.1349
+140 26  0.9282
+140 27  0.3713
+140 28  0.0928
+# pixel 141
+141  1  0.6833
+141  2  2.2208
+141  3  5.8936
+141  4 10.5914
+141  5 16.5704
+141  6 20.1578
+141  7 21.2682
+141  8 22.4640
+141  9 23.8307
+141 10 24.3432
+141 11 24.3432
+141 12 24.1723
+141 13 23.6598
+141 14 23.4036
+141 15 22.2078
+141 16 21.0120
+141 17 19.7308
+141 18 18.3641
+141 19 16.8267
+141 20 15.3746
+141 21 12.1289
+141 22  8.5415
+141 23  5.9790
+141 24  4.4416
+141 25  1.9645
+141 26  0.8541
+141 27  0.3417
+141 28  0.0854
+# pixel 142
+142  1  0.7681
+142  2  2.4962
+142  3  6.6245
+142  4 11.9048
+142  5 18.6253
+142  6 22.6576
+142  7 23.9057
+142  8 25.2498
+142  9 26.7859
+142 10 27.3619
+142 11 27.3619
+142 12 27.1699
+142 13 26.5939
+142 14 26.3058
+142 15 24.9617
+142 16 23.6177
+142 17 22.1776
+142 18 20.6414
+142 19 18.9133
+142 20 17.2812
+142 21 13.6330
+142 22  9.6007
+142 23  6.7205
+142 24  4.9923
+142 25  2.2082
+142 26  0.9601
+142 27  0.3840
+142 28  0.0960
+# pixel 143
+143  1  0.7308
+143  2  2.3752
+143  3  6.3033
+143  4 11.3278
+143  5 17.7225
+143  6 21.5593
+143  7 22.7469
+143  8 24.0258
+143  9 25.4874
+143 10 26.0356
+143 11 26.0356
+143 12 25.8529
+143 13 25.3047
+143 14 25.0307
+143 15 23.7517
+143 16 22.4728
+143 17 21.1025
+143 18 19.6409
+143 19 17.9965
+143 20 16.4435
+143 21 12.9721
+143 22  9.1353
+143 23  6.3947
+143 24  4.7503
+143 25  2.1011
+143 26  0.9135
+143 27  0.3654
+143 28  0.0914
+# pixel 144
+144  1  0.7671
+144  2  2.4931
+144  3  6.6162
+144  4 11.8900
+144  5 18.6021
+144  6 22.6293
+144  7 23.8759
+144  8 25.2183
+144  9 26.7525
+144 10 27.3278
+144 11 27.3278
+144 12 27.1360
+144 13 26.5607
+144 14 26.2730
+144 15 24.9306
+144 16 23.5882
+144 17 22.1499
+144 18 20.6157
+144 19 18.8897
+144 20 17.2597
+144 21 13.6160
+144 22  9.5887
+144 23  6.7121
+144 24  4.9861
+144 25  2.2054
+144 26  0.9589
+144 27  0.3835
+144 28  0.0959
+# pixel 145
+145  1  0.7107
+145  2  2.3096
+145  3  6.1294
+145  4 11.0152
+145  5 17.2335
+145  6 20.9645
+145  7 22.1193
+145  8 23.3630
+145  9 24.7843
+145 10 25.3173
+145 11 25.3173
+145 12 25.1396
+145 13 24.6066
+145 14 24.3401
+145 15 23.0965
+145 16 21.8528
+145 17 20.5203
+145 18 19.0990
+145 19 17.5000
+145 20 15.9899
+145 21 12.6142
+145 22  8.8833
+145 23  6.2183
+145 24  4.6193
+145 25  2.0431
+145 26  0.8883
+145 27  0.3553
+145 28  0.0888
+# pixel 146
+146  1  0.6488
+146  2  2.1087
+146  3  5.5962
+146  4 10.0569
+146  5 15.7342
+146  6 19.1405
+146  7 20.1949
+146  8 21.3303
+146  9 22.6280
+146 10 23.1146
+146 11 23.1146
+146 12 22.9524
+146 13 22.4658
+146 14 22.2225
+146 15 21.0870
+146 16 19.9516
+146 17 18.7350
+146 18 17.4373
+146 19 15.9775
+146 20 14.5987
+146 21 11.5168
+146 22  8.1104
+146 23  5.6773
+146 24  4.2174
+146 25  1.8654
+146 26  0.8110
+146 27  0.3244
+146 28  0.0811
+# pixel 147
+147  1  0.7337
+147  2  2.3846
+147  3  6.3284
+147  4 11.3728
+147  5 17.7930
+147  6 21.6451
+147  7 22.8374
+147  8 24.1214
+147  9 25.5889
+147 10 26.1392
+147 11 26.1392
+147 12 25.9557
+147 13 25.4054
+147 14 25.1303
+147 15 23.8463
+147 16 22.5622
+147 17 21.1865
+147 18 19.7190
+147 19 18.0681
+147 20 16.5089
+147 21 13.0237
+147 22  9.1716
+147 23  6.4201
+147 24  4.7693
+147 25  2.1095
+147 26  0.9172
+147 27  0.3669
+147 28  0.0917
+# pixel 148
+148  1  0.7902
+148  2  2.5681
+148  3  6.8154
+148  4 12.2479
+148  5 19.1621
+148  6 23.3106
+148  7 24.5947
+148  8 25.9775
+148  9 27.5579
+148 10 28.1505
+148 11 28.1505
+148 12 27.9530
+148 13 27.3603
+148 14 27.0640
+148 15 25.6812
+148 16 24.2983
+148 17 22.8167
+148 18 21.2364
+148 19 19.4584
+148 20 17.7793
+148 21 14.0259
+148 22  9.8774
+148 23  6.9142
+148 24  5.1362
+148 25  2.2718
+148 26  0.9877
+148 27  0.3951
+148 28  0.0988
+# pixel 149
+149  1  0.6987
+149  2  2.2708
+149  3  6.0264
+149  4 10.8300
+149  5 16.9437
+149  6 20.6120
+149  7 21.7474
+149  8 22.9701
+149  9 24.3676
+149 10 24.8916
+149 11 24.8916
+149 12 24.7169
+149 13 24.1929
+149 14 23.9309
+149 15 22.7081
+149 16 21.4854
+149 17 20.1753
+149 18 18.7779
+149 19 17.2058
+149 20 15.7210
+149 21 12.4021
+149 22  8.7339
+149 23  6.1137
+149 24  4.5416
+149 25  2.0088
+149 26  0.8734
+149 27  0.3494
+149 28  0.0873
+# pixel 150
+150  1  0.6855
+150  2  2.2277
+150  3  5.9121
+150  4 10.6246
+150  5 16.6224
+150  6 20.2211
+150  7 21.3350
+150  8 22.5345
+150  9 23.9055
+150 10 24.4196
+150 11 24.4196
+150 12 24.2482
+150 13 23.7341
+150 14 23.4770
+150 15 22.2775
+150 16 21.0779
+150 17 19.7927
+150 18 18.4218
+150 19 16.8795
+150 20 15.4229
+150 21 12.1669
+150 22  8.5683
+150 23  5.9978
+150 24  4.4555
+150 25  1.9707
+150 26  0.8568
+150 27  0.3427
+150 28  0.0857
+# pixel 151
+151  1  0.6790
+151  2  2.2066
+151  3  5.8560
+151  4 10.5238
+151  5 16.4646
+151  6 20.0291
+151  7 21.1324
+151  8 22.3205
+151  9 23.6784
+151 10 24.1877
+151 11 24.1877
+151 12 24.0179
+151 13 23.5087
+151 14 23.2541
+151 15 22.0659
+151 16 20.8778
+151 17 19.6047
+151 18 18.2468
+151 19 16.7192
+151 20 15.2764
+151 21 12.0514
+151 22  8.4869
+151 23  5.9408
+151 24  4.4132
+151 25  1.9520
+151 26  0.8487
+151 27  0.3395
+151 28  0.0849
+# pixel 152
+152  1  0.7188
+152  2  2.3362
+152  3  6.1999
+152  4 11.1419
+152  5 17.4316
+152  6 21.2055
+152  7 22.3736
+152  8 23.6315
+152  9 25.0692
+152 10 25.6083
+152 11 25.6083
+152 12 25.4286
+152 13 24.8895
+152 14 24.6199
+152 15 23.3620
+152 16 22.1040
+152 17 20.7562
+152 18 19.3185
+152 19 17.7012
+152 20 16.1737
+152 21 12.7592
+152 22  8.9854
+152 23  6.2898
+152 24  4.6724
+152 25  2.0666
+152 26  0.8985
+152 27  0.3594
+152 28  0.0899
+# pixel 153
+153  1  0.7001
+153  2  2.2752
+153  3  6.0381
+153  4 10.8511
+153  5 16.9767
+153  6 20.6521
+153  7 21.7897
+153  8 23.0148
+153  9 24.4150
+153 10 24.9400
+153 11 24.9400
+153 12 24.7650
+153 13 24.2400
+153 14 23.9774
+153 15 22.7523
+153 16 21.5272
+153 17 20.2146
+153 18 18.8144
+153 19 17.2393
+153 20 15.7516
+153 21 12.4263
+153 22  8.7509
+153 23  6.1256
+153 24  4.5505
+153 25  2.0127
+153 26  0.8751
+153 27  0.3500
+153 28  0.0875
+# pixel 154
+154  1  0.7852
+154  2  2.5518
+154  3  6.7720
+154  4 12.1700
+154  5 19.0401
+154  6 23.1622
+154  7 24.4381
+154  8 25.8121
+154  9 27.3824
+154 10 27.9713
+154 11 27.9713
+154 12 27.7750
+154 13 27.1861
+154 14 26.8917
+154 15 25.5177
+154 16 24.1436
+154 17 22.6715
+154 18 21.1012
+154 19 19.3345
+154 20 17.6661
+154 21 13.9366
+154 22  9.8145
+154 23  6.8701
+154 24  5.1035
+154 25  2.2573
+154 26  0.9814
+154 27  0.3926
+154 28  0.0981
+# pixel 155
+155  1  0.6778
+155  2  2.2028
+155  3  5.8459
+155  4 10.5058
+155  5 16.4364
+155  6 19.9948
+155  7 21.0962
+155  8 22.2824
+155  9 23.6380
+155 10 24.1463
+155 11 24.1463
+155 12 23.9769
+155 13 23.4685
+155 14 23.2143
+155 15 22.0282
+155 16 20.8421
+155 17 19.5712
+155 18 18.2156
+155 19 16.6906
+155 20 15.2503
+155 21 12.0308
+155 22  8.4724
+155 23  5.9307
+155 24  4.4056
+155 25  1.9486
+155 26  0.8472
+155 27  0.3389
+155 28  0.0847
+# pixel 156
+156  1  0.6660
+156  2  2.1645
+156  3  5.7443
+156  4 10.3231
+156  5 16.1506
+156  6 19.6471
+156  7 20.7294
+156  8 21.8949
+156  9 23.2269
+156 10 23.7264
+156 11 23.7264
+156 12 23.5599
+156 13 23.0604
+156 14 22.8107
+156 15 21.6452
+156 16 20.4796
+156 17 19.2309
+156 18 17.8989
+156 19 16.4004
+156 20 14.9851
+156 21 11.8216
+156 22  8.3251
+156 23  5.8275
+156 24  4.3290
+156 25  1.9148
+156 26  0.8325
+156 27  0.3330
+156 28  0.0833
+# pixel 157
+157  1  0.7311
+157  2  2.3762
+157  3  6.3061
+157  4 11.3327
+157  5 17.7302
+157  6 21.5687
+157  7 22.7568
+157  8 24.0363
+157  9 25.4986
+157 10 26.0469
+157 11 26.0469
+157 12 25.8641
+157 13 25.3158
+157 14 25.0416
+157 15 23.7621
+157 16 22.4826
+157 17 21.1117
+157 18 19.6494
+157 19 18.0044
+157 20 16.4507
+157 21 12.9778
+157 22  9.1393
+157 23  6.3975
+157 24  4.7524
+157 25  2.1020
+157 26  0.9139
+157 27  0.3656
+157 28  0.0914
+# pixel 158
+158  1  0.5676
+158  2  1.8448
+158  3  4.8958
+158  4  8.7983
+158  5 13.7650
+158  6 16.7451
+158  7 17.6675
+158  8 18.6608
+158  9 19.7961
+158 10 20.2218
+158 11 20.2218
+158 12 20.0799
+158 13 19.6542
+158 14 19.4413
+158 15 18.4480
+158 16 17.4546
+158 17 16.3903
+158 18 15.2550
+158 19 13.9779
+158 20 12.7717
+158 21 10.0754
+158 22  7.0954
+158 23  4.9668
+158 24  3.6896
+158 25  1.6319
+158 26  0.7095
+158 27  0.2838
+158 28  0.0710
+# pixel 159
+159  1  0.7108
+159  2  2.3102
+159  3  6.1309
+159  4 11.0178
+159  5 17.2376
+159  6 20.9694
+159  7 22.1245
+159  8 23.3684
+159  9 24.7901
+159 10 25.3232
+159 11 25.3232
+159 12 25.1455
+159 13 24.6124
+159 14 24.3458
+159 15 23.1019
+159 16 21.8579
+159 17 20.5251
+159 18 19.1035
+159 19 17.5041
+159 20 15.9936
+159 21 12.6172
+159 22  8.8853
+159 23  6.2197
+159 24  4.6204
+159 25  2.0436
+159 26  0.8885
+159 27  0.3554
+159 28  0.0889
+# pixel 160
+160  1  0.7215
+160  2  2.3450
+160  3  6.2233
+160  4 11.1839
+160  5 17.4974
+160  6 21.2855
+160  7 22.4580
+160  8 23.7207
+160  9 25.1638
+160 10 25.7050
+160 11 25.7050
+160 12 25.5246
+160 13 24.9834
+160 14 24.7129
+160 15 23.4502
+160 16 22.1875
+160 17 20.8346
+160 18 19.3915
+160 19 17.7680
+160 20 16.2347
+160 21 12.8074
+160 22  9.0193
+160 23  6.3135
+160 24  4.6900
+160 25  2.0744
+160 26  0.9019
+160 27  0.3608
+160 28  0.0902
+# pixel 161
+161  1  0.6376
+161  2  2.0722
+161  3  5.4992
+161  4  9.8826
+161  5 15.4614
+161  6 18.8087
+161  7 19.8448
+161  8 20.9606
+161  9 22.2358
+161 10 22.7140
+161 11 22.7140
+161 12 22.5546
+161 13 22.0764
+161 14 21.8373
+161 15 20.7215
+161 16 19.6057
+161 17 18.4103
+161 18 17.1351
+161 19 15.7005
+161 20 14.3457
+161 21 11.3171
+161 22  7.9698
+161 23  5.5789
+161 24  4.1443
+161 25  1.8331
+161 26  0.7970
+161 27  0.3188
+161 28  0.0797
+# pixel 162
+162  1  0.6851
+162  2  2.2264
+162  3  5.9086
+162  4 10.6184
+162  5 16.6126
+162  6 20.2092
+162  7 21.3224
+162  8 22.5213
+162  9 23.8914
+162 10 24.4052
+162 11 24.4052
+162 12 24.2339
+162 13 23.7201
+162 14 23.4632
+162 15 22.2644
+162 16 21.0655
+162 17 19.7810
+162 18 18.4109
+162 19 16.8695
+162 20 15.4138
+162 21 12.1598
+162 22  8.5632
+162 23  5.9943
+162 24  4.4529
+162 25  1.9695
+162 26  0.8563
+162 27  0.3425
+162 28  0.0856
+# pixel 163
+163  1  0.6777
+163  2  2.2025
+163  3  5.8451
+163  4 10.5043
+163  5 16.4341
+163  6 19.9920
+163  7 21.0933
+163  8 22.2792
+163  9 23.6346
+163 10 24.1429
+163 11 24.1429
+163 12 23.9735
+163 13 23.4652
+163 14 23.2111
+163 15 22.0251
+163 16 20.8391
+163 17 19.5685
+163 18 18.2131
+163 19 16.6883
+163 20 15.2482
+163 21 12.0291
+163 22  8.4712
+163 23  5.9298
+163 24  4.4050
+163 25  1.9484
+163 26  0.8471
+163 27  0.3388
+163 28  0.0847
+# pixel 164
+164  1  0.6850
+164  2  2.2262
+164  3  5.9081
+164  4 10.6174
+164  5 16.6110
+164  6 20.2072
+164  7 21.3204
+164  8 22.5191
+164  9 23.8891
+164 10 24.4028
+164 11 24.4028
+164 12 24.2316
+164 13 23.7178
+164 14 23.4610
+164 15 22.2622
+164 16 21.0635
+164 17 19.7791
+164 18 18.4091
+164 19 16.8679
+164 20 15.4123
+164 21 12.1586
+164 22  8.5624
+164 23  5.9937
+164 24  4.4524
+164 25  1.9694
+164 26  0.8562
+164 27  0.3425
+164 28  0.0856
+# pixel 165
+165  1  0.7127
+165  2  2.3163
+165  3  6.1472
+165  4 11.0471
+165  5 17.2834
+165  6 21.0252
+165  7 22.1834
+165  8 23.4306
+165  9 24.8561
+165 10 25.3906
+165 11 25.3906
+165 12 25.2124
+165 13 24.6779
+165 14 24.4106
+165 15 23.1634
+165 16 21.9161
+165 17 20.5798
+165 18 19.1543
+165 19 17.5507
+165 20 16.0362
+165 21 12.6508
+165 22  8.9090
+165 23  6.2363
+165 24  4.6327
+165 25  2.0491
+165 26  0.8909
+165 27  0.3564
+165 28  0.0891
+# pixel 166
+166  1  0.7387
+166  2  2.4007
+166  3  6.3711
+166  4 11.4495
+166  5 17.9129
+166  6 21.7910
+166  7 22.9914
+166  8 24.2840
+166  9 25.7614
+166 10 26.3154
+166 11 26.3154
+166 12 26.1307
+166 13 25.5767
+166 14 25.2997
+166 15 24.0070
+166 16 22.7144
+166 17 21.3293
+166 18 19.8520
+166 19 18.1899
+166 20 16.6203
+166 21 13.1115
+166 22  9.2335
+166 23  6.4634
+166 24  4.8014
+166 25  2.1237
+166 26  0.9233
+166 27  0.3693
+166 28  0.0923
+# pixel 167
+167  1  0.7953
+167  2  2.5847
+167  3  6.8595
+167  4 12.3271
+167  5 19.2860
+167  6 23.4613
+167  7 24.7537
+167  8 26.1455
+167  9 27.7361
+167 10 28.3325
+167 11 28.3325
+167 12 28.1337
+167 13 27.5372
+167 14 27.2390
+167 15 25.8472
+167 16 24.4555
+167 17 22.9643
+167 18 21.3737
+167 19 19.5842
+167 20 17.8942
+167 21 14.1166
+167 22  9.9412
+167 23  6.9589
+167 24  5.1694
+167 25  2.2865
+167 26  0.9941
+167 27  0.3976
+167 28  0.0994
+# pixel 168
+168  1  0.6539
+168  2  2.1252
+168  3  5.6400
+168  4 10.1357
+168  5 15.8575
+168  6 19.2906
+168  7 20.3532
+168  8 21.4976
+168  9 22.8054
+168 10 23.2958
+168 11 23.2958
+168 12 23.1324
+168 13 22.6419
+168 14 22.3967
+168 15 21.2523
+168 16 20.1080
+168 17 18.8819
+168 18 17.5741
+168 19 16.1027
+168 20 14.7132
+168 21 11.6070
+168 22  8.1740
+168 23  5.7218
+168 24  4.2505
+168 25  1.8800
+168 26  0.8174
+168 27  0.3270
+168 28  0.0817
+# pixel 169
+169  1  0.7607
+169  2  2.4723
+169  3  6.5612
+169  4 11.7911
+169  5 18.4474
+169  6 22.4412
+169  7 23.6774
+169  8 25.0086
+169  9 26.5301
+169 10 27.1006
+169 11 27.1006
+169 12 26.9104
+169 13 26.3399
+169 14 26.0546
+169 15 24.7234
+169 16 23.3921
+169 17 21.9658
+169 18 20.4443
+169 19 18.7327
+169 20 17.1162
+169 21 13.5028
+169 22  9.5090
+169 23  6.6563
+169 24  4.9447
+169 25  2.1871
+169 26  0.9509
+169 27  0.3804
+169 28  0.0951
+# pixel 170
+170  1  0.8455
+170  2  2.7479
+170  3  7.2925
+170  4 13.1054
+170  5 20.5035
+170  6 24.9425
+170  7 26.3164
+170  8 27.7960
+170  9 29.4871
+170 10 30.1212
+170 11 30.1212
+170 12 29.9098
+170 13 29.2757
+170 14 28.9586
+170 15 27.4790
+170 16 25.9993
+170 17 24.4140
+170 18 22.7230
+170 19 20.8206
+170 20 19.0239
+170 21 15.0077
+170 22 10.5688
+170 23  7.3982
+170 24  5.4958
+170 25  2.4308
+170 26  1.0569
+170 27  0.4228
+170 28  0.1057
+# pixel 171
+171  1  0.6810
+171  2  2.2133
+171  3  5.8737
+171  4 10.5557
+171  5 16.5145
+171  6 20.0898
+171  7 21.1965
+171  8 22.3883
+171  9 23.7503
+171 10 24.2610
+171 11 24.2610
+171 12 24.0908
+171 13 23.5800
+171 14 23.3247
+171 15 22.1329
+171 16 20.9411
+171 17 19.6642
+171 18 18.3022
+171 19 16.7699
+171 20 15.3228
+171 21 12.0880
+171 22  8.5126
+171 23  5.9589
+171 24  4.4266
+171 25  1.9579
+171 26  0.8513
+171 27  0.3405
+171 28  0.0851
+# pixel 172
+172  1  0.7111
+172  2  2.3111
+172  3  6.1334
+172  4 11.0224
+172  5 17.2447
+172  6 20.9781
+172  7 22.1337
+172  8 23.3782
+172  9 24.8004
+172 10 25.3337
+172 11 25.3337
+172 12 25.1560
+172 13 24.6226
+172 14 24.3559
+172 15 23.1115
+172 16 21.8670
+172 17 20.5337
+172 18 19.1114
+172 19 17.5114
+172 20 16.0003
+172 21 12.6224
+172 22  8.8890
+172 23  6.2223
+172 24  4.6223
+172 25  2.0445
+172 26  0.8889
+172 27  0.3556
+172 28  0.0889
+# pixel 173
+173  1  0.7148
+173  2  2.3230
+173  3  6.1648
+173  4 11.0788
+173  5 17.3329
+173  6 21.0854
+173  7 22.2469
+173  8 23.4977
+173  9 24.9272
+173 10 25.4633
+173 11 25.4633
+173 12 25.2846
+173 13 24.7485
+173 14 24.4805
+173 15 23.2297
+173 16 21.9789
+173 17 20.6387
+173 18 19.2092
+173 19 17.6009
+173 20 16.0821
+173 21 12.6870
+173 22  8.9345
+173 23  6.2541
+173 24  4.6459
+173 25  2.0549
+173 26  0.8934
+173 27  0.3574
+173 28  0.0893
+# pixel 174
+174  1  0.8155
+174  2  2.6504
+174  3  7.0336
+174  4 12.6402
+174  5 19.7758
+174  6 24.0571
+174  7 25.3823
+174  8 26.8094
+174  9 28.4404
+174 10 29.0520
+174 11 29.0520
+174 12 28.8481
+174 13 28.2365
+174 14 27.9307
+174 15 26.5036
+174 16 25.0765
+174 17 23.5474
+174 18 21.9164
+174 19 20.0816
+174 20 18.3486
+174 21 14.4750
+174 22 10.1937
+174 23  7.1356
+174 24  5.3007
+174 25  2.3445
+174 26  1.0194
+174 27  0.4077
+174 28  0.1019
+# pixel 175
+175  1  0.8099
+175  2  2.6320
+175  3  6.9850
+175  4 12.5528
+175  5 19.6390
+175  6 23.8908
+175  7 25.2068
+175  8 26.6241
+175  9 28.2438
+175 10 28.8512
+175 11 28.8512
+175 12 28.6487
+175 13 28.0413
+175 14 27.7376
+175 15 26.3204
+175 16 24.9031
+175 17 23.3846
+175 18 21.7649
+175 19 19.9427
+175 20 18.2218
+175 21 14.3750
+175 22 10.1232
+175 23  7.0863
+175 24  5.2641
+175 25  2.3283
+175 26  1.0123
+175 27  0.4049
+175 28  0.1012
+# pixel 176
+176  1  0.7575
+176  2  2.4618
+176  3  6.5331
+176  4 11.7407
+176  5 18.3685
+176  6 22.3451
+176  7 23.5760
+176  8 24.9016
+176  9 26.4165
+176 10 26.9846
+176 11 26.9846
+176 12 26.7952
+176 13 26.2271
+176 14 25.9431
+176 15 24.6175
+176 16 23.2920
+176 17 21.8717
+176 18 20.3568
+176 19 18.6525
+176 20 17.0429
+176 21 13.4450
+176 22  9.4683
+176 23  6.6278
+176 24  4.9235
+176 25  2.1777
+176 26  0.9468
+176 27  0.3787
+176 28  0.0947
+# pixel 177
+177  1  0.7508
+177  2  2.4400
+177  3  6.4755
+177  4 11.6371
+177  5 18.2064
+177  6 22.1480
+177  7 23.3681
+177  8 24.6819
+177  9 26.1835
+177 10 26.7466
+177 11 26.7466
+177 12 26.5589
+177 13 25.9958
+177 14 25.7142
+177 15 24.4004
+177 16 23.0865
+177 17 21.6788
+177 18 20.1772
+177 19 18.4880
+177 20 16.8926
+177 21 13.3264
+177 22  9.3848
+177 23  6.5693
+177 24  4.8801
+177 25  2.1585
+177 26  0.9385
+177 27  0.3754
+177 28  0.0938
+# pixel 178
+178  1  0.8177
+178  2  2.6576
+178  3  7.0529
+178  4 12.6748
+178  5 19.8300
+178  6 24.1231
+178  7 25.4519
+178  8 26.8829
+178  9 28.5184
+178 10 29.1317
+178 11 29.1317
+178 12 28.9272
+178 13 28.3139
+178 14 28.0073
+178 15 26.5762
+178 16 25.1452
+178 17 23.6120
+178 18 21.9765
+178 19 20.1366
+178 20 18.3989
+178 21 14.5147
+178 22 10.2216
+178 23  7.1551
+178 24  5.3152
+178 25  2.3510
+178 26  1.0222
+178 27  0.4089
+178 28  0.1022
+# pixel 179
+179  1  0.7469
+179  2  2.4273
+179  3  6.4417
+179  4 11.5765
+179  5 18.1116
+179  6 22.0326
+179  7 23.2463
+179  8 24.5533
+179  9 26.0470
+179 10 26.6072
+179 11 26.6072
+179 12 26.4205
+179 13 25.8603
+179 14 25.5802
+179 15 24.2732
+179 16 22.9662
+179 17 21.5658
+179 18 20.0721
+179 19 18.3916
+179 20 16.8045
+179 21 13.2569
+179 22  9.3359
+179 23  6.5351
+179 24  4.8546
+179 25  2.1472
+179 26  0.9336
+179 27  0.3734
+179 28  0.0934
+# pixel 180
+180  1  0.7676
+180  2  2.4948
+180  3  6.6208
+180  4 11.8983
+180  5 18.6151
+180  6 22.6452
+180  7 23.8926
+180  8 25.2360
+180  9 26.7712
+180 10 27.3470
+180 11 27.3470
+180 12 27.1551
+180 13 26.5793
+180 14 26.2915
+180 15 24.9481
+180 16 23.6047
+180 17 22.1654
+180 18 20.6302
+180 19 18.9030
+180 20 17.2718
+180 21 13.6255
+180 22  9.5954
+180 23  6.7168
+180 24  4.9896
+180 25  2.2069
+180 26  0.9595
+180 27  0.3838
+180 28  0.0960
+# pixel 181
+181  1  0.6670
+181  2  2.1679
+181  3  5.7532
+181  4 10.3391
+181  5 16.1756
+181  6 19.6776
+181  7 20.7615
+181  8 21.9288
+181  9 23.2629
+181 10 23.7632
+181 11 23.7632
+181 12 23.5964
+181 13 23.0961
+181 14 22.8460
+181 15 21.6787
+181 16 20.5114
+181 17 19.2607
+181 18 17.9266
+181 19 16.4258
+181 20 15.0083
+181 21 11.8399
+181 22  8.3379
+181 23  5.8366
+181 24  4.3357
+181 25  1.9177
+181 26  0.8338
+181 27  0.3335
+181 28  0.0834
+# pixel 182
+182  1  0.7422
+182  2  2.4122
+182  3  6.4016
+182  4 11.5044
+182  5 17.9988
+182  6 21.8954
+182  7 23.1015
+182  8 24.4004
+182  9 25.8849
+182 10 26.4415
+182 11 26.4415
+182 12 26.2560
+182 13 25.6993
+182 14 25.4210
+182 15 24.1221
+182 16 22.8232
+182 17 21.4315
+182 18 19.9471
+182 19 18.2771
+182 20 16.6999
+182 21 13.1744
+182 22  9.2777
+182 23  6.4944
+182 24  4.8244
+182 25  2.1339
+182 26  0.9278
+182 27  0.3711
+182 28  0.0928
+# pixel 183
+183  1  0.8418
+183  2  2.7359
+183  3  7.2605
+183  4 13.0479
+183  5 20.4137
+183  6 24.8331
+183  7 26.2010
+183  8 27.6742
+183  9 29.3578
+183 10 29.9891
+183 11 29.9891
+183 12 29.7787
+183 13 29.1473
+183 14 28.8317
+183 15 27.3585
+183 16 25.8854
+183 17 24.3070
+183 18 22.6234
+183 19 20.7293
+183 20 18.9405
+183 21 14.9420
+183 22 10.5225
+183 23  7.3658
+183 24  5.4717
+183 25  2.4202
+183 26  1.0523
+183 27  0.4209
+183 28  0.1052
+# pixel 184
+184  1  0.7349
+184  2  2.3886
+184  3  6.3389
+184  4 11.3916
+184  5 17.8223
+184  6 21.6808
+184  7 22.8751
+184  8 24.1612
+184  9 25.6311
+184 10 26.1823
+184 11 26.1823
+184 12 25.9986
+184 13 25.4473
+184 14 25.1717
+184 15 23.8856
+184 16 22.5994
+184 17 21.2214
+184 18 19.7516
+184 19 18.0979
+184 20 16.5362
+184 21 13.0452
+184 22  9.1868
+184 23  6.4307
+184 24  4.7771
+184 25  2.1130
+184 26  0.9187
+184 27  0.3675
+184 28  0.0919
+# pixel 185
+185  1  0.7916
+185  2  2.5726
+185  3  6.8272
+185  4 12.2691
+185  5 19.1952
+185  6 23.3509
+185  7 24.6372
+185  8 26.0224
+185  9 27.6055
+185 10 28.1992
+185 11 28.1992
+185 12 28.0013
+185 13 27.4076
+185 14 27.1108
+185 15 25.7255
+185 16 24.3403
+185 17 22.8562
+185 18 21.2730
+185 19 19.4920
+185 20 17.8100
+185 21 14.0501
+185 22  9.8944
+185 23  6.9261
+185 24  5.1451
+185 25  2.2757
+185 26  0.9894
+185 27  0.3958
+185 28  0.0989
+# pixel 186
+186  1  0.7627
+186  2  2.4787
+186  3  6.5780
+186  4 11.8214
+186  5 18.4947
+186  6 22.4987
+186  7 23.7381
+186  8 25.0728
+186  9 26.5981
+186 10 27.1701
+186 11 27.1701
+186 12 26.9794
+186 13 26.4074
+186 14 26.1214
+186 15 24.7868
+186 16 23.4521
+186 17 22.0221
+186 18 20.4967
+186 19 18.7807
+186 20 17.1601
+186 21 13.5374
+186 22  9.5334
+186 23  6.6734
+186 24  4.9574
+186 25  2.1927
+186 26  0.9533
+186 27  0.3813
+186 28  0.0953
+# pixel 187
+187  1  0.7046
+187  2  2.2898
+187  3  6.0768
+187  4 10.9206
+187  5 17.0855
+187  6 20.7844
+187  7 21.9293
+187  8 23.1623
+187  9 24.5714
+187 10 25.0998
+187 11 25.0998
+187 12 24.9237
+187 13 24.3953
+187 14 24.1311
+187 15 22.8981
+187 16 21.6651
+187 17 20.3441
+187 18 18.9350
+187 19 17.3497
+187 20 15.8525
+187 21 12.5059
+187 22  8.8070
+187 23  6.1649
+187 24  4.5796
+187 25  2.0256
+187 26  0.8807
+187 27  0.3523
+187 28  0.0881
+# pixel 188
+188  1  0.7162
+188  2  2.3276
+188  3  6.1771
+188  4 11.1009
+188  5 17.3675
+188  6 21.1274
+188  7 22.2912
+188  8 23.5445
+188  9 24.9769
+188 10 25.5141
+188 11 25.5141
+188 12 25.3350
+188 13 24.7979
+188 14 24.5293
+188 15 23.2760
+188 16 22.0227
+188 17 20.6798
+188 18 19.2474
+188 19 17.6360
+188 20 16.1141
+188 21 12.7123
+188 22  8.9523
+188 23  6.2666
+188 24  4.6552
+188 25  2.0590
+188 26  0.8952
+188 27  0.3581
+188 28  0.0895
+# pixel 189
+189  1  0.7951
+189  2  2.5842
+189  3  6.8581
+189  4 12.3247
+189  5 19.2823
+189  6 23.4568
+189  7 24.7489
+189  8 26.1404
+189  9 27.7307
+189 10 28.3270
+189 11 28.3270
+189 12 28.1282
+189 13 27.5319
+189 14 27.2337
+189 15 25.8422
+189 16 24.4507
+189 17 22.9598
+189 18 21.3695
+189 19 19.5804
+189 20 17.8908
+189 21 14.1138
+189 22  9.9393
+189 23  6.9575
+189 24  5.1684
+189 25  2.2860
+189 26  0.9939
+189 27  0.3976
+189 28  0.0994
+# pixel 190
+190  1  0.7385
+190  2  2.4000
+190  3  6.3692
+190  4 11.4461
+190  5 17.9077
+190  6 21.7846
+190  7 22.9846
+190  8 24.2769
+190  9 25.7538
+190 10 26.3077
+190 11 26.3077
+190 12 26.1231
+190 13 25.5692
+190 14 25.2923
+190 15 24.0000
+190 16 22.7077
+190 17 21.3231
+190 18 19.8461
+190 19 18.1846
+190 20 16.6154
+190 21 13.1077
+190 22  9.2308
+190 23  6.4615
+190 24  4.8000
+190 25  2.1231
+190 26  0.9231
+190 27  0.3692
+190 28  0.0923
+# pixel 191
+191  1  0.6734
+191  2  2.1886
+191  3  5.8081
+191  4 10.4377
+191  5 16.3300
+191  6 19.8654
+191  7 20.9596
+191  8 22.1381
+191  9 23.4849
+191 10 23.9899
+191 11 23.9899
+191 12 23.8216
+191 13 23.3165
+191 14 23.0640
+191 15 21.8856
+191 16 20.7071
+191 17 19.4445
+191 18 18.0977
+191 19 16.5825
+191 20 15.1515
+191 21 11.9529
+191 22  8.4175
+191 23  5.8923
+191 24  4.3771
+191 25  1.9360
+191 26  0.8418
+191 27  0.3367
+191 28  0.0842
+# pixel 192
+192  1  0.7077
+192  2  2.3001
+192  3  6.1041
+192  4 10.9697
+192  5 17.1623
+192  6 20.8778
+192  7 22.0279
+192  8 23.2664
+192  9 24.6818
+192 10 25.2126
+192 11 25.2126
+192 12 25.0357
+192 13 24.5049
+192 14 24.2395
+192 15 23.0010
+192 16 21.7625
+192 17 20.4355
+192 18 19.0200
+192 19 17.4277
+192 20 15.9238
+192 21 12.5621
+192 22  8.8465
+192 23  6.1926
+192 24  4.6002
+192 25  2.0347
+192 26  0.8847
+192 27  0.3539
+192 28  0.0885
+# pixel 193
+193  1  0.7586
+193  2  2.4656
+193  3  6.5432
+193  4 11.7588
+193  5 18.3969
+193  6 22.3797
+193  7 23.6125
+193  8 24.9401
+193  9 26.4573
+193 10 27.0263
+193 11 27.0263
+193 12 26.8367
+193 13 26.2677
+193 14 25.9832
+193 15 24.6556
+193 16 23.3280
+193 17 21.9055
+193 18 20.3883
+193 19 18.6814
+193 20 17.0693
+193 21 13.4657
+193 22  9.4829
+193 23  6.6380
+193 24  4.9311
+193 25  2.1811
+193 26  0.9483
+193 27  0.3793
+193 28  0.0948
+# pixel 194
+194  1  0.7498
+194  2  2.4368
+194  3  6.4670
+194  4 11.6218
+194  5 18.1825
+194  6 22.1189
+194  7 23.3373
+194  8 24.6495
+194  9 26.1491
+194 10 26.7114
+194 11 26.7114
+194 12 26.5240
+194 13 25.9616
+194 14 25.6805
+194 15 24.3683
+194 16 23.0562
+194 17 21.6503
+194 18 20.1507
+194 19 18.4637
+194 20 16.8704
+194 21 13.3088
+194 22  9.3724
+194 23  6.5607
+194 24  4.8737
+194 25  2.1557
+194 26  0.9372
+194 27  0.3749
+194 28  0.0937
+# pixel 195
+195  1  0.7096
+195  2  2.3062
+195  3  6.1202
+195  4 10.9986
+195  5 17.2075
+195  6 20.9329
+195  7 22.0860
+195  8 23.3278
+195  9 24.7469
+195 10 25.2791
+195 11 25.2791
+195 12 25.1017
+195 13 24.5695
+195 14 24.3034
+195 15 23.0617
+195 16 21.8199
+195 17 20.4894
+195 18 19.0702
+195 19 17.4736
+195 20 15.9658
+195 21 12.5952
+195 22  8.8699
+195 23  6.2089
+195 24  4.6123
+195 25  2.0401
+195 26  0.8870
+195 27  0.3548
+195 28  0.0887
+# pixel 196
+196  1  0.6086
+196  2  1.9780
+196  3  5.2493
+196  4  9.4335
+196  5 14.7588
+196  6 17.9540
+196  7 18.9430
+196  8 20.0081
+196  9 21.2253
+196 10 21.6818
+196 11 21.6818
+196 12 21.5296
+196 13 21.0731
+196 14 20.8449
+196 15 19.7798
+196 16 18.7148
+196 17 17.5736
+196 18 16.3564
+196 19 14.9870
+196 20 13.6937
+196 21 10.8028
+196 22  7.6076
+196 23  5.3253
+196 24  3.9560
+196 25  1.7498
+196 26  0.7608
+196 27  0.3043
+196 28  0.0761
+# pixel 197
+197  1  0.7186
+197  2  2.3355
+197  3  6.1980
+197  4 11.1385
+197  5 17.4264
+197  6 21.1991
+197  7 22.3669
+197  8 23.6244
+197  9 25.0617
+197 10 25.6006
+197 11 25.6006
+197 12 25.4210
+197 13 24.8820
+197 14 24.6125
+197 15 23.3550
+197 16 22.0974
+197 17 20.7500
+197 18 19.3128
+197 19 17.6959
+197 20 16.1688
+197 21 12.7554
+197 22  8.9827
+197 23  6.2879
+197 24  4.6710
+197 25  2.0660
+197 26  0.8983
+197 27  0.3593
+197 28  0.0898
+# pixel 198
+198  1  0.6324
+198  2  2.0554
+198  3  5.4548
+198  4  9.8029
+198  5 15.3368
+198  6 18.6571
+198  7 19.6848
+198  8 20.7916
+198  9 22.0565
+198 10 22.5309
+198 11 22.5309
+198 12 22.3727
+198 13 21.8984
+198 14 21.6612
+198 15 20.5545
+198 16 19.4477
+198 17 18.2618
+198 18 16.9970
+198 19 15.5740
+198 20 14.2300
+198 21 11.2259
+198 22  7.9056
+198 23  5.5339
+198 24  4.1109
+198 25  1.8183
+198 26  0.7906
+198 27  0.3162
+198 28  0.0791
+# pixel 199
+199  1  0.7502
+199  2  2.4381
+199  3  6.4703
+199  4 11.6278
+199  5 18.1920
+199  6 22.1304
+199  7 23.3495
+199  8 24.6623
+199  9 26.1627
+199 10 26.7253
+199 11 26.7253
+199 12 26.5377
+199 13 25.9751
+199 14 25.6938
+199 15 24.3810
+199 16 23.0681
+199 17 21.6616
+199 18 20.1612
+199 19 18.4733
+199 20 16.8791
+199 21 13.3158
+199 22  9.3773
+199 23  6.5641
+199 24  4.8762
+199 25  2.1568
+199 26  0.9377
+199 27  0.3751
+199 28  0.0938
+# pixel 200
+200  1  0.7007
+200  2  2.2771
+200  3  6.0431
+200  4 10.8601
+200  5 16.9909
+200  6 20.6693
+200  7 21.8079
+200  8 23.0340
+200  9 24.4353
+200 10 24.9608
+200 11 24.9608
+200 12 24.7856
+200 13 24.2601
+200 14 23.9974
+200 15 22.7713
+200 16 21.5451
+200 17 20.2314
+200 18 18.8301
+200 19 17.2536
+200 20 15.7647
+200 21 12.4366
+200 22  8.7582
+200 23  6.1307
+200 24  4.5543
+200 25  2.0144
+200 26  0.8758
+200 27  0.3503
+200 28  0.0876
+# pixel 201
+201  1  0.7678
+201  2  2.4954
+201  3  6.6224
+201  4 11.9012
+201  5 18.6196
+201  6 22.6507
+201  7 23.8984
+201  8 25.2421
+201  9 26.7777
+201 10 27.3536
+201 11 27.3536
+201 12 27.1616
+201 13 26.5857
+201 14 26.2978
+201 15 24.9541
+201 16 23.6104
+201 17 22.1708
+201 18 20.6351
+201 19 18.9075
+201 20 17.2759
+201 21 13.6288
+201 22  9.5977
+201 23  6.7184
+201 24  4.9908
+201 25  2.2075
+201 26  0.9598
+201 27  0.3839
+201 28  0.0960
+# pixel 202
+202  1  0.6824
+202  2  2.2179
+202  3  5.8859
+202  4 10.5775
+202  5 16.5487
+202  6 20.1314
+202  7 21.2403
+202  8 22.4345
+202  9 23.7994
+202 10 24.3112
+202 11 24.3112
+202 12 24.1406
+202 13 23.6288
+202 14 23.3729
+202 15 22.1786
+202 16 20.9844
+202 17 19.7048
+202 18 18.3400
+202 19 16.8046
+202 20 15.3544
+202 21 12.1129
+202 22  8.5302
+202 23  5.9712
+202 24  4.4357
+202 25  1.9620
+202 26  0.8530
+202 27  0.3412
+202 28  0.0853
+# pixel 203
+203  1  0.6801
+203  2  2.2104
+203  3  5.8660
+203  4 10.5418
+203  5 16.4929
+203  6 20.0635
+203  7 21.1687
+203  8 22.3589
+203  9 23.7191
+203 10 24.2292
+203 11 24.2292
+203 12 24.0592
+203 13 23.5491
+203 14 23.2940
+203 15 22.1038
+203 16 20.9136
+203 17 19.6384
+203 18 18.2782
+203 19 16.7479
+203 20 15.3026
+203 21 12.0721
+203 22  8.5015
+203 23  5.9510
+203 24  4.4208
+203 25  1.9553
+203 26  0.8501
+203 27  0.3401
+203 28  0.0850
+# pixel 204
+204  1  0.7166
+204  2  2.3289
+204  3  6.1806
+204  4 11.1072
+204  5 17.3775
+204  6 21.1396
+204  7 22.3041
+204  8 23.5581
+204  9 24.9913
+204 10 25.5287
+204 11 25.5287
+204 12 25.3496
+204 13 24.8121
+204 14 24.5434
+204 15 23.2894
+204 16 22.0353
+204 17 20.6917
+204 18 19.2585
+204 19 17.6462
+204 20 16.1234
+204 21 12.7196
+204 22  8.9575
+204 23  6.2702
+204 24  4.6579
+204 25  2.0602
+204 26  0.8957
+204 27  0.3583
+204 28  0.0896
+# pixel 205
+205  1  0.7081
+205  2  2.3013
+205  3  6.1073
+205  4 10.9754
+205  5 17.1712
+205  6 20.8887
+205  7 22.0393
+205  8 23.2785
+205  9 24.6947
+205 10 25.2257
+205 11 25.2257
+205 12 25.0487
+205 13 24.5176
+205 14 24.2521
+205 15 23.0130
+205 16 21.7738
+205 17 20.4461
+205 18 19.0299
+205 19 17.4367
+205 20 15.9320
+205 21 12.5686
+205 22  8.8511
+205 23  6.1958
+205 24  4.6026
+205 25  2.0358
+205 26  0.8851
+205 27  0.3540
+205 28  0.0885
+# pixel 206
+206  1  0.7697
+206  2  2.5016
+206  3  6.6388
+206  4 11.9306
+206  5 18.6656
+206  6 22.7066
+206  7 23.9574
+206  8 25.3044
+206  9 26.8438
+206 10 27.4211
+206 11 27.4211
+206 12 27.2287
+206 13 26.6514
+206 14 26.3628
+206 15 25.0158
+206 16 23.6688
+206 17 22.2256
+206 18 20.6861
+206 19 18.9543
+206 20 17.3186
+206 21 13.6625
+206 22  9.6215
+206 23  6.7350
+206 24  5.0032
+206 25  2.2129
+206 26  0.9621
+206 27  0.3849
+206 28  0.0962
+# pixel 207
+207  1  0.7851
+207  2  2.5517
+207  3  6.7718
+207  4 12.1696
+207  5 19.0396
+207  6 23.1615
+207  7 24.4374
+207  8 25.8114
+207  9 27.3816
+207 10 27.9705
+207 11 27.9705
+207 12 27.7742
+207 13 27.1854
+207 14 26.8909
+207 15 25.5169
+207 16 24.1429
+207 17 22.6708
+207 18 21.1005
+207 19 19.3340
+207 20 17.6656
+207 21 13.9362
+207 22  9.8142
+207 23  6.8699
+207 24  5.1034
+207 25  2.2573
+207 26  0.9814
+207 27  0.3926
+207 28  0.0981
+# pixel 208
+208  1  0.6484
+208  2  2.1072
+208  3  5.5922
+208  4 10.0498
+208  5 15.7230
+208  6 19.1270
+208  7 20.1806
+208  8 21.3152
+208  9 22.6120
+208 10 23.0982
+208 11 23.0982
+208 12 22.9362
+208 13 22.4499
+208 14 22.2067
+208 15 21.0721
+208 16 19.9374
+208 17 18.7217
+208 18 17.4250
+208 19 15.9662
+208 20 14.5884
+208 21 11.5086
+208 22  8.1046
+208 23  5.6733
+208 24  4.2144
+208 25  1.8641
+208 26  0.8105
+208 27  0.3242
+208 28  0.0810
+# pixel 209
+209  1  0.6453
+209  2  2.0973
+209  3  5.5659
+209  4 10.0025
+209  5 15.6490
+209  6 19.0369
+209  7 20.0856
+209  8 21.2149
+209  9 22.5055
+209 10 22.9895
+209 11 22.9895
+209 12 22.8282
+209 13 22.3442
+209 14 22.1022
+209 15 20.9729
+209 16 19.8436
+209 17 18.6336
+209 18 17.3430
+209 19 15.8910
+209 20 14.5197
+209 21 11.4544
+209 22  8.0665
+209 23  5.6465
+209 24  4.1946
+209 25  1.8553
+209 26  0.8066
+209 27  0.3227
+209 28  0.0807
+# pixel 210
+210  1  0.7314
+210  2  2.3770
+210  3  6.3083
+210  4 11.3366
+210  5 17.7363
+210  6 21.5761
+210  7 22.7646
+210  8 24.0445
+210  9 25.5073
+210 10 26.0558
+210 11 26.0558
+210 12 25.8730
+210 13 25.3244
+210 14 25.0502
+210 15 23.7702
+210 16 22.4903
+210 17 21.1189
+210 18 19.6562
+210 19 18.0105
+210 20 16.4563
+210 21 12.9822
+210 22  9.1424
+210 23  6.3997
+210 24  4.7540
+210 25  2.1028
+210 26  0.9142
+210 27  0.3657
+210 28  0.0914
+# pixel 211
+211  1  0.7233
+211  2  2.3507
+211  3  6.2385
+211  4 11.2111
+211  5 17.5400
+211  6 21.3373
+211  7 22.5127
+211  8 23.7785
+211  9 25.2251
+211 10 25.7676
+211 11 25.7676
+211 12 25.5867
+211 13 25.0443
+211 14 24.7730
+211 15 23.5072
+211 16 22.2415
+211 17 20.8853
+211 18 19.4387
+211 19 17.8113
+211 20 16.2742
+211 21 12.8386
+211 22  9.0412
+211 23  6.3289
+211 24  4.7014
+211 25  2.0795
+211 26  0.9041
+211 27  0.3616
+211 28  0.0904
+# pixel 212
+212  1  0.8032
+212  2  2.6106
+212  3  6.9280
+212  4 12.4504
+212  5 19.4788
+212  6 23.6959
+212  7 25.0011
+212  8 26.4068
+212  9 28.0133
+212 10 28.6158
+212 11 28.6158
+212 12 28.4150
+212 13 27.8125
+212 14 27.5113
+212 15 26.1056
+212 16 24.6999
+212 17 23.1938
+212 18 21.5873
+212 19 19.7800
+212 20 18.0731
+212 21 14.2577
+212 22 10.0406
+212 23  7.0284
+212 24  5.2211
+212 25  2.3093
+212 26  1.0041
+212 27  0.4016
+212 28  0.1004
+# pixel 213
+213  1  0.7581
+213  2  2.4640
+213  3  6.5389
+213  4 11.7512
+213  5 18.3849
+213  6 22.3651
+213  7 23.5971
+213  8 24.9238
+213  9 26.4401
+213 10 27.0087
+213 11 27.0087
+213 12 26.8192
+213 13 26.2506
+213 14 25.9663
+213 15 24.6395
+213 16 23.3128
+213 17 21.8913
+213 18 20.3750
+213 19 18.6692
+213 20 17.0581
+213 21 13.4570
+213 22  9.4767
+213 23  6.6337
+213 24  4.9279
+213 25  2.1796
+213 26  0.9477
+213 27  0.3791
+213 28  0.0948
+# pixel 214
+214  1  0.6353
+214  2  2.0648
+214  3  5.4798
+214  4  9.8477
+214  5 15.4069
+214  6 18.7424
+214  7 19.7748
+214  8 20.8867
+214  9 22.1573
+214 10 22.6338
+214 11 22.6338
+214 12 22.4750
+214 13 21.9985
+214 14 21.7602
+214 15 20.6484
+214 16 19.5366
+214 17 18.3453
+214 18 17.0746
+214 19 15.6451
+214 20 14.2950
+214 21 11.2772
+214 22  7.9417
+214 23  5.5592
+214 24  4.1297
+214 25  1.8266
+214 26  0.7942
+214 27  0.3177
+214 28  0.0794
+# pixel 215
+215  1  0.7058
+215  2  2.2939
+215  3  6.0877
+215  4 10.9403
+215  5 17.1162
+215  6 20.8218
+215  7 21.9688
+215  8 23.2040
+215  9 24.6156
+215 10 25.1450
+215 11 25.1450
+215 12 24.9685
+215 13 24.4392
+215 14 24.1745
+215 15 22.9393
+215 16 21.7041
+215 17 20.3807
+215 18 18.9690
+215 19 17.3809
+215 20 15.8811
+215 21 12.5284
+215 22  8.8228
+215 23  6.1760
+215 24  4.5879
+215 25  2.0292
+215 26  0.8823
+215 27  0.3529
+215 28  0.0882
+# pixel 216
+216  1  0.7410
+216  2  2.4082
+216  3  6.3909
+216  4 11.4850
+216  5 17.9685
+216  6 21.8586
+216  7 23.0627
+216  8 24.3594
+216  9 25.8413
+216 10 26.3970
+216 11 26.3970
+216 12 26.2118
+216 13 25.6561
+216 14 25.3782
+216 15 24.0815
+216 16 22.7848
+216 17 21.3955
+216 18 19.9136
+216 19 18.2464
+216 20 16.6718
+216 21 13.1522
+216 22  9.2621
+216 23  6.4835
+216 24  4.8163
+216 25  2.1303
+216 26  0.9262
+216 27  0.3705
+216 28  0.0926
+# pixel 217
+217  1  0.7076
+217  2  2.2998
+217  3  6.1033
+217  4 10.9683
+217  5 17.1600
+217  6 20.8751
+217  7 22.0250
+217  8 23.2633
+217  9 24.6786
+217 10 25.2093
+217 11 25.2093
+217 12 25.0324
+217 13 24.5017
+217 14 24.2363
+217 15 22.9980
+217 16 21.7596
+217 17 20.4328
+217 18 19.0175
+217 19 17.4254
+217 20 15.9217
+217 21 12.5604
+217 22  8.8454
+217 23  6.1918
+217 24  4.5996
+217 25  2.0344
+217 26  0.8845
+217 27  0.3538
+217 28  0.0885
+# pixel 218
+218  1  0.7656
+218  2  2.4882
+218  3  6.6034
+218  4 11.8670
+218  5 18.5660
+218  6 22.5855
+218  7 23.8296
+218  8 25.1694
+218  9 26.7006
+218 10 27.2749
+218 11 27.2749
+218 12 27.0834
+218 13 26.5092
+218 14 26.2221
+218 15 24.8823
+218 16 23.5425
+218 17 22.1070
+218 18 20.5758
+218 19 18.8531
+218 20 17.2262
+218 21 13.5896
+218 22  9.5701
+218 23  6.6991
+218 24  4.9765
+218 25  2.2011
+218 26  0.9570
+218 27  0.3828
+218 28  0.0957
+# pixel 219
+219  1  0.7252
+219  2  2.3570
+219  3  6.2551
+219  4 11.2411
+219  5 17.5869
+219  6 21.3943
+219  7 22.5728
+219  8 23.8420
+219  9 25.2924
+219 10 25.8364
+219 11 25.8364
+219 12 25.6551
+219 13 25.1111
+219 14 24.8392
+219 15 23.5700
+219 16 22.3009
+219 17 20.9411
+219 18 19.4906
+219 19 17.8588
+219 20 16.3177
+219 21 12.8729
+219 22  9.0654
+219 23  6.3458
+219 24  4.7140
+219 25  2.0850
+219 26  0.9065
+219 27  0.3626
+219 28  0.0907
+# pixel 220
+220  1  0.7451
+220  2  2.4216
+220  3  6.4265
+220  4 11.5490
+220  5 18.0687
+220  6 21.9804
+220  7 23.1912
+220  8 24.4952
+220  9 25.9854
+220 10 26.5442
+220 11 26.5442
+220 12 26.3579
+220 13 25.7991
+220 14 25.5197
+220 15 24.2157
+220 16 22.9118
+220 17 21.5148
+220 18 20.0246
+220 19 18.3481
+220 20 16.7647
+220 21 13.2255
+220 22  9.3137
+220 23  6.5196
+220 24  4.8431
+220 25  2.1422
+220 26  0.9314
+220 27  0.3725
+220 28  0.0931
+# pixel 221
+221  1  0.7751
+221  2  2.5191
+221  3  6.6852
+221  4 12.0140
+221  5 18.7962
+221  6 22.8654
+221  7 24.1250
+221  8 25.4814
+221  9 27.0316
+221 10 27.6129
+221 11 27.6129
+221 12 27.4192
+221 13 26.8378
+221 14 26.5472
+221 15 25.1907
+221 16 23.8343
+221 17 22.3810
+221 18 20.8308
+221 19 19.0868
+221 20 17.4397
+221 21 13.7580
+221 22  9.6887
+221 23  6.7821
+221 24  5.0381
+221 25  2.2284
+221 26  0.9689
+221 27  0.3875
+221 28  0.0969
+# pixel 222
+222  1  0.7180
+222  2  2.3335
+222  3  6.1928
+222  4 11.1291
+222  5 17.4116
+222  6 21.1811
+222  7 22.3479
+222  8 23.6044
+222  9 25.0404
+222 10 25.5789
+222 11 25.5789
+222 12 25.3994
+222 13 24.8609
+222 14 24.5916
+222 15 23.3351
+222 16 22.0786
+222 17 20.7324
+222 18 19.2964
+222 19 17.6809
+222 20 16.1551
+222 21 12.7446
+222 22  8.9751
+222 23  6.2825
+222 24  4.6670
+222 25  2.0643
+222 26  0.8975
+222 27  0.3590
+222 28  0.0898
+# pixel 223
+223  1  0.8217
+223  2  2.6704
+223  3  7.0869
+223  4 12.7359
+223  5 19.9256
+223  6 24.2394
+223  7 25.5746
+223  8 27.0125
+223  9 28.6559
+223 10 29.2721
+223 11 29.2721
+223 12 29.0667
+223 13 28.4505
+223 14 28.1423
+223 15 26.7044
+223 16 25.2665
+223 17 23.7258
+223 18 22.0825
+223 19 20.2337
+223 20 18.4877
+223 21 14.5847
+223 22 10.2709
+223 23  7.1896
+223 24  5.3409
+223 25  2.3623
+223 26  1.0271
+223 27  0.4108
+223 28  0.1027
+# pixel 224
+224  1  0.7388
+224  2  2.4012
+224  3  6.3723
+224  4 11.4517
+224  5 17.9164
+224  6 21.7952
+224  7 22.9957
+224  8 24.2887
+224  9 25.7663
+224 10 26.3204
+224 11 26.3204
+224 12 26.1357
+224 13 25.5816
+224 14 25.3046
+224 15 24.0116
+224 16 22.7187
+224 17 21.3334
+224 18 19.8558
+224 19 18.1934
+224 20 16.6234
+224 21 13.1140
+224 22  9.2352
+224 23  6.4647
+224 24  4.8023
+224 25  2.1241
+224 26  0.9235
+224 27  0.3694
+224 28  0.0924
+# pixel 225
+225  1  0.7491
+225  2  2.4347
+225  3  6.4613
+225  4 11.6117
+225  5 18.1666
+225  6 22.0996
+225  7 23.3170
+225  8 24.6280
+225  9 26.1263
+225 10 26.6881
+225 11 26.6881
+225 12 26.5008
+225 13 25.9390
+225 14 25.6580
+225 15 24.3471
+225 16 23.0361
+225 17 21.6314
+225 18 20.1331
+225 19 18.4476
+225 20 16.8557
+225 21 13.2972
+225 22  9.3643
+225 23  6.5550
+225 24  4.8694
+225 25  2.1538
+225 26  0.9364
+225 27  0.3746
+225 28  0.0936
+# pixel 226
+226  1  0.7446
+226  2  2.4200
+226  3  6.4223
+226  4 11.5416
+226  5 18.0570
+226  6 21.9663
+226  7 23.1763
+226  8 24.4794
+226  9 25.9686
+226 10 26.5271
+226 11 26.5271
+226 12 26.3409
+226 13 25.7825
+226 14 25.5032
+226 15 24.2001
+226 16 22.8971
+226 17 21.5009
+226 18 20.0117
+226 19 18.3363
+226 20 16.7539
+226 21 13.2170
+226 22  9.3077
+226 23  6.5154
+226 24  4.8400
+226 25  2.1408
+226 26  0.9308
+226 27  0.3723
+226 28  0.0931
+# pixel 227
+227  1  0.7904
+227  2  2.5689
+227  3  6.8174
+227  4 12.2515
+227  5 19.1677
+227  6 23.3174
+227  7 24.6018
+227  8 25.9850
+227  9 27.5659
+227 10 28.1587
+227 11 28.1587
+227 12 27.9611
+227 13 27.3683
+227 14 27.0719
+227 15 25.6886
+227 16 24.3054
+227 17 22.8234
+227 18 21.2425
+227 19 19.4641
+227 20 17.7844
+227 21 14.0299
+227 22  9.8802
+227 23  6.9162
+227 24  5.1377
+227 25  2.2725
+227 26  0.9880
+227 27  0.3952
+227 28  0.0988
+# pixel 228
+228  1  0.6966
+228  2  2.2639
+228  3  6.0082
+228  4 10.7973
+228  5 16.8925
+228  6 20.5497
+228  7 21.6816
+228  8 22.9007
+228  9 24.2939
+228 10 24.8163
+228 11 24.8163
+228 12 24.6422
+228 13 24.1197
+228 14 23.8585
+228 15 22.6395
+228 16 21.4204
+228 17 20.1143
+228 18 18.7211
+228 19 17.1538
+228 20 15.6735
+228 21 12.3646
+228 22  8.7075
+228 23  6.0952
+228 24  4.5279
+228 25  2.0027
+228 26  0.8707
+228 27  0.3483
+228 28  0.0871
+# pixel 229
+229  1  0.5007
+229  2  1.6274
+229  3  4.3187
+229  4  7.7612
+229  5 12.1426
+229  6 14.7714
+229  7 15.5850
+229  8 16.4613
+229  9 17.4628
+229 10 17.8383
+229 11 17.8383
+229 12 17.7131
+229 13 17.3376
+229 14 17.1498
+229 15 16.2735
+229 16 15.3973
+229 17 14.4584
+229 18 13.4570
+229 19 12.3303
+229 20 11.2663
+229 21  8.8879
+229 22  6.2591
+229 23  4.3813
+229 24  3.2547
+229 25  1.4396
+229 26  0.6259
+229 27  0.2504
+229 28  0.0626
+# pixel 230
+230  1  0.6507
+230  2  2.1148
+230  3  5.6124
+230  4 10.0861
+230  5 15.7799
+230  6 19.1961
+230  7 20.2536
+230  8 21.3923
+230  9 22.6938
+230 10 23.1818
+230 11 23.1818
+230 12 23.0191
+230 13 22.5311
+230 14 22.2871
+230 15 21.1483
+230 16 20.0095
+230 17 18.7895
+230 18 17.4880
+230 19 16.0239
+230 20 14.6411
+230 21 11.5502
+230 22  8.1340
+230 23  5.6938
+230 24  4.2297
+230 25  1.8708
+230 26  0.8134
+230 27  0.3254
+230 28  0.0813
+# pixel 231
+231  1  0.8665
+231  2  2.8162
+231  3  7.4738
+231  4 13.4313
+231  5 21.0134
+231  6 25.5627
+231  7 26.9708
+231  8 28.4873
+231  9 30.2203
+231 10 30.8702
+231 11 30.8702
+231 12 30.6536
+231 13 30.0037
+231 14 29.6787
+231 15 28.1623
+231 16 26.6459
+231 17 25.0211
+231 18 23.2881
+231 19 21.3384
+231 20 19.4970
+231 21 15.3809
+231 22 10.8317
+231 23  7.5822
+231 24  5.6325
+231 25  2.4913
+231 26  1.0832
+231 27  0.4333
+231 28  0.1083
+# pixel 232
+232  1  0.7983
+232  2  2.5944
+232  3  6.8851
+232  4 12.3731
+232  5 19.3580
+232  6 23.5489
+232  7 24.8461
+232  8 26.2430
+232  9 27.8396
+232 10 28.4383
+232 11 28.4383
+232 12 28.2387
+232 13 27.6400
+232 14 27.3406
+232 15 25.9437
+232 16 24.5467
+232 17 23.0500
+232 18 21.4534
+232 19 19.6573
+232 20 17.9610
+232 21 14.1692
+232 22  9.9783
+232 23  6.9848
+232 24  5.1887
+232 25  2.2950
+232 26  0.9978
+232 27  0.3991
+232 28  0.0998
+# pixel 233
+233  1  0.8492
+233  2  2.7599
+233  3  7.3242
+233  4 13.1624
+233  5 20.5928
+233  6 25.0510
+233  7 26.4310
+233  8 27.9170
+233  9 29.6154
+233 10 30.2523
+233 11 30.2523
+233 12 30.0400
+233 13 29.4031
+233 14 29.0847
+233 15 27.5986
+233 16 26.1125
+233 17 24.5203
+233 18 22.8219
+233 19 20.9112
+233 20 19.1067
+233 21 15.0731
+233 22 10.6148
+233 23  7.4304
+233 24  5.5197
+233 25  2.4414
+233 26  1.0615
+233 27  0.4246
+233 28  0.1061
+# pixel 234
+234  1  0.6187
+234  2  2.0106
+234  3  5.3359
+234  4  9.5891
+234  5 15.0023
+234  6 18.2502
+234  7 19.2555
+234  8 20.3381
+234  9 21.5755
+234 10 22.0394
+234 11 22.0394
+234 12 21.8848
+234 13 21.4208
+234 14 21.1888
+234 15 20.1062
+234 16 19.0235
+234 17 17.8635
+234 18 16.6262
+234 19 15.2343
+234 20 13.9196
+234 21 10.9811
+234 22  7.7331
+234 23  5.4132
+234 24  4.0212
+234 25  1.7786
+234 26  0.7733
+234 27  0.3093
+234 28  0.0773
+# pixel 235
+235  1  0.7798
+235  2  2.5343
+235  3  6.7257
+235  4 12.0867
+235  5 18.9099
+235  6 23.0038
+235  7 24.2709
+235  8 25.6356
+235  9 27.1951
+235 10 27.7800
+235 11 27.7800
+235 12 27.5850
+235 13 27.0002
+235 14 26.7078
+235 15 25.3431
+235 16 23.9785
+235 17 22.5164
+235 18 20.9568
+235 19 19.2023
+235 20 17.5452
+235 21 13.8412
+235 22  9.7474
+235 23  6.8232
+235 24  5.0686
+235 25  2.2419
+235 26  0.9747
+235 27  0.3899
+235 28  0.0975
+# pixel 236
+236  1  0.6685
+236  2  2.1727
+236  3  5.7659
+236  4 10.3619
+236  5 16.2113
+236  6 19.7210
+236  7 20.8073
+236  8 21.9772
+236  9 23.3142
+236 10 23.8156
+236 11 23.8156
+236 12 23.6485
+236 13 23.1471
+236 14 22.8964
+236 15 21.7265
+236 16 20.5566
+236 17 19.3032
+236 18 17.9662
+236 19 16.4620
+236 20 15.0414
+236 21 11.8660
+236 22  8.3564
+236 23  5.8494
+236 24  4.3453
+236 25  1.9220
+236 26  0.8356
+236 27  0.3343
+236 28  0.0836
+# pixel 237
+237  1  0.7272
+237  2  2.3634
+237  3  6.2721
+237  4 11.2716
+237  5 17.6346
+237  6 21.4525
+237  7 22.6342
+237  8 23.9068
+237  9 25.3612
+237 10 25.9066
+237 11 25.9066
+237 12 25.7248
+237 13 25.1794
+237 14 24.9067
+237 15 23.6341
+237 16 22.3615
+237 17 20.9980
+237 18 19.5435
+237 19 17.9073
+237 20 16.3620
+237 21 12.9078
+237 22  9.0900
+237 23  6.3630
+237 24  4.7268
+237 25  2.0907
+237 26  0.9090
+237 27  0.3636
+237 28  0.0909
+# pixel 238
+238  1  0.8034
+238  2  2.6110
+238  3  6.9291
+238  4 12.4522
+238  5 19.4817
+238  6 23.6994
+238  7 25.0049
+238  8 26.4108
+238  9 28.0176
+238 10 28.6201
+238 11 28.6201
+238 12 28.4192
+238 13 27.8167
+238 14 27.5155
+238 15 26.1096
+238 16 24.7037
+238 17 23.1973
+238 18 21.5906
+238 19 19.7830
+238 20 18.0758
+238 21 14.2598
+238 22 10.0421
+238 23  7.0295
+238 24  5.2219
+238 25  2.3097
+238 26  1.0042
+238 27  0.4017
+238 28  0.1004
+# pixel 239
+239  1  0.7087
+239  2  2.3031
+239  3  6.1121
+239  4 10.9841
+239  5 17.1848
+239  6 20.9052
+239  7 22.0568
+239  8 23.2969
+239  9 24.7142
+239 10 25.2457
+239 11 25.2457
+239 12 25.0685
+239 13 24.5370
+239 14 24.2713
+239 15 23.0312
+239 16 21.7910
+239 17 20.4623
+239 18 19.0450
+239 19 17.4505
+239 20 15.9446
+239 21 12.5786
+239 22  8.8581
+239 23  6.2007
+239 24  4.6062
+239 25  2.0374
+239 26  0.8858
+239 27  0.3543
+239 28  0.0886
+# pixel 240
+240  1  0.6575
+240  2  2.1367
+240  3  5.6705
+240  4 10.1905
+240  5 15.9432
+240  6 19.3948
+240  7 20.4632
+240  8 21.6137
+240  9 22.9286
+240 10 23.4217
+240 11 23.4217
+240 12 23.2573
+240 13 22.7642
+240 14 22.5177
+240 15 21.3672
+240 16 20.2166
+240 17 18.9839
+240 18 17.6690
+240 19 16.1897
+240 20 14.7927
+240 21 11.6698
+240 22  8.2181
+240 23  5.7527
+240 24  4.2734
+240 25  1.8902
+240 26  0.8218
+240 27  0.3287
+240 28  0.0822
+# pixel 241
+241  1  0.7798
+241  2  2.5343
+241  3  6.7257
+241  4 12.0867
+241  5 18.9098
+241  6 23.0037
+241  7 24.2709
+241  8 25.6355
+241  9 27.1951
+241 10 27.7799
+241 11 27.7799
+241 12 27.5850
+241 13 27.0001
+241 14 26.7077
+241 15 25.3431
+241 16 23.9784
+241 17 22.5163
+241 18 20.9568
+241 19 19.2022
+241 20 17.5452
+241 21 13.8412
+241 22  9.7473
+241 23  6.8231
+241 24  5.0686
+241 25  2.2419
+241 26  0.9747
+241 27  0.3899
+241 28  0.0975
+# pixel 242
+242  1  0.7252
+242  2  2.3567
+242  3  6.2544
+242  4 11.2398
+242  5 17.5849
+242  6 21.3919
+242  7 22.5703
+242  8 23.8393
+242  9 25.2896
+242 10 25.8335
+242 11 25.8335
+242 12 25.6522
+242 13 25.1083
+242 14 24.8364
+242 15 23.5674
+242 16 22.2984
+242 17 20.9387
+242 18 19.4884
+242 19 17.8568
+242 20 16.3159
+242 21 12.8714
+242 22  9.0644
+242 23  6.3451
+242 24  4.7135
+242 25  2.0848
+242 26  0.9064
+242 27  0.3626
+242 28  0.0906
+# pixel 243
+243  1  0.6994
+243  2  2.2730
+243  3  6.0322
+243  4 10.8405
+243  5 16.9602
+243  6 20.6320
+243  7 21.7685
+243  8 22.9924
+243  9 24.3912
+243 10 24.9157
+243 11 24.9157
+243 12 24.7409
+243 13 24.2163
+243 14 23.9541
+243 15 22.7301
+243 16 21.5062
+243 17 20.1949
+243 18 18.7961
+243 19 17.2225
+243 20 15.7363
+243 21 12.4142
+243 22  8.7424
+243 23  6.1197
+243 24  4.5460
+243 25  2.0107
+243 26  0.8742
+243 27  0.3497
+243 28  0.0874
+# pixel 244
+244  1  0.7712
+244  2  2.5065
+244  3  6.6518
+244  4 11.9540
+244  5 18.7022
+244  6 22.7512
+244  7 24.0044
+244  8 25.3541
+244  9 26.8965
+244 10 27.4749
+244 11 27.4749
+244 12 27.2821
+244 13 26.7037
+244 14 26.4145
+244 15 25.0649
+244 16 23.7152
+244 17 22.2692
+244 18 20.7267
+244 19 18.9914
+244 20 17.3526
+244 21 13.6893
+244 22  9.6403
+244 23  6.7482
+244 24  5.0130
+244 25  2.2173
+244 26  0.9640
+244 27  0.3856
+244 28  0.0964
+# pixel 245
+245  1  0.7759
+245  2  2.5216
+245  3  6.6920
+245  4 12.0263
+245  5 18.8153
+245  6 22.8887
+245  7 24.1495
+245  8 25.5073
+245  9 27.0591
+245 10 27.6410
+245 11 27.6410
+245 12 27.4470
+245 13 26.8651
+245 14 26.5741
+245 15 25.2163
+245 16 23.8585
+245 17 22.4037
+245 18 20.8520
+245 19 19.1062
+245 20 17.4575
+245 21 13.7720
+245 22  9.6986
+245 23  6.7890
+245 24  5.0433
+245 25  2.2307
+245 26  0.9699
+245 27  0.3879
+245 28  0.0970
+# pixel 246
+246  1  0.7321
+246  2  2.3793
+246  3  6.3143
+246  4 11.3475
+246  5 17.7533
+246  6 21.5968
+246  7 22.7865
+246  8 24.0676
+246  9 25.5318
+246 10 26.0809
+246 11 26.0809
+246 12 25.8979
+246 13 25.3488
+246 14 25.0743
+246 15 23.7931
+246 16 22.5119
+246 17 21.1393
+246 18 19.6751
+246 19 18.0278
+246 20 16.4721
+246 21 12.9947
+246 22  9.1512
+246 23  6.4058
+246 24  4.7586
+246 25  2.1048
+246 26  0.9151
+246 27  0.3660
+246 28  0.0915
+# pixel 247
+247  1  0.6315
+247  2  2.0525
+247  3  5.4470
+247  4  9.7888
+247  5 15.3148
+247  6 18.6304
+247  7 19.6566
+247  8 20.7618
+247  9 22.0249
+247 10 22.4985
+247 11 22.4985
+247 12 22.3406
+247 13 21.8670
+247 14 21.6302
+247 15 20.5250
+247 16 19.4198
+247 17 18.2357
+247 18 16.9726
+247 19 15.5516
+247 20 14.2096
+247 21 11.2098
+247 22  7.8942
+247 23  5.5260
+247 24  4.1050
+247 25  1.8157
+247 26  0.7894
+247 27  0.3158
+247 28  0.0789
+# pixel 248
+248  1  0.8285
+248  2  2.6925
+248  3  7.1455
+248  4 12.8411
+248  5 20.0901
+248  6 24.4395
+248  7 25.7858
+248  8 27.2356
+248  9 28.8925
+248 10 29.5139
+248 11 29.5139
+248 12 29.3067
+248 13 28.6854
+248 14 28.3747
+248 15 26.9249
+248 16 25.4751
+248 17 23.9218
+248 18 22.2648
+248 19 20.4008
+248 20 18.6403
+248 21 14.7052
+248 22 10.3557
+248 23  7.2490
+248 24  5.3850
+248 25  2.3818
+248 26  1.0356
+248 27  0.4142
+248 28  0.1036
+# pixel 249
+249  1  0.7721
+249  2  2.5092
+249  3  6.6589
+249  4 11.9668
+249  5 18.7222
+249  6 22.7755
+249  7 24.0301
+249  8 25.3812
+249  9 26.9253
+249 10 27.5043
+249 11 27.5043
+249 12 27.3113
+249 13 26.7323
+249 14 26.4427
+249 15 25.0917
+249 16 23.7406
+249 17 22.2930
+249 18 20.7489
+249 19 19.0118
+249 20 17.3711
+249 21 13.7039
+249 22  9.6506
+249 23  6.7554
+249 24  5.0183
+249 25  2.2196
+249 26  0.9651
+249 27  0.3860
+249 28  0.0965
+# pixel 250
+250  1  0.7464
+250  2  2.4257
+250  3  6.4375
+250  4 11.5688
+250  5 18.0996
+250  6 22.0181
+250  7 23.2310
+250  8 24.5372
+250  9 26.0299
+250 10 26.5897
+250 11 26.5897
+250 12 26.4031
+250 13 25.8433
+250 14 25.5634
+250 15 24.2573
+250 16 22.9511
+250 17 21.5516
+250 18 20.0589
+250 19 18.3795
+250 20 16.7935
+250 21 13.2482
+250 22  9.3297
+250 23  6.5308
+250 24  4.8515
+250 25  2.1458
+250 26  0.9330
+250 27  0.3732
+250 28  0.0933
+# pixel 251
+251  1  0.6781
+251  2  2.2038
+251  3  5.8485
+251  4 10.5103
+251  5 16.4435
+251  6 20.0035
+251  7 21.1054
+251  8 22.2920
+251  9 23.6482
+251 10 24.1567
+251 11 24.1567
+251 12 23.9872
+251 13 23.4787
+251 14 23.2244
+251 15 22.0377
+251 16 20.8511
+251 17 19.5797
+251 18 18.2235
+251 19 16.6978
+251 20 15.2569
+251 21 12.0360
+251 22  8.4760
+251 23  5.9332
+251 24  4.4075
+251 25  1.9495
+251 26  0.8476
+251 27  0.3390
+251 28  0.0848
+# pixel 252
+252  1  0.7942
+252  2  2.5811
+252  3  6.8499
+252  4 12.3100
+252  5 19.2592
+252  6 23.4287
+252  7 24.7192
+252  8 26.1091
+252  9 27.6975
+252 10 28.2931
+252 11 28.2931
+252 12 28.0945
+252 13 27.4989
+252 14 27.2011
+252 15 25.8112
+252 16 24.4214
+252 17 22.9323
+252 18 21.3439
+252 19 19.5570
+252 20 17.8693
+252 21 14.0969
+252 22  9.9274
+252 23  6.9492
+252 24  5.1622
+252 25  2.2833
+252 26  0.9927
+252 27  0.3971
+252 28  0.0993
+# pixel 253
+253  1  0.7252
+253  2  2.3569
+253  3  6.2548
+253  4 11.2405
+253  5 17.5860
+253  6 21.3932
+253  7 22.5717
+253  8 23.8407
+253  9 25.2911
+253 10 25.8350
+253 11 25.8350
+253 12 25.6537
+253 13 25.1098
+253 14 24.8379
+253 15 23.5688
+253 16 22.2997
+253 17 20.9400
+253 18 19.4896
+253 19 17.8579
+253 20 16.3169
+253 21 12.8722
+253 22  9.0649
+253 23  6.3454
+253 24  4.7138
+253 25  2.0849
+253 26  0.9065
+253 27  0.3626
+253 28  0.0906
+# pixel 254
+254  1  0.8176
+254  2  2.6571
+254  3  7.0515
+254  4 12.6722
+254  5 19.8259
+254  6 24.1181
+254  7 25.4467
+254  8 26.8774
+254  9 28.5125
+254 10 29.1257
+254 11 29.1257
+254 12 28.9213
+254 13 28.3082
+254 14 28.0016
+254 15 26.5708
+254 16 25.1401
+254 17 23.6072
+254 18 21.9720
+254 19 20.1325
+254 20 18.3952
+254 21 14.5118
+254 22 10.2195
+254 23  7.1537
+254 24  5.3142
+254 25  2.3505
+254 26  1.0220
+254 27  0.4088
+254 28  0.1022
+# pixel 255
+255  1  0.6904
+255  2  2.2439
+255  3  5.9549
+255  4 10.7016
+255  5 16.7428
+255  6 20.3675
+255  7 21.4895
+255  8 22.6977
+255  9 24.0785
+255 10 24.5964
+255 11 24.5964
+255 12 24.4238
+255 13 23.9059
+255 14 23.6470
+255 15 22.4388
+255 16 21.2305
+255 17 19.9360
+255 18 18.5552
+255 19 17.0017
+255 20 15.5345
+255 21 12.2550
+255 22  8.6303
+255 23  6.0412
+255 24  4.4878
+255 25  1.9850
+255 26  0.8630
+255 27  0.3452
+255 28  0.0863
+# pixel 256
+256  1  0.7439
+256  2  2.4177
+256  3  6.4163
+256  4 11.5307
+256  5 18.0400
+256  6 21.9456
+256  7 23.1545
+256  8 24.4563
+256  9 25.9442
+256 10 26.5021
+256 11 26.5021
+256 12 26.3161
+256 13 25.7582
+256 14 25.4792
+256 15 24.1774
+256 16 22.8755
+256 17 21.4807
+256 18 19.9928
+256 19 18.3190
+256 20 16.7382
+256 21 13.2046
+256 22  9.2990
+256 23  6.5093
+256 24  4.8355
+256 25  2.1388
+256 26  0.9299
+256 27  0.3720
+256 28  0.0930
+# pixel 257
+257  1  0.8365
+257  2  2.7188
+257  3  7.2152
+257  4 12.9664
+257  5 20.2862
+257  6 24.6781
+257  7 26.0374
+257  8 27.5014
+257  9 29.1745
+257 10 29.8019
+257 11 29.8019
+257 12 29.5928
+257 13 28.9653
+257 14 28.6516
+257 15 27.1877
+257 16 25.7237
+257 17 24.1552
+257 18 22.4821
+257 19 20.5999
+257 20 18.8222
+257 21 14.8487
+257 22 10.4568
+257 23  7.3198
+257 24  5.4375
+257 25  2.4051
+257 26  1.0457
+257 27  0.4183
+257 28  0.1046
+# pixel 258
+258  1  0.7039
+258  2  2.2875
+258  3  6.0707
+258  4 10.9097
+258  5 17.0684
+258  6 20.7636
+258  7 21.9074
+258  8 23.1391
+258  9 24.5469
+258 10 25.0747
+258 11 25.0747
+258 12 24.8988
+258 13 24.3709
+258 14 24.1069
+258 15 22.8752
+258 16 21.6435
+258 17 20.3237
+258 18 18.9160
+258 19 17.3324
+258 20 15.8367
+258 21 12.4934
+258 22  8.7982
+258 23  6.1587
+258 24  4.5750
+258 25  2.0236
+258 26  0.8798
+258 27  0.3519
+258 28  0.0880
+# pixel 259
+259  1  0.7237
+259  2  2.3520
+259  3  6.2418
+259  4 11.2171
+259  5 17.5493
+259  6 21.3486
+259  7 22.5246
+259  8 23.7911
+259  9 25.2384
+259 10 25.7812
+259 11 25.7812
+259 12 25.6003
+259 13 25.0575
+259 14 24.7861
+259 15 23.5197
+259 16 22.2533
+259 17 20.8963
+259 18 19.4490
+259 19 17.8207
+259 20 16.2829
+259 21 12.8454
+259 22  9.0460
+259 23  6.3322
+259 24  4.7039
+259 25  2.0806
+259 26  0.9046
+259 27  0.3618
+259 28  0.0905
+# pixel 260
+260  1  0.7157
+260  2  2.3261
+260  3  6.1732
+260  4 11.0938
+260  5 17.3564
+260  6 21.1140
+260  7 22.2771
+260  8 23.5296
+260  9 24.9611
+260 10 25.4979
+260 11 25.4979
+260 12 25.3189
+260 13 24.7821
+260 14 24.5137
+260 15 23.2612
+260 16 22.0087
+260 17 20.6667
+260 18 19.2352
+260 19 17.6248
+260 20 16.1039
+260 21 12.7042
+260 22  8.9466
+260 23  6.2626
+260 24  4.6522
+260 25  2.0577
+260 26  0.8947
+260 27  0.3579
+260 28  0.0895
+# pixel 261
+261  1  0.7252
+261  2  2.3569
+261  3  6.2549
+261  4 11.2406
+261  5 17.5861
+261  6 21.3934
+261  7 22.5719
+261  8 23.8410
+261  9 25.2914
+261 10 25.8353
+261 11 25.8353
+261 12 25.6540
+261 13 25.1101
+261 14 24.8382
+261 15 23.5691
+261 16 22.2999
+261 17 20.9402
+261 18 19.4898
+261 19 17.8581
+261 20 16.3170
+261 21 12.8723
+261 22  9.0650
+261 23  6.3455
+261 24  4.7138
+261 25  2.0850
+261 26  0.9065
+261 27  0.3626
+261 28  0.0907
+# pixel 262
+262  1  0.7060
+262  2  2.2945
+262  3  6.0894
+262  4 10.9432
+262  5 17.1209
+262  6 20.8275
+262  7 21.9747
+262  8 23.2103
+262  9 24.6223
+262 10 25.1518
+262 11 25.1518
+262 12 24.9753
+262 13 24.4458
+262 14 24.1810
+262 15 22.9455
+262 16 21.7100
+262 17 20.3862
+262 18 18.9742
+262 19 17.3856
+262 20 15.8853
+262 21 12.5318
+262 22  8.8252
+262 23  6.1776
+262 24  4.5891
+262 25  2.0298
+262 26  0.8825
+262 27  0.3530
+262 28  0.0883
+# pixel 263
+263  1  0.6442
+263  2  2.0937
+263  3  5.5564
+263  4  9.9855
+263  5 15.6224
+263  6 19.0046
+263  7 20.0515
+263  8 21.1789
+263  9 22.4673
+263 10 22.9505
+263 11 22.9505
+263 12 22.7894
+263 13 22.3062
+263 14 22.0647
+263 15 20.9373
+263 16 19.8099
+263 17 18.6020
+263 18 17.3135
+263 19 15.8640
+263 20 14.4950
+263 21 11.4350
+263 22  8.0528
+263 23  5.6370
+263 24  4.1875
+263 25  1.8521
+263 26  0.8053
+263 27  0.3221
+263 28  0.0805
+# pixel 264
+264  1  0.7386
+264  2  2.4006
+264  3  6.3708
+264  4 11.4491
+264  5 17.9122
+264  6 21.7901
+264  7 22.9905
+264  8 24.2831
+264  9 25.7604
+264 10 26.3144
+264 11 26.3144
+264 12 26.1297
+264 13 25.5757
+264 14 25.2987
+264 15 24.0061
+264 16 22.7135
+264 17 21.3285
+264 18 19.8512
+264 19 18.1892
+264 20 16.6196
+264 21 13.1110
+264 22  9.2331
+264 23  6.4632
+264 24  4.8012
+264 25  2.1236
+264 26  0.9233
+264 27  0.3693
+264 28  0.0923
+# pixel 265
+265  1  0.7406
+265  2  2.4070
+265  3  6.3879
+265  4 11.4797
+265  5 17.9602
+265  6 21.8485
+265  7 23.0520
+265  8 24.3481
+265  9 25.8294
+265 10 26.3849
+265 11 26.3849
+265 12 26.1997
+265 13 25.6442
+265 14 25.3665
+265 15 24.0704
+265 16 22.7743
+265 17 21.3856
+265 18 19.9044
+265 19 18.2380
+265 20 16.6641
+265 21 13.1461
+265 22  9.2578
+265 23  6.4805
+265 24  4.8141
+265 25  2.1293
+265 26  0.9258
+265 27  0.3703
+265 28  0.0926
+# pixel 266
+266  1  0.7327
+266  2  2.3811
+266  3  6.3191
+266  4 11.3561
+266  5 17.7668
+266  6 21.6133
+266  7 22.8038
+266  8 24.0860
+266  9 25.5513
+266 10 26.1008
+266 11 26.1008
+266 12 25.9176
+266 13 25.3681
+266 14 25.0934
+266 15 23.8112
+266 16 22.5291
+266 17 21.1554
+266 18 19.6900
+266 19 18.0416
+266 20 16.4847
+266 21 13.0046
+266 22  9.1582
+266 23  6.4107
+266 24  4.7622
+266 25  2.1064
+266 26  0.9158
+266 27  0.3663
+266 28  0.0916
+# pixel 267
+267  1  0.6480
+267  2  2.1061
+267  3  5.5894
+267  4 10.0447
+267  5 15.7151
+267  6 19.1174
+267  7 20.1704
+267  8 21.3045
+267  9 22.6006
+267 10 23.0866
+267 11 23.0866
+267 12 22.9246
+267 13 22.4386
+267 14 22.1956
+267 15 21.0615
+267 16 19.9274
+267 17 18.7123
+267 18 17.4162
+267 19 15.9581
+267 20 14.5810
+267 21 11.5028
+267 22  8.1006
+267 23  5.6704
+267 24  4.2123
+267 25  1.8631
+267 26  0.8101
+267 27  0.3240
+267 28  0.0810
+# pixel 268
+268  1  0.7523
+268  2  2.4450
+268  3  6.4887
+268  4 11.6608
+268  5 18.2436
+268  6 22.1932
+268  7 23.4157
+268  8 24.7323
+268  9 26.2369
+268 10 26.8011
+268 11 26.8011
+268 12 26.6131
+268 13 26.0488
+268 14 25.7667
+268 15 24.4502
+268 16 23.1336
+268 17 21.7230
+268 18 20.2184
+268 19 18.5257
+268 20 16.9270
+268 21 13.3536
+268 22  9.4039
+268 23  6.5827
+268 24  4.8900
+268 25  2.1629
+268 26  0.9404
+268 27  0.3762
+268 28  0.0940
+# pixel 269
+269  1  0.6848
+269  2  2.2257
+269  3  5.9067
+269  4 10.6150
+269  5 16.6073
+269  6 20.2028
+269  7 21.3156
+269  8 22.5141
+269  9 23.8838
+269 10 24.3974
+269 11 24.3974
+269 12 24.2262
+269 13 23.7126
+269 14 23.4557
+269 15 22.2573
+269 16 21.0588
+269 17 19.7747
+269 18 18.4050
+269 19 16.8642
+269 20 15.4089
+269 21 12.1559
+269 22  8.5605
+269 23  5.9923
+269 24  4.4515
+269 25  1.9689
+269 26  0.8560
+269 27  0.3424
+269 28  0.0856
+# pixel 270
+270  1  0.6908
+270  2  2.2450
+270  3  5.9578
+270  4 10.7067
+270  5 16.7509
+270  6 20.3773
+270  7 21.4998
+270  8 22.7087
+270  9 24.0902
+270 10 24.6082
+270 11 24.6082
+270 12 24.4355
+270 13 23.9175
+270 14 23.6584
+270 15 22.4496
+270 16 21.2408
+270 17 19.9456
+270 18 18.5641
+270 19 17.0099
+270 20 15.5420
+270 21 12.2609
+270 22  8.6345
+270 23  6.0441
+270 24  4.4899
+270 25  1.9859
+270 26  0.8634
+270 27  0.3454
+270 28  0.0863
+# pixel 271
+271  1  0.6453
+271  2  2.0973
+271  3  5.5660
+271  4 10.0027
+271  5 15.6493
+271  6 19.0373
+271  7 20.0860
+271  8 21.2153
+271  9 22.5060
+271 10 22.9900
+271 11 22.9900
+271 12 22.8287
+271 13 22.3447
+271 14 22.1027
+271 15 20.9733
+271 16 19.8440
+271 17 18.6340
+271 18 17.3433
+271 19 15.8913
+271 20 14.5200
+271 21 11.4547
+271 22  8.0667
+271 23  5.6467
+271 24  4.1947
+271 25  1.8553
+271 26  0.8067
+271 27  0.3227
+271 28  0.0807
+# pixel 272
+272  1  0.7129
+272  2  2.3170
+272  3  6.1491
+272  4 11.0505
+272  5 17.2887
+272  6 21.0316
+272  7 22.1901
+272  8 23.4378
+272  9 24.8637
+272 10 25.3984
+272 11 25.3984
+272 12 25.2201
+272 13 24.6854
+272 14 24.4181
+272 15 23.1704
+272 16 21.9228
+272 17 20.5860
+272 18 19.1602
+272 19 17.5561
+272 20 16.0411
+272 21 12.6546
+272 22  8.9117
+272 23  6.2382
+272 24  4.6341
+272 25  2.0497
+272 26  0.8912
+272 27  0.3565
+272 28  0.0891
+# pixel 273
+273  1  0.7499
+273  2  2.4370
+273  3  6.4675
+273  4 11.6228
+273  5 18.1841
+273  6 22.1209
+273  7 23.3394
+273  8 24.6517
+273  9 26.1514
+273 10 26.7138
+273 11 26.7138
+273 12 26.5263
+273 13 25.9639
+273 14 25.6827
+273 15 24.3705
+273 16 23.0582
+273 17 21.6522
+273 18 20.1525
+273 19 18.4653
+273 20 16.8719
+273 21 13.3100
+273 22  9.3733
+273 23  6.5613
+273 24  4.8741
+273 25  2.1558
+273 26  0.9373
+273 27  0.3749
+273 28  0.0937
+# pixel 274
+274  1  0.6270
+274  2  2.0378
+274  3  5.4081
+274  4  9.7189
+274  5 15.2054
+274  6 18.4972
+274  7 19.5162
+274  8 20.6135
+274  9 21.8675
+274 10 22.3378
+274 11 22.3378
+274 12 22.1810
+274 13 21.7107
+274 14 21.4756
+274 15 20.3783
+274 16 19.2810
+274 17 18.1054
+274 18 16.8513
+274 19 15.4405
+274 20 14.1081
+274 21 11.1297
+274 22  7.8378
+274 23  5.4865
+274 24  4.0757
+274 25  1.8027
+274 26  0.7838
+274 27  0.3135
+274 28  0.0784
+# pixel 275
+275  1  0.7134
+275  2  2.3185
+275  3  6.1530
+275  4 11.0575
+275  5 17.2997
+275  6 21.0449
+275  7 22.2042
+275  8 23.4526
+275  9 24.8794
+275 10 25.4145
+275 11 25.4145
+275 12 25.2361
+275 13 24.7011
+275 14 24.4335
+275 15 23.1851
+275 16 21.9367
+275 17 20.5991
+275 18 19.1723
+275 19 17.5672
+275 20 16.0512
+275 21 12.6626
+275 22  8.9174
+275 23  6.2421
+275 24  4.6370
+275 25  2.0510
+275 26  0.8917
+275 27  0.3567
+275 28  0.0892
+# pixel 276
+276  1  0.7952
+276  2  2.5844
+276  3  6.8587
+276  4 12.3258
+276  5 19.2840
+276  6 23.4588
+276  7 24.7510
+276  8 26.1427
+276  9 27.7331
+276 10 28.3295
+276 11 28.3295
+276 12 28.1307
+276 13 27.5343
+276 14 27.2361
+276 15 25.8445
+276 16 24.4528
+276 17 22.9618
+276 18 21.3714
+276 19 19.5822
+276 20 17.8923
+276 21 14.1151
+276 22  9.9402
+276 23  6.9581
+276 24  5.1689
+276 25  2.2862
+276 26  0.9940
+276 27  0.3976
+276 28  0.0994
+# pixel 277
+277  1  0.7330
+277  2  2.3824
+277  3  6.3224
+277  4 11.3620
+277  5 17.7760
+277  6 21.6244
+277  7 22.8156
+277  8 24.0984
+277  9 25.5645
+277 10 26.1143
+277 11 26.1143
+277 12 25.9310
+277 13 25.3812
+277 14 25.1064
+277 15 23.8235
+277 16 22.5407
+277 17 21.1663
+277 18 19.7002
+277 19 18.0509
+277 20 16.4932
+277 21 13.0113
+277 22  9.1629
+277 23  6.4140
+277 24  4.7647
+277 25  2.1075
+277 26  0.9163
+277 27  0.3665
+277 28  0.0916
+# pixel 278
+278  1  0.7104
+278  2  2.3089
+278  3  6.1275
+278  4 11.0118
+278  5 17.2282
+278  6 20.9580
+278  7 22.1124
+278  8 23.3557
+278  9 24.7766
+278 10 25.3094
+278 11 25.3094
+278 12 25.1318
+278 13 24.5990
+278 14 24.3325
+278 15 23.0893
+278 16 21.8460
+278 17 20.5139
+278 18 19.0931
+278 19 17.4946
+278 20 15.9849
+278 21 12.6103
+278 22  8.8805
+278 23  6.2163
+278 24  4.6179
+278 25  2.0425
+278 26  0.8880
+278 27  0.3552
+278 28  0.0888
+# pixel 279
+279  1  0.7043
+279  2  2.2891
+279  3  6.0750
+279  4 10.9174
+279  5 17.0804
+279  6 20.7783
+279  7 21.9228
+279  8 23.1554
+279  9 24.5641
+279 10 25.0924
+279 11 25.0924
+279 12 24.9163
+279 13 24.3881
+279 14 24.1239
+279 15 22.8913
+279 16 21.6587
+279 17 20.3381
+279 18 18.9294
+279 19 17.3446
+279 20 15.8478
+279 21 12.5022
+279 22  8.8044
+279 23  6.1630
+279 24  4.5783
+279 25  2.0250
+279 26  0.8804
+279 27  0.3522
+279 28  0.0880
+# pixel 280
+280  1  0.7674
+280  2  2.4940
+280  3  6.6188
+280  4 11.8946
+280  5 18.6094
+280  6 22.6382
+280  7 23.8852
+280  8 25.2282
+280  9 26.7630
+280 10 27.3385
+280 11 27.3385
+280 12 27.1466
+280 13 26.5711
+280 14 26.2833
+280 15 24.9404
+280 16 23.5974
+280 17 22.1586
+280 18 20.6238
+280 19 18.8971
+280 20 17.2664
+280 21 13.6213
+280 22  9.5925
+280 23  6.7147
+280 24  4.9881
+280 25  2.2063
+280 26  0.9592
+280 27  0.3837
+280 28  0.0959
+# pixel 281
+281  1  0.6347
+281  2  2.0627
+281  3  5.4742
+281  4  9.8377
+281  5 15.3912
+281  6 18.7233
+281  7 19.7546
+281  8 20.8653
+281  9 22.1347
+281 10 22.6107
+281 11 22.6107
+281 12 22.4521
+281 13 21.9761
+281 14 21.7380
+281 15 20.6273
+281 16 19.5166
+281 17 18.3266
+281 18 17.0572
+281 19 15.6292
+281 20 14.2805
+281 21 11.2657
+281 22  7.9336
+281 23  5.5535
+281 24  4.1255
+281 25  1.8247
+281 26  0.7934
+281 27  0.3173
+281 28  0.0793
+# pixel 282
+282  1  0.7704
+282  2  2.5039
+282  3  6.6450
+282  4 11.9417
+282  5 18.6830
+282  6 22.7278
+282  7 23.9798
+282  8 25.3280
+282  9 26.8689
+282 10 27.4467
+282 11 27.4467
+282 12 27.2541
+282 13 26.6763
+282 14 26.3874
+282 15 25.0391
+282 16 23.6909
+282 17 22.2463
+282 18 20.7054
+282 19 18.9719
+282 20 17.3348
+282 21 13.6752
+282 22  9.6304
+282 23  6.7413
+282 24  5.0078
+282 25  2.2150
+282 26  0.9630
+282 27  0.3852
+282 28  0.0963
+# pixel 283
+283  1  0.7627
+283  2  2.4788
+283  3  6.5783
+283  4 11.8218
+283  5 18.4955
+283  6 22.4996
+283  7 23.7390
+283  8 25.0738
+283  9 26.5992
+283 10 27.1712
+283 11 27.1712
+283 12 26.9805
+283 13 26.4085
+283 14 26.1225
+283 15 24.7877
+283 16 23.4530
+283 17 22.0230
+283 18 20.4976
+283 19 18.7815
+283 20 17.1607
+283 21 13.5379
+283 22  9.5337
+283 23  6.6736
+283 24  4.9575
+283 25  2.1928
+283 26  0.9534
+283 27  0.3813
+283 28  0.0953
+# pixel 284
+284  1  0.6641
+284  2  2.1582
+284  3  5.7276
+284  4 10.2931
+284  5 16.1037
+284  6 19.5900
+284  7 20.6691
+284  8 21.8312
+284  9 23.1594
+284 10 23.6574
+284 11 23.6574
+284 12 23.4914
+284 13 22.9934
+284 14 22.7443
+284 15 21.5822
+284 16 20.4201
+284 17 19.1750
+284 18 17.8468
+284 19 16.3527
+284 20 14.9415
+284 21 11.7872
+284 22  8.3009
+284 23  5.8106
+284 24  4.3164
+284 25  1.9092
+284 26  0.8301
+284 27  0.3320
+284 28  0.0830
+# pixel 285
+285  1  0.7330
+285  2  2.3821
+285  3  6.3217
+285  4 11.3608
+285  5 17.7742
+285  6 21.6222
+285  7 22.8132
+285  8 24.0959
+285  9 25.5618
+285 10 26.1115
+285 11 26.1115
+285 12 25.9283
+285 13 25.3786
+285 14 25.1037
+285 15 23.8210
+285 16 22.5384
+285 17 21.1641
+285 18 19.6982
+285 19 18.0490
+285 20 16.4915
+285 21 13.0099
+285 22  9.1619
+285 23  6.4134
+285 24  4.7642
+285 25  2.1072
+285 26  0.9162
+285 27  0.3665
+285 28  0.0916
+# pixel 286
+286  1  0.8440
+286  2  2.7431
+286  3  7.2797
+286  4 13.0823
+286  5 20.4674
+286  6 24.8985
+286  7 26.2700
+286  8 27.7471
+286  9 29.4351
+286 10 30.0681
+286 11 30.0681
+286 12 29.8571
+286 13 29.2241
+286 14 28.9076
+286 15 27.4306
+286 16 25.9535
+286 17 24.3710
+286 18 22.6830
+286 19 20.7839
+286 20 18.9904
+286 21 14.9813
+286 22 10.5502
+286 23  7.3852
+286 24  5.4861
+286 25  2.4266
+286 26  1.0550
+286 27  0.4220
+286 28  0.1055
+# pixel 287
+287  1  0.7586
+287  2  2.4654
+287  3  6.5428
+287  4 11.7581
+287  5 18.3957
+287  6 22.3783
+287  7 23.6110
+287  8 24.9385
+287  9 26.4557
+287 10 27.0246
+287 11 27.0246
+287 12 26.8350
+287 13 26.2660
+287 14 25.9816
+287 15 24.6540
+287 16 23.3265
+287 17 21.9042
+287 18 20.3870
+287 19 18.6802
+287 20 17.0682
+287 21 13.4649
+287 22  9.4823
+287 23  6.6376
+287 24  4.9308
+287 25  2.1809
+287 26  0.9482
+287 27  0.3793
+287 28  0.0948
+# pixel 288
+288  1  0.6086
+288  2  1.9781
+288  3  5.2495
+288  4  9.4338
+288  5 14.7594
+288  6 17.9547
+288  7 18.9437
+288  8 20.0088
+288  9 21.2261
+288 10 21.6826
+288 11 21.6826
+288 12 21.5304
+288 13 21.0739
+288 14 20.8457
+288 15 19.7806
+288 16 18.7155
+288 17 17.5743
+288 18 16.3570
+288 19 14.9876
+288 20 13.6943
+288 21 10.8032
+288 22  7.6079
+288 23  5.3255
+288 24  3.9561
+288 25  1.7498
+288 26  0.7608
+288 27  0.3043
+288 28  0.0761
+# pixel 289
+289  1  0.6959
+289  2  2.2617
+289  3  6.0022
+289  4 10.7866
+289  5 16.8758
+289  6 20.5293
+289  7 21.6602
+289  8 22.8780
+289  9 24.2698
+289 10 24.7917
+289 11 24.7917
+289 12 24.6178
+289 13 24.0958
+289 14 23.8349
+289 15 22.6170
+289 16 21.3992
+289 17 20.0944
+289 18 18.7025
+289 19 17.1367
+289 20 15.6579
+289 21 12.3524
+289 22  8.6989
+289 23  6.0892
+289 24  4.5234
+289 25  2.0007
+289 26  0.8699
+289 27  0.3480
+289 28  0.0870
+# pixel 290
+290  1  0.7747
+290  2  2.5178
+290  3  6.6818
+290  4 12.0079
+290  5 18.7865
+290  6 22.8537
+290  7 24.1126
+290  8 25.4683
+290  9 27.0177
+290 10 27.5987
+290 11 27.5987
+290 12 27.4051
+290 13 26.8240
+290 14 26.5335
+290 15 25.1778
+290 16 23.8221
+290 17 22.3695
+290 18 20.8201
+290 19 19.0770
+290 20 17.4308
+290 21 13.7509
+290 22  9.6838
+290 23  6.7786
+290 24  5.0356
+290 25  2.2273
+290 26  0.9684
+290 27  0.3874
+290 28  0.0968
+# pixel 291
+291  1  0.7015
+291  2  2.2799
+291  3  6.0506
+291  4 10.8735
+291  5 17.0118
+291  6 20.6947
+291  7 21.8347
+291  8 23.0623
+291  9 24.4654
+291 10 24.9915
+291 11 24.9915
+291 12 24.8161
+291 13 24.2900
+291 14 24.0269
+291 15 22.7993
+291 16 21.5716
+291 17 20.2563
+291 18 18.8532
+291 19 17.2748
+291 20 15.7841
+291 21 12.4519
+291 22  8.7690
+291 23  6.1383
+291 24  4.5599
+291 25  2.0169
+291 26  0.8769
+291 27  0.3508
+291 28  0.0877
+# pixel 292
+292  1  0.7856
+292  2  2.5533
+292  3  6.7761
+292  4 12.1774
+292  5 19.0518
+292  6 23.1764
+292  7 24.4530
+292  8 25.8279
+292  9 27.3992
+292 10 27.9884
+292 11 27.9884
+292 12 27.7920
+292 13 27.2028
+292 14 26.9082
+292 15 25.5333
+292 16 24.1584
+292 17 22.6854
+292 18 21.1141
+292 19 19.3464
+292 20 17.6769
+292 21 13.9451
+292 22  9.8205
+292 23  6.8744
+292 24  5.1067
+292 25  2.2587
+292 26  0.9821
+292 27  0.3928
+292 28  0.0982
+# pixel 293
+293  1  0.7552
+293  2  2.4545
+293  3  6.5139
+293  4 11.7062
+293  5 18.3145
+293  6 22.2795
+293  7 23.5068
+293  8 24.8285
+293  9 26.3390
+293 10 26.9054
+293 11 26.9054
+293 12 26.7166
+293 13 26.1501
+293 14 25.8669
+293 15 24.5453
+293 16 23.2236
+293 17 21.8075
+293 18 20.2970
+293 19 18.5978
+293 20 16.9929
+293 21 13.4055
+293 22  9.4405
+293 23  6.6083
+293 24  4.9091
+293 25  2.1713
+293 26  0.9440
+293 27  0.3776
+293 28  0.0944
+# pixel 294
+294  1  0.6793
+294  2  2.2077
+294  3  5.8590
+294  4 10.5292
+294  5 16.4730
+294  6 20.0394
+294  7 21.1432
+294  8 22.3320
+294  9 23.6906
+294 10 24.2001
+294 11 24.2001
+294 12 24.0303
+294 13 23.5208
+294 14 23.2660
+294 15 22.0773
+294 16 20.8885
+294 17 19.6148
+294 18 18.2562
+294 19 16.7278
+294 20 15.2843
+294 21 12.0576
+294 22  8.4913
+294 23  5.9439
+294 24  4.4155
+294 25  1.9530
+294 26  0.8491
+294 27  0.3397
+294 28  0.0849
+# pixel 295
+295  1  0.7429
+295  2  2.4144
+295  3  6.4075
+295  4 11.5148
+295  5 18.0152
+295  6 21.9153
+295  7 23.1225
+295  8 24.4226
+295  9 25.9084
+295 10 26.4656
+295 11 26.4656
+295 12 26.2798
+295 13 25.7227
+295 14 25.4441
+295 15 24.1440
+295 16 22.8440
+295 17 21.4510
+295 18 19.9653
+295 19 18.2937
+295 20 16.7151
+295 21 13.1864
+295 22  9.2862
+295 23  6.5003
+295 24  4.8288
+295 25  2.1358
+295 26  0.9286
+295 27  0.3714
+295 28  0.0929
+# pixel 296
+296  1  0.7729
+296  2  2.5118
+296  3  6.6660
+296  4 11.9794
+296  5 18.7420
+296  6 22.7996
+296  7 24.0555
+296  8 25.4080
+296  9 26.9537
+296 10 27.5334
+296 11 27.5334
+296 12 27.3402
+296 13 26.7605
+296 14 26.4707
+296 15 25.1182
+296 16 23.7657
+296 17 22.3165
+296 18 20.7708
+296 19 19.0319
+296 20 17.3895
+296 21 13.7184
+296 22  9.6608
+296 23  6.7626
+296 24  5.0236
+296 25  2.2220
+296 26  0.9661
+296 27  0.3864
+296 28  0.0966
+# pixel 297
+297  1  0.7084
+297  2  2.3023
+297  3  6.1100
+297  4 10.9804
+297  5 17.1789
+297  6 20.8981
+297  7 22.0493
+297  8 23.2890
+297  9 24.7058
+297 10 25.2371
+297 11 25.2371
+297 12 25.0600
+297 13 24.5287
+297 14 24.2630
+297 15 23.0233
+297 16 21.7836
+297 17 20.4553
+297 18 19.0385
+297 19 17.4446
+297 20 15.9392
+297 21 12.5743
+297 22  8.8551
+297 23  6.1986
+297 24  4.6047
+297 25  2.0367
+297 26  0.8855
+297 27  0.3542
+297 28  0.0886
+# pixel 298
+298  1  0.7811
+298  2  2.5387
+298  3  6.7374
+298  4 12.1078
+298  5 18.9428
+298  6 23.0438
+298  7 24.3132
+298  8 25.6802
+298  9 27.2425
+298 10 27.8284
+298 11 27.8284
+298 12 27.6331
+298 13 27.0472
+298 14 26.7543
+298 15 25.3873
+298 16 24.0203
+298 17 22.5556
+298 18 20.9933
+298 19 19.2358
+298 20 17.5758
+298 21 13.8654
+298 22  9.7643
+298 23  6.8350
+298 24  5.0775
+298 25  2.2458
+298 26  0.9764
+298 27  0.3906
+298 28  0.0976
+# pixel 299
+299  1  0.7193
+299  2  2.3377
+299  3  6.2039
+299  4 11.1490
+299  5 17.4428
+299  6 21.2191
+299  7 22.3879
+299  8 23.6467
+299  9 25.0853
+299 10 25.6248
+299 11 25.6248
+299 12 25.4449
+299 13 24.9055
+299 14 24.6357
+299 15 23.3770
+299 16 22.1182
+299 17 20.7695
+299 18 19.3310
+299 19 17.7125
+299 20 16.1841
+299 21 12.7674
+299 22  8.9911
+299 23  6.2938
+299 24  4.6754
+299 25  2.0680
+299 26  0.8991
+299 27  0.3596
+299 28  0.0899
+# pixel 300
+300  1  0.7412
+300  2  2.4088
+300  3  6.3926
+300  4 11.4881
+300  5 17.9733
+300  6 21.8644
+300  7 23.0688
+300  8 24.3658
+300  9 25.8482
+300 10 26.4040
+300 11 26.4040
+300 12 26.2188
+300 13 25.6629
+300 14 25.3849
+300 15 24.0879
+300 16 22.7909
+300 17 21.4012
+300 18 19.9188
+300 19 18.2512
+300 20 16.6762
+300 21 13.1557
+300 22  9.2646
+300 23  6.4852
+300 24  4.8176
+300 25  2.1309
+300 26  0.9265
+300 27  0.3706
+300 28  0.0926
+# pixel 301
+301  1  0.7696
+301  2  2.5011
+301  3  6.6375
+301  4 11.9282
+301  5 18.6618
+301  6 22.7020
+301  7 23.9526
+301  8 25.2993
+301  9 26.8384
+301 10 27.4156
+301 11 27.4156
+301 12 27.2232
+301 13 26.6460
+301 14 26.3574
+301 15 25.0107
+301 16 23.6640
+301 17 22.2211
+301 18 20.6819
+301 19 18.9504
+301 20 17.3151
+301 21 13.6597
+301 22  9.6195
+301 23  6.7337
+301 24  5.0021
+301 25  2.2125
+301 26  0.9620
+301 27  0.3848
+301 28  0.0962
+# pixel 302
+302  1  0.7861
+302  2  2.5548
+302  3  6.7800
+302  4 12.1844
+302  5 19.0627
+302  6 23.1897
+302  7 24.4671
+302  8 25.8427
+302  9 27.4149
+302 10 28.0045
+302 11 28.0045
+302 12 27.8080
+302 13 27.2184
+302 14 26.9236
+302 15 25.5479
+302 16 24.1723
+302 17 22.6984
+302 18 21.1262
+302 19 19.3575
+302 20 17.6870
+302 21 13.9531
+302 22  9.8261
+302 23  6.8783
+302 24  5.1096
+302 25  2.2600
+302 26  0.9826
+302 27  0.3930
+302 28  0.0983
+# pixel 303
+303  1  0.6891
+303  2  2.2397
+303  3  5.9438
+303  4 10.6817
+303  5 16.7116
+303  6 20.3296
+303  7 21.4495
+303  8 22.6555
+303  9 24.0337
+303 10 24.5506
+303 11 24.5506
+303 12 24.3783
+303 13 23.8615
+303 14 23.6030
+303 15 22.3970
+303 16 21.1910
+303 17 19.8989
+303 18 18.5206
+303 19 16.9701
+303 20 15.5056
+303 21 12.2322
+303 22  8.6142
+303 23  6.0300
+303 24  4.4794
+303 25  1.9813
+303 26  0.8614
+303 27  0.3446
+303 28  0.0861
+# pixel 304
+304  1  0.8367
+304  2  2.7192
+304  3  7.2164
+304  4 12.9685
+304  5 20.2895
+304  6 24.6821
+304  7 26.0417
+304  8 27.5058
+304  9 29.1792
+304 10 29.8067
+304 11 29.8067
+304 12 29.5975
+304 13 28.9700
+304 14 28.6563
+304 15 27.1921
+304 16 25.7279
+304 17 24.1591
+304 18 22.4858
+304 19 20.6032
+304 20 18.8253
+304 21 14.8511
+304 22 10.4585
+304 23  7.3209
+304 24  5.4384
+304 25  2.4055
+304 26  1.0458
+304 27  0.4183
+304 28  0.1046
+# pixel 305
+305  1  0.7609
+305  2  2.4731
+305  3  6.5631
+305  4 11.7946
+305  5 18.4528
+305  6 22.4478
+305  7 23.6843
+305  8 25.0160
+305  9 26.5378
+305 10 27.1085
+305 11 27.1085
+305 12 26.9183
+305 13 26.3476
+305 14 26.0623
+305 15 24.7306
+305 16 23.3990
+305 17 21.9722
+305 18 20.4503
+305 19 18.7382
+305 20 17.1212
+305 21 13.5067
+305 22  9.5118
+305 23  6.6582
+305 24  4.9461
+305 25  2.1877
+305 26  0.9512
+305 27  0.3805
+305 28  0.0951
+# pixel 306
+306  1  0.7657
+306  2  2.4884
+306  3  6.6039
+306  4 11.8679
+306  5 18.5675
+306  6 22.5873
+306  7 23.8315
+306  8 25.1714
+306  9 26.7027
+306 10 27.2770
+306 11 27.2770
+306 12 27.0856
+306 13 26.5113
+306 14 26.2242
+306 15 24.8843
+306 16 23.5443
+306 17 22.1087
+306 18 20.5774
+306 19 18.8546
+306 20 17.2276
+306 21 13.5906
+306 22  9.5709
+306 23  6.6996
+306 24  4.9769
+306 25  2.2013
+306 26  0.9571
+306 27  0.3828
+306 28  0.0957
+# pixel 307
+307  1  0.6788
+307  2  2.2061
+307  3  5.8546
+307  4 10.5213
+307  5 16.4607
+307  6 20.0244
+307  7 21.1274
+307  8 22.3153
+307  9 23.6729
+307 10 24.1820
+307 11 24.1820
+307 12 24.0123
+307 13 23.5032
+307 14 23.2486
+307 15 22.0608
+307 16 20.8729
+307 17 19.6001
+307 18 18.2426
+307 19 16.7153
+307 20 15.2728
+307 21 12.0486
+307 22  8.4849
+307 23  5.9394
+307 24  4.4122
+307 25  1.9515
+307 26  0.8485
+307 27  0.3394
+307 28  0.0848
+# pixel 308
+308  1  0.8105
+308  2  2.6341
+308  3  6.9905
+308  4 12.5627
+308  5 19.6545
+308  6 23.9096
+308  7 25.2266
+308  8 26.6450
+308  9 28.2660
+308 10 28.8739
+308 11 28.8739
+308 12 28.6712
+308 13 28.0634
+308 14 27.7594
+308 15 26.3411
+308 16 24.9227
+308 17 23.4030
+308 18 21.7820
+308 19 19.9584
+308 20 18.2361
+308 21 14.3863
+308 22 10.1312
+308 23  7.0918
+308 24  5.2682
+308 25  2.3302
+308 26  1.0131
+308 27  0.4052
+308 28  0.1013
+# pixel 309
+309  1  0.7316
+309  2  2.3778
+309  3  6.3104
+309  4 11.3404
+309  5 17.7422
+309  6 21.5833
+309  7 22.7722
+309  8 24.0526
+309  9 25.5158
+309 10 26.0646
+309 11 26.0646
+309 12 25.8816
+309 13 25.3329
+309 14 25.0586
+309 15 23.7782
+309 16 22.4978
+309 17 21.1260
+309 18 19.6627
+309 19 18.0166
+309 20 16.4618
+309 21 12.9865
+309 22  9.1455
+309 23  6.4018
+309 24  4.7556
+309 25  2.1035
+309 26  0.9145
+309 27  0.3658
+309 28  0.0915
+# pixel 310
+310  1  0.6997
+310  2  2.2741
+310  3  6.0351
+310  4 10.8457
+310  5 16.9683
+310  6 20.6418
+310  7 21.7789
+310  8 23.0034
+310  9 24.4029
+310 10 24.9277
+310 11 24.9277
+310 12 24.7527
+310 13 24.2279
+310 14 23.9655
+310 15 22.7410
+310 16 21.5165
+310 17 20.2045
+310 18 18.8051
+310 19 17.2307
+310 20 15.7438
+310 21 12.4201
+310 22  8.7465
+310 23  6.1226
+310 24  4.5482
+310 25  2.0117
+310 26  0.8747
+310 27  0.3499
+310 28  0.0875
+# pixel 311
+311  1  0.7571
+311  2  2.4606
+311  3  6.5302
+311  4 11.7354
+311  5 18.3601
+311  6 22.3350
+311  7 23.5653
+311  8 24.8903
+311  9 26.4045
+311 10 26.9724
+311 11 26.9724
+311 12 26.7831
+311 13 26.2153
+311 14 25.9313
+311 15 24.6064
+311 16 23.2814
+311 17 21.8618
+311 18 20.3476
+311 19 18.6441
+311 20 17.0352
+311 21 13.4389
+311 22  9.4640
+311 23  6.6248
+311 24  4.9213
+311 25  2.1767
+311 26  0.9464
+311 27  0.3786
+311 28  0.0946
+# pixel 312
+312  1  0.7534
+312  2  2.4487
+312  3  6.4984
+312  4 11.6783
+312  5 18.2709
+312  6 22.2264
+312  7 23.4507
+312  8 24.7693
+312  9 26.2761
+312 10 26.8412
+312 11 26.8412
+312 12 26.6528
+312 13 26.0878
+312 14 25.8052
+312 15 24.4867
+312 16 23.1682
+312 17 21.7555
+312 18 20.2486
+312 19 18.5534
+312 20 16.9523
+312 21 13.3735
+312 22  9.4180
+312 23  6.5926
+312 24  4.8973
+312 25  2.1661
+312 26  0.9418
+312 27  0.3767
+312 28  0.0942
+# pixel 313
+313  1  0.6946
+313  2  2.2576
+313  3  5.9914
+313  4 10.7671
+313  5 16.8453
+313  6 20.4922
+313  7 21.6210
+313  8 22.8366
+313  9 24.2259
+313 10 24.7469
+313 11 24.7469
+313 12 24.5732
+313 13 24.0522
+313 14 23.7918
+313 15 22.5761
+313 16 21.3605
+313 17 20.0580
+313 18 18.6687
+313 19 17.1057
+313 20 15.6296
+313 21 12.3300
+313 22  8.6831
+313 23  6.0782
+313 24  4.5152
+313 25  1.9971
+313 26  0.8683
+313 27  0.3473
+313 28  0.0868
+# pixel 314
+314  1  0.6862
+314  2  2.2300
+314  3  5.9181
+314  4 10.6353
+314  5 16.6392
+314  6 20.2415
+314  7 21.3565
+314  8 22.5572
+314  9 23.9295
+314 10 24.4441
+314 11 24.4441
+314 12 24.2726
+314 13 23.7580
+314 14 23.5007
+314 15 22.2999
+314 16 21.0992
+314 17 19.8126
+314 18 18.4403
+314 19 16.8965
+314 20 15.4384
+314 21 12.1792
+314 22  8.5769
+314 23  6.0038
+314 24  4.4600
+314 25  1.9727
+314 26  0.8577
+314 27  0.3431
+314 28  0.0858
+# pixel 315
+315  1  0.7169
+315  2  2.3298
+315  3  6.1830
+315  4 11.1115
+315  5 17.3842
+315  6 21.1477
+315  7 22.3126
+315  8 23.5672
+315  9 25.0009
+315 10 25.5386
+315 11 25.5386
+315 12 25.3594
+315 13 24.8217
+315 14 24.5529
+315 15 23.2983
+315 16 22.0438
+315 17 20.6997
+315 18 19.2659
+315 19 17.6530
+315 20 16.1296
+315 21 12.7245
+315 22  8.9609
+315 23  6.2726
+315 24  4.6597
+315 25  2.0610
+315 26  0.8961
+315 27  0.3584
+315 28  0.0896
+# pixel 316
+316  1  0.6437
+316  2  2.0922
+316  3  5.5523
+316  4  9.9781
+316  5 15.6108
+316  6 18.9905
+316  7 20.0366
+316  8 21.1632
+316  9 22.4507
+316 10 22.9335
+316 11 22.9335
+316 12 22.7725
+316 13 22.2897
+316 14 22.0483
+316 15 20.9218
+316 16 19.7952
+316 17 18.5882
+316 18 17.3007
+316 19 15.8523
+316 20 14.4843
+316 21 11.4265
+316 22  8.0468
+316 23  5.6328
+316 24  4.1844
+316 25  1.8508
+316 26  0.8047
+316 27  0.3219
+316 28  0.0805
+# pixel 317
+317  1  0.7135
+317  2  2.3189
+317  3  6.1539
+317  4 11.0591
+317  5 17.3022
+317  6 21.0480
+317  7 22.2075
+317  8 23.4561
+317  9 24.8831
+317 10 25.4182
+317 11 25.4182
+317 12 25.2398
+317 13 24.7047
+317 14 24.4371
+317 15 23.1885
+317 16 21.9399
+317 17 20.6021
+317 18 19.1751
+317 19 17.5698
+317 20 16.0536
+317 21 12.6645
+317 22  8.9187
+317 23  6.2431
+317 24  4.6377
+317 25  2.0513
+317 26  0.8919
+317 27  0.3567
+317 28  0.0892
+# pixel 318
+318  1  0.7257
+318  2  2.3587
+318  3  6.2596
+318  4 11.2491
+318  5 17.5994
+318  6 21.4095
+318  7 22.5889
+318  8 23.8589
+318  9 25.3104
+318 10 25.8547
+318 11 25.8547
+318 12 25.6733
+318 13 25.1290
+318 14 24.8568
+318 15 23.5868
+318 16 22.3167
+318 17 20.9560
+318 18 19.5045
+318 19 17.8715
+318 20 16.3293
+318 21 12.8820
+318 22  9.0718
+318 23  6.3503
+318 24  4.7174
+318 25  2.0865
+318 26  0.9072
+318 27  0.3629
+318 28  0.0907
+# pixel 319
+319  1  0.7201
+319  2  2.3405
+319  3  6.2112
+319  4 11.1622
+319  5 17.4635
+319  6 21.2442
+319  7 22.4145
+319  8 23.6747
+319  9 25.1150
+319 10 25.6551
+319 11 25.6551
+319 12 25.4751
+319 13 24.9350
+319 14 24.6649
+319 15 23.4047
+319 16 22.1444
+319 17 20.7942
+319 18 19.3539
+319 19 17.7335
+319 20 16.2032
+319 21 12.7826
+319 22  9.0018
+319 23  6.3013
+319 24  4.6809
+319 25  2.0704
+319 26  0.9002
+319 27  0.3601
+319 28  0.0900
+# pixel 320
+320  1  0.7848
+320  2  2.5505
+320  3  6.7686
+320  4 12.1638
+320  5 19.0305
+320  6 23.1505
+320  7 24.4257
+320  8 25.7990
+320  9 27.3685
+320 10 27.9571
+320 11 27.9571
+320 12 27.7609
+320 13 27.1724
+320 14 26.8781
+320 15 25.5047
+320 16 24.1314
+320 17 22.6600
+320 18 21.0905
+320 19 19.3247
+320 20 17.6571
+320 21 13.9295
+320 22  9.8095
+320 23  6.8667
+320 24  5.1009
+320 25  2.2562
+320 26  0.9810
+320 27  0.3924
+320 28  0.0981
+# pixel 321
+321  1  0.7422
+321  2  2.4120
+321  3  6.4012
+321  4 11.5036
+321  5 17.9975
+321  6 21.8939
+321  7 23.0999
+321  8 24.3987
+321  9 25.8830
+321 10 26.4397
+321 11 26.4397
+321 12 26.2541
+321 13 25.6975
+321 14 25.4192
+321 15 24.1204
+321 16 22.8216
+321 17 21.4300
+321 18 19.9457
+321 19 18.2758
+321 20 16.6987
+321 21 13.1734
+321 22  9.2771
+321 23  6.4940
+321 24  4.8241
+321 25  2.1337
+321 26  0.9277
+321 27  0.3711
+321 28  0.0928
+# pixel 322
+322  1  0.8176
+322  2  2.6571
+322  3  7.0514
+322  4 12.6721
+322  5 19.8257
+322  6 24.1179
+322  7 25.4464
+322  8 26.8771
+322  9 28.5122
+322 10 29.1254
+322 11 29.1254
+322 12 28.9210
+322 13 28.3078
+322 14 28.0012
+322 15 26.5705
+322 16 25.1398
+322 17 23.6069
+322 18 21.9718
+322 19 20.1323
+322 20 18.3950
+322 21 14.5116
+322 22 10.2194
+322 23  7.1536
+322 24  5.3141
+322 25  2.3505
+322 26  1.0219
+322 27  0.4088
+322 28  0.1022
+# pixel 323
+323  1  0.6788
+323  2  2.2062
+323  3  5.8550
+323  4 10.5220
+323  5 16.4618
+323  6 20.0257
+323  7 21.1288
+323  8 22.3167
+323  9 23.6744
+323 10 24.1835
+323 11 24.1835
+323 12 24.0138
+323 13 23.5047
+323 14 23.2501
+323 15 22.0622
+323 16 20.8742
+323 17 19.6014
+323 18 18.2437
+323 19 16.7163
+323 20 15.2738
+323 21 12.0493
+323 22  8.4855
+323 23  5.9398
+323 24  4.4124
+323 25  1.9517
+323 26  0.8485
+323 27  0.3394
+323 28  0.0849
+# pixel 324
+324  1  0.7766
+324  2  2.5241
+324  3  6.6985
+324  4 12.0378
+324  5 18.8334
+324  6 22.9107
+324  7 24.1727
+324  8 25.5318
+324  9 27.0851
+324 10 27.6676
+324 11 27.6676
+324 12 27.4734
+324 13 26.8909
+324 14 26.5997
+324 15 25.2406
+324 16 23.8815
+324 17 22.4253
+324 18 20.8720
+324 19 19.1246
+324 20 17.4742
+324 21 13.7852
+324 22  9.7079
+324 23  6.7955
+324 24  5.0481
+324 25  2.2328
+324 26  0.9708
+324 27  0.3883
+324 28  0.0971
+# pixel 325
+325  1  0.6570
+325  2  2.1352
+325  3  5.6665
+325  4 10.1832
+325  5 15.9318
+325  6 19.3810
+325  7 20.4486
+325  8 21.5983
+325  9 22.9123
+325 10 23.4050
+325 11 23.4050
+325 12 23.2408
+325 13 22.7480
+325 14 22.5017
+325 15 21.3519
+325 16 20.2022
+325 17 18.9704
+325 18 17.6564
+325 19 16.1782
+325 20 14.7821
+325 21 11.6614
+325 22  8.2123
+325 23  5.7486
+325 24  4.2704
+325 25  1.8888
+325 26  0.8212
+325 27  0.3285
+325 28  0.0821
+# pixel 326
+326  1  0.7346
+326  2  2.3874
+326  3  6.3357
+326  4 11.3859
+326  5 17.8135
+326  6 21.6700
+326  7 22.8637
+326  8 24.1492
+326  9 25.6184
+326 10 26.1693
+326 11 26.1693
+326 12 25.9857
+326 13 25.4347
+326 14 25.1593
+326 15 23.8737
+326 16 22.5882
+326 17 21.2109
+326 18 19.7418
+326 19 18.0890
+326 20 16.5280
+326 21 13.0387
+326 22  9.1822
+326 23  6.4275
+326 24  4.7747
+326 25  2.1119
+326 26  0.9182
+326 27  0.3673
+326 28  0.0918
+# pixel 327
+327  1  0.7782
+327  2  2.5290
+327  3  6.7116
+327  4 12.0615
+327  5 18.8704
+327  6 22.9558
+327  7 24.2203
+327  8 25.5821
+327  9 27.1384
+327 10 27.7220
+327 11 27.7220
+327 12 27.5275
+327 13 26.9439
+327 14 26.6520
+327 15 25.2903
+327 16 23.9285
+327 17 22.4694
+327 18 20.9131
+327 19 19.1622
+327 20 17.5086
+327 21 13.8124
+327 22  9.7270
+327 23  6.8089
+327 24  5.0581
+327 25  2.2372
+327 26  0.9727
+327 27  0.3891
+327 28  0.0973
+# pixel 328
+328  1  0.7701
+328  2  2.5029
+328  3  6.6423
+328  4 11.9370
+328  5 18.6756
+328  6 22.7188
+328  7 23.9702
+328  8 25.3179
+328  9 26.8582
+328 10 27.4358
+328 11 27.4358
+328 12 27.2433
+328 13 26.6657
+328 14 26.3769
+328 15 25.0291
+328 16 23.6814
+328 17 22.2374
+328 18 20.6972
+328 19 18.9644
+328 20 17.3279
+328 21 13.6698
+328 22  9.6266
+328 23  6.7386
+328 24  5.0058
+328 25  2.2141
+328 26  0.9627
+328 27  0.3851
+328 28  0.0963
+# pixel 329
+329  1  0.7616
+329  2  2.4750
+329  3  6.5684
+329  4 11.8041
+329  5 18.4676
+329  6 22.4658
+329  7 23.7033
+329  8 25.0360
+329  9 26.5591
+329 10 27.1303
+329 11 27.1303
+329 12 26.9399
+329 13 26.3687
+329 14 26.0832
+329 15 24.7504
+329 16 23.4177
+329 17 21.9898
+329 18 20.4667
+329 19 18.7532
+329 20 17.1349
+329 21 13.5175
+329 22  9.5194
+329 23  6.6636
+329 24  4.9501
+329 25  2.1895
+329 26  0.9519
+329 27  0.3808
+329 28  0.0952
+# pixel 330
+330  1  0.8082
+330  2  2.6267
+330  3  6.9710
+330  4 12.5275
+330  5 19.5995
+330  6 23.8427
+330  7 25.1561
+330  8 26.5705
+330  9 28.1870
+330 10 28.7931
+330 11 28.7931
+330 12 28.5911
+330 13 27.9849
+330 14 27.6818
+330 15 26.2674
+330 16 24.8530
+330 17 23.3376
+330 18 21.7211
+330 19 19.9026
+330 20 18.1851
+330 21 14.3461
+330 22 10.1029
+330 23  7.0720
+330 24  5.2535
+330 25  2.3237
+330 26  1.0103
+330 27  0.4041
+330 28  0.1010
+# pixel 331
+331  1  0.6909
+331  2  2.2454
+331  3  5.9589
+331  4 10.7088
+331  5 16.7541
+331  6 20.3813
+331  7 21.5040
+331  8 22.7131
+331  9 24.0949
+331 10 24.6130
+331 11 24.6130
+331 12 24.4403
+331 13 23.9221
+331 14 23.6631
+331 15 22.4540
+331 16 21.2449
+331 17 19.9495
+331 18 18.5677
+331 19 17.0132
+331 20 15.5451
+331 21 12.2633
+331 22  8.6362
+331 23  6.0453
+331 24  4.4908
+331 25  1.9863
+331 26  0.8636
+331 27  0.3454
+331 28  0.0864
+# pixel 332
+332  1  0.6904
+332  2  2.2438
+332  3  5.9546
+332  4 10.7010
+332  5 16.7419
+332  6 20.3664
+332  7 21.4883
+332  8 22.6964
+332  9 24.0772
+332 10 24.5950
+332 11 24.5950
+332 12 24.4224
+332 13 23.9046
+332 14 23.6457
+332 15 22.4375
+332 16 21.2294
+332 17 19.9349
+332 18 18.5541
+332 19 17.0007
+332 20 15.5337
+332 21 12.2543
+332 22  8.6298
+332 23  6.0409
+332 24  4.4875
+332 25  1.9849
+332 26  0.8630
+332 27  0.3452
+332 28  0.0863
+# pixel 333
+333  1  0.7189
+333  2  2.3364
+333  3  6.2005
+333  4 11.1430
+333  5 17.4334
+333  6 21.2076
+333  7 22.3758
+333  8 23.6339
+333  9 25.0717
+333 10 25.6109
+333 11 25.6109
+333 12 25.4312
+333 13 24.8920
+333 14 24.6224
+333 15 23.3643
+333 16 22.1063
+333 17 20.7583
+333 18 19.3205
+333 19 17.7030
+333 20 16.1753
+333 21 12.7605
+333 22  8.9863
+333 23  6.2904
+333 24  4.6729
+333 25  2.0668
+333 26  0.8986
+333 27  0.3595
+333 28  0.0899
+# pixel 334
+334  1  0.7097
+334  2  2.3064
+334  3  6.1209
+334  4 10.9998
+334  5 17.2094
+334  6 20.9352
+334  7 22.0884
+334  8 23.3303
+334  9 24.7496
+334 10 25.2819
+334 11 25.2819
+334 12 25.1044
+334 13 24.5722
+334 14 24.3061
+334 15 23.0642
+334 16 21.8222
+334 17 20.4916
+334 18 19.0723
+334 19 17.4755
+334 20 15.9675
+334 21 12.5966
+334 22  8.8708
+334 23  6.2096
+334 24  4.6128
+334 25  2.0403
+334 26  0.8871
+334 27  0.3548
+334 28  0.0887
+# pixel 335
+335  1  0.6775
+335  2  2.2018
+335  3  5.8433
+335  4 10.5011
+335  5 16.4291
+335  6 19.9859
+335  7 21.0869
+335  8 22.2725
+335  9 23.6275
+335 10 24.1356
+335 11 24.1356
+335 12 23.9662
+335 13 23.4581
+335 14 23.2040
+335 15 22.0184
+335 16 20.8328
+335 17 19.5625
+335 18 18.2075
+335 19 16.6832
+335 20 15.2435
+335 21 12.0254
+335 22  8.4686
+335 23  5.9280
+335 24  4.4037
+335 25  1.9478
+335 26  0.8469
+335 27  0.3387
+335 28  0.0847
+# pixel 336
+336  1  0.7264
+336  2  2.3608
+336  3  6.2652
+336  4 11.2592
+336  5 17.6151
+336  6 21.4287
+336  7 22.6091
+336  8 23.8803
+336  9 25.3331
+336 10 25.8779
+336 11 25.8779
+336 12 25.6963
+336 13 25.1515
+336 14 24.8791
+336 15 23.6079
+336 16 22.3367
+336 17 20.9747
+336 18 19.5219
+336 19 17.8875
+336 20 16.3439
+336 21 12.8936
+336 22  9.0800
+336 23  6.3560
+336 24  4.7216
+336 25  2.0884
+336 26  0.9080
+336 27  0.3632
+336 28  0.0908
+# pixel 337
+337  1  0.6559
+337  2  2.1316
+337  3  5.6571
+337  4 10.1663
+337  5 15.9054
+337  6 19.3488
+337  7 20.4146
+337  8 21.5624
+337  9 22.8742
+337 10 23.3661
+337 11 23.3661
+337 12 23.2021
+337 13 22.7102
+337 14 22.4643
+337 15 21.3165
+337 16 20.1687
+337 17 18.9389
+337 18 17.6271
+337 19 16.1513
+337 20 14.7575
+337 21 11.6421
+337 22  8.1986
+337 23  5.7390
+337 24  4.2633
+337 25  1.8857
+337 26  0.8199
+337 27  0.3279
+337 28  0.0820
+# pixel 338
+338  1  0.7210
+338  2  2.3432
+338  3  6.2184
+338  4 11.1751
+338  5 17.4836
+338  6 21.2687
+338  7 22.4402
+338  8 23.7020
+338  9 25.1439
+338 10 25.6846
+338 11 25.6846
+338 12 25.5044
+338 13 24.9637
+338 14 24.6933
+338 15 23.4316
+338 16 22.1699
+338 17 20.8181
+338 18 19.3761
+338 19 17.7539
+338 20 16.2219
+338 21 12.7973
+338 22  9.0121
+338 23  6.3085
+338 24  4.6863
+338 25  2.0728
+338 26  0.9012
+338 27  0.3605
+338 28  0.0901
+# pixel 339
+339  1  0.7055
+339  2  2.2929
+339  3  6.0849
+339  4 10.9352
+339  5 17.1083
+339  6 20.8122
+339  7 21.9586
+339  8 23.1933
+339  9 24.6043
+339 10 25.1334
+339 11 25.1334
+339 12 24.9570
+339 13 24.4279
+339 14 24.1633
+339 15 22.9287
+339 16 21.6941
+339 17 20.3713
+339 18 18.9603
+339 19 17.3729
+339 20 15.8737
+339 21 12.5226
+339 22  8.8187
+339 23  6.1731
+339 24  4.5857
+339 25  2.0283
+339 26  0.8819
+339 27  0.3527
+339 28  0.0882
+# pixel 340
+340  1  0.7066
+340  2  2.2964
+340  3  6.0944
+340  4 10.9522
+340  5 17.1349
+340  6 20.8445
+340  7 21.9927
+340  8 23.2292
+340  9 24.6424
+340 10 25.1723
+340 11 25.1723
+340 12 24.9957
+340 13 24.4658
+340 14 24.2008
+340 15 22.9642
+340 16 21.7277
+340 17 20.4029
+340 18 18.9897
+340 19 17.3998
+340 20 15.8983
+340 21 12.5420
+340 22  8.8324
+340 23  6.1827
+340 24  4.5928
+340 25  2.0315
+340 26  0.8832
+340 27  0.3533
+340 28  0.0883
+# pixel 341
+341  1  0.7295
+341  2  2.3710
+341  3  6.2923
+341  4 11.3078
+341  5 17.6913
+341  6 21.5214
+341  7 22.7069
+341  8 23.9836
+341  9 25.4426
+341 10 25.9898
+341 11 25.9898
+341 12 25.8074
+341 13 25.2602
+341 14 24.9867
+341 15 23.7100
+341 16 22.4333
+341 17 21.0654
+341 18 19.6063
+341 19 17.9649
+341 20 16.4146
+341 21 12.9493
+341 22  9.1192
+341 23  6.3835
+341 24  4.7420
+341 25  2.0974
+341 26  0.9119
+341 27  0.3648
+341 28  0.0912
+# pixel 342
+342  1  0.7961
+342  2  2.5873
+342  3  6.8662
+342  4 12.3393
+342  5 19.3050
+342  6 23.4845
+342  7 24.7781
+342  8 26.1713
+342  9 27.7634
+342 10 28.3605
+342 11 28.3605
+342 12 28.1615
+342 13 27.5644
+342 14 27.2659
+342 15 25.8727
+342 16 24.4796
+342 17 22.9869
+342 18 21.3948
+342 19 19.6036
+342 20 17.9119
+342 21 14.1305
+342 22  9.9511
+342 23  6.9657
+342 24  5.1745
+342 25  2.2887
+342 26  0.9951
+342 27  0.3980
+342 28  0.0995
+# pixel 343
+343  1  0.7987
+343  2  2.5958
+343  3  6.8889
+343  4 12.3801
+343  5 19.3689
+343  6 23.5622
+343  7 24.8601
+343  8 26.2578
+343  9 27.8553
+343 10 28.4543
+343 11 28.4543
+343 12 28.2546
+343 13 27.6556
+343 14 27.3561
+343 15 25.9583
+343 16 24.5606
+343 17 23.0630
+343 18 21.4655
+343 19 19.6684
+343 20 17.9712
+343 21 14.1772
+343 22  9.9840
+343 23  6.9888
+343 24  5.1917
+343 25  2.2963
+343 26  0.9984
+343 27  0.3994
+343 28  0.0998
+# pixel 344
+344  1  0.7652
+344  2  2.4868
+344  3  6.5997
+344  4 11.8603
+344  5 18.5556
+344  6 22.5728
+344  7 23.8162
+344  8 25.1553
+344  9 26.6857
+344 10 27.2596
+344 11 27.2596
+344 12 27.0683
+344 13 26.4944
+344 14 26.2074
+344 15 24.8684
+344 16 23.5293
+344 17 22.0946
+344 18 20.5642
+344 19 18.8426
+344 20 17.2166
+344 21 13.5820
+344 22  9.5648
+344 23  6.6953
+344 24  4.9737
+344 25  2.1999
+344 26  0.9565
+344 27  0.3826
+344 28  0.0956
+# pixel 345
+345  1  0.7546
+345  2  2.4526
+345  3  6.5088
+345  4 11.6970
+345  5 18.3001
+345  6 22.2620
+345  7 23.4883
+345  8 24.8089
+345  9 26.3182
+345 10 26.8842
+345 11 26.8842
+345 12 26.6955
+345 13 26.1296
+345 14 25.8466
+345 15 24.5259
+345 16 23.2053
+345 17 21.7904
+345 18 20.2811
+345 19 18.5831
+345 20 16.9795
+345 21 13.3949
+345 22  9.4331
+345 23  6.6031
+345 24  4.9052
+345 25  2.1696
+345 26  0.9433
+345 27  0.3773
+345 28  0.0943
+# pixel 346
+346  1  0.6914
+346  2  2.2471
+346  3  5.9634
+346  4 10.7169
+346  5 16.7668
+346  6 20.3967
+346  7 21.5203
+346  8 22.7302
+346  9 24.1131
+346 10 24.6316
+346 11 24.6316
+346 12 24.4588
+346 13 23.9402
+346 14 23.6809
+346 15 22.4710
+346 16 21.2610
+346 17 19.9646
+346 18 18.5817
+346 19 17.0261
+346 20 15.5568
+346 21 12.2726
+346 22  8.6427
+346 23  6.0499
+346 24  4.4942
+346 25  1.9878
+346 26  0.8643
+346 27  0.3457
+346 28  0.0864
+# pixel 347
+347  1  0.6914
+347  2  2.2470
+347  3  5.9632
+347  4 10.7165
+347  5 16.7661
+347  6 20.3958
+347  7 21.5193
+347  8 22.7293
+347  9 24.1120
+347 10 24.6306
+347 11 24.6306
+347 12 24.4577
+347 13 23.9392
+347 14 23.6799
+347 15 22.4700
+347 16 21.2601
+347 17 19.9637
+347 18 18.5810
+347 19 17.0253
+347 20 15.5561
+347 21 12.2721
+347 22  8.6423
+347 23  6.0496
+347 24  4.4940
+347 25  1.9877
+347 26  0.8642
+347 27  0.3457
+347 28  0.0864
+# pixel 348
+348  1  0.7769
+348  2  2.5251
+348  3  6.7012
+348  4 12.0427
+348  5 18.8410
+348  6 22.9199
+348  7 24.1825
+348  8 25.5421
+348  9 27.0960
+348 10 27.6788
+348 11 27.6788
+348 12 27.4845
+348 13 26.9018
+348 14 26.6104
+348 15 25.2508
+348 16 23.8911
+348 17 22.4344
+348 18 20.8805
+348 19 19.1323
+348 20 17.4813
+348 21 13.7908
+348 22  9.7118
+348 23  6.7983
+348 24  5.0502
+348 25  2.2337
+348 26  0.9712
+348 27  0.3885
+348 28  0.0971
+# pixel 349
+349  1  0.7893
+349  2  2.5652
+349  3  6.8077
+349  4 12.2341
+349  5 19.1405
+349  6 23.2843
+349  7 24.5669
+349  8 25.9482
+349  9 27.5268
+349 10 28.1188
+349 11 28.1188
+349 12 27.9215
+349 13 27.3295
+349 14 27.0335
+349 15 25.6522
+349 16 24.2710
+349 17 22.7910
+349 18 21.2124
+349 19 19.4365
+349 20 17.7592
+349 21 14.0101
+349 22  9.8662
+349 23  6.9064
+349 24  5.1304
+349 25  2.2692
+349 26  0.9866
+349 27  0.3946
+349 28  0.0987
+# pixel 350
+350  1  0.6893
+350  2  2.2401
+350  3  5.9449
+350  4 10.6835
+350  5 16.7146
+350  6 20.3332
+350  7 21.4532
+350  8 22.6594
+350  9 24.0380
+350 10 24.5549
+350 11 24.5549
+350 12 24.3826
+350 13 23.8656
+350 14 23.6072
+350 15 22.4010
+350 16 21.1948
+350 17 19.9024
+350 18 18.5239
+350 19 16.9730
+350 20 15.5084
+350 21 12.2344
+350 22  8.6158
+350 23  6.0310
+350 24  4.4802
+350 25  1.9816
+350 26  0.8616
+350 27  0.3446
+350 28  0.0862
+# pixel 351
+351  1  0.7577
+351  2  2.4626
+351  3  6.5354
+351  4 11.7448
+351  5 18.3749
+351  6 22.3529
+351  7 23.5842
+351  8 24.9103
+351  9 26.4257
+351 10 26.9940
+351 11 26.9940
+351 12 26.8046
+351 13 26.2363
+351 14 25.9521
+351 15 24.6261
+351 16 23.3001
+351 17 21.8793
+351 18 20.3639
+351 19 18.6590
+351 20 17.0488
+351 21 13.4496
+351 22  9.4716
+351 23  6.6301
+351 24  4.9252
+351 25  2.1785
+351 26  0.9472
+351 27  0.3789
+351 28  0.0947
+# pixel 352
+352  1  0.6375
+352  2  2.0717
+352  3  5.4981
+352  4  9.8806
+352  5 15.4584
+352  6 18.8050
+352  7 19.8409
+352  8 20.9564
+352  9 22.2313
+352 10 22.7094
+352 11 22.7094
+352 12 22.5501
+352 13 22.0720
+352 14 21.8329
+352 15 20.7174
+352 16 19.6018
+352 17 18.4066
+352 18 17.1317
+352 19 15.6974
+352 20 14.3428
+352 21 11.3149
+352 22  7.9682
+352 23  5.5778
+352 24  4.1435
+352 25  1.8327
+352 26  0.7968
+352 27  0.3187
+352 28  0.0797
+# pixel 353
+353  1  0.6993
+353  2  2.2729
+353  3  6.0318
+353  4 10.8398
+353  5 16.9591
+353  6 20.6307
+353  7 21.7671
+353  8 22.9910
+353  9 24.3897
+353 10 24.9142
+353 11 24.9142
+353 12 24.7393
+353 13 24.2148
+353 14 23.9526
+353 15 22.7287
+353 16 21.5049
+353 17 20.1936
+353 18 18.7949
+353 19 17.2214
+353 20 15.7353
+353 21 12.4134
+353 22  8.7418
+353 23  6.1193
+353 24  4.5457
+353 25  2.0106
+353 26  0.8742
+353 27  0.3497
+353 28  0.0874
+# pixel 354
+354  1  0.7164
+354  2  2.3282
+354  3  6.1787
+354  4 11.1038
+354  5 17.3721
+354  6 21.1331
+354  7 22.2972
+354  8 23.5508
+354  9 24.9836
+354 10 25.5209
+354 11 25.5209
+354 12 25.3418
+354 13 24.8045
+354 14 24.5359
+354 15 23.2822
+354 16 22.0285
+354 17 20.6853
+354 18 19.2526
+354 19 17.6407
+354 20 16.1185
+354 21 12.7157
+354 22  8.9547
+354 23  6.2683
+354 24  4.6564
+354 25  2.0596
+354 26  0.8955
+354 27  0.3582
+354 28  0.0895
+# pixel 355
+355  1  0.5904
+355  2  1.9188
+355  3  5.0923
+355  4  9.1514
+355  5 14.3176
+355  6 17.4172
+355  7 18.3767
+355  8 19.4099
+355  9 20.5907
+355 10 21.0335
+355 11 21.0335
+355 12 20.8859
+355 13 20.4431
+355 14 20.2217
+355 15 19.1885
+355 16 18.1553
+355 17 17.0482
+355 18 15.8674
+355 19 14.5390
+355 20 13.2843
+355 21 10.4799
+355 22  7.3802
+355 23  5.1661
+355 24  3.8377
+355 25  1.6974
+355 26  0.7380
+355 27  0.2952
+355 28  0.0738
+# pixel 356
+356  1  0.6983
+356  2  2.2695
+356  3  6.0228
+356  4 10.8236
+356  5 16.9337
+356  6 20.5998
+356  7 21.7345
+356  8 22.9566
+356  9 24.3532
+356 10 24.8769
+356 11 24.8769
+356 12 24.7023
+356 13 24.1786
+356 14 23.9167
+356 15 22.6947
+356 16 21.4727
+356 17 20.1634
+356 18 18.7668
+356 19 17.1956
+356 20 15.7117
+356 21 12.3948
+356 22  8.7287
+356 23  6.1101
+356 24  4.5389
+356 25  2.0076
+356 26  0.8729
+356 27  0.3491
+356 28  0.0873
+# pixel 357
+357  1  0.8164
+357  2  2.6531
+357  3  7.0410
+357  4 12.6534
+357  5 19.7965
+357  6 24.0823
+357  7 25.4089
+357  8 26.8375
+357  9 28.4702
+357 10 29.0825
+357 11 29.0825
+357 12 28.8784
+357 13 28.2661
+357 14 27.9600
+357 15 26.5314
+357 16 25.1028
+357 17 23.5721
+357 18 21.9394
+357 19 20.1026
+357 20 18.3679
+357 21 14.4902
+357 22 10.2044
+357 23  7.1431
+357 24  5.3063
+357 25  2.3470
+357 26  1.0204
+357 27  0.4082
+357 28  0.1020
+# pixel 358
+358  1  0.7512
+358  2  2.4413
+358  3  6.4788
+358  4 11.6431
+358  5 18.2158
+358  6 22.1594
+358  7 23.3801
+358  8 24.6946
+358  9 26.1970
+358 10 26.7603
+358 11 26.7603
+358 12 26.5725
+358 13 26.0092
+358 14 25.7275
+358 15 24.4129
+358 16 23.0984
+358 17 21.6900
+358 18 20.1876
+358 19 18.4975
+358 20 16.9013
+358 21 13.3332
+358 22  9.3896
+358 23  6.5727
+358 24  4.8826
+358 25  2.1596
+358 26  0.9390
+358 27  0.3756
+358 28  0.0939
+# pixel 359
+359  1  0.7418
+359  2  2.4110
+359  3  6.3983
+359  4 11.4984
+359  5 17.9895
+359  6 21.8841
+359  7 23.0896
+359  8 24.3878
+359  9 25.8714
+359 10 26.4278
+359 11 26.4278
+359 12 26.2424
+359 13 25.6860
+359 14 25.4078
+359 15 24.1096
+359 16 22.8114
+359 17 21.4204
+359 18 19.9368
+359 19 18.2677
+359 20 16.6913
+359 21 13.1675
+359 22  9.2729
+359 23  6.4910
+359 24  4.8219
+359 25  2.1328
+359 26  0.9273
+359 27  0.3709
+359 28  0.0927
+# pixel 360
+360  1  0.6856
+360  2  2.2282
+360  3  5.9133
+360  4 10.6268
+360  5 16.6258
+360  6 20.2252
+360  7 21.3393
+360  8 22.5391
+360  9 23.9102
+360 10 24.4244
+360 11 24.4244
+360 12 24.2530
+360 13 23.7388
+360 14 23.4817
+360 15 22.2820
+360 16 21.0822
+360 17 19.7967
+360 18 18.4255
+360 19 16.8829
+360 20 15.4260
+360 21 12.1694
+360 22  8.5700
+360 23  5.9990
+360 24  4.4564
+360 25  1.9711
+360 26  0.8570
+360 27  0.3428
+360 28  0.0857
+# pixel 361
+361  1  0.7519
+361  2  2.4436
+361  3  6.4850
+361  4 11.6542
+361  5 18.2332
+361  6 22.1806
+361  7 23.4024
+361  8 24.7182
+361  9 26.2219
+361 10 26.7859
+361 11 26.7859
+361 12 26.5979
+361 13 26.0340
+361 14 25.7520
+361 15 24.4362
+361 16 23.1204
+361 17 21.7106
+361 18 20.2069
+361 19 18.5151
+361 20 16.9174
+361 21 13.3459
+361 22  9.3985
+361 23  6.5790
+361 24  4.8872
+361 25  2.1617
+361 26  0.9399
+361 27  0.3759
+361 28  0.0940
+# pixel 362
+362  1  0.8259
+362  2  2.6841
+362  3  7.1231
+362  4 12.8010
+362  5 20.0273
+362  6 24.3632
+362  7 25.7052
+362  8 27.1505
+362  9 28.8022
+362 10 29.4216
+362 11 29.4216
+362 12 29.2151
+362 13 28.5957
+362 14 28.2860
+362 15 26.8408
+362 16 25.3955
+362 17 23.8470
+362 18 22.1953
+362 19 20.3370
+362 20 18.5821
+362 21 14.6592
+362 22 10.3234
+362 23  7.2264
+362 24  5.3682
+362 25  2.3744
+362 26  1.0323
+362 27  0.4129
+362 28  0.1032
+# pixel 363
+363  1  0.6874
+363  2  2.2342
+363  3  5.9291
+363  4 10.6552
+363  5 16.6703
+363  6 20.2793
+363  7 21.3964
+363  8 22.5994
+363  9 23.9742
+363 10 24.4898
+363 11 24.4898
+363 12 24.3179
+363 13 23.8024
+363 14 23.5446
+363 15 22.3416
+363 16 21.1386
+363 17 19.8496
+363 18 18.4748
+363 19 16.9280
+363 20 15.4672
+363 21 12.2019
+363 22  8.5929
+363 23  6.0150
+363 24  4.4683
+363 25  1.9764
+363 26  0.8593
+363 27  0.3437
+363 28  0.0859
+# pixel 364
+364  1  0.7677
+364  2  2.4952
+364  3  6.6218
+364  4 11.9000
+364  5 18.6177
+364  6 22.6484
+364  7 23.8960
+364  8 25.2395
+364  9 26.7750
+364 10 27.3508
+364 11 27.3508
+364 12 27.1589
+364 13 26.5831
+364 14 26.2952
+364 15 24.9516
+364 16 23.6081
+364 17 22.1686
+364 18 20.6331
+364 19 18.9056
+364 20 17.2742
+364 21 13.6274
+364 22  9.5968
+364 23  6.7177
+364 24  4.9903
+364 25  2.2073
+364 26  0.9597
+364 27  0.3839
+364 28  0.0960
+# pixel 365
+365  1  0.7770
+365  2  2.5252
+365  3  6.7014
+365  4 12.0432
+365  5 18.8417
+365  6 22.9209
+365  7 24.1835
+365  8 25.5432
+365  9 27.0971
+365 10 27.6799
+365 11 27.6799
+365 12 27.4856
+365 13 26.9029
+365 14 26.6115
+365 15 25.2518
+365 16 23.8921
+365 17 22.4353
+365 18 20.8813
+365 19 19.1331
+365 20 17.4820
+365 21 13.7914
+365 22  9.7122
+365 23  6.7986
+365 24  5.0504
+365 25  2.2338
+365 26  0.9712
+365 27  0.3885
+365 28  0.0971
+# pixel 366
+366  1  0.7059
+366  2  2.2943
+366  3  6.0888
+366  4 10.9422
+366  5 17.1193
+366  6 20.8255
+366  7 21.9727
+366  8 23.2081
+366  9 24.6200
+366 10 25.1494
+366 11 25.1494
+366 12 24.9730
+366 13 24.4435
+366 14 24.1788
+366 15 22.9434
+366 16 21.7079
+366 17 20.3843
+366 18 18.9724
+366 19 17.3840
+366 20 15.8839
+366 21 12.5306
+366 22  8.8244
+366 23  6.1771
+366 24  4.5887
+366 25  2.0296
+366 26  0.8824
+366 27  0.3530
+366 28  0.0882
+# pixel 367
+367  1  0.7488
+367  2  2.4335
+367  3  6.4581
+367  4 11.6059
+367  5 18.1577
+367  6 22.0887
+367  7 23.3055
+367  8 24.6158
+367  9 26.1133
+367 10 26.6749
+367 11 26.6749
+367 12 26.4877
+367 13 25.9262
+367 14 25.6454
+367 15 24.3350
+367 16 23.0247
+367 17 21.6207
+367 18 20.1232
+367 19 18.4385
+367 20 16.8473
+367 21 13.2907
+367 22  9.3596
+367 23  6.5517
+367 24  4.8670
+367 25  2.1527
+367 26  0.9360
+367 27  0.3744
+367 28  0.0936
+# pixel 368
+368  1  0.8591
+368  2  2.7922
+368  3  7.4100
+368  4 13.3166
+368  5 20.8340
+368  6 25.3445
+368  7 26.7406
+368  8 28.2441
+368  9 29.9623
+368 10 30.6067
+368 11 30.6067
+368 12 30.3919
+368 13 29.7475
+368 14 29.4254
+368 15 27.9219
+368 16 26.4184
+368 17 24.8075
+368 18 23.0892
+368 19 21.1562
+368 20 19.3305
+368 21 15.2496
+368 22 10.7392
+368 23  7.5174
+368 24  5.5844
+368 25  2.4700
+368 26  1.0739
+368 27  0.4296
+368 28  0.1074
+# pixel 369
+369  1  0.7859
+369  2  2.5540
+369  3  6.7780
+369  4 12.1807
+369  5 19.0569
+369  6 23.1826
+369  7 24.4596
+369  8 25.8349
+369  9 27.4066
+369 10 27.9960
+369 11 27.9960
+369 12 27.7995
+369 13 27.2101
+369 14 26.9154
+369 15 25.5402
+369 16 24.1649
+369 17 22.6915
+369 18 21.1198
+369 19 19.3516
+369 20 17.6817
+369 21 13.9489
+369 22  9.8231
+369 23  6.8762
+369 24  5.1080
+369 25  2.2593
+369 26  0.9823
+369 27  0.3929
+369 28  0.0982
+# pixel 370
+370  1  0.7356
+370  2  2.3906
+370  3  6.3442
+370  4 11.4012
+370  5 17.8373
+370  6 21.6990
+370  7 22.8943
+370  8 24.1816
+370  9 25.6527
+370 10 26.2044
+370 11 26.2044
+370 12 26.0205
+370 13 25.4688
+370 14 25.1930
+370 15 23.9057
+370 16 22.6185
+370 17 21.2393
+370 18 19.7682
+370 19 18.1132
+370 20 16.5501
+370 21 13.0562
+370 22  9.1945
+370 23  6.4362
+370 24  4.7811
+370 25  2.1147
+370 26  0.9195
+370 27  0.3678
+370 28  0.0919
+# pixel 371
+371  1  0.7762
+371  2  2.5227
+371  3  6.6948
+371  4 12.0312
+371  5 18.8231
+371  6 22.8982
+371  7 24.1595
+371  8 25.5179
+371  9 27.0703
+371 10 27.6525
+371 11 27.6525
+371 12 27.4584
+371 13 26.8763
+371 14 26.5852
+371 15 25.2268
+371 16 23.8684
+371 17 22.4131
+371 18 20.8606
+371 19 19.1142
+371 20 17.4647
+371 21 13.7777
+371 22  9.7026
+371 23  6.7918
+371 24  5.0454
+371 25  2.2316
+371 26  0.9703
+371 27  0.3881
+371 28  0.0970
+# pixel 372
+372  1  0.7466
+372  2  2.4264
+372  3  6.4393
+372  4 11.5721
+372  5 18.1047
+372  6 22.0243
+372  7 23.2375
+372  8 24.5440
+372  9 26.0372
+372 10 26.5971
+372 11 26.5971
+372 12 26.4105
+372 13 25.8505
+372 14 25.5706
+372 15 24.2640
+372 16 22.9575
+372 17 21.5577
+372 18 20.0645
+372 19 18.3847
+372 20 16.7982
+372 21 13.2519
+372 22  9.3323
+372 23  6.5326
+372 24  4.8528
+372 25  2.1464
+372 26  0.9332
+372 27  0.3733
+372 28  0.0933
+# pixel 373
+373  1  0.7809
+373  2  2.5379
+373  3  6.7353
+373  4 12.1039
+373  5 18.9368
+373  6 23.0365
+373  7 24.3055
+373  8 25.6720
+373  9 27.2338
+373 10 27.8195
+373 11 27.8195
+373 12 27.6243
+373 13 27.0386
+373 14 26.7458
+373 15 25.3792
+373 16 24.0126
+373 17 22.5484
+373 18 20.9866
+373 19 19.2296
+373 20 17.5702
+373 21 13.8609
+373 22  9.7612
+373 23  6.8329
+373 24  5.0758
+373 25  2.2451
+373 26  0.9761
+373 27  0.3904
+373 28  0.0976
+# pixel 374
+374  1  0.7119
+374  2  2.3137
+374  3  6.1403
+374  4 11.0347
+374  5 17.2640
+374  6 21.0016
+374  7 22.1584
+374  8 23.4043
+374  9 24.8281
+374 10 25.3621
+374 11 25.3621
+374 12 25.1841
+374 13 24.6501
+374 14 24.3832
+374 15 23.1373
+374 16 21.8915
+374 17 20.5566
+374 18 19.1328
+374 19 17.5310
+374 20 16.0181
+374 21 12.6365
+374 22  8.8990
+374 23  6.2293
+374 24  4.6275
+374 25  2.0468
+374 26  0.8899
+374 27  0.3560
+374 28  0.0890
+# pixel 375
+375  1  0.7845
+375  2  2.5498
+375  3  6.7667
+375  4 12.1604
+375  5 19.0252
+375  6 23.1440
+375  7 24.4189
+375  8 25.7918
+375  9 27.3609
+375 10 27.9493
+375 11 27.9493
+375 12 27.7532
+375 13 27.1648
+375 14 26.8706
+375 15 25.4976
+375 16 24.1247
+375 17 22.6537
+375 18 21.0846
+375 19 19.3194
+375 20 17.6522
+375 21 13.9256
+375 22  9.8068
+375 23  6.8647
+375 24  5.0995
+375 25  2.2556
+375 26  0.9807
+375 27  0.3923
+375 28  0.0981
+# pixel 376
+376  1  0.7759
+376  2  2.5218
+376  3  6.6924
+376  4 12.0269
+376  5 18.8164
+376  6 22.8900
+376  7 24.1509
+376  8 25.5088
+376  9 27.0606
+376 10 27.6426
+376 11 27.6426
+376 12 27.4486
+376 13 26.8666
+376 14 26.5757
+376 15 25.2178
+376 16 23.8599
+376 17 22.4050
+376 18 20.8532
+376 19 19.1073
+376 20 17.4585
+376 21 13.7728
+376 22  9.6992
+376 23  6.7894
+376 24  5.0436
+376 25  2.2308
+376 26  0.9699
+376 27  0.3880
+376 28  0.0970
+# pixel 377
+377  1  0.8187
+377  2  2.6608
+377  3  7.0614
+377  4 12.6900
+377  5 19.8537
+377  6 24.1519
+377  7 25.4823
+377  8 26.9151
+377  9 28.5525
+377 10 29.1665
+377 11 29.1665
+377 12 28.9618
+377 13 28.3478
+377 14 28.0408
+377 15 26.6080
+377 16 25.1753
+377 17 23.6402
+377 18 22.0028
+377 19 20.1607
+377 20 18.4210
+377 21 14.5321
+377 22 10.2339
+377 23  7.1637
+377 24  5.3216
+377 25  2.3538
+377 26  1.0234
+377 27  0.4094
+377 28  0.1023
+# pixel 378
+378  1  0.7817
+378  2  2.5405
+378  3  6.7422
+378  4 12.1165
+378  5 18.9564
+378  6 23.0604
+378  7 24.3306
+378  8 25.6986
+378  9 27.2620
+378 10 27.8483
+378 11 27.8483
+378 12 27.6529
+378 13 27.0666
+378 14 26.7735
+378 15 25.4055
+378 16 24.0375
+378 17 22.5718
+378 18 21.0084
+378 19 19.2495
+378 20 17.5884
+378 21 13.8753
+378 22  9.7713
+378 23  6.8399
+378 24  5.0811
+378 25  2.2474
+378 26  0.9771
+378 27  0.3909
+378 28  0.0977
+# pixel 379
+379  1  0.8309
+379  2  2.7005
+379  3  7.1667
+379  4 12.8793
+379  5 20.1499
+379  6 24.5122
+379  7 25.8625
+379  8 27.3166
+379  9 28.9785
+379 10 29.6016
+379 11 29.6016
+379 12 29.3939
+379 13 28.7707
+379 14 28.4591
+379 15 27.0050
+379 16 25.5509
+379 17 23.9929
+379 18 22.3311
+379 19 20.4615
+379 20 18.6958
+379 21 14.7489
+379 22 10.3865
+379 23  7.2706
+379 24  5.4010
+379 25  2.3889
+379 26  1.0387
+379 27  0.4155
+379 28  0.1039
+# pixel 380
+380  1  0.7905
+380  2  2.5692
+380  3  6.8183
+380  4 12.2531
+380  5 19.1702
+380  6 23.3204
+380  7 24.6050
+380  8 25.9884
+380  9 27.5695
+380 10 28.1624
+380 11 28.1624
+380 12 27.9647
+380 13 27.3718
+380 14 27.0754
+380 15 25.6920
+380 16 24.3086
+380 17 22.8263
+380 18 21.2453
+380 19 19.4666
+380 20 17.7868
+380 21 14.0318
+380 22  9.8815
+380 23  6.9171
+380 24  5.1384
+380 25  2.2728
+380 26  0.9882
+380 27  0.3953
+380 28  0.0988
+# pixel 381
+381  1  0.5927
+381  2  1.9262
+381  3  5.1117
+381  4  9.1863
+381  5 14.3721
+381  6 17.4836
+381  7 18.4466
+381  8 19.4838
+381  9 20.6691
+381 10 21.1136
+381 11 21.1136
+381 12 20.9655
+381 13 20.5210
+381 14 20.2987
+381 15 19.2616
+381 16 18.2244
+381 17 17.1131
+381 18 15.9278
+381 19 14.5943
+381 20 13.3349
+381 21 10.5198
+381 22  7.4083
+381 23  5.1858
+381 24  3.8523
+381 25  1.7039
+381 26  0.7408
+381 27  0.2963
+381 28  0.0741
+# pixel 382
+382  1  0.6504
+382  2  2.1137
+382  3  5.6093
+382  4 10.0805
+382  5 15.7711
+382  6 19.1855
+382  7 20.2423
+382  8 21.3804
+382  9 22.6811
+382 10 23.1689
+382 11 23.1689
+382 12 23.0063
+382 13 22.5185
+382 14 22.2746
+382 15 21.1365
+382 16 19.9984
+382 17 18.7790
+382 18 17.4783
+382 19 16.0150
+382 20 14.6330
+382 21 11.5438
+382 22  8.1294
+382 23  5.6906
+382 24  4.2273
+382 25  1.8698
+382 26  0.8129
+382 27  0.3252
+382 28  0.0813
+# pixel 383
+383  1  0.7500
+383  2  2.4375
+383  3  6.4687
+383  4 11.6248
+383  5 18.1872
+383  6 22.1247
+383  7 23.3434
+383  8 24.6559
+383  9 26.1559
+383 10 26.7184
+383 11 26.7184
+383 12 26.5309
+383 13 25.9684
+383 14 25.6871
+383 15 24.3746
+383 16 23.0622
+383 17 21.6559
+383 18 20.1560
+383 19 18.4685
+383 20 16.8748
+383 21 13.3123
+383 22  9.3749
+383 23  6.5624
+383 24  4.8749
+383 25  2.1562
+383 26  0.9375
+383 27  0.3750
+383 28  0.0937
+# pixel 384
+384  1  0.6936
+384  2  2.2542
+384  3  5.9824
+384  4 10.7510
+384  5 16.8200
+384  6 20.4615
+384  7 21.5886
+384  8 22.8024
+384  9 24.1897
+384 10 24.7099
+384 11 24.7099
+384 12 24.5365
+384 13 24.0163
+384 14 23.7561
+384 15 22.5423
+384 16 21.3285
+384 17 20.0280
+384 18 18.6408
+384 19 17.0802
+384 20 15.6062
+384 21 12.3116
+384 22  8.6701
+384 23  6.0691
+384 24  4.5085
+384 25  1.9941
+384 26  0.8670
+384 27  0.3468
+384 28  0.0867
+# pixel 385
+385  1  0.6560
+385  2  2.1319
+385  3  5.6578
+385  4 10.1676
+385  5 15.9073
+385  6 19.3512
+385  7 20.4171
+385  8 21.5651
+385  9 22.8770
+385 10 23.3690
+385 11 23.3690
+385 12 23.2050
+385 13 22.7130
+385 14 22.4670
+385 15 21.3191
+385 16 20.1711
+385 17 18.9412
+385 18 17.6292
+385 19 16.1533
+385 20 14.7594
+385 21 11.6435
+385 22  8.1996
+385 23  5.7397
+385 24  4.2638
+385 25  1.8859
+385 26  0.8200
+385 27  0.3280
+385 28  0.0820
+# pixel 386
+386  1  0.7513
+386  2  2.4418
+386  3  6.4801
+386  4 11.6454
+386  5 18.2195
+386  6 22.1639
+386  7 23.3848
+386  8 24.6996
+386  9 26.2022
+386 10 26.7657
+386 11 26.7657
+386 12 26.5779
+386 13 26.0144
+386 14 25.7327
+386 15 24.4178
+386 16 23.1030
+386 17 21.6943
+386 18 20.1917
+386 19 18.5012
+386 20 16.9047
+386 21 13.3359
+386 22  9.3915
+386 23  6.5740
+386 24  4.8836
+386 25  2.1600
+386 26  0.9391
+386 27  0.3757
+386 28  0.0939
+# pixel 387
+387  1  0.8174
+387  2  2.6564
+387  3  7.0498
+387  4 12.6691
+387  5 19.8211
+387  6 24.1122
+387  7 25.4404
+387  8 26.8708
+387  9 28.5056
+387 10 29.1186
+387 11 29.1186
+387 12 28.9142
+387 13 28.3012
+387 14 27.9947
+387 15 26.5643
+387 16 25.1339
+387 17 23.6014
+387 18 21.9667
+387 19 20.1276
+387 20 18.3907
+387 21 14.5082
+387 22 10.2170
+387 23  7.1519
+387 24  5.3129
+387 25  2.3499
+387 26  1.0217
+387 27  0.4087
+387 28  0.1022
+# pixel 388
+388  1  0.7019
+388  2  2.2813
+388  3  6.0541
+388  4 10.8798
+388  5 17.0217
+388  6 20.7068
+388  7 21.8474
+388  8 23.0758
+388  9 24.4796
+388 10 25.0061
+388 11 25.0061
+388 12 24.8306
+388 13 24.3041
+388 14 24.0409
+388 15 22.8125
+388 16 21.5842
+388 17 20.2681
+388 18 18.8642
+388 19 17.2849
+388 20 15.7933
+388 21 12.4592
+388 22  8.7741
+388 23  6.1418
+388 24  4.5625
+388 25  2.0180
+388 26  0.8774
+388 27  0.3510
+388 28  0.0877
+# pixel 389
+389  1  0.6690
+389  2  2.1742
+389  3  5.7701
+389  4 10.3694
+389  5 16.2231
+389  6 19.7354
+389  7 20.8225
+389  8 21.9932
+389  9 23.3312
+389 10 23.8330
+389 11 23.8330
+389 12 23.6657
+389 13 23.1640
+389 14 22.9131
+389 15 21.7424
+389 16 20.5716
+389 17 19.3172
+389 18 17.9793
+389 19 16.4740
+389 20 15.0524
+389 21 11.8747
+389 22  8.3624
+389 23  5.8537
+389 24  4.3485
+389 25  1.9234
+389 26  0.8362
+389 27  0.3345
+389 28  0.0836
+# pixel 390
+390  1  0.7634
+390  2  2.4812
+390  3  6.5846
+390  4 11.8332
+390  5 18.5133
+390  6 22.5213
+390  7 23.7619
+390  8 25.0979
+390  9 26.6248
+390 10 27.1973
+390 11 27.1973
+390 12 27.0065
+390 13 26.4339
+390 14 26.1476
+390 15 24.8116
+390 16 23.4756
+390 17 22.0442
+390 18 20.5173
+390 19 18.7996
+390 20 17.1773
+390 21 13.5510
+390 22  9.5429
+390 23  6.6800
+390 24  4.9623
+390 25  2.1949
+390 26  0.9543
+390 27  0.3817
+390 28  0.0954
+# pixel 391
+391  1  0.6594
+391  2  2.1431
+391  3  5.6875
+391  4 10.2210
+391  5 15.9909
+391  6 19.4529
+391  7 20.5244
+391  8 21.6784
+391  9 22.9973
+391 10 23.4918
+391 11 23.4918
+391 12 23.3270
+391 13 22.8324
+391 14 22.5851
+391 15 21.4311
+391 16 20.2772
+391 17 19.0407
+391 18 17.7219
+391 19 16.2382
+391 20 14.8369
+391 21 11.7047
+391 22  8.2427
+391 23  5.7699
+391 24  4.2862
+391 25  1.8958
+391 26  0.8243
+391 27  0.3297
+391 28  0.0824
+# pixel 392
+392  1  0.6688
+392  2  2.1735
+392  3  5.7683
+392  4 10.3661
+392  5 16.2180
+392  6 19.7291
+392  7 20.8159
+392  8 21.9863
+392  9 23.3238
+392 10 23.8254
+392 11 23.8254
+392 12 23.6582
+392 13 23.1566
+392 14 22.9058
+392 15 21.7355
+392 16 20.5651
+392 17 19.3111
+392 18 17.9736
+392 19 16.4688
+392 20 15.0476
+392 21 11.8709
+392 22  8.3598
+392 23  5.8519
+392 24  4.3471
+392 25  1.9228
+392 26  0.8360
+392 27  0.3344
+392 28  0.0836
+# pixel 393
+393  1  0.6374
+393  2  2.0716
+393  3  5.4977
+393  4  9.8800
+393  5 15.4574
+393  6 18.8038
+393  7 19.8396
+393  8 20.9551
+393  9 22.2300
+393 10 22.7080
+393 11 22.7080
+393 12 22.5487
+393 13 22.0706
+393 14 21.8316
+393 15 20.7161
+393 16 19.6006
+393 17 18.4055
+393 18 17.1306
+393 19 15.6964
+393 20 14.3419
+393 21 11.3142
+393 22  7.9677
+393 23  5.5774
+393 24  4.1432
+393 25  1.8326
+393 26  0.7968
+393 27  0.3187
+393 28  0.0797
+# pixel 394
+394  1  0.7970
+394  2  2.5902
+394  3  6.8740
+394  4 12.3533
+394  5 19.3269
+394  6 23.5111
+394  7 24.8062
+394  8 26.2009
+394  9 27.7949
+394 10 28.3926
+394 11 28.3926
+394 12 28.1934
+394 13 27.5957
+394 14 27.2968
+394 15 25.9021
+394 16 24.5073
+394 17 23.0130
+394 18 21.4190
+394 19 19.6258
+394 20 17.9322
+394 21 14.1465
+394 22  9.9623
+394 23  6.9736
+394 24  5.1804
+394 25  2.2913
+394 26  0.9962
+394 27  0.3985
+394 28  0.0996
+# pixel 395
+395  1  0.6902
+395  2  2.2430
+395  3  5.9526
+395  4 10.6974
+395  5 16.7362
+395  6 20.3595
+395  7 21.4810
+395  8 22.6888
+395  9 24.0691
+395 10 24.5867
+395 11 24.5867
+395 12 24.4142
+395 13 23.8966
+395 14 23.6378
+395 15 22.4300
+395 16 21.2222
+395 17 19.9282
+395 18 18.5479
+395 19 16.9950
+395 20 15.5285
+395 21 12.2502
+395 22  8.6269
+395 23  6.0388
+395 24  4.4860
+395 25  1.9842
+395 26  0.8627
+395 27  0.3451
+395 28  0.0863
+# pixel 396
+396  1  0.6889
+396  2  2.2389
+396  3  5.9417
+396  4 10.6778
+396  5 16.7056
+396  6 20.3222
+396  7 21.4417
+396  8 22.6472
+396  9 24.0250
+396 10 24.5417
+396 11 24.5417
+396 12 24.3695
+396 13 23.8528
+396 14 23.5945
+396 15 22.3889
+396 16 21.1834
+396 17 19.8917
+396 18 18.5139
+396 19 16.9639
+396 20 15.5000
+396 21 12.2278
+396 22  8.6111
+396 23  6.0278
+396 24  4.4778
+396 25  1.9806
+396 26  0.8611
+396 27  0.3444
+396 28  0.0861
+# pixel 397
+397  1  0.7521
+397  2  2.4443
+397  3  6.4868
+397  4 11.6574
+397  5 18.2382
+397  6 22.1867
+397  7 23.4088
+397  8 24.7250
+397  9 26.2292
+397 10 26.7933
+397 11 26.7933
+397 12 26.6052
+397 13 26.0412
+397 14 25.7591
+397 15 24.4430
+397 16 23.1268
+397 17 21.7166
+397 18 20.2125
+397 19 18.5203
+397 20 16.9221
+397 21 13.3496
+397 22  9.4011
+397 23  6.5808
+397 24  4.8886
+397 25  2.1623
+397 26  0.9401
+397 27  0.3760
+397 28  0.0940
+# pixel 398
+398  1  0.7577
+398  2  2.4625
+398  3  6.5350
+398  4 11.7441
+398  5 18.3738
+398  6 22.3516
+398  7 23.5828
+398  8 24.9088
+398  9 26.4241
+398 10 26.9924
+398 11 26.9924
+398 12 26.8030
+398 13 26.2347
+398 14 25.9506
+398 15 24.6246
+398 16 23.2987
+398 17 21.8780
+398 18 20.3627
+398 19 18.6579
+398 20 17.0478
+398 21 13.4488
+398 22  9.4710
+398 23  6.6297
+398 24  4.9249
+398 25  2.1783
+398 26  0.9471
+398 27  0.3788
+398 28  0.0947
+# pixel 399
+399  1  0.6545
+399  2  2.1272
+399  3  5.6451
+399  4 10.1449
+399  5 15.8718
+399  6 19.3080
+399  7 20.3716
+399  8 21.5170
+399  9 22.8260
+399 10 23.3169
+399 11 23.3169
+399 12 23.1532
+399 13 22.6624
+399 14 22.4169
+399 15 21.2715
+399 16 20.1261
+399 17 18.8989
+399 18 17.5899
+399 19 16.1173
+399 20 14.7264
+399 21 11.6175
+399 22  8.1814
+399 23  5.7270
+399 24  4.2543
+399 25  1.8817
+399 26  0.8181
+399 27  0.3273
+399 28  0.0818
+# pixel 400
+400  1  0.6868
+400  2  2.2320
+400  3  5.9234
+400  4 10.6449
+400  5 16.6541
+400  6 20.2596
+400  7 21.3756
+400  8 22.5775
+400  9 23.9510
+400 10 24.4661
+400 11 24.4661
+400 12 24.2944
+400 13 23.7793
+400 14 23.5218
+400 15 22.3199
+400 16 21.1181
+400 17 19.8304
+400 18 18.4569
+400 19 16.9116
+400 20 15.4522
+400 21 12.1901
+400 22  8.5846
+400 23  6.0092
+400 24  4.4640
+400 25  1.9745
+400 26  0.8585
+400 27  0.3434
+400 28  0.0858
+# pixel 401
+401  1  0.7070
+401  2  2.2977
+401  3  6.0979
+401  4 10.9585
+401  5 17.1447
+401  6 20.8564
+401  7 22.0053
+401  8 23.2426
+401  9 24.6565
+401 10 25.1868
+401 11 25.1868
+401 12 25.0100
+401 13 24.4798
+401 14 24.2147
+401 15 22.9774
+401 16 21.7402
+401 17 20.4146
+401 18 19.0006
+401 19 17.4098
+401 20 15.9075
+401 21 12.5492
+401 22  8.8375
+401 23  6.1862
+401 24  4.5955
+401 25  2.0326
+401 26  0.8837
+401 27  0.3535
+401 28  0.0884
+# pixel 402
+402  1  0.6789
+402  2  2.2065
+402  3  5.8556
+402  4 10.5231
+402  5 16.4636
+402  6 20.0278
+402  7 21.1311
+402  8 22.3192
+402  9 23.6770
+402 10 24.1862
+402 11 24.1862
+402 12 24.0164
+402 13 23.5073
+402 14 23.2527
+402 15 22.0646
+402 16 20.8765
+402 17 19.6035
+402 18 18.2457
+402 19 16.7182
+402 20 15.2755
+402 21 12.0507
+402 22  8.4864
+402 23  5.9405
+402 24  4.4129
+402 25  1.9519
+402 26  0.8486
+402 27  0.3395
+402 28  0.0849
+# pixel 403
+403  1  0.6559
+403  2  2.1315
+403  3  5.6568
+403  4 10.1658
+403  5 15.9045
+403  6 19.3478
+403  7 20.4135
+403  8 21.5613
+403  9 22.8730
+403 10 23.3649
+403 11 23.3649
+403 12 23.2009
+403 13 22.7090
+403 14 22.4631
+403 15 21.3154
+403 16 20.1676
+403 17 18.9379
+403 18 17.6262
+403 19 16.1505
+403 20 14.7568
+403 21 11.6415
+403 22  8.1982
+403 23  5.7387
+403 24  4.2631
+403 25  1.8856
+403 26  0.8198
+403 27  0.3279
+403 28  0.0820
+# pixel 404
+404  1  0.7763
+404  2  2.5230
+404  3  6.6958
+404  4 12.0330
+404  5 18.8258
+404  6 22.9014
+404  7 24.1630
+404  8 25.5215
+404  9 27.0742
+404 10 27.6564
+404 11 27.6564
+404 12 27.4623
+404 13 26.8801
+404 14 26.5890
+404 15 25.2304
+404 16 23.8718
+404 17 22.4162
+404 18 20.8636
+404 19 19.1169
+404 20 17.4672
+404 21 13.7797
+404 22  9.7040
+404 23  6.7928
+404 24  5.0461
+404 25  2.2319
+404 26  0.9704
+404 27  0.3882
+404 28  0.0970
+# pixel 405
+405  1  0.7755
+405  2  2.5202
+405  3  6.6883
+405  4 12.0195
+405  5 18.8047
+405  6 22.8758
+405  7 24.1359
+405  8 25.4929
+405  9 27.0439
+405 10 27.6254
+405 11 27.6254
+405 12 27.4316
+405 13 26.8500
+405 14 26.5592
+405 15 25.2022
+405 16 23.8451
+405 17 22.3911
+405 18 20.8402
+405 19 19.0955
+405 20 17.4476
+405 21 13.7643
+405 22  9.6931
+405 23  6.7852
+405 24  5.0404
+405 25  2.2294
+405 26  0.9693
+405 27  0.3877
+405 28  0.0969
+# pixel 406
+406  1  0.6843
+406  2  2.2241
+406  3  5.9024
+406  4 10.6072
+406  5 16.5952
+406  6 20.1879
+406  7 21.3000
+406  8 22.4976
+406  9 23.8662
+406 10 24.3795
+406 11 24.3795
+406 12 24.2084
+406 13 23.6952
+406 14 23.4385
+406 15 22.2409
+406 16 21.0434
+406 17 19.7602
+406 18 18.3915
+406 19 16.8518
+406 20 15.3976
+406 21 12.1470
+406 22  8.5542
+406 23  5.9879
+406 24  4.4482
+406 25  1.9675
+406 26  0.8554
+406 27  0.3422
+406 28  0.0855
+# pixel 407
+407  1  0.7684
+407  2  2.4975
+407  3  6.6279
+407  4 11.9110
+407  5 18.6349
+407  6 22.6693
+407  7 23.9180
+407  8 25.2628
+407  9 26.7997
+407 10 27.3760
+407 11 27.3760
+407 12 27.1839
+407 13 26.6076
+407 14 26.3194
+407 15 24.9746
+407 16 23.6298
+407 17 22.1890
+407 18 20.6521
+407 19 18.9231
+407 20 17.2901
+407 21 13.6400
+407 22  9.6056
+407 23  6.7239
+407 24  4.9949
+407 25  2.2093
+407 26  0.9606
+407 27  0.3842
+407 28  0.0961
+# pixel 408
+408  1  0.6624
+408  2  2.1528
+408  3  5.7132
+408  4 10.2673
+408  5 16.0633
+408  6 19.5409
+408  7 20.6174
+408  8 21.7766
+408  9 23.1014
+408 10 23.5982
+408 11 23.5982
+408 12 23.4326
+408 13 22.9358
+408 14 22.6874
+408 15 21.5282
+408 16 20.3690
+408 17 19.1269
+408 18 17.8021
+408 19 16.3117
+408 20 14.9041
+408 21 11.7577
+408 22  8.2801
+408 23  5.7960
+408 24  4.3056
+408 25  1.9044
+408 26  0.8280
+408 27  0.3312
+408 28  0.0828
+# pixel 409
+409  1  0.6870
+409  2  2.2327
+409  3  5.9252
+409  4 10.6482
+409  5 16.6593
+409  6 20.2659
+409  7 21.3823
+409  8 22.5845
+409  9 23.9585
+409 10 24.4737
+409 11 24.4737
+409 12 24.3020
+409 13 23.7867
+409 14 23.5291
+409 15 22.3269
+409 16 21.1247
+409 17 19.8366
+409 18 18.4626
+409 19 16.9169
+409 20 15.4571
+409 21 12.1939
+409 22  8.5873
+409 23  6.0111
+409 24  4.4654
+409 25  1.9751
+409 26  0.8587
+409 27  0.3435
+409 28  0.0859
+# pixel 410
+410  1  0.7552
+410  2  2.4543
+410  3  6.5134
+410  4 11.7052
+410  5 18.3130
+410  6 22.2776
+410  7 23.5048
+410  8 24.8264
+410  9 26.3367
+410 10 26.9031
+410 11 26.9031
+410 12 26.7143
+410 13 26.1479
+410 14 25.8647
+410 15 24.5432
+410 16 23.2216
+410 17 21.8057
+410 18 20.2953
+410 19 18.5962
+410 20 16.9914
+410 21 13.4043
+410 22  9.4397
+410 23  6.6078
+410 24  4.9086
+410 25  2.1711
+410 26  0.9440
+410 27  0.3776
+410 28  0.0944
+# pixel 411
+411  1  0.7821
+411  2  2.5418
+411  3  6.7454
+411  4 12.1222
+411  5 18.9654
+411  6 23.0713
+411  7 24.3422
+411  8 25.7108
+411  9 27.2750
+411 10 27.8615
+411 11 27.8615
+411 12 27.6660
+411 13 27.0795
+411 14 26.7862
+411 15 25.4175
+411 16 24.0489
+411 17 22.5825
+411 18 21.0183
+411 19 19.2587
+411 20 17.5968
+411 21 13.8819
+411 22  9.7760
+411 23  6.8432
+411 24  5.0835
+411 25  2.2485
+411 26  0.9776
+411 27  0.3910
+411 28  0.0978
+# pixel 412
+412  1  0.8113
+412  2  2.6368
+412  3  6.9975
+412  4 12.5753
+412  5 19.6742
+412  6 23.9336
+412  7 25.2520
+412  8 26.6718
+412  9 28.2944
+412 10 28.9029
+412 11 28.9029
+412 12 28.7000
+412 13 28.0915
+412 14 27.7873
+412 15 26.3675
+412 16 24.9477
+412 17 23.4265
+412 18 21.8039
+412 19 19.9785
+412 20 18.2544
+412 21 14.4007
+412 22 10.1414
+412 23  7.0989
+412 24  5.2735
+412 25  2.3325
+412 26  1.0141
+412 27  0.4057
+412 28  0.1014
+# pixel 413
+413  1  0.6977
+413  2  2.2674
+413  3  6.0174
+413  4 10.8139
+413  5 16.9185
+413  6 20.5813
+413  7 21.7150
+413  8 22.9359
+413  9 24.3312
+413 10 24.8545
+413 11 24.8545
+413 12 24.6801
+413 13 24.1568
+413 14 23.8952
+413 15 22.6743
+413 16 21.4533
+413 17 20.1452
+413 18 18.7499
+413 19 17.1801
+413 20 15.6976
+413 21 12.3836
+413 22  8.7209
+413 23  6.1046
+413 24  4.5349
+413 25  2.0058
+413 26  0.8721
+413 27  0.3488
+413 28  0.0872
+# pixel 414
+414  1  0.6935
+414  2  2.2540
+414  3  5.9818
+414  4 10.7499
+414  5 16.8183
+414  6 20.4594
+414  7 21.5864
+414  8 22.8001
+414  9 24.1872
+414 10 24.7073
+414 11 24.7073
+414 12 24.5340
+414 13 24.0138
+414 14 23.7537
+414 15 22.5400
+414 16 21.3263
+414 17 20.0260
+414 18 18.6389
+414 19 17.0784
+414 20 15.6046
+414 21 12.3103
+414 22  8.6692
+414 23  6.0685
+414 24  4.5080
+414 25  1.9939
+414 26  0.8669
+414 27  0.3468
+414 28  0.0867
+# pixel 415
+415  1  0.8426
+415  2  2.7386
+415  3  7.2678
+415  4 13.0609
+415  5 20.4340
+415  6 24.8579
+415  7 26.2272
+415  8 27.7018
+415  9 29.3871
+415 10 30.0191
+415 11 30.0191
+415 12 29.8084
+415 13 29.1764
+415 14 28.8604
+415 15 27.3858
+415 16 25.9112
+415 17 24.3312
+415 18 22.6460
+415 19 20.7500
+415 20 18.9594
+415 21 14.9569
+415 22 10.5330
+415 23  7.3731
+415 24  5.4772
+415 25  2.4226
+415 26  1.0533
+415 27  0.4213
+415 28  0.1053
+# pixel 416
+416  1  0.7097
+416  2  2.3067
+416  3  6.1216
+416  4 11.0011
+416  5 17.2114
+416  6 20.9376
+416  7 22.0910
+416  8 23.3330
+416  9 24.7525
+416 10 25.2848
+416 11 25.2848
+416 12 25.1074
+416 13 24.5751
+416 14 24.3089
+416 15 23.0669
+416 16 21.8248
+416 17 20.4940
+416 18 19.0745
+416 19 17.4776
+416 20 15.9694
+416 21 12.5981
+416 22  8.8719
+416 23  6.2103
+416 24  4.6134
+416 25  2.0405
+416 26  0.8872
+416 27  0.3549
+416 28  0.0887
+# pixel 417
+417  1  0.7487
+417  2  2.4331
+417  3  6.4571
+417  4 11.6041
+417  5 18.1548
+417  6 22.0852
+417  7 23.3018
+417  8 24.6119
+417  9 26.1092
+417 10 26.6707
+417 11 26.6707
+417 12 26.4836
+417 13 25.9221
+417 14 25.6413
+417 15 24.3312
+417 16 23.0211
+417 17 21.6173
+417 18 20.1200
+417 19 18.4356
+417 20 16.8447
+417 21 13.2886
+417 22  9.3582
+417 23  6.5507
+417 24  4.8662
+417 25  2.1524
+417 26  0.9358
+417 27  0.3743
+417 28  0.0936
+# pixel 418
+418  1  0.7055
+418  2  2.2930
+418  3  6.0853
+418  4 10.9358
+418  5 17.1093
+418  6 20.8133
+418  7 21.9598
+418  8 23.1945
+418  9 24.6056
+418 10 25.1348
+418 11 25.1348
+418 12 24.9584
+418 13 24.4292
+418 14 24.1646
+418 15 22.9299
+418 16 21.6953
+418 17 20.3724
+418 18 18.9613
+418 19 17.3738
+418 20 15.8746
+418 21 12.5233
+418 22  8.8192
+418 23  6.1734
+418 24  4.5860
+418 25  2.0284
+418 26  0.8819
+418 27  0.3528
+418 28  0.0882
+# pixel 419
+419  1  0.7219
+419  2  2.3461
+419  3  6.2263
+419  4 11.1892
+419  5 17.5057
+419  6 21.2957
+419  7 22.4687
+419  8 23.7320
+419  9 25.1758
+419 10 25.7172
+419 11 25.7172
+419 12 25.5367
+419 13 24.9953
+419 14 24.7246
+419 15 23.4613
+419 16 22.1980
+419 17 20.8445
+419 18 19.4007
+419 19 17.7765
+419 20 16.2424
+419 21 12.8135
+419 22  9.0236
+419 23  6.3165
+419 24  4.6923
+419 25  2.0754
+419 26  0.9024
+419 27  0.3609
+419 28  0.0902
+# pixel 420
+420  1  0.7134
+420  2  2.3186
+420  3  6.1532
+420  4 11.0580
+420  5 17.3004
+420  6 21.0458
+420  7 22.2051
+420  8 23.4536
+420  9 24.8804
+420 10 25.4155
+420 11 25.4155
+420 12 25.2371
+420 13 24.7020
+420 14 24.4345
+420 15 23.1860
+420 16 21.9376
+420 17 20.5999
+420 18 19.1731
+420 19 17.5679
+420 20 16.0519
+420 21 12.6631
+420 22  8.9177
+420 23  6.2424
+420 24  4.6372
+420 25  2.0511
+420 26  0.8918
+420 27  0.3567
+420 28  0.0892
+# pixel 421
+421  1  0.7084
+421  2  2.3024
+421  3  6.1101
+421  4 10.9805
+421  5 17.1791
+421  6 20.8983
+421  7 22.0495
+421  8 23.2892
+421  9 24.7061
+421 10 25.2374
+421 11 25.2374
+421 12 25.0603
+421 13 24.5289
+421 14 24.2633
+421 15 23.0236
+421 16 21.7838
+421 17 20.4555
+421 18 19.0387
+421 19 17.4448
+421 20 15.9394
+421 21 12.5744
+421 22  8.8552
+421 23  6.1987
+421 24  4.6047
+421 25  2.0367
+421 26  0.8855
+421 27  0.3542
+421 28  0.0886
+# pixel 422
+422  1  0.6626
+422  2  2.1535
+422  3  5.7151
+422  4 10.2707
+422  5 16.0686
+422  6 19.5474
+422  7 20.6242
+422  8 21.7837
+422  9 23.1090
+422 10 23.6060
+422 11 23.6060
+422 12 23.4403
+422 13 22.9433
+422 14 22.6949
+422 15 21.5353
+422 16 20.3757
+422 17 19.1333
+422 18 17.8080
+422 19 16.3171
+422 20 14.9090
+422 21 11.7616
+422 22  8.2828
+422 23  5.7980
+422 24  4.3071
+422 25  1.9050
+422 26  0.8283
+422 27  0.3313
+422 28  0.0828
+# pixel 423
+423  1  0.6725
+423  2  2.1855
+423  3  5.8000
+423  4 10.4232
+423  5 16.3073
+423  6 19.8378
+423  7 20.9306
+423  8 22.1074
+423  9 23.4523
+423 10 23.9567
+423 11 23.9567
+423 12 23.7885
+423 13 23.2842
+423 14 23.0320
+423 15 21.8552
+423 16 20.6784
+423 17 19.4175
+423 18 18.0726
+423 19 16.5595
+423 20 15.1305
+423 21 11.9363
+423 22  8.4058
+423 23  5.8841
+423 24  4.3710
+423 25  1.9333
+423 26  0.8406
+423 27  0.3362
+423 28  0.0841
+# pixel 424
+424  1  0.6907
+424  2  2.2447
+424  3  5.9571
+424  4 10.7054
+424  5 16.7488
+424  6 20.3749
+424  7 21.4972
+424  8 22.7059
+424  9 24.0872
+424 10 24.6052
+424 11 24.6052
+424 12 24.4326
+424 13 23.9146
+424 14 23.6556
+424 15 22.4469
+424 16 21.2382
+424 17 19.9432
+424 18 18.5619
+424 19 17.0078
+424 20 15.5402
+424 21 12.2595
+424 22  8.6334
+424 23  6.0434
+424 24  4.4894
+424 25  1.9857
+424 26  0.8633
+424 27  0.3453
+424 28  0.0863
+# pixel 425
+425  1  0.6705
+425  2  2.1792
+425  3  5.7833
+425  4 10.3931
+425  5 16.2602
+425  6 19.7804
+425  7 20.8700
+425  8 22.0434
+425  9 23.3845
+425 10 23.8873
+425 11 23.8873
+425 12 23.7197
+425 13 23.2168
+425 14 22.9654
+425 15 21.7920
+425 16 20.6186
+425 17 19.3613
+425 18 18.0203
+425 19 16.5116
+425 20 15.0867
+425 21 11.9018
+425 22  8.3815
+425 23  5.8671
+425 24  4.3584
+425 25  1.9278
+425 26  0.8382
+425 27  0.3353
+425 28  0.0838
+# pixel 426
+426  1  0.7782
+426  2  2.5291
+426  3  6.7119
+426  4 12.0619
+426  5 18.8711
+426  6 22.9566
+426  7 24.2211
+426  8 25.5830
+426  9 27.1393
+426 10 27.7230
+426 11 27.7230
+426 12 27.5284
+426 13 26.9448
+426 14 26.6530
+426 15 25.2911
+426 16 23.9293
+426 17 22.4702
+426 18 20.9138
+426 19 19.1629
+426 20 17.5093
+426 21 13.8129
+426 22  9.7274
+426 23  6.8092
+426 24  5.0582
+426 25  2.2373
+426 26  0.9727
+426 27  0.3891
+426 28  0.0973
+# pixel 427
+427  1  0.5554
+427  2  1.8052
+427  3  4.7906
+427  4  8.6092
+427  5 13.4692
+427  6 16.3852
+427  7 17.2878
+427  8 18.2598
+427  9 19.3707
+427 10 19.7873
+427 11 19.7873
+427 12 19.6484
+427 13 19.2318
+427 14 19.0235
+427 15 18.0515
+427 16 17.0795
+427 17 16.0381
+427 18 14.9272
+427 19 13.6775
+427 20 12.4972
+427 21  9.8589
+427 22  6.9429
+427 23  4.8600
+427 24  3.6103
+427 25  1.5969
+427 26  0.6943
+427 27  0.2777
+427 28  0.0694
+# pixel 428
+428  1  0.8263
+428  2  2.6856
+428  3  7.1271
+428  4 12.8080
+428  5 20.0384
+428  6 24.3766
+428  7 25.7194
+428  8 27.1654
+428  9 28.8181
+428 10 29.4378
+428 11 29.4378
+428 12 29.2312
+428 13 28.6115
+428 14 28.3016
+428 15 26.8556
+428 16 25.4095
+428 17 23.8601
+428 18 22.2075
+428 19 20.3482
+428 20 18.5923
+428 21 14.6673
+428 22 10.3291
+428 23  7.2303
+428 24  5.3711
+428 25  2.3757
+428 26  1.0329
+428 27  0.4132
+428 28  0.1033
+# pixel 429
+429  1  0.8122
+429  2  2.6396
+429  3  7.0052
+429  4 12.5890
+429  5 19.6957
+429  6 23.9598
+429  7 25.2796
+429  8 26.7009
+429  9 28.3253
+429 10 28.9344
+429 11 28.9344
+429 12 28.7314
+429 13 28.1223
+429 14 27.8177
+429 15 26.3963
+429 16 24.9750
+429 17 23.4521
+429 18 21.8277
+429 19 20.0003
+429 20 18.2744
+429 21 14.4165
+429 22 10.1524
+429 23  7.1067
+429 24  5.2793
+429 25  2.3351
+429 26  1.0152
+429 27  0.4061
+429 28  0.1015
+# pixel 430
+430  1  0.7091
+430  2  2.3047
+430  3  6.1164
+430  4 10.9918
+430  5 17.1968
+430  6 20.9198
+430  7 22.0721
+430  8 23.3132
+430  9 24.7314
+430 10 25.2633
+430 11 25.2633
+430 12 25.0860
+430 13 24.5542
+430 14 24.2882
+430 15 23.0472
+430 16 21.8062
+430 17 20.4766
+430 18 19.0583
+430 19 17.4627
+430 20 15.9558
+430 21 12.5873
+430 22  8.8643
+430 23  6.2050
+430 24  4.6094
+430 25  2.0388
+430 26  0.8864
+430 27  0.3546
+430 28  0.0886
+# pixel 431
+431  1  0.6572
+431  2  2.1358
+431  3  5.6680
+431  4 10.1860
+431  5 15.9361
+431  6 19.3862
+431  7 20.4541
+431  8 21.6041
+431  9 22.9184
+431 10 23.4113
+431 11 23.4113
+431 12 23.2470
+431 13 22.7541
+431 14 22.5077
+431 15 21.3577
+431 16 20.2077
+431 17 18.9755
+431 18 17.6612
+431 19 16.1825
+431 20 14.7861
+431 21 11.6646
+431 22  8.2145
+431 23  5.7501
+431 24  4.2715
+431 25  1.8893
+431 26  0.8214
+431 27  0.3286
+431 28  0.0821
+# pixel 432
+432  1  0.6993
+432  2  2.2727
+432  3  6.0314
+432  4 10.8391
+432  5 16.9579
+432  6 20.6292
+432  7 21.7655
+432  8 22.9893
+432  9 24.3879
+432 10 24.9123
+432 11 24.9123
+432 12 24.7375
+432 13 24.2131
+432 14 23.9508
+432 15 22.7271
+432 16 21.5033
+432 17 20.1921
+432 18 18.7935
+432 19 17.2201
+432 20 15.7341
+432 21 12.4125
+432 22  8.7412
+432 23  6.1188
+432 24  4.5454
+432 25  2.0105
+432 26  0.8741
+432 27  0.3496
+432 28  0.0874
+# pixel 433
+433  1  0.8551
+433  2  2.7792
+433  3  7.3756
+433  4 13.2547
+433  5 20.7372
+433  6 25.2266
+433  7 26.6163
+433  8 28.1127
+433  9 29.8230
+433 10 30.4644
+433 11 30.4644
+433 12 30.2506
+433 13 29.6092
+433 14 29.2886
+433 15 27.7921
+433 16 26.2956
+433 17 24.6922
+433 18 22.9819
+433 19 21.0578
+433 20 19.2407
+433 21 15.1787
+433 22 10.6893
+433 23  7.4825
+433 24  5.5584
+433 25  2.4585
+433 26  1.0689
+433 27  0.4276
+433 28  0.1069
+# pixel 434
+434  1  0.7648
+434  2  2.4855
+434  3  6.5961
+434  4 11.8538
+434  5 18.5455
+434  6 22.5605
+434  7 23.8033
+434  8 25.1416
+434  9 26.6711
+434 10 27.2447
+434 11 27.2447
+434 12 27.0535
+434 13 26.4799
+434 14 26.1931
+434 15 24.8548
+434 16 23.5165
+434 17 22.0825
+434 18 20.5530
+434 19 18.8323
+434 20 17.2072
+434 21 13.5746
+434 22  9.5595
+434 23  6.6917
+434 24  4.9710
+434 25  2.1987
+434 26  0.9560
+434 27  0.3824
+434 28  0.0956
+# pixel 435
+435  1  0.7000
+435  2  2.2749
+435  3  6.0373
+435  4 10.8496
+435  5 16.9744
+435  6 20.6492
+435  7 21.7867
+435  8 23.0116
+435  9 24.4116
+435 10 24.9366
+435 11 24.9366
+435 12 24.7616
+435 13 24.2366
+435 14 23.9741
+435 15 22.7491
+435 16 21.5242
+435 17 20.2117
+435 18 18.8118
+435 19 17.2369
+435 20 15.7494
+435 21 12.4245
+435 22  8.7497
+435 23  6.1248
+435 24  4.5498
+435 25  2.0124
+435 26  0.8750
+435 27  0.3500
+435 28  0.0875
+# pixel 436
+436  1  0.7556
+436  2  2.4557
+436  3  6.5171
+436  4 11.7119
+436  5 18.3235
+436  6 22.2905
+436  7 23.5183
+436  8 24.8407
+436  9 26.3519
+436 10 26.9186
+436 11 26.9186
+436 12 26.7297
+436 13 26.1630
+436 14 25.8796
+436 15 24.5573
+436 16 23.2350
+436 17 21.8182
+436 18 20.3070
+436 19 18.6069
+436 20 17.0012
+436 21 13.4121
+436 22  9.4451
+436 23  6.6116
+436 24  4.9115
+436 25  2.1724
+436 26  0.9445
+436 27  0.3778
+436 28  0.0945
+# pixel 437
+437  1  0.7316
+437  2  2.3778
+437  3  6.3104
+437  4 11.3404
+437  5 17.7422
+437  6 21.5833
+437  7 22.7722
+437  8 24.0525
+437  9 25.5158
+437 10 26.0645
+437 11 26.0645
+437 12 25.8816
+437 13 25.3329
+437 14 25.0585
+437 15 23.7782
+437 16 22.4978
+437 17 21.1260
+437 18 19.6627
+437 19 18.0165
+437 20 16.4618
+437 21 12.9865
+437 22  9.1454
+437 23  6.4018
+437 24  4.7556
+437 25  2.1035
+437 26  0.9145
+437 27  0.3658
+437 28  0.0915
+# pixel 438
+438  1  0.7139
+438  2  2.3203
+438  3  6.1577
+438  4 11.0661
+438  5 17.3130
+438  6 21.0612
+438  7 22.2214
+438  8 23.4708
+438  9 24.8987
+438 10 25.4341
+438 11 25.4341
+438 12 25.2556
+438 13 24.7202
+438 14 24.4524
+438 15 23.2030
+438 16 21.9537
+438 17 20.6150
+438 18 19.1871
+438 19 17.5808
+438 20 16.0636
+438 21 12.6724
+438 22  8.9242
+438 23  6.2470
+438 24  4.6406
+438 25  2.0526
+438 26  0.8924
+438 27  0.3570
+438 28  0.0892
+# pixel 439
+439  1  0.6631
+439  2  2.1551
+439  3  5.7193
+439  4 10.2781
+439  5 16.0803
+439  6 19.5616
+439  7 20.6392
+439  8 21.7996
+439  9 23.1258
+439 10 23.6231
+439 11 23.6231
+439 12 23.4574
+439 13 22.9600
+439 14 22.7114
+439 15 21.5509
+439 16 20.3905
+439 17 19.1472
+439 18 17.8210
+439 19 16.3290
+439 20 14.9199
+439 21 11.7701
+439 22  8.2888
+439 23  5.8022
+439 24  4.3102
+439 25  1.9064
+439 26  0.8289
+439 27  0.3316
+439 28  0.0829
+# pixel 440
+440  1  0.7298
+440  2  2.3720
+440  3  6.2948
+440  4 11.3124
+440  5 17.6985
+440  6 21.5301
+440  7 22.7161
+440  8 23.9933
+440  9 25.4529
+440 10 26.0003
+440 11 26.0003
+440 12 25.8178
+440 13 25.2705
+440 14 24.9968
+440 15 23.7196
+440 16 22.4424
+440 17 21.0739
+440 18 19.6143
+440 19 17.9721
+440 20 16.4212
+440 21 12.9545
+440 22  9.1229
+440 23  6.3860
+440 24  4.7439
+440 25  2.0983
+440 26  0.9123
+440 27  0.3649
+440 28  0.0912
+# pixel 441
+441  1  0.7415
+441  2  2.4098
+441  3  6.3954
+441  4 11.4931
+441  5 17.9811
+441  6 21.8740
+441  7 23.0789
+441  8 24.3765
+441  9 25.8595
+441 10 26.4156
+441 11 26.4156
+441 12 26.2302
+441 13 25.6741
+441 14 25.3961
+441 15 24.0984
+441 16 22.8008
+441 17 21.4105
+441 18 19.9276
+441 19 18.2592
+441 20 16.6835
+441 21 13.1615
+441 22  9.2686
+441 23  6.4880
+441 24  4.8197
+441 25  2.1318
+441 26  0.9269
+441 27  0.3707
+441 28  0.0927
+# pixel 442
+442  1  0.6640
+442  2  2.1579
+442  3  5.7267
+442  4 10.2914
+442  5 16.1010
+442  6 19.5868
+442  7 20.6658
+442  8 21.8277
+442  9 23.1556
+442 10 23.6536
+442 11 23.6536
+442 12 23.4876
+442 13 22.9896
+442 14 22.7407
+442 15 21.5787
+442 16 20.4168
+442 17 19.1719
+442 18 17.8439
+442 19 16.3500
+442 20 14.9391
+442 21 11.7853
+442 22  8.2995
+442 23  5.8097
+442 24  4.3157
+442 25  1.9089
+442 26  0.8300
+442 27  0.3320
+442 28  0.0830
+# pixel 443
+443  1  0.7417
+443  2  2.4105
+443  3  6.3970
+443  4 11.4960
+443  5 17.9857
+443  6 21.8795
+443  7 23.0848
+443  8 24.3827
+443  9 25.8661
+443 10 26.4223
+443 11 26.4223
+443 12 26.2369
+443 13 25.6807
+443 14 25.4025
+443 15 24.1046
+443 16 22.8066
+443 17 21.4160
+443 18 19.9326
+443 19 18.2639
+443 20 16.6878
+443 21 13.1648
+443 22  9.2710
+443 23  6.4897
+443 24  4.8209
+443 25  2.1323
+443 26  0.9271
+443 27  0.3708
+443 28  0.0927
+# pixel 444
+444  1  0.6200
+444  2  2.0150
+444  3  5.3474
+444  4  9.6098
+444  5 15.0347
+444  6 18.2896
+444  7 19.2971
+444  8 20.3820
+444  9 21.6220
+444 10 22.0870
+444 11 22.0870
+444 12 21.9320
+444 13 21.4670
+444 14 21.2345
+444 15 20.1496
+444 16 19.0646
+444 17 17.9021
+444 18 16.6621
+444 19 15.2672
+444 20 13.9497
+444 21 11.0048
+444 22  7.7498
+444 23  5.4249
+444 24  4.0299
+444 25  1.7825
+444 26  0.7750
+444 27  0.3100
+444 28  0.0775
+# pixel 445
+445  1  0.7026
+445  2  2.2835
+445  3  6.0600
+445  4 10.8905
+445  5 17.0383
+445  6 20.7270
+445  7 21.8688
+445  8 23.0984
+445  9 24.5036
+445 10 25.0305
+445 11 25.0305
+445 12 24.8549
+445 13 24.3279
+445 14 24.0644
+445 15 22.8349
+445 16 21.6053
+445 17 20.2879
+445 18 18.8827
+445 19 17.3018
+445 20 15.8088
+445 21 12.4714
+445 22  8.7826
+445 23  6.1479
+445 24  4.5670
+445 25  2.0200
+445 26  0.8783
+445 27  0.3513
+445 28  0.0878
+# pixel 446
+446  1  0.7795
+446  2  2.5335
+446  3  6.7234
+446  4 12.0827
+446  5 18.9035
+446  6 22.9960
+446  7 24.2628
+446  8 25.6269
+446  9 27.1860
+446 10 27.7706
+446 11 27.7706
+446 12 27.5757
+446 13 26.9911
+446 14 26.6988
+446 15 25.3346
+446 16 23.9704
+446 17 22.5088
+446 18 20.9498
+446 19 19.1958
+446 20 17.5393
+446 21 13.8366
+446 22  9.7441
+446 23  6.8209
+446 24  5.0669
+446 25  2.2411
+446 26  0.9744
+446 27  0.3898
+446 28  0.0974
+# pixel 447
+447  1  0.7455
+447  2  2.4228
+447  3  6.4297
+447  4 11.5548
+447  5 18.0777
+447  6 21.9914
+447  7 23.2028
+447  8 24.5074
+447  9 25.9983
+447 10 26.5574
+447 11 26.5574
+447 12 26.3711
+447 13 25.8120
+447 14 25.5324
+447 15 24.2278
+447 16 22.9233
+447 17 21.5255
+447 18 20.0346
+447 19 18.3572
+447 20 16.7731
+447 21 13.2321
+447 22  9.3184
+447 23  6.5229
+447 24  4.8456
+447 25  2.1432
+447 26  0.9318
+447 27  0.3727
+447 28  0.0932
+# pixel 448
+448  1  0.7063
+448  2  2.2954
+448  3  6.0917
+448  4 10.9474
+448  5 17.1273
+448  6 20.8353
+448  7 21.9830
+448  8 23.2190
+448  9 24.6316
+448 10 25.1613
+448 11 25.1613
+448 12 24.9847
+448 13 24.4550
+448 14 24.1901
+448 15 22.9541
+448 16 21.7181
+448 17 20.3939
+448 18 18.9813
+448 19 17.3922
+448 20 15.8913
+448 21 12.5365
+448 22  8.8285
+448 23  6.1800
+448 24  4.5908
+448 25  2.0306
+448 26  0.8829
+448 27  0.3531
+448 28  0.0883
+# pixel 449
+449  1  0.6640
+449  2  2.1580
+449  3  5.7270
+449  4 10.2919
+449  5 16.1019
+449  6 19.5878
+449  7 20.6668
+449  8 21.8288
+449  9 23.1568
+449 10 23.6548
+449 11 23.6548
+449 12 23.4888
+449 13 22.9908
+449 14 22.7418
+449 15 21.5798
+449 16 20.4178
+449 17 19.1728
+449 18 17.8449
+449 19 16.3509
+449 20 14.9399
+449 21 11.7859
+449 22  8.2999
+449 23  5.8100
+449 24  4.3160
+449 25  1.9090
+449 26  0.8300
+449 27  0.3320
+449 28  0.0830
+# pixel 450
+450  1  0.7351
+450  2  2.3891
+450  3  6.3402
+450  4 11.3940
+450  5 17.8261
+450  6 21.6853
+450  7 22.8798
+450  8 24.1663
+450  9 25.6364
+450 10 26.1878
+450 11 26.1878
+450 12 26.0040
+450 13 25.4527
+450 14 25.1770
+450 15 23.8906
+450 16 22.6042
+450 17 21.2259
+450 18 19.7557
+450 19 18.1017
+450 20 16.5396
+450 21 13.0479
+450 22  9.1887
+450 23  6.4321
+450 24  4.7781
+450 25  2.1134
+450 26  0.9189
+450 27  0.3675
+450 28  0.0919
+# pixel 451
+451  1  0.7754
+451  2  2.5200
+451  3  6.6876
+451  4 12.0183
+451  5 18.8029
+451  6 22.8736
+451  7 24.1336
+451  8 25.4905
+451  9 27.0412
+451 10 27.6228
+451 11 27.6228
+451 12 27.4289
+451 13 26.8474
+451 14 26.5566
+451 15 25.1997
+451 16 23.8428
+451 17 22.3890
+451 18 20.8382
+451 19 19.0936
+451 20 17.4459
+451 21 13.7629
+451 22  9.6922
+451 23  6.7845
+451 24  5.0399
+451 25  2.2292
+451 26  0.9692
+451 27  0.3877
+451 28  0.0969
+# pixel 452
+452  1  0.6644
+452  2  2.1594
+452  3  5.7308
+452  4 10.2989
+452  5 16.1127
+452  6 19.6010
+452  7 20.6808
+452  8 21.8435
+452  9 23.1724
+452 10 23.6708
+452 11 23.6708
+452 12 23.5046
+452 13 23.0063
+452 14 22.7571
+452 15 21.5944
+452 16 20.4316
+452 17 19.1858
+452 18 17.8569
+452 19 16.3619
+452 20 14.9499
+452 21 11.7938
+452 22  8.3055
+452 23  5.8139
+452 24  4.3189
+452 25  1.9103
+452 26  0.8306
+452 27  0.3322
+452 28  0.0831
+# pixel 453
+453  1  0.6918
+453  2  2.2485
+453  3  5.9672
+453  4 10.7237
+453  5 16.7774
+453  6 20.4096
+453  7 21.5338
+453  8 22.7446
+453  9 24.1283
+453 10 24.6472
+453 11 24.6472
+453 12 24.4742
+453 13 23.9553
+453 14 23.6959
+453 15 22.4851
+453 16 21.2744
+453 17 19.9772
+453 18 18.5935
+453 19 17.0368
+453 20 15.5666
+453 21 12.2803
+453 22  8.6481
+453 23  6.0537
+453 24  4.4970
+453 25  1.9891
+453 26  0.8648
+453 27  0.3459
+453 28  0.0865
+# pixel 454
+454  1  0.8442
+454  2  2.7436
+454  3  7.2811
+454  4 13.0848
+454  5 20.4714
+454  6 24.9034
+454  7 26.2752
+454  8 27.7525
+454  9 29.4409
+454 10 30.0740
+454 11 30.0740
+454 12 29.8630
+454 13 29.2298
+454 14 28.9133
+454 15 27.4359
+454 16 25.9586
+454 17 24.3758
+454 18 22.6874
+454 19 20.7880
+454 20 18.9941
+454 21 14.9842
+454 22 10.5523
+454 23  7.3866
+454 24  5.4872
+454 25  2.4270
+454 26  1.0552
+454 27  0.4221
+454 28  0.1055
+# pixel 455
+455  1  0.7603
+455  2  2.4710
+455  3  6.5577
+455  4 11.7848
+455  5 18.4375
+455  6 22.4291
+455  7 23.6646
+455  8 24.9951
+455  9 26.5157
+455 10 27.0859
+455 11 27.0859
+455 12 26.8959
+455 13 26.3256
+455 14 26.0405
+455 15 24.7100
+455 16 23.3795
+455 17 21.9539
+455 18 20.4333
+455 19 18.7226
+455 20 17.1069
+455 21 13.4955
+455 22  9.5038
+455 23  6.6527
+455 24  4.9420
+455 25  2.1859
+455 26  0.9504
+455 27  0.3802
+455 28  0.0950
+# pixel 456
+456  1  0.7614
+456  2  2.4744
+456  3  6.5668
+456  4 11.8012
+456  5 18.4632
+456  6 22.4604
+456  7 23.6976
+456  8 25.0300
+456  9 26.5527
+456 10 27.1238
+456 11 27.1238
+456 12 26.9334
+456 13 26.3624
+456 14 26.0769
+456 15 24.7445
+456 16 23.4121
+456 17 21.9845
+456 18 20.4618
+456 19 18.7487
+456 20 17.1308
+456 21 13.5143
+456 22  9.5171
+456 23  6.6620
+456 24  4.9489
+456 25  2.1889
+456 26  0.9517
+456 27  0.3807
+456 28  0.0952
+# pixel 457
+457  1  0.8367
+457  2  2.7192
+457  3  7.2164
+457  4 12.9686
+457  5 20.2897
+457  6 24.6823
+457  7 26.0419
+457  8 27.5061
+457  9 29.1795
+457 10 29.8070
+457 11 29.8070
+457 12 29.5978
+457 13 28.9703
+457 14 28.6565
+457 15 27.1923
+457 16 25.7281
+457 17 24.1593
+457 18 22.4860
+457 19 20.6034
+457 20 18.8255
+457 21 14.8512
+457 22 10.4586
+457 23  7.3210
+457 24  5.4385
+457 25  2.4055
+457 26  1.0459
+457 27  0.4183
+457 28  0.1046
+# pixel 458
+458  1  0.7362
+458  2  2.3927
+458  3  6.3498
+458  4 11.4112
+458  5 17.8530
+458  6 21.7181
+458  7 22.9144
+458  8 24.2028
+458  9 25.6752
+458 10 26.2273
+458 11 26.2273
+458 12 26.0433
+458 13 25.4911
+458 14 25.2150
+458 15 23.9267
+458 16 22.6383
+458 17 21.2579
+458 18 19.7855
+458 19 18.1291
+458 20 16.5646
+458 21 13.0676
+458 22  9.2026
+458 23  6.4418
+458 24  4.7853
+458 25  2.1166
+458 26  0.9203
+458 27  0.3681
+458 28  0.0920
+# pixel 459
+459  1  0.7492
+459  2  2.4348
+459  3  6.4616
+459  4 11.6121
+459  5 18.1674
+459  6 22.1005
+459  7 23.3179
+459  8 24.6290
+459  9 26.1273
+459 10 26.6892
+459 11 26.6892
+459 12 26.5019
+459 13 25.9400
+459 14 25.6591
+459 15 24.3480
+459 16 23.0370
+459 17 21.6323
+459 18 20.1339
+459 19 18.4483
+459 20 16.8563
+459 21 13.2978
+459 22  9.3646
+459 23  6.5552
+459 24  4.8696
+459 25  2.1539
+459 26  0.9365
+459 27  0.3746
+459 28  0.0936
+# pixel 460
+460  1  0.5591
+460  2  1.8172
+460  3  4.8225
+460  4  8.6665
+460  5 13.5588
+460  6 16.4942
+460  7 17.4028
+460  8 18.3813
+460  9 19.4996
+460 10 19.9189
+460 11 19.9189
+460 12 19.7791
+460 13 19.3598
+460 14 19.1501
+460 15 18.1716
+460 16 17.1932
+460 17 16.1448
+460 18 15.0265
+460 19 13.7685
+460 20 12.5804
+460 21  9.9245
+460 22  6.9891
+460 23  4.8924
+460 24  3.6343
+460 25  1.6075
+460 26  0.6989
+460 27  0.2796
+460 28  0.0699
+# pixel 461
+461  1  0.6672
+461  2  2.1685
+461  3  5.7548
+461  4 10.3419
+461  5 16.1800
+461  6 19.6829
+461  7 20.7671
+461  8 21.9348
+461  9 23.2692
+461 10 23.7696
+461 11 23.7696
+461 12 23.6028
+461 13 23.1024
+461 14 22.8522
+461 15 21.6846
+461 16 20.5169
+461 17 19.2659
+461 18 17.9315
+461 19 16.4302
+461 20 15.0124
+461 21 11.8431
+461 22  8.3402
+461 23  5.8382
+461 24  4.3369
+461 25  1.9183
+461 26  0.8340
+461 27  0.3336
+461 28  0.0834
+# pixel 462
+462  1  0.8549
+462  2  2.7784
+462  3  7.3735
+462  4 13.2509
+462  5 20.7312
+462  6 25.2194
+462  7 26.6087
+462  8 28.1047
+462  9 29.8145
+462 10 30.4557
+462 11 30.4557
+462 12 30.2420
+462 13 29.6008
+462 14 29.2802
+462 15 27.7841
+462 16 26.2881
+462 17 24.6851
+462 18 22.9753
+462 19 21.0518
+462 20 19.2352
+462 21 15.1744
+462 22 10.6862
+462 23  7.4803
+462 24  5.5568
+462 25  2.4578
+462 26  1.0686
+462 27  0.4274
+462 28  0.1069
+# pixel 463
+463  1  0.7819
+463  2  2.5411
+463  3  6.7438
+463  4 12.1193
+463  5 18.9609
+463  6 23.0658
+463  7 24.3364
+463  8 25.7047
+463  9 27.2684
+463 10 27.8549
+463 11 27.8549
+463 12 27.6594
+463 13 27.0730
+463 14 26.7798
+463 15 25.4115
+463 16 24.0431
+463 17 22.5771
+463 18 21.0133
+463 19 19.2541
+463 20 17.5925
+463 21 13.8786
+463 22  9.7736
+463 23  6.8415
+463 24  5.0823
+463 25  2.2479
+463 26  0.9774
+463 27  0.3909
+463 28  0.0977
+# pixel 464
+464  1  0.7765
+464  2  2.5237
+464  3  6.6974
+464  4 12.0359
+464  5 18.8303
+464  6 22.9070
+464  7 24.1688
+464  8 25.5277
+464  9 27.0808
+464 10 27.6631
+464 11 27.6631
+464 12 27.4690
+464 13 26.8866
+464 14 26.5954
+464 15 25.2365
+464 16 23.8777
+464 17 22.4217
+464 18 20.8687
+464 19 19.1215
+464 20 17.4715
+464 21 13.7830
+464 22  9.7064
+464 23  6.7945
+464 24  5.0473
+464 25  2.2325
+464 26  0.9706
+464 27  0.3883
+464 28  0.0971
+# pixel 465
+465  1  0.7127
+465  2  2.3162
+465  3  6.1469
+465  4 11.0466
+465  5 17.2826
+465  6 21.0242
+465  7 22.1824
+465  8 23.4296
+465  9 24.8549
+465 10 25.3895
+465 11 25.3895
+465 12 25.2113
+465 13 24.6768
+465 14 24.4095
+465 15 23.1623
+465 16 21.9151
+465 17 20.5788
+465 18 19.1534
+465 19 17.5499
+465 20 16.0354
+465 21 12.6502
+465 22  8.9086
+465 23  6.2360
+465 24  4.6325
+465 25  2.0490
+465 26  0.8909
+465 27  0.3563
+465 28  0.0891
+# pixel 466
+466  1  0.6936
+466  2  2.2542
+466  3  5.9823
+466  4 10.7508
+466  5 16.8198
+466  6 20.4612
+466  7 21.5883
+466  8 22.8021
+466  9 24.1893
+466 10 24.7095
+466 11 24.7095
+466 12 24.5361
+466 13 24.0159
+466 14 23.7558
+466 15 22.5420
+466 16 21.3282
+466 17 20.0277
+466 18 18.6405
+466 19 17.0799
+466 20 15.6060
+466 21 12.3114
+466 22  8.6700
+466 23  6.0690
+466 24  4.5084
+466 25  1.9941
+466 26  0.8670
+466 27  0.3468
+466 28  0.0867
+# pixel 467
+467  1  0.8013
+467  2  2.6041
+467  3  6.9108
+467  4 12.4194
+467  5 19.4304
+467  6 23.6370
+467  7 24.9390
+467  8 26.3412
+467  9 27.9438
+467 10 28.5447
+467 11 28.5447
+467 12 28.3444
+467 13 27.7434
+467 14 27.4430
+467 15 26.0408
+467 16 24.6386
+467 17 23.1362
+467 18 21.5337
+467 19 19.7309
+467 20 18.0282
+467 21 14.2223
+467 22 10.0157
+467 23  7.0110
+467 24  5.2082
+467 25  2.3036
+467 26  1.0016
+467 27  0.4006
+467 28  0.1002
+# pixel 468
+468  1  0.7303
+468  2  2.3735
+468  3  6.2990
+468  4 11.3199
+468  5 17.7101
+468  6 21.5443
+468  7 22.7311
+468  8 24.0091
+468  9 25.4697
+468 10 26.0175
+468 11 26.0175
+468 12 25.8349
+468 13 25.2872
+468 14 25.0133
+468 15 23.7352
+468 16 22.4572
+468 17 21.0879
+468 18 19.6272
+468 19 17.9840
+468 20 16.4321
+468 21 12.9631
+468 22  9.1289
+468 23  6.3903
+468 24  4.7470
+468 25  2.0997
+468 26  0.9129
+468 27  0.3652
+468 28  0.0913
+# pixel 469
+469  1  0.8118
+469  2  2.6385
+469  3  7.0022
+469  4 12.5836
+469  5 19.6873
+469  6 23.9494
+469  7 25.2687
+469  8 26.6894
+469  9 28.3131
+469 10 28.9220
+469 11 28.9220
+469 12 28.7190
+469 13 28.1102
+469 14 27.8057
+469 15 26.3850
+469 16 24.9643
+469 17 23.4420
+469 18 21.8184
+469 19 19.9917
+469 20 18.2665
+469 21 14.4103
+469 22 10.1481
+469 23  7.1037
+469 24  5.2770
+469 25  2.3341
+469 26  1.0148
+469 27  0.4059
+469 28  0.1015
+# pixel 470
+470  1  0.6146
+470  2  1.9974
+470  3  5.3007
+470  4  9.5259
+470  5 14.9034
+470  6 18.1299
+470  7 19.1286
+470  8 20.2041
+470  9 21.4332
+470 10 21.8942
+470 11 21.8942
+470 12 21.7405
+470 13 21.2796
+470 14 21.0491
+470 15 19.9736
+470 16 18.8981
+470 17 17.7458
+470 18 16.5167
+470 19 15.1339
+470 20 13.8279
+470 21 10.9087
+470 22  7.6822
+470 23  5.3775
+470 24  3.9947
+470 25  1.7669
+470 26  0.7682
+470 27  0.3073
+470 28  0.0768
+# pixel 471
+471  1  0.7183
+471  2  2.3344
+471  3  6.1952
+471  4 11.1333
+471  5 17.4183
+471  6 21.1892
+471  7 22.3564
+471  8 23.6134
+471  9 25.0500
+471 10 25.5887
+471 11 25.5887
+471 12 25.4091
+471 13 24.8704
+471 14 24.6011
+471 15 23.3441
+471 16 22.0871
+471 17 20.7403
+471 18 19.3038
+471 19 17.6876
+471 20 16.1613
+471 21 12.7495
+471 22  8.9785
+471 23  6.2849
+471 24  4.6688
+471 25  2.0651
+471 26  0.8978
+471 27  0.3591
+471 28  0.0898
+# pixel 472
+472  1  0.7171
+472  2  2.3307
+472  3  6.1852
+472  4 11.1155
+472  5 17.3903
+472  6 21.1552
+472  7 22.3206
+472  8 23.5755
+472  9 25.0098
+472 10 25.5476
+472 11 25.5476
+472 12 25.3684
+472 13 24.8305
+472 14 24.5616
+472 15 23.3066
+472 16 22.0516
+472 17 20.7070
+472 18 19.2728
+472 19 17.6592
+472 20 16.1353
+472 21 12.7290
+472 22  8.9641
+472 23  6.2749
+472 24  4.6613
+472 25  2.0617
+472 26  0.8964
+472 27  0.3586
+472 28  0.0896
+# pixel 473
+473  1  0.6170
+473  2  2.0052
+473  3  5.3214
+473  4  9.5631
+473  5 14.9617
+473  6 18.2008
+473  7 19.2034
+473  8 20.2831
+473  9 21.5170
+473 10 21.9798
+473 11 21.9798
+473 12 21.8255
+473 13 21.3628
+473 14 21.1314
+473 15 20.0517
+473 16 18.9720
+473 17 17.8152
+473 18 16.5812
+473 19 15.1930
+473 20 13.8820
+473 21 10.9513
+473 22  7.7122
+473 23  5.3985
+473 24  4.0103
+473 25  1.7738
+473 26  0.7712
+473 27  0.3085
+473 28  0.0771
+# pixel 474
+474  1  0.6889
+474  2  2.2389
+474  3  5.9416
+474  4 10.6776
+474  5 16.7053
+474  6 20.3219
+474  7 21.4413
+474  8 22.6468
+474  9 24.0246
+474 10 24.5412
+474 11 24.5412
+474 12 24.3690
+474 13 23.8524
+474 14 23.5940
+474 15 22.3885
+474 16 21.1830
+474 17 19.8913
+474 18 18.5136
+474 19 16.9636
+474 20 15.4997
+474 21 12.2276
+474 22  8.6110
+474 23  6.0277
+474 24  4.4777
+474 25  1.9805
+474 26  0.8611
+474 27  0.3444
+474 28  0.0861
+# pixel 475
+475  1  0.6732
+475  2  2.1880
+475  3  5.8065
+475  4 10.4349
+475  5 16.3255
+475  6 19.8599
+475  7 20.9539
+475  8 22.1320
+475  9 23.4785
+475 10 23.9834
+475 11 23.9834
+475 12 23.8151
+475 13 23.3102
+475 14 23.0577
+475 15 21.8796
+475 16 20.7014
+475 17 19.4392
+475 18 18.0927
+475 19 16.5780
+475 20 15.1474
+475 21 11.9496
+475 22  8.4152
+475 23  5.8907
+475 24  4.3759
+475 25  1.9355
+475 26  0.8415
+475 27  0.3366
+475 28  0.0842
+# pixel 476
+476  1  0.7016
+476  2  2.2803
+476  3  6.0514
+476  4 10.8750
+476  5 17.0142
+476  6 20.6977
+476  7 21.8378
+476  8 23.0656
+476  9 24.4688
+476 10 24.9951
+476 11 24.9951
+476 12 24.8197
+476 13 24.2934
+476 14 24.0303
+476 15 22.8025
+476 16 21.5747
+476 17 20.2591
+476 18 18.8559
+476 19 17.2773
+476 20 15.7864
+476 21 12.4537
+476 22  8.7702
+476 23  6.1391
+476 24  4.5605
+476 25  2.0171
+476 26  0.8770
+476 27  0.3508
+476 28  0.0877
+# pixel 477
+477  1  0.6591
+477  2  2.1422
+477  3  5.6850
+477  4 10.2165
+477  5 15.9839
+477  6 19.4443
+477  7 20.5154
+477  8 21.6688
+477  9 22.9871
+477 10 23.4815
+477 11 23.4815
+477 12 23.3167
+477 13 22.8223
+477 14 22.5752
+477 15 21.4217
+477 16 20.2682
+477 17 19.0323
+477 18 17.7141
+477 19 16.2310
+477 20 14.8304
+477 21 11.6995
+477 22  8.2391
+477 23  5.7674
+477 24  4.2843
+477 25  1.8950
+477 26  0.8239
+477 27  0.3296
+477 28  0.0824
+# pixel 478
+478  1  0.7339
+478  2  2.3852
+478  3  6.3299
+478  4 11.3755
+478  5 17.7972
+478  6 21.6502
+478  7 22.8428
+478  8 24.1271
+478  9 25.5949
+478 10 26.1453
+478 11 26.1453
+478 12 25.9618
+478 13 25.4114
+478 14 25.1362
+478 15 23.8519
+478 16 22.5675
+478 17 21.1915
+478 18 19.7237
+478 19 18.0724
+478 20 16.5128
+478 21 13.0268
+478 22  9.1738
+478 23  6.4217
+478 24  4.7704
+478 25  2.1100
+478 26  0.9174
+478 27  0.3670
+478 28  0.0917
+# pixel 479
+479  1  0.6790
+479  2  2.2068
+479  3  5.8565
+479  4 10.5247
+479  5 16.4661
+479  6 20.0309
+479  7 21.1343
+479  8 22.3226
+479  9 23.6806
+479 10 24.1899
+479 11 24.1899
+479 12 24.0201
+479 13 23.5109
+479 14 23.2563
+479 15 22.0680
+479 16 20.8797
+479 17 19.6066
+479 18 18.2485
+479 19 16.7207
+479 20 15.2778
+479 21 12.0525
+479 22  8.4877
+479 23  5.9414
+479 24  4.4136
+479 25  1.9522
+479 26  0.8488
+479 27  0.3395
+479 28  0.0849
+# pixel 480
+480  1  0.7140
+480  2  2.3206
+480  3  6.1586
+480  4 11.0676
+480  5 17.3155
+480  6 21.0642
+480  7 22.2245
+480  8 23.4741
+480  9 24.9022
+480 10 25.4377
+480 11 25.4377
+480 12 25.2592
+480 13 24.7237
+480 14 24.4559
+480 15 23.2063
+480 16 21.9568
+480 17 20.6179
+480 18 19.1899
+480 19 17.5833
+480 20 16.0659
+480 21 12.6742
+480 22  8.9255
+480 23  6.2479
+480 24  4.6413
+480 25  2.0529
+480 26  0.8926
+480 27  0.3570
+480 28  0.0893
+# pixel 481
+481  1  0.7751
+481  2  2.5189
+481  3  6.6849
+481  4 12.0134
+481  5 18.7952
+481  6 22.8643
+481  7 24.1237
+481  8 25.4801
+481  9 27.0302
+481 10 27.6115
+481 11 27.6115
+481 12 27.4177
+481 13 26.8364
+481 14 26.5458
+481 15 25.1894
+481 16 23.8331
+481 17 22.3798
+481 18 20.8297
+481 19 19.0858
+481 20 17.4388
+481 21 13.7573
+481 22  9.6882
+481 23  6.7818
+481 24  5.0379
+481 25  2.2283
+481 26  0.9688
+481 27  0.3875
+481 28  0.0969
+# pixel 482
+482  1  0.6216
+482  2  2.0202
+482  3  5.3613
+482  4  9.6349
+482  5 15.0739
+482  6 18.3374
+482  7 19.3475
+482  8 20.4353
+482  9 21.6785
+482 10 22.1447
+482 11 22.1447
+482 12 21.9893
+482 13 21.5231
+482 14 21.2900
+482 15 20.2022
+482 16 19.1144
+482 17 17.9489
+482 18 16.7056
+482 19 15.3070
+482 20 13.9861
+482 21 11.0335
+482 22  7.7701
+482 23  5.4390
+482 24  4.0404
+482 25  1.7871
+482 26  0.7770
+482 27  0.3108
+482 28  0.0777
+# pixel 483
+483  1  0.7513
+483  2  2.4418
+483  3  6.4801
+483  4 11.6454
+483  5 18.2194
+483  6 22.1638
+483  7 23.3847
+483  8 24.6995
+483  9 26.2021
+483 10 26.7656
+483 11 26.7656
+483 12 26.5777
+483 13 26.0143
+483 14 25.7325
+483 15 24.4177
+483 16 23.1029
+483 17 21.6942
+483 18 20.1916
+483 19 18.5011
+483 20 16.9046
+483 21 13.3358
+483 22  9.3914
+483 23  6.5740
+483 24  4.8835
+483 25  2.1600
+483 26  0.9391
+483 27  0.3757
+483 28  0.0939
+# pixel 484
+484  1  0.6679
+484  2  2.1707
+484  3  5.7608
+484  4 10.3527
+484  5 16.1970
+484  6 19.7036
+484  7 20.7890
+484  8 21.9578
+484  9 23.2937
+484 10 23.7946
+484 11 23.7946
+484 12 23.6276
+484 13 23.1267
+484 14 22.8762
+484 15 21.7074
+484 16 20.5385
+484 17 19.2862
+484 18 17.9503
+484 19 16.4475
+484 20 15.0282
+484 21 11.8556
+484 22  8.3490
+484 23  5.8443
+484 24  4.3415
+484 25  1.9203
+484 26  0.8349
+484 27  0.3340
+484 28  0.0835
+# pixel 485
+485  1  0.7628
+485  2  2.4789
+485  3  6.5787
+485  4 11.8227
+485  5 18.4967
+485  6 22.5012
+485  7 23.7407
+485  8 25.0755
+485  9 26.6010
+485 10 27.1730
+485 11 27.1730
+485 12 26.9824
+485 13 26.4103
+485 14 26.1243
+485 15 24.7894
+485 16 23.4546
+485 17 22.0245
+485 18 20.4990
+485 19 18.7828
+485 20 17.1619
+485 21 13.5389
+485 22  9.5344
+485 23  6.6741
+485 24  4.9579
+485 25  2.1929
+485 26  0.9534
+485 27  0.3814
+485 28  0.0953
+# pixel 486
+486  1  0.6269
+486  2  2.0373
+486  3  5.4067
+486  4  9.7164
+486  5 15.2014
+486  6 18.4924
+486  7 19.5111
+486  8 20.6081
+486  9 21.8618
+486 10 22.3320
+486 11 22.3320
+486 12 22.1752
+486 13 21.7051
+486 14 21.4700
+486 15 20.3730
+486 16 19.2760
+486 17 18.1006
+486 18 16.8469
+486 19 15.4365
+486 20 14.1044
+486 21 11.1268
+486 22  7.8358
+486 23  5.4850
+486 24  4.0746
+486 25  1.8022
+486 26  0.7836
+486 27  0.3134
+486 28  0.0784
+# pixel 487
+487  1  0.7352
+487  2  2.3894
+487  3  6.3411
+487  4 11.3955
+487  5 17.8285
+487  6 21.6882
+487  7 22.8829
+487  8 24.1695
+487  9 25.6399
+487 10 26.1913
+487 11 26.1913
+487 12 26.0075
+487 13 25.4561
+487 14 25.1804
+487 15 23.8938
+487 16 22.6072
+487 17 21.2287
+487 18 19.7584
+487 19 18.1042
+487 20 16.5419
+487 21 13.0497
+487 22  9.1899
+487 23  6.4330
+487 24  4.7788
+487 25  2.1137
+487 26  0.9190
+487 27  0.3676
+487 28  0.0919
+# pixel 488
+488  1  0.6845
+488  2  2.2247
+488  3  5.9039
+488  4 10.6100
+488  5 16.5995
+488  6 20.1932
+488  7 21.3056
+488  8 22.5035
+488  9 23.8725
+488 10 24.3859
+488 11 24.3859
+488 12 24.2147
+488 13 23.7014
+488 14 23.4447
+488 15 22.2468
+488 16 21.0489
+488 17 19.7654
+488 18 18.3964
+488 19 16.8562
+488 20 15.4016
+488 21 12.1502
+488 22  8.5564
+488 23  5.9895
+488 24  4.4494
+488 25  1.9680
+488 26  0.8556
+488 27  0.3423
+488 28  0.0856
+# pixel 489
+489  1  0.7272
+489  2  2.3635
+489  3  6.2724
+489  4 11.2721
+489  5 17.6354
+489  6 21.4534
+489  7 22.6351
+489  8 23.9078
+489  9 25.3623
+489 10 25.9077
+489 11 25.9077
+489 12 25.7259
+489 13 25.1805
+489 14 24.9077
+489 15 23.6351
+489 16 22.3624
+489 17 20.9989
+489 18 19.5444
+489 19 17.9081
+489 20 16.3627
+489 21 12.9084
+489 22  9.0904
+489 23  6.3633
+489 24  4.7270
+489 25  2.0908
+489 26  0.9090
+489 27  0.3636
+489 28  0.0909
+# pixel 490
+490  1  0.7214
+490  2  2.3446
+490  3  6.2223
+490  4 11.1821
+490  5 17.4945
+490  6 21.2820
+490  7 22.4543
+490  8 23.7168
+490  9 25.1597
+490 10 25.7007
+490 11 25.7007
+490 12 25.5204
+490 13 24.9793
+490 14 24.7088
+490 15 23.4463
+490 16 22.1838
+490 17 20.8311
+490 18 19.3883
+490 19 17.7651
+490 20 16.2320
+490 21 12.8053
+490 22  9.0178
+490 23  6.3125
+490 24  4.6893
+490 25  2.0741
+490 26  0.9018
+490 27  0.3607
+490 28  0.0902
+# pixel 491
+491  1  0.7275
+491  2  2.3645
+491  3  6.2750
+491  4 11.2768
+491  5 17.6428
+491  6 21.4624
+491  7 22.6446
+491  8 23.9178
+491  9 25.3729
+491 10 25.9185
+491 11 25.9185
+491 12 25.7366
+491 13 25.1910
+491 14 24.9182
+491 15 23.6450
+491 16 22.3718
+491 17 21.0076
+491 18 19.5526
+491 19 17.9156
+491 20 16.3696
+491 21 12.9138
+491 22  9.0942
+491 23  6.3660
+491 24  4.7290
+491 25  2.0917
+491 26  0.9094
+491 27  0.3638
+491 28  0.0909
+# pixel 492
+492  1  0.7733
+492  2  2.5133
+492  3  6.6698
+492  4 11.9863
+492  5 18.7528
+492  6 22.8127
+492  7 24.0693
+492  8 25.4226
+492  9 26.9693
+492 10 27.5492
+492 11 27.5492
+492 12 27.3559
+492 13 26.7759
+492 14 26.4859
+492 15 25.1326
+492 16 23.7793
+492 17 22.3294
+492 18 20.7828
+492 19 19.0428
+492 20 17.3995
+492 21 13.7263
+492 22  9.6664
+492 23  6.7665
+492 24  5.0265
+492 25  2.2233
+492 26  0.9666
+492 27  0.3867
+492 28  0.0967
+# pixel 493
+493  1  0.8255
+493  2  2.6829
+493  3  7.1199
+493  4 12.7952
+493  5 20.0184
+493  6 24.3522
+493  7 25.6937
+493  8 27.1383
+493  9 28.7893
+493 10 29.4084
+493 11 29.4084
+493 12 29.2020
+493 13 28.5829
+493 14 28.2733
+493 15 26.8287
+493 16 25.3841
+493 17 23.8363
+493 18 22.1853
+493 19 20.3279
+493 20 18.5737
+493 21 14.6526
+493 22 10.3187
+493 23  7.2231
+493 24  5.3657
+493 25  2.3733
+493 26  1.0319
+493 27  0.4127
+493 28  0.1032
+# pixel 494
+494  1  0.6511
+494  2  2.1160
+494  3  5.6155
+494  4 10.0916
+494  5 15.7884
+494  6 19.2065
+494  7 20.2645
+494  8 21.4039
+494  9 22.7060
+494 10 23.1943
+494 11 23.1943
+494 12 23.0315
+494 13 22.5432
+494 14 22.2991
+494 15 21.1597
+494 16 20.0204
+494 17 18.7996
+494 18 17.4975
+494 19 16.0326
+494 20 14.6490
+494 21 11.5565
+494 22  8.1384
+494 23  5.6968
+494 24  4.2319
+494 25  1.8718
+494 26  0.8138
+494 27  0.3255
+494 28  0.0814
+# pixel 495
+495  1  0.7080
+495  2  2.3012
+495  3  6.1069
+495  4 10.9748
+495  5 17.1702
+495  6 20.8875
+495  7 22.0380
+495  8 23.2771
+495  9 24.6932
+495 10 25.2243
+495 11 25.2243
+495 12 25.0472
+495 13 24.5162
+495 14 24.2507
+495 15 23.0116
+495 16 21.7725
+495 17 20.4449
+495 18 19.0288
+495 19 17.4357
+495 20 15.9311
+495 21 12.5679
+495 22  8.8506
+495 23  6.1954
+495 24  4.6023
+495 25  2.0356
+495 26  0.8851
+495 27  0.3540
+495 28  0.0885
+# pixel 496
+496  1  0.7142
+496  2  2.3211
+496  3  6.1598
+496  4 11.0698
+496  5 17.3189
+496  6 21.0683
+496  7 22.2289
+496  8 23.4787
+496  9 24.9071
+496 10 25.4427
+496 11 25.4427
+496 12 25.2642
+496 13 24.7285
+496 14 24.4607
+496 15 23.2109
+496 16 21.9611
+496 17 20.6220
+496 18 19.1936
+496 19 17.5867
+496 20 16.0691
+496 21 12.6767
+496 22  8.9273
+496 23  6.2491
+496 24  4.6422
+496 25  2.0533
+496 26  0.8927
+496 27  0.3571
+496 28  0.0893
+# pixel 497
+497  1  0.6806
+497  2  2.2121
+497  3  5.8705
+497  4 10.5500
+497  5 16.5056
+497  6 20.0790
+497  7 21.1850
+497  8 22.3761
+497  9 23.7374
+497 10 24.2479
+497 11 24.2479
+497 12 24.0777
+497 13 23.5672
+497 14 23.3120
+497 15 22.1209
+497 16 20.9298
+497 17 19.6536
+497 18 18.2923
+497 19 16.7608
+497 20 15.3145
+497 21 12.0814
+497 22  8.5080
+497 23  5.9556
+497 24  4.4242
+497 25  1.9568
+497 26  0.8508
+497 27  0.3403
+497 28  0.0851
+# pixel 498
+498  1  0.6387
+498  2  2.0758
+498  3  5.5090
+498  4  9.9002
+498  5 15.4890
+498  6 18.8423
+498  7 19.8802
+498  8 20.9980
+498  9 22.2754
+498 10 22.7545
+498 11 22.7545
+498 12 22.5948
+498 13 22.1157
+498 14 21.8762
+498 15 20.7585
+498 16 19.6407
+498 17 18.4431
+498 18 17.1656
+498 19 15.7285
+498 20 14.3712
+498 21 11.3373
+498 22  7.9840
+498 23  5.5888
+498 24  4.1517
+498 25  1.8363
+498 26  0.7984
+498 27  0.3194
+498 28  0.0798
+# pixel 499
+499  1  0.7441
+499  2  2.4184
+499  3  6.4181
+499  4 11.5339
+499  5 18.0450
+499  6 21.9516
+499  7 23.1608
+499  8 24.4630
+499  9 25.9513
+499 10 26.5094
+499 11 26.5094
+499 12 26.3233
+499 13 25.7652
+499 14 25.4862
+499 15 24.1840
+499 16 22.8818
+499 17 21.4865
+499 18 19.9983
+499 19 18.3240
+499 20 16.7428
+499 21 13.2082
+499 22  9.3015
+499 23  6.5111
+499 24  4.8368
+499 25  2.1394
+499 26  0.9302
+499 27  0.3721
+499 28  0.0930
+# pixel 500
+500  1  0.7722
+500  2  2.5098
+500  3  6.6606
+500  4 11.9698
+500  5 18.7269
+500  6 22.7812
+500  7 24.0361
+500  8 25.3875
+500  9 26.9320
+500 10 27.5112
+500 11 27.5112
+500 12 27.3181
+500 13 26.7389
+500 14 26.4494
+500 15 25.0979
+500 16 23.7465
+500 17 22.2985
+500 18 20.7541
+500 19 19.0165
+500 20 17.3755
+500 21 13.7073
+500 22  9.6530
+500 23  6.7571
+500 24  5.0196
+500 25  2.2202
+500 26  0.9653
+500 27  0.3861
+500 28  0.0965
+# pixel 501
+501  1  0.7191
+501  2  2.3370
+501  3  6.2022
+501  4 11.1459
+501  5 17.4380
+501  6 21.2132
+501  7 22.3817
+501  8 23.6402
+501  9 25.0783
+501 10 25.6177
+501 11 25.6177
+501 12 25.4379
+501 13 24.8986
+501 14 24.6289
+501 15 23.3705
+501 16 22.1121
+501 17 20.7638
+501 18 19.3256
+501 19 17.7076
+501 20 16.1796
+501 21 12.7639
+501 22  8.9887
+501 23  6.2921
+501 24  4.6741
+501 25  2.0674
+501 26  0.8989
+501 27  0.3595
+501 28  0.0899
+# pixel 502
+502  1  0.6981
+502  2  2.2687
+502  3  6.0207
+502  4 10.8198
+502  5 16.9278
+502  6 20.5926
+502  7 21.7269
+502  8 22.9485
+502  9 24.3446
+502 10 24.8682
+502 11 24.8682
+502 12 24.6937
+502 13 24.1701
+502 14 23.9083
+502 15 22.6868
+502 16 21.4652
+502 17 20.1563
+502 18 18.7602
+502 19 17.1896
+502 20 15.7062
+502 21 12.3905
+502 22  8.7257
+502 23  6.1080
+502 24  4.5374
+502 25  2.0069
+502 26  0.8726
+502 27  0.3490
+502 28  0.0873
+# pixel 503
+503  1  0.7688
+503  2  2.4987
+503  3  6.6313
+503  4 11.9171
+503  5 18.6444
+503  6 22.6809
+503  7 23.9302
+503  8 25.2757
+503  9 26.8134
+503 10 27.3900
+503 11 27.3900
+503 12 27.1978
+503 13 26.6212
+503 14 26.3329
+503 15 24.9874
+503 16 23.6419
+503 17 22.2003
+503 18 20.6626
+503 19 18.9328
+503 20 17.2990
+503 21 13.6470
+503 22  9.6105
+503 23  6.7274
+503 24  4.9975
+503 25  2.2104
+503 26  0.9611
+503 27  0.3844
+503 28  0.0961
+# pixel 504
+504  1  0.6773
+504  2  2.2011
+504  3  5.8414
+504  4 10.4976
+504  5 16.4236
+504  6 19.9793
+504  7 21.0798
+504  8 22.2650
+504  9 23.6195
+504 10 24.1275
+504 11 24.1275
+504 12 23.9582
+504 13 23.4502
+504 14 23.1963
+504 15 22.0110
+504 16 20.8258
+504 17 19.5560
+504 18 18.2014
+504 19 16.6776
+504 20 15.2384
+504 21 12.0214
+504 22  8.4658
+504 23  5.9260
+504 24  4.4022
+504 25  1.9471
+504 26  0.8466
+504 27  0.3386
+504 28  0.0847
+# pixel 505
+505  1  0.7783
+505  2  2.5295
+505  3  6.7130
+505  4 12.0640
+505  5 18.8743
+505  6 22.9605
+505  7 24.2253
+505  8 25.5874
+505  9 27.1440
+505 10 27.7278
+505 11 27.7278
+505 12 27.5332
+505 13 26.9494
+505 14 26.6576
+505 15 25.2955
+505 16 23.9334
+505 17 22.4741
+505 18 20.9174
+505 19 19.1662
+505 20 17.5123
+505 21 13.8152
+505 22  9.7290
+505 23  6.8103
+505 24  5.0591
+505 25  2.2377
+505 26  0.9729
+505 27  0.3892
+505 28  0.0973
+# pixel 506
+506  1  0.7946
+506  2  2.5825
+506  3  6.8536
+506  4 12.3165
+506  5 19.2694
+506  6 23.4412
+506  7 24.7324
+506  8 26.1230
+506  9 27.7122
+506 10 28.3082
+506 11 28.3082
+506 12 28.1095
+506 13 27.5136
+506 14 27.2156
+506 15 25.8250
+506 16 24.4344
+506 17 22.9445
+506 18 21.3553
+506 19 19.5674
+506 20 17.8789
+506 21 14.1044
+506 22  9.9327
+506 23  6.9529
+506 24  5.1650
+506 25  2.2845
+506 26  0.9933
+506 27  0.3973
+506 28  0.0993
+# pixel 507
+507  1  0.7584
+507  2  2.4647
+507  3  6.5409
+507  4 11.7547
+507  5 18.3904
+507  6 22.3718
+507  7 23.6042
+507  8 24.9313
+507  9 26.4481
+507 10 27.0169
+507 11 27.0169
+507 12 26.8273
+507 13 26.2585
+507 14 25.9741
+507 15 24.6470
+507 16 23.3198
+507 17 21.8979
+507 18 20.3811
+507 19 18.6748
+507 20 17.0633
+507 21 13.4610
+507 22  9.4796
+507 23  6.6357
+507 24  4.9294
+507 25  2.1803
+507 26  0.9480
+507 27  0.3792
+507 28  0.0948
+# pixel 508
+508  1  0.7121
+508  2  2.3143
+508  3  6.1418
+508  4 11.0374
+508  5 17.2681
+508  6 21.0066
+508  7 22.1637
+508  8 23.4099
+508  9 24.8340
+508 10 25.3681
+508 11 25.3681
+508 12 25.1901
+508 13 24.6560
+508 14 24.3890
+508 15 23.1428
+508 16 21.8967
+508 17 20.5615
+508 18 19.1373
+508 19 17.5351
+508 20 16.0220
+508 21 12.6395
+508 22  8.9011
+508 23  6.2308
+508 24  4.6286
+508 25  2.0473
+508 26  0.8901
+508 27  0.3560
+508 28  0.0890
+# pixel 509
+509  1  0.6627
+509  2  2.1537
+509  3  5.7157
+509  4 10.2717
+509  5 16.0703
+509  6 19.5494
+509  7 20.6263
+509  8 21.7860
+509  9 23.1114
+509 10 23.6084
+509 11 23.6084
+509 12 23.4427
+509 13 22.9457
+509 14 22.6972
+509 15 21.5375
+509 16 20.3778
+509 17 19.1352
+509 18 17.8098
+509 19 16.3188
+509 20 14.9106
+509 21 11.7628
+509 22  8.2836
+509 23  5.7986
+509 24  4.3075
+509 25  1.9052
+509 26  0.8284
+509 27  0.3313
+509 28  0.0828
+# pixel 510
+510  1  0.7879
+510  2  2.5607
+510  3  6.7957
+510  4 12.2125
+510  5 19.1067
+510  6 23.2432
+510  7 24.5235
+510  8 25.9023
+510  9 27.4781
+510 10 28.0691
+510 11 28.0691
+510 12 27.8721
+510 13 27.2812
+510 14 26.9857
+510 15 25.6069
+510 16 24.2280
+510 17 22.7507
+510 18 21.1749
+510 19 19.4021
+510 20 17.7278
+510 21 13.9853
+510 22  9.8488
+510 23  6.8942
+510 24  5.1214
+510 25  2.2652
+510 26  0.9849
+510 27  0.3940
+510 28  0.0985
+# pixel 511
+511  1  0.8610
+511  2  2.7984
+511  3  7.4265
+511  4 13.3461
+511  5 20.8802
+511  6 25.4007
+511  7 26.7999
+511  8 28.3067
+511  9 30.0288
+511 10 30.6746
+511 11 30.6746
+511 12 30.4593
+511 13 29.8135
+511 14 29.4906
+511 15 27.9838
+511 16 26.4770
+511 17 24.8625
+511 18 23.1405
+511 19 21.2031
+511 20 19.3734
+511 21 15.2835
+511 22 10.7630
+511 23  7.5341
+511 24  5.5968
+511 25  2.4755
+511 26  1.0763
+511 27  0.4305
+511 28  0.1076
+# pixel 512
+512  1  0.6341
+512  2  2.0607
+512  3  5.4688
+512  4  9.8280
+512  5 15.3760
+512  6 18.7048
+512  7 19.7352
+512  8 20.8448
+512  9 22.1129
+512 10 22.5884
+512 11 22.5884
+512 12 22.4299
+512 13 21.9544
+512 14 21.7166
+512 15 20.6070
+512 16 19.4974
+512 17 18.3085
+512 18 17.0404
+512 19 15.6138
+512 20 14.2664
+512 21 11.2546
+512 22  7.9258
+512 23  5.5480
+512 24  4.1214
+512 25  1.8229
+512 26  0.7926
+512 27  0.3170
+512 28  0.0793
+# pixel 513
+513  1  0.6775
+513  2  2.2019
+513  3  5.8434
+513  4 10.5013
+513  5 16.4294
+513  6 19.9863
+513  7 21.0872
+513  8 22.2728
+513  9 23.6278
+513 10 24.1359
+513 11 24.1359
+513 12 23.9666
+513 13 23.4584
+513 14 23.2044
+513 15 22.0188
+513 16 20.8331
+513 17 19.5628
+513 18 18.2078
+513 19 16.6834
+513 20 15.2438
+513 21 12.0256
+513 22  8.4688
+513 23  5.9281
+513 24  4.4038
+513 25  1.9478
+513 26  0.8469
+513 27  0.3388
+513 28  0.0847
+# pixel 514
+514  1  0.7816
+514  2  2.5403
+514  3  6.7416
+514  4 12.1153
+514  5 18.9547
+514  6 23.0582
+514  7 24.3284
+514  8 25.6963
+514  9 27.2595
+514 10 27.8458
+514 11 27.8458
+514 12 27.6504
+514 13 27.0641
+514 14 26.7710
+514 15 25.4031
+514 16 24.0353
+514 17 22.5697
+514 18 21.0065
+514 19 19.2478
+514 20 17.5868
+514 21 13.8740
+514 22  9.7704
+514 23  6.8393
+514 24  5.0806
+514 25  2.2472
+514 26  0.9770
+514 27  0.3908
+514 28  0.0977
+# pixel 515
+515  1  0.7447
+515  2  2.4202
+515  3  6.4228
+515  4 11.5424
+515  5 18.0583
+515  6 21.9679
+515  7 23.1780
+515  8 24.4812
+515  9 25.9705
+515 10 26.5290
+515 11 26.5290
+515 12 26.3428
+515 13 25.7843
+515 14 25.5051
+515 15 24.2019
+515 16 22.8987
+515 17 21.5025
+515 18 20.0131
+515 19 18.3376
+515 20 16.7552
+515 21 13.2180
+515 22  9.3084
+515 23  6.5159
+515 24  4.8404
+515 25  2.1409
+515 26  0.9308
+515 27  0.3723
+515 28  0.0931
+# pixel 516
+516  1  0.6971
+516  2  2.2655
+516  3  6.0122
+516  4 10.8046
+516  5 16.9039
+516  6 20.5635
+516  7 21.6963
+516  8 22.9161
+516  9 24.3103
+516 10 24.8331
+516 11 24.8331
+516 12 24.6588
+516 13 24.1360
+516 14 23.8746
+516 15 22.6547
+516 16 21.4349
+516 17 20.1279
+516 18 18.7337
+516 19 17.1653
+516 20 15.6840
+516 21 12.3730
+516 22  8.7134
+516 23  6.0994
+516 24  4.5309
+516 25  2.0041
+516 26  0.8713
+516 27  0.3485
+516 28  0.0871
+# pixel 517
+517  1  0.7423
+517  2  2.4123
+517  3  6.4019
+517  4 11.5049
+517  5 17.9996
+517  6 21.8965
+517  7 23.1026
+517  8 24.4016
+517  9 25.8861
+517 10 26.4428
+517 11 26.4428
+517 12 26.2572
+517 13 25.7005
+517 14 25.4222
+517 15 24.1232
+517 16 22.8243
+517 17 21.4326
+517 18 19.9481
+517 19 18.2780
+517 20 16.7007
+517 21 13.1750
+517 22  9.2782
+517 23  6.4947
+517 24  4.8246
+517 25  2.1340
+517 26  0.9278
+517 27  0.3711
+517 28  0.0928
+# pixel 518
+518  1  0.6984
+518  2  2.2697
+518  3  6.0235
+518  4 10.8249
+518  5 16.9357
+518  6 20.6023
+518  7 21.7371
+518  8 22.9593
+518  9 24.3561
+518 10 24.8798
+518 11 24.8798
+518 12 24.7052
+518 13 24.1815
+518 14 23.9196
+518 15 22.6974
+518 16 21.4752
+518 17 20.1658
+518 18 18.7690
+518 19 17.1976
+518 20 15.7136
+518 21 12.3963
+518 22  8.7298
+518 23  6.1108
+518 24  4.5395
+518 25  2.0078
+518 26  0.8730
+518 27  0.3492
+518 28  0.0873
+# pixel 519
+519  1  0.6740
+519  2  2.1904
+519  3  5.8129
+519  4 10.4464
+519  5 16.3435
+519  6 19.8818
+519  7 20.9770
+519  8 22.1564
+519  9 23.5043
+519 10 24.0098
+519 11 24.0098
+519 12 23.8413
+519 13 23.3358
+519 14 23.0831
+519 15 21.9037
+519 16 20.7242
+519 17 19.4606
+519 18 18.1126
+519 19 16.5962
+519 20 15.1641
+519 21 11.9628
+519 22  8.4245
+519 23  5.8971
+519 24  4.3807
+519 25  1.9376
+519 26  0.8424
+519 27  0.3370
+519 28  0.0842
+# pixel 520
+520  1  0.7124
+520  2  2.3153
+520  3  6.1444
+520  4 11.0421
+520  5 17.2755
+520  6 21.0155
+520  7 22.1732
+520  8 23.4199
+520  9 24.8446
+520 10 25.3789
+520 11 25.3789
+520 12 25.2008
+520 13 24.6665
+520 14 24.3994
+520 15 23.1527
+520 16 21.9060
+520 17 20.5703
+520 18 19.1455
+520 19 17.5426
+520 20 16.0288
+520 21 12.6449
+520 22  8.9049
+520 23  6.2334
+520 24  4.6305
+520 25  2.0481
+520 26  0.8905
+520 27  0.3562
+520 28  0.0890
+# pixel 521
+521  1  0.7224
+521  2  2.3480
+521  3  6.2311
+521  4 11.1979
+521  5 17.5193
+521  6 21.3122
+521  7 22.4861
+521  8 23.7504
+521  9 25.1953
+521 10 25.7372
+521 11 25.7372
+521 12 25.5565
+521 13 25.0147
+521 14 24.7438
+521 15 23.4795
+521 16 22.2152
+521 17 20.8606
+521 18 19.4157
+521 19 17.7902
+521 20 16.2550
+521 21 12.8234
+521 22  9.0306
+521 23  6.3214
+521 24  4.6959
+521 25  2.0770
+521 26  0.9031
+521 27  0.3612
+521 28  0.0903
+# pixel 522
+522  1  0.6434
+522  2  2.0910
+522  3  5.5493
+522  4  9.9727
+522  5 15.6024
+522  6 18.9803
+522  7 20.0258
+522  8 21.1518
+522  9 22.4386
+522 10 22.9211
+522 11 22.9211
+522 12 22.7603
+522 13 22.2777
+522 14 22.0364
+522 15 20.9105
+522 16 19.7845
+522 17 18.5782
+522 18 17.2914
+522 19 15.8437
+522 20 14.4765
+522 21 11.4203
+522 22  8.0425
+522 23  5.6297
+522 24  4.1821
+522 25  1.8498
+522 26  0.8042
+522 27  0.3217
+522 28  0.0804
+# pixel 523
+523  1  0.7048
+523  2  2.2905
+523  3  6.0786
+523  4 10.9238
+523  5 17.0905
+523  6 20.7905
+523  7 21.9358
+523  8 23.1691
+523  9 24.5786
+523 10 25.1072
+523 11 25.1072
+523 12 24.9310
+523 13 24.4024
+523 14 24.1381
+523 15 22.9048
+523 16 21.6715
+523 17 20.3500
+523 18 18.9405
+523 19 17.3548
+523 20 15.8572
+523 21 12.5095
+523 22  8.8095
+523 23  6.1667
+523 24  4.5810
+523 25  2.0262
+523 26  0.8810
+523 27  0.3524
+523 28  0.0881
+# pixel 524
+524  1  0.7744
+524  2  2.5167
+524  3  6.6790
+524  4 12.0028
+524  5 18.7786
+524  6 22.8441
+524  7 24.1024
+524  8 25.4576
+524  9 27.0063
+524 10 27.5871
+524 11 27.5871
+524 12 27.3935
+524 13 26.8127
+524 14 26.5223
+524 15 25.1672
+524 16 23.8120
+524 17 22.3601
+524 18 20.8113
+524 19 19.0690
+524 20 17.4234
+524 21 13.7452
+524 22  9.6797
+524 23  6.7758
+524 24  5.0334
+524 25  2.2263
+524 26  0.9680
+524 27  0.3872
+524 28  0.0968
+# pixel 525
+525  1  0.6528
+525  2  2.1216
+525  3  5.6303
+525  4 10.1182
+525  5 15.8301
+525  6 19.2572
+525  7 20.3180
+525  8 21.4604
+525  9 22.7660
+525 10 23.2556
+525 11 23.2556
+525 12 23.0924
+525 13 22.6028
+525 14 22.3580
+525 15 21.2156
+525 16 20.0732
+525 17 18.8493
+525 18 17.5437
+525 19 16.0749
+525 20 14.6877
+525 21 11.5870
+525 22  8.1598
+525 23  5.7119
+525 24  4.2431
+525 25  1.8768
+525 26  0.8160
+525 27  0.3264
+525 28  0.0816
+# pixel 526
+526  1  0.7617
+526  2  2.4756
+526  3  6.5700
+526  4 11.8069
+526  5 18.4721
+526  6 22.4713
+526  7 23.7091
+526  8 25.0421
+526  9 26.5656
+526 10 27.1369
+526 11 27.1369
+526 12 26.9465
+526 13 26.3752
+526 14 26.0895
+526 15 24.7565
+526 16 23.4234
+526 17 21.9952
+526 18 20.4717
+526 19 18.7578
+526 20 17.1391
+526 21 13.5209
+526 22  9.5217
+526 23  6.6652
+526 24  4.9513
+526 25  2.1900
+526 26  0.9522
+526 27  0.3809
+526 28  0.0952
+# pixel 527
+527  1  0.6592
+527  2  2.1425
+527  3  5.6860
+527  4 10.2183
+527  5 15.9866
+527  6 19.4476
+527  7 20.5189
+527  8 21.6726
+527  9 22.9911
+527 10 23.4855
+527 11 23.4855
+527 12 23.3207
+527 13 22.8263
+527 14 22.5790
+527 15 21.4254
+527 16 20.2717
+527 17 19.0356
+527 18 17.7171
+527 19 16.2338
+527 20 14.8329
+527 21 11.7015
+527 22  8.2405
+527 23  5.7684
+527 24  4.2851
+527 25  1.8953
+527 26  0.8241
+527 27  0.3296
+527 28  0.0824
+# pixel 528
+528  1  0.7982
+528  2  2.5942
+528  3  6.8845
+528  4 12.3722
+528  5 19.3564
+528  6 23.5470
+528  7 24.8441
+528  8 26.2409
+528  9 27.8374
+528 10 28.4360
+528 11 28.4360
+528 12 28.2365
+528 13 27.6378
+528 14 27.3385
+528 15 25.9416
+528 16 24.5448
+528 17 23.0481
+528 18 21.4517
+528 19 19.6558
+528 20 17.9596
+528 21 14.1681
+528 22  9.9775
+528 23  6.9843
+528 24  5.1883
+528 25  2.2948
+528 26  0.9978
+528 27  0.3991
+528 28  0.0998
+# pixel 529
+529  1  0.8087
+529  2  2.6284
+529  3  6.9752
+529  4 12.5352
+529  5 19.6115
+529  6 23.8573
+529  7 25.1715
+529  8 26.5868
+529  9 28.2042
+529 10 28.8108
+529 11 28.8108
+529 12 28.6086
+529 13 28.0021
+529 14 27.6988
+529 15 26.2835
+529 16 24.8683
+529 17 23.3519
+529 18 21.7344
+529 19 19.9148
+529 20 18.1963
+529 21 14.3548
+529 22 10.1090
+529 23  7.0763
+529 24  5.2567
+529 25  2.3251
+529 26  1.0109
+529 27  0.4044
+529 28  0.1011
+# pixel 530
+530  1  0.7772
+530  2  2.5260
+530  3  6.7037
+530  4 12.0473
+530  5 18.8482
+530  6 22.9287
+530  7 24.1917
+530  8 25.5519
+530  9 27.1064
+530 10 27.6893
+530 11 27.6893
+530 12 27.4950
+530 13 26.9121
+530 14 26.6206
+530 15 25.2604
+530 16 23.9002
+530 17 22.4429
+530 18 20.8884
+530 19 19.1396
+530 20 17.4880
+530 21 13.7961
+530 22  9.7155
+530 23  6.8009
+530 24  5.0521
+530 25  2.2346
+530 26  0.9716
+530 27  0.3886
+530 28  0.0972
+# pixel 531
+531  1  0.6886
+531  2  2.2380
+531  3  5.9392
+531  4 10.6733
+531  5 16.6986
+531  6 20.3137
+531  7 21.4327
+531  8 22.6378
+531  9 24.0150
+531 10 24.5314
+531 11 24.5314
+531 12 24.3593
+531 13 23.8428
+531 14 23.5846
+531 15 22.3795
+531 16 21.1745
+531 17 19.8834
+531 18 18.5062
+531 19 16.9568
+531 20 15.4935
+531 21 12.2227
+531 22  8.6075
+531 23  6.0253
+531 24  4.4759
+531 25  1.9797
+531 26  0.8608
+531 27  0.3443
+531 28  0.0861
+# pixel 532
+532  1  0.7346
+532  2  2.3874
+532  3  6.3357
+532  4 11.3859
+532  5 17.8134
+532  6 21.6699
+532  7 22.8636
+532  8 24.1491
+532  9 25.6182
+532 10 26.1691
+532 11 26.1691
+532 12 25.9855
+532 13 25.4346
+532 14 25.1591
+532 15 23.8736
+532 16 22.5881
+532 17 21.2108
+532 18 19.7416
+532 19 18.0888
+532 20 16.5279
+532 21 13.0387
+532 22  9.1821
+532 23  6.4275
+532 24  4.7747
+532 25  2.1119
+532 26  0.9182
+532 27  0.3673
+532 28  0.0918
+# pixel 533
+533  1  0.7890
+533  2  2.5643
+533  3  6.8054
+533  4 12.2299
+533  5 19.1339
+533  6 23.2763
+533  7 24.5585
+533  8 25.9393
+533  9 27.5174
+533 10 28.1091
+533 11 28.1091
+533 12 27.9119
+533 13 27.3201
+533 14 27.0242
+533 15 25.6434
+533 16 24.2626
+533 17 22.7832
+533 18 21.2051
+533 19 19.4298
+533 20 17.7531
+533 21 14.0052
+533 22  9.8629
+533 23  6.9040
+533 24  5.1287
+533 25  2.2685
+533 26  0.9863
+533 27  0.3945
+533 28  0.0986
+# pixel 534
+534  1  0.7380
+534  2  2.3985
+534  3  6.3654
+534  4 11.4392
+534  5 17.8968
+534  6 21.7714
+534  7 22.9706
+534  8 24.2621
+534  9 25.7382
+534 10 26.2917
+534 11 26.2917
+534 12 26.1072
+534 13 25.5537
+534 14 25.2769
+534 15 23.9854
+534 16 22.6939
+534 17 21.3101
+534 18 19.8341
+534 19 18.1735
+534 20 16.6053
+534 21 13.0997
+534 22  9.2251
+534 23  6.4576
+534 24  4.7971
+534 25  2.1218
+534 26  0.9225
+534 27  0.3690
+534 28  0.0923
+# pixel 535
+535  1  0.7567
+535  2  2.4591
+535  3  6.5262
+535  4 11.7282
+535  5 18.3489
+535  6 22.3213
+535  7 23.5509
+535  8 24.8751
+535  9 26.3884
+535 10 26.9559
+535 11 26.9559
+535 12 26.7667
+535 13 26.1992
+535 14 25.9155
+535 15 24.5913
+535 16 23.2672
+535 17 21.8484
+535 18 20.3351
+535 19 18.6326
+535 20 17.0248
+535 21 13.4306
+535 22  9.4582
+535 23  6.6207
+535 24  4.9183
+535 25  2.1754
+535 26  0.9458
+535 27  0.3783
+535 28  0.0946
+# pixel 536
+536  1  0.6490
+536  2  2.1091
+536  3  5.5973
+536  4 10.0589
+536  5 15.7374
+536  6 19.1444
+536  7 20.1990
+536  8 21.3347
+536  9 22.6326
+536 10 23.1193
+536 11 23.1193
+536 12 22.9571
+536 13 22.4704
+536 14 22.2270
+536 15 21.0913
+536 16 19.9556
+536 17 18.7388
+536 18 17.4409
+536 19 15.9807
+536 20 14.6017
+536 21 11.5191
+536 22  8.1120
+536 23  5.6784
+536 24  4.2183
+536 25  1.8658
+536 26  0.8112
+536 27  0.3245
+536 28  0.0811
+# pixel 537
+537  1  0.6801
+537  2  2.2103
+537  3  5.8657
+537  4 10.5412
+537  5 16.4919
+537  6 20.0624
+537  7 21.1675
+537  8 22.3576
+537  9 23.7178
+537 10 24.2278
+537 11 24.2278
+537 12 24.0578
+537 13 23.5478
+537 14 23.2927
+537 15 22.1026
+537 16 20.9125
+537 17 19.6373
+537 18 18.2771
+537 19 16.7470
+537 20 15.3018
+537 21 12.0714
+537 22  8.5010
+537 23  5.9507
+537 24  4.4205
+537 25  1.9552
+537 26  0.8501
+537 27  0.3400
+537 28  0.0850
+# pixel 538
+538  1  0.6628
+538  2  2.1542
+538  3  5.7170
+538  4 10.2741
+538  5 16.0739
+538  6 19.5538
+538  7 20.6310
+538  8 21.7909
+538  9 23.1166
+538 10 23.6138
+538 11 23.6138
+538 12 23.4480
+538 13 22.9509
+538 14 22.7023
+538 15 21.5424
+538 16 20.3824
+538 17 19.1396
+538 18 17.8139
+538 19 16.3225
+538 20 14.9140
+538 21 11.7654
+538 22  8.2855
+538 23  5.7999
+538 24  4.3085
+538 25  1.9057
+538 26  0.8286
+538 27  0.3314
+538 28  0.0829
+# pixel 539
+539  1  0.6846
+539  2  2.2251
+539  3  5.9051
+539  4 10.6120
+539  5 16.6027
+539  6 20.1971
+539  7 21.3096
+539  8 22.5078
+539  9 23.8771
+539 10 24.3906
+539 11 24.3906
+539 12 24.2194
+539 13 23.7059
+539 14 23.4492
+539 15 22.2510
+539 16 21.0529
+539 17 19.7692
+539 18 18.3999
+539 19 16.8594
+539 20 15.4046
+539 21 12.1525
+539 22  8.5581
+539 23  5.9907
+539 24  4.4502
+539 25  1.9684
+539 26  0.8558
+539 27  0.3423
+539 28  0.0856
+# pixel 540
+540  1  0.7688
+540  2  2.4987
+540  3  6.6312
+540  4 11.9169
+540  5 18.6441
+540  6 22.6805
+540  7 23.9298
+540  8 25.2753
+540  9 26.8129
+540 10 27.3895
+540 11 27.3895
+540 12 27.1973
+540 13 26.6207
+540 14 26.3324
+540 15 24.9870
+540 16 23.6415
+540 17 22.1999
+540 18 20.6623
+540 19 18.9324
+540 20 17.2987
+540 21 13.6467
+540 22  9.6104
+540 23  6.7273
+540 24  4.9974
+540 25  2.2104
+540 26  0.9610
+540 27  0.3844
+540 28  0.0961
+# pixel 541
+541  1  0.7075
+541  2  2.2993
+541  3  6.1019
+541  4 10.9657
+541  5 17.1560
+541  6 20.8702
+541  7 22.0198
+541  8 23.2579
+541  9 24.6728
+541 10 25.2034
+541 11 25.2034
+541 12 25.0265
+541 13 24.4959
+541 14 24.2306
+541 15 22.9926
+541 16 21.7545
+541 17 20.4280
+541 18 19.0131
+541 19 17.4213
+541 20 15.9179
+541 21 12.5575
+541 22  8.8433
+541 23  6.1903
+541 24  4.5985
+541 25  2.0340
+541 26  0.8843
+541 27  0.3537
+541 28  0.0884
+# pixel 542
+542  1  0.7803
+542  2  2.5361
+542  3  6.7304
+542  4 12.0952
+542  5 18.9231
+542  6 23.0198
+542  7 24.2879
+542  8 25.6534
+542  9 27.2141
+542 10 27.7994
+542 11 27.7994
+542 12 27.6043
+542 13 27.0190
+542 14 26.7264
+542 15 25.3608
+542 16 23.9952
+542 17 22.5321
+542 18 20.9714
+542 19 19.2157
+542 20 17.5575
+542 21 13.8509
+542 22  9.7542
+542 23  6.8279
+542 24  5.0722
+542 25  2.2435
+542 26  0.9754
+542 27  0.3902
+542 28  0.0975
+# pixel 543
+543  1  0.5926
+543  2  1.9260
+543  3  5.1113
+543  4  9.1856
+543  5 14.3710
+543  6 17.4823
+543  7 18.4453
+543  8 19.4824
+543  9 20.6676
+543 10 21.1121
+543 11 21.1121
+543 12 20.9639
+543 13 20.5195
+543 14 20.2972
+543 15 19.2601
+543 16 18.2230
+543 17 17.1119
+543 18 15.9266
+543 19 14.5933
+543 20 13.3339
+543 21 10.5190
+543 22  7.4077
+543 23  5.1854
+543 24  3.8520
+543 25  1.7038
+543 26  0.7408
+543 27  0.2963
+543 28  0.0741
+# pixel 544
+544  1  0.7204
+544  2  2.3414
+544  3  6.2138
+544  4 11.1669
+544  5 17.4708
+544  6 21.2531
+544  7 22.4239
+544  8 23.6846
+544  9 25.1255
+544 10 25.6659
+544 11 25.6659
+544 12 25.4857
+544 13 24.9454
+544 14 24.6752
+544 15 23.4145
+544 16 22.1537
+544 17 20.8029
+544 18 19.3620
+544 19 17.7410
+544 20 16.2100
+544 21 12.7879
+544 22  9.0056
+544 23  6.3039
+544 24  4.6829
+544 25  2.0713
+544 26  0.9006
+544 27  0.3602
+544 28  0.0901
+# pixel 545
+545  1  0.7136
+545  2  2.3193
+545  3  6.1551
+545  4 11.0614
+545  5 17.3057
+545  6 21.0523
+545  7 22.2120
+545  8 23.4609
+545  9 24.8881
+545 10 25.4234
+545 11 25.4234
+545 12 25.2450
+545 13 24.7097
+545 14 24.4421
+545 15 23.1933
+545 16 21.9444
+545 17 20.6063
+545 18 19.1790
+545 19 17.5734
+545 20 16.0569
+545 21 12.6671
+545 22  8.9205
+545 23  6.2443
+545 24  4.6387
+545 25  2.0517
+545 26  0.8920
+545 27  0.3568
+545 28  0.0892
+# pixel 546
+546  1  0.8569
+546  2  2.7848
+546  3  7.3904
+546  4 13.2813
+546  5 20.7788
+546  6 25.2773
+546  7 26.6697
+546  8 28.1692
+546  9 29.8830
+546 10 30.5256
+546 11 30.5256
+546 12 30.3114
+546 13 29.6687
+546 14 29.3474
+546 15 27.8479
+546 16 26.3484
+546 17 24.7418
+546 18 23.0281
+546 19 21.1001
+546 20 19.2793
+546 21 15.2092
+546 22 10.7107
+546 23  7.4975
+546 24  5.5696
+546 25  2.4635
+546 26  1.0711
+546 27  0.4284
+546 28  0.1071
+# pixel 547
+547  1  0.7070
+547  2  2.2978
+547  3  6.0981
+547  4 10.9589
+547  5 17.1455
+547  6 20.8574
+547  7 22.0063
+547  8 23.2436
+547  9 24.6576
+547 10 25.1879
+547 11 25.1879
+547 12 25.0111
+547 13 24.4809
+547 14 24.2157
+547 15 22.9784
+547 16 21.7411
+547 17 20.4155
+547 18 19.0014
+547 19 17.4106
+547 20 15.9081
+547 21 12.5498
+547 22  8.8379
+547 23  6.1865
+547 24  4.5957
+547 25  2.0327
+547 26  0.8838
+547 27  0.3535
+547 28  0.0884
+# pixel 548
+548  1  0.7154
+548  2  2.3249
+548  3  6.1700
+548  4 11.0881
+548  5 17.3475
+548  6 21.1031
+548  7 22.2655
+548  8 23.5174
+548  9 24.9481
+548 10 25.4847
+548 11 25.4847
+548 12 25.3058
+548 13 24.7693
+548 14 24.5010
+548 15 23.2492
+548 16 21.9973
+548 17 20.6560
+548 18 19.2253
+548 19 17.6157
+548 20 16.0956
+548 21 12.6976
+548 22  8.9420
+548 23  6.2594
+548 24  4.6498
+548 25  2.0567
+548 26  0.8942
+548 27  0.3577
+548 28  0.0894
+# pixel 549
+549  1  0.7165
+549  2  2.3285
+549  3  6.1796
+549  4 11.1053
+549  5 17.3745
+549  6 21.1359
+549  7 22.3002
+549  8 23.5540
+549  9 24.9870
+549 10 25.5243
+549 11 25.5243
+549 12 25.3452
+549 13 24.8079
+549 14 24.5392
+549 15 23.2853
+549 16 22.0315
+549 17 20.6881
+549 18 19.2552
+549 19 17.6431
+549 20 16.1206
+549 21 12.7174
+549 22  8.9559
+549 23  6.2691
+549 24  4.6571
+549 25  2.0599
+549 26  0.8956
+549 27  0.3582
+549 28  0.0896
+# pixel 550
+550  1  0.7698
+550  2  2.5017
+550  3  6.6392
+550  4 11.9313
+550  5 18.6667
+550  6 22.7080
+550  7 23.9589
+550  8 25.3059
+550  9 26.8455
+550 10 27.4228
+550 11 27.4228
+550 12 27.2304
+550 13 26.6530
+550 14 26.3644
+550 15 25.0173
+550 16 23.6702
+550 17 22.2269
+550 18 20.6874
+550 19 18.9554
+550 20 17.3197
+550 21 13.6633
+550 22  9.6220
+550 23  6.7354
+550 24  5.0035
+550 25  2.2131
+550 26  0.9622
+550 27  0.3849
+550 28  0.0962
+# pixel 551
+551  1  0.6393
+551  2  2.0777
+551  3  5.5140
+551  4  9.9092
+551  5 15.5032
+551  6 18.8595
+551  7 19.8984
+551  8 21.0172
+551  9 22.2958
+551 10 22.7753
+551 11 22.7753
+551 12 22.6154
+551 13 22.1360
+551 14 21.8962
+551 15 20.7774
+551 16 19.6587
+551 17 18.4600
+551 18 17.1813
+551 19 15.7429
+551 20 14.3844
+551 21 11.3477
+551 22  7.9913
+551 23  5.5939
+551 24  4.1555
+551 25  1.8380
+551 26  0.7991
+551 27  0.3197
+551 28  0.0799
+# pixel 552
+552  1  0.7338
+552  2  2.3848
+552  3  6.3288
+552  4 11.3734
+552  5 17.7939
+552  6 21.6462
+552  7 22.8386
+552  8 24.1227
+552  9 25.5902
+552 10 26.1406
+552 11 26.1406
+552 12 25.9571
+552 13 25.4068
+552 14 25.1316
+552 15 23.8475
+552 16 22.5634
+552 17 21.1876
+552 18 19.7201
+552 19 18.0691
+552 20 16.5098
+552 21 13.0244
+552 22  9.1721
+552 23  6.4205
+552 24  4.7695
+552 25  2.1096
+552 26  0.9172
+552 27  0.3669
+552 28  0.0917
+# pixel 553
+553  1  0.6465
+553  2  2.1010
+553  3  5.5758
+553  4 10.0203
+553  5 15.6769
+553  6 19.0709
+553  7 20.1214
+553  8 21.2527
+553  9 22.5457
+553 10 23.0305
+553 11 23.0305
+553 12 22.8689
+553 13 22.3841
+553 14 22.1416
+553 15 21.0103
+553 16 19.8790
+553 17 18.6669
+553 18 17.3739
+553 19 15.9193
+553 20 14.5456
+553 21 11.4749
+553 22  8.0809
+553 23  5.6566
+553 24  4.2021
+553 25  1.8586
+553 26  0.8081
+553 27  0.3232
+553 28  0.0808
+# pixel 554
+554  1  0.7159
+554  2  2.3267
+554  3  6.1748
+554  4 11.0967
+554  5 17.3609
+554  6 21.1194
+554  7 22.2828
+554  8 23.5357
+554  9 24.9675
+554 10 25.5044
+554 11 25.5044
+554 12 25.3254
+554 13 24.7885
+554 14 24.5200
+554 15 23.2672
+554 16 22.0143
+554 17 20.6720
+554 18 19.2402
+554 19 17.6294
+554 20 16.1081
+554 21 12.7075
+554 22  8.9489
+554 23  6.2642
+554 24  4.6534
+554 25  2.0583
+554 26  0.8949
+554 27  0.3580
+554 28  0.0895
+# pixel 555
+555  1  0.8353
+555  2  2.7146
+555  3  7.2042
+555  4 12.9468
+555  5 20.2554
+555  6 24.6406
+555  7 25.9979
+555  8 27.4597
+555  9 29.1302
+555 10 29.7567
+555 11 29.7567
+555 12 29.5478
+555 13 28.9214
+555 14 28.6082
+555 15 27.1464
+555 16 25.6847
+555 17 24.1186
+555 18 22.4480
+555 19 20.5686
+555 20 18.7937
+555 21 14.8261
+555 22 10.4409
+555 23  7.3087
+555 24  5.4293
+555 25  2.4014
+555 26  1.0441
+555 27  0.4176
+555 28  0.1044
+# pixel 556
+556  1  0.8400
+556  2  2.7301
+556  3  7.2453
+556  4 13.0205
+556  5 20.3708
+556  6 24.7810
+556  7 26.1460
+556  8 27.6161
+556  9 29.2961
+556 10 29.9262
+556 11 29.9262
+556 12 29.7162
+556 13 29.0861
+556 14 28.7711
+556 15 27.3011
+556 16 25.8310
+556 17 24.2559
+556 18 22.5759
+556 19 20.6858
+556 20 18.9007
+556 21 14.9106
+556 22 10.5004
+556 23  7.3503
+556 24  5.4602
+556 25  2.4151
+556 26  1.0500
+556 27  0.4200
+556 28  0.1050
+# pixel 557
+557  1  0.7857
+557  2  2.5536
+557  3  6.7768
+557  4 12.1786
+557  5 19.0536
+557  6 23.1786
+557  7 24.4554
+557  8 25.8304
+557  9 27.4018
+557 10 27.9911
+557 11 27.9911
+557 12 27.7946
+557 13 27.2054
+557 14 26.9107
+557 15 25.5357
+557 16 24.1607
+557 17 22.6875
+557 18 21.1161
+557 19 19.3482
+557 20 17.6786
+557 21 13.9464
+557 22  9.8214
+557 23  6.8750
+557 24  5.1071
+557 25  2.2589
+557 26  0.9821
+557 27  0.3929
+557 28  0.0982
+# pixel 558
+558  1  0.7204
+558  2  2.3413
+558  3  6.2134
+558  4 11.1661
+558  5 17.4695
+558  6 21.2516
+558  7 22.4223
+558  8 23.6829
+558  9 25.1237
+558 10 25.6640
+558 11 25.6640
+558 12 25.4839
+558 13 24.9436
+558 14 24.6735
+558 15 23.4128
+558 16 22.1521
+558 17 20.8014
+558 18 19.3606
+558 19 17.7397
+558 20 16.2089
+558 21 12.7870
+558 22  9.0049
+558 23  6.3034
+558 24  4.6826
+558 25  2.0711
+558 26  0.9005
+558 27  0.3602
+558 28  0.0900
+# pixel 559
+559  1  0.7831
+559  2  2.5452
+559  3  6.7547
+559  4 12.1388
+559  5 18.9914
+559  6 23.1029
+559  7 24.3755
+559  8 25.7460
+559  9 27.3123
+559 10 27.8997
+559 11 27.8997
+559 12 27.7039
+559 13 27.1165
+559 14 26.8229
+559 15 25.4524
+559 16 24.0818
+559 17 22.6134
+559 18 21.0471
+559 19 19.2851
+559 20 17.6209
+559 21 13.9009
+559 22  9.7894
+559 23  6.8526
+559 24  5.0905
+559 25  2.2516
+559 26  0.9789
+559 27  0.3916
+559 28  0.0979
+# pixel 560
+560  1  0.6736
+560  2  2.1892
+560  3  5.8099
+560  4 10.4410
+560  5 16.3351
+560  6 19.8715
+560  7 20.9661
+560  8 22.1450
+560  9 23.4922
+560 10 23.9974
+560 11 23.9974
+560 12 23.8290
+560 13 23.3238
+560 14 23.0712
+560 15 21.8923
+560 16 20.7135
+560 17 19.4505
+560 18 18.1033
+560 19 16.5877
+560 20 15.1562
+560 21 11.9566
+560 22  8.4201
+560 23  5.8941
+560 24  4.3785
+560 25  1.9366
+560 26  0.8420
+560 27  0.3368
+560 28  0.0842
+# pixel 561
+561  1  0.8033
+561  2  2.6107
+561  3  6.9285
+561  4 12.4512
+561  5 19.4801
+561  6 23.6974
+561  7 25.0028
+561  8 26.4086
+561  9 28.0152
+561 10 28.6177
+561 11 28.6177
+561 12 28.4168
+561 13 27.8144
+561 14 27.5131
+561 15 26.1073
+561 16 24.7016
+561 17 23.1954
+561 18 21.5888
+561 19 19.7813
+561 20 18.0743
+561 21 14.2586
+561 22 10.0413
+561 23  7.0289
+561 24  5.2215
+561 25  2.3095
+561 26  1.0041
+561 27  0.4017
+561 28  0.1004
+# pixel 562
+562  1  0.6053
+562  2  1.9671
+562  3  5.2203
+562  4  9.3815
+562  5 14.6774
+562  6 17.8550
+562  7 18.8386
+562  8 19.8978
+562  9 21.1083
+562 10 21.5622
+562 11 21.5622
+562 12 21.4109
+562 13 20.9570
+562 14 20.7300
+562 15 19.6708
+562 16 18.6116
+562 17 17.4767
+562 18 16.2662
+562 19 14.9044
+562 20 13.6182
+562 21 10.7433
+562 22  7.5657
+562 23  5.2960
+562 24  3.9342
+562 25  1.7401
+562 26  0.7566
+562 27  0.3026
+562 28  0.0757
+# pixel 563
+563  1  0.7461
+563  2  2.4250
+563  3  6.4355
+563  4 11.5653
+563  5 18.0941
+563  6 22.0113
+563  7 23.2238
+563  8 24.5296
+563  9 26.0219
+563 10 26.5815
+563 11 26.5815
+563 12 26.3949
+563 13 25.8353
+563 14 25.5555
+563 15 24.2498
+563 16 22.9440
+563 17 21.5450
+563 18 20.0527
+563 19 18.3739
+563 20 16.7883
+563 21 13.2441
+563 22  9.3268
+563 23  6.5288
+563 24  4.8500
+563 25  2.1452
+563 26  0.9327
+563 27  0.3731
+563 28  0.0933
+# pixel 564
+564  1  0.7496
+564  2  2.4364
+564  3  6.4657
+564  4 11.6195
+564  5 18.1789
+564  6 22.1146
+564  7 23.3327
+564  8 24.6446
+564  9 26.1439
+564 10 26.7062
+564 11 26.7062
+564 12 26.5187
+564 13 25.9565
+564 14 25.6754
+564 15 24.3635
+564 16 23.0516
+564 17 21.6460
+564 18 20.1467
+564 19 18.4600
+564 20 16.8670
+564 21 13.3062
+564 22  9.3706
+564 23  6.5594
+564 24  4.8727
+564 25  2.1552
+564 26  0.9371
+564 27  0.3748
+564 28  0.0937
+# pixel 565
+565  1  0.8198
+565  2  2.6642
+565  3  7.0704
+565  4 12.7061
+565  5 19.8790
+565  6 24.1827
+565  7 25.5148
+565  8 26.9493
+565  9 28.5888
+565 10 29.2036
+565 11 29.2036
+565 12 28.9987
+565 13 28.3839
+565 14 28.0765
+565 15 26.6419
+565 16 25.2074
+565 17 23.6703
+565 18 22.0308
+565 19 20.1864
+565 20 18.4444
+565 21 14.5506
+565 22 10.2469
+565 23  7.1728
+565 24  5.3284
+565 25  2.3568
+565 26  1.0247
+565 27  0.4099
+565 28  0.1025
+# pixel 566
+566  1  0.7346
+566  2  2.3873
+566  3  6.3355
+566  4 11.3856
+566  5 17.8130
+566  6 21.6694
+566  7 22.8630
+566  8 24.1485
+566  9 25.6176
+566 10 26.1685
+566 11 26.1685
+566 12 25.9849
+566 13 25.4340
+566 14 25.1585
+566 15 23.8731
+566 16 22.5876
+566 17 21.2103
+566 18 19.7412
+566 19 18.0884
+566 20 16.5275
+566 21 13.0384
+566 22  9.1819
+566 23  6.4274
+566 24  4.7746
+566 25  2.1118
+566 26  0.9182
+566 27  0.3673
+566 28  0.0918
+# pixel 567
+567  1  0.7871
+567  2  2.5579
+567  3  6.7883
+567  4 12.1993
+567  5 19.0861
+567  6 23.2181
+567  7 24.4971
+567  8 25.8744
+567  9 27.4485
+567 10 28.0388
+567 11 28.0388
+567 12 27.8420
+567 13 27.2518
+567 14 26.9566
+567 15 25.5793
+567 16 24.2019
+567 17 22.7262
+567 18 21.1521
+567 19 19.3812
+567 20 17.7087
+567 21 13.9702
+567 22  9.8382
+567 23  6.8867
+567 24  5.1159
+567 25  2.2628
+567 26  0.9838
+567 27  0.3935
+567 28  0.0984
+# pixel 568
+568  1  0.6313
+568  2  2.0516
+568  3  5.4447
+568  4  9.7847
+568  5 15.3083
+568  6 18.6224
+568  7 19.6483
+568  8 20.7530
+568  9 22.0155
+568 10 22.4890
+568 11 22.4890
+568 12 22.3311
+568 13 21.8577
+568 14 21.6210
+568 15 20.5163
+568 16 19.4115
+568 17 18.2279
+568 18 16.9654
+568 19 15.5450
+568 20 14.2036
+568 21 11.2050
+568 22  7.8909
+568 23  5.5236
+568 24  4.1033
+568 25  1.8149
+568 26  0.7891
+568 27  0.3156
+568 28  0.0789
+# pixel 569
+569  1  0.7415
+569  2  2.4100
+569  3  6.3957
+569  4 11.4937
+569  5 17.9821
+569  6 21.8751
+569  7 23.0801
+569  8 24.3778
+569  9 25.8609
+569 10 26.4170
+569 11 26.4170
+569 12 26.2316
+569 13 25.6755
+569 14 25.3974
+569 15 24.0997
+569 16 22.8020
+569 17 21.4117
+569 18 19.9286
+569 19 18.2602
+569 20 16.6844
+569 21 13.1622
+569 22  9.2691
+569 23  6.4884
+569 24  4.8199
+569 25  2.1319
+569 26  0.9269
+569 27  0.3708
+569 28  0.0927
+# pixel 570
+570  1  0.6463
+570  2  2.1006
+570  3  5.5746
+570  4 10.0181
+570  5 15.6735
+570  6 19.0667
+570  7 20.1170
+570  8 21.2481
+570  9 22.5407
+570 10 23.0255
+570 11 23.0255
+570 12 22.8639
+570 13 22.3791
+570 14 22.1368
+570 15 21.0057
+570 16 19.8746
+570 17 18.6628
+570 18 17.3701
+570 19 15.9159
+570 20 14.5424
+570 21 11.4723
+570 22  8.0791
+570 23  5.6554
+570 24  4.2011
+570 25  1.8582
+570 26  0.8079
+570 27  0.3232
+570 28  0.0808
+# pixel 571
+571  1  0.7347
+571  2  2.3878
+571  3  6.3367
+571  4 11.3877
+571  5 17.8163
+571  6 21.6734
+571  7 22.8673
+571  8 24.1530
+571  9 25.6224
+571 10 26.1734
+571 11 26.1734
+571 12 25.9898
+571 13 25.4387
+571 14 25.1632
+571 15 23.8775
+571 16 22.5918
+571 17 21.2143
+571 18 19.7449
+571 19 18.0918
+571 20 16.5306
+571 21 13.0408
+571 22  9.1837
+571 23  6.4286
+571 24  4.7755
+571 25  2.1122
+571 26  0.9184
+571 27  0.3673
+571 28  0.0918
+# pixel 572
+572  1  0.7183
+572  2  2.3344
+572  3  6.1952
+572  4 11.1333
+572  5 17.4183
+572  6 21.1893
+572  7 22.3565
+572  8 23.6135
+572  9 25.0500
+572 10 25.5887
+572 11 25.5887
+572 12 25.4092
+572 13 24.8705
+572 14 24.6011
+572 15 23.3441
+572 16 22.0871
+572 17 20.7403
+572 18 19.3038
+572 19 17.6877
+572 20 16.1613
+572 21 12.7495
+572 22  8.9785
+572 23  6.2850
+572 24  4.6688
+572 25  2.0651
+572 26  0.8979
+572 27  0.3591
+572 28  0.0898
+# pixel 573
+573  1  0.6981
+573  2  2.2688
+573  3  6.0210
+573  4 10.8203
+573  5 16.9285
+573  6 20.5934
+573  7 21.7278
+573  8 22.9495
+573  9 24.3456
+573 10 24.8692
+573 11 24.8692
+573 12 24.6947
+573 13 24.1711
+573 14 23.9093
+573 15 22.6877
+573 16 21.4660
+573 17 20.1571
+573 18 18.7610
+573 19 17.1903
+573 20 15.7069
+573 21 12.3910
+573 22  8.7260
+573 23  6.1082
+573 24  4.5375
+573 25  2.0070
+573 26  0.8726
+573 27  0.3490
+573 28  0.0873
+# pixel 574
+574  1  0.8040
+574  2  2.6130
+574  3  6.9346
+574  4 12.4621
+574  5 19.4972
+574  6 23.7182
+574  7 25.0248
+574  8 26.4318
+574  9 28.0398
+574 10 28.6428
+574 11 28.6428
+574 12 28.4418
+574 13 27.8388
+574 14 27.5373
+574 15 26.1303
+574 16 24.7233
+574 17 23.2157
+574 18 21.6077
+574 19 19.7987
+574 20 18.0902
+574 21 14.2711
+574 22 10.0501
+574 23  7.0351
+574 24  5.2261
+574 25  2.3115
+574 26  1.0050
+574 27  0.4020
+574 28  0.1005
+# pixel 575
+575  1  0.7420
+575  2  2.4116
+575  3  6.4000
+575  4 11.5014
+575  5 17.9941
+575  6 21.8897
+575  7 23.0955
+575  8 24.3941
+575  9 25.8781
+575 10 26.4346
+575 11 26.4346
+575 12 26.2491
+575 13 25.6926
+575 14 25.4143
+575 15 24.1158
+575 16 22.8173
+575 17 21.4260
+575 18 19.9419
+575 19 18.2724
+575 20 16.6955
+575 21 13.1709
+575 22  9.2753
+575 23  6.4927
+575 24  4.8232
+575 25  2.1333
+575 26  0.9275
+575 27  0.3710
+575 28  0.0928
+# pixel 576
+576  1  0.7839
+576  2  2.5478
+576  3  6.7615
+576  4 12.1511
+576  5 19.0106
+576  6 23.1263
+576  7 24.4002
+576  8 25.7721
+576  9 27.3400
+576 10 27.9280
+576 11 27.9280
+576 12 27.7320
+576 13 27.1440
+576 14 26.8500
+576 15 25.4781
+576 16 24.1062
+576 17 22.6363
+576 18 21.0685
+576 19 19.3046
+576 20 17.6387
+576 21 13.9150
+576 22  9.7993
+576 23  6.8595
+576 24  5.0956
+576 25  2.2538
+576 26  0.9799
+576 27  0.3920
+576 28  0.0980
+# pixel 577
+577  1  0.6692
+577  2  2.1750
+577  3  5.7721
+577  4 10.3731
+577  5 16.2288
+577  6 19.7423
+577  7 20.8298
+577  8 22.0010
+577  9 23.3394
+577 10 23.8413
+577 11 23.8413
+577 12 23.6740
+577 13 23.1721
+577 14 22.9211
+577 15 21.7500
+577 16 20.5788
+577 17 19.3240
+577 18 17.9856
+577 19 16.4798
+577 20 15.0577
+577 21 11.8788
+577 22  8.3654
+577 23  5.8558
+577 24  4.3500
+577 25  1.9240
+577 26  0.8365
+577 27  0.3346
+577 28  0.0837
+# pixel 578
+578  1  0.7755
+578  2  2.5205
+578  3  6.6891
+578  4 12.0210
+578  5 18.8071
+578  6 22.8787
+578  7 24.1390
+578  8 25.4962
+578  9 27.0473
+578 10 27.6289
+578 11 27.6289
+578 12 27.4350
+578 13 26.8534
+578 14 26.5626
+578 15 25.2053
+578 16 23.8481
+578 17 22.3940
+578 18 20.8429
+578 19 19.0979
+578 20 17.4499
+578 21 13.7660
+578 22  9.6944
+578 23  6.7861
+578 24  5.0411
+578 25  2.2297
+578 26  0.9694
+578 27  0.3878
+578 28  0.0969
+# pixel 579
+579  1  0.6955
+579  2  2.2605
+579  3  5.9989
+579  4 10.7807
+579  5 16.8665
+579  6 20.5180
+579  7 21.6483
+579  8 22.8655
+579  9 24.2565
+579 10 24.7782
+579 11 24.7782
+579 12 24.6043
+579 13 24.0826
+579 14 23.8218
+579 15 22.6046
+579 16 21.3875
+579 17 20.0833
+579 18 18.6923
+579 19 17.1274
+579 20 15.6494
+579 21 12.3456
+579 22  8.6941
+579 23  6.0859
+579 24  4.5209
+579 25  1.9996
+579 26  0.8694
+579 27  0.3478
+579 28  0.0869
+# pixel 580
+580  1  0.6979
+580  2  2.2682
+580  3  6.0196
+580  4 10.8178
+580  5 16.9246
+580  6 20.5886
+580  7 21.7228
+580  8 22.9441
+580  9 24.3400
+580 10 24.8634
+580 11 24.8634
+580 12 24.6889
+580 13 24.1655
+580 14 23.9038
+580 15 22.6824
+580 16 21.4610
+580 17 20.1524
+580 18 18.7566
+580 19 17.1863
+580 20 15.7032
+580 21 12.3881
+580 22  8.7240
+580 23  6.1068
+580 24  4.5365
+580 25  2.0065
+580 26  0.8724
+580 27  0.3490
+580 28  0.0872
+# pixel 581
+581  1  0.8224
+581  2  2.6727
+581  3  7.0928
+581  4 12.7465
+581  5 19.9421
+581  6 24.2595
+581  7 25.5959
+581  8 27.0350
+581  9 28.6797
+581 10 29.2965
+581 11 29.2965
+581 12 29.0909
+581 13 28.4741
+581 14 28.1657
+581 15 26.7266
+581 16 25.2875
+581 17 23.7455
+581 18 22.1008
+581 19 20.2505
+581 20 18.5030
+581 21 14.5968
+581 22 10.2795
+581 23  7.1956
+581 24  5.3453
+581 25  2.3643
+581 26  1.0279
+581 27  0.4112
+581 28  0.1028
+# pixel 582
+582  1  0.7365
+582  2  2.3935
+582  3  6.3520
+582  4 11.4152
+582  5 17.8593
+582  6 21.7257
+582  7 22.9224
+582  8 24.2113
+582  9 25.6842
+582 10 26.2365
+582 11 26.2365
+582 12 26.0524
+582 13 25.5001
+582 14 25.2239
+582 15 23.9351
+582 16 22.6463
+582 17 21.2654
+582 18 19.7925
+582 19 18.1354
+582 20 16.5704
+582 21 13.0722
+582 22  9.2058
+582 23  6.4441
+582 24  4.7870
+582 25  2.1173
+582 26  0.9206
+582 27  0.3682
+582 28  0.0921
+# pixel 583
+583  1  0.7485
+583  2  2.4325
+583  3  6.4554
+583  4 11.6011
+583  5 18.1501
+583  6 22.0795
+583  7 23.2957
+583  8 24.6055
+583  9 26.1024
+583 10 26.6638
+583 11 26.6638
+583 12 26.4767
+583 13 25.9153
+583 14 25.6347
+583 15 24.3249
+583 16 23.0151
+583 17 21.6117
+583 18 20.1148
+583 19 18.4308
+583 20 16.8403
+583 21 13.2851
+583 22  9.3557
+583 23  6.5490
+583 24  4.8650
+583 25  2.1518
+583 26  0.9356
+583 27  0.3742
+583 28  0.0936
+# pixel 584
+584  1  0.7712
+584  2  2.5062
+584  3  6.6512
+584  4 11.9528
+584  5 18.7004
+584  6 22.7490
+584  7 24.0021
+584  8 25.3516
+584  9 26.8939
+584 10 27.4723
+584 11 27.4723
+584 12 27.2795
+584 13 26.7011
+584 14 26.4119
+584 15 25.0624
+584 16 23.7129
+584 17 22.2670
+584 18 20.7247
+584 19 18.9896
+584 20 17.3509
+584 21 13.6879
+584 22  9.6394
+584 23  6.7476
+584 24  5.0125
+584 25  2.2171
+584 26  0.9639
+584 27  0.3856
+584 28  0.0964
+# pixel 585
+585  1  0.7571
+585  2  2.4606
+585  3  6.5301
+585  4 11.7352
+585  5 18.3599
+585  6 22.3348
+585  7 23.5651
+585  8 24.8900
+585  9 26.4042
+585 10 26.9721
+585 11 26.9721
+585 12 26.7828
+585 13 26.2150
+585 14 25.9310
+585 15 24.6061
+585 16 23.2812
+585 17 21.8616
+585 18 20.3474
+585 19 18.6439
+585 20 17.0350
+585 21 13.4387
+585 22  9.4639
+585 23  6.6247
+585 24  4.9212
+585 25  2.1767
+585 26  0.9464
+585 27  0.3786
+585 28  0.0946
+# pixel 586
+586  1  0.7912
+586  2  2.5715
+586  3  6.8244
+586  4 12.2642
+586  5 19.1876
+586  6 23.3416
+586  7 24.6273
+586  8 26.0120
+586  9 27.5945
+586 10 28.1879
+586 11 28.1879
+586 12 27.9901
+586 13 27.3967
+586 14 27.1000
+586 15 25.7153
+586 16 24.3306
+586 17 22.8470
+586 18 21.2646
+586 19 19.4843
+586 20 17.8029
+586 21 14.0445
+586 22  9.8905
+586 23  6.9233
+586 24  5.1431
+586 25  2.2748
+586 26  0.9890
+586 27  0.3956
+586 28  0.0989
+# pixel 587
+587  1  0.7012
+587  2  2.2789
+587  3  6.0478
+587  4 10.8685
+587  5 17.0040
+587  6 20.6852
+587  7 21.8247
+587  8 23.0517
+587  9 24.4541
+587 10 24.9800
+587 11 24.9800
+587 12 24.8047
+587 13 24.2788
+587 14 24.0159
+587 15 22.7888
+587 16 21.5617
+587 17 20.2470
+587 18 18.8446
+587 19 17.2669
+587 20 15.7769
+587 21 12.4462
+587 22  8.7649
+587 23  6.1354
+587 24  4.5578
+587 25  2.0159
+587 26  0.8765
+587 27  0.3506
+587 28  0.0876
+# pixel 588
+588  1  0.7811
+588  2  2.5386
+588  3  6.7370
+588  4 12.1071
+588  5 18.9418
+588  6 23.0426
+588  7 24.3119
+588  8 25.6788
+588  9 27.2410
+588 10 27.8268
+588 11 27.8268
+588 12 27.6315
+588 13 27.0457
+588 14 26.7528
+588 15 25.3859
+588 16 24.0189
+588 17 22.5544
+588 18 20.9922
+588 19 19.2347
+588 20 17.5748
+588 21 13.8646
+588 22  9.7638
+588 23  6.8347
+588 24  5.0772
+588 25  2.2457
+588 26  0.9764
+588 27  0.3906
+588 28  0.0976
+# pixel 589
+589  1  0.7695
+589  2  2.5007
+589  3  6.6365
+589  4 11.9265
+589  5 18.6592
+589  6 22.6988
+589  7 23.9492
+589  8 25.2957
+589  9 26.8346
+589 10 27.4117
+589 11 27.4117
+589 12 27.2193
+589 13 26.6423
+589 14 26.3537
+589 15 25.0072
+589 16 23.6606
+589 17 22.2179
+589 18 20.6790
+589 19 18.9477
+589 20 17.3127
+589 21 13.6578
+589 22  9.6181
+589 23  6.7327
+589 24  5.0014
+589 25  2.2122
+589 26  0.9618
+589 27  0.3847
+589 28  0.0962
+# pixel 590
+590  1  0.7472
+590  2  2.4284
+590  3  6.4446
+590  4 11.5816
+590  5 18.1196
+590  6 22.0423
+590  7 23.2565
+590  8 24.5641
+590  9 26.0585
+590 10 26.6189
+590 11 26.6189
+590 12 26.4321
+590 13 25.8717
+590 14 25.5915
+590 15 24.2839
+590 16 22.9763
+590 17 21.5754
+590 18 20.0810
+590 19 18.3998
+590 20 16.8120
+590 21 13.2628
+590 22  9.3400
+590 23  6.5380
+590 24  4.8568
+590 25  2.1482
+590 26  0.9340
+590 27  0.3736
+590 28  0.0934
+# pixel 591
+591  1  0.6763
+591  2  2.1981
+591  3  5.8335
+591  4 10.4834
+591  5 16.4014
+591  6 19.9522
+591  7 21.0513
+591  8 22.2349
+591  9 23.5876
+591 10 24.0948
+591 11 24.0948
+591 12 23.9257
+591 13 23.4185
+591 14 23.1648
+591 15 21.9812
+591 16 20.7976
+591 17 19.5295
+591 18 18.1768
+591 19 16.6550
+591 20 15.2178
+591 21 12.0051
+591 22  8.4543
+591 23  5.9180
+591 24  4.3962
+591 25  1.9445
+591 26  0.8454
+591 27  0.3382
+591 28  0.0845
+# pixel 592
+592  1  0.6530
+592  2  2.1222
+592  3  5.6321
+592  4 10.1215
+592  5 15.8352
+592  6 19.2634
+592  7 20.3246
+592  8 21.4673
+592  9 22.7733
+592 10 23.2631
+592 11 23.2631
+592 12 23.0998
+592 13 22.6101
+592 14 22.3652
+592 15 21.2224
+592 16 20.0797
+592 17 18.8553
+592 18 17.5493
+592 19 16.0801
+592 20 14.6925
+592 21 11.5907
+592 22  8.1625
+592 23  5.7137
+592 24  4.2445
+592 25  1.8774
+592 26  0.8162
+592 27  0.3265
+592 28  0.0816
+# pixel 593
+593  1  0.7266
+593  2  2.3616
+593  3  6.2673
+593  4 11.2630
+593  5 17.6211
+593  6 21.4360
+593  7 22.6168
+593  8 23.8884
+593  9 25.3417
+593 10 25.8866
+593 11 25.8866
+593 12 25.7050
+593 13 25.1600
+593 14 24.8875
+593 15 23.6159
+593 16 22.3443
+593 17 20.9818
+593 18 19.5285
+593 19 17.8936
+593 20 16.3495
+593 21 12.8979
+593 22  9.0830
+593 23  6.3581
+593 24  4.7232
+593 25  2.0891
+593 26  0.9083
+593 27  0.3633
+593 28  0.0908
+# pixel 594
+594  1  0.7605
+594  2  2.4716
+594  3  6.5594
+594  4 11.7878
+594  5 18.4423
+594  6 22.4349
+594  7 23.6708
+594  8 25.0016
+594  9 26.5227
+594 10 27.0930
+594 11 27.0930
+594 12 26.9029
+594 13 26.3325
+594 14 26.0473
+594 15 24.7165
+594 16 23.3856
+594 17 21.9596
+594 18 20.4386
+594 19 18.7275
+594 20 17.1114
+594 21 13.4990
+594 22  9.5063
+594 23  6.6544
+594 24  4.9433
+594 25  2.1865
+594 26  0.9506
+594 27  0.3803
+594 28  0.0951
+# pixel 595
+595  1  0.6086
+595  2  1.9778
+595  3  5.2488
+595  4  9.4326
+595  5 14.7575
+595  6 17.9524
+595  7 18.9413
+595  8 20.0063
+595  9 21.2234
+595 10 21.6798
+595 11 21.6798
+595 12 21.5277
+595 13 21.0713
+595 14 20.8431
+595 15 19.7781
+595 16 18.7131
+595 17 17.5721
+595 18 16.3550
+595 19 14.9857
+595 20 13.6925
+595 21 10.8019
+595 22  7.6070
+595 23  5.3249
+595 24  3.9556
+595 25  1.7496
+595 26  0.7607
+595 27  0.3043
+595 28  0.0761
+# pixel 596
+596  1  0.7860
+596  2  2.5544
+596  3  6.7791
+596  4 12.1826
+596  5 19.0599
+596  6 23.1863
+596  7 24.4635
+596  8 25.8390
+596  9 27.4110
+596 10 28.0004
+596 11 28.0004
+596 12 27.8039
+596 13 27.2145
+596 14 26.9197
+596 15 25.5443
+596 16 24.1688
+596 17 22.6951
+596 18 21.1231
+596 19 19.3547
+596 20 17.6845
+596 21 13.9511
+596 22  9.8247
+596 23  6.8773
+596 24  5.1089
+596 25  2.2597
+596 26  0.9825
+596 27  0.3930
+596 28  0.0982
+# pixel 597
+597  1  0.7240
+597  2  2.3530
+597  3  6.2446
+597  4 11.2221
+597  5 17.5572
+597  6 21.3582
+597  7 22.5347
+597  8 23.8017
+597  9 25.2497
+597 10 25.7927
+597 11 25.7927
+597 12 25.6117
+597 13 25.0687
+597 14 24.7972
+597 15 23.5302
+597 16 22.2632
+597 17 20.9057
+597 18 19.4577
+597 19 17.8287
+597 20 16.2901
+597 21 12.8511
+597 22  9.0501
+597 23  6.3351
+597 24  4.7060
+597 25  2.0815
+597 26  0.9050
+597 27  0.3620
+597 28  0.0905
+# pixel 598
+598  1  0.6706
+598  2  2.1795
+598  3  5.7839
+598  4 10.3943
+598  5 16.2621
+598  6 19.7827
+598  7 20.8725
+598  8 22.0460
+598  9 23.3872
+598 10 23.8902
+598 11 23.8902
+598 12 23.7225
+598 13 23.2196
+598 14 22.9681
+598 15 21.7945
+598 16 20.6210
+598 17 19.3636
+598 18 18.0224
+598 19 16.5136
+598 20 15.0885
+598 21 11.9032
+598 22  8.3825
+598 23  5.8678
+598 24  4.3589
+598 25  1.9280
+598 26  0.8383
+598 27  0.3353
+598 28  0.0838
+# pixel 599
+599  1  0.6318
+599  2  2.0535
+599  3  5.4496
+599  4  9.7936
+599  5 15.3222
+599  6 18.6394
+599  7 19.6661
+599  8 20.7718
+599  9 22.0355
+599 10 22.5094
+599 11 22.5094
+599 12 22.3514
+599 13 21.8775
+599 14 21.6406
+599 15 20.5349
+599 16 19.4292
+599 17 18.2445
+599 18 16.9808
+599 19 15.5591
+599 20 14.2165
+599 21 11.2152
+599 22  7.8980
+599 23  5.5286
+599 24  4.1070
+599 25  1.8165
+599 26  0.7898
+599 27  0.3159
+599 28  0.0790
+# pixel 600
+600  1  0.7029
+600  2  2.2845
+600  3  6.0628
+600  4 10.8955
+600  5 17.0463
+600  6 20.7367
+600  7 21.8790
+600  8 23.1091
+600  9 24.5150
+600 10 25.0422
+600 11 25.0422
+600 12 24.8664
+600 13 24.3392
+600 14 24.0756
+600 15 22.8455
+600 16 21.6154
+600 17 20.2973
+600 18 18.8915
+600 19 17.3099
+600 20 15.8161
+600 21 12.4772
+600 22  8.7867
+600 23  6.1507
+600 24  4.5691
+600 25  2.0209
+600 26  0.8787
+600 27  0.3515
+600 28  0.0879
+# pixel 601
+601  1  0.6433
+601  2  2.0907
+601  3  5.5483
+601  4  9.9709
+601  5 15.5996
+601  6 18.9768
+601  7 20.0222
+601  8 21.1479
+601  9 22.4345
+601 10 22.9169
+601 11 22.9169
+601 12 22.7561
+601 13 22.2736
+601 14 22.0324
+601 15 20.9067
+601 16 19.7809
+601 17 18.5748
+601 18 17.2882
+601 19 15.8408
+601 20 14.4738
+601 21 11.4183
+601 22  8.0410
+601 23  5.6287
+601 24  4.1813
+601 25  1.8494
+601 26  0.8041
+601 27  0.3216
+601 28  0.0804
+# pixel 602
+602  1  0.8139
+602  2  2.6453
+602  3  7.0203
+602  4 12.6161
+602  5 19.7381
+602  6 24.0113
+602  7 25.3340
+602  8 26.7584
+602  9 28.3863
+602 10 28.9967
+602 11 28.9967
+602 12 28.7933
+602 13 28.1828
+602 14 27.8776
+602 15 26.4532
+602 16 25.0288
+602 17 23.5026
+602 18 21.8747
+602 19 20.0434
+602 20 18.3137
+602 21 14.4475
+602 22 10.1743
+602 23  7.1220
+602 24  5.2906
+602 25  2.3401
+602 26  1.0174
+602 27  0.4070
+602 28  0.1017
+# pixel 603
+603  1  0.8194
+603  2  2.6631
+603  3  7.0674
+603  4 12.7009
+603  5 19.8707
+603  6 24.1726
+603  7 25.5041
+603  8 26.9381
+603  9 28.5769
+603 10 29.1915
+603 11 29.1915
+603 12 28.9866
+603 13 28.3721
+603 14 28.0648
+603 15 26.6308
+603 16 25.1969
+603 17 23.6605
+603 18 22.0217
+603 19 20.1780
+603 20 18.4367
+603 21 14.5445
+603 22 10.2426
+603 23  7.1698
+603 24  5.3262
+603 25  2.3558
+603 26  1.0243
+603 27  0.4097
+603 28  0.1024
+# pixel 604
+604  1  0.8033
+604  2  2.6108
+604  3  6.9288
+604  4 12.4517
+604  5 19.4809
+604  6 23.6985
+604  7 25.0039
+604  8 26.4097
+604  9 28.0164
+604 10 28.6189
+604 11 28.6189
+604 12 28.4181
+604 13 27.8156
+604 14 27.5143
+604 15 26.1085
+604 16 24.7026
+604 17 23.1964
+604 18 21.5897
+604 19 19.7822
+604 20 18.0751
+604 21 14.2592
+604 22 10.0417
+604 23  7.0292
+604 24  5.2217
+604 25  2.3096
+604 26  1.0042
+604 27  0.4017
+604 28  0.1004
+# pixel 605
+605  1  0.7928
+605  2  2.5766
+605  3  6.8378
+605  4 12.2882
+605  5 19.2251
+605  6 23.3872
+605  7 24.6755
+605  8 26.0629
+605  9 27.6485
+605 10 28.2431
+605 11 28.2431
+605 12 28.0449
+605 13 27.4503
+605 14 27.1530
+605 15 25.7656
+605 16 24.3782
+605 17 22.8918
+605 18 21.3062
+605 19 19.5224
+605 20 17.8377
+605 21 14.0720
+605 22  9.9099
+605 23  6.9369
+605 24  5.1531
+605 25  2.2793
+605 26  0.9910
+605 27  0.3964
+605 28  0.0991
+# pixel 606
+606  1  0.7893
+606  2  2.5652
+606  3  6.8077
+606  4 12.2342
+606  5 19.1406
+606  6 23.2844
+606  7 24.5670
+606  8 25.9483
+606  9 27.5269
+606 10 28.1189
+606 11 28.1189
+606 12 27.9216
+606 13 27.3296
+606 14 27.0336
+606 15 25.6523
+606 16 24.2711
+606 17 22.7911
+606 18 21.2125
+606 19 19.4366
+606 20 17.7593
+606 21 14.0101
+606 22  9.8663
+606 23  6.9064
+606 24  5.1305
+606 25  2.2692
+606 26  0.9866
+606 27  0.3947
+606 28  0.0987
+# pixel 607
+607  1  0.8441
+607  2  2.7434
+607  3  7.2806
+607  4 13.0840
+607  5 20.4701
+607  6 24.9018
+607  7 26.2735
+607  8 27.7507
+607  9 29.4390
+607 10 30.0721
+607 11 30.0721
+607 12 29.8611
+607 13 29.2280
+607 14 28.9114
+607 15 27.4342
+607 16 25.9570
+607 17 24.3742
+607 18 22.6860
+607 19 20.7867
+607 20 18.9929
+607 21 14.9833
+607 22 10.5516
+607 23  7.3861
+607 24  5.4868
+607 25  2.4269
+607 26  1.0552
+607 27  0.4221
+607 28  0.1055
+# pixel 608
+608  1  0.6511
+608  2  2.1162
+608  3  5.6161
+608  4 10.0927
+608  5 15.7901
+608  6 19.2086
+608  7 20.2667
+608  8 21.4062
+608  9 22.7085
+608 10 23.1968
+608 11 23.1968
+608 12 23.0340
+608 13 22.5457
+608 14 22.3015
+608 15 21.1620
+608 16 20.0225
+608 17 18.8016
+608 18 17.4994
+608 19 16.0343
+608 20 14.6506
+608 21 11.5577
+608 22  8.1392
+608 23  5.6975
+608 24  4.2324
+608 25  1.8720
+608 26  0.8139
+608 27  0.3256
+608 28  0.0814
+# pixel 609
+609  1  0.7482
+609  2  2.4318
+609  3  6.4536
+609  4 11.5978
+609  5 18.1450
+609  6 22.0732
+609  7 23.2891
+609  8 24.5986
+609  9 26.0951
+609 10 26.6562
+609 11 26.6562
+609 12 26.4692
+609 13 25.9080
+609 14 25.6274
+609 15 24.3180
+609 16 23.0085
+609 17 21.6056
+609 18 20.1091
+609 19 18.4255
+609 20 16.8355
+609 21 13.2814
+609 22  9.3531
+609 23  6.5471
+609 24  4.8636
+609 25  2.1512
+609 26  0.9353
+609 27  0.3741
+609 28  0.0935
+# pixel 610
+610  1  0.8529
+610  2  2.7719
+610  3  7.3563
+610  4 13.2200
+610  5 20.6829
+610  6 25.1606
+610  7 26.5466
+610  8 28.0392
+610  9 29.7450
+610 10 30.3847
+610 11 30.3847
+610 12 30.1714
+610 13 29.5318
+610 14 29.2119
+610 15 27.7193
+610 16 26.2268
+610 17 24.6276
+610 18 22.9218
+610 19 21.0027
+610 20 19.1903
+610 21 15.1390
+610 22 10.6613
+610 23  7.4629
+610 24  5.5439
+610 25  2.4521
+610 26  1.0661
+610 27  0.4265
+610 28  0.1066
+# pixel 611
+611  1  0.7323
+611  2  2.3800
+611  3  6.3161
+611  4 11.3507
+611  5 17.7583
+611  6 21.6029
+611  7 22.7929
+611  8 24.0745
+611  9 25.5391
+611 10 26.0883
+611 11 26.0883
+611 12 25.9052
+611 13 25.3560
+611 14 25.0814
+611 15 23.7998
+611 16 22.5183
+611 17 21.1452
+611 18 19.6806
+611 19 18.0330
+611 20 16.4768
+611 21 12.9984
+611 22  9.1538
+611 23  6.4077
+611 24  4.7600
+611 25  2.1054
+611 26  0.9154
+611 27  0.3662
+611 28  0.0915
+# pixel 612
+612  1  0.7498
+612  2  2.4369
+612  3  6.4672
+612  4 11.6221
+612  5 18.1830
+612  6 22.1196
+612  7 23.3380
+612  8 24.6502
+612  9 26.1498
+612 10 26.7122
+612 11 26.7122
+612 12 26.5247
+612 13 25.9624
+612 14 25.6812
+612 15 24.3690
+612 16 23.0568
+612 17 21.6509
+612 18 20.1513
+612 19 18.4642
+612 20 16.8709
+612 21 13.3092
+612 22  9.3727
+612 23  6.5609
+612 24  4.8738
+612 25  2.1557
+612 26  0.9373
+612 27  0.3749
+612 28  0.0937
+# pixel 613
+613  1  0.6794
+613  2  2.2082
+613  3  5.8603
+613  4 10.5315
+613  5 16.4767
+613  6 20.0438
+613  7 21.1479
+613  8 22.3369
+613  9 23.6958
+613 10 24.2054
+613 11 24.2054
+613 12 24.0355
+613 13 23.5260
+613 14 23.2712
+613 15 22.0821
+613 16 20.8931
+613 17 19.6191
+613 18 18.2602
+613 19 16.7315
+613 20 15.2876
+613 21 12.0602
+613 22  8.4931
+613 23  5.9452
+613 24  4.4164
+613 25  1.9534
+613 26  0.8493
+613 27  0.3397
+613 28  0.0849
+# pixel 614
+614  1  0.7519
+614  2  2.4438
+614  3  6.4855
+614  4 11.6551
+614  5 18.2346
+614  6 22.1823
+614  7 23.4042
+614  8 24.7201
+614  9 26.2240
+614 10 26.7879
+614 11 26.7879
+614 12 26.5999
+614 13 26.0360
+614 14 25.7540
+614 15 24.4381
+614 16 23.1222
+614 17 21.7123
+614 18 20.2084
+614 19 18.5166
+614 20 16.9187
+614 21 13.3470
+614 22  9.3993
+614 23  6.5795
+614 24  4.8876
+614 25  2.1618
+614 26  0.9399
+614 27  0.3760
+614 28  0.0940
+# pixel 615
+615  1  0.8092
+615  2  2.6300
+615  3  6.9796
+615  4 12.5431
+615  5 19.6239
+615  6 23.8724
+615  7 25.1874
+615  8 26.6036
+615  9 28.2220
+615 10 28.8289
+615 11 28.8289
+615 12 28.6266
+615 13 28.0197
+615 14 27.7162
+615 15 26.3001
+615 16 24.8839
+615 17 23.3666
+615 18 21.7481
+615 19 19.9274
+615 20 18.2078
+615 21 14.3639
+615 22 10.1154
+615 23  7.0808
+615 24  5.2600
+615 25  2.3265
+615 26  1.0115
+615 27  0.4046
+615 28  0.1012
+# pixel 616
+616  1  0.7494
+616  2  2.4355
+616  3  6.4635
+616  4 11.6155
+616  5 18.1727
+616  6 22.1070
+616  7 23.3247
+616  8 24.6362
+616  9 26.1349
+616 10 26.6970
+616 11 26.6970
+616 12 26.5096
+616 13 25.9476
+616 14 25.6666
+616 15 24.3551
+616 16 23.0437
+616 17 21.6386
+616 18 20.1398
+616 19 18.4537
+616 20 16.8612
+616 21 13.3017
+616 22  9.3674
+616 23  6.5572
+616 24  4.8710
+616 25  2.1545
+616 26  0.9367
+616 27  0.3747
+616 28  0.0937
+# pixel 617
+617  1  0.7192
+617  2  2.3374
+617  3  6.2032
+617  4 11.1478
+617  5 17.4409
+617  6 21.2168
+617  7 22.3855
+617  8 23.6441
+617  9 25.0826
+617 10 25.6220
+617 11 25.6220
+617 12 25.4422
+617 13 24.9028
+617 14 24.6331
+617 15 23.3744
+617 16 22.1158
+617 17 20.7673
+617 18 19.3289
+617 19 17.7106
+617 20 16.1823
+617 21 12.7660
+617 22  8.9902
+617 23  6.2931
+617 24  4.6749
+617 25  2.0677
+617 26  0.8990
+617 27  0.3596
+617 28  0.0899
+# pixel 618
+618  1  0.7494
+618  2  2.4355
+618  3  6.4634
+618  4 11.6154
+618  5 18.1726
+618  6 22.1068
+618  7 23.3246
+618  8 24.6360
+618  9 26.1348
+618 10 26.6968
+618 11 26.6968
+618 12 26.5094
+618 13 25.9474
+618 14 25.6664
+618 15 24.3550
+618 16 23.0435
+618 17 21.6385
+618 18 20.1397
+618 19 18.4536
+618 20 16.8611
+618 21 13.3016
+618 22  9.3673
+618 23  6.5571
+618 24  4.8710
+618 25  2.1545
+618 26  0.9367
+618 27  0.3747
+618 28  0.0937
+# pixel 619
+619  1  0.8218
+619  2  2.6709
+619  3  7.0883
+619  4 12.7384
+619  5 19.9294
+619  6 24.2440
+619  7 25.5795
+619  8 27.0177
+619  9 28.6613
+619 10 29.2777
+619 11 29.2777
+619 12 29.0722
+619 13 28.4559
+619 14 28.1477
+619 15 26.7095
+619 16 25.2713
+619 17 23.7303
+619 18 22.0867
+619 19 20.2376
+619 20 18.4912
+619 21 14.5875
+619 22 10.2729
+619 23  7.1910
+619 24  5.3419
+619 25  2.3628
+619 26  1.0273
+619 27  0.4109
+619 28  0.1027
+# pixel 620
+620  1  0.7355
+620  2  2.3904
+620  3  6.3438
+620  4 11.4004
+620  5 17.8362
+620  6 21.6976
+620  7 22.8928
+620  8 24.1800
+620  9 25.6510
+620 10 26.2026
+620 11 26.2026
+620 12 26.0188
+620 13 25.4671
+620 14 25.1913
+620 15 23.9042
+620 16 22.6170
+620 17 21.2379
+620 18 19.7669
+620 19 18.1120
+620 20 16.5490
+620 21 13.0554
+620 22  9.1939
+620 23  6.4357
+620 24  4.7808
+620 25  2.1146
+620 26  0.9194
+620 27  0.3678
+620 28  0.0919
+# pixel 621
+621  1  0.6699
+621  2  2.1773
+621  3  5.7782
+621  4 10.3840
+621  5 16.2459
+621  6 19.7630
+621  7 20.8517
+621  8 22.0241
+621  9 23.3639
+621 10 23.8664
+621 11 23.8664
+621 12 23.6989
+621 13 23.1965
+621 14 22.9452
+621 15 21.7729
+621 16 20.6005
+621 17 19.3443
+621 18 18.0045
+621 19 16.4971
+621 20 15.0735
+621 21 11.8913
+621 22  8.3742
+621 23  5.8619
+621 24  4.3546
+621 25  1.9261
+621 26  0.8374
+621 27  0.3350
+621 28  0.0837
+# pixel 622
+622  1  0.7548
+622  2  2.4532
+622  3  6.5105
+622  4 11.7001
+622  5 18.3049
+622  6 22.2679
+622  7 23.4945
+622  8 24.8155
+622  9 26.3252
+622 10 26.8913
+622 11 26.8913
+622 12 26.7026
+622 13 26.1364
+622 14 25.8534
+622 15 24.5324
+622 16 23.2114
+622 17 21.7961
+622 18 20.2864
+622 19 18.5880
+622 20 16.9840
+622 21 13.3985
+622 22  9.4355
+622 23  6.6049
+622 24  4.9065
+622 25  2.1702
+622 26  0.9436
+622 27  0.3774
+622 28  0.0944
+# pixel 623
+623  1  0.7118
+623  2  2.3135
+623  3  6.1397
+623  4 11.0337
+623  5 17.2623
+623  6 20.9995
+623  7 22.1563
+623  8 23.4020
+623  9 24.8257
+623 10 25.3596
+623 11 25.3596
+623 12 25.1816
+623 13 24.6478
+623 14 24.3808
+623 15 23.1351
+623 16 21.8893
+623 17 20.5546
+623 18 19.1309
+623 19 17.5293
+623 20 16.0166
+623 21 12.6353
+623 22  8.8981
+623 23  6.2287
+623 24  4.6270
+623 25  2.0466
+623 26  0.8898
+623 27  0.3559
+623 28  0.0890
+# pixel 624
+624  1  0.7445
+624  2  2.4198
+624  3  6.4217
+624  4 11.5405
+624  5 18.0553
+624  6 21.9642
+624  7 23.1741
+624  8 24.4770
+624  9 25.9661
+624 10 26.5245
+624 11 26.5245
+624 12 26.3384
+624 13 25.7800
+624 14 25.5008
+624 15 24.1978
+624 16 22.8949
+624 17 21.4988
+624 18 20.0097
+624 19 18.3345
+624 20 16.7523
+624 21 13.2157
+624 22  9.3069
+624 23  6.5148
+624 24  4.8396
+624 25  2.1406
+624 26  0.9307
+624 27  0.3723
+624 28  0.0931
+# pixel 625
+625  1  0.7627
+625  2  2.4787
+625  3  6.5782
+625  4 11.8216
+625  5 18.4951
+625  6 22.4992
+625  7 23.7386
+625  8 25.0733
+625  9 26.5987
+625 10 27.1707
+625 11 27.1707
+625 12 26.9800
+625 13 26.4080
+625 14 26.1220
+625 15 24.7873
+625 16 23.4526
+625 17 22.0226
+625 18 20.4972
+625 19 18.7811
+625 20 17.1604
+625 21 13.5377
+625 22  9.5336
+625 23  6.6735
+625 24  4.9575
+625 25  2.1927
+625 26  0.9534
+625 27  0.3813
+625 28  0.0953
+# pixel 626
+626  1  0.6738
+626  2  2.1898
+626  3  5.8114
+626  4 10.4436
+626  5 16.3392
+626  6 19.8766
+626  7 20.9715
+626  8 22.1506
+626  9 23.4981
+626 10 24.0035
+626 11 24.0035
+626 12 23.8350
+626 13 23.3297
+626 14 23.0770
+626 15 21.8979
+626 16 20.7188
+626 17 19.4555
+626 18 18.1079
+626 19 16.5919
+626 20 15.1601
+626 21 11.9596
+626 22  8.4223
+626 23  5.8956
+626 24  4.3796
+626 25  1.9371
+626 26  0.8422
+626 27  0.3369
+626 28  0.0842
+# pixel 627
+627  1  0.7542
+627  2  2.4512
+627  3  6.5051
+627  4 11.6903
+627  5 18.2897
+627  6 22.2493
+627  7 23.4749
+627  8 24.7948
+627  9 26.3032
+627 10 26.8689
+627 11 26.8689
+627 12 26.6803
+627 13 26.1147
+627 14 25.8318
+627 15 24.5120
+627 16 23.1921
+627 17 21.7779
+627 18 20.2695
+627 19 18.5725
+627 20 16.9698
+627 21 13.3873
+627 22  9.4277
+627 23  6.5994
+627 24  4.9024
+627 25  2.1684
+627 26  0.9428
+627 27  0.3771
+627 28  0.0943
+# pixel 628
+628  1  0.7426
+628  2  2.4136
+628  3  6.4053
+628  4 11.5111
+628  5 18.0092
+628  6 21.9081
+628  7 23.1149
+628  8 24.4146
+628  9 25.8999
+628 10 26.4569
+628 11 26.4569
+628 12 26.2712
+628 13 25.7142
+628 14 25.4357
+628 15 24.1361
+628 16 22.8364
+628 17 21.4440
+628 18 19.9587
+628 19 18.2877
+628 20 16.7096
+628 21 13.1820
+628 22  9.2831
+628 23  6.4982
+628 24  4.8272
+628 25  2.1351
+628 26  0.9283
+628 27  0.3713
+628 28  0.0928
+# pixel 629
+629  1  0.6172
+629  2  2.0058
+629  3  5.3230
+629  4  9.5660
+629  5 14.9662
+629  6 18.2063
+629  7 19.2092
+629  8 20.2892
+629  9 21.5236
+629 10 21.9864
+629 11 21.9864
+629 12 21.8322
+629 13 21.3693
+629 14 21.1378
+629 15 20.0578
+629 16 18.9778
+629 17 17.8206
+629 18 16.5863
+629 19 15.1976
+629 20 13.8862
+629 21 10.9546
+629 22  7.7145
+629 23  5.4002
+629 24  4.0116
+629 25  1.7743
+629 26  0.7715
+629 27  0.3086
+629 28  0.0771
+# pixel 630
+630  1  0.8554
+630  2  2.7799
+630  3  7.3775
+630  4 13.2581
+630  5 20.7426
+630  6 25.2332
+630  7 26.6232
+630  8 28.1201
+630  9 29.8308
+630 10 30.4723
+630 11 30.4723
+630 12 30.2585
+630 13 29.6170
+630 14 29.2962
+630 15 27.7993
+630 16 26.3024
+630 17 24.6986
+630 18 22.9879
+630 19 21.0633
+630 20 19.2457
+630 21 15.1827
+630 22 10.6920
+630 23  7.4844
+630 24  5.5599
+630 25  2.4592
+630 26  1.0692
+630 27  0.4277
+630 28  0.1069
+# pixel 631
+631  1  0.7168
+631  2  2.3297
+631  3  6.1827
+631  4 11.1110
+631  5 17.3833
+631  6 21.1467
+631  7 22.3116
+631  8 23.5660
+631  9 24.9997
+631 10 25.5373
+631 11 25.5373
+631 12 25.3581
+631 13 24.8205
+631 14 24.5517
+631 15 23.2972
+631 16 22.0428
+631 17 20.6987
+631 18 19.2650
+631 19 17.6521
+631 20 16.1289
+631 21 12.7239
+631 22  8.9605
+631 23  6.2723
+631 24  4.6594
+631 25  2.0609
+631 26  0.8960
+631 27  0.3584
+631 28  0.0896
+# pixel 632
+632  1  0.6471
+632  2  2.1029
+632  3  5.5809
+632  4 10.0294
+632  5 15.6912
+632  6 19.0883
+632  7 20.1398
+632  8 21.2721
+632  9 22.5662
+632 10 23.0515
+632 11 23.0515
+632 12 22.8898
+632 13 22.4045
+632 14 22.1618
+632 15 21.0295
+632 16 19.8971
+632 17 18.6839
+632 18 17.3897
+632 19 15.9339
+632 20 14.5589
+632 21 11.4853
+632 22  8.0883
+632 23  5.6618
+632 24  4.2059
+632 25  1.8603
+632 26  0.8088
+632 27  0.3235
+632 28  0.0809
+# pixel 633
+633  1  0.6518
+633  2  2.1185
+633  3  5.6222
+633  4 10.1037
+633  5 15.8073
+633  6 19.2295
+633  7 20.2888
+633  8 21.4295
+633  9 22.7332
+633 10 23.2221
+633 11 23.2221
+633 12 23.0592
+633 13 22.5703
+633 14 22.3258
+633 15 21.1851
+633 16 20.0444
+633 17 18.8221
+633 18 17.5184
+633 19 16.0518
+633 20 14.6666
+633 21 11.5703
+633 22  8.1481
+633 23  5.7037
+633 24  4.2370
+633 25  1.8741
+633 26  0.8148
+633 27  0.3259
+633 28  0.0815
+# pixel 634
+634  1  0.7476
+634  2  2.4296
+634  3  6.4478
+634  4 11.5874
+634  5 18.1286
+634  6 22.0533
+634  7 23.2682
+634  8 24.5764
+634  9 26.0715
+634 10 26.6322
+634 11 26.6322
+634 12 26.4453
+634 13 25.8846
+634 14 25.6043
+634 15 24.2961
+634 16 22.9878
+634 17 21.5861
+634 18 20.0910
+634 19 18.4089
+634 20 16.8204
+634 21 13.2694
+634 22  9.3446
+634 23  6.5412
+634 24  4.8592
+634 25  2.1493
+634 26  0.9345
+634 27  0.3738
+634 28  0.0934
+# pixel 635
+635  1  0.7351
+635  2  2.3890
+635  3  6.3400
+635  4 11.3936
+635  5 17.8255
+635  6 21.6846
+635  7 22.8791
+635  8 24.1655
+635  9 25.6356
+635 10 26.1869
+635 11 26.1869
+635 12 26.0032
+635 13 25.4519
+635 14 25.1762
+635 15 23.8898
+635 16 22.6035
+635 17 21.2252
+635 18 19.7551
+635 19 18.1011
+635 20 16.5391
+635 21 13.0475
+635 22  9.1884
+635 23  6.4319
+635 24  4.7780
+635 25  2.1133
+635 26  0.9188
+635 27  0.3675
+635 28  0.0919
+# pixel 636
+636  1  0.7489
+636  2  2.4338
+636  3  6.4591
+636  4 11.6076
+636  5 18.1602
+636  6 22.0918
+636  7 23.3087
+636  8 24.6193
+636  9 26.1170
+636 10 26.6787
+636 11 26.6787
+636 12 26.4915
+636 13 25.9298
+636 14 25.6490
+636 15 24.3385
+636 16 23.0279
+636 17 21.6238
+636 18 20.1260
+636 19 18.4411
+636 20 16.8497
+636 21 13.2925
+636 22  9.3609
+636 23  6.5527
+636 24  4.8677
+636 25  2.1530
+636 26  0.9361
+636 27  0.3744
+636 28  0.0936
+# pixel 637
+637  1  0.7361
+637  2  2.3924
+637  3  6.3490
+637  4 11.4099
+637  5 17.8509
+637  6 21.7156
+637  7 22.9118
+637  8 24.2000
+637  9 25.6722
+637 10 26.2243
+637 11 26.2243
+637 12 26.0403
+637 13 25.4882
+637 14 25.2121
+637 15 23.9239
+637 16 22.6357
+637 17 21.2555
+637 18 19.7833
+637 19 18.1270
+637 20 16.5627
+637 21 13.0661
+637 22  9.2015
+637 23  6.4411
+637 24  4.7848
+637 25  2.1163
+637 26  0.9202
+637 27  0.3681
+637 28  0.0920
+# pixel 638
+638  1  0.7385
+638  2  2.4003
+638  3  6.3700
+638  4 11.4475
+638  5 17.9098
+638  6 21.7871
+638  7 22.9873
+638  8 24.2797
+638  9 25.7568
+638 10 26.3107
+638 11 26.3107
+638 12 26.1261
+638 13 25.5722
+638 14 25.2952
+638 15 24.0028
+638 16 22.7103
+638 17 21.3255
+638 18 19.8484
+638 19 18.1867
+638 20 16.6173
+638 21 13.1092
+638 22  9.2318
+638 23  6.4623
+638 24  4.8006
+638 25  2.1233
+638 26  0.9232
+638 27  0.3693
+638 28  0.0923
+# pixel 639
+639  1  0.6309
+639  2  2.0504
+639  3  5.4414
+639  4  9.7787
+639  5 15.2989
+639  6 18.6111
+639  7 19.6363
+639  8 20.7403
+639  9 22.0021
+639 10 22.4752
+639 11 22.4752
+639 12 22.3175
+639 13 21.8444
+639 14 21.6078
+639 15 20.5037
+639 16 19.3997
+639 17 18.2168
+639 18 16.9550
+639 19 15.5355
+639 20 14.1949
+639 21 11.1982
+639 22  7.8861
+639 23  5.5202
+639 24  4.1007
+639 25  1.8138
+639 26  0.7886
+639 27  0.3154
+639 28  0.0789
+# pixel 640
+640  1  0.7305
+640  2  2.3740
+640  3  6.3003
+640  4 11.3223
+640  5 17.7139
+640  6 21.5489
+640  7 22.7359
+640  8 24.0142
+640  9 25.4752
+640 10 26.0230
+640 11 26.0230
+640 12 25.8404
+640 13 25.2925
+640 14 25.0186
+640 15 23.7403
+640 16 22.4620
+640 17 21.0923
+640 18 19.6314
+640 19 17.9878
+640 20 16.4356
+640 21 12.9658
+640 22  9.1309
+640 23  6.3916
+640 24  4.7481
+640 25  2.1001
+640 26  0.9131
+640 27  0.3652
+640 28  0.0913
+# pixel 641
+641  1  0.7447
+641  2  2.4203
+641  3  6.4231
+641  4 11.5429
+641  5 18.0590
+641  6 21.9687
+641  7 23.1789
+641  8 24.4821
+641  9 25.9715
+641 10 26.5300
+641 11 26.5300
+641 12 26.3438
+641 13 25.7853
+641 14 25.5061
+641 15 24.2028
+641 16 22.8996
+641 17 21.5033
+641 18 20.0139
+641 19 18.3383
+641 20 16.7558
+641 21 13.2185
+641 22  9.3088
+641 23  6.5161
+641 24  4.8406
+641 25  2.1410
+641 26  0.9309
+641 27  0.3724
+641 28  0.0931
+# pixel 642
+642  1  0.7598
+642  2  2.4694
+642  3  6.5534
+642  4 11.7771
+642  5 18.4254
+642  6 22.4145
+642  7 23.6491
+642  8 24.9788
+642  9 26.4984
+642 10 27.0683
+642 11 27.0683
+642 12 26.8784
+642 13 26.3085
+642 14 26.0236
+642 15 24.6939
+642 16 23.3642
+642 17 21.9396
+642 18 20.4199
+642 19 18.7104
+642 20 17.0958
+642 21 13.4867
+642 22  9.4977
+642 23  6.6484
+642 24  4.9388
+642 25  2.1845
+642 26  0.9498
+642 27  0.3799
+642 28  0.0950
+# pixel 643
+643  1  0.7022
+643  2  2.2822
+643  3  6.0566
+643  4 10.8842
+643  5 17.0286
+643  6 20.7152
+643  7 21.8562
+643  8 23.0851
+643  9 24.4895
+643 10 25.0162
+643 11 25.0162
+643 12 24.8406
+643 13 24.3140
+643 14 24.0506
+643 15 22.8218
+643 16 21.5929
+643 17 20.2763
+643 18 18.8719
+643 19 17.2919
+643 20 15.7997
+643 21 12.4642
+643 22  8.7776
+643 23  6.1443
+643 24  4.5644
+643 25  2.0189
+643 26  0.8778
+643 27  0.3511
+643 28  0.0878
+# pixel 644
+644  1  0.7355
+644  2  2.3904
+644  3  6.3438
+644  4 11.4005
+644  5 17.8362
+644  6 21.6976
+644  7 22.8929
+644  8 24.1800
+644  9 25.6510
+644 10 26.2027
+644 11 26.2027
+644 12 26.0188
+644 13 25.4672
+644 14 25.1913
+644 15 23.9042
+644 16 22.6170
+644 17 21.2379
+644 18 19.7669
+644 19 18.1120
+644 20 16.5491
+644 21 13.0554
+644 22  9.1939
+644 23  6.4357
+644 24  4.7808
+644 25  2.1146
+644 26  0.9194
+644 27  0.3678
+644 28  0.0919
+# pixel 645
+645  1  0.7611
+645  2  2.4734
+645  3  6.5641
+645  4 11.7964
+645  5 18.4556
+645  6 22.4512
+645  7 23.6879
+645  8 25.0198
+645  9 26.5419
+645 10 27.1127
+645 11 27.1127
+645 12 26.9224
+645 13 26.3516
+645 14 26.0662
+645 15 24.7344
+645 16 23.4025
+645 17 21.9755
+645 18 20.4534
+645 19 18.7410
+645 20 17.1238
+645 21 13.5088
+645 22  9.5132
+645 23  6.6593
+645 24  4.9469
+645 25  2.1880
+645 26  0.9513
+645 27  0.3805
+645 28  0.0951
+# pixel 646
+646  1  0.7667
+646  2  2.4917
+646  3  6.6126
+646  4 11.8836
+646  5 18.5920
+646  6 22.6171
+646  7 23.8630
+646  8 25.2047
+646  9 26.7380
+646 10 27.3130
+646 11 27.3130
+646 12 27.1214
+646 13 26.5464
+646 14 26.2588
+646 15 24.9172
+646 16 23.5755
+646 17 22.1379
+646 18 20.6046
+646 19 18.8795
+646 20 17.2503
+646 21 13.6086
+646 22  9.5835
+646 23  6.7085
+646 24  4.9834
+646 25  2.2042
+646 26  0.9584
+646 27  0.3833
+646 28  0.0958
+# pixel 647
+647  1  0.7264
+647  2  2.3607
+647  3  6.2650
+647  4 11.2589
+647  5 17.6147
+647  6 21.4282
+647  7 22.6086
+647  8 23.8798
+647  9 25.3325
+647 10 25.8773
+647 11 25.8773
+647 12 25.6957
+647 13 25.1510
+647 14 24.8786
+647 15 23.6074
+647 16 22.3362
+647 17 20.9743
+647 18 19.5215
+647 19 17.8871
+647 20 16.3436
+647 21 12.8933
+647 22  9.0798
+647 23  6.3558
+647 24  4.7215
+647 25  2.0883
+647 26  0.9080
+647 27  0.3632
+647 28  0.0908
+# pixel 648
+648  1  0.7846
+648  2  2.5500
+648  3  6.7672
+648  4 12.1614
+648  5 19.0267
+648  6 23.1459
+648  7 24.4209
+648  8 25.7939
+648  9 27.3632
+648 10 27.9516
+648 11 27.9516
+648 12 27.7555
+648 13 27.1670
+648 14 26.8728
+648 15 25.4997
+648 16 24.1266
+648 17 22.6555
+648 18 21.0863
+648 19 19.3209
+648 20 17.6536
+648 21 13.9268
+648 22  9.8076
+648 23  6.8653
+648 24  5.0999
+648 25  2.2557
+648 26  0.9808
+648 27  0.3923
+648 28  0.0981
+# pixel 649
+649  1  0.7554
+649  2  2.4550
+649  3  6.5152
+649  4 11.7085
+649  5 18.3182
+649  6 22.2840
+649  7 23.5115
+649  8 24.8334
+649  9 26.3442
+649 10 26.9107
+649 11 26.9107
+649 12 26.7219
+649 13 26.1553
+649 14 25.8721
+649 15 24.5501
+649 16 23.2282
+649 17 21.8118
+649 18 20.3011
+649 19 18.6014
+649 20 16.9962
+649 21 13.4081
+649 22  9.4424
+649 23  6.6097
+649 24  4.9100
+649 25  2.1717
+649 26  0.9442
+649 27  0.3777
+649 28  0.0944
+# pixel 650
+650  1  0.6860
+650  2  2.2295
+650  3  5.9166
+650  4 10.6328
+650  5 16.6352
+650  6 20.2366
+650  7 21.3513
+650  8 22.5518
+650  9 23.9237
+650 10 24.4382
+650 11 24.4382
+650 12 24.2667
+650 13 23.7523
+650 14 23.4950
+650 15 22.2945
+650 16 21.0941
+650 17 19.8078
+650 18 18.4359
+650 19 16.8924
+650 20 15.4347
+650 21 12.1762
+650 22  8.5748
+650 23  6.0024
+650 24  4.4589
+650 25  1.9722
+650 26  0.8575
+650 27  0.3430
+650 28  0.0857
+# pixel 651
+651  1  0.7063
+651  2  2.2956
+651  3  6.0922
+651  4 10.9484
+651  5 17.1289
+651  6 20.8373
+651  7 21.9851
+651  8 23.2212
+651  9 24.6339
+651 10 25.1636
+651 11 25.1636
+651 12 24.9870
+651 13 24.4573
+651 14 24.1924
+651 15 22.9563
+651 16 21.7202
+651 17 20.3958
+651 18 18.9831
+651 19 17.3938
+651 20 15.8928
+651 21 12.5377
+651 22  8.8293
+651 23  6.1805
+651 24  4.5913
+651 25  2.0307
+651 26  0.8829
+651 27  0.3532
+651 28  0.0883
+# pixel 652
+652  1  0.7844
+652  2  2.5492
+652  3  6.7652
+652  4 12.1578
+652  5 19.0211
+652  6 23.1391
+652  7 24.4137
+652  8 25.7863
+652  9 27.3551
+652 10 27.9434
+652 11 27.9434
+652 12 27.7473
+652 13 27.1590
+652 14 26.8649
+652 15 25.4922
+652 16 24.1195
+652 17 22.6488
+652 18 21.0801
+652 19 19.3152
+652 20 17.6484
+652 21 13.9227
+652 22  9.8047
+652 23  6.8633
+652 24  5.0984
+652 25  2.2551
+652 26  0.9805
+652 27  0.3922
+652 28  0.0980
+# pixel 653
+653  1  0.7915
+653  2  2.5722
+653  3  6.8263
+653  4 12.2675
+653  5 19.1927
+653  6 23.3478
+653  7 24.6339
+653  8 26.0189
+653  9 27.6018
+653 10 28.1954
+653 11 28.1954
+653 12 27.9976
+653 13 27.4040
+653 14 27.1072
+653 15 25.7221
+653 16 24.3371
+653 17 22.8531
+653 18 21.2702
+653 19 19.4895
+653 20 17.8076
+653 21 14.0482
+653 22  9.8931
+653 23  6.9252
+653 24  5.1444
+653 25  2.2754
+653 26  0.9893
+653 27  0.3957
+653 28  0.0989
+# pixel 654
+654  1  0.7132
+654  2  2.3179
+654  3  6.1512
+654  4 11.0544
+654  5 17.2948
+654  6 21.0390
+654  7 22.1979
+654  8 23.4460
+654  9 24.8724
+654 10 25.4072
+654 11 25.4072
+654 12 25.2289
+654 13 24.6941
+654 14 24.4266
+654 15 23.1785
+654 16 21.9305
+654 17 20.5932
+654 18 19.1669
+654 19 17.5622
+654 20 16.0467
+654 21 12.6590
+654 22  8.9148
+654 23  6.2404
+654 24  4.6357
+654 25  2.0504
+654 26  0.8915
+654 27  0.3566
+654 28  0.0891
+# pixel 655
+655  1  0.7613
+655  2  2.4743
+655  3  6.5665
+655  4 11.8006
+655  5 18.4623
+655  6 22.4593
+655  7 23.6964
+655  8 25.0288
+655  9 26.5514
+655 10 27.1224
+655 11 27.1224
+655 12 26.9321
+655 13 26.3611
+655 14 26.0756
+655 15 24.7433
+655 16 23.4109
+655 17 21.9834
+655 18 20.4608
+655 19 18.7478
+655 20 17.1299
+655 21 13.5136
+655 22  9.5166
+655 23  6.6616
+655 24  4.9487
+655 25  2.1888
+655 26  0.9517
+655 27  0.3807
+655 28  0.0952
+# pixel 656
+656  1  0.7194
+656  2  2.3381
+656  3  6.2048
+656  4 11.1507
+656  5 17.4455
+656  6 21.2223
+656  7 22.3914
+656  8 23.6503
+656  9 25.0891
+656 10 25.6287
+656 11 25.6287
+656 12 25.4488
+656 13 24.9093
+656 14 24.6395
+656 15 23.3805
+656 16 22.1216
+656 17 20.7727
+656 18 19.3339
+656 19 17.7153
+656 20 16.1865
+656 21 12.7694
+656 22  8.9925
+656 23  6.2948
+656 24  4.6761
+656 25  2.0683
+656 26  0.8993
+656 27  0.3597
+656 28  0.0899
+# pixel 657
+657  1  0.7991
+657  2  2.5972
+657  3  6.8925
+657  4 12.3866
+657  5 19.3790
+657  6 23.5744
+657  7 24.8730
+657  8 26.2715
+657  9 27.8698
+657 10 28.4691
+657 11 28.4691
+657 12 28.2693
+657 13 27.6700
+657 14 27.3703
+657 15 25.9718
+657 16 24.5733
+657 17 23.0750
+657 18 21.4767
+657 19 19.6786
+657 20 17.9805
+657 21 14.1846
+657 22  9.9892
+657 23  6.9924
+657 24  5.1944
+657 25  2.2975
+657 26  0.9989
+657 27  0.3996
+657 28  0.0999
+# pixel 658
+658  1  0.7221
+658  2  2.3468
+658  3  6.2279
+658  4 11.1922
+658  5 17.5104
+658  6 21.3013
+658  7 22.4747
+658  8 23.7383
+658  9 25.1825
+658 10 25.7240
+658 11 25.7240
+658 12 25.5435
+658 13 25.0020
+658 14 24.7312
+658 15 23.4675
+658 16 22.2039
+658 17 20.8500
+658 18 19.4059
+658 19 17.7812
+658 20 16.2468
+658 21 12.8169
+658 22  9.0260
+658 23  6.3182
+658 24  4.6935
+658 25  2.0760
+658 26  0.9026
+658 27  0.3610
+658 28  0.0903
+# pixel 659
+659  1  0.7565
+659  2  2.4587
+659  3  6.5249
+659  4 11.7259
+659  5 18.3454
+659  6 22.3171
+659  7 23.5464
+659  8 24.8703
+659  9 26.3833
+659 10 26.9507
+659 11 26.9507
+659 12 26.7616
+659 13 26.1942
+659 14 25.9105
+659 15 24.5866
+659 16 23.2627
+659 17 21.8442
+659 18 20.3312
+659 19 18.6291
+659 20 17.0215
+659 21 13.4281
+659 22  9.4564
+659 23  6.6195
+659 24  4.9173
+659 25  2.1750
+659 26  0.9456
+659 27  0.3783
+659 28  0.0946
+# pixel 660
+660  1  0.7364
+660  2  2.3933
+660  3  6.3514
+660  4 11.4140
+660  5 17.8575
+660  6 21.7235
+660  7 22.9201
+660  8 24.2088
+660  9 25.6816
+660 10 26.2339
+660 11 26.2339
+660 12 26.0498
+660 13 25.4975
+660 14 25.2214
+660 15 23.9327
+660 16 22.6440
+660 17 21.2633
+660 18 19.7905
+660 19 18.1336
+660 20 16.5688
+660 21 13.0709
+660 22  9.2049
+660 23  6.4434
+660 24  4.7865
+660 25  2.1171
+660 26  0.9205
+660 27  0.3682
+660 28  0.0920
+# pixel 661
+661  1  0.6754
+661  2  2.1951
+661  3  5.8253
+661  4 10.4687
+661  5 16.3785
+661  6 19.9244
+661  7 21.0219
+661  8 22.2038
+661  9 23.5547
+661 10 24.0612
+661 11 24.0612
+661 12 23.8924
+661 13 23.3858
+661 14 23.1325
+661 15 21.9506
+661 16 20.7686
+661 17 19.5022
+661 18 18.1514
+661 19 16.6318
+661 20 15.1965
+661 21 11.9884
+661 22  8.4425
+661 23  5.9098
+661 24  4.3901
+661 25  1.9418
+661 26  0.8443
+661 27  0.3377
+661 28  0.0844
+# pixel 662
+662  1  0.7758
+662  2  2.5214
+662  3  6.6914
+662  4 12.0251
+662  5 18.8134
+662  6 22.8865
+662  7 24.1472
+662  8 25.5048
+662  9 27.0565
+662 10 27.6383
+662 11 27.6383
+662 12 27.4444
+662 13 26.8625
+662 14 26.5716
+662 15 25.2139
+662 16 23.8562
+662 17 22.4016
+662 18 20.8500
+662 19 19.1044
+662 20 17.4558
+662 21 13.7707
+662 22  9.6977
+662 23  6.7884
+662 24  5.0428
+662 25  2.2305
+662 26  0.9698
+662 27  0.3879
+662 28  0.0970
+# pixel 663
+663  1  0.7551
+663  2  2.4540
+663  3  6.5125
+663  4 11.7036
+663  5 18.3105
+663  6 22.2746
+663  7 23.5016
+663  8 24.8230
+663  9 26.3331
+663 10 26.8994
+663 11 26.8994
+663 12 26.7106
+663 13 26.1443
+663 14 25.8612
+663 15 24.5398
+663 16 23.2184
+663 17 21.8027
+663 18 20.2925
+663 19 18.5936
+663 20 16.9891
+663 21 13.4025
+663 22  9.4384
+663 23  6.6069
+663 24  4.9080
+663 25  2.1708
+663 26  0.9438
+663 27  0.3775
+663 28  0.0944
+# pixel 664
+664  1  0.7036
+664  2  2.2867
+664  3  6.0686
+664  4 10.9059
+664  5 17.0625
+664  6 20.7565
+664  7 21.8998
+664  8 23.1312
+664  9 24.5384
+664 10 25.0661
+664 11 25.0661
+664 12 24.8902
+664 13 24.3625
+664 14 24.0986
+664 15 22.8673
+664 16 21.6360
+664 17 20.3167
+664 18 18.9095
+664 19 17.3264
+664 20 15.8312
+664 21 12.4891
+664 22  8.7951
+664 23  6.1566
+664 24  4.5735
+664 25  2.0229
+664 26  0.8795
+664 27  0.3518
+664 28  0.0880
+# pixel 665
+665  1  0.7832
+665  2  2.5453
+665  3  6.7549
+665  4 12.1392
+665  5 18.9919
+665  6 23.1036
+665  7 24.3762
+665  8 25.7468
+665  9 27.3131
+665 10 27.9005
+665 11 27.9005
+665 12 27.7047
+665 13 27.1173
+665 14 26.8236
+665 15 25.4531
+665 16 24.0825
+665 17 22.6141
+665 18 21.0478
+665 19 19.2856
+665 20 17.6214
+665 21 13.9013
+665 22  9.7897
+665 23  6.8528
+665 24  5.0906
+665 25  2.2516
+665 26  0.9790
+665 27  0.3916
+665 28  0.0979
+# pixel 666
+666  1  0.6662
+666  2  2.1653
+666  3  5.7463
+666  4 10.3266
+666  5 16.1562
+666  6 19.6539
+666  7 20.7365
+666  8 21.9024
+666  9 23.2349
+666 10 23.7346
+666 11 23.7346
+666 12 23.5680
+666 13 23.0684
+666 14 22.8185
+666 15 21.6526
+666 16 20.4867
+666 17 19.2375
+666 18 17.9050
+666 19 16.4060
+666 20 14.9903
+666 21 11.8257
+666 22  8.3279
+666 23  5.8295
+666 24  4.3305
+666 25  1.9154
+666 26  0.8328
+666 27  0.3331
+666 28  0.0833
+# pixel 667
+667  1  0.7794
+667  2  2.5331
+667  3  6.7224
+667  4 12.0809
+667  5 18.9007
+667  6 22.9927
+667  7 24.2592
+667  8 25.6232
+667  9 27.1820
+667 10 27.7665
+667 11 27.7665
+667 12 27.5717
+667 13 26.9871
+667 14 26.6949
+667 15 25.3309
+667 16 23.9669
+667 17 22.5055
+667 18 20.9467
+667 19 19.1930
+667 20 17.5368
+667 21 13.8346
+667 22  9.7426
+667 23  6.8199
+667 24  5.0662
+667 25  2.2408
+667 26  0.9743
+667 27  0.3897
+667 28  0.0974
+# pixel 668
+668  1  0.7263
+668  2  2.3606
+668  3  6.2647
+668  4 11.2583
+668  5 17.6139
+668  6 21.4272
+668  7 22.6075
+668  8 23.8786
+668  9 25.3313
+668 10 25.8760
+668 11 25.8760
+668 12 25.6944
+668 13 25.1497
+668 14 24.8773
+668 15 23.6062
+668 16 22.3351
+668 17 20.9732
+668 18 19.5205
+668 19 17.8862
+668 20 16.3427
+668 21 12.8926
+668 22  9.0793
+668 23  6.3555
+668 24  4.7212
+668 25  2.0882
+668 26  0.9079
+668 27  0.3632
+668 28  0.0908
+# pixel 669
+669  1  0.7399
+669  2  2.4047
+669  3  6.3817
+669  4 11.4685
+669  5 17.9427
+669  6 21.8272
+669  7 23.0295
+669  8 24.3243
+669  9 25.8042
+669 10 26.3591
+669 11 26.3591
+669 12 26.1741
+669 13 25.6192
+669 14 25.3417
+669 15 24.0469
+669 16 22.7521
+669 17 21.3647
+669 18 19.8849
+669 19 18.2201
+669 20 16.6478
+669 21 13.1333
+669 22  9.2488
+669 23  6.4742
+669 24  4.8094
+669 25  2.1272
+669 26  0.9249
+669 27  0.3700
+669 28  0.0925
+# pixel 670
+670  1  0.7961
+670  2  2.5872
+670  3  6.8659
+670  4 12.3388
+670  5 19.3043
+670  6 23.4835
+670  7 24.7771
+670  8 26.1702
+670  9 27.7623
+670 10 28.3593
+670 11 28.3593
+670 12 28.1603
+670 13 27.5633
+670 14 27.2648
+670 15 25.8717
+670 16 24.4786
+670 17 22.9860
+670 18 21.3939
+670 19 19.6028
+670 20 17.9112
+670 21 14.1299
+670 22  9.9506
+670 23  6.9655
+670 24  5.1743
+670 25  2.2886
+670 26  0.9951
+670 27  0.3980
+670 28  0.0995
+# pixel 671
+671  1  0.8106
+671  2  2.6343
+671  3  6.9911
+671  4 12.5638
+671  5 19.6563
+671  6 23.9117
+671  7 25.2289
+671  8 26.6474
+671  9 28.2685
+671 10 28.8765
+671 11 28.8765
+671 12 28.6738
+671 13 28.0659
+671 14 27.7619
+671 15 26.3434
+671 16 24.9249
+671 17 23.4051
+671 18 21.7840
+671 19 19.9602
+671 20 18.2378
+671 21 14.3876
+671 22 10.1321
+671 23  7.0925
+671 24  5.2687
+671 25  2.3304
+671 26  1.0132
+671 27  0.4053
+671 28  0.1013
+# pixel 672
+672  1  0.7230
+672  2  2.3498
+672  3  6.2359
+672  4 11.2065
+672  5 17.5328
+672  6 21.3286
+672  7 22.5035
+672  8 23.7687
+672  9 25.2147
+672 10 25.7570
+672 11 25.7570
+672 12 25.5762
+672 13 25.0340
+672 14 24.7629
+672 15 23.4976
+672 16 22.2323
+672 17 20.8767
+672 18 19.4307
+672 19 17.8040
+672 20 16.2676
+672 21 12.8333
+672 22  9.0375
+672 23  6.3263
+672 24  4.6995
+672 25  2.0786
+672 26  0.9038
+672 27  0.3615
+672 28  0.0904
+# pixel 673
+673  1  0.8418
+673  2  2.7360
+673  3  7.2608
+673  4 13.0484
+673  5 20.4145
+673  6 24.8341
+673  7 26.2021
+673  8 27.6753
+673  9 29.3590
+673 10 29.9904
+673 11 29.9904
+673 12 29.7799
+673 13 29.1485
+673 14 28.8329
+673 15 27.3596
+673 16 25.8864
+673 17 24.3080
+673 18 22.6243
+673 19 20.7302
+673 20 18.9413
+673 21 14.9426
+673 22 10.5229
+673 23  7.3661
+673 24  5.4719
+673 25  2.4203
+673 26  1.0523
+673 27  0.4209
+673 28  0.1052
+# pixel 674
+674  1  0.6388
+674  2  2.0761
+674  3  5.5096
+674  4  9.9014
+674  5 15.4909
+674  6 18.8446
+674  7 19.8826
+674  8 21.0005
+674  9 22.2781
+674 10 22.7572
+674 11 22.7572
+674 12 22.5975
+674 13 22.1184
+674 14 21.8789
+674 15 20.7610
+674 16 19.6431
+674 17 18.4453
+674 18 17.1677
+674 19 15.7304
+674 20 14.3730
+674 21 11.3387
+674 22  7.9850
+674 23  5.5895
+674 24  4.1522
+674 25  1.8365
+674 26  0.7985
+674 27  0.3194
+674 28  0.0798
+# pixel 675
+675  1  0.7432
+675  2  2.4154
+675  3  6.4101
+675  4 11.5196
+675  5 18.0226
+675  6 21.9243
+675  7 23.1320
+675  8 24.4326
+675  9 25.9190
+675 10 26.4764
+675 11 26.4764
+675 12 26.2906
+675 13 25.7332
+675 14 25.4545
+675 15 24.1539
+675 16 22.8533
+675 17 21.4598
+675 18 19.9734
+675 19 18.3013
+675 20 16.7220
+675 21 13.1918
+675 22  9.2900
+675 23  6.5030
+675 24  4.8308
+675 25  2.1367
+675 26  0.9290
+675 27  0.3716
+675 28  0.0929
+# pixel 676
+676  1  0.7514
+676  2  2.4420
+676  3  6.4808
+676  4 11.6466
+676  5 18.2212
+676  6 22.1661
+676  7 23.3871
+676  8 24.7020
+676  9 26.2048
+676 10 26.7683
+676 11 26.7683
+676 12 26.5805
+676 13 26.0169
+676 14 25.7352
+676 15 24.4202
+676 16 23.1053
+676 17 21.6964
+676 18 20.1937
+676 19 18.5030
+676 20 16.9063
+676 21 13.3372
+676 22  9.3924
+676 23  6.5747
+676 24  4.8840
+676 25  2.1603
+676 26  0.9392
+676 27  0.3757
+676 28  0.0939
+# pixel 677
+677  1  0.7224
+677  2  2.3480
+677  3  6.2311
+677  4 11.1979
+677  5 17.5193
+677  6 21.3122
+677  7 22.4862
+677  8 23.7505
+677  9 25.1953
+677 10 25.7372
+677 11 25.7372
+677 12 25.5566
+677 13 25.0147
+677 14 24.7438
+677 15 23.4795
+677 16 22.2153
+677 17 20.8607
+677 18 19.4158
+677 19 17.7903
+677 20 16.2551
+677 21 12.8234
+677 22  9.0306
+677 23  6.3214
+677 24  4.6959
+677 25  2.0770
+677 26  0.9031
+677 27  0.3612
+677 28  0.0903
+# pixel 678
+678  1  0.7500
+678  2  2.4374
+678  3  6.4684
+678  4 11.6245
+678  5 18.1866
+678  6 22.1240
+678  7 23.3426
+678  8 24.6551
+678  9 26.1550
+678 10 26.7175
+678 11 26.7175
+678 12 26.5300
+678 13 25.9675
+678 14 25.6863
+678 15 24.3738
+678 16 23.0614
+678 17 21.6552
+678 18 20.1553
+678 19 18.4679
+678 20 16.8742
+678 21 13.3119
+678 22  9.3746
+678 23  6.5622
+678 24  4.8748
+678 25  2.1561
+678 26  0.9375
+678 27  0.3750
+678 28  0.0937
+# pixel 679
+679  1  0.7530
+679  2  2.4474
+679  3  6.4949
+679  4 11.6721
+679  5 18.2612
+679  6 22.2146
+679  7 23.4383
+679  8 24.7561
+679  9 26.2622
+679 10 26.8270
+679 11 26.8270
+679 12 26.6387
+679 13 26.0739
+679 14 25.7915
+679 15 24.4737
+679 16 23.1559
+679 17 21.7440
+679 18 20.2379
+679 19 18.5435
+679 20 16.9433
+679 21 13.3664
+679 22  9.4130
+679 23  6.5891
+679 24  4.8947
+679 25  2.1650
+679 26  0.9413
+679 27  0.3765
+679 28  0.0941
+# pixel 680
+680  1  0.7934
+680  2  2.5786
+680  3  6.8432
+680  4 12.2979
+680  5 19.2403
+680  6 23.4057
+680  7 24.6950
+680  8 26.0835
+680  9 27.6703
+680 10 28.2654
+680 11 28.2654
+680 12 28.0670
+680 13 27.4720
+680 14 27.1744
+680 15 25.7860
+680 16 24.3975
+680 17 22.9098
+680 18 21.3230
+680 19 19.5378
+680 20 17.8518
+680 21 14.0831
+680 22  9.9177
+680 23  6.9424
+680 24  5.1572
+680 25  2.2811
+680 26  0.9918
+680 27  0.3967
+680 28  0.0992
+# pixel 681
+681  1  0.7544
+681  2  2.4519
+681  3  6.5070
+681  4 11.6938
+681  5 18.2951
+681  6 22.2559
+681  7 23.4818
+681  8 24.8021
+681  9 26.3110
+681 10 26.8768
+681 11 26.8768
+681 12 26.6882
+681 13 26.1224
+681 14 25.8394
+681 15 24.5192
+681 16 23.1989
+681 17 21.7843
+681 18 20.2755
+681 19 18.5780
+681 20 16.9748
+681 21 13.3912
+681 22  9.4305
+681 23  6.6013
+681 24  4.9038
+681 25  2.1690
+681 26  0.9430
+681 27  0.3772
+681 28  0.0943
+# pixel 682
+682  1  0.7356
+682  2  2.3906
+682  3  6.3444
+682  4 11.4015
+682  5 17.8379
+682  6 21.6997
+682  7 22.8950
+682  8 24.1823
+682  9 25.6534
+682 10 26.2051
+682 11 26.2051
+682 12 26.0212
+682 13 25.4695
+682 14 25.1937
+682 15 23.9064
+682 16 22.6191
+682 17 21.2399
+682 18 19.7688
+682 19 18.1137
+682 20 16.5506
+682 21 13.0566
+682 22  9.1948
+682 23  6.4363
+682 24  4.7813
+682 25  2.1148
+682 26  0.9195
+682 27  0.3678
+682 28  0.0919
+# pixel 683
+683  1  0.7898
+683  2  2.5668
+683  3  6.8120
+683  4 12.2418
+683  5 19.1525
+683  6 23.2990
+683  7 24.5824
+683  8 25.9645
+683  9 27.5441
+683 10 28.1365
+683 11 28.1365
+683 12 27.9390
+683 13 27.3467
+683 14 27.0505
+683 15 25.6683
+683 16 24.2862
+683 17 22.8053
+683 18 21.2257
+683 19 19.4487
+683 20 17.7704
+683 21 14.0189
+683 22  9.8724
+683 23  6.9107
+683 24  5.1337
+683 25  2.2707
+683 26  0.9872
+683 27  0.3949
+683 28  0.0987
+# pixel 684
+684  1  0.7086
+684  2  2.3031
+684  3  6.1121
+684  4 10.9840
+684  5 17.1847
+684  6 20.9051
+684  7 22.0566
+684  8 23.2968
+684  9 24.7141
+684 10 25.2455
+684 11 25.2455
+684 12 25.0684
+684 13 24.5369
+684 14 24.2712
+684 15 23.0310
+684 16 21.7909
+684 17 20.4622
+684 18 19.0449
+684 19 17.4504
+684 20 15.9446
+684 21 12.5785
+684 22  8.8581
+684 23  6.2007
+684 24  4.6062
+684 25  2.0374
+684 26  0.8858
+684 27  0.3543
+684 28  0.0886
+# pixel 685
+685  1  0.7746
+685  2  2.5174
+685  3  6.6809
+685  4 12.0063
+685  5 18.7840
+685  6 22.8506
+685  7 24.1093
+685  8 25.4649
+685  9 27.0141
+685 10 27.5950
+685 11 27.5950
+685 12 27.4014
+685 13 26.8204
+685 14 26.5300
+685 15 25.1744
+685 16 23.8189
+685 17 22.3665
+685 18 20.8173
+685 19 19.0745
+685 20 17.4284
+685 21 13.7491
+685 22  9.6825
+685 23  6.7777
+685 24  5.0349
+685 25  2.2270
+685 26  0.9682
+685 27  0.3873
+685 28  0.0968
+# pixel 686
+686  1  0.7861
+686  2  2.5550
+686  3  6.7805
+686  4 12.1853
+686  5 19.0640
+686  6 23.1913
+686  7 24.4688
+686  8 25.8445
+686  9 27.4168
+686 10 28.0064
+686 11 28.0064
+686 12 27.8099
+686 13 27.2203
+686 14 26.9255
+686 15 25.5497
+686 16 24.1740
+686 17 22.7000
+686 18 21.1277
+686 19 19.3588
+686 20 17.6883
+686 21 13.9541
+686 22  9.8268
+686 23  6.8788
+686 24  5.1099
+686 25  2.2602
+686 26  0.9827
+686 27  0.3931
+686 28  0.0983
+# pixel 687
+687  1  0.8207
+687  2  2.6673
+687  3  7.0785
+687  4 12.7208
+687  5 19.9019
+687  6 24.2106
+687  7 25.5442
+687  8 26.9804
+687  9 28.6218
+687 10 29.2373
+687 11 29.2373
+687 12 29.0322
+687 13 28.4166
+687 14 28.1089
+687 15 26.6727
+687 16 25.2364
+687 17 23.6976
+687 18 22.0562
+687 19 20.2097
+687 20 18.4657
+687 21 14.5674
+687 22 10.2587
+687 23  7.1811
+687 24  5.3345
+687 25  2.3595
+687 26  1.0259
+687 27  0.4103
+687 28  0.1026
+# pixel 688
+688  1  0.7116
+688  2  2.3126
+688  3  6.1372
+688  4 11.0291
+688  5 17.2552
+688  6 20.9909
+688  7 22.1471
+688  8 23.3924
+688  9 24.8155
+688 10 25.3491
+688 11 25.3491
+688 12 25.1713
+688 13 24.6376
+688 14 24.3708
+688 15 23.1255
+688 16 21.8803
+688 17 20.5461
+688 18 19.1230
+688 19 17.5220
+688 20 16.0100
+688 21 12.6301
+688 22  8.8944
+688 23  6.2261
+688 24  4.6251
+688 25  2.0457
+688 26  0.8894
+688 27  0.3558
+688 28  0.0889
+# pixel 689
+689  1  0.7046
+689  2  2.2901
+689  3  6.0774
+689  4 10.9218
+689  5 17.0873
+689  6 20.7866
+689  7 21.9316
+689  8 23.1647
+689  9 24.5740
+689 10 25.1025
+689 11 25.1025
+689 12 24.9263
+689 13 24.3978
+689 14 24.1336
+689 15 22.9005
+689 16 21.6674
+689 17 20.3462
+689 18 18.9370
+689 19 17.3515
+689 20 15.8542
+689 21 12.5072
+689 22  8.8079
+689 23  6.1655
+689 24  4.5801
+689 25  2.0258
+689 26  0.8808
+689 27  0.3523
+689 28  0.0881
+# pixel 690
+690  1  0.7098
+690  2  2.3068
+690  3  6.1220
+690  4 11.0018
+690  5 17.2125
+690  6 20.9389
+690  7 22.0923
+690  8 23.3344
+690  9 24.7540
+690 10 25.2863
+690 11 25.2863
+690 12 25.1089
+690 13 24.5766
+690 14 24.3104
+690 15 23.0682
+690 16 21.8261
+690 17 20.4953
+690 18 19.0757
+690 19 17.4786
+690 20 15.9703
+690 21 12.5988
+690 22  8.8724
+690 23  6.2107
+690 24  4.6136
+690 25  2.0407
+690 26  0.8872
+690 27  0.3549
+690 28  0.0887
+# pixel 691
+691  1  0.7319
+691  2  2.3785
+691  3  6.3122
+691  4 11.3437
+691  5 17.7474
+691  6 21.5896
+691  7 22.7789
+691  8 24.0596
+691  9 25.5233
+691 10 26.0722
+691 11 26.0722
+691 12 25.8892
+691 13 25.3404
+691 14 25.0659
+691 15 23.7852
+691 16 22.5044
+691 17 21.1322
+691 18 19.6685
+691 19 18.0218
+691 20 16.4667
+691 21 12.9904
+691 22  9.1481
+691 23  6.4037
+691 24  4.7570
+691 25  2.1041
+691 26  0.9148
+691 27  0.3659
+691 28  0.0915
+# pixel 692
+692  1  0.6642
+692  2  2.1587
+692  3  5.7290
+692  4 10.2956
+692  5 16.1076
+692  6 19.5948
+692  7 20.6741
+692  8 21.8365
+692  9 23.1650
+692 10 23.6632
+692 11 23.6632
+692 12 23.4971
+692 13 22.9989
+692 14 22.7499
+692 15 21.5874
+692 16 20.4250
+692 17 19.1796
+692 18 17.8512
+692 19 16.3566
+692 20 14.9452
+692 21 11.7901
+692 22  8.3029
+692 23  5.8120
+692 24  4.3175
+692 25  1.9097
+692 26  0.8303
+692 27  0.3321
+692 28  0.0830
+# pixel 693
+693  1  0.7940
+693  2  2.5805
+693  3  6.8483
+693  4 12.3071
+693  5 19.2547
+693  6 23.4233
+693  7 24.7135
+693  8 26.1030
+693  9 27.6910
+693 10 28.2866
+693 11 28.2866
+693 12 28.0881
+693 13 27.4925
+693 14 27.1948
+693 15 25.8053
+693 16 24.4158
+693 17 22.9270
+693 18 21.3390
+693 19 19.5525
+693 20 17.8652
+693 21 14.0937
+693 22  9.9251
+693 23  6.9476
+693 24  5.1611
+693 25  2.2828
+693 26  0.9925
+693 27  0.3970
+693 28  0.0993
+# pixel 694
+694  1  0.7641
+694  2  2.4834
+694  3  6.5906
+694  4 11.8439
+694  5 18.5300
+694  6 22.5417
+694  7 23.7834
+694  8 25.1206
+694  9 26.6488
+694 10 27.2219
+694 11 27.2219
+694 12 27.0309
+694 13 26.4578
+694 14 26.1713
+694 15 24.8340
+694 16 23.4968
+694 17 22.0641
+694 18 20.5358
+694 19 18.8166
+694 20 17.1928
+694 21 13.5632
+694 22  9.5516
+694 23  6.6861
+694 24  4.9668
+694 25  2.1969
+694 26  0.9552
+694 27  0.3821
+694 28  0.0955
+# pixel 695
+695  1  0.7812
+695  2  2.5388
+695  3  6.7377
+695  4 12.1083
+695  5 18.9436
+695  6 23.0448
+695  7 24.3142
+695  8 25.6812
+695  9 27.2436
+695 10 27.8295
+695 11 27.8295
+695 12 27.6342
+695 13 27.0483
+695 14 26.7553
+695 15 25.3883
+695 16 24.0212
+695 17 22.5565
+695 18 20.9942
+695 19 19.2365
+695 20 17.5765
+695 21 13.8659
+695 22  9.7647
+695 23  6.8353
+695 24  5.0777
+695 25  2.2459
+695 26  0.9765
+695 27  0.3906
+695 28  0.0976
+# pixel 696
+696  1  0.7033
+696  2  2.2858
+696  3  6.0663
+696  4 10.9017
+696  5 17.0559
+696  6 20.7484
+696  7 21.8913
+696  8 23.1221
+696  9 24.5288
+696 10 25.0563
+696 11 25.0563
+696 12 24.8804
+696 13 24.3529
+696 14 24.0892
+696 15 22.8584
+696 16 21.6275
+696 17 20.3088
+696 18 18.9021
+696 19 17.3196
+696 20 15.8250
+696 21 12.4842
+696 22  8.7917
+696 23  6.1542
+696 24  4.5717
+696 25  2.0221
+696 26  0.8792
+696 27  0.3517
+696 28  0.0879
+# pixel 697
+697  1  0.6745
+697  2  2.1920
+697  3  5.8173
+697  4 10.4542
+697  5 16.3558
+697  6 19.8967
+697  7 20.9927
+697  8 22.1730
+697  9 23.5219
+697 10 24.0278
+697 11 24.0278
+697 12 23.8592
+697 13 23.3533
+697 14 23.1004
+697 15 21.9201
+697 16 20.7398
+697 17 19.4752
+697 18 18.1262
+697 19 16.6087
+697 20 15.1754
+697 21 11.9717
+697 22  8.4308
+697 23  5.9016
+697 24  4.3840
+697 25  1.9391
+697 26  0.8431
+697 27  0.3372
+697 28  0.0843
+# pixel 698
+698  1  0.7664
+698  2  2.4908
+698  3  6.6102
+698  4 11.8792
+698  5 18.5852
+698  6 22.6088
+698  7 23.8542
+698  8 25.1954
+698  9 26.7282
+698 10 27.3030
+698 11 27.3030
+698 12 27.1114
+698 13 26.5366
+698 14 26.2492
+698 15 24.9080
+698 16 23.5668
+698 17 22.1298
+698 18 20.5970
+698 19 18.8726
+698 20 17.2440
+698 21 13.6036
+698 22  9.5800
+698 23  6.7060
+698 24  4.9816
+698 25  2.2034
+698 26  0.9580
+698 27  0.3832
+698 28  0.0958
+# pixel 699
+699  1  0.7027
+699  2  2.2837
+699  3  6.0607
+699  4 10.8917
+699  5 17.0402
+699  6 20.7293
+699  7 21.8712
+699  8 23.1009
+699  9 24.5063
+699 10 25.0333
+699 11 25.0333
+699 12 24.8576
+699 13 24.3306
+699 14 24.0671
+699 15 22.8374
+699 16 21.6077
+699 17 20.2901
+699 18 18.8848
+699 19 17.3037
+699 20 15.8105
+699 21 12.4727
+699 22  8.7836
+699 23  6.1485
+699 24  4.5675
+699 25  2.0202
+699 26  0.8784
+699 27  0.3513
+699 28  0.0878
+# pixel 700
+700  1  0.6682
+700  2  2.1717
+700  3  5.7633
+700  4 10.3573
+700  5 16.2042
+700  6 19.7123
+700  7 20.7981
+700  8 21.9675
+700  9 23.3039
+700 10 23.8051
+700 11 23.8051
+700 12 23.6380
+700 13 23.1369
+700 14 22.8863
+700 15 21.7169
+700 16 20.5476
+700 17 19.2947
+700 18 17.9582
+700 19 16.4547
+700 20 15.0348
+700 21 11.8608
+700 22  8.3527
+700 23  5.8469
+700 24  4.3434
+700 25  1.9211
+700 26  0.8353
+700 27  0.3341
+700 28  0.0835
+# pixel 701
+701  1  0.7308
+701  2  2.3751
+701  3  6.3031
+701  4 11.3273
+701  5 17.7217
+701  6 21.5584
+701  7 22.7459
+701  8 24.0248
+701  9 25.4864
+701 10 26.0345
+701 11 26.0345
+701 12 25.8518
+701 13 25.3037
+701 14 25.0296
+701 15 23.7507
+701 16 22.4719
+701 17 21.1016
+701 18 19.6400
+701 19 17.9958
+701 20 16.4428
+701 21 12.9716
+701 22  9.1349
+701 23  6.3944
+701 24  4.7501
+701 25  2.1010
+701 26  0.9135
+701 27  0.3654
+701 28  0.0913
+# pixel 702
+702  1  0.7053
+702  2  2.2921
+702  3  6.0830
+702  4 10.9318
+702  5 17.1029
+702  6 20.8056
+702  7 21.9517
+702  8 23.1859
+702  9 24.5965
+702 10 25.1254
+702 11 25.1254
+702 12 24.9491
+702 13 24.4202
+702 14 24.1557
+702 15 22.9215
+702 16 21.6872
+702 17 20.3648
+702 18 18.9543
+702 19 17.3674
+702 20 15.8687
+702 21 12.5186
+702 22  8.8159
+702 23  6.1712
+702 24  4.5843
+702 25  2.0277
+702 26  0.8816
+702 27  0.3526
+702 28  0.0882
+# pixel 703
+703  1  0.6448
+703  2  2.0957
+703  3  5.5618
+703  4  9.9951
+703  5 15.6374
+703  6 19.0228
+703  7 20.0707
+703  8 21.1992
+703  9 22.4889
+703 10 22.9725
+703 11 22.9725
+703 12 22.8113
+703 13 22.3277
+703 14 22.0858
+703 15 20.9574
+703 16 19.8289
+703 17 18.6198
+703 18 17.3301
+703 19 15.8792
+703 20 14.5089
+703 21 11.4459
+703 22  8.0605
+703 23  5.6424
+703 24  4.1915
+703 25  1.8539
+703 26  0.8061
+703 27  0.3224
+703 28  0.0806
+# pixel 704
+704  1  0.7353
+704  2  2.3898
+704  3  6.3422
+704  4 11.3976
+704  5 17.8318
+704  6 21.6923
+704  7 22.8872
+704  8 24.1740
+704  9 25.6447
+704 10 26.1962
+704 11 26.1962
+704 12 26.0124
+704 13 25.4609
+704 14 25.1851
+704 15 23.8983
+704 16 22.6115
+704 17 21.2327
+704 18 19.7621
+704 19 18.1076
+704 20 16.5450
+704 21 13.0521
+704 22  9.1917
+704 23  6.4342
+704 24  4.7797
+704 25  2.1141
+704 26  0.9192
+704 27  0.3677
+704 28  0.0919
+# pixel 705
+705  1  0.7720
+705  2  2.5089
+705  3  6.6583
+705  4 11.9656
+705  5 18.7204
+705  6 22.7733
+705  7 24.0277
+705  8 25.3787
+705  9 26.9226
+705 10 27.5016
+705 11 27.5016
+705 12 27.3086
+705 13 26.7296
+705 14 26.4401
+705 15 25.0892
+705 16 23.7382
+705 17 22.2908
+705 18 20.7468
+705 19 19.0099
+705 20 17.3694
+705 21 13.7026
+705 22  9.6497
+705 23  6.7548
+705 24  5.0178
+705 25  2.2194
+705 26  0.9650
+705 27  0.3860
+705 28  0.0965
+# pixel 706
+706  1  0.7237
+706  2  2.3520
+706  3  6.2419
+706  4 11.2173
+706  5 17.5496
+706  6 21.3490
+706  7 22.5250
+706  8 23.7915
+706  9 25.2389
+706 10 25.7817
+706 11 25.7817
+706 12 25.6007
+706 13 25.0580
+706 14 24.7866
+706 15 23.5201
+706 16 22.2536
+706 17 20.8967
+706 18 19.4493
+706 19 17.8210
+706 20 16.2832
+706 21 12.8456
+706 22  9.0462
+706 23  6.3323
+706 24  4.7040
+706 25  2.0806
+706 26  0.9046
+706 27  0.3618
+706 28  0.0905
+# pixel 707
+707  1  0.7246
+707  2  2.3550
+707  3  6.2497
+707  4 11.2314
+707  5 17.5717
+707  6 21.3759
+707  7 22.5534
+707  8 23.8214
+707  9 25.2707
+707 10 25.8141
+707 11 25.8141
+707 12 25.6330
+707 13 25.0895
+707 14 24.8178
+707 15 23.5497
+707 16 22.2817
+707 17 20.9230
+707 18 19.4738
+707 19 17.8434
+707 20 16.3037
+707 21 12.8618
+707 22  9.0576
+707 23  6.3403
+707 24  4.7099
+707 25  2.0832
+707 26  0.9058
+707 27  0.3623
+707 28  0.0906
+# pixel 708
+708  1  0.7026
+708  2  2.2836
+708  3  6.0602
+708  4 10.8909
+708  5 17.0389
+708  6 20.7278
+708  7 21.8696
+708  8 23.0992
+708  9 24.5044
+708 10 25.0314
+708 11 25.0314
+708 12 24.8558
+708 13 24.3288
+708 14 24.0653
+708 15 22.8357
+708 16 21.6061
+708 17 20.2886
+708 18 18.8833
+708 19 17.3024
+708 20 15.8093
+708 21 12.4718
+708 22  8.7830
+708 23  6.1481
+708 24  4.5671
+708 25  2.0201
+708 26  0.8783
+708 27  0.3513
+708 28  0.0878
+# pixel 709
+709  1  0.7149
+709  2  2.3233
+709  3  6.1657
+709  4 11.0804
+709  5 17.3354
+709  6 21.0885
+709  7 22.2501
+709  8 23.5011
+709  9 24.9308
+709 10 25.4670
+709 11 25.4670
+709 12 25.2883
+709 13 24.7521
+709 14 24.4841
+709 15 23.2330
+709 16 21.9820
+709 17 20.6417
+709 18 19.2119
+709 19 17.6035
+709 20 16.0844
+709 21 12.6888
+709 22  8.9358
+709 23  6.2551
+709 24  4.6466
+709 25  2.0552
+709 26  0.8936
+709 27  0.3574
+709 28  0.0894
+# pixel 710
+710  1  0.7467
+710  2  2.4267
+710  3  6.4401
+710  4 11.5735
+710  5 18.1069
+710  6 22.0270
+710  7 23.2403
+710  8 24.5470
+710  9 26.0404
+710 10 26.6004
+710 11 26.6004
+710 12 26.4137
+710 13 25.8537
+710 14 25.5737
+710 15 24.2670
+710 16 22.9603
+710 17 21.5603
+710 18 20.0669
+710 19 18.3869
+710 20 16.8002
+710 21 13.2535
+710 22  9.3335
+710 23  6.5334
+710 24  4.8534
+710 25  2.1467
+710 26  0.9333
+710 27  0.3733
+710 28  0.0933
+# pixel 711
+711  1  0.7169
+711  2  2.3299
+711  3  6.1833
+711  4 11.1120
+711  5 17.3849
+711  6 21.1486
+711  7 22.3136
+711  8 23.5681
+711  9 25.0019
+711 10 25.5396
+711 11 25.5396
+711 12 25.3604
+711 13 24.8227
+711 14 24.5539
+711 15 23.2993
+711 16 22.0447
+711 17 20.7005
+711 18 19.2667
+711 19 17.6537
+711 20 16.1303
+711 21 12.7250
+711 22  8.9613
+711 23  6.2729
+711 24  4.6599
+711 25  2.0611
+711 26  0.8961
+711 27  0.3585
+711 28  0.0896
+# pixel 712
+712  1  0.7812
+712  2  2.5389
+712  3  6.7380
+712  4 12.1088
+712  5 18.9445
+712  6 23.0458
+712  7 24.3153
+712  8 25.6824
+712  9 27.2449
+712 10 27.8308
+712 11 27.8308
+712 12 27.6355
+712 13 27.0496
+712 14 26.7566
+712 15 25.3895
+712 16 24.0224
+712 17 22.5576
+712 18 20.9952
+712 19 19.2374
+712 20 17.5773
+712 21 13.8666
+712 22  9.7652
+712 23  6.8356
+712 24  5.0779
+712 25  2.2460
+712 26  0.9765
+712 27  0.3906
+712 28  0.0977
+# pixel 713
+713  1  0.6954
+713  2  2.2600
+713  3  5.9977
+713  4 10.7785
+713  5 16.8631
+713  6 20.5139
+713  7 21.6439
+713  8 22.8609
+713  9 24.2516
+713 10 24.7732
+713 11 24.7732
+713 12 24.5993
+713 13 24.0778
+713 14 23.8170
+713 15 22.6001
+713 16 21.3832
+713 17 20.0793
+713 18 18.6885
+713 19 17.1239
+713 20 15.6462
+713 21 12.3431
+713 22  8.6923
+713 23  6.0846
+713 24  4.5200
+713 25  1.9992
+713 26  0.8692
+713 27  0.3477
+713 28  0.0869
+# pixel 714
+714  1  0.8109
+714  2  2.6353
+714  3  6.9937
+714  4 12.5683
+714  5 19.6634
+714  6 23.9204
+714  7 25.2380
+714  8 26.6570
+714  9 28.2788
+714 10 28.8869
+714 11 28.8869
+714 12 28.6842
+714 13 28.0761
+714 14 27.7720
+714 15 26.3530
+714 16 24.9340
+714 17 23.4136
+714 18 21.7919
+714 19 19.9674
+714 20 18.2444
+714 21 14.3928
+714 22 10.1358
+714 23  7.0950
+714 24  5.2706
+714 25  2.3312
+714 26  1.0136
+714 27  0.4054
+714 28  0.1014
+# pixel 715
+715  1  0.7593
+715  2  2.4678
+715  3  6.5492
+715  4 11.7696
+715  5 18.4137
+715  6 22.4002
+715  7 23.6341
+715  8 24.9629
+715  9 26.4815
+715 10 27.0510
+715 11 27.0510
+715 12 26.8612
+715 13 26.2917
+715 14 26.0070
+715 15 24.6781
+715 16 23.3493
+715 17 21.9256
+715 18 20.4069
+715 19 18.6984
+715 20 17.0849
+715 21 13.4781
+715 22  9.4916
+715 23  6.6441
+715 24  4.9356
+715 25  2.1831
+715 26  0.9492
+715 27  0.3797
+715 28  0.0949
+# pixel 716
+716  1  0.7204
+716  2  2.3411
+716  3  6.2130
+716  4 11.1654
+716  5 17.4685
+716  6 21.2504
+716  7 22.4209
+716  8 23.6816
+716  9 25.1223
+716 10 25.6625
+716 11 25.6625
+716 12 25.4824
+716 13 24.9422
+716 14 24.6720
+716 15 23.4114
+716 16 22.1508
+716 17 20.8001
+716 18 19.3594
+716 19 17.7387
+716 20 16.2079
+716 21 12.7862
+716 22  9.0044
+716 23  6.3031
+716 24  4.6823
+716 25  2.0710
+716 26  0.9004
+716 27  0.3602
+716 28  0.0900
+# pixel 717
+717  1  0.6629
+717  2  2.1545
+717  3  5.7177
+717  4 10.2753
+717  5 16.0759
+717  6 19.5563
+717  7 20.6335
+717  8 21.7937
+717  9 23.1195
+717 10 23.6167
+717 11 23.6167
+717 12 23.4510
+717 13 22.9538
+717 14 22.7052
+717 15 21.5451
+717 16 20.3849
+717 17 19.1420
+717 18 17.8161
+717 19 16.3245
+717 20 14.9158
+717 21 11.7669
+717 22  8.2866
+717 23  5.8006
+717 24  4.3090
+717 25  1.9059
+717 26  0.8287
+717 27  0.3315
+717 28  0.0829
+# pixel 718
+718  1  0.7290
+718  2  2.3692
+718  3  6.2875
+718  4 11.2993
+718  5 17.6780
+718  6 21.5052
+718  7 22.6898
+718  8 23.9655
+718  9 25.4235
+718 10 25.9702
+718 11 25.9702
+718 12 25.7880
+718 13 25.2413
+718 14 24.9679
+718 15 23.6922
+718 16 22.4164
+718 17 21.0496
+718 18 19.5916
+718 19 17.9514
+718 20 16.4023
+718 21 12.9396
+718 22  9.1124
+718 23  6.3787
+718 24  4.7384
+718 25  2.0958
+718 26  0.9112
+718 27  0.3645
+718 28  0.0911
+# pixel 719
+719  1  0.7125
+719  2  2.3157
+719  3  6.1456
+719  4 11.0443
+719  5 17.2790
+719  6 21.0198
+719  7 22.1776
+719  8 23.4246
+719  9 24.8496
+719 10 25.3841
+719 11 25.3841
+719 12 25.2059
+719 13 24.6715
+719 14 24.4043
+719 15 23.1574
+719 16 21.9104
+719 17 20.5744
+719 18 19.1494
+719 19 17.5462
+719 20 16.0320
+719 21 12.6475
+719 22  8.9067
+719 23  6.2347
+719 24  4.6315
+719 25  2.0485
+719 26  0.8907
+719 27  0.3563
+719 28  0.0891
+# pixel 720
+720  1  0.7463
+720  2  2.4254
+720  3  6.4367
+720  4 11.5675
+720  5 18.0975
+720  6 22.0155
+720  7 23.2282
+720  8 24.5342
+720  9 26.0268
+720 10 26.5865
+720 11 26.5865
+720 12 26.3999
+720 13 25.8402
+720 14 25.5603
+720 15 24.2543
+720 16 22.9483
+720 17 21.5490
+720 18 20.0565
+720 19 18.3773
+720 20 16.7915
+720 21 13.2466
+720 22  9.3286
+720 23  6.5300
+720 24  4.8509
+720 25  2.1456
+720 26  0.9329
+720 27  0.3731
+720 28  0.0933
+# pixel 721
+721  1  0.6715
+721  2  2.1823
+721  3  5.7916
+721  4 10.4080
+721  5 16.2836
+721  6 19.8089
+721  7 20.9000
+721  8 22.0751
+721  9 23.4181
+721 10 23.9217
+721 11 23.9217
+721 12 23.7538
+721 13 23.2502
+721 14 22.9984
+721 15 21.8233
+721 16 20.6482
+721 17 19.3892
+721 18 18.0462
+721 19 16.5354
+721 20 15.1084
+721 21 11.9189
+721 22  8.3936
+721 23  5.8755
+721 24  4.3647
+721 25  1.9305
+721 26  0.8394
+721 27  0.3357
+721 28  0.0839
+# pixel 722
+722  1  0.7305
+722  2  2.3741
+722  3  6.3005
+722  4 11.3226
+722  5 17.7143
+722  6 21.5494
+722  7 22.7364
+722  8 24.0148
+722  9 25.4757
+722 10 26.0236
+722 11 26.0236
+722 12 25.8410
+722 13 25.2931
+722 14 25.0192
+722 15 23.7408
+722 16 22.4625
+722 17 21.0928
+722 18 19.6318
+722 19 17.9882
+722 20 16.4360
+722 21 12.9661
+722 22  9.1311
+722 23  6.3918
+722 24  4.7482
+722 25  2.1002
+722 26  0.9131
+722 27  0.3652
+722 28  0.0913
+# pixel 723
+723  1  0.7273
+723  2  2.3638
+723  3  6.2731
+723  4 11.2733
+723  5 17.6373
+723  6 21.4557
+723  7 22.6376
+723  8 23.9104
+723  9 25.3650
+723 10 25.9105
+723 11 25.9105
+723 12 25.7286
+723 13 25.1832
+723 14 24.9104
+723 15 23.6376
+723 16 22.3648
+723 17 21.0011
+723 18 19.5465
+723 19 17.9100
+723 20 16.3645
+723 21 12.9098
+723 22  9.0914
+723 23  6.3640
+723 24  4.7275
+723 25  2.0910
+723 26  0.9091
+723 27  0.3637
+723 28  0.0909
+# pixel 724
+724  1  0.7588
+724  2  2.4660
+724  3  6.5444
+724  4 11.7609
+724  5 18.4001
+724  6 22.3837
+724  7 23.6167
+724  8 24.9445
+724  9 26.4620
+724 10 27.0311
+724 11 27.0311
+724 12 26.8414
+724 13 26.2724
+724 14 25.9878
+724 15 24.6600
+724 16 23.3321
+724 17 21.9094
+724 18 20.3919
+724 19 18.6847
+724 20 17.0723
+724 21 13.4681
+724 22  9.4846
+724 23  6.6392
+724 24  4.9320
+724 25  2.1815
+724 26  0.9485
+724 27  0.3794
+724 28  0.0948
+# pixel 725
+725  1  0.7576
+725  2  2.4623
+725  3  6.5345
+725  4 11.7432
+725  5 18.3724
+725  6 22.3500
+725  7 23.5811
+725  8 24.9070
+725  9 26.4222
+725 10 26.9904
+725 11 26.9904
+725 12 26.8010
+725 13 26.2328
+725 14 25.9487
+725 15 24.6229
+725 16 23.2970
+725 17 21.8765
+725 18 20.3612
+725 19 18.6566
+725 20 17.0466
+725 21 13.4479
+725 22  9.4703
+725 23  6.6292
+725 24  4.9246
+725 25  2.1782
+725 26  0.9470
+725 27  0.3788
+725 28  0.0947
+# pixel 726
+726  1  0.6940
+726  2  2.2554
+726  3  5.9854
+726  4 10.7564
+726  5 16.8286
+726  6 20.4719
+726  7 21.5995
+726  8 22.8140
+726  9 24.2019
+726 10 24.7224
+726 11 24.7224
+726 12 24.5489
+726 13 24.0284
+726 14 23.7682
+726 15 22.5537
+726 16 21.3393
+726 17 20.0381
+726 18 18.6502
+726 19 17.0888
+726 20 15.6141
+726 21 12.3178
+726 22  8.6745
+726 23  6.0722
+726 24  4.5107
+726 25  1.9951
+726 26  0.8675
+726 27  0.3470
+726 28  0.0867
+# pixel 727
+727  1  0.6753
+727  2  2.1948
+727  3  5.8248
+727  4 10.4677
+727  5 16.3769
+727  6 19.9224
+727  7 21.0198
+727  8 22.2017
+727  9 23.5523
+727 10 24.0588
+727 11 24.0588
+727 12 23.8900
+727 13 23.3835
+727 14 23.1303
+727 15 21.9484
+727 16 20.7666
+727 17 19.5003
+727 18 18.1497
+727 19 16.6301
+727 20 15.1951
+727 21 11.9872
+727 22  8.4417
+727 23  5.9092
+727 24  4.3897
+727 25  1.9416
+727 26  0.8442
+727 27  0.3377
+727 28  0.0844
+# pixel 728
+728  1  0.7624
+728  2  2.4779
+728  3  6.5759
+728  4 11.8176
+728  5 18.4889
+728  6 22.4916
+728  7 23.7306
+728  8 25.0648
+728  9 26.5897
+728 10 27.1615
+728 11 27.1615
+728 12 26.9709
+728 13 26.3991
+728 14 26.1132
+728 15 24.7789
+728 16 23.4447
+728 17 22.0151
+728 18 20.4903
+728 19 18.7748
+728 20 17.1546
+728 21 13.5331
+728 22  9.5304
+728 23  6.6712
+728 24  4.9558
+728 25  2.1920
+728 26  0.9530
+728 27  0.3812
+728 28  0.0953
+# pixel 729
+729  1  0.7034
+729  2  2.2862
+729  3  6.0672
+729  4 10.9035
+729  5 17.0586
+729  6 20.7517
+729  7 21.8949
+729  8 23.1259
+729  9 24.5328
+729 10 25.0604
+729 11 25.0604
+729 12 24.8845
+729 13 24.3569
+729 14 24.0931
+729 15 22.8621
+729 16 21.6311
+729 17 20.3121
+729 18 18.9052
+729 19 17.3224
+729 20 15.8276
+729 21 12.4862
+729 22  8.7931
+729 23  6.1552
+729 24  4.5724
+729 25  2.0224
+729 26  0.8793
+729 27  0.3517
+729 28  0.0879
+# pixel 730
+730  1  0.7622
+730  2  2.4771
+730  3  6.5738
+730  4 11.8137
+730  5 18.4828
+730  6 22.4842
+730  7 23.7228
+730  8 25.0566
+730  9 26.5809
+730 10 27.1526
+730 11 27.1526
+730 12 26.9620
+730 13 26.3904
+730 14 26.1046
+730 15 24.7707
+730 16 23.4369
+730 17 22.0079
+730 18 20.4835
+730 19 18.7686
+730 20 17.1490
+730 21 13.5286
+730 22  9.5272
+730 23  6.6690
+730 24  4.9541
+730 25  2.1913
+730 26  0.9527
+730 27  0.3811
+730 28  0.0953
+# pixel 731
+731  1  0.7443
+731  2  2.4191
+731  3  6.4200
+731  4 11.5374
+731  5 18.0504
+731  6 21.9582
+731  7 23.1678
+731  8 24.4704
+731  9 25.9590
+731 10 26.5173
+731 11 26.5173
+731 12 26.3312
+731 13 25.7730
+731 14 25.4938
+731 15 24.1912
+731 16 22.8886
+731 17 21.4930
+731 18 20.0043
+731 19 18.3295
+731 20 16.7478
+731 21 13.2121
+731 22  9.3043
+731 23  6.5130
+731 24  4.8382
+731 25  2.1400
+731 26  0.9304
+731 27  0.3722
+731 28  0.0930
+# pixel 732
+732  1  0.7206
+732  2  2.3419
+732  3  6.2150
+732  4 11.1690
+732  5 17.4740
+732  6 21.2570
+732  7 22.4280
+732  8 23.6890
+732  9 25.1301
+732 10 25.6706
+732 11 25.6706
+732 12 25.4904
+732 13 24.9500
+732 14 24.6798
+732 15 23.4188
+732 16 22.1578
+732 17 20.8067
+732 18 19.3655
+732 19 17.7442
+732 20 16.2130
+732 21 12.7903
+732 22  9.0072
+732 23  6.3051
+732 24  4.6838
+732 25  2.0717
+732 26  0.9007
+732 27  0.3603
+732 28  0.0901
+# pixel 733
+733  1  0.7507
+733  2  2.4398
+733  3  6.4749
+733  4 11.6361
+733  5 18.2049
+733  6 22.1462
+733  7 23.3661
+733  8 24.6799
+733  9 26.1813
+733 10 26.7444
+733 11 26.7444
+733 12 26.5567
+733 13 25.9936
+733 14 25.7121
+733 15 24.3984
+733 16 23.0846
+733 17 21.6770
+733 18 20.1756
+733 19 18.4864
+733 20 16.8912
+733 21 13.3253
+733 22  9.3840
+733 23  6.5688
+733 24  4.8797
+733 25  2.1583
+733 26  0.9384
+733 27  0.3754
+733 28  0.0938
+# pixel 734
+734  1  0.6248
+734  2  2.0307
+734  3  5.3891
+734  4  9.6848
+734  5 15.1520
+734  6 18.4324
+734  7 19.4477
+734  8 20.5412
+734  9 21.7908
+734 10 22.2594
+734 11 22.2594
+734 12 22.1032
+734 13 21.6346
+734 14 21.4003
+734 15 20.3069
+734 16 19.2134
+734 17 18.0419
+734 18 16.7922
+734 19 15.3864
+734 20 14.0586
+734 21 11.0907
+734 22  7.8103
+734 23  5.4672
+734 24  4.0614
+734 25  1.7964
+734 26  0.7810
+734 27  0.3124
+734 28  0.0781
+# pixel 735
+735  1  0.6755
+735  2  2.1953
+735  3  5.8260
+735  4 10.4699
+735  5 16.3803
+735  6 19.9265
+735  7 21.0242
+735  8 22.2063
+735  9 23.5572
+735 10 24.0638
+735 11 24.0638
+735 12 23.8949
+735 13 23.3883
+735 14 23.1350
+735 15 21.9529
+735 16 20.7709
+735 17 19.5044
+735 18 18.1534
+735 19 16.6336
+735 20 15.1982
+735 21 11.9897
+735 22  8.4434
+735 23  5.9104
+735 24  4.3906
+735 25  1.9420
+735 26  0.8443
+735 27  0.3377
+735 28  0.0844
+# pixel 736
+736  1  0.5919
+736  2  1.9236
+736  3  5.1050
+736  4  9.1742
+736  5 14.3531
+736  6 17.4605
+736  7 18.4223
+736  8 19.4581
+736  9 20.6418
+736 10 21.0858
+736 11 21.0858
+736 12 20.9378
+736 13 20.4939
+736 14 20.2719
+736 15 19.2361
+736 16 18.2003
+736 17 17.0906
+736 18 15.9068
+736 19 14.5751
+736 20 13.3173
+736 21 10.5059
+736 22  7.3985
+736 23  5.1790
+736 24  3.8472
+736 25  1.7017
+736 26  0.7399
+736 27  0.2959
+736 28  0.0740
+# pixel 737
+737  1  0.7638
+737  2  2.4822
+737  3  6.5875
+737  4 11.8383
+737  5 18.5213
+737  6 22.5310
+737  7 23.7721
+737  8 25.1087
+737  9 26.6363
+737 10 27.2091
+737 11 27.2091
+737 12 27.0181
+737 13 26.4453
+737 14 26.1589
+737 15 24.8223
+737 16 23.4857
+737 17 22.0537
+737 18 20.5262
+737 19 18.8077
+737 20 17.1847
+737 21 13.5568
+737 22  9.5470
+737 23  6.6829
+737 24  4.9645
+737 25  2.1958
+737 26  0.9547
+737 27  0.3819
+737 28  0.0955
+# pixel 738
+738  1  0.8047
+738  2  2.6152
+738  3  6.9404
+738  4 12.4726
+738  5 19.5136
+738  6 23.7382
+738  7 25.0458
+738  8 26.4540
+738  9 28.0633
+738 10 28.6668
+738 11 28.6668
+738 12 28.4657
+738 13 27.8622
+738 14 27.5604
+738 15 26.1522
+738 16 24.7440
+738 17 23.2352
+738 18 21.6259
+738 19 19.8153
+738 20 18.1054
+738 21 14.2831
+738 22 10.0585
+738 23  7.0410
+738 24  5.2304
+738 25  2.3135
+738 26  1.0059
+738 27  0.4023
+738 28  0.1006
+# pixel 739
+739  1  0.6587
+739  2  2.1409
+739  3  5.6816
+739  4 10.2105
+739  5 15.9744
+739  6 19.4328
+739  7 20.5032
+739  8 21.6560
+739  9 22.9735
+739 10 23.4676
+739 11 23.4676
+739 12 23.3029
+739 13 22.8088
+739 14 22.5618
+739 15 21.4090
+739 16 20.2562
+739 17 19.0211
+739 18 17.7036
+739 19 16.2214
+739 20 14.8216
+739 21 11.6926
+739 22  8.2342
+739 23  5.7640
+739 24  4.2818
+739 25  1.8939
+739 26  0.8234
+739 27  0.3294
+739 28  0.0823
+# pixel 740
+740  1  0.8248
+740  2  2.6805
+740  3  7.1137
+740  4 12.7840
+740  5 20.0008
+740  6 24.3309
+740  7 25.6711
+740  8 27.1145
+740  9 28.7640
+740 10 29.3826
+740 11 29.3826
+740 12 29.1764
+740 13 28.5578
+740 14 28.2485
+740 15 26.8052
+740 16 25.3618
+740 17 23.8154
+740 18 22.1658
+740 19 20.3101
+740 20 18.5574
+740 21 14.6398
+740 22 10.3097
+740 23  7.2168
+740 24  5.3610
+740 25  2.3712
+740 26  1.0310
+740 27  0.4124
+740 28  0.1031
+# pixel 741
+741  1  0.8388
+741  2  2.7260
+741  3  7.2344
+741  4 13.0010
+741  5 20.3402
+741  6 24.7437
+741  7 26.1068
+741  8 27.5746
+741  9 29.2521
+741 10 29.8812
+741 11 29.8812
+741 12 29.6715
+741 13 29.0424
+741 14 28.7279
+741 15 27.2601
+741 16 25.7922
+741 17 24.2195
+741 18 22.5420
+741 19 20.6547
+741 20 18.8724
+741 21 14.8882
+741 22 10.4846
+741 23  7.3392
+741 24  5.4520
+741 25  2.4115
+741 26  1.0485
+741 27  0.4194
+741 28  0.1048
+# pixel 742
+742  1  0.6408
+742  2  2.0825
+742  3  5.5267
+742  4  9.9320
+742  5 15.5388
+742  6 18.9029
+742  7 19.9441
+742  8 21.0655
+742  9 22.3470
+742 10 22.8276
+742 11 22.8276
+742 12 22.6674
+742 13 22.1869
+742 14 21.9466
+742 15 20.8252
+742 16 19.7038
+742 17 18.5024
+742 18 17.2208
+742 19 15.7791
+742 20 14.4174
+742 21 11.3738
+742 22  8.0097
+742 23  5.6068
+742 24  4.1650
+742 25  1.8422
+742 26  0.8010
+742 27  0.3204
+742 28  0.0801
+# pixel 743
+743  1  0.7602
+743  2  2.4706
+743  3  6.5567
+743  4 11.7830
+743  5 18.4347
+743  6 22.4257
+743  7 23.6610
+743  8 24.9913
+743  9 26.5117
+743 10 27.0819
+743 11 27.0819
+743 12 26.8918
+743 13 26.3217
+743 14 26.0366
+743 15 24.7063
+743 16 23.3759
+743 17 21.9506
+743 18 20.4302
+743 19 18.7197
+743 20 17.1043
+743 21 13.4934
+743 22  9.5024
+743 23  6.6517
+743 24  4.9413
+743 25  2.1856
+743 26  0.9502
+743 27  0.3801
+743 28  0.0950
+# pixel 744
+744  1  0.7316
+744  2  2.3776
+744  3  6.3099
+744  4 11.3395
+744  5 17.7409
+744  6 21.5817
+744  7 22.7705
+744  8 24.0507
+744  9 25.5139
+744 10 26.0626
+744 11 26.0626
+744 12 25.8797
+744 13 25.3310
+744 14 25.0567
+744 15 23.7764
+744 16 22.4961
+744 17 21.1244
+744 18 19.6613
+744 19 18.0152
+744 20 16.4606
+744 21 12.9856
+744 22  9.1448
+744 23  6.4013
+744 24  4.7553
+744 25  2.1033
+744 26  0.9145
+744 27  0.3658
+744 28  0.0914
+# pixel 745
+745  1  0.6713
+745  2  2.1817
+745  3  5.7898
+745  4 10.4049
+745  5 16.2786
+745  6 19.8028
+745  7 20.8936
+745  8 22.0684
+745  9 23.4109
+745 10 23.9144
+745 11 23.9144
+745 12 23.7466
+745 13 23.2431
+745 14 22.9914
+745 15 21.8166
+745 16 20.6419
+745 17 19.3832
+745 18 18.0407
+745 19 16.5303
+745 20 15.1038
+745 21 11.9152
+745 22  8.3910
+745 23  5.8737
+745 24  4.3633
+745 25  1.9299
+745 26  0.8391
+745 27  0.3356
+745 28  0.0839
+# pixel 746
+746  1  0.7582
+746  2  2.4643
+746  3  6.5398
+746  4 11.7526
+746  5 18.3872
+746  6 22.3679
+746  7 23.6000
+746  8 24.9269
+746  9 26.4434
+746 10 27.0121
+746 11 27.0121
+746 12 26.8225
+746 13 26.2538
+746 14 25.9695
+746 15 24.6426
+746 16 23.3157
+746 17 21.8940
+746 18 20.3775
+746 19 18.6715
+746 20 17.0603
+746 21 13.4586
+746 22  9.4779
+746 23  6.6345
+746 24  4.9285
+746 25  2.1799
+746 26  0.9478
+746 27  0.3791
+746 28  0.0948
+# pixel 747
+747  1  0.7534
+747  2  2.4484
+747  3  6.4977
+747  4 11.6770
+747  5 18.2689
+747  6 22.2240
+747  7 23.4482
+747  8 24.7666
+747  9 26.2733
+747 10 26.8383
+747 11 26.8383
+747 12 26.6500
+747 13 26.0850
+747 14 25.8025
+747 15 24.4841
+747 16 23.1657
+747 17 21.7532
+747 18 20.2465
+747 19 18.5514
+747 20 16.9505
+747 21 13.3721
+747 22  9.4170
+747 23  6.5919
+747 24  4.8968
+747 25  2.1659
+747 26  0.9417
+747 27  0.3767
+747 28  0.0942
+# pixel 748
+748  1  0.7678
+748  2  2.4953
+748  3  6.6222
+748  4 11.9008
+748  5 18.6190
+748  6 22.6499
+748  7 23.8976
+748  8 25.2412
+748  9 26.7768
+748 10 27.3526
+748 11 27.3526
+748 12 27.1607
+748 13 26.5848
+748 14 26.2969
+748 15 24.9533
+748 16 23.6096
+748 17 22.1700
+748 18 20.6344
+748 19 18.9069
+748 20 17.2753
+748 21 13.6283
+748 22  9.5974
+748 23  6.7182
+748 24  4.9907
+748 25  2.2074
+748 26  0.9597
+748 27  0.3839
+748 28  0.0960
+# pixel 749
+749  1  0.7068
+749  2  2.2972
+749  3  6.0963
+749  4 10.9557
+749  5 17.1404
+749  6 20.8512
+749  7 21.9998
+749  8 23.2367
+749  9 24.6504
+749 10 25.1805
+749 11 25.1805
+749 12 25.0038
+749 13 24.4737
+749 14 24.2086
+749 15 22.9717
+749 16 21.7347
+749 17 20.4095
+749 18 18.9958
+749 19 17.4055
+749 20 15.9035
+749 21 12.5461
+749 22  8.8353
+749 23  6.1847
+749 24  4.5943
+749 25  2.0321
+749 26  0.8835
+749 27  0.3534
+749 28  0.0884
+# pixel 750
+750  1  0.7657
+750  2  2.4884
+750  3  6.6039
+750  4 11.8679
+750  5 18.5675
+750  6 22.5872
+750  7 23.8314
+750  8 25.1714
+750  9 26.7027
+750 10 27.2769
+750 11 27.2769
+750 12 27.0855
+750 13 26.5113
+750 14 26.2241
+750 15 24.8842
+750 16 23.5443
+750 17 22.1087
+750 18 20.5773
+750 19 18.8546
+750 20 17.2275
+750 21 13.5906
+750 22  9.5709
+750 23  6.6996
+750 24  4.9768
+750 25  2.2013
+750 26  0.9571
+750 27  0.3828
+750 28  0.0957
+# pixel 751
+751  1  0.7858
+751  2  2.5539
+751  3  6.7776
+751  4 12.1800
+751  5 19.0558
+751  6 23.1813
+751  7 24.4582
+751  8 25.8334
+751  9 27.4050
+751 10 27.9944
+751 11 27.9944
+751 12 27.7979
+751 13 27.2086
+751 14 26.9139
+751 15 25.5387
+751 16 24.1636
+751 17 22.6902
+751 18 21.1186
+751 19 19.3505
+751 20 17.6807
+751 21 13.9481
+751 22  9.8226
+751 23  6.8758
+751 24  5.1077
+751 25  2.2592
+751 26  0.9823
+751 27  0.3929
+751 28  0.0982
+# pixel 752
+752  1  0.7386
+752  2  2.4005
+752  3  6.3706
+752  4 11.4486
+752  5 17.9115
+752  6 21.7892
+752  7 22.9894
+752  8 24.2820
+752  9 25.7593
+752 10 26.3132
+752 11 26.3132
+752 12 26.1286
+752 13 25.5746
+752 14 25.2976
+752 15 24.0050
+752 16 22.7125
+752 17 21.3276
+752 18 19.8503
+752 19 18.1884
+752 20 16.6189
+752 21 13.1104
+752 22  9.2327
+752 23  6.4629
+752 24  4.8010
+752 25  2.1235
+752 26  0.9233
+752 27  0.3693
+752 28  0.0923
+# pixel 753
+753  1  0.7895
+753  2  2.5659
+753  3  6.8096
+753  4 12.2375
+753  5 19.1458
+753  6 23.2907
+753  7 24.5737
+753  8 25.9553
+753  9 27.5344
+753 10 28.1265
+753 11 28.1265
+753 12 27.9291
+753 13 27.3370
+753 14 27.0409
+753 15 25.6593
+753 16 24.2776
+753 17 22.7973
+753 18 21.2182
+753 19 19.4418
+753 20 17.7641
+753 21 14.0139
+753 22  9.8690
+753 23  6.9083
+753 24  5.1319
+753 25  2.2699
+753 26  0.9869
+753 27  0.3948
+753 28  0.0987
+# pixel 754
+754  1  0.7314
+754  2  2.3770
+754  3  6.3083
+754  4 11.3366
+754  5 17.7362
+754  6 21.5761
+754  7 22.7646
+754  8 24.0445
+754  9 25.5073
+754 10 26.0558
+754 11 26.0558
+754 12 25.8730
+754 13 25.3244
+754 14 25.0502
+754 15 23.7702
+754 16 22.4903
+754 17 21.1189
+754 18 19.6562
+754 19 18.0105
+754 20 16.4563
+754 21 12.9822
+754 22  9.1424
+754 23  6.3997
+754 24  4.7540
+754 25  2.1028
+754 26  0.9142
+754 27  0.3657
+754 28  0.0914
+# pixel 755
+755  1  0.8955
+755  2  2.9104
+755  3  7.7237
+755  4 13.8802
+755  5 21.7159
+755  6 26.4172
+755  7 27.8724
+755  8 29.4395
+755  9 31.2305
+755 10 31.9022
+755 11 31.9022
+755 12 31.6783
+755 13 31.0067
+755 14 30.6709
+755 15 29.1037
+755 16 27.5366
+755 17 25.8575
+755 18 24.0665
+755 19 22.0517
+755 20 20.1487
+755 21 15.8951
+755 22 11.1937
+755 23  7.8356
+755 24  5.8207
+755 25  2.5746
+755 26  1.1194
+755 27  0.4477
+755 28  0.1119
+# pixel 756
+756  1  0.7653
+756  2  2.4873
+756  3  6.6008
+756  4 11.8623
+756  5 18.5588
+756  6 22.5767
+756  7 23.8203
+756  8 25.1596
+756  9 26.6902
+756 10 27.2642
+756 11 27.2642
+756 12 27.0729
+756 13 26.4989
+756 14 26.2119
+756 15 24.8726
+756 16 23.5333
+756 17 22.0984
+756 18 20.5677
+756 19 18.8458
+756 20 17.2195
+756 21 13.5843
+756 22  9.5664
+756 23  6.6965
+756 24  4.9745
+756 25  2.2003
+756 26  0.9566
+756 27  0.3827
+756 28  0.0957
+# pixel 757
+757  1  0.7328
+757  2  2.3818
+757  3  6.3208
+757  4 11.3591
+757  5 17.7716
+757  6 21.6190
+757  7 22.8099
+757  8 24.0924
+757  9 25.5581
+757 10 26.1077
+757 11 26.1077
+757 12 25.9245
+757 13 25.3749
+757 14 25.1000
+757 15 23.8176
+757 16 22.5351
+757 17 21.1610
+757 18 19.6953
+757 19 18.0464
+757 20 16.4891
+757 21 13.0080
+757 22  9.1606
+757 23  6.4124
+757 24  4.7635
+757 25  2.1069
+757 26  0.9161
+757 27  0.3664
+757 28  0.0916
+# pixel 758
+758  1  0.7434
+758  2  2.4161
+758  3  6.4120
+758  4 11.5230
+758  5 18.0279
+758  6 21.9309
+758  7 23.1389
+758  8 24.4399
+758  9 25.9267
+758 10 26.4843
+758 11 26.4843
+758 12 26.2984
+758 13 25.7409
+758 14 25.4621
+758 15 24.1611
+758 16 22.8601
+758 17 21.4662
+758 18 19.9794
+758 19 18.3067
+758 20 16.7269
+758 21 13.1957
+758 22  9.2927
+758 23  6.5049
+758 24  4.8322
+758 25  2.1373
+758 26  0.9293
+758 27  0.3717
+758 28  0.0929
+# pixel 759
+759  1  0.7531
+759  2  2.4475
+759  3  6.4952
+759  4 11.6725
+759  5 18.2618
+759  6 22.2153
+759  7 23.4391
+759  8 24.7569
+759  9 26.2631
+759 10 26.8279
+759 11 26.8279
+759 12 26.6396
+759 13 26.0748
+759 14 25.7924
+759 15 24.4745
+759 16 23.1567
+759 17 21.7447
+759 18 20.2386
+759 19 18.5442
+759 20 16.9439
+759 21 13.3669
+759 22  9.4133
+759 23  6.5893
+759 24  4.8949
+759 25  2.1651
+759 26  0.9413
+759 27  0.3765
+759 28  0.0941
+# pixel 760
+760  1  0.6944
+760  2  2.2569
+760  3  5.9894
+760  4 10.7635
+760  5 16.8397
+760  6 20.4854
+760  7 21.6138
+760  8 22.8291
+760  9 24.2179
+760 10 24.7387
+760 11 24.7387
+760 12 24.5651
+760 13 24.0443
+760 14 23.7839
+760 15 22.5687
+760 16 21.3534
+760 17 20.0514
+760 18 18.6625
+760 19 17.1001
+760 20 15.6245
+760 21 12.3260
+760 22  8.6803
+760 23  6.0762
+760 24  4.5137
+760 25  1.9965
+760 26  0.8680
+760 27  0.3472
+760 28  0.0868
+# pixel 761
+761  1  0.6596
+761  2  2.1438
+761  3  5.6893
+761  4 10.2242
+761  5 15.9960
+761  6 19.4590
+761  7 20.5309
+761  8 21.6853
+761  9 23.0045
+761 10 23.4993
+761 11 23.4993
+761 12 23.3343
+761 13 22.8396
+761 14 22.5923
+761 15 21.4379
+761 16 20.2836
+761 17 19.0468
+761 18 17.7275
+761 19 16.2433
+761 20 14.8416
+761 21 11.7084
+761 22  8.2454
+761 23  5.7717
+761 24  4.2876
+761 25  1.8964
+761 26  0.8245
+761 27  0.3298
+761 28  0.0825
+# pixel 762
+762  1  0.7043
+762  2  2.2890
+762  3  6.0748
+762  4 10.9170
+762  5 17.0798
+762  6 20.7775
+762  7 21.9220
+762  8 23.1546
+762  9 24.5632
+762 10 25.0914
+762 11 25.0914
+762 12 24.9154
+762 13 24.3871
+762 14 24.1230
+762 15 22.8904
+762 16 21.6579
+762 17 20.3373
+762 18 18.9286
+762 19 17.3439
+762 20 15.8472
+762 21 12.5017
+762 22  8.8040
+762 23  6.1628
+762 24  4.5781
+762 25  2.0249
+762 26  0.8804
+762 27  0.3522
+762 28  0.0880
+# pixel 763
+763  1  0.7352
+763  2  2.3893
+763  3  6.3408
+763  4 11.3950
+763  5 17.8277
+763  6 21.6873
+763  7 22.8819
+763  8 24.1685
+763  9 25.6388
+763 10 26.1902
+763 11 26.1902
+763 12 26.0064
+763 13 25.4550
+763 14 25.1793
+763 15 23.8928
+763 16 22.6062
+763 17 21.2278
+763 18 19.7575
+763 19 18.1034
+763 20 16.5412
+763 21 13.0491
+763 22  9.1895
+763 23  6.4327
+763 24  4.7786
+763 25  2.1136
+763 26  0.9190
+763 27  0.3676
+763 28  0.0919
+# pixel 764
+764  1  0.8367
+764  2  2.7192
+764  3  7.2163
+764  4 12.9685
+764  5 20.2894
+764  6 24.6820
+764  7 26.0416
+764  8 27.5057
+764  9 29.1791
+764 10 29.8066
+764 11 29.8066
+764 12 29.5974
+764 13 28.9699
+764 14 28.6562
+764 15 27.1920
+764 16 25.7278
+764 17 24.1590
+764 18 22.4857
+764 19 20.6032
+764 20 18.8252
+764 21 14.8510
+764 22 10.4585
+764 23  7.3209
+764 24  5.4384
+764 25  2.4054
+764 26  1.0458
+764 27  0.4183
+764 28  0.1046
+# pixel 765
+765  1  0.6337
+765  2  2.0595
+765  3  5.4657
+765  4  9.8224
+765  5 15.3672
+765  6 18.6942
+765  7 19.7239
+765  8 20.8329
+765  9 22.1003
+765 10 22.5756
+765 11 22.5756
+765 12 22.4172
+765 13 21.9419
+765 14 21.7042
+765 15 20.5953
+765 16 19.4863
+765 17 18.2981
+765 18 17.0307
+765 19 15.6049
+765 20 14.2583
+765 21 11.2482
+765 22  7.9213
+765 23  5.5449
+765 24  4.1191
+765 25  1.8219
+765 26  0.7921
+765 27  0.3169
+765 28  0.0792
+# pixel 766
+766  1  0.6553
+766  2  2.1298
+766  3  5.6521
+766  4 10.1574
+766  5 15.8914
+766  6 19.3318
+766  7 20.3967
+766  8 21.5435
+766  9 22.8541
+766 10 23.3456
+766 11 23.3456
+766 12 23.1818
+766 13 22.6903
+766 14 22.4446
+766 15 21.2978
+766 16 20.1510
+766 17 18.9222
+766 18 17.6116
+766 19 16.1371
+766 20 14.7446
+766 21 11.6319
+766 22  8.1914
+766 23  5.7340
+766 24  4.2596
+766 25  1.8840
+766 26  0.8191
+766 27  0.3277
+766 28  0.0819
+# pixel 767
+767  1  0.7112
+767  2  2.3113
+767  3  6.1338
+767  4 11.0231
+767  5 17.2458
+767  6 20.9794
+767  7 22.1351
+767  8 23.3796
+767  9 24.8019
+767 10 25.3353
+767 11 25.3353
+767 12 25.1575
+767 13 24.6242
+767 14 24.3575
+767 15 23.1129
+767 16 21.8684
+767 17 20.5349
+767 18 19.1126
+767 19 17.5125
+767 20 16.0013
+767 21 12.6232
+767 22  8.8896
+767 23  6.2227
+767 24  4.6226
+767 25  2.0446
+767 26  0.8890
+767 27  0.3556
+767 28  0.0889
+# pixel 768
+768  1  0.6818
+768  2  2.2160
+768  3  5.8809
+768  4 10.5687
+768  5 16.5348
+768  6 20.1145
+768  7 21.2225
+768  8 22.4158
+768  9 23.7795
+768 10 24.2909
+768 11 24.2909
+768 12 24.1204
+768 13 23.6090
+768 14 23.3533
+768 15 22.1601
+768 16 20.9668
+768 17 19.6884
+768 18 18.3247
+768 19 16.7905
+768 20 15.3416
+768 21 12.1028
+768 22  8.5231
+768 23  5.9662
+768 24  4.4320
+768 25  1.9603
+768 26  0.8523
+768 27  0.3409
+768 28  0.0852
+# pixel 769
+769  1  0.7668
+769  2  2.4920
+769  3  6.6134
+769  4 11.8850
+769  5 18.5942
+769  6 22.6198
+769  7 23.8658
+769  8 25.2076
+769  9 26.7412
+769 10 27.3163
+769 11 27.3163
+769 12 27.1246
+769 13 26.5495
+769 14 26.2620
+769 15 24.9201
+769 16 23.5783
+769 17 22.1406
+769 18 20.6070
+769 19 18.8818
+769 20 17.2524
+769 21 13.6102
+769 22  9.5847
+769 23  6.7093
+769 24  4.9840
+769 25  2.2045
+769 26  0.9585
+769 27  0.3834
+769 28  0.0958
+# pixel 770
+770  1  0.7181
+770  2  2.3339
+770  3  6.1938
+770  4 11.1308
+770  5 17.4144
+770  6 21.1845
+770  7 22.3514
+770  8 23.6081
+770  9 25.0444
+770 10 25.5829
+770 11 25.5829
+770 12 25.4034
+770 13 24.8648
+770 14 24.5955
+770 15 23.3388
+770 16 22.0821
+770 17 20.7357
+770 18 19.2994
+770 19 17.6836
+770 20 16.1576
+770 21 12.7466
+770 22  8.9765
+770 23  6.2835
+770 24  4.6678
+770 25  2.0646
+770 26  0.8976
+770 27  0.3591
+770 28  0.0898
+# pixel 771
+771  1  0.6887
+771  2  2.2382
+771  3  5.9397
+771  4 10.6743
+771  5 16.7001
+771  6 20.3156
+771  7 21.4347
+771  8 22.6399
+771  9 24.0172
+771 10 24.5337
+771 11 24.5337
+771 12 24.3615
+771 13 23.8450
+771 14 23.5868
+771 15 22.3816
+771 16 21.1765
+771 17 19.8852
+771 18 18.5079
+771 19 16.9584
+771 20 15.4950
+771 21 12.2238
+771 22  8.6083
+771 23  6.0258
+771 24  4.4763
+771 25  1.9799
+771 26  0.8608
+771 27  0.3443
+771 28  0.0861
+# pixel 772
+772  1  0.7188
+772  2  2.3362
+772  3  6.1998
+772  4 11.1417
+772  5 17.4314
+772  6 21.2052
+772  7 22.3733
+772  8 23.6312
+772  9 25.0689
+772 10 25.6080
+772 11 25.6080
+772 12 25.4283
+772 13 24.8892
+772 14 24.6196
+772 15 23.3617
+772 16 22.1037
+772 17 20.7559
+772 18 19.3183
+772 19 17.7010
+772 20 16.1735
+772 21 12.7591
+772 22  8.9853
+772 23  6.2897
+772 24  4.6723
+772 25  2.0666
+772 26  0.8985
+772 27  0.3594
+772 28  0.0899
+# pixel 773
+773  1  0.7842
+773  2  2.5487
+773  3  6.7639
+773  4 12.1554
+773  5 19.0174
+773  6 23.1345
+773  7 24.4089
+773  8 25.7813
+773  9 27.3497
+773 10 27.9379
+773 11 27.9379
+773 12 27.7418
+773 13 27.1537
+773 14 26.8596
+773 15 25.4872
+773 16 24.1148
+773 17 22.6444
+773 18 21.0760
+773 19 19.3115
+773 20 17.6450
+773 21 13.9199
+773 22  9.8028
+773 23  6.8619
+773 24  5.0974
+773 25  2.2546
+773 26  0.9803
+773 27  0.3921
+773 28  0.0980
+# pixel 774
+774  1  0.6702
+774  2  2.1781
+774  3  5.7804
+774  4 10.3880
+774  5 16.2522
+774  6 19.7708
+774  7 20.8598
+774  8 22.0327
+774  9 23.3731
+774 10 23.8757
+774 11 23.8757
+774 12 23.7081
+774 13 23.2055
+774 14 22.9542
+774 15 21.7813
+774 16 20.6085
+774 17 19.3519
+774 18 18.0115
+774 19 16.5036
+774 20 15.0794
+774 21 11.8960
+774 22  8.3774
+774 23  5.8642
+774 24  4.3563
+774 25  1.9268
+774 26  0.8377
+774 27  0.3351
+774 28  0.0838
+# pixel 775
+775  1  0.7904
+775  2  2.5687
+775  3  6.8171
+775  4 12.2509
+775  5 19.1668
+775  6 23.3163
+775  7 24.6007
+775  8 25.9838
+775  9 27.5646
+775 10 28.1574
+775 11 28.1574
+775 12 27.9598
+775 13 27.3670
+775 14 27.0706
+775 15 25.6874
+775 16 24.3043
+775 17 22.8223
+775 18 21.2415
+775 19 19.4632
+775 20 17.7836
+775 21 14.0293
+775 22  9.8798
+775 23  6.9159
+775 24  5.1375
+775 25  2.2724
+775 26  0.9880
+775 27  0.3952
+775 28  0.0988
+# pixel 776
+776  1  0.7679
+776  2  2.4956
+776  3  6.6230
+776  4 11.9021
+776  5 18.6211
+776  6 22.6524
+776  7 23.9002
+776  8 25.2440
+776  9 26.7798
+776 10 27.3557
+776 11 27.3557
+776 12 27.1637
+776 13 26.5878
+776 14 26.2998
+776 15 24.9561
+776 16 23.6123
+776 17 22.1725
+776 18 20.6367
+776 19 18.9090
+776 20 17.2773
+776 21 13.6298
+776 22  9.5985
+776 23  6.7189
+776 24  4.9912
+776 25  2.2077
+776 26  0.9598
+776 27  0.3839
+776 28  0.0960
+# pixel 777
+777  1  0.7631
+777  2  2.4802
+777  3  6.5820
+777  4 11.8285
+777  5 18.5059
+777  6 22.5124
+777  7 23.7525
+777  8 25.0879
+777  9 26.6142
+777 10 27.1866
+777 11 27.1866
+777 12 26.9958
+777 13 26.4234
+777 14 26.1373
+777 15 24.8018
+777 16 23.4663
+777 17 22.0354
+777 18 20.5092
+777 19 18.7921
+777 20 17.1705
+777 21 13.5456
+777 22  9.5391
+777 23  6.6774
+777 24  4.9604
+777 25  2.1940
+777 26  0.9539
+777 27  0.3816
+777 28  0.0954
+# pixel 778
+778  1  0.7955
+778  2  2.5852
+778  3  6.8608
+778  4 12.3296
+778  5 19.2898
+778  6 23.4660
+778  7 24.7586
+778  8 26.1506
+778  9 27.7415
+778 10 28.3381
+778 11 28.3381
+778 12 28.1393
+778 13 27.5427
+778 14 27.2444
+778 15 25.8523
+778 16 24.4603
+778 17 22.9688
+778 18 21.3779
+778 19 19.5881
+778 20 17.8978
+778 21 14.1194
+778 22  9.9432
+778 23  6.9602
+778 24  5.1705
+778 25  2.2869
+778 26  0.9943
+778 27  0.3977
+778 28  0.0994
+# pixel 779
+779  1  0.7209
+779  2  2.3430
+779  3  6.2179
+779  4 11.1741
+779  5 17.4821
+779  6 21.2669
+779  7 22.4384
+779  8 23.7000
+779  9 25.1418
+779 10 25.6825
+779 11 25.6825
+779 12 25.5023
+779 13 24.9616
+779 14 24.6912
+779 15 23.4297
+779 16 22.1681
+779 17 20.8163
+779 18 19.3745
+779 19 17.7525
+779 20 16.2205
+779 21 12.7962
+779 22  9.0114
+779 23  6.3080
+779 24  4.6859
+779 25  2.0726
+779 26  0.9011
+779 27  0.3605
+779 28  0.0901
+# pixel 780
+780  1  0.7937
+780  2  2.5795
+780  3  6.8456
+780  4 12.3022
+780  5 19.2469
+780  6 23.4138
+780  7 24.7035
+780  8 26.0925
+780  9 27.6798
+780 10 28.2751
+780 11 28.2751
+780 12 28.0767
+780 13 27.4814
+780 14 27.1838
+780 15 25.7948
+780 16 24.4059
+780 17 22.9177
+780 18 21.3303
+780 19 19.5445
+780 20 17.8580
+780 21 14.0879
+780 22  9.9211
+780 23  6.9448
+780 24  5.1590
+780 25  2.2819
+780 26  0.9921
+780 27  0.3968
+780 28  0.0992
+# pixel 781
+781  1  0.7849
+781  2  2.5508
+781  3  6.7694
+781  4 12.1653
+781  5 19.0328
+781  6 23.1533
+781  7 24.4287
+781  8 25.8022
+781  9 27.3719
+781 10 27.9605
+781 11 27.9605
+781 12 27.7643
+781 13 27.1757
+781 14 26.8813
+781 15 25.5078
+781 16 24.1343
+781 17 22.6627
+781 18 21.0930
+781 19 19.3271
+781 20 17.6593
+781 21 13.9312
+781 22  9.8107
+781 23  6.8675
+781 24  5.1016
+781 25  2.2565
+781 26  0.9811
+781 27  0.3924
+781 28  0.0981
+# pixel 782
+782  1  0.6915
+782  2  2.2473
+782  3  5.9641
+782  4 10.7181
+782  5 16.7686
+782  6 20.3990
+782  7 21.5226
+782  8 22.7327
+782  9 24.1157
+782 10 24.6343
+782 11 24.6343
+782 12 24.4615
+782 13 23.9428
+782 14 23.6835
+782 15 22.4734
+782 16 21.2633
+782 17 19.9668
+782 18 18.5838
+782 19 17.0279
+782 20 15.5585
+782 21 12.2739
+782 22  8.6436
+782 23  6.0505
+782 24  4.4947
+782 25  1.9880
+782 26  0.8644
+782 27  0.3457
+782 28  0.0864
+# pixel 783
+783  1  0.7273
+783  2  2.3639
+783  3  6.2733
+783  4 11.2738
+783  5 17.6380
+783  6 21.4565
+783  7 22.6384
+783  8 23.9113
+783  9 25.3660
+783 10 25.9115
+783 11 25.9115
+783 12 25.7296
+783 13 25.1841
+783 14 24.9114
+783 15 23.6385
+783 16 22.3657
+783 17 21.0019
+783 18 19.5472
+783 19 17.9107
+783 20 16.3651
+783 21 12.9103
+783 22  9.0917
+783 23  6.3642
+783 24  4.7277
+783 25  2.0911
+783 26  0.9092
+783 27  0.3637
+783 28  0.0909
+# pixel 784
+784  1  0.6735
+784  2  2.1888
+784  3  5.8087
+784  4 10.4389
+784  5 16.3318
+784  6 19.8675
+784  7 20.9619
+784  8 22.1405
+784  9 23.4875
+784 10 23.9926
+784 11 23.9926
+784 12 23.8242
+784 13 23.3191
+784 14 23.0665
+784 15 21.8879
+784 16 20.7094
+784 17 19.4466
+784 18 18.0996
+784 19 16.5843
+784 20 15.1532
+784 21 11.9542
+784 22  8.4184
+784 23  5.8929
+784 24  4.3776
+784 25  1.9362
+784 26  0.8418
+784 27  0.3367
+784 28  0.0842
+# pixel 785
+785  1  0.7731
+785  2  2.5126
+785  3  6.6681
+785  4 11.9832
+785  5 18.7479
+785  6 22.8068
+785  7 24.0631
+785  8 25.4160
+785  9 26.9622
+785 10 27.5421
+785 11 27.5421
+785 12 27.3488
+785 13 26.7690
+785 14 26.4791
+785 15 25.1261
+785 16 23.7732
+785 17 22.3236
+785 18 20.7774
+785 19 19.0379
+785 20 17.3950
+785 21 13.7227
+785 22  9.6639
+785 23  6.7647
+785 24  5.0252
+785 25  2.2227
+785 26  0.9664
+785 27  0.3866
+785 28  0.0966
+# pixel 786
+786  1  0.7384
+786  2  2.3998
+786  3  6.3688
+786  4 11.4454
+786  5 17.9066
+786  6 21.7833
+786  7 22.9832
+786  8 24.2754
+786  9 25.7522
+786 10 26.3060
+786 11 26.3060
+786 12 26.1214
+786 13 25.5676
+786 14 25.2907
+786 15 23.9985
+786 16 22.7063
+786 17 21.3217
+786 18 19.8449
+786 19 18.1835
+786 20 16.6143
+786 21 13.1069
+786 22  9.2302
+786 23  6.4611
+786 24  4.7997
+786 25  2.1229
+786 26  0.9230
+786 27  0.3692
+786 28  0.0923
+# pixel 787
+787  1  0.7488
+787  2  2.4336
+787  3  6.4584
+787  4 11.6065
+787  5 18.1585
+787  6 22.0897
+787  7 23.3065
+787  8 24.6169
+787  9 26.1145
+787 10 26.6761
+787 11 26.6761
+787 12 26.4889
+787 13 25.9273
+787 14 25.6465
+787 15 24.3361
+787 16 23.0257
+787 17 21.6217
+787 18 20.1241
+787 19 18.4393
+787 20 16.8481
+787 21 13.2913
+787 22  9.3600
+787 23  6.5520
+787 24  4.8672
+787 25  2.1528
+787 26  0.9360
+787 27  0.3744
+787 28  0.0936
+# pixel 788
+788  1  0.7209
+788  2  2.3430
+788  3  6.2180
+788  4 11.1744
+788  5 17.4825
+788  6 21.2673
+788  7 22.4388
+788  8 23.7005
+788  9 25.1423
+788 10 25.6830
+788 11 25.6830
+788 12 25.5028
+788 13 24.9621
+788 14 24.6917
+788 15 23.4301
+788 16 22.1685
+788 17 20.8168
+788 18 19.3749
+788 19 17.7528
+788 20 16.2208
+788 21 12.7964
+788 22  9.0116
+788 23  6.3081
+788 24  4.6860
+788 25  2.0727
+788 26  0.9012
+788 27  0.3605
+788 28  0.0901
+# pixel 789
+789  1  0.6970
+789  2  2.2653
+789  3  6.0119
+789  4 10.8039
+789  5 16.9029
+789  6 20.5623
+789  7 21.6950
+789  8 22.9148
+789  9 24.3089
+789 10 24.8316
+789 11 24.8316
+789 12 24.6574
+789 13 24.1346
+789 14 23.8732
+789 15 22.6534
+789 16 21.4336
+789 17 20.1267
+789 18 18.7326
+789 19 17.1643
+789 20 15.6831
+789 21 12.3723
+789 22  8.7129
+789 23  6.0990
+789 24  4.5307
+789 25  2.0040
+789 26  0.8713
+789 27  0.3485
+789 28  0.0871
+# pixel 790
+790  1  0.6549
+790  2  2.1283
+790  3  5.6483
+790  4 10.1505
+790  5 15.8806
+790  6 19.3187
+790  7 20.3829
+790  8 21.5289
+790  9 22.8386
+790 10 23.3298
+790 11 23.3298
+790 12 23.1661
+790 13 22.6749
+790 14 22.4293
+790 15 21.2833
+790 16 20.1373
+790 17 18.9094
+790 18 17.5997
+790 19 16.1262
+790 20 14.7346
+790 21 11.6240
+790 22  8.1859
+790 23  5.7301
+790 24  4.2567
+790 25  1.8828
+790 26  0.8186
+790 27  0.3274
+790 28  0.0819
+# pixel 791
+791  1  0.7361
+791  2  2.3924
+791  3  6.3489
+791  4 11.4097
+791  5 17.8506
+791  6 21.7152
+791  7 22.9114
+791  8 24.1996
+791  9 25.6718
+791 10 26.2239
+791 11 26.2239
+791 12 26.0398
+791 13 25.4878
+791 14 25.2117
+791 15 23.9235
+791 16 22.6353
+791 17 21.2551
+791 18 19.7829
+791 19 18.1267
+791 20 16.5624
+791 21 13.0659
+791 22  9.2014
+791 23  6.4409
+791 24  4.7847
+791 25  2.1163
+791 26  0.9201
+791 27  0.3681
+791 28  0.0920
+# pixel 792
+792  1  0.8589
+792  2  2.7916
+792  3  7.4084
+792  4 13.3136
+792  5 20.8294
+792  6 25.3389
+792  7 26.7346
+792  8 28.2378
+792  9 29.9557
+792 10 30.5999
+792 11 30.5999
+792 12 30.3852
+792 13 29.7410
+792 14 29.4189
+792 15 27.9157
+792 16 26.4125
+792 17 24.8020
+792 18 23.0841
+792 19 21.1515
+792 20 19.3263
+792 21 15.2463
+792 22 10.7368
+792 23  7.5158
+792 24  5.5831
+792 25  2.4695
+792 26  1.0737
+792 27  0.4295
+792 28  0.1074
+# pixel 793
+793  1  0.7246
+793  2  2.3550
+793  3  6.2497
+793  4 11.2313
+793  5 17.5716
+793  6 21.3758
+793  7 22.5533
+793  8 23.8213
+793  9 25.2705
+793 10 25.8140
+793 11 25.8140
+793 12 25.6328
+793 13 25.0894
+793 14 24.8176
+793 15 23.5496
+793 16 22.2815
+793 17 20.9229
+793 18 19.4737
+793 19 17.8433
+793 20 16.3036
+793 21 12.8617
+793 22  9.0575
+793 23  6.3403
+793 24  4.7099
+793 25  2.0832
+793 26  0.9058
+793 27  0.3623
+793 28  0.0906
+# pixel 794
+794  1  0.6487
+794  2  2.1082
+794  3  5.5949
+794  4 10.0546
+794  5 15.7305
+794  6 19.1361
+794  7 20.1902
+794  8 21.3254
+794  9 22.6228
+794 10 23.1093
+794 11 23.1093
+794 12 22.9471
+794 13 22.4606
+794 14 22.2173
+794 15 21.0821
+794 16 19.9470
+794 17 18.7307
+794 18 17.4333
+794 19 15.9738
+794 20 14.5953
+794 21 11.5141
+794 22  8.1085
+794 23  5.6760
+794 24  4.2164
+794 25  1.8650
+794 26  0.8109
+794 27  0.3243
+794 28  0.0811
+# pixel 795
+795  1  0.7398
+795  2  2.4043
+795  3  6.3806
+795  4 11.4666
+795  5 17.9397
+795  6 21.8235
+795  7 23.0257
+795  8 24.3203
+795  9 25.7998
+795 10 26.3547
+795 11 26.3547
+795 12 26.1697
+795 13 25.6149
+795 14 25.3375
+795 15 24.0429
+795 16 22.7482
+795 17 21.3611
+795 18 19.8816
+795 19 18.2171
+795 20 16.6451
+795 21 13.1311
+795 22  9.2473
+795 23  6.4731
+795 24  4.8086
+795 25  2.1269
+795 26  0.9247
+795 27  0.3699
+795 28  0.0925
+# pixel 796
+796  1  0.7376
+796  2  2.3971
+796  3  6.3614
+796  4 11.4322
+796  5 17.8858
+796  6 21.7580
+796  7 22.9565
+796  8 24.2473
+796  9 25.7224
+796 10 26.2755
+796 11 26.2755
+796 12 26.0912
+796 13 25.5380
+796 14 25.2614
+796 15 23.9707
+796 16 22.6799
+796 17 21.2970
+796 18 19.8219
+796 19 18.1624
+796 20 16.5951
+796 21 13.0917
+796 22  9.2195
+796 23  6.4536
+796 24  4.7941
+796 25  2.1205
+796 26  0.9219
+796 27  0.3688
+796 28  0.0922
+# pixel 797
+797  1  0.7194
+797  2  2.3379
+797  3  6.2045
+797  4 11.1502
+797  5 17.4446
+797  6 21.2213
+797  7 22.3902
+797  8 23.6491
+797  9 25.0879
+797 10 25.6274
+797 11 25.6274
+797 12 25.4476
+797 13 24.9080
+797 14 24.6383
+797 15 23.3794
+797 16 22.1205
+797 17 20.7717
+797 18 19.3329
+797 19 17.7144
+797 20 16.1857
+797 21 12.7687
+797 22  8.9921
+797 23  6.2944
+797 24  4.6759
+797 25  2.0682
+797 26  0.8992
+797 27  0.3597
+797 28  0.0899
+# pixel 798
+798  1  0.7454
+798  2  2.4227
+798  3  6.4294
+798  4 11.5542
+798  5 18.0767
+798  6 21.9903
+798  7 23.2016
+798  8 24.5061
+798  9 25.9970
+798 10 26.5560
+798 11 26.5560
+798 12 26.3697
+798 13 25.8106
+798 14 25.5311
+798 15 24.2266
+798 16 22.9220
+798 17 21.5244
+798 18 20.0335
+798 19 18.3563
+798 20 16.7722
+798 21 13.2314
+798 22  9.3179
+798 23  6.5225
+798 24  4.8453
+798 25  2.1431
+798 26  0.9318
+798 27  0.3727
+798 28  0.0932
+# pixel 799
+799  1  0.6751
+799  2  2.1942
+799  3  5.8230
+799  4 10.4645
+799  5 16.3718
+799  6 19.9163
+799  7 21.0133
+799  8 22.1948
+799  9 23.5451
+799 10 24.0514
+799 11 24.0514
+799 12 23.8826
+799 13 23.3763
+799 14 23.1231
+799 15 21.9416
+799 16 20.7602
+799 17 19.4943
+799 18 18.1440
+799 19 16.6250
+799 20 15.1904
+799 21 11.9835
+799 22  8.4391
+799 23  5.9074
+799 24  4.3883
+799 25  1.9410
+799 26  0.8439
+799 27  0.3376
+799 28  0.0844
+# pixel 800
+800  1  0.7513
+800  2  2.4418
+800  3  6.4803
+800  4 11.6457
+800  5 18.2199
+800  6 22.1644
+800  7 23.3853
+800  8 24.7002
+800  9 26.2029
+800 10 26.7664
+800 11 26.7664
+800 12 26.5785
+800 13 26.0150
+800 14 25.7333
+800 15 24.4184
+800 16 23.1036
+800 17 21.6948
+800 18 20.1922
+800 19 18.5017
+800 20 16.9051
+800 21 13.3362
+800 22  9.3917
+800 23  6.5742
+800 24  4.8837
+800 25  2.1601
+800 26  0.9392
+800 27  0.3757
+800 28  0.0939
+# pixel 801
+801  1  0.6901
+801  2  2.2430
+801  3  5.9525
+801  4 10.6973
+801  5 16.7361
+801  6 20.3594
+801  7 21.4809
+801  8 22.6886
+801  9 24.0689
+801 10 24.5865
+801 11 24.5865
+801 12 24.4140
+801 13 23.8964
+801 14 23.6376
+801 15 22.4298
+801 16 21.2221
+801 17 19.9280
+801 18 18.5477
+801 19 16.9949
+801 20 15.5283
+801 21 12.2501
+801 22  8.6269
+801 23  6.0388
+801 24  4.4860
+801 25  1.9842
+801 26  0.8627
+801 27  0.3451
+801 28  0.0863
+# pixel 802
+802  1  0.7685
+802  2  2.4976
+802  3  6.6281
+802  4 11.9114
+802  5 18.6356
+802  6 22.6702
+802  7 23.9189
+802  8 25.2638
+802  9 26.8007
+802 10 27.3771
+802 11 27.3771
+802 12 27.1850
+802 13 26.6086
+802 14 26.3204
+802 15 24.9756
+802 16 23.6308
+802 17 22.1899
+802 18 20.6529
+802 19 18.9238
+802 20 17.2908
+802 21 13.6405
+802 22  9.6060
+802 23  6.7242
+802 24  4.9951
+802 25  2.2094
+802 26  0.9606
+802 27  0.3842
+802 28  0.0961
+# pixel 803
+803  1  0.8035
+803  2  2.6113
+803  3  6.9299
+803  4 12.4538
+803  5 19.4841
+803  6 23.7023
+803  7 25.0079
+803  8 26.4140
+803  9 28.0210
+803 10 28.6236
+803 11 28.6236
+803 12 28.4227
+803 13 27.8201
+803 14 27.5188
+803 15 26.1127
+803 16 24.7066
+803 17 23.2001
+803 18 21.5932
+803 19 19.7854
+803 20 18.0780
+803 21 14.2616
+803 22 10.0434
+803 23  7.0303
+803 24  5.2225
+803 25  2.3100
+803 26  1.0043
+803 27  0.4017
+803 28  0.1004
+# pixel 804
+804  1  0.8047
+804  2  2.6154
+804  3  6.9408
+804  4 12.4734
+804  5 19.5148
+804  6 23.7397
+804  7 25.0473
+804  8 26.4556
+804  9 28.0651
+804 10 28.6686
+804 11 28.6686
+804 12 28.4675
+804 13 27.8639
+804 14 27.5621
+804 15 26.1539
+804 16 24.7456
+804 17 23.2367
+804 18 21.6272
+804 19 19.8166
+804 20 18.1065
+804 21 14.2840
+804 22 10.0592
+804 23  7.0414
+804 24  5.2308
+804 25  2.3136
+804 26  1.0059
+804 27  0.4024
+804 28  0.1006
+# pixel 805
+805  1  0.7138
+805  2  2.3199
+805  3  6.1566
+805  4 11.0640
+805  5 17.3098
+805  6 21.0573
+805  7 22.2172
+805  8 23.4664
+805  9 24.8940
+805 10 25.4293
+805 11 25.4293
+805 12 25.2509
+805 13 24.7155
+805 14 24.4479
+805 15 23.1987
+805 16 21.9495
+805 17 20.6111
+805 18 19.1835
+805 19 17.5775
+805 20 16.0606
+805 21 12.6701
+805 22  8.9226
+805 23  6.2458
+805 24  4.6397
+805 25  2.0522
+805 26  0.8923
+805 27  0.3569
+805 28  0.0892
+# pixel 806
+806  1  0.7151
+806  2  2.3241
+806  3  6.1677
+806  4 11.0841
+806  5 17.3412
+806  6 21.0955
+806  7 22.2575
+806  8 23.5090
+806  9 24.9392
+806 10 25.4755
+806 11 25.4755
+806 12 25.2967
+806 13 24.7604
+806 14 24.4922
+806 15 23.2408
+806 16 21.9894
+806 17 20.6486
+806 18 19.2184
+806 19 17.6094
+806 20 16.0898
+806 21 12.6931
+806 22  8.9388
+806 23  6.2571
+806 24  4.6482
+806 25  2.0559
+806 26  0.8939
+806 27  0.3576
+806 28  0.0894
+# pixel 807
+807  1  0.8124
+807  2  2.6405
+807  3  7.0074
+807  4 12.5930
+807  5 19.7019
+807  6 23.9673
+807  7 25.2875
+807  8 26.7093
+807  9 28.3342
+807 10 28.9435
+807 11 28.9435
+807 12 28.7404
+807 13 28.1311
+807 14 27.8264
+807 15 26.4046
+807 16 24.9828
+807 17 23.4595
+807 18 21.8346
+807 19 20.0066
+807 20 18.2801
+807 21 14.4210
+807 22 10.1556
+807 23  7.1089
+807 24  5.2809
+807 25  2.3358
+807 26  1.0156
+807 27  0.4062
+807 28  0.1016
+# pixel 808
+808  1  0.7903
+808  2  2.5684
+808  3  6.8162
+808  4 12.2494
+808  5 19.1643
+808  6 23.3133
+808  7 24.5975
+808  8 25.9805
+808  9 27.5611
+808 10 28.1538
+808 11 28.1538
+808 12 27.9562
+808 13 27.3635
+808 14 27.0672
+808 15 25.6842
+808 16 24.3012
+808 17 22.8194
+808 18 21.2388
+808 19 19.4607
+808 20 17.7813
+808 21 14.0275
+808 22  9.8785
+808 23  6.9150
+808 24  5.1368
+808 25  2.2721
+808 26  0.9879
+808 27  0.3951
+808 28  0.0988
+# pixel 809
+809  1  0.7754
+809  2  2.5200
+809  3  6.6878
+809  4 12.0186
+809  5 18.8033
+809  6 22.8741
+809  7 24.1341
+809  8 25.4911
+809  9 27.0418
+809 10 27.6234
+809 11 27.6234
+809 12 27.4295
+809 13 26.8480
+809 14 26.5572
+809 15 25.2003
+809 16 23.8433
+809 17 22.3895
+809 18 20.8387
+809 19 19.0941
+809 20 17.4463
+809 21 13.7632
+809 22  9.6924
+809 23  6.7847
+809 24  5.0401
+809 25  2.2293
+809 26  0.9692
+809 27  0.3877
+809 28  0.0969
+# pixel 810
+810  1  0.6586
+810  2  2.1405
+810  3  5.6805
+810  4 10.2084
+810  5 15.9713
+810  6 19.4290
+810  7 20.4992
+810  8 21.6518
+810  9 22.9690
+810 10 23.4629
+810 11 23.4629
+810 12 23.2983
+810 13 22.8043
+810 14 22.5574
+810 15 21.4048
+810 16 20.2522
+810 17 19.0173
+810 18 17.7001
+810 19 16.2182
+810 20 14.8187
+810 21 11.6903
+810 22  8.2326
+810 23  5.7628
+810 24  4.2810
+810 25  1.8935
+810 26  0.8233
+810 27  0.3293
+810 28  0.0823
+# pixel 811
+811  1  0.6472
+811  2  2.1035
+811  3  5.5824
+811  4 10.0321
+811  5 15.6954
+811  6 19.0934
+811  7 20.1452
+811  8 21.2778
+811  9 22.5723
+811 10 23.0577
+811 11 23.0577
+811 12 22.8959
+811 13 22.4105
+811 14 22.1678
+811 15 21.0351
+811 16 19.9025
+811 17 18.6889
+811 18 17.3944
+811 19 15.9381
+811 20 14.5628
+811 21 11.4884
+811 22  8.0904
+811 23  5.6633
+811 24  4.2070
+811 25  1.8608
+811 26  0.8090
+811 27  0.3236
+811 28  0.0809
+# pixel 812
+812  1  0.7698
+812  2  2.5018
+812  3  6.6394
+812  4 11.9316
+812  5 18.6672
+812  6 22.7086
+812  7 23.9595
+812  8 25.3066
+812  9 26.8461
+812 10 27.4235
+812 11 27.4235
+812 12 27.2310
+812 13 26.6537
+812 14 26.3650
+812 15 25.0179
+812 16 23.6708
+812 17 22.2274
+812 18 20.6879
+812 19 18.9559
+812 20 17.3201
+812 21 13.6636
+812 22  9.6223
+812 23  6.7356
+812 24  5.0036
+812 25  2.2131
+812 26  0.9622
+812 27  0.3849
+812 28  0.0962
+# pixel 813
+813  1  0.7431
+813  2  2.4149
+813  3  6.4089
+813  4 11.5175
+813  5 18.0192
+813  6 21.9203
+813  7 23.1278
+813  8 24.4281
+813  9 25.9143
+813 10 26.4716
+813 11 26.4716
+813 12 26.2858
+813 13 25.7285
+813 14 25.4498
+813 15 24.1495
+813 16 22.8491
+813 17 21.4559
+813 18 19.9698
+813 19 18.2979
+813 20 16.7189
+813 21 13.1893
+813 22  9.2883
+813 23  6.5018
+813 24  4.8299
+813 25  2.1363
+813 26  0.9288
+813 27  0.3715
+813 28  0.0929
+# pixel 814
+814  1  0.7565
+814  2  2.4585
+814  3  6.5246
+814  4 11.7253
+814  5 18.3444
+814  6 22.3159
+814  7 23.5451
+814  8 24.8689
+814  9 26.3819
+814 10 26.9492
+814 11 26.9492
+814 12 26.7601
+814 13 26.1928
+814 14 25.9091
+814 15 24.5853
+814 16 23.2614
+814 17 21.8431
+814 18 20.3301
+814 19 18.6281
+814 20 17.0206
+814 21 13.4273
+814 22  9.4559
+814 23  6.6191
+814 24  4.9171
+814 25  2.1749
+814 26  0.9456
+814 27  0.3782
+814 28  0.0946
+# pixel 815
+815  1  0.6899
+815  2  2.2423
+815  3  5.9508
+815  4 10.6941
+815  5 16.7311
+815  6 20.3533
+815  7 21.4745
+815  8 22.6819
+815  9 24.0618
+815 10 24.5792
+815 11 24.5792
+815 12 24.4067
+815 13 23.8893
+815 14 23.6306
+815 15 22.4232
+815 16 21.2158
+815 17 19.9221
+815 18 18.5422
+815 19 16.9899
+815 20 15.5237
+815 21 12.2465
+815 22  8.6243
+815 23  6.0370
+815 24  4.4846
+815 25  1.9836
+815 26  0.8624
+815 27  0.3450
+815 28  0.0862
+# pixel 816
+816  1  0.7244
+816  2  2.3542
+816  3  6.2476
+816  4 11.2275
+816  5 17.5656
+816  6 21.3684
+816  7 22.5455
+816  8 23.8131
+816  9 25.2618
+816 10 25.8051
+816 11 25.8051
+816 12 25.6240
+816 13 25.0808
+816 14 24.8091
+816 15 23.5415
+816 16 22.2739
+816 17 20.9157
+816 18 19.4670
+816 19 17.8372
+816 20 16.2980
+816 21 12.8573
+816 22  9.0544
+816 23  6.3381
+816 24  4.7083
+816 25  2.0825
+816 26  0.9054
+816 27  0.3622
+816 28  0.0905
+# pixel 817
+817  1  0.6472
+817  2  2.1033
+817  3  5.5818
+817  4 10.0310
+817  5 15.6937
+817  6 19.0913
+817  7 20.1430
+817  8 21.2755
+817  9 22.5698
+817 10 23.0552
+817 11 23.0552
+817 12 22.8934
+817 13 22.4080
+817 14 22.1654
+817 15 21.0328
+817 16 19.9003
+817 17 18.6869
+817 18 17.3925
+817 19 15.9364
+817 20 14.5612
+817 21 11.4872
+817 22  8.0895
+817 23  5.6627
+817 24  4.2066
+817 25  1.8606
+817 26  0.8090
+817 27  0.3236
+817 28  0.0809
+# pixel 818
+818  1  0.7381
+818  2  2.3988
+818  3  6.3661
+818  4 11.4406
+818  5 17.8990
+818  6 21.7740
+818  7 22.9735
+818  8 24.2651
+818  9 25.7413
+818 10 26.2949
+818 11 26.2949
+818 12 26.1104
+818 13 25.5568
+818 14 25.2800
+818 15 23.9884
+818 16 22.6967
+818 17 21.3127
+818 18 19.8365
+818 19 18.1758
+818 20 16.6073
+818 21 13.1013
+818 22  9.2263
+818 23  6.4584
+818 24  4.7977
+818 25  2.1220
+818 26  0.9226
+818 27  0.3691
+818 28  0.0923
+# pixel 819
+819  1  0.6801
+819  2  2.2103
+819  3  5.8659
+819  4 10.5416
+819  5 16.4925
+819  6 20.0631
+819  7 21.1683
+819  8 22.3584
+819  9 23.7186
+819 10 24.2287
+819 11 24.2287
+819 12 24.0587
+819 13 23.5486
+819 14 23.2936
+819 15 22.1034
+819 16 20.9132
+819 17 19.6380
+819 18 18.2778
+819 19 16.7476
+819 20 15.3024
+819 21 12.0719
+819 22  8.5013
+819 23  5.9509
+819 24  4.4207
+819 25  1.9553
+819 26  0.8501
+819 27  0.3401
+819 28  0.0850
+# pixel 820
+820  1  0.5933
+820  2  1.9283
+820  3  5.1173
+820  4  9.1963
+820  5 14.3878
+820  6 17.5026
+820  7 18.4668
+820  8 19.5050
+820  9 20.6917
+820 10 21.1366
+820 11 21.1366
+820 12 20.9883
+820 13 20.5433
+820 14 20.3208
+820 15 19.2826
+820 16 18.2443
+820 17 17.1318
+820 18 15.9452
+820 19 14.6102
+820 20 13.3495
+820 21 10.5312
+820 22  7.4164
+820 23  5.1915
+820 24  3.8565
+820 25  1.7058
+820 26  0.7416
+820 27  0.2967
+820 28  0.0742
+# pixel 821
+821  1  0.7725
+821  2  2.5106
+821  3  6.6628
+821  4 11.9737
+821  5 18.7331
+821  6 22.7887
+821  7 24.0440
+821  8 25.3959
+821  9 26.9409
+821 10 27.5202
+821 11 27.5202
+821 12 27.3271
+821 13 26.7477
+821 14 26.4580
+821 15 25.1062
+821 16 23.7543
+821 17 22.3059
+821 18 20.7609
+821 19 19.0228
+821 20 17.3812
+821 21 13.7118
+821 22  9.6562
+821 23  6.7594
+821 24  5.0212
+821 25  2.2209
+821 26  0.9656
+821 27  0.3862
+821 28  0.0966
+# pixel 822
+822  1  0.7748
+822  2  2.5181
+822  3  6.6828
+822  4 12.0096
+822  5 18.7893
+822  6 22.8571
+822  7 24.1161
+822  8 25.4721
+822  9 27.0217
+822 10 27.6028
+822 11 27.6028
+822 12 27.4091
+822 13 26.8280
+822 14 26.5374
+822 15 25.1815
+822 16 23.8256
+822 17 22.3728
+822 18 20.8232
+822 19 19.0798
+822 20 17.4333
+822 21 13.7530
+822 22  9.6852
+822 23  6.7796
+822 24  5.0363
+822 25  2.2276
+822 26  0.9685
+822 27  0.3874
+822 28  0.0969
+# pixel 823
+823  1  0.6269
+823  2  2.0375
+823  3  5.4073
+823  4  9.7174
+823  5 15.2031
+823  6 18.4945
+823  7 19.5132
+823  8 20.6104
+823  9 21.8642
+823 10 22.3344
+823 11 22.3344
+823 12 22.1777
+823 13 21.7075
+823 14 21.4724
+823 15 20.3753
+823 16 19.2782
+823 17 18.1027
+823 18 16.8488
+823 19 15.4382
+823 20 14.1060
+823 21 11.1280
+823 22  7.8366
+823 23  5.4857
+823 24  4.0751
+823 25  1.8024
+823 26  0.7837
+823 27  0.3135
+823 28  0.0784
+# pixel 824
+824  1  0.7632
+824  2  2.4803
+824  3  6.5823
+824  4 11.8290
+824  5 18.5067
+824  6 22.5133
+824  7 23.7535
+824  8 25.0890
+824  9 26.6153
+824 10 27.1877
+824 11 27.1877
+824 12 26.9969
+824 13 26.4245
+824 14 26.1384
+824 15 24.8028
+824 16 23.4673
+824 17 22.0364
+824 18 20.5100
+824 19 18.7929
+824 20 17.1712
+824 21 13.5462
+824 22  9.5395
+824 23  6.6777
+824 24  4.9606
+824 25  2.1941
+824 26  0.9540
+824 27  0.3816
+824 28  0.0954
+# pixel 825
+825  1  0.8281
+825  2  2.6913
+825  3  7.1423
+825  4 12.8355
+825  5 20.0813
+825  6 24.4288
+825  7 25.7745
+825  8 27.2237
+825  9 28.8799
+825 10 29.5009
+825 11 29.5009
+825 12 29.2939
+825 13 28.6728
+825 14 28.3623
+825 15 26.9131
+825 16 25.4640
+825 17 23.9113
+825 18 22.2551
+825 19 20.3919
+825 20 18.6322
+825 21 14.6987
+825 22 10.3512
+825 23  7.2458
+825 24  5.3826
+825 25  2.3808
+825 26  1.0351
+825 27  0.4140
+825 28  0.1035
+# pixel 826
+826  1  0.7015
+826  2  2.2799
+826  3  6.0505
+826  4 10.8733
+826  5 17.0115
+826  6 20.6944
+826  7 21.8344
+826  8 23.0620
+826  9 24.4650
+826 10 24.9911
+826 11 24.9911
+826 12 24.8158
+826 13 24.2896
+826 14 24.0266
+826 15 22.7989
+826 16 21.5713
+826 17 20.2560
+826 18 18.8530
+826 19 17.2746
+826 20 15.7839
+826 21 12.4517
+826 22  8.7688
+826 23  6.1382
+826 24  4.5598
+826 25  2.0168
+826 26  0.8769
+826 27  0.3508
+826 28  0.0877
+# pixel 827
+827  1  0.6954
+827  2  2.2600
+827  3  5.9977
+827  4 10.7785
+827  5 16.8631
+827  6 20.5139
+827  7 21.6439
+827  8 22.8609
+827  9 24.2516
+827 10 24.7732
+827 11 24.7732
+827 12 24.5993
+827 13 24.0778
+827 14 23.8170
+827 15 22.6001
+827 16 21.3832
+827 17 20.0793
+827 18 18.6885
+827 19 17.1239
+827 20 15.6462
+827 21 12.3431
+827 22  8.6923
+827 23  6.0846
+827 24  4.5200
+827 25  1.9992
+827 26  0.8692
+827 27  0.3477
+827 28  0.0869
+# pixel 828
+828  1  0.8297
+828  2  2.6964
+828  3  7.1559
+828  4 12.8600
+828  5 20.1196
+828  6 24.4754
+828  7 25.8236
+828  8 27.2755
+828  9 28.9349
+828 10 29.5571
+828 11 29.5571
+828 12 29.3497
+828 13 28.7275
+828 14 28.4163
+828 15 26.9644
+828 16 25.5125
+828 17 23.9568
+828 18 22.2975
+828 19 20.4307
+828 20 18.6677
+828 21 14.7267
+828 22 10.3709
+828 23  7.2596
+828 24  5.3929
+828 25  2.3853
+828 26  1.0371
+828 27  0.4148
+828 28  0.1037
+# pixel 829
+829  1  0.7157
+829  2  2.3259
+829  3  6.1727
+829  4 11.0929
+829  5 17.3550
+829  6 21.1123
+829  7 22.2753
+829  8 23.5277
+829  9 24.9590
+829 10 25.4958
+829 11 25.4958
+829 12 25.3169
+829 13 24.7801
+829 14 24.5117
+829 15 23.2593
+829 16 22.0069
+829 17 20.6650
+829 18 19.2337
+829 19 17.6234
+829 20 16.1026
+829 21 12.7032
+829 22  8.9459
+829 23  6.2621
+829 24  4.6519
+829 25  2.0576
+829 26  0.8946
+829 27  0.3578
+829 28  0.0895
+# pixel 830
+830  1  0.7379
+830  2  2.3981
+830  3  6.3642
+830  4 11.4371
+830  5 17.8935
+830  6 21.7673
+830  7 22.9664
+830  8 24.2576
+830  9 25.7334
+830 10 26.2868
+830 11 26.2868
+830 12 26.1023
+830 13 25.5489
+830 14 25.2722
+830 15 23.9809
+830 16 22.6897
+830 17 21.3061
+830 18 19.8304
+830 19 18.1702
+830 20 16.6022
+830 21 13.0973
+830 22  9.2234
+830 23  6.4564
+830 24  4.7962
+830 25  2.1214
+830 26  0.9223
+830 27  0.3689
+830 28  0.0922
+# pixel 831
+831  1  0.7635
+831  2  2.4814
+831  3  6.5853
+831  4 11.8345
+831  5 18.5152
+831  6 22.5237
+831  7 23.7644
+831  8 25.1005
+831  9 26.6276
+831 10 27.2002
+831 11 27.2002
+831 12 27.0093
+831 13 26.4367
+831 14 26.1504
+831 15 24.8142
+831 16 23.4781
+831 17 22.0465
+831 18 20.5194
+831 19 18.8015
+831 20 17.1791
+831 21 13.5524
+831 22  9.5439
+831 23  6.6807
+831 24  4.9628
+831 25  2.1951
+831 26  0.9544
+831 27  0.3818
+831 28  0.0954
+# pixel 832
+832  1  0.7677
+832  2  2.4950
+832  3  6.6214
+832  4 11.8993
+832  5 18.6166
+832  6 22.6470
+832  7 23.8945
+832  8 25.2380
+832  9 26.7734
+832 10 27.3491
+832 11 27.3491
+832 12 27.1572
+832 13 26.5814
+832 14 26.2936
+832 15 24.9501
+832 16 23.6066
+832 17 22.1672
+832 18 20.6318
+832 19 18.9045
+832 20 17.2731
+832 21 13.6266
+832 22  9.5962
+832 23  6.7173
+832 24  4.9900
+832 25  2.2071
+832 26  0.9596
+832 27  0.3838
+832 28  0.0960
+# pixel 833
+833  1  0.8091
+833  2  2.6296
+833  3  6.9785
+833  4 12.5410
+833  5 19.6207
+833  6 23.8684
+833  7 25.1832
+833  8 26.5991
+833  9 28.2173
+833 10 28.8242
+833 11 28.8242
+833 12 28.6219
+833 13 28.0151
+833 14 27.7116
+833 15 26.2957
+833 16 24.8798
+833 17 23.3627
+833 18 21.7445
+833 19 19.9241
+833 20 18.2047
+833 21 14.3615
+833 22 10.1137
+833 23  7.0796
+833 24  5.2591
+833 25  2.3262
+833 26  1.0114
+833 27  0.4045
+833 28  0.1011
+# pixel 834
+834  1  0.7630
+834  2  2.4799
+834  3  6.5812
+834  4 11.8270
+834  5 18.5036
+834  6 22.5095
+834  7 23.7494
+834  8 25.0847
+834  9 26.6108
+834 10 27.1831
+834 11 27.1831
+834 12 26.9923
+834 13 26.4200
+834 14 26.1339
+834 15 24.7986
+834 16 23.4633
+834 17 22.0326
+834 18 20.5065
+834 19 18.7897
+834 20 17.1682
+834 21 13.5438
+834 22  9.5379
+834 23  6.6765
+834 24  4.9597
+834 25  2.1937
+834 26  0.9538
+834 27  0.3815
+834 28  0.0954
+# pixel 835
+835  1  0.7700
+835  2  2.5025
+835  3  6.6413
+835  4 11.9351
+835  5 18.6727
+835  6 22.7152
+835  7 23.9665
+835  8 25.3140
+835  9 26.8540
+835 10 27.4315
+835 11 27.4315
+835 12 27.2390
+835 13 26.6615
+835 14 26.3728
+835 15 25.0253
+835 16 23.6777
+835 17 22.2340
+835 18 20.6940
+835 19 18.9614
+835 20 17.3252
+835 21 13.6676
+835 22  9.6251
+835 23  6.7376
+835 24  5.0051
+835 25  2.2138
+835 26  0.9625
+835 27  0.3850
+835 28  0.0963
+# pixel 836
+836  1  0.7060
+836  2  2.2945
+836  3  6.0894
+836  4 10.9432
+836  5 17.1208
+836  6 20.8274
+836  7 21.9747
+836  8 23.2102
+836  9 24.6222
+836 10 25.1517
+836 11 25.1517
+836 12 24.9752
+836 13 24.4457
+836 14 24.1809
+836 15 22.9454
+836 16 21.7099
+836 17 20.3861
+836 18 18.9741
+836 19 17.3856
+836 20 15.8853
+836 21 12.5317
+836 22  8.8252
+836 23  6.1776
+836 24  4.5891
+836 25  2.0298
+836 26  0.8825
+836 27  0.3530
+836 28  0.0883
+# pixel 837
+837  1  0.6101
+837  2  1.9827
+837  3  5.2619
+837  4  9.4562
+837  5 14.7943
+837  6 17.9972
+837  7 18.9886
+837  8 20.0562
+837  9 21.2763
+837 10 21.7339
+837 11 21.7339
+837 12 21.5814
+837 13 21.1238
+837 14 20.8950
+837 15 19.8274
+837 16 18.7598
+837 17 17.6159
+837 18 16.3957
+837 19 15.0231
+837 20 13.7267
+837 21 10.8288
+837 22  7.6259
+837 23  5.3381
+837 24  3.9655
+837 25  1.7540
+837 26  0.7626
+837 27  0.3050
+837 28  0.0763
+# pixel 838
+838  1  0.7389
+838  2  2.4016
+838  3  6.3734
+838  4 11.4537
+838  5 17.9195
+838  6 21.7989
+838  7 22.9997
+838  8 24.2929
+838  9 25.7708
+838 10 26.3250
+838 11 26.3250
+838 12 26.1403
+838 13 25.5861
+838 14 25.3089
+838 15 24.0158
+838 16 22.7226
+838 17 21.3371
+838 18 19.8592
+838 19 18.1966
+838 20 16.6263
+838 21 13.1163
+838 22  9.2368
+838 23  6.4658
+838 24  4.8032
+838 25  2.1245
+838 26  0.9237
+838 27  0.3695
+838 28  0.0924
+# pixel 839
+839  1  0.7714
+839  2  2.5071
+839  3  6.6534
+839  4 11.9568
+839  5 18.7066
+839  6 22.7565
+839  7 24.0100
+839  8 25.3600
+839  9 26.9028
+839 10 27.4814
+839 11 27.4814
+839 12 27.2885
+839 13 26.7100
+839 14 26.4207
+839 15 25.0707
+839 16 23.7208
+839 17 22.2744
+839 18 20.7316
+839 19 18.9959
+839 20 17.3567
+839 21 13.6925
+839 22  9.6426
+839 23  6.7498
+839 24  5.0141
+839 25  2.2178
+839 26  0.9643
+839 27  0.3857
+839 28  0.0964
+# pixel 840
+840  1  0.7627
+840  2  2.4788
+840  3  6.5783
+840  4 11.8218
+840  5 18.4954
+840  6 22.4996
+840  7 23.7390
+840  8 25.0737
+840  9 26.5991
+840 10 27.1711
+840 11 27.1711
+840 12 26.9805
+840 13 26.4084
+840 14 26.1224
+840 15 24.7877
+840 16 23.4530
+840 17 22.0229
+840 18 20.4975
+840 19 18.7814
+840 20 17.1607
+840 21 13.5379
+840 22  9.5337
+840 23  6.6736
+840 24  4.9575
+840 25  2.1928
+840 26  0.9534
+840 27  0.3813
+840 28  0.0953
+# pixel 841
+841  1  0.7863
+841  2  2.5555
+841  3  6.7818
+841  4 12.1876
+841  5 19.0677
+841  6 23.1957
+841  7 24.4735
+841  8 25.8495
+841  9 27.4221
+841 10 28.0118
+841 11 28.0118
+841 12 27.8152
+841 13 27.2255
+841 14 26.9306
+841 15 25.5546
+841 16 24.1786
+841 17 22.7043
+841 18 21.1317
+841 19 19.3625
+841 20 17.6917
+841 21 13.9567
+841 22  9.8287
+841 23  6.8801
+841 24  5.1109
+841 25  2.2606
+841 26  0.9829
+841 27  0.3931
+841 28  0.0983
+# pixel 842
+842  1  0.6921
+842  2  2.2495
+842  3  5.9698
+842  4 10.7283
+842  5 16.7846
+842  6 20.4183
+842  7 21.5431
+842  8 22.7543
+842  9 24.1386
+842 10 24.6577
+842 11 24.6577
+842 12 24.4847
+842 13 23.9656
+842 14 23.7060
+842 15 22.4948
+842 16 21.2835
+842 17 19.9857
+842 18 18.6015
+842 19 17.0441
+842 20 15.5733
+842 21 12.2856
+842 22  8.6518
+842 23  6.0563
+842 24  4.4990
+842 25  1.9899
+842 26  0.8652
+842 27  0.3461
+842 28  0.0865
+# pixel 843
+843  1  0.7481
+843  2  2.4312
+843  3  6.4520
+843  4 11.5949
+843  5 18.1405
+843  6 22.0678
+843  7 23.2834
+843  8 24.5925
+843  9 26.0886
+843 10 26.6497
+843 11 26.6497
+843 12 26.4626
+843 13 25.9016
+843 14 25.6211
+843 15 24.3120
+843 16 23.0029
+843 17 21.6002
+843 18 20.1041
+843 19 18.4210
+843 20 16.8314
+843 21 13.2781
+843 22  9.3508
+843 23  6.5455
+843 24  4.8624
+843 25  2.1507
+843 26  0.9351
+843 27  0.3740
+843 28  0.0935
+# pixel 844
+844  1  0.7153
+844  2  2.3246
+844  3  6.1691
+844  4 11.0865
+844  5 17.3451
+844  6 21.1002
+844  7 22.2625
+844  8 23.5142
+844  9 24.9447
+844 10 25.4812
+844 11 25.4812
+844 12 25.3023
+844 13 24.7659
+844 14 24.4977
+844 15 23.2460
+844 16 21.9943
+844 17 20.6531
+844 18 19.2226
+844 19 17.6133
+844 20 16.0934
+844 21 12.6959
+844 22  8.9408
+844 23  6.2585
+844 24  4.6492
+844 25  2.0564
+844 26  0.8941
+844 27  0.3576
+844 28  0.0894
+# pixel 845
+845  1  0.7404
+845  2  2.4062
+845  3  6.3857
+845  4 11.4757
+845  5 17.9539
+845  6 21.8408
+845  7 23.0439
+845  8 24.3396
+845  9 25.8203
+845 10 26.3756
+845 11 26.3756
+845 12 26.1905
+845 13 25.6352
+845 14 25.3576
+845 15 24.0619
+845 16 22.7663
+845 17 21.3781
+845 18 19.8974
+845 19 18.2315
+845 20 16.6583
+845 21 13.1415
+845 22  9.2546
+845 23  6.4782
+845 24  4.8124
+845 25  2.1286
+845 26  0.9255
+845 27  0.3702
+845 28  0.0925
+# pixel 846
+846  1  0.6759
+846  2  2.1967
+846  3  5.8297
+846  4 10.4765
+846  5 16.3907
+846  6 19.9392
+846  7 21.0376
+846  8 22.2204
+846  9 23.5722
+846 10 24.0792
+846 11 24.0792
+846 12 23.9102
+846 13 23.4033
+846 14 23.1498
+846 15 21.9670
+846 16 20.7841
+846 17 19.5168
+846 18 18.1650
+846 19 16.6442
+846 20 15.2079
+846 21 11.9973
+846 22  8.4488
+846 23  5.9142
+846 24  4.3934
+846 25  1.9432
+846 26  0.8449
+846 27  0.3380
+846 28  0.0845
+# pixel 847
+847  1  0.6754
+847  2  2.1951
+847  3  5.8256
+847  4 10.4691
+847  5 16.3791
+847  6 19.9251
+847  7 21.0227
+847  8 22.2047
+847  9 23.5556
+847 10 24.0621
+847 11 24.0621
+847 12 23.8933
+847 13 23.3867
+847 14 23.1334
+847 15 21.9514
+847 16 20.7694
+847 17 19.5030
+847 18 18.1521
+847 19 16.6324
+847 20 15.1971
+847 21 11.9889
+847 22  8.4429
+847 23  5.9100
+847 24  4.3903
+847 25  1.9419
+847 26  0.8443
+847 27  0.3377
+847 28  0.0844
+# pixel 848
+848  1  0.8838
+848  2  2.8722
+848  3  7.6224
+848  4 13.6982
+848  5 21.4310
+848  6 26.0707
+848  7 27.5069
+848  8 29.0534
+848  9 30.8209
+848 10 31.4837
+848 11 31.4837
+848 12 31.2628
+848 13 30.6000
+848 14 30.2686
+848 15 28.7220
+848 16 27.1754
+848 17 25.5184
+848 18 23.7509
+848 19 21.7624
+848 20 19.8845
+848 21 15.6866
+848 22 11.0469
+848 23  7.7328
+848 24  5.7444
+848 25  2.5408
+848 26  1.1047
+848 27  0.4419
+848 28  0.1105
+# pixel 849
+849  1  0.7944
+849  2  2.5818
+849  3  6.8518
+849  4 12.3133
+849  5 19.2644
+849  6 23.4350
+849  7 24.7259
+849  8 26.1161
+849  9 27.7050
+849 10 28.3008
+849 11 28.3008
+849 12 28.1022
+849 13 27.5064
+849 14 27.2085
+849 15 25.8182
+849 16 24.4280
+849 17 22.9385
+849 18 21.3497
+849 19 19.5623
+849 20 17.8742
+849 21 14.1007
+849 22  9.9301
+849 23  6.9511
+849 24  5.1636
+849 25  2.2839
+849 26  0.9930
+849 27  0.3972
+849 28  0.0993
+# pixel 850
+850  1  0.7630
+850  2  2.4798
+850  3  6.5809
+850  4 11.8266
+850  5 18.5029
+850  6 22.5087
+850  7 23.7486
+850  8 25.0839
+850  9 26.6099
+850 10 27.1821
+850 11 27.1821
+850 12 26.9914
+850 13 26.4191
+850 14 26.1330
+850 15 24.7977
+850 16 23.4625
+850 17 22.0318
+850 18 20.5058
+850 19 18.7891
+850 20 17.1677
+850 21 13.5434
+850 22  9.5376
+850 23  6.6763
+850 24  4.9595
+850 25  2.1936
+850 26  0.9538
+850 27  0.3815
+850 28  0.0954
+# pixel 851
+851  1  0.6732
+851  2  2.1879
+851  3  5.8064
+851  4 10.4348
+851  5 16.3254
+851  6 19.8597
+851  7 20.9537
+851  8 22.1318
+851  9 23.4782
+851 10 23.9831
+851 11 23.9831
+851 12 23.8148
+851 13 23.3099
+851 14 23.0575
+851 15 21.8794
+851 16 20.7012
+851 17 19.4390
+851 18 18.0925
+851 19 16.5778
+851 20 15.1473
+851 21 11.9495
+851 22  8.4151
+851 23  5.8906
+851 24  4.3759
+851 25  1.9355
+851 26  0.8415
+851 27  0.3366
+851 28  0.0842
+# pixel 852
+852  1  0.6388
+852  2  2.0761
+852  3  5.5095
+852  4  9.9012
+852  5 15.4906
+852  6 18.8442
+852  7 19.8822
+852  8 21.0001
+852  9 22.2777
+852 10 22.7568
+852 11 22.7568
+852 12 22.5971
+852 13 22.1180
+852 14 21.8785
+852 15 20.7606
+852 16 19.6427
+852 17 18.4450
+852 18 17.1674
+852 19 15.7301
+852 20 14.3727
+852 21 11.3385
+852 22  7.9848
+852 23  5.5894
+852 24  4.1521
+852 25  1.8365
+852 26  0.7985
+852 27  0.3194
+852 28  0.0798
+# pixel 853
+853  1  0.6680
+853  2  2.1710
+853  3  5.7615
+853  4 10.3540
+853  5 16.1990
+853  6 19.7060
+853  7 20.7915
+853  8 21.9605
+853  9 23.2965
+853 10 23.7975
+853 11 23.7975
+853 12 23.6305
+853 13 23.1295
+853 14 22.8790
+853 15 21.7100
+853 16 20.5410
+853 17 19.2885
+853 18 17.9525
+853 19 16.4495
+853 20 15.0300
+853 21 11.8570
+853 22  8.3500
+853 23  5.8450
+853 24  4.3420
+853 25  1.9205
+853 26  0.8350
+853 27  0.3340
+853 28  0.0835
+# pixel 854
+854  1  0.7494
+854  2  2.4354
+854  3  6.4632
+854  4 11.6151
+854  5 18.1720
+854  6 22.1062
+854  7 23.3239
+854  8 24.6353
+854  9 26.1340
+854 10 26.6960
+854 11 26.6960
+854 12 26.5087
+854 13 25.9467
+854 14 25.6656
+854 15 24.3543
+854 16 23.0429
+854 17 21.6378
+854 18 20.1391
+854 19 18.4530
+854 20 16.8606
+854 21 13.3012
+854 22  9.3670
+854 23  6.5569
+854 24  4.8709
+854 25  2.1544
+854 26  0.9367
+854 27  0.3747
+854 28  0.0937
+# pixel 855
+855  1  0.6683
+855  2  2.1719
+855  3  5.7638
+855  4 10.3582
+855  5 16.2056
+855  6 19.7140
+855  7 20.8000
+855  8 21.9694
+855  9 23.3060
+855 10 23.8072
+855 11 23.8072
+855 12 23.6401
+855 13 23.1389
+855 14 22.8883
+855 15 21.7188
+855 16 20.5494
+855 17 19.2963
+855 18 17.9598
+855 19 16.4562
+855 20 15.0361
+855 21 11.8618
+855 22  8.3534
+855 23  5.8474
+855 24  4.3438
+855 25  1.9213
+855 26  0.8353
+855 27  0.3341
+855 28  0.0835
+# pixel 856
+856  1  0.7648
+856  2  2.4857
+856  3  6.5967
+856  4 11.8550
+856  5 18.5473
+856  6 22.5627
+856  7 23.8056
+856  8 25.1440
+856  9 26.6737
+856 10 27.2473
+856 11 27.2473
+856 12 27.0561
+856 13 26.4825
+856 14 26.1957
+856 15 24.8572
+856 16 23.5188
+856 17 22.0847
+856 18 20.5550
+856 19 18.8341
+856 20 17.2088
+856 21 13.5759
+856 22  9.5605
+856 23  6.6923
+856 24  4.9714
+856 25  2.1989
+856 26  0.9560
+856 27  0.3824
+856 28  0.0956
+# pixel 857
+857  1  0.7350
+857  2  2.3889
+857  3  6.3398
+857  4 11.3932
+857  5 17.8249
+857  6 21.6839
+857  7 22.8783
+857  8 24.1647
+857  9 25.6348
+857 10 26.1861
+857 11 26.1861
+857 12 26.0023
+857 13 25.4510
+857 14 25.1754
+857 15 23.8890
+857 16 22.6027
+857 17 21.2245
+857 18 19.7544
+857 19 18.1005
+857 20 16.5386
+857 21 13.0471
+857 22  9.1881
+857 23  6.4317
+857 24  4.7778
+857 25  2.1133
+857 26  0.9188
+857 27  0.3675
+857 28  0.0919
+# pixel 858
+858  1  0.7295
+858  2  2.3710
+858  3  6.2923
+858  4 11.3079
+858  5 17.6914
+858  6 21.5215
+858  7 22.7070
+858  8 23.9837
+858  9 25.4428
+858 10 25.9899
+858 11 25.9899
+858 12 25.8076
+858 13 25.2604
+858 14 24.9868
+858 15 23.7101
+858 16 22.4334
+858 17 21.0655
+858 18 19.6064
+858 19 17.9650
+858 20 16.4147
+858 21 12.9494
+858 22  9.1193
+858 23  6.3835
+858 24  4.7420
+858 25  2.0974
+858 26  0.9119
+858 27  0.3648
+858 28  0.0912
+# pixel 859
+859  1  0.7079
+859  2  2.3007
+859  3  6.1056
+859  4 10.9725
+859  5 17.1666
+859  6 20.8831
+859  7 22.0334
+859  8 23.2722
+859  9 24.6880
+859 10 25.2190
+859 11 25.2190
+859 12 25.0420
+859 13 24.5111
+859 14 24.2456
+859 15 23.0068
+859 16 21.7679
+859 17 20.4406
+859 18 19.0248
+859 19 17.4320
+859 20 15.9278
+859 21 12.5652
+859 22  8.8488
+859 23  6.1941
+859 24  4.6014
+859 25  2.0352
+859 26  0.8849
+859 27  0.3540
+859 28  0.0885
+# pixel 860
+860  1  0.7578
+860  2  2.4628
+860  3  6.5360
+860  4 11.7458
+860  5 18.3765
+860  6 22.3550
+860  7 23.5864
+860  8 24.9125
+860  9 26.4281
+860 10 26.9965
+860 11 26.9965
+860 12 26.8070
+860 13 26.2387
+860 14 25.9545
+860 15 24.6284
+860 16 23.3022
+860 17 21.8813
+860 18 20.3658
+860 19 18.6607
+860 20 17.0504
+860 21 13.4509
+860 22  9.4724
+860 23  6.6307
+860 24  4.9257
+860 25  2.1787
+860 26  0.9472
+860 27  0.3789
+860 28  0.0947
+# pixel 861
+861  1  0.6541
+861  2  2.1259
+861  3  5.6419
+861  4 10.1391
+861  5 15.8628
+861  6 19.2970
+861  7 20.3600
+861  8 21.5047
+861  9 22.8130
+861 10 23.3036
+861 11 23.3036
+861 12 23.1401
+861 13 22.6495
+861 14 22.4042
+861 15 21.2594
+861 16 20.1147
+861 17 18.8882
+861 18 17.5799
+861 19 16.1081
+861 20 14.7181
+861 21 11.6109
+861 22  8.1767
+861 23  5.7237
+861 24  4.2519
+861 25  1.8806
+861 26  0.8177
+861 27  0.3271
+861 28  0.0818
+# pixel 862
+862  1  0.7929
+862  2  2.5770
+862  3  6.8389
+862  4 12.2902
+862  5 19.2282
+862  6 23.3910
+862  7 24.6794
+862  8 26.0670
+862  9 27.6529
+862 10 28.2476
+862 11 28.2476
+862 12 28.0493
+862 13 27.4546
+862 14 27.1573
+862 15 25.7697
+862 16 24.3821
+862 17 22.8954
+862 18 21.3096
+862 19 19.5255
+862 20 17.8406
+862 21 14.0742
+862 22  9.9114
+862 23  6.9380
+862 24  5.1539
+862 25  2.2796
+862 26  0.9911
+862 27  0.3965
+862 28  0.0991
+# pixel 863
+863  1  0.5799
+863  2  1.8846
+863  3  5.0016
+863  4  8.9883
+863  5 14.0624
+863  6 17.1068
+863  7 18.0491
+863  8 19.0639
+863  9 20.2237
+863 10 20.6586
+863 11 20.6586
+863 12 20.5136
+863 13 20.0787
+863 14 19.8613
+863 15 18.8464
+863 16 17.8316
+863 17 16.7443
+863 18 15.5846
+863 19 14.2798
+863 20 13.0475
+863 21 10.2931
+863 22  7.2486
+863 23  5.0740
+863 24  3.7693
+863 25  1.6672
+863 26  0.7249
+863 27  0.2899
+863 28  0.0725
+# pixel 864
+864  1  0.7084
+864  2  2.3023
+864  3  6.1099
+864  4 10.9802
+864  5 17.1786
+864  6 20.8977
+864  7 22.0489
+864  8 23.2886
+864  9 24.7054
+864 10 25.2367
+864 11 25.2367
+864 12 25.0596
+864 13 24.5283
+864 14 24.2626
+864 15 23.0229
+864 16 21.7832
+864 17 20.4550
+864 18 19.0382
+864 19 17.4443
+864 20 15.9389
+864 21 12.5741
+864 22  8.8550
+864 23  6.1985
+864 24  4.6046
+864 25  2.0366
+864 26  0.8855
+864 27  0.3542
+864 28  0.0885
+# pixel 865
+865  1  0.7070
+865  2  2.2978
+865  3  6.0980
+865  4 10.9587
+865  5 17.1450
+865  6 20.8568
+865  7 22.0057
+865  8 23.2430
+865  9 24.6570
+865 10 25.1872
+865 11 25.1872
+865 12 25.0105
+865 13 24.4802
+865 14 24.2151
+865 15 22.9778
+865 16 21.7406
+865 17 20.4149
+865 18 19.0009
+865 19 17.4101
+865 20 15.9077
+865 21 12.5494
+865 22  8.8376
+865 23  6.1863
+865 24  4.5956
+865 25  2.0327
+865 26  0.8838
+865 27  0.3535
+865 28  0.0884
+# pixel 866
+866  1  0.6362
+866  2  2.0676
+866  3  5.4871
+866  4  9.8609
+866  5 15.4276
+866  6 18.7676
+866  7 19.8014
+866  8 20.9147
+866  9 22.1871
+866 10 22.6643
+866 11 22.6643
+866 12 22.5052
+866 13 22.0281
+866 14 21.7895
+866 15 20.6762
+866 16 19.5628
+866 17 18.3700
+866 18 17.0976
+866 19 15.6662
+866 20 14.3143
+866 21 11.2924
+866 22  7.9524
+866 23  5.5667
+866 24  4.1352
+866 25  1.8290
+866 26  0.7952
+866 27  0.3181
+866 28  0.0795
+# pixel 867
+867  1  0.7762
+867  2  2.5226
+867  3  6.6945
+867  4 12.0307
+867  5 18.8223
+867  6 22.8972
+867  7 24.1585
+867  8 25.5168
+867  9 27.0691
+867 10 27.6513
+867 11 27.6513
+867 12 27.4572
+867 13 26.8751
+867 14 26.5840
+867 15 25.2257
+867 16 23.8674
+867 17 22.4121
+867 18 20.8597
+867 19 19.1133
+867 20 17.4640
+867 21 13.7771
+867 22  9.7022
+867 23  6.7915
+867 24  5.0451
+867 25  2.2315
+867 26  0.9702
+867 27  0.3881
+867 28  0.0970
+# pixel 868
+868  1  0.7191
+868  2  2.3370
+868  3  6.2020
+868  4 11.1456
+868  5 17.4375
+868  6 21.2126
+868  7 22.3811
+868  8 23.6395
+868  9 25.0776
+868 10 25.6169
+868 11 25.6169
+868 12 25.4372
+868 13 24.8979
+868 14 24.6282
+868 15 23.3698
+868 16 22.1115
+868 17 20.7632
+868 18 19.3251
+868 19 17.7071
+868 20 16.1791
+868 21 12.7635
+868 22  8.9884
+868 23  6.2919
+868 24  4.6740
+868 25  2.0673
+868 26  0.8988
+868 27  0.3595
+868 28  0.0899
+# pixel 869
+869  1  0.7707
+869  2  2.5049
+869  3  6.6476
+869  4 11.9464
+869  5 18.6903
+869  6 22.7367
+869  7 23.9891
+869  8 25.3379
+869  9 26.8794
+869 10 27.4574
+869 11 27.4574
+869 12 27.2647
+869 13 26.6867
+869 14 26.3977
+869 15 25.0489
+869 16 23.7001
+869 17 22.2550
+869 18 20.7135
+869 19 18.9793
+869 20 17.3415
+869 21 13.6805
+869 22  9.6342
+869 23  6.7439
+869 24  5.0098
+869 25  2.2159
+869 26  0.9634
+869 27  0.3854
+869 28  0.0963
+# pixel 870
+870  1  0.8404
+870  2  2.7312
+870  3  7.2482
+870  4 13.0257
+870  5 20.3789
+870  6 24.7909
+870  7 26.1565
+870  8 27.6271
+870  9 29.3079
+870 10 29.9381
+870 11 29.9381
+870 12 29.7280
+870 13 29.0978
+870 14 28.7826
+870 15 27.3120
+870 16 25.8413
+870 17 24.2656
+870 18 22.5849
+870 19 20.6941
+870 20 18.9083
+870 21 14.9165
+870 22 10.5046
+870 23  7.3532
+870 24  5.4624
+870 25  2.4161
+870 26  1.0505
+870 27  0.4202
+870 28  0.1050
+# pixel 871
+871  1  0.7022
+871  2  2.2820
+871  3  6.0561
+871  4 10.8835
+871  5 17.0274
+871  6 20.7137
+871  7 21.8547
+871  8 23.0835
+871  9 24.4878
+871 10 25.0144
+871 11 25.0144
+871 12 24.8389
+871 13 24.3123
+871 14 24.0490
+871 15 22.8202
+871 16 21.5914
+871 17 20.2749
+871 18 18.8705
+871 19 17.2907
+871 20 15.7986
+871 21 12.4633
+871 22  8.7770
+871 23  6.1439
+871 24  4.5640
+871 25  2.0187
+871 26  0.8777
+871 27  0.3511
+871 28  0.0878
+# pixel 872
+872  1  0.6998
+872  2  2.2745
+872  3  6.0362
+872  4 10.8477
+872  5 16.9713
+872  6 20.6455
+872  7 21.7828
+872  8 23.0075
+872  9 24.4072
+872 10 24.9321
+872 11 24.9321
+872 12 24.7572
+872 13 24.2323
+872 14 23.9698
+872 15 22.7451
+872 16 21.5203
+872 17 20.2081
+872 18 18.8084
+872 19 17.2338
+872 20 15.7466
+872 21 12.4223
+872 22  8.7481
+872 23  6.1237
+872 24  4.5490
+872 25  2.0121
+872 26  0.8748
+872 27  0.3499
+872 28  0.0875
+# pixel 873
+873  1  0.6859
+873  2  2.2291
+873  3  5.9157
+873  4 10.6312
+873  5 16.6327
+873  6 20.2336
+873  7 21.3481
+873  8 22.5484
+873  9 23.9202
+873 10 24.4346
+873 11 24.4346
+873 12 24.2631
+873 13 23.7487
+873 14 23.4915
+873 15 22.2912
+873 16 21.0909
+873 17 19.8049
+873 18 18.4331
+873 19 16.8899
+873 20 15.4324
+873 21 12.1744
+873 22  8.5735
+873 23  6.0015
+873 24  4.4582
+873 25  1.9719
+873 26  0.8574
+873 27  0.3429
+873 28  0.0857
+# pixel 874
+874  1  0.6992
+874  2  2.2724
+874  3  6.0305
+874  4 10.8374
+874  5 16.9554
+874  6 20.6261
+874  7 21.7623
+874  8 22.9859
+874  9 24.3843
+874 10 24.9087
+874 11 24.9087
+874 12 24.7339
+874 13 24.2095
+874 14 23.9473
+874 15 22.7237
+874 16 21.5001
+874 17 20.1891
+874 18 18.7907
+874 19 17.2176
+874 20 15.7318
+874 21 12.4106
+874 22  8.7399
+874 23  6.1179
+874 24  4.5447
+874 25  2.0102
+874 26  0.8740
+874 27  0.3496
+874 28  0.0874
+# pixel 875
+875  1  0.6953
+875  2  2.2599
+875  3  5.9974
+875  4 10.7779
+875  5 16.8622
+875  6 20.5128
+875  7 21.6427
+875  8 22.8596
+875  9 24.2503
+875 10 24.7718
+875 11 24.7718
+875 12 24.5980
+875 13 24.0765
+875 14 23.8157
+875 15 22.5988
+875 16 21.3820
+875 17 20.0782
+875 18 18.6875
+875 19 17.1230
+875 20 15.6453
+875 21 12.3424
+875 22  8.6919
+875 23  6.0843
+875 24  4.5198
+875 25  1.9991
+875 26  0.8692
+875 27  0.3477
+875 28  0.0869
+# pixel 876
+876  1  0.7083
+876  2  2.3019
+876  3  6.1088
+876  4 10.9781
+876  5 17.1754
+876  6 20.8938
+876  7 22.0447
+876  8 23.2842
+876  9 24.7007
+876 10 25.2319
+876 11 25.2319
+876 12 25.0548
+876 13 24.5236
+876 14 24.2580
+876 15 23.0186
+876 16 21.7791
+876 17 20.4511
+876 18 19.0346
+876 19 17.4410
+876 20 15.9359
+876 21 12.5717
+876 22  8.8533
+876 23  6.1973
+876 24  4.6037
+876 25  2.0363
+876 26  0.8853
+876 27  0.3541
+876 28  0.0885
+# pixel 877
+877  1  0.8260
+877  2  2.6844
+877  3  7.1241
+877  4 12.8027
+877  5 20.0300
+877  6 24.3664
+877  7 25.7087
+877  8 27.1541
+877  9 28.8061
+877 10 29.4256
+877 11 29.4256
+877 12 29.2191
+877 13 28.5996
+877 14 28.2899
+877 15 26.8444
+877 16 25.3989
+877 17 23.8502
+877 18 22.1982
+877 19 20.3398
+877 20 18.5846
+877 21 14.6612
+877 22 10.3248
+877 23  7.2273
+877 24  5.3689
+877 25  2.3747
+877 26  1.0325
+877 27  0.4130
+877 28  0.1032
+# pixel 878
+878  1  0.7819
+878  2  2.5413
+878  3  6.7442
+878  4 12.1200
+878  5 18.9619
+878  6 23.0671
+878  7 24.3377
+878  8 25.7061
+878  9 27.2700
+878 10 27.8564
+878 11 27.8564
+878 12 27.6609
+878 13 27.0745
+878 14 26.7813
+878 15 25.4129
+878 16 24.0445
+878 17 22.5784
+878 18 21.0145
+878 19 19.2551
+878 20 17.5935
+878 21 13.8793
+878 22  9.7742
+878 23  6.8419
+878 24  5.0826
+878 25  2.2481
+878 26  0.9774
+878 27  0.3910
+878 28  0.0977
+# pixel 879
+879  1  0.5365
+879  2  1.7437
+879  3  4.6275
+879  4  8.3162
+879  5 13.0108
+879  6 15.8276
+879  7 16.6994
+879  8 17.6383
+879  9 18.7114
+879 10 19.1138
+879 11 19.1138
+879 12 18.9797
+879 13 18.5773
+879 14 18.3761
+879 15 17.4371
+879 16 16.4982
+879 17 15.4922
+879 18 14.4192
+879 19 13.2120
+879 20 12.0719
+879 21  9.5234
+879 22  6.7066
+879 23  4.6946
+879 24  3.4874
+879 25  1.5425
+879 26  0.6707
+879 27  0.2683
+879 28  0.0671
+# pixel 880
+880  1  0.7085
+880  2  2.3025
+880  3  6.1104
+880  4 10.9810
+880  5 17.1800
+880  6 20.8994
+880  7 22.0507
+880  8 23.2904
+880  9 24.7074
+880 10 25.2387
+880 11 25.2387
+880 12 25.0616
+880 13 24.5302
+880 14 24.2646
+880 15 23.0248
+880 16 21.7850
+880 17 20.4566
+880 18 19.0397
+880 19 17.4457
+880 20 15.9402
+880 21 12.5751
+880 22  8.8557
+880 23  6.1990
+880 24  4.6050
+880 25  2.0368
+880 26  0.8856
+880 27  0.3542
+880 28  0.0886
+# pixel 881
+881  1  0.6898
+881  2  2.2417
+881  3  5.9491
+881  4 10.6912
+881  5 16.7266
+881  6 20.3478
+881  7 21.4686
+881  8 22.6757
+881  9 24.0552
+881 10 24.5725
+881 11 24.5725
+881 12 24.4001
+881 13 23.8828
+881 14 23.6241
+881 15 22.4171
+881 16 21.2100
+881 17 19.9167
+881 18 18.5372
+881 19 16.9852
+881 20 15.5195
+881 21 12.2432
+881 22  8.6219
+881 23  6.0354
+881 24  4.4834
+881 25  1.9830
+881 26  0.8622
+881 27  0.3449
+881 28  0.0862
+# pixel 882
+882  1  0.7726
+882  2  2.5109
+882  3  6.6635
+882  4 11.9750
+882  5 18.7350
+882  6 22.7911
+882  7 24.0465
+882  8 25.3985
+882  9 26.9437
+882 10 27.5231
+882 11 27.5231
+882 12 27.3300
+882 13 26.7505
+882 14 26.4608
+882 15 25.1088
+882 16 23.7568
+882 17 22.3082
+882 18 20.7631
+882 19 19.0247
+882 20 17.3830
+882 21 13.7133
+882 22  9.6572
+882 23  6.7601
+882 24  5.0218
+882 25  2.2212
+882 26  0.9657
+882 27  0.3863
+882 28  0.0966
+# pixel 883
+883  1  0.7249
+883  2  2.3558
+883  3  6.2520
+883  4 11.2355
+883  5 17.5781
+883  6 21.3837
+883  7 22.5616
+883  8 23.8302
+883  9 25.2799
+883 10 25.8236
+883 11 25.8236
+883 12 25.6423
+883 13 25.0987
+883 14 24.8269
+883 15 23.5583
+883 16 22.2898
+883 17 20.9307
+883 18 19.4809
+883 19 17.8500
+883 20 16.3096
+883 21 12.8665
+883 22  9.0609
+883 23  6.3426
+883 24  4.7117
+883 25  2.0840
+883 26  0.9061
+883 27  0.3624
+883 28  0.0906
+# pixel 884
+884  1  0.7588
+884  2  2.4660
+884  3  6.5445
+884  4 11.7611
+884  5 18.4004
+884  6 22.3840
+884  7 23.6170
+884  8 24.9449
+884  9 26.4625
+884 10 27.0315
+884 11 27.0315
+884 12 26.8419
+884 13 26.2728
+884 14 25.9882
+884 15 24.6604
+884 16 23.3325
+884 17 21.9098
+884 18 20.3922
+884 19 18.6850
+884 20 17.0726
+884 21 13.4683
+884 22  9.4848
+884 23  6.6393
+884 24  4.9321
+884 25  2.1815
+884 26  0.9485
+884 27  0.3794
+884 28  0.0948
+# pixel 885
+885  1  0.7163
+885  2  2.3278
+885  3  6.1777
+885  4 11.1019
+885  5 17.3691
+885  6 21.1294
+885  7 22.2933
+885  8 23.5468
+885  9 24.9793
+885 10 25.5165
+885 11 25.5165
+885 12 25.3374
+885 13 24.8002
+885 14 24.5316
+885 15 23.2782
+885 16 22.0247
+885 17 20.6818
+885 18 19.2493
+885 19 17.6377
+885 20 16.1157
+885 21 12.7135
+885 22  8.9531
+885 23  6.2672
+885 24  4.6556
+885 25  2.0592
+885 26  0.8953
+885 27  0.3581
+885 28  0.0895
+# pixel 886
+886  1  0.7752
+886  2  2.5194
+886  3  6.6861
+886  4 12.0156
+886  5 18.7986
+886  6 22.8683
+886  7 24.1280
+886  8 25.4846
+886  9 27.0350
+886 10 27.6164
+886 11 27.6164
+886 12 27.4226
+886 13 26.8412
+886 14 26.5505
+886 15 25.1939
+886 16 23.8373
+886 17 22.3838
+886 18 20.8334
+886 19 19.0893
+886 20 17.4420
+886 21 13.7598
+886 22  9.6900
+886 23  6.7830
+886 24  5.0388
+886 25  2.2287
+886 26  0.9690
+886 27  0.3876
+886 28  0.0969
+# pixel 887
+887  1  0.7333
+887  2  2.3833
+887  3  6.3248
+887  4 11.3664
+887  5 17.7829
+887  6 21.6328
+887  7 22.8244
+887  8 24.1077
+887  9 25.5744
+887 10 26.1244
+887 11 26.1244
+887 12 25.9410
+887 13 25.3910
+887 14 25.1161
+887 15 23.8328
+887 16 22.5495
+887 17 21.1745
+887 18 19.7079
+887 19 18.0579
+887 20 16.4996
+887 21 13.0164
+887 22  9.1664
+887 23  6.4165
+887 24  4.7666
+887 25  2.1083
+887 26  0.9166
+887 27  0.3667
+887 28  0.0917
+# pixel 888
+888  1  0.7704
+888  2  2.5037
+888  3  6.6445
+888  4 11.9408
+888  5 18.6816
+888  6 22.7260
+888  7 23.9779
+888  8 25.3260
+888  9 26.8668
+888 10 27.4446
+888 11 27.4446
+888 12 27.2520
+888 13 26.6742
+888 14 26.3853
+888 15 25.0371
+888 16 23.6890
+888 17 22.2445
+888 18 20.7038
+888 19 18.9705
+888 20 17.3334
+888 21 13.6741
+888 22  9.6297
+888 23  6.7408
+888 24  5.0074
+888 25  2.2148
+888 26  0.9630
+888 27  0.3852
+888 28  0.0963
+# pixel 889
+889  1  0.7424
+889  2  2.4129
+889  3  6.4035
+889  4 11.5077
+889  5 18.0039
+889  6 21.9017
+889  7 23.1081
+889  8 24.4074
+889  9 25.8922
+889 10 26.4491
+889 11 26.4491
+889 12 26.2635
+889 13 25.7066
+889 14 25.4282
+889 15 24.1290
+889 16 22.8297
+889 17 21.4377
+889 18 19.9528
+889 19 18.2823
+889 20 16.7047
+889 21 13.1781
+889 22  9.2804
+889 23  6.4963
+889 24  4.8258
+889 25  2.1345
+889 26  0.9280
+889 27  0.3712
+889 28  0.0928
+# pixel 890
+890  1  0.7530
+890  2  2.4471
+890  3  6.4943
+890  4 11.6710
+890  5 18.2595
+890  6 22.2126
+890  7 23.4361
+890  8 24.7538
+890  9 26.2598
+890 10 26.8245
+890 11 26.8245
+890 12 26.6362
+890 13 26.0715
+890 14 25.7892
+890 15 24.4715
+890 16 23.1538
+890 17 21.7419
+890 18 20.2360
+890 19 18.5418
+890 20 16.9418
+890 21 13.3652
+890 22  9.4121
+890 23  6.5885
+890 24  4.8943
+890 25  2.1648
+890 26  0.9412
+890 27  0.3765
+890 28  0.0941
+# pixel 891
+891  1  0.7123
+891  2  2.3150
+891  3  6.1438
+891  4 11.0410
+891  5 17.2738
+891  6 21.0135
+891  7 22.1710
+891  8 23.4175
+891  9 24.8422
+891 10 25.3764
+891 11 25.3764
+891 12 25.1983
+891 13 24.6641
+891 14 24.3970
+891 15 23.1504
+891 16 21.9039
+891 17 20.5683
+891 18 19.1436
+891 19 17.5409
+891 20 16.0272
+891 21 12.6437
+891 22  8.9040
+891 23  6.2328
+891 24  4.6301
+891 25  2.0479
+891 26  0.8904
+891 27  0.3562
+891 28  0.0890
+# pixel 892
+892  1  0.7643
+892  2  2.4839
+892  3  6.5920
+892  4 11.8465
+892  5 18.5340
+892  6 22.5465
+892  7 23.7885
+892  8 25.1260
+892  9 26.6546
+892 10 27.2278
+892 11 27.2278
+892 12 27.0367
+892 13 26.4635
+892 14 26.1769
+892 15 24.8394
+892 16 23.5019
+892 17 22.0689
+892 18 20.5403
+892 19 18.8206
+892 20 17.1965
+892 21 13.5661
+892 22  9.5536
+892 23  6.6875
+892 24  4.9679
+892 25  2.1973
+892 26  0.9554
+892 27  0.3821
+892 28  0.0955
+# pixel 893
+893  1  0.7152
+893  2  2.3245
+893  3  6.1689
+893  4 11.0861
+893  5 17.3444
+893  6 21.0994
+893  7 22.2617
+893  8 23.5133
+893  9 24.9438
+893 10 25.4802
+893 11 25.4802
+893 12 25.3014
+893 13 24.7650
+893 14 24.4968
+893 15 23.2451
+893 16 21.9934
+893 17 20.6524
+893 18 19.2219
+893 19 17.6126
+893 20 16.0928
+893 21 12.6954
+893 22  8.9404
+893 23  6.2583
+893 24  4.6490
+893 25  2.0563
+893 26  0.8940
+893 27  0.3576
+893 28  0.0894
+# pixel 894
+894  1  0.7004
+894  2  2.2764
+894  3  6.0413
+894  4 10.8569
+894  5 16.9858
+894  6 20.6631
+894  7 21.8013
+894  8 23.0271
+894  9 24.4280
+894 10 24.9533
+894 11 24.9533
+894 12 24.7782
+894 13 24.2529
+894 14 23.9902
+894 15 22.7644
+894 16 21.5387
+894 17 20.2253
+894 18 18.8244
+894 19 17.2484
+894 20 15.7600
+894 21 12.4329
+894 22  8.7555
+894 23  6.1289
+894 24  4.5529
+894 25  2.0138
+894 26  0.8756
+894 27  0.3502
+894 28  0.0876
+# pixel 895
+895  1  0.6651
+895  2  2.1617
+895  3  5.7367
+895  4 10.3094
+895  5 16.1292
+895  6 19.6211
+895  7 20.7020
+895  8 21.8659
+895  9 23.1962
+895 10 23.6950
+895 11 23.6950
+895 12 23.5287
+895 13 23.0299
+895 14 22.7805
+895 15 21.6165
+895 16 20.4525
+895 17 19.2054
+895 18 17.8752
+895 19 16.3787
+895 20 14.9653
+895 21 11.8059
+895 22  8.3140
+895 23  5.8198
+895 24  4.3233
+895 25  1.9122
+895 26  0.8314
+895 27  0.3326
+895 28  0.0831
+# pixel 896
+896  1  0.7295
+896  2  2.3710
+896  3  6.2923
+896  4 11.3080
+896  5 17.6915
+896  6 21.5216
+896  7 22.7071
+896  8 23.9838
+896  9 25.4429
+896 10 25.9901
+896 11 25.9901
+896 12 25.8077
+896 13 25.2605
+896 14 24.9869
+896 15 23.7102
+896 16 22.4335
+896 17 21.0656
+896 18 19.6065
+896 19 17.9651
+896 20 16.4148
+896 21 12.9494
+896 22  9.1193
+896 23  6.3835
+896 24  4.7420
+896 25  2.0974
+896 26  0.9119
+896 27  0.3648
+896 28  0.0912
+# pixel 897
+897  1  0.7115
+897  2  2.3122
+897  3  6.1363
+897  4 11.0275
+897  5 17.2528
+897  6 20.9879
+897  7 22.1440
+897  8 23.3891
+897  9 24.8120
+897 10 25.3455
+897 11 25.3455
+897 12 25.1677
+897 13 24.6341
+897 14 24.3673
+897 15 23.1223
+897 16 21.8772
+897 17 20.5432
+897 18 19.1203
+897 19 17.5196
+897 20 16.0077
+897 21 12.6283
+897 22  8.8932
+897 23  6.2252
+897 24  4.6245
+897 25  2.0454
+897 26  0.8893
+897 27  0.3557
+897 28  0.0889
+# pixel 898
+898  1  0.7652
+898  2  2.4869
+898  3  6.5998
+898  4 11.8606
+898  5 18.5560
+898  6 22.5733
+898  7 23.8168
+898  8 25.1559
+898  9 26.6863
+898 10 27.2602
+898 11 27.2602
+898 12 27.0689
+898 13 26.4950
+898 14 26.2080
+898 15 24.8689
+898 16 23.5298
+898 17 22.0951
+898 18 20.5647
+898 19 18.8430
+898 20 17.2170
+898 21 13.5823
+898 22  9.5650
+898 23  6.6955
+898 24  4.9738
+898 25  2.1999
+898 26  0.9565
+898 27  0.3826
+898 28  0.0956
+# pixel 899
+899  1  0.6772
+899  2  2.2009
+899  3  5.8409
+899  4 10.4968
+899  5 16.4223
+899  6 19.9777
+899  7 21.0782
+899  8 22.2633
+899  9 23.6177
+899 10 24.1256
+899 11 24.1256
+899 12 23.9563
+899 13 23.4484
+899 14 23.1944
+899 15 22.0093
+899 16 20.8242
+899 17 19.5544
+899 18 18.2000
+899 19 16.6763
+899 20 15.2372
+899 21 12.0205
+899 22  8.4651
+899 23  5.9256
+899 24  4.4019
+899 25  1.9470
+899 26  0.8465
+899 27  0.3386
+899 28  0.0847
+# pixel 900
+900  1  0.7223
+900  2  2.3476
+900  3  6.2302
+900  4 11.1963
+900  5 17.5167
+900  6 21.3090
+900  7 22.4828
+900  8 23.7469
+900  9 25.1916
+900 10 25.7333
+900 11 25.7333
+900 12 25.5527
+900 13 25.0110
+900 14 24.7401
+900 15 23.4760
+900 16 22.2119
+900 17 20.8575
+900 18 19.4129
+900 19 17.7876
+900 20 16.2526
+900 21 12.8215
+900 22  9.0292
+900 23  6.3205
+900 24  4.6952
+900 25  2.0767
+900 26  0.9029
+900 27  0.3612
+900 28  0.0903
+# pixel 901
+901  1  0.6949
+901  2  2.2583
+901  3  5.9931
+901  4 10.7703
+901  5 16.8502
+901  6 20.4982
+901  7 21.6274
+901  8 22.8434
+901  9 24.2331
+901 10 24.7542
+901 11 24.7542
+901 12 24.5805
+901 13 24.0594
+901 14 23.7988
+901 15 22.5828
+901 16 21.3668
+901 17 20.0639
+901 18 18.6742
+901 19 17.1108
+901 20 15.6342
+901 21 12.3337
+901 22  8.6857
+901 23  6.0800
+901 24  4.5166
+901 25  1.9977
+901 26  0.8686
+901 27  0.3474
+901 28  0.0869
+# pixel 902
+902  1  0.6966
+902  2  2.2640
+902  3  6.0082
+902  4 10.7974
+902  5 16.8927
+902  6 20.5499
+902  7 21.6819
+902  8 22.9010
+902  9 24.2942
+902 10 24.8167
+902 11 24.8167
+902 12 24.6425
+902 13 24.1201
+902 14 23.8588
+902 15 22.6398
+902 16 21.4207
+902 17 20.1146
+902 18 18.7213
+902 19 17.1540
+902 20 15.6737
+902 21 12.3648
+902 22  8.7076
+902 23  6.0953
+902 24  4.5280
+902 25  2.0027
+902 26  0.8708
+902 27  0.3483
+902 28  0.0871
+# pixel 903
+903  1  0.6655
+903  2  2.1628
+903  3  5.7397
+903  4 10.3148
+903  5 16.1377
+903  6 19.6314
+903  7 20.7128
+903  8 21.8774
+903  9 23.2083
+903 10 23.7074
+903 11 23.7074
+903 12 23.5411
+903 13 23.0420
+903 14 22.7924
+903 15 21.6278
+903 16 20.4633
+903 17 19.2155
+903 18 17.8846
+903 19 16.3872
+903 20 14.9731
+903 21 11.8121
+903 22  8.3184
+903 23  5.8229
+903 24  4.3256
+903 25  1.9132
+903 26  0.8318
+903 27  0.3327
+903 28  0.0832
+# pixel 904
+904  1  0.7860
+904  2  2.5546
+904  3  6.7795
+904  4 12.1835
+904  5 19.0613
+904  6 23.1880
+904  7 24.4653
+904  8 25.8408
+904  9 27.4129
+904 10 28.0024
+904 11 28.0024
+904 12 27.8059
+904 13 27.2164
+904 14 26.9216
+904 15 25.5461
+904 16 24.1705
+904 17 22.6967
+904 18 21.1246
+904 19 19.3561
+904 20 17.6857
+904 21 13.9521
+904 22  9.8254
+904 23  6.8778
+904 24  5.1092
+904 25  2.2598
+904 26  0.9825
+904 27  0.3930
+904 28  0.0983
+# pixel 905
+905  1  0.7099
+905  2  2.3070
+905  3  6.1226
+905  4 11.0028
+905  5 17.2141
+905  6 20.9409
+905  7 22.0944
+905  8 23.3367
+905  9 24.7564
+905 10 25.2888
+905 11 25.2888
+905 12 25.1113
+905 13 24.5789
+905 14 24.3127
+905 15 23.0705
+905 16 21.8282
+905 17 20.4972
+905 18 19.0775
+905 19 17.4803
+905 20 15.9719
+905 21 12.6000
+905 22  8.8733
+905 23  6.2113
+905 24  4.6141
+905 25  2.0409
+905 26  0.8873
+905 27  0.3549
+905 28  0.0887
+# pixel 906
+906  1  0.8000
+906  2  2.6000
+906  3  6.9001
+906  4 12.4001
+906  5 19.4002
+906  6 23.6002
+906  7 24.9002
+906  8 26.3002
+906  9 27.9002
+906 10 28.5002
+906 11 28.5002
+906 12 28.3002
+906 13 27.7002
+906 14 27.4002
+906 15 26.0002
+906 16 24.6002
+906 17 23.1002
+906 18 21.5002
+906 19 19.7002
+906 20 18.0002
+906 21 14.2001
+906 22 10.0001
+906 23  7.0001
+906 24  5.2000
+906 25  2.3000
+906 26  1.0000
+906 27  0.4000
+906 28  0.1000
+# pixel 907
+907  1  0.6847
+907  2  2.2253
+907  3  5.9056
+907  4 10.6129
+907  5 16.6041
+907  6 20.1988
+907  7 21.3115
+907  8 22.5097
+907  9 23.8791
+907 10 24.3926
+907 11 24.3926
+907 12 24.2215
+907 13 23.7079
+907 14 23.4512
+907 15 22.2529
+907 16 21.0547
+907 17 19.7709
+907 18 18.4015
+907 19 16.8609
+907 20 15.4059
+907 21 12.1535
+907 22  8.5588
+907 23  5.9912
+907 24  4.4506
+907 25  1.9685
+907 26  0.8559
+907 27  0.3424
+907 28  0.0856
+# pixel 908
+908  1  0.7030
+908  2  2.2847
+908  3  6.0634
+908  4 10.8965
+908  5 17.0477
+908  6 20.7385
+908  7 21.8808
+908  8 23.1111
+908  9 24.5171
+908 10 25.0443
+908 11 25.0443
+908 12 24.8686
+908 13 24.3413
+908 14 24.0777
+908 15 22.8474
+908 16 21.6172
+908 17 20.2991
+908 18 18.8931
+908 19 17.3113
+908 20 15.8175
+908 21 12.4782
+908 22  8.7875
+908 23  6.1512
+908 24  4.5695
+908 25  2.0211
+908 26  0.8787
+908 27  0.3515
+908 28  0.0879
+# pixel 909
+909  1  0.7824
+909  2  2.5427
+909  3  6.7479
+909  4 12.1268
+909  5 18.9725
+909  6 23.0799
+909  7 24.3513
+909  8 25.7204
+909  9 27.2852
+909 10 27.8720
+909 11 27.8720
+909 12 27.6764
+909 13 27.0896
+909 14 26.7962
+909 15 25.4271
+909 16 24.0579
+909 17 22.5910
+909 18 21.0262
+909 19 19.2659
+909 20 17.6033
+909 21 13.8871
+909 22  9.7796
+909 23  6.8457
+909 24  5.0854
+909 25  2.2493
+909 26  0.9780
+909 27  0.3912
+909 28  0.0978
+# pixel 910
+910  1  0.7481
+910  2  2.4314
+910  3  6.4525
+910  4 11.5959
+910  5 18.1419
+910  6 22.0695
+910  7 23.2852
+910  8 24.5944
+910  9 26.0907
+910 10 26.6518
+910 11 26.6518
+910 12 26.4647
+910 13 25.9036
+910 14 25.6231
+910 15 24.3139
+910 16 23.0047
+910 17 21.6020
+910 18 20.1057
+910 19 18.4224
+910 20 16.8327
+910 21 13.2791
+910 22  9.3515
+910 23  6.5460
+910 24  4.8628
+910 25  2.1508
+910 26  0.9351
+910 27  0.3741
+910 28  0.0935
+# pixel 911
+911  1  0.6772
+911  2  2.2008
+911  3  5.8407
+911  4 10.4963
+911  5 16.4217
+911  6 19.9769
+911  7 21.0773
+911  8 22.2624
+911  9 23.6167
+911 10 24.1246
+911 11 24.1246
+911 12 23.9553
+911 13 23.4474
+911 14 23.1935
+911 15 22.0084
+911 16 20.8233
+911 17 19.5536
+911 18 18.1993
+911 19 16.6756
+911 20 15.2366
+911 21 12.0200
+911 22  8.4648
+911 23  5.9253
+911 24  4.4017
+911 25  1.9469
+911 26  0.8465
+911 27  0.3386
+911 28  0.0846
+# pixel 912
+912  1  0.7826
+912  2  2.5436
+912  3  6.7503
+912  4 12.1310
+912  5 18.9791
+912  6 23.0879
+912  7 24.3597
+912  8 25.7294
+912  9 27.2946
+912 10 27.8816
+912 11 27.8816
+912 12 27.6860
+912 13 27.0990
+912 14 26.8055
+912 15 25.4359
+912 16 24.0662
+912 17 22.5988
+912 18 21.0335
+912 19 19.2726
+912 20 17.6094
+912 21 13.8919
+912 22  9.7830
+912 23  6.8481
+912 24  5.0872
+912 25  2.2501
+912 26  0.9783
+912 27  0.3913
+912 28  0.0978
+# pixel 913
+913  1  0.6753
+913  2  2.1949
+913  3  5.8249
+913  4 10.4679
+913  5 16.3772
+913  6 19.9227
+913  7 21.0202
+913  8 22.2020
+913  9 23.5527
+913 10 24.0592
+913 11 24.0592
+913 12 23.8904
+913 13 23.3839
+913 14 23.1306
+913 15 21.9488
+913 16 20.7669
+913 17 19.5007
+913 18 18.1500
+913 19 16.6304
+913 20 15.1953
+913 21 11.9874
+913 22  8.4418
+913 23  5.9093
+913 24  4.3898
+913 25  1.9416
+913 26  0.8442
+913 27  0.3377
+913 28  0.0844
+# pixel 914
+914  1  0.7144
+914  2  2.3217
+914  3  6.1614
+914  4 11.0726
+914  5 17.3232
+914  6 21.0736
+914  7 22.2345
+914  8 23.4846
+914  9 24.9133
+914 10 25.4491
+914 11 25.4491
+914 12 25.2705
+914 13 24.7347
+914 14 24.4668
+914 15 23.2167
+914 16 21.9666
+914 17 20.6271
+914 18 19.1984
+914 19 17.5911
+914 20 16.0731
+914 21 12.6799
+914 22  8.9295
+914 23  6.2506
+914 24  4.6433
+914 25  2.0538
+914 26  0.8929
+914 27  0.3572
+914 28  0.0893
+# pixel 915
+915  1  0.8086
+915  2  2.6281
+915  3  6.9746
+915  4 12.5340
+915  5 19.6096
+915  6 23.8550
+915  7 25.1691
+915  8 26.5842
+915  9 28.2015
+915 10 28.8080
+915 11 28.8080
+915 12 28.6058
+915 13 27.9993
+915 14 27.6961
+915 15 26.2810
+915 16 24.8658
+915 17 23.3496
+915 18 21.7323
+915 19 19.9129
+915 20 18.1945
+915 21 14.3535
+915 22 10.1081
+915 23  7.0756
+915 24  5.2562
+915 25  2.3249
+915 26  1.0108
+915 27  0.4043
+915 28  0.1011
+# pixel 916
+916  1  0.6598
+916  2  2.1444
+916  3  5.6909
+916  4 10.2271
+916  5 16.0005
+916  6 19.4645
+916  7 20.5367
+916  8 21.6914
+916  9 23.0110
+916 10 23.5059
+916 11 23.5059
+916 12 23.3409
+916 13 22.8461
+916 14 22.5986
+916 15 21.4440
+916 16 20.2893
+916 17 19.0521
+916 18 17.7325
+916 19 16.2479
+916 20 14.8458
+916 21 11.7117
+916 22  8.2477
+916 23  5.7734
+916 24  4.2888
+916 25  1.8970
+916 26  0.8248
+916 27  0.3299
+916 28  0.0825
+# pixel 917
+917  1  0.7524
+917  2  2.4454
+917  3  6.4897
+917  4 11.6626
+917  5 18.2464
+917  6 22.1967
+917  7 23.4194
+917  8 24.7361
+917  9 26.2410
+917 10 26.8053
+917 11 26.8053
+917 12 26.6172
+917 13 26.0529
+917 14 25.7707
+917 15 24.4539
+917 16 23.1372
+917 17 21.7264
+917 18 20.2215
+917 19 18.5286
+917 20 16.9297
+917 21 13.3556
+917 22  9.4054
+917 23  6.5838
+917 24  4.8908
+917 25  2.1632
+917 26  0.9405
+917 27  0.3762
+917 28  0.0941
+# pixel 918
+918  1  0.6810
+918  2  2.2131
+918  3  5.8733
+918  4 10.5550
+918  5 16.5135
+918  6 20.0885
+918  7 21.1951
+918  8 22.3868
+918  9 23.7487
+918 10 24.2595
+918 11 24.2595
+918 12 24.0892
+918 13 23.5785
+918 14 23.3231
+918 15 22.1314
+918 16 20.9397
+918 17 19.6629
+918 18 18.3010
+918 19 16.7688
+918 20 15.3218
+918 21 12.0872
+918 22  8.5121
+918 23  5.9585
+918 24  4.4263
+918 25  1.9578
+918 26  0.8512
+918 27  0.3405
+918 28  0.0851
+# pixel 919
+919  1  0.7363
+919  2  2.3929
+919  3  6.3504
+919  4 11.4123
+919  5 17.8547
+919  6 21.7201
+919  7 22.9166
+919  8 24.2050
+919  9 25.6776
+919 10 26.2298
+919 11 26.2298
+919 12 26.0457
+919 13 25.4935
+919 14 25.2174
+919 15 23.9289
+919 16 22.6405
+919 17 21.2599
+919 18 19.7874
+919 19 18.1308
+919 20 16.5662
+919 21 13.0689
+919 22  9.2034
+919 23  6.4424
+919 24  4.7858
+919 25  2.1168
+919 26  0.9203
+919 27  0.3681
+919 28  0.0920
+# pixel 920
+920  1  0.7127
+920  2  2.3162
+920  3  6.1469
+920  4 11.0466
+920  5 17.2825
+920  6 21.0241
+920  7 22.1822
+920  8 23.4294
+920  9 24.8547
+920 10 25.3893
+920 11 25.3893
+920 12 25.2111
+920 13 24.6766
+920 14 24.4093
+920 15 23.1621
+920 16 21.9149
+920 17 20.5787
+920 18 19.1533
+920 19 17.5498
+920 20 16.0353
+920 21 12.6501
+920 22  8.9085
+920 23  6.2360
+920 24  4.6324
+920 25  2.0490
+920 26  0.8909
+920 27  0.3563
+920 28  0.0891
+# pixel 921
+921  1  0.8365
+921  2  2.7186
+921  3  7.2148
+921  4 12.9657
+921  5 20.2851
+921  6 24.6767
+921  7 26.0360
+921  8 27.4999
+921  9 29.1729
+921 10 29.8002
+921 11 29.8002
+921 12 29.5911
+921 13 28.9637
+921 14 28.6501
+921 15 27.1862
+921 16 25.7223
+921 17 24.1539
+921 18 22.4809
+921 19 20.5988
+921 20 18.8212
+921 21 14.8478
+921 22 10.4562
+921 23  7.3194
+921 24  5.4372
+921 25  2.4049
+921 26  1.0456
+921 27  0.4182
+921 28  0.1046
+# pixel 922
+922  1  0.6919
+922  2  2.2487
+922  3  5.9678
+922  4 10.7247
+922  5 16.7789
+922  6 20.4115
+922  7 21.5358
+922  8 22.7467
+922  9 24.1305
+922 10 24.6494
+922 11 24.6494
+922 12 24.4765
+922 13 23.9575
+922 14 23.6981
+922 15 22.4872
+922 16 21.2764
+922 17 19.9790
+922 18 18.5952
+922 19 17.0384
+922 20 15.5681
+922 21 12.2815
+922 22  8.6489
+922 23  6.0542
+922 24  4.4974
+922 25  1.9893
+922 26  0.8649
+922 27  0.3460
+922 28  0.0865
+# pixel 923
+923  1  0.7109
+923  2  2.3105
+923  3  6.1318
+923  4 11.0194
+923  5 17.2401
+923  6 20.9725
+923  7 22.1278
+923  8 23.3719
+923  9 24.7938
+923 10 25.3270
+923 11 25.3270
+923 12 25.1492
+923 13 24.6160
+923 14 24.3494
+923 15 23.1053
+923 16 21.8612
+923 17 20.5282
+923 18 19.1063
+923 19 17.5067
+923 20 15.9960
+923 21 12.6190
+923 22  8.8866
+923 23  6.2207
+923 24  4.6211
+923 25  2.0439
+923 26  0.8887
+923 27  0.3555
+923 28  0.0889
+# pixel 924
+924  1  0.6389
+924  2  2.0765
+924  3  5.5108
+924  4  9.9034
+924  5 15.4941
+924  6 18.8485
+924  7 19.8868
+924  8 21.0049
+924  9 22.2828
+924 10 22.7620
+924 11 22.7620
+924 12 22.6022
+924 13 22.1230
+924 14 21.8834
+924 15 20.7653
+924 16 19.6472
+924 17 18.4492
+924 18 17.1713
+924 19 15.7337
+924 20 14.3760
+924 21 11.3410
+924 22  7.9866
+924 23  5.5907
+924 24  4.1531
+924 25  1.8369
+924 26  0.7987
+924 27  0.3195
+924 28  0.0799
+# pixel 925
+925  1  0.7696
+925  2  2.5011
+925  3  6.6374
+925  4 11.9282
+925  5 18.6618
+925  6 22.7020
+925  7 23.9525
+925  8 25.2992
+925  9 26.8383
+925 10 27.4155
+925 11 27.4155
+925 12 27.2231
+925 13 26.6460
+925 14 26.3574
+925 15 25.0106
+925 16 23.6639
+925 17 22.2210
+925 18 20.6819
+925 19 18.9504
+925 20 17.3151
+925 21 13.6597
+925 22  9.6195
+925 23  6.7336
+925 24  5.0021
+925 25  2.2125
+925 26  0.9619
+925 27  0.3848
+925 28  0.0962
+# pixel 926
+926  1  0.7442
+926  2  2.4185
+926  3  6.4184
+926  4 11.5346
+926  5 18.0460
+926  6 21.9529
+926  7 23.1621
+926  8 24.4644
+926  9 25.9528
+926 10 26.5109
+926 11 26.5109
+926 12 26.3248
+926 13 25.7667
+926 14 25.4877
+926 15 24.1854
+926 16 22.8831
+926 17 21.4878
+926 18 19.9994
+926 19 18.3251
+926 20 16.7437
+926 21 13.2089
+926 22  9.3021
+926 23  6.5114
+926 24  4.8371
+926 25  2.1395
+926 26  0.9302
+926 27  0.3721
+926 28  0.0930
+# pixel 927
+927  1  0.6689
+927  2  2.1739
+927  3  5.7693
+927  4 10.3681
+927  5 16.2210
+927  6 19.7327
+927  7 20.8197
+927  8 21.9903
+927  9 23.3281
+927 10 23.8298
+927 11 23.8298
+927 12 23.6626
+927 13 23.1609
+927 14 22.9101
+927 15 21.7395
+927 16 20.5689
+927 17 19.3147
+927 18 17.9769
+927 19 16.4718
+927 20 15.0504
+927 21 11.8731
+927 22  8.3613
+927 23  5.8529
+927 24  4.3479
+927 25  1.9231
+927 26  0.8361
+927 27  0.3345
+927 28  0.0836
+# pixel 928
+928  1  0.8095
+928  2  2.6308
+928  3  6.9817
+928  4 12.5468
+928  5 19.6296
+928  6 23.8793
+928  7 25.1947
+928  8 26.6113
+928  9 28.2302
+928 10 28.8373
+928 11 28.8373
+928 12 28.6349
+928 13 28.0278
+928 14 27.7243
+928 15 26.3077
+928 16 24.8911
+928 17 23.3734
+928 18 21.7545
+928 19 19.9332
+928 20 18.2130
+928 21 14.3681
+928 22 10.1184
+928 23  7.0828
+928 24  5.2615
+928 25  2.3272
+928 26  1.0118
+928 27  0.4047
+928 28  0.1012
+# pixel 929
+929  1  0.6395
+929  2  2.0784
+929  3  5.5157
+929  4  9.9122
+929  5 15.5078
+929  6 18.8652
+929  7 19.9044
+929  8 21.0235
+929  9 22.3025
+929 10 22.7821
+929 11 22.7821
+929 12 22.6222
+929 13 22.1426
+929 14 21.9028
+929 15 20.7837
+929 16 19.6645
+929 17 18.4655
+929 18 17.1865
+929 19 15.7476
+929 20 14.3887
+929 21 11.3511
+929 22  7.9937
+929 23  5.5956
+929 24  4.1567
+929 25  1.8386
+929 26  0.7994
+929 27  0.3197
+929 28  0.0799
+# pixel 930
+930  1  0.7759
+930  2  2.5217
+930  3  6.6923
+930  4 12.0267
+930  5 18.8159
+930  6 22.8895
+930  7 24.1504
+930  8 25.5082
+930  9 27.0600
+930 10 27.6420
+930 11 27.6420
+930 12 27.4480
+930 13 26.8661
+930 14 26.5751
+930 15 25.2172
+930 16 23.8594
+930 17 22.4046
+930 18 20.8527
+930 19 19.1069
+930 20 17.4581
+930 21 13.7725
+930 22  9.6989
+930 23  6.7893
+930 24  5.0434
+930 25  2.2308
+930 26  0.9699
+930 27  0.3880
+930 28  0.0970
+# pixel 931
+931  1  0.7142
+931  2  2.3212
+931  3  6.1602
+931  4 11.0705
+931  5 17.3201
+931  6 21.0698
+931  7 22.2304
+931  8 23.4803
+931  9 24.9087
+931 10 25.4444
+931 11 25.4444
+931 12 25.2658
+931 13 24.7302
+931 14 24.4623
+931 15 23.2124
+931 16 21.9625
+931 17 20.6234
+931 18 19.1949
+931 19 17.5879
+931 20 16.0701
+931 21 12.6776
+931 22  8.9279
+931 23  6.2495
+931 24  4.6425
+931 25  2.0534
+931 26  0.8928
+931 27  0.3571
+931 28  0.0893
+# pixel 932
+932  1  0.7715
+932  2  2.5073
+932  3  6.6541
+932  4 11.9581
+932  5 18.7087
+932  6 22.7590
+932  7 24.0127
+932  8 25.3628
+932  9 26.9058
+932 10 27.4844
+932 11 27.4844
+932 12 27.2915
+932 13 26.7129
+932 14 26.4236
+932 15 25.0735
+932 16 23.7234
+932 17 22.2768
+932 18 20.7338
+932 19 18.9980
+932 20 17.3586
+932 21 13.6940
+932 22  9.6436
+932 23  6.7505
+932 24  5.0147
+932 25  2.2180
+932 26  0.9644
+932 27  0.3857
+932 28  0.0964
+# pixel 933
+933  1  0.7750
+933  2  2.5189
+933  3  6.6848
+933  4 12.0132
+933  5 18.7949
+933  6 22.8638
+933  7 24.1233
+933  8 25.4796
+933  9 27.0297
+933 10 27.6110
+933 11 27.6110
+933 12 27.4172
+933 13 26.8359
+933 14 26.5453
+933 15 25.1890
+933 16 23.8326
+933 17 22.3794
+933 18 20.8293
+933 19 19.0855
+933 20 17.4385
+933 21 13.7571
+933 22  9.6881
+933 23  6.7816
+933 24  5.0378
+933 25  2.2283
+933 26  0.9688
+933 27  0.3875
+933 28  0.0969
+# pixel 934
+934  1  0.8769
+934  2  2.8501
+934  3  7.5636
+934  4 13.5926
+934  5 21.2658
+934  6 25.8698
+934  7 27.2948
+934  8 28.8294
+934  9 30.5833
+934 10 31.2410
+934 11 31.2410
+934 12 31.0218
+934 13 30.3641
+934 14 30.0352
+934 15 28.5006
+934 16 26.9659
+934 17 25.3217
+934 18 23.5678
+934 19 21.5947
+934 20 19.7312
+934 21 15.5657
+934 22 10.9618
+934 23  7.6732
+934 24  5.7001
+934 25  2.5212
+934 26  1.0962
+934 27  0.4385
+934 28  0.1096
+# pixel 935
+935  1  0.7109
+935  2  2.3103
+935  3  6.1313
+935  4 11.0186
+935  5 17.2387
+935  6 20.9708
+935  7 22.1260
+935  8 23.3700
+935  9 24.7918
+935 10 25.3249
+935 11 25.3249
+935 12 25.1472
+935 13 24.6141
+935 14 24.3475
+935 15 23.1035
+935 16 21.8594
+935 17 20.5265
+935 18 19.1048
+935 19 17.5053
+935 20 15.9947
+935 21 12.6180
+935 22  8.8859
+935 23  6.2202
+935 24  4.6207
+935 25  2.0438
+935 26  0.8886
+935 27  0.3554
+935 28  0.0889
+# pixel 936
+936  1  0.6670
+936  2  2.1678
+936  3  5.7529
+936  4 10.3386
+936  5 16.1749
+936  6 19.6767
+936  7 20.7606
+936  8 21.9278
+936  9 23.2618
+936 10 23.7621
+936 11 23.7621
+936 12 23.5953
+936 13 23.0951
+936 14 22.8450
+936 15 21.6777
+936 16 20.5104
+936 17 19.2598
+936 18 17.9258
+936 19 16.4250
+936 20 15.0076
+936 21 11.8394
+936 22  8.3376
+936 23  5.8363
+936 24  4.3355
+936 25  1.9176
+936 26  0.8338
+936 27  0.3335
+936 28  0.0834
+# pixel 937
+937  1  0.6560
+937  2  2.1321
+937  3  5.6583
+937  4 10.1685
+937  5 15.9088
+937  6 19.3530
+937  7 20.4190
+937  8 21.5671
+937  9 22.8791
+937 10 23.3712
+937 11 23.3712
+937 12 23.2072
+937 13 22.7151
+937 14 22.4691
+937 15 21.3211
+937 16 20.1730
+937 17 18.9429
+937 18 17.6309
+937 19 16.1548
+937 20 14.7607
+937 21 11.6446
+937 22  8.2004
+937 23  5.7403
+937 24  4.2642
+937 25  1.8861
+937 26  0.8200
+937 27  0.3280
+937 28  0.0820
+# pixel 938
+938  1  0.7425
+938  2  2.4131
+938  3  6.4041
+938  4 11.5088
+938  5 18.0057
+938  6 21.9038
+938  7 23.1104
+938  8 24.4098
+938  9 25.8948
+938 10 26.4516
+938 11 26.4516
+938 12 26.2660
+938 13 25.7091
+938 14 25.4307
+938 15 24.1313
+938 16 22.8319
+938 17 21.4397
+938 18 19.9547
+938 19 18.2841
+938 20 16.7063
+938 21 13.1794
+938 22  9.2813
+938 23  6.4969
+938 24  4.8263
+938 25  2.1347
+938 26  0.9281
+938 27  0.3713
+938 28  0.0928
+# pixel 939
+939  1  0.8056
+939  2  2.6182
+939  3  6.9484
+939  4 12.4870
+939  5 19.5361
+939  6 23.7655
+939  7 25.0746
+939  8 26.4844
+939  9 28.0957
+939 10 28.6999
+939 11 28.6999
+939 12 28.4985
+939 13 27.8943
+939 14 27.5922
+939 15 26.1823
+939 16 24.7725
+939 17 23.2620
+939 18 21.6508
+939 19 19.8382
+939 20 18.1262
+939 21 14.2996
+939 22 10.0701
+939 23  7.0491
+939 24  5.2365
+939 25  2.3161
+939 26  1.0070
+939 27  0.4028
+939 28  0.1007
+# pixel 940
+940  1  0.7308
+940  2  2.3751
+940  3  6.3030
+940  4 11.3272
+940  5 17.7215
+940  6 21.5582
+940  7 22.7457
+940  8 24.0245
+940  9 25.4861
+940 10 26.0342
+940 11 26.0342
+940 12 25.8515
+940 13 25.3034
+940 14 25.0294
+940 15 23.7505
+940 16 22.4716
+940 17 21.1014
+940 18 19.6398
+940 19 17.9956
+940 20 16.4427
+940 21 12.9714
+940 22  9.1348
+940 23  6.3944
+940 24  4.7501
+940 25  2.1010
+940 26  0.9135
+940 27  0.3654
+940 28  0.0913
+# pixel 941
+941  1  0.6962
+941  2  2.2625
+941  3  6.0043
+941  4 10.7903
+941  5 16.8817
+941  6 20.5365
+941  7 21.6677
+941  8 22.8860
+941  9 24.2783
+941 10 24.8004
+941 11 24.8004
+941 12 24.6264
+941 13 24.1042
+941 14 23.8432
+941 15 22.6249
+941 16 21.4067
+941 17 20.1014
+941 18 18.7091
+941 19 17.1427
+941 20 15.6634
+941 21 12.3567
+941 22  8.7019
+941 23  6.0913
+941 24  4.5250
+941 25  2.0014
+941 26  0.8702
+941 27  0.3481
+941 28  0.0870
+# pixel 942
+942  1  0.7629
+942  2  2.4795
+942  3  6.5802
+942  4 11.8253
+942  5 18.5009
+942  6 22.5062
+942  7 23.7460
+942  8 25.0811
+942  9 26.6069
+942 10 27.1791
+942 11 27.1791
+942 12 26.9884
+942 13 26.4162
+942 14 26.1301
+942 15 24.7950
+942 16 23.4599
+942 17 22.0294
+942 18 20.5036
+942 19 18.7870
+942 20 17.1658
+942 21 13.5419
+942 22  9.5365
+942 23  6.6756
+942 24  4.9590
+942 25  2.1934
+942 26  0.9537
+942 27  0.3815
+942 28  0.0954
+# pixel 943
+943  1  0.7459
+943  2  2.4241
+943  3  6.4333
+943  4 11.5613
+943  5 18.0878
+943  6 22.0037
+943  7 23.2158
+943  8 24.5211
+943  9 26.0129
+943 10 26.5723
+943 11 26.5723
+943 12 26.3858
+943 13 25.8264
+943 14 25.5467
+943 15 24.2414
+943 16 22.9361
+943 17 21.5376
+943 18 20.0458
+943 19 18.3675
+943 20 16.7825
+943 21 13.2395
+943 22  9.3236
+943 23  6.5265
+943 24  4.8483
+943 25  2.1444
+943 26  0.9324
+943 27  0.3729
+943 28  0.0932
+# pixel 944
+944  1  0.6564
+944  2  2.1334
+944  3  5.6618
+944  4 10.1749
+944  5 15.9188
+944  6 19.3651
+944  7 20.4319
+944  8 21.5806
+944  9 22.8935
+944 10 23.3859
+944 11 23.3859
+944 12 23.2217
+944 13 22.7294
+944 14 22.4832
+944 15 21.3345
+944 16 20.1857
+944 17 18.9549
+944 18 17.6420
+944 19 16.1650
+944 20 14.7700
+944 21 11.6519
+944 22  8.2056
+944 23  5.7439
+944 24  4.2669
+944 25  1.8873
+944 26  0.8206
+944 27  0.3282
+944 28  0.0821
+# pixel 945
+945  1  0.6911
+945  2  2.2462
+945  3  5.9611
+945  4 10.7127
+945  5 16.7601
+945  6 20.3886
+945  7 21.5117
+945  8 22.7212
+945  9 24.1035
+945 10 24.6218
+945 11 24.6218
+945 12 24.4490
+945 13 23.9307
+945 14 23.6715
+945 15 22.4620
+945 16 21.2525
+945 17 19.9566
+945 18 18.5744
+945 19 17.0193
+945 20 15.5506
+945 21 12.2677
+945 22  8.6392
+945 23  6.0475
+945 24  4.4924
+945 25  1.9870
+945 26  0.8639
+945 27  0.3456
+945 28  0.0864
+# pixel 946
+946  1  0.7025
+946  2  2.2831
+946  3  6.0589
+946  4 10.8885
+946  5 17.0352
+946  6 20.7232
+946  7 21.8648
+946  8 23.0941
+946  9 24.4991
+946 10 25.0259
+946 11 25.0259
+946 12 24.8503
+946 13 24.3234
+946 14 24.0600
+946 15 22.8307
+946 16 21.6013
+946 17 20.2842
+946 18 18.8792
+946 19 17.2986
+946 20 15.8059
+946 21 12.4691
+946 22  8.7810
+946 23  6.1467
+946 24  4.5661
+946 25  2.0196
+946 26  0.8781
+946 27  0.3512
+946 28  0.0878
+# pixel 947
+947  1  0.7222
+947  2  2.3471
+947  3  6.2288
+947  4 11.1937
+947  5 17.5128
+947  6 21.3042
+947  7 22.4778
+947  8 23.7416
+947  9 25.1859
+947 10 25.7276
+947 11 25.7276
+947 12 25.5470
+947 13 25.0054
+947 14 24.7346
+947 15 23.4708
+947 16 22.2070
+947 17 20.8529
+947 18 19.4085
+947 19 17.7836
+947 20 16.2490
+947 21 12.8186
+947 22  9.0272
+947 23  6.3191
+947 24  4.6942
+947 25  2.0763
+947 26  0.9027
+947 27  0.3611
+947 28  0.0903
+# pixel 948
+948  1  0.7360
+948  2  2.3920
+948  3  6.3481
+948  4 11.4082
+948  5 17.8483
+948  6 21.7123
+948  7 22.9083
+948  8 24.1963
+948  9 25.6684
+948 10 26.2204
+948 11 26.2204
+948 12 26.0364
+948 13 25.4844
+948 14 25.2084
+948 15 23.9203
+948 16 22.6323
+948 17 21.2523
+948 18 19.7803
+948 19 18.1243
+948 20 16.5602
+948 21 13.0642
+948 22  9.2001
+948 23  6.4401
+948 24  4.7841
+948 25  2.1160
+948 26  0.9200
+948 27  0.3680
+948 28  0.0920
+# pixel 949
+949  1  0.8224
+949  2  2.6730
+949  3  7.0936
+949  4 12.7480
+949  5 19.9444
+949  6 24.2623
+949  7 25.5987
+949  8 27.0380
+949  9 28.6829
+949 10 29.2998
+949 11 29.2998
+949 12 29.0942
+949 13 28.4773
+949 14 28.1689
+949 15 26.7296
+949 16 25.2903
+949 17 23.7482
+949 18 22.1033
+949 19 20.2528
+949 20 18.5051
+949 21 14.5985
+949 22 10.2806
+949 23  7.1964
+949 24  5.3459
+949 25  2.3645
+949 26  1.0281
+949 27  0.4112
+949 28  0.1028
+# pixel 950
+950  1  0.8275
+950  2  2.6895
+950  3  7.1375
+950  4 12.8268
+950  5 20.0677
+950  6 24.4122
+950  7 25.7569
+950  8 27.2051
+950  9 28.8602
+950 10 29.4808
+950 11 29.4808
+950 12 29.2740
+950 13 28.6533
+950 14 28.3430
+950 15 26.8948
+950 16 25.4466
+950 17 23.8950
+950 18 22.2399
+950 19 20.3780
+950 20 18.6195
+950 21 14.6887
+950 22 10.3442
+950 23  7.2409
+950 24  5.3790
+950 25  2.3792
+950 26  1.0344
+950 27  0.4138
+950 28  0.1034
+# pixel 951
+951  1  0.7387
+951  2  2.4009
+951  3  6.3717
+951  4 11.4506
+951  5 17.9146
+951  6 21.7930
+951  7 22.9934
+951  8 24.2863
+951  9 25.7637
+951 10 26.3178
+951 11 26.3178
+951 12 26.1331
+951 13 25.5791
+951 14 25.3020
+951 15 24.0092
+951 16 22.7164
+951 17 21.3313
+951 18 19.8538
+951 19 18.1916
+951 20 16.6218
+951 21 13.1127
+951 22  9.2343
+951 23  6.4640
+951 24  4.8018
+951 25  2.1239
+951 26  0.9234
+951 27  0.3694
+951 28  0.0923
+# pixel 952
+952  1  0.5776
+952  2  1.8773
+952  3  4.9821
+952  4  8.9533
+952  5 14.0076
+952  6 17.0401
+952  7 17.9788
+952  8 18.9896
+952  9 20.1449
+952 10 20.5781
+952 11 20.5781
+952 12 20.4337
+952 13 20.0005
+952 14 19.7839
+952 15 18.7730
+952 16 17.7622
+952 17 16.6791
+952 18 15.5239
+952 19 14.2242
+952 20 12.9967
+952 21 10.2530
+952 22  7.2204
+952 23  5.0543
+952 24  3.7546
+952 25  1.6607
+952 26  0.7220
+952 27  0.2888
+952 28  0.0722
+# pixel 953
+953  1  0.7475
+953  2  2.4293
+953  3  6.4470
+953  4 11.5859
+953  5 18.1264
+953  6 22.0506
+953  7 23.2653
+953  8 24.5734
+953  9 26.0683
+953 10 26.6289
+953 11 26.6289
+953 12 26.4421
+953 13 25.8814
+953 14 25.6011
+953 15 24.2931
+953 16 22.9850
+953 17 21.5834
+953 18 20.0885
+953 19 18.4067
+953 20 16.8183
+953 21 13.2677
+953 22  9.3435
+953 23  6.5404
+953 24  4.8586
+953 25  2.1490
+953 26  0.9343
+953 27  0.3737
+953 28  0.0934
+# pixel 954
+954  1  0.7269
+954  2  2.3625
+954  3  6.2697
+954  4 11.2672
+954  5 17.6278
+954  6 21.4441
+954  7 22.6253
+954  8 23.8974
+954  9 25.3513
+954 10 25.8965
+954 11 25.8965
+954 12 25.7147
+954 13 25.1695
+954 14 24.8970
+954 15 23.6248
+954 16 22.3527
+954 17 20.9898
+954 18 19.5359
+954 19 17.9004
+954 20 16.3557
+954 21 12.9028
+954 22  9.0865
+954 23  6.3605
+954 24  4.7250
+954 25  2.0899
+954 26  0.9086
+954 27  0.3635
+954 28  0.0909
+# pixel 955
+955  1  0.6928
+955  2  2.2516
+955  3  5.9755
+955  4 10.7385
+955  5 16.8005
+955  6 20.4378
+955  7 21.5636
+955  8 22.7760
+955  9 24.1616
+955 10 24.6812
+955 11 24.6812
+955 12 24.5080
+955 13 23.9884
+955 14 23.7286
+955 15 22.5162
+955 16 21.3038
+955 17 20.0048
+955 18 18.6192
+955 19 17.0603
+955 20 15.5881
+955 21 12.2973
+955 22  8.6601
+955 23  6.0621
+955 24  4.5032
+955 25  1.9918
+955 26  0.8660
+955 27  0.3464
+955 28  0.0866
+# pixel 956
+956  1  0.6763
+956  2  2.1980
+956  3  5.8333
+956  4 10.4830
+956  5 16.4008
+956  6 19.9515
+956  7 21.0505
+956  8 22.2340
+956  9 23.5867
+956 10 24.0939
+956 11 24.0939
+956 12 23.9249
+956 13 23.4176
+956 14 23.1640
+956 15 21.9804
+956 16 20.7969
+956 17 19.5288
+956 18 18.1761
+956 19 16.6544
+956 20 15.2172
+956 21 12.0047
+956 22  8.4540
+956 23  5.9178
+956 24  4.3961
+956 25  1.9444
+956 26  0.8454
+956 27  0.3382
+956 28  0.0845
+# pixel 957
+957  1  0.7293
+957  2  2.3701
+957  3  6.2900
+957  4 11.3037
+957  5 17.6848
+957  6 21.5135
+957  7 22.6985
+957  8 23.9747
+957  9 25.4333
+957 10 25.9802
+957 11 25.9802
+957 12 25.7979
+957 13 25.2510
+957 14 24.9775
+957 15 23.7013
+957 16 22.4250
+957 17 21.0577
+957 18 19.5991
+957 19 17.9583
+957 20 16.4086
+957 21 12.9445
+957 22  9.1159
+957 23  6.3811
+957 24  4.7403
+957 25  2.0967
+957 26  0.9116
+957 27  0.3646
+957 28  0.0912
+# pixel 958
+958  1  0.7377
+958  2  2.3975
+958  3  6.3626
+958  4 11.4342
+958  5 17.8891
+958  6 21.7620
+958  7 22.9607
+958  8 24.2517
+958  9 25.7271
+958 10 26.2803
+958 11 26.2803
+958 12 26.0959
+958 13 25.5426
+958 14 25.2660
+958 15 23.9750
+958 16 22.6841
+958 17 21.3009
+958 18 19.8255
+958 19 18.1657
+958 20 16.5981
+958 21 13.0941
+958 22  9.2212
+958 23  6.4548
+958 24  4.7950
+958 25  2.1209
+958 26  0.9221
+958 27  0.3688
+958 28  0.0922
+# pixel 959
+959  1  0.7073
+959  2  2.2987
+959  3  6.1004
+959  4 10.9630
+959  5 17.1517
+959  6 20.8650
+959  7 22.0144
+959  8 23.2521
+959  9 24.6667
+959 10 25.1972
+959 11 25.1972
+959 12 25.0203
+959 13 24.4899
+959 14 24.2246
+959 15 22.9869
+959 16 21.7491
+959 17 20.4230
+959 18 19.0084
+959 19 17.4170
+959 20 15.9140
+959 21 12.5544
+959 22  8.8411
+959 23  6.1888
+959 24  4.5974
+959 25  2.0335
+959 26  0.8841
+959 27  0.3536
+959 28  0.0884
+# pixel 960
+960  1  0.6395
+960  2  2.0784
+960  3  5.5158
+960  4  9.9124
+960  5 15.5081
+960  6 18.8655
+960  7 19.9047
+960  8 21.0238
+960  9 22.3029
+960 10 22.7825
+960 11 22.7825
+960 12 22.6226
+960 13 22.1430
+960 14 21.9032
+960 15 20.7840
+960 16 19.6649
+960 17 18.4658
+960 18 17.1868
+960 19 15.7479
+960 20 14.3889
+960 21 11.3513
+960 22  7.9939
+960 23  5.5957
+960 24  4.1568
+960 25  1.8386
+960 26  0.7994
+960 27  0.3198
+960 28  0.0799
+# pixel 961
+961  1  0.7342
+961  2  2.3863
+961  3  6.3328
+961  4 11.3807
+961  5 17.8053
+961  6 21.6601
+961  7 22.8532
+961  8 24.1381
+961  9 25.6066
+961 10 26.1573
+961 11 26.1573
+961 12 25.9737
+961 13 25.4231
+961 14 25.1477
+961 15 23.8628
+961 16 22.5779
+961 17 21.2012
+961 18 19.7327
+961 19 18.0807
+961 20 16.5204
+961 21 13.0328
+961 22  9.1780
+961 23  6.4246
+961 24  4.7726
+961 25  2.1109
+961 26  0.9178
+961 27  0.3671
+961 28  0.0918
+# pixel 962
+962  1  0.5922
+962  2  1.9246
+962  3  5.1075
+962  4  9.1787
+962  5 14.3602
+962  6 17.4692
+962  7 18.4315
+962  8 19.4678
+962  9 20.6521
+962 10 21.0962
+962 11 21.0962
+962 12 20.9482
+962 13 20.5041
+962 14 20.2820
+962 15 19.2457
+962 16 18.2094
+962 17 17.0991
+962 18 15.9147
+962 19 14.5823
+962 20 13.3239
+962 21 10.5111
+962 22  7.4022
+962 23  5.1815
+962 24  3.8491
+962 25  1.7025
+962 26  0.7402
+962 27  0.2961
+962 28  0.0740
+# pixel 963
+963  1  0.8314
+963  2  2.7021
+963  3  7.1710
+963  4 12.8870
+963  5 20.1619
+963  6 24.5268
+963  7 25.8778
+963  8 27.3328
+963  9 28.9957
+963 10 29.6192
+963 11 29.6192
+963 12 29.4114
+963 13 28.7878
+963 14 28.4760
+963 15 27.0210
+963 16 25.5661
+963 17 24.0072
+963 18 22.3443
+963 19 20.4736
+963 20 18.7069
+963 21 14.7576
+963 22 10.3927
+963 23  7.2749
+963 24  5.4042
+963 25  2.3903
+963 26  1.0393
+963 27  0.4157
+963 28  0.1039
+# pixel 964
+964  1  0.6856
+964  2  2.2281
+964  3  5.9130
+964  4 10.6263
+964  5 16.6250
+964  6 20.2242
+964  7 21.3383
+964  8 22.5380
+964  9 23.9091
+964 10 24.4233
+964 11 24.4233
+964 12 24.2519
+964 13 23.7377
+964 14 23.4806
+964 15 22.2809
+964 16 21.0812
+964 17 19.7957
+964 18 18.4246
+964 19 16.8821
+964 20 15.4252
+964 21 12.1688
+964 22  8.5696
+964 23  5.9987
+964 24  4.4562
+964 25  1.9710
+964 26  0.8570
+964 27  0.3428
+964 28  0.0857
+# pixel 965
+965  1  0.7309
+965  2  2.3756
+965  3  6.3043
+965  4 11.3296
+965  5 17.7253
+965  6 21.5627
+965  7 22.7505
+965  8 24.0296
+965  9 25.4915
+965 10 26.0397
+965 11 26.0397
+965 12 25.8570
+965 13 25.3088
+965 14 25.0347
+965 15 23.7555
+965 16 22.4764
+965 17 21.1059
+965 18 19.6440
+965 19 17.9994
+965 20 16.4461
+965 21 12.9742
+965 22  9.1367
+965 23  6.3957
+965 24  4.7511
+965 25  2.1014
+965 26  0.9137
+965 27  0.3655
+965 28  0.0914
+# pixel 966
+966  1  0.8203
+966  2  2.6661
+966  3  7.0754
+966  4 12.7153
+966  5 19.8933
+966  6 24.2001
+966  7 25.5331
+966  8 26.9687
+966  9 28.6094
+966 10 29.2246
+966 11 29.2246
+966 12 29.0196
+966 13 28.4043
+966 14 28.0967
+966 15 26.6611
+966 16 25.2255
+966 17 23.6873
+966 18 22.0467
+966 19 20.2009
+966 20 18.4577
+966 21 14.5610
+966 22 10.2543
+966 23  7.1780
+966 24  5.3322
+966 25  2.3585
+966 26  1.0254
+966 27  0.4102
+966 28  0.1025
+# pixel 967
+967  1  0.8305
+967  2  2.6992
+967  3  7.1633
+967  4 12.8732
+967  5 20.1404
+967  6 24.5006
+967  7 25.8502
+967  8 27.3037
+967  9 28.9647
+967 10 29.5876
+967 11 29.5876
+967 12 29.3800
+967 13 28.7571
+967 14 28.4456
+967 15 26.9922
+967 16 25.5388
+967 17 23.9816
+967 18 22.3205
+967 19 20.4518
+967 20 18.6869
+967 21 14.7419
+967 22 10.3816
+967 23  7.2671
+967 24  5.3984
+967 25  2.3878
+967 26  1.0382
+967 27  0.4153
+967 28  0.1038
+# pixel 968
+968  1  0.7091
+968  2  2.3044
+968  3  6.1156
+968  4 10.9904
+968  5 17.1947
+968  6 20.9172
+968  7 22.0695
+968  8 23.3103
+968  9 24.7284
+968 10 25.2602
+968 11 25.2602
+968 12 25.0830
+968 13 24.5512
+968 14 24.2853
+968 15 23.0444
+968 16 21.8036
+968 17 20.4741
+968 18 19.0560
+968 19 17.4606
+968 20 15.9538
+968 21 12.5858
+968 22  8.8632
+968 23  6.2043
+968 24  4.6089
+968 25  2.0385
+968 26  0.8863
+968 27  0.3545
+968 28  0.0886
+# pixel 969
+969  1  0.7374
+969  2  2.3966
+969  3  6.3601
+969  4 11.4297
+969  5 17.8820
+969  6 21.7533
+969  7 22.9516
+969  8 24.2420
+969  9 25.7168
+969 10 26.2699
+969 11 26.2699
+969 12 26.0855
+969 13 25.5325
+969 14 25.2560
+969 15 23.9655
+969 16 22.6751
+969 17 21.2924
+969 18 19.8176
+969 19 18.1585
+969 20 16.5915
+969 21 13.0889
+969 22  9.2175
+969 23  6.4523
+969 24  4.7931
+969 25  2.1200
+969 26  0.9218
+969 27  0.3687
+969 28  0.0922
+# pixel 970
+970  1  0.7626
+970  2  2.4784
+970  3  6.5772
+970  4 11.8199
+970  5 18.4925
+970  6 22.4960
+970  7 23.7352
+970  8 25.0697
+970  9 26.5948
+970 10 27.1668
+970 11 27.1668
+970 12 26.9761
+970 13 26.4042
+970 14 26.1182
+970 15 24.7837
+970 16 23.4492
+970 17 22.0194
+970 18 20.4942
+970 19 18.7784
+970 20 17.1580
+970 21 13.5357
+970 22  9.5322
+970 23  6.6725
+970 24  4.9567
+970 25  2.1924
+970 26  0.9532
+970 27  0.3813
+970 28  0.0953
+# pixel 971
+971  1  0.7573
+971  2  2.4612
+971  3  6.5318
+971  4 11.7382
+971  5 18.3647
+971  6 22.3405
+971  7 23.5711
+971  8 24.8964
+971  9 26.4110
+971 10 26.9790
+971 11 26.9790
+971 12 26.7897
+971 13 26.2217
+971 14 25.9377
+971 15 24.6124
+971 16 23.2871
+971 17 21.8672
+971 18 20.3526
+971 19 18.6486
+971 20 17.0394
+971 21 13.4422
+971 22  9.4663
+971 23  6.6264
+971 24  4.9225
+971 25  2.1773
+971 26  0.9466
+971 27  0.3787
+971 28  0.0947
+# pixel 972
+972  1  0.8727
+972  2  2.8363
+972  3  7.5271
+972  4 13.5269
+972  5 21.1631
+972  6 25.7447
+972  7 27.1629
+972  8 28.6901
+972  9 30.4355
+972 10 31.0900
+972 11 31.0900
+972 12 30.8719
+972 13 30.2173
+972 14 29.8901
+972 15 28.3629
+972 16 26.8356
+972 17 25.1993
+972 18 23.4539
+972 19 21.4903
+972 20 19.6358
+972 21 15.4905
+972 22 10.9088
+972 23  7.6362
+972 24  5.6726
+972 25  2.5090
+972 26  1.0909
+972 27  0.4364
+972 28  0.1091
+# pixel 973
+973  1  0.6577
+973  2  2.1375
+973  3  5.6726
+973  4 10.1943
+973  5 15.9491
+973  6 19.4020
+973  7 20.4708
+973  8 21.6217
+973  9 22.9371
+973 10 23.4304
+973 11 23.4304
+973 12 23.2660
+973 13 22.7727
+973 14 22.5261
+973 15 21.3751
+973 16 20.2241
+973 17 18.9909
+973 18 17.6756
+973 19 16.1957
+973 20 14.7981
+973 21 11.6741
+973 22  8.2212
+973 23  5.7548
+973 24  4.2750
+973 25  1.8909
+973 26  0.8221
+973 27  0.3288
+973 28  0.0822
+# pixel 974
+974  1  0.6856
+974  2  2.2282
+974  3  5.9132
+974  4 10.6266
+974  5 16.6254
+974  6 20.2248
+974  7 21.3388
+974  8 22.5386
+974  9 23.9098
+974 10 24.4240
+974 11 24.4240
+974 12 24.2526
+974 13 23.7384
+974 14 23.4813
+974 15 22.2815
+974 16 21.0817
+974 17 19.7963
+974 18 18.4251
+974 19 16.8825
+974 20 15.4257
+974 21 12.1691
+974 22  8.5698
+974 23  5.9989
+974 24  4.4563
+974 25  1.9711
+974 26  0.8570
+974 27  0.3428
+974 28  0.0857
+# pixel 975
+975  1  0.7290
+975  2  2.3692
+975  3  6.2875
+975  4 11.2992
+975  5 17.6778
+975  6 21.5050
+975  7 22.6896
+975  8 23.9653
+975  9 25.4233
+975 10 25.9700
+975 11 25.9700
+975 12 25.7878
+975 13 25.2410
+975 14 24.9676
+975 15 23.6919
+975 16 22.4162
+975 17 21.0494
+975 18 19.5914
+975 19 17.9512
+975 20 16.4021
+975 21 12.9394
+975 22  9.1123
+975 23  6.3786
+975 24  4.7384
+975 25  2.0958
+975 26  0.9112
+975 27  0.3645
+975 28  0.0911
+# pixel 976
+976  1  0.6958
+976  2  2.2613
+976  3  6.0011
+976  4 10.7846
+976  5 16.8727
+976  6 20.5255
+976  7 21.6562
+976  8 22.8738
+976  9 24.2653
+976 10 24.7872
+976 11 24.7872
+976 12 24.6132
+976 13 24.0914
+976 14 23.8305
+976 15 22.6129
+976 16 21.3952
+976 17 20.0906
+976 18 18.6991
+976 19 17.1336
+976 20 15.6551
+976 21 12.3501
+976 22  8.6973
+976 23  6.0881
+976 24  4.5226
+976 25  2.0004
+976 26  0.8697
+976 27  0.3479
+976 28  0.0870
+# pixel 977
+977  1  0.7211
+977  2  2.3437
+977  3  6.2198
+977  4 11.1776
+977  5 17.4876
+977  6 21.2736
+977  7 22.4454
+977  8 23.7074
+977  9 25.1497
+977 10 25.6906
+977 11 25.6906
+977 12 25.5103
+977 13 24.9694
+977 14 24.6990
+977 15 23.4370
+977 16 22.1750
+977 17 20.8229
+977 18 19.3806
+977 19 17.7580
+977 20 16.2256
+977 21 12.8002
+977 22  9.0142
+977 23  6.3100
+977 24  4.6874
+977 25  2.0733
+977 26  0.9014
+977 27  0.3606
+977 28  0.0901
+# pixel 978
+978  1  0.7112
+978  2  2.3113
+978  3  6.1339
+978  4 11.0232
+978  5 17.2460
+978  6 20.9796
+978  7 22.1353
+978  8 23.3798
+978  9 24.8022
+978 10 25.3356
+978 11 25.3356
+978 12 25.1578
+978 13 24.6244
+978 14 24.3577
+978 15 23.1131
+978 16 21.8686
+978 17 20.5351
+978 18 19.1128
+978 19 17.5127
+978 20 16.0014
+978 21 12.6233
+978 22  8.8897
+978 23  6.2228
+978 24  4.6226
+978 25  2.0446
+978 26  0.8890
+978 27  0.3556
+978 28  0.0889
+# pixel 979
+979  1  0.7517
+979  2  2.4429
+979  3  6.4832
+979  4 11.6510
+979  5 18.2281
+979  6 22.1744
+979  7 23.3959
+979  8 24.7113
+979  9 26.2147
+979 10 26.7784
+979 11 26.7784
+979 12 26.5905
+979 13 26.0268
+979 14 25.7449
+979 15 24.4295
+979 16 23.1140
+979 17 21.7046
+979 18 20.2013
+979 19 18.5100
+979 20 16.9127
+979 21 13.3422
+979 22  9.3959
+979 23  6.5772
+979 24  4.8859
+979 25  2.1611
+979 26  0.9396
+979 27  0.3758
+979 28  0.0940
+# pixel 980
+980  1  0.7429
+980  2  2.4144
+980  3  6.4075
+980  4 11.5149
+980  5 18.0152
+980  6 21.9154
+980  7 23.1226
+980  8 24.4227
+980  9 25.9085
+980 10 26.4657
+980 11 26.4657
+980 12 26.2799
+980 13 25.7228
+980 14 25.4442
+980 15 24.1441
+980 16 22.8440
+980 17 21.4511
+980 18 19.9653
+980 19 18.2938
+980 20 16.7152
+980 21 13.1864
+980 22  9.2862
+980 23  6.5003
+980 24  4.8288
+980 25  2.1358
+980 26  0.9286
+980 27  0.3714
+980 28  0.0929
+# pixel 981
+981  1  0.6982
+981  2  2.2692
+981  3  6.0222
+981  4 10.8225
+981  5 16.9320
+981  6 20.5977
+981  7 21.7324
+981  8 22.9543
+981  9 24.3507
+981 10 24.8744
+981 11 24.8744
+981 12 24.6998
+981 13 24.1762
+981 14 23.9143
+981 15 22.6924
+981 16 21.4705
+981 17 20.1613
+981 18 18.7649
+981 19 17.1939
+981 20 15.7101
+981 21 12.3936
+981 22  8.7279
+981 23  6.1095
+981 24  4.5385
+981 25  2.0074
+981 26  0.8728
+981 27  0.3491
+981 28  0.0873
+# pixel 982
+982  1  0.7099
+982  2  2.3071
+982  3  6.1226
+982  4 11.0030
+982  5 17.2144
+982  6 20.9412
+982  7 22.0947
+982  8 23.3370
+982  9 24.7568
+982 10 25.2892
+982 11 25.2892
+982 12 25.1117
+982 13 24.5793
+982 14 24.3131
+982 15 23.0708
+982 16 21.8285
+982 17 20.4975
+982 18 19.0778
+982 19 17.4806
+982 20 15.9721
+982 21 12.6002
+982 22  8.8734
+982 23  6.2114
+982 24  4.6142
+982 25  2.0409
+982 26  0.8873
+982 27  0.3549
+982 28  0.0887
+# pixel 983
+983  1  0.7820
+983  2  2.5416
+983  3  6.7449
+983  4 12.1213
+983  5 18.9639
+983  6 23.0695
+983  7 24.3403
+983  8 25.7088
+983  9 27.2729
+983 10 27.8594
+983 11 27.8594
+983 12 27.6639
+983 13 27.0774
+983 14 26.7841
+983 15 25.4156
+983 16 24.0471
+983 17 22.5808
+983 18 21.0167
+983 19 19.2572
+983 20 17.5954
+983 21 13.8808
+983 22  9.7752
+983 23  6.8427
+983 24  5.0831
+983 25  2.2483
+983 26  0.9775
+983 27  0.3910
+983 28  0.0978
+# pixel 984
+984  1  0.7449
+984  2  2.4210
+984  3  6.4250
+984  4 11.5463
+984  5 18.0644
+984  6 21.9752
+984  7 23.1857
+984  8 24.4893
+984  9 25.9792
+984 10 26.5378
+984 11 26.5378
+984 12 26.3516
+984 13 25.7929
+984 14 25.5136
+984 15 24.2100
+984 16 22.9064
+984 17 21.5096
+984 18 20.0198
+984 19 18.3437
+984 20 16.7607
+984 21 13.2224
+984 22  9.3115
+984 23  6.5181
+984 24  4.8420
+984 25  2.1417
+984 26  0.9312
+984 27  0.3725
+984 28  0.0931
+# pixel 985
+985  1  0.7185
+985  2  2.3350
+985  3  6.1967
+985  4 11.1362
+985  5 17.4227
+985  6 21.1947
+985  7 22.3622
+985  8 23.6195
+985  9 25.0564
+985 10 25.5953
+985 11 25.5953
+985 12 25.4157
+985 13 24.8768
+985 14 24.6074
+985 15 23.3501
+985 16 22.0928
+985 17 20.7456
+985 18 19.3087
+985 19 17.6922
+985 20 16.1654
+985 21 12.7527
+985 22  8.9808
+985 23  6.2866
+985 24  4.6700
+985 25  2.0656
+985 26  0.8981
+985 27  0.3592
+985 28  0.0898
+# pixel 986
+986  1  0.7565
+986  2  2.4585
+986  3  6.5246
+986  4 11.7253
+986  5 18.3444
+986  6 22.3159
+986  7 23.5452
+986  8 24.8690
+986  9 26.3819
+986 10 26.9493
+986 11 26.9493
+986 12 26.7602
+986 13 26.1928
+986 14 25.9091
+986 15 24.5853
+986 16 23.2615
+986 17 21.8431
+986 18 20.3302
+986 19 18.6281
+986 20 17.0206
+986 21 13.4274
+986 22  9.4559
+986 23  6.6191
+986 24  4.9171
+986 25  2.1749
+986 26  0.9456
+986 27  0.3782
+986 28  0.0946
+# pixel 987
+987  1  0.7082
+987  2  2.3017
+987  3  6.1083
+987  4 10.9772
+987  5 17.1741
+987  6 20.8921
+987  7 22.0430
+987  8 23.2823
+987  9 24.6988
+987 10 25.2299
+987 11 25.2299
+987 12 25.0529
+987 13 24.5217
+987 14 24.2561
+987 15 23.0168
+987 16 21.7774
+987 17 20.4495
+987 18 19.0331
+987 19 17.4396
+987 20 15.9347
+987 21 12.5707
+987 22  8.8526
+987 23  6.1968
+987 24  4.6034
+987 25  2.0361
+987 26  0.8853
+987 27  0.3541
+987 28  0.0885
+# pixel 988
+988  1  0.7224
+988  2  2.3476
+988  3  6.2303
+988  4 11.1965
+988  5 17.5170
+988  6 21.3094
+988  7 22.4832
+988  8 23.7473
+988  9 25.1920
+988 10 25.7338
+988 11 25.7338
+988 12 25.5532
+988 13 25.0114
+988 14 24.7406
+988 15 23.4764
+988 16 22.2123
+988 17 20.8579
+988 18 19.4132
+988 19 17.7879
+988 20 16.2529
+988 21 12.8217
+988 22  9.0294
+988 23  6.3206
+988 24  4.6953
+988 25  2.0768
+988 26  0.9029
+988 27  0.3612
+988 28  0.0903
+# pixel 989
+989  1  0.7415
+989  2  2.4100
+989  3  6.3957
+989  4 11.4937
+989  5 17.9820
+989  6 21.8750
+989  7 23.0800
+989  8 24.3777
+989  9 25.8607
+989 10 26.4169
+989 11 26.4169
+989 12 26.2315
+989 13 25.6753
+989 14 25.3973
+989 15 24.0996
+989 16 22.8019
+989 17 21.4116
+989 18 19.9285
+989 19 18.2601
+989 20 16.6843
+989 21 13.1621
+989 22  9.2691
+989 23  6.4884
+989 24  4.8199
+989 25  2.1319
+989 26  0.9269
+989 27  0.3708
+989 28  0.0927
+# pixel 990
+990  1  0.7587
+990  2  2.4657
+990  3  6.5435
+990  4 11.7593
+990  5 18.3976
+990  6 22.3806
+990  7 23.6134
+990  8 24.9411
+990  9 26.4584
+990 10 27.0274
+990 11 27.0274
+990 12 26.8377
+990 13 26.2687
+990 14 25.9842
+990 15 24.6566
+990 16 23.3289
+990 17 21.9064
+990 18 20.3891
+990 19 18.6821
+990 20 17.0699
+990 21 13.4663
+990 22  9.4833
+990 23  6.6383
+990 24  4.9313
+990 25  2.1812
+990 26  0.9483
+990 27  0.3793
+990 28  0.0948
+# pixel 991
+991  1  0.6974
+991  2  2.2664
+991  3  6.0148
+991  4 10.8092
+991  5 16.9112
+991  6 20.5723
+991  7 21.7056
+991  8 22.9260
+991  9 24.3207
+991 10 24.8437
+991 11 24.8437
+991 12 24.6694
+991 13 24.1463
+991 14 23.8848
+991 15 22.6644
+991 16 21.4440
+991 17 20.1365
+991 18 18.7417
+991 19 17.1727
+991 20 15.6908
+991 21 12.3783
+991 22  8.7171
+991 23  6.1020
+991 24  4.5329
+991 25  2.0049
+991 26  0.8717
+991 27  0.3487
+991 28  0.0872
+# pixel 992
+992  1  0.8931
+992  2  2.9027
+992  3  7.7032
+992  4 13.8435
+992  5 21.6584
+992  6 26.3473
+992  7 27.7986
+992  8 29.3616
+992  9 31.1478
+992 10 31.8177
+992 11 31.8177
+992 12 31.5944
+992 13 30.9246
+992 14 30.5896
+992 15 29.0267
+992 16 27.4637
+992 17 25.7891
+992 18 24.0028
+992 19 21.9933
+992 20 20.0954
+992 21 15.8530
+992 22 11.1641
+992 23  7.8149
+992 24  5.8053
+992 25  2.5677
+992 26  1.1164
+992 27  0.4466
+992 28  0.1116
+# pixel 993
+993  1  0.6923
+993  2  2.2501
+993  3  5.9713
+993  4 10.7311
+993  5 16.7890
+993  6 20.4237
+993  7 21.5487
+993  8 22.7603
+993  9 24.1450
+993 10 24.6642
+993 11 24.6642
+993 12 24.4911
+993 13 23.9719
+993 14 23.7123
+993 15 22.5007
+993 16 21.2891
+993 17 19.9910
+993 18 18.6063
+993 19 17.0486
+993 20 15.5774
+993 21 12.2888
+993 22  8.6541
+993 23  6.0579
+993 24  4.5001
+993 25  1.9904
+993 26  0.8654
+993 27  0.3462
+993 28  0.0865
+# pixel 994
+994  1  0.9156
+994  2  2.9758
+994  3  7.8974
+994  4 14.1924
+994  5 22.2043
+994  6 27.0114
+994  7 28.4993
+994  8 30.1017
+994  9 31.9329
+994 10 32.6197
+994 11 32.6197
+994 12 32.3908
+994 13 31.7040
+994 14 31.3607
+994 15 29.7583
+994 16 28.1559
+994 17 26.4391
+994 18 24.6078
+994 19 22.5476
+994 20 20.6019
+994 21 16.2526
+994 22 11.4455
+994 23  8.0119
+994 24  5.9517
+994 25  2.6325
+994 26  1.1446
+994 27  0.4578
+994 28  0.1145
+# pixel 995
+995  1  0.6517
+995  2  2.1181
+995  3  5.6212
+995  4 10.1018
+995  5 15.8045
+995  6 19.2261
+995  7 20.2852
+995  8 21.4257
+995  9 22.7292
+995 10 23.2180
+995 11 23.2180
+995 12 23.0550
+995 13 22.5662
+995 14 22.3218
+995 15 21.1813
+995 16 20.0408
+995 17 18.8188
+995 18 17.5153
+995 19 16.0489
+995 20 14.6640
+995 21 11.5682
+995 22  8.1467
+995 23  5.7027
+995 24  4.2363
+995 25  1.8737
+995 26  0.8147
+995 27  0.3259
+995 28  0.0815
+# pixel 996
+996  1  0.7626
+996  2  2.4785
+996  3  6.5777
+996  4 11.8208
+996  5 18.4938
+996  6 22.4976
+996  7 23.7369
+996  8 25.0715
+996  9 26.5967
+996 10 27.1687
+996 11 27.1687
+996 12 26.9780
+996 13 26.4061
+996 14 26.1201
+996 15 24.7855
+996 16 23.4509
+996 17 22.0210
+996 18 20.4957
+996 19 18.7798
+996 20 17.1592
+996 21 13.5367
+996 22  9.5329
+996 23  6.6730
+996 24  4.9571
+996 25  2.1926
+996 26  0.9533
+996 27  0.3813
+996 28  0.0953
+# pixel 997
+997  1  0.6409
+997  2  2.0829
+997  3  5.5277
+997  4  9.9338
+997  5 15.5415
+997  6 18.9062
+997  7 19.9476
+997  8 21.0692
+997  9 22.3510
+997 10 22.8316
+997 11 22.8316
+997 12 22.6714
+997 13 22.1907
+997 14 21.9504
+997 15 20.8289
+997 16 19.7073
+997 17 18.5056
+997 18 17.2239
+997 19 15.7819
+997 20 14.4200
+997 21 11.3758
+997 22  8.0111
+997 23  5.6078
+997 24  4.1658
+997 25  1.8426
+997 26  0.8011
+997 27  0.3204
+997 28  0.0801
+# pixel 998
+998  1  0.6816
+998  2  2.2151
+998  3  5.8784
+998  4 10.5641
+998  5 16.5278
+998  6 20.1060
+998  7 21.2135
+998  8 22.4062
+998  9 23.7693
+998 10 24.2805
+998 11 24.2805
+998 12 24.1101
+998 13 23.5989
+998 14 23.3434
+998 15 22.1506
+998 16 20.9579
+998 17 19.6800
+998 18 18.3169
+998 19 16.7834
+998 20 15.3350
+998 21 12.0977
+998 22  8.5195
+998 23  5.9636
+998 24  4.4301
+998 25  1.9595
+998 26  0.8519
+998 27  0.3408
+998 28  0.0852
+# pixel 999
+999  1  0.7667
+999  2  2.4918
+999  3  6.6130
+999  4 11.8842
+999  5 18.5930
+999  6 22.6182
+999  7 23.8642
+999  8 25.2059
+999  9 26.7393
+999 10 27.3144
+999 11 27.3144
+999 12 27.1227
+999 13 26.5477
+999 14 26.2602
+999 15 24.9184
+999 16 23.5766
+999 17 22.1390
+999 18 20.6056
+999 19 18.8805
+999 20 17.2512
+999 21 13.6093
+999 22  9.5840
+999 23  6.7088
+999 24  4.9837
+999 25  2.2043
+999 26  0.9584
+999 27  0.3834
+999 28  0.0958
+# pixel 1000
+1000  1  0.7632
+1000  2  2.4803
+1000  3  6.5824
+1000  4 11.8293
+1000  5 18.5072
+1000  6 22.5139
+1000  7 23.7540
+1000  8 25.0896
+1000  9 26.6160
+1000 10 27.1884
+1000 11 27.1884
+1000 12 26.9976
+1000 13 26.4252
+1000 14 26.1390
+1000 15 24.8034
+1000 16 23.4678
+1000 17 22.0369
+1000 18 20.5105
+1000 19 18.7934
+1000 20 17.1716
+1000 21 13.5465
+1000 22  9.5398
+1000 23  6.6778
+1000 24  4.9607
+1000 25  2.1941
+1000 26  0.9540
+1000 27  0.3816
+1000 28  0.0954
+# pixel 1001
+1001  1  0.6662
+1001  2  2.1651
+1001  3  5.7458
+1001  4 10.3258
+1001  5 16.1549
+1001  6 19.6524
+1001  7 20.7350
+1001  8 21.9008
+1001  9 23.2331
+1001 10 23.7328
+1001 11 23.7328
+1001 12 23.5662
+1001 13 23.0666
+1001 14 22.8168
+1001 15 21.6510
+1001 16 20.4851
+1001 17 19.2360
+1001 18 17.9037
+1001 19 16.4048
+1001 20 14.9891
+1001 21 11.8248
+1001 22  8.3273
+1001 23  5.8291
+1001 24  4.3302
+1001 25  1.9153
+1001 26  0.8327
+1001 27  0.3331
+1001 28  0.0833
+# pixel 1002
+1002  1  0.8560
+1002  2  2.7819
+1002  3  7.3827
+1002  4 13.2675
+1002  5 20.7572
+1002  6 25.2510
+1002  7 26.6419
+1002  8 28.1399
+1002  9 29.8518
+1002 10 30.4938
+1002 11 30.4938
+1002 12 30.2798
+1002 13 29.6378
+1002 14 29.3168
+1002 15 27.8189
+1002 16 26.3209
+1002 17 24.7160
+1002 18 23.0041
+1002 19 21.0781
+1002 20 19.2592
+1002 21 15.1934
+1002 22 10.6996
+1002 23  7.4897
+1002 24  5.5638
+1002 25  2.4609
+1002 26  1.0700
+1002 27  0.4280
+1002 28  0.1070
+# pixel 1003
+1003  1  0.7428
+1003  2  2.4140
+1003  3  6.4063
+1003  4 11.5128
+1003  5 18.0120
+1003  6 21.9114
+1003  7 23.1184
+1003  8 24.4183
+1003  9 25.9038
+1003 10 26.4609
+1003 11 26.4609
+1003 12 26.2752
+1003 13 25.7181
+1003 14 25.4396
+1003 15 24.1397
+1003 16 22.8399
+1003 17 21.4472
+1003 18 19.9617
+1003 19 18.2905
+1003 20 16.7121
+1003 21 13.1840
+1003 22  9.2845
+1003 23  6.4992
+1003 24  4.8279
+1003 25  2.1354
+1003 26  0.9285
+1003 27  0.3714
+1003 28  0.0928
+# pixel 1004
+1004  1  0.6908
+1004  2  2.2451
+1004  3  5.9583
+1004  4 10.7076
+1004  5 16.7522
+1004  6 20.3790
+1004  7 21.5015
+1004  8 22.7105
+1004  9 24.0921
+1004 10 24.6102
+1004 11 24.6102
+1004 12 24.4375
+1004 13 23.9194
+1004 14 23.6603
+1004 15 22.4514
+1004 16 21.2425
+1004 17 19.9472
+1004 18 18.5656
+1004 19 17.0113
+1004 20 15.5433
+1004 21 12.2619
+1004 22  8.6352
+1004 23  6.0446
+1004 24  4.4903
+1004 25  1.9861
+1004 26  0.8635
+1004 27  0.3454
+1004 28  0.0864
+# pixel 1005
+1005  1  0.6919
+1005  2  2.2485
+1005  3  5.9673
+1005  4 10.7238
+1005  5 16.7776
+1005  6 20.4099
+1005  7 21.5341
+1005  8 22.7449
+1005  9 24.1286
+1005 10 24.6475
+1005 11 24.6475
+1005 12 24.4745
+1005 13 23.9556
+1005 14 23.6962
+1005 15 22.4854
+1005 16 21.2747
+1005 17 19.9775
+1005 18 18.5937
+1005 19 17.0370
+1005 20 15.5668
+1005 21 12.2805
+1005 22  8.6482
+1005 23  6.0538
+1005 24  4.4971
+1005 25  1.9891
+1005 26  0.8648
+1005 27  0.3459
+1005 28  0.0865
+# pixel 1006
+1006  1  0.7509
+1006  2  2.4404
+1006  3  6.4763
+1006  4 11.6386
+1006  5 18.2088
+1006  6 22.1509
+1006  7 23.3710
+1006  8 24.6851
+1006  9 26.1868
+1006 10 26.7500
+1006 11 26.7500
+1006 12 26.5623
+1006 13 25.9991
+1006 14 25.7175
+1006 15 24.4035
+1006 16 23.0895
+1006 17 21.6816
+1006 18 20.1798
+1006 19 18.4903
+1006 20 16.8947
+1006 21 13.3281
+1006 22  9.3860
+1006 23  6.5702
+1006 24  4.8807
+1006 25  2.1588
+1006 26  0.9386
+1006 27  0.3754
+1006 28  0.0939
+# pixel 1007
+1007  1  0.7142
+1007  2  2.3212
+1007  3  6.1601
+1007  4 11.0702
+1007  5 17.3196
+1007  6 21.0692
+1007  7 22.2298
+1007  8 23.4796
+1007  9 24.9081
+1007 10 25.4437
+1007 11 25.4437
+1007 12 25.2652
+1007 13 24.7295
+1007 14 24.4617
+1007 15 23.2118
+1007 16 21.9619
+1007 17 20.6228
+1007 18 19.1944
+1007 19 17.5874
+1007 20 16.0697
+1007 21 12.6772
+1007 22  8.9276
+1007 23  6.2493
+1007 24  4.6424
+1007 25  2.0534
+1007 26  0.8928
+1007 27  0.3571
+1007 28  0.0893
+# pixel 1008
+1008  1  0.6659
+1008  2  2.1641
+1008  3  5.7431
+1008  4 10.3209
+1008  5 16.1473
+1008  6 19.6431
+1008  7 20.7251
+1008  8 21.8903
+1008  9 23.2221
+1008 10 23.7215
+1008 11 23.7215
+1008 12 23.5550
+1008 13 23.0556
+1008 14 22.8059
+1008 15 21.6406
+1008 16 20.4754
+1008 17 19.2269
+1008 18 17.8952
+1008 19 16.3970
+1008 20 14.9820
+1008 21 11.8191
+1008 22  8.3233
+1008 23  5.8263
+1008 24  4.3281
+1008 25  1.9144
+1008 26  0.8323
+1008 27  0.3329
+1008 28  0.0832
+# pixel 1009
+1009  1  0.6748
+1009  2  2.1931
+1009  3  5.8202
+1009  4 10.4595
+1009  5 16.3641
+1009  6 19.9068
+1009  7 21.0034
+1009  8 22.1843
+1009  9 23.5339
+1009 10 24.0400
+1009 11 24.0400
+1009 12 23.8713
+1009 13 23.3652
+1009 14 23.1121
+1009 15 21.9312
+1009 16 20.7503
+1009 17 19.4850
+1009 18 18.1354
+1009 19 16.6171
+1009 20 15.1831
+1009 21 11.9778
+1009 22  8.4351
+1009 23  5.9046
+1009 24  4.3862
+1009 25  1.9401
+1009 26  0.8435
+1009 27  0.3374
+1009 28  0.0844
+# pixel 1010
+1010  1  0.7631
+1010  2  2.4801
+1010  3  6.5818
+1010  4 11.8282
+1010  5 18.5055
+1010  6 22.5118
+1010  7 23.7519
+1010  8 25.0873
+1010  9 26.6135
+1010 10 27.1859
+1010 11 27.1859
+1010 12 26.9951
+1010 13 26.4227
+1010 14 26.1366
+1010 15 24.8011
+1010 16 23.4657
+1010 17 22.0349
+1010 18 20.5086
+1010 19 18.7916
+1010 20 17.1700
+1010 21 13.5452
+1010 22  9.5389
+1010 23  6.6772
+1010 24  4.9602
+1010 25  2.1939
+1010 26  0.9539
+1010 27  0.3816
+1010 28  0.0954
+# pixel 1011
+1011  1  0.6906
+1011  2  2.2444
+1011  3  5.9562
+1011  4 10.7038
+1011  5 16.7463
+1011  6 20.3718
+1011  7 21.4940
+1011  8 22.7025
+1011  9 24.0836
+1011 10 24.6015
+1011 11 24.6015
+1011 12 24.4289
+1011 13 23.9110
+1011 14 23.6520
+1011 15 22.4435
+1011 16 21.2350
+1011 17 19.9402
+1011 18 18.5591
+1011 19 17.0053
+1011 20 15.5378
+1011 21 12.2576
+1011 22  8.6321
+1011 23  6.0425
+1011 24  4.4887
+1011 25  1.9854
+1011 26  0.8632
+1011 27  0.3453
+1011 28  0.0863
+# pixel 1012
+1012  1  0.7563
+1012  2  2.4579
+1012  3  6.5229
+1012  4 11.7223
+1012  5 18.3397
+1012  6 22.3101
+1012  7 23.5391
+1012  8 24.8625
+1012  9 26.3751
+1012 10 26.9423
+1012 11 26.9423
+1012 12 26.7532
+1012 13 26.1860
+1012 14 25.9024
+1012 15 24.5789
+1012 16 23.2555
+1012 17 21.8374
+1012 18 20.3249
+1012 19 18.6233
+1012 20 17.0162
+1012 21 13.4239
+1012 22  9.4534
+1012 23  6.6174
+1012 24  4.9158
+1012 25  2.1743
+1012 26  0.9453
+1012 27  0.3781
+1012 28  0.0945
+# pixel 1013
+1013  1  0.7566
+1013  2  2.4591
+1013  3  6.5260
+1013  4 11.7278
+1013  5 18.3484
+1013  6 22.3207
+1013  7 23.5503
+1013  8 24.8744
+1013  9 26.3876
+1013 10 26.9551
+1013 11 26.9551
+1013 12 26.7660
+1013 13 26.1985
+1013 14 25.9147
+1013 15 24.5906
+1013 16 23.2665
+1013 17 21.8478
+1013 18 20.3346
+1013 19 18.6321
+1013 20 17.0243
+1013 21 13.4303
+1013 22  9.4579
+1013 23  6.6206
+1013 24  4.9181
+1013 25  2.1753
+1013 26  0.9458
+1013 27  0.3783
+1013 28  0.0946
+# pixel 1014
+1014  1  0.6345
+1014  2  2.0621
+1014  3  5.4724
+1014  4  9.8345
+1014  5 15.3863
+1014  6 18.7173
+1014  7 19.7484
+1014  8 20.8587
+1014  9 22.1277
+1014 10 22.6035
+1014 11 22.6035
+1014 12 22.4449
+1014 13 21.9690
+1014 14 21.7311
+1014 15 20.6208
+1014 16 19.5104
+1014 17 18.3208
+1014 18 17.0518
+1014 19 15.6242
+1014 20 14.2759
+1014 21 11.2621
+1014 22  7.9311
+1014 23  5.5517
+1014 24  4.1242
+1014 25  1.8241
+1014 26  0.7931
+1014 27  0.3172
+1014 28  0.0793
+# pixel 1015
+1015  1  0.7259
+1015  2  2.3593
+1015  3  6.2613
+1015  4 11.2522
+1015  5 17.6042
+1015  6 21.4154
+1015  7 22.5951
+1015  8 23.8655
+1015  9 25.3174
+1015 10 25.8618
+1015 11 25.8618
+1015 12 25.6803
+1015 13 25.1359
+1015 14 24.8636
+1015 15 23.5932
+1015 16 22.3228
+1015 17 20.9617
+1015 18 19.5098
+1015 19 17.8764
+1015 20 16.3338
+1015 21 12.8855
+1015 22  9.0743
+1015 23  6.3520
+1015 24  4.7186
+1015 25  2.0871
+1015 26  0.9074
+1015 27  0.3630
+1015 28  0.0907
+# pixel 1016
+1016  1  0.7952
+1016  2  2.5842
+1016  3  6.8582
+1016  4 12.3249
+1016  5 19.2825
+1016  6 23.4570
+1016  7 24.7491
+1016  8 26.1407
+1016  9 27.7310
+1016 10 28.3273
+1016 11 28.3273
+1016 12 28.1285
+1016 13 27.5322
+1016 14 27.2340
+1016 15 25.8425
+1016 16 24.4510
+1016 17 22.9600
+1016 18 21.3697
+1016 19 19.5806
+1016 20 17.8909
+1016 21 14.1140
+1016 22  9.9394
+1016 23  6.9576
+1016 24  5.1685
+1016 25  2.2861
+1016 26  0.9939
+1016 27  0.3976
+1016 28  0.0994
+# pixel 1017
+1017  1  0.8647
+1017  2  2.8102
+1017  3  7.4579
+1017  4 13.4025
+1017  5 20.9685
+1017  6 25.5081
+1017  7 26.9132
+1017  8 28.4264
+1017  9 30.1557
+1017 10 30.8042
+1017 11 30.8042
+1017 12 30.5881
+1017 13 29.9395
+1017 14 29.6153
+1017 15 28.1021
+1017 16 26.5889
+1017 17 24.9676
+1017 18 23.2383
+1017 19 21.2927
+1017 20 19.4553
+1017 21 15.3481
+1017 22 10.8085
+1017 23  7.5660
+1017 24  5.6204
+1017 25  2.4860
+1017 26  1.0809
+1017 27  0.4323
+1017 28  0.1081
+# pixel 1018
+1018  1  0.7519
+1018  2  2.4438
+1018  3  6.4855
+1018  4 11.6551
+1018  5 18.2346
+1018  6 22.1823
+1018  7 23.4042
+1018  8 24.7201
+1018  9 26.2240
+1018 10 26.7880
+1018 11 26.7880
+1018 12 26.6000
+1018 13 26.0360
+1018 14 25.7541
+1018 15 24.4382
+1018 16 23.1223
+1018 17 21.7124
+1018 18 20.2085
+1018 19 18.5166
+1018 20 16.9187
+1018 21 13.3470
+1018 22  9.3993
+1018 23  6.5795
+1018 24  4.8876
+1018 25  2.1618
+1018 26  0.9399
+1018 27  0.3760
+1018 28  0.0940
+# pixel 1019
+1019  1  0.7402
+1019  2  2.4057
+1019  3  6.3844
+1019  4 11.4734
+1019  5 17.9503
+1019  6 21.8364
+1019  7 23.0392
+1019  8 24.3346
+1019  9 25.8151
+1019 10 26.3702
+1019 11 26.3702
+1019 12 26.1852
+1019 13 25.6300
+1019 14 25.3524
+1019 15 24.0570
+1019 16 22.7617
+1019 17 21.3738
+1019 18 19.8933
+1019 19 18.2278
+1019 20 16.6549
+1019 21 13.1388
+1019 22  9.2527
+1019 23  6.4769
+1019 24  4.8114
+1019 25  2.1281
+1019 26  0.9253
+1019 27  0.3701
+1019 28  0.0925
+# pixel 1020
+1020  1  0.6411
+1020  2  2.0834
+1020  3  5.5291
+1020  4  9.9363
+1020  5 15.5455
+1020  6 18.9110
+1020  7 19.9527
+1020  8 21.0745
+1020  9 22.3566
+1020 10 22.8374
+1020 11 22.8374
+1020 12 22.6772
+1020 13 22.1964
+1020 14 21.9560
+1020 15 20.8341
+1020 16 19.7123
+1020 17 18.5103
+1020 18 17.2282
+1020 19 15.7859
+1020 20 14.4236
+1020 21 11.3786
+1020 22  8.0131
+1020 23  5.6092
+1020 24  4.1668
+1020 25  1.8430
+1020 26  0.8013
+1020 27  0.3205
+1020 28  0.0801
+# pixel 1021
+1021  1  0.7754
+1021  2  2.5199
+1021  3  6.6874
+1021  4 12.0180
+1021  5 18.8023
+1021  6 22.8729
+1021  7 24.1329
+1021  8 25.4898
+1021  9 27.0405
+1021 10 27.6220
+1021 11 27.6220
+1021 12 27.4281
+1021 13 26.8466
+1021 14 26.5559
+1021 15 25.1990
+1021 16 23.8421
+1021 17 22.3883
+1021 18 20.8376
+1021 19 19.0931
+1021 20 17.4455
+1021 21 13.7625
+1021 22  9.6919
+1021 23  6.7843
+1021 24  5.0398
+1021 25  2.2291
+1021 26  0.9692
+1021 27  0.3877
+1021 28  0.0969
+# pixel 1022
+1022  1  0.7858
+1022  2  2.5540
+1022  3  6.7779
+1022  4 12.1805
+1022  5 19.0566
+1022  6 23.1822
+1022  7 24.4592
+1022  8 25.8344
+1022  9 27.4061
+1022 10 27.9955
+1022 11 27.9955
+1022 12 27.7990
+1022 13 27.2096
+1022 14 26.9150
+1022 15 25.5397
+1022 16 24.1645
+1022 17 22.6911
+1022 18 21.1194
+1022 19 19.3513
+1022 20 17.6814
+1022 21 13.9486
+1022 22  9.8230
+1022 23  6.8761
+1022 24  5.1079
+1022 25  2.2593
+1022 26  0.9823
+1022 27  0.3929
+1022 28  0.0982
+# pixel 1023
+1023  1  0.7670
+1023  2  2.4928
+1023  3  6.6155
+1023  4 11.8887
+1023  5 18.6000
+1023  6 22.6268
+1023  7 23.8732
+1023  8 25.2155
+1023  9 26.7495
+1023 10 27.3247
+1023 11 27.3247
+1023 12 27.1330
+1023 13 26.5577
+1023 14 26.2701
+1023 15 24.9278
+1023 16 23.5856
+1023 17 22.1474
+1023 18 20.6134
+1023 19 18.8876
+1023 20 17.2577
+1023 21 13.6144
+1023 22  9.5876
+1023 23  6.7113
+1023 24  4.9856
+1023 25  2.2052
+1023 26  0.9588
+1023 27  0.3835
+1023 28  0.0959
+# pixel 1024
+1024  1  0.7702
+1024  2  2.5031
+1024  3  6.6429
+1024  4 11.9379
+1024  5 18.6770
+1024  6 22.7205
+1024  7 23.9721
+1024  8 25.3199
+1024  9 26.8603
+1024 10 27.4379
+1024 11 27.4379
+1024 12 27.2454
+1024 13 26.6677
+1024 14 26.3789
+1024 15 25.0311
+1024 16 23.6832
+1024 17 22.2391
+1024 18 20.6988
+1024 19 18.9658
+1024 20 17.3292
+1024 21 13.6708
+1024 22  9.6273
+1024 23  6.7391
+1024 24  5.0062
+1024 25  2.2143
+1024 26  0.9627
+1024 27  0.3851
+1024 28  0.0963
+# pixel 1025
+1025  1  0.7964
+1025  2  2.5883
+1025  3  6.8690
+1025  4 12.3444
+1025  5 19.3130
+1025  6 23.4941
+1025  7 24.7883
+1025  8 26.1820
+1025  9 27.7748
+1025 10 28.3721
+1025 11 28.3721
+1025 12 28.1730
+1025 13 27.5757
+1025 14 27.2771
+1025 15 25.8834
+1025 16 24.4896
+1025 17 22.9964
+1025 18 21.4035
+1025 19 19.6116
+1025 20 17.9192
+1025 21 14.1363
+1025 22  9.9551
+1025 23  6.9686
+1025 24  5.1767
+1025 25  2.2897
+1025 26  0.9955
+1025 27  0.3982
+1025 28  0.0996
+# pixel 1026
+1026  1  0.6497
+1026  2  2.1117
+1026  3  5.6040
+1026  4 10.0710
+1026  5 15.7562
+1026  6 19.1673
+1026  7 20.2231
+1026  8 21.3602
+1026  9 22.6597
+1026 10 23.1470
+1026 11 23.1470
+1026 12 22.9845
+1026 13 22.4972
+1026 14 22.2536
+1026 15 21.1165
+1026 16 19.9795
+1026 17 18.7612
+1026 18 17.4618
+1026 19 15.9998
+1026 20 14.6191
+1026 21 11.5329
+1026 22  8.1217
+1026 23  5.6852
+1026 24  4.2233
+1026 25  1.8680
+1026 26  0.8122
+1026 27  0.3249
+1026 28  0.0812
+# pixel 1027
+1027  1  0.7264
+1027  2  2.3608
+1027  3  6.2653
+1027  4 11.2594
+1027  5 17.6155
+1027  6 21.4292
+1027  7 22.6096
+1027  8 23.8809
+1027  9 25.3337
+1027 10 25.8785
+1027 11 25.8785
+1027 12 25.6969
+1027 13 25.1521
+1027 14 24.8797
+1027 15 23.6085
+1027 16 22.3372
+1027 17 20.9752
+1027 18 19.5224
+1027 19 17.8879
+1027 20 16.3443
+1027 21 12.8938
+1027 22  9.0802
+1027 23  6.3561
+1027 24  4.7217
+1027 25  2.0884
+1027 26  0.9080
+1027 27  0.3632
+1027 28  0.0908
Index: /branches/start/MagicSoft/Simulation/Detector/Data/qe-emi.dat
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Data/qe-emi.dat	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Data/qe-emi.dat	(revision 4308)
@@ -0,0 +1,29 @@
+ 28
+ 270.0      0.8
+ 280.0      2.6
+ 290.0      6.9
+ 300.0     12.4
+ 310.0     19.4
+ 320.0     23.6
+ 330.0     24.9
+ 340.0     26.3
+ 350.0     27.9
+ 360.0     28.5
+ 370.0     28.5
+ 380.0     28.3
+ 390.0     27.7
+ 400.0     27.4
+ 410.0     26.0
+ 420.0     24.6
+ 430.0     23.1
+ 440.0     21.5
+ 450.0     19.7
+ 460.0     18.0
+ 480.0     14.2
+ 500.0     10.0
+ 520.0      7.0
+ 540.0      5.2
+ 560.0      2.3
+ 580.0      1.0
+ 600.0      0.4
+ 620.0      0.1
Index: /branches/start/MagicSoft/Simulation/Detector/Data/qe-ipd.RFL.dat
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Data/qe-ipd.RFL.dat	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Data/qe-ipd.RFL.dat	(revision 4308)
@@ -0,0 +1,29819 @@
+############################################################
+# Quantum Efficiency file, for each pixel in the camera
+# Copyright (c) 1998, J C Gonzalez
+#############################################################
+# This file is (still) for test purposes only
+#
+# first, number of datapoints, and wavelengths
+28
+270
+280
+290
+300
+310
+320
+330
+340
+350
+360
+370
+380
+390
+400
+410
+420
+430
+440
+450
+460
+480
+500
+520
+540
+560
+580
+600
+620
+# pixel 1
+1  1  0.6817
+1  2  2.2155
+1  3  5.8797
+1  4 10.5663
+1  5 16.5312
+1  6 20.1101
+1  7 21.2179
+1  8 22.4109
+1  9 23.7743
+1 10 24.2856
+1 11 24.2856
+1 12 24.1151
+1 13 23.6039
+1 14 23.3482
+1 15 22.1552
+1 16 20.9623
+1 17 19.6841
+1 18 18.3207
+1 19 16.7869
+1 20 15.3382
+1 21 12.1002
+1 22  8.5212
+1 23  5.9649
+1 24  4.4310
+1 25  1.9599
+1 26  0.8521
+1 27  0.3408
+1 28  0.0852
+# pixel 2
+2  1  0.7135
+2  2  2.3189
+2  3  6.1541
+2  4 11.0595
+2  5 17.3027
+2  6 21.0486
+2  7 22.2081
+2  8 23.4567
+2  9 24.8838
+2 10 25.4189
+2 11 25.4189
+2 12 25.2405
+2 13 24.7054
+2 14 24.4378
+2 15 23.1892
+2 16 21.9405
+2 17 20.6027
+2 18 19.1757
+2 19 17.5703
+2 20 16.0540
+2 21 12.6649
+2 22  8.9189
+2 23  6.2432
+2 24  4.6378
+2 25  2.0514
+2 26  0.8919
+2 27  0.3568
+2 28  0.0892
+# pixel 3
+3  1  0.7000
+3  2  2.2751
+3  3  6.0379
+3  4 10.8507
+3  5 16.9760
+3  6 20.6513
+3  7 21.7888
+3  8 23.0139
+3  9 24.4140
+3 10 24.9390
+3 11 24.9390
+3 12 24.7640
+3 13 24.2390
+3 14 23.9765
+3 15 22.7514
+3 16 21.5263
+3 17 20.2137
+3 18 18.8137
+3 19 17.2386
+3 20 15.7510
+3 21 12.4258
+3 22  8.7505
+3 23  6.1254
+3 24  4.5503
+3 25  2.0126
+3 26  0.8751
+3 27  0.3500
+3 28  0.0875
+# pixel 4
+4  1  0.7046
+4  2  2.2899
+4  3  6.0770
+4  4 10.9210
+4  5 17.0861
+4  6 20.7852
+4  7 21.9302
+4  8 23.1632
+4  9 24.5723
+4 10 25.1008
+4 11 25.1008
+4 12 24.9246
+4 13 24.3962
+4 14 24.1320
+4 15 22.8990
+4 16 21.6659
+4 17 20.3448
+4 18 18.9357
+4 19 17.3504
+4 20 15.8531
+4 21 12.5064
+4 22  8.8073
+4 23  6.1651
+4 24  4.5798
+4 25  2.0257
+4 26  0.8807
+4 27  0.3523
+4 28  0.0881
+# pixel 5
+5  1  0.6915
+5  2  2.2475
+5  3  5.9644
+5  4 10.7187
+5  5 16.7696
+5  6 20.4001
+5  7 21.5239
+5  8 22.7340
+5  9 24.1171
+5 10 24.6358
+5 11 24.6358
+5 12 24.4629
+5 13 23.9442
+5 14 23.6849
+5 15 22.4747
+5 16 21.2645
+5 17 19.9679
+5 18 18.5849
+5 19 17.0289
+5 20 15.5594
+5 21 12.2747
+5 22  8.6441
+5 23  6.0509
+5 24  4.4949
+5 25  1.9881
+5 26  0.8644
+5 27  0.3458
+5 28  0.0864
+# pixel 6
+6  1  0.6690
+6  2  2.1743
+6  3  5.7701
+6  4 10.3695
+6  5 16.2233
+6  6 19.7356
+6  7 20.8227
+6  8 21.9934
+6  9 23.3314
+6 10 23.8332
+6 11 23.8332
+6 12 23.6659
+6 13 23.1642
+6 14 22.9133
+6 15 21.7426
+6 16 20.5718
+6 17 19.3174
+6 18 17.9794
+6 19 16.4742
+6 20 15.0525
+6 21 11.8748
+6 22  8.3625
+6 23  5.8538
+6 24  4.3485
+6 25  1.9234
+6 26  0.8363
+6 27  0.3345
+6 28  0.0836
+# pixel 7
+7  1  0.8461
+7  2  2.7498
+7  3  7.2975
+7  4 13.1144
+7  5 20.5176
+7  6 24.9596
+7  7 26.3345
+7  8 27.8151
+7  9 29.5073
+7 10 30.1419
+7 11 30.1419
+7 12 29.9303
+7 13 29.2958
+7 14 28.9785
+7 15 27.4978
+7 16 26.0172
+7 17 24.4308
+7 18 22.7386
+7 19 20.8349
+7 20 19.0370
+7 21 15.0181
+7 22 10.5761
+7 23  7.4033
+7 24  5.4996
+7 25  2.4325
+7 26  1.0576
+7 27  0.4230
+7 28  0.1058
+# pixel 8
+8  1  0.7628
+8  2  2.4791
+8  3  6.5791
+8  4 11.8233
+8  5 18.4977
+8  6 22.5024
+8  7 23.7419
+8  8 25.0768
+8  9 26.6024
+8 10 27.1745
+8 11 27.1745
+8 12 26.9838
+8 13 26.4117
+8 14 26.1256
+8 15 24.7907
+8 16 23.4558
+8 17 22.0256
+8 18 20.5000
+8 19 18.7837
+8 20 17.1628
+8 21 13.5396
+8 22  9.5349
+8 23  6.6744
+8 24  4.9581
+8 25  2.1930
+8 26  0.9535
+8 27  0.3814
+8 28  0.0953
+# pixel 9
+9  1  0.7937
+9  2  2.5796
+9  3  6.8460
+9  4 12.3029
+9  5 19.2481
+9  6 23.4152
+9  7 24.7050
+9  8 26.0941
+9  9 27.6815
+9 10 28.2768
+9 11 28.2768
+9 12 28.0784
+9 13 27.4831
+9 14 27.1854
+9 15 25.7964
+9 16 24.4074
+9 17 22.9191
+9 18 21.3316
+9 19 19.5457
+9 20 17.8590
+9 21 14.0888
+9 22  9.9217
+9 23  6.9452
+9 24  5.1593
+9 25  2.2820
+9 26  0.9922
+9 27  0.3969
+9 28  0.0992
+# pixel 10
+10  1  0.8050
+10  2  2.6162
+10  3  6.9430
+10  4 12.4772
+10  5 19.5208
+10  6 23.7469
+10  7 25.0550
+10  8 26.4637
+10  9 28.0737
+10 10 28.6774
+10 11 28.6774
+10 12 28.4762
+10 13 27.8725
+10 14 27.5706
+10 15 26.1619
+10 16 24.7532
+10 17 23.2438
+10 18 21.6339
+10 19 19.8227
+10 20 18.1121
+10 21 14.2884
+10 22 10.0623
+10 23  7.0436
+10 24  5.2324
+10 25  2.3143
+10 26  1.0062
+10 27  0.4025
+10 28  0.1006
+# pixel 11
+11  1  0.6351
+11  2  2.0639
+11  3  5.4773
+11  4  9.8433
+11  5 15.4000
+11  6 18.7341
+11  7 19.7660
+11  8 20.8774
+11  9 22.1475
+11 10 22.6238
+11 11 22.6238
+11 12 22.4650
+11 13 21.9887
+11 14 21.7506
+11 15 20.6392
+11 16 19.5279
+11 17 18.3372
+11 18 17.0671
+11 19 15.6382
+11 20 14.2887
+11 21 11.2722
+11 22  7.9382
+11 23  5.5567
+11 24  4.1278
+11 25  1.8258
+11 26  0.7938
+11 27  0.3175
+11 28  0.0794
+# pixel 12
+12  1  0.7618
+12  2  2.4757
+12  3  6.5703
+12  4 11.8074
+12  5 18.4729
+12  6 22.4722
+12  7 23.7100
+12  8 25.0431
+12  9 26.5667
+12 10 27.1380
+12 11 27.1380
+12 12 26.9475
+12 13 26.3762
+12 14 26.0906
+12 15 24.7575
+12 16 23.4244
+12 17 21.9961
+12 18 20.4725
+12 19 18.7585
+12 20 17.1398
+12 21 13.5214
+12 22  9.5221
+12 23  6.6655
+12 24  4.9515
+12 25  2.1901
+12 26  0.9522
+12 27  0.3809
+12 28  0.0952
+# pixel 13
+13  1  0.7411
+13  2  2.4087
+13  3  6.3923
+13  4 11.4876
+13  5 17.9726
+13  6 21.8636
+13  7 23.0679
+13  8 24.3649
+13  9 25.8472
+13 10 26.4030
+13 11 26.4030
+13 12 26.2177
+13 13 25.6619
+13 14 25.3840
+13 15 24.0870
+13 16 22.7900
+13 17 21.4003
+13 18 19.9181
+13 19 18.2505
+13 20 16.6756
+13 21 13.1552
+13 22  9.2642
+13 23  6.4850
+13 24  4.8174
+13 25  2.1308
+13 26  0.9264
+13 27  0.3706
+13 28  0.0926
+# pixel 14
+14  1  0.7494
+14  2  2.4357
+14  3  6.4639
+14  4 11.6162
+14  5 18.1738
+14  6 22.1083
+14  7 23.3262
+14  8 24.6377
+14  9 26.1366
+14 10 26.6986
+14 11 26.6986
+14 12 26.5113
+14 13 25.9492
+14 14 25.6682
+14 15 24.3567
+14 16 23.0451
+14 17 21.6399
+14 18 20.1411
+14 19 18.4548
+14 20 16.8623
+14 21 13.3025
+14 22  9.3679
+14 23  6.5576
+14 24  4.8713
+14 25  2.1546
+14 26  0.9368
+14 27  0.3747
+14 28  0.0937
+# pixel 15
+15  1  0.7811
+15  2  2.5385
+15  3  6.7367
+15  4 12.1065
+15  5 18.9408
+15  6 23.0414
+15  7 24.3106
+15  8 25.6775
+15  9 27.2396
+15 10 27.8254
+15 11 27.8254
+15 12 27.6301
+15 13 27.0443
+15 14 26.7514
+15 15 25.3846
+15 16 24.0177
+15 17 22.5532
+15 18 20.9911
+15 19 19.2337
+15 20 17.5739
+15 21 13.8639
+15 22  9.7633
+15 23  6.8343
+15 24  5.0769
+15 25  2.2456
+15 26  0.9763
+15 27  0.3905
+15 28  0.0976
+# pixel 16
+16  1  0.6894
+16  2  2.2404
+16  3  5.9456
+16  4 10.6849
+16  5 16.7168
+16  6 20.3358
+16  7 21.4560
+16  8 22.6624
+16  9 24.0411
+16 10 24.5581
+16 11 24.5581
+16 12 24.3858
+16 13 23.8688
+16 14 23.6103
+16 15 22.4039
+16 16 21.1975
+16 17 19.9050
+16 18 18.5263
+16 19 16.9753
+16 20 15.5104
+16 21 12.2360
+16 22  8.6169
+16 23  6.0318
+16 24  4.4808
+16 25  1.9819
+16 26  0.8617
+16 27  0.3447
+16 28  0.0862
+# pixel 17
+17  1  0.8102
+17  2  2.6330
+17  3  6.9876
+17  4 12.5574
+17  5 19.6463
+17  6 23.8997
+17  7 25.2162
+17  8 26.6339
+17  9 28.2542
+17 10 28.8619
+17 11 28.8619
+17 12 28.6593
+17 13 28.0517
+17 14 27.7479
+17 15 26.3301
+17 16 24.9123
+17 17 23.3933
+17 18 21.7730
+17 19 19.9501
+17 20 18.2285
+17 21 14.3803
+17 22 10.1270
+17 23  7.0889
+17 24  5.2660
+17 25  2.3292
+17 26  1.0127
+17 27  0.4051
+17 28  0.1013
+# pixel 18
+18  1  0.6997
+18  2  2.2741
+18  3  6.0352
+18  4 10.8459
+18  5 16.9686
+18  6 20.6422
+18  7 21.7793
+18  8 23.0038
+18  9 24.4033
+18 10 24.9281
+18 11 24.9281
+18 12 24.7532
+18 13 24.2284
+18 14 23.9660
+18 15 22.7414
+18 16 21.5169
+18 17 20.2049
+18 18 18.8054
+18 19 17.2310
+18 20 15.7441
+18 21 12.4203
+18 22  8.7467
+18 23  6.1227
+18 24  4.5483
+18 25  2.0117
+18 26  0.8747
+18 27  0.3499
+18 28  0.0875
+# pixel 19
+19  1  0.7263
+19  2  2.3604
+19  3  6.2642
+19  4 11.2573
+19  5 17.6123
+19  6 21.4252
+19  7 22.6054
+19  8 23.8764
+19  9 25.3290
+19 10 25.8737
+19 11 25.8737
+19 12 25.6921
+19 13 25.1474
+19 14 24.8750
+19 15 23.6041
+19 16 22.3331
+19 17 20.9713
+19 18 19.5187
+19 19 17.8846
+19 20 16.3413
+19 21 12.8914
+19 22  9.0785
+19 23  6.3549
+19 24  4.7208
+19 25  2.0881
+19 26  0.9078
+19 27  0.3631
+19 28  0.0908
+# pixel 20
+20  1  0.6934
+20  2  2.2534
+20  3  5.9803
+20  4 10.7472
+20  5 16.8142
+20  6 20.4544
+20  7 21.5811
+20  8 22.7945
+20  9 24.1812
+20 10 24.7013
+20 11 24.7013
+20 12 24.5279
+20 13 24.0079
+20 14 23.7479
+20 15 22.5345
+20 16 21.3211
+20 17 20.0210
+20 18 18.6343
+20 19 17.0742
+20 20 15.6008
+20 21 12.3073
+20 22  8.6671
+20 23  6.0670
+20 24  4.5069
+20 25  1.9934
+20 26  0.8667
+20 27  0.3467
+20 28  0.0867
+# pixel 21
+21  1  0.6788
+21  2  2.2061
+21  3  5.8545
+21  4 10.5212
+21  5 16.4606
+21  6 20.0242
+21  7 21.1272
+21  8 22.3151
+21  9 23.6727
+21 10 24.1817
+21 11 24.1817
+21 12 24.0120
+21 13 23.5030
+21 14 23.2484
+21 15 22.0605
+21 16 20.8727
+21 17 19.5999
+21 18 18.2424
+21 19 16.7151
+21 20 15.2727
+21 21 12.0484
+21 22  8.4848
+21 23  5.9394
+21 24  4.4121
+21 25  1.9515
+21 26  0.8485
+21 27  0.3394
+21 28  0.0848
+# pixel 22
+22  1  0.8059
+22  2  2.6192
+22  3  6.9508
+22  4 12.4914
+22  5 19.5429
+22  6 23.7739
+22  7 25.0835
+22  8 26.4938
+22  9 28.1056
+22 10 28.7100
+22 11 28.7100
+22 12 28.5085
+22 13 27.9041
+22 14 27.6019
+22 15 26.1916
+22 16 24.7813
+22 17 23.2702
+22 18 21.6584
+22 19 19.8452
+22 20 18.1326
+22 21 14.3046
+22 22 10.0737
+22 23  7.0516
+22 24  5.2383
+22 25  2.3169
+22 26  1.0074
+22 27  0.4029
+22 28  0.1007
+# pixel 23
+23  1  0.7317
+23  2  2.3782
+23  3  6.3113
+23  4 11.3420
+23  5 17.7448
+23  6 21.5864
+23  7 22.7755
+23  8 24.0561
+23  9 25.5195
+23 10 26.0683
+23 11 26.0683
+23 12 25.8854
+23 13 25.3366
+23 14 25.0622
+23 15 23.7817
+23 16 22.5011
+23 17 21.1291
+23 18 19.6656
+23 19 18.0192
+23 20 16.4642
+23 21 12.9884
+23 22  9.1468
+23 23  6.4028
+23 24  4.7563
+23 25  2.1038
+23 26  0.9147
+23 27  0.3659
+23 28  0.0915
+# pixel 24
+24  1  0.6833
+24  2  2.2206
+24  3  5.8932
+24  4 10.5907
+24  5 16.5694
+24  6 20.1566
+24  7 21.2669
+24  8 22.4626
+24  9 23.8292
+24 10 24.3416
+24 11 24.3416
+24 12 24.1708
+24 13 23.6583
+24 14 23.4021
+24 15 22.2064
+24 16 21.0107
+24 17 19.7295
+24 18 18.3630
+24 19 16.8256
+24 20 15.3737
+24 21 12.1281
+24 22  8.5409
+24 23  5.9786
+24 24  4.4413
+24 25  1.9644
+24 26  0.8541
+24 27  0.3416
+24 28  0.0854
+# pixel 25
+25  1  0.7114
+25  2  2.3120
+25  3  6.1356
+25  4 11.0262
+25  5 17.2507
+25  6 20.9854
+25  7 22.1414
+25  8 23.3863
+25  9 24.8090
+25 10 25.3426
+25 11 25.3426
+25 12 25.1647
+25 13 24.6312
+25 14 24.3644
+25 15 23.1195
+25 16 21.8746
+25 17 20.5408
+25 18 19.1181
+25 19 17.5175
+25 20 16.0058
+25 21 12.6268
+25 22  8.8921
+25 23  6.2245
+25 24  4.6239
+25 25  2.0452
+25 26  0.8892
+25 27  0.3557
+25 28  0.0889
+# pixel 26
+26  1  0.6831
+26  2  2.2199
+26  3  5.8913
+26  4 10.5873
+26  5 16.5640
+26  6 20.1501
+26  7 21.2600
+26  8 22.4554
+26  9 23.8215
+26 10 24.3338
+26 11 24.3338
+26 12 24.1630
+26 13 23.6507
+26 14 23.3946
+26 15 22.1992
+26 16 21.0039
+26 17 19.7232
+26 18 18.3570
+26 19 16.8202
+26 20 15.3687
+26 21 12.1242
+26 22  8.5382
+26 23  5.9767
+26 24  4.4398
+26 25  1.9638
+26 26  0.8538
+26 27  0.3415
+26 28  0.0854
+# pixel 27
+27  1  0.6877
+27  2  2.2349
+27  3  5.9311
+27  4 10.6588
+27  5 16.6758
+27  6 20.2860
+27  7 21.4035
+27  8 22.6069
+27  9 23.9822
+27 10 24.4979
+27 11 24.4979
+27 12 24.3260
+27 13 23.8103
+27 14 23.5524
+27 15 22.3490
+27 16 21.1456
+27 17 19.8562
+27 18 18.4809
+27 19 16.9337
+27 20 15.4724
+27 21 12.2060
+27 22  8.5958
+27 23  6.0170
+27 24  4.4698
+27 25  1.9770
+27 26  0.8596
+27 27  0.3438
+27 28  0.0860
+# pixel 28
+28  1  0.7363
+28  2  2.3931
+28  3  6.3509
+28  4 11.4132
+28  5 17.8562
+28  6 21.7220
+28  7 22.9185
+28  8 24.2071
+28  9 25.6798
+28 10 26.2320
+28 11 26.2320
+28 12 26.0479
+28 13 25.4957
+28 14 25.2196
+28 15 23.9310
+28 16 22.6424
+28 17 21.2617
+28 18 19.7891
+28 19 18.1323
+28 20 16.5676
+28 21 13.0700
+28 22  9.2042
+28 23  6.4430
+28 24  4.7862
+28 25  2.1170
+28 26  0.9204
+28 27  0.3682
+28 28  0.0920
+# pixel 29
+29  1  0.7242
+29  2  2.3535
+29  3  6.2459
+29  4 11.2245
+29  5 17.5610
+29  6 21.3628
+29  7 22.5396
+29  8 23.8069
+29  9 25.2552
+29 10 25.7983
+29 11 25.7983
+29 12 25.6173
+29 13 25.0741
+29 14 24.8026
+29 15 23.5353
+29 16 22.2680
+29 17 20.9102
+29 18 19.4619
+29 19 17.8325
+29 20 16.2937
+29 21 12.8539
+29 22  9.0520
+29 23  6.3364
+29 24  4.7071
+29 25  2.0820
+29 26  0.9052
+29 27  0.3621
+29 28  0.0905
+# pixel 30
+30  1  0.7281
+30  2  2.3663
+30  3  6.2798
+30  4 11.2855
+30  5 17.6563
+30  6 21.4788
+30  7 22.6619
+30  8 23.9361
+30  9 25.3923
+30 10 25.9383
+30 11 25.9383
+30 12 25.7563
+30 13 25.2102
+30 14 24.9372
+30 15 23.6630
+30 16 22.3889
+30 17 21.0237
+30 18 19.5675
+30 19 17.9293
+30 20 16.3821
+30 21 12.9237
+30 22  9.1012
+30 23  6.3708
+30 24  4.7326
+30 25  2.0933
+30 26  0.9101
+30 27  0.3640
+30 28  0.0910
+# pixel 31
+31  1  0.7412
+31  2  2.4089
+31  3  6.3929
+31  4 11.4886
+31  5 17.9742
+31  6 21.8655
+31  7 23.0699
+31  8 24.3671
+31  9 25.8495
+31 10 26.4054
+31 11 26.4054
+31 12 26.2201
+31 13 25.6642
+31 14 25.3862
+31 15 24.0891
+31 16 22.7920
+31 17 21.4022
+31 18 19.9198
+31 19 18.2521
+31 20 16.6771
+31 21 13.1564
+31 22  9.2650
+31 23  6.4855
+31 24  4.8178
+31 25  2.1310
+31 26  0.9265
+31 27  0.3706
+31 28  0.0927
+# pixel 32
+32  1  0.7442
+32  2  2.4188
+32  3  6.4190
+32  4 11.5356
+32  5 18.0477
+32  6 21.9549
+32  7 23.1643
+32  8 24.4667
+32  9 25.9552
+32 10 26.5134
+32 11 26.5134
+32 12 26.3273
+32 13 25.7691
+32 14 25.4900
+32 15 24.1876
+32 16 22.8852
+32 17 21.4898
+32 18 20.0013
+32 19 18.3268
+32 20 16.7453
+32 21 13.2102
+32 22  9.3029
+32 23  6.5121
+32 24  4.8375
+32 25  2.1397
+32 26  0.9303
+32 27  0.3721
+32 28  0.0930
+# pixel 33
+33  1  0.6260
+33  2  2.0344
+33  3  5.3989
+33  4  9.7023
+33  5 15.1794
+33  6 18.4657
+33  7 19.4828
+33  8 20.5783
+33  9 21.8302
+33 10 22.2996
+33 11 22.2996
+33 12 22.1431
+33 13 21.6737
+33 14 21.4389
+33 15 20.3435
+33 16 19.2481
+33 17 18.0744
+33 18 16.8225
+33 19 15.4141
+33 20 14.0840
+33 21 11.1107
+33 22  7.8244
+33 23  5.4771
+33 24  4.0687
+33 25  1.7996
+33 26  0.7824
+33 27  0.3130
+33 28  0.0782
+# pixel 34
+34  1  0.7254
+34  2  2.3576
+34  3  6.2566
+34  4 11.2438
+34  5 17.5910
+34  6 21.3994
+34  7 22.5782
+34  8 23.8476
+34  9 25.2984
+34 10 25.8425
+34 11 25.8425
+34 12 25.6611
+34 13 25.1171
+34 14 24.8451
+34 15 23.5756
+34 16 22.3062
+34 17 20.9460
+34 18 19.4952
+34 19 17.8631
+34 20 16.3216
+34 21 12.8759
+34 22  9.0675
+34 23  6.3473
+34 24  4.7151
+34 25  2.0855
+34 26  0.9068
+34 27  0.3627
+34 28  0.0907
+# pixel 35
+35  1  0.7109
+35  2  2.3103
+35  3  6.1312
+35  4 11.0184
+35  5 17.2384
+35  6 20.9705
+35  7 22.1256
+35  8 23.3696
+35  9 24.7914
+35 10 25.3245
+35 11 25.3245
+35 12 25.1468
+35 13 24.6136
+35 14 24.3471
+35 15 23.1031
+35 16 21.8591
+35 17 20.5262
+35 18 19.1045
+35 19 17.5050
+35 20 15.9944
+35 21 12.6178
+35 22  8.8858
+35 23  6.2201
+35 24  4.6206
+35 25  2.0437
+35 26  0.8886
+35 27  0.3554
+35 28  0.0889
+# pixel 36
+36  1  0.7534
+36  2  2.4485
+36  3  6.4979
+36  4 11.6773
+36  5 18.2693
+36  6 22.2246
+36  7 23.4488
+36  8 24.7672
+36  9 26.2740
+36 10 26.8390
+36 11 26.8390
+36 12 26.6506
+36 13 26.0856
+36 14 25.8031
+36 15 24.4847
+36 16 23.1663
+36 17 21.7537
+36 18 20.2470
+36 19 18.5519
+36 20 16.9509
+36 21 13.3724
+36 22  9.4172
+36 23  6.5920
+36 24  4.8969
+36 25  2.1660
+36 26  0.9417
+36 27  0.3767
+36 28  0.0942
+# pixel 37
+37  1  0.8047
+37  2  2.6152
+37  3  6.9404
+37  4 12.4725
+37  5 19.5135
+37  6 23.7380
+37  7 25.0456
+37  8 26.4538
+37  9 28.0632
+37 10 28.6667
+37 11 28.6667
+37 12 28.4655
+37 13 27.8620
+37 14 27.5603
+37 15 26.1521
+37 16 24.7439
+37 17 23.2351
+37 18 21.6258
+37 19 19.8152
+37 20 18.1053
+37 21 14.2831
+37 22 10.0585
+37 23  7.0409
+37 24  5.2304
+37 25  2.3135
+37 26  1.0058
+37 27  0.4023
+37 28  0.1006
+# pixel 38
+38  1  0.7662
+38  2  2.4901
+38  3  6.6083
+38  4 11.8757
+38  5 18.5798
+38  6 22.6022
+38  7 23.8473
+38  8 25.1881
+38  9 26.7204
+38 10 27.2951
+38 11 27.2951
+38 12 27.1035
+38 13 26.5289
+38 14 26.2416
+38 15 24.9008
+38 16 23.5600
+38 17 22.1234
+38 18 20.5910
+38 19 18.8671
+38 20 17.2390
+38 21 13.5996
+38 22  9.5772
+38 23  6.7041
+38 24  4.9802
+38 25  2.2028
+38 26  0.9577
+38 27  0.3831
+38 28  0.0958
+# pixel 39
+39  1  0.7650
+39  2  2.4862
+39  3  6.5979
+39  4 11.8570
+39  5 18.5505
+39  6 22.5666
+39  7 23.8097
+39  8 25.1484
+39  9 26.6783
+39 10 27.2520
+39 11 27.2520
+39 12 27.0608
+39 13 26.4871
+39 14 26.2002
+39 15 24.8615
+39 16 23.5228
+39 17 22.0885
+39 18 20.5586
+39 19 18.8374
+39 20 17.2118
+39 21 13.5782
+39 22  9.5621
+39 23  6.6935
+39 24  4.9723
+39 25  2.1993
+39 26  0.9562
+39 27  0.3825
+39 28  0.0956
+# pixel 40
+40  1  0.7369
+40  2  2.3948
+40  3  6.3555
+40  4 11.4215
+40  5 17.8692
+40  6 21.7378
+40  7 22.9352
+40  8 24.2247
+40  9 25.6985
+40 10 26.2511
+40 11 26.2511
+40 12 26.0669
+40 13 25.5142
+40 14 25.2379
+40 15 23.9484
+40 16 22.6589
+40 17 21.2772
+40 18 19.8035
+40 19 18.1455
+40 20 16.5797
+40 21 13.0795
+40 22  9.2109
+40 23  6.4476
+40 24  4.7897
+40 25  2.1185
+40 26  0.9211
+40 27  0.3684
+40 28  0.0921
+# pixel 41
+41  1  0.6993
+41  2  2.2728
+41  3  6.0318
+41  4 10.8397
+41  5 16.9589
+41  6 20.6305
+41  7 21.7669
+41  8 22.9907
+41  9 24.3894
+41 10 24.9139
+41 11 24.9139
+41 12 24.7391
+41 13 24.2146
+41 14 23.9523
+41 15 22.7285
+41 16 21.5046
+41 17 20.1934
+41 18 18.7947
+41 19 17.2212
+41 20 15.7351
+41 21 12.4132
+41 22  8.7417
+41 23  6.1192
+41 24  4.5457
+41 25  2.0106
+41 26  0.8742
+41 27  0.3497
+41 28  0.0874
+# pixel 42
+42  1  0.8431
+42  2  2.7399
+42  3  7.2714
+42  4 13.0674
+42  5 20.4442
+42  6 24.8703
+42  7 26.2403
+42  8 27.7156
+42  9 29.4017
+42 10 30.0340
+42 11 30.0340
+42 12 29.8233
+42 13 29.1910
+42 14 28.8748
+42 15 27.3995
+42 16 25.9241
+42 17 24.3434
+42 18 22.6573
+42 19 20.7604
+42 20 18.9689
+42 21 14.9643
+42 22 10.5383
+42 23  7.3768
+42 24  5.4799
+42 25  2.4238
+42 26  1.0538
+42 27  0.4215
+42 28  0.1054
+# pixel 43
+43  1  0.6972
+43  2  2.2658
+43  3  6.0132
+43  4 10.8063
+43  5 16.9066
+43  6 20.5668
+43  7 21.6997
+43  8 22.9198
+43  9 24.3141
+43 10 24.8370
+43 11 24.8370
+43 12 24.6627
+43 13 24.1398
+43 14 23.8784
+43 15 22.6583
+43 16 21.4383
+43 17 20.1311
+43 18 18.7367
+43 19 17.1680
+43 20 15.6865
+43 21 12.3749
+43 22  8.7147
+43 23  6.1003
+43 24  4.5317
+43 25  2.0044
+43 26  0.8715
+43 27  0.3486
+43 28  0.0871
+# pixel 44
+44  1  0.8253
+44  2  2.6822
+44  3  7.1181
+44  4 12.7919
+44  5 20.0131
+44  6 24.3459
+44  7 25.6870
+44  8 27.1312
+44  9 28.7818
+44 10 29.4007
+44 11 29.4007
+44 12 29.1944
+44 13 28.5754
+44 14 28.2660
+44 15 26.8217
+44 16 25.3775
+44 17 23.8301
+44 18 22.1795
+44 19 20.3226
+44 20 18.5689
+44 21 14.6488
+44 22 10.3160
+44 23  7.2212
+44 24  5.3643
+44 25  2.3727
+44 26  1.0316
+44 27  0.4126
+44 28  0.1032
+# pixel 45
+45  1  0.8569
+45  2  2.7850
+45  3  7.3910
+45  4 13.2823
+45  5 20.7804
+45  6 25.2793
+45  7 26.6718
+45  8 28.1714
+45  9 29.8853
+45 10 30.5280
+45 11 30.5280
+45 12 30.3137
+45 13 29.6710
+45 14 29.3497
+45 15 27.8501
+45 16 26.3504
+45 17 24.7437
+45 18 23.0299
+45 19 21.1018
+45 20 19.2808
+45 21 15.2104
+45 22 10.7116
+45 23  7.4981
+45 24  5.5700
+45 25  2.4637
+45 26  1.0712
+45 27  0.4285
+45 28  0.1071
+# pixel 46
+46  1  0.7792
+46  2  2.5325
+46  3  6.7208
+46  4 12.0780
+46  5 18.8963
+46  6 22.9872
+46  7 24.2535
+46  8 25.6171
+46  9 27.1756
+46 10 27.7600
+46 11 27.7600
+46 12 27.5652
+46 13 26.9808
+46 14 26.6886
+46 15 25.3249
+46 16 23.9613
+46 17 22.5002
+46 18 20.9418
+46 19 19.1885
+46 20 17.5326
+46 21 13.8313
+46 22  9.7404
+46 23  6.8182
+46 24  5.0650
+46 25  2.2403
+46 26  0.9740
+46 27  0.3896
+46 28  0.0974
+# pixel 47
+47  1  0.7502
+47  2  2.4382
+47  3  6.4707
+47  4 11.6285
+47  5 18.1930
+47  6 22.1317
+47  7 23.3508
+47  8 24.6637
+47  9 26.1641
+47 10 26.7268
+47 11 26.7268
+47 12 26.5392
+47 13 25.9766
+47 14 25.6952
+47 15 24.3823
+47 16 23.0694
+47 17 21.6628
+47 18 20.1623
+47 19 18.4743
+47 20 16.8801
+47 21 13.3165
+47 22  9.3778
+47 23  6.5645
+47 24  4.8765
+47 25  2.1569
+47 26  0.9378
+47 27  0.3751
+47 28  0.0938
+# pixel 48
+48  1  0.7195
+48  2  2.3385
+48  3  6.2060
+48  4 11.1529
+48  5 17.4489
+48  6 21.2264
+48  7 22.3957
+48  8 23.6549
+48  9 25.0940
+48 10 25.6336
+48 11 25.6336
+48 12 25.4537
+48 13 24.9141
+48 14 24.6443
+48 15 23.3851
+48 16 22.1259
+48 17 20.7767
+48 18 19.3376
+48 19 17.7187
+48 20 16.1897
+48 21 12.7718
+48 22  8.9943
+48 23  6.2960
+48 24  4.6770
+48 25  2.0687
+48 26  0.8994
+48 27  0.3598
+48 28  0.0899
+# pixel 49
+49  1  0.7548
+49  2  2.4530
+49  3  6.5099
+49  4 11.6990
+49  5 18.3033
+49  6 22.2659
+49  7 23.4924
+49  8 24.8132
+49  9 26.3228
+49 10 26.8889
+49 11 26.8889
+49 12 26.7002
+49 13 26.1341
+49 14 25.8511
+49 15 24.5302
+49 16 23.2093
+49 17 21.7941
+49 18 20.2846
+49 19 18.5863
+49 20 16.9824
+49 21 13.3973
+49 22  9.4347
+49 23  6.6043
+49 24  4.9060
+49 25  2.1700
+49 26  0.9435
+49 27  0.3774
+49 28  0.0943
+# pixel 50
+50  1  0.7132
+50  2  2.3178
+50  3  6.1511
+50  4 11.0542
+50  5 17.2945
+50  6 21.0387
+50  7 22.1976
+50  8 23.4457
+50  9 24.8720
+50 10 25.4069
+50 11 25.4069
+50 12 25.2286
+50 13 24.6937
+50 14 24.4263
+50 15 23.1782
+50 16 21.9302
+50 17 20.5930
+50 18 19.1666
+50 19 17.5620
+50 20 16.0465
+50 21 12.6589
+50 22  8.9147
+50 23  6.2403
+50 24  4.6356
+50 25  2.0504
+50 26  0.8915
+50 27  0.3566
+50 28  0.0891
+# pixel 51
+51  1  0.7803
+51  2  2.5359
+51  3  6.7299
+51  4 12.0942
+51  5 18.9216
+51  6 23.0181
+51  7 24.2860
+51  8 25.6515
+51  9 27.2121
+51 10 27.7973
+51 11 27.7973
+51 12 27.6022
+51 13 27.0170
+51 14 26.7244
+51 15 25.3589
+51 16 23.9934
+51 17 22.5304
+51 18 20.9699
+51 19 19.2143
+51 20 17.5562
+51 21 13.8499
+51 22  9.7534
+51 23  6.8274
+51 24  5.0718
+51 25  2.2433
+51 26  0.9753
+51 27  0.3901
+51 28  0.0975
+# pixel 52
+52  1  0.7113
+52  2  2.3119
+52  3  6.1354
+52  4 11.0259
+52  5 17.2502
+52  6 20.9848
+52  7 22.1407
+52  8 23.3856
+52  9 24.8083
+52 10 25.3418
+52 11 25.3418
+52 12 25.1639
+52 13 24.6304
+52 14 24.3637
+52 15 23.1188
+52 16 21.8740
+52 17 20.5402
+52 18 19.1175
+52 19 17.5169
+52 20 16.0053
+52 21 12.6264
+52 22  8.8919
+52 23  6.2243
+52 24  4.6238
+52 25  2.0451
+52 26  0.8892
+52 27  0.3557
+52 28  0.0889
+# pixel 53
+53  1  0.6633
+53  2  2.1558
+53  3  5.7213
+53  4 10.2817
+53  5 16.0859
+53  6 19.5684
+53  7 20.6464
+53  8 21.8072
+53  9 23.1339
+53 10 23.6314
+53 11 23.6314
+53 12 23.4655
+53 13 22.9680
+53 14 22.7193
+53 15 21.5585
+53 16 20.3976
+53 17 19.1539
+53 18 17.8272
+53 19 16.3347
+53 20 14.9251
+53 21 11.7742
+53 22  8.2917
+53 23  5.8042
+53 24  4.3117
+53 25  1.9071
+53 26  0.8292
+53 27  0.3317
+53 28  0.0829
+# pixel 54
+54  1  0.7450
+54  2  2.4212
+54  3  6.4256
+54  4 11.5474
+54  5 18.0661
+54  6 21.9773
+54  7 23.1879
+54  8 24.4916
+54  9 25.9816
+54 10 26.5403
+54 11 26.5403
+54 12 26.3541
+54 13 25.7954
+54 14 25.5160
+54 15 24.2122
+54 16 22.9085
+54 17 21.5116
+54 18 20.0217
+54 19 18.3454
+54 20 16.7623
+54 21 13.2236
+54 22  9.3124
+54 23  6.5187
+54 24  4.8424
+54 25  2.1419
+54 26  0.9312
+54 27  0.3725
+54 28  0.0931
+# pixel 55
+55  1  0.7297
+55  2  2.3716
+55  3  6.2939
+55  4 11.3107
+55  5 17.6958
+55  6 21.5269
+55  7 22.7127
+55  8 23.9897
+55  9 25.4492
+55 10 25.9965
+55 11 25.9965
+55 12 25.8140
+55 13 25.2667
+55 14 24.9931
+55 15 23.7161
+55 16 22.4391
+55 17 21.0708
+55 18 19.6114
+55 19 17.9695
+55 20 16.4188
+55 21 12.9526
+55 22  9.1216
+55 23  6.3851
+55 24  4.7432
+55 25  2.0980
+55 26  0.9122
+55 27  0.3649
+55 28  0.0912
+# pixel 56
+56  1  0.7419
+56  2  2.4112
+56  3  6.3991
+56  4 11.4998
+56  5 17.9916
+56  6 21.8867
+56  7 23.0923
+56  8 24.3906
+56  9 25.8745
+56 10 26.4309
+56 11 26.4309
+56 12 26.2454
+56 13 25.6890
+56 14 25.4108
+56 15 24.1124
+56 16 22.8141
+56 17 21.4230
+56 18 19.9391
+56 19 18.2698
+56 20 16.6932
+56 21 13.1691
+56 22  9.2740
+56 23  6.4918
+56 24  4.8225
+56 25  2.1330
+56 26  0.9274
+56 27  0.3710
+56 28  0.0927
+# pixel 57
+57  1  0.7409
+57  2  2.4081
+57  3  6.3907
+57  4 11.4847
+57  5 17.9680
+57  6 21.8579
+57  7 23.0620
+57  8 24.3586
+57  9 25.8405
+57 10 26.3962
+57 11 26.3962
+57 12 26.2110
+57 13 25.6553
+57 14 25.3774
+57 15 24.0808
+57 16 22.7841
+57 17 21.3948
+57 18 19.9130
+57 19 18.2458
+57 20 16.6713
+57 21 13.1518
+57 22  9.2618
+57 23  6.4833
+57 24  4.8162
+57 25  2.1302
+57 26  0.9262
+57 27  0.3705
+57 28  0.0926
+# pixel 58
+58  1  0.7922
+58  2  2.5745
+58  3  6.8323
+58  4 12.2784
+58  5 19.2097
+58  6 23.3685
+58  7 24.6558
+58  8 26.0420
+58  9 27.6263
+58 10 28.2205
+58 11 28.2205
+58 12 28.0224
+58 13 27.4283
+58 14 27.1312
+58 15 25.7450
+58 16 24.3587
+58 17 22.8734
+58 18 21.2891
+58 19 19.5068
+58 20 17.8234
+58 21 14.0607
+58 22  9.9019
+58 23  6.9313
+58 24  5.1490
+58 25  2.2774
+58 26  0.9902
+58 27  0.3961
+58 28  0.0990
+# pixel 59
+59  1  0.7745
+59  2  2.5172
+59  3  6.6802
+59  4 12.0049
+59  5 18.7819
+59  6 22.8481
+59  7 24.1067
+59  8 25.4621
+59  9 27.0111
+59 10 27.5920
+59 11 27.5920
+59 12 27.3984
+59 13 26.8175
+59 14 26.5271
+59 15 25.1717
+59 16 23.8163
+59 17 22.3640
+59 18 20.8150
+59 19 19.0724
+59 20 17.4265
+59 21 13.7476
+59 22  9.6814
+59 23  6.7770
+59 24  5.0343
+59 25  2.2267
+59 26  0.9681
+59 27  0.3873
+59 28  0.0968
+# pixel 60
+60  1  0.6662
+60  2  2.1650
+60  3  5.7456
+60  4 10.3255
+60  5 16.1544
+60  6 19.6518
+60  7 20.7343
+60  8 21.9001
+60  9 23.2324
+60 10 23.7320
+60 11 23.7320
+60 12 23.5655
+60 13 23.0659
+60 14 22.8161
+60 15 21.6503
+60 16 20.4845
+60 17 19.2354
+60 18 17.9031
+60 19 16.4042
+60 20 14.9886
+60 21 11.8244
+60 22  8.3270
+60 23  5.8289
+60 24  4.3301
+60 25  1.9152
+60 26  0.8327
+60 27  0.3331
+60 28  0.0833
+# pixel 61
+61  1  0.6956
+61  2  2.2608
+61  3  5.9998
+61  4 10.7822
+61  5 16.8690
+61  6 20.5210
+61  7 21.6514
+61  8 22.8688
+61  9 24.2600
+61 10 24.7817
+61 11 24.7817
+61 12 24.6078
+61 13 24.0861
+61 14 23.8253
+61 15 22.6079
+61 16 21.3906
+61 17 20.0863
+61 18 18.6950
+61 19 17.1298
+61 20 15.6516
+61 21 12.3474
+61 22  8.6953
+61 23  6.0867
+61 24  4.5216
+61 25  1.9999
+61 26  0.8695
+61 27  0.3478
+61 28  0.0870
+# pixel 62
+62  1  0.7884
+62  2  2.5622
+62  3  6.7997
+62  4 12.2197
+62  5 19.1179
+62  6 23.2568
+62  7 24.5379
+62  8 25.9176
+62  9 27.4943
+62 10 28.0856
+62 11 28.0856
+62 12 27.8885
+62 13 27.2972
+62 14 27.0016
+62 15 25.6219
+62 16 24.2423
+62 17 22.7641
+62 18 21.1874
+62 19 19.4135
+62 20 17.7383
+62 21 13.9935
+62 22  9.8546
+62 23  6.8982
+62 24  5.1244
+62 25  2.2666
+62 26  0.9855
+62 27  0.3942
+62 28  0.0985
+# pixel 63
+63  1  0.6982
+63  2  2.2693
+63  3  6.0222
+63  4 10.8226
+63  5 16.9321
+63  6 20.5978
+63  7 21.7325
+63  8 22.9544
+63  9 24.3508
+63 10 24.8745
+63 11 24.8745
+63 12 24.6999
+63 13 24.1763
+63 14 23.9144
+63 15 22.6925
+63 16 21.4706
+63 17 20.1614
+63 18 18.7650
+63 19 17.1940
+63 20 15.7102
+63 21 12.3936
+63 22  8.7279
+63 23  6.1095
+63 24  4.5385
+63 25  2.0074
+63 26  0.8728
+63 27  0.3491
+63 28  0.0873
+# pixel 64
+64  1  0.7063
+64  2  2.2954
+64  3  6.0917
+64  4 10.9473
+64  5 17.1273
+64  6 20.8353
+64  7 21.9830
+64  8 23.2190
+64  9 24.6315
+64 10 25.1612
+64 11 25.1612
+64 12 24.9847
+64 13 24.4550
+64 14 24.1901
+64 15 22.9541
+64 16 21.7181
+64 17 20.3939
+64 18 18.9813
+64 19 17.3922
+64 20 15.8913
+64 21 12.5365
+64 22  8.8285
+64 23  6.1800
+64 24  4.5908
+64 25  2.0306
+64 26  0.8829
+64 27  0.3531
+64 28  0.0883
+# pixel 65
+65  1  0.7337
+65  2  2.3847
+65  3  6.3286
+65  4 11.3731
+65  5 17.7933
+65  6 21.6455
+65  7 22.8378
+65  8 24.1219
+65  9 25.5894
+65 10 26.1397
+65 11 26.1397
+65 12 25.9562
+65 13 25.4059
+65 14 25.1308
+65 15 23.8467
+65 16 22.5627
+65 17 21.1869
+65 18 19.7194
+65 19 18.0685
+65 20 16.5093
+65 21 13.0240
+65 22  9.1718
+65 23  6.4203
+65 24  4.7693
+65 25  2.1095
+65 26  0.9172
+65 27  0.3669
+65 28  0.0917
+# pixel 66
+66  1  0.7268
+66  2  2.3621
+66  3  6.2686
+66  4 11.2654
+66  5 17.6248
+66  6 21.4405
+66  7 22.6216
+66  8 23.8935
+66  9 25.3471
+66 10 25.8922
+66 11 25.8922
+66 12 25.7105
+66 13 25.1654
+66 14 24.8928
+66 15 23.6209
+66 16 22.3490
+66 17 20.9863
+66 18 19.5327
+66 19 17.8974
+66 20 16.3529
+66 21 12.9007
+66 22  9.0850
+66 23  6.3595
+66 24  4.7242
+66 25  2.0895
+66 26  0.9085
+66 27  0.3634
+66 28  0.0908
+# pixel 67
+67  1  0.7850
+67  2  2.5513
+67  3  6.7709
+67  4 12.1679
+67  5 19.0369
+67  6 23.1583
+67  7 24.4340
+67  8 25.8078
+67  9 27.3778
+67 10 27.9666
+67 11 27.9666
+67 12 27.7703
+67 13 27.1816
+67 14 26.8872
+67 15 25.5134
+67 16 24.1396
+67 17 22.6677
+67 18 21.0976
+67 19 19.3313
+67 20 17.6631
+67 21 13.9342
+67 22  9.8128
+67 23  6.8690
+67 24  5.1027
+67 25  2.2570
+67 26  0.9813
+67 27  0.3925
+67 28  0.0981
+# pixel 68
+68  1  0.7194
+68  2  2.3380
+68  3  6.2047
+68  4 11.1506
+68  5 17.4452
+68  6 21.2220
+68  7 22.3910
+68  8 23.6500
+68  9 25.0888
+68 10 25.6283
+68 11 25.6283
+68 12 25.4485
+68 13 24.9089
+68 14 24.6391
+68 15 23.3802
+68 16 22.1213
+68 17 20.7724
+68 18 19.3336
+68 19 17.7150
+68 20 16.1863
+68 21 12.7692
+68 22  8.9924
+68 23  6.2947
+68 24  4.6760
+68 25  2.0682
+68 26  0.8992
+68 27  0.3597
+68 28  0.0899
+# pixel 69
+69  1  0.6444
+69  2  2.0941
+69  3  5.5575
+69  4  9.9875
+69  5 15.6255
+69  6 19.0084
+69  7 20.0555
+69  8 21.1831
+69  9 22.4718
+69 10 22.9550
+69 11 22.9550
+69 12 22.7939
+69 13 22.3107
+69 14 22.0691
+69 15 20.9414
+69 16 19.8138
+69 17 18.6057
+69 18 17.3170
+69 19 15.8672
+69 20 14.4979
+69 21 11.4372
+69 22  8.0544
+69 23  5.6381
+69 24  4.1883
+69 25  1.8525
+69 26  0.8054
+69 27  0.3222
+69 28  0.0805
+# pixel 70
+70  1  0.6190
+70  2  2.0116
+70  3  5.3386
+70  4  9.5940
+70  5 15.0100
+70  6 18.2595
+70  7 19.2654
+70  8 20.3486
+70  9 21.5865
+70 10 22.0507
+70 11 22.0507
+70 12 21.8960
+70 13 21.4318
+70 14 21.1996
+70 15 20.1164
+70 16 19.0333
+70 17 17.8727
+70 18 16.6348
+70 19 15.2421
+70 20 13.9268
+70 21 10.9867
+70 22  7.7371
+70 23  5.4160
+70 24  4.0233
+70 25  1.7795
+70 26  0.7737
+70 27  0.3095
+70 28  0.0774
+# pixel 71
+71  1  0.6813
+71  2  2.2143
+71  3  5.8763
+71  4 10.5603
+71  5 16.5217
+71  6 20.0986
+71  7 21.2057
+71  8 22.3980
+71  9 23.7606
+71 10 24.2716
+71 11 24.2716
+71 12 24.1013
+71 13 23.5903
+71 14 23.3348
+71 15 22.1425
+71 16 20.9502
+71 17 19.6728
+71 18 18.3102
+71 19 16.7772
+71 20 15.3294
+71 21 12.0932
+71 22  8.5164
+71 23  5.9614
+71 24  4.4285
+71 25  1.9588
+71 26  0.8516
+71 27  0.3407
+71 28  0.0852
+# pixel 72
+72  1  0.7386
+72  2  2.4003
+72  3  6.3701
+72  4 11.4476
+72  5 17.9100
+72  6 21.7874
+72  7 22.9876
+72  8 24.2801
+72  9 25.7572
+72 10 26.3111
+72 11 26.3111
+72 12 26.1264
+72 13 25.5725
+72 14 25.2956
+72 15 24.0031
+72 16 22.7106
+72 17 21.3258
+72 18 19.8487
+72 19 18.1870
+72 20 16.6175
+72 21 13.1094
+72 22  9.2320
+72 23  6.4624
+72 24  4.8006
+72 25  2.1234
+72 26  0.9232
+72 27  0.3693
+72 28  0.0923
+# pixel 73
+73  1  0.6408
+73  2  2.0826
+73  3  5.5269
+73  4  9.9323
+73  5 15.5393
+73  6 18.9035
+73  7 19.9448
+73  8 21.0662
+73  9 22.3478
+73 10 22.8284
+73 11 22.8284
+73 12 22.6682
+73 13 22.1876
+73 14 21.9473
+73 15 20.8259
+73 16 19.7045
+73 17 18.5030
+73 18 17.2214
+73 19 15.7796
+73 20 14.4179
+73 21 11.3741
+73 22  8.0100
+73 23  5.6070
+73 24  4.1652
+73 25  1.8423
+73 26  0.8010
+73 27  0.3204
+73 28  0.0801
+# pixel 74
+74  1  0.7783
+74  2  2.5294
+74  3  6.7126
+74  4 12.0631
+74  5 18.8730
+74  6 22.9589
+74  7 24.2236
+74  8 25.5855
+74  9 27.1421
+74 10 27.7258
+74 11 27.7258
+74 12 27.5312
+74 13 26.9475
+74 14 26.6557
+74 15 25.2937
+74 16 23.9317
+74 17 22.4725
+74 18 20.9159
+74 19 19.1648
+74 20 17.5110
+74 21 13.8142
+74 22  9.7283
+74 23  6.8098
+74 24  5.0587
+74 25  2.2375
+74 26  0.9728
+74 27  0.3891
+74 28  0.0973
+# pixel 75
+75  1  0.7618
+75  2  2.4758
+75  3  6.5705
+75  4 11.8078
+75  5 18.4735
+75  6 22.4729
+75  7 23.7108
+75  8 25.0439
+75  9 26.5675
+75 10 27.1388
+75 11 27.1388
+75 12 26.9484
+75 13 26.3771
+75 14 26.0914
+75 15 24.7582
+75 16 23.4251
+75 17 21.9968
+75 18 20.4732
+75 19 18.7591
+75 20 17.1403
+75 21 13.5218
+75 22  9.5224
+75 23  6.6657
+75 24  4.9516
+75 25  2.1902
+75 26  0.9522
+75 27  0.3809
+75 28  0.0952
+# pixel 76
+76  1  0.7547
+76  2  2.4528
+76  3  6.5095
+76  4 11.6981
+76  5 18.3019
+76  6 22.2642
+76  7 23.4906
+76  8 24.8114
+76  9 26.3208
+76 10 26.8869
+76 11 26.8869
+76 12 26.6982
+76 13 26.1322
+76 14 25.8491
+76 15 24.5284
+76 16 23.2076
+76 17 21.7925
+76 18 20.2831
+76 19 18.5850
+76 20 16.9812
+76 21 13.3963
+76 22  9.4340
+76 23  6.6038
+76 24  4.9057
+76 25  2.1698
+76 26  0.9434
+76 27  0.3774
+76 28  0.0943
+# pixel 77
+77  1  0.6344
+77  2  2.0617
+77  3  5.4714
+77  4  9.8327
+77  5 15.3834
+77  6 18.7138
+77  7 19.7446
+77  8 20.8548
+77  9 22.1235
+77 10 22.5993
+77 11 22.5993
+77 12 22.4407
+77 13 21.9649
+77 14 21.7270
+77 15 20.6169
+77 16 19.5067
+77 17 18.3173
+77 18 17.0486
+77 19 15.6213
+77 20 14.2732
+77 21 11.2600
+77 22  7.9296
+77 23  5.5507
+77 24  4.1234
+77 25  1.8238
+77 26  0.7930
+77 27  0.3172
+77 28  0.0793
+# pixel 78
+78  1  0.6705
+78  2  2.1791
+78  3  5.7829
+78  4 10.3924
+78  5 16.2591
+78  6 19.7791
+78  7 20.8687
+78  8 22.0420
+78  9 23.3830
+78 10 23.8858
+78 11 23.8858
+78 12 23.7182
+78 13 23.2153
+78 14 22.9639
+78 15 21.7906
+78 16 20.6172
+78 17 19.3601
+78 18 18.0191
+78 19 16.5106
+78 20 15.0858
+78 21 11.9010
+78 22  8.3810
+78 23  5.8667
+78 24  4.3581
+78 25  1.9276
+78 26  0.8381
+78 27  0.3352
+78 28  0.0838
+# pixel 79
+79  1  0.6628
+79  2  2.1541
+79  3  5.7165
+79  4 10.2732
+79  5 16.0726
+79  6 19.5522
+79  7 20.6292
+79  8 21.7891
+79  9 23.1147
+79 10 23.6118
+79 11 23.6118
+79 12 23.4461
+79 13 22.9490
+79 14 22.7004
+79 15 21.5406
+79 16 20.3807
+79 17 19.1380
+79 18 17.8124
+79 19 16.3211
+79 20 14.9127
+79 21 11.7645
+79 22  8.2848
+79 23  5.7994
+79 24  4.3081
+79 25  1.9055
+79 26  0.8285
+79 27  0.3314
+79 28  0.0828
+# pixel 80
+80  1  0.7484
+80  2  2.4323
+80  3  6.4550
+80  4 11.6003
+80  5 18.1489
+80  6 22.0780
+80  7 23.2942
+80  8 24.6039
+80  9 26.1007
+80 10 26.6620
+80 11 26.6620
+80 12 26.4749
+80 13 25.9136
+80 14 25.6329
+80 15 24.3232
+80 16 23.0135
+80 17 21.6102
+80 18 20.1134
+80 19 18.4295
+80 20 16.8392
+80 21 13.2842
+80 22  9.3551
+80 23  6.5486
+80 24  4.8646
+80 25  2.1517
+80 26  0.9355
+80 27  0.3742
+80 28  0.0936
+# pixel 81
+81  1  0.7199
+81  2  2.3395
+81  3  6.2087
+81  4 11.1577
+81  5 17.4564
+81  6 21.2357
+81  7 22.4054
+81  8 23.6652
+81  9 25.1049
+81 10 25.6448
+81 11 25.6448
+81 12 25.4648
+81 13 24.9249
+81 14 24.6550
+81 15 23.3952
+81 16 22.1355
+81 17 20.7858
+81 18 19.3461
+81 19 17.7264
+81 20 16.1967
+81 21 12.7774
+81 22  8.9982
+81 23  6.2987
+81 24  4.6790
+81 25  2.0696
+81 26  0.8998
+81 27  0.3599
+81 28  0.0900
+# pixel 82
+82  1  0.7570
+82  2  2.4601
+82  3  6.5288
+82  4 11.7329
+82  5 18.3563
+82  6 22.3303
+82  7 23.5604
+82  8 24.8851
+82  9 26.3990
+82 10 26.9667
+82 11 26.9667
+82 12 26.7775
+82 13 26.2097
+82 14 25.9259
+82 15 24.6012
+82 16 23.2765
+82 17 21.8572
+82 18 20.3433
+82 19 18.6401
+82 20 17.0316
+82 21 13.4360
+82 22  9.4620
+82 23  6.6234
+82 24  4.9202
+82 25  2.1763
+82 26  0.9462
+82 27  0.3785
+82 28  0.0946
+# pixel 83
+83  1  0.6877
+83  2  2.2349
+83  3  5.9311
+83  4 10.6588
+83  5 16.6758
+83  6 20.2860
+83  7 21.4035
+83  8 22.6069
+83  9 23.9822
+83 10 24.4979
+83 11 24.4979
+83 12 24.3260
+83 13 23.8103
+83 14 23.5524
+83 15 22.3490
+83 16 21.1456
+83 17 19.8562
+83 18 18.4809
+83 19 16.9337
+83 20 15.4724
+83 21 12.2060
+83 22  8.5958
+83 23  6.0170
+83 24  4.4698
+83 25  1.9770
+83 26  0.8596
+83 27  0.3438
+83 28  0.0860
+# pixel 84
+84  1  0.8439
+84  2  2.7426
+84  3  7.2784
+84  4 13.0800
+84  5 20.4639
+84  6 24.8942
+84  7 26.2655
+84  8 27.7422
+84  9 29.4300
+84 10 30.0629
+84 11 30.0629
+84 12 29.8519
+84 13 29.2190
+84 14 28.9026
+84 15 27.4258
+84 16 25.9490
+84 17 24.3668
+84 18 22.6790
+84 19 20.7803
+84 20 18.9871
+84 21 14.9787
+84 22 10.5484
+84 23  7.3839
+84 24  5.4852
+84 25  2.4261
+84 26  1.0548
+84 27  0.4219
+84 28  0.1055
+# pixel 85
+85  1  0.7750
+85  2  2.5187
+85  3  6.6843
+85  4 12.0124
+85  5 18.7936
+85  6 22.8623
+85  7 24.1216
+85  8 25.4779
+85  9 27.0279
+85 10 27.6091
+85 11 27.6091
+85 12 27.4154
+85 13 26.8341
+85 14 26.5435
+85 15 25.1873
+85 16 23.8310
+85 17 22.3779
+85 18 20.8279
+85 19 19.0842
+85 20 17.4373
+85 21 13.7561
+85 22  9.6874
+85 23  6.7812
+85 24  5.0375
+85 25  2.2281
+85 26  0.9687
+85 27  0.3875
+85 28  0.0969
+# pixel 86
+86  1  0.7676
+86  2  2.4946
+86  3  6.6203
+86  4 11.8974
+86  5 18.6137
+86  6 22.6435
+86  7 23.8908
+86  8 25.2340
+86  9 26.7692
+86 10 27.3449
+86 11 27.3449
+86 12 27.1530
+86 13 26.5773
+86 14 26.2894
+86 15 24.9462
+86 16 23.6029
+86 17 22.1637
+86 18 20.6286
+86 19 18.9015
+86 20 17.2704
+86 21 13.6245
+86 22  9.5947
+86 23  6.7163
+86 24  4.9892
+86 25  2.2068
+86 26  0.9595
+86 27  0.3838
+86 28  0.0959
+# pixel 87
+87  1  0.6958
+87  2  2.2612
+87  3  6.0010
+87  4 10.7844
+87  5 16.8724
+87  6 20.5252
+87  7 21.6558
+87  8 22.8734
+87  9 24.2649
+87 10 24.7868
+87 11 24.7868
+87 12 24.6128
+87 13 24.0910
+87 14 23.8301
+87 15 22.6125
+87 16 21.3949
+87 17 20.0903
+87 18 18.6988
+87 19 17.1333
+87 20 15.6548
+87 21 12.3499
+87 22  8.6971
+87 23  6.0880
+87 24  4.5225
+87 25  2.0003
+87 26  0.8697
+87 27  0.3479
+87 28  0.0870
+# pixel 88
+88  1  0.7398
+88  2  2.4043
+88  3  6.3807
+88  4 11.4668
+88  5 17.9400
+88  6 21.8240
+88  7 23.0261
+88  8 24.3208
+88  9 25.8004
+88 10 26.3552
+88 11 26.3552
+88 12 26.1703
+88 13 25.6154
+88 14 25.3380
+88 15 24.0434
+88 16 22.7487
+88 17 21.3616
+88 18 19.8820
+88 19 18.2175
+88 20 16.6454
+88 21 13.1314
+88 22  9.2474
+88 23  6.4732
+88 24  4.8087
+88 25  2.1269
+88 26  0.9247
+88 27  0.3699
+88 28  0.0925
+# pixel 89
+89  1  0.8372
+89  2  2.7210
+89  3  7.2210
+89  4 12.9769
+89  5 20.3026
+89  6 24.6980
+89  7 26.0585
+89  8 27.5237
+89  9 29.1981
+89 10 29.8260
+89 11 29.8260
+89 12 29.6167
+89 13 28.9888
+89 14 28.6748
+89 15 27.2097
+89 16 25.7446
+89 17 24.1748
+89 18 22.5003
+89 19 20.6166
+89 20 18.8375
+89 21 14.8607
+89 22 10.4653
+89 23  7.3257
+89 24  5.4419
+89 25  2.4070
+89 26  1.0465
+89 27  0.4186
+89 28  0.1047
+# pixel 90
+90  1  0.6772
+90  2  2.2010
+90  3  5.8412
+90  4 10.4972
+90  5 16.4230
+90  6 19.9785
+90  7 21.0790
+90  8 22.2642
+90  9 23.6187
+90 10 24.1266
+90 11 24.1266
+90 12 23.9573
+90 13 23.4494
+90 14 23.1954
+90 15 22.0102
+90 16 20.8251
+90 17 19.5553
+90 18 18.2008
+90 19 16.6770
+90 20 15.2379
+90 21 12.0210
+90 22  8.4655
+90 23  5.9258
+90 24  4.4020
+90 25  1.9471
+90 26  0.8465
+90 27  0.3386
+90 28  0.0847
+# pixel 91
+91  1  0.7189
+91  2  2.3366
+91  3  6.2008
+91  4 11.1435
+91  5 17.4343
+91  6 21.2087
+91  7 22.3770
+91  8 23.6351
+91  9 25.0730
+91 10 25.6122
+91 11 25.6122
+91 12 25.4324
+91 13 24.8932
+91 14 24.6236
+91 15 23.3655
+91 16 22.1074
+91 17 20.7593
+91 18 19.3215
+91 19 17.7039
+91 20 16.1761
+91 21 12.7612
+91 22  8.9867
+91 23  6.2907
+91 24  4.6731
+91 25  2.0669
+91 26  0.8987
+91 27  0.3595
+91 28  0.0899
+# pixel 92
+92  1  0.7341
+92  2  2.3857
+92  3  6.3313
+92  4 11.3780
+92  5 17.8011
+92  6 21.6549
+92  7 22.8478
+92  8 24.1324
+92  9 25.6005
+92 10 26.1511
+92 11 26.1511
+92 12 25.9676
+92 13 25.4170
+92 14 25.1417
+92 15 23.8571
+92 16 22.5725
+92 17 21.1961
+92 18 19.7280
+92 19 18.0764
+92 20 16.5165
+92 21 13.0297
+92 22  9.1758
+92 23  6.4231
+92 24  4.7714
+92 25  2.1104
+92 26  0.9176
+92 27  0.3670
+92 28  0.0918
+# pixel 93
+93  1  0.7905
+93  2  2.5693
+93  3  6.8185
+93  4 12.2535
+93  5 19.1708
+93  6 23.3212
+93  7 24.6058
+93  8 25.9893
+93  9 27.5704
+93 10 28.1633
+93 11 28.1633
+93 12 27.9656
+93 13 27.3727
+93 14 27.0763
+93 15 25.6928
+93 16 24.3093
+93 17 22.8271
+93 18 21.2460
+93 19 19.4672
+93 20 17.7873
+93 21 14.0322
+93 22  9.8818
+93 23  6.9173
+93 24  5.1386
+93 25  2.2728
+93 26  0.9882
+93 27  0.3953
+93 28  0.0988
+# pixel 94
+94  1  0.6066
+94  2  1.9714
+94  3  5.2317
+94  4  9.4019
+94  5 14.7095
+94  6 17.8940
+94  7 18.8797
+94  8 19.9412
+94  9 21.1544
+94 10 21.6093
+94 11 21.6093
+94 12 21.4577
+94 13 21.0027
+94 14 20.7753
+94 15 19.7137
+94 16 18.6522
+94 17 17.5149
+94 18 16.3017
+94 19 14.9370
+94 20 13.6480
+94 21 10.7667
+94 22  7.5822
+94 23  5.3075
+94 24  3.9427
+94 25  1.7439
+94 26  0.7582
+94 27  0.3033
+94 28  0.0758
+# pixel 95
+95  1  0.7748
+95  2  2.5180
+95  3  6.6823
+95  4 12.0087
+95  5 18.7879
+95  6 22.8553
+95  7 24.1143
+95  8 25.4701
+95  9 27.0196
+95 10 27.6007
+95 11 27.6007
+95 12 27.4070
+95 13 26.8260
+95 14 26.5354
+95 15 25.1796
+95 16 23.8238
+95 17 22.3711
+95 18 20.8216
+95 19 19.0784
+95 20 17.4320
+95 21 13.7519
+95 22  9.6845
+95 23  6.7791
+95 24  5.0359
+95 25  2.2274
+95 26  0.9684
+95 27  0.3874
+95 28  0.0968
+# pixel 96
+96  1  0.7561
+96  2  2.4573
+96  3  6.5213
+96  4 11.7195
+96  5 18.3353
+96  6 22.3048
+96  7 23.5334
+96  8 24.8566
+96  9 26.3688
+96 10 26.9358
+96 11 26.9358
+96 12 26.7468
+96 13 26.1797
+96 14 25.8962
+96 15 24.5730
+96 16 23.2499
+96 17 21.8322
+96 18 20.3200
+96 19 18.6188
+96 20 17.0121
+96 21 13.4207
+96 22  9.4512
+96 23  6.6158
+96 24  4.9146
+96 25  2.1738
+96 26  0.9451
+96 27  0.3780
+96 28  0.0945
+# pixel 97
+97  1  0.8477
+97  2  2.7549
+97  3  7.3110
+97  4 13.1387
+97  5 20.5557
+97  6 25.0059
+97  7 26.3833
+97  8 27.8667
+97  9 29.5620
+97 10 30.1978
+97 11 30.1978
+97 12 29.9858
+97 13 29.3501
+97 14 29.0322
+97 15 27.5488
+97 16 26.0654
+97 17 24.4761
+97 18 22.7808
+97 19 20.8735
+97 20 19.0723
+97 21 15.0459
+97 22 10.5957
+97 23  7.4170
+97 24  5.5098
+97 25  2.4370
+97 26  1.0596
+97 27  0.4238
+97 28  0.1060
+# pixel 98
+98  1  0.7103
+98  2  2.3083
+98  3  6.1259
+98  4 11.0089
+98  5 17.2237
+98  6 20.9525
+98  7 22.1066
+98  8 23.3496
+98  9 24.7701
+98 10 25.3028
+98 11 25.3028
+98 12 25.1252
+98 13 24.5925
+98 14 24.3262
+98 15 23.0832
+98 16 21.8403
+98 17 20.5086
+98 18 19.0881
+98 19 17.4900
+98 20 15.9807
+98 21 12.6070
+98 22  8.8782
+98 23  6.2147
+98 24  4.6166
+98 25  2.0420
+98 26  0.8878
+98 27  0.3551
+98 28  0.0888
+# pixel 99
+99  1  0.7824
+99  2  2.5428
+99  3  6.7481
+99  4 12.1271
+99  5 18.9730
+99  6 23.0806
+99  7 24.3520
+99  8 25.7211
+99  9 27.2859
+99 10 27.8727
+99 11 27.8727
+99 12 27.6771
+99 13 27.0903
+99 14 26.7969
+99 15 25.4277
+99 16 24.0586
+99 17 22.5916
+99 18 21.0268
+99 19 19.2664
+99 20 17.6038
+99 21 13.8875
+99 22  9.7799
+99 23  6.8459
+99 24  5.0855
+99 25  2.2494
+99 26  0.9780
+99 27  0.3912
+99 28  0.0978
+# pixel 100
+100  1  0.8255
+100  2  2.6828
+100  3  7.1198
+100  4 12.7950
+100  5 20.0179
+100  6 24.3517
+100  7 25.6931
+100  8 27.1377
+100  9 28.7887
+100 10 29.4078
+100 11 29.4078
+100 12 29.2014
+100 13 28.5823
+100 14 28.2727
+100 15 26.8281
+100 16 25.3835
+100 17 23.8358
+100 18 22.1848
+100 19 20.3275
+100 20 18.5733
+100 21 14.6523
+100 22 10.3185
+100 23  7.2230
+100 24  5.3656
+100 25  2.3733
+100 26  1.0319
+100 27  0.4127
+100 28  0.1032
+# pixel 101
+101  1  0.7414
+101  2  2.4097
+101  3  6.3949
+101  4 11.4924
+101  5 17.9800
+101  6 21.8726
+101  7 23.0774
+101  8 24.3749
+101  9 25.8578
+101 10 26.4139
+101 11 26.4139
+101 12 26.2285
+101 13 25.6725
+101 14 25.3944
+101 15 24.0969
+101 16 22.7994
+101 17 21.4092
+101 18 19.9263
+101 19 18.2580
+101 20 16.6825
+101 21 13.1606
+101 22  9.2680
+101 23  6.4876
+101 24  4.8194
+101 25  2.1316
+101 26  0.9268
+101 27  0.3707
+101 28  0.0927
+# pixel 102
+102  1  0.7154
+102  2  2.3250
+102  3  6.1702
+102  4 11.0884
+102  5 17.3480
+102  6 21.1037
+102  7 22.2662
+102  8 23.5181
+102  9 24.9489
+102 10 25.4854
+102 11 25.4854
+102 12 25.3066
+102 13 24.7701
+102 14 24.5018
+102 15 23.2499
+102 16 21.9980
+102 17 20.6566
+102 18 19.2259
+102 19 17.6162
+102 20 16.0961
+102 21 12.6980
+102 22  8.9423
+102 23  6.2596
+102 24  4.6500
+102 25  2.0567
+102 26  0.8942
+102 27  0.3577
+102 28  0.0894
+# pixel 103
+103  1  0.6960
+103  2  2.2620
+103  3  6.0029
+103  4 10.7879
+103  5 16.8778
+103  6 20.5317
+103  7 21.6627
+103  8 22.8807
+103  9 24.2727
+103 10 24.7947
+103 11 24.7947
+103 12 24.6207
+103 13 24.0987
+103 14 23.8377
+103 15 22.6197
+103 16 21.4017
+103 17 20.0967
+103 18 18.7047
+103 19 17.1388
+103 20 15.6598
+103 21 12.3538
+103 22  8.6999
+103 23  6.0899
+103 24  4.5239
+103 25  2.0010
+103 26  0.8700
+103 27  0.3480
+103 28  0.0870
+# pixel 104
+104  1  0.7724
+104  2  2.5102
+104  3  6.6617
+104  4 11.9718
+104  5 18.7300
+104  6 22.7850
+104  7 24.0401
+104  8 25.3917
+104  9 26.9365
+104 10 27.5158
+104 11 27.5158
+104 12 27.3227
+104 13 26.7434
+104 14 26.4537
+104 15 25.1021
+104 16 23.7504
+104 17 22.3022
+104 18 20.7575
+104 19 19.0197
+104 20 17.3784
+104 21 13.7096
+104 22  9.6547
+104 23  6.7583
+104 24  5.0204
+104 25  2.2206
+104 26  0.9655
+104 27  0.3862
+104 28  0.0965
+# pixel 105
+105  1  0.7490
+105  2  2.4343
+105  3  6.4603
+105  4 11.6099
+105  5 18.1639
+105  6 22.0963
+105  7 23.3134
+105  8 24.6242
+105  9 26.1223
+105 10 26.6840
+105 11 26.6840
+105 12 26.4968
+105 13 25.9350
+105 14 25.6541
+105 15 24.3433
+105 16 23.0325
+105 17 21.6281
+105 18 20.1301
+105 19 18.4448
+105 20 16.8531
+105 21 13.2952
+105 22  9.3628
+105 23  6.5540
+105 24  4.8687
+105 25  2.1534
+105 26  0.9363
+105 27  0.3745
+105 28  0.0936
+# pixel 106
+106  1  0.6812
+106  2  2.2138
+106  3  5.8752
+106  4 10.5583
+106  5 16.5186
+106  6 20.0948
+106  7 21.2017
+106  8 22.3938
+106  9 23.7561
+106 10 24.2670
+106 11 24.2670
+106 12 24.0967
+106 13 23.5858
+106 14 23.3304
+106 15 22.1383
+106 16 20.9463
+106 17 19.6691
+106 18 18.3067
+106 19 16.7740
+106 20 15.3265
+106 21 12.0909
+106 22  8.5147
+106 23  5.9603
+106 24  4.4277
+106 25  1.9584
+106 26  0.8515
+106 27  0.3406
+106 28  0.0851
+# pixel 107
+107  1  0.7204
+107  2  2.3412
+107  3  6.2132
+107  4 11.1658
+107  5 17.4690
+107  6 21.2509
+107  7 22.4216
+107  8 23.6822
+107  9 25.1229
+107 10 25.6632
+107 11 25.6632
+107 12 25.4831
+107 13 24.9429
+107 14 24.6727
+107 15 23.4121
+107 16 22.1514
+107 17 20.8007
+107 18 19.3600
+107 19 17.7391
+107 20 16.2084
+107 21 12.7866
+107 22  9.0046
+107 23  6.3032
+107 24  4.6824
+107 25  2.0711
+107 26  0.9005
+107 27  0.3602
+107 28  0.0900
+# pixel 108
+108  1  0.6509
+108  2  2.1155
+108  3  5.6142
+108  4 10.0893
+108  5 15.7849
+108  6 19.2023
+108  7 20.2600
+108  8 21.3992
+108  9 22.7010
+108 10 23.1892
+108 11 23.1892
+108 12 23.0265
+108 13 22.5383
+108 14 22.2942
+108 15 21.1551
+108 16 20.0159
+108 17 18.7955
+108 18 17.4936
+108 19 16.0290
+108 20 14.6458
+108 21 11.5539
+108 22  8.1366
+108 23  5.6956
+108 24  4.2310
+108 25  1.8714
+108 26  0.8137
+108 27  0.3255
+108 28  0.0814
+# pixel 109
+109  1  0.7480
+109  2  2.4311
+109  3  6.4517
+109  4 11.5943
+109  5 18.1395
+109  6 22.0666
+109  7 23.2821
+109  8 24.5912
+109  9 26.0872
+109 10 26.6482
+109 11 26.6482
+109 12 26.4612
+109 13 25.9002
+109 14 25.6197
+109 15 24.3107
+109 16 23.0016
+109 17 21.5991
+109 18 20.1031
+109 19 18.4200
+109 20 16.8305
+109 21 13.2774
+109 22  9.3503
+109 23  6.5452
+109 24  4.8621
+109 25  2.1506
+109 26  0.9350
+109 27  0.3740
+109 28  0.0935
+# pixel 110
+110  1  0.7886
+110  2  2.5629
+110  3  6.8017
+110  4 12.2233
+110  5 19.1235
+110  6 23.2637
+110  7 24.5451
+110  8 25.9252
+110  9 27.5024
+110 10 28.0938
+110 11 28.0938
+110 12 27.8967
+110 13 27.3052
+110 14 27.0095
+110 15 25.6295
+110 16 24.2494
+110 17 22.7708
+110 18 21.1936
+110 19 19.4192
+110 20 17.7435
+110 21 13.9976
+110 22  9.8575
+110 23  6.9002
+110 24  5.1259
+110 25  2.2672
+110 26  0.9857
+110 27  0.3943
+110 28  0.0986
+# pixel 111
+111  1  0.7349
+111  2  2.3883
+111  3  6.3381
+111  4 11.3902
+111  5 17.8202
+111  6 21.6782
+111  7 22.8723
+111  8 24.1583
+111  9 25.6280
+111 10 26.1792
+111 11 26.1792
+111 12 25.9955
+111 13 25.4443
+111 14 25.1688
+111 15 23.8828
+111 16 22.5968
+111 17 21.2189
+111 18 19.7492
+111 19 18.0958
+111 20 16.5342
+111 21 13.0437
+111 22  9.1857
+111 23  6.4300
+111 24  4.7766
+111 25  2.1127
+111 26  0.9186
+111 27  0.3674
+111 28  0.0919
+# pixel 112
+112  1  0.6509
+112  2  2.1155
+112  3  5.6143
+112  4 10.0895
+112  5 15.7852
+112  6 19.2026
+112  7 20.2604
+112  8 21.3995
+112  9 22.7014
+112 10 23.1896
+112 11 23.1896
+112 12 23.0268
+112 13 22.5386
+112 14 22.2945
+112 15 21.1554
+112 16 20.0163
+112 17 18.7958
+112 18 17.4939
+112 19 16.0293
+112 20 14.6460
+112 21 11.5541
+112 22  8.1367
+112 23  5.6957
+112 24  4.2311
+112 25  1.8714
+112 26  0.8137
+112 27  0.3255
+112 28  0.0814
+# pixel 113
+113  1  0.6036
+113  2  1.9616
+113  3  5.2058
+113  4  9.3553
+113  5 14.6365
+113  6 17.8052
+113  7 18.7860
+113  8 19.8422
+113  9 21.0494
+113 10 21.5021
+113 11 21.5021
+113 12 21.3512
+113 13 20.8985
+113 14 20.6722
+113 15 19.6159
+113 16 18.5597
+113 17 17.4280
+113 18 16.2209
+113 19 14.8628
+113 20 13.5802
+113 21 10.7133
+113 22  7.5446
+113 23  5.2812
+113 24  3.9232
+113 25  1.7353
+113 26  0.7545
+113 27  0.3018
+113 28  0.0754
+# pixel 114
+114  1  0.7250
+114  2  2.3564
+114  3  6.2535
+114  4 11.2382
+114  5 17.5824
+114  6 21.3889
+114  7 22.5671
+114  8 23.8360
+114  9 25.2861
+114 10 25.8298
+114 11 25.8298
+114 12 25.6486
+114 13 25.1048
+114 14 24.8329
+114 15 23.5641
+114 16 22.2952
+114 17 20.9358
+114 18 19.4857
+114 19 17.8543
+114 20 16.3136
+114 21 12.8696
+114 22  9.0631
+114 23  6.3442
+114 24  4.7128
+114 25  2.0845
+114 26  0.9063
+114 27  0.3625
+114 28  0.0906
+# pixel 115
+115  1  0.7581
+115  2  2.4637
+115  3  6.5382
+115  4 11.7499
+115  5 18.3829
+115  6 22.3627
+115  7 23.5945
+115  8 24.9211
+115  9 26.4372
+115 10 27.0058
+115 11 27.0058
+115 12 26.8163
+115 13 26.2477
+115 14 25.9635
+115 15 24.6369
+115 16 23.3103
+115 17 21.8889
+115 18 20.3728
+115 19 18.6672
+115 20 17.0563
+115 21 13.4555
+115 22  9.4757
+115 23  6.6330
+115 24  4.9274
+115 25  2.1794
+115 26  0.9476
+115 27  0.3790
+115 28  0.0948
+# pixel 116
+116  1  0.7642
+116  2  2.4838
+116  3  6.5916
+116  4 11.8458
+116  5 18.5329
+116  6 22.5452
+116  7 23.7871
+116  8 25.1246
+116  9 26.6530
+116 10 27.2262
+116 11 27.2262
+116 12 27.0352
+116 13 26.4620
+116 14 26.1754
+116 15 24.8380
+116 16 23.5005
+116 17 22.0676
+116 18 20.5391
+116 19 18.8195
+116 20 17.1955
+116 21 13.5654
+116 22  9.5531
+116 23  6.6871
+116 24  4.9676
+116 25  2.1972
+116 26  0.9553
+116 27  0.3821
+116 28  0.0955
+# pixel 117
+117  1  0.7356
+117  2  2.3908
+117  3  6.3447
+117  4 11.4021
+117  5 17.8388
+117  6 21.7008
+117  7 22.8962
+117  8 24.1835
+117  9 25.6547
+117 10 26.2065
+117 11 26.2065
+117 12 26.0226
+117 13 25.4708
+117 14 25.1950
+117 15 23.9076
+117 16 22.6203
+117 17 21.2410
+117 18 19.7698
+117 19 18.1146
+117 20 16.5514
+117 21 13.0573
+117 22  9.1952
+117 23  6.4367
+117 24  4.7815
+117 25  2.1149
+117 26  0.9195
+117 27  0.3678
+117 28  0.0920
+# pixel 118
+118  1  0.6746
+118  2  2.1926
+118  3  5.8188
+118  4 10.4570
+118  5 16.3602
+118  6 19.9021
+118  7 20.9984
+118  8 22.1790
+118  9 23.5283
+118 10 24.0343
+118 11 24.0343
+118 12 23.8657
+118 13 23.3597
+118 14 23.1067
+118 15 21.9260
+118 16 20.7454
+118 17 19.4804
+118 18 18.1312
+118 19 16.6132
+118 20 15.1796
+118 21 11.9750
+118 22  8.4331
+118 23  5.9032
+118 24  4.3852
+118 25  1.9396
+118 26  0.8433
+118 27  0.3373
+118 28  0.0843
+# pixel 119
+119  1  0.7354
+119  2  2.3899
+119  3  6.3424
+119  4 11.3980
+119  5 17.8323
+119  6 21.6929
+119  7 22.8878
+119  8 24.1747
+119  9 25.6454
+119 10 26.1969
+119 11 26.1969
+119 12 26.0131
+119 13 25.4616
+119 14 25.1858
+119 15 23.8989
+119 16 22.6121
+119 17 21.2333
+119 18 19.7626
+119 19 18.1080
+119 20 16.5454
+119 21 13.0525
+119 22  9.1919
+119 23  6.4343
+119 24  4.7798
+119 25  2.1141
+119 26  0.9192
+119 27  0.3677
+119 28  0.0919
+# pixel 120
+120  1  0.7567
+120  2  2.4593
+120  3  6.5265
+120  4 11.7288
+120  5 18.3499
+120  6 22.3226
+120  7 23.5522
+120  8 24.8765
+120  9 26.3899
+120 10 26.9574
+120 11 26.9574
+120 12 26.7682
+120 13 26.2007
+120 14 25.9169
+120 15 24.5927
+120 16 23.2685
+120 17 21.8497
+120 18 20.3363
+120 19 18.6337
+120 20 17.0257
+120 21 13.4314
+120 22  9.4587
+120 23  6.6211
+120 24  4.9185
+120 25  2.1755
+120 26  0.9459
+120 27  0.3783
+120 28  0.0946
+# pixel 121
+121  1  0.6828
+121  2  2.2192
+121  3  5.8895
+121  4 10.5841
+121  5 16.5589
+121  6 20.1439
+121  7 21.2535
+121  8 22.4485
+121  9 23.8141
+121 10 24.3263
+121 11 24.3263
+121 12 24.1556
+121 13 23.6434
+121 14 23.3874
+121 15 22.1924
+121 16 20.9974
+121 17 19.7171
+121 18 18.3514
+121 19 16.8150
+121 20 15.3640
+121 21 12.1205
+121 22  8.5355
+121 23  5.9749
+121 24  4.4385
+121 25  1.9632
+121 26  0.8536
+121 27  0.3414
+121 28  0.0854
+# pixel 122
+122  1  0.8052
+122  2  2.6168
+122  3  6.9445
+122  4 12.4801
+122  5 19.5253
+122  6 23.7524
+122  7 25.0608
+122  8 26.4698
+122  9 28.0801
+122 10 28.6840
+122 11 28.6840
+122 12 28.4827
+122 13 27.8788
+122 14 27.5769
+122 15 26.1679
+122 16 24.7588
+122 17 23.2491
+122 18 21.6388
+122 19 19.8272
+122 20 18.1162
+122 21 14.2917
+122 22 10.0646
+122 23  7.0452
+122 24  5.2336
+122 25  2.3148
+122 26  1.0065
+122 27  0.4026
+122 28  0.1006
+# pixel 123
+123  1  0.7381
+123  2  2.3989
+123  3  6.3663
+123  4 11.4409
+123  5 17.8995
+123  6 21.7747
+123  7 22.9741
+123  8 24.2659
+123  9 25.7421
+123 10 26.2957
+123 11 26.2957
+123 12 26.1112
+123 13 25.5576
+123 14 25.2808
+123 15 23.9891
+123 16 22.6973
+123 17 21.3134
+123 18 19.8371
+123 19 18.1763
+123 20 16.6078
+123 21 13.1017
+123 22  9.2266
+123 23  6.4586
+123 24  4.7978
+123 25  2.1221
+123 26  0.9227
+123 27  0.3691
+123 28  0.0923
+# pixel 124
+124  1  0.8332
+124  2  2.7079
+124  3  7.1864
+124  4 12.9147
+124  5 20.2053
+124  6 24.5797
+124  7 25.9336
+124  8 27.3917
+124  9 29.0582
+124 10 29.6831
+124 11 29.6831
+124 12 29.4748
+124 13 28.8499
+124 14 28.5374
+124 15 27.0793
+124 16 25.6212
+124 17 24.0589
+124 18 22.3925
+124 19 20.5178
+124 20 18.7472
+124 21 14.7895
+124 22 10.4151
+124 23  7.2906
+124 24  5.4159
+124 25  2.3955
+124 26  1.0415
+124 27  0.4166
+124 28  0.1042
+# pixel 125
+125  1  0.6259
+125  2  2.0341
+125  3  5.3982
+125  4  9.7011
+125  5 15.1776
+125  6 18.4635
+125  7 19.4805
+125  8 20.5758
+125  9 21.8276
+125 10 22.2970
+125 11 22.2970
+125 12 22.1405
+125 13 21.6711
+125 14 21.4364
+125 15 20.3411
+125 16 19.2458
+125 17 18.0723
+125 18 16.8205
+125 19 15.4123
+125 20 14.0823
+125 21 11.1094
+125 22  7.8235
+125 23  5.4765
+125 24  4.0682
+125 25  1.7994
+125 26  0.7824
+125 27  0.3129
+125 28  0.0782
+# pixel 126
+126  1  0.8103
+126  2  2.6335
+126  3  6.9889
+126  4 12.5598
+126  5 19.6499
+126  6 23.9041
+126  7 25.2208
+126  8 26.6388
+126  9 28.2595
+126 10 28.8672
+126 11 28.8672
+126 12 28.6646
+126 13 28.0569
+126 14 27.7530
+126 15 26.3350
+126 16 24.9169
+126 17 23.3976
+126 18 21.7770
+126 19 19.9538
+126 20 18.2319
+126 21 14.3829
+126 22 10.1288
+126 23  7.0902
+126 24  5.2670
+126 25  2.3296
+126 26  1.0129
+126 27  0.4052
+126 28  0.1013
+# pixel 127
+127  1  0.7616
+127  2  2.4751
+127  3  6.5687
+127  4 11.8046
+127  5 18.4684
+127  6 22.4667
+127  7 23.7043
+127  8 25.0371
+127  9 26.5602
+127 10 27.1314
+127 11 27.1314
+127 12 26.9410
+127 13 26.3699
+127 14 26.0843
+127 15 24.7515
+127 16 23.4187
+127 17 21.9907
+127 18 20.4676
+127 19 18.7540
+127 20 17.1356
+127 21 13.5181
+127 22  9.5198
+127 23  6.6639
+127 24  4.9503
+127 25  2.1896
+127 26  0.9520
+127 27  0.3808
+127 28  0.0952
+# pixel 128
+128  1  0.7839
+128  2  2.5478
+128  3  6.7614
+128  4 12.1510
+128  5 19.0104
+128  6 23.1261
+128  7 24.4000
+128  8 25.7718
+128  9 27.3397
+128 10 27.9277
+128 11 27.9277
+128 12 27.7317
+128 13 27.1437
+128 14 26.8497
+128 15 25.4779
+128 16 24.1060
+128 17 22.6361
+128 18 21.0682
+128 19 19.3044
+128 20 17.6385
+128 21 13.9148
+128 22  9.7992
+128 23  6.8594
+128 24  5.0956
+128 25  2.2538
+128 26  0.9799
+128 27  0.3920
+128 28  0.0980
+# pixel 129
+129  1  0.7441
+129  2  2.4184
+129  3  6.4182
+129  4 11.5341
+129  5 18.0452
+129  6 21.9519
+129  7 23.1612
+129  8 24.4634
+129  9 25.9517
+129 10 26.5098
+129 11 26.5098
+129 12 26.3237
+129 13 25.7656
+129 14 25.4866
+129 15 24.1843
+129 16 22.8821
+129 17 21.4869
+129 18 19.9986
+129 19 18.3243
+129 20 16.7430
+129 21 13.2084
+129 22  9.3017
+129 23  6.5112
+129 24  4.8369
+129 25  2.1394
+129 26  0.9302
+129 27  0.3721
+129 28  0.0930
+# pixel 130
+130  1  0.6949
+130  2  2.2583
+130  3  5.9932
+130  4 10.7704
+130  5 16.8505
+130  6 20.4986
+130  7 21.6277
+130  8 22.8437
+130  9 24.2335
+130 10 24.7546
+130 11 24.7546
+130 12 24.5809
+130 13 24.0598
+130 14 23.7992
+130 15 22.5832
+130 16 21.3671
+130 17 20.0643
+130 18 18.6745
+130 19 17.1111
+130 20 15.6345
+130 21 12.3339
+130 22  8.6858
+130 23  6.0801
+130 24  4.5166
+130 25  1.9977
+130 26  0.8686
+130 27  0.3474
+130 28  0.0869
+# pixel 131
+131  1  0.7420
+131  2  2.4115
+131  3  6.3996
+131  4 11.5008
+131  5 17.9932
+131  6 21.8886
+131  7 23.0943
+131  8 24.3928
+131  9 25.8768
+131 10 26.4333
+131 11 26.4333
+131 12 26.2478
+131 13 25.6913
+131 14 25.4130
+131 15 24.1146
+131 16 22.8161
+131 17 21.4249
+131 18 19.9409
+131 19 18.2714
+131 20 16.6947
+131 21 13.1703
+131 22  9.2748
+131 23  6.4924
+131 24  4.8229
+131 25  2.1332
+131 26  0.9275
+131 27  0.3710
+131 28  0.0927
+# pixel 132
+132  1  0.8158
+132  2  2.6514
+132  3  7.0364
+132  4 12.6452
+132  5 19.7836
+132  6 24.0667
+132  7 25.3924
+132  8 26.8201
+132  9 28.4517
+132 10 29.0636
+132 11 29.0636
+132 12 28.8596
+132 13 28.2477
+132 14 27.9418
+132 15 26.5141
+132 16 25.0864
+132 17 23.5568
+132 18 21.9251
+132 19 20.0895
+132 20 18.3559
+132 21 14.4808
+132 22 10.1977
+132 23  7.1384
+132 24  5.3028
+132 25  2.3455
+132 26  1.0198
+132 27  0.4079
+132 28  0.1020
+# pixel 133
+133  1  0.7845
+133  2  2.5497
+133  3  6.7666
+133  4 12.1603
+133  5 19.0250
+133  6 23.1439
+133  7 24.4187
+133  8 25.7917
+133  9 27.3608
+133 10 27.9492
+133 11 27.9492
+133 12 27.7530
+133 13 27.1646
+133 14 26.8704
+133 15 25.4975
+133 16 24.1245
+133 17 22.6535
+133 18 21.0845
+133 19 19.3192
+133 20 17.6521
+133 21 13.9255
+133 22  9.8067
+133 23  6.8647
+133 24  5.0995
+133 25  2.2555
+133 26  0.9807
+133 27  0.3923
+133 28  0.0981
+# pixel 134
+134  1  0.6988
+134  2  2.2710
+134  3  6.0268
+134  4 10.8308
+134  5 16.9450
+134  6 20.6135
+134  7 21.7490
+134  8 22.9718
+134  9 24.3693
+134 10 24.8934
+134 11 24.8934
+134 12 24.7187
+134 13 24.1947
+134 14 23.9326
+134 15 22.7098
+134 16 21.4870
+134 17 20.1768
+134 18 18.7792
+134 19 17.2070
+134 20 15.7222
+134 21 12.4030
+134 22  8.7345
+134 23  6.1142
+134 24  4.5420
+134 25  2.0089
+134 26  0.8735
+134 27  0.3494
+134 28  0.0873
+# pixel 135
+135  1  0.7141
+135  2  2.3208
+135  3  6.1591
+135  4 11.0685
+135  5 17.3168
+135  6 21.0658
+135  7 22.2262
+135  8 23.4759
+135  9 24.9041
+135 10 25.4396
+135 11 25.4396
+135 12 25.2611
+135 13 24.7255
+135 14 24.4578
+135 15 23.2081
+135 16 21.9584
+135 17 20.6195
+135 18 19.1913
+135 19 17.5846
+135 20 16.0671
+135 21 12.6752
+135 22  8.9262
+135 23  6.2483
+135 24  4.6416
+135 25  2.0530
+135 26  0.8926
+135 27  0.3570
+135 28  0.0893
+# pixel 136
+136  1  0.7320
+136  2  2.3791
+136  3  6.3137
+136  4 11.3463
+136  5 17.7514
+136  6 21.5945
+136  7 22.7841
+136  8 24.0651
+136  9 25.5291
+136 10 26.0781
+136 11 26.0781
+136 12 25.8951
+136 13 25.3461
+136 14 25.0716
+136 15 23.7906
+136 16 22.5095
+136 17 21.1370
+136 18 19.6730
+136 19 18.0259
+136 20 16.4704
+136 21 12.9933
+136 22  9.1502
+136 23  6.4052
+136 24  4.7581
+136 25  2.1046
+136 26  0.9150
+136 27  0.3660
+136 28  0.0915
+# pixel 137
+137  1  0.7070
+137  2  2.2977
+137  3  6.0978
+137  4 10.9584
+137  5 17.1445
+137  6 20.8562
+137  7 22.0051
+137  8 23.2423
+137  9 24.6563
+137 10 25.1866
+137 11 25.1866
+137 12 25.0098
+137 13 24.4796
+137 14 24.2145
+137 15 22.9772
+137 16 21.7400
+137 17 20.4144
+137 18 19.0004
+137 19 17.4097
+137 20 15.9073
+137 21 12.5491
+137 22  8.8374
+137 23  6.1862
+137 24  4.5954
+137 25  2.0326
+137 26  0.8837
+137 27  0.3535
+137 28  0.0884
+# pixel 138
+138  1  0.7167
+138  2  2.3292
+138  3  6.1814
+138  4 11.1087
+138  5 17.3797
+138  6 21.1423
+138  7 22.3069
+138  8 23.5612
+138  9 24.9945
+138 10 25.5320
+138 11 25.5320
+138 12 25.3529
+138 13 24.8154
+138 14 24.5466
+138 15 23.2924
+138 16 22.0382
+138 17 20.6944
+138 18 19.2610
+138 19 17.6485
+138 20 16.1255
+138 21 12.7212
+138 22  8.9586
+138 23  6.2710
+138 24  4.6585
+138 25  2.0605
+138 26  0.8959
+138 27  0.3583
+138 28  0.0896
+# pixel 139
+139  1  0.6733
+139  2  2.1882
+139  3  5.8071
+139  4 10.4360
+139  5 16.3273
+139  6 19.8621
+139  7 20.9562
+139  8 22.1344
+139  9 23.4810
+139 10 23.9860
+139 11 23.9860
+139 12 23.8176
+139 13 23.3127
+139 14 23.0602
+139 15 21.8819
+139 16 20.7037
+139 17 19.4413
+139 18 18.0947
+139 19 16.5798
+139 20 15.1490
+139 21 11.9509
+139 22  8.4161
+139 23  5.8913
+139 24  4.3764
+139 25  1.9357
+139 26  0.8416
+139 27  0.3366
+139 28  0.0842
+# pixel 140
+140  1  0.7426
+140  2  2.4134
+140  3  6.4047
+140  4 11.5100
+140  5 18.0075
+140  6 21.9061
+140  7 23.1128
+140  8 24.4123
+140  9 25.8974
+140 10 26.4544
+140 11 26.4544
+140 12 26.2687
+140 13 25.7118
+140 14 25.4333
+140 15 24.1338
+140 16 22.8343
+140 17 21.4420
+140 18 19.9568
+140 19 18.2860
+140 20 16.7080
+140 21 13.1808
+140 22  9.2822
+140 23  6.4976
+140 24  4.8268
+140 25  2.1349
+140 26  0.9282
+140 27  0.3713
+140 28  0.0928
+# pixel 141
+141  1  0.6833
+141  2  2.2208
+141  3  5.8936
+141  4 10.5914
+141  5 16.5704
+141  6 20.1578
+141  7 21.2682
+141  8 22.4640
+141  9 23.8307
+141 10 24.3432
+141 11 24.3432
+141 12 24.1723
+141 13 23.6598
+141 14 23.4036
+141 15 22.2078
+141 16 21.0120
+141 17 19.7308
+141 18 18.3641
+141 19 16.8267
+141 20 15.3746
+141 21 12.1289
+141 22  8.5415
+141 23  5.9790
+141 24  4.4416
+141 25  1.9645
+141 26  0.8541
+141 27  0.3417
+141 28  0.0854
+# pixel 142
+142  1  0.7681
+142  2  2.4962
+142  3  6.6245
+142  4 11.9048
+142  5 18.6253
+142  6 22.6576
+142  7 23.9057
+142  8 25.2498
+142  9 26.7859
+142 10 27.3619
+142 11 27.3619
+142 12 27.1699
+142 13 26.5939
+142 14 26.3058
+142 15 24.9617
+142 16 23.6177
+142 17 22.1776
+142 18 20.6414
+142 19 18.9133
+142 20 17.2812
+142 21 13.6330
+142 22  9.6007
+142 23  6.7205
+142 24  4.9923
+142 25  2.2082
+142 26  0.9601
+142 27  0.3840
+142 28  0.0960
+# pixel 143
+143  1  0.7308
+143  2  2.3752
+143  3  6.3033
+143  4 11.3278
+143  5 17.7225
+143  6 21.5593
+143  7 22.7469
+143  8 24.0258
+143  9 25.4874
+143 10 26.0356
+143 11 26.0356
+143 12 25.8529
+143 13 25.3047
+143 14 25.0307
+143 15 23.7517
+143 16 22.4728
+143 17 21.1025
+143 18 19.6409
+143 19 17.9965
+143 20 16.4435
+143 21 12.9721
+143 22  9.1353
+143 23  6.3947
+143 24  4.7503
+143 25  2.1011
+143 26  0.9135
+143 27  0.3654
+143 28  0.0914
+# pixel 144
+144  1  0.7671
+144  2  2.4931
+144  3  6.6162
+144  4 11.8900
+144  5 18.6021
+144  6 22.6293
+144  7 23.8759
+144  8 25.2183
+144  9 26.7525
+144 10 27.3278
+144 11 27.3278
+144 12 27.1360
+144 13 26.5607
+144 14 26.2730
+144 15 24.9306
+144 16 23.5882
+144 17 22.1499
+144 18 20.6157
+144 19 18.8897
+144 20 17.2597
+144 21 13.6160
+144 22  9.5887
+144 23  6.7121
+144 24  4.9861
+144 25  2.2054
+144 26  0.9589
+144 27  0.3835
+144 28  0.0959
+# pixel 145
+145  1  0.7107
+145  2  2.3096
+145  3  6.1294
+145  4 11.0152
+145  5 17.2335
+145  6 20.9645
+145  7 22.1193
+145  8 23.3630
+145  9 24.7843
+145 10 25.3173
+145 11 25.3173
+145 12 25.1396
+145 13 24.6066
+145 14 24.3401
+145 15 23.0965
+145 16 21.8528
+145 17 20.5203
+145 18 19.0990
+145 19 17.5000
+145 20 15.9899
+145 21 12.6142
+145 22  8.8833
+145 23  6.2183
+145 24  4.6193
+145 25  2.0431
+145 26  0.8883
+145 27  0.3553
+145 28  0.0888
+# pixel 146
+146  1  0.6488
+146  2  2.1087
+146  3  5.5962
+146  4 10.0569
+146  5 15.7342
+146  6 19.1405
+146  7 20.1949
+146  8 21.3303
+146  9 22.6280
+146 10 23.1146
+146 11 23.1146
+146 12 22.9524
+146 13 22.4658
+146 14 22.2225
+146 15 21.0870
+146 16 19.9516
+146 17 18.7350
+146 18 17.4373
+146 19 15.9775
+146 20 14.5987
+146 21 11.5168
+146 22  8.1104
+146 23  5.6773
+146 24  4.2174
+146 25  1.8654
+146 26  0.8110
+146 27  0.3244
+146 28  0.0811
+# pixel 147
+147  1  0.7337
+147  2  2.3846
+147  3  6.3284
+147  4 11.3728
+147  5 17.7930
+147  6 21.6451
+147  7 22.8374
+147  8 24.1214
+147  9 25.5889
+147 10 26.1392
+147 11 26.1392
+147 12 25.9557
+147 13 25.4054
+147 14 25.1303
+147 15 23.8463
+147 16 22.5622
+147 17 21.1865
+147 18 19.7190
+147 19 18.0681
+147 20 16.5089
+147 21 13.0237
+147 22  9.1716
+147 23  6.4201
+147 24  4.7693
+147 25  2.1095
+147 26  0.9172
+147 27  0.3669
+147 28  0.0917
+# pixel 148
+148  1  0.7902
+148  2  2.5681
+148  3  6.8154
+148  4 12.2479
+148  5 19.1621
+148  6 23.3106
+148  7 24.5947
+148  8 25.9775
+148  9 27.5579
+148 10 28.1505
+148 11 28.1505
+148 12 27.9530
+148 13 27.3603
+148 14 27.0640
+148 15 25.6812
+148 16 24.2983
+148 17 22.8167
+148 18 21.2364
+148 19 19.4584
+148 20 17.7793
+148 21 14.0259
+148 22  9.8774
+148 23  6.9142
+148 24  5.1362
+148 25  2.2718
+148 26  0.9877
+148 27  0.3951
+148 28  0.0988
+# pixel 149
+149  1  0.6987
+149  2  2.2708
+149  3  6.0264
+149  4 10.8300
+149  5 16.9437
+149  6 20.6120
+149  7 21.7474
+149  8 22.9701
+149  9 24.3676
+149 10 24.8916
+149 11 24.8916
+149 12 24.7169
+149 13 24.1929
+149 14 23.9309
+149 15 22.7081
+149 16 21.4854
+149 17 20.1753
+149 18 18.7779
+149 19 17.2058
+149 20 15.7210
+149 21 12.4021
+149 22  8.7339
+149 23  6.1137
+149 24  4.5416
+149 25  2.0088
+149 26  0.8734
+149 27  0.3494
+149 28  0.0873
+# pixel 150
+150  1  0.6855
+150  2  2.2277
+150  3  5.9121
+150  4 10.6246
+150  5 16.6224
+150  6 20.2211
+150  7 21.3350
+150  8 22.5345
+150  9 23.9055
+150 10 24.4196
+150 11 24.4196
+150 12 24.2482
+150 13 23.7341
+150 14 23.4770
+150 15 22.2775
+150 16 21.0779
+150 17 19.7927
+150 18 18.4218
+150 19 16.8795
+150 20 15.4229
+150 21 12.1669
+150 22  8.5683
+150 23  5.9978
+150 24  4.4555
+150 25  1.9707
+150 26  0.8568
+150 27  0.3427
+150 28  0.0857
+# pixel 151
+151  1  0.6790
+151  2  2.2066
+151  3  5.8560
+151  4 10.5238
+151  5 16.4646
+151  6 20.0291
+151  7 21.1324
+151  8 22.3205
+151  9 23.6784
+151 10 24.1877
+151 11 24.1877
+151 12 24.0179
+151 13 23.5087
+151 14 23.2541
+151 15 22.0659
+151 16 20.8778
+151 17 19.6047
+151 18 18.2468
+151 19 16.7192
+151 20 15.2764
+151 21 12.0514
+151 22  8.4869
+151 23  5.9408
+151 24  4.4132
+151 25  1.9520
+151 26  0.8487
+151 27  0.3395
+151 28  0.0849
+# pixel 152
+152  1  0.7188
+152  2  2.3362
+152  3  6.1999
+152  4 11.1419
+152  5 17.4316
+152  6 21.2055
+152  7 22.3736
+152  8 23.6315
+152  9 25.0692
+152 10 25.6083
+152 11 25.6083
+152 12 25.4286
+152 13 24.8895
+152 14 24.6199
+152 15 23.3620
+152 16 22.1040
+152 17 20.7562
+152 18 19.3185
+152 19 17.7012
+152 20 16.1737
+152 21 12.7592
+152 22  8.9854
+152 23  6.2898
+152 24  4.6724
+152 25  2.0666
+152 26  0.8985
+152 27  0.3594
+152 28  0.0899
+# pixel 153
+153  1  0.7001
+153  2  2.2752
+153  3  6.0381
+153  4 10.8511
+153  5 16.9767
+153  6 20.6521
+153  7 21.7897
+153  8 23.0148
+153  9 24.4150
+153 10 24.9400
+153 11 24.9400
+153 12 24.7650
+153 13 24.2400
+153 14 23.9774
+153 15 22.7523
+153 16 21.5272
+153 17 20.2146
+153 18 18.8144
+153 19 17.2393
+153 20 15.7516
+153 21 12.4263
+153 22  8.7509
+153 23  6.1256
+153 24  4.5505
+153 25  2.0127
+153 26  0.8751
+153 27  0.3500
+153 28  0.0875
+# pixel 154
+154  1  0.7852
+154  2  2.5518
+154  3  6.7720
+154  4 12.1700
+154  5 19.0401
+154  6 23.1622
+154  7 24.4381
+154  8 25.8121
+154  9 27.3824
+154 10 27.9713
+154 11 27.9713
+154 12 27.7750
+154 13 27.1861
+154 14 26.8917
+154 15 25.5177
+154 16 24.1436
+154 17 22.6715
+154 18 21.1012
+154 19 19.3345
+154 20 17.6661
+154 21 13.9366
+154 22  9.8145
+154 23  6.8701
+154 24  5.1035
+154 25  2.2573
+154 26  0.9814
+154 27  0.3926
+154 28  0.0981
+# pixel 155
+155  1  0.6778
+155  2  2.2028
+155  3  5.8459
+155  4 10.5058
+155  5 16.4364
+155  6 19.9948
+155  7 21.0962
+155  8 22.2824
+155  9 23.6380
+155 10 24.1463
+155 11 24.1463
+155 12 23.9769
+155 13 23.4685
+155 14 23.2143
+155 15 22.0282
+155 16 20.8421
+155 17 19.5712
+155 18 18.2156
+155 19 16.6906
+155 20 15.2503
+155 21 12.0308
+155 22  8.4724
+155 23  5.9307
+155 24  4.4056
+155 25  1.9486
+155 26  0.8472
+155 27  0.3389
+155 28  0.0847
+# pixel 156
+156  1  0.6660
+156  2  2.1645
+156  3  5.7443
+156  4 10.3231
+156  5 16.1506
+156  6 19.6471
+156  7 20.7294
+156  8 21.8949
+156  9 23.2269
+156 10 23.7264
+156 11 23.7264
+156 12 23.5599
+156 13 23.0604
+156 14 22.8107
+156 15 21.6452
+156 16 20.4796
+156 17 19.2309
+156 18 17.8989
+156 19 16.4004
+156 20 14.9851
+156 21 11.8216
+156 22  8.3251
+156 23  5.8275
+156 24  4.3290
+156 25  1.9148
+156 26  0.8325
+156 27  0.3330
+156 28  0.0833
+# pixel 157
+157  1  0.7311
+157  2  2.3762
+157  3  6.3061
+157  4 11.3327
+157  5 17.7302
+157  6 21.5687
+157  7 22.7568
+157  8 24.0363
+157  9 25.4986
+157 10 26.0469
+157 11 26.0469
+157 12 25.8641
+157 13 25.3158
+157 14 25.0416
+157 15 23.7621
+157 16 22.4826
+157 17 21.1117
+157 18 19.6494
+157 19 18.0044
+157 20 16.4507
+157 21 12.9778
+157 22  9.1393
+157 23  6.3975
+157 24  4.7524
+157 25  2.1020
+157 26  0.9139
+157 27  0.3656
+157 28  0.0914
+# pixel 158
+158  1  0.5676
+158  2  1.8448
+158  3  4.8958
+158  4  8.7983
+158  5 13.7650
+158  6 16.7451
+158  7 17.6675
+158  8 18.6608
+158  9 19.7961
+158 10 20.2218
+158 11 20.2218
+158 12 20.0799
+158 13 19.6542
+158 14 19.4413
+158 15 18.4480
+158 16 17.4546
+158 17 16.3903
+158 18 15.2550
+158 19 13.9779
+158 20 12.7717
+158 21 10.0754
+158 22  7.0954
+158 23  4.9668
+158 24  3.6896
+158 25  1.6319
+158 26  0.7095
+158 27  0.2838
+158 28  0.0710
+# pixel 159
+159  1  0.7108
+159  2  2.3102
+159  3  6.1309
+159  4 11.0178
+159  5 17.2376
+159  6 20.9694
+159  7 22.1245
+159  8 23.3684
+159  9 24.7901
+159 10 25.3232
+159 11 25.3232
+159 12 25.1455
+159 13 24.6124
+159 14 24.3458
+159 15 23.1019
+159 16 21.8579
+159 17 20.5251
+159 18 19.1035
+159 19 17.5041
+159 20 15.9936
+159 21 12.6172
+159 22  8.8853
+159 23  6.2197
+159 24  4.6204
+159 25  2.0436
+159 26  0.8885
+159 27  0.3554
+159 28  0.0889
+# pixel 160
+160  1  0.7215
+160  2  2.3450
+160  3  6.2233
+160  4 11.1839
+160  5 17.4974
+160  6 21.2855
+160  7 22.4580
+160  8 23.7207
+160  9 25.1638
+160 10 25.7050
+160 11 25.7050
+160 12 25.5246
+160 13 24.9834
+160 14 24.7129
+160 15 23.4502
+160 16 22.1875
+160 17 20.8346
+160 18 19.3915
+160 19 17.7680
+160 20 16.2347
+160 21 12.8074
+160 22  9.0193
+160 23  6.3135
+160 24  4.6900
+160 25  2.0744
+160 26  0.9019
+160 27  0.3608
+160 28  0.0902
+# pixel 161
+161  1  0.6376
+161  2  2.0722
+161  3  5.4992
+161  4  9.8826
+161  5 15.4614
+161  6 18.8087
+161  7 19.8448
+161  8 20.9606
+161  9 22.2358
+161 10 22.7140
+161 11 22.7140
+161 12 22.5546
+161 13 22.0764
+161 14 21.8373
+161 15 20.7215
+161 16 19.6057
+161 17 18.4103
+161 18 17.1351
+161 19 15.7005
+161 20 14.3457
+161 21 11.3171
+161 22  7.9698
+161 23  5.5789
+161 24  4.1443
+161 25  1.8331
+161 26  0.7970
+161 27  0.3188
+161 28  0.0797
+# pixel 162
+162  1  0.6851
+162  2  2.2264
+162  3  5.9086
+162  4 10.6184
+162  5 16.6126
+162  6 20.2092
+162  7 21.3224
+162  8 22.5213
+162  9 23.8914
+162 10 24.4052
+162 11 24.4052
+162 12 24.2339
+162 13 23.7201
+162 14 23.4632
+162 15 22.2644
+162 16 21.0655
+162 17 19.7810
+162 18 18.4109
+162 19 16.8695
+162 20 15.4138
+162 21 12.1598
+162 22  8.5632
+162 23  5.9943
+162 24  4.4529
+162 25  1.9695
+162 26  0.8563
+162 27  0.3425
+162 28  0.0856
+# pixel 163
+163  1  0.6777
+163  2  2.2025
+163  3  5.8451
+163  4 10.5043
+163  5 16.4341
+163  6 19.9920
+163  7 21.0933
+163  8 22.2792
+163  9 23.6346
+163 10 24.1429
+163 11 24.1429
+163 12 23.9735
+163 13 23.4652
+163 14 23.2111
+163 15 22.0251
+163 16 20.8391
+163 17 19.5685
+163 18 18.2131
+163 19 16.6883
+163 20 15.2482
+163 21 12.0291
+163 22  8.4712
+163 23  5.9298
+163 24  4.4050
+163 25  1.9484
+163 26  0.8471
+163 27  0.3388
+163 28  0.0847
+# pixel 164
+164  1  0.6850
+164  2  2.2262
+164  3  5.9081
+164  4 10.6174
+164  5 16.6110
+164  6 20.2072
+164  7 21.3204
+164  8 22.5191
+164  9 23.8891
+164 10 24.4028
+164 11 24.4028
+164 12 24.2316
+164 13 23.7178
+164 14 23.4610
+164 15 22.2622
+164 16 21.0635
+164 17 19.7791
+164 18 18.4091
+164 19 16.8679
+164 20 15.4123
+164 21 12.1586
+164 22  8.5624
+164 23  5.9937
+164 24  4.4524
+164 25  1.9694
+164 26  0.8562
+164 27  0.3425
+164 28  0.0856
+# pixel 165
+165  1  0.7127
+165  2  2.3163
+165  3  6.1472
+165  4 11.0471
+165  5 17.2834
+165  6 21.0252
+165  7 22.1834
+165  8 23.4306
+165  9 24.8561
+165 10 25.3906
+165 11 25.3906
+165 12 25.2124
+165 13 24.6779
+165 14 24.4106
+165 15 23.1634
+165 16 21.9161
+165 17 20.5798
+165 18 19.1543
+165 19 17.5507
+165 20 16.0362
+165 21 12.6508
+165 22  8.9090
+165 23  6.2363
+165 24  4.6327
+165 25  2.0491
+165 26  0.8909
+165 27  0.3564
+165 28  0.0891
+# pixel 166
+166  1  0.7387
+166  2  2.4007
+166  3  6.3711
+166  4 11.4495
+166  5 17.9129
+166  6 21.7910
+166  7 22.9914
+166  8 24.2840
+166  9 25.7614
+166 10 26.3154
+166 11 26.3154
+166 12 26.1307
+166 13 25.5767
+166 14 25.2997
+166 15 24.0070
+166 16 22.7144
+166 17 21.3293
+166 18 19.8520
+166 19 18.1899
+166 20 16.6203
+166 21 13.1115
+166 22  9.2335
+166 23  6.4634
+166 24  4.8014
+166 25  2.1237
+166 26  0.9233
+166 27  0.3693
+166 28  0.0923
+# pixel 167
+167  1  0.7953
+167  2  2.5847
+167  3  6.8595
+167  4 12.3271
+167  5 19.2860
+167  6 23.4613
+167  7 24.7537
+167  8 26.1455
+167  9 27.7361
+167 10 28.3325
+167 11 28.3325
+167 12 28.1337
+167 13 27.5372
+167 14 27.2390
+167 15 25.8472
+167 16 24.4555
+167 17 22.9643
+167 18 21.3737
+167 19 19.5842
+167 20 17.8942
+167 21 14.1166
+167 22  9.9412
+167 23  6.9589
+167 24  5.1694
+167 25  2.2865
+167 26  0.9941
+167 27  0.3976
+167 28  0.0994
+# pixel 168
+168  1  0.6539
+168  2  2.1252
+168  3  5.6400
+168  4 10.1357
+168  5 15.8575
+168  6 19.2906
+168  7 20.3532
+168  8 21.4976
+168  9 22.8054
+168 10 23.2958
+168 11 23.2958
+168 12 23.1324
+168 13 22.6419
+168 14 22.3967
+168 15 21.2523
+168 16 20.1080
+168 17 18.8819
+168 18 17.5741
+168 19 16.1027
+168 20 14.7132
+168 21 11.6070
+168 22  8.1740
+168 23  5.7218
+168 24  4.2505
+168 25  1.8800
+168 26  0.8174
+168 27  0.3270
+168 28  0.0817
+# pixel 169
+169  1  0.7607
+169  2  2.4723
+169  3  6.5612
+169  4 11.7911
+169  5 18.4474
+169  6 22.4412
+169  7 23.6774
+169  8 25.0086
+169  9 26.5301
+169 10 27.1006
+169 11 27.1006
+169 12 26.9104
+169 13 26.3399
+169 14 26.0546
+169 15 24.7234
+169 16 23.3921
+169 17 21.9658
+169 18 20.4443
+169 19 18.7327
+169 20 17.1162
+169 21 13.5028
+169 22  9.5090
+169 23  6.6563
+169 24  4.9447
+169 25  2.1871
+169 26  0.9509
+169 27  0.3804
+169 28  0.0951
+# pixel 170
+170  1  0.8455
+170  2  2.7479
+170  3  7.2925
+170  4 13.1054
+170  5 20.5035
+170  6 24.9425
+170  7 26.3164
+170  8 27.7960
+170  9 29.4871
+170 10 30.1212
+170 11 30.1212
+170 12 29.9098
+170 13 29.2757
+170 14 28.9586
+170 15 27.4790
+170 16 25.9993
+170 17 24.4140
+170 18 22.7230
+170 19 20.8206
+170 20 19.0239
+170 21 15.0077
+170 22 10.5688
+170 23  7.3982
+170 24  5.4958
+170 25  2.4308
+170 26  1.0569
+170 27  0.4228
+170 28  0.1057
+# pixel 171
+171  1  0.6810
+171  2  2.2133
+171  3  5.8737
+171  4 10.5557
+171  5 16.5145
+171  6 20.0898
+171  7 21.1965
+171  8 22.3883
+171  9 23.7503
+171 10 24.2610
+171 11 24.2610
+171 12 24.0908
+171 13 23.5800
+171 14 23.3247
+171 15 22.1329
+171 16 20.9411
+171 17 19.6642
+171 18 18.3022
+171 19 16.7699
+171 20 15.3228
+171 21 12.0880
+171 22  8.5126
+171 23  5.9589
+171 24  4.4266
+171 25  1.9579
+171 26  0.8513
+171 27  0.3405
+171 28  0.0851
+# pixel 172
+172  1  0.7111
+172  2  2.3111
+172  3  6.1334
+172  4 11.0224
+172  5 17.2447
+172  6 20.9781
+172  7 22.1337
+172  8 23.3782
+172  9 24.8004
+172 10 25.3337
+172 11 25.3337
+172 12 25.1560
+172 13 24.6226
+172 14 24.3559
+172 15 23.1115
+172 16 21.8670
+172 17 20.5337
+172 18 19.1114
+172 19 17.5114
+172 20 16.0003
+172 21 12.6224
+172 22  8.8890
+172 23  6.2223
+172 24  4.6223
+172 25  2.0445
+172 26  0.8889
+172 27  0.3556
+172 28  0.0889
+# pixel 173
+173  1  0.7148
+173  2  2.3230
+173  3  6.1648
+173  4 11.0788
+173  5 17.3329
+173  6 21.0854
+173  7 22.2469
+173  8 23.4977
+173  9 24.9272
+173 10 25.4633
+173 11 25.4633
+173 12 25.2846
+173 13 24.7485
+173 14 24.4805
+173 15 23.2297
+173 16 21.9789
+173 17 20.6387
+173 18 19.2092
+173 19 17.6009
+173 20 16.0821
+173 21 12.6870
+173 22  8.9345
+173 23  6.2541
+173 24  4.6459
+173 25  2.0549
+173 26  0.8934
+173 27  0.3574
+173 28  0.0893
+# pixel 174
+174  1  0.8155
+174  2  2.6504
+174  3  7.0336
+174  4 12.6402
+174  5 19.7758
+174  6 24.0571
+174  7 25.3823
+174  8 26.8094
+174  9 28.4404
+174 10 29.0520
+174 11 29.0520
+174 12 28.8481
+174 13 28.2365
+174 14 27.9307
+174 15 26.5036
+174 16 25.0765
+174 17 23.5474
+174 18 21.9164
+174 19 20.0816
+174 20 18.3486
+174 21 14.4750
+174 22 10.1937
+174 23  7.1356
+174 24  5.3007
+174 25  2.3445
+174 26  1.0194
+174 27  0.4077
+174 28  0.1019
+# pixel 175
+175  1  0.8099
+175  2  2.6320
+175  3  6.9850
+175  4 12.5528
+175  5 19.6390
+175  6 23.8908
+175  7 25.2068
+175  8 26.6241
+175  9 28.2438
+175 10 28.8512
+175 11 28.8512
+175 12 28.6487
+175 13 28.0413
+175 14 27.7376
+175 15 26.3204
+175 16 24.9031
+175 17 23.3846
+175 18 21.7649
+175 19 19.9427
+175 20 18.2218
+175 21 14.3750
+175 22 10.1232
+175 23  7.0863
+175 24  5.2641
+175 25  2.3283
+175 26  1.0123
+175 27  0.4049
+175 28  0.1012
+# pixel 176
+176  1  0.7575
+176  2  2.4618
+176  3  6.5331
+176  4 11.7407
+176  5 18.3685
+176  6 22.3451
+176  7 23.5760
+176  8 24.9016
+176  9 26.4165
+176 10 26.9846
+176 11 26.9846
+176 12 26.7952
+176 13 26.2271
+176 14 25.9431
+176 15 24.6175
+176 16 23.2920
+176 17 21.8717
+176 18 20.3568
+176 19 18.6525
+176 20 17.0429
+176 21 13.4450
+176 22  9.4683
+176 23  6.6278
+176 24  4.9235
+176 25  2.1777
+176 26  0.9468
+176 27  0.3787
+176 28  0.0947
+# pixel 177
+177  1  0.7508
+177  2  2.4400
+177  3  6.4755
+177  4 11.6371
+177  5 18.2064
+177  6 22.1480
+177  7 23.3681
+177  8 24.6819
+177  9 26.1835
+177 10 26.7466
+177 11 26.7466
+177 12 26.5589
+177 13 25.9958
+177 14 25.7142
+177 15 24.4004
+177 16 23.0865
+177 17 21.6788
+177 18 20.1772
+177 19 18.4880
+177 20 16.8926
+177 21 13.3264
+177 22  9.3848
+177 23  6.5693
+177 24  4.8801
+177 25  2.1585
+177 26  0.9385
+177 27  0.3754
+177 28  0.0938
+# pixel 178
+178  1  0.8177
+178  2  2.6576
+178  3  7.0529
+178  4 12.6748
+178  5 19.8300
+178  6 24.1231
+178  7 25.4519
+178  8 26.8829
+178  9 28.5184
+178 10 29.1317
+178 11 29.1317
+178 12 28.9272
+178 13 28.3139
+178 14 28.0073
+178 15 26.5762
+178 16 25.1452
+178 17 23.6120
+178 18 21.9765
+178 19 20.1366
+178 20 18.3989
+178 21 14.5147
+178 22 10.2216
+178 23  7.1551
+178 24  5.3152
+178 25  2.3510
+178 26  1.0222
+178 27  0.4089
+178 28  0.1022
+# pixel 179
+179  1  0.7469
+179  2  2.4273
+179  3  6.4417
+179  4 11.5765
+179  5 18.1116
+179  6 22.0326
+179  7 23.2463
+179  8 24.5533
+179  9 26.0470
+179 10 26.6072
+179 11 26.6072
+179 12 26.4205
+179 13 25.8603
+179 14 25.5802
+179 15 24.2732
+179 16 22.9662
+179 17 21.5658
+179 18 20.0721
+179 19 18.3916
+179 20 16.8045
+179 21 13.2569
+179 22  9.3359
+179 23  6.5351
+179 24  4.8546
+179 25  2.1472
+179 26  0.9336
+179 27  0.3734
+179 28  0.0934
+# pixel 180
+180  1  0.7676
+180  2  2.4948
+180  3  6.6208
+180  4 11.8983
+180  5 18.6151
+180  6 22.6452
+180  7 23.8926
+180  8 25.2360
+180  9 26.7712
+180 10 27.3470
+180 11 27.3470
+180 12 27.1551
+180 13 26.5793
+180 14 26.2915
+180 15 24.9481
+180 16 23.6047
+180 17 22.1654
+180 18 20.6302
+180 19 18.9030
+180 20 17.2718
+180 21 13.6255
+180 22  9.5954
+180 23  6.7168
+180 24  4.9896
+180 25  2.2069
+180 26  0.9595
+180 27  0.3838
+180 28  0.0960
+# pixel 181
+181  1  0.6670
+181  2  2.1679
+181  3  5.7532
+181  4 10.3391
+181  5 16.1756
+181  6 19.6776
+181  7 20.7615
+181  8 21.9288
+181  9 23.2629
+181 10 23.7632
+181 11 23.7632
+181 12 23.5964
+181 13 23.0961
+181 14 22.8460
+181 15 21.6787
+181 16 20.5114
+181 17 19.2607
+181 18 17.9266
+181 19 16.4258
+181 20 15.0083
+181 21 11.8399
+181 22  8.3379
+181 23  5.8366
+181 24  4.3357
+181 25  1.9177
+181 26  0.8338
+181 27  0.3335
+181 28  0.0834
+# pixel 182
+182  1  0.7422
+182  2  2.4122
+182  3  6.4016
+182  4 11.5044
+182  5 17.9988
+182  6 21.8954
+182  7 23.1015
+182  8 24.4004
+182  9 25.8849
+182 10 26.4415
+182 11 26.4415
+182 12 26.2560
+182 13 25.6993
+182 14 25.4210
+182 15 24.1221
+182 16 22.8232
+182 17 21.4315
+182 18 19.9471
+182 19 18.2771
+182 20 16.6999
+182 21 13.1744
+182 22  9.2777
+182 23  6.4944
+182 24  4.8244
+182 25  2.1339
+182 26  0.9278
+182 27  0.3711
+182 28  0.0928
+# pixel 183
+183  1  0.8418
+183  2  2.7359
+183  3  7.2605
+183  4 13.0479
+183  5 20.4137
+183  6 24.8331
+183  7 26.2010
+183  8 27.6742
+183  9 29.3578
+183 10 29.9891
+183 11 29.9891
+183 12 29.7787
+183 13 29.1473
+183 14 28.8317
+183 15 27.3585
+183 16 25.8854
+183 17 24.3070
+183 18 22.6234
+183 19 20.7293
+183 20 18.9405
+183 21 14.9420
+183 22 10.5225
+183 23  7.3658
+183 24  5.4717
+183 25  2.4202
+183 26  1.0523
+183 27  0.4209
+183 28  0.1052
+# pixel 184
+184  1  0.7349
+184  2  2.3886
+184  3  6.3389
+184  4 11.3916
+184  5 17.8223
+184  6 21.6808
+184  7 22.8751
+184  8 24.1612
+184  9 25.6311
+184 10 26.1823
+184 11 26.1823
+184 12 25.9986
+184 13 25.4473
+184 14 25.1717
+184 15 23.8856
+184 16 22.5994
+184 17 21.2214
+184 18 19.7516
+184 19 18.0979
+184 20 16.5362
+184 21 13.0452
+184 22  9.1868
+184 23  6.4307
+184 24  4.7771
+184 25  2.1130
+184 26  0.9187
+184 27  0.3675
+184 28  0.0919
+# pixel 185
+185  1  0.7916
+185  2  2.5726
+185  3  6.8272
+185  4 12.2691
+185  5 19.1952
+185  6 23.3509
+185  7 24.6372
+185  8 26.0224
+185  9 27.6055
+185 10 28.1992
+185 11 28.1992
+185 12 28.0013
+185 13 27.4076
+185 14 27.1108
+185 15 25.7255
+185 16 24.3403
+185 17 22.8562
+185 18 21.2730
+185 19 19.4920
+185 20 17.8100
+185 21 14.0501
+185 22  9.8944
+185 23  6.9261
+185 24  5.1451
+185 25  2.2757
+185 26  0.9894
+185 27  0.3958
+185 28  0.0989
+# pixel 186
+186  1  0.7627
+186  2  2.4787
+186  3  6.5780
+186  4 11.8214
+186  5 18.4947
+186  6 22.4987
+186  7 23.7381
+186  8 25.0728
+186  9 26.5981
+186 10 27.1701
+186 11 27.1701
+186 12 26.9794
+186 13 26.4074
+186 14 26.1214
+186 15 24.7868
+186 16 23.4521
+186 17 22.0221
+186 18 20.4967
+186 19 18.7807
+186 20 17.1601
+186 21 13.5374
+186 22  9.5334
+186 23  6.6734
+186 24  4.9574
+186 25  2.1927
+186 26  0.9533
+186 27  0.3813
+186 28  0.0953
+# pixel 187
+187  1  0.7046
+187  2  2.2898
+187  3  6.0768
+187  4 10.9206
+187  5 17.0855
+187  6 20.7844
+187  7 21.9293
+187  8 23.1623
+187  9 24.5714
+187 10 25.0998
+187 11 25.0998
+187 12 24.9237
+187 13 24.3953
+187 14 24.1311
+187 15 22.8981
+187 16 21.6651
+187 17 20.3441
+187 18 18.9350
+187 19 17.3497
+187 20 15.8525
+187 21 12.5059
+187 22  8.8070
+187 23  6.1649
+187 24  4.5796
+187 25  2.0256
+187 26  0.8807
+187 27  0.3523
+187 28  0.0881
+# pixel 188
+188  1  0.7162
+188  2  2.3276
+188  3  6.1771
+188  4 11.1009
+188  5 17.3675
+188  6 21.1274
+188  7 22.2912
+188  8 23.5445
+188  9 24.9769
+188 10 25.5141
+188 11 25.5141
+188 12 25.3350
+188 13 24.7979
+188 14 24.5293
+188 15 23.2760
+188 16 22.0227
+188 17 20.6798
+188 18 19.2474
+188 19 17.6360
+188 20 16.1141
+188 21 12.7123
+188 22  8.9523
+188 23  6.2666
+188 24  4.6552
+188 25  2.0590
+188 26  0.8952
+188 27  0.3581
+188 28  0.0895
+# pixel 189
+189  1  0.7951
+189  2  2.5842
+189  3  6.8581
+189  4 12.3247
+189  5 19.2823
+189  6 23.4568
+189  7 24.7489
+189  8 26.1404
+189  9 27.7307
+189 10 28.3270
+189 11 28.3270
+189 12 28.1282
+189 13 27.5319
+189 14 27.2337
+189 15 25.8422
+189 16 24.4507
+189 17 22.9598
+189 18 21.3695
+189 19 19.5804
+189 20 17.8908
+189 21 14.1138
+189 22  9.9393
+189 23  6.9575
+189 24  5.1684
+189 25  2.2860
+189 26  0.9939
+189 27  0.3976
+189 28  0.0994
+# pixel 190
+190  1  0.7385
+190  2  2.4000
+190  3  6.3692
+190  4 11.4461
+190  5 17.9077
+190  6 21.7846
+190  7 22.9846
+190  8 24.2769
+190  9 25.7538
+190 10 26.3077
+190 11 26.3077
+190 12 26.1231
+190 13 25.5692
+190 14 25.2923
+190 15 24.0000
+190 16 22.7077
+190 17 21.3231
+190 18 19.8461
+190 19 18.1846
+190 20 16.6154
+190 21 13.1077
+190 22  9.2308
+190 23  6.4615
+190 24  4.8000
+190 25  2.1231
+190 26  0.9231
+190 27  0.3692
+190 28  0.0923
+# pixel 191
+191  1  0.6734
+191  2  2.1886
+191  3  5.8081
+191  4 10.4377
+191  5 16.3300
+191  6 19.8654
+191  7 20.9596
+191  8 22.1381
+191  9 23.4849
+191 10 23.9899
+191 11 23.9899
+191 12 23.8216
+191 13 23.3165
+191 14 23.0640
+191 15 21.8856
+191 16 20.7071
+191 17 19.4445
+191 18 18.0977
+191 19 16.5825
+191 20 15.1515
+191 21 11.9529
+191 22  8.4175
+191 23  5.8923
+191 24  4.3771
+191 25  1.9360
+191 26  0.8418
+191 27  0.3367
+191 28  0.0842
+# pixel 192
+192  1  0.7077
+192  2  2.3001
+192  3  6.1041
+192  4 10.9697
+192  5 17.1623
+192  6 20.8778
+192  7 22.0279
+192  8 23.2664
+192  9 24.6818
+192 10 25.2126
+192 11 25.2126
+192 12 25.0357
+192 13 24.5049
+192 14 24.2395
+192 15 23.0010
+192 16 21.7625
+192 17 20.4355
+192 18 19.0200
+192 19 17.4277
+192 20 15.9238
+192 21 12.5621
+192 22  8.8465
+192 23  6.1926
+192 24  4.6002
+192 25  2.0347
+192 26  0.8847
+192 27  0.3539
+192 28  0.0885
+# pixel 193
+193  1  0.7586
+193  2  2.4656
+193  3  6.5432
+193  4 11.7588
+193  5 18.3969
+193  6 22.3797
+193  7 23.6125
+193  8 24.9401
+193  9 26.4573
+193 10 27.0263
+193 11 27.0263
+193 12 26.8367
+193 13 26.2677
+193 14 25.9832
+193 15 24.6556
+193 16 23.3280
+193 17 21.9055
+193 18 20.3883
+193 19 18.6814
+193 20 17.0693
+193 21 13.4657
+193 22  9.4829
+193 23  6.6380
+193 24  4.9311
+193 25  2.1811
+193 26  0.9483
+193 27  0.3793
+193 28  0.0948
+# pixel 194
+194  1  0.7498
+194  2  2.4368
+194  3  6.4670
+194  4 11.6218
+194  5 18.1825
+194  6 22.1189
+194  7 23.3373
+194  8 24.6495
+194  9 26.1491
+194 10 26.7114
+194 11 26.7114
+194 12 26.5240
+194 13 25.9616
+194 14 25.6805
+194 15 24.3683
+194 16 23.0562
+194 17 21.6503
+194 18 20.1507
+194 19 18.4637
+194 20 16.8704
+194 21 13.3088
+194 22  9.3724
+194 23  6.5607
+194 24  4.8737
+194 25  2.1557
+194 26  0.9372
+194 27  0.3749
+194 28  0.0937
+# pixel 195
+195  1  0.7096
+195  2  2.3062
+195  3  6.1202
+195  4 10.9986
+195  5 17.2075
+195  6 20.9329
+195  7 22.0860
+195  8 23.3278
+195  9 24.7469
+195 10 25.2791
+195 11 25.2791
+195 12 25.1017
+195 13 24.5695
+195 14 24.3034
+195 15 23.0617
+195 16 21.8199
+195 17 20.4894
+195 18 19.0702
+195 19 17.4736
+195 20 15.9658
+195 21 12.5952
+195 22  8.8699
+195 23  6.2089
+195 24  4.6123
+195 25  2.0401
+195 26  0.8870
+195 27  0.3548
+195 28  0.0887
+# pixel 196
+196  1  0.6086
+196  2  1.9780
+196  3  5.2493
+196  4  9.4335
+196  5 14.7588
+196  6 17.9540
+196  7 18.9430
+196  8 20.0081
+196  9 21.2253
+196 10 21.6818
+196 11 21.6818
+196 12 21.5296
+196 13 21.0731
+196 14 20.8449
+196 15 19.7798
+196 16 18.7148
+196 17 17.5736
+196 18 16.3564
+196 19 14.9870
+196 20 13.6937
+196 21 10.8028
+196 22  7.6076
+196 23  5.3253
+196 24  3.9560
+196 25  1.7498
+196 26  0.7608
+196 27  0.3043
+196 28  0.0761
+# pixel 197
+197  1  0.7186
+197  2  2.3355
+197  3  6.1980
+197  4 11.1385
+197  5 17.4264
+197  6 21.1991
+197  7 22.3669
+197  8 23.6244
+197  9 25.0617
+197 10 25.6006
+197 11 25.6006
+197 12 25.4210
+197 13 24.8820
+197 14 24.6125
+197 15 23.3550
+197 16 22.0974
+197 17 20.7500
+197 18 19.3128
+197 19 17.6959
+197 20 16.1688
+197 21 12.7554
+197 22  8.9827
+197 23  6.2879
+197 24  4.6710
+197 25  2.0660
+197 26  0.8983
+197 27  0.3593
+197 28  0.0898
+# pixel 198
+198  1  0.6324
+198  2  2.0554
+198  3  5.4548
+198  4  9.8029
+198  5 15.3368
+198  6 18.6571
+198  7 19.6848
+198  8 20.7916
+198  9 22.0565
+198 10 22.5309
+198 11 22.5309
+198 12 22.3727
+198 13 21.8984
+198 14 21.6612
+198 15 20.5545
+198 16 19.4477
+198 17 18.2618
+198 18 16.9970
+198 19 15.5740
+198 20 14.2300
+198 21 11.2259
+198 22  7.9056
+198 23  5.5339
+198 24  4.1109
+198 25  1.8183
+198 26  0.7906
+198 27  0.3162
+198 28  0.0791
+# pixel 199
+199  1  0.7502
+199  2  2.4381
+199  3  6.4703
+199  4 11.6278
+199  5 18.1920
+199  6 22.1304
+199  7 23.3495
+199  8 24.6623
+199  9 26.1627
+199 10 26.7253
+199 11 26.7253
+199 12 26.5377
+199 13 25.9751
+199 14 25.6938
+199 15 24.3810
+199 16 23.0681
+199 17 21.6616
+199 18 20.1612
+199 19 18.4733
+199 20 16.8791
+199 21 13.3158
+199 22  9.3773
+199 23  6.5641
+199 24  4.8762
+199 25  2.1568
+199 26  0.9377
+199 27  0.3751
+199 28  0.0938
+# pixel 200
+200  1  0.7007
+200  2  2.2771
+200  3  6.0431
+200  4 10.8601
+200  5 16.9909
+200  6 20.6693
+200  7 21.8079
+200  8 23.0340
+200  9 24.4353
+200 10 24.9608
+200 11 24.9608
+200 12 24.7856
+200 13 24.2601
+200 14 23.9974
+200 15 22.7713
+200 16 21.5451
+200 17 20.2314
+200 18 18.8301
+200 19 17.2536
+200 20 15.7647
+200 21 12.4366
+200 22  8.7582
+200 23  6.1307
+200 24  4.5543
+200 25  2.0144
+200 26  0.8758
+200 27  0.3503
+200 28  0.0876
+# pixel 201
+201  1  0.7678
+201  2  2.4954
+201  3  6.6224
+201  4 11.9012
+201  5 18.6196
+201  6 22.6507
+201  7 23.8984
+201  8 25.2421
+201  9 26.7777
+201 10 27.3536
+201 11 27.3536
+201 12 27.1616
+201 13 26.5857
+201 14 26.2978
+201 15 24.9541
+201 16 23.6104
+201 17 22.1708
+201 18 20.6351
+201 19 18.9075
+201 20 17.2759
+201 21 13.6288
+201 22  9.5977
+201 23  6.7184
+201 24  4.9908
+201 25  2.2075
+201 26  0.9598
+201 27  0.3839
+201 28  0.0960
+# pixel 202
+202  1  0.6824
+202  2  2.2179
+202  3  5.8859
+202  4 10.5775
+202  5 16.5487
+202  6 20.1314
+202  7 21.2403
+202  8 22.4345
+202  9 23.7994
+202 10 24.3112
+202 11 24.3112
+202 12 24.1406
+202 13 23.6288
+202 14 23.3729
+202 15 22.1786
+202 16 20.9844
+202 17 19.7048
+202 18 18.3400
+202 19 16.8046
+202 20 15.3544
+202 21 12.1129
+202 22  8.5302
+202 23  5.9712
+202 24  4.4357
+202 25  1.9620
+202 26  0.8530
+202 27  0.3412
+202 28  0.0853
+# pixel 203
+203  1  0.6801
+203  2  2.2104
+203  3  5.8660
+203  4 10.5418
+203  5 16.4929
+203  6 20.0635
+203  7 21.1687
+203  8 22.3589
+203  9 23.7191
+203 10 24.2292
+203 11 24.2292
+203 12 24.0592
+203 13 23.5491
+203 14 23.2940
+203 15 22.1038
+203 16 20.9136
+203 17 19.6384
+203 18 18.2782
+203 19 16.7479
+203 20 15.3026
+203 21 12.0721
+203 22  8.5015
+203 23  5.9510
+203 24  4.4208
+203 25  1.9553
+203 26  0.8501
+203 27  0.3401
+203 28  0.0850
+# pixel 204
+204  1  0.7166
+204  2  2.3289
+204  3  6.1806
+204  4 11.1072
+204  5 17.3775
+204  6 21.1396
+204  7 22.3041
+204  8 23.5581
+204  9 24.9913
+204 10 25.5287
+204 11 25.5287
+204 12 25.3496
+204 13 24.8121
+204 14 24.5434
+204 15 23.2894
+204 16 22.0353
+204 17 20.6917
+204 18 19.2585
+204 19 17.6462
+204 20 16.1234
+204 21 12.7196
+204 22  8.9575
+204 23  6.2702
+204 24  4.6579
+204 25  2.0602
+204 26  0.8957
+204 27  0.3583
+204 28  0.0896
+# pixel 205
+205  1  0.7081
+205  2  2.3013
+205  3  6.1073
+205  4 10.9754
+205  5 17.1712
+205  6 20.8887
+205  7 22.0393
+205  8 23.2785
+205  9 24.6947
+205 10 25.2257
+205 11 25.2257
+205 12 25.0487
+205 13 24.5176
+205 14 24.2521
+205 15 23.0130
+205 16 21.7738
+205 17 20.4461
+205 18 19.0299
+205 19 17.4367
+205 20 15.9320
+205 21 12.5686
+205 22  8.8511
+205 23  6.1958
+205 24  4.6026
+205 25  2.0358
+205 26  0.8851
+205 27  0.3540
+205 28  0.0885
+# pixel 206
+206  1  0.7697
+206  2  2.5016
+206  3  6.6388
+206  4 11.9306
+206  5 18.6656
+206  6 22.7066
+206  7 23.9574
+206  8 25.3044
+206  9 26.8438
+206 10 27.4211
+206 11 27.4211
+206 12 27.2287
+206 13 26.6514
+206 14 26.3628
+206 15 25.0158
+206 16 23.6688
+206 17 22.2256
+206 18 20.6861
+206 19 18.9543
+206 20 17.3186
+206 21 13.6625
+206 22  9.6215
+206 23  6.7350
+206 24  5.0032
+206 25  2.2129
+206 26  0.9621
+206 27  0.3849
+206 28  0.0962
+# pixel 207
+207  1  0.7851
+207  2  2.5517
+207  3  6.7718
+207  4 12.1696
+207  5 19.0396
+207  6 23.1615
+207  7 24.4374
+207  8 25.8114
+207  9 27.3816
+207 10 27.9705
+207 11 27.9705
+207 12 27.7742
+207 13 27.1854
+207 14 26.8909
+207 15 25.5169
+207 16 24.1429
+207 17 22.6708
+207 18 21.1005
+207 19 19.3340
+207 20 17.6656
+207 21 13.9362
+207 22  9.8142
+207 23  6.8699
+207 24  5.1034
+207 25  2.2573
+207 26  0.9814
+207 27  0.3926
+207 28  0.0981
+# pixel 208
+208  1  0.6484
+208  2  2.1072
+208  3  5.5922
+208  4 10.0498
+208  5 15.7230
+208  6 19.1270
+208  7 20.1806
+208  8 21.3152
+208  9 22.6120
+208 10 23.0982
+208 11 23.0982
+208 12 22.9362
+208 13 22.4499
+208 14 22.2067
+208 15 21.0721
+208 16 19.9374
+208 17 18.7217
+208 18 17.4250
+208 19 15.9662
+208 20 14.5884
+208 21 11.5086
+208 22  8.1046
+208 23  5.6733
+208 24  4.2144
+208 25  1.8641
+208 26  0.8105
+208 27  0.3242
+208 28  0.0810
+# pixel 209
+209  1  0.6453
+209  2  2.0973
+209  3  5.5659
+209  4 10.0025
+209  5 15.6490
+209  6 19.0369
+209  7 20.0856
+209  8 21.2149
+209  9 22.5055
+209 10 22.9895
+209 11 22.9895
+209 12 22.8282
+209 13 22.3442
+209 14 22.1022
+209 15 20.9729
+209 16 19.8436
+209 17 18.6336
+209 18 17.3430
+209 19 15.8910
+209 20 14.5197
+209 21 11.4544
+209 22  8.0665
+209 23  5.6465
+209 24  4.1946
+209 25  1.8553
+209 26  0.8066
+209 27  0.3227
+209 28  0.0807
+# pixel 210
+210  1  0.7314
+210  2  2.3770
+210  3  6.3083
+210  4 11.3366
+210  5 17.7363
+210  6 21.5761
+210  7 22.7646
+210  8 24.0445
+210  9 25.5073
+210 10 26.0558
+210 11 26.0558
+210 12 25.8730
+210 13 25.3244
+210 14 25.0502
+210 15 23.7702
+210 16 22.4903
+210 17 21.1189
+210 18 19.6562
+210 19 18.0105
+210 20 16.4563
+210 21 12.9822
+210 22  9.1424
+210 23  6.3997
+210 24  4.7540
+210 25  2.1028
+210 26  0.9142
+210 27  0.3657
+210 28  0.0914
+# pixel 211
+211  1  0.7233
+211  2  2.3507
+211  3  6.2385
+211  4 11.2111
+211  5 17.5400
+211  6 21.3373
+211  7 22.5127
+211  8 23.7785
+211  9 25.2251
+211 10 25.7676
+211 11 25.7676
+211 12 25.5867
+211 13 25.0443
+211 14 24.7730
+211 15 23.5072
+211 16 22.2415
+211 17 20.8853
+211 18 19.4387
+211 19 17.8113
+211 20 16.2742
+211 21 12.8386
+211 22  9.0412
+211 23  6.3289
+211 24  4.7014
+211 25  2.0795
+211 26  0.9041
+211 27  0.3616
+211 28  0.0904
+# pixel 212
+212  1  0.8032
+212  2  2.6106
+212  3  6.9280
+212  4 12.4504
+212  5 19.4788
+212  6 23.6959
+212  7 25.0011
+212  8 26.4068
+212  9 28.0133
+212 10 28.6158
+212 11 28.6158
+212 12 28.4150
+212 13 27.8125
+212 14 27.5113
+212 15 26.1056
+212 16 24.6999
+212 17 23.1938
+212 18 21.5873
+212 19 19.7800
+212 20 18.0731
+212 21 14.2577
+212 22 10.0406
+212 23  7.0284
+212 24  5.2211
+212 25  2.3093
+212 26  1.0041
+212 27  0.4016
+212 28  0.1004
+# pixel 213
+213  1  0.7581
+213  2  2.4640
+213  3  6.5389
+213  4 11.7512
+213  5 18.3849
+213  6 22.3651
+213  7 23.5971
+213  8 24.9238
+213  9 26.4401
+213 10 27.0087
+213 11 27.0087
+213 12 26.8192
+213 13 26.2506
+213 14 25.9663
+213 15 24.6395
+213 16 23.3128
+213 17 21.8913
+213 18 20.3750
+213 19 18.6692
+213 20 17.0581
+213 21 13.4570
+213 22  9.4767
+213 23  6.6337
+213 24  4.9279
+213 25  2.1796
+213 26  0.9477
+213 27  0.3791
+213 28  0.0948
+# pixel 214
+214  1  0.6353
+214  2  2.0648
+214  3  5.4798
+214  4  9.8477
+214  5 15.4069
+214  6 18.7424
+214  7 19.7748
+214  8 20.8867
+214  9 22.1573
+214 10 22.6338
+214 11 22.6338
+214 12 22.4750
+214 13 21.9985
+214 14 21.7602
+214 15 20.6484
+214 16 19.5366
+214 17 18.3453
+214 18 17.0746
+214 19 15.6451
+214 20 14.2950
+214 21 11.2772
+214 22  7.9417
+214 23  5.5592
+214 24  4.1297
+214 25  1.8266
+214 26  0.7942
+214 27  0.3177
+214 28  0.0794
+# pixel 215
+215  1  0.7058
+215  2  2.2939
+215  3  6.0877
+215  4 10.9403
+215  5 17.1162
+215  6 20.8218
+215  7 21.9688
+215  8 23.2040
+215  9 24.6156
+215 10 25.1450
+215 11 25.1450
+215 12 24.9685
+215 13 24.4392
+215 14 24.1745
+215 15 22.9393
+215 16 21.7041
+215 17 20.3807
+215 18 18.9690
+215 19 17.3809
+215 20 15.8811
+215 21 12.5284
+215 22  8.8228
+215 23  6.1760
+215 24  4.5879
+215 25  2.0292
+215 26  0.8823
+215 27  0.3529
+215 28  0.0882
+# pixel 216
+216  1  0.7410
+216  2  2.4082
+216  3  6.3909
+216  4 11.4850
+216  5 17.9685
+216  6 21.8586
+216  7 23.0627
+216  8 24.3594
+216  9 25.8413
+216 10 26.3970
+216 11 26.3970
+216 12 26.2118
+216 13 25.6561
+216 14 25.3782
+216 15 24.0815
+216 16 22.7848
+216 17 21.3955
+216 18 19.9136
+216 19 18.2464
+216 20 16.6718
+216 21 13.1522
+216 22  9.2621
+216 23  6.4835
+216 24  4.8163
+216 25  2.1303
+216 26  0.9262
+216 27  0.3705
+216 28  0.0926
+# pixel 217
+217  1  0.7076
+217  2  2.2998
+217  3  6.1033
+217  4 10.9683
+217  5 17.1600
+217  6 20.8751
+217  7 22.0250
+217  8 23.2633
+217  9 24.6786
+217 10 25.2093
+217 11 25.2093
+217 12 25.0324
+217 13 24.5017
+217 14 24.2363
+217 15 22.9980
+217 16 21.7596
+217 17 20.4328
+217 18 19.0175
+217 19 17.4254
+217 20 15.9217
+217 21 12.5604
+217 22  8.8454
+217 23  6.1918
+217 24  4.5996
+217 25  2.0344
+217 26  0.8845
+217 27  0.3538
+217 28  0.0885
+# pixel 218
+218  1  0.7656
+218  2  2.4882
+218  3  6.6034
+218  4 11.8670
+218  5 18.5660
+218  6 22.5855
+218  7 23.8296
+218  8 25.1694
+218  9 26.7006
+218 10 27.2749
+218 11 27.2749
+218 12 27.0834
+218 13 26.5092
+218 14 26.2221
+218 15 24.8823
+218 16 23.5425
+218 17 22.1070
+218 18 20.5758
+218 19 18.8531
+218 20 17.2262
+218 21 13.5896
+218 22  9.5701
+218 23  6.6991
+218 24  4.9765
+218 25  2.2011
+218 26  0.9570
+218 27  0.3828
+218 28  0.0957
+# pixel 219
+219  1  0.7252
+219  2  2.3570
+219  3  6.2551
+219  4 11.2411
+219  5 17.5869
+219  6 21.3943
+219  7 22.5728
+219  8 23.8420
+219  9 25.2924
+219 10 25.8364
+219 11 25.8364
+219 12 25.6551
+219 13 25.1111
+219 14 24.8392
+219 15 23.5700
+219 16 22.3009
+219 17 20.9411
+219 18 19.4906
+219 19 17.8588
+219 20 16.3177
+219 21 12.8729
+219 22  9.0654
+219 23  6.3458
+219 24  4.7140
+219 25  2.0850
+219 26  0.9065
+219 27  0.3626
+219 28  0.0907
+# pixel 220
+220  1  0.7451
+220  2  2.4216
+220  3  6.4265
+220  4 11.5490
+220  5 18.0687
+220  6 21.9804
+220  7 23.1912
+220  8 24.4952
+220  9 25.9854
+220 10 26.5442
+220 11 26.5442
+220 12 26.3579
+220 13 25.7991
+220 14 25.5197
+220 15 24.2157
+220 16 22.9118
+220 17 21.5148
+220 18 20.0246
+220 19 18.3481
+220 20 16.7647
+220 21 13.2255
+220 22  9.3137
+220 23  6.5196
+220 24  4.8431
+220 25  2.1422
+220 26  0.9314
+220 27  0.3725
+220 28  0.0931
+# pixel 221
+221  1  0.7751
+221  2  2.5191
+221  3  6.6852
+221  4 12.0140
+221  5 18.7962
+221  6 22.8654
+221  7 24.1250
+221  8 25.4814
+221  9 27.0316
+221 10 27.6129
+221 11 27.6129
+221 12 27.4192
+221 13 26.8378
+221 14 26.5472
+221 15 25.1907
+221 16 23.8343
+221 17 22.3810
+221 18 20.8308
+221 19 19.0868
+221 20 17.4397
+221 21 13.7580
+221 22  9.6887
+221 23  6.7821
+221 24  5.0381
+221 25  2.2284
+221 26  0.9689
+221 27  0.3875
+221 28  0.0969
+# pixel 222
+222  1  0.7180
+222  2  2.3335
+222  3  6.1928
+222  4 11.1291
+222  5 17.4116
+222  6 21.1811
+222  7 22.3479
+222  8 23.6044
+222  9 25.0404
+222 10 25.5789
+222 11 25.5789
+222 12 25.3994
+222 13 24.8609
+222 14 24.5916
+222 15 23.3351
+222 16 22.0786
+222 17 20.7324
+222 18 19.2964
+222 19 17.6809
+222 20 16.1551
+222 21 12.7446
+222 22  8.9751
+222 23  6.2825
+222 24  4.6670
+222 25  2.0643
+222 26  0.8975
+222 27  0.3590
+222 28  0.0898
+# pixel 223
+223  1  0.8217
+223  2  2.6704
+223  3  7.0869
+223  4 12.7359
+223  5 19.9256
+223  6 24.2394
+223  7 25.5746
+223  8 27.0125
+223  9 28.6559
+223 10 29.2721
+223 11 29.2721
+223 12 29.0667
+223 13 28.4505
+223 14 28.1423
+223 15 26.7044
+223 16 25.2665
+223 17 23.7258
+223 18 22.0825
+223 19 20.2337
+223 20 18.4877
+223 21 14.5847
+223 22 10.2709
+223 23  7.1896
+223 24  5.3409
+223 25  2.3623
+223 26  1.0271
+223 27  0.4108
+223 28  0.1027
+# pixel 224
+224  1  0.7388
+224  2  2.4012
+224  3  6.3723
+224  4 11.4517
+224  5 17.9164
+224  6 21.7952
+224  7 22.9957
+224  8 24.2887
+224  9 25.7663
+224 10 26.3204
+224 11 26.3204
+224 12 26.1357
+224 13 25.5816
+224 14 25.3046
+224 15 24.0116
+224 16 22.7187
+224 17 21.3334
+224 18 19.8558
+224 19 18.1934
+224 20 16.6234
+224 21 13.1140
+224 22  9.2352
+224 23  6.4647
+224 24  4.8023
+224 25  2.1241
+224 26  0.9235
+224 27  0.3694
+224 28  0.0924
+# pixel 225
+225  1  0.7491
+225  2  2.4347
+225  3  6.4613
+225  4 11.6117
+225  5 18.1666
+225  6 22.0996
+225  7 23.3170
+225  8 24.6280
+225  9 26.1263
+225 10 26.6881
+225 11 26.6881
+225 12 26.5008
+225 13 25.9390
+225 14 25.6580
+225 15 24.3471
+225 16 23.0361
+225 17 21.6314
+225 18 20.1331
+225 19 18.4476
+225 20 16.8557
+225 21 13.2972
+225 22  9.3643
+225 23  6.5550
+225 24  4.8694
+225 25  2.1538
+225 26  0.9364
+225 27  0.3746
+225 28  0.0936
+# pixel 226
+226  1  0.7446
+226  2  2.4200
+226  3  6.4223
+226  4 11.5416
+226  5 18.0570
+226  6 21.9663
+226  7 23.1763
+226  8 24.4794
+226  9 25.9686
+226 10 26.5271
+226 11 26.5271
+226 12 26.3409
+226 13 25.7825
+226 14 25.5032
+226 15 24.2001
+226 16 22.8971
+226 17 21.5009
+226 18 20.0117
+226 19 18.3363
+226 20 16.7539
+226 21 13.2170
+226 22  9.3077
+226 23  6.5154
+226 24  4.8400
+226 25  2.1408
+226 26  0.9308
+226 27  0.3723
+226 28  0.0931
+# pixel 227
+227  1  0.7904
+227  2  2.5689
+227  3  6.8174
+227  4 12.2515
+227  5 19.1677
+227  6 23.3174
+227  7 24.6018
+227  8 25.9850
+227  9 27.5659
+227 10 28.1587
+227 11 28.1587
+227 12 27.9611
+227 13 27.3683
+227 14 27.0719
+227 15 25.6886
+227 16 24.3054
+227 17 22.8234
+227 18 21.2425
+227 19 19.4641
+227 20 17.7844
+227 21 14.0299
+227 22  9.8802
+227 23  6.9162
+227 24  5.1377
+227 25  2.2725
+227 26  0.9880
+227 27  0.3952
+227 28  0.0988
+# pixel 228
+228  1  0.6966
+228  2  2.2639
+228  3  6.0082
+228  4 10.7973
+228  5 16.8925
+228  6 20.5497
+228  7 21.6816
+228  8 22.9007
+228  9 24.2939
+228 10 24.8163
+228 11 24.8163
+228 12 24.6422
+228 13 24.1197
+228 14 23.8585
+228 15 22.6395
+228 16 21.4204
+228 17 20.1143
+228 18 18.7211
+228 19 17.1538
+228 20 15.6735
+228 21 12.3646
+228 22  8.7075
+228 23  6.0952
+228 24  4.5279
+228 25  2.0027
+228 26  0.8707
+228 27  0.3483
+228 28  0.0871
+# pixel 229
+229  1  0.5007
+229  2  1.6274
+229  3  4.3187
+229  4  7.7612
+229  5 12.1426
+229  6 14.7714
+229  7 15.5850
+229  8 16.4613
+229  9 17.4628
+229 10 17.8383
+229 11 17.8383
+229 12 17.7131
+229 13 17.3376
+229 14 17.1498
+229 15 16.2735
+229 16 15.3973
+229 17 14.4584
+229 18 13.4570
+229 19 12.3303
+229 20 11.2663
+229 21  8.8879
+229 22  6.2591
+229 23  4.3813
+229 24  3.2547
+229 25  1.4396
+229 26  0.6259
+229 27  0.2504
+229 28  0.0626
+# pixel 230
+230  1  0.6507
+230  2  2.1148
+230  3  5.6124
+230  4 10.0861
+230  5 15.7799
+230  6 19.1961
+230  7 20.2536
+230  8 21.3923
+230  9 22.6938
+230 10 23.1818
+230 11 23.1818
+230 12 23.0191
+230 13 22.5311
+230 14 22.2871
+230 15 21.1483
+230 16 20.0095
+230 17 18.7895
+230 18 17.4880
+230 19 16.0239
+230 20 14.6411
+230 21 11.5502
+230 22  8.1340
+230 23  5.6938
+230 24  4.2297
+230 25  1.8708
+230 26  0.8134
+230 27  0.3254
+230 28  0.0813
+# pixel 231
+231  1  0.8665
+231  2  2.8162
+231  3  7.4738
+231  4 13.4313
+231  5 21.0134
+231  6 25.5627
+231  7 26.9708
+231  8 28.4873
+231  9 30.2203
+231 10 30.8702
+231 11 30.8702
+231 12 30.6536
+231 13 30.0037
+231 14 29.6787
+231 15 28.1623
+231 16 26.6459
+231 17 25.0211
+231 18 23.2881
+231 19 21.3384
+231 20 19.4970
+231 21 15.3809
+231 22 10.8317
+231 23  7.5822
+231 24  5.6325
+231 25  2.4913
+231 26  1.0832
+231 27  0.4333
+231 28  0.1083
+# pixel 232
+232  1  0.7983
+232  2  2.5944
+232  3  6.8851
+232  4 12.3731
+232  5 19.3580
+232  6 23.5489
+232  7 24.8461
+232  8 26.2430
+232  9 27.8396
+232 10 28.4383
+232 11 28.4383
+232 12 28.2387
+232 13 27.6400
+232 14 27.3406
+232 15 25.9437
+232 16 24.5467
+232 17 23.0500
+232 18 21.4534
+232 19 19.6573
+232 20 17.9610
+232 21 14.1692
+232 22  9.9783
+232 23  6.9848
+232 24  5.1887
+232 25  2.2950
+232 26  0.9978
+232 27  0.3991
+232 28  0.0998
+# pixel 233
+233  1  0.8492
+233  2  2.7599
+233  3  7.3242
+233  4 13.1624
+233  5 20.5928
+233  6 25.0510
+233  7 26.4310
+233  8 27.9170
+233  9 29.6154
+233 10 30.2523
+233 11 30.2523
+233 12 30.0400
+233 13 29.4031
+233 14 29.0847
+233 15 27.5986
+233 16 26.1125
+233 17 24.5203
+233 18 22.8219
+233 19 20.9112
+233 20 19.1067
+233 21 15.0731
+233 22 10.6148
+233 23  7.4304
+233 24  5.5197
+233 25  2.4414
+233 26  1.0615
+233 27  0.4246
+233 28  0.1061
+# pixel 234
+234  1  0.6187
+234  2  2.0106
+234  3  5.3359
+234  4  9.5891
+234  5 15.0023
+234  6 18.2502
+234  7 19.2555
+234  8 20.3381
+234  9 21.5755
+234 10 22.0394
+234 11 22.0394
+234 12 21.8848
+234 13 21.4208
+234 14 21.1888
+234 15 20.1062
+234 16 19.0235
+234 17 17.8635
+234 18 16.6262
+234 19 15.2343
+234 20 13.9196
+234 21 10.9811
+234 22  7.7331
+234 23  5.4132
+234 24  4.0212
+234 25  1.7786
+234 26  0.7733
+234 27  0.3093
+234 28  0.0773
+# pixel 235
+235  1  0.7798
+235  2  2.5343
+235  3  6.7257
+235  4 12.0867
+235  5 18.9099
+235  6 23.0038
+235  7 24.2709
+235  8 25.6356
+235  9 27.1951
+235 10 27.7800
+235 11 27.7800
+235 12 27.5850
+235 13 27.0002
+235 14 26.7078
+235 15 25.3431
+235 16 23.9785
+235 17 22.5164
+235 18 20.9568
+235 19 19.2023
+235 20 17.5452
+235 21 13.8412
+235 22  9.7474
+235 23  6.8232
+235 24  5.0686
+235 25  2.2419
+235 26  0.9747
+235 27  0.3899
+235 28  0.0975
+# pixel 236
+236  1  0.6685
+236  2  2.1727
+236  3  5.7659
+236  4 10.3619
+236  5 16.2113
+236  6 19.7210
+236  7 20.8073
+236  8 21.9772
+236  9 23.3142
+236 10 23.8156
+236 11 23.8156
+236 12 23.6485
+236 13 23.1471
+236 14 22.8964
+236 15 21.7265
+236 16 20.5566
+236 17 19.3032
+236 18 17.9662
+236 19 16.4620
+236 20 15.0414
+236 21 11.8660
+236 22  8.3564
+236 23  5.8494
+236 24  4.3453
+236 25  1.9220
+236 26  0.8356
+236 27  0.3343
+236 28  0.0836
+# pixel 237
+237  1  0.7272
+237  2  2.3634
+237  3  6.2721
+237  4 11.2716
+237  5 17.6346
+237  6 21.4525
+237  7 22.6342
+237  8 23.9068
+237  9 25.3612
+237 10 25.9066
+237 11 25.9066
+237 12 25.7248
+237 13 25.1794
+237 14 24.9067
+237 15 23.6341
+237 16 22.3615
+237 17 20.9980
+237 18 19.5435
+237 19 17.9073
+237 20 16.3620
+237 21 12.9078
+237 22  9.0900
+237 23  6.3630
+237 24  4.7268
+237 25  2.0907
+237 26  0.9090
+237 27  0.3636
+237 28  0.0909
+# pixel 238
+238  1  0.8034
+238  2  2.6110
+238  3  6.9291
+238  4 12.4522
+238  5 19.4817
+238  6 23.6994
+238  7 25.0049
+238  8 26.4108
+238  9 28.0176
+238 10 28.6201
+238 11 28.6201
+238 12 28.4192
+238 13 27.8167
+238 14 27.5155
+238 15 26.1096
+238 16 24.7037
+238 17 23.1973
+238 18 21.5906
+238 19 19.7830
+238 20 18.0758
+238 21 14.2598
+238 22 10.0421
+238 23  7.0295
+238 24  5.2219
+238 25  2.3097
+238 26  1.0042
+238 27  0.4017
+238 28  0.1004
+# pixel 239
+239  1  0.7087
+239  2  2.3031
+239  3  6.1121
+239  4 10.9841
+239  5 17.1848
+239  6 20.9052
+239  7 22.0568
+239  8 23.2969
+239  9 24.7142
+239 10 25.2457
+239 11 25.2457
+239 12 25.0685
+239 13 24.5370
+239 14 24.2713
+239 15 23.0312
+239 16 21.7910
+239 17 20.4623
+239 18 19.0450
+239 19 17.4505
+239 20 15.9446
+239 21 12.5786
+239 22  8.8581
+239 23  6.2007
+239 24  4.6062
+239 25  2.0374
+239 26  0.8858
+239 27  0.3543
+239 28  0.0886
+# pixel 240
+240  1  0.6575
+240  2  2.1367
+240  3  5.6705
+240  4 10.1905
+240  5 15.9432
+240  6 19.3948
+240  7 20.4632
+240  8 21.6137
+240  9 22.9286
+240 10 23.4217
+240 11 23.4217
+240 12 23.2573
+240 13 22.7642
+240 14 22.5177
+240 15 21.3672
+240 16 20.2166
+240 17 18.9839
+240 18 17.6690
+240 19 16.1897
+240 20 14.7927
+240 21 11.6698
+240 22  8.2181
+240 23  5.7527
+240 24  4.2734
+240 25  1.8902
+240 26  0.8218
+240 27  0.3287
+240 28  0.0822
+# pixel 241
+241  1  0.7798
+241  2  2.5343
+241  3  6.7257
+241  4 12.0867
+241  5 18.9098
+241  6 23.0037
+241  7 24.2709
+241  8 25.6355
+241  9 27.1951
+241 10 27.7799
+241 11 27.7799
+241 12 27.5850
+241 13 27.0001
+241 14 26.7077
+241 15 25.3431
+241 16 23.9784
+241 17 22.5163
+241 18 20.9568
+241 19 19.2022
+241 20 17.5452
+241 21 13.8412
+241 22  9.7473
+241 23  6.8231
+241 24  5.0686
+241 25  2.2419
+241 26  0.9747
+241 27  0.3899
+241 28  0.0975
+# pixel 242
+242  1  0.7252
+242  2  2.3567
+242  3  6.2544
+242  4 11.2398
+242  5 17.5849
+242  6 21.3919
+242  7 22.5703
+242  8 23.8393
+242  9 25.2896
+242 10 25.8335
+242 11 25.8335
+242 12 25.6522
+242 13 25.1083
+242 14 24.8364
+242 15 23.5674
+242 16 22.2984
+242 17 20.9387
+242 18 19.4884
+242 19 17.8568
+242 20 16.3159
+242 21 12.8714
+242 22  9.0644
+242 23  6.3451
+242 24  4.7135
+242 25  2.0848
+242 26  0.9064
+242 27  0.3626
+242 28  0.0906
+# pixel 243
+243  1  0.6994
+243  2  2.2730
+243  3  6.0322
+243  4 10.8405
+243  5 16.9602
+243  6 20.6320
+243  7 21.7685
+243  8 22.9924
+243  9 24.3912
+243 10 24.9157
+243 11 24.9157
+243 12 24.7409
+243 13 24.2163
+243 14 23.9541
+243 15 22.7301
+243 16 21.5062
+243 17 20.1949
+243 18 18.7961
+243 19 17.2225
+243 20 15.7363
+243 21 12.4142
+243 22  8.7424
+243 23  6.1197
+243 24  4.5460
+243 25  2.0107
+243 26  0.8742
+243 27  0.3497
+243 28  0.0874
+# pixel 244
+244  1  0.7712
+244  2  2.5065
+244  3  6.6518
+244  4 11.9540
+244  5 18.7022
+244  6 22.7512
+244  7 24.0044
+244  8 25.3541
+244  9 26.8965
+244 10 27.4749
+244 11 27.4749
+244 12 27.2821
+244 13 26.7037
+244 14 26.4145
+244 15 25.0649
+244 16 23.7152
+244 17 22.2692
+244 18 20.7267
+244 19 18.9914
+244 20 17.3526
+244 21 13.6893
+244 22  9.6403
+244 23  6.7482
+244 24  5.0130
+244 25  2.2173
+244 26  0.9640
+244 27  0.3856
+244 28  0.0964
+# pixel 245
+245  1  0.7759
+245  2  2.5216
+245  3  6.6920
+245  4 12.0263
+245  5 18.8153
+245  6 22.8887
+245  7 24.1495
+245  8 25.5073
+245  9 27.0591
+245 10 27.6410
+245 11 27.6410
+245 12 27.4470
+245 13 26.8651
+245 14 26.5741
+245 15 25.2163
+245 16 23.8585
+245 17 22.4037
+245 18 20.8520
+245 19 19.1062
+245 20 17.4575
+245 21 13.7720
+245 22  9.6986
+245 23  6.7890
+245 24  5.0433
+245 25  2.2307
+245 26  0.9699
+245 27  0.3879
+245 28  0.0970
+# pixel 246
+246  1  0.7321
+246  2  2.3793
+246  3  6.3143
+246  4 11.3475
+246  5 17.7533
+246  6 21.5968
+246  7 22.7865
+246  8 24.0676
+246  9 25.5318
+246 10 26.0809
+246 11 26.0809
+246 12 25.8979
+246 13 25.3488
+246 14 25.0743
+246 15 23.7931
+246 16 22.5119
+246 17 21.1393
+246 18 19.6751
+246 19 18.0278
+246 20 16.4721
+246 21 12.9947
+246 22  9.1512
+246 23  6.4058
+246 24  4.7586
+246 25  2.1048
+246 26  0.9151
+246 27  0.3660
+246 28  0.0915
+# pixel 247
+247  1  0.6315
+247  2  2.0525
+247  3  5.4470
+247  4  9.7888
+247  5 15.3148
+247  6 18.6304
+247  7 19.6566
+247  8 20.7618
+247  9 22.0249
+247 10 22.4985
+247 11 22.4985
+247 12 22.3406
+247 13 21.8670
+247 14 21.6302
+247 15 20.5250
+247 16 19.4198
+247 17 18.2357
+247 18 16.9726
+247 19 15.5516
+247 20 14.2096
+247 21 11.2098
+247 22  7.8942
+247 23  5.5260
+247 24  4.1050
+247 25  1.8157
+247 26  0.7894
+247 27  0.3158
+247 28  0.0789
+# pixel 248
+248  1  0.8285
+248  2  2.6925
+248  3  7.1455
+248  4 12.8411
+248  5 20.0901
+248  6 24.4395
+248  7 25.7858
+248  8 27.2356
+248  9 28.8925
+248 10 29.5139
+248 11 29.5139
+248 12 29.3067
+248 13 28.6854
+248 14 28.3747
+248 15 26.9249
+248 16 25.4751
+248 17 23.9218
+248 18 22.2648
+248 19 20.4008
+248 20 18.6403
+248 21 14.7052
+248 22 10.3557
+248 23  7.2490
+248 24  5.3850
+248 25  2.3818
+248 26  1.0356
+248 27  0.4142
+248 28  0.1036
+# pixel 249
+249  1  0.7721
+249  2  2.5092
+249  3  6.6589
+249  4 11.9668
+249  5 18.7222
+249  6 22.7755
+249  7 24.0301
+249  8 25.3812
+249  9 26.9253
+249 10 27.5043
+249 11 27.5043
+249 12 27.3113
+249 13 26.7323
+249 14 26.4427
+249 15 25.0917
+249 16 23.7406
+249 17 22.2930
+249 18 20.7489
+249 19 19.0118
+249 20 17.3711
+249 21 13.7039
+249 22  9.6506
+249 23  6.7554
+249 24  5.0183
+249 25  2.2196
+249 26  0.9651
+249 27  0.3860
+249 28  0.0965
+# pixel 250
+250  1  0.7464
+250  2  2.4257
+250  3  6.4375
+250  4 11.5688
+250  5 18.0996
+250  6 22.0181
+250  7 23.2310
+250  8 24.5372
+250  9 26.0299
+250 10 26.5897
+250 11 26.5897
+250 12 26.4031
+250 13 25.8433
+250 14 25.5634
+250 15 24.2573
+250 16 22.9511
+250 17 21.5516
+250 18 20.0589
+250 19 18.3795
+250 20 16.7935
+250 21 13.2482
+250 22  9.3297
+250 23  6.5308
+250 24  4.8515
+250 25  2.1458
+250 26  0.9330
+250 27  0.3732
+250 28  0.0933
+# pixel 251
+251  1  0.6781
+251  2  2.2038
+251  3  5.8485
+251  4 10.5103
+251  5 16.4435
+251  6 20.0035
+251  7 21.1054
+251  8 22.2920
+251  9 23.6482
+251 10 24.1567
+251 11 24.1567
+251 12 23.9872
+251 13 23.4787
+251 14 23.2244
+251 15 22.0377
+251 16 20.8511
+251 17 19.5797
+251 18 18.2235
+251 19 16.6978
+251 20 15.2569
+251 21 12.0360
+251 22  8.4760
+251 23  5.9332
+251 24  4.4075
+251 25  1.9495
+251 26  0.8476
+251 27  0.3390
+251 28  0.0848
+# pixel 252
+252  1  0.7942
+252  2  2.5811
+252  3  6.8499
+252  4 12.3100
+252  5 19.2592
+252  6 23.4287
+252  7 24.7192
+252  8 26.1091
+252  9 27.6975
+252 10 28.2931
+252 11 28.2931
+252 12 28.0945
+252 13 27.4989
+252 14 27.2011
+252 15 25.8112
+252 16 24.4214
+252 17 22.9323
+252 18 21.3439
+252 19 19.5570
+252 20 17.8693
+252 21 14.0969
+252 22  9.9274
+252 23  6.9492
+252 24  5.1622
+252 25  2.2833
+252 26  0.9927
+252 27  0.3971
+252 28  0.0993
+# pixel 253
+253  1  0.7252
+253  2  2.3569
+253  3  6.2548
+253  4 11.2405
+253  5 17.5860
+253  6 21.3932
+253  7 22.5717
+253  8 23.8407
+253  9 25.2911
+253 10 25.8350
+253 11 25.8350
+253 12 25.6537
+253 13 25.1098
+253 14 24.8379
+253 15 23.5688
+253 16 22.2997
+253 17 20.9400
+253 18 19.4896
+253 19 17.8579
+253 20 16.3169
+253 21 12.8722
+253 22  9.0649
+253 23  6.3454
+253 24  4.7138
+253 25  2.0849
+253 26  0.9065
+253 27  0.3626
+253 28  0.0906
+# pixel 254
+254  1  0.8176
+254  2  2.6571
+254  3  7.0515
+254  4 12.6722
+254  5 19.8259
+254  6 24.1181
+254  7 25.4467
+254  8 26.8774
+254  9 28.5125
+254 10 29.1257
+254 11 29.1257
+254 12 28.9213
+254 13 28.3082
+254 14 28.0016
+254 15 26.5708
+254 16 25.1401
+254 17 23.6072
+254 18 21.9720
+254 19 20.1325
+254 20 18.3952
+254 21 14.5118
+254 22 10.2195
+254 23  7.1537
+254 24  5.3142
+254 25  2.3505
+254 26  1.0220
+254 27  0.4088
+254 28  0.1022
+# pixel 255
+255  1  0.6904
+255  2  2.2439
+255  3  5.9549
+255  4 10.7016
+255  5 16.7428
+255  6 20.3675
+255  7 21.4895
+255  8 22.6977
+255  9 24.0785
+255 10 24.5964
+255 11 24.5964
+255 12 24.4238
+255 13 23.9059
+255 14 23.6470
+255 15 22.4388
+255 16 21.2305
+255 17 19.9360
+255 18 18.5552
+255 19 17.0017
+255 20 15.5345
+255 21 12.2550
+255 22  8.6303
+255 23  6.0412
+255 24  4.4878
+255 25  1.9850
+255 26  0.8630
+255 27  0.3452
+255 28  0.0863
+# pixel 256
+256  1  0.7439
+256  2  2.4177
+256  3  6.4163
+256  4 11.5307
+256  5 18.0400
+256  6 21.9456
+256  7 23.1545
+256  8 24.4563
+256  9 25.9442
+256 10 26.5021
+256 11 26.5021
+256 12 26.3161
+256 13 25.7582
+256 14 25.4792
+256 15 24.1774
+256 16 22.8755
+256 17 21.4807
+256 18 19.9928
+256 19 18.3190
+256 20 16.7382
+256 21 13.2046
+256 22  9.2990
+256 23  6.5093
+256 24  4.8355
+256 25  2.1388
+256 26  0.9299
+256 27  0.3720
+256 28  0.0930
+# pixel 257
+257  1  0.8365
+257  2  2.7188
+257  3  7.2152
+257  4 12.9664
+257  5 20.2862
+257  6 24.6781
+257  7 26.0374
+257  8 27.5014
+257  9 29.1745
+257 10 29.8019
+257 11 29.8019
+257 12 29.5928
+257 13 28.9653
+257 14 28.6516
+257 15 27.1877
+257 16 25.7237
+257 17 24.1552
+257 18 22.4821
+257 19 20.5999
+257 20 18.8222
+257 21 14.8487
+257 22 10.4568
+257 23  7.3198
+257 24  5.4375
+257 25  2.4051
+257 26  1.0457
+257 27  0.4183
+257 28  0.1046
+# pixel 258
+258  1  0.7039
+258  2  2.2875
+258  3  6.0707
+258  4 10.9097
+258  5 17.0684
+258  6 20.7636
+258  7 21.9074
+258  8 23.1391
+258  9 24.5469
+258 10 25.0747
+258 11 25.0747
+258 12 24.8988
+258 13 24.3709
+258 14 24.1069
+258 15 22.8752
+258 16 21.6435
+258 17 20.3237
+258 18 18.9160
+258 19 17.3324
+258 20 15.8367
+258 21 12.4934
+258 22  8.7982
+258 23  6.1587
+258 24  4.5750
+258 25  2.0236
+258 26  0.8798
+258 27  0.3519
+258 28  0.0880
+# pixel 259
+259  1  0.7237
+259  2  2.3520
+259  3  6.2418
+259  4 11.2171
+259  5 17.5493
+259  6 21.3486
+259  7 22.5246
+259  8 23.7911
+259  9 25.2384
+259 10 25.7812
+259 11 25.7812
+259 12 25.6003
+259 13 25.0575
+259 14 24.7861
+259 15 23.5197
+259 16 22.2533
+259 17 20.8963
+259 18 19.4490
+259 19 17.8207
+259 20 16.2829
+259 21 12.8454
+259 22  9.0460
+259 23  6.3322
+259 24  4.7039
+259 25  2.0806
+259 26  0.9046
+259 27  0.3618
+259 28  0.0905
+# pixel 260
+260  1  0.7157
+260  2  2.3261
+260  3  6.1732
+260  4 11.0938
+260  5 17.3564
+260  6 21.1140
+260  7 22.2771
+260  8 23.5296
+260  9 24.9611
+260 10 25.4979
+260 11 25.4979
+260 12 25.3189
+260 13 24.7821
+260 14 24.5137
+260 15 23.2612
+260 16 22.0087
+260 17 20.6667
+260 18 19.2352
+260 19 17.6248
+260 20 16.1039
+260 21 12.7042
+260 22  8.9466
+260 23  6.2626
+260 24  4.6522
+260 25  2.0577
+260 26  0.8947
+260 27  0.3579
+260 28  0.0895
+# pixel 261
+261  1  0.7252
+261  2  2.3569
+261  3  6.2549
+261  4 11.2406
+261  5 17.5861
+261  6 21.3934
+261  7 22.5719
+261  8 23.8410
+261  9 25.2914
+261 10 25.8353
+261 11 25.8353
+261 12 25.6540
+261 13 25.1101
+261 14 24.8382
+261 15 23.5691
+261 16 22.2999
+261 17 20.9402
+261 18 19.4898
+261 19 17.8581
+261 20 16.3170
+261 21 12.8723
+261 22  9.0650
+261 23  6.3455
+261 24  4.7138
+261 25  2.0850
+261 26  0.9065
+261 27  0.3626
+261 28  0.0907
+# pixel 262
+262  1  0.7060
+262  2  2.2945
+262  3  6.0894
+262  4 10.9432
+262  5 17.1209
+262  6 20.8275
+262  7 21.9747
+262  8 23.2103
+262  9 24.6223
+262 10 25.1518
+262 11 25.1518
+262 12 24.9753
+262 13 24.4458
+262 14 24.1810
+262 15 22.9455
+262 16 21.7100
+262 17 20.3862
+262 18 18.9742
+262 19 17.3856
+262 20 15.8853
+262 21 12.5318
+262 22  8.8252
+262 23  6.1776
+262 24  4.5891
+262 25  2.0298
+262 26  0.8825
+262 27  0.3530
+262 28  0.0883
+# pixel 263
+263  1  0.6442
+263  2  2.0937
+263  3  5.5564
+263  4  9.9855
+263  5 15.6224
+263  6 19.0046
+263  7 20.0515
+263  8 21.1789
+263  9 22.4673
+263 10 22.9505
+263 11 22.9505
+263 12 22.7894
+263 13 22.3062
+263 14 22.0647
+263 15 20.9373
+263 16 19.8099
+263 17 18.6020
+263 18 17.3135
+263 19 15.8640
+263 20 14.4950
+263 21 11.4350
+263 22  8.0528
+263 23  5.6370
+263 24  4.1875
+263 25  1.8521
+263 26  0.8053
+263 27  0.3221
+263 28  0.0805
+# pixel 264
+264  1  0.7386
+264  2  2.4006
+264  3  6.3708
+264  4 11.4491
+264  5 17.9122
+264  6 21.7901
+264  7 22.9905
+264  8 24.2831
+264  9 25.7604
+264 10 26.3144
+264 11 26.3144
+264 12 26.1297
+264 13 25.5757
+264 14 25.2987
+264 15 24.0061
+264 16 22.7135
+264 17 21.3285
+264 18 19.8512
+264 19 18.1892
+264 20 16.6196
+264 21 13.1110
+264 22  9.2331
+264 23  6.4632
+264 24  4.8012
+264 25  2.1236
+264 26  0.9233
+264 27  0.3693
+264 28  0.0923
+# pixel 265
+265  1  0.7406
+265  2  2.4070
+265  3  6.3879
+265  4 11.4797
+265  5 17.9602
+265  6 21.8485
+265  7 23.0520
+265  8 24.3481
+265  9 25.8294
+265 10 26.3849
+265 11 26.3849
+265 12 26.1997
+265 13 25.6442
+265 14 25.3665
+265 15 24.0704
+265 16 22.7743
+265 17 21.3856
+265 18 19.9044
+265 19 18.2380
+265 20 16.6641
+265 21 13.1461
+265 22  9.2578
+265 23  6.4805
+265 24  4.8141
+265 25  2.1293
+265 26  0.9258
+265 27  0.3703
+265 28  0.0926
+# pixel 266
+266  1  0.7327
+266  2  2.3811
+266  3  6.3191
+266  4 11.3561
+266  5 17.7668
+266  6 21.6133
+266  7 22.8038
+266  8 24.0860
+266  9 25.5513
+266 10 26.1008
+266 11 26.1008
+266 12 25.9176
+266 13 25.3681
+266 14 25.0934
+266 15 23.8112
+266 16 22.5291
+266 17 21.1554
+266 18 19.6900
+266 19 18.0416
+266 20 16.4847
+266 21 13.0046
+266 22  9.1582
+266 23  6.4107
+266 24  4.7622
+266 25  2.1064
+266 26  0.9158
+266 27  0.3663
+266 28  0.0916
+# pixel 267
+267  1  0.6480
+267  2  2.1061
+267  3  5.5894
+267  4 10.0447
+267  5 15.7151
+267  6 19.1174
+267  7 20.1704
+267  8 21.3045
+267  9 22.6006
+267 10 23.0866
+267 11 23.0866
+267 12 22.9246
+267 13 22.4386
+267 14 22.1956
+267 15 21.0615
+267 16 19.9274
+267 17 18.7123
+267 18 17.4162
+267 19 15.9581
+267 20 14.5810
+267 21 11.5028
+267 22  8.1006
+267 23  5.6704
+267 24  4.2123
+267 25  1.8631
+267 26  0.8101
+267 27  0.3240
+267 28  0.0810
+# pixel 268
+268  1  0.7523
+268  2  2.4450
+268  3  6.4887
+268  4 11.6608
+268  5 18.2436
+268  6 22.1932
+268  7 23.4157
+268  8 24.7323
+268  9 26.2369
+268 10 26.8011
+268 11 26.8011
+268 12 26.6131
+268 13 26.0488
+268 14 25.7667
+268 15 24.4502
+268 16 23.1336
+268 17 21.7230
+268 18 20.2184
+268 19 18.5257
+268 20 16.9270
+268 21 13.3536
+268 22  9.4039
+268 23  6.5827
+268 24  4.8900
+268 25  2.1629
+268 26  0.9404
+268 27  0.3762
+268 28  0.0940
+# pixel 269
+269  1  0.6848
+269  2  2.2257
+269  3  5.9067
+269  4 10.6150
+269  5 16.6073
+269  6 20.2028
+269  7 21.3156
+269  8 22.5141
+269  9 23.8838
+269 10 24.3974
+269 11 24.3974
+269 12 24.2262
+269 13 23.7126
+269 14 23.4557
+269 15 22.2573
+269 16 21.0588
+269 17 19.7747
+269 18 18.4050
+269 19 16.8642
+269 20 15.4089
+269 21 12.1559
+269 22  8.5605
+269 23  5.9923
+269 24  4.4515
+269 25  1.9689
+269 26  0.8560
+269 27  0.3424
+269 28  0.0856
+# pixel 270
+270  1  0.6908
+270  2  2.2450
+270  3  5.9578
+270  4 10.7067
+270  5 16.7509
+270  6 20.3773
+270  7 21.4998
+270  8 22.7087
+270  9 24.0902
+270 10 24.6082
+270 11 24.6082
+270 12 24.4355
+270 13 23.9175
+270 14 23.6584
+270 15 22.4496
+270 16 21.2408
+270 17 19.9456
+270 18 18.5641
+270 19 17.0099
+270 20 15.5420
+270 21 12.2609
+270 22  8.6345
+270 23  6.0441
+270 24  4.4899
+270 25  1.9859
+270 26  0.8634
+270 27  0.3454
+270 28  0.0863
+# pixel 271
+271  1  0.6453
+271  2  2.0973
+271  3  5.5660
+271  4 10.0027
+271  5 15.6493
+271  6 19.0373
+271  7 20.0860
+271  8 21.2153
+271  9 22.5060
+271 10 22.9900
+271 11 22.9900
+271 12 22.8287
+271 13 22.3447
+271 14 22.1027
+271 15 20.9733
+271 16 19.8440
+271 17 18.6340
+271 18 17.3433
+271 19 15.8913
+271 20 14.5200
+271 21 11.4547
+271 22  8.0667
+271 23  5.6467
+271 24  4.1947
+271 25  1.8553
+271 26  0.8067
+271 27  0.3227
+271 28  0.0807
+# pixel 272
+272  1  0.7129
+272  2  2.3170
+272  3  6.1491
+272  4 11.0505
+272  5 17.2887
+272  6 21.0316
+272  7 22.1901
+272  8 23.4378
+272  9 24.8637
+272 10 25.3984
+272 11 25.3984
+272 12 25.2201
+272 13 24.6854
+272 14 24.4181
+272 15 23.1704
+272 16 21.9228
+272 17 20.5860
+272 18 19.1602
+272 19 17.5561
+272 20 16.0411
+272 21 12.6546
+272 22  8.9117
+272 23  6.2382
+272 24  4.6341
+272 25  2.0497
+272 26  0.8912
+272 27  0.3565
+272 28  0.0891
+# pixel 273
+273  1  0.7499
+273  2  2.4370
+273  3  6.4675
+273  4 11.6228
+273  5 18.1841
+273  6 22.1209
+273  7 23.3394
+273  8 24.6517
+273  9 26.1514
+273 10 26.7138
+273 11 26.7138
+273 12 26.5263
+273 13 25.9639
+273 14 25.6827
+273 15 24.3705
+273 16 23.0582
+273 17 21.6522
+273 18 20.1525
+273 19 18.4653
+273 20 16.8719
+273 21 13.3100
+273 22  9.3733
+273 23  6.5613
+273 24  4.8741
+273 25  2.1558
+273 26  0.9373
+273 27  0.3749
+273 28  0.0937
+# pixel 274
+274  1  0.6270
+274  2  2.0378
+274  3  5.4081
+274  4  9.7189
+274  5 15.2054
+274  6 18.4972
+274  7 19.5162
+274  8 20.6135
+274  9 21.8675
+274 10 22.3378
+274 11 22.3378
+274 12 22.1810
+274 13 21.7107
+274 14 21.4756
+274 15 20.3783
+274 16 19.2810
+274 17 18.1054
+274 18 16.8513
+274 19 15.4405
+274 20 14.1081
+274 21 11.1297
+274 22  7.8378
+274 23  5.4865
+274 24  4.0757
+274 25  1.8027
+274 26  0.7838
+274 27  0.3135
+274 28  0.0784
+# pixel 275
+275  1  0.7134
+275  2  2.3185
+275  3  6.1530
+275  4 11.0575
+275  5 17.2997
+275  6 21.0449
+275  7 22.2042
+275  8 23.4526
+275  9 24.8794
+275 10 25.4145
+275 11 25.4145
+275 12 25.2361
+275 13 24.7011
+275 14 24.4335
+275 15 23.1851
+275 16 21.9367
+275 17 20.5991
+275 18 19.1723
+275 19 17.5672
+275 20 16.0512
+275 21 12.6626
+275 22  8.9174
+275 23  6.2421
+275 24  4.6370
+275 25  2.0510
+275 26  0.8917
+275 27  0.3567
+275 28  0.0892
+# pixel 276
+276  1  0.7952
+276  2  2.5844
+276  3  6.8587
+276  4 12.3258
+276  5 19.2840
+276  6 23.4588
+276  7 24.7510
+276  8 26.1427
+276  9 27.7331
+276 10 28.3295
+276 11 28.3295
+276 12 28.1307
+276 13 27.5343
+276 14 27.2361
+276 15 25.8445
+276 16 24.4528
+276 17 22.9618
+276 18 21.3714
+276 19 19.5822
+276 20 17.8923
+276 21 14.1151
+276 22  9.9402
+276 23  6.9581
+276 24  5.1689
+276 25  2.2862
+276 26  0.9940
+276 27  0.3976
+276 28  0.0994
+# pixel 277
+277  1  0.7330
+277  2  2.3824
+277  3  6.3224
+277  4 11.3620
+277  5 17.7760
+277  6 21.6244
+277  7 22.8156
+277  8 24.0984
+277  9 25.5645
+277 10 26.1143
+277 11 26.1143
+277 12 25.9310
+277 13 25.3812
+277 14 25.1064
+277 15 23.8235
+277 16 22.5407
+277 17 21.1663
+277 18 19.7002
+277 19 18.0509
+277 20 16.4932
+277 21 13.0113
+277 22  9.1629
+277 23  6.4140
+277 24  4.7647
+277 25  2.1075
+277 26  0.9163
+277 27  0.3665
+277 28  0.0916
+# pixel 278
+278  1  0.7104
+278  2  2.3089
+278  3  6.1275
+278  4 11.0118
+278  5 17.2282
+278  6 20.9580
+278  7 22.1124
+278  8 23.3557
+278  9 24.7766
+278 10 25.3094
+278 11 25.3094
+278 12 25.1318
+278 13 24.5990
+278 14 24.3325
+278 15 23.0893
+278 16 21.8460
+278 17 20.5139
+278 18 19.0931
+278 19 17.4946
+278 20 15.9849
+278 21 12.6103
+278 22  8.8805
+278 23  6.2163
+278 24  4.6179
+278 25  2.0425
+278 26  0.8880
+278 27  0.3552
+278 28  0.0888
+# pixel 279
+279  1  0.7043
+279  2  2.2891
+279  3  6.0750
+279  4 10.9174
+279  5 17.0804
+279  6 20.7783
+279  7 21.9228
+279  8 23.1554
+279  9 24.5641
+279 10 25.0924
+279 11 25.0924
+279 12 24.9163
+279 13 24.3881
+279 14 24.1239
+279 15 22.8913
+279 16 21.6587
+279 17 20.3381
+279 18 18.9294
+279 19 17.3446
+279 20 15.8478
+279 21 12.5022
+279 22  8.8044
+279 23  6.1630
+279 24  4.5783
+279 25  2.0250
+279 26  0.8804
+279 27  0.3522
+279 28  0.0880
+# pixel 280
+280  1  0.7674
+280  2  2.4940
+280  3  6.6188
+280  4 11.8946
+280  5 18.6094
+280  6 22.6382
+280  7 23.8852
+280  8 25.2282
+280  9 26.7630
+280 10 27.3385
+280 11 27.3385
+280 12 27.1466
+280 13 26.5711
+280 14 26.2833
+280 15 24.9404
+280 16 23.5974
+280 17 22.1586
+280 18 20.6238
+280 19 18.8971
+280 20 17.2664
+280 21 13.6213
+280 22  9.5925
+280 23  6.7147
+280 24  4.9881
+280 25  2.2063
+280 26  0.9592
+280 27  0.3837
+280 28  0.0959
+# pixel 281
+281  1  0.6347
+281  2  2.0627
+281  3  5.4742
+281  4  9.8377
+281  5 15.3912
+281  6 18.7233
+281  7 19.7546
+281  8 20.8653
+281  9 22.1347
+281 10 22.6107
+281 11 22.6107
+281 12 22.4521
+281 13 21.9761
+281 14 21.7380
+281 15 20.6273
+281 16 19.5166
+281 17 18.3266
+281 18 17.0572
+281 19 15.6292
+281 20 14.2805
+281 21 11.2657
+281 22  7.9336
+281 23  5.5535
+281 24  4.1255
+281 25  1.8247
+281 26  0.7934
+281 27  0.3173
+281 28  0.0793
+# pixel 282
+282  1  0.7704
+282  2  2.5039
+282  3  6.6450
+282  4 11.9417
+282  5 18.6830
+282  6 22.7278
+282  7 23.9798
+282  8 25.3280
+282  9 26.8689
+282 10 27.4467
+282 11 27.4467
+282 12 27.2541
+282 13 26.6763
+282 14 26.3874
+282 15 25.0391
+282 16 23.6909
+282 17 22.2463
+282 18 20.7054
+282 19 18.9719
+282 20 17.3348
+282 21 13.6752
+282 22  9.6304
+282 23  6.7413
+282 24  5.0078
+282 25  2.2150
+282 26  0.9630
+282 27  0.3852
+282 28  0.0963
+# pixel 283
+283  1  0.7627
+283  2  2.4788
+283  3  6.5783
+283  4 11.8218
+283  5 18.4955
+283  6 22.4996
+283  7 23.7390
+283  8 25.0738
+283  9 26.5992
+283 10 27.1712
+283 11 27.1712
+283 12 26.9805
+283 13 26.4085
+283 14 26.1225
+283 15 24.7877
+283 16 23.4530
+283 17 22.0230
+283 18 20.4976
+283 19 18.7815
+283 20 17.1607
+283 21 13.5379
+283 22  9.5337
+283 23  6.6736
+283 24  4.9575
+283 25  2.1928
+283 26  0.9534
+283 27  0.3813
+283 28  0.0953
+# pixel 284
+284  1  0.6641
+284  2  2.1582
+284  3  5.7276
+284  4 10.2931
+284  5 16.1037
+284  6 19.5900
+284  7 20.6691
+284  8 21.8312
+284  9 23.1594
+284 10 23.6574
+284 11 23.6574
+284 12 23.4914
+284 13 22.9934
+284 14 22.7443
+284 15 21.5822
+284 16 20.4201
+284 17 19.1750
+284 18 17.8468
+284 19 16.3527
+284 20 14.9415
+284 21 11.7872
+284 22  8.3009
+284 23  5.8106
+284 24  4.3164
+284 25  1.9092
+284 26  0.8301
+284 27  0.3320
+284 28  0.0830
+# pixel 285
+285  1  0.7330
+285  2  2.3821
+285  3  6.3217
+285  4 11.3608
+285  5 17.7742
+285  6 21.6222
+285  7 22.8132
+285  8 24.0959
+285  9 25.5618
+285 10 26.1115
+285 11 26.1115
+285 12 25.9283
+285 13 25.3786
+285 14 25.1037
+285 15 23.8210
+285 16 22.5384
+285 17 21.1641
+285 18 19.6982
+285 19 18.0490
+285 20 16.4915
+285 21 13.0099
+285 22  9.1619
+285 23  6.4134
+285 24  4.7642
+285 25  2.1072
+285 26  0.9162
+285 27  0.3665
+285 28  0.0916
+# pixel 286
+286  1  0.8440
+286  2  2.7431
+286  3  7.2797
+286  4 13.0823
+286  5 20.4674
+286  6 24.8985
+286  7 26.2700
+286  8 27.7471
+286  9 29.4351
+286 10 30.0681
+286 11 30.0681
+286 12 29.8571
+286 13 29.2241
+286 14 28.9076
+286 15 27.4306
+286 16 25.9535
+286 17 24.3710
+286 18 22.6830
+286 19 20.7839
+286 20 18.9904
+286 21 14.9813
+286 22 10.5502
+286 23  7.3852
+286 24  5.4861
+286 25  2.4266
+286 26  1.0550
+286 27  0.4220
+286 28  0.1055
+# pixel 287
+287  1  0.7586
+287  2  2.4654
+287  3  6.5428
+287  4 11.7581
+287  5 18.3957
+287  6 22.3783
+287  7 23.6110
+287  8 24.9385
+287  9 26.4557
+287 10 27.0246
+287 11 27.0246
+287 12 26.8350
+287 13 26.2660
+287 14 25.9816
+287 15 24.6540
+287 16 23.3265
+287 17 21.9042
+287 18 20.3870
+287 19 18.6802
+287 20 17.0682
+287 21 13.4649
+287 22  9.4823
+287 23  6.6376
+287 24  4.9308
+287 25  2.1809
+287 26  0.9482
+287 27  0.3793
+287 28  0.0948
+# pixel 288
+288  1  0.6086
+288  2  1.9781
+288  3  5.2495
+288  4  9.4338
+288  5 14.7594
+288  6 17.9547
+288  7 18.9437
+288  8 20.0088
+288  9 21.2261
+288 10 21.6826
+288 11 21.6826
+288 12 21.5304
+288 13 21.0739
+288 14 20.8457
+288 15 19.7806
+288 16 18.7155
+288 17 17.5743
+288 18 16.3570
+288 19 14.9876
+288 20 13.6943
+288 21 10.8032
+288 22  7.6079
+288 23  5.3255
+288 24  3.9561
+288 25  1.7498
+288 26  0.7608
+288 27  0.3043
+288 28  0.0761
+# pixel 289
+289  1  0.6959
+289  2  2.2617
+289  3  6.0022
+289  4 10.7866
+289  5 16.8758
+289  6 20.5293
+289  7 21.6602
+289  8 22.8780
+289  9 24.2698
+289 10 24.7917
+289 11 24.7917
+289 12 24.6178
+289 13 24.0958
+289 14 23.8349
+289 15 22.6170
+289 16 21.3992
+289 17 20.0944
+289 18 18.7025
+289 19 17.1367
+289 20 15.6579
+289 21 12.3524
+289 22  8.6989
+289 23  6.0892
+289 24  4.5234
+289 25  2.0007
+289 26  0.8699
+289 27  0.3480
+289 28  0.0870
+# pixel 290
+290  1  0.7747
+290  2  2.5178
+290  3  6.6818
+290  4 12.0079
+290  5 18.7865
+290  6 22.8537
+290  7 24.1126
+290  8 25.4683
+290  9 27.0177
+290 10 27.5987
+290 11 27.5987
+290 12 27.4051
+290 13 26.8240
+290 14 26.5335
+290 15 25.1778
+290 16 23.8221
+290 17 22.3695
+290 18 20.8201
+290 19 19.0770
+290 20 17.4308
+290 21 13.7509
+290 22  9.6838
+290 23  6.7786
+290 24  5.0356
+290 25  2.2273
+290 26  0.9684
+290 27  0.3874
+290 28  0.0968
+# pixel 291
+291  1  0.7015
+291  2  2.2799
+291  3  6.0506
+291  4 10.8735
+291  5 17.0118
+291  6 20.6947
+291  7 21.8347
+291  8 23.0623
+291  9 24.4654
+291 10 24.9915
+291 11 24.9915
+291 12 24.8161
+291 13 24.2900
+291 14 24.0269
+291 15 22.7993
+291 16 21.5716
+291 17 20.2563
+291 18 18.8532
+291 19 17.2748
+291 20 15.7841
+291 21 12.4519
+291 22  8.7690
+291 23  6.1383
+291 24  4.5599
+291 25  2.0169
+291 26  0.8769
+291 27  0.3508
+291 28  0.0877
+# pixel 292
+292  1  0.7856
+292  2  2.5533
+292  3  6.7761
+292  4 12.1774
+292  5 19.0518
+292  6 23.1764
+292  7 24.4530
+292  8 25.8279
+292  9 27.3992
+292 10 27.9884
+292 11 27.9884
+292 12 27.7920
+292 13 27.2028
+292 14 26.9082
+292 15 25.5333
+292 16 24.1584
+292 17 22.6854
+292 18 21.1141
+292 19 19.3464
+292 20 17.6769
+292 21 13.9451
+292 22  9.8205
+292 23  6.8744
+292 24  5.1067
+292 25  2.2587
+292 26  0.9821
+292 27  0.3928
+292 28  0.0982
+# pixel 293
+293  1  0.7552
+293  2  2.4545
+293  3  6.5139
+293  4 11.7062
+293  5 18.3145
+293  6 22.2795
+293  7 23.5068
+293  8 24.8285
+293  9 26.3390
+293 10 26.9054
+293 11 26.9054
+293 12 26.7166
+293 13 26.1501
+293 14 25.8669
+293 15 24.5453
+293 16 23.2236
+293 17 21.8075
+293 18 20.2970
+293 19 18.5978
+293 20 16.9929
+293 21 13.4055
+293 22  9.4405
+293 23  6.6083
+293 24  4.9091
+293 25  2.1713
+293 26  0.9440
+293 27  0.3776
+293 28  0.0944
+# pixel 294
+294  1  0.6793
+294  2  2.2077
+294  3  5.8590
+294  4 10.5292
+294  5 16.4730
+294  6 20.0394
+294  7 21.1432
+294  8 22.3320
+294  9 23.6906
+294 10 24.2001
+294 11 24.2001
+294 12 24.0303
+294 13 23.5208
+294 14 23.2660
+294 15 22.0773
+294 16 20.8885
+294 17 19.6148
+294 18 18.2562
+294 19 16.7278
+294 20 15.2843
+294 21 12.0576
+294 22  8.4913
+294 23  5.9439
+294 24  4.4155
+294 25  1.9530
+294 26  0.8491
+294 27  0.3397
+294 28  0.0849
+# pixel 295
+295  1  0.7429
+295  2  2.4144
+295  3  6.4075
+295  4 11.5148
+295  5 18.0152
+295  6 21.9153
+295  7 23.1225
+295  8 24.4226
+295  9 25.9084
+295 10 26.4656
+295 11 26.4656
+295 12 26.2798
+295 13 25.7227
+295 14 25.4441
+295 15 24.1440
+295 16 22.8440
+295 17 21.4510
+295 18 19.9653
+295 19 18.2937
+295 20 16.7151
+295 21 13.1864
+295 22  9.2862
+295 23  6.5003
+295 24  4.8288
+295 25  2.1358
+295 26  0.9286
+295 27  0.3714
+295 28  0.0929
+# pixel 296
+296  1  0.7729
+296  2  2.5118
+296  3  6.6660
+296  4 11.9794
+296  5 18.7420
+296  6 22.7996
+296  7 24.0555
+296  8 25.4080
+296  9 26.9537
+296 10 27.5334
+296 11 27.5334
+296 12 27.3402
+296 13 26.7605
+296 14 26.4707
+296 15 25.1182
+296 16 23.7657
+296 17 22.3165
+296 18 20.7708
+296 19 19.0319
+296 20 17.3895
+296 21 13.7184
+296 22  9.6608
+296 23  6.7626
+296 24  5.0236
+296 25  2.2220
+296 26  0.9661
+296 27  0.3864
+296 28  0.0966
+# pixel 297
+297  1  0.7084
+297  2  2.3023
+297  3  6.1100
+297  4 10.9804
+297  5 17.1789
+297  6 20.8981
+297  7 22.0493
+297  8 23.2890
+297  9 24.7058
+297 10 25.2371
+297 11 25.2371
+297 12 25.0600
+297 13 24.5287
+297 14 24.2630
+297 15 23.0233
+297 16 21.7836
+297 17 20.4553
+297 18 19.0385
+297 19 17.4446
+297 20 15.9392
+297 21 12.5743
+297 22  8.8551
+297 23  6.1986
+297 24  4.6047
+297 25  2.0367
+297 26  0.8855
+297 27  0.3542
+297 28  0.0886
+# pixel 298
+298  1  0.7811
+298  2  2.5387
+298  3  6.7374
+298  4 12.1078
+298  5 18.9428
+298  6 23.0438
+298  7 24.3132
+298  8 25.6802
+298  9 27.2425
+298 10 27.8284
+298 11 27.8284
+298 12 27.6331
+298 13 27.0472
+298 14 26.7543
+298 15 25.3873
+298 16 24.0203
+298 17 22.5556
+298 18 20.9933
+298 19 19.2358
+298 20 17.5758
+298 21 13.8654
+298 22  9.7643
+298 23  6.8350
+298 24  5.0775
+298 25  2.2458
+298 26  0.9764
+298 27  0.3906
+298 28  0.0976
+# pixel 299
+299  1  0.7193
+299  2  2.3377
+299  3  6.2039
+299  4 11.1490
+299  5 17.4428
+299  6 21.2191
+299  7 22.3879
+299  8 23.6467
+299  9 25.0853
+299 10 25.6248
+299 11 25.6248
+299 12 25.4449
+299 13 24.9055
+299 14 24.6357
+299 15 23.3770
+299 16 22.1182
+299 17 20.7695
+299 18 19.3310
+299 19 17.7125
+299 20 16.1841
+299 21 12.7674
+299 22  8.9911
+299 23  6.2938
+299 24  4.6754
+299 25  2.0680
+299 26  0.8991
+299 27  0.3596
+299 28  0.0899
+# pixel 300
+300  1  0.7412
+300  2  2.4088
+300  3  6.3926
+300  4 11.4881
+300  5 17.9733
+300  6 21.8644
+300  7 23.0688
+300  8 24.3658
+300  9 25.8482
+300 10 26.4040
+300 11 26.4040
+300 12 26.2188
+300 13 25.6629
+300 14 25.3849
+300 15 24.0879
+300 16 22.7909
+300 17 21.4012
+300 18 19.9188
+300 19 18.2512
+300 20 16.6762
+300 21 13.1557
+300 22  9.2646
+300 23  6.4852
+300 24  4.8176
+300 25  2.1309
+300 26  0.9265
+300 27  0.3706
+300 28  0.0926
+# pixel 301
+301  1  0.7696
+301  2  2.5011
+301  3  6.6375
+301  4 11.9282
+301  5 18.6618
+301  6 22.7020
+301  7 23.9526
+301  8 25.2993
+301  9 26.8384
+301 10 27.4156
+301 11 27.4156
+301 12 27.2232
+301 13 26.6460
+301 14 26.3574
+301 15 25.0107
+301 16 23.6640
+301 17 22.2211
+301 18 20.6819
+301 19 18.9504
+301 20 17.3151
+301 21 13.6597
+301 22  9.6195
+301 23  6.7337
+301 24  5.0021
+301 25  2.2125
+301 26  0.9620
+301 27  0.3848
+301 28  0.0962
+# pixel 302
+302  1  0.7861
+302  2  2.5548
+302  3  6.7800
+302  4 12.1844
+302  5 19.0627
+302  6 23.1897
+302  7 24.4671
+302  8 25.8427
+302  9 27.4149
+302 10 28.0045
+302 11 28.0045
+302 12 27.8080
+302 13 27.2184
+302 14 26.9236
+302 15 25.5479
+302 16 24.1723
+302 17 22.6984
+302 18 21.1262
+302 19 19.3575
+302 20 17.6870
+302 21 13.9531
+302 22  9.8261
+302 23  6.8783
+302 24  5.1096
+302 25  2.2600
+302 26  0.9826
+302 27  0.3930
+302 28  0.0983
+# pixel 303
+303  1  0.6891
+303  2  2.2397
+303  3  5.9438
+303  4 10.6817
+303  5 16.7116
+303  6 20.3296
+303  7 21.4495
+303  8 22.6555
+303  9 24.0337
+303 10 24.5506
+303 11 24.5506
+303 12 24.3783
+303 13 23.8615
+303 14 23.6030
+303 15 22.3970
+303 16 21.1910
+303 17 19.8989
+303 18 18.5206
+303 19 16.9701
+303 20 15.5056
+303 21 12.2322
+303 22  8.6142
+303 23  6.0300
+303 24  4.4794
+303 25  1.9813
+303 26  0.8614
+303 27  0.3446
+303 28  0.0861
+# pixel 304
+304  1  0.8367
+304  2  2.7192
+304  3  7.2164
+304  4 12.9685
+304  5 20.2895
+304  6 24.6821
+304  7 26.0417
+304  8 27.5058
+304  9 29.1792
+304 10 29.8067
+304 11 29.8067
+304 12 29.5975
+304 13 28.9700
+304 14 28.6563
+304 15 27.1921
+304 16 25.7279
+304 17 24.1591
+304 18 22.4858
+304 19 20.6032
+304 20 18.8253
+304 21 14.8511
+304 22 10.4585
+304 23  7.3209
+304 24  5.4384
+304 25  2.4055
+304 26  1.0458
+304 27  0.4183
+304 28  0.1046
+# pixel 305
+305  1  0.7609
+305  2  2.4731
+305  3  6.5631
+305  4 11.7946
+305  5 18.4528
+305  6 22.4478
+305  7 23.6843
+305  8 25.0160
+305  9 26.5378
+305 10 27.1085
+305 11 27.1085
+305 12 26.9183
+305 13 26.3476
+305 14 26.0623
+305 15 24.7306
+305 16 23.3990
+305 17 21.9722
+305 18 20.4503
+305 19 18.7382
+305 20 17.1212
+305 21 13.5067
+305 22  9.5118
+305 23  6.6582
+305 24  4.9461
+305 25  2.1877
+305 26  0.9512
+305 27  0.3805
+305 28  0.0951
+# pixel 306
+306  1  0.7657
+306  2  2.4884
+306  3  6.6039
+306  4 11.8679
+306  5 18.5675
+306  6 22.5873
+306  7 23.8315
+306  8 25.1714
+306  9 26.7027
+306 10 27.2770
+306 11 27.2770
+306 12 27.0856
+306 13 26.5113
+306 14 26.2242
+306 15 24.8843
+306 16 23.5443
+306 17 22.1087
+306 18 20.5774
+306 19 18.8546
+306 20 17.2276
+306 21 13.5906
+306 22  9.5709
+306 23  6.6996
+306 24  4.9769
+306 25  2.2013
+306 26  0.9571
+306 27  0.3828
+306 28  0.0957
+# pixel 307
+307  1  0.6788
+307  2  2.2061
+307  3  5.8546
+307  4 10.5213
+307  5 16.4607
+307  6 20.0244
+307  7 21.1274
+307  8 22.3153
+307  9 23.6729
+307 10 24.1820
+307 11 24.1820
+307 12 24.0123
+307 13 23.5032
+307 14 23.2486
+307 15 22.0608
+307 16 20.8729
+307 17 19.6001
+307 18 18.2426
+307 19 16.7153
+307 20 15.2728
+307 21 12.0486
+307 22  8.4849
+307 23  5.9394
+307 24  4.4122
+307 25  1.9515
+307 26  0.8485
+307 27  0.3394
+307 28  0.0848
+# pixel 308
+308  1  0.8105
+308  2  2.6341
+308  3  6.9905
+308  4 12.5627
+308  5 19.6545
+308  6 23.9096
+308  7 25.2266
+308  8 26.6450
+308  9 28.2660
+308 10 28.8739
+308 11 28.8739
+308 12 28.6712
+308 13 28.0634
+308 14 27.7594
+308 15 26.3411
+308 16 24.9227
+308 17 23.4030
+308 18 21.7820
+308 19 19.9584
+308 20 18.2361
+308 21 14.3863
+308 22 10.1312
+308 23  7.0918
+308 24  5.2682
+308 25  2.3302
+308 26  1.0131
+308 27  0.4052
+308 28  0.1013
+# pixel 309
+309  1  0.7316
+309  2  2.3778
+309  3  6.3104
+309  4 11.3404
+309  5 17.7422
+309  6 21.5833
+309  7 22.7722
+309  8 24.0526
+309  9 25.5158
+309 10 26.0646
+309 11 26.0646
+309 12 25.8816
+309 13 25.3329
+309 14 25.0586
+309 15 23.7782
+309 16 22.4978
+309 17 21.1260
+309 18 19.6627
+309 19 18.0166
+309 20 16.4618
+309 21 12.9865
+309 22  9.1455
+309 23  6.4018
+309 24  4.7556
+309 25  2.1035
+309 26  0.9145
+309 27  0.3658
+309 28  0.0915
+# pixel 310
+310  1  0.6997
+310  2  2.2741
+310  3  6.0351
+310  4 10.8457
+310  5 16.9683
+310  6 20.6418
+310  7 21.7789
+310  8 23.0034
+310  9 24.4029
+310 10 24.9277
+310 11 24.9277
+310 12 24.7527
+310 13 24.2279
+310 14 23.9655
+310 15 22.7410
+310 16 21.5165
+310 17 20.2045
+310 18 18.8051
+310 19 17.2307
+310 20 15.7438
+310 21 12.4201
+310 22  8.7465
+310 23  6.1226
+310 24  4.5482
+310 25  2.0117
+310 26  0.8747
+310 27  0.3499
+310 28  0.0875
+# pixel 311
+311  1  0.7571
+311  2  2.4606
+311  3  6.5302
+311  4 11.7354
+311  5 18.3601
+311  6 22.3350
+311  7 23.5653
+311  8 24.8903
+311  9 26.4045
+311 10 26.9724
+311 11 26.9724
+311 12 26.7831
+311 13 26.2153
+311 14 25.9313
+311 15 24.6064
+311 16 23.2814
+311 17 21.8618
+311 18 20.3476
+311 19 18.6441
+311 20 17.0352
+311 21 13.4389
+311 22  9.4640
+311 23  6.6248
+311 24  4.9213
+311 25  2.1767
+311 26  0.9464
+311 27  0.3786
+311 28  0.0946
+# pixel 312
+312  1  0.7534
+312  2  2.4487
+312  3  6.4984
+312  4 11.6783
+312  5 18.2709
+312  6 22.2264
+312  7 23.4507
+312  8 24.7693
+312  9 26.2761
+312 10 26.8412
+312 11 26.8412
+312 12 26.6528
+312 13 26.0878
+312 14 25.8052
+312 15 24.4867
+312 16 23.1682
+312 17 21.7555
+312 18 20.2486
+312 19 18.5534
+312 20 16.9523
+312 21 13.3735
+312 22  9.4180
+312 23  6.5926
+312 24  4.8973
+312 25  2.1661
+312 26  0.9418
+312 27  0.3767
+312 28  0.0942
+# pixel 313
+313  1  0.6946
+313  2  2.2576
+313  3  5.9914
+313  4 10.7671
+313  5 16.8453
+313  6 20.4922
+313  7 21.6210
+313  8 22.8366
+313  9 24.2259
+313 10 24.7469
+313 11 24.7469
+313 12 24.5732
+313 13 24.0522
+313 14 23.7918
+313 15 22.5761
+313 16 21.3605
+313 17 20.0580
+313 18 18.6687
+313 19 17.1057
+313 20 15.6296
+313 21 12.3300
+313 22  8.6831
+313 23  6.0782
+313 24  4.5152
+313 25  1.9971
+313 26  0.8683
+313 27  0.3473
+313 28  0.0868
+# pixel 314
+314  1  0.6862
+314  2  2.2300
+314  3  5.9181
+314  4 10.6353
+314  5 16.6392
+314  6 20.2415
+314  7 21.3565
+314  8 22.5572
+314  9 23.9295
+314 10 24.4441
+314 11 24.4441
+314 12 24.2726
+314 13 23.7580
+314 14 23.5007
+314 15 22.2999
+314 16 21.0992
+314 17 19.8126
+314 18 18.4403
+314 19 16.8965
+314 20 15.4384
+314 21 12.1792
+314 22  8.5769
+314 23  6.0038
+314 24  4.4600
+314 25  1.9727
+314 26  0.8577
+314 27  0.3431
+314 28  0.0858
+# pixel 315
+315  1  0.7169
+315  2  2.3298
+315  3  6.1830
+315  4 11.1115
+315  5 17.3842
+315  6 21.1477
+315  7 22.3126
+315  8 23.5672
+315  9 25.0009
+315 10 25.5386
+315 11 25.5386
+315 12 25.3594
+315 13 24.8217
+315 14 24.5529
+315 15 23.2983
+315 16 22.0438
+315 17 20.6997
+315 18 19.2659
+315 19 17.6530
+315 20 16.1296
+315 21 12.7245
+315 22  8.9609
+315 23  6.2726
+315 24  4.6597
+315 25  2.0610
+315 26  0.8961
+315 27  0.3584
+315 28  0.0896
+# pixel 316
+316  1  0.6437
+316  2  2.0922
+316  3  5.5523
+316  4  9.9781
+316  5 15.6108
+316  6 18.9905
+316  7 20.0366
+316  8 21.1632
+316  9 22.4507
+316 10 22.9335
+316 11 22.9335
+316 12 22.7725
+316 13 22.2897
+316 14 22.0483
+316 15 20.9218
+316 16 19.7952
+316 17 18.5882
+316 18 17.3007
+316 19 15.8523
+316 20 14.4843
+316 21 11.4265
+316 22  8.0468
+316 23  5.6328
+316 24  4.1844
+316 25  1.8508
+316 26  0.8047
+316 27  0.3219
+316 28  0.0805
+# pixel 317
+317  1  0.7135
+317  2  2.3189
+317  3  6.1539
+317  4 11.0591
+317  5 17.3022
+317  6 21.0480
+317  7 22.2075
+317  8 23.4561
+317  9 24.8831
+317 10 25.4182
+317 11 25.4182
+317 12 25.2398
+317 13 24.7047
+317 14 24.4371
+317 15 23.1885
+317 16 21.9399
+317 17 20.6021
+317 18 19.1751
+317 19 17.5698
+317 20 16.0536
+317 21 12.6645
+317 22  8.9187
+317 23  6.2431
+317 24  4.6377
+317 25  2.0513
+317 26  0.8919
+317 27  0.3567
+317 28  0.0892
+# pixel 318
+318  1  0.7257
+318  2  2.3587
+318  3  6.2596
+318  4 11.2491
+318  5 17.5994
+318  6 21.4095
+318  7 22.5889
+318  8 23.8589
+318  9 25.3104
+318 10 25.8547
+318 11 25.8547
+318 12 25.6733
+318 13 25.1290
+318 14 24.8568
+318 15 23.5868
+318 16 22.3167
+318 17 20.9560
+318 18 19.5045
+318 19 17.8715
+318 20 16.3293
+318 21 12.8820
+318 22  9.0718
+318 23  6.3503
+318 24  4.7174
+318 25  2.0865
+318 26  0.9072
+318 27  0.3629
+318 28  0.0907
+# pixel 319
+319  1  0.7201
+319  2  2.3405
+319  3  6.2112
+319  4 11.1622
+319  5 17.4635
+319  6 21.2442
+319  7 22.4145
+319  8 23.6747
+319  9 25.1150
+319 10 25.6551
+319 11 25.6551
+319 12 25.4751
+319 13 24.9350
+319 14 24.6649
+319 15 23.4047
+319 16 22.1444
+319 17 20.7942
+319 18 19.3539
+319 19 17.7335
+319 20 16.2032
+319 21 12.7826
+319 22  9.0018
+319 23  6.3013
+319 24  4.6809
+319 25  2.0704
+319 26  0.9002
+319 27  0.3601
+319 28  0.0900
+# pixel 320
+320  1  0.7848
+320  2  2.5505
+320  3  6.7686
+320  4 12.1638
+320  5 19.0305
+320  6 23.1505
+320  7 24.4257
+320  8 25.7990
+320  9 27.3685
+320 10 27.9571
+320 11 27.9571
+320 12 27.7609
+320 13 27.1724
+320 14 26.8781
+320 15 25.5047
+320 16 24.1314
+320 17 22.6600
+320 18 21.0905
+320 19 19.3247
+320 20 17.6571
+320 21 13.9295
+320 22  9.8095
+320 23  6.8667
+320 24  5.1009
+320 25  2.2562
+320 26  0.9810
+320 27  0.3924
+320 28  0.0981
+# pixel 321
+321  1  0.7422
+321  2  2.4120
+321  3  6.4012
+321  4 11.5036
+321  5 17.9975
+321  6 21.8939
+321  7 23.0999
+321  8 24.3987
+321  9 25.8830
+321 10 26.4397
+321 11 26.4397
+321 12 26.2541
+321 13 25.6975
+321 14 25.4192
+321 15 24.1204
+321 16 22.8216
+321 17 21.4300
+321 18 19.9457
+321 19 18.2758
+321 20 16.6987
+321 21 13.1734
+321 22  9.2771
+321 23  6.4940
+321 24  4.8241
+321 25  2.1337
+321 26  0.9277
+321 27  0.3711
+321 28  0.0928
+# pixel 322
+322  1  0.8176
+322  2  2.6571
+322  3  7.0514
+322  4 12.6721
+322  5 19.8257
+322  6 24.1179
+322  7 25.4464
+322  8 26.8771
+322  9 28.5122
+322 10 29.1254
+322 11 29.1254
+322 12 28.9210
+322 13 28.3078
+322 14 28.0012
+322 15 26.5705
+322 16 25.1398
+322 17 23.6069
+322 18 21.9718
+322 19 20.1323
+322 20 18.3950
+322 21 14.5116
+322 22 10.2194
+322 23  7.1536
+322 24  5.3141
+322 25  2.3505
+322 26  1.0219
+322 27  0.4088
+322 28  0.1022
+# pixel 323
+323  1  0.6788
+323  2  2.2062
+323  3  5.8550
+323  4 10.5220
+323  5 16.4618
+323  6 20.0257
+323  7 21.1288
+323  8 22.3167
+323  9 23.6744
+323 10 24.1835
+323 11 24.1835
+323 12 24.0138
+323 13 23.5047
+323 14 23.2501
+323 15 22.0622
+323 16 20.8742
+323 17 19.6014
+323 18 18.2437
+323 19 16.7163
+323 20 15.2738
+323 21 12.0493
+323 22  8.4855
+323 23  5.9398
+323 24  4.4124
+323 25  1.9517
+323 26  0.8485
+323 27  0.3394
+323 28  0.0849
+# pixel 324
+324  1  0.7766
+324  2  2.5241
+324  3  6.6985
+324  4 12.0378
+324  5 18.8334
+324  6 22.9107
+324  7 24.1727
+324  8 25.5318
+324  9 27.0851
+324 10 27.6676
+324 11 27.6676
+324 12 27.4734
+324 13 26.8909
+324 14 26.5997
+324 15 25.2406
+324 16 23.8815
+324 17 22.4253
+324 18 20.8720
+324 19 19.1246
+324 20 17.4742
+324 21 13.7852
+324 22  9.7079
+324 23  6.7955
+324 24  5.0481
+324 25  2.2328
+324 26  0.9708
+324 27  0.3883
+324 28  0.0971
+# pixel 325
+325  1  0.6570
+325  2  2.1352
+325  3  5.6665
+325  4 10.1832
+325  5 15.9318
+325  6 19.3810
+325  7 20.4486
+325  8 21.5983
+325  9 22.9123
+325 10 23.4050
+325 11 23.4050
+325 12 23.2408
+325 13 22.7480
+325 14 22.5017
+325 15 21.3519
+325 16 20.2022
+325 17 18.9704
+325 18 17.6564
+325 19 16.1782
+325 20 14.7821
+325 21 11.6614
+325 22  8.2123
+325 23  5.7486
+325 24  4.2704
+325 25  1.8888
+325 26  0.8212
+325 27  0.3285
+325 28  0.0821
+# pixel 326
+326  1  0.7346
+326  2  2.3874
+326  3  6.3357
+326  4 11.3859
+326  5 17.8135
+326  6 21.6700
+326  7 22.8637
+326  8 24.1492
+326  9 25.6184
+326 10 26.1693
+326 11 26.1693
+326 12 25.9857
+326 13 25.4347
+326 14 25.1593
+326 15 23.8737
+326 16 22.5882
+326 17 21.2109
+326 18 19.7418
+326 19 18.0890
+326 20 16.5280
+326 21 13.0387
+326 22  9.1822
+326 23  6.4275
+326 24  4.7747
+326 25  2.1119
+326 26  0.9182
+326 27  0.3673
+326 28  0.0918
+# pixel 327
+327  1  0.7782
+327  2  2.5290
+327  3  6.7116
+327  4 12.0615
+327  5 18.8704
+327  6 22.9558
+327  7 24.2203
+327  8 25.5821
+327  9 27.1384
+327 10 27.7220
+327 11 27.7220
+327 12 27.5275
+327 13 26.9439
+327 14 26.6520
+327 15 25.2903
+327 16 23.9285
+327 17 22.4694
+327 18 20.9131
+327 19 19.1622
+327 20 17.5086
+327 21 13.8124
+327 22  9.7270
+327 23  6.8089
+327 24  5.0581
+327 25  2.2372
+327 26  0.9727
+327 27  0.3891
+327 28  0.0973
+# pixel 328
+328  1  0.7701
+328  2  2.5029
+328  3  6.6423
+328  4 11.9370
+328  5 18.6756
+328  6 22.7188
+328  7 23.9702
+328  8 25.3179
+328  9 26.8582
+328 10 27.4358
+328 11 27.4358
+328 12 27.2433
+328 13 26.6657
+328 14 26.3769
+328 15 25.0291
+328 16 23.6814
+328 17 22.2374
+328 18 20.6972
+328 19 18.9644
+328 20 17.3279
+328 21 13.6698
+328 22  9.6266
+328 23  6.7386
+328 24  5.0058
+328 25  2.2141
+328 26  0.9627
+328 27  0.3851
+328 28  0.0963
+# pixel 329
+329  1  0.7616
+329  2  2.4750
+329  3  6.5684
+329  4 11.8041
+329  5 18.4676
+329  6 22.4658
+329  7 23.7033
+329  8 25.0360
+329  9 26.5591
+329 10 27.1303
+329 11 27.1303
+329 12 26.9399
+329 13 26.3687
+329 14 26.0832
+329 15 24.7504
+329 16 23.4177
+329 17 21.9898
+329 18 20.4667
+329 19 18.7532
+329 20 17.1349
+329 21 13.5175
+329 22  9.5194
+329 23  6.6636
+329 24  4.9501
+329 25  2.1895
+329 26  0.9519
+329 27  0.3808
+329 28  0.0952
+# pixel 330
+330  1  0.8082
+330  2  2.6267
+330  3  6.9710
+330  4 12.5275
+330  5 19.5995
+330  6 23.8427
+330  7 25.1561
+330  8 26.5705
+330  9 28.1870
+330 10 28.7931
+330 11 28.7931
+330 12 28.5911
+330 13 27.9849
+330 14 27.6818
+330 15 26.2674
+330 16 24.8530
+330 17 23.3376
+330 18 21.7211
+330 19 19.9026
+330 20 18.1851
+330 21 14.3461
+330 22 10.1029
+330 23  7.0720
+330 24  5.2535
+330 25  2.3237
+330 26  1.0103
+330 27  0.4041
+330 28  0.1010
+# pixel 331
+331  1  0.6909
+331  2  2.2454
+331  3  5.9589
+331  4 10.7088
+331  5 16.7541
+331  6 20.3813
+331  7 21.5040
+331  8 22.7131
+331  9 24.0949
+331 10 24.6130
+331 11 24.6130
+331 12 24.4403
+331 13 23.9221
+331 14 23.6631
+331 15 22.4540
+331 16 21.2449
+331 17 19.9495
+331 18 18.5677
+331 19 17.0132
+331 20 15.5451
+331 21 12.2633
+331 22  8.6362
+331 23  6.0453
+331 24  4.4908
+331 25  1.9863
+331 26  0.8636
+331 27  0.3454
+331 28  0.0864
+# pixel 332
+332  1  0.6904
+332  2  2.2438
+332  3  5.9546
+332  4 10.7010
+332  5 16.7419
+332  6 20.3664
+332  7 21.4883
+332  8 22.6964
+332  9 24.0772
+332 10 24.5950
+332 11 24.5950
+332 12 24.4224
+332 13 23.9046
+332 14 23.6457
+332 15 22.4375
+332 16 21.2294
+332 17 19.9349
+332 18 18.5541
+332 19 17.0007
+332 20 15.5337
+332 21 12.2543
+332 22  8.6298
+332 23  6.0409
+332 24  4.4875
+332 25  1.9849
+332 26  0.8630
+332 27  0.3452
+332 28  0.0863
+# pixel 333
+333  1  0.7189
+333  2  2.3364
+333  3  6.2005
+333  4 11.1430
+333  5 17.4334
+333  6 21.2076
+333  7 22.3758
+333  8 23.6339
+333  9 25.0717
+333 10 25.6109
+333 11 25.6109
+333 12 25.4312
+333 13 24.8920
+333 14 24.6224
+333 15 23.3643
+333 16 22.1063
+333 17 20.7583
+333 18 19.3205
+333 19 17.7030
+333 20 16.1753
+333 21 12.7605
+333 22  8.9863
+333 23  6.2904
+333 24  4.6729
+333 25  2.0668
+333 26  0.8986
+333 27  0.3595
+333 28  0.0899
+# pixel 334
+334  1  0.7097
+334  2  2.3064
+334  3  6.1209
+334  4 10.9998
+334  5 17.2094
+334  6 20.9352
+334  7 22.0884
+334  8 23.3303
+334  9 24.7496
+334 10 25.2819
+334 11 25.2819
+334 12 25.1044
+334 13 24.5722
+334 14 24.3061
+334 15 23.0642
+334 16 21.8222
+334 17 20.4916
+334 18 19.0723
+334 19 17.4755
+334 20 15.9675
+334 21 12.5966
+334 22  8.8708
+334 23  6.2096
+334 24  4.6128
+334 25  2.0403
+334 26  0.8871
+334 27  0.3548
+334 28  0.0887
+# pixel 335
+335  1  0.6775
+335  2  2.2018
+335  3  5.8433
+335  4 10.5011
+335  5 16.4291
+335  6 19.9859
+335  7 21.0869
+335  8 22.2725
+335  9 23.6275
+335 10 24.1356
+335 11 24.1356
+335 12 23.9662
+335 13 23.4581
+335 14 23.2040
+335 15 22.0184
+335 16 20.8328
+335 17 19.5625
+335 18 18.2075
+335 19 16.6832
+335 20 15.2435
+335 21 12.0254
+335 22  8.4686
+335 23  5.9280
+335 24  4.4037
+335 25  1.9478
+335 26  0.8469
+335 27  0.3387
+335 28  0.0847
+# pixel 336
+336  1  0.7264
+336  2  2.3608
+336  3  6.2652
+336  4 11.2592
+336  5 17.6151
+336  6 21.4287
+336  7 22.6091
+336  8 23.8803
+336  9 25.3331
+336 10 25.8779
+336 11 25.8779
+336 12 25.6963
+336 13 25.1515
+336 14 24.8791
+336 15 23.6079
+336 16 22.3367
+336 17 20.9747
+336 18 19.5219
+336 19 17.8875
+336 20 16.3439
+336 21 12.8936
+336 22  9.0800
+336 23  6.3560
+336 24  4.7216
+336 25  2.0884
+336 26  0.9080
+336 27  0.3632
+336 28  0.0908
+# pixel 337
+337  1  0.6559
+337  2  2.1316
+337  3  5.6571
+337  4 10.1663
+337  5 15.9054
+337  6 19.3488
+337  7 20.4146
+337  8 21.5624
+337  9 22.8742
+337 10 23.3661
+337 11 23.3661
+337 12 23.2021
+337 13 22.7102
+337 14 22.4643
+337 15 21.3165
+337 16 20.1687
+337 17 18.9389
+337 18 17.6271
+337 19 16.1513
+337 20 14.7575
+337 21 11.6421
+337 22  8.1986
+337 23  5.7390
+337 24  4.2633
+337 25  1.8857
+337 26  0.8199
+337 27  0.3279
+337 28  0.0820
+# pixel 338
+338  1  0.7210
+338  2  2.3432
+338  3  6.2184
+338  4 11.1751
+338  5 17.4836
+338  6 21.2687
+338  7 22.4402
+338  8 23.7020
+338  9 25.1439
+338 10 25.6846
+338 11 25.6846
+338 12 25.5044
+338 13 24.9637
+338 14 24.6933
+338 15 23.4316
+338 16 22.1699
+338 17 20.8181
+338 18 19.3761
+338 19 17.7539
+338 20 16.2219
+338 21 12.7973
+338 22  9.0121
+338 23  6.3085
+338 24  4.6863
+338 25  2.0728
+338 26  0.9012
+338 27  0.3605
+338 28  0.0901
+# pixel 339
+339  1  0.7055
+339  2  2.2929
+339  3  6.0849
+339  4 10.9352
+339  5 17.1083
+339  6 20.8122
+339  7 21.9586
+339  8 23.1933
+339  9 24.6043
+339 10 25.1334
+339 11 25.1334
+339 12 24.9570
+339 13 24.4279
+339 14 24.1633
+339 15 22.9287
+339 16 21.6941
+339 17 20.3713
+339 18 18.9603
+339 19 17.3729
+339 20 15.8737
+339 21 12.5226
+339 22  8.8187
+339 23  6.1731
+339 24  4.5857
+339 25  2.0283
+339 26  0.8819
+339 27  0.3527
+339 28  0.0882
+# pixel 340
+340  1  0.7066
+340  2  2.2964
+340  3  6.0944
+340  4 10.9522
+340  5 17.1349
+340  6 20.8445
+340  7 21.9927
+340  8 23.2292
+340  9 24.6424
+340 10 25.1723
+340 11 25.1723
+340 12 24.9957
+340 13 24.4658
+340 14 24.2008
+340 15 22.9642
+340 16 21.7277
+340 17 20.4029
+340 18 18.9897
+340 19 17.3998
+340 20 15.8983
+340 21 12.5420
+340 22  8.8324
+340 23  6.1827
+340 24  4.5928
+340 25  2.0315
+340 26  0.8832
+340 27  0.3533
+340 28  0.0883
+# pixel 341
+341  1  0.7295
+341  2  2.3710
+341  3  6.2923
+341  4 11.3078
+341  5 17.6913
+341  6 21.5214
+341  7 22.7069
+341  8 23.9836
+341  9 25.4426
+341 10 25.9898
+341 11 25.9898
+341 12 25.8074
+341 13 25.2602
+341 14 24.9867
+341 15 23.7100
+341 16 22.4333
+341 17 21.0654
+341 18 19.6063
+341 19 17.9649
+341 20 16.4146
+341 21 12.9493
+341 22  9.1192
+341 23  6.3835
+341 24  4.7420
+341 25  2.0974
+341 26  0.9119
+341 27  0.3648
+341 28  0.0912
+# pixel 342
+342  1  0.7961
+342  2  2.5873
+342  3  6.8662
+342  4 12.3393
+342  5 19.3050
+342  6 23.4845
+342  7 24.7781
+342  8 26.1713
+342  9 27.7634
+342 10 28.3605
+342 11 28.3605
+342 12 28.1615
+342 13 27.5644
+342 14 27.2659
+342 15 25.8727
+342 16 24.4796
+342 17 22.9869
+342 18 21.3948
+342 19 19.6036
+342 20 17.9119
+342 21 14.1305
+342 22  9.9511
+342 23  6.9657
+342 24  5.1745
+342 25  2.2887
+342 26  0.9951
+342 27  0.3980
+342 28  0.0995
+# pixel 343
+343  1  0.7987
+343  2  2.5958
+343  3  6.8889
+343  4 12.3801
+343  5 19.3689
+343  6 23.5622
+343  7 24.8601
+343  8 26.2578
+343  9 27.8553
+343 10 28.4543
+343 11 28.4543
+343 12 28.2546
+343 13 27.6556
+343 14 27.3561
+343 15 25.9583
+343 16 24.5606
+343 17 23.0630
+343 18 21.4655
+343 19 19.6684
+343 20 17.9712
+343 21 14.1772
+343 22  9.9840
+343 23  6.9888
+343 24  5.1917
+343 25  2.2963
+343 26  0.9984
+343 27  0.3994
+343 28  0.0998
+# pixel 344
+344  1  0.7652
+344  2  2.4868
+344  3  6.5997
+344  4 11.8603
+344  5 18.5556
+344  6 22.5728
+344  7 23.8162
+344  8 25.1553
+344  9 26.6857
+344 10 27.2596
+344 11 27.2596
+344 12 27.0683
+344 13 26.4944
+344 14 26.2074
+344 15 24.8684
+344 16 23.5293
+344 17 22.0946
+344 18 20.5642
+344 19 18.8426
+344 20 17.2166
+344 21 13.5820
+344 22  9.5648
+344 23  6.6953
+344 24  4.9737
+344 25  2.1999
+344 26  0.9565
+344 27  0.3826
+344 28  0.0956
+# pixel 345
+345  1  0.7546
+345  2  2.4526
+345  3  6.5088
+345  4 11.6970
+345  5 18.3001
+345  6 22.2620
+345  7 23.4883
+345  8 24.8089
+345  9 26.3182
+345 10 26.8842
+345 11 26.8842
+345 12 26.6955
+345 13 26.1296
+345 14 25.8466
+345 15 24.5259
+345 16 23.2053
+345 17 21.7904
+345 18 20.2811
+345 19 18.5831
+345 20 16.9795
+345 21 13.3949
+345 22  9.4331
+345 23  6.6031
+345 24  4.9052
+345 25  2.1696
+345 26  0.9433
+345 27  0.3773
+345 28  0.0943
+# pixel 346
+346  1  0.6914
+346  2  2.2471
+346  3  5.9634
+346  4 10.7169
+346  5 16.7668
+346  6 20.3967
+346  7 21.5203
+346  8 22.7302
+346  9 24.1131
+346 10 24.6316
+346 11 24.6316
+346 12 24.4588
+346 13 23.9402
+346 14 23.6809
+346 15 22.4710
+346 16 21.2610
+346 17 19.9646
+346 18 18.5817
+346 19 17.0261
+346 20 15.5568
+346 21 12.2726
+346 22  8.6427
+346 23  6.0499
+346 24  4.4942
+346 25  1.9878
+346 26  0.8643
+346 27  0.3457
+346 28  0.0864
+# pixel 347
+347  1  0.6914
+347  2  2.2470
+347  3  5.9632
+347  4 10.7165
+347  5 16.7661
+347  6 20.3958
+347  7 21.5193
+347  8 22.7293
+347  9 24.1120
+347 10 24.6306
+347 11 24.6306
+347 12 24.4577
+347 13 23.9392
+347 14 23.6799
+347 15 22.4700
+347 16 21.2601
+347 17 19.9637
+347 18 18.5810
+347 19 17.0253
+347 20 15.5561
+347 21 12.2721
+347 22  8.6423
+347 23  6.0496
+347 24  4.4940
+347 25  1.9877
+347 26  0.8642
+347 27  0.3457
+347 28  0.0864
+# pixel 348
+348  1  0.7769
+348  2  2.5251
+348  3  6.7012
+348  4 12.0427
+348  5 18.8410
+348  6 22.9199
+348  7 24.1825
+348  8 25.5421
+348  9 27.0960
+348 10 27.6788
+348 11 27.6788
+348 12 27.4845
+348 13 26.9018
+348 14 26.6104
+348 15 25.2508
+348 16 23.8911
+348 17 22.4344
+348 18 20.8805
+348 19 19.1323
+348 20 17.4813
+348 21 13.7908
+348 22  9.7118
+348 23  6.7983
+348 24  5.0502
+348 25  2.2337
+348 26  0.9712
+348 27  0.3885
+348 28  0.0971
+# pixel 349
+349  1  0.7893
+349  2  2.5652
+349  3  6.8077
+349  4 12.2341
+349  5 19.1405
+349  6 23.2843
+349  7 24.5669
+349  8 25.9482
+349  9 27.5268
+349 10 28.1188
+349 11 28.1188
+349 12 27.9215
+349 13 27.3295
+349 14 27.0335
+349 15 25.6522
+349 16 24.2710
+349 17 22.7910
+349 18 21.2124
+349 19 19.4365
+349 20 17.7592
+349 21 14.0101
+349 22  9.8662
+349 23  6.9064
+349 24  5.1304
+349 25  2.2692
+349 26  0.9866
+349 27  0.3946
+349 28  0.0987
+# pixel 350
+350  1  0.6893
+350  2  2.2401
+350  3  5.9449
+350  4 10.6835
+350  5 16.7146
+350  6 20.3332
+350  7 21.4532
+350  8 22.6594
+350  9 24.0380
+350 10 24.5549
+350 11 24.5549
+350 12 24.3826
+350 13 23.8656
+350 14 23.6072
+350 15 22.4010
+350 16 21.1948
+350 17 19.9024
+350 18 18.5239
+350 19 16.9730
+350 20 15.5084
+350 21 12.2344
+350 22  8.6158
+350 23  6.0310
+350 24  4.4802
+350 25  1.9816
+350 26  0.8616
+350 27  0.3446
+350 28  0.0862
+# pixel 351
+351  1  0.7577
+351  2  2.4626
+351  3  6.5354
+351  4 11.7448
+351  5 18.3749
+351  6 22.3529
+351  7 23.5842
+351  8 24.9103
+351  9 26.4257
+351 10 26.9940
+351 11 26.9940
+351 12 26.8046
+351 13 26.2363
+351 14 25.9521
+351 15 24.6261
+351 16 23.3001
+351 17 21.8793
+351 18 20.3639
+351 19 18.6590
+351 20 17.0488
+351 21 13.4496
+351 22  9.4716
+351 23  6.6301
+351 24  4.9252
+351 25  2.1785
+351 26  0.9472
+351 27  0.3789
+351 28  0.0947
+# pixel 352
+352  1  0.6375
+352  2  2.0717
+352  3  5.4981
+352  4  9.8806
+352  5 15.4584
+352  6 18.8050
+352  7 19.8409
+352  8 20.9564
+352  9 22.2313
+352 10 22.7094
+352 11 22.7094
+352 12 22.5501
+352 13 22.0720
+352 14 21.8329
+352 15 20.7174
+352 16 19.6018
+352 17 18.4066
+352 18 17.1317
+352 19 15.6974
+352 20 14.3428
+352 21 11.3149
+352 22  7.9682
+352 23  5.5778
+352 24  4.1435
+352 25  1.8327
+352 26  0.7968
+352 27  0.3187
+352 28  0.0797
+# pixel 353
+353  1  0.6993
+353  2  2.2729
+353  3  6.0318
+353  4 10.8398
+353  5 16.9591
+353  6 20.6307
+353  7 21.7671
+353  8 22.9910
+353  9 24.3897
+353 10 24.9142
+353 11 24.9142
+353 12 24.7393
+353 13 24.2148
+353 14 23.9526
+353 15 22.7287
+353 16 21.5049
+353 17 20.1936
+353 18 18.7949
+353 19 17.2214
+353 20 15.7353
+353 21 12.4134
+353 22  8.7418
+353 23  6.1193
+353 24  4.5457
+353 25  2.0106
+353 26  0.8742
+353 27  0.3497
+353 28  0.0874
+# pixel 354
+354  1  0.7164
+354  2  2.3282
+354  3  6.1787
+354  4 11.1038
+354  5 17.3721
+354  6 21.1331
+354  7 22.2972
+354  8 23.5508
+354  9 24.9836
+354 10 25.5209
+354 11 25.5209
+354 12 25.3418
+354 13 24.8045
+354 14 24.5359
+354 15 23.2822
+354 16 22.0285
+354 17 20.6853
+354 18 19.2526
+354 19 17.6407
+354 20 16.1185
+354 21 12.7157
+354 22  8.9547
+354 23  6.2683
+354 24  4.6564
+354 25  2.0596
+354 26  0.8955
+354 27  0.3582
+354 28  0.0895
+# pixel 355
+355  1  0.5904
+355  2  1.9188
+355  3  5.0923
+355  4  9.1514
+355  5 14.3176
+355  6 17.4172
+355  7 18.3767
+355  8 19.4099
+355  9 20.5907
+355 10 21.0335
+355 11 21.0335
+355 12 20.8859
+355 13 20.4431
+355 14 20.2217
+355 15 19.1885
+355 16 18.1553
+355 17 17.0482
+355 18 15.8674
+355 19 14.5390
+355 20 13.2843
+355 21 10.4799
+355 22  7.3802
+355 23  5.1661
+355 24  3.8377
+355 25  1.6974
+355 26  0.7380
+355 27  0.2952
+355 28  0.0738
+# pixel 356
+356  1  0.6983
+356  2  2.2695
+356  3  6.0228
+356  4 10.8236
+356  5 16.9337
+356  6 20.5998
+356  7 21.7345
+356  8 22.9566
+356  9 24.3532
+356 10 24.8769
+356 11 24.8769
+356 12 24.7023
+356 13 24.1786
+356 14 23.9167
+356 15 22.6947
+356 16 21.4727
+356 17 20.1634
+356 18 18.7668
+356 19 17.1956
+356 20 15.7117
+356 21 12.3948
+356 22  8.7287
+356 23  6.1101
+356 24  4.5389
+356 25  2.0076
+356 26  0.8729
+356 27  0.3491
+356 28  0.0873
+# pixel 357
+357  1  0.8164
+357  2  2.6531
+357  3  7.0410
+357  4 12.6534
+357  5 19.7965
+357  6 24.0823
+357  7 25.4089
+357  8 26.8375
+357  9 28.4702
+357 10 29.0825
+357 11 29.0825
+357 12 28.8784
+357 13 28.2661
+357 14 27.9600
+357 15 26.5314
+357 16 25.1028
+357 17 23.5721
+357 18 21.9394
+357 19 20.1026
+357 20 18.3679
+357 21 14.4902
+357 22 10.2044
+357 23  7.1431
+357 24  5.3063
+357 25  2.3470
+357 26  1.0204
+357 27  0.4082
+357 28  0.1020
+# pixel 358
+358  1  0.7512
+358  2  2.4413
+358  3  6.4788
+358  4 11.6431
+358  5 18.2158
+358  6 22.1594
+358  7 23.3801
+358  8 24.6946
+358  9 26.1970
+358 10 26.7603
+358 11 26.7603
+358 12 26.5725
+358 13 26.0092
+358 14 25.7275
+358 15 24.4129
+358 16 23.0984
+358 17 21.6900
+358 18 20.1876
+358 19 18.4975
+358 20 16.9013
+358 21 13.3332
+358 22  9.3896
+358 23  6.5727
+358 24  4.8826
+358 25  2.1596
+358 26  0.9390
+358 27  0.3756
+358 28  0.0939
+# pixel 359
+359  1  0.7418
+359  2  2.4110
+359  3  6.3983
+359  4 11.4984
+359  5 17.9895
+359  6 21.8841
+359  7 23.0896
+359  8 24.3878
+359  9 25.8714
+359 10 26.4278
+359 11 26.4278
+359 12 26.2424
+359 13 25.6860
+359 14 25.4078
+359 15 24.1096
+359 16 22.8114
+359 17 21.4204
+359 18 19.9368
+359 19 18.2677
+359 20 16.6913
+359 21 13.1675
+359 22  9.2729
+359 23  6.4910
+359 24  4.8219
+359 25  2.1328
+359 26  0.9273
+359 27  0.3709
+359 28  0.0927
+# pixel 360
+360  1  0.6856
+360  2  2.2282
+360  3  5.9133
+360  4 10.6268
+360  5 16.6258
+360  6 20.2252
+360  7 21.3393
+360  8 22.5391
+360  9 23.9102
+360 10 24.4244
+360 11 24.4244
+360 12 24.2530
+360 13 23.7388
+360 14 23.4817
+360 15 22.2820
+360 16 21.0822
+360 17 19.7967
+360 18 18.4255
+360 19 16.8829
+360 20 15.4260
+360 21 12.1694
+360 22  8.5700
+360 23  5.9990
+360 24  4.4564
+360 25  1.9711
+360 26  0.8570
+360 27  0.3428
+360 28  0.0857
+# pixel 361
+361  1  0.7519
+361  2  2.4436
+361  3  6.4850
+361  4 11.6542
+361  5 18.2332
+361  6 22.1806
+361  7 23.4024
+361  8 24.7182
+361  9 26.2219
+361 10 26.7859
+361 11 26.7859
+361 12 26.5979
+361 13 26.0340
+361 14 25.7520
+361 15 24.4362
+361 16 23.1204
+361 17 21.7106
+361 18 20.2069
+361 19 18.5151
+361 20 16.9174
+361 21 13.3459
+361 22  9.3985
+361 23  6.5790
+361 24  4.8872
+361 25  2.1617
+361 26  0.9399
+361 27  0.3759
+361 28  0.0940
+# pixel 362
+362  1  0.8259
+362  2  2.6841
+362  3  7.1231
+362  4 12.8010
+362  5 20.0273
+362  6 24.3632
+362  7 25.7052
+362  8 27.1505
+362  9 28.8022
+362 10 29.4216
+362 11 29.4216
+362 12 29.2151
+362 13 28.5957
+362 14 28.2860
+362 15 26.8408
+362 16 25.3955
+362 17 23.8470
+362 18 22.1953
+362 19 20.3370
+362 20 18.5821
+362 21 14.6592
+362 22 10.3234
+362 23  7.2264
+362 24  5.3682
+362 25  2.3744
+362 26  1.0323
+362 27  0.4129
+362 28  0.1032
+# pixel 363
+363  1  0.6874
+363  2  2.2342
+363  3  5.9291
+363  4 10.6552
+363  5 16.6703
+363  6 20.2793
+363  7 21.3964
+363  8 22.5994
+363  9 23.9742
+363 10 24.4898
+363 11 24.4898
+363 12 24.3179
+363 13 23.8024
+363 14 23.5446
+363 15 22.3416
+363 16 21.1386
+363 17 19.8496
+363 18 18.4748
+363 19 16.9280
+363 20 15.4672
+363 21 12.2019
+363 22  8.5929
+363 23  6.0150
+363 24  4.4683
+363 25  1.9764
+363 26  0.8593
+363 27  0.3437
+363 28  0.0859
+# pixel 364
+364  1  0.7677
+364  2  2.4952
+364  3  6.6218
+364  4 11.9000
+364  5 18.6177
+364  6 22.6484
+364  7 23.8960
+364  8 25.2395
+364  9 26.7750
+364 10 27.3508
+364 11 27.3508
+364 12 27.1589
+364 13 26.5831
+364 14 26.2952
+364 15 24.9516
+364 16 23.6081
+364 17 22.1686
+364 18 20.6331
+364 19 18.9056
+364 20 17.2742
+364 21 13.6274
+364 22  9.5968
+364 23  6.7177
+364 24  4.9903
+364 25  2.2073
+364 26  0.9597
+364 27  0.3839
+364 28  0.0960
+# pixel 365
+365  1  0.7770
+365  2  2.5252
+365  3  6.7014
+365  4 12.0432
+365  5 18.8417
+365  6 22.9209
+365  7 24.1835
+365  8 25.5432
+365  9 27.0971
+365 10 27.6799
+365 11 27.6799
+365 12 27.4856
+365 13 26.9029
+365 14 26.6115
+365 15 25.2518
+365 16 23.8921
+365 17 22.4353
+365 18 20.8813
+365 19 19.1331
+365 20 17.4820
+365 21 13.7914
+365 22  9.7122
+365 23  6.7986
+365 24  5.0504
+365 25  2.2338
+365 26  0.9712
+365 27  0.3885
+365 28  0.0971
+# pixel 366
+366  1  0.7059
+366  2  2.2943
+366  3  6.0888
+366  4 10.9422
+366  5 17.1193
+366  6 20.8255
+366  7 21.9727
+366  8 23.2081
+366  9 24.6200
+366 10 25.1494
+366 11 25.1494
+366 12 24.9730
+366 13 24.4435
+366 14 24.1788
+366 15 22.9434
+366 16 21.7079
+366 17 20.3843
+366 18 18.9724
+366 19 17.3840
+366 20 15.8839
+366 21 12.5306
+366 22  8.8244
+366 23  6.1771
+366 24  4.5887
+366 25  2.0296
+366 26  0.8824
+366 27  0.3530
+366 28  0.0882
+# pixel 367
+367  1  0.7488
+367  2  2.4335
+367  3  6.4581
+367  4 11.6059
+367  5 18.1577
+367  6 22.0887
+367  7 23.3055
+367  8 24.6158
+367  9 26.1133
+367 10 26.6749
+367 11 26.6749
+367 12 26.4877
+367 13 25.9262
+367 14 25.6454
+367 15 24.3350
+367 16 23.0247
+367 17 21.6207
+367 18 20.1232
+367 19 18.4385
+367 20 16.8473
+367 21 13.2907
+367 22  9.3596
+367 23  6.5517
+367 24  4.8670
+367 25  2.1527
+367 26  0.9360
+367 27  0.3744
+367 28  0.0936
+# pixel 368
+368  1  0.8591
+368  2  2.7922
+368  3  7.4100
+368  4 13.3166
+368  5 20.8340
+368  6 25.3445
+368  7 26.7406
+368  8 28.2441
+368  9 29.9623
+368 10 30.6067
+368 11 30.6067
+368 12 30.3919
+368 13 29.7475
+368 14 29.4254
+368 15 27.9219
+368 16 26.4184
+368 17 24.8075
+368 18 23.0892
+368 19 21.1562
+368 20 19.3305
+368 21 15.2496
+368 22 10.7392
+368 23  7.5174
+368 24  5.5844
+368 25  2.4700
+368 26  1.0739
+368 27  0.4296
+368 28  0.1074
+# pixel 369
+369  1  0.7859
+369  2  2.5540
+369  3  6.7780
+369  4 12.1807
+369  5 19.0569
+369  6 23.1826
+369  7 24.4596
+369  8 25.8349
+369  9 27.4066
+369 10 27.9960
+369 11 27.9960
+369 12 27.7995
+369 13 27.2101
+369 14 26.9154
+369 15 25.5402
+369 16 24.1649
+369 17 22.6915
+369 18 21.1198
+369 19 19.3516
+369 20 17.6817
+369 21 13.9489
+369 22  9.8231
+369 23  6.8762
+369 24  5.1080
+369 25  2.2593
+369 26  0.9823
+369 27  0.3929
+369 28  0.0982
+# pixel 370
+370  1  0.7356
+370  2  2.3906
+370  3  6.3442
+370  4 11.4012
+370  5 17.8373
+370  6 21.6990
+370  7 22.8943
+370  8 24.1816
+370  9 25.6527
+370 10 26.2044
+370 11 26.2044
+370 12 26.0205
+370 13 25.4688
+370 14 25.1930
+370 15 23.9057
+370 16 22.6185
+370 17 21.2393
+370 18 19.7682
+370 19 18.1132
+370 20 16.5501
+370 21 13.0562
+370 22  9.1945
+370 23  6.4362
+370 24  4.7811
+370 25  2.1147
+370 26  0.9195
+370 27  0.3678
+370 28  0.0919
+# pixel 371
+371  1  0.7762
+371  2  2.5227
+371  3  6.6948
+371  4 12.0312
+371  5 18.8231
+371  6 22.8982
+371  7 24.1595
+371  8 25.5179
+371  9 27.0703
+371 10 27.6525
+371 11 27.6525
+371 12 27.4584
+371 13 26.8763
+371 14 26.5852
+371 15 25.2268
+371 16 23.8684
+371 17 22.4131
+371 18 20.8606
+371 19 19.1142
+371 20 17.4647
+371 21 13.7777
+371 22  9.7026
+371 23  6.7918
+371 24  5.0454
+371 25  2.2316
+371 26  0.9703
+371 27  0.3881
+371 28  0.0970
+# pixel 372
+372  1  0.7466
+372  2  2.4264
+372  3  6.4393
+372  4 11.5721
+372  5 18.1047
+372  6 22.0243
+372  7 23.2375
+372  8 24.5440
+372  9 26.0372
+372 10 26.5971
+372 11 26.5971
+372 12 26.4105
+372 13 25.8505
+372 14 25.5706
+372 15 24.2640
+372 16 22.9575
+372 17 21.5577
+372 18 20.0645
+372 19 18.3847
+372 20 16.7982
+372 21 13.2519
+372 22  9.3323
+372 23  6.5326
+372 24  4.8528
+372 25  2.1464
+372 26  0.9332
+372 27  0.3733
+372 28  0.0933
+# pixel 373
+373  1  0.7809
+373  2  2.5379
+373  3  6.7353
+373  4 12.1039
+373  5 18.9368
+373  6 23.0365
+373  7 24.3055
+373  8 25.6720
+373  9 27.2338
+373 10 27.8195
+373 11 27.8195
+373 12 27.6243
+373 13 27.0386
+373 14 26.7458
+373 15 25.3792
+373 16 24.0126
+373 17 22.5484
+373 18 20.9866
+373 19 19.2296
+373 20 17.5702
+373 21 13.8609
+373 22  9.7612
+373 23  6.8329
+373 24  5.0758
+373 25  2.2451
+373 26  0.9761
+373 27  0.3904
+373 28  0.0976
+# pixel 374
+374  1  0.7119
+374  2  2.3137
+374  3  6.1403
+374  4 11.0347
+374  5 17.2640
+374  6 21.0016
+374  7 22.1584
+374  8 23.4043
+374  9 24.8281
+374 10 25.3621
+374 11 25.3621
+374 12 25.1841
+374 13 24.6501
+374 14 24.3832
+374 15 23.1373
+374 16 21.8915
+374 17 20.5566
+374 18 19.1328
+374 19 17.5310
+374 20 16.0181
+374 21 12.6365
+374 22  8.8990
+374 23  6.2293
+374 24  4.6275
+374 25  2.0468
+374 26  0.8899
+374 27  0.3560
+374 28  0.0890
+# pixel 375
+375  1  0.7845
+375  2  2.5498
+375  3  6.7667
+375  4 12.1604
+375  5 19.0252
+375  6 23.1440
+375  7 24.4189
+375  8 25.7918
+375  9 27.3609
+375 10 27.9493
+375 11 27.9493
+375 12 27.7532
+375 13 27.1648
+375 14 26.8706
+375 15 25.4976
+375 16 24.1247
+375 17 22.6537
+375 18 21.0846
+375 19 19.3194
+375 20 17.6522
+375 21 13.9256
+375 22  9.8068
+375 23  6.8647
+375 24  5.0995
+375 25  2.2556
+375 26  0.9807
+375 27  0.3923
+375 28  0.0981
+# pixel 376
+376  1  0.7759
+376  2  2.5218
+376  3  6.6924
+376  4 12.0269
+376  5 18.8164
+376  6 22.8900
+376  7 24.1509
+376  8 25.5088
+376  9 27.0606
+376 10 27.6426
+376 11 27.6426
+376 12 27.4486
+376 13 26.8666
+376 14 26.5757
+376 15 25.2178
+376 16 23.8599
+376 17 22.4050
+376 18 20.8532
+376 19 19.1073
+376 20 17.4585
+376 21 13.7728
+376 22  9.6992
+376 23  6.7894
+376 24  5.0436
+376 25  2.2308
+376 26  0.9699
+376 27  0.3880
+376 28  0.0970
+# pixel 377
+377  1  0.8187
+377  2  2.6608
+377  3  7.0614
+377  4 12.6900
+377  5 19.8537
+377  6 24.1519
+377  7 25.4823
+377  8 26.9151
+377  9 28.5525
+377 10 29.1665
+377 11 29.1665
+377 12 28.9618
+377 13 28.3478
+377 14 28.0408
+377 15 26.6080
+377 16 25.1753
+377 17 23.6402
+377 18 22.0028
+377 19 20.1607
+377 20 18.4210
+377 21 14.5321
+377 22 10.2339
+377 23  7.1637
+377 24  5.3216
+377 25  2.3538
+377 26  1.0234
+377 27  0.4094
+377 28  0.1023
+# pixel 378
+378  1  0.7817
+378  2  2.5405
+378  3  6.7422
+378  4 12.1165
+378  5 18.9564
+378  6 23.0604
+378  7 24.3306
+378  8 25.6986
+378  9 27.2620
+378 10 27.8483
+378 11 27.8483
+378 12 27.6529
+378 13 27.0666
+378 14 26.7735
+378 15 25.4055
+378 16 24.0375
+378 17 22.5718
+378 18 21.0084
+378 19 19.2495
+378 20 17.5884
+378 21 13.8753
+378 22  9.7713
+378 23  6.8399
+378 24  5.0811
+378 25  2.2474
+378 26  0.9771
+378 27  0.3909
+378 28  0.0977
+# pixel 379
+379  1  0.8309
+379  2  2.7005
+379  3  7.1667
+379  4 12.8793
+379  5 20.1499
+379  6 24.5122
+379  7 25.8625
+379  8 27.3166
+379  9 28.9785
+379 10 29.6016
+379 11 29.6016
+379 12 29.3939
+379 13 28.7707
+379 14 28.4591
+379 15 27.0050
+379 16 25.5509
+379 17 23.9929
+379 18 22.3311
+379 19 20.4615
+379 20 18.6958
+379 21 14.7489
+379 22 10.3865
+379 23  7.2706
+379 24  5.4010
+379 25  2.3889
+379 26  1.0387
+379 27  0.4155
+379 28  0.1039
+# pixel 380
+380  1  0.7905
+380  2  2.5692
+380  3  6.8183
+380  4 12.2531
+380  5 19.1702
+380  6 23.3204
+380  7 24.6050
+380  8 25.9884
+380  9 27.5695
+380 10 28.1624
+380 11 28.1624
+380 12 27.9647
+380 13 27.3718
+380 14 27.0754
+380 15 25.6920
+380 16 24.3086
+380 17 22.8263
+380 18 21.2453
+380 19 19.4666
+380 20 17.7868
+380 21 14.0318
+380 22  9.8815
+380 23  6.9171
+380 24  5.1384
+380 25  2.2728
+380 26  0.9882
+380 27  0.3953
+380 28  0.0988
+# pixel 381
+381  1  0.5927
+381  2  1.9262
+381  3  5.1117
+381  4  9.1863
+381  5 14.3721
+381  6 17.4836
+381  7 18.4466
+381  8 19.4838
+381  9 20.6691
+381 10 21.1136
+381 11 21.1136
+381 12 20.9655
+381 13 20.5210
+381 14 20.2987
+381 15 19.2616
+381 16 18.2244
+381 17 17.1131
+381 18 15.9278
+381 19 14.5943
+381 20 13.3349
+381 21 10.5198
+381 22  7.4083
+381 23  5.1858
+381 24  3.8523
+381 25  1.7039
+381 26  0.7408
+381 27  0.2963
+381 28  0.0741
+# pixel 382
+382  1  0.6504
+382  2  2.1137
+382  3  5.6093
+382  4 10.0805
+382  5 15.7711
+382  6 19.1855
+382  7 20.2423
+382  8 21.3804
+382  9 22.6811
+382 10 23.1689
+382 11 23.1689
+382 12 23.0063
+382 13 22.5185
+382 14 22.2746
+382 15 21.1365
+382 16 19.9984
+382 17 18.7790
+382 18 17.4783
+382 19 16.0150
+382 20 14.6330
+382 21 11.5438
+382 22  8.1294
+382 23  5.6906
+382 24  4.2273
+382 25  1.8698
+382 26  0.8129
+382 27  0.3252
+382 28  0.0813
+# pixel 383
+383  1  0.7500
+383  2  2.4375
+383  3  6.4687
+383  4 11.6248
+383  5 18.1872
+383  6 22.1247
+383  7 23.3434
+383  8 24.6559
+383  9 26.1559
+383 10 26.7184
+383 11 26.7184
+383 12 26.5309
+383 13 25.9684
+383 14 25.6871
+383 15 24.3746
+383 16 23.0622
+383 17 21.6559
+383 18 20.1560
+383 19 18.4685
+383 20 16.8748
+383 21 13.3123
+383 22  9.3749
+383 23  6.5624
+383 24  4.8749
+383 25  2.1562
+383 26  0.9375
+383 27  0.3750
+383 28  0.0937
+# pixel 384
+384  1  0.6936
+384  2  2.2542
+384  3  5.9824
+384  4 10.7510
+384  5 16.8200
+384  6 20.4615
+384  7 21.5886
+384  8 22.8024
+384  9 24.1897
+384 10 24.7099
+384 11 24.7099
+384 12 24.5365
+384 13 24.0163
+384 14 23.7561
+384 15 22.5423
+384 16 21.3285
+384 17 20.0280
+384 18 18.6408
+384 19 17.0802
+384 20 15.6062
+384 21 12.3116
+384 22  8.6701
+384 23  6.0691
+384 24  4.5085
+384 25  1.9941
+384 26  0.8670
+384 27  0.3468
+384 28  0.0867
+# pixel 385
+385  1  0.6560
+385  2  2.1319
+385  3  5.6578
+385  4 10.1676
+385  5 15.9073
+385  6 19.3512
+385  7 20.4171
+385  8 21.5651
+385  9 22.8770
+385 10 23.3690
+385 11 23.3690
+385 12 23.2050
+385 13 22.7130
+385 14 22.4670
+385 15 21.3191
+385 16 20.1711
+385 17 18.9412
+385 18 17.6292
+385 19 16.1533
+385 20 14.7594
+385 21 11.6435
+385 22  8.1996
+385 23  5.7397
+385 24  4.2638
+385 25  1.8859
+385 26  0.8200
+385 27  0.3280
+385 28  0.0820
+# pixel 386
+386  1  0.7513
+386  2  2.4418
+386  3  6.4801
+386  4 11.6454
+386  5 18.2195
+386  6 22.1639
+386  7 23.3848
+386  8 24.6996
+386  9 26.2022
+386 10 26.7657
+386 11 26.7657
+386 12 26.5779
+386 13 26.0144
+386 14 25.7327
+386 15 24.4178
+386 16 23.1030
+386 17 21.6943
+386 18 20.1917
+386 19 18.5012
+386 20 16.9047
+386 21 13.3359
+386 22  9.3915
+386 23  6.5740
+386 24  4.8836
+386 25  2.1600
+386 26  0.9391
+386 27  0.3757
+386 28  0.0939
+# pixel 387
+387  1  0.8174
+387  2  2.6564
+387  3  7.0498
+387  4 12.6691
+387  5 19.8211
+387  6 24.1122
+387  7 25.4404
+387  8 26.8708
+387  9 28.5056
+387 10 29.1186
+387 11 29.1186
+387 12 28.9142
+387 13 28.3012
+387 14 27.9947
+387 15 26.5643
+387 16 25.1339
+387 17 23.6014
+387 18 21.9667
+387 19 20.1276
+387 20 18.3907
+387 21 14.5082
+387 22 10.2170
+387 23  7.1519
+387 24  5.3129
+387 25  2.3499
+387 26  1.0217
+387 27  0.4087
+387 28  0.1022
+# pixel 388
+388  1  0.7019
+388  2  2.2813
+388  3  6.0541
+388  4 10.8798
+388  5 17.0217
+388  6 20.7068
+388  7 21.8474
+388  8 23.0758
+388  9 24.4796
+388 10 25.0061
+388 11 25.0061
+388 12 24.8306
+388 13 24.3041
+388 14 24.0409
+388 15 22.8125
+388 16 21.5842
+388 17 20.2681
+388 18 18.8642
+388 19 17.2849
+388 20 15.7933
+388 21 12.4592
+388 22  8.7741
+388 23  6.1418
+388 24  4.5625
+388 25  2.0180
+388 26  0.8774
+388 27  0.3510
+388 28  0.0877
+# pixel 389
+389  1  0.6690
+389  2  2.1742
+389  3  5.7701
+389  4 10.3694
+389  5 16.2231
+389  6 19.7354
+389  7 20.8225
+389  8 21.9932
+389  9 23.3312
+389 10 23.8330
+389 11 23.8330
+389 12 23.6657
+389 13 23.1640
+389 14 22.9131
+389 15 21.7424
+389 16 20.5716
+389 17 19.3172
+389 18 17.9793
+389 19 16.4740
+389 20 15.0524
+389 21 11.8747
+389 22  8.3624
+389 23  5.8537
+389 24  4.3485
+389 25  1.9234
+389 26  0.8362
+389 27  0.3345
+389 28  0.0836
+# pixel 390
+390  1  0.7634
+390  2  2.4812
+390  3  6.5846
+390  4 11.8332
+390  5 18.5133
+390  6 22.5213
+390  7 23.7619
+390  8 25.0979
+390  9 26.6248
+390 10 27.1973
+390 11 27.1973
+390 12 27.0065
+390 13 26.4339
+390 14 26.1476
+390 15 24.8116
+390 16 23.4756
+390 17 22.0442
+390 18 20.5173
+390 19 18.7996
+390 20 17.1773
+390 21 13.5510
+390 22  9.5429
+390 23  6.6800
+390 24  4.9623
+390 25  2.1949
+390 26  0.9543
+390 27  0.3817
+390 28  0.0954
+# pixel 391
+391  1  0.6594
+391  2  2.1431
+391  3  5.6875
+391  4 10.2210
+391  5 15.9909
+391  6 19.4529
+391  7 20.5244
+391  8 21.6784
+391  9 22.9973
+391 10 23.4918
+391 11 23.4918
+391 12 23.3270
+391 13 22.8324
+391 14 22.5851
+391 15 21.4311
+391 16 20.2772
+391 17 19.0407
+391 18 17.7219
+391 19 16.2382
+391 20 14.8369
+391 21 11.7047
+391 22  8.2427
+391 23  5.7699
+391 24  4.2862
+391 25  1.8958
+391 26  0.8243
+391 27  0.3297
+391 28  0.0824
+# pixel 392
+392  1  0.6688
+392  2  2.1735
+392  3  5.7683
+392  4 10.3661
+392  5 16.2180
+392  6 19.7291
+392  7 20.8159
+392  8 21.9863
+392  9 23.3238
+392 10 23.8254
+392 11 23.8254
+392 12 23.6582
+392 13 23.1566
+392 14 22.9058
+392 15 21.7355
+392 16 20.5651
+392 17 19.3111
+392 18 17.9736
+392 19 16.4688
+392 20 15.0476
+392 21 11.8709
+392 22  8.3598
+392 23  5.8519
+392 24  4.3471
+392 25  1.9228
+392 26  0.8360
+392 27  0.3344
+392 28  0.0836
+# pixel 393
+393  1  0.6374
+393  2  2.0716
+393  3  5.4977
+393  4  9.8800
+393  5 15.4574
+393  6 18.8038
+393  7 19.8396
+393  8 20.9551
+393  9 22.2300
+393 10 22.7080
+393 11 22.7080
+393 12 22.5487
+393 13 22.0706
+393 14 21.8316
+393 15 20.7161
+393 16 19.6006
+393 17 18.4055
+393 18 17.1306
+393 19 15.6964
+393 20 14.3419
+393 21 11.3142
+393 22  7.9677
+393 23  5.5774
+393 24  4.1432
+393 25  1.8326
+393 26  0.7968
+393 27  0.3187
+393 28  0.0797
+# pixel 394
+394  1  0.7970
+394  2  2.5902
+394  3  6.8740
+394  4 12.3533
+394  5 19.3269
+394  6 23.5111
+394  7 24.8062
+394  8 26.2009
+394  9 27.7949
+394 10 28.3926
+394 11 28.3926
+394 12 28.1934
+394 13 27.5957
+394 14 27.2968
+394 15 25.9021
+394 16 24.5073
+394 17 23.0130
+394 18 21.4190
+394 19 19.6258
+394 20 17.9322
+394 21 14.1465
+394 22  9.9623
+394 23  6.9736
+394 24  5.1804
+394 25  2.2913
+394 26  0.9962
+394 27  0.3985
+394 28  0.0996
+# pixel 395
+395  1  0.6902
+395  2  2.2430
+395  3  5.9526
+395  4 10.6974
+395  5 16.7362
+395  6 20.3595
+395  7 21.4810
+395  8 22.6888
+395  9 24.0691
+395 10 24.5867
+395 11 24.5867
+395 12 24.4142
+395 13 23.8966
+395 14 23.6378
+395 15 22.4300
+395 16 21.2222
+395 17 19.9282
+395 18 18.5479
+395 19 16.9950
+395 20 15.5285
+395 21 12.2502
+395 22  8.6269
+395 23  6.0388
+395 24  4.4860
+395 25  1.9842
+395 26  0.8627
+395 27  0.3451
+395 28  0.0863
+# pixel 396
+396  1  0.6889
+396  2  2.2389
+396  3  5.9417
+396  4 10.6778
+396  5 16.7056
+396  6 20.3222
+396  7 21.4417
+396  8 22.6472
+396  9 24.0250
+396 10 24.5417
+396 11 24.5417
+396 12 24.3695
+396 13 23.8528
+396 14 23.5945
+396 15 22.3889
+396 16 21.1834
+396 17 19.8917
+396 18 18.5139
+396 19 16.9639
+396 20 15.5000
+396 21 12.2278
+396 22  8.6111
+396 23  6.0278
+396 24  4.4778
+396 25  1.9806
+396 26  0.8611
+396 27  0.3444
+396 28  0.0861
+# pixel 397
+397  1  0.7521
+397  2  2.4443
+397  3  6.4868
+397  4 11.6574
+397  5 18.2382
+397  6 22.1867
+397  7 23.4088
+397  8 24.7250
+397  9 26.2292
+397 10 26.7933
+397 11 26.7933
+397 12 26.6052
+397 13 26.0412
+397 14 25.7591
+397 15 24.4430
+397 16 23.1268
+397 17 21.7166
+397 18 20.2125
+397 19 18.5203
+397 20 16.9221
+397 21 13.3496
+397 22  9.4011
+397 23  6.5808
+397 24  4.8886
+397 25  2.1623
+397 26  0.9401
+397 27  0.3760
+397 28  0.0940
+# pixel 398
+398  1  0.7577
+398  2  2.4625
+398  3  6.5350
+398  4 11.7441
+398  5 18.3738
+398  6 22.3516
+398  7 23.5828
+398  8 24.9088
+398  9 26.4241
+398 10 26.9924
+398 11 26.9924
+398 12 26.8030
+398 13 26.2347
+398 14 25.9506
+398 15 24.6246
+398 16 23.2987
+398 17 21.8780
+398 18 20.3627
+398 19 18.6579
+398 20 17.0478
+398 21 13.4488
+398 22  9.4710
+398 23  6.6297
+398 24  4.9249
+398 25  2.1783
+398 26  0.9471
+398 27  0.3788
+398 28  0.0947
+# pixel 399
+399  1  0.6545
+399  2  2.1272
+399  3  5.6451
+399  4 10.1449
+399  5 15.8718
+399  6 19.3080
+399  7 20.3716
+399  8 21.5170
+399  9 22.8260
+399 10 23.3169
+399 11 23.3169
+399 12 23.1532
+399 13 22.6624
+399 14 22.4169
+399 15 21.2715
+399 16 20.1261
+399 17 18.8989
+399 18 17.5899
+399 19 16.1173
+399 20 14.7264
+399 21 11.6175
+399 22  8.1814
+399 23  5.7270
+399 24  4.2543
+399 25  1.8817
+399 26  0.8181
+399 27  0.3273
+399 28  0.0818
+# pixel 400
+400  1  0.6868
+400  2  2.2320
+400  3  5.9234
+400  4 10.6449
+400  5 16.6541
+400  6 20.2596
+400  7 21.3756
+400  8 22.5775
+400  9 23.9510
+400 10 24.4661
+400 11 24.4661
+400 12 24.2944
+400 13 23.7793
+400 14 23.5218
+400 15 22.3199
+400 16 21.1181
+400 17 19.8304
+400 18 18.4569
+400 19 16.9116
+400 20 15.4522
+400 21 12.1901
+400 22  8.5846
+400 23  6.0092
+400 24  4.4640
+400 25  1.9745
+400 26  0.8585
+400 27  0.3434
+400 28  0.0858
+# pixel 401
+401  1  0.7070
+401  2  2.2977
+401  3  6.0979
+401  4 10.9585
+401  5 17.1447
+401  6 20.8564
+401  7 22.0053
+401  8 23.2426
+401  9 24.6565
+401 10 25.1868
+401 11 25.1868
+401 12 25.0100
+401 13 24.4798
+401 14 24.2147
+401 15 22.9774
+401 16 21.7402
+401 17 20.4146
+401 18 19.0006
+401 19 17.4098
+401 20 15.9075
+401 21 12.5492
+401 22  8.8375
+401 23  6.1862
+401 24  4.5955
+401 25  2.0326
+401 26  0.8837
+401 27  0.3535
+401 28  0.0884
+# pixel 402
+402  1  0.6789
+402  2  2.2065
+402  3  5.8556
+402  4 10.5231
+402  5 16.4636
+402  6 20.0278
+402  7 21.1311
+402  8 22.3192
+402  9 23.6770
+402 10 24.1862
+402 11 24.1862
+402 12 24.0164
+402 13 23.5073
+402 14 23.2527
+402 15 22.0646
+402 16 20.8765
+402 17 19.6035
+402 18 18.2457
+402 19 16.7182
+402 20 15.2755
+402 21 12.0507
+402 22  8.4864
+402 23  5.9405
+402 24  4.4129
+402 25  1.9519
+402 26  0.8486
+402 27  0.3395
+402 28  0.0849
+# pixel 403
+403  1  0.6559
+403  2  2.1315
+403  3  5.6568
+403  4 10.1658
+403  5 15.9045
+403  6 19.3478
+403  7 20.4135
+403  8 21.5613
+403  9 22.8730
+403 10 23.3649
+403 11 23.3649
+403 12 23.2009
+403 13 22.7090
+403 14 22.4631
+403 15 21.3154
+403 16 20.1676
+403 17 18.9379
+403 18 17.6262
+403 19 16.1505
+403 20 14.7568
+403 21 11.6415
+403 22  8.1982
+403 23  5.7387
+403 24  4.2631
+403 25  1.8856
+403 26  0.8198
+403 27  0.3279
+403 28  0.0820
+# pixel 404
+404  1  0.7763
+404  2  2.5230
+404  3  6.6958
+404  4 12.0330
+404  5 18.8258
+404  6 22.9014
+404  7 24.1630
+404  8 25.5215
+404  9 27.0742
+404 10 27.6564
+404 11 27.6564
+404 12 27.4623
+404 13 26.8801
+404 14 26.5890
+404 15 25.2304
+404 16 23.8718
+404 17 22.4162
+404 18 20.8636
+404 19 19.1169
+404 20 17.4672
+404 21 13.7797
+404 22  9.7040
+404 23  6.7928
+404 24  5.0461
+404 25  2.2319
+404 26  0.9704
+404 27  0.3882
+404 28  0.0970
+# pixel 405
+405  1  0.7755
+405  2  2.5202
+405  3  6.6883
+405  4 12.0195
+405  5 18.8047
+405  6 22.8758
+405  7 24.1359
+405  8 25.4929
+405  9 27.0439
+405 10 27.6254
+405 11 27.6254
+405 12 27.4316
+405 13 26.8500
+405 14 26.5592
+405 15 25.2022
+405 16 23.8451
+405 17 22.3911
+405 18 20.8402
+405 19 19.0955
+405 20 17.4476
+405 21 13.7643
+405 22  9.6931
+405 23  6.7852
+405 24  5.0404
+405 25  2.2294
+405 26  0.9693
+405 27  0.3877
+405 28  0.0969
+# pixel 406
+406  1  0.6843
+406  2  2.2241
+406  3  5.9024
+406  4 10.6072
+406  5 16.5952
+406  6 20.1879
+406  7 21.3000
+406  8 22.4976
+406  9 23.8662
+406 10 24.3795
+406 11 24.3795
+406 12 24.2084
+406 13 23.6952
+406 14 23.4385
+406 15 22.2409
+406 16 21.0434
+406 17 19.7602
+406 18 18.3915
+406 19 16.8518
+406 20 15.3976
+406 21 12.1470
+406 22  8.5542
+406 23  5.9879
+406 24  4.4482
+406 25  1.9675
+406 26  0.8554
+406 27  0.3422
+406 28  0.0855
+# pixel 407
+407  1  0.7684
+407  2  2.4975
+407  3  6.6279
+407  4 11.9110
+407  5 18.6349
+407  6 22.6693
+407  7 23.9180
+407  8 25.2628
+407  9 26.7997
+407 10 27.3760
+407 11 27.3760
+407 12 27.1839
+407 13 26.6076
+407 14 26.3194
+407 15 24.9746
+407 16 23.6298
+407 17 22.1890
+407 18 20.6521
+407 19 18.9231
+407 20 17.2901
+407 21 13.6400
+407 22  9.6056
+407 23  6.7239
+407 24  4.9949
+407 25  2.2093
+407 26  0.9606
+407 27  0.3842
+407 28  0.0961
+# pixel 408
+408  1  0.6624
+408  2  2.1528
+408  3  5.7132
+408  4 10.2673
+408  5 16.0633
+408  6 19.5409
+408  7 20.6174
+408  8 21.7766
+408  9 23.1014
+408 10 23.5982
+408 11 23.5982
+408 12 23.4326
+408 13 22.9358
+408 14 22.6874
+408 15 21.5282
+408 16 20.3690
+408 17 19.1269
+408 18 17.8021
+408 19 16.3117
+408 20 14.9041
+408 21 11.7577
+408 22  8.2801
+408 23  5.7960
+408 24  4.3056
+408 25  1.9044
+408 26  0.8280
+408 27  0.3312
+408 28  0.0828
+# pixel 409
+409  1  0.6870
+409  2  2.2327
+409  3  5.9252
+409  4 10.6482
+409  5 16.6593
+409  6 20.2659
+409  7 21.3823
+409  8 22.5845
+409  9 23.9585
+409 10 24.4737
+409 11 24.4737
+409 12 24.3020
+409 13 23.7867
+409 14 23.5291
+409 15 22.3269
+409 16 21.1247
+409 17 19.8366
+409 18 18.4626
+409 19 16.9169
+409 20 15.4571
+409 21 12.1939
+409 22  8.5873
+409 23  6.0111
+409 24  4.4654
+409 25  1.9751
+409 26  0.8587
+409 27  0.3435
+409 28  0.0859
+# pixel 410
+410  1  0.7552
+410  2  2.4543
+410  3  6.5134
+410  4 11.7052
+410  5 18.3130
+410  6 22.2776
+410  7 23.5048
+410  8 24.8264
+410  9 26.3367
+410 10 26.9031
+410 11 26.9031
+410 12 26.7143
+410 13 26.1479
+410 14 25.8647
+410 15 24.5432
+410 16 23.2216
+410 17 21.8057
+410 18 20.2953
+410 19 18.5962
+410 20 16.9914
+410 21 13.4043
+410 22  9.4397
+410 23  6.6078
+410 24  4.9086
+410 25  2.1711
+410 26  0.9440
+410 27  0.3776
+410 28  0.0944
+# pixel 411
+411  1  0.7821
+411  2  2.5418
+411  3  6.7454
+411  4 12.1222
+411  5 18.9654
+411  6 23.0713
+411  7 24.3422
+411  8 25.7108
+411  9 27.2750
+411 10 27.8615
+411 11 27.8615
+411 12 27.6660
+411 13 27.0795
+411 14 26.7862
+411 15 25.4175
+411 16 24.0489
+411 17 22.5825
+411 18 21.0183
+411 19 19.2587
+411 20 17.5968
+411 21 13.8819
+411 22  9.7760
+411 23  6.8432
+411 24  5.0835
+411 25  2.2485
+411 26  0.9776
+411 27  0.3910
+411 28  0.0978
+# pixel 412
+412  1  0.8113
+412  2  2.6368
+412  3  6.9975
+412  4 12.5753
+412  5 19.6742
+412  6 23.9336
+412  7 25.2520
+412  8 26.6718
+412  9 28.2944
+412 10 28.9029
+412 11 28.9029
+412 12 28.7000
+412 13 28.0915
+412 14 27.7873
+412 15 26.3675
+412 16 24.9477
+412 17 23.4265
+412 18 21.8039
+412 19 19.9785
+412 20 18.2544
+412 21 14.4007
+412 22 10.1414
+412 23  7.0989
+412 24  5.2735
+412 25  2.3325
+412 26  1.0141
+412 27  0.4057
+412 28  0.1014
+# pixel 413
+413  1  0.6977
+413  2  2.2674
+413  3  6.0174
+413  4 10.8139
+413  5 16.9185
+413  6 20.5813
+413  7 21.7150
+413  8 22.9359
+413  9 24.3312
+413 10 24.8545
+413 11 24.8545
+413 12 24.6801
+413 13 24.1568
+413 14 23.8952
+413 15 22.6743
+413 16 21.4533
+413 17 20.1452
+413 18 18.7499
+413 19 17.1801
+413 20 15.6976
+413 21 12.3836
+413 22  8.7209
+413 23  6.1046
+413 24  4.5349
+413 25  2.0058
+413 26  0.8721
+413 27  0.3488
+413 28  0.0872
+# pixel 414
+414  1  0.6935
+414  2  2.2540
+414  3  5.9818
+414  4 10.7499
+414  5 16.8183
+414  6 20.4594
+414  7 21.5864
+414  8 22.8001
+414  9 24.1872
+414 10 24.7073
+414 11 24.7073
+414 12 24.5340
+414 13 24.0138
+414 14 23.7537
+414 15 22.5400
+414 16 21.3263
+414 17 20.0260
+414 18 18.6389
+414 19 17.0784
+414 20 15.6046
+414 21 12.3103
+414 22  8.6692
+414 23  6.0685
+414 24  4.5080
+414 25  1.9939
+414 26  0.8669
+414 27  0.3468
+414 28  0.0867
+# pixel 415
+415  1  0.8426
+415  2  2.7386
+415  3  7.2678
+415  4 13.0609
+415  5 20.4340
+415  6 24.8579
+415  7 26.2272
+415  8 27.7018
+415  9 29.3871
+415 10 30.0191
+415 11 30.0191
+415 12 29.8084
+415 13 29.1764
+415 14 28.8604
+415 15 27.3858
+415 16 25.9112
+415 17 24.3312
+415 18 22.6460
+415 19 20.7500
+415 20 18.9594
+415 21 14.9569
+415 22 10.5330
+415 23  7.3731
+415 24  5.4772
+415 25  2.4226
+415 26  1.0533
+415 27  0.4213
+415 28  0.1053
+# pixel 416
+416  1  0.7097
+416  2  2.3067
+416  3  6.1216
+416  4 11.0011
+416  5 17.2114
+416  6 20.9376
+416  7 22.0910
+416  8 23.3330
+416  9 24.7525
+416 10 25.2848
+416 11 25.2848
+416 12 25.1074
+416 13 24.5751
+416 14 24.3089
+416 15 23.0669
+416 16 21.8248
+416 17 20.4940
+416 18 19.0745
+416 19 17.4776
+416 20 15.9694
+416 21 12.5981
+416 22  8.8719
+416 23  6.2103
+416 24  4.6134
+416 25  2.0405
+416 26  0.8872
+416 27  0.3549
+416 28  0.0887
+# pixel 417
+417  1  0.7487
+417  2  2.4331
+417  3  6.4571
+417  4 11.6041
+417  5 18.1548
+417  6 22.0852
+417  7 23.3018
+417  8 24.6119
+417  9 26.1092
+417 10 26.6707
+417 11 26.6707
+417 12 26.4836
+417 13 25.9221
+417 14 25.6413
+417 15 24.3312
+417 16 23.0211
+417 17 21.6173
+417 18 20.1200
+417 19 18.4356
+417 20 16.8447
+417 21 13.2886
+417 22  9.3582
+417 23  6.5507
+417 24  4.8662
+417 25  2.1524
+417 26  0.9358
+417 27  0.3743
+417 28  0.0936
+# pixel 418
+418  1  0.7055
+418  2  2.2930
+418  3  6.0853
+418  4 10.9358
+418  5 17.1093
+418  6 20.8133
+418  7 21.9598
+418  8 23.1945
+418  9 24.6056
+418 10 25.1348
+418 11 25.1348
+418 12 24.9584
+418 13 24.4292
+418 14 24.1646
+418 15 22.9299
+418 16 21.6953
+418 17 20.3724
+418 18 18.9613
+418 19 17.3738
+418 20 15.8746
+418 21 12.5233
+418 22  8.8192
+418 23  6.1734
+418 24  4.5860
+418 25  2.0284
+418 26  0.8819
+418 27  0.3528
+418 28  0.0882
+# pixel 419
+419  1  0.7219
+419  2  2.3461
+419  3  6.2263
+419  4 11.1892
+419  5 17.5057
+419  6 21.2957
+419  7 22.4687
+419  8 23.7320
+419  9 25.1758
+419 10 25.7172
+419 11 25.7172
+419 12 25.5367
+419 13 24.9953
+419 14 24.7246
+419 15 23.4613
+419 16 22.1980
+419 17 20.8445
+419 18 19.4007
+419 19 17.7765
+419 20 16.2424
+419 21 12.8135
+419 22  9.0236
+419 23  6.3165
+419 24  4.6923
+419 25  2.0754
+419 26  0.9024
+419 27  0.3609
+419 28  0.0902
+# pixel 420
+420  1  0.7134
+420  2  2.3186
+420  3  6.1532
+420  4 11.0580
+420  5 17.3004
+420  6 21.0458
+420  7 22.2051
+420  8 23.4536
+420  9 24.8804
+420 10 25.4155
+420 11 25.4155
+420 12 25.2371
+420 13 24.7020
+420 14 24.4345
+420 15 23.1860
+420 16 21.9376
+420 17 20.5999
+420 18 19.1731
+420 19 17.5679
+420 20 16.0519
+420 21 12.6631
+420 22  8.9177
+420 23  6.2424
+420 24  4.6372
+420 25  2.0511
+420 26  0.8918
+420 27  0.3567
+420 28  0.0892
+# pixel 421
+421  1  0.7084
+421  2  2.3024
+421  3  6.1101
+421  4 10.9805
+421  5 17.1791
+421  6 20.8983
+421  7 22.0495
+421  8 23.2892
+421  9 24.7061
+421 10 25.2374
+421 11 25.2374
+421 12 25.0603
+421 13 24.5289
+421 14 24.2633
+421 15 23.0236
+421 16 21.7838
+421 17 20.4555
+421 18 19.0387
+421 19 17.4448
+421 20 15.9394
+421 21 12.5744
+421 22  8.8552
+421 23  6.1987
+421 24  4.6047
+421 25  2.0367
+421 26  0.8855
+421 27  0.3542
+421 28  0.0886
+# pixel 422
+422  1  0.6626
+422  2  2.1535
+422  3  5.7151
+422  4 10.2707
+422  5 16.0686
+422  6 19.5474
+422  7 20.6242
+422  8 21.7837
+422  9 23.1090
+422 10 23.6060
+422 11 23.6060
+422 12 23.4403
+422 13 22.9433
+422 14 22.6949
+422 15 21.5353
+422 16 20.3757
+422 17 19.1333
+422 18 17.8080
+422 19 16.3171
+422 20 14.9090
+422 21 11.7616
+422 22  8.2828
+422 23  5.7980
+422 24  4.3071
+422 25  1.9050
+422 26  0.8283
+422 27  0.3313
+422 28  0.0828
+# pixel 423
+423  1  0.6725
+423  2  2.1855
+423  3  5.8000
+423  4 10.4232
+423  5 16.3073
+423  6 19.8378
+423  7 20.9306
+423  8 22.1074
+423  9 23.4523
+423 10 23.9567
+423 11 23.9567
+423 12 23.7885
+423 13 23.2842
+423 14 23.0320
+423 15 21.8552
+423 16 20.6784
+423 17 19.4175
+423 18 18.0726
+423 19 16.5595
+423 20 15.1305
+423 21 11.9363
+423 22  8.4058
+423 23  5.8841
+423 24  4.3710
+423 25  1.9333
+423 26  0.8406
+423 27  0.3362
+423 28  0.0841
+# pixel 424
+424  1  0.6907
+424  2  2.2447
+424  3  5.9571
+424  4 10.7054
+424  5 16.7488
+424  6 20.3749
+424  7 21.4972
+424  8 22.7059
+424  9 24.0872
+424 10 24.6052
+424 11 24.6052
+424 12 24.4326
+424 13 23.9146
+424 14 23.6556
+424 15 22.4469
+424 16 21.2382
+424 17 19.9432
+424 18 18.5619
+424 19 17.0078
+424 20 15.5402
+424 21 12.2595
+424 22  8.6334
+424 23  6.0434
+424 24  4.4894
+424 25  1.9857
+424 26  0.8633
+424 27  0.3453
+424 28  0.0863
+# pixel 425
+425  1  0.6705
+425  2  2.1792
+425  3  5.7833
+425  4 10.3931
+425  5 16.2602
+425  6 19.7804
+425  7 20.8700
+425  8 22.0434
+425  9 23.3845
+425 10 23.8873
+425 11 23.8873
+425 12 23.7197
+425 13 23.2168
+425 14 22.9654
+425 15 21.7920
+425 16 20.6186
+425 17 19.3613
+425 18 18.0203
+425 19 16.5116
+425 20 15.0867
+425 21 11.9018
+425 22  8.3815
+425 23  5.8671
+425 24  4.3584
+425 25  1.9278
+425 26  0.8382
+425 27  0.3353
+425 28  0.0838
+# pixel 426
+426  1  0.7782
+426  2  2.5291
+426  3  6.7119
+426  4 12.0619
+426  5 18.8711
+426  6 22.9566
+426  7 24.2211
+426  8 25.5830
+426  9 27.1393
+426 10 27.7230
+426 11 27.7230
+426 12 27.5284
+426 13 26.9448
+426 14 26.6530
+426 15 25.2911
+426 16 23.9293
+426 17 22.4702
+426 18 20.9138
+426 19 19.1629
+426 20 17.5093
+426 21 13.8129
+426 22  9.7274
+426 23  6.8092
+426 24  5.0582
+426 25  2.2373
+426 26  0.9727
+426 27  0.3891
+426 28  0.0973
+# pixel 427
+427  1  0.5554
+427  2  1.8052
+427  3  4.7906
+427  4  8.6092
+427  5 13.4692
+427  6 16.3852
+427  7 17.2878
+427  8 18.2598
+427  9 19.3707
+427 10 19.7873
+427 11 19.7873
+427 12 19.6484
+427 13 19.2318
+427 14 19.0235
+427 15 18.0515
+427 16 17.0795
+427 17 16.0381
+427 18 14.9272
+427 19 13.6775
+427 20 12.4972
+427 21  9.8589
+427 22  6.9429
+427 23  4.8600
+427 24  3.6103
+427 25  1.5969
+427 26  0.6943
+427 27  0.2777
+427 28  0.0694
+# pixel 428
+428  1  0.8263
+428  2  2.6856
+428  3  7.1271
+428  4 12.8080
+428  5 20.0384
+428  6 24.3766
+428  7 25.7194
+428  8 27.1654
+428  9 28.8181
+428 10 29.4378
+428 11 29.4378
+428 12 29.2312
+428 13 28.6115
+428 14 28.3016
+428 15 26.8556
+428 16 25.4095
+428 17 23.8601
+428 18 22.2075
+428 19 20.3482
+428 20 18.5923
+428 21 14.6673
+428 22 10.3291
+428 23  7.2303
+428 24  5.3711
+428 25  2.3757
+428 26  1.0329
+428 27  0.4132
+428 28  0.1033
+# pixel 429
+429  1  0.8122
+429  2  2.6396
+429  3  7.0052
+429  4 12.5890
+429  5 19.6957
+429  6 23.9598
+429  7 25.2796
+429  8 26.7009
+429  9 28.3253
+429 10 28.9344
+429 11 28.9344
+429 12 28.7314
+429 13 28.1223
+429 14 27.8177
+429 15 26.3963
+429 16 24.9750
+429 17 23.4521
+429 18 21.8277
+429 19 20.0003
+429 20 18.2744
+429 21 14.4165
+429 22 10.1524
+429 23  7.1067
+429 24  5.2793
+429 25  2.3351
+429 26  1.0152
+429 27  0.4061
+429 28  0.1015
+# pixel 430
+430  1  0.7091
+430  2  2.3047
+430  3  6.1164
+430  4 10.9918
+430  5 17.1968
+430  6 20.9198
+430  7 22.0721
+430  8 23.3132
+430  9 24.7314
+430 10 25.2633
+430 11 25.2633
+430 12 25.0860
+430 13 24.5542
+430 14 24.2882
+430 15 23.0472
+430 16 21.8062
+430 17 20.4766
+430 18 19.0583
+430 19 17.4627
+430 20 15.9558
+430 21 12.5873
+430 22  8.8643
+430 23  6.2050
+430 24  4.6094
+430 25  2.0388
+430 26  0.8864
+430 27  0.3546
+430 28  0.0886
+# pixel 431
+431  1  0.6572
+431  2  2.1358
+431  3  5.6680
+431  4 10.1860
+431  5 15.9361
+431  6 19.3862
+431  7 20.4541
+431  8 21.6041
+431  9 22.9184
+431 10 23.4113
+431 11 23.4113
+431 12 23.2470
+431 13 22.7541
+431 14 22.5077
+431 15 21.3577
+431 16 20.2077
+431 17 18.9755
+431 18 17.6612
+431 19 16.1825
+431 20 14.7861
+431 21 11.6646
+431 22  8.2145
+431 23  5.7501
+431 24  4.2715
+431 25  1.8893
+431 26  0.8214
+431 27  0.3286
+431 28  0.0821
+# pixel 432
+432  1  0.6993
+432  2  2.2727
+432  3  6.0314
+432  4 10.8391
+432  5 16.9579
+432  6 20.6292
+432  7 21.7655
+432  8 22.9893
+432  9 24.3879
+432 10 24.9123
+432 11 24.9123
+432 12 24.7375
+432 13 24.2131
+432 14 23.9508
+432 15 22.7271
+432 16 21.5033
+432 17 20.1921
+432 18 18.7935
+432 19 17.2201
+432 20 15.7341
+432 21 12.4125
+432 22  8.7412
+432 23  6.1188
+432 24  4.5454
+432 25  2.0105
+432 26  0.8741
+432 27  0.3496
+432 28  0.0874
+# pixel 433
+433  1  0.8551
+433  2  2.7792
+433  3  7.3756
+433  4 13.2547
+433  5 20.7372
+433  6 25.2266
+433  7 26.6163
+433  8 28.1127
+433  9 29.8230
+433 10 30.4644
+433 11 30.4644
+433 12 30.2506
+433 13 29.6092
+433 14 29.2886
+433 15 27.7921
+433 16 26.2956
+433 17 24.6922
+433 18 22.9819
+433 19 21.0578
+433 20 19.2407
+433 21 15.1787
+433 22 10.6893
+433 23  7.4825
+433 24  5.5584
+433 25  2.4585
+433 26  1.0689
+433 27  0.4276
+433 28  0.1069
+# pixel 434
+434  1  0.7648
+434  2  2.4855
+434  3  6.5961
+434  4 11.8538
+434  5 18.5455
+434  6 22.5605
+434  7 23.8033
+434  8 25.1416
+434  9 26.6711
+434 10 27.2447
+434 11 27.2447
+434 12 27.0535
+434 13 26.4799
+434 14 26.1931
+434 15 24.8548
+434 16 23.5165
+434 17 22.0825
+434 18 20.5530
+434 19 18.8323
+434 20 17.2072
+434 21 13.5746
+434 22  9.5595
+434 23  6.6917
+434 24  4.9710
+434 25  2.1987
+434 26  0.9560
+434 27  0.3824
+434 28  0.0956
+# pixel 435
+435  1  0.7000
+435  2  2.2749
+435  3  6.0373
+435  4 10.8496
+435  5 16.9744
+435  6 20.6492
+435  7 21.7867
+435  8 23.0116
+435  9 24.4116
+435 10 24.9366
+435 11 24.9366
+435 12 24.7616
+435 13 24.2366
+435 14 23.9741
+435 15 22.7491
+435 16 21.5242
+435 17 20.2117
+435 18 18.8118
+435 19 17.2369
+435 20 15.7494
+435 21 12.4245
+435 22  8.7497
+435 23  6.1248
+435 24  4.5498
+435 25  2.0124
+435 26  0.8750
+435 27  0.3500
+435 28  0.0875
+# pixel 436
+436  1  0.7556
+436  2  2.4557
+436  3  6.5171
+436  4 11.7119
+436  5 18.3235
+436  6 22.2905
+436  7 23.5183
+436  8 24.8407
+436  9 26.3519
+436 10 26.9186
+436 11 26.9186
+436 12 26.7297
+436 13 26.1630
+436 14 25.8796
+436 15 24.5573
+436 16 23.2350
+436 17 21.8182
+436 18 20.3070
+436 19 18.6069
+436 20 17.0012
+436 21 13.4121
+436 22  9.4451
+436 23  6.6116
+436 24  4.9115
+436 25  2.1724
+436 26  0.9445
+436 27  0.3778
+436 28  0.0945
+# pixel 437
+437  1  0.7316
+437  2  2.3778
+437  3  6.3104
+437  4 11.3404
+437  5 17.7422
+437  6 21.5833
+437  7 22.7722
+437  8 24.0525
+437  9 25.5158
+437 10 26.0645
+437 11 26.0645
+437 12 25.8816
+437 13 25.3329
+437 14 25.0585
+437 15 23.7782
+437 16 22.4978
+437 17 21.1260
+437 18 19.6627
+437 19 18.0165
+437 20 16.4618
+437 21 12.9865
+437 22  9.1454
+437 23  6.4018
+437 24  4.7556
+437 25  2.1035
+437 26  0.9145
+437 27  0.3658
+437 28  0.0915
+# pixel 438
+438  1  0.7139
+438  2  2.3203
+438  3  6.1577
+438  4 11.0661
+438  5 17.3130
+438  6 21.0612
+438  7 22.2214
+438  8 23.4708
+438  9 24.8987
+438 10 25.4341
+438 11 25.4341
+438 12 25.2556
+438 13 24.7202
+438 14 24.4524
+438 15 23.2030
+438 16 21.9537
+438 17 20.6150
+438 18 19.1871
+438 19 17.5808
+438 20 16.0636
+438 21 12.6724
+438 22  8.9242
+438 23  6.2470
+438 24  4.6406
+438 25  2.0526
+438 26  0.8924
+438 27  0.3570
+438 28  0.0892
+# pixel 439
+439  1  0.6631
+439  2  2.1551
+439  3  5.7193
+439  4 10.2781
+439  5 16.0803
+439  6 19.5616
+439  7 20.6392
+439  8 21.7996
+439  9 23.1258
+439 10 23.6231
+439 11 23.6231
+439 12 23.4574
+439 13 22.9600
+439 14 22.7114
+439 15 21.5509
+439 16 20.3905
+439 17 19.1472
+439 18 17.8210
+439 19 16.3290
+439 20 14.9199
+439 21 11.7701
+439 22  8.2888
+439 23  5.8022
+439 24  4.3102
+439 25  1.9064
+439 26  0.8289
+439 27  0.3316
+439 28  0.0829
+# pixel 440
+440  1  0.7298
+440  2  2.3720
+440  3  6.2948
+440  4 11.3124
+440  5 17.6985
+440  6 21.5301
+440  7 22.7161
+440  8 23.9933
+440  9 25.4529
+440 10 26.0003
+440 11 26.0003
+440 12 25.8178
+440 13 25.2705
+440 14 24.9968
+440 15 23.7196
+440 16 22.4424
+440 17 21.0739
+440 18 19.6143
+440 19 17.9721
+440 20 16.4212
+440 21 12.9545
+440 22  9.1229
+440 23  6.3860
+440 24  4.7439
+440 25  2.0983
+440 26  0.9123
+440 27  0.3649
+440 28  0.0912
+# pixel 441
+441  1  0.7415
+441  2  2.4098
+441  3  6.3954
+441  4 11.4931
+441  5 17.9811
+441  6 21.8740
+441  7 23.0789
+441  8 24.3765
+441  9 25.8595
+441 10 26.4156
+441 11 26.4156
+441 12 26.2302
+441 13 25.6741
+441 14 25.3961
+441 15 24.0984
+441 16 22.8008
+441 17 21.4105
+441 18 19.9276
+441 19 18.2592
+441 20 16.6835
+441 21 13.1615
+441 22  9.2686
+441 23  6.4880
+441 24  4.8197
+441 25  2.1318
+441 26  0.9269
+441 27  0.3707
+441 28  0.0927
+# pixel 442
+442  1  0.6640
+442  2  2.1579
+442  3  5.7267
+442  4 10.2914
+442  5 16.1010
+442  6 19.5868
+442  7 20.6658
+442  8 21.8277
+442  9 23.1556
+442 10 23.6536
+442 11 23.6536
+442 12 23.4876
+442 13 22.9896
+442 14 22.7407
+442 15 21.5787
+442 16 20.4168
+442 17 19.1719
+442 18 17.8439
+442 19 16.3500
+442 20 14.9391
+442 21 11.7853
+442 22  8.2995
+442 23  5.8097
+442 24  4.3157
+442 25  1.9089
+442 26  0.8300
+442 27  0.3320
+442 28  0.0830
+# pixel 443
+443  1  0.7417
+443  2  2.4105
+443  3  6.3970
+443  4 11.4960
+443  5 17.9857
+443  6 21.8795
+443  7 23.0848
+443  8 24.3827
+443  9 25.8661
+443 10 26.4223
+443 11 26.4223
+443 12 26.2369
+443 13 25.6807
+443 14 25.4025
+443 15 24.1046
+443 16 22.8066
+443 17 21.4160
+443 18 19.9326
+443 19 18.2639
+443 20 16.6878
+443 21 13.1648
+443 22  9.2710
+443 23  6.4897
+443 24  4.8209
+443 25  2.1323
+443 26  0.9271
+443 27  0.3708
+443 28  0.0927
+# pixel 444
+444  1  0.6200
+444  2  2.0150
+444  3  5.3474
+444  4  9.6098
+444  5 15.0347
+444  6 18.2896
+444  7 19.2971
+444  8 20.3820
+444  9 21.6220
+444 10 22.0870
+444 11 22.0870
+444 12 21.9320
+444 13 21.4670
+444 14 21.2345
+444 15 20.1496
+444 16 19.0646
+444 17 17.9021
+444 18 16.6621
+444 19 15.2672
+444 20 13.9497
+444 21 11.0048
+444 22  7.7498
+444 23  5.4249
+444 24  4.0299
+444 25  1.7825
+444 26  0.7750
+444 27  0.3100
+444 28  0.0775
+# pixel 445
+445  1  0.7026
+445  2  2.2835
+445  3  6.0600
+445  4 10.8905
+445  5 17.0383
+445  6 20.7270
+445  7 21.8688
+445  8 23.0984
+445  9 24.5036
+445 10 25.0305
+445 11 25.0305
+445 12 24.8549
+445 13 24.3279
+445 14 24.0644
+445 15 22.8349
+445 16 21.6053
+445 17 20.2879
+445 18 18.8827
+445 19 17.3018
+445 20 15.8088
+445 21 12.4714
+445 22  8.7826
+445 23  6.1479
+445 24  4.5670
+445 25  2.0200
+445 26  0.8783
+445 27  0.3513
+445 28  0.0878
+# pixel 446
+446  1  0.7795
+446  2  2.5335
+446  3  6.7234
+446  4 12.0827
+446  5 18.9035
+446  6 22.9960
+446  7 24.2628
+446  8 25.6269
+446  9 27.1860
+446 10 27.7706
+446 11 27.7706
+446 12 27.5757
+446 13 26.9911
+446 14 26.6988
+446 15 25.3346
+446 16 23.9704
+446 17 22.5088
+446 18 20.9498
+446 19 19.1958
+446 20 17.5393
+446 21 13.8366
+446 22  9.7441
+446 23  6.8209
+446 24  5.0669
+446 25  2.2411
+446 26  0.9744
+446 27  0.3898
+446 28  0.0974
+# pixel 447
+447  1  0.7455
+447  2  2.4228
+447  3  6.4297
+447  4 11.5548
+447  5 18.0777
+447  6 21.9914
+447  7 23.2028
+447  8 24.5074
+447  9 25.9983
+447 10 26.5574
+447 11 26.5574
+447 12 26.3711
+447 13 25.8120
+447 14 25.5324
+447 15 24.2278
+447 16 22.9233
+447 17 21.5255
+447 18 20.0346
+447 19 18.3572
+447 20 16.7731
+447 21 13.2321
+447 22  9.3184
+447 23  6.5229
+447 24  4.8456
+447 25  2.1432
+447 26  0.9318
+447 27  0.3727
+447 28  0.0932
+# pixel 448
+448  1  0.7063
+448  2  2.2954
+448  3  6.0917
+448  4 10.9474
+448  5 17.1273
+448  6 20.8353
+448  7 21.9830
+448  8 23.2190
+448  9 24.6316
+448 10 25.1613
+448 11 25.1613
+448 12 24.9847
+448 13 24.4550
+448 14 24.1901
+448 15 22.9541
+448 16 21.7181
+448 17 20.3939
+448 18 18.9813
+448 19 17.3922
+448 20 15.8913
+448 21 12.5365
+448 22  8.8285
+448 23  6.1800
+448 24  4.5908
+448 25  2.0306
+448 26  0.8829
+448 27  0.3531
+448 28  0.0883
+# pixel 449
+449  1  0.6640
+449  2  2.1580
+449  3  5.7270
+449  4 10.2919
+449  5 16.1019
+449  6 19.5878
+449  7 20.6668
+449  8 21.8288
+449  9 23.1568
+449 10 23.6548
+449 11 23.6548
+449 12 23.4888
+449 13 22.9908
+449 14 22.7418
+449 15 21.5798
+449 16 20.4178
+449 17 19.1728
+449 18 17.8449
+449 19 16.3509
+449 20 14.9399
+449 21 11.7859
+449 22  8.2999
+449 23  5.8100
+449 24  4.3160
+449 25  1.9090
+449 26  0.8300
+449 27  0.3320
+449 28  0.0830
+# pixel 450
+450  1  0.7351
+450  2  2.3891
+450  3  6.3402
+450  4 11.3940
+450  5 17.8261
+450  6 21.6853
+450  7 22.8798
+450  8 24.1663
+450  9 25.6364
+450 10 26.1878
+450 11 26.1878
+450 12 26.0040
+450 13 25.4527
+450 14 25.1770
+450 15 23.8906
+450 16 22.6042
+450 17 21.2259
+450 18 19.7557
+450 19 18.1017
+450 20 16.5396
+450 21 13.0479
+450 22  9.1887
+450 23  6.4321
+450 24  4.7781
+450 25  2.1134
+450 26  0.9189
+450 27  0.3675
+450 28  0.0919
+# pixel 451
+451  1  0.7754
+451  2  2.5200
+451  3  6.6876
+451  4 12.0183
+451  5 18.8029
+451  6 22.8736
+451  7 24.1336
+451  8 25.4905
+451  9 27.0412
+451 10 27.6228
+451 11 27.6228
+451 12 27.4289
+451 13 26.8474
+451 14 26.5566
+451 15 25.1997
+451 16 23.8428
+451 17 22.3890
+451 18 20.8382
+451 19 19.0936
+451 20 17.4459
+451 21 13.7629
+451 22  9.6922
+451 23  6.7845
+451 24  5.0399
+451 25  2.2292
+451 26  0.9692
+451 27  0.3877
+451 28  0.0969
+# pixel 452
+452  1  0.6644
+452  2  2.1594
+452  3  5.7308
+452  4 10.2989
+452  5 16.1127
+452  6 19.6010
+452  7 20.6808
+452  8 21.8435
+452  9 23.1724
+452 10 23.6708
+452 11 23.6708
+452 12 23.5046
+452 13 23.0063
+452 14 22.7571
+452 15 21.5944
+452 16 20.4316
+452 17 19.1858
+452 18 17.8569
+452 19 16.3619
+452 20 14.9499
+452 21 11.7938
+452 22  8.3055
+452 23  5.8139
+452 24  4.3189
+452 25  1.9103
+452 26  0.8306
+452 27  0.3322
+452 28  0.0831
+# pixel 453
+453  1  0.6918
+453  2  2.2485
+453  3  5.9672
+453  4 10.7237
+453  5 16.7774
+453  6 20.4096
+453  7 21.5338
+453  8 22.7446
+453  9 24.1283
+453 10 24.6472
+453 11 24.6472
+453 12 24.4742
+453 13 23.9553
+453 14 23.6959
+453 15 22.4851
+453 16 21.2744
+453 17 19.9772
+453 18 18.5935
+453 19 17.0368
+453 20 15.5666
+453 21 12.2803
+453 22  8.6481
+453 23  6.0537
+453 24  4.4970
+453 25  1.9891
+453 26  0.8648
+453 27  0.3459
+453 28  0.0865
+# pixel 454
+454  1  0.8442
+454  2  2.7436
+454  3  7.2811
+454  4 13.0848
+454  5 20.4714
+454  6 24.9034
+454  7 26.2752
+454  8 27.7525
+454  9 29.4409
+454 10 30.0740
+454 11 30.0740
+454 12 29.8630
+454 13 29.2298
+454 14 28.9133
+454 15 27.4359
+454 16 25.9586
+454 17 24.3758
+454 18 22.6874
+454 19 20.7880
+454 20 18.9941
+454 21 14.9842
+454 22 10.5523
+454 23  7.3866
+454 24  5.4872
+454 25  2.4270
+454 26  1.0552
+454 27  0.4221
+454 28  0.1055
+# pixel 455
+455  1  0.7603
+455  2  2.4710
+455  3  6.5577
+455  4 11.7848
+455  5 18.4375
+455  6 22.4291
+455  7 23.6646
+455  8 24.9951
+455  9 26.5157
+455 10 27.0859
+455 11 27.0859
+455 12 26.8959
+455 13 26.3256
+455 14 26.0405
+455 15 24.7100
+455 16 23.3795
+455 17 21.9539
+455 18 20.4333
+455 19 18.7226
+455 20 17.1069
+455 21 13.4955
+455 22  9.5038
+455 23  6.6527
+455 24  4.9420
+455 25  2.1859
+455 26  0.9504
+455 27  0.3802
+455 28  0.0950
+# pixel 456
+456  1  0.7614
+456  2  2.4744
+456  3  6.5668
+456  4 11.8012
+456  5 18.4632
+456  6 22.4604
+456  7 23.6976
+456  8 25.0300
+456  9 26.5527
+456 10 27.1238
+456 11 27.1238
+456 12 26.9334
+456 13 26.3624
+456 14 26.0769
+456 15 24.7445
+456 16 23.4121
+456 17 21.9845
+456 18 20.4618
+456 19 18.7487
+456 20 17.1308
+456 21 13.5143
+456 22  9.5171
+456 23  6.6620
+456 24  4.9489
+456 25  2.1889
+456 26  0.9517
+456 27  0.3807
+456 28  0.0952
+# pixel 457
+457  1  0.8367
+457  2  2.7192
+457  3  7.2164
+457  4 12.9686
+457  5 20.2897
+457  6 24.6823
+457  7 26.0419
+457  8 27.5061
+457  9 29.1795
+457 10 29.8070
+457 11 29.8070
+457 12 29.5978
+457 13 28.9703
+457 14 28.6565
+457 15 27.1923
+457 16 25.7281
+457 17 24.1593
+457 18 22.4860
+457 19 20.6034
+457 20 18.8255
+457 21 14.8512
+457 22 10.4586
+457 23  7.3210
+457 24  5.4385
+457 25  2.4055
+457 26  1.0459
+457 27  0.4183
+457 28  0.1046
+# pixel 458
+458  1  0.7362
+458  2  2.3927
+458  3  6.3498
+458  4 11.4112
+458  5 17.8530
+458  6 21.7181
+458  7 22.9144
+458  8 24.2028
+458  9 25.6752
+458 10 26.2273
+458 11 26.2273
+458 12 26.0433
+458 13 25.4911
+458 14 25.2150
+458 15 23.9267
+458 16 22.6383
+458 17 21.2579
+458 18 19.7855
+458 19 18.1291
+458 20 16.5646
+458 21 13.0676
+458 22  9.2026
+458 23  6.4418
+458 24  4.7853
+458 25  2.1166
+458 26  0.9203
+458 27  0.3681
+458 28  0.0920
+# pixel 459
+459  1  0.7492
+459  2  2.4348
+459  3  6.4616
+459  4 11.6121
+459  5 18.1674
+459  6 22.1005
+459  7 23.3179
+459  8 24.6290
+459  9 26.1273
+459 10 26.6892
+459 11 26.6892
+459 12 26.5019
+459 13 25.9400
+459 14 25.6591
+459 15 24.3480
+459 16 23.0370
+459 17 21.6323
+459 18 20.1339
+459 19 18.4483
+459 20 16.8563
+459 21 13.2978
+459 22  9.3646
+459 23  6.5552
+459 24  4.8696
+459 25  2.1539
+459 26  0.9365
+459 27  0.3746
+459 28  0.0936
+# pixel 460
+460  1  0.5591
+460  2  1.8172
+460  3  4.8225
+460  4  8.6665
+460  5 13.5588
+460  6 16.4942
+460  7 17.4028
+460  8 18.3813
+460  9 19.4996
+460 10 19.9189
+460 11 19.9189
+460 12 19.7791
+460 13 19.3598
+460 14 19.1501
+460 15 18.1716
+460 16 17.1932
+460 17 16.1448
+460 18 15.0265
+460 19 13.7685
+460 20 12.5804
+460 21  9.9245
+460 22  6.9891
+460 23  4.8924
+460 24  3.6343
+460 25  1.6075
+460 26  0.6989
+460 27  0.2796
+460 28  0.0699
+# pixel 461
+461  1  0.6672
+461  2  2.1685
+461  3  5.7548
+461  4 10.3419
+461  5 16.1800
+461  6 19.6829
+461  7 20.7671
+461  8 21.9348
+461  9 23.2692
+461 10 23.7696
+461 11 23.7696
+461 12 23.6028
+461 13 23.1024
+461 14 22.8522
+461 15 21.6846
+461 16 20.5169
+461 17 19.2659
+461 18 17.9315
+461 19 16.4302
+461 20 15.0124
+461 21 11.8431
+461 22  8.3402
+461 23  5.8382
+461 24  4.3369
+461 25  1.9183
+461 26  0.8340
+461 27  0.3336
+461 28  0.0834
+# pixel 462
+462  1  0.8549
+462  2  2.7784
+462  3  7.3735
+462  4 13.2509
+462  5 20.7312
+462  6 25.2194
+462  7 26.6087
+462  8 28.1047
+462  9 29.8145
+462 10 30.4557
+462 11 30.4557
+462 12 30.2420
+462 13 29.6008
+462 14 29.2802
+462 15 27.7841
+462 16 26.2881
+462 17 24.6851
+462 18 22.9753
+462 19 21.0518
+462 20 19.2352
+462 21 15.1744
+462 22 10.6862
+462 23  7.4803
+462 24  5.5568
+462 25  2.4578
+462 26  1.0686
+462 27  0.4274
+462 28  0.1069
+# pixel 463
+463  1  0.7819
+463  2  2.5411
+463  3  6.7438
+463  4 12.1193
+463  5 18.9609
+463  6 23.0658
+463  7 24.3364
+463  8 25.7047
+463  9 27.2684
+463 10 27.8549
+463 11 27.8549
+463 12 27.6594
+463 13 27.0730
+463 14 26.7798
+463 15 25.4115
+463 16 24.0431
+463 17 22.5771
+463 18 21.0133
+463 19 19.2541
+463 20 17.5925
+463 21 13.8786
+463 22  9.7736
+463 23  6.8415
+463 24  5.0823
+463 25  2.2479
+463 26  0.9774
+463 27  0.3909
+463 28  0.0977
+# pixel 464
+464  1  0.7765
+464  2  2.5237
+464  3  6.6974
+464  4 12.0359
+464  5 18.8303
+464  6 22.9070
+464  7 24.1688
+464  8 25.5277
+464  9 27.0808
+464 10 27.6631
+464 11 27.6631
+464 12 27.4690
+464 13 26.8866
+464 14 26.5954
+464 15 25.2365
+464 16 23.8777
+464 17 22.4217
+464 18 20.8687
+464 19 19.1215
+464 20 17.4715
+464 21 13.7830
+464 22  9.7064
+464 23  6.7945
+464 24  5.0473
+464 25  2.2325
+464 26  0.9706
+464 27  0.3883
+464 28  0.0971
+# pixel 465
+465  1  0.7127
+465  2  2.3162
+465  3  6.1469
+465  4 11.0466
+465  5 17.2826
+465  6 21.0242
+465  7 22.1824
+465  8 23.4296
+465  9 24.8549
+465 10 25.3895
+465 11 25.3895
+465 12 25.2113
+465 13 24.6768
+465 14 24.4095
+465 15 23.1623
+465 16 21.9151
+465 17 20.5788
+465 18 19.1534
+465 19 17.5499
+465 20 16.0354
+465 21 12.6502
+465 22  8.9086
+465 23  6.2360
+465 24  4.6325
+465 25  2.0490
+465 26  0.8909
+465 27  0.3563
+465 28  0.0891
+# pixel 466
+466  1  0.6936
+466  2  2.2542
+466  3  5.9823
+466  4 10.7508
+466  5 16.8198
+466  6 20.4612
+466  7 21.5883
+466  8 22.8021
+466  9 24.1893
+466 10 24.7095
+466 11 24.7095
+466 12 24.5361
+466 13 24.0159
+466 14 23.7558
+466 15 22.5420
+466 16 21.3282
+466 17 20.0277
+466 18 18.6405
+466 19 17.0799
+466 20 15.6060
+466 21 12.3114
+466 22  8.6700
+466 23  6.0690
+466 24  4.5084
+466 25  1.9941
+466 26  0.8670
+466 27  0.3468
+466 28  0.0867
+# pixel 467
+467  1  0.8013
+467  2  2.6041
+467  3  6.9108
+467  4 12.4194
+467  5 19.4304
+467  6 23.6370
+467  7 24.9390
+467  8 26.3412
+467  9 27.9438
+467 10 28.5447
+467 11 28.5447
+467 12 28.3444
+467 13 27.7434
+467 14 27.4430
+467 15 26.0408
+467 16 24.6386
+467 17 23.1362
+467 18 21.5337
+467 19 19.7309
+467 20 18.0282
+467 21 14.2223
+467 22 10.0157
+467 23  7.0110
+467 24  5.2082
+467 25  2.3036
+467 26  1.0016
+467 27  0.4006
+467 28  0.1002
+# pixel 468
+468  1  0.7303
+468  2  2.3735
+468  3  6.2990
+468  4 11.3199
+468  5 17.7101
+468  6 21.5443
+468  7 22.7311
+468  8 24.0091
+468  9 25.4697
+468 10 26.0175
+468 11 26.0175
+468 12 25.8349
+468 13 25.2872
+468 14 25.0133
+468 15 23.7352
+468 16 22.4572
+468 17 21.0879
+468 18 19.6272
+468 19 17.9840
+468 20 16.4321
+468 21 12.9631
+468 22  9.1289
+468 23  6.3903
+468 24  4.7470
+468 25  2.0997
+468 26  0.9129
+468 27  0.3652
+468 28  0.0913
+# pixel 469
+469  1  0.8118
+469  2  2.6385
+469  3  7.0022
+469  4 12.5836
+469  5 19.6873
+469  6 23.9494
+469  7 25.2687
+469  8 26.6894
+469  9 28.3131
+469 10 28.9220
+469 11 28.9220
+469 12 28.7190
+469 13 28.1102
+469 14 27.8057
+469 15 26.3850
+469 16 24.9643
+469 17 23.4420
+469 18 21.8184
+469 19 19.9917
+469 20 18.2665
+469 21 14.4103
+469 22 10.1481
+469 23  7.1037
+469 24  5.2770
+469 25  2.3341
+469 26  1.0148
+469 27  0.4059
+469 28  0.1015
+# pixel 470
+470  1  0.6146
+470  2  1.9974
+470  3  5.3007
+470  4  9.5259
+470  5 14.9034
+470  6 18.1299
+470  7 19.1286
+470  8 20.2041
+470  9 21.4332
+470 10 21.8942
+470 11 21.8942
+470 12 21.7405
+470 13 21.2796
+470 14 21.0491
+470 15 19.9736
+470 16 18.8981
+470 17 17.7458
+470 18 16.5167
+470 19 15.1339
+470 20 13.8279
+470 21 10.9087
+470 22  7.6822
+470 23  5.3775
+470 24  3.9947
+470 25  1.7669
+470 26  0.7682
+470 27  0.3073
+470 28  0.0768
+# pixel 471
+471  1  0.7183
+471  2  2.3344
+471  3  6.1952
+471  4 11.1333
+471  5 17.4183
+471  6 21.1892
+471  7 22.3564
+471  8 23.6134
+471  9 25.0500
+471 10 25.5887
+471 11 25.5887
+471 12 25.4091
+471 13 24.8704
+471 14 24.6011
+471 15 23.3441
+471 16 22.0871
+471 17 20.7403
+471 18 19.3038
+471 19 17.6876
+471 20 16.1613
+471 21 12.7495
+471 22  8.9785
+471 23  6.2849
+471 24  4.6688
+471 25  2.0651
+471 26  0.8978
+471 27  0.3591
+471 28  0.0898
+# pixel 472
+472  1  0.7171
+472  2  2.3307
+472  3  6.1852
+472  4 11.1155
+472  5 17.3903
+472  6 21.1552
+472  7 22.3206
+472  8 23.5755
+472  9 25.0098
+472 10 25.5476
+472 11 25.5476
+472 12 25.3684
+472 13 24.8305
+472 14 24.5616
+472 15 23.3066
+472 16 22.0516
+472 17 20.7070
+472 18 19.2728
+472 19 17.6592
+472 20 16.1353
+472 21 12.7290
+472 22  8.9641
+472 23  6.2749
+472 24  4.6613
+472 25  2.0617
+472 26  0.8964
+472 27  0.3586
+472 28  0.0896
+# pixel 473
+473  1  0.6170
+473  2  2.0052
+473  3  5.3214
+473  4  9.5631
+473  5 14.9617
+473  6 18.2008
+473  7 19.2034
+473  8 20.2831
+473  9 21.5170
+473 10 21.9798
+473 11 21.9798
+473 12 21.8255
+473 13 21.3628
+473 14 21.1314
+473 15 20.0517
+473 16 18.9720
+473 17 17.8152
+473 18 16.5812
+473 19 15.1930
+473 20 13.8820
+473 21 10.9513
+473 22  7.7122
+473 23  5.3985
+473 24  4.0103
+473 25  1.7738
+473 26  0.7712
+473 27  0.3085
+473 28  0.0771
+# pixel 474
+474  1  0.6889
+474  2  2.2389
+474  3  5.9416
+474  4 10.6776
+474  5 16.7053
+474  6 20.3219
+474  7 21.4413
+474  8 22.6468
+474  9 24.0246
+474 10 24.5412
+474 11 24.5412
+474 12 24.3690
+474 13 23.8524
+474 14 23.5940
+474 15 22.3885
+474 16 21.1830
+474 17 19.8913
+474 18 18.5136
+474 19 16.9636
+474 20 15.4997
+474 21 12.2276
+474 22  8.6110
+474 23  6.0277
+474 24  4.4777
+474 25  1.9805
+474 26  0.8611
+474 27  0.3444
+474 28  0.0861
+# pixel 475
+475  1  0.6732
+475  2  2.1880
+475  3  5.8065
+475  4 10.4349
+475  5 16.3255
+475  6 19.8599
+475  7 20.9539
+475  8 22.1320
+475  9 23.4785
+475 10 23.9834
+475 11 23.9834
+475 12 23.8151
+475 13 23.3102
+475 14 23.0577
+475 15 21.8796
+475 16 20.7014
+475 17 19.4392
+475 18 18.0927
+475 19 16.5780
+475 20 15.1474
+475 21 11.9496
+475 22  8.4152
+475 23  5.8907
+475 24  4.3759
+475 25  1.9355
+475 26  0.8415
+475 27  0.3366
+475 28  0.0842
+# pixel 476
+476  1  0.7016
+476  2  2.2803
+476  3  6.0514
+476  4 10.8750
+476  5 17.0142
+476  6 20.6977
+476  7 21.8378
+476  8 23.0656
+476  9 24.4688
+476 10 24.9951
+476 11 24.9951
+476 12 24.8197
+476 13 24.2934
+476 14 24.0303
+476 15 22.8025
+476 16 21.5747
+476 17 20.2591
+476 18 18.8559
+476 19 17.2773
+476 20 15.7864
+476 21 12.4537
+476 22  8.7702
+476 23  6.1391
+476 24  4.5605
+476 25  2.0171
+476 26  0.8770
+476 27  0.3508
+476 28  0.0877
+# pixel 477
+477  1  0.6591
+477  2  2.1422
+477  3  5.6850
+477  4 10.2165
+477  5 15.9839
+477  6 19.4443
+477  7 20.5154
+477  8 21.6688
+477  9 22.9871
+477 10 23.4815
+477 11 23.4815
+477 12 23.3167
+477 13 22.8223
+477 14 22.5752
+477 15 21.4217
+477 16 20.2682
+477 17 19.0323
+477 18 17.7141
+477 19 16.2310
+477 20 14.8304
+477 21 11.6995
+477 22  8.2391
+477 23  5.7674
+477 24  4.2843
+477 25  1.8950
+477 26  0.8239
+477 27  0.3296
+477 28  0.0824
+# pixel 478
+478  1  0.7339
+478  2  2.3852
+478  3  6.3299
+478  4 11.3755
+478  5 17.7972
+478  6 21.6502
+478  7 22.8428
+478  8 24.1271
+478  9 25.5949
+478 10 26.1453
+478 11 26.1453
+478 12 25.9618
+478 13 25.4114
+478 14 25.1362
+478 15 23.8519
+478 16 22.5675
+478 17 21.1915
+478 18 19.7237
+478 19 18.0724
+478 20 16.5128
+478 21 13.0268
+478 22  9.1738
+478 23  6.4217
+478 24  4.7704
+478 25  2.1100
+478 26  0.9174
+478 27  0.3670
+478 28  0.0917
+# pixel 479
+479  1  0.6790
+479  2  2.2068
+479  3  5.8565
+479  4 10.5247
+479  5 16.4661
+479  6 20.0309
+479  7 21.1343
+479  8 22.3226
+479  9 23.6806
+479 10 24.1899
+479 11 24.1899
+479 12 24.0201
+479 13 23.5109
+479 14 23.2563
+479 15 22.0680
+479 16 20.8797
+479 17 19.6066
+479 18 18.2485
+479 19 16.7207
+479 20 15.2778
+479 21 12.0525
+479 22  8.4877
+479 23  5.9414
+479 24  4.4136
+479 25  1.9522
+479 26  0.8488
+479 27  0.3395
+479 28  0.0849
+# pixel 480
+480  1  0.7140
+480  2  2.3206
+480  3  6.1586
+480  4 11.0676
+480  5 17.3155
+480  6 21.0642
+480  7 22.2245
+480  8 23.4741
+480  9 24.9022
+480 10 25.4377
+480 11 25.4377
+480 12 25.2592
+480 13 24.7237
+480 14 24.4559
+480 15 23.2063
+480 16 21.9568
+480 17 20.6179
+480 18 19.1899
+480 19 17.5833
+480 20 16.0659
+480 21 12.6742
+480 22  8.9255
+480 23  6.2479
+480 24  4.6413
+480 25  2.0529
+480 26  0.8926
+480 27  0.3570
+480 28  0.0893
+# pixel 481
+481  1  0.7751
+481  2  2.5189
+481  3  6.6849
+481  4 12.0134
+481  5 18.7952
+481  6 22.8643
+481  7 24.1237
+481  8 25.4801
+481  9 27.0302
+481 10 27.6115
+481 11 27.6115
+481 12 27.4177
+481 13 26.8364
+481 14 26.5458
+481 15 25.1894
+481 16 23.8331
+481 17 22.3798
+481 18 20.8297
+481 19 19.0858
+481 20 17.4388
+481 21 13.7573
+481 22  9.6882
+481 23  6.7818
+481 24  5.0379
+481 25  2.2283
+481 26  0.9688
+481 27  0.3875
+481 28  0.0969
+# pixel 482
+482  1  0.6216
+482  2  2.0202
+482  3  5.3613
+482  4  9.6349
+482  5 15.0739
+482  6 18.3374
+482  7 19.3475
+482  8 20.4353
+482  9 21.6785
+482 10 22.1447
+482 11 22.1447
+482 12 21.9893
+482 13 21.5231
+482 14 21.2900
+482 15 20.2022
+482 16 19.1144
+482 17 17.9489
+482 18 16.7056
+482 19 15.3070
+482 20 13.9861
+482 21 11.0335
+482 22  7.7701
+482 23  5.4390
+482 24  4.0404
+482 25  1.7871
+482 26  0.7770
+482 27  0.3108
+482 28  0.0777
+# pixel 483
+483  1  0.7513
+483  2  2.4418
+483  3  6.4801
+483  4 11.6454
+483  5 18.2194
+483  6 22.1638
+483  7 23.3847
+483  8 24.6995
+483  9 26.2021
+483 10 26.7656
+483 11 26.7656
+483 12 26.5777
+483 13 26.0143
+483 14 25.7325
+483 15 24.4177
+483 16 23.1029
+483 17 21.6942
+483 18 20.1916
+483 19 18.5011
+483 20 16.9046
+483 21 13.3358
+483 22  9.3914
+483 23  6.5740
+483 24  4.8835
+483 25  2.1600
+483 26  0.9391
+483 27  0.3757
+483 28  0.0939
+# pixel 484
+484  1  0.6679
+484  2  2.1707
+484  3  5.7608
+484  4 10.3527
+484  5 16.1970
+484  6 19.7036
+484  7 20.7890
+484  8 21.9578
+484  9 23.2937
+484 10 23.7946
+484 11 23.7946
+484 12 23.6276
+484 13 23.1267
+484 14 22.8762
+484 15 21.7074
+484 16 20.5385
+484 17 19.2862
+484 18 17.9503
+484 19 16.4475
+484 20 15.0282
+484 21 11.8556
+484 22  8.3490
+484 23  5.8443
+484 24  4.3415
+484 25  1.9203
+484 26  0.8349
+484 27  0.3340
+484 28  0.0835
+# pixel 485
+485  1  0.7628
+485  2  2.4789
+485  3  6.5787
+485  4 11.8227
+485  5 18.4967
+485  6 22.5012
+485  7 23.7407
+485  8 25.0755
+485  9 26.6010
+485 10 27.1730
+485 11 27.1730
+485 12 26.9824
+485 13 26.4103
+485 14 26.1243
+485 15 24.7894
+485 16 23.4546
+485 17 22.0245
+485 18 20.4990
+485 19 18.7828
+485 20 17.1619
+485 21 13.5389
+485 22  9.5344
+485 23  6.6741
+485 24  4.9579
+485 25  2.1929
+485 26  0.9534
+485 27  0.3814
+485 28  0.0953
+# pixel 486
+486  1  0.6269
+486  2  2.0373
+486  3  5.4067
+486  4  9.7164
+486  5 15.2014
+486  6 18.4924
+486  7 19.5111
+486  8 20.6081
+486  9 21.8618
+486 10 22.3320
+486 11 22.3320
+486 12 22.1752
+486 13 21.7051
+486 14 21.4700
+486 15 20.3730
+486 16 19.2760
+486 17 18.1006
+486 18 16.8469
+486 19 15.4365
+486 20 14.1044
+486 21 11.1268
+486 22  7.8358
+486 23  5.4850
+486 24  4.0746
+486 25  1.8022
+486 26  0.7836
+486 27  0.3134
+486 28  0.0784
+# pixel 487
+487  1  0.7352
+487  2  2.3894
+487  3  6.3411
+487  4 11.3955
+487  5 17.8285
+487  6 21.6882
+487  7 22.8829
+487  8 24.1695
+487  9 25.6399
+487 10 26.1913
+487 11 26.1913
+487 12 26.0075
+487 13 25.4561
+487 14 25.1804
+487 15 23.8938
+487 16 22.6072
+487 17 21.2287
+487 18 19.7584
+487 19 18.1042
+487 20 16.5419
+487 21 13.0497
+487 22  9.1899
+487 23  6.4330
+487 24  4.7788
+487 25  2.1137
+487 26  0.9190
+487 27  0.3676
+487 28  0.0919
+# pixel 488
+488  1  0.6845
+488  2  2.2247
+488  3  5.9039
+488  4 10.6100
+488  5 16.5995
+488  6 20.1932
+488  7 21.3056
+488  8 22.5035
+488  9 23.8725
+488 10 24.3859
+488 11 24.3859
+488 12 24.2147
+488 13 23.7014
+488 14 23.4447
+488 15 22.2468
+488 16 21.0489
+488 17 19.7654
+488 18 18.3964
+488 19 16.8562
+488 20 15.4016
+488 21 12.1502
+488 22  8.5564
+488 23  5.9895
+488 24  4.4494
+488 25  1.9680
+488 26  0.8556
+488 27  0.3423
+488 28  0.0856
+# pixel 489
+489  1  0.7272
+489  2  2.3635
+489  3  6.2724
+489  4 11.2721
+489  5 17.6354
+489  6 21.4534
+489  7 22.6351
+489  8 23.9078
+489  9 25.3623
+489 10 25.9077
+489 11 25.9077
+489 12 25.7259
+489 13 25.1805
+489 14 24.9077
+489 15 23.6351
+489 16 22.3624
+489 17 20.9989
+489 18 19.5444
+489 19 17.9081
+489 20 16.3627
+489 21 12.9084
+489 22  9.0904
+489 23  6.3633
+489 24  4.7270
+489 25  2.0908
+489 26  0.9090
+489 27  0.3636
+489 28  0.0909
+# pixel 490
+490  1  0.7214
+490  2  2.3446
+490  3  6.2223
+490  4 11.1821
+490  5 17.4945
+490  6 21.2820
+490  7 22.4543
+490  8 23.7168
+490  9 25.1597
+490 10 25.7007
+490 11 25.7007
+490 12 25.5204
+490 13 24.9793
+490 14 24.7088
+490 15 23.4463
+490 16 22.1838
+490 17 20.8311
+490 18 19.3883
+490 19 17.7651
+490 20 16.2320
+490 21 12.8053
+490 22  9.0178
+490 23  6.3125
+490 24  4.6893
+490 25  2.0741
+490 26  0.9018
+490 27  0.3607
+490 28  0.0902
+# pixel 491
+491  1  0.7275
+491  2  2.3645
+491  3  6.2750
+491  4 11.2768
+491  5 17.6428
+491  6 21.4624
+491  7 22.6446
+491  8 23.9178
+491  9 25.3729
+491 10 25.9185
+491 11 25.9185
+491 12 25.7366
+491 13 25.1910
+491 14 24.9182
+491 15 23.6450
+491 16 22.3718
+491 17 21.0076
+491 18 19.5526
+491 19 17.9156
+491 20 16.3696
+491 21 12.9138
+491 22  9.0942
+491 23  6.3660
+491 24  4.7290
+491 25  2.0917
+491 26  0.9094
+491 27  0.3638
+491 28  0.0909
+# pixel 492
+492  1  0.7733
+492  2  2.5133
+492  3  6.6698
+492  4 11.9863
+492  5 18.7528
+492  6 22.8127
+492  7 24.0693
+492  8 25.4226
+492  9 26.9693
+492 10 27.5492
+492 11 27.5492
+492 12 27.3559
+492 13 26.7759
+492 14 26.4859
+492 15 25.1326
+492 16 23.7793
+492 17 22.3294
+492 18 20.7828
+492 19 19.0428
+492 20 17.3995
+492 21 13.7263
+492 22  9.6664
+492 23  6.7665
+492 24  5.0265
+492 25  2.2233
+492 26  0.9666
+492 27  0.3867
+492 28  0.0967
+# pixel 493
+493  1  0.8255
+493  2  2.6829
+493  3  7.1199
+493  4 12.7952
+493  5 20.0184
+493  6 24.3522
+493  7 25.6937
+493  8 27.1383
+493  9 28.7893
+493 10 29.4084
+493 11 29.4084
+493 12 29.2020
+493 13 28.5829
+493 14 28.2733
+493 15 26.8287
+493 16 25.3841
+493 17 23.8363
+493 18 22.1853
+493 19 20.3279
+493 20 18.5737
+493 21 14.6526
+493 22 10.3187
+493 23  7.2231
+493 24  5.3657
+493 25  2.3733
+493 26  1.0319
+493 27  0.4127
+493 28  0.1032
+# pixel 494
+494  1  0.6511
+494  2  2.1160
+494  3  5.6155
+494  4 10.0916
+494  5 15.7884
+494  6 19.2065
+494  7 20.2645
+494  8 21.4039
+494  9 22.7060
+494 10 23.1943
+494 11 23.1943
+494 12 23.0315
+494 13 22.5432
+494 14 22.2991
+494 15 21.1597
+494 16 20.0204
+494 17 18.7996
+494 18 17.4975
+494 19 16.0326
+494 20 14.6490
+494 21 11.5565
+494 22  8.1384
+494 23  5.6968
+494 24  4.2319
+494 25  1.8718
+494 26  0.8138
+494 27  0.3255
+494 28  0.0814
+# pixel 495
+495  1  0.7080
+495  2  2.3012
+495  3  6.1069
+495  4 10.9748
+495  5 17.1702
+495  6 20.8875
+495  7 22.0380
+495  8 23.2771
+495  9 24.6932
+495 10 25.2243
+495 11 25.2243
+495 12 25.0472
+495 13 24.5162
+495 14 24.2507
+495 15 23.0116
+495 16 21.7725
+495 17 20.4449
+495 18 19.0288
+495 19 17.4357
+495 20 15.9311
+495 21 12.5679
+495 22  8.8506
+495 23  6.1954
+495 24  4.6023
+495 25  2.0356
+495 26  0.8851
+495 27  0.3540
+495 28  0.0885
+# pixel 496
+496  1  0.7142
+496  2  2.3211
+496  3  6.1598
+496  4 11.0698
+496  5 17.3189
+496  6 21.0683
+496  7 22.2289
+496  8 23.4787
+496  9 24.9071
+496 10 25.4427
+496 11 25.4427
+496 12 25.2642
+496 13 24.7285
+496 14 24.4607
+496 15 23.2109
+496 16 21.9611
+496 17 20.6220
+496 18 19.1936
+496 19 17.5867
+496 20 16.0691
+496 21 12.6767
+496 22  8.9273
+496 23  6.2491
+496 24  4.6422
+496 25  2.0533
+496 26  0.8927
+496 27  0.3571
+496 28  0.0893
+# pixel 497
+497  1  0.6806
+497  2  2.2121
+497  3  5.8705
+497  4 10.5500
+497  5 16.5056
+497  6 20.0790
+497  7 21.1850
+497  8 22.3761
+497  9 23.7374
+497 10 24.2479
+497 11 24.2479
+497 12 24.0777
+497 13 23.5672
+497 14 23.3120
+497 15 22.1209
+497 16 20.9298
+497 17 19.6536
+497 18 18.2923
+497 19 16.7608
+497 20 15.3145
+497 21 12.0814
+497 22  8.5080
+497 23  5.9556
+497 24  4.4242
+497 25  1.9568
+497 26  0.8508
+497 27  0.3403
+497 28  0.0851
+# pixel 498
+498  1  0.6387
+498  2  2.0758
+498  3  5.5090
+498  4  9.9002
+498  5 15.4890
+498  6 18.8423
+498  7 19.8802
+498  8 20.9980
+498  9 22.2754
+498 10 22.7545
+498 11 22.7545
+498 12 22.5948
+498 13 22.1157
+498 14 21.8762
+498 15 20.7585
+498 16 19.6407
+498 17 18.4431
+498 18 17.1656
+498 19 15.7285
+498 20 14.3712
+498 21 11.3373
+498 22  7.9840
+498 23  5.5888
+498 24  4.1517
+498 25  1.8363
+498 26  0.7984
+498 27  0.3194
+498 28  0.0798
+# pixel 499
+499  1  0.7441
+499  2  2.4184
+499  3  6.4181
+499  4 11.5339
+499  5 18.0450
+499  6 21.9516
+499  7 23.1608
+499  8 24.4630
+499  9 25.9513
+499 10 26.5094
+499 11 26.5094
+499 12 26.3233
+499 13 25.7652
+499 14 25.4862
+499 15 24.1840
+499 16 22.8818
+499 17 21.4865
+499 18 19.9983
+499 19 18.3240
+499 20 16.7428
+499 21 13.2082
+499 22  9.3015
+499 23  6.5111
+499 24  4.8368
+499 25  2.1394
+499 26  0.9302
+499 27  0.3721
+499 28  0.0930
+# pixel 500
+500  1  0.7722
+500  2  2.5098
+500  3  6.6606
+500  4 11.9698
+500  5 18.7269
+500  6 22.7812
+500  7 24.0361
+500  8 25.3875
+500  9 26.9320
+500 10 27.5112
+500 11 27.5112
+500 12 27.3181
+500 13 26.7389
+500 14 26.4494
+500 15 25.0979
+500 16 23.7465
+500 17 22.2985
+500 18 20.7541
+500 19 19.0165
+500 20 17.3755
+500 21 13.7073
+500 22  9.6530
+500 23  6.7571
+500 24  5.0196
+500 25  2.2202
+500 26  0.9653
+500 27  0.3861
+500 28  0.0965
+# pixel 501
+501  1  0.7191
+501  2  2.3370
+501  3  6.2022
+501  4 11.1459
+501  5 17.4380
+501  6 21.2132
+501  7 22.3817
+501  8 23.6402
+501  9 25.0783
+501 10 25.6177
+501 11 25.6177
+501 12 25.4379
+501 13 24.8986
+501 14 24.6289
+501 15 23.3705
+501 16 22.1121
+501 17 20.7638
+501 18 19.3256
+501 19 17.7076
+501 20 16.1796
+501 21 12.7639
+501 22  8.9887
+501 23  6.2921
+501 24  4.6741
+501 25  2.0674
+501 26  0.8989
+501 27  0.3595
+501 28  0.0899
+# pixel 502
+502  1  0.6981
+502  2  2.2687
+502  3  6.0207
+502  4 10.8198
+502  5 16.9278
+502  6 20.5926
+502  7 21.7269
+502  8 22.9485
+502  9 24.3446
+502 10 24.8682
+502 11 24.8682
+502 12 24.6937
+502 13 24.1701
+502 14 23.9083
+502 15 22.6868
+502 16 21.4652
+502 17 20.1563
+502 18 18.7602
+502 19 17.1896
+502 20 15.7062
+502 21 12.3905
+502 22  8.7257
+502 23  6.1080
+502 24  4.5374
+502 25  2.0069
+502 26  0.8726
+502 27  0.3490
+502 28  0.0873
+# pixel 503
+503  1  0.7688
+503  2  2.4987
+503  3  6.6313
+503  4 11.9171
+503  5 18.6444
+503  6 22.6809
+503  7 23.9302
+503  8 25.2757
+503  9 26.8134
+503 10 27.3900
+503 11 27.3900
+503 12 27.1978
+503 13 26.6212
+503 14 26.3329
+503 15 24.9874
+503 16 23.6419
+503 17 22.2003
+503 18 20.6626
+503 19 18.9328
+503 20 17.2990
+503 21 13.6470
+503 22  9.6105
+503 23  6.7274
+503 24  4.9975
+503 25  2.2104
+503 26  0.9611
+503 27  0.3844
+503 28  0.0961
+# pixel 504
+504  1  0.6773
+504  2  2.2011
+504  3  5.8414
+504  4 10.4976
+504  5 16.4236
+504  6 19.9793
+504  7 21.0798
+504  8 22.2650
+504  9 23.6195
+504 10 24.1275
+504 11 24.1275
+504 12 23.9582
+504 13 23.4502
+504 14 23.1963
+504 15 22.0110
+504 16 20.8258
+504 17 19.5560
+504 18 18.2014
+504 19 16.6776
+504 20 15.2384
+504 21 12.0214
+504 22  8.4658
+504 23  5.9260
+504 24  4.4022
+504 25  1.9471
+504 26  0.8466
+504 27  0.3386
+504 28  0.0847
+# pixel 505
+505  1  0.7783
+505  2  2.5295
+505  3  6.7130
+505  4 12.0640
+505  5 18.8743
+505  6 22.9605
+505  7 24.2253
+505  8 25.5874
+505  9 27.1440
+505 10 27.7278
+505 11 27.7278
+505 12 27.5332
+505 13 26.9494
+505 14 26.6576
+505 15 25.2955
+505 16 23.9334
+505 17 22.4741
+505 18 20.9174
+505 19 19.1662
+505 20 17.5123
+505 21 13.8152
+505 22  9.7290
+505 23  6.8103
+505 24  5.0591
+505 25  2.2377
+505 26  0.9729
+505 27  0.3892
+505 28  0.0973
+# pixel 506
+506  1  0.7946
+506  2  2.5825
+506  3  6.8536
+506  4 12.3165
+506  5 19.2694
+506  6 23.4412
+506  7 24.7324
+506  8 26.1230
+506  9 27.7122
+506 10 28.3082
+506 11 28.3082
+506 12 28.1095
+506 13 27.5136
+506 14 27.2156
+506 15 25.8250
+506 16 24.4344
+506 17 22.9445
+506 18 21.3553
+506 19 19.5674
+506 20 17.8789
+506 21 14.1044
+506 22  9.9327
+506 23  6.9529
+506 24  5.1650
+506 25  2.2845
+506 26  0.9933
+506 27  0.3973
+506 28  0.0993
+# pixel 507
+507  1  0.7584
+507  2  2.4647
+507  3  6.5409
+507  4 11.7547
+507  5 18.3904
+507  6 22.3718
+507  7 23.6042
+507  8 24.9313
+507  9 26.4481
+507 10 27.0169
+507 11 27.0169
+507 12 26.8273
+507 13 26.2585
+507 14 25.9741
+507 15 24.6470
+507 16 23.3198
+507 17 21.8979
+507 18 20.3811
+507 19 18.6748
+507 20 17.0633
+507 21 13.4610
+507 22  9.4796
+507 23  6.6357
+507 24  4.9294
+507 25  2.1803
+507 26  0.9480
+507 27  0.3792
+507 28  0.0948
+# pixel 508
+508  1  0.7121
+508  2  2.3143
+508  3  6.1418
+508  4 11.0374
+508  5 17.2681
+508  6 21.0066
+508  7 22.1637
+508  8 23.4099
+508  9 24.8340
+508 10 25.3681
+508 11 25.3681
+508 12 25.1901
+508 13 24.6560
+508 14 24.3890
+508 15 23.1428
+508 16 21.8967
+508 17 20.5615
+508 18 19.1373
+508 19 17.5351
+508 20 16.0220
+508 21 12.6395
+508 22  8.9011
+508 23  6.2308
+508 24  4.6286
+508 25  2.0473
+508 26  0.8901
+508 27  0.3560
+508 28  0.0890
+# pixel 509
+509  1  0.6627
+509  2  2.1537
+509  3  5.7157
+509  4 10.2717
+509  5 16.0703
+509  6 19.5494
+509  7 20.6263
+509  8 21.7860
+509  9 23.1114
+509 10 23.6084
+509 11 23.6084
+509 12 23.4427
+509 13 22.9457
+509 14 22.6972
+509 15 21.5375
+509 16 20.3778
+509 17 19.1352
+509 18 17.8098
+509 19 16.3188
+509 20 14.9106
+509 21 11.7628
+509 22  8.2836
+509 23  5.7986
+509 24  4.3075
+509 25  1.9052
+509 26  0.8284
+509 27  0.3313
+509 28  0.0828
+# pixel 510
+510  1  0.7879
+510  2  2.5607
+510  3  6.7957
+510  4 12.2125
+510  5 19.1067
+510  6 23.2432
+510  7 24.5235
+510  8 25.9023
+510  9 27.4781
+510 10 28.0691
+510 11 28.0691
+510 12 27.8721
+510 13 27.2812
+510 14 26.9857
+510 15 25.6069
+510 16 24.2280
+510 17 22.7507
+510 18 21.1749
+510 19 19.4021
+510 20 17.7278
+510 21 13.9853
+510 22  9.8488
+510 23  6.8942
+510 24  5.1214
+510 25  2.2652
+510 26  0.9849
+510 27  0.3940
+510 28  0.0985
+# pixel 511
+511  1  0.8610
+511  2  2.7984
+511  3  7.4265
+511  4 13.3461
+511  5 20.8802
+511  6 25.4007
+511  7 26.7999
+511  8 28.3067
+511  9 30.0288
+511 10 30.6746
+511 11 30.6746
+511 12 30.4593
+511 13 29.8135
+511 14 29.4906
+511 15 27.9838
+511 16 26.4770
+511 17 24.8625
+511 18 23.1405
+511 19 21.2031
+511 20 19.3734
+511 21 15.2835
+511 22 10.7630
+511 23  7.5341
+511 24  5.5968
+511 25  2.4755
+511 26  1.0763
+511 27  0.4305
+511 28  0.1076
+# pixel 512
+512  1  0.6341
+512  2  2.0607
+512  3  5.4688
+512  4  9.8280
+512  5 15.3760
+512  6 18.7048
+512  7 19.7352
+512  8 20.8448
+512  9 22.1129
+512 10 22.5884
+512 11 22.5884
+512 12 22.4299
+512 13 21.9544
+512 14 21.7166
+512 15 20.6070
+512 16 19.4974
+512 17 18.3085
+512 18 17.0404
+512 19 15.6138
+512 20 14.2664
+512 21 11.2546
+512 22  7.9258
+512 23  5.5480
+512 24  4.1214
+512 25  1.8229
+512 26  0.7926
+512 27  0.3170
+512 28  0.0793
+# pixel 513
+513  1  0.6775
+513  2  2.2019
+513  3  5.8434
+513  4 10.5013
+513  5 16.4294
+513  6 19.9863
+513  7 21.0872
+513  8 22.2728
+513  9 23.6278
+513 10 24.1359
+513 11 24.1359
+513 12 23.9666
+513 13 23.4584
+513 14 23.2044
+513 15 22.0188
+513 16 20.8331
+513 17 19.5628
+513 18 18.2078
+513 19 16.6834
+513 20 15.2438
+513 21 12.0256
+513 22  8.4688
+513 23  5.9281
+513 24  4.4038
+513 25  1.9478
+513 26  0.8469
+513 27  0.3388
+513 28  0.0847
+# pixel 514
+514  1  0.7816
+514  2  2.5403
+514  3  6.7416
+514  4 12.1153
+514  5 18.9547
+514  6 23.0582
+514  7 24.3284
+514  8 25.6963
+514  9 27.2595
+514 10 27.8458
+514 11 27.8458
+514 12 27.6504
+514 13 27.0641
+514 14 26.7710
+514 15 25.4031
+514 16 24.0353
+514 17 22.5697
+514 18 21.0065
+514 19 19.2478
+514 20 17.5868
+514 21 13.8740
+514 22  9.7704
+514 23  6.8393
+514 24  5.0806
+514 25  2.2472
+514 26  0.9770
+514 27  0.3908
+514 28  0.0977
+# pixel 515
+515  1  0.7447
+515  2  2.4202
+515  3  6.4228
+515  4 11.5424
+515  5 18.0583
+515  6 21.9679
+515  7 23.1780
+515  8 24.4812
+515  9 25.9705
+515 10 26.5290
+515 11 26.5290
+515 12 26.3428
+515 13 25.7843
+515 14 25.5051
+515 15 24.2019
+515 16 22.8987
+515 17 21.5025
+515 18 20.0131
+515 19 18.3376
+515 20 16.7552
+515 21 13.2180
+515 22  9.3084
+515 23  6.5159
+515 24  4.8404
+515 25  2.1409
+515 26  0.9308
+515 27  0.3723
+515 28  0.0931
+# pixel 516
+516  1  0.6971
+516  2  2.2655
+516  3  6.0122
+516  4 10.8046
+516  5 16.9039
+516  6 20.5635
+516  7 21.6963
+516  8 22.9161
+516  9 24.3103
+516 10 24.8331
+516 11 24.8331
+516 12 24.6588
+516 13 24.1360
+516 14 23.8746
+516 15 22.6547
+516 16 21.4349
+516 17 20.1279
+516 18 18.7337
+516 19 17.1653
+516 20 15.6840
+516 21 12.3730
+516 22  8.7134
+516 23  6.0994
+516 24  4.5309
+516 25  2.0041
+516 26  0.8713
+516 27  0.3485
+516 28  0.0871
+# pixel 517
+517  1  0.7423
+517  2  2.4123
+517  3  6.4019
+517  4 11.5049
+517  5 17.9996
+517  6 21.8965
+517  7 23.1026
+517  8 24.4016
+517  9 25.8861
+517 10 26.4428
+517 11 26.4428
+517 12 26.2572
+517 13 25.7005
+517 14 25.4222
+517 15 24.1232
+517 16 22.8243
+517 17 21.4326
+517 18 19.9481
+517 19 18.2780
+517 20 16.7007
+517 21 13.1750
+517 22  9.2782
+517 23  6.4947
+517 24  4.8246
+517 25  2.1340
+517 26  0.9278
+517 27  0.3711
+517 28  0.0928
+# pixel 518
+518  1  0.6984
+518  2  2.2697
+518  3  6.0235
+518  4 10.8249
+518  5 16.9357
+518  6 20.6023
+518  7 21.7371
+518  8 22.9593
+518  9 24.3561
+518 10 24.8798
+518 11 24.8798
+518 12 24.7052
+518 13 24.1815
+518 14 23.9196
+518 15 22.6974
+518 16 21.4752
+518 17 20.1658
+518 18 18.7690
+518 19 17.1976
+518 20 15.7136
+518 21 12.3963
+518 22  8.7298
+518 23  6.1108
+518 24  4.5395
+518 25  2.0078
+518 26  0.8730
+518 27  0.3492
+518 28  0.0873
+# pixel 519
+519  1  0.6740
+519  2  2.1904
+519  3  5.8129
+519  4 10.4464
+519  5 16.3435
+519  6 19.8818
+519  7 20.9770
+519  8 22.1564
+519  9 23.5043
+519 10 24.0098
+519 11 24.0098
+519 12 23.8413
+519 13 23.3358
+519 14 23.0831
+519 15 21.9037
+519 16 20.7242
+519 17 19.4606
+519 18 18.1126
+519 19 16.5962
+519 20 15.1641
+519 21 11.9628
+519 22  8.4245
+519 23  5.8971
+519 24  4.3807
+519 25  1.9376
+519 26  0.8424
+519 27  0.3370
+519 28  0.0842
+# pixel 520
+520  1  0.7124
+520  2  2.3153
+520  3  6.1444
+520  4 11.0421
+520  5 17.2755
+520  6 21.0155
+520  7 22.1732
+520  8 23.4199
+520  9 24.8446
+520 10 25.3789
+520 11 25.3789
+520 12 25.2008
+520 13 24.6665
+520 14 24.3994
+520 15 23.1527
+520 16 21.9060
+520 17 20.5703
+520 18 19.1455
+520 19 17.5426
+520 20 16.0288
+520 21 12.6449
+520 22  8.9049
+520 23  6.2334
+520 24  4.6305
+520 25  2.0481
+520 26  0.8905
+520 27  0.3562
+520 28  0.0890
+# pixel 521
+521  1  0.7224
+521  2  2.3480
+521  3  6.2311
+521  4 11.1979
+521  5 17.5193
+521  6 21.3122
+521  7 22.4861
+521  8 23.7504
+521  9 25.1953
+521 10 25.7372
+521 11 25.7372
+521 12 25.5565
+521 13 25.0147
+521 14 24.7438
+521 15 23.4795
+521 16 22.2152
+521 17 20.8606
+521 18 19.4157
+521 19 17.7902
+521 20 16.2550
+521 21 12.8234
+521 22  9.0306
+521 23  6.3214
+521 24  4.6959
+521 25  2.0770
+521 26  0.9031
+521 27  0.3612
+521 28  0.0903
+# pixel 522
+522  1  0.6434
+522  2  2.0910
+522  3  5.5493
+522  4  9.9727
+522  5 15.6024
+522  6 18.9803
+522  7 20.0258
+522  8 21.1518
+522  9 22.4386
+522 10 22.9211
+522 11 22.9211
+522 12 22.7603
+522 13 22.2777
+522 14 22.0364
+522 15 20.9105
+522 16 19.7845
+522 17 18.5782
+522 18 17.2914
+522 19 15.8437
+522 20 14.4765
+522 21 11.4203
+522 22  8.0425
+522 23  5.6297
+522 24  4.1821
+522 25  1.8498
+522 26  0.8042
+522 27  0.3217
+522 28  0.0804
+# pixel 523
+523  1  0.7048
+523  2  2.2905
+523  3  6.0786
+523  4 10.9238
+523  5 17.0905
+523  6 20.7905
+523  7 21.9358
+523  8 23.1691
+523  9 24.5786
+523 10 25.1072
+523 11 25.1072
+523 12 24.9310
+523 13 24.4024
+523 14 24.1381
+523 15 22.9048
+523 16 21.6715
+523 17 20.3500
+523 18 18.9405
+523 19 17.3548
+523 20 15.8572
+523 21 12.5095
+523 22  8.8095
+523 23  6.1667
+523 24  4.5810
+523 25  2.0262
+523 26  0.8810
+523 27  0.3524
+523 28  0.0881
+# pixel 524
+524  1  0.7744
+524  2  2.5167
+524  3  6.6790
+524  4 12.0028
+524  5 18.7786
+524  6 22.8441
+524  7 24.1024
+524  8 25.4576
+524  9 27.0063
+524 10 27.5871
+524 11 27.5871
+524 12 27.3935
+524 13 26.8127
+524 14 26.5223
+524 15 25.1672
+524 16 23.8120
+524 17 22.3601
+524 18 20.8113
+524 19 19.0690
+524 20 17.4234
+524 21 13.7452
+524 22  9.6797
+524 23  6.7758
+524 24  5.0334
+524 25  2.2263
+524 26  0.9680
+524 27  0.3872
+524 28  0.0968
+# pixel 525
+525  1  0.6528
+525  2  2.1216
+525  3  5.6303
+525  4 10.1182
+525  5 15.8301
+525  6 19.2572
+525  7 20.3180
+525  8 21.4604
+525  9 22.7660
+525 10 23.2556
+525 11 23.2556
+525 12 23.0924
+525 13 22.6028
+525 14 22.3580
+525 15 21.2156
+525 16 20.0732
+525 17 18.8493
+525 18 17.5437
+525 19 16.0749
+525 20 14.6877
+525 21 11.5870
+525 22  8.1598
+525 23  5.7119
+525 24  4.2431
+525 25  1.8768
+525 26  0.8160
+525 27  0.3264
+525 28  0.0816
+# pixel 526
+526  1  0.7617
+526  2  2.4756
+526  3  6.5700
+526  4 11.8069
+526  5 18.4721
+526  6 22.4713
+526  7 23.7091
+526  8 25.0421
+526  9 26.5656
+526 10 27.1369
+526 11 27.1369
+526 12 26.9465
+526 13 26.3752
+526 14 26.0895
+526 15 24.7565
+526 16 23.4234
+526 17 21.9952
+526 18 20.4717
+526 19 18.7578
+526 20 17.1391
+526 21 13.5209
+526 22  9.5217
+526 23  6.6652
+526 24  4.9513
+526 25  2.1900
+526 26  0.9522
+526 27  0.3809
+526 28  0.0952
+# pixel 527
+527  1  0.6592
+527  2  2.1425
+527  3  5.6860
+527  4 10.2183
+527  5 15.9866
+527  6 19.4476
+527  7 20.5189
+527  8 21.6726
+527  9 22.9911
+527 10 23.4855
+527 11 23.4855
+527 12 23.3207
+527 13 22.8263
+527 14 22.5790
+527 15 21.4254
+527 16 20.2717
+527 17 19.0356
+527 18 17.7171
+527 19 16.2338
+527 20 14.8329
+527 21 11.7015
+527 22  8.2405
+527 23  5.7684
+527 24  4.2851
+527 25  1.8953
+527 26  0.8241
+527 27  0.3296
+527 28  0.0824
+# pixel 528
+528  1  0.7982
+528  2  2.5942
+528  3  6.8845
+528  4 12.3722
+528  5 19.3564
+528  6 23.5470
+528  7 24.8441
+528  8 26.2409
+528  9 27.8374
+528 10 28.4360
+528 11 28.4360
+528 12 28.2365
+528 13 27.6378
+528 14 27.3385
+528 15 25.9416
+528 16 24.5448
+528 17 23.0481
+528 18 21.4517
+528 19 19.6558
+528 20 17.9596
+528 21 14.1681
+528 22  9.9775
+528 23  6.9843
+528 24  5.1883
+528 25  2.2948
+528 26  0.9978
+528 27  0.3991
+528 28  0.0998
+# pixel 529
+529  1  0.8087
+529  2  2.6284
+529  3  6.9752
+529  4 12.5352
+529  5 19.6115
+529  6 23.8573
+529  7 25.1715
+529  8 26.5868
+529  9 28.2042
+529 10 28.8108
+529 11 28.8108
+529 12 28.6086
+529 13 28.0021
+529 14 27.6988
+529 15 26.2835
+529 16 24.8683
+529 17 23.3519
+529 18 21.7344
+529 19 19.9148
+529 20 18.1963
+529 21 14.3548
+529 22 10.1090
+529 23  7.0763
+529 24  5.2567
+529 25  2.3251
+529 26  1.0109
+529 27  0.4044
+529 28  0.1011
+# pixel 530
+530  1  0.7772
+530  2  2.5260
+530  3  6.7037
+530  4 12.0473
+530  5 18.8482
+530  6 22.9287
+530  7 24.1917
+530  8 25.5519
+530  9 27.1064
+530 10 27.6893
+530 11 27.6893
+530 12 27.4950
+530 13 26.9121
+530 14 26.6206
+530 15 25.2604
+530 16 23.9002
+530 17 22.4429
+530 18 20.8884
+530 19 19.1396
+530 20 17.4880
+530 21 13.7961
+530 22  9.7155
+530 23  6.8009
+530 24  5.0521
+530 25  2.2346
+530 26  0.9716
+530 27  0.3886
+530 28  0.0972
+# pixel 531
+531  1  0.6886
+531  2  2.2380
+531  3  5.9392
+531  4 10.6733
+531  5 16.6986
+531  6 20.3137
+531  7 21.4327
+531  8 22.6378
+531  9 24.0150
+531 10 24.5314
+531 11 24.5314
+531 12 24.3593
+531 13 23.8428
+531 14 23.5846
+531 15 22.3795
+531 16 21.1745
+531 17 19.8834
+531 18 18.5062
+531 19 16.9568
+531 20 15.4935
+531 21 12.2227
+531 22  8.6075
+531 23  6.0253
+531 24  4.4759
+531 25  1.9797
+531 26  0.8608
+531 27  0.3443
+531 28  0.0861
+# pixel 532
+532  1  0.7346
+532  2  2.3874
+532  3  6.3357
+532  4 11.3859
+532  5 17.8134
+532  6 21.6699
+532  7 22.8636
+532  8 24.1491
+532  9 25.6182
+532 10 26.1691
+532 11 26.1691
+532 12 25.9855
+532 13 25.4346
+532 14 25.1591
+532 15 23.8736
+532 16 22.5881
+532 17 21.2108
+532 18 19.7416
+532 19 18.0888
+532 20 16.5279
+532 21 13.0387
+532 22  9.1821
+532 23  6.4275
+532 24  4.7747
+532 25  2.1119
+532 26  0.9182
+532 27  0.3673
+532 28  0.0918
+# pixel 533
+533  1  0.7890
+533  2  2.5643
+533  3  6.8054
+533  4 12.2299
+533  5 19.1339
+533  6 23.2763
+533  7 24.5585
+533  8 25.9393
+533  9 27.5174
+533 10 28.1091
+533 11 28.1091
+533 12 27.9119
+533 13 27.3201
+533 14 27.0242
+533 15 25.6434
+533 16 24.2626
+533 17 22.7832
+533 18 21.2051
+533 19 19.4298
+533 20 17.7531
+533 21 14.0052
+533 22  9.8629
+533 23  6.9040
+533 24  5.1287
+533 25  2.2685
+533 26  0.9863
+533 27  0.3945
+533 28  0.0986
+# pixel 534
+534  1  0.7380
+534  2  2.3985
+534  3  6.3654
+534  4 11.4392
+534  5 17.8968
+534  6 21.7714
+534  7 22.9706
+534  8 24.2621
+534  9 25.7382
+534 10 26.2917
+534 11 26.2917
+534 12 26.1072
+534 13 25.5537
+534 14 25.2769
+534 15 23.9854
+534 16 22.6939
+534 17 21.3101
+534 18 19.8341
+534 19 18.1735
+534 20 16.6053
+534 21 13.0997
+534 22  9.2251
+534 23  6.4576
+534 24  4.7971
+534 25  2.1218
+534 26  0.9225
+534 27  0.3690
+534 28  0.0923
+# pixel 535
+535  1  0.7567
+535  2  2.4591
+535  3  6.5262
+535  4 11.7282
+535  5 18.3489
+535  6 22.3213
+535  7 23.5509
+535  8 24.8751
+535  9 26.3884
+535 10 26.9559
+535 11 26.9559
+535 12 26.7667
+535 13 26.1992
+535 14 25.9155
+535 15 24.5913
+535 16 23.2672
+535 17 21.8484
+535 18 20.3351
+535 19 18.6326
+535 20 17.0248
+535 21 13.4306
+535 22  9.4582
+535 23  6.6207
+535 24  4.9183
+535 25  2.1754
+535 26  0.9458
+535 27  0.3783
+535 28  0.0946
+# pixel 536
+536  1  0.6490
+536  2  2.1091
+536  3  5.5973
+536  4 10.0589
+536  5 15.7374
+536  6 19.1444
+536  7 20.1990
+536  8 21.3347
+536  9 22.6326
+536 10 23.1193
+536 11 23.1193
+536 12 22.9571
+536 13 22.4704
+536 14 22.2270
+536 15 21.0913
+536 16 19.9556
+536 17 18.7388
+536 18 17.4409
+536 19 15.9807
+536 20 14.6017
+536 21 11.5191
+536 22  8.1120
+536 23  5.6784
+536 24  4.2183
+536 25  1.8658
+536 26  0.8112
+536 27  0.3245
+536 28  0.0811
+# pixel 537
+537  1  0.6801
+537  2  2.2103
+537  3  5.8657
+537  4 10.5412
+537  5 16.4919
+537  6 20.0624
+537  7 21.1675
+537  8 22.3576
+537  9 23.7178
+537 10 24.2278
+537 11 24.2278
+537 12 24.0578
+537 13 23.5478
+537 14 23.2927
+537 15 22.1026
+537 16 20.9125
+537 17 19.6373
+537 18 18.2771
+537 19 16.7470
+537 20 15.3018
+537 21 12.0714
+537 22  8.5010
+537 23  5.9507
+537 24  4.4205
+537 25  1.9552
+537 26  0.8501
+537 27  0.3400
+537 28  0.0850
+# pixel 538
+538  1  0.6628
+538  2  2.1542
+538  3  5.7170
+538  4 10.2741
+538  5 16.0739
+538  6 19.5538
+538  7 20.6310
+538  8 21.7909
+538  9 23.1166
+538 10 23.6138
+538 11 23.6138
+538 12 23.4480
+538 13 22.9509
+538 14 22.7023
+538 15 21.5424
+538 16 20.3824
+538 17 19.1396
+538 18 17.8139
+538 19 16.3225
+538 20 14.9140
+538 21 11.7654
+538 22  8.2855
+538 23  5.7999
+538 24  4.3085
+538 25  1.9057
+538 26  0.8286
+538 27  0.3314
+538 28  0.0829
+# pixel 539
+539  1  0.6846
+539  2  2.2251
+539  3  5.9051
+539  4 10.6120
+539  5 16.6027
+539  6 20.1971
+539  7 21.3096
+539  8 22.5078
+539  9 23.8771
+539 10 24.3906
+539 11 24.3906
+539 12 24.2194
+539 13 23.7059
+539 14 23.4492
+539 15 22.2510
+539 16 21.0529
+539 17 19.7692
+539 18 18.3999
+539 19 16.8594
+539 20 15.4046
+539 21 12.1525
+539 22  8.5581
+539 23  5.9907
+539 24  4.4502
+539 25  1.9684
+539 26  0.8558
+539 27  0.3423
+539 28  0.0856
+# pixel 540
+540  1  0.7688
+540  2  2.4987
+540  3  6.6312
+540  4 11.9169
+540  5 18.6441
+540  6 22.6805
+540  7 23.9298
+540  8 25.2753
+540  9 26.8129
+540 10 27.3895
+540 11 27.3895
+540 12 27.1973
+540 13 26.6207
+540 14 26.3324
+540 15 24.9870
+540 16 23.6415
+540 17 22.1999
+540 18 20.6623
+540 19 18.9324
+540 20 17.2987
+540 21 13.6467
+540 22  9.6104
+540 23  6.7273
+540 24  4.9974
+540 25  2.2104
+540 26  0.9610
+540 27  0.3844
+540 28  0.0961
+# pixel 541
+541  1  0.7075
+541  2  2.2993
+541  3  6.1019
+541  4 10.9657
+541  5 17.1560
+541  6 20.8702
+541  7 22.0198
+541  8 23.2579
+541  9 24.6728
+541 10 25.2034
+541 11 25.2034
+541 12 25.0265
+541 13 24.4959
+541 14 24.2306
+541 15 22.9926
+541 16 21.7545
+541 17 20.4280
+541 18 19.0131
+541 19 17.4213
+541 20 15.9179
+541 21 12.5575
+541 22  8.8433
+541 23  6.1903
+541 24  4.5985
+541 25  2.0340
+541 26  0.8843
+541 27  0.3537
+541 28  0.0884
+# pixel 542
+542  1  0.7803
+542  2  2.5361
+542  3  6.7304
+542  4 12.0952
+542  5 18.9231
+542  6 23.0198
+542  7 24.2879
+542  8 25.6534
+542  9 27.2141
+542 10 27.7994
+542 11 27.7994
+542 12 27.6043
+542 13 27.0190
+542 14 26.7264
+542 15 25.3608
+542 16 23.9952
+542 17 22.5321
+542 18 20.9714
+542 19 19.2157
+542 20 17.5575
+542 21 13.8509
+542 22  9.7542
+542 23  6.8279
+542 24  5.0722
+542 25  2.2435
+542 26  0.9754
+542 27  0.3902
+542 28  0.0975
+# pixel 543
+543  1  0.5926
+543  2  1.9260
+543  3  5.1113
+543  4  9.1856
+543  5 14.3710
+543  6 17.4823
+543  7 18.4453
+543  8 19.4824
+543  9 20.6676
+543 10 21.1121
+543 11 21.1121
+543 12 20.9639
+543 13 20.5195
+543 14 20.2972
+543 15 19.2601
+543 16 18.2230
+543 17 17.1119
+543 18 15.9266
+543 19 14.5933
+543 20 13.3339
+543 21 10.5190
+543 22  7.4077
+543 23  5.1854
+543 24  3.8520
+543 25  1.7038
+543 26  0.7408
+543 27  0.2963
+543 28  0.0741
+# pixel 544
+544  1  0.7204
+544  2  2.3414
+544  3  6.2138
+544  4 11.1669
+544  5 17.4708
+544  6 21.2531
+544  7 22.4239
+544  8 23.6846
+544  9 25.1255
+544 10 25.6659
+544 11 25.6659
+544 12 25.4857
+544 13 24.9454
+544 14 24.6752
+544 15 23.4145
+544 16 22.1537
+544 17 20.8029
+544 18 19.3620
+544 19 17.7410
+544 20 16.2100
+544 21 12.7879
+544 22  9.0056
+544 23  6.3039
+544 24  4.6829
+544 25  2.0713
+544 26  0.9006
+544 27  0.3602
+544 28  0.0901
+# pixel 545
+545  1  0.7136
+545  2  2.3193
+545  3  6.1551
+545  4 11.0614
+545  5 17.3057
+545  6 21.0523
+545  7 22.2120
+545  8 23.4609
+545  9 24.8881
+545 10 25.4234
+545 11 25.4234
+545 12 25.2450
+545 13 24.7097
+545 14 24.4421
+545 15 23.1933
+545 16 21.9444
+545 17 20.6063
+545 18 19.1790
+545 19 17.5734
+545 20 16.0569
+545 21 12.6671
+545 22  8.9205
+545 23  6.2443
+545 24  4.6387
+545 25  2.0517
+545 26  0.8920
+545 27  0.3568
+545 28  0.0892
+# pixel 546
+546  1  0.8569
+546  2  2.7848
+546  3  7.3904
+546  4 13.2813
+546  5 20.7788
+546  6 25.2773
+546  7 26.6697
+546  8 28.1692
+546  9 29.8830
+546 10 30.5256
+546 11 30.5256
+546 12 30.3114
+546 13 29.6687
+546 14 29.3474
+546 15 27.8479
+546 16 26.3484
+546 17 24.7418
+546 18 23.0281
+546 19 21.1001
+546 20 19.2793
+546 21 15.2092
+546 22 10.7107
+546 23  7.4975
+546 24  5.5696
+546 25  2.4635
+546 26  1.0711
+546 27  0.4284
+546 28  0.1071
+# pixel 547
+547  1  0.7070
+547  2  2.2978
+547  3  6.0981
+547  4 10.9589
+547  5 17.1455
+547  6 20.8574
+547  7 22.0063
+547  8 23.2436
+547  9 24.6576
+547 10 25.1879
+547 11 25.1879
+547 12 25.0111
+547 13 24.4809
+547 14 24.2157
+547 15 22.9784
+547 16 21.7411
+547 17 20.4155
+547 18 19.0014
+547 19 17.4106
+547 20 15.9081
+547 21 12.5498
+547 22  8.8379
+547 23  6.1865
+547 24  4.5957
+547 25  2.0327
+547 26  0.8838
+547 27  0.3535
+547 28  0.0884
+# pixel 548
+548  1  0.7154
+548  2  2.3249
+548  3  6.1700
+548  4 11.0881
+548  5 17.3475
+548  6 21.1031
+548  7 22.2655
+548  8 23.5174
+548  9 24.9481
+548 10 25.4847
+548 11 25.4847
+548 12 25.3058
+548 13 24.7693
+548 14 24.5010
+548 15 23.2492
+548 16 21.9973
+548 17 20.6560
+548 18 19.2253
+548 19 17.6157
+548 20 16.0956
+548 21 12.6976
+548 22  8.9420
+548 23  6.2594
+548 24  4.6498
+548 25  2.0567
+548 26  0.8942
+548 27  0.3577
+548 28  0.0894
+# pixel 549
+549  1  0.7165
+549  2  2.3285
+549  3  6.1796
+549  4 11.1053
+549  5 17.3745
+549  6 21.1359
+549  7 22.3002
+549  8 23.5540
+549  9 24.9870
+549 10 25.5243
+549 11 25.5243
+549 12 25.3452
+549 13 24.8079
+549 14 24.5392
+549 15 23.2853
+549 16 22.0315
+549 17 20.6881
+549 18 19.2552
+549 19 17.6431
+549 20 16.1206
+549 21 12.7174
+549 22  8.9559
+549 23  6.2691
+549 24  4.6571
+549 25  2.0599
+549 26  0.8956
+549 27  0.3582
+549 28  0.0896
+# pixel 550
+550  1  0.7698
+550  2  2.5017
+550  3  6.6392
+550  4 11.9313
+550  5 18.6667
+550  6 22.7080
+550  7 23.9589
+550  8 25.3059
+550  9 26.8455
+550 10 27.4228
+550 11 27.4228
+550 12 27.2304
+550 13 26.6530
+550 14 26.3644
+550 15 25.0173
+550 16 23.6702
+550 17 22.2269
+550 18 20.6874
+550 19 18.9554
+550 20 17.3197
+550 21 13.6633
+550 22  9.6220
+550 23  6.7354
+550 24  5.0035
+550 25  2.2131
+550 26  0.9622
+550 27  0.3849
+550 28  0.0962
+# pixel 551
+551  1  0.6393
+551  2  2.0777
+551  3  5.5140
+551  4  9.9092
+551  5 15.5032
+551  6 18.8595
+551  7 19.8984
+551  8 21.0172
+551  9 22.2958
+551 10 22.7753
+551 11 22.7753
+551 12 22.6154
+551 13 22.1360
+551 14 21.8962
+551 15 20.7774
+551 16 19.6587
+551 17 18.4600
+551 18 17.1813
+551 19 15.7429
+551 20 14.3844
+551 21 11.3477
+551 22  7.9913
+551 23  5.5939
+551 24  4.1555
+551 25  1.8380
+551 26  0.7991
+551 27  0.3197
+551 28  0.0799
+# pixel 552
+552  1  0.7338
+552  2  2.3848
+552  3  6.3288
+552  4 11.3734
+552  5 17.7939
+552  6 21.6462
+552  7 22.8386
+552  8 24.1227
+552  9 25.5902
+552 10 26.1406
+552 11 26.1406
+552 12 25.9571
+552 13 25.4068
+552 14 25.1316
+552 15 23.8475
+552 16 22.5634
+552 17 21.1876
+552 18 19.7201
+552 19 18.0691
+552 20 16.5098
+552 21 13.0244
+552 22  9.1721
+552 23  6.4205
+552 24  4.7695
+552 25  2.1096
+552 26  0.9172
+552 27  0.3669
+552 28  0.0917
+# pixel 553
+553  1  0.6465
+553  2  2.1010
+553  3  5.5758
+553  4 10.0203
+553  5 15.6769
+553  6 19.0709
+553  7 20.1214
+553  8 21.2527
+553  9 22.5457
+553 10 23.0305
+553 11 23.0305
+553 12 22.8689
+553 13 22.3841
+553 14 22.1416
+553 15 21.0103
+553 16 19.8790
+553 17 18.6669
+553 18 17.3739
+553 19 15.9193
+553 20 14.5456
+553 21 11.4749
+553 22  8.0809
+553 23  5.6566
+553 24  4.2021
+553 25  1.8586
+553 26  0.8081
+553 27  0.3232
+553 28  0.0808
+# pixel 554
+554  1  0.7159
+554  2  2.3267
+554  3  6.1748
+554  4 11.0967
+554  5 17.3609
+554  6 21.1194
+554  7 22.2828
+554  8 23.5357
+554  9 24.9675
+554 10 25.5044
+554 11 25.5044
+554 12 25.3254
+554 13 24.7885
+554 14 24.5200
+554 15 23.2672
+554 16 22.0143
+554 17 20.6720
+554 18 19.2402
+554 19 17.6294
+554 20 16.1081
+554 21 12.7075
+554 22  8.9489
+554 23  6.2642
+554 24  4.6534
+554 25  2.0583
+554 26  0.8949
+554 27  0.3580
+554 28  0.0895
+# pixel 555
+555  1  0.8353
+555  2  2.7146
+555  3  7.2042
+555  4 12.9468
+555  5 20.2554
+555  6 24.6406
+555  7 25.9979
+555  8 27.4597
+555  9 29.1302
+555 10 29.7567
+555 11 29.7567
+555 12 29.5478
+555 13 28.9214
+555 14 28.6082
+555 15 27.1464
+555 16 25.6847
+555 17 24.1186
+555 18 22.4480
+555 19 20.5686
+555 20 18.7937
+555 21 14.8261
+555 22 10.4409
+555 23  7.3087
+555 24  5.4293
+555 25  2.4014
+555 26  1.0441
+555 27  0.4176
+555 28  0.1044
+# pixel 556
+556  1  0.8400
+556  2  2.7301
+556  3  7.2453
+556  4 13.0205
+556  5 20.3708
+556  6 24.7810
+556  7 26.1460
+556  8 27.6161
+556  9 29.2961
+556 10 29.9262
+556 11 29.9262
+556 12 29.7162
+556 13 29.0861
+556 14 28.7711
+556 15 27.3011
+556 16 25.8310
+556 17 24.2559
+556 18 22.5759
+556 19 20.6858
+556 20 18.9007
+556 21 14.9106
+556 22 10.5004
+556 23  7.3503
+556 24  5.4602
+556 25  2.4151
+556 26  1.0500
+556 27  0.4200
+556 28  0.1050
+# pixel 557
+557  1  0.7857
+557  2  2.5536
+557  3  6.7768
+557  4 12.1786
+557  5 19.0536
+557  6 23.1786
+557  7 24.4554
+557  8 25.8304
+557  9 27.4018
+557 10 27.9911
+557 11 27.9911
+557 12 27.7946
+557 13 27.2054
+557 14 26.9107
+557 15 25.5357
+557 16 24.1607
+557 17 22.6875
+557 18 21.1161
+557 19 19.3482
+557 20 17.6786
+557 21 13.9464
+557 22  9.8214
+557 23  6.8750
+557 24  5.1071
+557 25  2.2589
+557 26  0.9821
+557 27  0.3929
+557 28  0.0982
+# pixel 558
+558  1  0.7204
+558  2  2.3413
+558  3  6.2134
+558  4 11.1661
+558  5 17.4695
+558  6 21.2516
+558  7 22.4223
+558  8 23.6829
+558  9 25.1237
+558 10 25.6640
+558 11 25.6640
+558 12 25.4839
+558 13 24.9436
+558 14 24.6735
+558 15 23.4128
+558 16 22.1521
+558 17 20.8014
+558 18 19.3606
+558 19 17.7397
+558 20 16.2089
+558 21 12.7870
+558 22  9.0049
+558 23  6.3034
+558 24  4.6826
+558 25  2.0711
+558 26  0.9005
+558 27  0.3602
+558 28  0.0900
+# pixel 559
+559  1  0.7831
+559  2  2.5452
+559  3  6.7547
+559  4 12.1388
+559  5 18.9914
+559  6 23.1029
+559  7 24.3755
+559  8 25.7460
+559  9 27.3123
+559 10 27.8997
+559 11 27.8997
+559 12 27.7039
+559 13 27.1165
+559 14 26.8229
+559 15 25.4524
+559 16 24.0818
+559 17 22.6134
+559 18 21.0471
+559 19 19.2851
+559 20 17.6209
+559 21 13.9009
+559 22  9.7894
+559 23  6.8526
+559 24  5.0905
+559 25  2.2516
+559 26  0.9789
+559 27  0.3916
+559 28  0.0979
+# pixel 560
+560  1  0.6736
+560  2  2.1892
+560  3  5.8099
+560  4 10.4410
+560  5 16.3351
+560  6 19.8715
+560  7 20.9661
+560  8 22.1450
+560  9 23.4922
+560 10 23.9974
+560 11 23.9974
+560 12 23.8290
+560 13 23.3238
+560 14 23.0712
+560 15 21.8923
+560 16 20.7135
+560 17 19.4505
+560 18 18.1033
+560 19 16.5877
+560 20 15.1562
+560 21 11.9566
+560 22  8.4201
+560 23  5.8941
+560 24  4.3785
+560 25  1.9366
+560 26  0.8420
+560 27  0.3368
+560 28  0.0842
+# pixel 561
+561  1  0.8033
+561  2  2.6107
+561  3  6.9285
+561  4 12.4512
+561  5 19.4801
+561  6 23.6974
+561  7 25.0028
+561  8 26.4086
+561  9 28.0152
+561 10 28.6177
+561 11 28.6177
+561 12 28.4168
+561 13 27.8144
+561 14 27.5131
+561 15 26.1073
+561 16 24.7016
+561 17 23.1954
+561 18 21.5888
+561 19 19.7813
+561 20 18.0743
+561 21 14.2586
+561 22 10.0413
+561 23  7.0289
+561 24  5.2215
+561 25  2.3095
+561 26  1.0041
+561 27  0.4017
+561 28  0.1004
+# pixel 562
+562  1  0.6053
+562  2  1.9671
+562  3  5.2203
+562  4  9.3815
+562  5 14.6774
+562  6 17.8550
+562  7 18.8386
+562  8 19.8978
+562  9 21.1083
+562 10 21.5622
+562 11 21.5622
+562 12 21.4109
+562 13 20.9570
+562 14 20.7300
+562 15 19.6708
+562 16 18.6116
+562 17 17.4767
+562 18 16.2662
+562 19 14.9044
+562 20 13.6182
+562 21 10.7433
+562 22  7.5657
+562 23  5.2960
+562 24  3.9342
+562 25  1.7401
+562 26  0.7566
+562 27  0.3026
+562 28  0.0757
+# pixel 563
+563  1  0.7461
+563  2  2.4250
+563  3  6.4355
+563  4 11.5653
+563  5 18.0941
+563  6 22.0113
+563  7 23.2238
+563  8 24.5296
+563  9 26.0219
+563 10 26.5815
+563 11 26.5815
+563 12 26.3949
+563 13 25.8353
+563 14 25.5555
+563 15 24.2498
+563 16 22.9440
+563 17 21.5450
+563 18 20.0527
+563 19 18.3739
+563 20 16.7883
+563 21 13.2441
+563 22  9.3268
+563 23  6.5288
+563 24  4.8500
+563 25  2.1452
+563 26  0.9327
+563 27  0.3731
+563 28  0.0933
+# pixel 564
+564  1  0.7496
+564  2  2.4364
+564  3  6.4657
+564  4 11.6195
+564  5 18.1789
+564  6 22.1146
+564  7 23.3327
+564  8 24.6446
+564  9 26.1439
+564 10 26.7062
+564 11 26.7062
+564 12 26.5187
+564 13 25.9565
+564 14 25.6754
+564 15 24.3635
+564 16 23.0516
+564 17 21.6460
+564 18 20.1467
+564 19 18.4600
+564 20 16.8670
+564 21 13.3062
+564 22  9.3706
+564 23  6.5594
+564 24  4.8727
+564 25  2.1552
+564 26  0.9371
+564 27  0.3748
+564 28  0.0937
+# pixel 565
+565  1  0.8198
+565  2  2.6642
+565  3  7.0704
+565  4 12.7061
+565  5 19.8790
+565  6 24.1827
+565  7 25.5148
+565  8 26.9493
+565  9 28.5888
+565 10 29.2036
+565 11 29.2036
+565 12 28.9987
+565 13 28.3839
+565 14 28.0765
+565 15 26.6419
+565 16 25.2074
+565 17 23.6703
+565 18 22.0308
+565 19 20.1864
+565 20 18.4444
+565 21 14.5506
+565 22 10.2469
+565 23  7.1728
+565 24  5.3284
+565 25  2.3568
+565 26  1.0247
+565 27  0.4099
+565 28  0.1025
+# pixel 566
+566  1  0.7346
+566  2  2.3873
+566  3  6.3355
+566  4 11.3856
+566  5 17.8130
+566  6 21.6694
+566  7 22.8630
+566  8 24.1485
+566  9 25.6176
+566 10 26.1685
+566 11 26.1685
+566 12 25.9849
+566 13 25.4340
+566 14 25.1585
+566 15 23.8731
+566 16 22.5876
+566 17 21.2103
+566 18 19.7412
+566 19 18.0884
+566 20 16.5275
+566 21 13.0384
+566 22  9.1819
+566 23  6.4274
+566 24  4.7746
+566 25  2.1118
+566 26  0.9182
+566 27  0.3673
+566 28  0.0918
+# pixel 567
+567  1  0.7871
+567  2  2.5579
+567  3  6.7883
+567  4 12.1993
+567  5 19.0861
+567  6 23.2181
+567  7 24.4971
+567  8 25.8744
+567  9 27.4485
+567 10 28.0388
+567 11 28.0388
+567 12 27.8420
+567 13 27.2518
+567 14 26.9566
+567 15 25.5793
+567 16 24.2019
+567 17 22.7262
+567 18 21.1521
+567 19 19.3812
+567 20 17.7087
+567 21 13.9702
+567 22  9.8382
+567 23  6.8867
+567 24  5.1159
+567 25  2.2628
+567 26  0.9838
+567 27  0.3935
+567 28  0.0984
+# pixel 568
+568  1  0.6313
+568  2  2.0516
+568  3  5.4447
+568  4  9.7847
+568  5 15.3083
+568  6 18.6224
+568  7 19.6483
+568  8 20.7530
+568  9 22.0155
+568 10 22.4890
+568 11 22.4890
+568 12 22.3311
+568 13 21.8577
+568 14 21.6210
+568 15 20.5163
+568 16 19.4115
+568 17 18.2279
+568 18 16.9654
+568 19 15.5450
+568 20 14.2036
+568 21 11.2050
+568 22  7.8909
+568 23  5.5236
+568 24  4.1033
+568 25  1.8149
+568 26  0.7891
+568 27  0.3156
+568 28  0.0789
+# pixel 569
+569  1  0.7415
+569  2  2.4100
+569  3  6.3957
+569  4 11.4937
+569  5 17.9821
+569  6 21.8751
+569  7 23.0801
+569  8 24.3778
+569  9 25.8609
+569 10 26.4170
+569 11 26.4170
+569 12 26.2316
+569 13 25.6755
+569 14 25.3974
+569 15 24.0997
+569 16 22.8020
+569 17 21.4117
+569 18 19.9286
+569 19 18.2602
+569 20 16.6844
+569 21 13.1622
+569 22  9.2691
+569 23  6.4884
+569 24  4.8199
+569 25  2.1319
+569 26  0.9269
+569 27  0.3708
+569 28  0.0927
+# pixel 570
+570  1  0.6463
+570  2  2.1006
+570  3  5.5746
+570  4 10.0181
+570  5 15.6735
+570  6 19.0667
+570  7 20.1170
+570  8 21.2481
+570  9 22.5407
+570 10 23.0255
+570 11 23.0255
+570 12 22.8639
+570 13 22.3791
+570 14 22.1368
+570 15 21.0057
+570 16 19.8746
+570 17 18.6628
+570 18 17.3701
+570 19 15.9159
+570 20 14.5424
+570 21 11.4723
+570 22  8.0791
+570 23  5.6554
+570 24  4.2011
+570 25  1.8582
+570 26  0.8079
+570 27  0.3232
+570 28  0.0808
+# pixel 571
+571  1  0.7347
+571  2  2.3878
+571  3  6.3367
+571  4 11.3877
+571  5 17.8163
+571  6 21.6734
+571  7 22.8673
+571  8 24.1530
+571  9 25.6224
+571 10 26.1734
+571 11 26.1734
+571 12 25.9898
+571 13 25.4387
+571 14 25.1632
+571 15 23.8775
+571 16 22.5918
+571 17 21.2143
+571 18 19.7449
+571 19 18.0918
+571 20 16.5306
+571 21 13.0408
+571 22  9.1837
+571 23  6.4286
+571 24  4.7755
+571 25  2.1122
+571 26  0.9184
+571 27  0.3673
+571 28  0.0918
+# pixel 572
+572  1  0.7183
+572  2  2.3344
+572  3  6.1952
+572  4 11.1333
+572  5 17.4183
+572  6 21.1893
+572  7 22.3565
+572  8 23.6135
+572  9 25.0500
+572 10 25.5887
+572 11 25.5887
+572 12 25.4092
+572 13 24.8705
+572 14 24.6011
+572 15 23.3441
+572 16 22.0871
+572 17 20.7403
+572 18 19.3038
+572 19 17.6877
+572 20 16.1613
+572 21 12.7495
+572 22  8.9785
+572 23  6.2850
+572 24  4.6688
+572 25  2.0651
+572 26  0.8979
+572 27  0.3591
+572 28  0.0898
+# pixel 573
+573  1  0.6981
+573  2  2.2688
+573  3  6.0210
+573  4 10.8203
+573  5 16.9285
+573  6 20.5934
+573  7 21.7278
+573  8 22.9495
+573  9 24.3456
+573 10 24.8692
+573 11 24.8692
+573 12 24.6947
+573 13 24.1711
+573 14 23.9093
+573 15 22.6877
+573 16 21.4660
+573 17 20.1571
+573 18 18.7610
+573 19 17.1903
+573 20 15.7069
+573 21 12.3910
+573 22  8.7260
+573 23  6.1082
+573 24  4.5375
+573 25  2.0070
+573 26  0.8726
+573 27  0.3490
+573 28  0.0873
+# pixel 574
+574  1  0.8040
+574  2  2.6130
+574  3  6.9346
+574  4 12.4621
+574  5 19.4972
+574  6 23.7182
+574  7 25.0248
+574  8 26.4318
+574  9 28.0398
+574 10 28.6428
+574 11 28.6428
+574 12 28.4418
+574 13 27.8388
+574 14 27.5373
+574 15 26.1303
+574 16 24.7233
+574 17 23.2157
+574 18 21.6077
+574 19 19.7987
+574 20 18.0902
+574 21 14.2711
+574 22 10.0501
+574 23  7.0351
+574 24  5.2261
+574 25  2.3115
+574 26  1.0050
+574 27  0.4020
+574 28  0.1005
+# pixel 575
+575  1  0.7420
+575  2  2.4116
+575  3  6.4000
+575  4 11.5014
+575  5 17.9941
+575  6 21.8897
+575  7 23.0955
+575  8 24.3941
+575  9 25.8781
+575 10 26.4346
+575 11 26.4346
+575 12 26.2491
+575 13 25.6926
+575 14 25.4143
+575 15 24.1158
+575 16 22.8173
+575 17 21.4260
+575 18 19.9419
+575 19 18.2724
+575 20 16.6955
+575 21 13.1709
+575 22  9.2753
+575 23  6.4927
+575 24  4.8232
+575 25  2.1333
+575 26  0.9275
+575 27  0.3710
+575 28  0.0928
+# pixel 576
+576  1  0.7839
+576  2  2.5478
+576  3  6.7615
+576  4 12.1511
+576  5 19.0106
+576  6 23.1263
+576  7 24.4002
+576  8 25.7721
+576  9 27.3400
+576 10 27.9280
+576 11 27.9280
+576 12 27.7320
+576 13 27.1440
+576 14 26.8500
+576 15 25.4781
+576 16 24.1062
+576 17 22.6363
+576 18 21.0685
+576 19 19.3046
+576 20 17.6387
+576 21 13.9150
+576 22  9.7993
+576 23  6.8595
+576 24  5.0956
+576 25  2.2538
+576 26  0.9799
+576 27  0.3920
+576 28  0.0980
+# pixel 577
+577  1  0.6692
+577  2  2.1750
+577  3  5.7721
+577  4 10.3731
+577  5 16.2288
+577  6 19.7423
+577  7 20.8298
+577  8 22.0010
+577  9 23.3394
+577 10 23.8413
+577 11 23.8413
+577 12 23.6740
+577 13 23.1721
+577 14 22.9211
+577 15 21.7500
+577 16 20.5788
+577 17 19.3240
+577 18 17.9856
+577 19 16.4798
+577 20 15.0577
+577 21 11.8788
+577 22  8.3654
+577 23  5.8558
+577 24  4.3500
+577 25  1.9240
+577 26  0.8365
+577 27  0.3346
+577 28  0.0837
+# pixel 578
+578  1  0.7755
+578  2  2.5205
+578  3  6.6891
+578  4 12.0210
+578  5 18.8071
+578  6 22.8787
+578  7 24.1390
+578  8 25.4962
+578  9 27.0473
+578 10 27.6289
+578 11 27.6289
+578 12 27.4350
+578 13 26.8534
+578 14 26.5626
+578 15 25.2053
+578 16 23.8481
+578 17 22.3940
+578 18 20.8429
+578 19 19.0979
+578 20 17.4499
+578 21 13.7660
+578 22  9.6944
+578 23  6.7861
+578 24  5.0411
+578 25  2.2297
+578 26  0.9694
+578 27  0.3878
+578 28  0.0969
+# pixel 579
+579  1  0.6955
+579  2  2.2605
+579  3  5.9989
+579  4 10.7807
+579  5 16.8665
+579  6 20.5180
+579  7 21.6483
+579  8 22.8655
+579  9 24.2565
+579 10 24.7782
+579 11 24.7782
+579 12 24.6043
+579 13 24.0826
+579 14 23.8218
+579 15 22.6046
+579 16 21.3875
+579 17 20.0833
+579 18 18.6923
+579 19 17.1274
+579 20 15.6494
+579 21 12.3456
+579 22  8.6941
+579 23  6.0859
+579 24  4.5209
+579 25  1.9996
+579 26  0.8694
+579 27  0.3478
+579 28  0.0869
+# pixel 580
+580  1  0.6979
+580  2  2.2682
+580  3  6.0196
+580  4 10.8178
+580  5 16.9246
+580  6 20.5886
+580  7 21.7228
+580  8 22.9441
+580  9 24.3400
+580 10 24.8634
+580 11 24.8634
+580 12 24.6889
+580 13 24.1655
+580 14 23.9038
+580 15 22.6824
+580 16 21.4610
+580 17 20.1524
+580 18 18.7566
+580 19 17.1863
+580 20 15.7032
+580 21 12.3881
+580 22  8.7240
+580 23  6.1068
+580 24  4.5365
+580 25  2.0065
+580 26  0.8724
+580 27  0.3490
+580 28  0.0872
+# pixel 581
+581  1  0.8224
+581  2  2.6727
+581  3  7.0928
+581  4 12.7465
+581  5 19.9421
+581  6 24.2595
+581  7 25.5959
+581  8 27.0350
+581  9 28.6797
+581 10 29.2965
+581 11 29.2965
+581 12 29.0909
+581 13 28.4741
+581 14 28.1657
+581 15 26.7266
+581 16 25.2875
+581 17 23.7455
+581 18 22.1008
+581 19 20.2505
+581 20 18.5030
+581 21 14.5968
+581 22 10.2795
+581 23  7.1956
+581 24  5.3453
+581 25  2.3643
+581 26  1.0279
+581 27  0.4112
+581 28  0.1028
+# pixel 582
+582  1  0.7365
+582  2  2.3935
+582  3  6.3520
+582  4 11.4152
+582  5 17.8593
+582  6 21.7257
+582  7 22.9224
+582  8 24.2113
+582  9 25.6842
+582 10 26.2365
+582 11 26.2365
+582 12 26.0524
+582 13 25.5001
+582 14 25.2239
+582 15 23.9351
+582 16 22.6463
+582 17 21.2654
+582 18 19.7925
+582 19 18.1354
+582 20 16.5704
+582 21 13.0722
+582 22  9.2058
+582 23  6.4441
+582 24  4.7870
+582 25  2.1173
+582 26  0.9206
+582 27  0.3682
+582 28  0.0921
+# pixel 583
+583  1  0.7485
+583  2  2.4325
+583  3  6.4554
+583  4 11.6011
+583  5 18.1501
+583  6 22.0795
+583  7 23.2957
+583  8 24.6055
+583  9 26.1024
+583 10 26.6638
+583 11 26.6638
+583 12 26.4767
+583 13 25.9153
+583 14 25.6347
+583 15 24.3249
+583 16 23.0151
+583 17 21.6117
+583 18 20.1148
+583 19 18.4308
+583 20 16.8403
+583 21 13.2851
+583 22  9.3557
+583 23  6.5490
+583 24  4.8650
+583 25  2.1518
+583 26  0.9356
+583 27  0.3742
+583 28  0.0936
+# pixel 584
+584  1  0.7712
+584  2  2.5062
+584  3  6.6512
+584  4 11.9528
+584  5 18.7004
+584  6 22.7490
+584  7 24.0021
+584  8 25.3516
+584  9 26.8939
+584 10 27.4723
+584 11 27.4723
+584 12 27.2795
+584 13 26.7011
+584 14 26.4119
+584 15 25.0624
+584 16 23.7129
+584 17 22.2670
+584 18 20.7247
+584 19 18.9896
+584 20 17.3509
+584 21 13.6879
+584 22  9.6394
+584 23  6.7476
+584 24  5.0125
+584 25  2.2171
+584 26  0.9639
+584 27  0.3856
+584 28  0.0964
+# pixel 585
+585  1  0.7571
+585  2  2.4606
+585  3  6.5301
+585  4 11.7352
+585  5 18.3599
+585  6 22.3348
+585  7 23.5651
+585  8 24.8900
+585  9 26.4042
+585 10 26.9721
+585 11 26.9721
+585 12 26.7828
+585 13 26.2150
+585 14 25.9310
+585 15 24.6061
+585 16 23.2812
+585 17 21.8616
+585 18 20.3474
+585 19 18.6439
+585 20 17.0350
+585 21 13.4387
+585 22  9.4639
+585 23  6.6247
+585 24  4.9212
+585 25  2.1767
+585 26  0.9464
+585 27  0.3786
+585 28  0.0946
+# pixel 586
+586  1  0.7912
+586  2  2.5715
+586  3  6.8244
+586  4 12.2642
+586  5 19.1876
+586  6 23.3416
+586  7 24.6273
+586  8 26.0120
+586  9 27.5945
+586 10 28.1879
+586 11 28.1879
+586 12 27.9901
+586 13 27.3967
+586 14 27.1000
+586 15 25.7153
+586 16 24.3306
+586 17 22.8470
+586 18 21.2646
+586 19 19.4843
+586 20 17.8029
+586 21 14.0445
+586 22  9.8905
+586 23  6.9233
+586 24  5.1431
+586 25  2.2748
+586 26  0.9890
+586 27  0.3956
+586 28  0.0989
+# pixel 587
+587  1  0.7012
+587  2  2.2789
+587  3  6.0478
+587  4 10.8685
+587  5 17.0040
+587  6 20.6852
+587  7 21.8247
+587  8 23.0517
+587  9 24.4541
+587 10 24.9800
+587 11 24.9800
+587 12 24.8047
+587 13 24.2788
+587 14 24.0159
+587 15 22.7888
+587 16 21.5617
+587 17 20.2470
+587 18 18.8446
+587 19 17.2669
+587 20 15.7769
+587 21 12.4462
+587 22  8.7649
+587 23  6.1354
+587 24  4.5578
+587 25  2.0159
+587 26  0.8765
+587 27  0.3506
+587 28  0.0876
+# pixel 588
+588  1  0.7811
+588  2  2.5386
+588  3  6.7370
+588  4 12.1071
+588  5 18.9418
+588  6 23.0426
+588  7 24.3119
+588  8 25.6788
+588  9 27.2410
+588 10 27.8268
+588 11 27.8268
+588 12 27.6315
+588 13 27.0457
+588 14 26.7528
+588 15 25.3859
+588 16 24.0189
+588 17 22.5544
+588 18 20.9922
+588 19 19.2347
+588 20 17.5748
+588 21 13.8646
+588 22  9.7638
+588 23  6.8347
+588 24  5.0772
+588 25  2.2457
+588 26  0.9764
+588 27  0.3906
+588 28  0.0976
+# pixel 589
+589  1  0.7695
+589  2  2.5007
+589  3  6.6365
+589  4 11.9265
+589  5 18.6592
+589  6 22.6988
+589  7 23.9492
+589  8 25.2957
+589  9 26.8346
+589 10 27.4117
+589 11 27.4117
+589 12 27.2193
+589 13 26.6423
+589 14 26.3537
+589 15 25.0072
+589 16 23.6606
+589 17 22.2179
+589 18 20.6790
+589 19 18.9477
+589 20 17.3127
+589 21 13.6578
+589 22  9.6181
+589 23  6.7327
+589 24  5.0014
+589 25  2.2122
+589 26  0.9618
+589 27  0.3847
+589 28  0.0962
+# pixel 590
+590  1  0.7472
+590  2  2.4284
+590  3  6.4446
+590  4 11.5816
+590  5 18.1196
+590  6 22.0423
+590  7 23.2565
+590  8 24.5641
+590  9 26.0585
+590 10 26.6189
+590 11 26.6189
+590 12 26.4321
+590 13 25.8717
+590 14 25.5915
+590 15 24.2839
+590 16 22.9763
+590 17 21.5754
+590 18 20.0810
+590 19 18.3998
+590 20 16.8120
+590 21 13.2628
+590 22  9.3400
+590 23  6.5380
+590 24  4.8568
+590 25  2.1482
+590 26  0.9340
+590 27  0.3736
+590 28  0.0934
+# pixel 591
+591  1  0.6763
+591  2  2.1981
+591  3  5.8335
+591  4 10.4834
+591  5 16.4014
+591  6 19.9522
+591  7 21.0513
+591  8 22.2349
+591  9 23.5876
+591 10 24.0948
+591 11 24.0948
+591 12 23.9257
+591 13 23.4185
+591 14 23.1648
+591 15 21.9812
+591 16 20.7976
+591 17 19.5295
+591 18 18.1768
+591 19 16.6550
+591 20 15.2178
+591 21 12.0051
+591 22  8.4543
+591 23  5.9180
+591 24  4.3962
+591 25  1.9445
+591 26  0.8454
+591 27  0.3382
+591 28  0.0845
+# pixel 592
+592  1  0.6530
+592  2  2.1222
+592  3  5.6321
+592  4 10.1215
+592  5 15.8352
+592  6 19.2634
+592  7 20.3246
+592  8 21.4673
+592  9 22.7733
+592 10 23.2631
+592 11 23.2631
+592 12 23.0998
+592 13 22.6101
+592 14 22.3652
+592 15 21.2224
+592 16 20.0797
+592 17 18.8553
+592 18 17.5493
+592 19 16.0801
+592 20 14.6925
+592 21 11.5907
+592 22  8.1625
+592 23  5.7137
+592 24  4.2445
+592 25  1.8774
+592 26  0.8162
+592 27  0.3265
+592 28  0.0816
+# pixel 593
+593  1  0.7266
+593  2  2.3616
+593  3  6.2673
+593  4 11.2630
+593  5 17.6211
+593  6 21.4360
+593  7 22.6168
+593  8 23.8884
+593  9 25.3417
+593 10 25.8866
+593 11 25.8866
+593 12 25.7050
+593 13 25.1600
+593 14 24.8875
+593 15 23.6159
+593 16 22.3443
+593 17 20.9818
+593 18 19.5285
+593 19 17.8936
+593 20 16.3495
+593 21 12.8979
+593 22  9.0830
+593 23  6.3581
+593 24  4.7232
+593 25  2.0891
+593 26  0.9083
+593 27  0.3633
+593 28  0.0908
+# pixel 594
+594  1  0.7605
+594  2  2.4716
+594  3  6.5594
+594  4 11.7878
+594  5 18.4423
+594  6 22.4349
+594  7 23.6708
+594  8 25.0016
+594  9 26.5227
+594 10 27.0930
+594 11 27.0930
+594 12 26.9029
+594 13 26.3325
+594 14 26.0473
+594 15 24.7165
+594 16 23.3856
+594 17 21.9596
+594 18 20.4386
+594 19 18.7275
+594 20 17.1114
+594 21 13.4990
+594 22  9.5063
+594 23  6.6544
+594 24  4.9433
+594 25  2.1865
+594 26  0.9506
+594 27  0.3803
+594 28  0.0951
+# pixel 595
+595  1  0.6086
+595  2  1.9778
+595  3  5.2488
+595  4  9.4326
+595  5 14.7575
+595  6 17.9524
+595  7 18.9413
+595  8 20.0063
+595  9 21.2234
+595 10 21.6798
+595 11 21.6798
+595 12 21.5277
+595 13 21.0713
+595 14 20.8431
+595 15 19.7781
+595 16 18.7131
+595 17 17.5721
+595 18 16.3550
+595 19 14.9857
+595 20 13.6925
+595 21 10.8019
+595 22  7.6070
+595 23  5.3249
+595 24  3.9556
+595 25  1.7496
+595 26  0.7607
+595 27  0.3043
+595 28  0.0761
+# pixel 596
+596  1  0.7860
+596  2  2.5544
+596  3  6.7791
+596  4 12.1826
+596  5 19.0599
+596  6 23.1863
+596  7 24.4635
+596  8 25.8390
+596  9 27.4110
+596 10 28.0004
+596 11 28.0004
+596 12 27.8039
+596 13 27.2145
+596 14 26.9197
+596 15 25.5443
+596 16 24.1688
+596 17 22.6951
+596 18 21.1231
+596 19 19.3547
+596 20 17.6845
+596 21 13.9511
+596 22  9.8247
+596 23  6.8773
+596 24  5.1089
+596 25  2.2597
+596 26  0.9825
+596 27  0.3930
+596 28  0.0982
+# pixel 597
+597  1  0.7240
+597  2  2.3530
+597  3  6.2446
+597  4 11.2221
+597  5 17.5572
+597  6 21.3582
+597  7 22.5347
+597  8 23.8017
+597  9 25.2497
+597 10 25.7927
+597 11 25.7927
+597 12 25.6117
+597 13 25.0687
+597 14 24.7972
+597 15 23.5302
+597 16 22.2632
+597 17 20.9057
+597 18 19.4577
+597 19 17.8287
+597 20 16.2901
+597 21 12.8511
+597 22  9.0501
+597 23  6.3351
+597 24  4.7060
+597 25  2.0815
+597 26  0.9050
+597 27  0.3620
+597 28  0.0905
+# pixel 598
+598  1  0.6706
+598  2  2.1795
+598  3  5.7839
+598  4 10.3943
+598  5 16.2621
+598  6 19.7827
+598  7 20.8725
+598  8 22.0460
+598  9 23.3872
+598 10 23.8902
+598 11 23.8902
+598 12 23.7225
+598 13 23.2196
+598 14 22.9681
+598 15 21.7945
+598 16 20.6210
+598 17 19.3636
+598 18 18.0224
+598 19 16.5136
+598 20 15.0885
+598 21 11.9032
+598 22  8.3825
+598 23  5.8678
+598 24  4.3589
+598 25  1.9280
+598 26  0.8383
+598 27  0.3353
+598 28  0.0838
+# pixel 599
+599  1  0.6318
+599  2  2.0535
+599  3  5.4496
+599  4  9.7936
+599  5 15.3222
+599  6 18.6394
+599  7 19.6661
+599  8 20.7718
+599  9 22.0355
+599 10 22.5094
+599 11 22.5094
+599 12 22.3514
+599 13 21.8775
+599 14 21.6406
+599 15 20.5349
+599 16 19.4292
+599 17 18.2445
+599 18 16.9808
+599 19 15.5591
+599 20 14.2165
+599 21 11.2152
+599 22  7.8980
+599 23  5.5286
+599 24  4.1070
+599 25  1.8165
+599 26  0.7898
+599 27  0.3159
+599 28  0.0790
+# pixel 600
+600  1  0.7029
+600  2  2.2845
+600  3  6.0628
+600  4 10.8955
+600  5 17.0463
+600  6 20.7367
+600  7 21.8790
+600  8 23.1091
+600  9 24.5150
+600 10 25.0422
+600 11 25.0422
+600 12 24.8664
+600 13 24.3392
+600 14 24.0756
+600 15 22.8455
+600 16 21.6154
+600 17 20.2973
+600 18 18.8915
+600 19 17.3099
+600 20 15.8161
+600 21 12.4772
+600 22  8.7867
+600 23  6.1507
+600 24  4.5691
+600 25  2.0209
+600 26  0.8787
+600 27  0.3515
+600 28  0.0879
+# pixel 601
+601  1  0.6433
+601  2  2.0907
+601  3  5.5483
+601  4  9.9709
+601  5 15.5996
+601  6 18.9768
+601  7 20.0222
+601  8 21.1479
+601  9 22.4345
+601 10 22.9169
+601 11 22.9169
+601 12 22.7561
+601 13 22.2736
+601 14 22.0324
+601 15 20.9067
+601 16 19.7809
+601 17 18.5748
+601 18 17.2882
+601 19 15.8408
+601 20 14.4738
+601 21 11.4183
+601 22  8.0410
+601 23  5.6287
+601 24  4.1813
+601 25  1.8494
+601 26  0.8041
+601 27  0.3216
+601 28  0.0804
+# pixel 602
+602  1  0.8139
+602  2  2.6453
+602  3  7.0203
+602  4 12.6161
+602  5 19.7381
+602  6 24.0113
+602  7 25.3340
+602  8 26.7584
+602  9 28.3863
+602 10 28.9967
+602 11 28.9967
+602 12 28.7933
+602 13 28.1828
+602 14 27.8776
+602 15 26.4532
+602 16 25.0288
+602 17 23.5026
+602 18 21.8747
+602 19 20.0434
+602 20 18.3137
+602 21 14.4475
+602 22 10.1743
+602 23  7.1220
+602 24  5.2906
+602 25  2.3401
+602 26  1.0174
+602 27  0.4070
+602 28  0.1017
+# pixel 603
+603  1  0.8194
+603  2  2.6631
+603  3  7.0674
+603  4 12.7009
+603  5 19.8707
+603  6 24.1726
+603  7 25.5041
+603  8 26.9381
+603  9 28.5769
+603 10 29.1915
+603 11 29.1915
+603 12 28.9866
+603 13 28.3721
+603 14 28.0648
+603 15 26.6308
+603 16 25.1969
+603 17 23.6605
+603 18 22.0217
+603 19 20.1780
+603 20 18.4367
+603 21 14.5445
+603 22 10.2426
+603 23  7.1698
+603 24  5.3262
+603 25  2.3558
+603 26  1.0243
+603 27  0.4097
+603 28  0.1024
+# pixel 604
+604  1  0.8033
+604  2  2.6108
+604  3  6.9288
+604  4 12.4517
+604  5 19.4809
+604  6 23.6985
+604  7 25.0039
+604  8 26.4097
+604  9 28.0164
+604 10 28.6189
+604 11 28.6189
+604 12 28.4181
+604 13 27.8156
+604 14 27.5143
+604 15 26.1085
+604 16 24.7026
+604 17 23.1964
+604 18 21.5897
+604 19 19.7822
+604 20 18.0751
+604 21 14.2592
+604 22 10.0417
+604 23  7.0292
+604 24  5.2217
+604 25  2.3096
+604 26  1.0042
+604 27  0.4017
+604 28  0.1004
+# pixel 605
+605  1  0.7928
+605  2  2.5766
+605  3  6.8378
+605  4 12.2882
+605  5 19.2251
+605  6 23.3872
+605  7 24.6755
+605  8 26.0629
+605  9 27.6485
+605 10 28.2431
+605 11 28.2431
+605 12 28.0449
+605 13 27.4503
+605 14 27.1530
+605 15 25.7656
+605 16 24.3782
+605 17 22.8918
+605 18 21.3062
+605 19 19.5224
+605 20 17.8377
+605 21 14.0720
+605 22  9.9099
+605 23  6.9369
+605 24  5.1531
+605 25  2.2793
+605 26  0.9910
+605 27  0.3964
+605 28  0.0991
+# pixel 606
+606  1  0.7893
+606  2  2.5652
+606  3  6.8077
+606  4 12.2342
+606  5 19.1406
+606  6 23.2844
+606  7 24.5670
+606  8 25.9483
+606  9 27.5269
+606 10 28.1189
+606 11 28.1189
+606 12 27.9216
+606 13 27.3296
+606 14 27.0336
+606 15 25.6523
+606 16 24.2711
+606 17 22.7911
+606 18 21.2125
+606 19 19.4366
+606 20 17.7593
+606 21 14.0101
+606 22  9.8663
+606 23  6.9064
+606 24  5.1305
+606 25  2.2692
+606 26  0.9866
+606 27  0.3947
+606 28  0.0987
+# pixel 607
+607  1  0.8441
+607  2  2.7434
+607  3  7.2806
+607  4 13.0840
+607  5 20.4701
+607  6 24.9018
+607  7 26.2735
+607  8 27.7507
+607  9 29.4390
+607 10 30.0721
+607 11 30.0721
+607 12 29.8611
+607 13 29.2280
+607 14 28.9114
+607 15 27.4342
+607 16 25.9570
+607 17 24.3742
+607 18 22.6860
+607 19 20.7867
+607 20 18.9929
+607 21 14.9833
+607 22 10.5516
+607 23  7.3861
+607 24  5.4868
+607 25  2.4269
+607 26  1.0552
+607 27  0.4221
+607 28  0.1055
+# pixel 608
+608  1  0.6511
+608  2  2.1162
+608  3  5.6161
+608  4 10.0927
+608  5 15.7901
+608  6 19.2086
+608  7 20.2667
+608  8 21.4062
+608  9 22.7085
+608 10 23.1968
+608 11 23.1968
+608 12 23.0340
+608 13 22.5457
+608 14 22.3015
+608 15 21.1620
+608 16 20.0225
+608 17 18.8016
+608 18 17.4994
+608 19 16.0343
+608 20 14.6506
+608 21 11.5577
+608 22  8.1392
+608 23  5.6975
+608 24  4.2324
+608 25  1.8720
+608 26  0.8139
+608 27  0.3256
+608 28  0.0814
+# pixel 609
+609  1  0.7482
+609  2  2.4318
+609  3  6.4536
+609  4 11.5978
+609  5 18.1450
+609  6 22.0732
+609  7 23.2891
+609  8 24.5986
+609  9 26.0951
+609 10 26.6562
+609 11 26.6562
+609 12 26.4692
+609 13 25.9080
+609 14 25.6274
+609 15 24.3180
+609 16 23.0085
+609 17 21.6056
+609 18 20.1091
+609 19 18.4255
+609 20 16.8355
+609 21 13.2814
+609 22  9.3531
+609 23  6.5471
+609 24  4.8636
+609 25  2.1512
+609 26  0.9353
+609 27  0.3741
+609 28  0.0935
+# pixel 610
+610  1  0.8529
+610  2  2.7719
+610  3  7.3563
+610  4 13.2200
+610  5 20.6829
+610  6 25.1606
+610  7 26.5466
+610  8 28.0392
+610  9 29.7450
+610 10 30.3847
+610 11 30.3847
+610 12 30.1714
+610 13 29.5318
+610 14 29.2119
+610 15 27.7193
+610 16 26.2268
+610 17 24.6276
+610 18 22.9218
+610 19 21.0027
+610 20 19.1903
+610 21 15.1390
+610 22 10.6613
+610 23  7.4629
+610 24  5.5439
+610 25  2.4521
+610 26  1.0661
+610 27  0.4265
+610 28  0.1066
+# pixel 611
+611  1  0.7323
+611  2  2.3800
+611  3  6.3161
+611  4 11.3507
+611  5 17.7583
+611  6 21.6029
+611  7 22.7929
+611  8 24.0745
+611  9 25.5391
+611 10 26.0883
+611 11 26.0883
+611 12 25.9052
+611 13 25.3560
+611 14 25.0814
+611 15 23.7998
+611 16 22.5183
+611 17 21.1452
+611 18 19.6806
+611 19 18.0330
+611 20 16.4768
+611 21 12.9984
+611 22  9.1538
+611 23  6.4077
+611 24  4.7600
+611 25  2.1054
+611 26  0.9154
+611 27  0.3662
+611 28  0.0915
+# pixel 612
+612  1  0.7498
+612  2  2.4369
+612  3  6.4672
+612  4 11.6221
+612  5 18.1830
+612  6 22.1196
+612  7 23.3380
+612  8 24.6502
+612  9 26.1498
+612 10 26.7122
+612 11 26.7122
+612 12 26.5247
+612 13 25.9624
+612 14 25.6812
+612 15 24.3690
+612 16 23.0568
+612 17 21.6509
+612 18 20.1513
+612 19 18.4642
+612 20 16.8709
+612 21 13.3092
+612 22  9.3727
+612 23  6.5609
+612 24  4.8738
+612 25  2.1557
+612 26  0.9373
+612 27  0.3749
+612 28  0.0937
+# pixel 613
+613  1  0.6794
+613  2  2.2082
+613  3  5.8603
+613  4 10.5315
+613  5 16.4767
+613  6 20.0438
+613  7 21.1479
+613  8 22.3369
+613  9 23.6958
+613 10 24.2054
+613 11 24.2054
+613 12 24.0355
+613 13 23.5260
+613 14 23.2712
+613 15 22.0821
+613 16 20.8931
+613 17 19.6191
+613 18 18.2602
+613 19 16.7315
+613 20 15.2876
+613 21 12.0602
+613 22  8.4931
+613 23  5.9452
+613 24  4.4164
+613 25  1.9534
+613 26  0.8493
+613 27  0.3397
+613 28  0.0849
+# pixel 614
+614  1  0.7519
+614  2  2.4438
+614  3  6.4855
+614  4 11.6551
+614  5 18.2346
+614  6 22.1823
+614  7 23.4042
+614  8 24.7201
+614  9 26.2240
+614 10 26.7879
+614 11 26.7879
+614 12 26.5999
+614 13 26.0360
+614 14 25.7540
+614 15 24.4381
+614 16 23.1222
+614 17 21.7123
+614 18 20.2084
+614 19 18.5166
+614 20 16.9187
+614 21 13.3470
+614 22  9.3993
+614 23  6.5795
+614 24  4.8876
+614 25  2.1618
+614 26  0.9399
+614 27  0.3760
+614 28  0.0940
+# pixel 615
+615  1  0.8092
+615  2  2.6300
+615  3  6.9796
+615  4 12.5431
+615  5 19.6239
+615  6 23.8724
+615  7 25.1874
+615  8 26.6036
+615  9 28.2220
+615 10 28.8289
+615 11 28.8289
+615 12 28.6266
+615 13 28.0197
+615 14 27.7162
+615 15 26.3001
+615 16 24.8839
+615 17 23.3666
+615 18 21.7481
+615 19 19.9274
+615 20 18.2078
+615 21 14.3639
+615 22 10.1154
+615 23  7.0808
+615 24  5.2600
+615 25  2.3265
+615 26  1.0115
+615 27  0.4046
+615 28  0.1012
+# pixel 616
+616  1  0.7494
+616  2  2.4355
+616  3  6.4635
+616  4 11.6155
+616  5 18.1727
+616  6 22.1070
+616  7 23.3247
+616  8 24.6362
+616  9 26.1349
+616 10 26.6970
+616 11 26.6970
+616 12 26.5096
+616 13 25.9476
+616 14 25.6666
+616 15 24.3551
+616 16 23.0437
+616 17 21.6386
+616 18 20.1398
+616 19 18.4537
+616 20 16.8612
+616 21 13.3017
+616 22  9.3674
+616 23  6.5572
+616 24  4.8710
+616 25  2.1545
+616 26  0.9367
+616 27  0.3747
+616 28  0.0937
+# pixel 617
+617  1  0.7192
+617  2  2.3374
+617  3  6.2032
+617  4 11.1478
+617  5 17.4409
+617  6 21.2168
+617  7 22.3855
+617  8 23.6441
+617  9 25.0826
+617 10 25.6220
+617 11 25.6220
+617 12 25.4422
+617 13 24.9028
+617 14 24.6331
+617 15 23.3744
+617 16 22.1158
+617 17 20.7673
+617 18 19.3289
+617 19 17.7106
+617 20 16.1823
+617 21 12.7660
+617 22  8.9902
+617 23  6.2931
+617 24  4.6749
+617 25  2.0677
+617 26  0.8990
+617 27  0.3596
+617 28  0.0899
+# pixel 618
+618  1  0.7494
+618  2  2.4355
+618  3  6.4634
+618  4 11.6154
+618  5 18.1726
+618  6 22.1068
+618  7 23.3246
+618  8 24.6360
+618  9 26.1348
+618 10 26.6968
+618 11 26.6968
+618 12 26.5094
+618 13 25.9474
+618 14 25.6664
+618 15 24.3550
+618 16 23.0435
+618 17 21.6385
+618 18 20.1397
+618 19 18.4536
+618 20 16.8611
+618 21 13.3016
+618 22  9.3673
+618 23  6.5571
+618 24  4.8710
+618 25  2.1545
+618 26  0.9367
+618 27  0.3747
+618 28  0.0937
+# pixel 619
+619  1  0.8218
+619  2  2.6709
+619  3  7.0883
+619  4 12.7384
+619  5 19.9294
+619  6 24.2440
+619  7 25.5795
+619  8 27.0177
+619  9 28.6613
+619 10 29.2777
+619 11 29.2777
+619 12 29.0722
+619 13 28.4559
+619 14 28.1477
+619 15 26.7095
+619 16 25.2713
+619 17 23.7303
+619 18 22.0867
+619 19 20.2376
+619 20 18.4912
+619 21 14.5875
+619 22 10.2729
+619 23  7.1910
+619 24  5.3419
+619 25  2.3628
+619 26  1.0273
+619 27  0.4109
+619 28  0.1027
+# pixel 620
+620  1  0.7355
+620  2  2.3904
+620  3  6.3438
+620  4 11.4004
+620  5 17.8362
+620  6 21.6976
+620  7 22.8928
+620  8 24.1800
+620  9 25.6510
+620 10 26.2026
+620 11 26.2026
+620 12 26.0188
+620 13 25.4671
+620 14 25.1913
+620 15 23.9042
+620 16 22.6170
+620 17 21.2379
+620 18 19.7669
+620 19 18.1120
+620 20 16.5490
+620 21 13.0554
+620 22  9.1939
+620 23  6.4357
+620 24  4.7808
+620 25  2.1146
+620 26  0.9194
+620 27  0.3678
+620 28  0.0919
+# pixel 621
+621  1  0.6699
+621  2  2.1773
+621  3  5.7782
+621  4 10.3840
+621  5 16.2459
+621  6 19.7630
+621  7 20.8517
+621  8 22.0241
+621  9 23.3639
+621 10 23.8664
+621 11 23.8664
+621 12 23.6989
+621 13 23.1965
+621 14 22.9452
+621 15 21.7729
+621 16 20.6005
+621 17 19.3443
+621 18 18.0045
+621 19 16.4971
+621 20 15.0735
+621 21 11.8913
+621 22  8.3742
+621 23  5.8619
+621 24  4.3546
+621 25  1.9261
+621 26  0.8374
+621 27  0.3350
+621 28  0.0837
+# pixel 622
+622  1  0.7548
+622  2  2.4532
+622  3  6.5105
+622  4 11.7001
+622  5 18.3049
+622  6 22.2679
+622  7 23.4945
+622  8 24.8155
+622  9 26.3252
+622 10 26.8913
+622 11 26.8913
+622 12 26.7026
+622 13 26.1364
+622 14 25.8534
+622 15 24.5324
+622 16 23.2114
+622 17 21.7961
+622 18 20.2864
+622 19 18.5880
+622 20 16.9840
+622 21 13.3985
+622 22  9.4355
+622 23  6.6049
+622 24  4.9065
+622 25  2.1702
+622 26  0.9436
+622 27  0.3774
+622 28  0.0944
+# pixel 623
+623  1  0.7118
+623  2  2.3135
+623  3  6.1397
+623  4 11.0337
+623  5 17.2623
+623  6 20.9995
+623  7 22.1563
+623  8 23.4020
+623  9 24.8257
+623 10 25.3596
+623 11 25.3596
+623 12 25.1816
+623 13 24.6478
+623 14 24.3808
+623 15 23.1351
+623 16 21.8893
+623 17 20.5546
+623 18 19.1309
+623 19 17.5293
+623 20 16.0166
+623 21 12.6353
+623 22  8.8981
+623 23  6.2287
+623 24  4.6270
+623 25  2.0466
+623 26  0.8898
+623 27  0.3559
+623 28  0.0890
+# pixel 624
+624  1  0.7445
+624  2  2.4198
+624  3  6.4217
+624  4 11.5405
+624  5 18.0553
+624  6 21.9642
+624  7 23.1741
+624  8 24.4770
+624  9 25.9661
+624 10 26.5245
+624 11 26.5245
+624 12 26.3384
+624 13 25.7800
+624 14 25.5008
+624 15 24.1978
+624 16 22.8949
+624 17 21.4988
+624 18 20.0097
+624 19 18.3345
+624 20 16.7523
+624 21 13.2157
+624 22  9.3069
+624 23  6.5148
+624 24  4.8396
+624 25  2.1406
+624 26  0.9307
+624 27  0.3723
+624 28  0.0931
+# pixel 625
+625  1  0.7627
+625  2  2.4787
+625  3  6.5782
+625  4 11.8216
+625  5 18.4951
+625  6 22.4992
+625  7 23.7386
+625  8 25.0733
+625  9 26.5987
+625 10 27.1707
+625 11 27.1707
+625 12 26.9800
+625 13 26.4080
+625 14 26.1220
+625 15 24.7873
+625 16 23.4526
+625 17 22.0226
+625 18 20.4972
+625 19 18.7811
+625 20 17.1604
+625 21 13.5377
+625 22  9.5336
+625 23  6.6735
+625 24  4.9575
+625 25  2.1927
+625 26  0.9534
+625 27  0.3813
+625 28  0.0953
+# pixel 626
+626  1  0.6738
+626  2  2.1898
+626  3  5.8114
+626  4 10.4436
+626  5 16.3392
+626  6 19.8766
+626  7 20.9715
+626  8 22.1506
+626  9 23.4981
+626 10 24.0035
+626 11 24.0035
+626 12 23.8350
+626 13 23.3297
+626 14 23.0770
+626 15 21.8979
+626 16 20.7188
+626 17 19.4555
+626 18 18.1079
+626 19 16.5919
+626 20 15.1601
+626 21 11.9596
+626 22  8.4223
+626 23  5.8956
+626 24  4.3796
+626 25  1.9371
+626 26  0.8422
+626 27  0.3369
+626 28  0.0842
+# pixel 627
+627  1  0.7542
+627  2  2.4512
+627  3  6.5051
+627  4 11.6903
+627  5 18.2897
+627  6 22.2493
+627  7 23.4749
+627  8 24.7948
+627  9 26.3032
+627 10 26.8689
+627 11 26.8689
+627 12 26.6803
+627 13 26.1147
+627 14 25.8318
+627 15 24.5120
+627 16 23.1921
+627 17 21.7779
+627 18 20.2695
+627 19 18.5725
+627 20 16.9698
+627 21 13.3873
+627 22  9.4277
+627 23  6.5994
+627 24  4.9024
+627 25  2.1684
+627 26  0.9428
+627 27  0.3771
+627 28  0.0943
+# pixel 628
+628  1  0.7426
+628  2  2.4136
+628  3  6.4053
+628  4 11.5111
+628  5 18.0092
+628  6 21.9081
+628  7 23.1149
+628  8 24.4146
+628  9 25.8999
+628 10 26.4569
+628 11 26.4569
+628 12 26.2712
+628 13 25.7142
+628 14 25.4357
+628 15 24.1361
+628 16 22.8364
+628 17 21.4440
+628 18 19.9587
+628 19 18.2877
+628 20 16.7096
+628 21 13.1820
+628 22  9.2831
+628 23  6.4982
+628 24  4.8272
+628 25  2.1351
+628 26  0.9283
+628 27  0.3713
+628 28  0.0928
+# pixel 629
+629  1  0.6172
+629  2  2.0058
+629  3  5.3230
+629  4  9.5660
+629  5 14.9662
+629  6 18.2063
+629  7 19.2092
+629  8 20.2892
+629  9 21.5236
+629 10 21.9864
+629 11 21.9864
+629 12 21.8322
+629 13 21.3693
+629 14 21.1378
+629 15 20.0578
+629 16 18.9778
+629 17 17.8206
+629 18 16.5863
+629 19 15.1976
+629 20 13.8862
+629 21 10.9546
+629 22  7.7145
+629 23  5.4002
+629 24  4.0116
+629 25  1.7743
+629 26  0.7715
+629 27  0.3086
+629 28  0.0771
+# pixel 630
+630  1  0.8554
+630  2  2.7799
+630  3  7.3775
+630  4 13.2581
+630  5 20.7426
+630  6 25.2332
+630  7 26.6232
+630  8 28.1201
+630  9 29.8308
+630 10 30.4723
+630 11 30.4723
+630 12 30.2585
+630 13 29.6170
+630 14 29.2962
+630 15 27.7993
+630 16 26.3024
+630 17 24.6986
+630 18 22.9879
+630 19 21.0633
+630 20 19.2457
+630 21 15.1827
+630 22 10.6920
+630 23  7.4844
+630 24  5.5599
+630 25  2.4592
+630 26  1.0692
+630 27  0.4277
+630 28  0.1069
+# pixel 631
+631  1  0.7168
+631  2  2.3297
+631  3  6.1827
+631  4 11.1110
+631  5 17.3833
+631  6 21.1467
+631  7 22.3116
+631  8 23.5660
+631  9 24.9997
+631 10 25.5373
+631 11 25.5373
+631 12 25.3581
+631 13 24.8205
+631 14 24.5517
+631 15 23.2972
+631 16 22.0428
+631 17 20.6987
+631 18 19.2650
+631 19 17.6521
+631 20 16.1289
+631 21 12.7239
+631 22  8.9605
+631 23  6.2723
+631 24  4.6594
+631 25  2.0609
+631 26  0.8960
+631 27  0.3584
+631 28  0.0896
+# pixel 632
+632  1  0.6471
+632  2  2.1029
+632  3  5.5809
+632  4 10.0294
+632  5 15.6912
+632  6 19.0883
+632  7 20.1398
+632  8 21.2721
+632  9 22.5662
+632 10 23.0515
+632 11 23.0515
+632 12 22.8898
+632 13 22.4045
+632 14 22.1618
+632 15 21.0295
+632 16 19.8971
+632 17 18.6839
+632 18 17.3897
+632 19 15.9339
+632 20 14.5589
+632 21 11.4853
+632 22  8.0883
+632 23  5.6618
+632 24  4.2059
+632 25  1.8603
+632 26  0.8088
+632 27  0.3235
+632 28  0.0809
+# pixel 633
+633  1  0.6518
+633  2  2.1185
+633  3  5.6222
+633  4 10.1037
+633  5 15.8073
+633  6 19.2295
+633  7 20.2888
+633  8 21.4295
+633  9 22.7332
+633 10 23.2221
+633 11 23.2221
+633 12 23.0592
+633 13 22.5703
+633 14 22.3258
+633 15 21.1851
+633 16 20.0444
+633 17 18.8221
+633 18 17.5184
+633 19 16.0518
+633 20 14.6666
+633 21 11.5703
+633 22  8.1481
+633 23  5.7037
+633 24  4.2370
+633 25  1.8741
+633 26  0.8148
+633 27  0.3259
+633 28  0.0815
+# pixel 634
+634  1  0.7476
+634  2  2.4296
+634  3  6.4478
+634  4 11.5874
+634  5 18.1286
+634  6 22.0533
+634  7 23.2682
+634  8 24.5764
+634  9 26.0715
+634 10 26.6322
+634 11 26.6322
+634 12 26.4453
+634 13 25.8846
+634 14 25.6043
+634 15 24.2961
+634 16 22.9878
+634 17 21.5861
+634 18 20.0910
+634 19 18.4089
+634 20 16.8204
+634 21 13.2694
+634 22  9.3446
+634 23  6.5412
+634 24  4.8592
+634 25  2.1493
+634 26  0.9345
+634 27  0.3738
+634 28  0.0934
+# pixel 635
+635  1  0.7351
+635  2  2.3890
+635  3  6.3400
+635  4 11.3936
+635  5 17.8255
+635  6 21.6846
+635  7 22.8791
+635  8 24.1655
+635  9 25.6356
+635 10 26.1869
+635 11 26.1869
+635 12 26.0032
+635 13 25.4519
+635 14 25.1762
+635 15 23.8898
+635 16 22.6035
+635 17 21.2252
+635 18 19.7551
+635 19 18.1011
+635 20 16.5391
+635 21 13.0475
+635 22  9.1884
+635 23  6.4319
+635 24  4.7780
+635 25  2.1133
+635 26  0.9188
+635 27  0.3675
+635 28  0.0919
+# pixel 636
+636  1  0.7489
+636  2  2.4338
+636  3  6.4591
+636  4 11.6076
+636  5 18.1602
+636  6 22.0918
+636  7 23.3087
+636  8 24.6193
+636  9 26.1170
+636 10 26.6787
+636 11 26.6787
+636 12 26.4915
+636 13 25.9298
+636 14 25.6490
+636 15 24.3385
+636 16 23.0279
+636 17 21.6238
+636 18 20.1260
+636 19 18.4411
+636 20 16.8497
+636 21 13.2925
+636 22  9.3609
+636 23  6.5527
+636 24  4.8677
+636 25  2.1530
+636 26  0.9361
+636 27  0.3744
+636 28  0.0936
+# pixel 637
+637  1  0.7361
+637  2  2.3924
+637  3  6.3490
+637  4 11.4099
+637  5 17.8509
+637  6 21.7156
+637  7 22.9118
+637  8 24.2000
+637  9 25.6722
+637 10 26.2243
+637 11 26.2243
+637 12 26.0403
+637 13 25.4882
+637 14 25.2121
+637 15 23.9239
+637 16 22.6357
+637 17 21.2555
+637 18 19.7833
+637 19 18.1270
+637 20 16.5627
+637 21 13.0661
+637 22  9.2015
+637 23  6.4411
+637 24  4.7848
+637 25  2.1163
+637 26  0.9202
+637 27  0.3681
+637 28  0.0920
+# pixel 638
+638  1  0.7385
+638  2  2.4003
+638  3  6.3700
+638  4 11.4475
+638  5 17.9098
+638  6 21.7871
+638  7 22.9873
+638  8 24.2797
+638  9 25.7568
+638 10 26.3107
+638 11 26.3107
+638 12 26.1261
+638 13 25.5722
+638 14 25.2952
+638 15 24.0028
+638 16 22.7103
+638 17 21.3255
+638 18 19.8484
+638 19 18.1867
+638 20 16.6173
+638 21 13.1092
+638 22  9.2318
+638 23  6.4623
+638 24  4.8006
+638 25  2.1233
+638 26  0.9232
+638 27  0.3693
+638 28  0.0923
+# pixel 639
+639  1  0.6309
+639  2  2.0504
+639  3  5.4414
+639  4  9.7787
+639  5 15.2989
+639  6 18.6111
+639  7 19.6363
+639  8 20.7403
+639  9 22.0021
+639 10 22.4752
+639 11 22.4752
+639 12 22.3175
+639 13 21.8444
+639 14 21.6078
+639 15 20.5037
+639 16 19.3997
+639 17 18.2168
+639 18 16.9550
+639 19 15.5355
+639 20 14.1949
+639 21 11.1982
+639 22  7.8861
+639 23  5.5202
+639 24  4.1007
+639 25  1.8138
+639 26  0.7886
+639 27  0.3154
+639 28  0.0789
+# pixel 640
+640  1  0.7305
+640  2  2.3740
+640  3  6.3003
+640  4 11.3223
+640  5 17.7139
+640  6 21.5489
+640  7 22.7359
+640  8 24.0142
+640  9 25.4752
+640 10 26.0230
+640 11 26.0230
+640 12 25.8404
+640 13 25.2925
+640 14 25.0186
+640 15 23.7403
+640 16 22.4620
+640 17 21.0923
+640 18 19.6314
+640 19 17.9878
+640 20 16.4356
+640 21 12.9658
+640 22  9.1309
+640 23  6.3916
+640 24  4.7481
+640 25  2.1001
+640 26  0.9131
+640 27  0.3652
+640 28  0.0913
+# pixel 641
+641  1  0.7447
+641  2  2.4203
+641  3  6.4231
+641  4 11.5429
+641  5 18.0590
+641  6 21.9687
+641  7 23.1789
+641  8 24.4821
+641  9 25.9715
+641 10 26.5300
+641 11 26.5300
+641 12 26.3438
+641 13 25.7853
+641 14 25.5061
+641 15 24.2028
+641 16 22.8996
+641 17 21.5033
+641 18 20.0139
+641 19 18.3383
+641 20 16.7558
+641 21 13.2185
+641 22  9.3088
+641 23  6.5161
+641 24  4.8406
+641 25  2.1410
+641 26  0.9309
+641 27  0.3724
+641 28  0.0931
+# pixel 642
+642  1  0.7598
+642  2  2.4694
+642  3  6.5534
+642  4 11.7771
+642  5 18.4254
+642  6 22.4145
+642  7 23.6491
+642  8 24.9788
+642  9 26.4984
+642 10 27.0683
+642 11 27.0683
+642 12 26.8784
+642 13 26.3085
+642 14 26.0236
+642 15 24.6939
+642 16 23.3642
+642 17 21.9396
+642 18 20.4199
+642 19 18.7104
+642 20 17.0958
+642 21 13.4867
+642 22  9.4977
+642 23  6.6484
+642 24  4.9388
+642 25  2.1845
+642 26  0.9498
+642 27  0.3799
+642 28  0.0950
+# pixel 643
+643  1  0.7022
+643  2  2.2822
+643  3  6.0566
+643  4 10.8842
+643  5 17.0286
+643  6 20.7152
+643  7 21.8562
+643  8 23.0851
+643  9 24.4895
+643 10 25.0162
+643 11 25.0162
+643 12 24.8406
+643 13 24.3140
+643 14 24.0506
+643 15 22.8218
+643 16 21.5929
+643 17 20.2763
+643 18 18.8719
+643 19 17.2919
+643 20 15.7997
+643 21 12.4642
+643 22  8.7776
+643 23  6.1443
+643 24  4.5644
+643 25  2.0189
+643 26  0.8778
+643 27  0.3511
+643 28  0.0878
+# pixel 644
+644  1  0.7355
+644  2  2.3904
+644  3  6.3438
+644  4 11.4005
+644  5 17.8362
+644  6 21.6976
+644  7 22.8929
+644  8 24.1800
+644  9 25.6510
+644 10 26.2027
+644 11 26.2027
+644 12 26.0188
+644 13 25.4672
+644 14 25.1913
+644 15 23.9042
+644 16 22.6170
+644 17 21.2379
+644 18 19.7669
+644 19 18.1120
+644 20 16.5491
+644 21 13.0554
+644 22  9.1939
+644 23  6.4357
+644 24  4.7808
+644 25  2.1146
+644 26  0.9194
+644 27  0.3678
+644 28  0.0919
+# pixel 645
+645  1  0.7611
+645  2  2.4734
+645  3  6.5641
+645  4 11.7964
+645  5 18.4556
+645  6 22.4512
+645  7 23.6879
+645  8 25.0198
+645  9 26.5419
+645 10 27.1127
+645 11 27.1127
+645 12 26.9224
+645 13 26.3516
+645 14 26.0662
+645 15 24.7344
+645 16 23.4025
+645 17 21.9755
+645 18 20.4534
+645 19 18.7410
+645 20 17.1238
+645 21 13.5088
+645 22  9.5132
+645 23  6.6593
+645 24  4.9469
+645 25  2.1880
+645 26  0.9513
+645 27  0.3805
+645 28  0.0951
+# pixel 646
+646  1  0.7667
+646  2  2.4917
+646  3  6.6126
+646  4 11.8836
+646  5 18.5920
+646  6 22.6171
+646  7 23.8630
+646  8 25.2047
+646  9 26.7380
+646 10 27.3130
+646 11 27.3130
+646 12 27.1214
+646 13 26.5464
+646 14 26.2588
+646 15 24.9172
+646 16 23.5755
+646 17 22.1379
+646 18 20.6046
+646 19 18.8795
+646 20 17.2503
+646 21 13.6086
+646 22  9.5835
+646 23  6.7085
+646 24  4.9834
+646 25  2.2042
+646 26  0.9584
+646 27  0.3833
+646 28  0.0958
+# pixel 647
+647  1  0.7264
+647  2  2.3607
+647  3  6.2650
+647  4 11.2589
+647  5 17.6147
+647  6 21.4282
+647  7 22.6086
+647  8 23.8798
+647  9 25.3325
+647 10 25.8773
+647 11 25.8773
+647 12 25.6957
+647 13 25.1510
+647 14 24.8786
+647 15 23.6074
+647 16 22.3362
+647 17 20.9743
+647 18 19.5215
+647 19 17.8871
+647 20 16.3436
+647 21 12.8933
+647 22  9.0798
+647 23  6.3558
+647 24  4.7215
+647 25  2.0883
+647 26  0.9080
+647 27  0.3632
+647 28  0.0908
+# pixel 648
+648  1  0.7846
+648  2  2.5500
+648  3  6.7672
+648  4 12.1614
+648  5 19.0267
+648  6 23.1459
+648  7 24.4209
+648  8 25.7939
+648  9 27.3632
+648 10 27.9516
+648 11 27.9516
+648 12 27.7555
+648 13 27.1670
+648 14 26.8728
+648 15 25.4997
+648 16 24.1266
+648 17 22.6555
+648 18 21.0863
+648 19 19.3209
+648 20 17.6536
+648 21 13.9268
+648 22  9.8076
+648 23  6.8653
+648 24  5.0999
+648 25  2.2557
+648 26  0.9808
+648 27  0.3923
+648 28  0.0981
+# pixel 649
+649  1  0.7554
+649  2  2.4550
+649  3  6.5152
+649  4 11.7085
+649  5 18.3182
+649  6 22.2840
+649  7 23.5115
+649  8 24.8334
+649  9 26.3442
+649 10 26.9107
+649 11 26.9107
+649 12 26.7219
+649 13 26.1553
+649 14 25.8721
+649 15 24.5501
+649 16 23.2282
+649 17 21.8118
+649 18 20.3011
+649 19 18.6014
+649 20 16.9962
+649 21 13.4081
+649 22  9.4424
+649 23  6.6097
+649 24  4.9100
+649 25  2.1717
+649 26  0.9442
+649 27  0.3777
+649 28  0.0944
+# pixel 650
+650  1  0.6860
+650  2  2.2295
+650  3  5.9166
+650  4 10.6328
+650  5 16.6352
+650  6 20.2366
+650  7 21.3513
+650  8 22.5518
+650  9 23.9237
+650 10 24.4382
+650 11 24.4382
+650 12 24.2667
+650 13 23.7523
+650 14 23.4950
+650 15 22.2945
+650 16 21.0941
+650 17 19.8078
+650 18 18.4359
+650 19 16.8924
+650 20 15.4347
+650 21 12.1762
+650 22  8.5748
+650 23  6.0024
+650 24  4.4589
+650 25  1.9722
+650 26  0.8575
+650 27  0.3430
+650 28  0.0857
+# pixel 651
+651  1  0.7063
+651  2  2.2956
+651  3  6.0922
+651  4 10.9484
+651  5 17.1289
+651  6 20.8373
+651  7 21.9851
+651  8 23.2212
+651  9 24.6339
+651 10 25.1636
+651 11 25.1636
+651 12 24.9870
+651 13 24.4573
+651 14 24.1924
+651 15 22.9563
+651 16 21.7202
+651 17 20.3958
+651 18 18.9831
+651 19 17.3938
+651 20 15.8928
+651 21 12.5377
+651 22  8.8293
+651 23  6.1805
+651 24  4.5913
+651 25  2.0307
+651 26  0.8829
+651 27  0.3532
+651 28  0.0883
+# pixel 652
+652  1  0.7844
+652  2  2.5492
+652  3  6.7652
+652  4 12.1578
+652  5 19.0211
+652  6 23.1391
+652  7 24.4137
+652  8 25.7863
+652  9 27.3551
+652 10 27.9434
+652 11 27.9434
+652 12 27.7473
+652 13 27.1590
+652 14 26.8649
+652 15 25.4922
+652 16 24.1195
+652 17 22.6488
+652 18 21.0801
+652 19 19.3152
+652 20 17.6484
+652 21 13.9227
+652 22  9.8047
+652 23  6.8633
+652 24  5.0984
+652 25  2.2551
+652 26  0.9805
+652 27  0.3922
+652 28  0.0980
+# pixel 653
+653  1  0.7915
+653  2  2.5722
+653  3  6.8263
+653  4 12.2675
+653  5 19.1927
+653  6 23.3478
+653  7 24.6339
+653  8 26.0189
+653  9 27.6018
+653 10 28.1954
+653 11 28.1954
+653 12 27.9976
+653 13 27.4040
+653 14 27.1072
+653 15 25.7221
+653 16 24.3371
+653 17 22.8531
+653 18 21.2702
+653 19 19.4895
+653 20 17.8076
+653 21 14.0482
+653 22  9.8931
+653 23  6.9252
+653 24  5.1444
+653 25  2.2754
+653 26  0.9893
+653 27  0.3957
+653 28  0.0989
+# pixel 654
+654  1  0.7132
+654  2  2.3179
+654  3  6.1512
+654  4 11.0544
+654  5 17.2948
+654  6 21.0390
+654  7 22.1979
+654  8 23.4460
+654  9 24.8724
+654 10 25.4072
+654 11 25.4072
+654 12 25.2289
+654 13 24.6941
+654 14 24.4266
+654 15 23.1785
+654 16 21.9305
+654 17 20.5932
+654 18 19.1669
+654 19 17.5622
+654 20 16.0467
+654 21 12.6590
+654 22  8.9148
+654 23  6.2404
+654 24  4.6357
+654 25  2.0504
+654 26  0.8915
+654 27  0.3566
+654 28  0.0891
+# pixel 655
+655  1  0.7613
+655  2  2.4743
+655  3  6.5665
+655  4 11.8006
+655  5 18.4623
+655  6 22.4593
+655  7 23.6964
+655  8 25.0288
+655  9 26.5514
+655 10 27.1224
+655 11 27.1224
+655 12 26.9321
+655 13 26.3611
+655 14 26.0756
+655 15 24.7433
+655 16 23.4109
+655 17 21.9834
+655 18 20.4608
+655 19 18.7478
+655 20 17.1299
+655 21 13.5136
+655 22  9.5166
+655 23  6.6616
+655 24  4.9487
+655 25  2.1888
+655 26  0.9517
+655 27  0.3807
+655 28  0.0952
+# pixel 656
+656  1  0.7194
+656  2  2.3381
+656  3  6.2048
+656  4 11.1507
+656  5 17.4455
+656  6 21.2223
+656  7 22.3914
+656  8 23.6503
+656  9 25.0891
+656 10 25.6287
+656 11 25.6287
+656 12 25.4488
+656 13 24.9093
+656 14 24.6395
+656 15 23.3805
+656 16 22.1216
+656 17 20.7727
+656 18 19.3339
+656 19 17.7153
+656 20 16.1865
+656 21 12.7694
+656 22  8.9925
+656 23  6.2948
+656 24  4.6761
+656 25  2.0683
+656 26  0.8993
+656 27  0.3597
+656 28  0.0899
+# pixel 657
+657  1  0.7991
+657  2  2.5972
+657  3  6.8925
+657  4 12.3866
+657  5 19.3790
+657  6 23.5744
+657  7 24.8730
+657  8 26.2715
+657  9 27.8698
+657 10 28.4691
+657 11 28.4691
+657 12 28.2693
+657 13 27.6700
+657 14 27.3703
+657 15 25.9718
+657 16 24.5733
+657 17 23.0750
+657 18 21.4767
+657 19 19.6786
+657 20 17.9805
+657 21 14.1846
+657 22  9.9892
+657 23  6.9924
+657 24  5.1944
+657 25  2.2975
+657 26  0.9989
+657 27  0.3996
+657 28  0.0999
+# pixel 658
+658  1  0.7221
+658  2  2.3468
+658  3  6.2279
+658  4 11.1922
+658  5 17.5104
+658  6 21.3013
+658  7 22.4747
+658  8 23.7383
+658  9 25.1825
+658 10 25.7240
+658 11 25.7240
+658 12 25.5435
+658 13 25.0020
+658 14 24.7312
+658 15 23.4675
+658 16 22.2039
+658 17 20.8500
+658 18 19.4059
+658 19 17.7812
+658 20 16.2468
+658 21 12.8169
+658 22  9.0260
+658 23  6.3182
+658 24  4.6935
+658 25  2.0760
+658 26  0.9026
+658 27  0.3610
+658 28  0.0903
+# pixel 659
+659  1  0.7565
+659  2  2.4587
+659  3  6.5249
+659  4 11.7259
+659  5 18.3454
+659  6 22.3171
+659  7 23.5464
+659  8 24.8703
+659  9 26.3833
+659 10 26.9507
+659 11 26.9507
+659 12 26.7616
+659 13 26.1942
+659 14 25.9105
+659 15 24.5866
+659 16 23.2627
+659 17 21.8442
+659 18 20.3312
+659 19 18.6291
+659 20 17.0215
+659 21 13.4281
+659 22  9.4564
+659 23  6.6195
+659 24  4.9173
+659 25  2.1750
+659 26  0.9456
+659 27  0.3783
+659 28  0.0946
+# pixel 660
+660  1  0.7364
+660  2  2.3933
+660  3  6.3514
+660  4 11.4140
+660  5 17.8575
+660  6 21.7235
+660  7 22.9201
+660  8 24.2088
+660  9 25.6816
+660 10 26.2339
+660 11 26.2339
+660 12 26.0498
+660 13 25.4975
+660 14 25.2214
+660 15 23.9327
+660 16 22.6440
+660 17 21.2633
+660 18 19.7905
+660 19 18.1336
+660 20 16.5688
+660 21 13.0709
+660 22  9.2049
+660 23  6.4434
+660 24  4.7865
+660 25  2.1171
+660 26  0.9205
+660 27  0.3682
+660 28  0.0920
+# pixel 661
+661  1  0.6754
+661  2  2.1951
+661  3  5.8253
+661  4 10.4687
+661  5 16.3785
+661  6 19.9244
+661  7 21.0219
+661  8 22.2038
+661  9 23.5547
+661 10 24.0612
+661 11 24.0612
+661 12 23.8924
+661 13 23.3858
+661 14 23.1325
+661 15 21.9506
+661 16 20.7686
+661 17 19.5022
+661 18 18.1514
+661 19 16.6318
+661 20 15.1965
+661 21 11.9884
+661 22  8.4425
+661 23  5.9098
+661 24  4.3901
+661 25  1.9418
+661 26  0.8443
+661 27  0.3377
+661 28  0.0844
+# pixel 662
+662  1  0.7758
+662  2  2.5214
+662  3  6.6914
+662  4 12.0251
+662  5 18.8134
+662  6 22.8865
+662  7 24.1472
+662  8 25.5048
+662  9 27.0565
+662 10 27.6383
+662 11 27.6383
+662 12 27.4444
+662 13 26.8625
+662 14 26.5716
+662 15 25.2139
+662 16 23.8562
+662 17 22.4016
+662 18 20.8500
+662 19 19.1044
+662 20 17.4558
+662 21 13.7707
+662 22  9.6977
+662 23  6.7884
+662 24  5.0428
+662 25  2.2305
+662 26  0.9698
+662 27  0.3879
+662 28  0.0970
+# pixel 663
+663  1  0.7551
+663  2  2.4540
+663  3  6.5125
+663  4 11.7036
+663  5 18.3105
+663  6 22.2746
+663  7 23.5016
+663  8 24.8230
+663  9 26.3331
+663 10 26.8994
+663 11 26.8994
+663 12 26.7106
+663 13 26.1443
+663 14 25.8612
+663 15 24.5398
+663 16 23.2184
+663 17 21.8027
+663 18 20.2925
+663 19 18.5936
+663 20 16.9891
+663 21 13.4025
+663 22  9.4384
+663 23  6.6069
+663 24  4.9080
+663 25  2.1708
+663 26  0.9438
+663 27  0.3775
+663 28  0.0944
+# pixel 664
+664  1  0.7036
+664  2  2.2867
+664  3  6.0686
+664  4 10.9059
+664  5 17.0625
+664  6 20.7565
+664  7 21.8998
+664  8 23.1312
+664  9 24.5384
+664 10 25.0661
+664 11 25.0661
+664 12 24.8902
+664 13 24.3625
+664 14 24.0986
+664 15 22.8673
+664 16 21.6360
+664 17 20.3167
+664 18 18.9095
+664 19 17.3264
+664 20 15.8312
+664 21 12.4891
+664 22  8.7951
+664 23  6.1566
+664 24  4.5735
+664 25  2.0229
+664 26  0.8795
+664 27  0.3518
+664 28  0.0880
+# pixel 665
+665  1  0.7832
+665  2  2.5453
+665  3  6.7549
+665  4 12.1392
+665  5 18.9919
+665  6 23.1036
+665  7 24.3762
+665  8 25.7468
+665  9 27.3131
+665 10 27.9005
+665 11 27.9005
+665 12 27.7047
+665 13 27.1173
+665 14 26.8236
+665 15 25.4531
+665 16 24.0825
+665 17 22.6141
+665 18 21.0478
+665 19 19.2856
+665 20 17.6214
+665 21 13.9013
+665 22  9.7897
+665 23  6.8528
+665 24  5.0906
+665 25  2.2516
+665 26  0.9790
+665 27  0.3916
+665 28  0.0979
+# pixel 666
+666  1  0.6662
+666  2  2.1653
+666  3  5.7463
+666  4 10.3266
+666  5 16.1562
+666  6 19.6539
+666  7 20.7365
+666  8 21.9024
+666  9 23.2349
+666 10 23.7346
+666 11 23.7346
+666 12 23.5680
+666 13 23.0684
+666 14 22.8185
+666 15 21.6526
+666 16 20.4867
+666 17 19.2375
+666 18 17.9050
+666 19 16.4060
+666 20 14.9903
+666 21 11.8257
+666 22  8.3279
+666 23  5.8295
+666 24  4.3305
+666 25  1.9154
+666 26  0.8328
+666 27  0.3331
+666 28  0.0833
+# pixel 667
+667  1  0.7794
+667  2  2.5331
+667  3  6.7224
+667  4 12.0809
+667  5 18.9007
+667  6 22.9927
+667  7 24.2592
+667  8 25.6232
+667  9 27.1820
+667 10 27.7665
+667 11 27.7665
+667 12 27.5717
+667 13 26.9871
+667 14 26.6949
+667 15 25.3309
+667 16 23.9669
+667 17 22.5055
+667 18 20.9467
+667 19 19.1930
+667 20 17.5368
+667 21 13.8346
+667 22  9.7426
+667 23  6.8199
+667 24  5.0662
+667 25  2.2408
+667 26  0.9743
+667 27  0.3897
+667 28  0.0974
+# pixel 668
+668  1  0.7263
+668  2  2.3606
+668  3  6.2647
+668  4 11.2583
+668  5 17.6139
+668  6 21.4272
+668  7 22.6075
+668  8 23.8786
+668  9 25.3313
+668 10 25.8760
+668 11 25.8760
+668 12 25.6944
+668 13 25.1497
+668 14 24.8773
+668 15 23.6062
+668 16 22.3351
+668 17 20.9732
+668 18 19.5205
+668 19 17.8862
+668 20 16.3427
+668 21 12.8926
+668 22  9.0793
+668 23  6.3555
+668 24  4.7212
+668 25  2.0882
+668 26  0.9079
+668 27  0.3632
+668 28  0.0908
+# pixel 669
+669  1  0.7399
+669  2  2.4047
+669  3  6.3817
+669  4 11.4685
+669  5 17.9427
+669  6 21.8272
+669  7 23.0295
+669  8 24.3243
+669  9 25.8042
+669 10 26.3591
+669 11 26.3591
+669 12 26.1741
+669 13 25.6192
+669 14 25.3417
+669 15 24.0469
+669 16 22.7521
+669 17 21.3647
+669 18 19.8849
+669 19 18.2201
+669 20 16.6478
+669 21 13.1333
+669 22  9.2488
+669 23  6.4742
+669 24  4.8094
+669 25  2.1272
+669 26  0.9249
+669 27  0.3700
+669 28  0.0925
+# pixel 670
+670  1  0.7961
+670  2  2.5872
+670  3  6.8659
+670  4 12.3388
+670  5 19.3043
+670  6 23.4835
+670  7 24.7771
+670  8 26.1702
+670  9 27.7623
+670 10 28.3593
+670 11 28.3593
+670 12 28.1603
+670 13 27.5633
+670 14 27.2648
+670 15 25.8717
+670 16 24.4786
+670 17 22.9860
+670 18 21.3939
+670 19 19.6028
+670 20 17.9112
+670 21 14.1299
+670 22  9.9506
+670 23  6.9655
+670 24  5.1743
+670 25  2.2886
+670 26  0.9951
+670 27  0.3980
+670 28  0.0995
+# pixel 671
+671  1  0.8106
+671  2  2.6343
+671  3  6.9911
+671  4 12.5638
+671  5 19.6563
+671  6 23.9117
+671  7 25.2289
+671  8 26.6474
+671  9 28.2685
+671 10 28.8765
+671 11 28.8765
+671 12 28.6738
+671 13 28.0659
+671 14 27.7619
+671 15 26.3434
+671 16 24.9249
+671 17 23.4051
+671 18 21.7840
+671 19 19.9602
+671 20 18.2378
+671 21 14.3876
+671 22 10.1321
+671 23  7.0925
+671 24  5.2687
+671 25  2.3304
+671 26  1.0132
+671 27  0.4053
+671 28  0.1013
+# pixel 672
+672  1  0.7230
+672  2  2.3498
+672  3  6.2359
+672  4 11.2065
+672  5 17.5328
+672  6 21.3286
+672  7 22.5035
+672  8 23.7687
+672  9 25.2147
+672 10 25.7570
+672 11 25.7570
+672 12 25.5762
+672 13 25.0340
+672 14 24.7629
+672 15 23.4976
+672 16 22.2323
+672 17 20.8767
+672 18 19.4307
+672 19 17.8040
+672 20 16.2676
+672 21 12.8333
+672 22  9.0375
+672 23  6.3263
+672 24  4.6995
+672 25  2.0786
+672 26  0.9038
+672 27  0.3615
+672 28  0.0904
+# pixel 673
+673  1  0.8418
+673  2  2.7360
+673  3  7.2608
+673  4 13.0484
+673  5 20.4145
+673  6 24.8341
+673  7 26.2021
+673  8 27.6753
+673  9 29.3590
+673 10 29.9904
+673 11 29.9904
+673 12 29.7799
+673 13 29.1485
+673 14 28.8329
+673 15 27.3596
+673 16 25.8864
+673 17 24.3080
+673 18 22.6243
+673 19 20.7302
+673 20 18.9413
+673 21 14.9426
+673 22 10.5229
+673 23  7.3661
+673 24  5.4719
+673 25  2.4203
+673 26  1.0523
+673 27  0.4209
+673 28  0.1052
+# pixel 674
+674  1  0.6388
+674  2  2.0761
+674  3  5.5096
+674  4  9.9014
+674  5 15.4909
+674  6 18.8446
+674  7 19.8826
+674  8 21.0005
+674  9 22.2781
+674 10 22.7572
+674 11 22.7572
+674 12 22.5975
+674 13 22.1184
+674 14 21.8789
+674 15 20.7610
+674 16 19.6431
+674 17 18.4453
+674 18 17.1677
+674 19 15.7304
+674 20 14.3730
+674 21 11.3387
+674 22  7.9850
+674 23  5.5895
+674 24  4.1522
+674 25  1.8365
+674 26  0.7985
+674 27  0.3194
+674 28  0.0798
+# pixel 675
+675  1  0.7432
+675  2  2.4154
+675  3  6.4101
+675  4 11.5196
+675  5 18.0226
+675  6 21.9243
+675  7 23.1320
+675  8 24.4326
+675  9 25.9190
+675 10 26.4764
+675 11 26.4764
+675 12 26.2906
+675 13 25.7332
+675 14 25.4545
+675 15 24.1539
+675 16 22.8533
+675 17 21.4598
+675 18 19.9734
+675 19 18.3013
+675 20 16.7220
+675 21 13.1918
+675 22  9.2900
+675 23  6.5030
+675 24  4.8308
+675 25  2.1367
+675 26  0.9290
+675 27  0.3716
+675 28  0.0929
+# pixel 676
+676  1  0.7514
+676  2  2.4420
+676  3  6.4808
+676  4 11.6466
+676  5 18.2212
+676  6 22.1661
+676  7 23.3871
+676  8 24.7020
+676  9 26.2048
+676 10 26.7683
+676 11 26.7683
+676 12 26.5805
+676 13 26.0169
+676 14 25.7352
+676 15 24.4202
+676 16 23.1053
+676 17 21.6964
+676 18 20.1937
+676 19 18.5030
+676 20 16.9063
+676 21 13.3372
+676 22  9.3924
+676 23  6.5747
+676 24  4.8840
+676 25  2.1603
+676 26  0.9392
+676 27  0.3757
+676 28  0.0939
+# pixel 677
+677  1  0.7224
+677  2  2.3480
+677  3  6.2311
+677  4 11.1979
+677  5 17.5193
+677  6 21.3122
+677  7 22.4862
+677  8 23.7505
+677  9 25.1953
+677 10 25.7372
+677 11 25.7372
+677 12 25.5566
+677 13 25.0147
+677 14 24.7438
+677 15 23.4795
+677 16 22.2153
+677 17 20.8607
+677 18 19.4158
+677 19 17.7903
+677 20 16.2551
+677 21 12.8234
+677 22  9.0306
+677 23  6.3214
+677 24  4.6959
+677 25  2.0770
+677 26  0.9031
+677 27  0.3612
+677 28  0.0903
+# pixel 678
+678  1  0.7500
+678  2  2.4374
+678  3  6.4684
+678  4 11.6245
+678  5 18.1866
+678  6 22.1240
+678  7 23.3426
+678  8 24.6551
+678  9 26.1550
+678 10 26.7175
+678 11 26.7175
+678 12 26.5300
+678 13 25.9675
+678 14 25.6863
+678 15 24.3738
+678 16 23.0614
+678 17 21.6552
+678 18 20.1553
+678 19 18.4679
+678 20 16.8742
+678 21 13.3119
+678 22  9.3746
+678 23  6.5622
+678 24  4.8748
+678 25  2.1561
+678 26  0.9375
+678 27  0.3750
+678 28  0.0937
+# pixel 679
+679  1  0.7530
+679  2  2.4474
+679  3  6.4949
+679  4 11.6721
+679  5 18.2612
+679  6 22.2146
+679  7 23.4383
+679  8 24.7561
+679  9 26.2622
+679 10 26.8270
+679 11 26.8270
+679 12 26.6387
+679 13 26.0739
+679 14 25.7915
+679 15 24.4737
+679 16 23.1559
+679 17 21.7440
+679 18 20.2379
+679 19 18.5435
+679 20 16.9433
+679 21 13.3664
+679 22  9.4130
+679 23  6.5891
+679 24  4.8947
+679 25  2.1650
+679 26  0.9413
+679 27  0.3765
+679 28  0.0941
+# pixel 680
+680  1  0.7934
+680  2  2.5786
+680  3  6.8432
+680  4 12.2979
+680  5 19.2403
+680  6 23.4057
+680  7 24.6950
+680  8 26.0835
+680  9 27.6703
+680 10 28.2654
+680 11 28.2654
+680 12 28.0670
+680 13 27.4720
+680 14 27.1744
+680 15 25.7860
+680 16 24.3975
+680 17 22.9098
+680 18 21.3230
+680 19 19.5378
+680 20 17.8518
+680 21 14.0831
+680 22  9.9177
+680 23  6.9424
+680 24  5.1572
+680 25  2.2811
+680 26  0.9918
+680 27  0.3967
+680 28  0.0992
+# pixel 681
+681  1  0.7544
+681  2  2.4519
+681  3  6.5070
+681  4 11.6938
+681  5 18.2951
+681  6 22.2559
+681  7 23.4818
+681  8 24.8021
+681  9 26.3110
+681 10 26.8768
+681 11 26.8768
+681 12 26.6882
+681 13 26.1224
+681 14 25.8394
+681 15 24.5192
+681 16 23.1989
+681 17 21.7843
+681 18 20.2755
+681 19 18.5780
+681 20 16.9748
+681 21 13.3912
+681 22  9.4305
+681 23  6.6013
+681 24  4.9038
+681 25  2.1690
+681 26  0.9430
+681 27  0.3772
+681 28  0.0943
+# pixel 682
+682  1  0.7356
+682  2  2.3906
+682  3  6.3444
+682  4 11.4015
+682  5 17.8379
+682  6 21.6997
+682  7 22.8950
+682  8 24.1823
+682  9 25.6534
+682 10 26.2051
+682 11 26.2051
+682 12 26.0212
+682 13 25.4695
+682 14 25.1937
+682 15 23.9064
+682 16 22.6191
+682 17 21.2399
+682 18 19.7688
+682 19 18.1137
+682 20 16.5506
+682 21 13.0566
+682 22  9.1948
+682 23  6.4363
+682 24  4.7813
+682 25  2.1148
+682 26  0.9195
+682 27  0.3678
+682 28  0.0919
+# pixel 683
+683  1  0.7898
+683  2  2.5668
+683  3  6.8120
+683  4 12.2418
+683  5 19.1525
+683  6 23.2990
+683  7 24.5824
+683  8 25.9645
+683  9 27.5441
+683 10 28.1365
+683 11 28.1365
+683 12 27.9390
+683 13 27.3467
+683 14 27.0505
+683 15 25.6683
+683 16 24.2862
+683 17 22.8053
+683 18 21.2257
+683 19 19.4487
+683 20 17.7704
+683 21 14.0189
+683 22  9.8724
+683 23  6.9107
+683 24  5.1337
+683 25  2.2707
+683 26  0.9872
+683 27  0.3949
+683 28  0.0987
+# pixel 684
+684  1  0.7086
+684  2  2.3031
+684  3  6.1121
+684  4 10.9840
+684  5 17.1847
+684  6 20.9051
+684  7 22.0566
+684  8 23.2968
+684  9 24.7141
+684 10 25.2455
+684 11 25.2455
+684 12 25.0684
+684 13 24.5369
+684 14 24.2712
+684 15 23.0310
+684 16 21.7909
+684 17 20.4622
+684 18 19.0449
+684 19 17.4504
+684 20 15.9446
+684 21 12.5785
+684 22  8.8581
+684 23  6.2007
+684 24  4.6062
+684 25  2.0374
+684 26  0.8858
+684 27  0.3543
+684 28  0.0886
+# pixel 685
+685  1  0.7746
+685  2  2.5174
+685  3  6.6809
+685  4 12.0063
+685  5 18.7840
+685  6 22.8506
+685  7 24.1093
+685  8 25.4649
+685  9 27.0141
+685 10 27.5950
+685 11 27.5950
+685 12 27.4014
+685 13 26.8204
+685 14 26.5300
+685 15 25.1744
+685 16 23.8189
+685 17 22.3665
+685 18 20.8173
+685 19 19.0745
+685 20 17.4284
+685 21 13.7491
+685 22  9.6825
+685 23  6.7777
+685 24  5.0349
+685 25  2.2270
+685 26  0.9682
+685 27  0.3873
+685 28  0.0968
+# pixel 686
+686  1  0.7861
+686  2  2.5550
+686  3  6.7805
+686  4 12.1853
+686  5 19.0640
+686  6 23.1913
+686  7 24.4688
+686  8 25.8445
+686  9 27.4168
+686 10 28.0064
+686 11 28.0064
+686 12 27.8099
+686 13 27.2203
+686 14 26.9255
+686 15 25.5497
+686 16 24.1740
+686 17 22.7000
+686 18 21.1277
+686 19 19.3588
+686 20 17.6883
+686 21 13.9541
+686 22  9.8268
+686 23  6.8788
+686 24  5.1099
+686 25  2.2602
+686 26  0.9827
+686 27  0.3931
+686 28  0.0983
+# pixel 687
+687  1  0.8207
+687  2  2.6673
+687  3  7.0785
+687  4 12.7208
+687  5 19.9019
+687  6 24.2106
+687  7 25.5442
+687  8 26.9804
+687  9 28.6218
+687 10 29.2373
+687 11 29.2373
+687 12 29.0322
+687 13 28.4166
+687 14 28.1089
+687 15 26.6727
+687 16 25.2364
+687 17 23.6976
+687 18 22.0562
+687 19 20.2097
+687 20 18.4657
+687 21 14.5674
+687 22 10.2587
+687 23  7.1811
+687 24  5.3345
+687 25  2.3595
+687 26  1.0259
+687 27  0.4103
+687 28  0.1026
+# pixel 688
+688  1  0.7116
+688  2  2.3126
+688  3  6.1372
+688  4 11.0291
+688  5 17.2552
+688  6 20.9909
+688  7 22.1471
+688  8 23.3924
+688  9 24.8155
+688 10 25.3491
+688 11 25.3491
+688 12 25.1713
+688 13 24.6376
+688 14 24.3708
+688 15 23.1255
+688 16 21.8803
+688 17 20.5461
+688 18 19.1230
+688 19 17.5220
+688 20 16.0100
+688 21 12.6301
+688 22  8.8944
+688 23  6.2261
+688 24  4.6251
+688 25  2.0457
+688 26  0.8894
+688 27  0.3558
+688 28  0.0889
+# pixel 689
+689  1  0.7046
+689  2  2.2901
+689  3  6.0774
+689  4 10.9218
+689  5 17.0873
+689  6 20.7866
+689  7 21.9316
+689  8 23.1647
+689  9 24.5740
+689 10 25.1025
+689 11 25.1025
+689 12 24.9263
+689 13 24.3978
+689 14 24.1336
+689 15 22.9005
+689 16 21.6674
+689 17 20.3462
+689 18 18.9370
+689 19 17.3515
+689 20 15.8542
+689 21 12.5072
+689 22  8.8079
+689 23  6.1655
+689 24  4.5801
+689 25  2.0258
+689 26  0.8808
+689 27  0.3523
+689 28  0.0881
+# pixel 690
+690  1  0.7098
+690  2  2.3068
+690  3  6.1220
+690  4 11.0018
+690  5 17.2125
+690  6 20.9389
+690  7 22.0923
+690  8 23.3344
+690  9 24.7540
+690 10 25.2863
+690 11 25.2863
+690 12 25.1089
+690 13 24.5766
+690 14 24.3104
+690 15 23.0682
+690 16 21.8261
+690 17 20.4953
+690 18 19.0757
+690 19 17.4786
+690 20 15.9703
+690 21 12.5988
+690 22  8.8724
+690 23  6.2107
+690 24  4.6136
+690 25  2.0407
+690 26  0.8872
+690 27  0.3549
+690 28  0.0887
+# pixel 691
+691  1  0.7319
+691  2  2.3785
+691  3  6.3122
+691  4 11.3437
+691  5 17.7474
+691  6 21.5896
+691  7 22.7789
+691  8 24.0596
+691  9 25.5233
+691 10 26.0722
+691 11 26.0722
+691 12 25.8892
+691 13 25.3404
+691 14 25.0659
+691 15 23.7852
+691 16 22.5044
+691 17 21.1322
+691 18 19.6685
+691 19 18.0218
+691 20 16.4667
+691 21 12.9904
+691 22  9.1481
+691 23  6.4037
+691 24  4.7570
+691 25  2.1041
+691 26  0.9148
+691 27  0.3659
+691 28  0.0915
+# pixel 692
+692  1  0.6642
+692  2  2.1587
+692  3  5.7290
+692  4 10.2956
+692  5 16.1076
+692  6 19.5948
+692  7 20.6741
+692  8 21.8365
+692  9 23.1650
+692 10 23.6632
+692 11 23.6632
+692 12 23.4971
+692 13 22.9989
+692 14 22.7499
+692 15 21.5874
+692 16 20.4250
+692 17 19.1796
+692 18 17.8512
+692 19 16.3566
+692 20 14.9452
+692 21 11.7901
+692 22  8.3029
+692 23  5.8120
+692 24  4.3175
+692 25  1.9097
+692 26  0.8303
+692 27  0.3321
+692 28  0.0830
+# pixel 693
+693  1  0.7940
+693  2  2.5805
+693  3  6.8483
+693  4 12.3071
+693  5 19.2547
+693  6 23.4233
+693  7 24.7135
+693  8 26.1030
+693  9 27.6910
+693 10 28.2866
+693 11 28.2866
+693 12 28.0881
+693 13 27.4925
+693 14 27.1948
+693 15 25.8053
+693 16 24.4158
+693 17 22.9270
+693 18 21.3390
+693 19 19.5525
+693 20 17.8652
+693 21 14.0937
+693 22  9.9251
+693 23  6.9476
+693 24  5.1611
+693 25  2.2828
+693 26  0.9925
+693 27  0.3970
+693 28  0.0993
+# pixel 694
+694  1  0.7641
+694  2  2.4834
+694  3  6.5906
+694  4 11.8439
+694  5 18.5300
+694  6 22.5417
+694  7 23.7834
+694  8 25.1206
+694  9 26.6488
+694 10 27.2219
+694 11 27.2219
+694 12 27.0309
+694 13 26.4578
+694 14 26.1713
+694 15 24.8340
+694 16 23.4968
+694 17 22.0641
+694 18 20.5358
+694 19 18.8166
+694 20 17.1928
+694 21 13.5632
+694 22  9.5516
+694 23  6.6861
+694 24  4.9668
+694 25  2.1969
+694 26  0.9552
+694 27  0.3821
+694 28  0.0955
+# pixel 695
+695  1  0.7812
+695  2  2.5388
+695  3  6.7377
+695  4 12.1083
+695  5 18.9436
+695  6 23.0448
+695  7 24.3142
+695  8 25.6812
+695  9 27.2436
+695 10 27.8295
+695 11 27.8295
+695 12 27.6342
+695 13 27.0483
+695 14 26.7553
+695 15 25.3883
+695 16 24.0212
+695 17 22.5565
+695 18 20.9942
+695 19 19.2365
+695 20 17.5765
+695 21 13.8659
+695 22  9.7647
+695 23  6.8353
+695 24  5.0777
+695 25  2.2459
+695 26  0.9765
+695 27  0.3906
+695 28  0.0976
+# pixel 696
+696  1  0.7033
+696  2  2.2858
+696  3  6.0663
+696  4 10.9017
+696  5 17.0559
+696  6 20.7484
+696  7 21.8913
+696  8 23.1221
+696  9 24.5288
+696 10 25.0563
+696 11 25.0563
+696 12 24.8804
+696 13 24.3529
+696 14 24.0892
+696 15 22.8584
+696 16 21.6275
+696 17 20.3088
+696 18 18.9021
+696 19 17.3196
+696 20 15.8250
+696 21 12.4842
+696 22  8.7917
+696 23  6.1542
+696 24  4.5717
+696 25  2.0221
+696 26  0.8792
+696 27  0.3517
+696 28  0.0879
+# pixel 697
+697  1  0.6745
+697  2  2.1920
+697  3  5.8173
+697  4 10.4542
+697  5 16.3558
+697  6 19.8967
+697  7 20.9927
+697  8 22.1730
+697  9 23.5219
+697 10 24.0278
+697 11 24.0278
+697 12 23.8592
+697 13 23.3533
+697 14 23.1004
+697 15 21.9201
+697 16 20.7398
+697 17 19.4752
+697 18 18.1262
+697 19 16.6087
+697 20 15.1754
+697 21 11.9717
+697 22  8.4308
+697 23  5.9016
+697 24  4.3840
+697 25  1.9391
+697 26  0.8431
+697 27  0.3372
+697 28  0.0843
+# pixel 698
+698  1  0.7664
+698  2  2.4908
+698  3  6.6102
+698  4 11.8792
+698  5 18.5852
+698  6 22.6088
+698  7 23.8542
+698  8 25.1954
+698  9 26.7282
+698 10 27.3030
+698 11 27.3030
+698 12 27.1114
+698 13 26.5366
+698 14 26.2492
+698 15 24.9080
+698 16 23.5668
+698 17 22.1298
+698 18 20.5970
+698 19 18.8726
+698 20 17.2440
+698 21 13.6036
+698 22  9.5800
+698 23  6.7060
+698 24  4.9816
+698 25  2.2034
+698 26  0.9580
+698 27  0.3832
+698 28  0.0958
+# pixel 699
+699  1  0.7027
+699  2  2.2837
+699  3  6.0607
+699  4 10.8917
+699  5 17.0402
+699  6 20.7293
+699  7 21.8712
+699  8 23.1009
+699  9 24.5063
+699 10 25.0333
+699 11 25.0333
+699 12 24.8576
+699 13 24.3306
+699 14 24.0671
+699 15 22.8374
+699 16 21.6077
+699 17 20.2901
+699 18 18.8848
+699 19 17.3037
+699 20 15.8105
+699 21 12.4727
+699 22  8.7836
+699 23  6.1485
+699 24  4.5675
+699 25  2.0202
+699 26  0.8784
+699 27  0.3513
+699 28  0.0878
+# pixel 700
+700  1  0.6682
+700  2  2.1717
+700  3  5.7633
+700  4 10.3573
+700  5 16.2042
+700  6 19.7123
+700  7 20.7981
+700  8 21.9675
+700  9 23.3039
+700 10 23.8051
+700 11 23.8051
+700 12 23.6380
+700 13 23.1369
+700 14 22.8863
+700 15 21.7169
+700 16 20.5476
+700 17 19.2947
+700 18 17.9582
+700 19 16.4547
+700 20 15.0348
+700 21 11.8608
+700 22  8.3527
+700 23  5.8469
+700 24  4.3434
+700 25  1.9211
+700 26  0.8353
+700 27  0.3341
+700 28  0.0835
+# pixel 701
+701  1  0.7308
+701  2  2.3751
+701  3  6.3031
+701  4 11.3273
+701  5 17.7217
+701  6 21.5584
+701  7 22.7459
+701  8 24.0248
+701  9 25.4864
+701 10 26.0345
+701 11 26.0345
+701 12 25.8518
+701 13 25.3037
+701 14 25.0296
+701 15 23.7507
+701 16 22.4719
+701 17 21.1016
+701 18 19.6400
+701 19 17.9958
+701 20 16.4428
+701 21 12.9716
+701 22  9.1349
+701 23  6.3944
+701 24  4.7501
+701 25  2.1010
+701 26  0.9135
+701 27  0.3654
+701 28  0.0913
+# pixel 702
+702  1  0.7053
+702  2  2.2921
+702  3  6.0830
+702  4 10.9318
+702  5 17.1029
+702  6 20.8056
+702  7 21.9517
+702  8 23.1859
+702  9 24.5965
+702 10 25.1254
+702 11 25.1254
+702 12 24.9491
+702 13 24.4202
+702 14 24.1557
+702 15 22.9215
+702 16 21.6872
+702 17 20.3648
+702 18 18.9543
+702 19 17.3674
+702 20 15.8687
+702 21 12.5186
+702 22  8.8159
+702 23  6.1712
+702 24  4.5843
+702 25  2.0277
+702 26  0.8816
+702 27  0.3526
+702 28  0.0882
+# pixel 703
+703  1  0.6448
+703  2  2.0957
+703  3  5.5618
+703  4  9.9951
+703  5 15.6374
+703  6 19.0228
+703  7 20.0707
+703  8 21.1992
+703  9 22.4889
+703 10 22.9725
+703 11 22.9725
+703 12 22.8113
+703 13 22.3277
+703 14 22.0858
+703 15 20.9574
+703 16 19.8289
+703 17 18.6198
+703 18 17.3301
+703 19 15.8792
+703 20 14.5089
+703 21 11.4459
+703 22  8.0605
+703 23  5.6424
+703 24  4.1915
+703 25  1.8539
+703 26  0.8061
+703 27  0.3224
+703 28  0.0806
+# pixel 704
+704  1  0.7353
+704  2  2.3898
+704  3  6.3422
+704  4 11.3976
+704  5 17.8318
+704  6 21.6923
+704  7 22.8872
+704  8 24.1740
+704  9 25.6447
+704 10 26.1962
+704 11 26.1962
+704 12 26.0124
+704 13 25.4609
+704 14 25.1851
+704 15 23.8983
+704 16 22.6115
+704 17 21.2327
+704 18 19.7621
+704 19 18.1076
+704 20 16.5450
+704 21 13.0521
+704 22  9.1917
+704 23  6.4342
+704 24  4.7797
+704 25  2.1141
+704 26  0.9192
+704 27  0.3677
+704 28  0.0919
+# pixel 705
+705  1  0.7720
+705  2  2.5089
+705  3  6.6583
+705  4 11.9656
+705  5 18.7204
+705  6 22.7733
+705  7 24.0277
+705  8 25.3787
+705  9 26.9226
+705 10 27.5016
+705 11 27.5016
+705 12 27.3086
+705 13 26.7296
+705 14 26.4401
+705 15 25.0892
+705 16 23.7382
+705 17 22.2908
+705 18 20.7468
+705 19 19.0099
+705 20 17.3694
+705 21 13.7026
+705 22  9.6497
+705 23  6.7548
+705 24  5.0178
+705 25  2.2194
+705 26  0.9650
+705 27  0.3860
+705 28  0.0965
+# pixel 706
+706  1  0.7237
+706  2  2.3520
+706  3  6.2419
+706  4 11.2173
+706  5 17.5496
+706  6 21.3490
+706  7 22.5250
+706  8 23.7915
+706  9 25.2389
+706 10 25.7817
+706 11 25.7817
+706 12 25.6007
+706 13 25.0580
+706 14 24.7866
+706 15 23.5201
+706 16 22.2536
+706 17 20.8967
+706 18 19.4493
+706 19 17.8210
+706 20 16.2832
+706 21 12.8456
+706 22  9.0462
+706 23  6.3323
+706 24  4.7040
+706 25  2.0806
+706 26  0.9046
+706 27  0.3618
+706 28  0.0905
+# pixel 707
+707  1  0.7246
+707  2  2.3550
+707  3  6.2497
+707  4 11.2314
+707  5 17.5717
+707  6 21.3759
+707  7 22.5534
+707  8 23.8214
+707  9 25.2707
+707 10 25.8141
+707 11 25.8141
+707 12 25.6330
+707 13 25.0895
+707 14 24.8178
+707 15 23.5497
+707 16 22.2817
+707 17 20.9230
+707 18 19.4738
+707 19 17.8434
+707 20 16.3037
+707 21 12.8618
+707 22  9.0576
+707 23  6.3403
+707 24  4.7099
+707 25  2.0832
+707 26  0.9058
+707 27  0.3623
+707 28  0.0906
+# pixel 708
+708  1  0.7026
+708  2  2.2836
+708  3  6.0602
+708  4 10.8909
+708  5 17.0389
+708  6 20.7278
+708  7 21.8696
+708  8 23.0992
+708  9 24.5044
+708 10 25.0314
+708 11 25.0314
+708 12 24.8558
+708 13 24.3288
+708 14 24.0653
+708 15 22.8357
+708 16 21.6061
+708 17 20.2886
+708 18 18.8833
+708 19 17.3024
+708 20 15.8093
+708 21 12.4718
+708 22  8.7830
+708 23  6.1481
+708 24  4.5671
+708 25  2.0201
+708 26  0.8783
+708 27  0.3513
+708 28  0.0878
+# pixel 709
+709  1  0.7149
+709  2  2.3233
+709  3  6.1657
+709  4 11.0804
+709  5 17.3354
+709  6 21.0885
+709  7 22.2501
+709  8 23.5011
+709  9 24.9308
+709 10 25.4670
+709 11 25.4670
+709 12 25.2883
+709 13 24.7521
+709 14 24.4841
+709 15 23.2330
+709 16 21.9820
+709 17 20.6417
+709 18 19.2119
+709 19 17.6035
+709 20 16.0844
+709 21 12.6888
+709 22  8.9358
+709 23  6.2551
+709 24  4.6466
+709 25  2.0552
+709 26  0.8936
+709 27  0.3574
+709 28  0.0894
+# pixel 710
+710  1  0.7467
+710  2  2.4267
+710  3  6.4401
+710  4 11.5735
+710  5 18.1069
+710  6 22.0270
+710  7 23.2403
+710  8 24.5470
+710  9 26.0404
+710 10 26.6004
+710 11 26.6004
+710 12 26.4137
+710 13 25.8537
+710 14 25.5737
+710 15 24.2670
+710 16 22.9603
+710 17 21.5603
+710 18 20.0669
+710 19 18.3869
+710 20 16.8002
+710 21 13.2535
+710 22  9.3335
+710 23  6.5334
+710 24  4.8534
+710 25  2.1467
+710 26  0.9333
+710 27  0.3733
+710 28  0.0933
+# pixel 711
+711  1  0.7169
+711  2  2.3299
+711  3  6.1833
+711  4 11.1120
+711  5 17.3849
+711  6 21.1486
+711  7 22.3136
+711  8 23.5681
+711  9 25.0019
+711 10 25.5396
+711 11 25.5396
+711 12 25.3604
+711 13 24.8227
+711 14 24.5539
+711 15 23.2993
+711 16 22.0447
+711 17 20.7005
+711 18 19.2667
+711 19 17.6537
+711 20 16.1303
+711 21 12.7250
+711 22  8.9613
+711 23  6.2729
+711 24  4.6599
+711 25  2.0611
+711 26  0.8961
+711 27  0.3585
+711 28  0.0896
+# pixel 712
+712  1  0.7812
+712  2  2.5389
+712  3  6.7380
+712  4 12.1088
+712  5 18.9445
+712  6 23.0458
+712  7 24.3153
+712  8 25.6824
+712  9 27.2449
+712 10 27.8308
+712 11 27.8308
+712 12 27.6355
+712 13 27.0496
+712 14 26.7566
+712 15 25.3895
+712 16 24.0224
+712 17 22.5576
+712 18 20.9952
+712 19 19.2374
+712 20 17.5773
+712 21 13.8666
+712 22  9.7652
+712 23  6.8356
+712 24  5.0779
+712 25  2.2460
+712 26  0.9765
+712 27  0.3906
+712 28  0.0977
+# pixel 713
+713  1  0.6954
+713  2  2.2600
+713  3  5.9977
+713  4 10.7785
+713  5 16.8631
+713  6 20.5139
+713  7 21.6439
+713  8 22.8609
+713  9 24.2516
+713 10 24.7732
+713 11 24.7732
+713 12 24.5993
+713 13 24.0778
+713 14 23.8170
+713 15 22.6001
+713 16 21.3832
+713 17 20.0793
+713 18 18.6885
+713 19 17.1239
+713 20 15.6462
+713 21 12.3431
+713 22  8.6923
+713 23  6.0846
+713 24  4.5200
+713 25  1.9992
+713 26  0.8692
+713 27  0.3477
+713 28  0.0869
+# pixel 714
+714  1  0.8109
+714  2  2.6353
+714  3  6.9937
+714  4 12.5683
+714  5 19.6634
+714  6 23.9204
+714  7 25.2380
+714  8 26.6570
+714  9 28.2788
+714 10 28.8869
+714 11 28.8869
+714 12 28.6842
+714 13 28.0761
+714 14 27.7720
+714 15 26.3530
+714 16 24.9340
+714 17 23.4136
+714 18 21.7919
+714 19 19.9674
+714 20 18.2444
+714 21 14.3928
+714 22 10.1358
+714 23  7.0950
+714 24  5.2706
+714 25  2.3312
+714 26  1.0136
+714 27  0.4054
+714 28  0.1014
+# pixel 715
+715  1  0.7593
+715  2  2.4678
+715  3  6.5492
+715  4 11.7696
+715  5 18.4137
+715  6 22.4002
+715  7 23.6341
+715  8 24.9629
+715  9 26.4815
+715 10 27.0510
+715 11 27.0510
+715 12 26.8612
+715 13 26.2917
+715 14 26.0070
+715 15 24.6781
+715 16 23.3493
+715 17 21.9256
+715 18 20.4069
+715 19 18.6984
+715 20 17.0849
+715 21 13.4781
+715 22  9.4916
+715 23  6.6441
+715 24  4.9356
+715 25  2.1831
+715 26  0.9492
+715 27  0.3797
+715 28  0.0949
+# pixel 716
+716  1  0.7204
+716  2  2.3411
+716  3  6.2130
+716  4 11.1654
+716  5 17.4685
+716  6 21.2504
+716  7 22.4209
+716  8 23.6816
+716  9 25.1223
+716 10 25.6625
+716 11 25.6625
+716 12 25.4824
+716 13 24.9422
+716 14 24.6720
+716 15 23.4114
+716 16 22.1508
+716 17 20.8001
+716 18 19.3594
+716 19 17.7387
+716 20 16.2079
+716 21 12.7862
+716 22  9.0044
+716 23  6.3031
+716 24  4.6823
+716 25  2.0710
+716 26  0.9004
+716 27  0.3602
+716 28  0.0900
+# pixel 717
+717  1  0.6629
+717  2  2.1545
+717  3  5.7177
+717  4 10.2753
+717  5 16.0759
+717  6 19.5563
+717  7 20.6335
+717  8 21.7937
+717  9 23.1195
+717 10 23.6167
+717 11 23.6167
+717 12 23.4510
+717 13 22.9538
+717 14 22.7052
+717 15 21.5451
+717 16 20.3849
+717 17 19.1420
+717 18 17.8161
+717 19 16.3245
+717 20 14.9158
+717 21 11.7669
+717 22  8.2866
+717 23  5.8006
+717 24  4.3090
+717 25  1.9059
+717 26  0.8287
+717 27  0.3315
+717 28  0.0829
+# pixel 718
+718  1  0.7290
+718  2  2.3692
+718  3  6.2875
+718  4 11.2993
+718  5 17.6780
+718  6 21.5052
+718  7 22.6898
+718  8 23.9655
+718  9 25.4235
+718 10 25.9702
+718 11 25.9702
+718 12 25.7880
+718 13 25.2413
+718 14 24.9679
+718 15 23.6922
+718 16 22.4164
+718 17 21.0496
+718 18 19.5916
+718 19 17.9514
+718 20 16.4023
+718 21 12.9396
+718 22  9.1124
+718 23  6.3787
+718 24  4.7384
+718 25  2.0958
+718 26  0.9112
+718 27  0.3645
+718 28  0.0911
+# pixel 719
+719  1  0.7125
+719  2  2.3157
+719  3  6.1456
+719  4 11.0443
+719  5 17.2790
+719  6 21.0198
+719  7 22.1776
+719  8 23.4246
+719  9 24.8496
+719 10 25.3841
+719 11 25.3841
+719 12 25.2059
+719 13 24.6715
+719 14 24.4043
+719 15 23.1574
+719 16 21.9104
+719 17 20.5744
+719 18 19.1494
+719 19 17.5462
+719 20 16.0320
+719 21 12.6475
+719 22  8.9067
+719 23  6.2347
+719 24  4.6315
+719 25  2.0485
+719 26  0.8907
+719 27  0.3563
+719 28  0.0891
+# pixel 720
+720  1  0.7463
+720  2  2.4254
+720  3  6.4367
+720  4 11.5675
+720  5 18.0975
+720  6 22.0155
+720  7 23.2282
+720  8 24.5342
+720  9 26.0268
+720 10 26.5865
+720 11 26.5865
+720 12 26.3999
+720 13 25.8402
+720 14 25.5603
+720 15 24.2543
+720 16 22.9483
+720 17 21.5490
+720 18 20.0565
+720 19 18.3773
+720 20 16.7915
+720 21 13.2466
+720 22  9.3286
+720 23  6.5300
+720 24  4.8509
+720 25  2.1456
+720 26  0.9329
+720 27  0.3731
+720 28  0.0933
+# pixel 721
+721  1  0.6715
+721  2  2.1823
+721  3  5.7916
+721  4 10.4080
+721  5 16.2836
+721  6 19.8089
+721  7 20.9000
+721  8 22.0751
+721  9 23.4181
+721 10 23.9217
+721 11 23.9217
+721 12 23.7538
+721 13 23.2502
+721 14 22.9984
+721 15 21.8233
+721 16 20.6482
+721 17 19.3892
+721 18 18.0462
+721 19 16.5354
+721 20 15.1084
+721 21 11.9189
+721 22  8.3936
+721 23  5.8755
+721 24  4.3647
+721 25  1.9305
+721 26  0.8394
+721 27  0.3357
+721 28  0.0839
+# pixel 722
+722  1  0.7305
+722  2  2.3741
+722  3  6.3005
+722  4 11.3226
+722  5 17.7143
+722  6 21.5494
+722  7 22.7364
+722  8 24.0148
+722  9 25.4757
+722 10 26.0236
+722 11 26.0236
+722 12 25.8410
+722 13 25.2931
+722 14 25.0192
+722 15 23.7408
+722 16 22.4625
+722 17 21.0928
+722 18 19.6318
+722 19 17.9882
+722 20 16.4360
+722 21 12.9661
+722 22  9.1311
+722 23  6.3918
+722 24  4.7482
+722 25  2.1002
+722 26  0.9131
+722 27  0.3652
+722 28  0.0913
+# pixel 723
+723  1  0.7273
+723  2  2.3638
+723  3  6.2731
+723  4 11.2733
+723  5 17.6373
+723  6 21.4557
+723  7 22.6376
+723  8 23.9104
+723  9 25.3650
+723 10 25.9105
+723 11 25.9105
+723 12 25.7286
+723 13 25.1832
+723 14 24.9104
+723 15 23.6376
+723 16 22.3648
+723 17 21.0011
+723 18 19.5465
+723 19 17.9100
+723 20 16.3645
+723 21 12.9098
+723 22  9.0914
+723 23  6.3640
+723 24  4.7275
+723 25  2.0910
+723 26  0.9091
+723 27  0.3637
+723 28  0.0909
+# pixel 724
+724  1  0.7588
+724  2  2.4660
+724  3  6.5444
+724  4 11.7609
+724  5 18.4001
+724  6 22.3837
+724  7 23.6167
+724  8 24.9445
+724  9 26.4620
+724 10 27.0311
+724 11 27.0311
+724 12 26.8414
+724 13 26.2724
+724 14 25.9878
+724 15 24.6600
+724 16 23.3321
+724 17 21.9094
+724 18 20.3919
+724 19 18.6847
+724 20 17.0723
+724 21 13.4681
+724 22  9.4846
+724 23  6.6392
+724 24  4.9320
+724 25  2.1815
+724 26  0.9485
+724 27  0.3794
+724 28  0.0948
+# pixel 725
+725  1  0.7576
+725  2  2.4623
+725  3  6.5345
+725  4 11.7432
+725  5 18.3724
+725  6 22.3500
+725  7 23.5811
+725  8 24.9070
+725  9 26.4222
+725 10 26.9904
+725 11 26.9904
+725 12 26.8010
+725 13 26.2328
+725 14 25.9487
+725 15 24.6229
+725 16 23.2970
+725 17 21.8765
+725 18 20.3612
+725 19 18.6566
+725 20 17.0466
+725 21 13.4479
+725 22  9.4703
+725 23  6.6292
+725 24  4.9246
+725 25  2.1782
+725 26  0.9470
+725 27  0.3788
+725 28  0.0947
+# pixel 726
+726  1  0.6940
+726  2  2.2554
+726  3  5.9854
+726  4 10.7564
+726  5 16.8286
+726  6 20.4719
+726  7 21.5995
+726  8 22.8140
+726  9 24.2019
+726 10 24.7224
+726 11 24.7224
+726 12 24.5489
+726 13 24.0284
+726 14 23.7682
+726 15 22.5537
+726 16 21.3393
+726 17 20.0381
+726 18 18.6502
+726 19 17.0888
+726 20 15.6141
+726 21 12.3178
+726 22  8.6745
+726 23  6.0722
+726 24  4.5107
+726 25  1.9951
+726 26  0.8675
+726 27  0.3470
+726 28  0.0867
+# pixel 727
+727  1  0.6753
+727  2  2.1948
+727  3  5.8248
+727  4 10.4677
+727  5 16.3769
+727  6 19.9224
+727  7 21.0198
+727  8 22.2017
+727  9 23.5523
+727 10 24.0588
+727 11 24.0588
+727 12 23.8900
+727 13 23.3835
+727 14 23.1303
+727 15 21.9484
+727 16 20.7666
+727 17 19.5003
+727 18 18.1497
+727 19 16.6301
+727 20 15.1951
+727 21 11.9872
+727 22  8.4417
+727 23  5.9092
+727 24  4.3897
+727 25  1.9416
+727 26  0.8442
+727 27  0.3377
+727 28  0.0844
+# pixel 728
+728  1  0.7624
+728  2  2.4779
+728  3  6.5759
+728  4 11.8176
+728  5 18.4889
+728  6 22.4916
+728  7 23.7306
+728  8 25.0648
+728  9 26.5897
+728 10 27.1615
+728 11 27.1615
+728 12 26.9709
+728 13 26.3991
+728 14 26.1132
+728 15 24.7789
+728 16 23.4447
+728 17 22.0151
+728 18 20.4903
+728 19 18.7748
+728 20 17.1546
+728 21 13.5331
+728 22  9.5304
+728 23  6.6712
+728 24  4.9558
+728 25  2.1920
+728 26  0.9530
+728 27  0.3812
+728 28  0.0953
+# pixel 729
+729  1  0.7034
+729  2  2.2862
+729  3  6.0672
+729  4 10.9035
+729  5 17.0586
+729  6 20.7517
+729  7 21.8949
+729  8 23.1259
+729  9 24.5328
+729 10 25.0604
+729 11 25.0604
+729 12 24.8845
+729 13 24.3569
+729 14 24.0931
+729 15 22.8621
+729 16 21.6311
+729 17 20.3121
+729 18 18.9052
+729 19 17.3224
+729 20 15.8276
+729 21 12.4862
+729 22  8.7931
+729 23  6.1552
+729 24  4.5724
+729 25  2.0224
+729 26  0.8793
+729 27  0.3517
+729 28  0.0879
+# pixel 730
+730  1  0.7622
+730  2  2.4771
+730  3  6.5738
+730  4 11.8137
+730  5 18.4828
+730  6 22.4842
+730  7 23.7228
+730  8 25.0566
+730  9 26.5809
+730 10 27.1526
+730 11 27.1526
+730 12 26.9620
+730 13 26.3904
+730 14 26.1046
+730 15 24.7707
+730 16 23.4369
+730 17 22.0079
+730 18 20.4835
+730 19 18.7686
+730 20 17.1490
+730 21 13.5286
+730 22  9.5272
+730 23  6.6690
+730 24  4.9541
+730 25  2.1913
+730 26  0.9527
+730 27  0.3811
+730 28  0.0953
+# pixel 731
+731  1  0.7443
+731  2  2.4191
+731  3  6.4200
+731  4 11.5374
+731  5 18.0504
+731  6 21.9582
+731  7 23.1678
+731  8 24.4704
+731  9 25.9590
+731 10 26.5173
+731 11 26.5173
+731 12 26.3312
+731 13 25.7730
+731 14 25.4938
+731 15 24.1912
+731 16 22.8886
+731 17 21.4930
+731 18 20.0043
+731 19 18.3295
+731 20 16.7478
+731 21 13.2121
+731 22  9.3043
+731 23  6.5130
+731 24  4.8382
+731 25  2.1400
+731 26  0.9304
+731 27  0.3722
+731 28  0.0930
+# pixel 732
+732  1  0.7206
+732  2  2.3419
+732  3  6.2150
+732  4 11.1690
+732  5 17.4740
+732  6 21.2570
+732  7 22.4280
+732  8 23.6890
+732  9 25.1301
+732 10 25.6706
+732 11 25.6706
+732 12 25.4904
+732 13 24.9500
+732 14 24.6798
+732 15 23.4188
+732 16 22.1578
+732 17 20.8067
+732 18 19.3655
+732 19 17.7442
+732 20 16.2130
+732 21 12.7903
+732 22  9.0072
+732 23  6.3051
+732 24  4.6838
+732 25  2.0717
+732 26  0.9007
+732 27  0.3603
+732 28  0.0901
+# pixel 733
+733  1  0.7507
+733  2  2.4398
+733  3  6.4749
+733  4 11.6361
+733  5 18.2049
+733  6 22.1462
+733  7 23.3661
+733  8 24.6799
+733  9 26.1813
+733 10 26.7444
+733 11 26.7444
+733 12 26.5567
+733 13 25.9936
+733 14 25.7121
+733 15 24.3984
+733 16 23.0846
+733 17 21.6770
+733 18 20.1756
+733 19 18.4864
+733 20 16.8912
+733 21 13.3253
+733 22  9.3840
+733 23  6.5688
+733 24  4.8797
+733 25  2.1583
+733 26  0.9384
+733 27  0.3754
+733 28  0.0938
+# pixel 734
+734  1  0.6248
+734  2  2.0307
+734  3  5.3891
+734  4  9.6848
+734  5 15.1520
+734  6 18.4324
+734  7 19.4477
+734  8 20.5412
+734  9 21.7908
+734 10 22.2594
+734 11 22.2594
+734 12 22.1032
+734 13 21.6346
+734 14 21.4003
+734 15 20.3069
+734 16 19.2134
+734 17 18.0419
+734 18 16.7922
+734 19 15.3864
+734 20 14.0586
+734 21 11.0907
+734 22  7.8103
+734 23  5.4672
+734 24  4.0614
+734 25  1.7964
+734 26  0.7810
+734 27  0.3124
+734 28  0.0781
+# pixel 735
+735  1  0.6755
+735  2  2.1953
+735  3  5.8260
+735  4 10.4699
+735  5 16.3803
+735  6 19.9265
+735  7 21.0242
+735  8 22.2063
+735  9 23.5572
+735 10 24.0638
+735 11 24.0638
+735 12 23.8949
+735 13 23.3883
+735 14 23.1350
+735 15 21.9529
+735 16 20.7709
+735 17 19.5044
+735 18 18.1534
+735 19 16.6336
+735 20 15.1982
+735 21 11.9897
+735 22  8.4434
+735 23  5.9104
+735 24  4.3906
+735 25  1.9420
+735 26  0.8443
+735 27  0.3377
+735 28  0.0844
+# pixel 736
+736  1  0.5919
+736  2  1.9236
+736  3  5.1050
+736  4  9.1742
+736  5 14.3531
+736  6 17.4605
+736  7 18.4223
+736  8 19.4581
+736  9 20.6418
+736 10 21.0858
+736 11 21.0858
+736 12 20.9378
+736 13 20.4939
+736 14 20.2719
+736 15 19.2361
+736 16 18.2003
+736 17 17.0906
+736 18 15.9068
+736 19 14.5751
+736 20 13.3173
+736 21 10.5059
+736 22  7.3985
+736 23  5.1790
+736 24  3.8472
+736 25  1.7017
+736 26  0.7399
+736 27  0.2959
+736 28  0.0740
+# pixel 737
+737  1  0.7638
+737  2  2.4822
+737  3  6.5875
+737  4 11.8383
+737  5 18.5213
+737  6 22.5310
+737  7 23.7721
+737  8 25.1087
+737  9 26.6363
+737 10 27.2091
+737 11 27.2091
+737 12 27.0181
+737 13 26.4453
+737 14 26.1589
+737 15 24.8223
+737 16 23.4857
+737 17 22.0537
+737 18 20.5262
+737 19 18.8077
+737 20 17.1847
+737 21 13.5568
+737 22  9.5470
+737 23  6.6829
+737 24  4.9645
+737 25  2.1958
+737 26  0.9547
+737 27  0.3819
+737 28  0.0955
+# pixel 738
+738  1  0.8047
+738  2  2.6152
+738  3  6.9404
+738  4 12.4726
+738  5 19.5136
+738  6 23.7382
+738  7 25.0458
+738  8 26.4540
+738  9 28.0633
+738 10 28.6668
+738 11 28.6668
+738 12 28.4657
+738 13 27.8622
+738 14 27.5604
+738 15 26.1522
+738 16 24.7440
+738 17 23.2352
+738 18 21.6259
+738 19 19.8153
+738 20 18.1054
+738 21 14.2831
+738 22 10.0585
+738 23  7.0410
+738 24  5.2304
+738 25  2.3135
+738 26  1.0059
+738 27  0.4023
+738 28  0.1006
+# pixel 739
+739  1  0.6587
+739  2  2.1409
+739  3  5.6816
+739  4 10.2105
+739  5 15.9744
+739  6 19.4328
+739  7 20.5032
+739  8 21.6560
+739  9 22.9735
+739 10 23.4676
+739 11 23.4676
+739 12 23.3029
+739 13 22.8088
+739 14 22.5618
+739 15 21.4090
+739 16 20.2562
+739 17 19.0211
+739 18 17.7036
+739 19 16.2214
+739 20 14.8216
+739 21 11.6926
+739 22  8.2342
+739 23  5.7640
+739 24  4.2818
+739 25  1.8939
+739 26  0.8234
+739 27  0.3294
+739 28  0.0823
+# pixel 740
+740  1  0.8248
+740  2  2.6805
+740  3  7.1137
+740  4 12.7840
+740  5 20.0008
+740  6 24.3309
+740  7 25.6711
+740  8 27.1145
+740  9 28.7640
+740 10 29.3826
+740 11 29.3826
+740 12 29.1764
+740 13 28.5578
+740 14 28.2485
+740 15 26.8052
+740 16 25.3618
+740 17 23.8154
+740 18 22.1658
+740 19 20.3101
+740 20 18.5574
+740 21 14.6398
+740 22 10.3097
+740 23  7.2168
+740 24  5.3610
+740 25  2.3712
+740 26  1.0310
+740 27  0.4124
+740 28  0.1031
+# pixel 741
+741  1  0.8388
+741  2  2.7260
+741  3  7.2344
+741  4 13.0010
+741  5 20.3402
+741  6 24.7437
+741  7 26.1068
+741  8 27.5746
+741  9 29.2521
+741 10 29.8812
+741 11 29.8812
+741 12 29.6715
+741 13 29.0424
+741 14 28.7279
+741 15 27.2601
+741 16 25.7922
+741 17 24.2195
+741 18 22.5420
+741 19 20.6547
+741 20 18.8724
+741 21 14.8882
+741 22 10.4846
+741 23  7.3392
+741 24  5.4520
+741 25  2.4115
+741 26  1.0485
+741 27  0.4194
+741 28  0.1048
+# pixel 742
+742  1  0.6408
+742  2  2.0825
+742  3  5.5267
+742  4  9.9320
+742  5 15.5388
+742  6 18.9029
+742  7 19.9441
+742  8 21.0655
+742  9 22.3470
+742 10 22.8276
+742 11 22.8276
+742 12 22.6674
+742 13 22.1869
+742 14 21.9466
+742 15 20.8252
+742 16 19.7038
+742 17 18.5024
+742 18 17.2208
+742 19 15.7791
+742 20 14.4174
+742 21 11.3738
+742 22  8.0097
+742 23  5.6068
+742 24  4.1650
+742 25  1.8422
+742 26  0.8010
+742 27  0.3204
+742 28  0.0801
+# pixel 743
+743  1  0.7602
+743  2  2.4706
+743  3  6.5567
+743  4 11.7830
+743  5 18.4347
+743  6 22.4257
+743  7 23.6610
+743  8 24.9913
+743  9 26.5117
+743 10 27.0819
+743 11 27.0819
+743 12 26.8918
+743 13 26.3217
+743 14 26.0366
+743 15 24.7063
+743 16 23.3759
+743 17 21.9506
+743 18 20.4302
+743 19 18.7197
+743 20 17.1043
+743 21 13.4934
+743 22  9.5024
+743 23  6.6517
+743 24  4.9413
+743 25  2.1856
+743 26  0.9502
+743 27  0.3801
+743 28  0.0950
+# pixel 744
+744  1  0.7316
+744  2  2.3776
+744  3  6.3099
+744  4 11.3395
+744  5 17.7409
+744  6 21.5817
+744  7 22.7705
+744  8 24.0507
+744  9 25.5139
+744 10 26.0626
+744 11 26.0626
+744 12 25.8797
+744 13 25.3310
+744 14 25.0567
+744 15 23.7764
+744 16 22.4961
+744 17 21.1244
+744 18 19.6613
+744 19 18.0152
+744 20 16.4606
+744 21 12.9856
+744 22  9.1448
+744 23  6.4013
+744 24  4.7553
+744 25  2.1033
+744 26  0.9145
+744 27  0.3658
+744 28  0.0914
+# pixel 745
+745  1  0.6713
+745  2  2.1817
+745  3  5.7898
+745  4 10.4049
+745  5 16.2786
+745  6 19.8028
+745  7 20.8936
+745  8 22.0684
+745  9 23.4109
+745 10 23.9144
+745 11 23.9144
+745 12 23.7466
+745 13 23.2431
+745 14 22.9914
+745 15 21.8166
+745 16 20.6419
+745 17 19.3832
+745 18 18.0407
+745 19 16.5303
+745 20 15.1038
+745 21 11.9152
+745 22  8.3910
+745 23  5.8737
+745 24  4.3633
+745 25  1.9299
+745 26  0.8391
+745 27  0.3356
+745 28  0.0839
+# pixel 746
+746  1  0.7582
+746  2  2.4643
+746  3  6.5398
+746  4 11.7526
+746  5 18.3872
+746  6 22.3679
+746  7 23.6000
+746  8 24.9269
+746  9 26.4434
+746 10 27.0121
+746 11 27.0121
+746 12 26.8225
+746 13 26.2538
+746 14 25.9695
+746 15 24.6426
+746 16 23.3157
+746 17 21.8940
+746 18 20.3775
+746 19 18.6715
+746 20 17.0603
+746 21 13.4586
+746 22  9.4779
+746 23  6.6345
+746 24  4.9285
+746 25  2.1799
+746 26  0.9478
+746 27  0.3791
+746 28  0.0948
+# pixel 747
+747  1  0.7534
+747  2  2.4484
+747  3  6.4977
+747  4 11.6770
+747  5 18.2689
+747  6 22.2240
+747  7 23.4482
+747  8 24.7666
+747  9 26.2733
+747 10 26.8383
+747 11 26.8383
+747 12 26.6500
+747 13 26.0850
+747 14 25.8025
+747 15 24.4841
+747 16 23.1657
+747 17 21.7532
+747 18 20.2465
+747 19 18.5514
+747 20 16.9505
+747 21 13.3721
+747 22  9.4170
+747 23  6.5919
+747 24  4.8968
+747 25  2.1659
+747 26  0.9417
+747 27  0.3767
+747 28  0.0942
+# pixel 748
+748  1  0.7678
+748  2  2.4953
+748  3  6.6222
+748  4 11.9008
+748  5 18.6190
+748  6 22.6499
+748  7 23.8976
+748  8 25.2412
+748  9 26.7768
+748 10 27.3526
+748 11 27.3526
+748 12 27.1607
+748 13 26.5848
+748 14 26.2969
+748 15 24.9533
+748 16 23.6096
+748 17 22.1700
+748 18 20.6344
+748 19 18.9069
+748 20 17.2753
+748 21 13.6283
+748 22  9.5974
+748 23  6.7182
+748 24  4.9907
+748 25  2.2074
+748 26  0.9597
+748 27  0.3839
+748 28  0.0960
+# pixel 749
+749  1  0.7068
+749  2  2.2972
+749  3  6.0963
+749  4 10.9557
+749  5 17.1404
+749  6 20.8512
+749  7 21.9998
+749  8 23.2367
+749  9 24.6504
+749 10 25.1805
+749 11 25.1805
+749 12 25.0038
+749 13 24.4737
+749 14 24.2086
+749 15 22.9717
+749 16 21.7347
+749 17 20.4095
+749 18 18.9958
+749 19 17.4055
+749 20 15.9035
+749 21 12.5461
+749 22  8.8353
+749 23  6.1847
+749 24  4.5943
+749 25  2.0321
+749 26  0.8835
+749 27  0.3534
+749 28  0.0884
+# pixel 750
+750  1  0.7657
+750  2  2.4884
+750  3  6.6039
+750  4 11.8679
+750  5 18.5675
+750  6 22.5872
+750  7 23.8314
+750  8 25.1714
+750  9 26.7027
+750 10 27.2769
+750 11 27.2769
+750 12 27.0855
+750 13 26.5113
+750 14 26.2241
+750 15 24.8842
+750 16 23.5443
+750 17 22.1087
+750 18 20.5773
+750 19 18.8546
+750 20 17.2275
+750 21 13.5906
+750 22  9.5709
+750 23  6.6996
+750 24  4.9768
+750 25  2.2013
+750 26  0.9571
+750 27  0.3828
+750 28  0.0957
+# pixel 751
+751  1  0.7858
+751  2  2.5539
+751  3  6.7776
+751  4 12.1800
+751  5 19.0558
+751  6 23.1813
+751  7 24.4582
+751  8 25.8334
+751  9 27.4050
+751 10 27.9944
+751 11 27.9944
+751 12 27.7979
+751 13 27.2086
+751 14 26.9139
+751 15 25.5387
+751 16 24.1636
+751 17 22.6902
+751 18 21.1186
+751 19 19.3505
+751 20 17.6807
+751 21 13.9481
+751 22  9.8226
+751 23  6.8758
+751 24  5.1077
+751 25  2.2592
+751 26  0.9823
+751 27  0.3929
+751 28  0.0982
+# pixel 752
+752  1  0.7386
+752  2  2.4005
+752  3  6.3706
+752  4 11.4486
+752  5 17.9115
+752  6 21.7892
+752  7 22.9894
+752  8 24.2820
+752  9 25.7593
+752 10 26.3132
+752 11 26.3132
+752 12 26.1286
+752 13 25.5746
+752 14 25.2976
+752 15 24.0050
+752 16 22.7125
+752 17 21.3276
+752 18 19.8503
+752 19 18.1884
+752 20 16.6189
+752 21 13.1104
+752 22  9.2327
+752 23  6.4629
+752 24  4.8010
+752 25  2.1235
+752 26  0.9233
+752 27  0.3693
+752 28  0.0923
+# pixel 753
+753  1  0.7895
+753  2  2.5659
+753  3  6.8096
+753  4 12.2375
+753  5 19.1458
+753  6 23.2907
+753  7 24.5737
+753  8 25.9553
+753  9 27.5344
+753 10 28.1265
+753 11 28.1265
+753 12 27.9291
+753 13 27.3370
+753 14 27.0409
+753 15 25.6593
+753 16 24.2776
+753 17 22.7973
+753 18 21.2182
+753 19 19.4418
+753 20 17.7641
+753 21 14.0139
+753 22  9.8690
+753 23  6.9083
+753 24  5.1319
+753 25  2.2699
+753 26  0.9869
+753 27  0.3948
+753 28  0.0987
+# pixel 754
+754  1  0.7314
+754  2  2.3770
+754  3  6.3083
+754  4 11.3366
+754  5 17.7362
+754  6 21.5761
+754  7 22.7646
+754  8 24.0445
+754  9 25.5073
+754 10 26.0558
+754 11 26.0558
+754 12 25.8730
+754 13 25.3244
+754 14 25.0502
+754 15 23.7702
+754 16 22.4903
+754 17 21.1189
+754 18 19.6562
+754 19 18.0105
+754 20 16.4563
+754 21 12.9822
+754 22  9.1424
+754 23  6.3997
+754 24  4.7540
+754 25  2.1028
+754 26  0.9142
+754 27  0.3657
+754 28  0.0914
+# pixel 755
+755  1  0.8955
+755  2  2.9104
+755  3  7.7237
+755  4 13.8802
+755  5 21.7159
+755  6 26.4172
+755  7 27.8724
+755  8 29.4395
+755  9 31.2305
+755 10 31.9022
+755 11 31.9022
+755 12 31.6783
+755 13 31.0067
+755 14 30.6709
+755 15 29.1037
+755 16 27.5366
+755 17 25.8575
+755 18 24.0665
+755 19 22.0517
+755 20 20.1487
+755 21 15.8951
+755 22 11.1937
+755 23  7.8356
+755 24  5.8207
+755 25  2.5746
+755 26  1.1194
+755 27  0.4477
+755 28  0.1119
+# pixel 756
+756  1  0.7653
+756  2  2.4873
+756  3  6.6008
+756  4 11.8623
+756  5 18.5588
+756  6 22.5767
+756  7 23.8203
+756  8 25.1596
+756  9 26.6902
+756 10 27.2642
+756 11 27.2642
+756 12 27.0729
+756 13 26.4989
+756 14 26.2119
+756 15 24.8726
+756 16 23.5333
+756 17 22.0984
+756 18 20.5677
+756 19 18.8458
+756 20 17.2195
+756 21 13.5843
+756 22  9.5664
+756 23  6.6965
+756 24  4.9745
+756 25  2.2003
+756 26  0.9566
+756 27  0.3827
+756 28  0.0957
+# pixel 757
+757  1  0.7328
+757  2  2.3818
+757  3  6.3208
+757  4 11.3591
+757  5 17.7716
+757  6 21.6190
+757  7 22.8099
+757  8 24.0924
+757  9 25.5581
+757 10 26.1077
+757 11 26.1077
+757 12 25.9245
+757 13 25.3749
+757 14 25.1000
+757 15 23.8176
+757 16 22.5351
+757 17 21.1610
+757 18 19.6953
+757 19 18.0464
+757 20 16.4891
+757 21 13.0080
+757 22  9.1606
+757 23  6.4124
+757 24  4.7635
+757 25  2.1069
+757 26  0.9161
+757 27  0.3664
+757 28  0.0916
+# pixel 758
+758  1  0.7434
+758  2  2.4161
+758  3  6.4120
+758  4 11.5230
+758  5 18.0279
+758  6 21.9309
+758  7 23.1389
+758  8 24.4399
+758  9 25.9267
+758 10 26.4843
+758 11 26.4843
+758 12 26.2984
+758 13 25.7409
+758 14 25.4621
+758 15 24.1611
+758 16 22.8601
+758 17 21.4662
+758 18 19.9794
+758 19 18.3067
+758 20 16.7269
+758 21 13.1957
+758 22  9.2927
+758 23  6.5049
+758 24  4.8322
+758 25  2.1373
+758 26  0.9293
+758 27  0.3717
+758 28  0.0929
+# pixel 759
+759  1  0.7531
+759  2  2.4475
+759  3  6.4952
+759  4 11.6725
+759  5 18.2618
+759  6 22.2153
+759  7 23.4391
+759  8 24.7569
+759  9 26.2631
+759 10 26.8279
+759 11 26.8279
+759 12 26.6396
+759 13 26.0748
+759 14 25.7924
+759 15 24.4745
+759 16 23.1567
+759 17 21.7447
+759 18 20.2386
+759 19 18.5442
+759 20 16.9439
+759 21 13.3669
+759 22  9.4133
+759 23  6.5893
+759 24  4.8949
+759 25  2.1651
+759 26  0.9413
+759 27  0.3765
+759 28  0.0941
+# pixel 760
+760  1  0.6944
+760  2  2.2569
+760  3  5.9894
+760  4 10.7635
+760  5 16.8397
+760  6 20.4854
+760  7 21.6138
+760  8 22.8291
+760  9 24.2179
+760 10 24.7387
+760 11 24.7387
+760 12 24.5651
+760 13 24.0443
+760 14 23.7839
+760 15 22.5687
+760 16 21.3534
+760 17 20.0514
+760 18 18.6625
+760 19 17.1001
+760 20 15.6245
+760 21 12.3260
+760 22  8.6803
+760 23  6.0762
+760 24  4.5137
+760 25  1.9965
+760 26  0.8680
+760 27  0.3472
+760 28  0.0868
+# pixel 761
+761  1  0.6596
+761  2  2.1438
+761  3  5.6893
+761  4 10.2242
+761  5 15.9960
+761  6 19.4590
+761  7 20.5309
+761  8 21.6853
+761  9 23.0045
+761 10 23.4993
+761 11 23.4993
+761 12 23.3343
+761 13 22.8396
+761 14 22.5923
+761 15 21.4379
+761 16 20.2836
+761 17 19.0468
+761 18 17.7275
+761 19 16.2433
+761 20 14.8416
+761 21 11.7084
+761 22  8.2454
+761 23  5.7717
+761 24  4.2876
+761 25  1.8964
+761 26  0.8245
+761 27  0.3298
+761 28  0.0825
+# pixel 762
+762  1  0.7043
+762  2  2.2890
+762  3  6.0748
+762  4 10.9170
+762  5 17.0798
+762  6 20.7775
+762  7 21.9220
+762  8 23.1546
+762  9 24.5632
+762 10 25.0914
+762 11 25.0914
+762 12 24.9154
+762 13 24.3871
+762 14 24.1230
+762 15 22.8904
+762 16 21.6579
+762 17 20.3373
+762 18 18.9286
+762 19 17.3439
+762 20 15.8472
+762 21 12.5017
+762 22  8.8040
+762 23  6.1628
+762 24  4.5781
+762 25  2.0249
+762 26  0.8804
+762 27  0.3522
+762 28  0.0880
+# pixel 763
+763  1  0.7352
+763  2  2.3893
+763  3  6.3408
+763  4 11.3950
+763  5 17.8277
+763  6 21.6873
+763  7 22.8819
+763  8 24.1685
+763  9 25.6388
+763 10 26.1902
+763 11 26.1902
+763 12 26.0064
+763 13 25.4550
+763 14 25.1793
+763 15 23.8928
+763 16 22.6062
+763 17 21.2278
+763 18 19.7575
+763 19 18.1034
+763 20 16.5412
+763 21 13.0491
+763 22  9.1895
+763 23  6.4327
+763 24  4.7786
+763 25  2.1136
+763 26  0.9190
+763 27  0.3676
+763 28  0.0919
+# pixel 764
+764  1  0.8367
+764  2  2.7192
+764  3  7.2163
+764  4 12.9685
+764  5 20.2894
+764  6 24.6820
+764  7 26.0416
+764  8 27.5057
+764  9 29.1791
+764 10 29.8066
+764 11 29.8066
+764 12 29.5974
+764 13 28.9699
+764 14 28.6562
+764 15 27.1920
+764 16 25.7278
+764 17 24.1590
+764 18 22.4857
+764 19 20.6032
+764 20 18.8252
+764 21 14.8510
+764 22 10.4585
+764 23  7.3209
+764 24  5.4384
+764 25  2.4054
+764 26  1.0458
+764 27  0.4183
+764 28  0.1046
+# pixel 765
+765  1  0.6337
+765  2  2.0595
+765  3  5.4657
+765  4  9.8224
+765  5 15.3672
+765  6 18.6942
+765  7 19.7239
+765  8 20.8329
+765  9 22.1003
+765 10 22.5756
+765 11 22.5756
+765 12 22.4172
+765 13 21.9419
+765 14 21.7042
+765 15 20.5953
+765 16 19.4863
+765 17 18.2981
+765 18 17.0307
+765 19 15.6049
+765 20 14.2583
+765 21 11.2482
+765 22  7.9213
+765 23  5.5449
+765 24  4.1191
+765 25  1.8219
+765 26  0.7921
+765 27  0.3169
+765 28  0.0792
+# pixel 766
+766  1  0.6553
+766  2  2.1298
+766  3  5.6521
+766  4 10.1574
+766  5 15.8914
+766  6 19.3318
+766  7 20.3967
+766  8 21.5435
+766  9 22.8541
+766 10 23.3456
+766 11 23.3456
+766 12 23.1818
+766 13 22.6903
+766 14 22.4446
+766 15 21.2978
+766 16 20.1510
+766 17 18.9222
+766 18 17.6116
+766 19 16.1371
+766 20 14.7446
+766 21 11.6319
+766 22  8.1914
+766 23  5.7340
+766 24  4.2596
+766 25  1.8840
+766 26  0.8191
+766 27  0.3277
+766 28  0.0819
+# pixel 767
+767  1  0.7112
+767  2  2.3113
+767  3  6.1338
+767  4 11.0231
+767  5 17.2458
+767  6 20.9794
+767  7 22.1351
+767  8 23.3796
+767  9 24.8019
+767 10 25.3353
+767 11 25.3353
+767 12 25.1575
+767 13 24.6242
+767 14 24.3575
+767 15 23.1129
+767 16 21.8684
+767 17 20.5349
+767 18 19.1126
+767 19 17.5125
+767 20 16.0013
+767 21 12.6232
+767 22  8.8896
+767 23  6.2227
+767 24  4.6226
+767 25  2.0446
+767 26  0.8890
+767 27  0.3556
+767 28  0.0889
+# pixel 768
+768  1  0.6818
+768  2  2.2160
+768  3  5.8809
+768  4 10.5687
+768  5 16.5348
+768  6 20.1145
+768  7 21.2225
+768  8 22.4158
+768  9 23.7795
+768 10 24.2909
+768 11 24.2909
+768 12 24.1204
+768 13 23.6090
+768 14 23.3533
+768 15 22.1601
+768 16 20.9668
+768 17 19.6884
+768 18 18.3247
+768 19 16.7905
+768 20 15.3416
+768 21 12.1028
+768 22  8.5231
+768 23  5.9662
+768 24  4.4320
+768 25  1.9603
+768 26  0.8523
+768 27  0.3409
+768 28  0.0852
+# pixel 769
+769  1  0.7668
+769  2  2.4920
+769  3  6.6134
+769  4 11.8850
+769  5 18.5942
+769  6 22.6198
+769  7 23.8658
+769  8 25.2076
+769  9 26.7412
+769 10 27.3163
+769 11 27.3163
+769 12 27.1246
+769 13 26.5495
+769 14 26.2620
+769 15 24.9201
+769 16 23.5783
+769 17 22.1406
+769 18 20.6070
+769 19 18.8818
+769 20 17.2524
+769 21 13.6102
+769 22  9.5847
+769 23  6.7093
+769 24  4.9840
+769 25  2.2045
+769 26  0.9585
+769 27  0.3834
+769 28  0.0958
+# pixel 770
+770  1  0.7181
+770  2  2.3339
+770  3  6.1938
+770  4 11.1308
+770  5 17.4144
+770  6 21.1845
+770  7 22.3514
+770  8 23.6081
+770  9 25.0444
+770 10 25.5829
+770 11 25.5829
+770 12 25.4034
+770 13 24.8648
+770 14 24.5955
+770 15 23.3388
+770 16 22.0821
+770 17 20.7357
+770 18 19.2994
+770 19 17.6836
+770 20 16.1576
+770 21 12.7466
+770 22  8.9765
+770 23  6.2835
+770 24  4.6678
+770 25  2.0646
+770 26  0.8976
+770 27  0.3591
+770 28  0.0898
+# pixel 771
+771  1  0.6887
+771  2  2.2382
+771  3  5.9397
+771  4 10.6743
+771  5 16.7001
+771  6 20.3156
+771  7 21.4347
+771  8 22.6399
+771  9 24.0172
+771 10 24.5337
+771 11 24.5337
+771 12 24.3615
+771 13 23.8450
+771 14 23.5868
+771 15 22.3816
+771 16 21.1765
+771 17 19.8852
+771 18 18.5079
+771 19 16.9584
+771 20 15.4950
+771 21 12.2238
+771 22  8.6083
+771 23  6.0258
+771 24  4.4763
+771 25  1.9799
+771 26  0.8608
+771 27  0.3443
+771 28  0.0861
+# pixel 772
+772  1  0.7188
+772  2  2.3362
+772  3  6.1998
+772  4 11.1417
+772  5 17.4314
+772  6 21.2052
+772  7 22.3733
+772  8 23.6312
+772  9 25.0689
+772 10 25.6080
+772 11 25.6080
+772 12 25.4283
+772 13 24.8892
+772 14 24.6196
+772 15 23.3617
+772 16 22.1037
+772 17 20.7559
+772 18 19.3183
+772 19 17.7010
+772 20 16.1735
+772 21 12.7591
+772 22  8.9853
+772 23  6.2897
+772 24  4.6723
+772 25  2.0666
+772 26  0.8985
+772 27  0.3594
+772 28  0.0899
+# pixel 773
+773  1  0.7842
+773  2  2.5487
+773  3  6.7639
+773  4 12.1554
+773  5 19.0174
+773  6 23.1345
+773  7 24.4089
+773  8 25.7813
+773  9 27.3497
+773 10 27.9379
+773 11 27.9379
+773 12 27.7418
+773 13 27.1537
+773 14 26.8596
+773 15 25.4872
+773 16 24.1148
+773 17 22.6444
+773 18 21.0760
+773 19 19.3115
+773 20 17.6450
+773 21 13.9199
+773 22  9.8028
+773 23  6.8619
+773 24  5.0974
+773 25  2.2546
+773 26  0.9803
+773 27  0.3921
+773 28  0.0980
+# pixel 774
+774  1  0.6702
+774  2  2.1781
+774  3  5.7804
+774  4 10.3880
+774  5 16.2522
+774  6 19.7708
+774  7 20.8598
+774  8 22.0327
+774  9 23.3731
+774 10 23.8757
+774 11 23.8757
+774 12 23.7081
+774 13 23.2055
+774 14 22.9542
+774 15 21.7813
+774 16 20.6085
+774 17 19.3519
+774 18 18.0115
+774 19 16.5036
+774 20 15.0794
+774 21 11.8960
+774 22  8.3774
+774 23  5.8642
+774 24  4.3563
+774 25  1.9268
+774 26  0.8377
+774 27  0.3351
+774 28  0.0838
+# pixel 775
+775  1  0.7904
+775  2  2.5687
+775  3  6.8171
+775  4 12.2509
+775  5 19.1668
+775  6 23.3163
+775  7 24.6007
+775  8 25.9838
+775  9 27.5646
+775 10 28.1574
+775 11 28.1574
+775 12 27.9598
+775 13 27.3670
+775 14 27.0706
+775 15 25.6874
+775 16 24.3043
+775 17 22.8223
+775 18 21.2415
+775 19 19.4632
+775 20 17.7836
+775 21 14.0293
+775 22  9.8798
+775 23  6.9159
+775 24  5.1375
+775 25  2.2724
+775 26  0.9880
+775 27  0.3952
+775 28  0.0988
+# pixel 776
+776  1  0.7679
+776  2  2.4956
+776  3  6.6230
+776  4 11.9021
+776  5 18.6211
+776  6 22.6524
+776  7 23.9002
+776  8 25.2440
+776  9 26.7798
+776 10 27.3557
+776 11 27.3557
+776 12 27.1637
+776 13 26.5878
+776 14 26.2998
+776 15 24.9561
+776 16 23.6123
+776 17 22.1725
+776 18 20.6367
+776 19 18.9090
+776 20 17.2773
+776 21 13.6298
+776 22  9.5985
+776 23  6.7189
+776 24  4.9912
+776 25  2.2077
+776 26  0.9598
+776 27  0.3839
+776 28  0.0960
+# pixel 777
+777  1  0.7631
+777  2  2.4802
+777  3  6.5820
+777  4 11.8285
+777  5 18.5059
+777  6 22.5124
+777  7 23.7525
+777  8 25.0879
+777  9 26.6142
+777 10 27.1866
+777 11 27.1866
+777 12 26.9958
+777 13 26.4234
+777 14 26.1373
+777 15 24.8018
+777 16 23.4663
+777 17 22.0354
+777 18 20.5092
+777 19 18.7921
+777 20 17.1705
+777 21 13.5456
+777 22  9.5391
+777 23  6.6774
+777 24  4.9604
+777 25  2.1940
+777 26  0.9539
+777 27  0.3816
+777 28  0.0954
+# pixel 778
+778  1  0.7955
+778  2  2.5852
+778  3  6.8608
+778  4 12.3296
+778  5 19.2898
+778  6 23.4660
+778  7 24.7586
+778  8 26.1506
+778  9 27.7415
+778 10 28.3381
+778 11 28.3381
+778 12 28.1393
+778 13 27.5427
+778 14 27.2444
+778 15 25.8523
+778 16 24.4603
+778 17 22.9688
+778 18 21.3779
+778 19 19.5881
+778 20 17.8978
+778 21 14.1194
+778 22  9.9432
+778 23  6.9602
+778 24  5.1705
+778 25  2.2869
+778 26  0.9943
+778 27  0.3977
+778 28  0.0994
+# pixel 779
+779  1  0.7209
+779  2  2.3430
+779  3  6.2179
+779  4 11.1741
+779  5 17.4821
+779  6 21.2669
+779  7 22.4384
+779  8 23.7000
+779  9 25.1418
+779 10 25.6825
+779 11 25.6825
+779 12 25.5023
+779 13 24.9616
+779 14 24.6912
+779 15 23.4297
+779 16 22.1681
+779 17 20.8163
+779 18 19.3745
+779 19 17.7525
+779 20 16.2205
+779 21 12.7962
+779 22  9.0114
+779 23  6.3080
+779 24  4.6859
+779 25  2.0726
+779 26  0.9011
+779 27  0.3605
+779 28  0.0901
+# pixel 780
+780  1  0.7937
+780  2  2.5795
+780  3  6.8456
+780  4 12.3022
+780  5 19.2469
+780  6 23.4138
+780  7 24.7035
+780  8 26.0925
+780  9 27.6798
+780 10 28.2751
+780 11 28.2751
+780 12 28.0767
+780 13 27.4814
+780 14 27.1838
+780 15 25.7948
+780 16 24.4059
+780 17 22.9177
+780 18 21.3303
+780 19 19.5445
+780 20 17.8580
+780 21 14.0879
+780 22  9.9211
+780 23  6.9448
+780 24  5.1590
+780 25  2.2819
+780 26  0.9921
+780 27  0.3968
+780 28  0.0992
+# pixel 781
+781  1  0.7849
+781  2  2.5508
+781  3  6.7694
+781  4 12.1653
+781  5 19.0328
+781  6 23.1533
+781  7 24.4287
+781  8 25.8022
+781  9 27.3719
+781 10 27.9605
+781 11 27.9605
+781 12 27.7643
+781 13 27.1757
+781 14 26.8813
+781 15 25.5078
+781 16 24.1343
+781 17 22.6627
+781 18 21.0930
+781 19 19.3271
+781 20 17.6593
+781 21 13.9312
+781 22  9.8107
+781 23  6.8675
+781 24  5.1016
+781 25  2.2565
+781 26  0.9811
+781 27  0.3924
+781 28  0.0981
+# pixel 782
+782  1  0.6915
+782  2  2.2473
+782  3  5.9641
+782  4 10.7181
+782  5 16.7686
+782  6 20.3990
+782  7 21.5226
+782  8 22.7327
+782  9 24.1157
+782 10 24.6343
+782 11 24.6343
+782 12 24.4615
+782 13 23.9428
+782 14 23.6835
+782 15 22.4734
+782 16 21.2633
+782 17 19.9668
+782 18 18.5838
+782 19 17.0279
+782 20 15.5585
+782 21 12.2739
+782 22  8.6436
+782 23  6.0505
+782 24  4.4947
+782 25  1.9880
+782 26  0.8644
+782 27  0.3457
+782 28  0.0864
+# pixel 783
+783  1  0.7273
+783  2  2.3639
+783  3  6.2733
+783  4 11.2738
+783  5 17.6380
+783  6 21.4565
+783  7 22.6384
+783  8 23.9113
+783  9 25.3660
+783 10 25.9115
+783 11 25.9115
+783 12 25.7296
+783 13 25.1841
+783 14 24.9114
+783 15 23.6385
+783 16 22.3657
+783 17 21.0019
+783 18 19.5472
+783 19 17.9107
+783 20 16.3651
+783 21 12.9103
+783 22  9.0917
+783 23  6.3642
+783 24  4.7277
+783 25  2.0911
+783 26  0.9092
+783 27  0.3637
+783 28  0.0909
+# pixel 784
+784  1  0.6735
+784  2  2.1888
+784  3  5.8087
+784  4 10.4389
+784  5 16.3318
+784  6 19.8675
+784  7 20.9619
+784  8 22.1405
+784  9 23.4875
+784 10 23.9926
+784 11 23.9926
+784 12 23.8242
+784 13 23.3191
+784 14 23.0665
+784 15 21.8879
+784 16 20.7094
+784 17 19.4466
+784 18 18.0996
+784 19 16.5843
+784 20 15.1532
+784 21 11.9542
+784 22  8.4184
+784 23  5.8929
+784 24  4.3776
+784 25  1.9362
+784 26  0.8418
+784 27  0.3367
+784 28  0.0842
+# pixel 785
+785  1  0.7731
+785  2  2.5126
+785  3  6.6681
+785  4 11.9832
+785  5 18.7479
+785  6 22.8068
+785  7 24.0631
+785  8 25.4160
+785  9 26.9622
+785 10 27.5421
+785 11 27.5421
+785 12 27.3488
+785 13 26.7690
+785 14 26.4791
+785 15 25.1261
+785 16 23.7732
+785 17 22.3236
+785 18 20.7774
+785 19 19.0379
+785 20 17.3950
+785 21 13.7227
+785 22  9.6639
+785 23  6.7647
+785 24  5.0252
+785 25  2.2227
+785 26  0.9664
+785 27  0.3866
+785 28  0.0966
+# pixel 786
+786  1  0.7384
+786  2  2.3998
+786  3  6.3688
+786  4 11.4454
+786  5 17.9066
+786  6 21.7833
+786  7 22.9832
+786  8 24.2754
+786  9 25.7522
+786 10 26.3060
+786 11 26.3060
+786 12 26.1214
+786 13 25.5676
+786 14 25.2907
+786 15 23.9985
+786 16 22.7063
+786 17 21.3217
+786 18 19.8449
+786 19 18.1835
+786 20 16.6143
+786 21 13.1069
+786 22  9.2302
+786 23  6.4611
+786 24  4.7997
+786 25  2.1229
+786 26  0.9230
+786 27  0.3692
+786 28  0.0923
+# pixel 787
+787  1  0.7488
+787  2  2.4336
+787  3  6.4584
+787  4 11.6065
+787  5 18.1585
+787  6 22.0897
+787  7 23.3065
+787  8 24.6169
+787  9 26.1145
+787 10 26.6761
+787 11 26.6761
+787 12 26.4889
+787 13 25.9273
+787 14 25.6465
+787 15 24.3361
+787 16 23.0257
+787 17 21.6217
+787 18 20.1241
+787 19 18.4393
+787 20 16.8481
+787 21 13.2913
+787 22  9.3600
+787 23  6.5520
+787 24  4.8672
+787 25  2.1528
+787 26  0.9360
+787 27  0.3744
+787 28  0.0936
+# pixel 788
+788  1  0.7209
+788  2  2.3430
+788  3  6.2180
+788  4 11.1744
+788  5 17.4825
+788  6 21.2673
+788  7 22.4388
+788  8 23.7005
+788  9 25.1423
+788 10 25.6830
+788 11 25.6830
+788 12 25.5028
+788 13 24.9621
+788 14 24.6917
+788 15 23.4301
+788 16 22.1685
+788 17 20.8168
+788 18 19.3749
+788 19 17.7528
+788 20 16.2208
+788 21 12.7964
+788 22  9.0116
+788 23  6.3081
+788 24  4.6860
+788 25  2.0727
+788 26  0.9012
+788 27  0.3605
+788 28  0.0901
+# pixel 789
+789  1  0.6970
+789  2  2.2653
+789  3  6.0119
+789  4 10.8039
+789  5 16.9029
+789  6 20.5623
+789  7 21.6950
+789  8 22.9148
+789  9 24.3089
+789 10 24.8316
+789 11 24.8316
+789 12 24.6574
+789 13 24.1346
+789 14 23.8732
+789 15 22.6534
+789 16 21.4336
+789 17 20.1267
+789 18 18.7326
+789 19 17.1643
+789 20 15.6831
+789 21 12.3723
+789 22  8.7129
+789 23  6.0990
+789 24  4.5307
+789 25  2.0040
+789 26  0.8713
+789 27  0.3485
+789 28  0.0871
+# pixel 790
+790  1  0.6549
+790  2  2.1283
+790  3  5.6483
+790  4 10.1505
+790  5 15.8806
+790  6 19.3187
+790  7 20.3829
+790  8 21.5289
+790  9 22.8386
+790 10 23.3298
+790 11 23.3298
+790 12 23.1661
+790 13 22.6749
+790 14 22.4293
+790 15 21.2833
+790 16 20.1373
+790 17 18.9094
+790 18 17.5997
+790 19 16.1262
+790 20 14.7346
+790 21 11.6240
+790 22  8.1859
+790 23  5.7301
+790 24  4.2567
+790 25  1.8828
+790 26  0.8186
+790 27  0.3274
+790 28  0.0819
+# pixel 791
+791  1  0.7361
+791  2  2.3924
+791  3  6.3489
+791  4 11.4097
+791  5 17.8506
+791  6 21.7152
+791  7 22.9114
+791  8 24.1996
+791  9 25.6718
+791 10 26.2239
+791 11 26.2239
+791 12 26.0398
+791 13 25.4878
+791 14 25.2117
+791 15 23.9235
+791 16 22.6353
+791 17 21.2551
+791 18 19.7829
+791 19 18.1267
+791 20 16.5624
+791 21 13.0659
+791 22  9.2014
+791 23  6.4409
+791 24  4.7847
+791 25  2.1163
+791 26  0.9201
+791 27  0.3681
+791 28  0.0920
+# pixel 792
+792  1  0.8589
+792  2  2.7916
+792  3  7.4084
+792  4 13.3136
+792  5 20.8294
+792  6 25.3389
+792  7 26.7346
+792  8 28.2378
+792  9 29.9557
+792 10 30.5999
+792 11 30.5999
+792 12 30.3852
+792 13 29.7410
+792 14 29.4189
+792 15 27.9157
+792 16 26.4125
+792 17 24.8020
+792 18 23.0841
+792 19 21.1515
+792 20 19.3263
+792 21 15.2463
+792 22 10.7368
+792 23  7.5158
+792 24  5.5831
+792 25  2.4695
+792 26  1.0737
+792 27  0.4295
+792 28  0.1074
+# pixel 793
+793  1  0.7246
+793  2  2.3550
+793  3  6.2497
+793  4 11.2313
+793  5 17.5716
+793  6 21.3758
+793  7 22.5533
+793  8 23.8213
+793  9 25.2705
+793 10 25.8140
+793 11 25.8140
+793 12 25.6328
+793 13 25.0894
+793 14 24.8176
+793 15 23.5496
+793 16 22.2815
+793 17 20.9229
+793 18 19.4737
+793 19 17.8433
+793 20 16.3036
+793 21 12.8617
+793 22  9.0575
+793 23  6.3403
+793 24  4.7099
+793 25  2.0832
+793 26  0.9058
+793 27  0.3623
+793 28  0.0906
+# pixel 794
+794  1  0.6487
+794  2  2.1082
+794  3  5.5949
+794  4 10.0546
+794  5 15.7305
+794  6 19.1361
+794  7 20.1902
+794  8 21.3254
+794  9 22.6228
+794 10 23.1093
+794 11 23.1093
+794 12 22.9471
+794 13 22.4606
+794 14 22.2173
+794 15 21.0821
+794 16 19.9470
+794 17 18.7307
+794 18 17.4333
+794 19 15.9738
+794 20 14.5953
+794 21 11.5141
+794 22  8.1085
+794 23  5.6760
+794 24  4.2164
+794 25  1.8650
+794 26  0.8109
+794 27  0.3243
+794 28  0.0811
+# pixel 795
+795  1  0.7398
+795  2  2.4043
+795  3  6.3806
+795  4 11.4666
+795  5 17.9397
+795  6 21.8235
+795  7 23.0257
+795  8 24.3203
+795  9 25.7998
+795 10 26.3547
+795 11 26.3547
+795 12 26.1697
+795 13 25.6149
+795 14 25.3375
+795 15 24.0429
+795 16 22.7482
+795 17 21.3611
+795 18 19.8816
+795 19 18.2171
+795 20 16.6451
+795 21 13.1311
+795 22  9.2473
+795 23  6.4731
+795 24  4.8086
+795 25  2.1269
+795 26  0.9247
+795 27  0.3699
+795 28  0.0925
+# pixel 796
+796  1  0.7376
+796  2  2.3971
+796  3  6.3614
+796  4 11.4322
+796  5 17.8858
+796  6 21.7580
+796  7 22.9565
+796  8 24.2473
+796  9 25.7224
+796 10 26.2755
+796 11 26.2755
+796 12 26.0912
+796 13 25.5380
+796 14 25.2614
+796 15 23.9707
+796 16 22.6799
+796 17 21.2970
+796 18 19.8219
+796 19 18.1624
+796 20 16.5951
+796 21 13.0917
+796 22  9.2195
+796 23  6.4536
+796 24  4.7941
+796 25  2.1205
+796 26  0.9219
+796 27  0.3688
+796 28  0.0922
+# pixel 797
+797  1  0.7194
+797  2  2.3379
+797  3  6.2045
+797  4 11.1502
+797  5 17.4446
+797  6 21.2213
+797  7 22.3902
+797  8 23.6491
+797  9 25.0879
+797 10 25.6274
+797 11 25.6274
+797 12 25.4476
+797 13 24.9080
+797 14 24.6383
+797 15 23.3794
+797 16 22.1205
+797 17 20.7717
+797 18 19.3329
+797 19 17.7144
+797 20 16.1857
+797 21 12.7687
+797 22  8.9921
+797 23  6.2944
+797 24  4.6759
+797 25  2.0682
+797 26  0.8992
+797 27  0.3597
+797 28  0.0899
+# pixel 798
+798  1  0.7454
+798  2  2.4227
+798  3  6.4294
+798  4 11.5542
+798  5 18.0767
+798  6 21.9903
+798  7 23.2016
+798  8 24.5061
+798  9 25.9970
+798 10 26.5560
+798 11 26.5560
+798 12 26.3697
+798 13 25.8106
+798 14 25.5311
+798 15 24.2266
+798 16 22.9220
+798 17 21.5244
+798 18 20.0335
+798 19 18.3563
+798 20 16.7722
+798 21 13.2314
+798 22  9.3179
+798 23  6.5225
+798 24  4.8453
+798 25  2.1431
+798 26  0.9318
+798 27  0.3727
+798 28  0.0932
+# pixel 799
+799  1  0.6751
+799  2  2.1942
+799  3  5.8230
+799  4 10.4645
+799  5 16.3718
+799  6 19.9163
+799  7 21.0133
+799  8 22.1948
+799  9 23.5451
+799 10 24.0514
+799 11 24.0514
+799 12 23.8826
+799 13 23.3763
+799 14 23.1231
+799 15 21.9416
+799 16 20.7602
+799 17 19.4943
+799 18 18.1440
+799 19 16.6250
+799 20 15.1904
+799 21 11.9835
+799 22  8.4391
+799 23  5.9074
+799 24  4.3883
+799 25  1.9410
+799 26  0.8439
+799 27  0.3376
+799 28  0.0844
+# pixel 800
+800  1  0.7513
+800  2  2.4418
+800  3  6.4803
+800  4 11.6457
+800  5 18.2199
+800  6 22.1644
+800  7 23.3853
+800  8 24.7002
+800  9 26.2029
+800 10 26.7664
+800 11 26.7664
+800 12 26.5785
+800 13 26.0150
+800 14 25.7333
+800 15 24.4184
+800 16 23.1036
+800 17 21.6948
+800 18 20.1922
+800 19 18.5017
+800 20 16.9051
+800 21 13.3362
+800 22  9.3917
+800 23  6.5742
+800 24  4.8837
+800 25  2.1601
+800 26  0.9392
+800 27  0.3757
+800 28  0.0939
+# pixel 801
+801  1  0.6901
+801  2  2.2430
+801  3  5.9525
+801  4 10.6973
+801  5 16.7361
+801  6 20.3594
+801  7 21.4809
+801  8 22.6886
+801  9 24.0689
+801 10 24.5865
+801 11 24.5865
+801 12 24.4140
+801 13 23.8964
+801 14 23.6376
+801 15 22.4298
+801 16 21.2221
+801 17 19.9280
+801 18 18.5477
+801 19 16.9949
+801 20 15.5283
+801 21 12.2501
+801 22  8.6269
+801 23  6.0388
+801 24  4.4860
+801 25  1.9842
+801 26  0.8627
+801 27  0.3451
+801 28  0.0863
+# pixel 802
+802  1  0.7685
+802  2  2.4976
+802  3  6.6281
+802  4 11.9114
+802  5 18.6356
+802  6 22.6702
+802  7 23.9189
+802  8 25.2638
+802  9 26.8007
+802 10 27.3771
+802 11 27.3771
+802 12 27.1850
+802 13 26.6086
+802 14 26.3204
+802 15 24.9756
+802 16 23.6308
+802 17 22.1899
+802 18 20.6529
+802 19 18.9238
+802 20 17.2908
+802 21 13.6405
+802 22  9.6060
+802 23  6.7242
+802 24  4.9951
+802 25  2.2094
+802 26  0.9606
+802 27  0.3842
+802 28  0.0961
+# pixel 803
+803  1  0.8035
+803  2  2.6113
+803  3  6.9299
+803  4 12.4538
+803  5 19.4841
+803  6 23.7023
+803  7 25.0079
+803  8 26.4140
+803  9 28.0210
+803 10 28.6236
+803 11 28.6236
+803 12 28.4227
+803 13 27.8201
+803 14 27.5188
+803 15 26.1127
+803 16 24.7066
+803 17 23.2001
+803 18 21.5932
+803 19 19.7854
+803 20 18.0780
+803 21 14.2616
+803 22 10.0434
+803 23  7.0303
+803 24  5.2225
+803 25  2.3100
+803 26  1.0043
+803 27  0.4017
+803 28  0.1004
+# pixel 804
+804  1  0.8047
+804  2  2.6154
+804  3  6.9408
+804  4 12.4734
+804  5 19.5148
+804  6 23.7397
+804  7 25.0473
+804  8 26.4556
+804  9 28.0651
+804 10 28.6686
+804 11 28.6686
+804 12 28.4675
+804 13 27.8639
+804 14 27.5621
+804 15 26.1539
+804 16 24.7456
+804 17 23.2367
+804 18 21.6272
+804 19 19.8166
+804 20 18.1065
+804 21 14.2840
+804 22 10.0592
+804 23  7.0414
+804 24  5.2308
+804 25  2.3136
+804 26  1.0059
+804 27  0.4024
+804 28  0.1006
+# pixel 805
+805  1  0.7138
+805  2  2.3199
+805  3  6.1566
+805  4 11.0640
+805  5 17.3098
+805  6 21.0573
+805  7 22.2172
+805  8 23.4664
+805  9 24.8940
+805 10 25.4293
+805 11 25.4293
+805 12 25.2509
+805 13 24.7155
+805 14 24.4479
+805 15 23.1987
+805 16 21.9495
+805 17 20.6111
+805 18 19.1835
+805 19 17.5775
+805 20 16.0606
+805 21 12.6701
+805 22  8.9226
+805 23  6.2458
+805 24  4.6397
+805 25  2.0522
+805 26  0.8923
+805 27  0.3569
+805 28  0.0892
+# pixel 806
+806  1  0.7151
+806  2  2.3241
+806  3  6.1677
+806  4 11.0841
+806  5 17.3412
+806  6 21.0955
+806  7 22.2575
+806  8 23.5090
+806  9 24.9392
+806 10 25.4755
+806 11 25.4755
+806 12 25.2967
+806 13 24.7604
+806 14 24.4922
+806 15 23.2408
+806 16 21.9894
+806 17 20.6486
+806 18 19.2184
+806 19 17.6094
+806 20 16.0898
+806 21 12.6931
+806 22  8.9388
+806 23  6.2571
+806 24  4.6482
+806 25  2.0559
+806 26  0.8939
+806 27  0.3576
+806 28  0.0894
+# pixel 807
+807  1  0.8124
+807  2  2.6405
+807  3  7.0074
+807  4 12.5930
+807  5 19.7019
+807  6 23.9673
+807  7 25.2875
+807  8 26.7093
+807  9 28.3342
+807 10 28.9435
+807 11 28.9435
+807 12 28.7404
+807 13 28.1311
+807 14 27.8264
+807 15 26.4046
+807 16 24.9828
+807 17 23.4595
+807 18 21.8346
+807 19 20.0066
+807 20 18.2801
+807 21 14.4210
+807 22 10.1556
+807 23  7.1089
+807 24  5.2809
+807 25  2.3358
+807 26  1.0156
+807 27  0.4062
+807 28  0.1016
+# pixel 808
+808  1  0.7903
+808  2  2.5684
+808  3  6.8162
+808  4 12.2494
+808  5 19.1643
+808  6 23.3133
+808  7 24.5975
+808  8 25.9805
+808  9 27.5611
+808 10 28.1538
+808 11 28.1538
+808 12 27.9562
+808 13 27.3635
+808 14 27.0672
+808 15 25.6842
+808 16 24.3012
+808 17 22.8194
+808 18 21.2388
+808 19 19.4607
+808 20 17.7813
+808 21 14.0275
+808 22  9.8785
+808 23  6.9150
+808 24  5.1368
+808 25  2.2721
+808 26  0.9879
+808 27  0.3951
+808 28  0.0988
+# pixel 809
+809  1  0.7754
+809  2  2.5200
+809  3  6.6878
+809  4 12.0186
+809  5 18.8033
+809  6 22.8741
+809  7 24.1341
+809  8 25.4911
+809  9 27.0418
+809 10 27.6234
+809 11 27.6234
+809 12 27.4295
+809 13 26.8480
+809 14 26.5572
+809 15 25.2003
+809 16 23.8433
+809 17 22.3895
+809 18 20.8387
+809 19 19.0941
+809 20 17.4463
+809 21 13.7632
+809 22  9.6924
+809 23  6.7847
+809 24  5.0401
+809 25  2.2293
+809 26  0.9692
+809 27  0.3877
+809 28  0.0969
+# pixel 810
+810  1  0.6586
+810  2  2.1405
+810  3  5.6805
+810  4 10.2084
+810  5 15.9713
+810  6 19.4290
+810  7 20.4992
+810  8 21.6518
+810  9 22.9690
+810 10 23.4629
+810 11 23.4629
+810 12 23.2983
+810 13 22.8043
+810 14 22.5574
+810 15 21.4048
+810 16 20.2522
+810 17 19.0173
+810 18 17.7001
+810 19 16.2182
+810 20 14.8187
+810 21 11.6903
+810 22  8.2326
+810 23  5.7628
+810 24  4.2810
+810 25  1.8935
+810 26  0.8233
+810 27  0.3293
+810 28  0.0823
+# pixel 811
+811  1  0.6472
+811  2  2.1035
+811  3  5.5824
+811  4 10.0321
+811  5 15.6954
+811  6 19.0934
+811  7 20.1452
+811  8 21.2778
+811  9 22.5723
+811 10 23.0577
+811 11 23.0577
+811 12 22.8959
+811 13 22.4105
+811 14 22.1678
+811 15 21.0351
+811 16 19.9025
+811 17 18.6889
+811 18 17.3944
+811 19 15.9381
+811 20 14.5628
+811 21 11.4884
+811 22  8.0904
+811 23  5.6633
+811 24  4.2070
+811 25  1.8608
+811 26  0.8090
+811 27  0.3236
+811 28  0.0809
+# pixel 812
+812  1  0.7698
+812  2  2.5018
+812  3  6.6394
+812  4 11.9316
+812  5 18.6672
+812  6 22.7086
+812  7 23.9595
+812  8 25.3066
+812  9 26.8461
+812 10 27.4235
+812 11 27.4235
+812 12 27.2310
+812 13 26.6537
+812 14 26.3650
+812 15 25.0179
+812 16 23.6708
+812 17 22.2274
+812 18 20.6879
+812 19 18.9559
+812 20 17.3201
+812 21 13.6636
+812 22  9.6223
+812 23  6.7356
+812 24  5.0036
+812 25  2.2131
+812 26  0.9622
+812 27  0.3849
+812 28  0.0962
+# pixel 813
+813  1  0.7431
+813  2  2.4149
+813  3  6.4089
+813  4 11.5175
+813  5 18.0192
+813  6 21.9203
+813  7 23.1278
+813  8 24.4281
+813  9 25.9143
+813 10 26.4716
+813 11 26.4716
+813 12 26.2858
+813 13 25.7285
+813 14 25.4498
+813 15 24.1495
+813 16 22.8491
+813 17 21.4559
+813 18 19.9698
+813 19 18.2979
+813 20 16.7189
+813 21 13.1893
+813 22  9.2883
+813 23  6.5018
+813 24  4.8299
+813 25  2.1363
+813 26  0.9288
+813 27  0.3715
+813 28  0.0929
+# pixel 814
+814  1  0.7565
+814  2  2.4585
+814  3  6.5246
+814  4 11.7253
+814  5 18.3444
+814  6 22.3159
+814  7 23.5451
+814  8 24.8689
+814  9 26.3819
+814 10 26.9492
+814 11 26.9492
+814 12 26.7601
+814 13 26.1928
+814 14 25.9091
+814 15 24.5853
+814 16 23.2614
+814 17 21.8431
+814 18 20.3301
+814 19 18.6281
+814 20 17.0206
+814 21 13.4273
+814 22  9.4559
+814 23  6.6191
+814 24  4.9171
+814 25  2.1749
+814 26  0.9456
+814 27  0.3782
+814 28  0.0946
+# pixel 815
+815  1  0.6899
+815  2  2.2423
+815  3  5.9508
+815  4 10.6941
+815  5 16.7311
+815  6 20.3533
+815  7 21.4745
+815  8 22.6819
+815  9 24.0618
+815 10 24.5792
+815 11 24.5792
+815 12 24.4067
+815 13 23.8893
+815 14 23.6306
+815 15 22.4232
+815 16 21.2158
+815 17 19.9221
+815 18 18.5422
+815 19 16.9899
+815 20 15.5237
+815 21 12.2465
+815 22  8.6243
+815 23  6.0370
+815 24  4.4846
+815 25  1.9836
+815 26  0.8624
+815 27  0.3450
+815 28  0.0862
+# pixel 816
+816  1  0.7244
+816  2  2.3542
+816  3  6.2476
+816  4 11.2275
+816  5 17.5656
+816  6 21.3684
+816  7 22.5455
+816  8 23.8131
+816  9 25.2618
+816 10 25.8051
+816 11 25.8051
+816 12 25.6240
+816 13 25.0808
+816 14 24.8091
+816 15 23.5415
+816 16 22.2739
+816 17 20.9157
+816 18 19.4670
+816 19 17.8372
+816 20 16.2980
+816 21 12.8573
+816 22  9.0544
+816 23  6.3381
+816 24  4.7083
+816 25  2.0825
+816 26  0.9054
+816 27  0.3622
+816 28  0.0905
+# pixel 817
+817  1  0.6472
+817  2  2.1033
+817  3  5.5818
+817  4 10.0310
+817  5 15.6937
+817  6 19.0913
+817  7 20.1430
+817  8 21.2755
+817  9 22.5698
+817 10 23.0552
+817 11 23.0552
+817 12 22.8934
+817 13 22.4080
+817 14 22.1654
+817 15 21.0328
+817 16 19.9003
+817 17 18.6869
+817 18 17.3925
+817 19 15.9364
+817 20 14.5612
+817 21 11.4872
+817 22  8.0895
+817 23  5.6627
+817 24  4.2066
+817 25  1.8606
+817 26  0.8090
+817 27  0.3236
+817 28  0.0809
+# pixel 818
+818  1  0.7381
+818  2  2.3988
+818  3  6.3661
+818  4 11.4406
+818  5 17.8990
+818  6 21.7740
+818  7 22.9735
+818  8 24.2651
+818  9 25.7413
+818 10 26.2949
+818 11 26.2949
+818 12 26.1104
+818 13 25.5568
+818 14 25.2800
+818 15 23.9884
+818 16 22.6967
+818 17 21.3127
+818 18 19.8365
+818 19 18.1758
+818 20 16.6073
+818 21 13.1013
+818 22  9.2263
+818 23  6.4584
+818 24  4.7977
+818 25  2.1220
+818 26  0.9226
+818 27  0.3691
+818 28  0.0923
+# pixel 819
+819  1  0.6801
+819  2  2.2103
+819  3  5.8659
+819  4 10.5416
+819  5 16.4925
+819  6 20.0631
+819  7 21.1683
+819  8 22.3584
+819  9 23.7186
+819 10 24.2287
+819 11 24.2287
+819 12 24.0587
+819 13 23.5486
+819 14 23.2936
+819 15 22.1034
+819 16 20.9132
+819 17 19.6380
+819 18 18.2778
+819 19 16.7476
+819 20 15.3024
+819 21 12.0719
+819 22  8.5013
+819 23  5.9509
+819 24  4.4207
+819 25  1.9553
+819 26  0.8501
+819 27  0.3401
+819 28  0.0850
+# pixel 820
+820  1  0.5933
+820  2  1.9283
+820  3  5.1173
+820  4  9.1963
+820  5 14.3878
+820  6 17.5026
+820  7 18.4668
+820  8 19.5050
+820  9 20.6917
+820 10 21.1366
+820 11 21.1366
+820 12 20.9883
+820 13 20.5433
+820 14 20.3208
+820 15 19.2826
+820 16 18.2443
+820 17 17.1318
+820 18 15.9452
+820 19 14.6102
+820 20 13.3495
+820 21 10.5312
+820 22  7.4164
+820 23  5.1915
+820 24  3.8565
+820 25  1.7058
+820 26  0.7416
+820 27  0.2967
+820 28  0.0742
+# pixel 821
+821  1  0.7725
+821  2  2.5106
+821  3  6.6628
+821  4 11.9737
+821  5 18.7331
+821  6 22.7887
+821  7 24.0440
+821  8 25.3959
+821  9 26.9409
+821 10 27.5202
+821 11 27.5202
+821 12 27.3271
+821 13 26.7477
+821 14 26.4580
+821 15 25.1062
+821 16 23.7543
+821 17 22.3059
+821 18 20.7609
+821 19 19.0228
+821 20 17.3812
+821 21 13.7118
+821 22  9.6562
+821 23  6.7594
+821 24  5.0212
+821 25  2.2209
+821 26  0.9656
+821 27  0.3862
+821 28  0.0966
+# pixel 822
+822  1  0.7748
+822  2  2.5181
+822  3  6.6828
+822  4 12.0096
+822  5 18.7893
+822  6 22.8571
+822  7 24.1161
+822  8 25.4721
+822  9 27.0217
+822 10 27.6028
+822 11 27.6028
+822 12 27.4091
+822 13 26.8280
+822 14 26.5374
+822 15 25.1815
+822 16 23.8256
+822 17 22.3728
+822 18 20.8232
+822 19 19.0798
+822 20 17.4333
+822 21 13.7530
+822 22  9.6852
+822 23  6.7796
+822 24  5.0363
+822 25  2.2276
+822 26  0.9685
+822 27  0.3874
+822 28  0.0969
+# pixel 823
+823  1  0.6269
+823  2  2.0375
+823  3  5.4073
+823  4  9.7174
+823  5 15.2031
+823  6 18.4945
+823  7 19.5132
+823  8 20.6104
+823  9 21.8642
+823 10 22.3344
+823 11 22.3344
+823 12 22.1777
+823 13 21.7075
+823 14 21.4724
+823 15 20.3753
+823 16 19.2782
+823 17 18.1027
+823 18 16.8488
+823 19 15.4382
+823 20 14.1060
+823 21 11.1280
+823 22  7.8366
+823 23  5.4857
+823 24  4.0751
+823 25  1.8024
+823 26  0.7837
+823 27  0.3135
+823 28  0.0784
+# pixel 824
+824  1  0.7632
+824  2  2.4803
+824  3  6.5823
+824  4 11.8290
+824  5 18.5067
+824  6 22.5133
+824  7 23.7535
+824  8 25.0890
+824  9 26.6153
+824 10 27.1877
+824 11 27.1877
+824 12 26.9969
+824 13 26.4245
+824 14 26.1384
+824 15 24.8028
+824 16 23.4673
+824 17 22.0364
+824 18 20.5100
+824 19 18.7929
+824 20 17.1712
+824 21 13.5462
+824 22  9.5395
+824 23  6.6777
+824 24  4.9606
+824 25  2.1941
+824 26  0.9540
+824 27  0.3816
+824 28  0.0954
+# pixel 825
+825  1  0.8281
+825  2  2.6913
+825  3  7.1423
+825  4 12.8355
+825  5 20.0813
+825  6 24.4288
+825  7 25.7745
+825  8 27.2237
+825  9 28.8799
+825 10 29.5009
+825 11 29.5009
+825 12 29.2939
+825 13 28.6728
+825 14 28.3623
+825 15 26.9131
+825 16 25.4640
+825 17 23.9113
+825 18 22.2551
+825 19 20.3919
+825 20 18.6322
+825 21 14.6987
+825 22 10.3512
+825 23  7.2458
+825 24  5.3826
+825 25  2.3808
+825 26  1.0351
+825 27  0.4140
+825 28  0.1035
+# pixel 826
+826  1  0.7015
+826  2  2.2799
+826  3  6.0505
+826  4 10.8733
+826  5 17.0115
+826  6 20.6944
+826  7 21.8344
+826  8 23.0620
+826  9 24.4650
+826 10 24.9911
+826 11 24.9911
+826 12 24.8158
+826 13 24.2896
+826 14 24.0266
+826 15 22.7989
+826 16 21.5713
+826 17 20.2560
+826 18 18.8530
+826 19 17.2746
+826 20 15.7839
+826 21 12.4517
+826 22  8.7688
+826 23  6.1382
+826 24  4.5598
+826 25  2.0168
+826 26  0.8769
+826 27  0.3508
+826 28  0.0877
+# pixel 827
+827  1  0.6954
+827  2  2.2600
+827  3  5.9977
+827  4 10.7785
+827  5 16.8631
+827  6 20.5139
+827  7 21.6439
+827  8 22.8609
+827  9 24.2516
+827 10 24.7732
+827 11 24.7732
+827 12 24.5993
+827 13 24.0778
+827 14 23.8170
+827 15 22.6001
+827 16 21.3832
+827 17 20.0793
+827 18 18.6885
+827 19 17.1239
+827 20 15.6462
+827 21 12.3431
+827 22  8.6923
+827 23  6.0846
+827 24  4.5200
+827 25  1.9992
+827 26  0.8692
+827 27  0.3477
+827 28  0.0869
+# pixel 828
+828  1  0.8297
+828  2  2.6964
+828  3  7.1559
+828  4 12.8600
+828  5 20.1196
+828  6 24.4754
+828  7 25.8236
+828  8 27.2755
+828  9 28.9349
+828 10 29.5571
+828 11 29.5571
+828 12 29.3497
+828 13 28.7275
+828 14 28.4163
+828 15 26.9644
+828 16 25.5125
+828 17 23.9568
+828 18 22.2975
+828 19 20.4307
+828 20 18.6677
+828 21 14.7267
+828 22 10.3709
+828 23  7.2596
+828 24  5.3929
+828 25  2.3853
+828 26  1.0371
+828 27  0.4148
+828 28  0.1037
+# pixel 829
+829  1  0.7157
+829  2  2.3259
+829  3  6.1727
+829  4 11.0929
+829  5 17.3550
+829  6 21.1123
+829  7 22.2753
+829  8 23.5277
+829  9 24.9590
+829 10 25.4958
+829 11 25.4958
+829 12 25.3169
+829 13 24.7801
+829 14 24.5117
+829 15 23.2593
+829 16 22.0069
+829 17 20.6650
+829 18 19.2337
+829 19 17.6234
+829 20 16.1026
+829 21 12.7032
+829 22  8.9459
+829 23  6.2621
+829 24  4.6519
+829 25  2.0576
+829 26  0.8946
+829 27  0.3578
+829 28  0.0895
+# pixel 830
+830  1  0.7379
+830  2  2.3981
+830  3  6.3642
+830  4 11.4371
+830  5 17.8935
+830  6 21.7673
+830  7 22.9664
+830  8 24.2576
+830  9 25.7334
+830 10 26.2868
+830 11 26.2868
+830 12 26.1023
+830 13 25.5489
+830 14 25.2722
+830 15 23.9809
+830 16 22.6897
+830 17 21.3061
+830 18 19.8304
+830 19 18.1702
+830 20 16.6022
+830 21 13.0973
+830 22  9.2234
+830 23  6.4564
+830 24  4.7962
+830 25  2.1214
+830 26  0.9223
+830 27  0.3689
+830 28  0.0922
+# pixel 831
+831  1  0.7635
+831  2  2.4814
+831  3  6.5853
+831  4 11.8345
+831  5 18.5152
+831  6 22.5237
+831  7 23.7644
+831  8 25.1005
+831  9 26.6276
+831 10 27.2002
+831 11 27.2002
+831 12 27.0093
+831 13 26.4367
+831 14 26.1504
+831 15 24.8142
+831 16 23.4781
+831 17 22.0465
+831 18 20.5194
+831 19 18.8015
+831 20 17.1791
+831 21 13.5524
+831 22  9.5439
+831 23  6.6807
+831 24  4.9628
+831 25  2.1951
+831 26  0.9544
+831 27  0.3818
+831 28  0.0954
+# pixel 832
+832  1  0.7677
+832  2  2.4950
+832  3  6.6214
+832  4 11.8993
+832  5 18.6166
+832  6 22.6470
+832  7 23.8945
+832  8 25.2380
+832  9 26.7734
+832 10 27.3491
+832 11 27.3491
+832 12 27.1572
+832 13 26.5814
+832 14 26.2936
+832 15 24.9501
+832 16 23.6066
+832 17 22.1672
+832 18 20.6318
+832 19 18.9045
+832 20 17.2731
+832 21 13.6266
+832 22  9.5962
+832 23  6.7173
+832 24  4.9900
+832 25  2.2071
+832 26  0.9596
+832 27  0.3838
+832 28  0.0960
+# pixel 833
+833  1  0.8091
+833  2  2.6296
+833  3  6.9785
+833  4 12.5410
+833  5 19.6207
+833  6 23.8684
+833  7 25.1832
+833  8 26.5991
+833  9 28.2173
+833 10 28.8242
+833 11 28.8242
+833 12 28.6219
+833 13 28.0151
+833 14 27.7116
+833 15 26.2957
+833 16 24.8798
+833 17 23.3627
+833 18 21.7445
+833 19 19.9241
+833 20 18.2047
+833 21 14.3615
+833 22 10.1137
+833 23  7.0796
+833 24  5.2591
+833 25  2.3262
+833 26  1.0114
+833 27  0.4045
+833 28  0.1011
+# pixel 834
+834  1  0.7630
+834  2  2.4799
+834  3  6.5812
+834  4 11.8270
+834  5 18.5036
+834  6 22.5095
+834  7 23.7494
+834  8 25.0847
+834  9 26.6108
+834 10 27.1831
+834 11 27.1831
+834 12 26.9923
+834 13 26.4200
+834 14 26.1339
+834 15 24.7986
+834 16 23.4633
+834 17 22.0326
+834 18 20.5065
+834 19 18.7897
+834 20 17.1682
+834 21 13.5438
+834 22  9.5379
+834 23  6.6765
+834 24  4.9597
+834 25  2.1937
+834 26  0.9538
+834 27  0.3815
+834 28  0.0954
+# pixel 835
+835  1  0.7700
+835  2  2.5025
+835  3  6.6413
+835  4 11.9351
+835  5 18.6727
+835  6 22.7152
+835  7 23.9665
+835  8 25.3140
+835  9 26.8540
+835 10 27.4315
+835 11 27.4315
+835 12 27.2390
+835 13 26.6615
+835 14 26.3728
+835 15 25.0253
+835 16 23.6777
+835 17 22.2340
+835 18 20.6940
+835 19 18.9614
+835 20 17.3252
+835 21 13.6676
+835 22  9.6251
+835 23  6.7376
+835 24  5.0051
+835 25  2.2138
+835 26  0.9625
+835 27  0.3850
+835 28  0.0963
+# pixel 836
+836  1  0.7060
+836  2  2.2945
+836  3  6.0894
+836  4 10.9432
+836  5 17.1208
+836  6 20.8274
+836  7 21.9747
+836  8 23.2102
+836  9 24.6222
+836 10 25.1517
+836 11 25.1517
+836 12 24.9752
+836 13 24.4457
+836 14 24.1809
+836 15 22.9454
+836 16 21.7099
+836 17 20.3861
+836 18 18.9741
+836 19 17.3856
+836 20 15.8853
+836 21 12.5317
+836 22  8.8252
+836 23  6.1776
+836 24  4.5891
+836 25  2.0298
+836 26  0.8825
+836 27  0.3530
+836 28  0.0883
+# pixel 837
+837  1  0.6101
+837  2  1.9827
+837  3  5.2619
+837  4  9.4562
+837  5 14.7943
+837  6 17.9972
+837  7 18.9886
+837  8 20.0562
+837  9 21.2763
+837 10 21.7339
+837 11 21.7339
+837 12 21.5814
+837 13 21.1238
+837 14 20.8950
+837 15 19.8274
+837 16 18.7598
+837 17 17.6159
+837 18 16.3957
+837 19 15.0231
+837 20 13.7267
+837 21 10.8288
+837 22  7.6259
+837 23  5.3381
+837 24  3.9655
+837 25  1.7540
+837 26  0.7626
+837 27  0.3050
+837 28  0.0763
+# pixel 838
+838  1  0.7389
+838  2  2.4016
+838  3  6.3734
+838  4 11.4537
+838  5 17.9195
+838  6 21.7989
+838  7 22.9997
+838  8 24.2929
+838  9 25.7708
+838 10 26.3250
+838 11 26.3250
+838 12 26.1403
+838 13 25.5861
+838 14 25.3089
+838 15 24.0158
+838 16 22.7226
+838 17 21.3371
+838 18 19.8592
+838 19 18.1966
+838 20 16.6263
+838 21 13.1163
+838 22  9.2368
+838 23  6.4658
+838 24  4.8032
+838 25  2.1245
+838 26  0.9237
+838 27  0.3695
+838 28  0.0924
+# pixel 839
+839  1  0.7714
+839  2  2.5071
+839  3  6.6534
+839  4 11.9568
+839  5 18.7066
+839  6 22.7565
+839  7 24.0100
+839  8 25.3600
+839  9 26.9028
+839 10 27.4814
+839 11 27.4814
+839 12 27.2885
+839 13 26.7100
+839 14 26.4207
+839 15 25.0707
+839 16 23.7208
+839 17 22.2744
+839 18 20.7316
+839 19 18.9959
+839 20 17.3567
+839 21 13.6925
+839 22  9.6426
+839 23  6.7498
+839 24  5.0141
+839 25  2.2178
+839 26  0.9643
+839 27  0.3857
+839 28  0.0964
+# pixel 840
+840  1  0.7627
+840  2  2.4788
+840  3  6.5783
+840  4 11.8218
+840  5 18.4954
+840  6 22.4996
+840  7 23.7390
+840  8 25.0737
+840  9 26.5991
+840 10 27.1711
+840 11 27.1711
+840 12 26.9805
+840 13 26.4084
+840 14 26.1224
+840 15 24.7877
+840 16 23.4530
+840 17 22.0229
+840 18 20.4975
+840 19 18.7814
+840 20 17.1607
+840 21 13.5379
+840 22  9.5337
+840 23  6.6736
+840 24  4.9575
+840 25  2.1928
+840 26  0.9534
+840 27  0.3813
+840 28  0.0953
+# pixel 841
+841  1  0.7863
+841  2  2.5555
+841  3  6.7818
+841  4 12.1876
+841  5 19.0677
+841  6 23.1957
+841  7 24.4735
+841  8 25.8495
+841  9 27.4221
+841 10 28.0118
+841 11 28.0118
+841 12 27.8152
+841 13 27.2255
+841 14 26.9306
+841 15 25.5546
+841 16 24.1786
+841 17 22.7043
+841 18 21.1317
+841 19 19.3625
+841 20 17.6917
+841 21 13.9567
+841 22  9.8287
+841 23  6.8801
+841 24  5.1109
+841 25  2.2606
+841 26  0.9829
+841 27  0.3931
+841 28  0.0983
+# pixel 842
+842  1  0.6921
+842  2  2.2495
+842  3  5.9698
+842  4 10.7283
+842  5 16.7846
+842  6 20.4183
+842  7 21.5431
+842  8 22.7543
+842  9 24.1386
+842 10 24.6577
+842 11 24.6577
+842 12 24.4847
+842 13 23.9656
+842 14 23.7060
+842 15 22.4948
+842 16 21.2835
+842 17 19.9857
+842 18 18.6015
+842 19 17.0441
+842 20 15.5733
+842 21 12.2856
+842 22  8.6518
+842 23  6.0563
+842 24  4.4990
+842 25  1.9899
+842 26  0.8652
+842 27  0.3461
+842 28  0.0865
+# pixel 843
+843  1  0.7481
+843  2  2.4312
+843  3  6.4520
+843  4 11.5949
+843  5 18.1405
+843  6 22.0678
+843  7 23.2834
+843  8 24.5925
+843  9 26.0886
+843 10 26.6497
+843 11 26.6497
+843 12 26.4626
+843 13 25.9016
+843 14 25.6211
+843 15 24.3120
+843 16 23.0029
+843 17 21.6002
+843 18 20.1041
+843 19 18.4210
+843 20 16.8314
+843 21 13.2781
+843 22  9.3508
+843 23  6.5455
+843 24  4.8624
+843 25  2.1507
+843 26  0.9351
+843 27  0.3740
+843 28  0.0935
+# pixel 844
+844  1  0.7153
+844  2  2.3246
+844  3  6.1691
+844  4 11.0865
+844  5 17.3451
+844  6 21.1002
+844  7 22.2625
+844  8 23.5142
+844  9 24.9447
+844 10 25.4812
+844 11 25.4812
+844 12 25.3023
+844 13 24.7659
+844 14 24.4977
+844 15 23.2460
+844 16 21.9943
+844 17 20.6531
+844 18 19.2226
+844 19 17.6133
+844 20 16.0934
+844 21 12.6959
+844 22  8.9408
+844 23  6.2585
+844 24  4.6492
+844 25  2.0564
+844 26  0.8941
+844 27  0.3576
+844 28  0.0894
+# pixel 845
+845  1  0.7404
+845  2  2.4062
+845  3  6.3857
+845  4 11.4757
+845  5 17.9539
+845  6 21.8408
+845  7 23.0439
+845  8 24.3396
+845  9 25.8203
+845 10 26.3756
+845 11 26.3756
+845 12 26.1905
+845 13 25.6352
+845 14 25.3576
+845 15 24.0619
+845 16 22.7663
+845 17 21.3781
+845 18 19.8974
+845 19 18.2315
+845 20 16.6583
+845 21 13.1415
+845 22  9.2546
+845 23  6.4782
+845 24  4.8124
+845 25  2.1286
+845 26  0.9255
+845 27  0.3702
+845 28  0.0925
+# pixel 846
+846  1  0.6759
+846  2  2.1967
+846  3  5.8297
+846  4 10.4765
+846  5 16.3907
+846  6 19.9392
+846  7 21.0376
+846  8 22.2204
+846  9 23.5722
+846 10 24.0792
+846 11 24.0792
+846 12 23.9102
+846 13 23.4033
+846 14 23.1498
+846 15 21.9670
+846 16 20.7841
+846 17 19.5168
+846 18 18.1650
+846 19 16.6442
+846 20 15.2079
+846 21 11.9973
+846 22  8.4488
+846 23  5.9142
+846 24  4.3934
+846 25  1.9432
+846 26  0.8449
+846 27  0.3380
+846 28  0.0845
+# pixel 847
+847  1  0.6754
+847  2  2.1951
+847  3  5.8256
+847  4 10.4691
+847  5 16.3791
+847  6 19.9251
+847  7 21.0227
+847  8 22.2047
+847  9 23.5556
+847 10 24.0621
+847 11 24.0621
+847 12 23.8933
+847 13 23.3867
+847 14 23.1334
+847 15 21.9514
+847 16 20.7694
+847 17 19.5030
+847 18 18.1521
+847 19 16.6324
+847 20 15.1971
+847 21 11.9889
+847 22  8.4429
+847 23  5.9100
+847 24  4.3903
+847 25  1.9419
+847 26  0.8443
+847 27  0.3377
+847 28  0.0844
+# pixel 848
+848  1  0.8838
+848  2  2.8722
+848  3  7.6224
+848  4 13.6982
+848  5 21.4310
+848  6 26.0707
+848  7 27.5069
+848  8 29.0534
+848  9 30.8209
+848 10 31.4837
+848 11 31.4837
+848 12 31.2628
+848 13 30.6000
+848 14 30.2686
+848 15 28.7220
+848 16 27.1754
+848 17 25.5184
+848 18 23.7509
+848 19 21.7624
+848 20 19.8845
+848 21 15.6866
+848 22 11.0469
+848 23  7.7328
+848 24  5.7444
+848 25  2.5408
+848 26  1.1047
+848 27  0.4419
+848 28  0.1105
+# pixel 849
+849  1  0.7944
+849  2  2.5818
+849  3  6.8518
+849  4 12.3133
+849  5 19.2644
+849  6 23.4350
+849  7 24.7259
+849  8 26.1161
+849  9 27.7050
+849 10 28.3008
+849 11 28.3008
+849 12 28.1022
+849 13 27.5064
+849 14 27.2085
+849 15 25.8182
+849 16 24.4280
+849 17 22.9385
+849 18 21.3497
+849 19 19.5623
+849 20 17.8742
+849 21 14.1007
+849 22  9.9301
+849 23  6.9511
+849 24  5.1636
+849 25  2.2839
+849 26  0.9930
+849 27  0.3972
+849 28  0.0993
+# pixel 850
+850  1  0.7630
+850  2  2.4798
+850  3  6.5809
+850  4 11.8266
+850  5 18.5029
+850  6 22.5087
+850  7 23.7486
+850  8 25.0839
+850  9 26.6099
+850 10 27.1821
+850 11 27.1821
+850 12 26.9914
+850 13 26.4191
+850 14 26.1330
+850 15 24.7977
+850 16 23.4625
+850 17 22.0318
+850 18 20.5058
+850 19 18.7891
+850 20 17.1677
+850 21 13.5434
+850 22  9.5376
+850 23  6.6763
+850 24  4.9595
+850 25  2.1936
+850 26  0.9538
+850 27  0.3815
+850 28  0.0954
+# pixel 851
+851  1  0.6732
+851  2  2.1879
+851  3  5.8064
+851  4 10.4348
+851  5 16.3254
+851  6 19.8597
+851  7 20.9537
+851  8 22.1318
+851  9 23.4782
+851 10 23.9831
+851 11 23.9831
+851 12 23.8148
+851 13 23.3099
+851 14 23.0575
+851 15 21.8794
+851 16 20.7012
+851 17 19.4390
+851 18 18.0925
+851 19 16.5778
+851 20 15.1473
+851 21 11.9495
+851 22  8.4151
+851 23  5.8906
+851 24  4.3759
+851 25  1.9355
+851 26  0.8415
+851 27  0.3366
+851 28  0.0842
+# pixel 852
+852  1  0.6388
+852  2  2.0761
+852  3  5.5095
+852  4  9.9012
+852  5 15.4906
+852  6 18.8442
+852  7 19.8822
+852  8 21.0001
+852  9 22.2777
+852 10 22.7568
+852 11 22.7568
+852 12 22.5971
+852 13 22.1180
+852 14 21.8785
+852 15 20.7606
+852 16 19.6427
+852 17 18.4450
+852 18 17.1674
+852 19 15.7301
+852 20 14.3727
+852 21 11.3385
+852 22  7.9848
+852 23  5.5894
+852 24  4.1521
+852 25  1.8365
+852 26  0.7985
+852 27  0.3194
+852 28  0.0798
+# pixel 853
+853  1  0.6680
+853  2  2.1710
+853  3  5.7615
+853  4 10.3540
+853  5 16.1990
+853  6 19.7060
+853  7 20.7915
+853  8 21.9605
+853  9 23.2965
+853 10 23.7975
+853 11 23.7975
+853 12 23.6305
+853 13 23.1295
+853 14 22.8790
+853 15 21.7100
+853 16 20.5410
+853 17 19.2885
+853 18 17.9525
+853 19 16.4495
+853 20 15.0300
+853 21 11.8570
+853 22  8.3500
+853 23  5.8450
+853 24  4.3420
+853 25  1.9205
+853 26  0.8350
+853 27  0.3340
+853 28  0.0835
+# pixel 854
+854  1  0.7494
+854  2  2.4354
+854  3  6.4632
+854  4 11.6151
+854  5 18.1720
+854  6 22.1062
+854  7 23.3239
+854  8 24.6353
+854  9 26.1340
+854 10 26.6960
+854 11 26.6960
+854 12 26.5087
+854 13 25.9467
+854 14 25.6656
+854 15 24.3543
+854 16 23.0429
+854 17 21.6378
+854 18 20.1391
+854 19 18.4530
+854 20 16.8606
+854 21 13.3012
+854 22  9.3670
+854 23  6.5569
+854 24  4.8709
+854 25  2.1544
+854 26  0.9367
+854 27  0.3747
+854 28  0.0937
+# pixel 855
+855  1  0.6683
+855  2  2.1719
+855  3  5.7638
+855  4 10.3582
+855  5 16.2056
+855  6 19.7140
+855  7 20.8000
+855  8 21.9694
+855  9 23.3060
+855 10 23.8072
+855 11 23.8072
+855 12 23.6401
+855 13 23.1389
+855 14 22.8883
+855 15 21.7188
+855 16 20.5494
+855 17 19.2963
+855 18 17.9598
+855 19 16.4562
+855 20 15.0361
+855 21 11.8618
+855 22  8.3534
+855 23  5.8474
+855 24  4.3438
+855 25  1.9213
+855 26  0.8353
+855 27  0.3341
+855 28  0.0835
+# pixel 856
+856  1  0.7648
+856  2  2.4857
+856  3  6.5967
+856  4 11.8550
+856  5 18.5473
+856  6 22.5627
+856  7 23.8056
+856  8 25.1440
+856  9 26.6737
+856 10 27.2473
+856 11 27.2473
+856 12 27.0561
+856 13 26.4825
+856 14 26.1957
+856 15 24.8572
+856 16 23.5188
+856 17 22.0847
+856 18 20.5550
+856 19 18.8341
+856 20 17.2088
+856 21 13.5759
+856 22  9.5605
+856 23  6.6923
+856 24  4.9714
+856 25  2.1989
+856 26  0.9560
+856 27  0.3824
+856 28  0.0956
+# pixel 857
+857  1  0.7350
+857  2  2.3889
+857  3  6.3398
+857  4 11.3932
+857  5 17.8249
+857  6 21.6839
+857  7 22.8783
+857  8 24.1647
+857  9 25.6348
+857 10 26.1861
+857 11 26.1861
+857 12 26.0023
+857 13 25.4510
+857 14 25.1754
+857 15 23.8890
+857 16 22.6027
+857 17 21.2245
+857 18 19.7544
+857 19 18.1005
+857 20 16.5386
+857 21 13.0471
+857 22  9.1881
+857 23  6.4317
+857 24  4.7778
+857 25  2.1133
+857 26  0.9188
+857 27  0.3675
+857 28  0.0919
+# pixel 858
+858  1  0.7295
+858  2  2.3710
+858  3  6.2923
+858  4 11.3079
+858  5 17.6914
+858  6 21.5215
+858  7 22.7070
+858  8 23.9837
+858  9 25.4428
+858 10 25.9899
+858 11 25.9899
+858 12 25.8076
+858 13 25.2604
+858 14 24.9868
+858 15 23.7101
+858 16 22.4334
+858 17 21.0655
+858 18 19.6064
+858 19 17.9650
+858 20 16.4147
+858 21 12.9494
+858 22  9.1193
+858 23  6.3835
+858 24  4.7420
+858 25  2.0974
+858 26  0.9119
+858 27  0.3648
+858 28  0.0912
+# pixel 859
+859  1  0.7079
+859  2  2.3007
+859  3  6.1056
+859  4 10.9725
+859  5 17.1666
+859  6 20.8831
+859  7 22.0334
+859  8 23.2722
+859  9 24.6880
+859 10 25.2190
+859 11 25.2190
+859 12 25.0420
+859 13 24.5111
+859 14 24.2456
+859 15 23.0068
+859 16 21.7679
+859 17 20.4406
+859 18 19.0248
+859 19 17.4320
+859 20 15.9278
+859 21 12.5652
+859 22  8.8488
+859 23  6.1941
+859 24  4.6014
+859 25  2.0352
+859 26  0.8849
+859 27  0.3540
+859 28  0.0885
+# pixel 860
+860  1  0.7578
+860  2  2.4628
+860  3  6.5360
+860  4 11.7458
+860  5 18.3765
+860  6 22.3550
+860  7 23.5864
+860  8 24.9125
+860  9 26.4281
+860 10 26.9965
+860 11 26.9965
+860 12 26.8070
+860 13 26.2387
+860 14 25.9545
+860 15 24.6284
+860 16 23.3022
+860 17 21.8813
+860 18 20.3658
+860 19 18.6607
+860 20 17.0504
+860 21 13.4509
+860 22  9.4724
+860 23  6.6307
+860 24  4.9257
+860 25  2.1787
+860 26  0.9472
+860 27  0.3789
+860 28  0.0947
+# pixel 861
+861  1  0.6541
+861  2  2.1259
+861  3  5.6419
+861  4 10.1391
+861  5 15.8628
+861  6 19.2970
+861  7 20.3600
+861  8 21.5047
+861  9 22.8130
+861 10 23.3036
+861 11 23.3036
+861 12 23.1401
+861 13 22.6495
+861 14 22.4042
+861 15 21.2594
+861 16 20.1147
+861 17 18.8882
+861 18 17.5799
+861 19 16.1081
+861 20 14.7181
+861 21 11.6109
+861 22  8.1767
+861 23  5.7237
+861 24  4.2519
+861 25  1.8806
+861 26  0.8177
+861 27  0.3271
+861 28  0.0818
+# pixel 862
+862  1  0.7929
+862  2  2.5770
+862  3  6.8389
+862  4 12.2902
+862  5 19.2282
+862  6 23.3910
+862  7 24.6794
+862  8 26.0670
+862  9 27.6529
+862 10 28.2476
+862 11 28.2476
+862 12 28.0493
+862 13 27.4546
+862 14 27.1573
+862 15 25.7697
+862 16 24.3821
+862 17 22.8954
+862 18 21.3096
+862 19 19.5255
+862 20 17.8406
+862 21 14.0742
+862 22  9.9114
+862 23  6.9380
+862 24  5.1539
+862 25  2.2796
+862 26  0.9911
+862 27  0.3965
+862 28  0.0991
+# pixel 863
+863  1  0.5799
+863  2  1.8846
+863  3  5.0016
+863  4  8.9883
+863  5 14.0624
+863  6 17.1068
+863  7 18.0491
+863  8 19.0639
+863  9 20.2237
+863 10 20.6586
+863 11 20.6586
+863 12 20.5136
+863 13 20.0787
+863 14 19.8613
+863 15 18.8464
+863 16 17.8316
+863 17 16.7443
+863 18 15.5846
+863 19 14.2798
+863 20 13.0475
+863 21 10.2931
+863 22  7.2486
+863 23  5.0740
+863 24  3.7693
+863 25  1.6672
+863 26  0.7249
+863 27  0.2899
+863 28  0.0725
+# pixel 864
+864  1  0.7084
+864  2  2.3023
+864  3  6.1099
+864  4 10.9802
+864  5 17.1786
+864  6 20.8977
+864  7 22.0489
+864  8 23.2886
+864  9 24.7054
+864 10 25.2367
+864 11 25.2367
+864 12 25.0596
+864 13 24.5283
+864 14 24.2626
+864 15 23.0229
+864 16 21.7832
+864 17 20.4550
+864 18 19.0382
+864 19 17.4443
+864 20 15.9389
+864 21 12.5741
+864 22  8.8550
+864 23  6.1985
+864 24  4.6046
+864 25  2.0366
+864 26  0.8855
+864 27  0.3542
+864 28  0.0885
+# pixel 865
+865  1  0.7070
+865  2  2.2978
+865  3  6.0980
+865  4 10.9587
+865  5 17.1450
+865  6 20.8568
+865  7 22.0057
+865  8 23.2430
+865  9 24.6570
+865 10 25.1872
+865 11 25.1872
+865 12 25.0105
+865 13 24.4802
+865 14 24.2151
+865 15 22.9778
+865 16 21.7406
+865 17 20.4149
+865 18 19.0009
+865 19 17.4101
+865 20 15.9077
+865 21 12.5494
+865 22  8.8376
+865 23  6.1863
+865 24  4.5956
+865 25  2.0327
+865 26  0.8838
+865 27  0.3535
+865 28  0.0884
+# pixel 866
+866  1  0.6362
+866  2  2.0676
+866  3  5.4871
+866  4  9.8609
+866  5 15.4276
+866  6 18.7676
+866  7 19.8014
+866  8 20.9147
+866  9 22.1871
+866 10 22.6643
+866 11 22.6643
+866 12 22.5052
+866 13 22.0281
+866 14 21.7895
+866 15 20.6762
+866 16 19.5628
+866 17 18.3700
+866 18 17.0976
+866 19 15.6662
+866 20 14.3143
+866 21 11.2924
+866 22  7.9524
+866 23  5.5667
+866 24  4.1352
+866 25  1.8290
+866 26  0.7952
+866 27  0.3181
+866 28  0.0795
+# pixel 867
+867  1  0.7762
+867  2  2.5226
+867  3  6.6945
+867  4 12.0307
+867  5 18.8223
+867  6 22.8972
+867  7 24.1585
+867  8 25.5168
+867  9 27.0691
+867 10 27.6513
+867 11 27.6513
+867 12 27.4572
+867 13 26.8751
+867 14 26.5840
+867 15 25.2257
+867 16 23.8674
+867 17 22.4121
+867 18 20.8597
+867 19 19.1133
+867 20 17.4640
+867 21 13.7771
+867 22  9.7022
+867 23  6.7915
+867 24  5.0451
+867 25  2.2315
+867 26  0.9702
+867 27  0.3881
+867 28  0.0970
+# pixel 868
+868  1  0.7191
+868  2  2.3370
+868  3  6.2020
+868  4 11.1456
+868  5 17.4375
+868  6 21.2126
+868  7 22.3811
+868  8 23.6395
+868  9 25.0776
+868 10 25.6169
+868 11 25.6169
+868 12 25.4372
+868 13 24.8979
+868 14 24.6282
+868 15 23.3698
+868 16 22.1115
+868 17 20.7632
+868 18 19.3251
+868 19 17.7071
+868 20 16.1791
+868 21 12.7635
+868 22  8.9884
+868 23  6.2919
+868 24  4.6740
+868 25  2.0673
+868 26  0.8988
+868 27  0.3595
+868 28  0.0899
+# pixel 869
+869  1  0.7707
+869  2  2.5049
+869  3  6.6476
+869  4 11.9464
+869  5 18.6903
+869  6 22.7367
+869  7 23.9891
+869  8 25.3379
+869  9 26.8794
+869 10 27.4574
+869 11 27.4574
+869 12 27.2647
+869 13 26.6867
+869 14 26.3977
+869 15 25.0489
+869 16 23.7001
+869 17 22.2550
+869 18 20.7135
+869 19 18.9793
+869 20 17.3415
+869 21 13.6805
+869 22  9.6342
+869 23  6.7439
+869 24  5.0098
+869 25  2.2159
+869 26  0.9634
+869 27  0.3854
+869 28  0.0963
+# pixel 870
+870  1  0.8404
+870  2  2.7312
+870  3  7.2482
+870  4 13.0257
+870  5 20.3789
+870  6 24.7909
+870  7 26.1565
+870  8 27.6271
+870  9 29.3079
+870 10 29.9381
+870 11 29.9381
+870 12 29.7280
+870 13 29.0978
+870 14 28.7826
+870 15 27.3120
+870 16 25.8413
+870 17 24.2656
+870 18 22.5849
+870 19 20.6941
+870 20 18.9083
+870 21 14.9165
+870 22 10.5046
+870 23  7.3532
+870 24  5.4624
+870 25  2.4161
+870 26  1.0505
+870 27  0.4202
+870 28  0.1050
+# pixel 871
+871  1  0.7022
+871  2  2.2820
+871  3  6.0561
+871  4 10.8835
+871  5 17.0274
+871  6 20.7137
+871  7 21.8547
+871  8 23.0835
+871  9 24.4878
+871 10 25.0144
+871 11 25.0144
+871 12 24.8389
+871 13 24.3123
+871 14 24.0490
+871 15 22.8202
+871 16 21.5914
+871 17 20.2749
+871 18 18.8705
+871 19 17.2907
+871 20 15.7986
+871 21 12.4633
+871 22  8.7770
+871 23  6.1439
+871 24  4.5640
+871 25  2.0187
+871 26  0.8777
+871 27  0.3511
+871 28  0.0878
+# pixel 872
+872  1  0.6998
+872  2  2.2745
+872  3  6.0362
+872  4 10.8477
+872  5 16.9713
+872  6 20.6455
+872  7 21.7828
+872  8 23.0075
+872  9 24.4072
+872 10 24.9321
+872 11 24.9321
+872 12 24.7572
+872 13 24.2323
+872 14 23.9698
+872 15 22.7451
+872 16 21.5203
+872 17 20.2081
+872 18 18.8084
+872 19 17.2338
+872 20 15.7466
+872 21 12.4223
+872 22  8.7481
+872 23  6.1237
+872 24  4.5490
+872 25  2.0121
+872 26  0.8748
+872 27  0.3499
+872 28  0.0875
+# pixel 873
+873  1  0.6859
+873  2  2.2291
+873  3  5.9157
+873  4 10.6312
+873  5 16.6327
+873  6 20.2336
+873  7 21.3481
+873  8 22.5484
+873  9 23.9202
+873 10 24.4346
+873 11 24.4346
+873 12 24.2631
+873 13 23.7487
+873 14 23.4915
+873 15 22.2912
+873 16 21.0909
+873 17 19.8049
+873 18 18.4331
+873 19 16.8899
+873 20 15.4324
+873 21 12.1744
+873 22  8.5735
+873 23  6.0015
+873 24  4.4582
+873 25  1.9719
+873 26  0.8574
+873 27  0.3429
+873 28  0.0857
+# pixel 874
+874  1  0.6992
+874  2  2.2724
+874  3  6.0305
+874  4 10.8374
+874  5 16.9554
+874  6 20.6261
+874  7 21.7623
+874  8 22.9859
+874  9 24.3843
+874 10 24.9087
+874 11 24.9087
+874 12 24.7339
+874 13 24.2095
+874 14 23.9473
+874 15 22.7237
+874 16 21.5001
+874 17 20.1891
+874 18 18.7907
+874 19 17.2176
+874 20 15.7318
+874 21 12.4106
+874 22  8.7399
+874 23  6.1179
+874 24  4.5447
+874 25  2.0102
+874 26  0.8740
+874 27  0.3496
+874 28  0.0874
+# pixel 875
+875  1  0.6953
+875  2  2.2599
+875  3  5.9974
+875  4 10.7779
+875  5 16.8622
+875  6 20.5128
+875  7 21.6427
+875  8 22.8596
+875  9 24.2503
+875 10 24.7718
+875 11 24.7718
+875 12 24.5980
+875 13 24.0765
+875 14 23.8157
+875 15 22.5988
+875 16 21.3820
+875 17 20.0782
+875 18 18.6875
+875 19 17.1230
+875 20 15.6453
+875 21 12.3424
+875 22  8.6919
+875 23  6.0843
+875 24  4.5198
+875 25  1.9991
+875 26  0.8692
+875 27  0.3477
+875 28  0.0869
+# pixel 876
+876  1  0.7083
+876  2  2.3019
+876  3  6.1088
+876  4 10.9781
+876  5 17.1754
+876  6 20.8938
+876  7 22.0447
+876  8 23.2842
+876  9 24.7007
+876 10 25.2319
+876 11 25.2319
+876 12 25.0548
+876 13 24.5236
+876 14 24.2580
+876 15 23.0186
+876 16 21.7791
+876 17 20.4511
+876 18 19.0346
+876 19 17.4410
+876 20 15.9359
+876 21 12.5717
+876 22  8.8533
+876 23  6.1973
+876 24  4.6037
+876 25  2.0363
+876 26  0.8853
+876 27  0.3541
+876 28  0.0885
+# pixel 877
+877  1  0.8260
+877  2  2.6844
+877  3  7.1241
+877  4 12.8027
+877  5 20.0300
+877  6 24.3664
+877  7 25.7087
+877  8 27.1541
+877  9 28.8061
+877 10 29.4256
+877 11 29.4256
+877 12 29.2191
+877 13 28.5996
+877 14 28.2899
+877 15 26.8444
+877 16 25.3989
+877 17 23.8502
+877 18 22.1982
+877 19 20.3398
+877 20 18.5846
+877 21 14.6612
+877 22 10.3248
+877 23  7.2273
+877 24  5.3689
+877 25  2.3747
+877 26  1.0325
+877 27  0.4130
+877 28  0.1032
+# pixel 878
+878  1  0.7819
+878  2  2.5413
+878  3  6.7442
+878  4 12.1200
+878  5 18.9619
+878  6 23.0671
+878  7 24.3377
+878  8 25.7061
+878  9 27.2700
+878 10 27.8564
+878 11 27.8564
+878 12 27.6609
+878 13 27.0745
+878 14 26.7813
+878 15 25.4129
+878 16 24.0445
+878 17 22.5784
+878 18 21.0145
+878 19 19.2551
+878 20 17.5935
+878 21 13.8793
+878 22  9.7742
+878 23  6.8419
+878 24  5.0826
+878 25  2.2481
+878 26  0.9774
+878 27  0.3910
+878 28  0.0977
+# pixel 879
+879  1  0.5365
+879  2  1.7437
+879  3  4.6275
+879  4  8.3162
+879  5 13.0108
+879  6 15.8276
+879  7 16.6994
+879  8 17.6383
+879  9 18.7114
+879 10 19.1138
+879 11 19.1138
+879 12 18.9797
+879 13 18.5773
+879 14 18.3761
+879 15 17.4371
+879 16 16.4982
+879 17 15.4922
+879 18 14.4192
+879 19 13.2120
+879 20 12.0719
+879 21  9.5234
+879 22  6.7066
+879 23  4.6946
+879 24  3.4874
+879 25  1.5425
+879 26  0.6707
+879 27  0.2683
+879 28  0.0671
+# pixel 880
+880  1  0.7085
+880  2  2.3025
+880  3  6.1104
+880  4 10.9810
+880  5 17.1800
+880  6 20.8994
+880  7 22.0507
+880  8 23.2904
+880  9 24.7074
+880 10 25.2387
+880 11 25.2387
+880 12 25.0616
+880 13 24.5302
+880 14 24.2646
+880 15 23.0248
+880 16 21.7850
+880 17 20.4566
+880 18 19.0397
+880 19 17.4457
+880 20 15.9402
+880 21 12.5751
+880 22  8.8557
+880 23  6.1990
+880 24  4.6050
+880 25  2.0368
+880 26  0.8856
+880 27  0.3542
+880 28  0.0886
+# pixel 881
+881  1  0.6898
+881  2  2.2417
+881  3  5.9491
+881  4 10.6912
+881  5 16.7266
+881  6 20.3478
+881  7 21.4686
+881  8 22.6757
+881  9 24.0552
+881 10 24.5725
+881 11 24.5725
+881 12 24.4001
+881 13 23.8828
+881 14 23.6241
+881 15 22.4171
+881 16 21.2100
+881 17 19.9167
+881 18 18.5372
+881 19 16.9852
+881 20 15.5195
+881 21 12.2432
+881 22  8.6219
+881 23  6.0354
+881 24  4.4834
+881 25  1.9830
+881 26  0.8622
+881 27  0.3449
+881 28  0.0862
+# pixel 882
+882  1  0.7726
+882  2  2.5109
+882  3  6.6635
+882  4 11.9750
+882  5 18.7350
+882  6 22.7911
+882  7 24.0465
+882  8 25.3985
+882  9 26.9437
+882 10 27.5231
+882 11 27.5231
+882 12 27.3300
+882 13 26.7505
+882 14 26.4608
+882 15 25.1088
+882 16 23.7568
+882 17 22.3082
+882 18 20.7631
+882 19 19.0247
+882 20 17.3830
+882 21 13.7133
+882 22  9.6572
+882 23  6.7601
+882 24  5.0218
+882 25  2.2212
+882 26  0.9657
+882 27  0.3863
+882 28  0.0966
+# pixel 883
+883  1  0.7249
+883  2  2.3558
+883  3  6.2520
+883  4 11.2355
+883  5 17.5781
+883  6 21.3837
+883  7 22.5616
+883  8 23.8302
+883  9 25.2799
+883 10 25.8236
+883 11 25.8236
+883 12 25.6423
+883 13 25.0987
+883 14 24.8269
+883 15 23.5583
+883 16 22.2898
+883 17 20.9307
+883 18 19.4809
+883 19 17.8500
+883 20 16.3096
+883 21 12.8665
+883 22  9.0609
+883 23  6.3426
+883 24  4.7117
+883 25  2.0840
+883 26  0.9061
+883 27  0.3624
+883 28  0.0906
+# pixel 884
+884  1  0.7588
+884  2  2.4660
+884  3  6.5445
+884  4 11.7611
+884  5 18.4004
+884  6 22.3840
+884  7 23.6170
+884  8 24.9449
+884  9 26.4625
+884 10 27.0315
+884 11 27.0315
+884 12 26.8419
+884 13 26.2728
+884 14 25.9882
+884 15 24.6604
+884 16 23.3325
+884 17 21.9098
+884 18 20.3922
+884 19 18.6850
+884 20 17.0726
+884 21 13.4683
+884 22  9.4848
+884 23  6.6393
+884 24  4.9321
+884 25  2.1815
+884 26  0.9485
+884 27  0.3794
+884 28  0.0948
+# pixel 885
+885  1  0.7163
+885  2  2.3278
+885  3  6.1777
+885  4 11.1019
+885  5 17.3691
+885  6 21.1294
+885  7 22.2933
+885  8 23.5468
+885  9 24.9793
+885 10 25.5165
+885 11 25.5165
+885 12 25.3374
+885 13 24.8002
+885 14 24.5316
+885 15 23.2782
+885 16 22.0247
+885 17 20.6818
+885 18 19.2493
+885 19 17.6377
+885 20 16.1157
+885 21 12.7135
+885 22  8.9531
+885 23  6.2672
+885 24  4.6556
+885 25  2.0592
+885 26  0.8953
+885 27  0.3581
+885 28  0.0895
+# pixel 886
+886  1  0.7752
+886  2  2.5194
+886  3  6.6861
+886  4 12.0156
+886  5 18.7986
+886  6 22.8683
+886  7 24.1280
+886  8 25.4846
+886  9 27.0350
+886 10 27.6164
+886 11 27.6164
+886 12 27.4226
+886 13 26.8412
+886 14 26.5505
+886 15 25.1939
+886 16 23.8373
+886 17 22.3838
+886 18 20.8334
+886 19 19.0893
+886 20 17.4420
+886 21 13.7598
+886 22  9.6900
+886 23  6.7830
+886 24  5.0388
+886 25  2.2287
+886 26  0.9690
+886 27  0.3876
+886 28  0.0969
+# pixel 887
+887  1  0.7333
+887  2  2.3833
+887  3  6.3248
+887  4 11.3664
+887  5 17.7829
+887  6 21.6328
+887  7 22.8244
+887  8 24.1077
+887  9 25.5744
+887 10 26.1244
+887 11 26.1244
+887 12 25.9410
+887 13 25.3910
+887 14 25.1161
+887 15 23.8328
+887 16 22.5495
+887 17 21.1745
+887 18 19.7079
+887 19 18.0579
+887 20 16.4996
+887 21 13.0164
+887 22  9.1664
+887 23  6.4165
+887 24  4.7666
+887 25  2.1083
+887 26  0.9166
+887 27  0.3667
+887 28  0.0917
+# pixel 888
+888  1  0.7704
+888  2  2.5037
+888  3  6.6445
+888  4 11.9408
+888  5 18.6816
+888  6 22.7260
+888  7 23.9779
+888  8 25.3260
+888  9 26.8668
+888 10 27.4446
+888 11 27.4446
+888 12 27.2520
+888 13 26.6742
+888 14 26.3853
+888 15 25.0371
+888 16 23.6890
+888 17 22.2445
+888 18 20.7038
+888 19 18.9705
+888 20 17.3334
+888 21 13.6741
+888 22  9.6297
+888 23  6.7408
+888 24  5.0074
+888 25  2.2148
+888 26  0.9630
+888 27  0.3852
+888 28  0.0963
+# pixel 889
+889  1  0.7424
+889  2  2.4129
+889  3  6.4035
+889  4 11.5077
+889  5 18.0039
+889  6 21.9017
+889  7 23.1081
+889  8 24.4074
+889  9 25.8922
+889 10 26.4491
+889 11 26.4491
+889 12 26.2635
+889 13 25.7066
+889 14 25.4282
+889 15 24.1290
+889 16 22.8297
+889 17 21.4377
+889 18 19.9528
+889 19 18.2823
+889 20 16.7047
+889 21 13.1781
+889 22  9.2804
+889 23  6.4963
+889 24  4.8258
+889 25  2.1345
+889 26  0.9280
+889 27  0.3712
+889 28  0.0928
+# pixel 890
+890  1  0.7530
+890  2  2.4471
+890  3  6.4943
+890  4 11.6710
+890  5 18.2595
+890  6 22.2126
+890  7 23.4361
+890  8 24.7538
+890  9 26.2598
+890 10 26.8245
+890 11 26.8245
+890 12 26.6362
+890 13 26.0715
+890 14 25.7892
+890 15 24.4715
+890 16 23.1538
+890 17 21.7419
+890 18 20.2360
+890 19 18.5418
+890 20 16.9418
+890 21 13.3652
+890 22  9.4121
+890 23  6.5885
+890 24  4.8943
+890 25  2.1648
+890 26  0.9412
+890 27  0.3765
+890 28  0.0941
+# pixel 891
+891  1  0.7123
+891  2  2.3150
+891  3  6.1438
+891  4 11.0410
+891  5 17.2738
+891  6 21.0135
+891  7 22.1710
+891  8 23.4175
+891  9 24.8422
+891 10 25.3764
+891 11 25.3764
+891 12 25.1983
+891 13 24.6641
+891 14 24.3970
+891 15 23.1504
+891 16 21.9039
+891 17 20.5683
+891 18 19.1436
+891 19 17.5409
+891 20 16.0272
+891 21 12.6437
+891 22  8.9040
+891 23  6.2328
+891 24  4.6301
+891 25  2.0479
+891 26  0.8904
+891 27  0.3562
+891 28  0.0890
+# pixel 892
+892  1  0.7643
+892  2  2.4839
+892  3  6.5920
+892  4 11.8465
+892  5 18.5340
+892  6 22.5465
+892  7 23.7885
+892  8 25.1260
+892  9 26.6546
+892 10 27.2278
+892 11 27.2278
+892 12 27.0367
+892 13 26.4635
+892 14 26.1769
+892 15 24.8394
+892 16 23.5019
+892 17 22.0689
+892 18 20.5403
+892 19 18.8206
+892 20 17.1965
+892 21 13.5661
+892 22  9.5536
+892 23  6.6875
+892 24  4.9679
+892 25  2.1973
+892 26  0.9554
+892 27  0.3821
+892 28  0.0955
+# pixel 893
+893  1  0.7152
+893  2  2.3245
+893  3  6.1689
+893  4 11.0861
+893  5 17.3444
+893  6 21.0994
+893  7 22.2617
+893  8 23.5133
+893  9 24.9438
+893 10 25.4802
+893 11 25.4802
+893 12 25.3014
+893 13 24.7650
+893 14 24.4968
+893 15 23.2451
+893 16 21.9934
+893 17 20.6524
+893 18 19.2219
+893 19 17.6126
+893 20 16.0928
+893 21 12.6954
+893 22  8.9404
+893 23  6.2583
+893 24  4.6490
+893 25  2.0563
+893 26  0.8940
+893 27  0.3576
+893 28  0.0894
+# pixel 894
+894  1  0.7004
+894  2  2.2764
+894  3  6.0413
+894  4 10.8569
+894  5 16.9858
+894  6 20.6631
+894  7 21.8013
+894  8 23.0271
+894  9 24.4280
+894 10 24.9533
+894 11 24.9533
+894 12 24.7782
+894 13 24.2529
+894 14 23.9902
+894 15 22.7644
+894 16 21.5387
+894 17 20.2253
+894 18 18.8244
+894 19 17.2484
+894 20 15.7600
+894 21 12.4329
+894 22  8.7555
+894 23  6.1289
+894 24  4.5529
+894 25  2.0138
+894 26  0.8756
+894 27  0.3502
+894 28  0.0876
+# pixel 895
+895  1  0.6651
+895  2  2.1617
+895  3  5.7367
+895  4 10.3094
+895  5 16.1292
+895  6 19.6211
+895  7 20.7020
+895  8 21.8659
+895  9 23.1962
+895 10 23.6950
+895 11 23.6950
+895 12 23.5287
+895 13 23.0299
+895 14 22.7805
+895 15 21.6165
+895 16 20.4525
+895 17 19.2054
+895 18 17.8752
+895 19 16.3787
+895 20 14.9653
+895 21 11.8059
+895 22  8.3140
+895 23  5.8198
+895 24  4.3233
+895 25  1.9122
+895 26  0.8314
+895 27  0.3326
+895 28  0.0831
+# pixel 896
+896  1  0.7295
+896  2  2.3710
+896  3  6.2923
+896  4 11.3080
+896  5 17.6915
+896  6 21.5216
+896  7 22.7071
+896  8 23.9838
+896  9 25.4429
+896 10 25.9901
+896 11 25.9901
+896 12 25.8077
+896 13 25.2605
+896 14 24.9869
+896 15 23.7102
+896 16 22.4335
+896 17 21.0656
+896 18 19.6065
+896 19 17.9651
+896 20 16.4148
+896 21 12.9494
+896 22  9.1193
+896 23  6.3835
+896 24  4.7420
+896 25  2.0974
+896 26  0.9119
+896 27  0.3648
+896 28  0.0912
+# pixel 897
+897  1  0.7115
+897  2  2.3122
+897  3  6.1363
+897  4 11.0275
+897  5 17.2528
+897  6 20.9879
+897  7 22.1440
+897  8 23.3891
+897  9 24.8120
+897 10 25.3455
+897 11 25.3455
+897 12 25.1677
+897 13 24.6341
+897 14 24.3673
+897 15 23.1223
+897 16 21.8772
+897 17 20.5432
+897 18 19.1203
+897 19 17.5196
+897 20 16.0077
+897 21 12.6283
+897 22  8.8932
+897 23  6.2252
+897 24  4.6245
+897 25  2.0454
+897 26  0.8893
+897 27  0.3557
+897 28  0.0889
+# pixel 898
+898  1  0.7652
+898  2  2.4869
+898  3  6.5998
+898  4 11.8606
+898  5 18.5560
+898  6 22.5733
+898  7 23.8168
+898  8 25.1559
+898  9 26.6863
+898 10 27.2602
+898 11 27.2602
+898 12 27.0689
+898 13 26.4950
+898 14 26.2080
+898 15 24.8689
+898 16 23.5298
+898 17 22.0951
+898 18 20.5647
+898 19 18.8430
+898 20 17.2170
+898 21 13.5823
+898 22  9.5650
+898 23  6.6955
+898 24  4.9738
+898 25  2.1999
+898 26  0.9565
+898 27  0.3826
+898 28  0.0956
+# pixel 899
+899  1  0.6772
+899  2  2.2009
+899  3  5.8409
+899  4 10.4968
+899  5 16.4223
+899  6 19.9777
+899  7 21.0782
+899  8 22.2633
+899  9 23.6177
+899 10 24.1256
+899 11 24.1256
+899 12 23.9563
+899 13 23.4484
+899 14 23.1944
+899 15 22.0093
+899 16 20.8242
+899 17 19.5544
+899 18 18.2000
+899 19 16.6763
+899 20 15.2372
+899 21 12.0205
+899 22  8.4651
+899 23  5.9256
+899 24  4.4019
+899 25  1.9470
+899 26  0.8465
+899 27  0.3386
+899 28  0.0847
+# pixel 900
+900  1  0.7223
+900  2  2.3476
+900  3  6.2302
+900  4 11.1963
+900  5 17.5167
+900  6 21.3090
+900  7 22.4828
+900  8 23.7469
+900  9 25.1916
+900 10 25.7333
+900 11 25.7333
+900 12 25.5527
+900 13 25.0110
+900 14 24.7401
+900 15 23.4760
+900 16 22.2119
+900 17 20.8575
+900 18 19.4129
+900 19 17.7876
+900 20 16.2526
+900 21 12.8215
+900 22  9.0292
+900 23  6.3205
+900 24  4.6952
+900 25  2.0767
+900 26  0.9029
+900 27  0.3612
+900 28  0.0903
+# pixel 901
+901  1  0.6949
+901  2  2.2583
+901  3  5.9931
+901  4 10.7703
+901  5 16.8502
+901  6 20.4982
+901  7 21.6274
+901  8 22.8434
+901  9 24.2331
+901 10 24.7542
+901 11 24.7542
+901 12 24.5805
+901 13 24.0594
+901 14 23.7988
+901 15 22.5828
+901 16 21.3668
+901 17 20.0639
+901 18 18.6742
+901 19 17.1108
+901 20 15.6342
+901 21 12.3337
+901 22  8.6857
+901 23  6.0800
+901 24  4.5166
+901 25  1.9977
+901 26  0.8686
+901 27  0.3474
+901 28  0.0869
+# pixel 902
+902  1  0.6966
+902  2  2.2640
+902  3  6.0082
+902  4 10.7974
+902  5 16.8927
+902  6 20.5499
+902  7 21.6819
+902  8 22.9010
+902  9 24.2942
+902 10 24.8167
+902 11 24.8167
+902 12 24.6425
+902 13 24.1201
+902 14 23.8588
+902 15 22.6398
+902 16 21.4207
+902 17 20.1146
+902 18 18.7213
+902 19 17.1540
+902 20 15.6737
+902 21 12.3648
+902 22  8.7076
+902 23  6.0953
+902 24  4.5280
+902 25  2.0027
+902 26  0.8708
+902 27  0.3483
+902 28  0.0871
+# pixel 903
+903  1  0.6655
+903  2  2.1628
+903  3  5.7397
+903  4 10.3148
+903  5 16.1377
+903  6 19.6314
+903  7 20.7128
+903  8 21.8774
+903  9 23.2083
+903 10 23.7074
+903 11 23.7074
+903 12 23.5411
+903 13 23.0420
+903 14 22.7924
+903 15 21.6278
+903 16 20.4633
+903 17 19.2155
+903 18 17.8846
+903 19 16.3872
+903 20 14.9731
+903 21 11.8121
+903 22  8.3184
+903 23  5.8229
+903 24  4.3256
+903 25  1.9132
+903 26  0.8318
+903 27  0.3327
+903 28  0.0832
+# pixel 904
+904  1  0.7860
+904  2  2.5546
+904  3  6.7795
+904  4 12.1835
+904  5 19.0613
+904  6 23.1880
+904  7 24.4653
+904  8 25.8408
+904  9 27.4129
+904 10 28.0024
+904 11 28.0024
+904 12 27.8059
+904 13 27.2164
+904 14 26.9216
+904 15 25.5461
+904 16 24.1705
+904 17 22.6967
+904 18 21.1246
+904 19 19.3561
+904 20 17.6857
+904 21 13.9521
+904 22  9.8254
+904 23  6.8778
+904 24  5.1092
+904 25  2.2598
+904 26  0.9825
+904 27  0.3930
+904 28  0.0983
+# pixel 905
+905  1  0.7099
+905  2  2.3070
+905  3  6.1226
+905  4 11.0028
+905  5 17.2141
+905  6 20.9409
+905  7 22.0944
+905  8 23.3367
+905  9 24.7564
+905 10 25.2888
+905 11 25.2888
+905 12 25.1113
+905 13 24.5789
+905 14 24.3127
+905 15 23.0705
+905 16 21.8282
+905 17 20.4972
+905 18 19.0775
+905 19 17.4803
+905 20 15.9719
+905 21 12.6000
+905 22  8.8733
+905 23  6.2113
+905 24  4.6141
+905 25  2.0409
+905 26  0.8873
+905 27  0.3549
+905 28  0.0887
+# pixel 906
+906  1  0.8000
+906  2  2.6000
+906  3  6.9001
+906  4 12.4001
+906  5 19.4002
+906  6 23.6002
+906  7 24.9002
+906  8 26.3002
+906  9 27.9002
+906 10 28.5002
+906 11 28.5002
+906 12 28.3002
+906 13 27.7002
+906 14 27.4002
+906 15 26.0002
+906 16 24.6002
+906 17 23.1002
+906 18 21.5002
+906 19 19.7002
+906 20 18.0002
+906 21 14.2001
+906 22 10.0001
+906 23  7.0001
+906 24  5.2000
+906 25  2.3000
+906 26  1.0000
+906 27  0.4000
+906 28  0.1000
+# pixel 907
+907  1  0.6847
+907  2  2.2253
+907  3  5.9056
+907  4 10.6129
+907  5 16.6041
+907  6 20.1988
+907  7 21.3115
+907  8 22.5097
+907  9 23.8791
+907 10 24.3926
+907 11 24.3926
+907 12 24.2215
+907 13 23.7079
+907 14 23.4512
+907 15 22.2529
+907 16 21.0547
+907 17 19.7709
+907 18 18.4015
+907 19 16.8609
+907 20 15.4059
+907 21 12.1535
+907 22  8.5588
+907 23  5.9912
+907 24  4.4506
+907 25  1.9685
+907 26  0.8559
+907 27  0.3424
+907 28  0.0856
+# pixel 908
+908  1  0.7030
+908  2  2.2847
+908  3  6.0634
+908  4 10.8965
+908  5 17.0477
+908  6 20.7385
+908  7 21.8808
+908  8 23.1111
+908  9 24.5171
+908 10 25.0443
+908 11 25.0443
+908 12 24.8686
+908 13 24.3413
+908 14 24.0777
+908 15 22.8474
+908 16 21.6172
+908 17 20.2991
+908 18 18.8931
+908 19 17.3113
+908 20 15.8175
+908 21 12.4782
+908 22  8.7875
+908 23  6.1512
+908 24  4.5695
+908 25  2.0211
+908 26  0.8787
+908 27  0.3515
+908 28  0.0879
+# pixel 909
+909  1  0.7824
+909  2  2.5427
+909  3  6.7479
+909  4 12.1268
+909  5 18.9725
+909  6 23.0799
+909  7 24.3513
+909  8 25.7204
+909  9 27.2852
+909 10 27.8720
+909 11 27.8720
+909 12 27.6764
+909 13 27.0896
+909 14 26.7962
+909 15 25.4271
+909 16 24.0579
+909 17 22.5910
+909 18 21.0262
+909 19 19.2659
+909 20 17.6033
+909 21 13.8871
+909 22  9.7796
+909 23  6.8457
+909 24  5.0854
+909 25  2.2493
+909 26  0.9780
+909 27  0.3912
+909 28  0.0978
+# pixel 910
+910  1  0.7481
+910  2  2.4314
+910  3  6.4525
+910  4 11.5959
+910  5 18.1419
+910  6 22.0695
+910  7 23.2852
+910  8 24.5944
+910  9 26.0907
+910 10 26.6518
+910 11 26.6518
+910 12 26.4647
+910 13 25.9036
+910 14 25.6231
+910 15 24.3139
+910 16 23.0047
+910 17 21.6020
+910 18 20.1057
+910 19 18.4224
+910 20 16.8327
+910 21 13.2791
+910 22  9.3515
+910 23  6.5460
+910 24  4.8628
+910 25  2.1508
+910 26  0.9351
+910 27  0.3741
+910 28  0.0935
+# pixel 911
+911  1  0.6772
+911  2  2.2008
+911  3  5.8407
+911  4 10.4963
+911  5 16.4217
+911  6 19.9769
+911  7 21.0773
+911  8 22.2624
+911  9 23.6167
+911 10 24.1246
+911 11 24.1246
+911 12 23.9553
+911 13 23.4474
+911 14 23.1935
+911 15 22.0084
+911 16 20.8233
+911 17 19.5536
+911 18 18.1993
+911 19 16.6756
+911 20 15.2366
+911 21 12.0200
+911 22  8.4648
+911 23  5.9253
+911 24  4.4017
+911 25  1.9469
+911 26  0.8465
+911 27  0.3386
+911 28  0.0846
+# pixel 912
+912  1  0.7826
+912  2  2.5436
+912  3  6.7503
+912  4 12.1310
+912  5 18.9791
+912  6 23.0879
+912  7 24.3597
+912  8 25.7294
+912  9 27.2946
+912 10 27.8816
+912 11 27.8816
+912 12 27.6860
+912 13 27.0990
+912 14 26.8055
+912 15 25.4359
+912 16 24.0662
+912 17 22.5988
+912 18 21.0335
+912 19 19.2726
+912 20 17.6094
+912 21 13.8919
+912 22  9.7830
+912 23  6.8481
+912 24  5.0872
+912 25  2.2501
+912 26  0.9783
+912 27  0.3913
+912 28  0.0978
+# pixel 913
+913  1  0.6753
+913  2  2.1949
+913  3  5.8249
+913  4 10.4679
+913  5 16.3772
+913  6 19.9227
+913  7 21.0202
+913  8 22.2020
+913  9 23.5527
+913 10 24.0592
+913 11 24.0592
+913 12 23.8904
+913 13 23.3839
+913 14 23.1306
+913 15 21.9488
+913 16 20.7669
+913 17 19.5007
+913 18 18.1500
+913 19 16.6304
+913 20 15.1953
+913 21 11.9874
+913 22  8.4418
+913 23  5.9093
+913 24  4.3898
+913 25  1.9416
+913 26  0.8442
+913 27  0.3377
+913 28  0.0844
+# pixel 914
+914  1  0.7144
+914  2  2.3217
+914  3  6.1614
+914  4 11.0726
+914  5 17.3232
+914  6 21.0736
+914  7 22.2345
+914  8 23.4846
+914  9 24.9133
+914 10 25.4491
+914 11 25.4491
+914 12 25.2705
+914 13 24.7347
+914 14 24.4668
+914 15 23.2167
+914 16 21.9666
+914 17 20.6271
+914 18 19.1984
+914 19 17.5911
+914 20 16.0731
+914 21 12.6799
+914 22  8.9295
+914 23  6.2506
+914 24  4.6433
+914 25  2.0538
+914 26  0.8929
+914 27  0.3572
+914 28  0.0893
+# pixel 915
+915  1  0.8086
+915  2  2.6281
+915  3  6.9746
+915  4 12.5340
+915  5 19.6096
+915  6 23.8550
+915  7 25.1691
+915  8 26.5842
+915  9 28.2015
+915 10 28.8080
+915 11 28.8080
+915 12 28.6058
+915 13 27.9993
+915 14 27.6961
+915 15 26.2810
+915 16 24.8658
+915 17 23.3496
+915 18 21.7323
+915 19 19.9129
+915 20 18.1945
+915 21 14.3535
+915 22 10.1081
+915 23  7.0756
+915 24  5.2562
+915 25  2.3249
+915 26  1.0108
+915 27  0.4043
+915 28  0.1011
+# pixel 916
+916  1  0.6598
+916  2  2.1444
+916  3  5.6909
+916  4 10.2271
+916  5 16.0005
+916  6 19.4645
+916  7 20.5367
+916  8 21.6914
+916  9 23.0110
+916 10 23.5059
+916 11 23.5059
+916 12 23.3409
+916 13 22.8461
+916 14 22.5986
+916 15 21.4440
+916 16 20.2893
+916 17 19.0521
+916 18 17.7325
+916 19 16.2479
+916 20 14.8458
+916 21 11.7117
+916 22  8.2477
+916 23  5.7734
+916 24  4.2888
+916 25  1.8970
+916 26  0.8248
+916 27  0.3299
+916 28  0.0825
+# pixel 917
+917  1  0.7524
+917  2  2.4454
+917  3  6.4897
+917  4 11.6626
+917  5 18.2464
+917  6 22.1967
+917  7 23.4194
+917  8 24.7361
+917  9 26.2410
+917 10 26.8053
+917 11 26.8053
+917 12 26.6172
+917 13 26.0529
+917 14 25.7707
+917 15 24.4539
+917 16 23.1372
+917 17 21.7264
+917 18 20.2215
+917 19 18.5286
+917 20 16.9297
+917 21 13.3556
+917 22  9.4054
+917 23  6.5838
+917 24  4.8908
+917 25  2.1632
+917 26  0.9405
+917 27  0.3762
+917 28  0.0941
+# pixel 918
+918  1  0.6810
+918  2  2.2131
+918  3  5.8733
+918  4 10.5550
+918  5 16.5135
+918  6 20.0885
+918  7 21.1951
+918  8 22.3868
+918  9 23.7487
+918 10 24.2595
+918 11 24.2595
+918 12 24.0892
+918 13 23.5785
+918 14 23.3231
+918 15 22.1314
+918 16 20.9397
+918 17 19.6629
+918 18 18.3010
+918 19 16.7688
+918 20 15.3218
+918 21 12.0872
+918 22  8.5121
+918 23  5.9585
+918 24  4.4263
+918 25  1.9578
+918 26  0.8512
+918 27  0.3405
+918 28  0.0851
+# pixel 919
+919  1  0.7363
+919  2  2.3929
+919  3  6.3504
+919  4 11.4123
+919  5 17.8547
+919  6 21.7201
+919  7 22.9166
+919  8 24.2050
+919  9 25.6776
+919 10 26.2298
+919 11 26.2298
+919 12 26.0457
+919 13 25.4935
+919 14 25.2174
+919 15 23.9289
+919 16 22.6405
+919 17 21.2599
+919 18 19.7874
+919 19 18.1308
+919 20 16.5662
+919 21 13.0689
+919 22  9.2034
+919 23  6.4424
+919 24  4.7858
+919 25  2.1168
+919 26  0.9203
+919 27  0.3681
+919 28  0.0920
+# pixel 920
+920  1  0.7127
+920  2  2.3162
+920  3  6.1469
+920  4 11.0466
+920  5 17.2825
+920  6 21.0241
+920  7 22.1822
+920  8 23.4294
+920  9 24.8547
+920 10 25.3893
+920 11 25.3893
+920 12 25.2111
+920 13 24.6766
+920 14 24.4093
+920 15 23.1621
+920 16 21.9149
+920 17 20.5787
+920 18 19.1533
+920 19 17.5498
+920 20 16.0353
+920 21 12.6501
+920 22  8.9085
+920 23  6.2360
+920 24  4.6324
+920 25  2.0490
+920 26  0.8909
+920 27  0.3563
+920 28  0.0891
+# pixel 921
+921  1  0.8365
+921  2  2.7186
+921  3  7.2148
+921  4 12.9657
+921  5 20.2851
+921  6 24.6767
+921  7 26.0360
+921  8 27.4999
+921  9 29.1729
+921 10 29.8002
+921 11 29.8002
+921 12 29.5911
+921 13 28.9637
+921 14 28.6501
+921 15 27.1862
+921 16 25.7223
+921 17 24.1539
+921 18 22.4809
+921 19 20.5988
+921 20 18.8212
+921 21 14.8478
+921 22 10.4562
+921 23  7.3194
+921 24  5.4372
+921 25  2.4049
+921 26  1.0456
+921 27  0.4182
+921 28  0.1046
+# pixel 922
+922  1  0.6919
+922  2  2.2487
+922  3  5.9678
+922  4 10.7247
+922  5 16.7789
+922  6 20.4115
+922  7 21.5358
+922  8 22.7467
+922  9 24.1305
+922 10 24.6494
+922 11 24.6494
+922 12 24.4765
+922 13 23.9575
+922 14 23.6981
+922 15 22.4872
+922 16 21.2764
+922 17 19.9790
+922 18 18.5952
+922 19 17.0384
+922 20 15.5681
+922 21 12.2815
+922 22  8.6489
+922 23  6.0542
+922 24  4.4974
+922 25  1.9893
+922 26  0.8649
+922 27  0.3460
+922 28  0.0865
+# pixel 923
+923  1  0.7109
+923  2  2.3105
+923  3  6.1318
+923  4 11.0194
+923  5 17.2401
+923  6 20.9725
+923  7 22.1278
+923  8 23.3719
+923  9 24.7938
+923 10 25.3270
+923 11 25.3270
+923 12 25.1492
+923 13 24.6160
+923 14 24.3494
+923 15 23.1053
+923 16 21.8612
+923 17 20.5282
+923 18 19.1063
+923 19 17.5067
+923 20 15.9960
+923 21 12.6190
+923 22  8.8866
+923 23  6.2207
+923 24  4.6211
+923 25  2.0439
+923 26  0.8887
+923 27  0.3555
+923 28  0.0889
+# pixel 924
+924  1  0.6389
+924  2  2.0765
+924  3  5.5108
+924  4  9.9034
+924  5 15.4941
+924  6 18.8485
+924  7 19.8868
+924  8 21.0049
+924  9 22.2828
+924 10 22.7620
+924 11 22.7620
+924 12 22.6022
+924 13 22.1230
+924 14 21.8834
+924 15 20.7653
+924 16 19.6472
+924 17 18.4492
+924 18 17.1713
+924 19 15.7337
+924 20 14.3760
+924 21 11.3410
+924 22  7.9866
+924 23  5.5907
+924 24  4.1531
+924 25  1.8369
+924 26  0.7987
+924 27  0.3195
+924 28  0.0799
+# pixel 925
+925  1  0.7696
+925  2  2.5011
+925  3  6.6374
+925  4 11.9282
+925  5 18.6618
+925  6 22.7020
+925  7 23.9525
+925  8 25.2992
+925  9 26.8383
+925 10 27.4155
+925 11 27.4155
+925 12 27.2231
+925 13 26.6460
+925 14 26.3574
+925 15 25.0106
+925 16 23.6639
+925 17 22.2210
+925 18 20.6819
+925 19 18.9504
+925 20 17.3151
+925 21 13.6597
+925 22  9.6195
+925 23  6.7336
+925 24  5.0021
+925 25  2.2125
+925 26  0.9619
+925 27  0.3848
+925 28  0.0962
+# pixel 926
+926  1  0.7442
+926  2  2.4185
+926  3  6.4184
+926  4 11.5346
+926  5 18.0460
+926  6 21.9529
+926  7 23.1621
+926  8 24.4644
+926  9 25.9528
+926 10 26.5109
+926 11 26.5109
+926 12 26.3248
+926 13 25.7667
+926 14 25.4877
+926 15 24.1854
+926 16 22.8831
+926 17 21.4878
+926 18 19.9994
+926 19 18.3251
+926 20 16.7437
+926 21 13.2089
+926 22  9.3021
+926 23  6.5114
+926 24  4.8371
+926 25  2.1395
+926 26  0.9302
+926 27  0.3721
+926 28  0.0930
+# pixel 927
+927  1  0.6689
+927  2  2.1739
+927  3  5.7693
+927  4 10.3681
+927  5 16.2210
+927  6 19.7327
+927  7 20.8197
+927  8 21.9903
+927  9 23.3281
+927 10 23.8298
+927 11 23.8298
+927 12 23.6626
+927 13 23.1609
+927 14 22.9101
+927 15 21.7395
+927 16 20.5689
+927 17 19.3147
+927 18 17.9769
+927 19 16.4718
+927 20 15.0504
+927 21 11.8731
+927 22  8.3613
+927 23  5.8529
+927 24  4.3479
+927 25  1.9231
+927 26  0.8361
+927 27  0.3345
+927 28  0.0836
+# pixel 928
+928  1  0.8095
+928  2  2.6308
+928  3  6.9817
+928  4 12.5468
+928  5 19.6296
+928  6 23.8793
+928  7 25.1947
+928  8 26.6113
+928  9 28.2302
+928 10 28.8373
+928 11 28.8373
+928 12 28.6349
+928 13 28.0278
+928 14 27.7243
+928 15 26.3077
+928 16 24.8911
+928 17 23.3734
+928 18 21.7545
+928 19 19.9332
+928 20 18.2130
+928 21 14.3681
+928 22 10.1184
+928 23  7.0828
+928 24  5.2615
+928 25  2.3272
+928 26  1.0118
+928 27  0.4047
+928 28  0.1012
+# pixel 929
+929  1  0.6395
+929  2  2.0784
+929  3  5.5157
+929  4  9.9122
+929  5 15.5078
+929  6 18.8652
+929  7 19.9044
+929  8 21.0235
+929  9 22.3025
+929 10 22.7821
+929 11 22.7821
+929 12 22.6222
+929 13 22.1426
+929 14 21.9028
+929 15 20.7837
+929 16 19.6645
+929 17 18.4655
+929 18 17.1865
+929 19 15.7476
+929 20 14.3887
+929 21 11.3511
+929 22  7.9937
+929 23  5.5956
+929 24  4.1567
+929 25  1.8386
+929 26  0.7994
+929 27  0.3197
+929 28  0.0799
+# pixel 930
+930  1  0.7759
+930  2  2.5217
+930  3  6.6923
+930  4 12.0267
+930  5 18.8159
+930  6 22.8895
+930  7 24.1504
+930  8 25.5082
+930  9 27.0600
+930 10 27.6420
+930 11 27.6420
+930 12 27.4480
+930 13 26.8661
+930 14 26.5751
+930 15 25.2172
+930 16 23.8594
+930 17 22.4046
+930 18 20.8527
+930 19 19.1069
+930 20 17.4581
+930 21 13.7725
+930 22  9.6989
+930 23  6.7893
+930 24  5.0434
+930 25  2.2308
+930 26  0.9699
+930 27  0.3880
+930 28  0.0970
+# pixel 931
+931  1  0.7142
+931  2  2.3212
+931  3  6.1602
+931  4 11.0705
+931  5 17.3201
+931  6 21.0698
+931  7 22.2304
+931  8 23.4803
+931  9 24.9087
+931 10 25.4444
+931 11 25.4444
+931 12 25.2658
+931 13 24.7302
+931 14 24.4623
+931 15 23.2124
+931 16 21.9625
+931 17 20.6234
+931 18 19.1949
+931 19 17.5879
+931 20 16.0701
+931 21 12.6776
+931 22  8.9279
+931 23  6.2495
+931 24  4.6425
+931 25  2.0534
+931 26  0.8928
+931 27  0.3571
+931 28  0.0893
+# pixel 932
+932  1  0.7715
+932  2  2.5073
+932  3  6.6541
+932  4 11.9581
+932  5 18.7087
+932  6 22.7590
+932  7 24.0127
+932  8 25.3628
+932  9 26.9058
+932 10 27.4844
+932 11 27.4844
+932 12 27.2915
+932 13 26.7129
+932 14 26.4236
+932 15 25.0735
+932 16 23.7234
+932 17 22.2768
+932 18 20.7338
+932 19 18.9980
+932 20 17.3586
+932 21 13.6940
+932 22  9.6436
+932 23  6.7505
+932 24  5.0147
+932 25  2.2180
+932 26  0.9644
+932 27  0.3857
+932 28  0.0964
+# pixel 933
+933  1  0.7750
+933  2  2.5189
+933  3  6.6848
+933  4 12.0132
+933  5 18.7949
+933  6 22.8638
+933  7 24.1233
+933  8 25.4796
+933  9 27.0297
+933 10 27.6110
+933 11 27.6110
+933 12 27.4172
+933 13 26.8359
+933 14 26.5453
+933 15 25.1890
+933 16 23.8326
+933 17 22.3794
+933 18 20.8293
+933 19 19.0855
+933 20 17.4385
+933 21 13.7571
+933 22  9.6881
+933 23  6.7816
+933 24  5.0378
+933 25  2.2283
+933 26  0.9688
+933 27  0.3875
+933 28  0.0969
+# pixel 934
+934  1  0.8769
+934  2  2.8501
+934  3  7.5636
+934  4 13.5926
+934  5 21.2658
+934  6 25.8698
+934  7 27.2948
+934  8 28.8294
+934  9 30.5833
+934 10 31.2410
+934 11 31.2410
+934 12 31.0218
+934 13 30.3641
+934 14 30.0352
+934 15 28.5006
+934 16 26.9659
+934 17 25.3217
+934 18 23.5678
+934 19 21.5947
+934 20 19.7312
+934 21 15.5657
+934 22 10.9618
+934 23  7.6732
+934 24  5.7001
+934 25  2.5212
+934 26  1.0962
+934 27  0.4385
+934 28  0.1096
+# pixel 935
+935  1  0.7109
+935  2  2.3103
+935  3  6.1313
+935  4 11.0186
+935  5 17.2387
+935  6 20.9708
+935  7 22.1260
+935  8 23.3700
+935  9 24.7918
+935 10 25.3249
+935 11 25.3249
+935 12 25.1472
+935 13 24.6141
+935 14 24.3475
+935 15 23.1035
+935 16 21.8594
+935 17 20.5265
+935 18 19.1048
+935 19 17.5053
+935 20 15.9947
+935 21 12.6180
+935 22  8.8859
+935 23  6.2202
+935 24  4.6207
+935 25  2.0438
+935 26  0.8886
+935 27  0.3554
+935 28  0.0889
+# pixel 936
+936  1  0.6670
+936  2  2.1678
+936  3  5.7529
+936  4 10.3386
+936  5 16.1749
+936  6 19.6767
+936  7 20.7606
+936  8 21.9278
+936  9 23.2618
+936 10 23.7621
+936 11 23.7621
+936 12 23.5953
+936 13 23.0951
+936 14 22.8450
+936 15 21.6777
+936 16 20.5104
+936 17 19.2598
+936 18 17.9258
+936 19 16.4250
+936 20 15.0076
+936 21 11.8394
+936 22  8.3376
+936 23  5.8363
+936 24  4.3355
+936 25  1.9176
+936 26  0.8338
+936 27  0.3335
+936 28  0.0834
+# pixel 937
+937  1  0.6560
+937  2  2.1321
+937  3  5.6583
+937  4 10.1685
+937  5 15.9088
+937  6 19.3530
+937  7 20.4190
+937  8 21.5671
+937  9 22.8791
+937 10 23.3712
+937 11 23.3712
+937 12 23.2072
+937 13 22.7151
+937 14 22.4691
+937 15 21.3211
+937 16 20.1730
+937 17 18.9429
+937 18 17.6309
+937 19 16.1548
+937 20 14.7607
+937 21 11.6446
+937 22  8.2004
+937 23  5.7403
+937 24  4.2642
+937 25  1.8861
+937 26  0.8200
+937 27  0.3280
+937 28  0.0820
+# pixel 938
+938  1  0.7425
+938  2  2.4131
+938  3  6.4041
+938  4 11.5088
+938  5 18.0057
+938  6 21.9038
+938  7 23.1104
+938  8 24.4098
+938  9 25.8948
+938 10 26.4516
+938 11 26.4516
+938 12 26.2660
+938 13 25.7091
+938 14 25.4307
+938 15 24.1313
+938 16 22.8319
+938 17 21.4397
+938 18 19.9547
+938 19 18.2841
+938 20 16.7063
+938 21 13.1794
+938 22  9.2813
+938 23  6.4969
+938 24  4.8263
+938 25  2.1347
+938 26  0.9281
+938 27  0.3713
+938 28  0.0928
+# pixel 939
+939  1  0.8056
+939  2  2.6182
+939  3  6.9484
+939  4 12.4870
+939  5 19.5361
+939  6 23.7655
+939  7 25.0746
+939  8 26.4844
+939  9 28.0957
+939 10 28.6999
+939 11 28.6999
+939 12 28.4985
+939 13 27.8943
+939 14 27.5922
+939 15 26.1823
+939 16 24.7725
+939 17 23.2620
+939 18 21.6508
+939 19 19.8382
+939 20 18.1262
+939 21 14.2996
+939 22 10.0701
+939 23  7.0491
+939 24  5.2365
+939 25  2.3161
+939 26  1.0070
+939 27  0.4028
+939 28  0.1007
+# pixel 940
+940  1  0.7308
+940  2  2.3751
+940  3  6.3030
+940  4 11.3272
+940  5 17.7215
+940  6 21.5582
+940  7 22.7457
+940  8 24.0245
+940  9 25.4861
+940 10 26.0342
+940 11 26.0342
+940 12 25.8515
+940 13 25.3034
+940 14 25.0294
+940 15 23.7505
+940 16 22.4716
+940 17 21.1014
+940 18 19.6398
+940 19 17.9956
+940 20 16.4427
+940 21 12.9714
+940 22  9.1348
+940 23  6.3944
+940 24  4.7501
+940 25  2.1010
+940 26  0.9135
+940 27  0.3654
+940 28  0.0913
+# pixel 941
+941  1  0.6962
+941  2  2.2625
+941  3  6.0043
+941  4 10.7903
+941  5 16.8817
+941  6 20.5365
+941  7 21.6677
+941  8 22.8860
+941  9 24.2783
+941 10 24.8004
+941 11 24.8004
+941 12 24.6264
+941 13 24.1042
+941 14 23.8432
+941 15 22.6249
+941 16 21.4067
+941 17 20.1014
+941 18 18.7091
+941 19 17.1427
+941 20 15.6634
+941 21 12.3567
+941 22  8.7019
+941 23  6.0913
+941 24  4.5250
+941 25  2.0014
+941 26  0.8702
+941 27  0.3481
+941 28  0.0870
+# pixel 942
+942  1  0.7629
+942  2  2.4795
+942  3  6.5802
+942  4 11.8253
+942  5 18.5009
+942  6 22.5062
+942  7 23.7460
+942  8 25.0811
+942  9 26.6069
+942 10 27.1791
+942 11 27.1791
+942 12 26.9884
+942 13 26.4162
+942 14 26.1301
+942 15 24.7950
+942 16 23.4599
+942 17 22.0294
+942 18 20.5036
+942 19 18.7870
+942 20 17.1658
+942 21 13.5419
+942 22  9.5365
+942 23  6.6756
+942 24  4.9590
+942 25  2.1934
+942 26  0.9537
+942 27  0.3815
+942 28  0.0954
+# pixel 943
+943  1  0.7459
+943  2  2.4241
+943  3  6.4333
+943  4 11.5613
+943  5 18.0878
+943  6 22.0037
+943  7 23.2158
+943  8 24.5211
+943  9 26.0129
+943 10 26.5723
+943 11 26.5723
+943 12 26.3858
+943 13 25.8264
+943 14 25.5467
+943 15 24.2414
+943 16 22.9361
+943 17 21.5376
+943 18 20.0458
+943 19 18.3675
+943 20 16.7825
+943 21 13.2395
+943 22  9.3236
+943 23  6.5265
+943 24  4.8483
+943 25  2.1444
+943 26  0.9324
+943 27  0.3729
+943 28  0.0932
+# pixel 944
+944  1  0.6564
+944  2  2.1334
+944  3  5.6618
+944  4 10.1749
+944  5 15.9188
+944  6 19.3651
+944  7 20.4319
+944  8 21.5806
+944  9 22.8935
+944 10 23.3859
+944 11 23.3859
+944 12 23.2217
+944 13 22.7294
+944 14 22.4832
+944 15 21.3345
+944 16 20.1857
+944 17 18.9549
+944 18 17.6420
+944 19 16.1650
+944 20 14.7700
+944 21 11.6519
+944 22  8.2056
+944 23  5.7439
+944 24  4.2669
+944 25  1.8873
+944 26  0.8206
+944 27  0.3282
+944 28  0.0821
+# pixel 945
+945  1  0.6911
+945  2  2.2462
+945  3  5.9611
+945  4 10.7127
+945  5 16.7601
+945  6 20.3886
+945  7 21.5117
+945  8 22.7212
+945  9 24.1035
+945 10 24.6218
+945 11 24.6218
+945 12 24.4490
+945 13 23.9307
+945 14 23.6715
+945 15 22.4620
+945 16 21.2525
+945 17 19.9566
+945 18 18.5744
+945 19 17.0193
+945 20 15.5506
+945 21 12.2677
+945 22  8.6392
+945 23  6.0475
+945 24  4.4924
+945 25  1.9870
+945 26  0.8639
+945 27  0.3456
+945 28  0.0864
+# pixel 946
+946  1  0.7025
+946  2  2.2831
+946  3  6.0589
+946  4 10.8885
+946  5 17.0352
+946  6 20.7232
+946  7 21.8648
+946  8 23.0941
+946  9 24.4991
+946 10 25.0259
+946 11 25.0259
+946 12 24.8503
+946 13 24.3234
+946 14 24.0600
+946 15 22.8307
+946 16 21.6013
+946 17 20.2842
+946 18 18.8792
+946 19 17.2986
+946 20 15.8059
+946 21 12.4691
+946 22  8.7810
+946 23  6.1467
+946 24  4.5661
+946 25  2.0196
+946 26  0.8781
+946 27  0.3512
+946 28  0.0878
+# pixel 947
+947  1  0.7222
+947  2  2.3471
+947  3  6.2288
+947  4 11.1937
+947  5 17.5128
+947  6 21.3042
+947  7 22.4778
+947  8 23.7416
+947  9 25.1859
+947 10 25.7276
+947 11 25.7276
+947 12 25.5470
+947 13 25.0054
+947 14 24.7346
+947 15 23.4708
+947 16 22.2070
+947 17 20.8529
+947 18 19.4085
+947 19 17.7836
+947 20 16.2490
+947 21 12.8186
+947 22  9.0272
+947 23  6.3191
+947 24  4.6942
+947 25  2.0763
+947 26  0.9027
+947 27  0.3611
+947 28  0.0903
+# pixel 948
+948  1  0.7360
+948  2  2.3920
+948  3  6.3481
+948  4 11.4082
+948  5 17.8483
+948  6 21.7123
+948  7 22.9083
+948  8 24.1963
+948  9 25.6684
+948 10 26.2204
+948 11 26.2204
+948 12 26.0364
+948 13 25.4844
+948 14 25.2084
+948 15 23.9203
+948 16 22.6323
+948 17 21.2523
+948 18 19.7803
+948 19 18.1243
+948 20 16.5602
+948 21 13.0642
+948 22  9.2001
+948 23  6.4401
+948 24  4.7841
+948 25  2.1160
+948 26  0.9200
+948 27  0.3680
+948 28  0.0920
+# pixel 949
+949  1  0.8224
+949  2  2.6730
+949  3  7.0936
+949  4 12.7480
+949  5 19.9444
+949  6 24.2623
+949  7 25.5987
+949  8 27.0380
+949  9 28.6829
+949 10 29.2998
+949 11 29.2998
+949 12 29.0942
+949 13 28.4773
+949 14 28.1689
+949 15 26.7296
+949 16 25.2903
+949 17 23.7482
+949 18 22.1033
+949 19 20.2528
+949 20 18.5051
+949 21 14.5985
+949 22 10.2806
+949 23  7.1964
+949 24  5.3459
+949 25  2.3645
+949 26  1.0281
+949 27  0.4112
+949 28  0.1028
+# pixel 950
+950  1  0.8275
+950  2  2.6895
+950  3  7.1375
+950  4 12.8268
+950  5 20.0677
+950  6 24.4122
+950  7 25.7569
+950  8 27.2051
+950  9 28.8602
+950 10 29.4808
+950 11 29.4808
+950 12 29.2740
+950 13 28.6533
+950 14 28.3430
+950 15 26.8948
+950 16 25.4466
+950 17 23.8950
+950 18 22.2399
+950 19 20.3780
+950 20 18.6195
+950 21 14.6887
+950 22 10.3442
+950 23  7.2409
+950 24  5.3790
+950 25  2.3792
+950 26  1.0344
+950 27  0.4138
+950 28  0.1034
+# pixel 951
+951  1  0.7387
+951  2  2.4009
+951  3  6.3717
+951  4 11.4506
+951  5 17.9146
+951  6 21.7930
+951  7 22.9934
+951  8 24.2863
+951  9 25.7637
+951 10 26.3178
+951 11 26.3178
+951 12 26.1331
+951 13 25.5791
+951 14 25.3020
+951 15 24.0092
+951 16 22.7164
+951 17 21.3313
+951 18 19.8538
+951 19 18.1916
+951 20 16.6218
+951 21 13.1127
+951 22  9.2343
+951 23  6.4640
+951 24  4.8018
+951 25  2.1239
+951 26  0.9234
+951 27  0.3694
+951 28  0.0923
+# pixel 952
+952  1  0.5776
+952  2  1.8773
+952  3  4.9821
+952  4  8.9533
+952  5 14.0076
+952  6 17.0401
+952  7 17.9788
+952  8 18.9896
+952  9 20.1449
+952 10 20.5781
+952 11 20.5781
+952 12 20.4337
+952 13 20.0005
+952 14 19.7839
+952 15 18.7730
+952 16 17.7622
+952 17 16.6791
+952 18 15.5239
+952 19 14.2242
+952 20 12.9967
+952 21 10.2530
+952 22  7.2204
+952 23  5.0543
+952 24  3.7546
+952 25  1.6607
+952 26  0.7220
+952 27  0.2888
+952 28  0.0722
+# pixel 953
+953  1  0.7475
+953  2  2.4293
+953  3  6.4470
+953  4 11.5859
+953  5 18.1264
+953  6 22.0506
+953  7 23.2653
+953  8 24.5734
+953  9 26.0683
+953 10 26.6289
+953 11 26.6289
+953 12 26.4421
+953 13 25.8814
+953 14 25.6011
+953 15 24.2931
+953 16 22.9850
+953 17 21.5834
+953 18 20.0885
+953 19 18.4067
+953 20 16.8183
+953 21 13.2677
+953 22  9.3435
+953 23  6.5404
+953 24  4.8586
+953 25  2.1490
+953 26  0.9343
+953 27  0.3737
+953 28  0.0934
+# pixel 954
+954  1  0.7269
+954  2  2.3625
+954  3  6.2697
+954  4 11.2672
+954  5 17.6278
+954  6 21.4441
+954  7 22.6253
+954  8 23.8974
+954  9 25.3513
+954 10 25.8965
+954 11 25.8965
+954 12 25.7147
+954 13 25.1695
+954 14 24.8970
+954 15 23.6248
+954 16 22.3527
+954 17 20.9898
+954 18 19.5359
+954 19 17.9004
+954 20 16.3557
+954 21 12.9028
+954 22  9.0865
+954 23  6.3605
+954 24  4.7250
+954 25  2.0899
+954 26  0.9086
+954 27  0.3635
+954 28  0.0909
+# pixel 955
+955  1  0.6928
+955  2  2.2516
+955  3  5.9755
+955  4 10.7385
+955  5 16.8005
+955  6 20.4378
+955  7 21.5636
+955  8 22.7760
+955  9 24.1616
+955 10 24.6812
+955 11 24.6812
+955 12 24.5080
+955 13 23.9884
+955 14 23.7286
+955 15 22.5162
+955 16 21.3038
+955 17 20.0048
+955 18 18.6192
+955 19 17.0603
+955 20 15.5881
+955 21 12.2973
+955 22  8.6601
+955 23  6.0621
+955 24  4.5032
+955 25  1.9918
+955 26  0.8660
+955 27  0.3464
+955 28  0.0866
+# pixel 956
+956  1  0.6763
+956  2  2.1980
+956  3  5.8333
+956  4 10.4830
+956  5 16.4008
+956  6 19.9515
+956  7 21.0505
+956  8 22.2340
+956  9 23.5867
+956 10 24.0939
+956 11 24.0939
+956 12 23.9249
+956 13 23.4176
+956 14 23.1640
+956 15 21.9804
+956 16 20.7969
+956 17 19.5288
+956 18 18.1761
+956 19 16.6544
+956 20 15.2172
+956 21 12.0047
+956 22  8.4540
+956 23  5.9178
+956 24  4.3961
+956 25  1.9444
+956 26  0.8454
+956 27  0.3382
+956 28  0.0845
+# pixel 957
+957  1  0.7293
+957  2  2.3701
+957  3  6.2900
+957  4 11.3037
+957  5 17.6848
+957  6 21.5135
+957  7 22.6985
+957  8 23.9747
+957  9 25.4333
+957 10 25.9802
+957 11 25.9802
+957 12 25.7979
+957 13 25.2510
+957 14 24.9775
+957 15 23.7013
+957 16 22.4250
+957 17 21.0577
+957 18 19.5991
+957 19 17.9583
+957 20 16.4086
+957 21 12.9445
+957 22  9.1159
+957 23  6.3811
+957 24  4.7403
+957 25  2.0967
+957 26  0.9116
+957 27  0.3646
+957 28  0.0912
+# pixel 958
+958  1  0.7377
+958  2  2.3975
+958  3  6.3626
+958  4 11.4342
+958  5 17.8891
+958  6 21.7620
+958  7 22.9607
+958  8 24.2517
+958  9 25.7271
+958 10 26.2803
+958 11 26.2803
+958 12 26.0959
+958 13 25.5426
+958 14 25.2660
+958 15 23.9750
+958 16 22.6841
+958 17 21.3009
+958 18 19.8255
+958 19 18.1657
+958 20 16.5981
+958 21 13.0941
+958 22  9.2212
+958 23  6.4548
+958 24  4.7950
+958 25  2.1209
+958 26  0.9221
+958 27  0.3688
+958 28  0.0922
+# pixel 959
+959  1  0.7073
+959  2  2.2987
+959  3  6.1004
+959  4 10.9630
+959  5 17.1517
+959  6 20.8650
+959  7 22.0144
+959  8 23.2521
+959  9 24.6667
+959 10 25.1972
+959 11 25.1972
+959 12 25.0203
+959 13 24.4899
+959 14 24.2246
+959 15 22.9869
+959 16 21.7491
+959 17 20.4230
+959 18 19.0084
+959 19 17.4170
+959 20 15.9140
+959 21 12.5544
+959 22  8.8411
+959 23  6.1888
+959 24  4.5974
+959 25  2.0335
+959 26  0.8841
+959 27  0.3536
+959 28  0.0884
+# pixel 960
+960  1  0.6395
+960  2  2.0784
+960  3  5.5158
+960  4  9.9124
+960  5 15.5081
+960  6 18.8655
+960  7 19.9047
+960  8 21.0238
+960  9 22.3029
+960 10 22.7825
+960 11 22.7825
+960 12 22.6226
+960 13 22.1430
+960 14 21.9032
+960 15 20.7840
+960 16 19.6649
+960 17 18.4658
+960 18 17.1868
+960 19 15.7479
+960 20 14.3889
+960 21 11.3513
+960 22  7.9939
+960 23  5.5957
+960 24  4.1568
+960 25  1.8386
+960 26  0.7994
+960 27  0.3198
+960 28  0.0799
+# pixel 961
+961  1  0.7342
+961  2  2.3863
+961  3  6.3328
+961  4 11.3807
+961  5 17.8053
+961  6 21.6601
+961  7 22.8532
+961  8 24.1381
+961  9 25.6066
+961 10 26.1573
+961 11 26.1573
+961 12 25.9737
+961 13 25.4231
+961 14 25.1477
+961 15 23.8628
+961 16 22.5779
+961 17 21.2012
+961 18 19.7327
+961 19 18.0807
+961 20 16.5204
+961 21 13.0328
+961 22  9.1780
+961 23  6.4246
+961 24  4.7726
+961 25  2.1109
+961 26  0.9178
+961 27  0.3671
+961 28  0.0918
+# pixel 962
+962  1  0.5922
+962  2  1.9246
+962  3  5.1075
+962  4  9.1787
+962  5 14.3602
+962  6 17.4692
+962  7 18.4315
+962  8 19.4678
+962  9 20.6521
+962 10 21.0962
+962 11 21.0962
+962 12 20.9482
+962 13 20.5041
+962 14 20.2820
+962 15 19.2457
+962 16 18.2094
+962 17 17.0991
+962 18 15.9147
+962 19 14.5823
+962 20 13.3239
+962 21 10.5111
+962 22  7.4022
+962 23  5.1815
+962 24  3.8491
+962 25  1.7025
+962 26  0.7402
+962 27  0.2961
+962 28  0.0740
+# pixel 963
+963  1  0.8314
+963  2  2.7021
+963  3  7.1710
+963  4 12.8870
+963  5 20.1619
+963  6 24.5268
+963  7 25.8778
+963  8 27.3328
+963  9 28.9957
+963 10 29.6192
+963 11 29.6192
+963 12 29.4114
+963 13 28.7878
+963 14 28.4760
+963 15 27.0210
+963 16 25.5661
+963 17 24.0072
+963 18 22.3443
+963 19 20.4736
+963 20 18.7069
+963 21 14.7576
+963 22 10.3927
+963 23  7.2749
+963 24  5.4042
+963 25  2.3903
+963 26  1.0393
+963 27  0.4157
+963 28  0.1039
+# pixel 964
+964  1  0.6856
+964  2  2.2281
+964  3  5.9130
+964  4 10.6263
+964  5 16.6250
+964  6 20.2242
+964  7 21.3383
+964  8 22.5380
+964  9 23.9091
+964 10 24.4233
+964 11 24.4233
+964 12 24.2519
+964 13 23.7377
+964 14 23.4806
+964 15 22.2809
+964 16 21.0812
+964 17 19.7957
+964 18 18.4246
+964 19 16.8821
+964 20 15.4252
+964 21 12.1688
+964 22  8.5696
+964 23  5.9987
+964 24  4.4562
+964 25  1.9710
+964 26  0.8570
+964 27  0.3428
+964 28  0.0857
+# pixel 965
+965  1  0.7309
+965  2  2.3756
+965  3  6.3043
+965  4 11.3296
+965  5 17.7253
+965  6 21.5627
+965  7 22.7505
+965  8 24.0296
+965  9 25.4915
+965 10 26.0397
+965 11 26.0397
+965 12 25.8570
+965 13 25.3088
+965 14 25.0347
+965 15 23.7555
+965 16 22.4764
+965 17 21.1059
+965 18 19.6440
+965 19 17.9994
+965 20 16.4461
+965 21 12.9742
+965 22  9.1367
+965 23  6.3957
+965 24  4.7511
+965 25  2.1014
+965 26  0.9137
+965 27  0.3655
+965 28  0.0914
+# pixel 966
+966  1  0.8203
+966  2  2.6661
+966  3  7.0754
+966  4 12.7153
+966  5 19.8933
+966  6 24.2001
+966  7 25.5331
+966  8 26.9687
+966  9 28.6094
+966 10 29.2246
+966 11 29.2246
+966 12 29.0196
+966 13 28.4043
+966 14 28.0967
+966 15 26.6611
+966 16 25.2255
+966 17 23.6873
+966 18 22.0467
+966 19 20.2009
+966 20 18.4577
+966 21 14.5610
+966 22 10.2543
+966 23  7.1780
+966 24  5.3322
+966 25  2.3585
+966 26  1.0254
+966 27  0.4102
+966 28  0.1025
+# pixel 967
+967  1  0.8305
+967  2  2.6992
+967  3  7.1633
+967  4 12.8732
+967  5 20.1404
+967  6 24.5006
+967  7 25.8502
+967  8 27.3037
+967  9 28.9647
+967 10 29.5876
+967 11 29.5876
+967 12 29.3800
+967 13 28.7571
+967 14 28.4456
+967 15 26.9922
+967 16 25.5388
+967 17 23.9816
+967 18 22.3205
+967 19 20.4518
+967 20 18.6869
+967 21 14.7419
+967 22 10.3816
+967 23  7.2671
+967 24  5.3984
+967 25  2.3878
+967 26  1.0382
+967 27  0.4153
+967 28  0.1038
+# pixel 968
+968  1  0.7091
+968  2  2.3044
+968  3  6.1156
+968  4 10.9904
+968  5 17.1947
+968  6 20.9172
+968  7 22.0695
+968  8 23.3103
+968  9 24.7284
+968 10 25.2602
+968 11 25.2602
+968 12 25.0830
+968 13 24.5512
+968 14 24.2853
+968 15 23.0444
+968 16 21.8036
+968 17 20.4741
+968 18 19.0560
+968 19 17.4606
+968 20 15.9538
+968 21 12.5858
+968 22  8.8632
+968 23  6.2043
+968 24  4.6089
+968 25  2.0385
+968 26  0.8863
+968 27  0.3545
+968 28  0.0886
+# pixel 969
+969  1  0.7374
+969  2  2.3966
+969  3  6.3601
+969  4 11.4297
+969  5 17.8820
+969  6 21.7533
+969  7 22.9516
+969  8 24.2420
+969  9 25.7168
+969 10 26.2699
+969 11 26.2699
+969 12 26.0855
+969 13 25.5325
+969 14 25.2560
+969 15 23.9655
+969 16 22.6751
+969 17 21.2924
+969 18 19.8176
+969 19 18.1585
+969 20 16.5915
+969 21 13.0889
+969 22  9.2175
+969 23  6.4523
+969 24  4.7931
+969 25  2.1200
+969 26  0.9218
+969 27  0.3687
+969 28  0.0922
+# pixel 970
+970  1  0.7626
+970  2  2.4784
+970  3  6.5772
+970  4 11.8199
+970  5 18.4925
+970  6 22.4960
+970  7 23.7352
+970  8 25.0697
+970  9 26.5948
+970 10 27.1668
+970 11 27.1668
+970 12 26.9761
+970 13 26.4042
+970 14 26.1182
+970 15 24.7837
+970 16 23.4492
+970 17 22.0194
+970 18 20.4942
+970 19 18.7784
+970 20 17.1580
+970 21 13.5357
+970 22  9.5322
+970 23  6.6725
+970 24  4.9567
+970 25  2.1924
+970 26  0.9532
+970 27  0.3813
+970 28  0.0953
+# pixel 971
+971  1  0.7573
+971  2  2.4612
+971  3  6.5318
+971  4 11.7382
+971  5 18.3647
+971  6 22.3405
+971  7 23.5711
+971  8 24.8964
+971  9 26.4110
+971 10 26.9790
+971 11 26.9790
+971 12 26.7897
+971 13 26.2217
+971 14 25.9377
+971 15 24.6124
+971 16 23.2871
+971 17 21.8672
+971 18 20.3526
+971 19 18.6486
+971 20 17.0394
+971 21 13.4422
+971 22  9.4663
+971 23  6.6264
+971 24  4.9225
+971 25  2.1773
+971 26  0.9466
+971 27  0.3787
+971 28  0.0947
+# pixel 972
+972  1  0.8727
+972  2  2.8363
+972  3  7.5271
+972  4 13.5269
+972  5 21.1631
+972  6 25.7447
+972  7 27.1629
+972  8 28.6901
+972  9 30.4355
+972 10 31.0900
+972 11 31.0900
+972 12 30.8719
+972 13 30.2173
+972 14 29.8901
+972 15 28.3629
+972 16 26.8356
+972 17 25.1993
+972 18 23.4539
+972 19 21.4903
+972 20 19.6358
+972 21 15.4905
+972 22 10.9088
+972 23  7.6362
+972 24  5.6726
+972 25  2.5090
+972 26  1.0909
+972 27  0.4364
+972 28  0.1091
+# pixel 973
+973  1  0.6577
+973  2  2.1375
+973  3  5.6726
+973  4 10.1943
+973  5 15.9491
+973  6 19.4020
+973  7 20.4708
+973  8 21.6217
+973  9 22.9371
+973 10 23.4304
+973 11 23.4304
+973 12 23.2660
+973 13 22.7727
+973 14 22.5261
+973 15 21.3751
+973 16 20.2241
+973 17 18.9909
+973 18 17.6756
+973 19 16.1957
+973 20 14.7981
+973 21 11.6741
+973 22  8.2212
+973 23  5.7548
+973 24  4.2750
+973 25  1.8909
+973 26  0.8221
+973 27  0.3288
+973 28  0.0822
+# pixel 974
+974  1  0.6856
+974  2  2.2282
+974  3  5.9132
+974  4 10.6266
+974  5 16.6254
+974  6 20.2248
+974  7 21.3388
+974  8 22.5386
+974  9 23.9098
+974 10 24.4240
+974 11 24.4240
+974 12 24.2526
+974 13 23.7384
+974 14 23.4813
+974 15 22.2815
+974 16 21.0817
+974 17 19.7963
+974 18 18.4251
+974 19 16.8825
+974 20 15.4257
+974 21 12.1691
+974 22  8.5698
+974 23  5.9989
+974 24  4.4563
+974 25  1.9711
+974 26  0.8570
+974 27  0.3428
+974 28  0.0857
+# pixel 975
+975  1  0.7290
+975  2  2.3692
+975  3  6.2875
+975  4 11.2992
+975  5 17.6778
+975  6 21.5050
+975  7 22.6896
+975  8 23.9653
+975  9 25.4233
+975 10 25.9700
+975 11 25.9700
+975 12 25.7878
+975 13 25.2410
+975 14 24.9676
+975 15 23.6919
+975 16 22.4162
+975 17 21.0494
+975 18 19.5914
+975 19 17.9512
+975 20 16.4021
+975 21 12.9394
+975 22  9.1123
+975 23  6.3786
+975 24  4.7384
+975 25  2.0958
+975 26  0.9112
+975 27  0.3645
+975 28  0.0911
+# pixel 976
+976  1  0.6958
+976  2  2.2613
+976  3  6.0011
+976  4 10.7846
+976  5 16.8727
+976  6 20.5255
+976  7 21.6562
+976  8 22.8738
+976  9 24.2653
+976 10 24.7872
+976 11 24.7872
+976 12 24.6132
+976 13 24.0914
+976 14 23.8305
+976 15 22.6129
+976 16 21.3952
+976 17 20.0906
+976 18 18.6991
+976 19 17.1336
+976 20 15.6551
+976 21 12.3501
+976 22  8.6973
+976 23  6.0881
+976 24  4.5226
+976 25  2.0004
+976 26  0.8697
+976 27  0.3479
+976 28  0.0870
+# pixel 977
+977  1  0.7211
+977  2  2.3437
+977  3  6.2198
+977  4 11.1776
+977  5 17.4876
+977  6 21.2736
+977  7 22.4454
+977  8 23.7074
+977  9 25.1497
+977 10 25.6906
+977 11 25.6906
+977 12 25.5103
+977 13 24.9694
+977 14 24.6990
+977 15 23.4370
+977 16 22.1750
+977 17 20.8229
+977 18 19.3806
+977 19 17.7580
+977 20 16.2256
+977 21 12.8002
+977 22  9.0142
+977 23  6.3100
+977 24  4.6874
+977 25  2.0733
+977 26  0.9014
+977 27  0.3606
+977 28  0.0901
+# pixel 978
+978  1  0.7112
+978  2  2.3113
+978  3  6.1339
+978  4 11.0232
+978  5 17.2460
+978  6 20.9796
+978  7 22.1353
+978  8 23.3798
+978  9 24.8022
+978 10 25.3356
+978 11 25.3356
+978 12 25.1578
+978 13 24.6244
+978 14 24.3577
+978 15 23.1131
+978 16 21.8686
+978 17 20.5351
+978 18 19.1128
+978 19 17.5127
+978 20 16.0014
+978 21 12.6233
+978 22  8.8897
+978 23  6.2228
+978 24  4.6226
+978 25  2.0446
+978 26  0.8890
+978 27  0.3556
+978 28  0.0889
+# pixel 979
+979  1  0.7517
+979  2  2.4429
+979  3  6.4832
+979  4 11.6510
+979  5 18.2281
+979  6 22.1744
+979  7 23.3959
+979  8 24.7113
+979  9 26.2147
+979 10 26.7784
+979 11 26.7784
+979 12 26.5905
+979 13 26.0268
+979 14 25.7449
+979 15 24.4295
+979 16 23.1140
+979 17 21.7046
+979 18 20.2013
+979 19 18.5100
+979 20 16.9127
+979 21 13.3422
+979 22  9.3959
+979 23  6.5772
+979 24  4.8859
+979 25  2.1611
+979 26  0.9396
+979 27  0.3758
+979 28  0.0940
+# pixel 980
+980  1  0.7429
+980  2  2.4144
+980  3  6.4075
+980  4 11.5149
+980  5 18.0152
+980  6 21.9154
+980  7 23.1226
+980  8 24.4227
+980  9 25.9085
+980 10 26.4657
+980 11 26.4657
+980 12 26.2799
+980 13 25.7228
+980 14 25.4442
+980 15 24.1441
+980 16 22.8440
+980 17 21.4511
+980 18 19.9653
+980 19 18.2938
+980 20 16.7152
+980 21 13.1864
+980 22  9.2862
+980 23  6.5003
+980 24  4.8288
+980 25  2.1358
+980 26  0.9286
+980 27  0.3714
+980 28  0.0929
+# pixel 981
+981  1  0.6982
+981  2  2.2692
+981  3  6.0222
+981  4 10.8225
+981  5 16.9320
+981  6 20.5977
+981  7 21.7324
+981  8 22.9543
+981  9 24.3507
+981 10 24.8744
+981 11 24.8744
+981 12 24.6998
+981 13 24.1762
+981 14 23.9143
+981 15 22.6924
+981 16 21.4705
+981 17 20.1613
+981 18 18.7649
+981 19 17.1939
+981 20 15.7101
+981 21 12.3936
+981 22  8.7279
+981 23  6.1095
+981 24  4.5385
+981 25  2.0074
+981 26  0.8728
+981 27  0.3491
+981 28  0.0873
+# pixel 982
+982  1  0.7099
+982  2  2.3071
+982  3  6.1226
+982  4 11.0030
+982  5 17.2144
+982  6 20.9412
+982  7 22.0947
+982  8 23.3370
+982  9 24.7568
+982 10 25.2892
+982 11 25.2892
+982 12 25.1117
+982 13 24.5793
+982 14 24.3131
+982 15 23.0708
+982 16 21.8285
+982 17 20.4975
+982 18 19.0778
+982 19 17.4806
+982 20 15.9721
+982 21 12.6002
+982 22  8.8734
+982 23  6.2114
+982 24  4.6142
+982 25  2.0409
+982 26  0.8873
+982 27  0.3549
+982 28  0.0887
+# pixel 983
+983  1  0.7820
+983  2  2.5416
+983  3  6.7449
+983  4 12.1213
+983  5 18.9639
+983  6 23.0695
+983  7 24.3403
+983  8 25.7088
+983  9 27.2729
+983 10 27.8594
+983 11 27.8594
+983 12 27.6639
+983 13 27.0774
+983 14 26.7841
+983 15 25.4156
+983 16 24.0471
+983 17 22.5808
+983 18 21.0167
+983 19 19.2572
+983 20 17.5954
+983 21 13.8808
+983 22  9.7752
+983 23  6.8427
+983 24  5.0831
+983 25  2.2483
+983 26  0.9775
+983 27  0.3910
+983 28  0.0978
+# pixel 984
+984  1  0.7449
+984  2  2.4210
+984  3  6.4250
+984  4 11.5463
+984  5 18.0644
+984  6 21.9752
+984  7 23.1857
+984  8 24.4893
+984  9 25.9792
+984 10 26.5378
+984 11 26.5378
+984 12 26.3516
+984 13 25.7929
+984 14 25.5136
+984 15 24.2100
+984 16 22.9064
+984 17 21.5096
+984 18 20.0198
+984 19 18.3437
+984 20 16.7607
+984 21 13.2224
+984 22  9.3115
+984 23  6.5181
+984 24  4.8420
+984 25  2.1417
+984 26  0.9312
+984 27  0.3725
+984 28  0.0931
+# pixel 985
+985  1  0.7185
+985  2  2.3350
+985  3  6.1967
+985  4 11.1362
+985  5 17.4227
+985  6 21.1947
+985  7 22.3622
+985  8 23.6195
+985  9 25.0564
+985 10 25.5953
+985 11 25.5953
+985 12 25.4157
+985 13 24.8768
+985 14 24.6074
+985 15 23.3501
+985 16 22.0928
+985 17 20.7456
+985 18 19.3087
+985 19 17.6922
+985 20 16.1654
+985 21 12.7527
+985 22  8.9808
+985 23  6.2866
+985 24  4.6700
+985 25  2.0656
+985 26  0.8981
+985 27  0.3592
+985 28  0.0898
+# pixel 986
+986  1  0.7565
+986  2  2.4585
+986  3  6.5246
+986  4 11.7253
+986  5 18.3444
+986  6 22.3159
+986  7 23.5452
+986  8 24.8690
+986  9 26.3819
+986 10 26.9493
+986 11 26.9493
+986 12 26.7602
+986 13 26.1928
+986 14 25.9091
+986 15 24.5853
+986 16 23.2615
+986 17 21.8431
+986 18 20.3302
+986 19 18.6281
+986 20 17.0206
+986 21 13.4274
+986 22  9.4559
+986 23  6.6191
+986 24  4.9171
+986 25  2.1749
+986 26  0.9456
+986 27  0.3782
+986 28  0.0946
+# pixel 987
+987  1  0.7082
+987  2  2.3017
+987  3  6.1083
+987  4 10.9772
+987  5 17.1741
+987  6 20.8921
+987  7 22.0430
+987  8 23.2823
+987  9 24.6988
+987 10 25.2299
+987 11 25.2299
+987 12 25.0529
+987 13 24.5217
+987 14 24.2561
+987 15 23.0168
+987 16 21.7774
+987 17 20.4495
+987 18 19.0331
+987 19 17.4396
+987 20 15.9347
+987 21 12.5707
+987 22  8.8526
+987 23  6.1968
+987 24  4.6034
+987 25  2.0361
+987 26  0.8853
+987 27  0.3541
+987 28  0.0885
+# pixel 988
+988  1  0.7224
+988  2  2.3476
+988  3  6.2303
+988  4 11.1965
+988  5 17.5170
+988  6 21.3094
+988  7 22.4832
+988  8 23.7473
+988  9 25.1920
+988 10 25.7338
+988 11 25.7338
+988 12 25.5532
+988 13 25.0114
+988 14 24.7406
+988 15 23.4764
+988 16 22.2123
+988 17 20.8579
+988 18 19.4132
+988 19 17.7879
+988 20 16.2529
+988 21 12.8217
+988 22  9.0294
+988 23  6.3206
+988 24  4.6953
+988 25  2.0768
+988 26  0.9029
+988 27  0.3612
+988 28  0.0903
+# pixel 989
+989  1  0.7415
+989  2  2.4100
+989  3  6.3957
+989  4 11.4937
+989  5 17.9820
+989  6 21.8750
+989  7 23.0800
+989  8 24.3777
+989  9 25.8607
+989 10 26.4169
+989 11 26.4169
+989 12 26.2315
+989 13 25.6753
+989 14 25.3973
+989 15 24.0996
+989 16 22.8019
+989 17 21.4116
+989 18 19.9285
+989 19 18.2601
+989 20 16.6843
+989 21 13.1621
+989 22  9.2691
+989 23  6.4884
+989 24  4.8199
+989 25  2.1319
+989 26  0.9269
+989 27  0.3708
+989 28  0.0927
+# pixel 990
+990  1  0.7587
+990  2  2.4657
+990  3  6.5435
+990  4 11.7593
+990  5 18.3976
+990  6 22.3806
+990  7 23.6134
+990  8 24.9411
+990  9 26.4584
+990 10 27.0274
+990 11 27.0274
+990 12 26.8377
+990 13 26.2687
+990 14 25.9842
+990 15 24.6566
+990 16 23.3289
+990 17 21.9064
+990 18 20.3891
+990 19 18.6821
+990 20 17.0699
+990 21 13.4663
+990 22  9.4833
+990 23  6.6383
+990 24  4.9313
+990 25  2.1812
+990 26  0.9483
+990 27  0.3793
+990 28  0.0948
+# pixel 991
+991  1  0.6974
+991  2  2.2664
+991  3  6.0148
+991  4 10.8092
+991  5 16.9112
+991  6 20.5723
+991  7 21.7056
+991  8 22.9260
+991  9 24.3207
+991 10 24.8437
+991 11 24.8437
+991 12 24.6694
+991 13 24.1463
+991 14 23.8848
+991 15 22.6644
+991 16 21.4440
+991 17 20.1365
+991 18 18.7417
+991 19 17.1727
+991 20 15.6908
+991 21 12.3783
+991 22  8.7171
+991 23  6.1020
+991 24  4.5329
+991 25  2.0049
+991 26  0.8717
+991 27  0.3487
+991 28  0.0872
+# pixel 992
+992  1  0.8931
+992  2  2.9027
+992  3  7.7032
+992  4 13.8435
+992  5 21.6584
+992  6 26.3473
+992  7 27.7986
+992  8 29.3616
+992  9 31.1478
+992 10 31.8177
+992 11 31.8177
+992 12 31.5944
+992 13 30.9246
+992 14 30.5896
+992 15 29.0267
+992 16 27.4637
+992 17 25.7891
+992 18 24.0028
+992 19 21.9933
+992 20 20.0954
+992 21 15.8530
+992 22 11.1641
+992 23  7.8149
+992 24  5.8053
+992 25  2.5677
+992 26  1.1164
+992 27  0.4466
+992 28  0.1116
+# pixel 993
+993  1  0.6923
+993  2  2.2501
+993  3  5.9713
+993  4 10.7311
+993  5 16.7890
+993  6 20.4237
+993  7 21.5487
+993  8 22.7603
+993  9 24.1450
+993 10 24.6642
+993 11 24.6642
+993 12 24.4911
+993 13 23.9719
+993 14 23.7123
+993 15 22.5007
+993 16 21.2891
+993 17 19.9910
+993 18 18.6063
+993 19 17.0486
+993 20 15.5774
+993 21 12.2888
+993 22  8.6541
+993 23  6.0579
+993 24  4.5001
+993 25  1.9904
+993 26  0.8654
+993 27  0.3462
+993 28  0.0865
+# pixel 994
+994  1  0.9156
+994  2  2.9758
+994  3  7.8974
+994  4 14.1924
+994  5 22.2043
+994  6 27.0114
+994  7 28.4993
+994  8 30.1017
+994  9 31.9329
+994 10 32.6197
+994 11 32.6197
+994 12 32.3908
+994 13 31.7040
+994 14 31.3607
+994 15 29.7583
+994 16 28.1559
+994 17 26.4391
+994 18 24.6078
+994 19 22.5476
+994 20 20.6019
+994 21 16.2526
+994 22 11.4455
+994 23  8.0119
+994 24  5.9517
+994 25  2.6325
+994 26  1.1446
+994 27  0.4578
+994 28  0.1145
+# pixel 995
+995  1  0.6517
+995  2  2.1181
+995  3  5.6212
+995  4 10.1018
+995  5 15.8045
+995  6 19.2261
+995  7 20.2852
+995  8 21.4257
+995  9 22.7292
+995 10 23.2180
+995 11 23.2180
+995 12 23.0550
+995 13 22.5662
+995 14 22.3218
+995 15 21.1813
+995 16 20.0408
+995 17 18.8188
+995 18 17.5153
+995 19 16.0489
+995 20 14.6640
+995 21 11.5682
+995 22  8.1467
+995 23  5.7027
+995 24  4.2363
+995 25  1.8737
+995 26  0.8147
+995 27  0.3259
+995 28  0.0815
+# pixel 996
+996  1  0.7626
+996  2  2.4785
+996  3  6.5777
+996  4 11.8208
+996  5 18.4938
+996  6 22.4976
+996  7 23.7369
+996  8 25.0715
+996  9 26.5967
+996 10 27.1687
+996 11 27.1687
+996 12 26.9780
+996 13 26.4061
+996 14 26.1201
+996 15 24.7855
+996 16 23.4509
+996 17 22.0210
+996 18 20.4957
+996 19 18.7798
+996 20 17.1592
+996 21 13.5367
+996 22  9.5329
+996 23  6.6730
+996 24  4.9571
+996 25  2.1926
+996 26  0.9533
+996 27  0.3813
+996 28  0.0953
+# pixel 997
+997  1  0.6409
+997  2  2.0829
+997  3  5.5277
+997  4  9.9338
+997  5 15.5415
+997  6 18.9062
+997  7 19.9476
+997  8 21.0692
+997  9 22.3510
+997 10 22.8316
+997 11 22.8316
+997 12 22.6714
+997 13 22.1907
+997 14 21.9504
+997 15 20.8289
+997 16 19.7073
+997 17 18.5056
+997 18 17.2239
+997 19 15.7819
+997 20 14.4200
+997 21 11.3758
+997 22  8.0111
+997 23  5.6078
+997 24  4.1658
+997 25  1.8426
+997 26  0.8011
+997 27  0.3204
+997 28  0.0801
+# pixel 998
+998  1  0.6816
+998  2  2.2151
+998  3  5.8784
+998  4 10.5641
+998  5 16.5278
+998  6 20.1060
+998  7 21.2135
+998  8 22.4062
+998  9 23.7693
+998 10 24.2805
+998 11 24.2805
+998 12 24.1101
+998 13 23.5989
+998 14 23.3434
+998 15 22.1506
+998 16 20.9579
+998 17 19.6800
+998 18 18.3169
+998 19 16.7834
+998 20 15.3350
+998 21 12.0977
+998 22  8.5195
+998 23  5.9636
+998 24  4.4301
+998 25  1.9595
+998 26  0.8519
+998 27  0.3408
+998 28  0.0852
+# pixel 999
+999  1  0.7667
+999  2  2.4918
+999  3  6.6130
+999  4 11.8842
+999  5 18.5930
+999  6 22.6182
+999  7 23.8642
+999  8 25.2059
+999  9 26.7393
+999 10 27.3144
+999 11 27.3144
+999 12 27.1227
+999 13 26.5477
+999 14 26.2602
+999 15 24.9184
+999 16 23.5766
+999 17 22.1390
+999 18 20.6056
+999 19 18.8805
+999 20 17.2512
+999 21 13.6093
+999 22  9.5840
+999 23  6.7088
+999 24  4.9837
+999 25  2.2043
+999 26  0.9584
+999 27  0.3834
+999 28  0.0958
+# pixel 1000
+1000  1  0.7632
+1000  2  2.4803
+1000  3  6.5824
+1000  4 11.8293
+1000  5 18.5072
+1000  6 22.5139
+1000  7 23.7540
+1000  8 25.0896
+1000  9 26.6160
+1000 10 27.1884
+1000 11 27.1884
+1000 12 26.9976
+1000 13 26.4252
+1000 14 26.1390
+1000 15 24.8034
+1000 16 23.4678
+1000 17 22.0369
+1000 18 20.5105
+1000 19 18.7934
+1000 20 17.1716
+1000 21 13.5465
+1000 22  9.5398
+1000 23  6.6778
+1000 24  4.9607
+1000 25  2.1941
+1000 26  0.9540
+1000 27  0.3816
+1000 28  0.0954
+# pixel 1001
+1001  1  0.6662
+1001  2  2.1651
+1001  3  5.7458
+1001  4 10.3258
+1001  5 16.1549
+1001  6 19.6524
+1001  7 20.7350
+1001  8 21.9008
+1001  9 23.2331
+1001 10 23.7328
+1001 11 23.7328
+1001 12 23.5662
+1001 13 23.0666
+1001 14 22.8168
+1001 15 21.6510
+1001 16 20.4851
+1001 17 19.2360
+1001 18 17.9037
+1001 19 16.4048
+1001 20 14.9891
+1001 21 11.8248
+1001 22  8.3273
+1001 23  5.8291
+1001 24  4.3302
+1001 25  1.9153
+1001 26  0.8327
+1001 27  0.3331
+1001 28  0.0833
+# pixel 1002
+1002  1  0.8560
+1002  2  2.7819
+1002  3  7.3827
+1002  4 13.2675
+1002  5 20.7572
+1002  6 25.2510
+1002  7 26.6419
+1002  8 28.1399
+1002  9 29.8518
+1002 10 30.4938
+1002 11 30.4938
+1002 12 30.2798
+1002 13 29.6378
+1002 14 29.3168
+1002 15 27.8189
+1002 16 26.3209
+1002 17 24.7160
+1002 18 23.0041
+1002 19 21.0781
+1002 20 19.2592
+1002 21 15.1934
+1002 22 10.6996
+1002 23  7.4897
+1002 24  5.5638
+1002 25  2.4609
+1002 26  1.0700
+1002 27  0.4280
+1002 28  0.1070
+# pixel 1003
+1003  1  0.7428
+1003  2  2.4140
+1003  3  6.4063
+1003  4 11.5128
+1003  5 18.0120
+1003  6 21.9114
+1003  7 23.1184
+1003  8 24.4183
+1003  9 25.9038
+1003 10 26.4609
+1003 11 26.4609
+1003 12 26.2752
+1003 13 25.7181
+1003 14 25.4396
+1003 15 24.1397
+1003 16 22.8399
+1003 17 21.4472
+1003 18 19.9617
+1003 19 18.2905
+1003 20 16.7121
+1003 21 13.1840
+1003 22  9.2845
+1003 23  6.4992
+1003 24  4.8279
+1003 25  2.1354
+1003 26  0.9285
+1003 27  0.3714
+1003 28  0.0928
+# pixel 1004
+1004  1  0.6908
+1004  2  2.2451
+1004  3  5.9583
+1004  4 10.7076
+1004  5 16.7522
+1004  6 20.3790
+1004  7 21.5015
+1004  8 22.7105
+1004  9 24.0921
+1004 10 24.6102
+1004 11 24.6102
+1004 12 24.4375
+1004 13 23.9194
+1004 14 23.6603
+1004 15 22.4514
+1004 16 21.2425
+1004 17 19.9472
+1004 18 18.5656
+1004 19 17.0113
+1004 20 15.5433
+1004 21 12.2619
+1004 22  8.6352
+1004 23  6.0446
+1004 24  4.4903
+1004 25  1.9861
+1004 26  0.8635
+1004 27  0.3454
+1004 28  0.0864
+# pixel 1005
+1005  1  0.6919
+1005  2  2.2485
+1005  3  5.9673
+1005  4 10.7238
+1005  5 16.7776
+1005  6 20.4099
+1005  7 21.5341
+1005  8 22.7449
+1005  9 24.1286
+1005 10 24.6475
+1005 11 24.6475
+1005 12 24.4745
+1005 13 23.9556
+1005 14 23.6962
+1005 15 22.4854
+1005 16 21.2747
+1005 17 19.9775
+1005 18 18.5937
+1005 19 17.0370
+1005 20 15.5668
+1005 21 12.2805
+1005 22  8.6482
+1005 23  6.0538
+1005 24  4.4971
+1005 25  1.9891
+1005 26  0.8648
+1005 27  0.3459
+1005 28  0.0865
+# pixel 1006
+1006  1  0.7509
+1006  2  2.4404
+1006  3  6.4763
+1006  4 11.6386
+1006  5 18.2088
+1006  6 22.1509
+1006  7 23.3710
+1006  8 24.6851
+1006  9 26.1868
+1006 10 26.7500
+1006 11 26.7500
+1006 12 26.5623
+1006 13 25.9991
+1006 14 25.7175
+1006 15 24.4035
+1006 16 23.0895
+1006 17 21.6816
+1006 18 20.1798
+1006 19 18.4903
+1006 20 16.8947
+1006 21 13.3281
+1006 22  9.3860
+1006 23  6.5702
+1006 24  4.8807
+1006 25  2.1588
+1006 26  0.9386
+1006 27  0.3754
+1006 28  0.0939
+# pixel 1007
+1007  1  0.7142
+1007  2  2.3212
+1007  3  6.1601
+1007  4 11.0702
+1007  5 17.3196
+1007  6 21.0692
+1007  7 22.2298
+1007  8 23.4796
+1007  9 24.9081
+1007 10 25.4437
+1007 11 25.4437
+1007 12 25.2652
+1007 13 24.7295
+1007 14 24.4617
+1007 15 23.2118
+1007 16 21.9619
+1007 17 20.6228
+1007 18 19.1944
+1007 19 17.5874
+1007 20 16.0697
+1007 21 12.6772
+1007 22  8.9276
+1007 23  6.2493
+1007 24  4.6424
+1007 25  2.0534
+1007 26  0.8928
+1007 27  0.3571
+1007 28  0.0893
+# pixel 1008
+1008  1  0.6659
+1008  2  2.1641
+1008  3  5.7431
+1008  4 10.3209
+1008  5 16.1473
+1008  6 19.6431
+1008  7 20.7251
+1008  8 21.8903
+1008  9 23.2221
+1008 10 23.7215
+1008 11 23.7215
+1008 12 23.5550
+1008 13 23.0556
+1008 14 22.8059
+1008 15 21.6406
+1008 16 20.4754
+1008 17 19.2269
+1008 18 17.8952
+1008 19 16.3970
+1008 20 14.9820
+1008 21 11.8191
+1008 22  8.3233
+1008 23  5.8263
+1008 24  4.3281
+1008 25  1.9144
+1008 26  0.8323
+1008 27  0.3329
+1008 28  0.0832
+# pixel 1009
+1009  1  0.6748
+1009  2  2.1931
+1009  3  5.8202
+1009  4 10.4595
+1009  5 16.3641
+1009  6 19.9068
+1009  7 21.0034
+1009  8 22.1843
+1009  9 23.5339
+1009 10 24.0400
+1009 11 24.0400
+1009 12 23.8713
+1009 13 23.3652
+1009 14 23.1121
+1009 15 21.9312
+1009 16 20.7503
+1009 17 19.4850
+1009 18 18.1354
+1009 19 16.6171
+1009 20 15.1831
+1009 21 11.9778
+1009 22  8.4351
+1009 23  5.9046
+1009 24  4.3862
+1009 25  1.9401
+1009 26  0.8435
+1009 27  0.3374
+1009 28  0.0844
+# pixel 1010
+1010  1  0.7631
+1010  2  2.4801
+1010  3  6.5818
+1010  4 11.8282
+1010  5 18.5055
+1010  6 22.5118
+1010  7 23.7519
+1010  8 25.0873
+1010  9 26.6135
+1010 10 27.1859
+1010 11 27.1859
+1010 12 26.9951
+1010 13 26.4227
+1010 14 26.1366
+1010 15 24.8011
+1010 16 23.4657
+1010 17 22.0349
+1010 18 20.5086
+1010 19 18.7916
+1010 20 17.1700
+1010 21 13.5452
+1010 22  9.5389
+1010 23  6.6772
+1010 24  4.9602
+1010 25  2.1939
+1010 26  0.9539
+1010 27  0.3816
+1010 28  0.0954
+# pixel 1011
+1011  1  0.6906
+1011  2  2.2444
+1011  3  5.9562
+1011  4 10.7038
+1011  5 16.7463
+1011  6 20.3718
+1011  7 21.4940
+1011  8 22.7025
+1011  9 24.0836
+1011 10 24.6015
+1011 11 24.6015
+1011 12 24.4289
+1011 13 23.9110
+1011 14 23.6520
+1011 15 22.4435
+1011 16 21.2350
+1011 17 19.9402
+1011 18 18.5591
+1011 19 17.0053
+1011 20 15.5378
+1011 21 12.2576
+1011 22  8.6321
+1011 23  6.0425
+1011 24  4.4887
+1011 25  1.9854
+1011 26  0.8632
+1011 27  0.3453
+1011 28  0.0863
+# pixel 1012
+1012  1  0.7563
+1012  2  2.4579
+1012  3  6.5229
+1012  4 11.7223
+1012  5 18.3397
+1012  6 22.3101
+1012  7 23.5391
+1012  8 24.8625
+1012  9 26.3751
+1012 10 26.9423
+1012 11 26.9423
+1012 12 26.7532
+1012 13 26.1860
+1012 14 25.9024
+1012 15 24.5789
+1012 16 23.2555
+1012 17 21.8374
+1012 18 20.3249
+1012 19 18.6233
+1012 20 17.0162
+1012 21 13.4239
+1012 22  9.4534
+1012 23  6.6174
+1012 24  4.9158
+1012 25  2.1743
+1012 26  0.9453
+1012 27  0.3781
+1012 28  0.0945
+# pixel 1013
+1013  1  0.7566
+1013  2  2.4591
+1013  3  6.5260
+1013  4 11.7278
+1013  5 18.3484
+1013  6 22.3207
+1013  7 23.5503
+1013  8 24.8744
+1013  9 26.3876
+1013 10 26.9551
+1013 11 26.9551
+1013 12 26.7660
+1013 13 26.1985
+1013 14 25.9147
+1013 15 24.5906
+1013 16 23.2665
+1013 17 21.8478
+1013 18 20.3346
+1013 19 18.6321
+1013 20 17.0243
+1013 21 13.4303
+1013 22  9.4579
+1013 23  6.6206
+1013 24  4.9181
+1013 25  2.1753
+1013 26  0.9458
+1013 27  0.3783
+1013 28  0.0946
+# pixel 1014
+1014  1  0.6345
+1014  2  2.0621
+1014  3  5.4724
+1014  4  9.8345
+1014  5 15.3863
+1014  6 18.7173
+1014  7 19.7484
+1014  8 20.8587
+1014  9 22.1277
+1014 10 22.6035
+1014 11 22.6035
+1014 12 22.4449
+1014 13 21.9690
+1014 14 21.7311
+1014 15 20.6208
+1014 16 19.5104
+1014 17 18.3208
+1014 18 17.0518
+1014 19 15.6242
+1014 20 14.2759
+1014 21 11.2621
+1014 22  7.9311
+1014 23  5.5517
+1014 24  4.1242
+1014 25  1.8241
+1014 26  0.7931
+1014 27  0.3172
+1014 28  0.0793
+# pixel 1015
+1015  1  0.7259
+1015  2  2.3593
+1015  3  6.2613
+1015  4 11.2522
+1015  5 17.6042
+1015  6 21.4154
+1015  7 22.5951
+1015  8 23.8655
+1015  9 25.3174
+1015 10 25.8618
+1015 11 25.8618
+1015 12 25.6803
+1015 13 25.1359
+1015 14 24.8636
+1015 15 23.5932
+1015 16 22.3228
+1015 17 20.9617
+1015 18 19.5098
+1015 19 17.8764
+1015 20 16.3338
+1015 21 12.8855
+1015 22  9.0743
+1015 23  6.3520
+1015 24  4.7186
+1015 25  2.0871
+1015 26  0.9074
+1015 27  0.3630
+1015 28  0.0907
+# pixel 1016
+1016  1  0.7952
+1016  2  2.5842
+1016  3  6.8582
+1016  4 12.3249
+1016  5 19.2825
+1016  6 23.4570
+1016  7 24.7491
+1016  8 26.1407
+1016  9 27.7310
+1016 10 28.3273
+1016 11 28.3273
+1016 12 28.1285
+1016 13 27.5322
+1016 14 27.2340
+1016 15 25.8425
+1016 16 24.4510
+1016 17 22.9600
+1016 18 21.3697
+1016 19 19.5806
+1016 20 17.8909
+1016 21 14.1140
+1016 22  9.9394
+1016 23  6.9576
+1016 24  5.1685
+1016 25  2.2861
+1016 26  0.9939
+1016 27  0.3976
+1016 28  0.0994
+# pixel 1017
+1017  1  0.8647
+1017  2  2.8102
+1017  3  7.4579
+1017  4 13.4025
+1017  5 20.9685
+1017  6 25.5081
+1017  7 26.9132
+1017  8 28.4264
+1017  9 30.1557
+1017 10 30.8042
+1017 11 30.8042
+1017 12 30.5881
+1017 13 29.9395
+1017 14 29.6153
+1017 15 28.1021
+1017 16 26.5889
+1017 17 24.9676
+1017 18 23.2383
+1017 19 21.2927
+1017 20 19.4553
+1017 21 15.3481
+1017 22 10.8085
+1017 23  7.5660
+1017 24  5.6204
+1017 25  2.4860
+1017 26  1.0809
+1017 27  0.4323
+1017 28  0.1081
+# pixel 1018
+1018  1  0.7519
+1018  2  2.4438
+1018  3  6.4855
+1018  4 11.6551
+1018  5 18.2346
+1018  6 22.1823
+1018  7 23.4042
+1018  8 24.7201
+1018  9 26.2240
+1018 10 26.7880
+1018 11 26.7880
+1018 12 26.6000
+1018 13 26.0360
+1018 14 25.7541
+1018 15 24.4382
+1018 16 23.1223
+1018 17 21.7124
+1018 18 20.2085
+1018 19 18.5166
+1018 20 16.9187
+1018 21 13.3470
+1018 22  9.3993
+1018 23  6.5795
+1018 24  4.8876
+1018 25  2.1618
+1018 26  0.9399
+1018 27  0.3760
+1018 28  0.0940
+# pixel 1019
+1019  1  0.7402
+1019  2  2.4057
+1019  3  6.3844
+1019  4 11.4734
+1019  5 17.9503
+1019  6 21.8364
+1019  7 23.0392
+1019  8 24.3346
+1019  9 25.8151
+1019 10 26.3702
+1019 11 26.3702
+1019 12 26.1852
+1019 13 25.6300
+1019 14 25.3524
+1019 15 24.0570
+1019 16 22.7617
+1019 17 21.3738
+1019 18 19.8933
+1019 19 18.2278
+1019 20 16.6549
+1019 21 13.1388
+1019 22  9.2527
+1019 23  6.4769
+1019 24  4.8114
+1019 25  2.1281
+1019 26  0.9253
+1019 27  0.3701
+1019 28  0.0925
+# pixel 1020
+1020  1  0.6411
+1020  2  2.0834
+1020  3  5.5291
+1020  4  9.9363
+1020  5 15.5455
+1020  6 18.9110
+1020  7 19.9527
+1020  8 21.0745
+1020  9 22.3566
+1020 10 22.8374
+1020 11 22.8374
+1020 12 22.6772
+1020 13 22.1964
+1020 14 21.9560
+1020 15 20.8341
+1020 16 19.7123
+1020 17 18.5103
+1020 18 17.2282
+1020 19 15.7859
+1020 20 14.4236
+1020 21 11.3786
+1020 22  8.0131
+1020 23  5.6092
+1020 24  4.1668
+1020 25  1.8430
+1020 26  0.8013
+1020 27  0.3205
+1020 28  0.0801
+# pixel 1021
+1021  1  0.7754
+1021  2  2.5199
+1021  3  6.6874
+1021  4 12.0180
+1021  5 18.8023
+1021  6 22.8729
+1021  7 24.1329
+1021  8 25.4898
+1021  9 27.0405
+1021 10 27.6220
+1021 11 27.6220
+1021 12 27.4281
+1021 13 26.8466
+1021 14 26.5559
+1021 15 25.1990
+1021 16 23.8421
+1021 17 22.3883
+1021 18 20.8376
+1021 19 19.0931
+1021 20 17.4455
+1021 21 13.7625
+1021 22  9.6919
+1021 23  6.7843
+1021 24  5.0398
+1021 25  2.2291
+1021 26  0.9692
+1021 27  0.3877
+1021 28  0.0969
+# pixel 1022
+1022  1  0.7858
+1022  2  2.5540
+1022  3  6.7779
+1022  4 12.1805
+1022  5 19.0566
+1022  6 23.1822
+1022  7 24.4592
+1022  8 25.8344
+1022  9 27.4061
+1022 10 27.9955
+1022 11 27.9955
+1022 12 27.7990
+1022 13 27.2096
+1022 14 26.9150
+1022 15 25.5397
+1022 16 24.1645
+1022 17 22.6911
+1022 18 21.1194
+1022 19 19.3513
+1022 20 17.6814
+1022 21 13.9486
+1022 22  9.8230
+1022 23  6.8761
+1022 24  5.1079
+1022 25  2.2593
+1022 26  0.9823
+1022 27  0.3929
+1022 28  0.0982
+# pixel 1023
+1023  1  0.7670
+1023  2  2.4928
+1023  3  6.6155
+1023  4 11.8887
+1023  5 18.6000
+1023  6 22.6268
+1023  7 23.8732
+1023  8 25.2155
+1023  9 26.7495
+1023 10 27.3247
+1023 11 27.3247
+1023 12 27.1330
+1023 13 26.5577
+1023 14 26.2701
+1023 15 24.9278
+1023 16 23.5856
+1023 17 22.1474
+1023 18 20.6134
+1023 19 18.8876
+1023 20 17.2577
+1023 21 13.6144
+1023 22  9.5876
+1023 23  6.7113
+1023 24  4.9856
+1023 25  2.2052
+1023 26  0.9588
+1023 27  0.3835
+1023 28  0.0959
+# pixel 1024
+1024  1  0.7702
+1024  2  2.5031
+1024  3  6.6429
+1024  4 11.9379
+1024  5 18.6770
+1024  6 22.7205
+1024  7 23.9721
+1024  8 25.3199
+1024  9 26.8603
+1024 10 27.4379
+1024 11 27.4379
+1024 12 27.2454
+1024 13 26.6677
+1024 14 26.3789
+1024 15 25.0311
+1024 16 23.6832
+1024 17 22.2391
+1024 18 20.6988
+1024 19 18.9658
+1024 20 17.3292
+1024 21 13.6708
+1024 22  9.6273
+1024 23  6.7391
+1024 24  5.0062
+1024 25  2.2143
+1024 26  0.9627
+1024 27  0.3851
+1024 28  0.0963
+# pixel 1025
+1025  1  0.7964
+1025  2  2.5883
+1025  3  6.8690
+1025  4 12.3444
+1025  5 19.3130
+1025  6 23.4941
+1025  7 24.7883
+1025  8 26.1820
+1025  9 27.7748
+1025 10 28.3721
+1025 11 28.3721
+1025 12 28.1730
+1025 13 27.5757
+1025 14 27.2771
+1025 15 25.8834
+1025 16 24.4896
+1025 17 22.9964
+1025 18 21.4035
+1025 19 19.6116
+1025 20 17.9192
+1025 21 14.1363
+1025 22  9.9551
+1025 23  6.9686
+1025 24  5.1767
+1025 25  2.2897
+1025 26  0.9955
+1025 27  0.3982
+1025 28  0.0996
+# pixel 1026
+1026  1  0.6497
+1026  2  2.1117
+1026  3  5.6040
+1026  4 10.0710
+1026  5 15.7562
+1026  6 19.1673
+1026  7 20.2231
+1026  8 21.3602
+1026  9 22.6597
+1026 10 23.1470
+1026 11 23.1470
+1026 12 22.9845
+1026 13 22.4972
+1026 14 22.2536
+1026 15 21.1165
+1026 16 19.9795
+1026 17 18.7612
+1026 18 17.4618
+1026 19 15.9998
+1026 20 14.6191
+1026 21 11.5329
+1026 22  8.1217
+1026 23  5.6852
+1026 24  4.2233
+1026 25  1.8680
+1026 26  0.8122
+1026 27  0.3249
+1026 28  0.0812
+# pixel 1027
+1027  1  0.7264
+1027  2  2.3608
+1027  3  6.2653
+1027  4 11.2594
+1027  5 17.6155
+1027  6 21.4292
+1027  7 22.6096
+1027  8 23.8809
+1027  9 25.3337
+1027 10 25.8785
+1027 11 25.8785
+1027 12 25.6969
+1027 13 25.1521
+1027 14 24.8797
+1027 15 23.6085
+1027 16 22.3372
+1027 17 20.9752
+1027 18 19.5224
+1027 19 17.8879
+1027 20 16.3443
+1027 21 12.8938
+1027 22  9.0802
+1027 23  6.3561
+1027 24  4.7217
+1027 25  2.0884
+1027 26  0.9080
+1027 27  0.3632
+1027 28  0.0908
Index: /branches/start/MagicSoft/Simulation/Detector/Data/qe-ipd.dat
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Data/qe-ipd.dat	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Data/qe-ipd.dat	(revision 4308)
@@ -0,0 +1,23 @@
+20
+     260.0      45.0
+     280.0      45.0
+     300.0      45.0
+     320.0      45.0
+     340.0      45.0
+     360.0      45.0
+     380.0      45.0
+     400.0      45.0
+     420.0      45.0
+     440.0      45.0
+     460.0      45.0
+     480.0      45.0
+     500.0      45.0
+     520.0      45.0
+     540.0      45.0
+     560.0      45.0
+     580.0      45.0
+     600.0      45.0
+     620.0      45.0
+     640.0      45.0
+
+
Index: /branches/start/MagicSoft/Simulation/Detector/Data/reflectivity-100.dat
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Data/reflectivity-100.dat	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Data/reflectivity-100.dat	(revision 4308)
@@ -0,0 +1,42 @@
+# reflectivity file
+# reflectivity for each mirror in the frame
+# J C Gonzalez, 1998
+#
+# number of datapoints
+35
+# datapoints
+270 1.0
+280 1.0
+290 1.0
+300 1.0
+310 1.0
+320 1.0
+330 1.0
+340 1.0
+350 1.0
+360 1.0
+370 1.0
+380 1.0
+390 1.0
+400 1.0
+410 1.0
+420 1.0
+430 1.0
+440 1.0
+450 1.0
+460 1.0
+470 1.0
+480 1.0
+490 1.0
+500 1.0
+510 1.0
+520 1.0
+530 1.0
+540 1.0
+550 1.0
+560 1.0
+570 1.0
+580 1.0
+590 1.0
+600 1.0
+610 1.0
Index: /branches/start/MagicSoft/Simulation/Detector/Data/reflectivity-90.dat
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Data/reflectivity-90.dat	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Data/reflectivity-90.dat	(revision 4308)
@@ -0,0 +1,42 @@
+# reflectivity file
+# reflectivity for each mirror in the frame
+# J C Gonzalez, 1998
+#
+# number of datapoints
+35
+# datapoints
+270 0.9
+280 0.9
+290 0.9
+300 0.9
+310 0.9
+320 0.9
+330 0.9
+340 0.9
+350 0.9
+360 0.9
+370 0.9
+380 0.9
+390 0.9
+400 0.9
+410 0.9
+420 0.9
+430 0.9
+440 0.9
+450 0.9
+460 0.9
+470 0.9
+480 0.9
+490 0.9
+500 0.9
+510 0.9
+520 0.9
+530 0.9
+540 0.9
+550 0.9
+560 0.9
+570 0.9
+580 0.9
+590 0.9
+600 0.9
+610 0.9
Index: /branches/start/MagicSoft/Simulation/Detector/Reflector/Makefile
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Reflector/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Reflector/Makefile	(revision 4308)
@@ -0,0 +1,251 @@
+##################################################################
+#
+# makefile
+#
+# @file        makefile 
+# @title       Simulation of the camera and trigger logic
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the camera program
+# Notes:   
+#    
+#---------------------------------------------------------------
+#
+# $RCSfile: Makefile,v $
+# $Revision: 1.1.1.1 $
+# $Author: harald $ 
+# $Date: 1999-10-29 07:00:32 $
+#
+##################################################################
+# @maintitle
+
+# @code
+
+INCLUDEMK = config.mk
+include ${INCLUDEMK}
+
+# @endcode
+
+# @code 
+
+# common flags
+INCLUDES = -I${INCLUDE}      \
+	   -I${INCLUDE_COR}  \
+	   -I${INCLUDE_MC}   \
+	   -I${INCLUDE_REFL} \
+           -I/usr/include
+
+#CERNLIBDIR = ${CERNDIR}/pro/lib/
+#CERNLIB = -L${CERNLIBDIR} -lgraflib -lgrafX11 -lpacklib -lkernlib -lpawlib
+
+RANLIB  = -L${RANLIBDIR} -lranlib
+
+# special flags
+
+osf_FORLIBS = -lUfor -lfor -lutil -lots -lm 
+linux_FORLIBS = -lm 
+generic_FORLIBS = -lm 
+
+FORLIBS = ${${SYSTEM}_FORLIBS}
+
+# compilation and linking flags
+
+CXXFLAGS  = -D__${SYSTEM}__ ${INCLUDES} ${OPTIM} ${DEBUG}
+CFLAGS    = ${CXXFLAGS}
+FFLAGS    = ${CXXFLAGS}
+LIBS      = ${RANLIB} ${FORLIBS} 
+#LIBS      = ${CERNLIB} ${RANLIB} ${FORLIBS} 
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cxx .C .c++ .h .hxx .H .h++ .o .so .f
+
+SRCS = \
+	${INCLUDE_COR}/COREventHeader.cxx \
+	${INCLUDE_COR}/CORParticle.cxx \
+	${INCLUDE_COR}/CORStatfile.cxx \
+	${INCLUDE_MC}/MCEventHeader.cxx \
+	${INCLUDE_MC}/MCCphoton.cxx \
+	atm.cxx \
+	attenu.f \
+	readparam.cxx \
+	reflector.cxx      
+
+HEADERS = \
+	COREventHeader.hxx \
+	CORParticle.hxx \
+	CORStatfile.hxx \
+	MCEventHeader.hxx \
+	MCCphoton.hxx \
+	lagrange.h \
+	atm.h \
+	readparam.h \
+	reflector.h
+
+OBJS = \
+	${INCLUDE_COR}/COREventHeader.o \
+	${INCLUDE_COR}/CORParticle.o \
+	${INCLUDE_COR}/CORStatfile.o \
+	${INCLUDE_MC}/MCEventHeader.o \
+	${INCLUDE_MC}/MCCphoton.o \
+	atm.o \
+	attenu.o \
+	readparam.o \
+	reflector.o      
+
+PROGRAM=reflector
+
+############################################################
+
+all: ${PROGRAM}
+
+depend:
+	@makedepend $(SRCS) -fMakefile 2> /dev/null
+
+doc: reflector-doc
+
+reflector-doc: 
+	@echo "Generating documentation for camera . . . "
+	$(DOCUM) -latex -o reflector.tex \
+	reflector.cxx reflector.h \
+	readparam.cxx readparam.h \
+	atm.cxx atm.h
+	latex "\nonstopmode\input{reflector.tex}" && \
+	makeindex reflector && \
+	latex "\nonstopmode\input{reflector.tex}" && \
+	latex "\nonstopmode\input{reflector.tex}"
+	@echo "Files reflector.tex and reflector.dvi generated."
+
+rate: 
+	@echo "Rating documentation inside code . . . "
+	$(RATE) \
+	reflector.cxx reflector.h \
+	readparam.cxx readparam.h \
+	atm.cxx atm.h
+
+${PROGRAM}: $(OBJS)
+	@echo "Linking..." $@
+	$(CXX) $(CXXFLAGS) $(OBJS) $(LIBS) -o $@
+	@echo "done."
+
+.cxx.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo "Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+.f.o:	
+	@echo "Compiling " $<
+	$(F77) $(FFLAGS) -c $< -o $@
+
+lclean:
+	@echo "Cleanning..."
+	@rm -f *.o core 
+
+clean:
+	@echo "Cleanning..."
+	@rm -f $(OBJS) core 
+
+mrproper: clean
+	@echo "Mr.Proper in action . . ."
+	@rm -f $(PROGRAM)
+
+ctags:
+	@echo "Creating CTAGS file . . ."
+	@ctags -txw $(SRCS) $(HEADERS) > CTAGS
+
+etags:
+	@echo "Creating TAGS file . . ."
+	@etags -C $(SRCS) $(HEADERS)
+
+listsrc:
+	@ls -m $(SRCS) $(HEADERS) | sed 's/,//g'
+
+redo: clean all
+
+# @endcode
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+../include-CORSIKA/COREventHeader.o: ../include-CORSIKA/COREventHeader.hxx
+../include-CORSIKA/COREventHeader.o: /usr/include/stdlib.h
+../include-CORSIKA/COREventHeader.o: /usr/include/standards.h
+../include-CORSIKA/COREventHeader.o: /usr/include/getopt.h
+../include-CORSIKA/COREventHeader.o: /usr/include/sys/types.h
+../include-CORSIKA/COREventHeader.o: /usr/include/mach/machine/vm_types.h
+../include-CORSIKA/COREventHeader.o: /usr/include/sys/select.h
+../include-CORSIKA/COREventHeader.o: /usr/include/math.h
+../include-CORSIKA/CORParticle.o: ../include-CORSIKA/CORParticle.hxx
+../include-CORSIKA/CORParticle.o: /usr/include/stdlib.h
+../include-CORSIKA/CORParticle.o: /usr/include/standards.h
+../include-CORSIKA/CORParticle.o: /usr/include/getopt.h
+../include-CORSIKA/CORParticle.o: /usr/include/sys/types.h
+../include-CORSIKA/CORParticle.o: /usr/include/mach/machine/vm_types.h
+../include-CORSIKA/CORParticle.o: /usr/include/sys/select.h
+../include-CORSIKA/CORParticle.o: /usr/include/math.h
+../include-CORSIKA/CORStatfile.o: ../include-CORSIKA/CORStatfile.hxx
+../include-CORSIKA/CORStatfile.o: /usr/include/stdlib.h
+../include-CORSIKA/CORStatfile.o: /usr/include/standards.h
+../include-CORSIKA/CORStatfile.o: /usr/include/getopt.h
+../include-CORSIKA/CORStatfile.o: /usr/include/sys/types.h
+../include-CORSIKA/CORStatfile.o: /usr/include/mach/machine/vm_types.h
+../include-CORSIKA/CORStatfile.o: /usr/include/sys/select.h
+../include-CORSIKA/CORStatfile.o: /usr/include/math.h
+../include-MC/MCEventHeader.o: ../include-MC/MCEventHeader.hxx
+../include-MC/MCEventHeader.o: /usr/include/stdlib.h /usr/include/standards.h
+../include-MC/MCEventHeader.o: /usr/include/getopt.h /usr/include/sys/types.h
+../include-MC/MCEventHeader.o: /usr/include/mach/machine/vm_types.h
+../include-MC/MCEventHeader.o: /usr/include/sys/select.h /usr/include/math.h
+../include-MC/MCEventHeader.o: ../include-CORSIKA/COREventHeader.hxx
+../include-MC/MCCphoton.o: ../include-MC/MCCphoton.hxx /usr/include/stdlib.h
+../include-MC/MCCphoton.o: /usr/include/standards.h /usr/include/getopt.h
+../include-MC/MCCphoton.o: /usr/include/sys/types.h
+../include-MC/MCCphoton.o: /usr/include/mach/machine/vm_types.h
+../include-MC/MCCphoton.o: /usr/include/sys/select.h /usr/include/string.h
+../include-MC/MCCphoton.o: /usr/include/strings.h /usr/include/math.h
+atm.o: atm.h /usr/include/stdlib.h /usr/include/standards.h
+atm.o: /usr/include/getopt.h /usr/include/sys/types.h
+atm.o: /usr/include/mach/machine/vm_types.h /usr/include/sys/select.h
+atm.o: /usr/include/stdio.h /usr/include/sys/seek.h /usr/include/va_list.h
+atm.o: /usr/include/sys/limits.h /usr/include/sys/machine/machlimits.h
+atm.o: /usr/include/sys/syslimits.h /usr/include/sys/machine/machtime.h
+atm.o: /usr/include/sys/rt_limits.h /usr/include/string.h
+atm.o: /usr/include/strings.h /usr/include/math.h reflector-v.h
+readparam.o: readparam.h /usr/include/stdlib.h /usr/include/standards.h
+readparam.o: /usr/include/getopt.h /usr/include/sys/types.h
+readparam.o: /usr/include/mach/machine/vm_types.h /usr/include/sys/select.h
+readparam.o: /usr/include/stdio.h /usr/include/sys/seek.h
+readparam.o: /usr/include/va_list.h /usr/include/sys/limits.h
+readparam.o: /usr/include/sys/machine/machlimits.h
+readparam.o: /usr/include/sys/syslimits.h /usr/include/sys/machine/machtime.h
+readparam.o: /usr/include/sys/rt_limits.h /usr/include/string.h
+readparam.o: /usr/include/strings.h /usr/include/math.h /usr/include/float.h
+readparam.o: /usr/include/fp_class.h /usr/include/unistd.h
+readparam.o: /usr/include/sys/access.h reflector-v.h atm.h
+reflector.o: reflector.h /usr/include/stdlib.h /usr/include/standards.h
+reflector.o: /usr/include/getopt.h /usr/include/sys/types.h
+reflector.o: /usr/include/mach/machine/vm_types.h /usr/include/sys/select.h
+reflector.o: /usr/include/stdio.h /usr/include/sys/seek.h
+reflector.o: /usr/include/va_list.h /usr/include/sys/limits.h
+reflector.o: /usr/include/sys/machine/machlimits.h
+reflector.o: /usr/include/sys/syslimits.h /usr/include/sys/machine/machtime.h
+reflector.o: /usr/include/sys/rt_limits.h /usr/include/string.h
+reflector.o: /usr/include/strings.h /usr/include/stdarg.h /usr/include/math.h
+reflector.o: /usr/include/dirent.h /usr/include/unistd.h
+reflector.o: /usr/include/sys/access.h reflector-v.h readparam.h
+reflector.o: /usr/include/float.h /usr/include/fp_class.h atm.h
+reflector.o: ../include-CORSIKA/COREventHeader.hxx
+reflector.o: ../include-CORSIKA/CORParticle.hxx
+reflector.o: ../include-CORSIKA/CORStatfile.hxx
+reflector.o: ../include-MC/MCEventHeader.hxx ../include-MC/MCCphoton.hxx
+reflector.o: /usr/include/ranlib.h /usr/include/ar.h
Index: /branches/start/MagicSoft/Simulation/Detector/Reflector/atm.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Reflector/atm.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Reflector/atm.cxx	(revision 4308)
@@ -0,0 +1,225 @@
+//=//////////////////////////////////////////////////////////////////////
+//=
+//= atm    
+//=
+//= @file        atm.cxx
+//= @desc        Header file
+//= @author      J C Gonzalez
+//= @email       gonzalez@mppmu.mpg.de
+//= @date        Thu May  7 16:24:22 1998
+//=
+//=----------------------------------------------------------------------
+//= 
+//= Created: Thu May  7 16:24:22 1998         
+//= Author:  Jose Carlos Gonzalez             
+//= Purpose: Simulation of atmospheric absorption 
+//= Notes:                                    
+//=    
+//=----------------------------------------------------------------------
+//=
+//= $RCSfile: atm.cxx,v $
+//= $Revision: 1.1.1.1 $
+//= $Author: harald $ 
+//= $Date: 1999-10-29 07:00:32 $
+//=
+//=//////////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+//!@section Source code of |atm.cxx|.
+
+/*!@"
+
+  This section describes briefly the source code for the file
+  |atm.cxx|.
+
+  @"*/
+
+//!@subsection Include files.
+
+/*!@"
+ 
+  All the defines are located in the file {\tt atm.h}.
+
+  @"*/
+
+//!@{
+
+#include "atm.h"
+
+//!@}
+
+//!@subsection Definition of global variables.
+
+//!@{
+
+static ATM_MODELS_TYPE Atm_mod_N = ATM_NOATMOSPHERE;
+static char Atm_mod[ATM_NAME_MAX_LENGTH];
+
+//!@}
+
+//!@subsection The function |atm()|.
+
+//!---------------------------------------------------------------------
+// @name  atm
+//                                                
+// @desc  simulation of atmospheric absorption
+//
+// @var   wavelength    Wavelength of the photon (nm)
+// @var   height        Height of generation (cm)
+// @var   theta         Zenith angle of trajectory(rad)
+//
+// @return    Transmission coefficient
+//
+// @date Mon Sep 14 13:27:56 MET DST 1997
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+float 
+atm(float wavelength, float height, float theta)
+{
+
+  float transmittance;        //@< final transmittance of the atm. (returned)
+
+  transmittance = 1.0;
+
+  switch ( Atm_mod_N ) {
+    
+  case ATM_NOATMOSPHERE:      //@< no atmosphere at all: transmittance = 100%
+
+    break;
+
+  case ATM_90PERCENT:         //@< atmosphere with transmittance = 90%
+
+    transmittance = 0.9;
+    break;
+
+  case ATM_ISOTHERMAL:        //@< isothermal approximation
+
+    // here the transmittance function
+
+    break;
+
+  case ATM_CORSIKA:           //@< atmosphere as defined in CORSIKA
+
+    attenu( &wavelength, &height, &theta, &transmittance);
+    
+    break;
+
+  }
+
+  return ( transmittance );
+
+}
+//!@}
+
+//!---------------------------------------------------------------------
+// @name set_atm_mod        
+//                                                
+// @desc set model of atmospheric absorption
+//
+// @var  i     Model of atmospheric absorption to be used
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void
+set_atm_mod(ATM_MODELS_TYPE i)
+{
+  Atm_mod_N = i;
+  strcpy(Atm_mod, ATM_MODELS_NAMES[ Atm_mod_N ]);
+}
+//!@}
+
+//!---------------------------------------------------------------------
+// @name conv_atm_mod
+//                                                
+// @desc convert string with name of atm.model to number
+//
+// @var  *s    Name of model of atmospheric absorption
+//
+// @return     Number for that model
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+ATM_MODELS_TYPE 
+conv_atm_mod(char *s)
+{
+  int i;
+  char s2[40];
+
+  // look at each model
+  for (i=0; i<=ATM_CORSIKA; i++) {
+    strcpy(s2, ATM_MODELS_NAMES[i]);
+    if (strcmp(s, s2) == NULL)
+      break;
+  }
+
+  // return the name of the model
+  return ( (ATM_MODELS_TYPE) ((i<=ATM_CORSIKA) ? i : -1) );
+
+  //   return ( (ATM_MODELS_TYPE) 0 );
+}
+//!@}
+
+//!---------------------------------------------------------------------
+// @name get_atm_mod
+//                                                
+// @desc get name of the atmospheric model to be used
+//
+// @return    Name of the current atmospheric model to be used
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+char *
+get_atm_mod(void)
+{
+  return (Atm_mod);
+}
+//!@}
+
+//!---------------------------------------------------------------------
+// @name get_atm_mod_n
+//                                                
+// @desc get name of the atmospheric model number i
+//
+// @var   i   Number of atmospheric model
+//
+// @return    Name of corresponding atmospheric model
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+char *
+get_atm_mod_n(ATM_MODELS_TYPE i)
+{
+  return( ATM_MODELS_NAMES[ Atm_mod_N ] );
+}
+//!@}
+
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+//
+// $Log: not supported by cvs2svn $
+// Revision 1.3  1999/03/24  16:32:59  gonzalez
+// REFLECTOR 1.1: Release
+//
+//
+//
+//!@}
+
+//=EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Reflector/atm.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Reflector/atm.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Reflector/atm.h	(revision 4308)
@@ -0,0 +1,145 @@
+//=//////////////////////////////////////////////////////////////////////
+//=
+//= atm    
+//=
+//= @file        atm.cxx
+//= @desc        Header file
+//= @author      J C Gonzalez
+//= @email       gonzalez@mppmu.mpg.de
+//= @date        Thu May  7 16:24:22 1998
+//=
+//=----------------------------------------------------------------------
+//= 
+//= Created: Thu May  7 16:24:22 1998         
+//= Author:  Jose Carlos Gonzalez             
+//= Purpose: Simulation of atmospheric absorption 
+//= Notes:                                    
+//=    
+//=----------------------------------------------------------------------
+//=
+//= $RCSfile: atm.h,v $
+//= $Revision: 1.1.1.1 $
+//= $Author: harald $ 
+//= $Date: 1999-10-29 07:00:32 $
+//=
+//=//////////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+//!@section Source code of |atm.h|.
+
+/*!@"
+
+  In this section you can find the source code for the file |atm.h|.
+
+  @"*/
+
+//!@{
+#ifndef _atm_
+#define _atm_
+
+#ifdef _this_
+#define _define_extern_
+#endif
+
+#ifndef _this_
+#define _this_ atm
+#endif
+//!@}
+
+//!@subsection Include files.
+
+//!@{
+
+#include <iostream.h>
+#include <fstream.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+
+#include "jcmacros.h"
+#include "jcdebug.h"
+
+#include "reflector-v.h"
+
+//!@}
+
+//!@subsection Macro-definitions, and constants.
+
+//!@{
+
+// now we define the list ITEM_LIST of possible items in
+// the parameters file. note that they are functions of
+// T(x). we will change T(x) to be the real item or the
+// string of this item when needed
+
+#define ATM_MODELS_LIST   /* LIST OF POSIBLE MODELS OF ATMOSPHERE */       \
+T(ATM_NOATMOSPHERE),      /* no atmosphere at all: transmittance = 100% */ \
+T(ATM_90PERCENT),         /* atmosphere with transmittance = 90% */        \
+T(ATM_ISOTHERMAL),        /* isothermal approximation */                   \
+T(ATM_CORSIKA)            /* atmosphere as defined in CORSIKA */         
+  
+#define T(x)  x               // define T() as the name as it is
+
+enum ATM_MODELS_TYPE {
+  ATM_MODELS_LIST
+};
+
+#undef T
+
+#define T(x)  #x              // define T() as the string of x
+
+char *const ATM_MODELS_NAMES[] = {
+  ATM_MODELS_LIST
+};
+
+#undef T
+
+#define ATM_NAME_MAX_LENGTH 40
+
+float atm(float wavelength, float height, float theta);
+#ifdef _define_extern_
+extern void set_atm_mod(ATM_MODELS_TYPE i);
+extern ATM_MODELS_TYPE conv_atm_mod(char *atmod);
+#else
+void set_atm_mod(ATM_MODELS_TYPE i);
+ATM_MODELS_TYPE conv_atm_mod(char *atmod);
+#endif
+char *get_atm_mod();
+char *get_atm_mod_n(ATM_MODELS_TYPE i);
+
+
+// routines written in Fortran 
+
+#define attenu attenu_
+extern "C" {
+  void attenu(float *, float *, float *, float *);
+}
+
+//!@}
+
+//!@{
+
+#endif // ! _atm_
+
+//!@}
+
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+
+/*
+ * $Log: not supported by cvs2svn $
+ * Revision 1.3  1999/03/24  16:33:02  gonzalez
+ * REFLECTOR 1.1: Release
+ *
+ * Revision 1.2  1999/01/21  16:03:32  gonzalez
+ * Only small modifications
+ *
+ */
+
+//!@}
+//=EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Reflector/attenu.f
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Reflector/attenu.f	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Reflector/attenu.f	(revision 4308)
@@ -0,0 +1,422 @@
+*********************************************************************
+*                                                                   *
+*     Atmospheric Absorption for Rayleigh, Mie and Ozone.           * 
+*                                                                   *
+*     Created: May-98                                               *
+*     Author: Aitor Ibarra Ibaibarriaga                             *
+*             Jose Carlos Gonzalez                                  *
+*                                                                   *
+*********************************************************************
+
+c @T \newpage
+
+c @section Source code of {\tt attenu.f}
+
+* @text 
+* Copyright $\copyright$ 1998, Aitor Ibarra Ibaibarriaga
+* @endtext
+c @code
+
+      SUBROUTINE attenu(wavelength, height, theta, tr_atmos)
+
+C----------------------------------------------------------------------C
+C  RHO (DENSITY) F(UNCTION)                                            C
+C                                                                      C
+C  CALCULATES DENSITY (G/CM**3) OF ATMOSPHERE DEPENDING ON HEIGHT (CM) C
+C  (US STANDARD ATMOSPHERE)                                            C
+C  THIS FUNCTION IS CALLED FROM ININKG, UPDATE, CERENE, CERENH         C
+C  ARGUMENT:                                                           C 
+C   ARG    = HEIGHT IN CM                                              C
+C----------------------------------------------------------------------C
+
+      COMMON /ATMOS/   AATM,BATM,CATM,LAHG,RHOF,LONG,OZ_ABI,AE_ABI
+      DOUBLE PRECISION AATM(5),BATM(5),CATM(5),LAHG(5),RHOF(5),Lm(12)
+      DOUBLE PRECISION H,RT, m,OZ_ABI(48,12),AE_ABI(28,12)
+      DOUBLE PRECISION XR, TOT_OZ, TOT_AE, T_Ray,T_Mie, T_Oz,
+     + RHO_TOT, RHO_FI, RHOFP
+      
+      REAL wavelength, height, theta, tr_atmos
+      real trr, trm, tro
+      REAL LONG(12)
+      INTEGER I,CON_OZ,CON_MI J, ROW
+
+      DATA OZ_ABI / 
+     + 0.2880000D+00,0.5405000D+00,0.7775000D+00,0.1009000D+01,
+     + 0.1241500D+01,0.1480500D+01,0.1750500D+01,0.2085000D+01,
+     + 0.2514500D+01,0.3087500D+01,0.3864500D+01,0.4817500D+01,
+     + 0.5847500D+01,0.6917500D+01,0.8052500D+01,0.9287499D+01,
+     + 0.1068750D+02,0.1231250D+02,0.1415750D+02,0.1617750D+02,
+     + 0.1827250D+02,0.2034750D+02,0.2232750D+02,0.2414750D+02,
+     + 0.2575750D+02,0.2715250D+02,0.2836750D+02,0.2941100D+02,
+     + 0.3031000D+02,0.3109250D+02,0.3176300D+02,0.3232750D+02,
+     + 0.3281200D+02,0.3323200D+02,0.3358350D+02,0.3387750D+02,
+     + 0.3412650D+02,0.3434000D+02,0.3451900D+02,0.3466250D+02,
+     + 0.3477480D+02,0.3486355D+02,0.3493355D+02,0.3498775D+02,
+     + 0.3503010D+02,0.3506360D+02,0.3509020D+02,0.3511185D+02, 
+     + 0.2740000D-01,0.5140000D-01,0.7395000D-01,0.9600000D-01,
+     + 0.1181500D+00,0.1409000D+00,0.1666000D+00,0.1984500D+00,
+     + 0.2393500D+00,0.2939500D+00,0.3679500D+00,0.4589500D+00,
+     + 0.5573000D+00,0.6593000D+00,0.7673000D+00,0.8848000D+00,
+     + 0.1017800D+01,0.1172300D+01,0.1348300D+01,0.1540800D+01,
+     + 0.1740300D+01,0.1937800D+01,0.2126300D+01,0.2299800D+01,
+     + 0.2453300D+01,0.2586300D+01,0.2702300D+01,0.2801900D+01,
+     + 0.2887550D+01,0.2962050D+01,0.3025900D+01,0.3079700D+01,
+     + 0.3125850D+01,0.3165850D+01,0.3199350D+01,0.3227400D+01,
+     + 0.3251150D+01,0.3271500D+01,0.3288600D+01,0.3302300D+01,
+     + 0.3312995D+01,0.3321445D+01,0.3328110D+01,0.3333270D+01,
+     + 0.3337305D+01,0.3340500D+01,0.3343035D+01,0.1334510D+01,
+     + 0.2435000D-02,0.4570000D-02,0.6575000D-02,0.8535000D-02,
+     + 0.1050500D-01,0.1253000D-01,0.1481500D-01,0.1764500D-01,
+     + 0.2128000D-01,0.2613500D-01,0.3272000D-01,0.4081000D-01,
+     + 0.4957000D-01,0.5866000D-01,0.6827000D-01,0.7875500D-01,
+     + 0.9065500D-01,0.1044050D+00,0.1200050D+00,0.1371050D+00,
+     + 0.1548550D+00,0.1724050D+00,0.1891550D+00,0.2045550D+00,
+     + 0.2182050D+00,0.2300550D+00,0.2403600D+00,0.2492200D+00,
+     + 0.2568350D+00,0.2634550D+00,0.2691300D+00,0.2739150D+00,
+     + 0.2780200D+00,0.2815750D+00,0.2845500D+00,0.2870400D+00,
+     + 0.2891500D+00,0.2909600D+00,0.2924750D+00,0.2936900D+00,
+     + 0.2946425D+00,0.2953940D+00,0.2959865D+00,0.2964455D+00,
+     + 0.2968045D+00,0.2970885D+00,0.2973140D+00,0.2974975D+00,
+     + 0.1740000D-03,0.3265000D-03,0.4695000D-03,0.6090000D-03,
+     + 0.7495000D-03,0.8940000D-03,0.1057000D-02,0.1259000D-02,
+     + 0.1518000D-02,0.1863500D-02,0.2332500D-02,0.2909000D-02,
+     + 0.3533000D-02,0.4180500D-02,0.4865000D-02,0.5610500D-02,
+     + 0.6455500D-02,0.7435000D-02,0.8550000D-02,0.9770000D-02,
+     + 0.1103500D-01,0.1229000D-01,0.1348500D-01,0.1458000D-01,
+     + 0.1555100D-01,0.1639550D-01,0.1713150D-01,0.1776300D-01,
+     + 0.1830600D-01,0.1877800D-01,0.1918200D-01,0.1952250D-01,
+     + 0.1981500D-01,0.2006850D-01,0.2028050D-01,0.2045801D-01,
+     + 0.2060851D-01,0.2073750D-01,0.2084566D-01,0.2093241D-01,
+     + 0.2100026D-01,0.2105381D-01,0.2109606D-01,0.2112876D-01,
+     + 0.2115431D-01,0.2117456D-01,0.2119066D-01,0.2120376D-01,
+     + 0.4885000D-05,0.9170000D-05,0.1319500D-04,0.1713000D-04,
+     + 0.2108000D-04,0.2513500D-04,0.2971500D-04,0.3539500D-04,
+     + 0.4268500D-04,0.5242500D-04,0.6562500D-04,0.8182500D-04,
+     + 0.9937500D-04,0.1175750D-03,0.1368250D-03,0.1578250D-03,
+     + 0.1816250D-03,0.2091750D-03,0.2404750D-03,0.2747750D-03,
+     + 0.3103250D-03,0.3454750D-03,0.3790250D-03,0.4098750D-03,
+     + 0.4372250D-03,0.4609750D-03,0.4816750D-03,0.4994750D-03,
+     + 0.5147750D-03,0.5280750D-03,0.5394750D-03,0.5490700D-03,
+     + 0.5572950D-03,0.5644250D-03,0.5703950D-03,0.5753899D-03,
+     + 0.5796200D-03,0.5832500D-03,0.5862950D-03,0.5887350D-03,
+     + 0.5906400D-03,0.5921450D-03,0.5933350D-03,0.5942565D-03,
+     + 0.5949755D-03,0.5955440D-03,0.5959955D-03,0.5963635D-03,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.0000000D+00,0.0000000D+00,0.0000000D+00,0.0000000D+00,
+     + 0.9525000D-05,0.1785500D-04,0.2567500D-04,0.3332000D-04,
+     + 0.4100000D-04,0.4889000D-04,0.5779500D-04,0.6881000D-04,
+     + 0.8296000D-04,0.1018600D-03,0.1275100D-03,0.1590600D-03,
+     + 0.1932100D-03,0.2286100D-03,0.2660100D-03,0.3067600D-03,
+     + 0.3529600D-03,0.4065100D-03,0.4674100D-03,0.5341100D-03,
+     + 0.6032600D-03,0.6717100D-03,0.7370100D-03,0.7970100D-03,
+     + 0.8501600D-03,0.8963600D-03,0.9366100D-03,0.9711101D-03,
+     + 0.1000810D-02,0.1026660D-02,0.1048810D-02,0.1067460D-02,
+     + 0.1083460D-02,0.1097310D-02,0.1108910D-02,0.1118640D-02,
+     + 0.1126865D-02,0.1133915D-02,0.1139830D-02,0.1144570D-02,
+     + 0.1148275D-02,0.1151200D-02,0.1153510D-02,0.1155300D-02,
+     + 0.1156700D-02,0.1162205D-02,0.1170990D-02,0.1178145D-02,
+     + 0.9360000D-04,0.1757000D-03,0.2528000D-03,0.3281500D-03,
+     + 0.4038500D-03,0.4816500D-03,0.5694500D-03,0.6784000D-03,
+     + 0.8184000D-03,0.1004900D-02,0.1257900D-02,0.1568900D-02,
+     + 0.1905400D-02,0.2254400D-02,0.2623400D-02,0.3025400D-02,
+     + 0.3480900D-02,0.4008900D-02,0.4609400D-02,0.5266900D-02,
+     + 0.5948400D-02,0.6622900D-02,0.7266400D-02,0.7857900D-02,
+     + 0.8381900D-02,0.8836901D-02,0.9233401D-02,0.9573901D-02,
+     + 0.9866901D-02,0.1012140D-01,0.1033940D-01,0.1052340D-01,
+     + 0.1068140D-01,0.1081840D-01,0.1093290D-01,0.1102855D-01,
+     + 0.1110965D-01,0.1117920D-01,0.1123750D-01,0.1128425D-01,
+     + 0.1132085D-01,0.1134975D-01,0.1137255D-01,0.1139020D-01,
+     + 0.1140400D-01,0.1141492D-01,0.1142358D-01,0.1143063D-01,
+     + 0.2500000D-03,0.4690000D-03,0.6745000D-03,0.8755000D-03,
+     + 0.1077500D-02,0.1285000D-02,0.1519500D-02,0.1810000D-02,
+     + 0.2182500D-02,0.2679500D-02,0.3353500D-02,0.4182000D-02,
+     + 0.5079000D-02,0.6010000D-02,0.6994000D-02,0.8064000D-02,
+     + 0.9279000D-02,0.1068900D-01,0.1228900D-01,0.1403900D-01,
+     + 0.1585400D-01,0.1765400D-01,0.1937400D-01,0.2095400D-01,
+     + 0.2235400D-01,0.2356900D-01,0.2462600D-01,0.2553350D-01,
+     + 0.2631400D-01,0.2699250D-01,0.2757350D-01,0.2806300D-01,
+     + 0.2848350D-01,0.2884800D-01,0.2915300D-01,0.2940850D-01,
+     + 0.2962500D-01,0.2981050D-01,0.2996600D-01,0.3009050D-01,
+     + 0.3018780D-01,0.3026480D-01,0.3032550D-01,0.3037250D-01,
+     + 0.3040925D-01,0.3043835D-01,0.3046145D-01,0.3048025D-01,
+     + 0.3585000D-03,0.6725000D-03,0.9675000D-03,0.1256000D-02,
+     + 0.1545500D-02,0.1843000D-02,0.2179000D-02,0.2595500D-02,
+     + 0.3130000D-02,0.3843500D-02,0.4813500D-02,0.6003500D-02,
+     + 0.7288500D-02,0.8623499D-02,0.1003850D-01,0.1157850D-01,
+     + 0.1331850D-01,0.1533350D-01,0.1762850D-01,0.2014350D-01,
+     + 0.2274850D-01,0.2532850D-01,0.2779350D-01,0.3005850D-01,
+     + 0.3206350D-01,0.3380350D-01,0.3531851D-01,0.3661850D-01,
+     + 0.3773851D-01,0.3871351D-01,0.3954751D-01,0.4025051D-01,
+     + 0.4085401D-01,0.4137701D-01,0.4181501D-01,0.4218151D-01,
+     + 0.4249151D-01,0.4275751D-01,0.4298101D-01,0.4316001D-01,
+     + 0.4330001D-01,0.4341061D-01,0.4349771D-01,0.4356516D-01,
+     + 0.4361791D-01,0.4365961D-01,0.4369271D-01,0.4371971D-01,
+     + 0.1685000D-03,0.3160000D-03,0.4545000D-03,0.5900000D-03,
+     + 0.7260000D-03,0.8655000D-03,0.1023000D-02,0.1218500D-02,
+     + 0.1469500D-02,0.1804500D-02,0.2259000D-02,0.2817500D-02,
+     + 0.3422000D-02,0.4049500D-02,0.4712999D-02,0.5434999D-02,
+     + 0.6252999D-02,0.7203000D-02,0.8283000D-02,0.9462999D-02,
+     + 0.1068800D-01,0.1190300D-01,0.1306300D-01,0.1412800D-01,
+     + 0.1507000D-01,0.1588850D-01,0.1660150D-01,0.1721300D-01,
+     + 0.1773900D-01,0.1819650D-01,0.1858850D-01,0.1891850D-01,
+     + 0.1920150D-01,0.1944700D-01,0.1965250D-01,0.1982450D-01,
+     + 0.1997050D-01,0.2009550D-01,0.2020010D-01,0.2028410D-01,
+     + 0.2034985D-01,0.2040175D-01,0.2044265D-01,0.2047435D-01,
+     + 0.2049915D-01,0.2051875D-01,0.2053430D-01,0.2054695D-01 /
+
+      DATA AE_ABI /
+     + 0.3645000E-01,0.5211000E-01,0.5913000E-01,0.6203000E-01,
+     + 0.6304000E-01,0.6340450E-01,0.6353275E-01,0.6358405E-01,
+     + 0.6361780E-01,0.6364885E-01,0.6367990E-01,0.6371365E-01,
+     + 0.6375955E-01,0.6383380E-01,0.6392965E-01,0.6403360E-01,
+     + 0.6414810E-01,0.6426660E-01,0.6438010E-01,0.6448960E-01,
+     + 0.6459510E-01,0.6468170E-01,0.6474110E-01,0.6478295E-01,
+     + 0.6481670E-01,0.6484775E-01,0.6487610E-01,0.6490240E-01,
+     + 0.3510000E-01,0.5018000E-01,0.5694000E-01,0.5973500E-01,
+     + 0.6071000E-01,0.6106100E-01,0.6118450E-01,0.6123390E-01,
+     + 0.6126640E-01,0.6129630E-01,0.6132620E-01,0.6135870E-01,
+     + 0.6140290E-01,0.6147440E-01,0.6156670E-01,0.6166680E-01,
+     + 0.6177730E-01,0.6189180E-01,0.6200130E-01,0.6210680E-01,
+     + 0.6220820E-01,0.6229140E-01,0.6234860E-01,0.6238890E-01,
+     + 0.6242140E-01,0.6245130E-01,0.6247860E-01,0.6250395E-01,
+     + 0.3375000E-01,0.4825000E-01,0.5475000E-01,0.5744000E-01,
+     + 0.5838000E-01,0.5871750E-01,0.5883625E-01,0.5888375E-01,
+     + 0.5891500E-01,0.5894375E-01,0.5897250E-01,0.5900375E-01,
+     + 0.5904625E-01,0.5911500E-01,0.5920375E-01,0.5930000E-01,
+     + 0.5940650E-01,0.5951700E-01,0.5962200E-01,0.5972300E-01,
+     + 0.5982050E-01,0.5990050E-01,0.5995550E-01,0.5999425E-01,
+     + 0.6002550E-01,0.6005425E-01,0.6008050E-01,0.6010490E-01,
+     + 0.3240000E-01,0.4632000E-01,0.5256000E-01,0.5514000E-01,
+     + 0.5604000E-01,0.5636400E-01,0.5647800E-01,0.5652360E-01,
+     + 0.5655360E-01,0.5658120E-01,0.5660880E-01,0.5663880E-01,
+     + 0.5667960E-01,0.5674560E-01,0.5683080E-01,0.5692320E-01,
+     + 0.5702520E-01,0.5713070E-01,0.5723140E-01,0.5732860E-01,
+     + 0.5742220E-01,0.5749900E-01,0.5755180E-01,0.5758900E-01,
+     + 0.5761900E-01,0.5764660E-01,0.5767180E-01,0.5769520E-01,
+     + 0.3240000E-01,0.4632000E-01,0.5256000E-01,0.5514000E-01,
+     + 0.5604000E-01,0.5636400E-01,0.5647800E-01,0.5652360E-01,
+     + 0.5655360E-01,0.5658120E-01,0.5660880E-01,0.5663880E-01,
+     + 0.5667960E-01,0.5674560E-01,0.5683080E-01,0.5692320E-01,
+     + 0.5702520E-01,0.5713070E-01,0.5723140E-01,0.5732860E-01,
+     + 0.5742220E-01,0.5749900E-01,0.5755180E-01,0.5758900E-01,
+     + 0.5761900E-01,0.5764660E-01,0.5767180E-01,0.5769520E-01,
+     + 0.3105000E-01,0.4439000E-01,0.5037000E-01,0.5284500E-01,
+     + 0.5371000E-01,0.5402050E-01,0.5412975E-01,0.5417345E-01,
+     + 0.5420220E-01,0.5422865E-01,0.5425510E-01,0.5428385E-01,
+     + 0.5432295E-01,0.5438620E-01,0.5446785E-01,0.5455640E-01,
+     + 0.5465390E-01,0.5475485E-01,0.5485145E-01,0.5494460E-01,
+     + 0.5503430E-01,0.5510790E-01,0.5515850E-01,0.5519415E-01,
+     + 0.5522290E-01,0.5524935E-01,0.5527350E-01,0.5529590E-01,
+     + 0.2700000E-01,0.3860000E-01,0.4380000E-01,0.4595000E-01,
+     + 0.4670000E-01,0.4697000E-01,0.4706500E-01,0.4710300E-01,
+     + 0.4712800E-01,0.4715100E-01,0.4717400E-01,0.4719900E-01,
+     + 0.4723300E-01,0.4728800E-01,0.4735900E-01,0.4743600E-01,
+     + 0.4752100E-01,0.4760900E-01,0.4769300E-01,0.4777400E-01,
+     + 0.4785200E-01,0.4791600E-01,0.4796000E-01,0.4799100E-01,
+     + 0.4801600E-01,0.4803900E-01,0.4806000E-01,0.4807950E-01,
+     + 0.2430000E-01,0.3474000E-01,0.3942000E-01,0.4135500E-01,
+     + 0.4203000E-01,0.4227300E-01,0.4235850E-01,0.4239270E-01,
+     + 0.4241520E-01,0.4243590E-01,0.4245660E-01,0.4247910E-01,
+     + 0.4250970E-01,0.4255920E-01,0.4262310E-01,0.4269240E-01,
+     + 0.4276890E-01,0.4284810E-01,0.4292370E-01,0.4299660E-01,
+     + 0.4306680E-01,0.4312440E-01,0.4316400E-01,0.4319190E-01,
+     + 0.4321440E-01,0.4323510E-01,0.4325400E-01,0.4327155E-01,
+     + 0.2255000E-01,0.3225500E-01,0.3659500E-01,0.3838900E-01,
+     + 0.3901500E-01,0.3924050E-01,0.3931985E-01,0.3935155E-01,
+     + 0.3937240E-01,0.3939160E-01,0.3941080E-01,0.3943165E-01,
+     + 0.3946005E-01,0.3950600E-01,0.3956530E-01,0.3962960E-01,
+     + 0.3970055E-01,0.3977400E-01,0.3984415E-01,0.3991180E-01,
+     + 0.3997695E-01,0.4003040E-01,0.4006715E-01,0.4009305E-01,
+     + 0.4011390E-01,0.4013310E-01,0.4015065E-01,0.4016695E-01,
+     + 0.2130000E-01,0.3044500E-01,0.3455500E-01,0.3625450E-01,
+     + 0.3684700E-01,0.3706050E-01,0.3713575E-01,0.3716575E-01,
+     + 0.3718550E-01,0.3720370E-01,0.3722190E-01,0.3724165E-01,
+     + 0.3726850E-01,0.3731195E-01,0.3736805E-01,0.3742890E-01,
+     + 0.3749605E-01,0.3756555E-01,0.3763190E-01,0.3769590E-01,
+     + 0.3775750E-01,0.3780805E-01,0.3784280E-01,0.3786725E-01,
+     + 0.3788700E-01,0.3790520E-01,0.3792180E-01,0.3793720E-01,
+     + 0.2025000E-01,0.2895000E-01,0.3285000E-01,0.3446250E-01,
+     + 0.3502500E-01,0.3522750E-01,0.3529875E-01,0.3532725E-01,
+     + 0.3534600E-01,0.3536325E-01,0.3538050E-01,0.3539925E-01,
+     + 0.3542475E-01,0.3546600E-01,0.3551925E-01,0.3557700E-01,
+     + 0.3564075E-01,0.3570675E-01,0.3576975E-01,0.3583050E-01,
+     + 0.3588900E-01,0.3593700E-01,0.3597000E-01,0.3599325E-01,
+     + 0.3601200E-01,0.3602925E-01,0.3604500E-01,0.3605960E-01,
+     + 0.1920000E-01,0.2745500E-01,0.3114500E-01,0.3267050E-01,
+     + 0.3320300E-01,0.3339470E-01,0.3346215E-01,0.3348915E-01,
+     + 0.3350690E-01,0.3352320E-01,0.3353950E-01,0.3355725E-01,
+     + 0.3358140E-01,0.3362045E-01,0.3367085E-01,0.3372550E-01,
+     + 0.3378585E-01,0.3384835E-01,0.3390800E-01,0.3396550E-01,
+     + 0.3402090E-01,0.3406635E-01,0.3409760E-01,0.3411965E-01,
+     + 0.3413740E-01,0.3415370E-01,0.3416860E-01,0.3418245E-01 /
+
+      DATA BATM / 1222.6562D0,1144.9069D0,1305.5948D0,540.1778D0,0.D0  /
+      DATA CATM / 994186.38D0,878153.55D0,636143.04D0,772170.16D0,1.D-9/
+      DATA LAHG / 2000.0D2,4.0D5,1.0D6,4.0D6,1.0D7 /
+      DATA Lm /3.70D5,3.85D5,4.0D5,4.17D5,4.17D5,4.35D5,5.0D5,5.56D5,
+     + 5.99D5,6.33D5, 6.67D5,7.04D5 /
+      DATA LONG /
+     +    280.0, 
+     +    300.0, 
+     +    320.0,
+     +    340.0,
+     +    360.0,
+     +    380.0,
+     +    400.0,
+     +    450.0,
+     +    500.0,
+     +    550.0,
+     +    600.0,
+     +    650.0 /
+      DATA PI / 3.141592654D0 /
+      PARAMETER (RT=6348.0D5)
+
+***********************************************************************
+*
+*     SCATTERING PARAMETERS FOR RAYLEIGH:
+*
+*     MEAN FREE PATH FOR SCATTERING RAYLEIGH  (g/cm^2)
+      PARAMETER (XR=2.970D3)
+***********************************************************************
+        
+
+      T_Ray = 1.0
+      T_Mie = 1.0
+      T_Oz = 1.0
+      
+      H = -RT + SQRT(RT**2 + (height/COS(theta))**2 +
+     +     (2.0D0*RT*height))
+
+      ROW = AINT(((H+1.)/1.0E5))
+              
+***********************************************************************
+*
+*     LARGE ZENITH ANGLE FACTOR (AIR MASS):
+      
+      
+      m= (1.D0/H)*(SQRT((RT*COS(theta))**2+(2*RT*H)+H**2)-
+     +     (RT*COS(theta)))
+**********************************************************************   
+          
+
+*     RAYLEIGH SCATTERING
+
+      RHOTOT = 0.0
+      do 11 i=1,5
+        RHOF(i) = 0
+ 11   continue
+
+      DO 91 I=2,5
+        IF ( H .LT. LAHG(I) ) THEN
+          RHOTOT = RHOTOT +
+     +        BATM(I-1)*(EXP(-LAHG(I-1)/CATM(I-1) ) -
+     +        EXP(-H/CATM(I-1)))
+          GOTO 92
+        ELSE
+          RHOTOT = RHOTOT +
+     +        BATM(I-1)*(EXP(-LAHG(I-1)/CATM(I-1) ) -
+     +        EXP(-LAHG(I)/CATM(I-1)))
+        ENDIF
+ 91   CONTINUE
+
+ 92   RHO_FI = m*RHOTOT
+
+      T_Ray = EXP(-(RHO_FI/XR)*(400.D0/wavelength)**4)
+   
+
+***************************************************************************
+*                                                                         *
+*     MIE ABSORPTION: WE USE FOR HEIGHTS LOWER THAN 10 Km AN EXACT FORMULA*
+*     FOR THE AEROSOL DENSITY, AND WE USE A TABLE FOR HIGHTS HIGHER THAN  *
+*     10 Km. WE TAKE THE TABLE FROM THE ALTERMAN ARTICLE.                 *
+***************************************************************************
+      
+
+***************************************************************************
+*                                                                         *
+*     MIE SCATTERING PARAMETERS                                           *
+      Hm = 1.2D5
+***************************************************************************
+
+      IF (ROW.GT.27) THEN
+        ROW=28
+      ENDIF
+
+
+        CON_MI = 2
+
+ 1001   IF (ABS(LONG(CON_MI)-wavelength).LT.0.01) THEN
+          TOT_AE =AE_ABI(ROW,CON_MI)
+        ELSEIF (LONG(CON_MI).GT.wavelength) THEN
+          A = (AE_ABI(ROW,CON_MI)-AE_ABI(ROW,CON_MI-1))/
+     +        (LONG(CON_MI) - LONG(CON_MI-1))
+          B = AE_ABI(ROW,CON_MI) - (A*LONG(CON_MI))
+          TOT_AE = A*wavelength + B
+        ELSE
+          CON_MI = CON_MI +1
+          GOTO 1001
+        ENDIF
+        T_Mie =  EXP(-(m*TOT_AE))    
+
+
+
+***********************************************************************
+*                                                                     *    
+*     OZONE ABSORPTION: We used the Elterman table.                   *
+*                                                                     *
+***********************************************************************
+      IF (ROW.GT.47) THEN
+        ROW = 47
+      ENDIF
+
+      CON_OZ = 2
+ 2001 IF (LONG(CON_OZ).GT.wavelength) THEN
+         A = (OZ_ABI(ROW,CON_OZ)-OZ_ABI(ROW,CON_OZ-1))/
+     +        (LONG(CON_OZ) - LONG(CON_OZ-1))
+         B = OZ_ABI(ROW,CON_OZ) - (A*LONG(CON_OZ))
+         TOT_OZ = (A* wavelength)+B
+      ELSEIF (ABS(LONG(CON_OZ)-wavelength).LT.0.01) THEN
+         TOT_OZ = OZ_ABI(ROW,CON_OZ)
+      ELSE
+        CON_OZ = CON_OZ + 1
+        GOTO 2001
+      ENDIF
+
+      T_Oz = EXP(-(m*TOT_OZ))         
+
+************************************************************************
+*                                                                      *
+*     TOTAL TRANSMISSION OF THE ATMOSPHERE: (RAYLEIGH + MIE + OZONE)   *
+************************************************************************
+
+      tr_atmos = T_Ray*T_Mie*T_Oz
+
+      RETURN
+
+      END
+
+c @endcode
+
+c EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Reflector/config.mk
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Reflector/config.mk	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Reflector/config.mk	(revision 4308)
@@ -0,0 +1,61 @@
+##################################################################
+#
+# config.mk
+#
+# @file        config.mk
+# @title       small configuration file for Makefile
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the reflector program
+# Notes:   
+#    
+#---------------------------------------------------------------
+# $RCSfile: config.mk,v $
+# $Revision: 1.1.1.1 $
+# $Author: harald $ 
+# $Date: 1999-10-29 07:00:33 $
+##################################################################
+# @maintitle
+
+# @code
+
+# program
+
+PROGRAM = camera
+
+# compilers & tools
+
+CC            = cc
+CXX           = cxx
+F77           = f77
+
+DOCUM         = ../sus/sus
+RATE          = ../../comstat/comstat -g -p 
+
+# includes		
+
+INCLUDE       = ../include-GENERAL
+INCLUDE_COR   = ../include-CORSIKA
+INCLUDE_MC    = ../include-MC
+INCLUDE_REFL  = .
+
+OPTIM    = -O
+DEBUG    = -g
+
+# libraries
+
+RANLIBDIR = ../lib
+CERNDIR = /CERN
+
+# system
+
+SYSTEM  = osf
+
+# @endcode
+##EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Reflector/param
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Reflector/param	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Reflector/param	(revision 4308)
@@ -0,0 +1,37 @@
+reflector 0.3                                      -*- sh -*-
+# @T \newpage
+# @section Source code of {\tt param}
+# @code
+#
+# Sample parameters file
+#
+verbose_level 0
+#
+#fixed_target  0. 0.
+#range_events 1 2946 
+#skip 1 2946
+#range_events 381 382
+#max_events   2
+#energy_cuts   800. 1000.
+#
+ct_file        magic.def 
+#
+#output_file   /hd80/MC/CT1/ana/g_magic_run16.rfl
+output_file   ./p.dummy
+#
+#atm_model     ATM_CORSIKA
+atm_model     ATM_NOATMOSPHERE
+#
+data_paths 1
+./
+#
+data_from_stdin
+data_to_stdout
+#
+#output_file   ./pb.rfl
+#parallel_beam  0. 0. 0. 0. 2000. 2000. 300 300 1.e7
+#pm_parallel_beam unnamed.ppm 2. 10000.
+#
+end_file
+#
+# @endcode
Index: /branches/start/MagicSoft/Simulation/Detector/Reflector/readparam.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Reflector/readparam.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Reflector/readparam.cxx	(revision 4308)
@@ -0,0 +1,853 @@
+//=//////////////////////////////////////////////////////////////////////
+//=
+//= readparam            
+//=
+//= @file        readparam.cxx
+//= @desc        Reading of parameters file
+//= @author      J C Gonzalez
+//= @email       gonzalez@mppmu.mpg.de
+//= @date        Thu May  7 16:24:22 1998
+//=
+//=----------------------------------------------------------------------
+//=
+//= Created: Thu May  7 16:24:22 1998
+//= Author:  Jose Carlos Gonzalez
+//= Purpose: Program for reflector simulation
+//= Notes:   See files README for details
+//=    
+//=----------------------------------------------------------------------
+//=
+//= $RCSfile: readparam.cxx,v $
+//= $Revision: 1.1.1.1 $
+//= $Author: harald $ 
+//= $Date: 1999-10-29 07:00:33 $
+//=
+//=//////////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+//!@section Source code of |readparam.cxx|.
+
+/*!@"
+
+  This section describes briefly the source code for the file
+  |readparam.cxx|. All the defines it uses are located in the files
+  |readparam.h| and |atm.h|. In the first one we can see the
+  definitions of the commands available for the parameters file. We
+  will describe these commands later on. Please, note that this
+  program is still in development, and more commands will be added
+  soon.
+
+  @"*/
+
+//!@subsection Includes and Global variables definition.
+
+/*!@" 
+
+  All the defines are located in the file |readparam.h|.
+
+  @"*/
+ 
+//!@{
+
+#include "readparam.h"
+
+//!@}
+
+//!@subsection Definition of global variables.
+
+/*!@"
+
+  Here we define the global variables where the values from the
+  parameters file are stored.
+
+  @"*/
+
+//!@{
+
+//@: list of paths to get data from
+static char **Paths_list;   
+
+//@: number of paths
+static int Num_of_paths = 1; 
+
+//@: output filename
+static char Output_filename[PATH_MAX_LENGTH];
+
+//@: name of the CT def. file
+static char CT_filename[PATH_MAX_LENGTH]; 
+
+//@: verbosity
+static VerboseLevel verbose = VERBOSE_DEFAULT;
+
+//@: fixed target zenith angle (theta)
+static float fixed_Theta;
+
+//@: fixed target zenith angle (theta)
+static float fixed_Phi;
+
+//@: lower limits for the energy of the showers to be used
+static float low_Ecut = 0.0;        
+
+//@: lower limits for the energy of the showers to be used
+static float high_Ecut = 100000.0;
+
+//@: are we using fixed target?
+static int is_Fixed_Target = FALSE; 
+
+//@: maximum number of events to read
+static int max_Events = 50000; 
+
+//@: range of events to read
+static int first_Event=0, last_Event=1000000; 
+
+//@: random seeds
+static long int Seeds[2] = {3141592L, 2718182L}; 
+
+//@: flag: blocking?
+static int Block=0;
+
+//@: flag: random pointing?
+static int Random_Pointing = FALSE;
+
+//@: flag: random pointing maximum distance
+static float Random_Pointing_MaxDist;
+
+//@: flag: do we read from STDIN?
+static int Data_From_STDIN = FALSE;
+
+//@: flag: do we write to  STDOUT?
+static int Data_To_STDOUT = FALSE;
+
+//!@}
+
+/*!@"
+  
+  Here we define the global variables where the parameters of a
+  parallel beam of light will be stored.
+
+  @"*/
+
+//!@{
+
+static int   pb_ParallelBeam = FALSE;
+static int   pb_ParallelBeamPM = FALSE;
+static float pb_Theta, pb_Phi, pb_X, pb_Y; 
+static float pb_Height; 
+static float pb_LengthX, pb_LengthY, pb_NX, pb_NY;
+static float pb_Scale;
+static char  pb_Filename[40];
+
+//!@}
+
+//!@subsection The function |readparam()|.
+
+//!---------------------------------------------------------------------
+// @name  creadparam
+//                                                
+// @desc  read parameters from the stdin / parameters file
+//
+// @var   *filename  Name of the parameters file (NULL->STDIN)
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{
+void 
+readparam(char * filename)
+{
+  char sign[] = GLUE_postp( PROGRAM, VERSION ); // initialize sign
+  char line[LINE_MAX_LENGTH];    // line to get from the stdin
+  char token[ITEM_MAX_LENGTH];   // a single token
+  char atm[ATM_NAME_MAX_LENGTH]; // name of the atm. model from stdin
+  int i, j;                      // dummy counters
+  ifstream ifile;
+
+  // use cin or ifile (reading from STDIN or from parameters file?
+  if ( filename != NULL )
+    ifile.open( filename );
+
+  // get signature
+  if ( filename != NULL )
+    ifile.getline(line, LINE_MAX_LENGTH);
+  else
+    cin.getline(line, LINE_MAX_LENGTH);
+  line[strlen(SIGNATURE)] = '\0';
+  strcpy(line, sign);
+  if (strcmp(sign, SIGNATURE) != 0) {
+    cerr << "ERROR: Signature of parameters file is not correct\n";
+    cerr << '"' << sign << '"' << '\n';
+    cerr << "should be: " << SIGNATURE << '\n';
+    exit(1);
+  }
+
+  // loop till the "end" directive is reached
+  int is_end = FALSE;
+  while (! is_end) {          
+
+    // get line from file or stdin
+    if ( filename != NULL )
+      ifile.getline(line, LINE_MAX_LENGTH);
+    else
+      cin.getline(line, LINE_MAX_LENGTH);
+
+    // skip comments (start with '#')
+    if (line[0] == '#')
+      continue;
+
+    // show user comments (start with '>')
+    if (line[0] == '>') {
+      cout << line << endl << flush;
+      continue;
+    }
+
+    // look for each item at the beginning of the line
+    for (i=0; i<=end_file; i++) 
+      if (strstr(line, ITEM_NAMES[i]) == line)
+        break;
+        
+    // if it is not a valid line, just ignore it
+    if (i == end_file+1) {
+      cerr << "Skipping unknown token in [" << line << "]\n";
+      continue;
+    }
+
+    // case block for each directive
+    switch ( i ) {
+
+    case data_paths:          // beginning of the list of valid paths
+          
+      // get number of paths to read
+      sscanf(line, "%s %d", token, &Num_of_paths);
+
+      if ( verbose == TRUE )
+        cout << Num_of_paths << " path(s) will be used.\n";
+
+      // allocate memory for paths list
+      Paths_list = (char**)malloc(Num_of_paths * sizeof(char*));
+      for (i=0; i<Num_of_paths; i++) 
+        Paths_list[i] = (char*)malloc(PATH_MAX_LENGTH * sizeof(char));
+
+      // read each single path
+      for (i=0; i<Num_of_paths; i++) {
+
+        if ( filename != NULL )
+          ifile.getline(Paths_list[i], PATH_MAX_LENGTH);
+        else
+          cin.getline(Paths_list[i], PATH_MAX_LENGTH);
+
+        // remove empty spaces at the end
+        for (j=0; j<strlen(Paths_list[i]); j++) {
+          if (Paths_list[i][j] == ' ') {
+            Paths_list[i][j] = '\0';
+            break;
+          }                     
+        }
+
+        // show the path
+        if ( verbose == TRUE )
+          cout << '[' << Paths_list[i] << ']' << '\n';
+      }
+
+      break;
+
+    case output_file:         // name of the output file
+          
+      // get the name of the output_file from the line
+      sscanf(line, "%s %s", token, Output_filename);
+
+      break;
+
+    case ct_file:             // name of the telescope file
+          
+      // get the name of the ct_file from the line
+      sscanf(line, "%s %s", token, CT_filename);
+
+      break;
+
+    case verbose_level:      // verbose level 0-4
+          
+      // get the verbose level
+      sscanf(line, "%s %d", token, &verbose);
+          
+      break;
+
+    case atm_model:           // name of the atmospheric model
+          
+      // get the name of the atm_model from the line
+      sscanf(line, "%s %s", token, atm);
+      // set the name and the number of the model with the functions
+      // defined in atm.h
+      set_atm_mod( conv_atm_mod( atm ) );
+
+      break;
+
+    case fixed_target:        // we use a fixed target
+          
+      // get fixed target's coordinates (is degrees)
+      sscanf(line, "%s %f %f", token, &fixed_Theta, &fixed_Phi);
+          
+      // convert them to radians
+      fixed_Theta *= DEG2RAD;
+      fixed_Phi   *= DEG2RAD;
+      is_Fixed_Target = TRUE;
+          
+      break;
+
+    case max_events:          // maximum number of events
+          
+      // get the number of events
+      sscanf(line, "%s %d", token, &max_Events);
+          
+      break;
+
+    case range_events:          // maximum number of events
+          
+      // get the number of events
+      sscanf(line, "%s %d %d", token, &first_Event, &last_Event);
+      max_Events = 1000000;
+          
+      break;
+
+    case energy_cuts:         // range of energies allowed
+          
+      // get the cuts
+      sscanf(line, "%s %f %f", token, &low_Ecut, &high_Ecut);
+          
+      break;
+
+    case parallel_beam:       // parallel beam of light
+          
+      // get the parameters of the beam 
+      sscanf(line, "%s %f %f %f %f %f %f %f %f %f", token, 
+             &pb_Theta, &pb_Phi, 
+             &pb_X, &pb_Y, 
+             &pb_LengthX, &pb_LengthY,
+             &pb_NX, &pb_NY, &pb_Height );
+
+      pb_Theta = RAD(pb_Theta);
+      pb_Phi = RAD(pb_Phi);
+
+      pb_ParallelBeam = TRUE;
+      pb_ParallelBeamPM = FALSE;
+
+      Num_of_paths = 1;
+      strcpy( Paths_list[0], "." );
+
+      break;
+
+    case pm_parallel_beam:    // parallel beam of light out of a pixmap
+          
+      // get the parameters of the beam 
+      sscanf(line, "%s %s %f %f", token, 
+             pb_Filename, &pb_Scale, &pb_Height);
+
+      pb_ParallelBeam = TRUE;
+      pb_ParallelBeamPM = TRUE;
+
+      Num_of_paths = 1;
+      strcpy( Paths_list[0], "." );
+
+      break;
+
+    case seeds:               // values of seeds for random numbers
+          
+      // get seeds
+      sscanf(line, "%s %ld %ld", token, &Seeds[0], &Seeds[1]);
+      
+      break;
+      
+    
+    case random_pointing:     // uses a random CT pointing for each shower
+          
+      // set flag
+      Random_Pointing = TRUE;
+      sscanf(line, "%s %f %ld %ld", token, 
+             &Random_Pointing_MaxDist, &Seeds[0], &Seeds[1]);
+
+      cerr << "random_pointing: " << Random_Pointing_MaxDist << ' ';
+      Random_Pointing_MaxDist = RAD(Random_Pointing_MaxDist);
+      cerr << Random_Pointing_MaxDist << " radians \n";
+
+      break;
+      
+    
+    case block:               // analyzes data in blocks
+      
+      // get block value
+      sscanf(line, "%s %d", token, &Block);
+      
+      break;
+      
+    case data_from_stdin:     // analyzes data in blocks
+      
+      // set flag
+      Data_From_STDIN = TRUE;
+      
+      // set other parameters
+      Num_of_paths = 1;
+      strcpy( Paths_list[0], TMP_STDIN_DIR );
+
+      break;
+      
+    case data_to_stdout:      // analyzes data in blocks
+      
+      // set flag
+      Data_To_STDOUT = TRUE;
+      
+      break;
+      
+    case end_file:            // end of the parameters file
+
+      // show a short message
+      is_end = TRUE;
+
+      break;
+
+    } // switch ( i ) 
+
+  } // while (! is_end)
+
+  if ( filename != NULL ) {
+    ifile.close();
+  }
+
+  // after the loop is finished, return to the main function
+  return;
+}
+//!@} 
+
+
+//!---------------------------------------------------------------------
+// @name get_num_of_paths                 
+//                                                
+// @desc get number of defined paths
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+int
+get_num_of_paths(void)
+{
+  return (Num_of_paths);
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_path_name
+//                                                
+// @desc get path name number "i" from the list of paths
+//
+// @var     i  number of path name to return
+//
+// @return  i-th path name
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+char *
+get_path_name(int i)
+{
+  return (Paths_list[i]);
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_output_filename
+//                                                
+// @desc get name of the output file
+//
+// @return  output file name
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+char *
+get_output_filename(void)
+{
+  return (Output_filename);
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_ct_filename
+//                                                
+// @desc get name of CT definition file
+//
+// @return  CT definition file name
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+char *
+get_ct_filename(void)
+{
+  return (CT_filename);
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_verbose
+//                                                
+// @desc get the "verbose" status
+//
+// @return  Verbosity level
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// 
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+int
+get_verbose(void)
+{
+  return (verbose);
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_fixed_target   
+//                                                
+// @desc get fixed target's coordinates
+//
+// @var  *theta    returned fixed theta
+// @var  *phi      returned fixed phi
+//
+// @return  TRUE if fixed target is selected; FALSE othw.
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+int 
+get_fixed_target(float *theta, float *phi)
+{
+  if ( is_Fixed_Target == FALSE )
+    return (FALSE);
+  *theta = fixed_Theta;
+  *phi   = fixed_Phi;
+  return(TRUE);
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_max_events             
+//                                          
+// @desc get max events number
+//
+// @return   Maximum number of events to read
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+int 
+get_max_events(void)
+{
+  return( max_Events );
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_range_events              
+//                                          
+// @desc get range of events
+//
+// @var  *a   returned first event number to read
+// @var  *b   returned last  event number to read
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void 
+get_range_events(int *a, int *b)
+{
+  *a = first_Event;
+  *b = last_Event;
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_energy_cuts            
+//                                          
+// @desc get energy cuts (lowest/highest energy allowed)
+//
+// @var  *low    returned lower edge of energy range
+// @var  *high   returned lower edge of energy range
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void 
+get_energy_cuts(float *low, float *high)
+{
+  *low  = low_Ecut;
+  *high = high_Ecut;
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_parallel_beam            
+//                                          
+// @desc get parallel beam parameters
+//
+// @var *pb_theta   returned zenith angle of the parallel beam
+// @var *pb_phi     returned aximuth angle of the parallel beam
+// @var *pb_x       returned x coordinate of the center
+// @var *pb_y       returned y coordinate of the center
+// @var *pb_lengthx returned length of the square in the ground
+// @var *pb_lengthy returned width of the square in the ground
+// @var *pb_nx      returned number of rows to generate
+// @var *pb_ny      returned number of columns to generate
+// @var *pb_height  returned height of the point-like source
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void 
+get_parallel_beam(float *pb_theta, float *pb_phi, 
+                  float *pb_x, float *pb_y, 
+                  float *pb_lengthx, float *pb_lengthy, 
+                  float *pb_nx, float *pb_ny, float *pb_height)
+{
+
+  *pb_theta = pb_Theta;
+  *pb_phi = pb_Phi;
+  *pb_x = pb_X;
+  *pb_y = pb_Y;
+  *pb_lengthx = pb_LengthX;
+  *pb_lengthy = pb_LengthY;
+  *pb_nx = pb_NX;
+  *pb_ny = pb_NY;
+  *pb_height = pb_Height;
+
+  return;
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name is_parallel_beam            
+//                                          
+// @desc should I use a parallel beam of light
+//
+// @return  TRUE: we are generating a parallel beam of light
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+int 
+is_parallel_beam(void)
+{
+  return( pb_ParallelBeam );
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_parallel_beam_pm            
+//                                          
+// @desc get parallel beam PM parameters
+//
+// @var *pb_scale   returned scale to be applied to the pixmap
+// @var *pb_height  returned height were the pixmap is located
+//
+// @return          filename of the pixmap
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+char *
+get_parallel_beam_pm(float *pb_scale, float *pb_height)
+{
+  *pb_scale = pb_Scale;
+
+  return(pb_Filename);
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name is_parallel_beam_pm          
+//                                          
+// @desc should I use a parallel beam of light(from pixmap)
+//
+// @return  TRUE: we are generating a parallel beam of light from a pixmap
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+int 
+is_parallel_beam_pm(void)
+{
+  return( pb_ParallelBeamPM );
+}
+
+
+//!---------------------------------------------------------------------
+// @name get_seeds
+//                                                
+// @desc are we going to count the islands ?
+//
+// @var  n    number of seed to get
+//
+// @return    n-th random seed
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+long int
+get_seeds(int n)
+{
+  return ( Seeds[n] );
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_block
+//                                                
+// @desc get the block size (=0  -> no blocking)
+//
+// @return    Block value
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+int
+get_block(void)
+{
+  return ( Block );
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_data_from_stdin
+//                                                
+// @desc get whether we will read the data from the STDIN
+//
+// @return    TRUE: we get data from STDIN; FALSE: oth.
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+int
+get_data_from_stdin(void)
+{
+  return ( Data_From_STDIN );
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_data_to_stdout
+//                                                
+// @desc get whether we will write the output data to the STDOUT
+//
+// @return    TRUE: we put data into the STDOUT; FALSE: oth.
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+int
+get_data_to_stdout(void)
+{
+  return ( Data_To_STDOUT );
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_random_pointing
+//       
+// @desc get whether random pointing is selected
+//
+// @return    TRUE: we use a random pointing
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+int
+get_random_pointing(float *maxdist)
+{
+  *maxdist = Random_Pointing_MaxDist;
+  return ( Random_Pointing );
+}
+//!@}
+
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+//
+// $Log: not supported by cvs2svn $
+// Revision 1.13  1999/10/05  11:06:38  gonzalez
+// Sep. 1999
+//
+// Revision 1.12  1999/03/24  16:33:00  gonzalez
+// REFLECTOR 1.1: Release
+//
+// Revision 1.11  1999/01/21  16:03:37  gonzalez
+// Only small modifications
+//
+// Revision 1.10  1999/01/19  18:07:18  gonzalez
+// Bugs in STDIN-STDOUT version corrected.
+//
+// Revision 1.9  1999/01/14  17:35:46  gonzalez
+// Both reading from STDIN (data_from_stdin) and
+// writing to STDOUT (data_to_STDOUT) working.
+//
+// Revision 1.8  1999/01/13  12:41:11  gonzalez
+// THIS IS A WORKING (last?) VERSION
+//
+// Revision 1.7  1998/12/15  10:47:24  gonzalez
+// RELEASE-1.0
+//
+//!@}
+
+//=EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Reflector/readparam.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Reflector/readparam.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Reflector/readparam.h	(revision 4308)
@@ -0,0 +1,230 @@
+//=//////////////////////////////////////////////////////////////////////
+//=
+//= readparam                
+//=
+//= @file        readparam.h
+//= @desc        Header file
+//= @author      J C Gonzalez
+//= @email       gonzalez@mppmu.mpg.de
+//= @date        Thu May  7 16:24:22 1998
+//=
+//=----------------------------------------------------------------------
+//=
+//= Created: Thu May  7 16:24:22 1998
+//= Author:  Jose Carlos Gonzalez
+//= Purpose: Program for reflector simulation
+//= Notes:   See files README for details
+//=    
+//=----------------------------------------------------------------------
+//=
+//= $RCSfile: readparam.h,v $
+//= $Revision: 1.1.1.1 $
+//= $Author: harald $ 
+//= $Date: 1999-10-29 07:00:33 $
+//=
+//=//////////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+//!@section Source code of |readparam.h|.
+
+/*!@"
+
+  In this section you can find the source code for the file
+  |readparam.h|.  This file is mainly needed by |readparam.cxx|. Here
+  is located the definition of the commands you can use in the
+  parameters file. In this file, the first line must be |reflector|
+  |version|, where |version| is the appropiate version program which
+  can read the commands written in that parameters file. You cannot
+  mix parameters files and executables with different versions. The
+  current version is |reflector 0.3|. Each line starting with a \#
+  will be treated as a comment.
+
+  The commands now available for the parameters file will be explained
+  in the documentation.
+
+  A parameters file looks like this:
+
+  |reflector 0.2|
+
+  |verbose_level 2|
+
+  |fixed_target  0. 0.|
+
+  |max_events   1000|
+
+  |data_paths 1|
+
+  |/hd80/MC/CT1/data/low-za/p/run9|
+
+  |output_file   reflector.rfl|
+
+  |ct_file       ct1.def|
+
+  |atm_model     ATM_CORSIKA|
+
+  |end_file|
+
+  @"*/
+
+//!@{
+#ifndef _readparam_
+#define _readparam_
+
+#ifndef _this_
+#define _this_ readparam
+#endif
+//!@}
+
+//!@subsection Include files.
+
+//!@{
+
+#include <iostream.h>
+#include <fstream.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+#include <float.h>
+#include <unistd.h>
+
+#include "jcmacros.h"
+#include "jcdebug.h"
+
+#include "reflector-v.h"
+
+#include "atm.h"
+
+//!@}
+
+//!@subsection Macro-definitions, and constants.
+
+//!@{
+
+// now we define the list ITEM_LIST of possible items in
+// the parameters file. note that they are functions of
+// T(x). we will change T(x) to be the real item or the
+// string of this item when needed
+
+#define ITEM_LIST   /* LIST OF ITEMS IN THE PARAMETERS FILE */     \
+T(data_paths),      /* begin of the list of source data paths */   \
+T(output_file),     /* output file */                              \
+T(ct_file),         /* file with the characteristics of the CT */  \
+T(atm_model),       /* changes the atmospheric model to be used */ \
+T(verbose_level),   /* defines verbose level of the output */      \
+T(fixed_target),    /* defines the position towards the CT is pointing */ \
+T(max_events),      /* maximum number of event to read */ \
+T(range_events),    /* analyze from event A to B */ \
+T(energy_cuts),     /* lowest/highest energy allowed */ \
+T(parallel_beam),   /* defines a parallel beam of light */ \
+T(pm_parallel_beam),/* defines a parallel beam of light, out of a pixmap */ \
+T(seeds),           /* seeds for random number generation */ \
+T(block),           /* size of the block of files, when 'blocking' */ \
+T(random_pointing), /* random CT pointing from each shower (hadrons) */ \
+T(data_from_stdin), /* read data from STDIN */ \
+T(data_to_stdout),  /* read data from STDIN */ \
+T(end_file)         /* end of the parameters file */
+  
+#define T(x)  x               // define T() as the name as it is
+
+enum ITEM_TYPE {
+  ITEM_LIST
+};
+
+#undef T
+
+#define T(x)  #x              // define T() as the string of x
+
+const char *const ITEM_NAMES[] = {
+  ITEM_LIST
+};
+
+#undef T
+
+#define LINE_MAX_LENGTH  400
+#define ITEM_MAX_LENGTH  40
+#define PATH_MAX_LENGTH  120
+
+// Verbose Levels
+enum VerboseLevel {
+  VERBOSE_QUIET,
+  VERBOSE_MINIMAL,
+  VERBOSE_NORMAL,
+  VERBOSE_MAXIMAL
+};
+
+#define VERBOSE_DEFAULT  VERBOSE_QUIET
+
+// directory for intermediate storage of data from STDIN
+
+#define TMP_STDIN_DIR    "/hd90/gonzalez/tmp"
+
+//!@}
+
+//!@subsection Prototypes of functions.
+
+//!@{
+
+//++
+// prototypes
+//--
+
+void readparam(char * filename);
+int get_num_of_paths(void);
+char *get_path_name(int i);
+char *get_output_filename(void);
+char *get_ct_filename(void);
+int get_verbose(void);
+int get_fixed_target(float *theta, float *phi);
+int get_max_events(void);
+void get_range_events(int *a, int *b);
+void get_energy_cuts(float *low, float *high);
+void get_parallel_beam(float *pb_theta, float *pb_phi, 
+                       float *pb_x, float *pb_y, 
+                       float *pb_lengthx, float *pb_lengthy, 
+                       float *pb_nx, float *pb_ny, float *pb_height);
+int is_parallel_beam(void);
+char * get_parallel_beam_pm(float *pb_scale, float *pb_height);
+int is_parallel_beam_pm(void);
+long int get_seeds(int n);
+int get_block(void);
+int get_data_from_stdin(void);
+int get_data_to_stdout(void);
+int get_random_pointing(float *maxdist);
+
+//!@}
+
+//!@{
+
+#endif // ! _readparam_
+
+//!@}
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+
+/*
+ * $Log: not supported by cvs2svn $
+ * Revision 1.13  1999/10/05  11:06:37  gonzalez
+ * Sep. 1999
+ *
+ * Revision 1.12  1999/03/24  16:33:02  gonzalez
+ * REFLECTOR 1.1: Release
+ *
+ * Revision 1.11  1999/01/21  16:03:41  gonzalez
+ * Only small modifications
+ *
+ * Revision 1.10  1999/01/19  18:07:18  gonzalez
+ * Bugs in STDIN-STDOUT version corrected.
+ *
+ * Revision 1.9  1999/01/14  17:35:40  gonzalez
+ * Both reading from STDIN (data_from_stdin) and
+ * writing to STDOUT (data_to_STDOUT) working.
+ *
+ */
+
+//!@}
+//=EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Reflector/reflector-v.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Reflector/reflector-v.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Reflector/reflector-v.h	(revision 4308)
@@ -0,0 +1,12 @@
+#ifndef VERSION 
+
+#define PROGRAM reflector
+#define VERSION 0.3
+
+#define GLUE_prep(x,y) #x" "#y
+#define GLUE_postp(x,y) GLUE_prep(x,y)
+
+const char SIGNATURE[] = GLUE_postp( PROGRAM, VERSION );
+
+#endif // ! VERSION
+
Index: /branches/start/MagicSoft/Simulation/Detector/Reflector/reflector.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Reflector/reflector.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Reflector/reflector.cxx	(revision 4308)
@@ -0,0 +1,3567 @@
+//!/////////////////////////////////////////////////////////////////////
+//
+// reflector                  
+//
+// @file        reflector.cxx
+// @title       Simulation of the Reflector
+// @desc        Program for the simulation of CT1 and MAGIC reflectors
+// @author      J C Gonzalez
+// @email       gonzalez@mppmu.mpg.de
+// @date        Thu May  7 16:24:22 1998
+//
+//----------------------------------------------------------------------
+//
+// Created: Thu May  7 16:24:22 1998
+// Author:  Jose Carlos Gonzalez
+// Purpose: Program for reflector simulation
+// Notes:   
+//
+//----------------------------------------------------------------------
+//
+// $RCSfile: reflector.cxx,v $
+// $Revision: 1.1.1.1 $
+// $Author: harald $ 
+// $Date: 1999-10-29 07:00:33 $
+//
+////////////////////////////////////////////////////////////////////////
+// @tableofcontents @coverpage
+
+//= Below you can find a sort of, incomplete for sure, documentation 
+//= concerning this program. Please, do not hesiate to contact the 
+//= author in case of problems.
+
+//=---------------------------------------------------------------------
+//!@section Details of the simulation of the detectors MAGIC and CT1.
+
+//=---------------------------------------------------------------------
+//!@subsection Overview of the simulation.
+
+/*!@"
+
+  This short section gives an idea about how the simulation
+  developes itself. The details on each step will be explained
+  later. At the beginning we have the Generated output file.
+  
+  @itemize
+  
+  @- B@Atmospheric Absorption@: A detailed description of the
+  atmospheric absorption is provided. This description takes into
+  account the effects of the Rayleigh scattering, the aerosol (Mie)
+  absorption, and the effect of the Ozone. It works for the wavelength
+  range @$290 \div 600@$ nm.
+  
+  @- B@Reflection in the mirrors@: Each remaining photon is traced
+  till the mirrors, and then reflected till the camera plane. The
+  steps are the following:
+  
+  @enumerate
+    
+  @- Calculation of the mirror where the photon is
+  hitting.
+    
+  @- We apply the E@reflectivity@ effect, using a continuous random
+  number in the range [0:1] : the photon can be lost.
+    
+  @- If the photon is hitting in the E@black spot@ of the center,
+  the photon is also lost.
+    
+  @- We take the E@mathematicaly exact@ normal of the mirror, and
+  apply the E@axis-deviation@ effect: the normal changes a little
+  bit.
+
+  @- We apply the E@imperfections@ in the mirrors (measurements are
+  needed).
+
+  @- Finally, with the displaced normal, we calculate the position of
+  the reflected photon in the camera plane. Here, even with an exact,
+  mathematical ray-tracing the image is E@blurred@, due to the
+  intrinsic behaviour of the telescope optics.
+
+  @endenumerate
+
+  At this step we have a B@RAW-Monte-Carlo@ output file.
+
+  @- B@Collection in the PMTs/IPCs@: The collection in the active
+  devices follows the next steps:
+
+  @enumerate
+  
+  @- We apply a certain probability of transmision of the photon in
+  the E@plexiglas@, dependent on the incident angle of the photon in
+  the camera (measurements are needed).
+
+  @- We apply the transmitance factor of the E@light guides@.
+
+  \item Then we apply the E@Quantum efficiency@ of the PMT,
+  depending on the incident angle.
+
+  @endenumerate
+
+  @- B@Correction of the obtained signal@ In every pixel we have a
+  certain number of Cherenkov photons, what we take as a B@mean value@
+  of the measured charge in that pixel. Together to that value, we
+  take into account the E@Night Sky Background@ (NSB): we have for
+  this a mean value measured, and with this mean value we calculate
+  the contribution of the sky for each pixel.
+  
+  At this level we will have a B@RAW-Data@ output file.
+  
+  @enditemize
+
+  @"*/
+
+//=---------------------------------------------------------------------
+//!@subsection Simulation of the detector.
+
+//=---------------------------------------------------------------------
+//!@subsubsection Coordinate systems.
+
+/*!@"
+  
+  The different angles used in the simulation of the detector are
+  shown in the next figures. The telescope (CT) is pointing to the
+  direction @$(\theta,\phi)@$, while the particle (background) is coming
+  from the direction @$(\theta_p,\phi_p)@$. This direction is calculated
+  using a pair of random generated angles @$\theta_s@$ and @$\phi_s@$, and
+  spherical trigonometry.
+
+  @F
+  \begin{figure}[htbp]
+  \begin{center}
+  \includegraphics[height=0.45\textheight]{coordinates.eps}
+  \caption{Coordinate system used in the reflector simulation}
+  \label{fig:coord}
+  \end{center}
+  \end{figure}
+  @F
+
+  @F
+  \stepcounter{figure}
+  \begin{figure}[htbp]
+  \begin{center}
+  \includegraphics[height=0.45\textheight]{reflector.eps}
+  \caption{Angles used in the reflector simulation}
+  \label{fig:reflector}
+  \end{center}
+  \end{figure}
+  @F
+  
+  The angles are defined in the next table. Using this definitions, we
+  can start to explain how the reflector program works.
+
+  @F
+  \begin{table}
+  \begin{tabular}[hbt]{cl}
+  $\theta$   & Zenith angle of the position where the CT points to\\
+  $\phi$     & Horizontal angle from the North of the position\\
+  & where the CT points to\\
+  $\theta_s$ & Angular distance between the axis of the\\
+  & incoming shower and the direction where the CT is \\
+  & pointing to.\\
+  $\phi_s$   & Polar angle with axis equal to the axis of the CT.\\
+  $\theta_p$ & Zenith angle of the incoming shower.\\
+  $\phi_p$   & Horizontal angle (from the North) of the\\
+  & direction of the incoming shower.\\
+  $\theta_{CT}$ & Zenith angle of the dish ($= \theta$).\\
+  $\phi_{CT}$   & Horizontal angle of the dish ($= \phi$).\\
+  $\theta_m$ & Angle of the mirror axis relative to the CT axis.\\
+  $\phi_m$   & Polar angle of the position of the mirror
+  (arbitrary origin).\\
+  \end{tabular}
+  \caption{Definition of the different angles in the reflector program.}
+  \end{table}
+  @F
+  
+  At the CORSIKA level, and also at the reflector simulation level, we
+  calculate the angles @$\theta_p@$ and @$\phi_p@$, which give the
+  direction of the incoming shower. To calculate them we use the
+  following.
+
+  @F
+  \begin{eqnarray}
+  \cos\theta_p &=& \cos\theta \cos\theta_s 
+  + \sin\theta \sin\theta_s \cos\phi_s 
+  \\
+  \sin\phi_p &=& \frac{\sin\theta_s}{\sin\theta_p} \sin\phi_s
+  \end{eqnarray}
+  @F
+  
+  To finish with the definitions, we just write down some of
+  the parameters we will use in the reflexion algorithm, in
+  the next table.
+
+  @F
+  \stepcounter{table}
+  \begin{table}
+  \begin{tabular}[hbt]{cl}
+  $\mathbf{x}=(x,y,z)$ & 
+  Position of the Cherenkov photon on the ground\\
+  & in the global system OXYZ.\\
+
+  $\mathbf{r}=(u,v,w)$ & 
+  Vector of the Cherenkov photon's trayectory\\
+  & in the global system OXYZ.\\
+
+  $\mathbf{x_{CT}}=(x_{CT},y_{CT},z_{CT})$ & 
+  Position of the Cherenkov photon on the ground\\
+  & in the system OXYZ$_{CT}$ of the CT.\\
+
+  $\mathbf{r_{CT}}=(u_{CT},v_{CT},w_{CT})$ & 
+  Vector of the Cherenkov photon's trayectory\\
+  & in the system OXYZ$_{CT}$ of the CT.\\
+
+  $\mathbf{x_{m}}=(x_{m},y_{m},z_{m})$ & 
+  Position of the Cherenkov photon on the ground\\
+  & in the system OXYZ$_{m}$ of the mirror.\\
+
+  $\mathbf{r_{m}}=(u_{m},v_{m},w_{m})$ & 
+  Vector of the Cherenkov photon's trayectory\\
+  & in the system OXYZ$_{m}$ of the mirror.\\
+
+  $\mathbf{x_{cut}}=(x_{cut},y_{cut},z_{cut})$ & 
+  Cut of the trayectory of the photon with the mirror,\\
+  & in the system OXYZ$_{m}$ of the mirror.\\
+
+  $\mathbf{r_\perp}=(u_\perp,v_\perp,w_\perp)$ & 
+  Vector perpendicular to the mirror in the point $\mathbf{x_{cut}}$\\
+  & in the system OXYZ$_{m}$ of the mirror.\\
+
+  $\mathbf{r_r}=(u_r,v_r,w_r)$ & 
+  Vector of the reflected photon, \\
+  & in the system OXYZ$_{m}$ of the mirror.\\
+
+  $\mathbf{r_r^{CT}}=(u_r^{CT},v_r^{CT},w_r^{CT})$ & 
+  Vector of the reflected photon, \\
+  & in the system OXYZ$_{CT}$ of the CT.\\
+
+  $\mathbf{x_{cam}}=(x_{cam},y_{cam},z_{cam})$ & 
+  Position of the photon in the camera plane,\\
+  & in the system OXYZ$_{CT}$ of the CT.\\
+
+  \end{tabular}
+  \caption{Different vectors and points used in the reflector 
+  program.}
+  \end{table}
+  @F
+  
+  @"*/
+
+//=---------------------------------------------------------------------
+//!@subsubsection Algorithm of the reflexion.
+
+/*!@"
+  
+  We start calculating the matrices for changing of system of
+  coordinates, @$\Omega(\theta,\phi)@$ and
+  @$\Omega^{-1}(\theta,\phi)@$. They are defined to be:
+
+  @F
+  \begin{equation}
+  \begin{split}
+  \Omega(\theta,\phi)      &= R_y(-\theta) R_z(-\phi) \\
+  \Omega^{-1}(\theta,\phi) &= R_z(\phi) R_y(\theta) 
+  \end{split}
+  \end{equation}
+  @F
+
+  where the matrices @$R_x@$, @$R_y@$ and @$R_z@$ are rotations of
+  angle @$\alpha@$ around each axis OX, OY and OZ.
+
+  @F
+  \begin{eqnarray}
+  R_x(\alpha) = 
+  \begin{bmatrix}    
+  1 & 0 & 0 \\
+  0 & \cos\alpha & -\sin\alpha \\
+  0 & \sin\alpha &  \cos\alpha \\
+  \end{bmatrix}                                
+  \label{eq:rotx}
+  \\
+  R_y(\alpha) = 
+  \begin{bmatrix}    
+  \cos\alpha & 0 & \sin\alpha \\
+  0 & 1 & 0 \\
+  -\sin\alpha & 0 & \cos\alpha \\
+  \end{bmatrix}                                
+  \label{eq:roty}
+  \\
+  R_z(\alpha) = 
+  \begin{bmatrix}    
+  \cos\alpha & -\sin\alpha & 0\\
+  \sin\alpha &  \cos\alpha & 0\\
+  0 & 0 & 1 \\
+  \end{bmatrix}                                
+  \label{eq:rotz}
+  \end{eqnarray}
+  @F
+  
+  With this, the matrices @$\Omega(\theta,\phi)@$ and
+  @$\Omega^{-1}(\theta,\phi)@$ result to be:
+
+  @F
+  \begin{eqnarray}
+  \Omega(\theta,\phi) = 
+  \begin{bmatrix}                                
+  \cos\phi \cos\theta&\sin\phi \cos\theta&-\sin\theta \\
+  -\sin\phi       &     \cos\phi      &     0      \\
+  \cos\phi \sin\theta&\sin\phi \sin\theta& \cos\theta \\      
+  \end{bmatrix}                                
+  \\
+  \Omega^{-1}(\theta,\phi) = 
+  \begin{bmatrix}                                
+  \cos\phi \cos\theta&-\sin\phi&\cos\phi \sin\theta\\
+  \sin\phi \cos\theta& \cos\phi&\sin\phi \sin\theta\\  
+  -\sin\theta     &    0    &     \cos\theta    \\       
+  \end{bmatrix}                                
+  \end{eqnarray}
+  @F
+  
+  and each change of system of coordinates uses these
+  matrices. In order to calculate the new coordinates X' of a
+  point X in the new system O', and viceversa, we apply the
+  following equations:
+
+  @F
+  \begin{equation}
+  \begin{split}
+  X' &= \Omega(\theta,\phi) X\\
+  X  &= \Omega^{-1}(\theta,\phi) X'\\
+  \end{split}
+  \end{equation}
+  @F
+  
+  The steps taken in the reflector simulation are the following:
+
+  @enumerate
+  
+  @- We look for the mirror @$m@$ which is closer to the
+     trayectory of the photon (presumably, the photon will hit
+     it).
+     
+  @- We move to the system @$\mbox{OXYZ}_{CT}@$ of the CT.
+
+  @- We move again, now to the system @$\mbox{OXYZ}_{m}@$ of the
+     mirror @$m@$.
+  
+  @- Then the point where the trayectory of the photon intersects with
+     the mirror is calculated.
+  
+  @- In this point, the normal (perpendicular) to the mirror is
+     obtained.
+
+  @- The reflected trayectory is calculated with the normal in the
+     mirror and the original trayectory.
+
+  @- We move back to the system @$\mbox{OXYZ}_{CT}@$, and calculate
+     there the point where the new trayectory of the photon hits the
+     camera plane.
+
+  @endenumerate
+
+  In between the previous points the effects of the atmospheric
+  absorption and those mentioned in the next section are included. At
+  the end, the position of the photon and the incident angle in the
+  camera plane is saved.
+
+  @"*/
+
+//=---------------------------------------------------------------------
+//!@subsection Effects to be included in the simulation of the reflector.
+
+/*!@"
+  
+  @itemize
+
+  @- B@Incidence in the mirrors@:
+  For each single photon we trace the point where it hits a
+  given mirror. We can use either hexagonal mirrors or
+  circular mirrors with the same surface of the hexagonal ones.
+
+  @- B@Reflectivity of the mirrors@:
+  The reflectivity of the mirrors is a function @$R(\lambda)@$
+  of the wavelength @$\lambda@$ of the photon.
+
+  @- B@Black spots@:
+  In the center of each mirror there is a ``bad'' region,
+  where no reflection can be done at all. The radii of these
+  regions vary, but they can be @$r \simeq 2 \mathrm{\,cm}@$.
+
+  @- B@Imperfections@: 
+  The surface of each mirror is locally not-perfect. We need
+  measurements to include this effect.
+
+  @- B@Axis--deviation@:
+  The axis of each mirror can be deviated from the
+  ``teorical'' point in the center of the camera. (@$\sigma
+  \simeq 2.5 \mathrm{\,mm}@$).
+
+  @- B@Blurring@: 
+  Pure effect of optics: each mirror is ``seen'' by the camera
+  with a different angle. 
+
+  @enditemize
+
+  @"*/
+
+//=---------------------------------------------------------------------
+//!@subsection Effects to be included in the simulation of the camera.
+
+/*!@"
+  
+  @itemize
+
+  @- B@Plexiglas@:
+  In front of the light guides there is a ``plexiglas'' layer,
+  with a given transmitance (dependent on the incidence angle).
+
+  @- B@Light Guides@:
+  The looses in the transmitance in the light guides are
+  around @$15-20@$\%.
+
+  @- B@Quantum Efficiency@:
+  The QE of each PMT depends on the impact point of the photon
+  in the window of the PMT and the angle of incidence in this
+  point.
+
+  @- B@Excess noise factor@:
+  It produces a smearing of the signal with a sigma
+  @$\sqrt{2N}@$ instead of the typical @$\sqrt{N}@$.
+
+  @- B@Pick-up noise?@:
+
+  @- B@First dynode collection efficiency?@:
+
+  @enditemize
+
+  @"*/
+
+//=---------------------------------------------------------------------
+// @T \newpage
+
+//=---------------------------------------------------------------------
+//!@section Source code of |reflector.cxx|.
+
+/*!@"
+
+  In this section we show the (commented) code of the program 
+  for the simulation of the reflector, in the current version.
+  
+  @"*/
+
+//=---------------------------------------------------------------------
+//!@subsection Preliminary notes in the code.
+
+//!@{
+//=================================================================
+//
+// NOTE: Most of the equations used in this program can be found 
+//       in Bronstein, Semendjajew, Musiol and Muehlig, "Taschenbuch
+//       der Mathematik", Verlag Harri Deutsch, Thun und Frankfurt
+//       am Main, 1997. Some others were "deduced". 
+//
+//
+// Matrices for rotation of coordinate systems
+//---------------------------------------------
+//
+//    Omega(theta,phi) = Ry(theta) Rz(phi)
+//  Omega-1(theta,phi) = Rz(-phi) Ry(-theta)
+//
+//  X` = Omega(theta,phi) X
+//  X  = Omega-1(theta,phi) X`
+//
+// Omega(theta,phi) = 
+//        /                                                   \
+//       | cos(phi)cos(theta)  sin(phi)cos(theta)  -sin(theta) |     
+//       |    -sin(phi)            cos(phi)             0      |
+//       | cos(phi)sin(theta)  sin(phi)sin(theta)   cos(theta) |        
+//        \                                                   /
+//
+// OmegaI(theta,phi) = 
+//        /                                                   \
+//       | cos(phi)cos(theta)   -sin(phi)   cos(phi)sin(theta) |     
+//       | sin(phi)cos(theta)    cos(phi)   sin(phi)sin(theta) |
+//       |    -sin(theta)           0           cos(theta)     |        
+//        \                                                   /
+//
+//=================================================================
+//!@}
+
+//=---------------------------------------------------------------------
+//!@subsection Includes and Global variables definition.
+
+/*!@"
+
+  All the defines are located in the file |reflector.h|.
+
+  @"*/
+
+//!@{
+#include "reflector.h"
+//!@}
+
+//=---------------------------------------------------------------------
+//!@subsubsection Definition of global variables.
+
+/*!@"
+
+  We first define the matrices to change of coordinates system. The
+  definition of the matrices was already seen in the previous section.
+  All matrices are in the form @$m[i][j]@$ with i the running index
+  for rows, and j the one for columns.
+
+  @"*/
+
+//!@{
+
+//@: matrices to change to the system where the optical axis is OZ
+static float OmegaCT[3][3];
+
+//@: matrices to change to the system where the optical axis is OZ (inverse)
+static float OmegaICT[3][3];
+
+//@: matrices to change the system of coordinates
+static float Omega[3][3];
+
+//@: matrices to change the system of coordinates (inverse)
+static float OmegaI[3][3];
+
+//!@}
+
+/*!@"
+  
+  Now we define some global variables with data about the telescope,
+  such as E@focal distance@, E@number of pixels/mirrors@, E@size of
+  the camera@, and so on.
+
+  @"*/
+
+/*!@"
+  
+  Depending on the telescope we are using (CT1 or MAGIC), the
+  information stored in the definition file is different.  The
+  variable |ct_Type| has the value 0 when we use CT1, and 1 when we
+  use MAGIC.
+
+  @"*/
+
+//!@{  
+ 
+//@: Type of telescope (CT1: 0; MAGIC: 1)
+static int   ct_Type;
+
+//!@}
+
+/*!@"
+
+   And this is the information about the whole telescope.
+
+@"*/
+
+//!@{
+// parameters of the CT (from the CT definition file)
+
+//@: Focal distances [cm]
+static float *ct_Focal;
+
+//@: Mean Focal distances [cm]
+static float ct_Focal_mean;
+
+//@: STDev. Focal distances [cm]
+static float ct_Focal_std;
+
+//@: Mean Point Spread function [cm]
+static float ct_PSpread_mean;
+
+//@: STDev. Point Spread function [cm]
+static float ct_PSpread_std;
+
+//@: STDev. Adjustmente deviation [cm]
+static float ct_Adjustment_std;
+
+//@: Radius of the Black Spot in mirror [cm]
+static float ct_BlackSpot_rad;
+
+//@: Radius of one mirror [cm]  
+static float ct_RMirror;      
+
+//@: Camera width [cm]          
+static float ct_CameraWidth;  
+
+//@: Pixel width [cm]           
+static float ct_PixelWidth;   
+
+//@: Number of mirrors          
+static int ct_NMirrors = 0;   
+
+//@: Number of pixels           
+static int ct_NPixels;        
+
+//!@}
+
+/*!@"
+
+  The following double-pointer is a 2-dimensional table with
+  information about each mirror in the dish. The routine
+  |read_ct_file()| will read this information from the file with the
+  name given by the user in the E@parameters file@, in the command
+  |ct_file|.  The information stored in this file (and in this table)
+  depends on the type of telescope we are using.
+  
+  @"*/
+
+//!@{
+
+//@: Pointer to a table with the following info.:
+static float **ct_data;       
+
+/*
+ *  TYPE=0  (CT1)
+ *      i   s   rho   theta   x   y   z   thetan  phin  xn   yn   zn
+ * 
+ *       i : number of the mirror
+ *       s : arc length [cm]
+ *     rho : polar rho of the position of the center of the mirror [cm]
+ *   theta : polar angle of the position of the center of the mirror [cm]
+ *       x : x coordinate of the center of the mirror [cm]
+ *       y : y coordinate of the center of the mirror [cm]
+ *       z : z coordinate of the center of the mirror [cm]
+ *  thetan : polar theta angle of the direction where the mirror points to
+ *    phin : polar phi angle of the direction where the mirror points to
+ *      xn : xn coordinate of the normal vector in the center (normalized)
+ *      yn : yn coordinate of the normal vector in the center (normalized)
+ *      zn : zn coordinate of the normal vector in the center (normalized)
+ * 
+ *  TYPE=1  (MAGIC)
+ *      i  f   sx   sy   x   y   z   thetan  phin 
+ * 
+ *       i : number of the mirror
+ *       f : focal distance of that mirror
+ *      sx : curvilinear coordinate of mirror's center in X[cm]
+ *      sy : curvilinear coordinate of mirror's center in X[cm]
+ *       x : x coordinate of the center of the mirror [cm]
+ *       y : y coordinate of the center of the mirror [cm]
+ *       z : z coordinate of the center of the mirror [cm]
+ *  thetan : polar theta angle of the direction where the mirror points to
+ *    phin : polar phi angle of the direction where the mirror points to
+ *      xn : xn coordinate of the normal vector in the center (normalized)
+ *      yn : yn coordinate of the normal vector in the center (normalized)
+ *      zn : zn coordinate of the normal vector in the center (normalized)
+ */
+
+//!@} 
+
+/*!@"
+
+  Here we define the global variables where the parameters of a
+  parallel beam of light will be stored.
+
+  @"*/
+
+//!@{
+
+static int   pb_ParallelBeam = FALSE;
+static int   pb_ParallelBeamPM = FALSE;
+static float pb_Theta, pb_Phi, pb_X, pb_Y; 
+static float pb_LengthX, pb_LengthY, pb_NX, pb_NY;
+static float pb_Scale;
+static float pb_Height;
+static char  pb_Filename[40];
+
+//!@}
+
+/*!@"
+
+  We can analyze the data stored in the directories provided via the
+  |data_paths| entry in the parameters file in one go, or in blocks of
+  size |Block|, if this variable is a positive integer. This can be
+  done through a shell script. The mechanism is the following:
+
+  @itemize
+
+  @- First, we read the parameters file, and wait for a file called
+   |__DOIT| (written by the script when a new block of |Block| files
+   is available in a loop.
+
+  @- If this file exists, we remove it and create another file with
+   the name |__WORKING| (in order to let the script to know that we
+   are working), and process a block of |Block| files. After that, we
+   will rename the file |__WORKING| to |__READY|.
+   
+  @- When the script sees a new block of |Block| files, it will write
+   again a file called |__DOIT|, unless there exist a file called
+   |__WORKING| (which means that the |reflector| is still working in
+   the previous block).
+
+  @- Each time a block is processed, is customary to the user to
+  delete or not that block of files (or to save it to tape, ...).
+
+  @- At the end, a file called |__DONE| is written telling us the
+  number of blocks processed.
+
+  @enditemize 
+
+  @"*/
+
+//!@{
+
+static int Block=0;
+int WORKING=FALSE;
+int nfilesBlock=0;
+ofstream obfile; 
+long posdir;
+
+//!@}
+
+/*!@"
+
+  We can read also the data from the standard input, and we could
+  write data into the standard output.
+  
+  @"*/
+
+//!@{
+
+//@: boolean variable to control whether we read from STDIN or not
+static int Data_From_STDIN = FALSE;
+
+//@: boolean variable to control whether we write to STDOUT or not
+static int Data_To_STDOUT  = FALSE;
+
+//!@}
+
+/*!@" 
+  
+  Next, we have two tables with data got from two files,
+  |reflectivity.dat| and |axisdev.dat|, which contain information
+  about the reflectivity of the mirrors, as a function of the
+  wavelength @$\lambda@$, and about the (simulated) deviation of the
+  mirrors' axes, with respect to the mathematical exact axes.
+
+  @"*/
+
+//!@{
+
+// table of reflectivity for each mirror
+
+//@: table with datapoints (wavelength,reflec.)
+static float **Reflectivity;  
+
+//@: number of datapoints
+static int    nReflectivity;  
+
+//@: table with deviations of the mirrors' normals
+static float **AxisDeviation; 
+
+//!@}
+
+/*!@"
+
+  We still define a table into where normal random numbers will be
+  stored by the routine |rnormal(double *r, int n)|.
+  
+  @"*/
+
+//!@{
+
+//@: table of normal random numbers
+static double NormalRandomNumbers[500];  
+
+//!@}
+
+/*!@" 
+
+   This is a flag to change the E@verbosity@ of the output
+
+   @"*/
+
+//!@{
+
+//@: flag to change the verbosity
+int verbose = VERBOSE_DEFAULT;
+
+//!@}
+
+/*!@" 
+
+  This option makes the telescope to point to a random position
+  relative to the shower axis, with a maximum angular separation of
+  |RANDOM_POINTING_MAX_SEPARATION| (defined in |reflector.h|.
+
+  @"*/
+
+//!@{
+
+//@: random pointing for the CT?
+int Random_Pointing = FALSE;
+
+//@: maximum random pointing distance
+float Random_Pointing_MaxDist; // [radians]
+
+//!@}
+
+//=---------------------------------------------------------------------
+//!@subsection Main program.
+
+/*!@"
+
+  In the main program we basically follow the items expressed in the
+  first section. Please, have a look into previous sections. I tried
+  to make a code already well commented. Most things should be clear.
+  Nevertheless, I'll try to comment again everything in following
+  releases.
+
+  @"*/
+
+//!@{
+
+//++++++++++++++++++++++++++++++++++++++++
+// MAIN PROGRAM 
+//----------------------------------------
+                   
+int
+main(int argc, char **argv) 
+{
+
+  DIR *directory;             //@< directory of data
+  struct dirent *de;          //@< directory entry
+
+  char pathname[256];         //@< name of directory
+  char cername[256];          //@< name of Cherenkov file
+  char staname[256];          //@< name of Statistics file
+  char outname[256];          //@< name of the output file
+  char parname[256];          //@< name of parameters file
+
+  ifstream cerfile;           //@< stream for Cherenkov file
+  ifstream pmfile;            //@< stream for pixmap file
+  ofstream outputfile;        //@< stream for output file
+  ofstream pbfile;            //@< stream for parallel beam file
+
+  COREventHeader evth;        //@< Event Header class (from CORSIKA)
+  CORParticle photon;         //@< Particle (photon) class (from CORSIKA)
+  CORStatfile stat;           //@< Statistics file class (from CORSIKA)
+
+  MCEventHeader mcevth;       //@< Event Header class
+  MCCphoton cphoton;          //@< Particle (photon) class
+
+  float thetaCT, phiCT, xiCT; //@< parameters of a given shower
+  float coreD, coreX, coreY;  //@< core position and distance
+  float u, v, w;              //@< cosenos directores
+
+  float r[3];                 //@< trayectory
+  float x[3];                 //@< position of the photon in the ground
+
+  float rCT[3];               //@< trayectory in the system of the CT
+  float xCT[3];               //@< position of the photon in the ground (CT)
+  float rm[3];                //@< trayectory in the system of a mirror
+  float xmm[3];               //@< intermediate values
+  float xm[3];                //@< position of photon in ground
+  float xcut[3];              //@< location of the cut sphere-trayectory
+  float xcutCT[3];            //@< location of the cut sphere-trayectory (CT)
+
+  float rnor[3], rnorm;       //@< normal in that point
+
+  float rrefl[3];             //@< reflected vector, from the mirror
+  float rreflCT[3];           //@< reflected vector, from the CT
+  float xcam[3];              //@< where the photon hits the camera plane
+
+  float calpha;               //@< cos(alpha=angle incident/normal)
+  float phi;                  //@< angle between photon and camera plane
+
+  float a, b, c, t;           //@< intermediate variables
+
+  float d;                    //@< minimum distance trayectory-mirror center
+
+  float wl;                   //@< wavelength of the Cphoton
+  float reflec;               //@< reflectivity for a Cphoton
+
+  int ncer;                   //@< number of the shower;
+  int np;                     //@< number of path
+  int i, k;                   //@< simple counters
+  int i_mirror=-1;            //@< number of a given mirror
+
+  int nCphotons;              //@< number of a Cphotons written on output file
+
+  float TR;                   //@< atmospheric transmitance
+  int nbeforeTR, nafterTR;    //@< number of Cph. before and after transmission
+  int num_cer_files;          //@< number of cer files;
+  int max_num_cer_files;      //@< maximum number of cer files to read
+  int f_ev, l_ev;             //@< first and last events of a range
+
+  float lE, uE;              //@< lower and upper edges of energy range allowed
+
+  float distmirr, distmirr2;  //@< distances used in MAGIC reflexion routine
+  float sx, sy;
+  float t1, t2;
+  float pbx, pby, pbt, pbp;
+
+  char line[200];
+  
+  int ch, errflg = 0;          //@< used by getopt
+
+  /*!@'
+
+    We start in the main program. First we (could) make some
+    presentation, and follows the reading of the parameters file (now
+    from the STDIN), the reading of the CT parameters file, and the
+    creation of the output file, where the processed data will be
+    stored.
+    
+  */
+
+  //++
+  //  START
+  //--
+
+  // make unbuffered output
+
+  cout.setf ( ios::stdio );
+
+  // parse command line options (see reflector.h)
+  
+  parname[0] = '\0';
+
+  optarg = NULL;
+  while ( !errflg && ((ch = getopt(argc, argv, COMMAND_LINE_OPTIONS)) != -1) )
+    switch (ch) {
+    case 'f':
+      strcpy(parname, optarg);
+      break;
+    case 'h':
+      usage();
+      break;
+    default :
+      errflg++;
+    }
+  
+  // show help if error
+  
+  if ( errflg>0 )
+    usage();
+
+  // make some sort of presentation
+  //   present();
+  
+  // read parameters from the stdin
+
+  if ( strlen(parname) < 1 )
+    readparam(NULL);
+  else
+    readparam(parname);
+
+  // blocking-mode?
+
+  Block = get_block();
+
+  // reading data from STDIN?
+
+  Data_From_STDIN = get_data_from_stdin();
+
+  // writing data to STDOUT?
+
+  Data_To_STDOUT = get_data_to_stdout();
+
+  // make it verbosely?
+
+  verbose = get_verbose();
+
+  /*!@'
+    
+    @#### Parallel beam of light.
+    
+    In order to test the behaviour of the program, we can feed it with
+    an artificial data file. This data file will be generated by the
+    program itself and it will consist in a grid of photons, forming
+    all together a parallel beam of light with certain
+    characteristics. These characteristics will be given by the user
+    in the |parameters file|, in the following form.
+    
+    parallel\_beam |<theta> <phi> <Xcen> <Ycen> <lenX> <lenY> <nX> <nY> <H>|
+    
+    or
+    
+    parallel\_beam\_pm |<filename> <scale> <H>|
+    
+    In the first form, the first two values give the arrival direction
+    of the beam (zenith angle and azimuth) in degrees, and the last
+    six values specify the geometry of the beam, in cm, and the height
+    of production, also in cm.  In the second form, we use a pixmap
+    file in PPM ASCII format, and scale it to create (for 0 degrees of
+    zenith angle) a parallel beam of light.
+    
+  */
+
+  //++
+  // PARALLEL BEAM OF LIGHT
+  //--
+
+  // are we going to use a parallel beam of light?
+
+  pb_ParallelBeam = is_parallel_beam();
+  pb_ParallelBeamPM = is_parallel_beam_pm();
+
+  if ( pb_ParallelBeam == TRUE ) {
+
+    if ( pb_ParallelBeamPM == FALSE ) {
+
+      // get parameters of the parallel beam of light
+
+      get_parallel_beam(&pb_Theta, &pb_Phi, 
+                        &pb_X, &pb_Y, 
+                        &pb_LengthX, &pb_LengthY, 
+                        &pb_NX, &pb_NY, &pb_Height);
+      
+      // generate artificial file(s)
+      
+      // a. cerfile
+      
+      sprintf( cername, "%s/cer999999", get_path_name(0) );
+      
+      pbfile.open( cername, ios::out );
+      
+      evth.fill ( 1., 1., 1000., 1., 1.e6, 0., 0., 0., pb_Theta, pb_Phi,
+                  pb_X, pb_Y);
+      
+      evth.write( pbfile );
+      
+      for ( pbx = (pb_X - pb_LengthX/2.0); 
+            pbx <= (pb_X + pb_LengthX/2.0);  
+            pbx += (pb_LengthX/pb_NX) )
+        
+        for ( pby = (pb_Y - pb_LengthY/2.0); 
+              pby <= (pb_Y + pb_LengthY/2.0);  
+              pby += (pb_LengthY/pb_NY) ) {
+          
+          pbt = -atan2(sqrt(SQR(pbx)+SQR(pby)),pb_Height);
+          pbp = atan2(pby, pbx);
+          photon.fill(450.0, 
+                      pbx, pby, 
+                      -sin(pbt) * cos(pbp),
+                      -sin(pbt) * sin(pbp),
+                      0., pb_Height);
+          
+          photon.write( pbfile );
+          
+        }
+      
+      photon.fill( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 );
+      
+      photon.write( pbfile );
+      
+      pbfile.close();
+      
+      // b. statfile
+      
+      sprintf( staname, "%s/sta999999", get_path_name(0) );
+      
+      pbfile.open( staname );
+      
+      stat.write( pbfile );
+      
+      pbfile.close();
+
+    } else {
+
+      // get parameters of the parallel beam of light from PIXMAP
+
+      strcpy(pb_Filename, get_parallel_beam_pm(&pb_Scale,&pb_Height));
+
+      pmfile.open( pb_Filename, ios::out );
+      pmfile.getline( line, 300 );
+      
+      do {      
+        pmfile.getline( line, 300 );
+      } while (line[0] == '#');
+
+      sscanf( line, "%f %f", &pb_NX, &pb_NY );
+      pb_LengthX = pb_NX * pb_Scale;
+      pb_LengthY = pb_NY * pb_Scale;
+
+      // generate artificial file(s)
+      
+      // a. cerfile
+      
+      sprintf( cername, "%s/cer999999", get_path_name(0) );
+      
+      pbfile.open( cername, ios::out );
+      
+      evth.fill ( 1., 1., 1000., 1., 1.e6, 0., 0., 0., 0., 0., 0., 0.);
+      
+      evth.write( pbfile );
+      
+      for ( pbx = (pb_X - pb_LengthX/2.0); 
+            pbx <= (pb_X + pb_LengthX/2.0);  
+            pbx += (pb_LengthX/pb_NX) )
+        
+        for ( pby = (pb_Y - pb_LengthY/2.0); 
+              pby <= (pb_Y + pb_LengthY/2.0);  
+              pby += (pb_LengthY/pb_NY) ) {
+          
+          pmfile >> i;
+
+          if ( i < 1 ) 
+            continue;
+
+          pbt = -atan2(sqrt(SQR(pbx)+SQR(pby)),pb_Height);
+          pbp = atan2(pby, pbx);
+          photon.fill(450.0, 
+                      pbx, pby, 
+                      -sin(pbt) * cos(pbp),
+                      -sin(pbt) * sin(pbp),
+                      0., pb_Height);
+          
+          photon.write( pbfile );
+          
+        }
+      
+      photon.fill( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 );
+      
+      photon.write( pbfile );
+      
+      pbfile.close();
+      
+      // b. statfile
+      
+      sprintf( staname, "%s/sta999999", get_path_name(0) );
+      
+      pbfile.open( staname );
+      
+      stat.write( pbfile );
+      
+      pbfile.close();
+
+      pmfile.close();
+
+    }      
+
+  } // YES parallel beam
+  
+  // read parameters from the stdin
+
+  read_ct_file();
+
+  // set all random numbers seeds
+
+  setall( get_seeds(0), get_seeds(1) );
+  
+  // get name of the output file
+
+  strcpy( outname, get_output_filename() );
+  
+  // open((re)create) output file
+  
+  if ( verbose >= VERBOSE_MINIMAL )
+    log( SIGNATURE, "Openning/creating output file %s\n", outname );
+  
+  outputfile.open( outname );
+  
+  if ( outputfile.bad() ) 
+    error( SIGNATURE, "Cannot open output file: %s\n", outname );
+  
+  // save signature to the output file
+
+  if ( Data_To_STDOUT ) 
+    cout.write( SIGNATURE, sizeof(SIGNATURE) );
+  else
+    outputfile.write( SIGNATURE, sizeof(SIGNATURE) );
+
+  // generate a sort of log information
+
+  if ( verbose >= VERBOSE_MINIMAL ) {
+    log( SIGNATURE, "Atmospheric model: %s\n", get_atm_mod() );
+    log( SIGNATURE, "Number of paths:   %d\n", get_num_of_paths() );
+    log( SIGNATURE, "Output filename:   %s\n", outname );
+    log( SIGNATURE, "CT def. filename:  %s\n", get_ct_filename() );
+  }
+
+  // get energy range
+
+  get_energy_cuts( &lE, &uE );
+
+  /*!@'
+
+    After reading the parameters file (from STDIN), and the CT
+    definition file, we start the analysis. Basically, there are three
+    loops. The outermost loop is a loop in the E@data directories@ we
+    introduced in the parameters file; the middle loop follows each
+    |cer*| file in the directory; and the innermost loop gets each
+    Cherenkov from these files.
+
+  */
+
+  // for each path of data files
+
+  for (np=0; np<get_num_of_paths(); np++) {
+
+    strcpy(pathname, get_path_name(np));
+    
+    // open directory 
+      
+    if ( verbose >= VERBOSE_MINIMAL )
+      log( SIGNATURE, "Openning directory %s\n", pathname );
+ 
+    directory = opendir(pathname);
+
+    if ( directory == NULL ) 
+      error( SIGNATURE, 
+             "Cannot open directory %s\n", pathname );
+    
+    // write start-of-run mark
+    
+    if ( Data_To_STDOUT ) 
+      cout.write( FLAG_START_OF_RUN, SIZE_OF_FLAGS );
+    else
+      outputfile.write( FLAG_START_OF_RUN, SIZE_OF_FLAGS );
+    
+    // trace the number of events (cer* files) 
+    
+    num_cer_files = 0;
+
+    // get maximum number, first and last event
+
+    max_num_cer_files = get_max_events();
+
+    get_range_events(&f_ev, &l_ev);
+
+    // if reading from disk, save position of handler in directory
+
+    posdir = telldir( directory );
+
+    if ( Data_From_STDIN ) {
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log(SIGNATURE, " * * * READING DATA FROM STDIN * * *\n");
+
+      get_stdin_files(NULL, lE, uE, TRUE);
+
+    }
+    
+    //--- LOOP ON FILES ---
+    // for each directory entry (files), 
+    // and(or) while still data has to be read 
+    // this condition is:
+    // while  ( ( there are files    AND 
+    //            maximum number is not reached )
+    //                     OR 
+    //          ( reading from stdin   AND
+    //            maximum number is not reached ) )
+
+    while ( (
+             ((de = readdir( directory )) != NULL) &&
+             (num_cer_files < max_num_cer_files)
+             )
+            ||
+            (
+             ( Data_From_STDIN ) &&
+             (num_cer_files < max_num_cer_files)
+             ) ) {
+      
+      // if Block > 0, then we wait till a file __DOIT is present
+      
+      if ( Block > 0 ) {
+
+        if ( ! WORKING ) {
+
+          while ( ! WORKING ) {
+            // sleep 10 minutes
+            sleep( 60 );
+            
+            // look for the file __DOIT
+            obfile.open("__DOIT");
+            if ( ! obfile.bad() ) {
+              WORKING = TRUE;
+              obfile.close();
+            }
+          }
+          
+          obfile.open("__WORKING");
+          remove("__DOIT");
+
+          rewinddir( directory );
+          seekdir( directory, posdir );
+          
+          nfilesBlock = 0;
+
+          continue;
+          
+        } else {
+
+          if ( nfilesBlock == Block ) {
+
+            posdir = telldir( directory );
+            obfile.close();
+            obfile.open("__READY");
+            obfile << nfilesBlock << " files/block, "
+                   << ncer << " showers.\n";
+            obfile.close();
+            remove("__WORKING");
+            WORKING = FALSE;
+
+            continue;
+          }
+
+        }
+
+      } // if Block
+
+      if ( Data_From_STDIN ) {
+        
+        if ( verbose >= VERBOSE_MINIMAL )
+          log(SIGNATURE, "Try to get data from STDIN\n");
+        
+        if ( ! get_stdin_files(num_cer_files) ) {
+          if ( verbose >= VERBOSE_MINIMAL )
+            log(SIGNATURE, "get_stdin_files returned FALSE.\n");
+          if (cin.eof()) {
+            num_cer_files = max_num_cer_files + 1;
+            continue;
+          }
+        }
+        
+        ++num_cer_files;
+        ncer = num_cer_files;
+
+      } else {
+
+        // skip removed files
+        
+        if ( de->d_ino == 0)
+          continue;
+        
+        // keep only cer* files
+        
+        if ( strstr(de->d_name, "cer") != de->d_name )
+          continue;
+        
+        if ( Block > 0 ) {
+          ++nfilesBlock;
+          obfile << nfilesBlock;
+        }
+        
+        // get cer* file number (number of the shower)
+
+        // increments the pointer in 3 to calculate the number
+        
+        ncer = atoi(de->d_name + 3);  
+        
+        if ( (ncer < f_ev) || (ncer > l_ev) )
+          continue;
+        
+        // it is a real cer* file, and we want to read it
+        
+        ++num_cer_files;
+        
+        if ( verbose >= VERBOSE_NORMAL )
+          log( SIGNATURE, "cerfile: %s\n", de->d_name );
+        
+      } // data from disk
+
+      // Here we initialize the counters of Cherenkov photons at
+      // different levels of the analysis.
+      
+      nCphotons = nbeforeTR = nafterTR = 0;
+      
+      // full names of the input files cer* and sta*
+        
+      sprintf(cername, "%s/cer%06d", pathname, ncer);
+      sprintf(staname, "%s/sta%06d", pathname, ncer);
+
+      // try to open cer* file
+        
+      if ( verbose >= VERBOSE_MAXIMAL )
+        log( SIGNATURE, "Opening %s\n", cername );
+        
+      cerfile.open( cername );
+        
+      if ( cerfile.bad() ) 
+        error( SIGNATURE, 
+               "Cannot open input file: %s\n", cername );
+        
+      /*!@'
+
+        Each shower has associated three files: E@ Cherenkov-photons
+        file @ (|cer*|), E@ Particles file @ (|dat*|) and E@
+        Statistics file @ (|sta*|). First we read the data from this
+        last file, which is explained below, and then we read the E@
+        Event-Header @ block from the |cer*| file.
+
+      */
+        
+      // try to open the statistics file
+        
+      if ( verbose >= VERBOSE_MAXIMAL )
+        log( SIGNATURE, "Opening %s\n", staname );
+        
+      stat.openfile ( staname );
+        
+      // reading data from this sta* file
+        
+      if ( verbose >= VERBOSE_MAXIMAL )
+        log( SIGNATURE, "Reading %s\n", staname );
+        
+      stat.read();
+        
+      // read the Event Header from the cer* file
+        
+      evth.read( cerfile );
+        
+      if ( verbose >= VERBOSE_MAXIMAL ) {
+        log( SIGNATURE, "EVENT HEADER:\n");
+        evth.print();
+      }
+        
+      // check energy
+        
+      if ( (evth.get_energy() < lE) || 
+           (evth.get_energy() > uE) ) {
+          
+        // close files
+        cerfile.close();
+        stat.closefile();
+          
+        // skip it
+        if ( verbose >= VERBOSE_MAXIMAL )
+          log( SIGNATURE, "Bad energy.\n");
+          
+        continue;
+      }
+        
+      // write start-of-event mark
+        
+      if ( Data_To_STDOUT ) 
+        cout.write( FLAG_START_OF_EVENT, SIZE_OF_FLAGS );
+      else
+        outputfile.write( FLAG_START_OF_EVENT, SIZE_OF_FLAGS );
+        
+      // save information from the cer* to the mc-evth
+        
+      mcevth.transport( &evth );
+        
+      // save time interval in the mc-evth
+        
+      mcevth.put_times ( stat.get_tfirst(), stat.get_tlast() );
+        
+      // get direction where the CT is pointing to
+      // (or, better, from when the shower is coming from)
+
+      // first, put the values from the shower
+      thetaCT = evth.get_theta();
+      phiCT   = evth.get_phi();
+
+      // then, may be we have to change them
+
+      // do we want random pointing (around shower axis) ?
+      if ( get_random_pointing( &Random_Pointing_MaxDist ) == TRUE ) {
+
+        // we do, then get a random position
+        xiCT = get_new_ct_pointing(thetaCT, phiCT,
+                                   Random_Pointing_MaxDist,
+                                   &thetaCT, &phiCT);
+
+        xiCT = xiCT;   // thi is to avoid "was set but not used" messages
+        
+        // save deviations in mc-evth
+        mcevth.put_deviations (thetaCT - evth.get_theta(),
+                               phiCT - evth.get_phi());
+
+        if ( verbose >= VERBOSE_MAXIMAL )
+          log( SIGNATURE, "NEW POINTING: (%f,%f)  ->  (%f,%f)\n",
+               evth.get_theta(), evth.get_phi(), thetaCT, phiCT);
+
+      } else {
+        
+        mcevth.put_deviations (0.0, 0.0);
+
+        if ( get_fixed_target( &thetaCT, &phiCT ) == FALSE ) {
+          thetaCT = evth.get_theta();
+          phiCT   = evth.get_phi();
+        }
+
+      }
+        
+      // save event-header to the output file
+        
+      if ( Data_To_STDOUT ) 
+        cout.write ( (char *)&mcevth, mcevth.mysize() );
+      else
+        mcevth.write( outputfile );
+        
+      if ( verbose >= VERBOSE_MAXIMAL )
+        mcevth.print();
+
+      // get core distance and position
+        
+      coreD = evth.get_core(&coreX, &coreY);
+      coreD=coreD; // to avoid "was set but not used" messages
+        
+      // calculate matrices for changing of coordinate system from-to CT
+      
+      makeOmega( thetaCT, phiCT );
+      makeOmegaI( thetaCT, phiCT );
+      
+      memcpy( OmegaCT, Omega, 9*sizeof(float) );
+      memcpy( OmegaICT, OmegaI, 9*sizeof(float) );
+
+      // read each and every single photon (particle) from cer* file
+      
+      while ( ! (cerfile.eof() || cerfile.bad()) ) {
+        
+        // read photon data from the file
+        
+        photon.read( cerfile );
+
+        wl = photon.get_wl();
+        
+        if ( wl < 1.0 )
+          break;
+        
+        // get director cosines in z-axis
+        
+        w = r[2] = photon.get_w();
+        
+        /*!@'
+
+          @#### Atmospheric attenuation.
+
+          The routine |atm()| calls the proper attenuation routine,
+          and returns the transmission coefficient for that
+          whavelength, height and zenith angle.
+
+           */
+
+        //++
+        // FILTER No. 1: ATMOSPHERE
+        //--
+
+        ++nbeforeTR;
+
+        // get transmitance of the atmosphere
+          
+        TR = atm( photon.get_wl(), photon.get_h(), acos(w) );  
+
+        // passes the atmosphere?
+          
+        // if random > TR then goes to the TOP of the loop again
+          
+        if ( RandomNumber > TR ) 
+          continue;              
+          
+        ++nafterTR;
+
+        /*!@'
+
+          @#### Reflectivity of the mirrors.
+
+          We make a 3rd. order interpolation using Lagrange
+          polynomials, in order to calculate the reflectivity of the
+          mirror for that wavelength. Further developments will
+          include also a incidence-angle dependence (which is not very
+          important).
+
+        */
+
+        //++
+        // FILTER No. 2: REFLECTIVITY R(lambda)
+        //--
+
+        // find data point to be used in Lagrange interpolation (-> k)
+
+        FindLagrange(Reflectivity,k,wl);
+          
+        // if random > reflectivity then goes to the TOP of the loop again
+          
+        reflec = Lagrange(Reflectivity,k,wl);
+          
+        if ( RandomNumber > reflec )
+          continue;
+
+        /*!@'
+
+          @#### Reflexion in the mirrors.
+
+          The reflexion is made now is a somehow dirty way: if the
+          value of the variable |ct\_Type| is 0, the telescope is CT1,
+          and if the value is 1, the telescope is MAGIC. Due to the
+          completly different geometries of the dishes and the
+          mirrors, now we support two fully separated and different
+          algorithms.
+
+        */
+
+        //++
+        // REFLEXION
+        //--
+
+        // get director cosines x,y and save original trayectory
+          
+        u = r[0] = photon.get_u();
+        v = r[1] = photon.get_v();
+        u=u, v=v;         // to avoid "was set but not used" messages
+        
+        // get position in the ground
+          
+        x[0] = photon.get_x() - coreX;
+        x[1] = photon.get_y() - coreY;
+        x[2] = 0.0;
+          
+        if ( verbose >= VERBOSE_MAXIMAL ) {
+          cout << '@' << '1' 
+               << ' ' << ncer 
+               << ' ' << t   
+               << ' ' << x[0]
+               << ' ' << x[1]
+               << ' ' << x[2]
+               << ' ' << r[0]
+               << ' ' << r[1]
+               << ' ' << r[2] 
+               << ' ' << thetaCT 
+               << ' ' << phiCT 
+               << endl;
+        }
+
+        // change to the system of the CT
+        
+        applyMxV( OmegaCT, x, xCT );
+        applyMxV( OmegaCT, r, rCT );        
+
+        // before moving to the system of the mirror, for MAGIC, 
+        // first we look whether the photon hits a mirror or not
+
+        // calculate the intersection of the trayectory of the photon 
+        // with the GLOBAL DISH !!!
+        // we reproduce the calculation of the coefficients of the
+        // second order polynomial in z (=xCT[2]), made with 
+        // Mathematica 
+
+        /*
+         * In[1]:= parab:=z-(x^2+y^2)/(4F)
+         *        par1=parab /. {x->x0+u/w(z-z0),y->y0+v/w(z-z0)}
+         * 
+         * Out[1]=
+         *                  u (z - z0) 2         v (z - z0) 2
+         *            (x0 + ----------)  + (y0 + ----------)
+         *                      w                    w
+         *        z - ---------------------------------------
+         *                              4 F
+         * 
+         * In[2]:= CoefficientList[ExpandAll[par1*4F*w^2],z]
+         * 
+         * Out[2]=
+         *            2   2     2   2
+         *        {-(w  x0 ) - w  y0  + 2 u w x0 z0 + 
+         *         
+         *                         2   2    2   2
+         *          2 v w y0 z0 - u  z0  - v  z0 , 
+         *         
+         *              2                            2
+         *         4 F w  - 2 u w x0 - 2 v w y0 + 2 u  z0 + 
+         *         
+         *             2       2    2
+         *          2 v  z0, -u  - v }
+         */       
+ 
+        // the z coordinate is calculated
+
+        a = - SQR(rCT[0]) - SQR(rCT[1]);
+        b = 4.0*ct_Focal_mean*SQR(rCT[2]) 
+          - 2.0*rCT[0]*rCT[2]*xCT[0] - 2.0*rCT[1]*rCT[2]*xCT[1] 
+          + 2.0*SQR(rCT[0])*xCT[2] + 2.0*SQR(rCT[1])*xCT[2];
+        c = 2*rCT[0]*rCT[2]*x[0]*x[2] + 2*rCT[1]*rCT[2]*x[1]*x[2] 
+          - SQR(rCT[2])*SQR(x[0]) - SQR(rCT[2])*SQR(x[1])
+          - SQR(rCT[0])*SQR(x[2]) - SQR(rCT[1])*SQR(x[2]);
+
+        if ( fabs(a) < 1.e-6 ) {
+
+          // only one value
+
+          xcut[2] = -c / b;
+
+        } else {
+          
+          d = sqrt( b*b - 4.0*a*c );
+          
+          // two possible values for z
+          
+          t1 = (-b+d) / (2.0*a);
+          t2 = (-b-d) / (2.0*a);
+
+          // z must be the minimum of t1 and t2
+          
+          xcut[2] = (t1 < t2) ? t1 : t2;
+
+        }
+        
+        // xcut[] is NOW the cut between the GLOBAL dish of MAGIC and
+        // the trayectory of the photon
+
+        xcut[0] = xCT[0] + rCT[0]/rCT[2]*(xcut[2]-xCT[2]);
+        xcut[1] = xCT[1] + rCT[1]/rCT[2]*(xcut[2]-xCT[2]);
+
+        if ( ct_Type == 1 ) {
+
+          // ++ >>>>>>>>>> MAGIC <<<<<<<<<<
+        
+          // convert to Curvilinear distance over the parabolic dish
+          
+          sx = Lin2Curv( xcut[0] );
+          sy = Lin2Curv( xcut[1] );
+          
+          // is it outside the dish?
+          
+          if ((fabs(sx) > 850.0) || (fabs(sy) > 850.0)) {
+            //cout << "CONDICION 1 !" << endl << flush;
+            //cout << '1';
+            continue;
+          }
+
+          // -- >>>>>>>>>> MAGIC <<<<<<<<<<
+
+        } // endif (ct_Type == 1)
+
+        // calculate the mirror to be used
+
+        distmirr = 1000000.;
+        
+        for (i=0; i<ct_NMirrors && distmirr>=ct_RMirror; ++i) {
+          distmirr2 = sqrt(SQR(ct_data[i][CT_X] - xcut[0]) +
+                           SQR(ct_data[i][CT_Y] - xcut[1]) +
+                           SQR(ct_data[i][CT_Z] - xcut[2]));
+          if (distmirr2 < distmirr) {
+            i_mirror = i;
+            distmirr = distmirr2;
+          }
+        }
+
+        // the mirror to use is i_mirror (calculated several lines above)
+        // check whether the photon is outside the nearest (this) mirror
+          
+        if ( ct_Type == 0 ) {
+
+          // ++ >>>>>>>>>> CT1 <<<<<<<<<<
+          if (distmirr > ct_RMirror) {
+            //cout << "CONDICION 2 !" << endl << flush;
+            //cout << '2';
+            continue;
+          }
+          // -- >>>>>>>>>> CT1 <<<<<<<<<<
+        
+        } else { 
+          
+          // ++ >>>>>>>>>> MAGIC <<<<<<<<<<
+          if ((fabs(ct_data[i_mirror][CT_SX] - sx) > ct_RMirror) ||
+              (fabs(ct_data[i_mirror][CT_SY] - sy) > ct_RMirror)) {
+            //cout << "CONDICION 2 !" << endl << flush;
+            //cout << '2';
+            continue;         
+          }
+          // -- >>>>>>>>>> MAGIC <<<<<<<<<<
+            
+        }
+ 
+        // calculate matrices for the mirror
+        
+        makeOmega (-ct_data[i_mirror][CT_THETAN], 
+                   ct_data[i_mirror][CT_PHIN]);
+        makeOmegaI(-ct_data[i_mirror][CT_THETAN], 
+                   ct_data[i_mirror][CT_PHIN]);
+        
+        // change to the system of the mirror
+        
+        // first translation...
+
+        xmm[0] = xCT[0] - ct_data[i_mirror][CT_X];
+        xmm[1] = xCT[1] - ct_data[i_mirror][CT_Y];
+        xmm[2] = xCT[2] - ct_data[i_mirror][CT_Z];
+        
+        // ...then rotation
+
+        applyMxV( Omega, xmm, xm );
+        applyMxV( Omega, rCT, rm );
+        
+        // the vector rCT should be normalized, and
+        // so the vector rm remains normalized as well, but, anyhow...
+        
+        rnorm = NORM( rm );
+        rm[0] /= rnorm;
+        rm[1] /= rnorm;
+        rm[2] /= rnorm;
+
+        // calculate the intersection of the trayectory of the photon 
+        // with the mirror
+        // we reproduce the calculation of the coefficients of the
+        // second order polynomial in z (=xm[2]), made with 
+        // Mathematica
+
+        /*
+         * In[1]:= esfera:=x^2+y^2+(z-R)^2-R^2;
+         *         recta:={x->x0+u/w(z-z0),y->y0+v/w(z-z0)}
+         * 
+         * In[2]:= esfera
+         * 
+         *            2    2    2           2
+         * Out[2]= -R  + x  + y  + (-R + z)
+         * 
+         * In[3]:= recta
+         * 
+         *                     u (z - z0)            v (z - z0)
+         * Out[3]= {x -> x0 + ----------, y -> y0 + ----------}
+         *                         w                     w
+         * 
+         * In[4]:= esf=esfera /. recta
+         * 
+         *           2           2         u (z - z0) 2         v (z - z0) 2
+         * Out[4]= -R  + (-R + z)  + (x0 + ----------)  + (y0 + ----------)
+         *                                      w                    w
+         * 
+         * In[5]:= coefs=CoefficientList[ExpandAll[esf],z]
+         * 
+         *                                               2   2    2   2
+         *            2     2   2 u x0 z0   2 v y0 z0   u  z0    v  z0
+         * Out[5]= {x0  + y0  - --------- - --------- + ------ + ------, 
+         *                           w           w          2        2
+         *                                                 w        w
+         *  
+         *                                  2         2          2    2
+         *             2 u x0   2 v y0   2 u  z0   2 v  z0      u    v
+         * >    -2 R + ------ + ------ - ------- - -------, 1 + -- + --}
+         *               w        w         2         2          2    2
+         *                                 w         w          w    w
+         * In[6]:= Simplify[ExpandAll[coefs*w^2]]
+         * 
+         *           2    2     2                             2    2    2
+         * Out[6]= {w  (x0  + y0 ) - 2 w (u x0 + v y0) z0 + (u  + v ) z0 ,
+         *  
+         *             2             2                            2    2    2
+         * >    -2 (R w  - u w x0 + u  z0 + v (-(w y0) + v z0)), u  + v  + w }
+         * 
+         */
+         
+        // the z coordinate is calculated, using the coefficients
+        // shown above
+
+        a = SQR(rm[0]) + SQR(rm[1]) + SQR(rm[2]);
+        if ( ct_Type == 0 )  {
+          // CT1
+          b = -2*(2.*ct_Focal_mean*SQR(rm[2]) 
+                  - rm[0]*rm[2]*xm[0] 
+                  + SQR(rm[0])*xm[2] 
+                  + rm[1]*(-(rm[2]*xm[1]) + rm[1]*xm[2]));
+        } else {
+          // MAGIC
+          b = -2*(2.*ct_data[i_mirror][CT_FOCAL]*SQR(rm[2]) 
+                  - rm[0]*rm[2]*xm[0] 
+                  + SQR(rm[0])*xm[2] 
+                  + rm[1]*(-(rm[2]*xm[1]) + rm[1]*xm[2]));
+        }
+        c = (SQR(rm[2])*(SQR(xm[0]) + SQR(xm[1])) 
+             - 2*rm[2]*(rm[0]*xm[0] + rm[1]*xm[1])*xm[2] + 
+             (SQR(rm[0]) + SQR(rm[1]))*SQR(xm[2]));
+
+        d = sqrt( b*b - 4.0*a*c );
+
+        // two possible values for z
+
+        t1 = (-b+d) / (2.0*a);
+        t2 = (-b-d) / (2.0*a);
+
+        // z must be the minimum of t1 and t2
+
+        xcut[2] = (t1 < t2) ? t1 : t2;
+        xcut[0] = xm[0] + rm[0]/rm[2]*(xcut[2]-xm[2]);
+        xcut[1] = xm[1] + rm[1]/rm[2]*(xcut[2]-xm[2]);
+
+        //++
+        // BLACK SPOTS: If the photon hits the black spot, it's lost
+        //--
+
+        if ( sqrt(SQR(xcut[0]) + SQR(xcut[1])) < ct_BlackSpot_rad ) {
+          //cout << "CONDITION 3!\n" << flush;
+          //cout << '3';
+          continue;
+        }
+
+        // if still we have the photon, continue with the reflexion
+          
+        // calculate normal vector in this point 
+        // (and normalize, with the sign changed)
+
+        rnor[0] = 2.0*xcut[0];
+        rnor[1] = 2.0*xcut[1];
+        rnor[2] = 2.0*(xcut[2] - 2.0*ct_Focal[i_mirror]);
+
+        rnorm = -NORM( rnor );
+        rnor[0] /= rnorm;
+        rnor[1] /= rnorm;
+        rnor[2] /= rnorm;
+
+        // now, both "normal" vector and original trayectory are
+        // normalized
+        // just project the original vector in the normal, and 
+        // take it as the "mean" position of the original and
+        // the "reflected" vector
+        // from this, we can calculate the "reflected" vector
+        // calpha = cos(angle(rnor,rm))
+
+        calpha = fabs(rnor[0]*rm[0] + rnor[1]*rm[1] + rnor[2]*rm[2]);
+        
+        // finally!!! we have the reflected trayectory of the photon
+
+        rrefl[0] = 2.0*rnor[0]*calpha - rm[0];
+        rrefl[1] = 2.0*rnor[1]*calpha - rm[1];
+        rrefl[2] = 2.0*rnor[2]*calpha - rm[2];
+
+        rnorm = NORM( rrefl );
+        rrefl[0] /= rnorm;
+        rrefl[1] /= rnorm;
+        rrefl[2] /= rnorm;
+
+        // let's go back to the coordinate system of the CT
+
+        // first rotation...
+        applyMxV( OmegaI, xcut, xcutCT);
+        applyMxV( OmegaI, rrefl, rreflCT);
+
+        // ...then translation
+        xcutCT[0] += ct_data[i_mirror][CT_X];
+        xcutCT[1] += ct_data[i_mirror][CT_Y];
+        xcutCT[2] += ct_data[i_mirror][CT_Z];
+        
+        // calculate intersection of this trayectory and the camera plane
+        // in the system of the CT, this plane is z = ct_Focal
+
+        t = (ct_Focal_mean - xcutCT[2]) / rreflCT[2];
+
+        xcam[0] = xcutCT[0] + rreflCT[0]*t;
+        xcam[1] = xcutCT[1] + rreflCT[1]*t;
+        xcam[2] = xcutCT[2] + rreflCT[2]*t;
+        
+        //++
+        // AXIS DEVIATION: We introduce it here just as a first order 
+        //   correction, by modifying the position of the reflected photon.
+        //--
+
+        xcam[0] += AxisDeviation[0][i_mirror];
+        xcam[1] += AxisDeviation[1][i_mirror];
+        
+        //++
+        // SMEARING: We apply the point spread function for the mirrors
+        //--
+
+        // get two N(0;1) random numbers
+
+        rnormal( NormalRandomNumbers, 2 );
+
+        // modify the Cphoton position in the camera
+
+        xcam[0] += NormalRandomNumbers[0] * ct_PSpread_mean;
+        xcam[1] += NormalRandomNumbers[1] * ct_PSpread_mean;
+
+        // check whether the photon goes out of the camera
+
+        if ( (SQR(xcam[0])+SQR(xcam[1])) > SQR(ct_CameraWidth) ) {
+          continue;
+        }
+
+        //++
+        // ANGLE OF INCIDENCE
+        //--
+
+        // calculate angle of incidence between tray. and camera plane
+        // the camera plane is
+        // 0 y + 0 y + z - ct_Focal = 0 => (A,B,C,D) = (0,0,1,-ct_Focal)
+        // from Table 3.20 "Tasch. der Math."
+
+        phi = asin(rreflCT[2]);  
+
+        //++
+        // TIMING
+        //--
+
+        // calculate the new time of the photon (in the camera)
+
+        // initial time since first interaction
+
+        t = photon.get_t();
+
+        // substract path from the mirror till the ground, 'cos 
+        // the photon actually hit the mirror!!
+
+        t = t - sqrt( SQR(xm[0] - xcut[0]) +
+                      SQR(xm[1] - xcut[1]) +
+                      SQR(xm[2] - xcut[2]) ) / Speed_of_Light_air_cmns;
+        
+        // add path from the mirror till the camera
+
+        t = t + sqrt( SQR(xcutCT[0] - xcam[0]) +
+                      SQR(xcutCT[1] - xcam[1]) +
+                      SQR(xcutCT[2] - xcam[2]) ) / Speed_of_Light_air_cmns;
+        
+        // save data in the photon variable
+
+        cphoton.fill( photon.get_id(), 
+                      xcam[0], xcam[1],
+                      photon.get_u(), photon.get_v(),
+                      photon.get_h(), t, phi);
+          
+        // show it
+
+        if ( verbose >= VERBOSE_MAXIMAL ) {
+          cout << '@' << '2' 
+               << ' ' << ncer 
+               << ' ' << xCT[0]
+               << ' ' << xCT[1]
+               << ' ' << xCT[2]
+               << ' ' << rCT[0]
+               << ' ' << rCT[1]
+               << ' ' << rCT[2]
+               << ' ' << xcut[0]
+               << ' ' << xcut[1]
+               << ' ' << xcut[2]
+               << endl;
+          cout << '@' << '3' 
+               << ' ' << ncer 
+               << ' ' << sx
+               << ' ' << sy
+               << ' ' << i_mirror
+               << ' ' << ct_data[i_mirror][CT_SX]
+               << ' ' << ct_data[i_mirror][CT_SY]
+               << ' ' << ct_data[i_mirror][CT_SX] - sx
+               << ' ' << ct_data[i_mirror][CT_SY] - sy 
+               << endl;
+          if ( pb_ParallelBeam == FALSE )  {
+            cout << '@' << '4' 
+                 << ' ' << ncer 
+                 << ' ' << xcam[0] 
+                 << ' ' << xcam[1] 
+                 << ' ' << xcam[2] 
+                 << ' ' << phi 
+                 << ' ' << photon.get_t()-stat.get_tfirst() 
+                 << ' ' << t-stat.get_tfirst() 
+                 << endl << flush;
+          } else {
+            cout << '@' << '4' 
+                 << ' ' << ncer 
+                 << ' ' << xcam[0] 
+                 << ' ' << xcam[1] 
+                 << ' ' << xcam[2] 
+                 << ' ' << phi 
+                 << endl << flush;
+          }
+        }
+                
+        // write the photon data to the output file
+        
+        if ( Data_To_STDOUT ) 
+          cout.write ( (char *)&cphoton, cphoton.mysize() );
+        else
+          cphoton.write( outputfile );
+
+        // increase number of Cphotons written
+
+        ++nCphotons;
+
+      } // while still there are photons left
+
+      if ( verbose >= VERBOSE_NORMAL )
+        cout << nCphotons << ' '
+             << nbeforeTR << ' '
+             << nafterTR << ' '
+             << endl << flush;
+      
+      // write end-of-event mark
+      
+      if ( Data_To_STDOUT ) 
+        cout.write( FLAG_END_OF_EVENT, SIZE_OF_FLAGS );
+      else
+        outputfile.write( FLAG_END_OF_EVENT, SIZE_OF_FLAGS );
+
+      // close files
+        
+      cerfile.close();
+      stat.closefile();
+
+      // show how many photons were written
+          
+      if ( verbose >= VERBOSE_MAXIMAL )
+        log( SIGNATURE, "%d C-photons written.\n", nCphotons );
+
+      // if we are reading data from STDIN, delete the last used files
+      
+      if ( Data_From_STDIN ) {
+        
+        unlink( cername );
+        unlink( staname );
+        
+      }      
+      
+    } // while there are still data left
+    
+    // write end-of-run mark
+    
+    if ( Data_To_STDOUT ) 
+      cout.write( FLAG_END_OF_RUN, SIZE_OF_FLAGS );
+    else
+      outputfile.write( FLAG_END_OF_RUN, SIZE_OF_FLAGS );
+    
+    // close directory
+    
+    closedir( directory );
+    
+  } // for each data directory 
+
+  // write end-of-file mark
+  
+  if ( Data_To_STDOUT ) 
+    cout.write( FLAG_END_OF_FILE, SIZE_OF_FLAGS );
+  else
+    outputfile.write( FLAG_END_OF_FILE, SIZE_OF_FLAGS );
+
+  // close output file
+
+  if ( verbose >= VERBOSE_MINIMAL ) 
+    log( SIGNATURE, "Closing output file %s\n", outname );
+
+  if ( ! Data_To_STDOUT ) 
+    outputfile.close();
+
+  // clean everything
+
+  if ( verbose >= VERBOSE_MINIMAL ) 
+    log( SIGNATURE, "Cleanning . . .\n" );
+
+  clean();
+
+  // program finished
+
+  if ( verbose >= VERBOSE_MINIMAL ) 
+    log( SIGNATURE, "Done.\n");
+
+  return ( 0 );
+}
+//!@}
+
+// @T \newpage
+
+//=---------------------------------------------------------------------
+// @subsection Functions definition
+
+//!---------------------------------------------------------------------
+// @name present
+//
+// @desc Make some presentation
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void 
+present(void)
+{
+  cout << "##################################################\n"
+       <<  SIGNATURE << '\n' << '\n'
+       << "Simulation of the reflector\n"
+       << "J C Gonzalez, May 1998\n"
+       << "##################################################\n\n";
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name usage
+//
+// @desc show help
+//
+// @date Tue Dec 15 16:23:30 MET 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void 
+usage(void)
+{
+  present();
+  cout << "\nusage ::\n\n"
+       << "\t reflector "
+       << " [ -@ paramfile ] "
+       << " [ -h ] "
+       << "\n\n or \n\n"
+       << "\t reflector < paramfile"
+       << "\n\n";
+  exit(0);
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name clean
+//
+// @desc basically, frees memory
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void 
+clean(void)
+{
+  int i;
+
+  // delete focals table
+
+  delete [] ct_Focal;        
+  ct_Focal = NULL;
+
+  // delete reflectivity table
+
+  for (i=0; i<2; i++) {
+    delete [] Reflectivity[i];
+  }
+  
+  delete [] Reflectivity;    
+  Reflectivity = NULL;
+
+  // delete mirrors' data table
+
+  for (i=0; i<ct_NMirrors; i++) {
+    delete [] ct_data[i];
+  }
+  
+  delete [] ct_data;
+  ct_data = NULL;
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name log                             
+//                                   
+// @desc function to send log information
+//
+// @var    funct  Name of the caller function
+// @var    fmt    Format to be used (message)
+// @var    ...    Other information to be shown
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void
+log(const char *funct, char *fmt, ...)
+{
+  va_list args;
+  
+  //  Display the name of the function that called error
+  printf("[%s]: ", funct);
+  
+  // Display the remainder of the message
+  va_start(args, fmt);
+  vprintf(fmt, args);
+  va_end(args);
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name logerr                             
+//                                   
+// @desc function to send log information to stderr
+//
+// @var    funct  Name of the caller function
+// @var    fmt    Format to be used (message)
+// @var    ...    Other information to be shown
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void
+logerr(const char *funct, char *fmt, ...)
+{
+  va_list args;
+  
+  //  Display the name of the function that called error
+  printf("[%s]: ", funct);
+  
+  // Display the remainder of the message
+  va_start(args, fmt);
+  vfprintf(stderr, fmt, args);
+  va_end(args);
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name error                                                    
+//                                                           
+// @desc function to send an error message, and abort the program
+//
+// @var    funct  Name of the caller function
+// @var    fmt    Format to be used (message)
+// @var    ...    Other information to be shown
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void
+error(const char *funct, char *fmt, ...)
+{
+  va_list args;
+
+  //  Display the name of the function that called error
+  fprintf(stderr, "ERROR in %s: ", funct);
+
+  // Display the remainder of the message
+  va_start(args, fmt);
+  vfprintf(stderr, fmt, args);
+  va_end(args);
+
+  abort();
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name makeOmega                                        
+//                                                    
+// @desc function to calculate the matrix Omega(theta,phi)
+//
+// @var    theta   Angle theta of the transformation 
+// @var    phi     Angle phi of the transformation 
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void
+makeOmega (float theta, float phi)
+{
+  static float ct, st, cp, sp;
+  
+  // shortcuts for cosine and sine of theta and phi
+  ct = cos(theta);
+  st = sin(theta);
+  cp = cos(phi);
+  sp = sin(phi);
+  
+  // save values in the array (see top of file)
+  Omega[0][0] =  cp*ct;
+  Omega[0][1] =  sp*ct; 
+  Omega[0][2] = -st; 
+     
+  Omega[1][0] = -sp;
+  Omega[1][1] =  cp;
+  Omega[1][2] =  0;      
+
+  Omega[2][0] =  cp*st;
+  Omega[2][1] =  sp*st; 
+  Omega[2][2] =  ct;         
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name makeOmegaI                                         
+//                                                      
+// @desc function to calculate the matrix Omega-1(theta,phi)
+//
+// @var    theta   Angle theta of the transformation 
+// @var    phi     Angle phi of the transformation 
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void
+makeOmegaI(float theta, float phi)
+{
+  static float ct, st, cp, sp;
+  
+  // shortcuts for cosine and sine of theta and phi
+  ct = cos(theta);
+  st = sin(theta);
+  cp = cos(phi);
+  sp = sin(phi);
+  
+  // save values in the array (see top of file)
+  OmegaI[0][0] =  cp*ct;
+  OmegaI[0][1] = -sp;
+  OmegaI[0][2] =  cp*st;     
+
+  OmegaI[1][0] =  sp*ct;
+  OmegaI[1][1] =  cp; 
+  OmegaI[1][2] =  sp*st;
+
+  OmegaI[2][0] = -st;   
+  OmegaI[2][1] =  0; 
+  OmegaI[2][2] =  ct;            
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name applyMxv                                              
+//                                                         
+// @desc returns the vector v' such that v' = M x v
+//
+// @var    M       matrix of the transformation
+// @var    v       vector to be multiplied
+// @var    vi      resulting vector
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void
+applyMxV(float M[3][3], float *V, float *Vp)
+{
+  Vp[0] = (M[0][0] * V[0] +
+           M[0][1] * V[1] +
+           M[0][2] * V[2]);
+  Vp[1] = (M[1][0] * V[0] +
+           M[1][1] * V[1] +
+           M[1][2] * V[2]);
+  Vp[2] = (M[2][0] * V[0] +
+           M[2][1] * V[1] +
+           M[2][2] * V[2]);
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name read_ct_file           
+//                          
+// @desc read CT definition file
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void
+read_ct_file(void)
+{
+  char line[LINE_MAX_LENGTH];    // line to get from the ctin
+  char token[ITEM_MAX_LENGTH];   // a single token
+  char fmirr[40];                // name of the binary version of mirrors data
+  int i;                         // dummy counters
+
+  if ( verbose >= VERBOSE_MINIMAL )
+    log( "read_ct_file", "start.\n" );
+
+  ifstream ctin ( get_ct_filename() );
+
+  if ( ctin.bad() ) 
+    error( "read_ct_file", 
+           "Cannot open CT def. file: %s\n", get_ct_filename() );
+  
+  // loop till the "end" directive is reached
+
+  while (!ctin.eof()) {          
+
+    // get line from stdin
+
+    ctin.getline(line, LINE_MAX_LENGTH);
+
+    // look for each item at the beginning of the line
+
+    for (i=0; i<=define_mirrors; i++) 
+      if (strstr(line, CT_ITEM_NAMES[i]) == line)
+        break;
+    
+    // if it is not a valid line, just ignore it
+
+    if (i == define_mirrors+1) 
+      continue;
+    
+    // case block for each directive
+
+    switch ( i ) {
+
+    case type:                // <type of telescope> (0:CT1 ¦ 1:MAGIC)
+      
+      // get focal distance
+
+      sscanf(line, "%s %d", token, &ct_Type);
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log( "read_ct_file", "<Type of Telescope>: %s\n", 
+             ((ct_Type==0) ? "CT1" : "MAGIC") );
+
+      break;
+
+    case focal_distance:      // <focal distance> [cm]
+      
+      // get focal distance
+
+      sscanf(line, "%s %f", token, &ct_Focal_mean);
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log( "read_ct_file", "<Focal distance>: %f cm\n", ct_Focal_mean );
+
+      break;
+
+    case focal_std:           // s(focal distance) [cm]
+      
+      // get focal distance
+
+      sscanf(line, "%s %f", token, &ct_Focal_std);
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log( "read_ct_file", "s(Focal distance): %f cm\n", ct_Focal_std );
+
+      break;
+
+    case point_spread:        // <point spread> [cm]
+      
+      // get point spread
+
+      sscanf(line, "%s %f", token, &ct_PSpread_mean);
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log( "read_ct_file", "<Point spread>: %f cm\n", ct_PSpread_mean );
+
+      break;
+
+    case point_std:           // s(point spread) [cm]
+      
+      // get point spread
+
+      sscanf(line, "%s %f", token, &ct_PSpread_std);
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log( "read_ct_file", "s(Point spread): %f cm\n", ct_PSpread_std );
+
+      break;
+
+    case adjustment_dev:      // s(adjustment_dev) [cm]
+      
+      // get point spread
+
+      sscanf(line, "%s %f", token, &ct_Adjustment_std);
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log( "read_ct_file", "s(Adjustment): %f cm\n", ct_Adjustment_std );
+
+      break;
+
+    case black_spot:          // radius of the black spot in the center [cm]
+      
+      // get black spot radius
+
+      sscanf(line, "%s %f", token, &ct_BlackSpot_rad);
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log( "read_ct_file", "Radius of the black spots: %f cm\n", 
+             ct_BlackSpot_rad);
+
+      break;
+
+    case r_mirror:            // radius of the mirrors [cm]
+      
+      // get radius of mirror
+
+      sscanf(line, "%s %f", token, &ct_RMirror);
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log( "read_ct_file", "Radii of the mirrors: %f cm\n", ct_RMirror );
+
+      break;
+
+    case n_mirrors:           // number of mirrors
+      
+      // get the name of the output_file from the line
+
+      sscanf(line, "%s %d", token, &ct_NMirrors);
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log( "read_ct_file", "Number of mirrors: %d\n", ct_NMirrors );
+
+      break;
+
+    case camera_width:        // camera width [cm]
+      
+      // get the name of the ct_file from the line
+
+      sscanf(line, "%s %f", token, &ct_CameraWidth);
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log( "read_ct_file", "Camera width: %f cm\n", ct_CameraWidth );
+
+      break;
+
+    case n_pixels:           // number of pixels
+      
+      // get the name of the output_file from the line
+
+      sscanf(line, "%s %d", token, &ct_NPixels);
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log( "read_ct_file", "Number of pixels: %d\n", ct_NPixels );
+
+      break;
+
+    case pixel_width:         // pixel width [cm]
+      
+      // get the name of the ct_file from the line
+
+      sscanf(line, "%s %f", token, &ct_PixelWidth);
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log( "read_ct_file", "Pixel width: %f cm\n", ct_PixelWidth );
+
+      break;
+
+    case define_mirrors:      // read table with the parameters of the mirrors
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log( "read_ct_file", "Table of mirrors data:\n" );
+
+      // check whether the number of mirrors was already set
+
+      if ( ct_NMirrors == 0 )
+        error( "read_ct_file", "NMirrors was not set.\n" );
+      
+      // allocate memory for paths list
+
+      if ( verbose >= VERBOSE_MINIMAL )
+        log( "read_ct_file", "Allocating memory for ct_data\n" );
+
+      ct_data = new float*[ct_NMirrors];
+
+      for (i=0; i<ct_NMirrors; i++) 
+        ct_data[i] = new float[CT_NDATA];
+
+      // read data
+
+      // look for binary version of mirror data (faster to load)
+
+      sprintf( fmirr, "%s.mirr", get_ct_filename() );
+
+      ifstream ctmirr;
+      ctmirr.open( fmirr );
+
+      if ( ctmirr.bad() ) {
+
+        // the file does not exist
+        
+        ctmirr.close(); // close not existing file
+
+        ofstream ctmirr_write ( fmirr ); // open file to save the data
+
+        if ( verbose >= VERBOSE_MINIMAL )
+          log( "read_ct_file", "Reading mirrors data...\n" );
+
+        // read ASCII data
+
+        for (i=0; i<ct_NMirrors; i++) {
+          //      for (j=0; j<CT_NDATA; j++) 
+
+          ctin.getline(line, LINE_MAX_LENGTH);
+          sscanf(line, "%f %f %f %f %f %f %f %f %f %f %f %f",
+                 &ct_data[i][0],
+                 &ct_data[i][1],
+                 &ct_data[i][2],
+                 &ct_data[i][3],
+                 &ct_data[i][4],
+                 &ct_data[i][5],
+                 &ct_data[i][6],
+                 &ct_data[i][7],
+                 &ct_data[i][8],
+                 &ct_data[i][9],
+                 &ct_data[i][10],
+                 &ct_data[i][11]);
+
+          cout << '[' << i << ']' << flush;
+        }
+        cout << endl << flush;
+        
+        // save binary data and close output file
+        
+        for (i=0; i<ct_NMirrors; i++)
+          ctmirr_write.write( (char*)ct_data[i], CT_NDATA*sizeof(float) ); 
+        
+        ctmirr_write.close();
+
+      } else {
+
+        // Excellent!
+        // read binary data and close input file
+        
+        for (i=0; i<ct_NMirrors; i++)
+          ctmirr.read( (char*)ct_data[i], CT_NDATA*sizeof(float) ); 
+
+        ctmirr.close();
+
+      }
+
+      break;
+
+    } // switch ( i ) 
+
+  } // while (! is_end)
+
+  // read reflectivity file
+
+  read_reflectivity();
+
+  // read axis deviations file
+
+  read_axisdev();
+
+  // read focals file
+
+  read_focals(); 
+
+  // end
+
+  if ( verbose >= VERBOSE_MINIMAL )
+    log( "read_ct_file", "done.\n" );
+  return;
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name dist_r_P                          
+//                                     
+// @desc distance straight line r - point P
+// 
+// @var a   coord. X of a fixed point of the straight line
+// @var b   coord. Y of a fixed point of the straight line
+// @var c   coord. Z of a fixed point of the straight line
+// @var l   component X of a vector of the straight line
+// @var m   component Y of a vector of the straight line
+// @var n   component Z of a vector of the straight line
+// @var x   coord. X of the point P
+// @var y   coord. Y of the point P
+// @var z   coord. Z of the point P
+//
+// @return  Returns the distance d(r,P) between the line and the point P
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+float 
+dist_r_P(float a, float b, float c, 
+         float l, float m, float n,
+         float x, float y, float z)
+{
+  return (
+          sqrt((SQR((a-x)*m-(b-y)*l) +
+                SQR((b-y)*n-(c-z)*m) +
+                SQR((c-z)*l-(a-x)*n))/
+               (SQR(l)+SQR(m)+SQR(n))
+               )
+          );
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name read_reflectivity                     
+//                                         
+// @desc read reflectivity data for the mirrors
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void 
+read_reflectivity(void)
+{
+  ifstream reflfile;
+  ofstream reflfile_write;
+  int i, errors=0;
+  char line[LINE_MAX_LENGTH];
+
+  // try to open the file
+  reflfile.open( REFLECTIVITY_FILE );
+  
+  // if it is wrong or does not exist:
+
+  while ( reflfile.bad() ) {
+
+    ++errors;
+
+    if ( verbose >= VERBOSE_MINIMAL )
+      log( "read_reflectivity", "Cannot open reflectivity file: %s\n", 
+           REFLECTIVITY_FILE );
+
+    if ( errors > 5 )
+      error( "read_reflectivity", "Exiting.");
+
+    // try to re-generate the file
+
+    if ( verbose >= VERBOSE_MINIMAL )
+      log( "read_reflectivity", "Generating file: %s\n", 
+           REFLECTIVITY_FILE );
+
+    // try to open the file
+    reflfile_write.open( REFLECTIVITY_FILE );
+  
+    // write short comment in the beginning
+
+    reflfile_write << "# reflectivity file" << endl
+                   << "# reflectivity for each mirror in the frame" << endl
+                   << "# J C Gonzalez, 1998" << endl
+                   << "#" << endl;
+    
+    // write data
+    
+    // write number of data-points
+
+    reflfile_write << "# number of datapoints" << endl
+                   << 35 << endl;
+    
+    // write data-points
+
+    reflfile_write << "# datapoints" << endl;
+
+    for ( i=0; i<35; ++i ) 
+      reflfile_write << 270.0+i*10.0 << ' ' <<  .9 << endl;
+                  
+    // close it and try to re-open
+
+    reflfile_write.close();
+    reflfile.close();
+    reflfile.open( REFLECTIVITY_FILE );
+  
+  }
+  
+  if ( verbose >= VERBOSE_MINIMAL ) {
+    if ( errors > 0 )
+      log( "read_reflectivity", "Reading reflectivity file after %d fail%c\n", 
+           errors, ((errors>1)?'s':' ') );
+    else
+      log( "read_reflectivity", "Reading reflectivity file . . .\n" );
+  }
+
+  // we set this to -1, in order to read in the first place the
+  // number of data-points for the Reflectivity curve
+  i = -1; 
+
+  // scan the whole file
+
+  while ( ! reflfile.eof() ) {          
+
+    // get line from the file
+
+    reflfile.getline(line, LINE_MAX_LENGTH);
+
+    // skip if comment
+
+    if ( *line == '#' )
+      continue;
+
+    // get the value
+
+    if ( i < 0 ) {            // if it is the first number we read
+      
+      // read the number of datapoints
+
+      sscanf(line, "%d", &nReflectivity);
+      
+      // allocate memory for Reflectivity table
+
+      Reflectivity = new float * [2];
+      Reflectivity[0] = new float[nReflectivity];
+      Reflectivity[1] = new float[nReflectivity];
+
+    } else {                  // if not, then it is a datapoint
+
+      // get the datapoint (wavelength, reflectivity)
+
+      sscanf(line, "%f %f", &Reflectivity[0][i], &Reflectivity[1][i]);
+
+    }
+
+    ++i;
+        
+  }
+
+  // close it
+
+  reflfile.close();
+  
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name read_axisdev                             
+//                                            
+// @desc read axis deviations data for the mirrors
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void 
+read_axisdev(void)
+{
+  ifstream axisdevfile;
+  ofstream axisdevfile_write;
+  int i, errors=0;
+  char line[LINE_MAX_LENGTH];
+
+  // try to open the file
+  axisdevfile.open( AXISDEVIATION_FILE );
+  
+  // if it is wrong or does not exist:
+
+  while ( axisdevfile.bad() ) {
+
+    ++errors;
+
+    if ( verbose >= VERBOSE_MINIMAL )
+      log( "read_axisdev", "Cannot open axis deviation file: %s\n", 
+           AXISDEVIATION_FILE );
+
+    if ( errors > 5 )
+      error( "read_axisdev", "Exiting.");
+
+    // try to re-generate the file
+
+    if ( verbose >= VERBOSE_MINIMAL )
+      log( "read_axisdev", "Generating file: %s\n", 
+           AXISDEVIATION_FILE );
+
+    // try to open the file
+    axisdevfile_write.open( AXISDEVIATION_FILE );
+  
+    // write short comment in the beginning
+
+    axisdevfile_write << "# axis deviation file" << endl
+                      << "# axis deviation for each mirror" << endl
+                      << "# J C Gonzalez, 1998" << endl
+                      << "#" << endl;
+    
+    // write data
+    
+    for ( i=0; i<ct_NMirrors; ++i ) 
+      axisdevfile_write << gennor(0.0,ct_Adjustment_std) 
+                        << ' ' 
+                        << gennor(0.0,ct_Adjustment_std) 
+                        << endl;
+    
+    // close it and try to re-open
+
+    axisdevfile_write.close();
+    axisdevfile.close();
+    axisdevfile.open( AXISDEVIATION_FILE );
+  
+  }
+  
+  if ( verbose >= VERBOSE_MINIMAL ) {
+    if ( errors > 0 )
+      log( "read_axisdev", "Reading axis deviation file after %d fail%c\n", 
+           errors, ((errors>1)?'s':' ') );
+    else
+      log( "read_axisdev", "Reading axis deviation file . . .\n" );
+  }
+
+  //allocate memory for AxisDeviation table
+
+  AxisDeviation = new float * [2];
+  AxisDeviation[0] = new float[ct_NMirrors];
+  AxisDeviation[1] = new float[ct_NMirrors];
+
+  // scan the whole file
+
+  i = 0; 
+
+  while ( (! axisdevfile.eof()) && (i<ct_NMirrors) ) {          
+
+    // get line from the file
+
+    axisdevfile.getline(line, LINE_MAX_LENGTH);
+
+    // skip if comment
+
+    if ( *line == '#' )
+      continue;
+
+    // get the value (dx, dy)
+
+    sscanf(line, "%f %f", &AxisDeviation[0][i], &AxisDeviation[1][i]);
+
+    ++i;
+    
+  }
+
+  // did i do it for all the mirrors ?
+    
+  if (i < ct_NMirrors) {
+    error("read_axis_dev", "%s%s (%d < %d)\n",
+          "Number of pairs in axisdev.dat file is",
+          "\n\t\tsmaller than number of mirrors", i, ct_NMirrors);
+  }
+    
+  // close it
+
+  axisdevfile.close();
+  
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name read_focals                     
+//                                   
+// @desc read focals data for the mirrors
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void 
+read_focals(void)
+{
+  ifstream focalfile;
+  ofstream focalfile_write;
+  int i, errors=0;
+  char line[LINE_MAX_LENGTH];
+
+  /*!@'
+    
+    Here we read the focals of each mirror, but only for CT1. For
+    MAGIC we have already the Focals in the definition file. So, we
+    copy these values to the |ct\_Focals| vector.
+
+  */
+
+  // >>>>>>>>>> MAGIC <<<<<<<<<<
+  if ( ct_Type == 1) {
+
+    // allocate memory for the focals table 
+    ct_Focal = new float[ct_NMirrors];
+
+    for (i=0; i<ct_NMirrors; ++i)
+      ct_Focal[i] = ct_data[i][CT_FOCAL];
+    
+    return;
+
+  }
+  // ! >>>>>>>>>> MAGIC <<<<<<<<<<
+  
+  // try to open the file
+  focalfile.open( FOCALS_FILE );
+  
+  // if it is wrong or does not exist:
+
+  while ( focalfile.bad() ) {
+
+    ++errors;
+
+    if ( verbose >= VERBOSE_MINIMAL )
+      log( "read_focals", "Cannot open focals file: %s\n", 
+           FOCALS_FILE );
+
+    if ( errors > 5 )
+      error( "read_focals", "Exiting.");
+
+    // try to re-generate the file
+
+    if ( verbose >= VERBOSE_MINIMAL )
+      log( "read_focals", "Generating file: %s\n", 
+           FOCALS_FILE );
+
+    // try to open the file
+    focalfile_write.open( FOCALS_FILE );
+  
+    // write short comment in the beginning
+
+    focalfile_write << "# focals file" << endl
+                    << "# focals for each mirror in the frame" << endl
+                    << "# J C Gonzalez, 1998" << endl;
+        
+    // write data
+
+    rnormal( NormalRandomNumbers, ct_NMirrors+1 );
+        
+    for (i=0; i<ct_NMirrors; i++)
+      focalfile_write << NormalRandomNumbers[i] * ct_Focal_std + ct_Focal_mean
+                      << endl;
+        
+    // close it and try to re-open
+        
+    focalfile_write.close();
+    focalfile.close();
+    focalfile.open( FOCALS_FILE );
+  
+  }
+
+  // allocate memory for the focals table
+
+  ct_Focal = new float[ct_NMirrors]; 
+
+  if ( verbose >= VERBOSE_MINIMAL ) {
+
+    if ( errors > 0 )
+      log( "read_focals", "Reading focals file after %d fail%c\n", 
+           errors, ((errors>1) ? 's' : ' ') );
+
+    else
+
+      log( "read_focals", "Reading focals file . . .\n" );
+  }
+
+  // scan the whole file
+
+  i = 0;
+
+  while ( (! focalfile.eof()) && (i<ct_NMirrors) ) {          
+
+    // get line from the file
+
+    focalfile.getline(line, LINE_MAX_LENGTH);
+
+    // skip if comment
+
+    if ( *line == '#' )
+      continue;
+
+    // get the value
+
+    sscanf(line, "%f", &ct_Focal[i]);
+
+    ++i;
+        
+  }
+
+  // did i do it for all the mirrors ?
+    
+  if (i < ct_NMirrors) {
+    error("read_focals", "%s%s (%d < %d)\n",
+          "Number of data in focals.dat file is",
+          "\n\t\tsmaller than number of mirrors", i, ct_NMirrors);
+  }
+    
+  // close it
+
+  focalfile.close();
+  
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name rnormal                                   
+//                                             
+// @desc returns n(=2k) normaly distributed numbers
+//
+// @var *r   pointer to a vector where we write the numbers
+// @var  n   how many numbers do we generate
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+void
+rnormal(double *r, int n)
+{
+
+  double z1, z2;
+  int i;
+
+  for (i=0; i<n; i+=2) {
+
+    z1 = RandomNumber;
+    z2 = RandomNumber;
+  
+    r[i]   = sqrt(-2.0*log(z1)) * cos(2.0*M_PI*z2);
+    r[i+1] = sqrt(-2.0*log(z1)) * sin(2.0*M_PI*z2);
+        
+  }
+
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name isA                               
+//                                             
+// @desc returns TRUE(FALSE), if the flag is(is not) the given
+//
+// @var s1     String to be compared with s2
+// @var s2     String in the form of a FLAG
+//
+// @return     TRUE: both strings match; FALSE: otherwise
+//
+// @date Wed Jul  8 15:25:39 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+int 
+isA( char * s1, const char * flag ) 
+{
+  return ( (strncmp((char *)s1, flag, 8)==0) ? TRUE : FALSE );
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name Curv2Lin                             
+//                                             
+// @desc Curvilinear to Linear (Euclidean) distance
+//
+// @var s      Curvilinear distance over the parabolic shape
+//
+// @return     Radial distance from the axis of the paraboloid
+//
+// @date Wed Jul  8 15:25:39 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+float 
+Curv2Lin(float s)
+{
+  float x;
+  short i;
+
+  x = s;
+  for (i = 0; i < 4; i++)
+    x = (s / 100.) / (1. + (float) 0.000144175317185 * x * x);
+
+  return (x*100.);
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name Lin2Curv                        
+//                                             
+// @desc Linear (Euclidean) to Curvilinear distance
+//
+// @var x      Radial distance from the axis of the paraboloid
+//
+// @return     Curvilinear distance over the parabolic shape
+//
+// @date Wed Jul  8 15:25:39 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+float 
+Lin2Curv(float x)
+{
+  x /= 100.;
+  return ((x + (float) 0.000144175317185 * x * x * x)*100.);
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_stdin_files                       
+//                                             
+// @desc get data from stdin and create cerXXXXXX and staXXXXXX
+//
+// @var ncerf  number of next Cherenkov file cerXXXXXX to be created
+// @var El     Lower limit for requested energy
+// @var Eu     Upper limit for requested energy
+// @var flag   Boolean flag: TRUE: initialize; FALSE: normal
+//
+// @return     TRUE: succesful;  FALSE: failure
+//
+// @date Tue Dec 15 15:03:40 MET 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+int 
+get_stdin_files(int ncerf, float El, float Eu, int flag)
+{
+  static float *buffer;       // buffer for read-out of STDIN
+  static COREventHeader *evth;// Event Header class (from CORSIKA)
+  static float Elow, Eup;     // range for Energy
+  static int reject;
+
+  char *chkbuffer;
+
+  char cername[256];          // output filename
+  ofstream cerfile;           // output file (stream)
+  char staname[256];          // output filename sta
+  ofstream stafile;           // output file sta (stream)
+  int bytes;
+  float energy;
+
+  /*!@'
+    
+    The main features of this function, as well as the algorithm,
+    are taken from |corfilter|.
+
+  */
+
+  // if it's the first time, allocate buffers
+
+  if ( flag == TRUE ) {
+
+    if (verbose)
+      log("get_stdin_files", "Allocating memory for buffer...\n");
+    
+    buffer = new float [BUFFER_LENGTH];
+    evth = (COREventHeader*)buffer;
+
+    Elow = El;
+    Eup  = Eu;
+
+    return ( TRUE ); 
+  }
+
+  // main loop
+  
+  while ( ! cin.eof() ) {
+
+    // read buffer from STDIN
+
+    cin.read( (char*) buffer, BUFFER_LENGTH * sizeof(float) );
+    bytes = cin.gcount();
+
+    if (bytes < (BUFFER_LENGTH * sizeof(float))) {
+      if (verbose) 
+        logerr("get_stdin_files", 
+               "Can read only %d bytes, instead of required %d.\n",
+               bytes, BUFFER_LENGTH * sizeof(float));
+    }
+
+    if (bytes == 0) 
+      return ( FALSE );
+
+    // check whether EVTH is there
+
+    chkbuffer = (char*)buffer;
+    if (strstr(chkbuffer,EVTH) == 0) {
+      if (verbose) 
+        logerr("get_stdin_files", "EVTH not found in this block\n");
+      continue;
+    } else {
+      if (verbose) 
+        logerr("get_stdin_files", "EVTH was FOUND in this block!!\n");
+    }
+
+
+    // show log
+    if (verbose)
+      logerr("get_stdin_files", " (E=%8.1f) Reading event %d... ",
+             (float)evth->Etotal, (int)evth->EvtNumber);
+    
+    // CRITERIA
+    energy = evth->Etotal;
+    
+    if ( (energy<Elow) || (energy>Eup) ) {
+      if (verbose)
+        log("REJECTED", "\n");
+      reject = TRUE;        
+    } else {                
+      if (verbose)          
+        log("ACCEPTED", "\n");
+      reject = FALSE;
+    }
+
+    if ( !reject ) {
+
+      // update no. of cer. file
+      sprintf(cername, "%s/cer%06d", TMP_STDIN_DIR, ncerf+1);
+      
+      cerfile.open( cername );
+      
+      if ( verbose )
+        log("get_stdin_files", " Writing event %d, will be %s\n",
+            (int)evth->EvtNumber, cername);
+
+      // write it
+      cerfile.write( (char*)buffer, BUFFER_LENGTH * sizeof(float) );
+      
+    }
+
+    // read blocks till new EVTH is found 
+    // (now must be at the beginning of a block)
+
+    if (verbose)
+      log("get_stdin_files", " Reading photons...\n");
+
+    bytes = 0;
+    while ( TRUE ) {
+      
+      // read photon
+      cin.read( (char*)buffer, 7 * sizeof(float) );
+
+      // the last photon is reached when the EVTH is read, but
+      // only when bytes % SIZE_OF_BLOCK == 0 
+      // SIZE_OF_BLOCK = 22932
+      // with this, we only execute strstr once each 819 photons
+
+      // are we in a new block?
+
+      if ((bytes % SIZE_OF_BLOCK) == 0) {
+        // is this the last photon?
+        if ( strstr(chkbuffer, EVTH) == chkbuffer )
+          break;
+      }
+
+      // if not, write it to the cer-file
+      if ( !reject ) 
+        cerfile.write( (char*)buffer, 7 * sizeof(float) );
+
+      bytes += 7 * sizeof(float);
+
+    }
+
+    if (verbose)
+      log("get_stdin_files", " Finished: %d bytes\n", bytes);
+
+    if ( !reject ) {
+      // close cer-file
+      cerfile.close();
+    }
+    
+    // at this point, we must be reading sta-file
+    
+    // read the rest of the sta-file
+    if (verbose)
+      log("get_stdin_files", " Reading sta-data...\n");
+    cin.read( (char*)buffer + 7*sizeof(float), 5956 - 7*sizeof(float));
+    
+    if ( !reject ) {
+
+      // log
+      if (verbose)
+        log("get_stdin_files", " Saving sta-file...\n");
+      
+      // open file
+      sprintf(staname, "%s/sta%06d", TMP_STDIN_DIR, ncerf+1);
+      stafile.open( staname );
+      
+      // write it
+      stafile.write( (char*)buffer, 5956 );
+      
+      // close sta-file
+      stafile.close();
+
+      // get out from here, return to main program
+      return( TRUE );
+      
+    }
+
+  } 
+
+  return( TRUE );
+
+}
+//!@}
+
+
+//!---------------------------------------------------------------------
+// @name get_new_ct_pointing
+//
+// @desc returns new random position of CT around a given one
+//
+// @var theta     Theta (ZA) of the shower
+// @var phi       Phi (AZ) of the shower
+// @var range     Maximum allowed distance between CT and shower axis
+// @var newtheta  Resulting Theta of the CT
+// @var newphi    Resulting Phi of the CT
+//
+// @return        Angular distance between orig. and new directions
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//----------------------------------------------------------------------
+// @function
+
+//!@{ 
+float
+get_new_ct_pointing(float theta, float phi, float range,
+                    float *newtheta, float *newphi)
+{
+  float distance;
+  float it, ip;
+  float sin_theta, cos_theta;
+  float sin_newtheta, cos_newtheta;
+  float sin_iphi, cos_iphi;
+  float iphi;
+
+  // for the moment, we only simulate an uniform distribution,
+  // since our theta distribution in the generation of events is
+  // already uniform for hadrons, which are the main targets for
+  // using this option
+
+  it = RandomNumber * range;
+  ip = RandomNumber * 2.0 * M_PI;
+
+  sin_theta = sin(theta);
+  cos_theta = cos(theta);
+
+  cos_newtheta = cos_theta*cos(it) + sin_theta*sin(it)*cos(ip);
+  *newtheta = acos( cos_newtheta );
+  sin_newtheta = sin( *newtheta );
+
+  sin_iphi = sin(it)*sin(ip) / sin_newtheta;
+  cos_iphi = (( cos(it) - cos_newtheta * cos_theta ) /
+              ( sin_newtheta * sin_theta ));
+
+  iphi = atan2( sin_iphi, cos_iphi );
+
+  *newphi = phi + iphi;
+
+  return( it );
+}
+//!@}
+
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+//
+// $Log: not supported by cvs2svn $
+// Revision 1.18  1999/10/05  11:11:12  gonzalez
+// Sep.1999
+//
+// Revision 1.17  1999/03/24  16:33:01  gonzalez
+// REFLECTOR 1.1: Release
+//
+// Revision 1.16  1999/01/21  16:03:44  gonzalez
+// Only small modifications
+//
+// Revision 1.15  1999/01/19  18:07:16  gonzalez
+// Bugs in STDIN-STDOUT version corrected.
+//
+// Revision 1.14  1999/01/14  17:35:47  gonzalez
+// Both reading from STDIN (data_from_stdin) and
+// writing to STDOUT (data_to_STDOUT) working.
+//
+// Revision 1.13  1999/01/13  12:41:12  gonzalez
+// THIS IS A WORKING (last?) VERSION
+//
+// Revision 1.12  1998/12/17  16:26:09  gonzalez
+// *************************************************
+// *************************************************
+//    WARNING:: Version 1.11 is completly wrong!!
+// *************************************************
+// *************************************************
+//
+// Revision 1.10  1998/12/15  10:47:22  gonzalez
+// RELEASE-1.0
+//
+// Revision 1.9  1998/11/25  16:30:47  gonzalez
+// Commit after inclusion of 'Blocking'
+//
+//!@}
+
+//=EOF
Index: /branches/start/MagicSoft/Simulation/Detector/Reflector/reflector.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/Reflector/reflector.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/Reflector/reflector.h	(revision 4308)
@@ -0,0 +1,277 @@
+//=//////////////////////////////////////////////////////////////////////
+//=
+//= reflector               
+//=
+//= @file        reflector.h
+//= @desc        Header file
+//= @author      J C Gonzalez
+//= @email       gonzalez@mppmu.mpg.de
+//= @date        Thu May  7 16:24:22 1998
+//=
+//=----------------------------------------------------------------------
+//= 
+//= Created: Thu May  7 16:24:22 1998         
+//= Author:  Jose Carlos Gonzalez             
+//= Purpose: Program for reflector simulation 
+//= Notes:                                    
+//=    
+//=----------------------------------------------------------------------
+//=
+//= $RCSfile: reflector.h,v $
+//= $Revision: 1.1.1.1 $
+//= $Author: harald $ 
+//= $Date: 1999-10-29 07:00:34 $
+//=
+//=//////////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+//!@section Source code of |reflector.h|.
+
+/*!@"
+  
+  This section shows the include file |reflector.h|
+
+@"*/
+
+//!@{
+
+#ifndef _this_
+#define _this_ readparam
+#endif
+
+//!@}
+
+//=-----------------------------------------------------------
+//!@subsection Include files.
+
+//!@{
+
+#include <iostream.h>
+#include <fstream.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include <math.h>
+#include <sys/types.h>
+#include <dirent.h>
+#include <unistd.h>
+
+#include "jcmacros.h"
+#include "jcdebug.h"
+
+#include "reflector-v.h"
+
+#include "readparam.h"
+#include "atm.h"
+
+#include "lagrange.h"
+
+#include "COREventHeader.hxx"
+#include "CORParticle.hxx"
+#include "CORStatfile.hxx"
+#include "MCEventHeader.hxx"
+#include "MCCphoton.hxx"
+
+// command line options available
+#define COMMAND_LINE_OPTIONS    "f:h"
+
+// This is C++, but RANLIB routines are written in pure ANSI C.
+// In order to read easily these routines, we must include
+// the following directive
+extern "C" {
+
+#include "ranlib.h"
+
+}
+
+//!@}
+
+// @subsection Macro-definitions, and constants
+
+//!@{
+
+// random numbers
+#define RandomNumber  ranf()
+
+// Speed of Light in vacuum, in m/s
+const float Speed_of_Light_vacuum = 299792458.0;  // EXACT!!
+const float Speed_of_Light_air = Speed_of_Light_vacuum / 1.000293;
+
+// Speed of Light in vacuum, in cm/ns
+const float Speed_of_Light_vacuum_cmns = Speed_of_Light_vacuum / 1.0e7;
+const float Speed_of_Light_air_cmns = Speed_of_Light_air / 1.0e7;
+
+// now we define the list CT_ITEM_LIST of possible items in
+// the CT definition file.
+
+#define CT_ITEM_LIST  /* LIST OF ITEMS IN THE CT DEFINITION FILE */  \
+T(type),              /* type of definition file */                  \
+T(focal_distance),    /* focal distance */                           \
+T(focal_std),         /* std(focal distance) */                      \
+T(point_spread),      /* point spread   */                           \
+T(point_std),         /* std(point spread)   */                      \
+T(adjustment_dev),    /* std of adjustment deviation   */            \
+T(black_spot),        /* radius of the black spot in center of mirrors */ \
+T(n_mirrors),         /* number of mirrors */                        \
+T(r_mirror),          /* radius of one mirror */                     \
+T(camera_width),      /* camera width */                             \
+T(n_pixels),          /* number of pixels in the camera */           \
+T(pixel_width),       /* pixel width */                              \
+T(define_mirrors)     /* this entry is followed by the def. of pixels */
+  
+#define T(x)  x               // define T() as the name as it is
+
+  enum CT_ITEM_TYPE {
+    CT_ITEM_LIST
+  };
+
+#undef T
+
+#define T(x)  #x              // define T() as the string of x
+
+const char *const CT_ITEM_NAMES[] = {
+  CT_ITEM_LIST
+};
+
+#undef T
+
+// TYPE=0  (CT1)
+//     i   s   rho   theta   x   y   z   thetan  phin  xn   yn   zn
+//
+//      i : number of the mirror
+//      s : arc length [cm]
+//    rho : polar rho of the position of the center of the mirror [cm]
+//  theta : polar angle of the position of the center of the mirror [cm]
+//      x : x coordinate of the center of the mirror [cm]
+//      y : y coordinate of the center of the mirror [cm]
+//      z : z coordinate of the center of the mirror [cm]
+// thetan : polar theta angle of the direction where the mirror points to
+//   phin : polar phi angle of the direction where the mirror points to
+//     xn : xn coordinate of the normal vector in the center (normalized)
+//     yn : yn coordinate of the normal vector in the center (normalized)
+//     zn : zn coordinate of the normal vector in the center (normalized)
+//
+// TYPE=1  (MAGIC)
+//     i  f   sx   sy   x   y   z   thetan  phin 
+//
+//      i : number of the mirror
+//      f : focal distance of that mirror
+//     sx : curvilinear coordinate of mirror's center in X[cm]
+//     sy : curvilinear coordinate of mirror's center in X[cm]
+//      x : x coordinate of the center of the mirror [cm]
+//      y : y coordinate of the center of the mirror [cm]
+//      z : z coordinate of the center of the mirror [cm]
+// thetan : polar theta angle of the direction where the mirror points to
+//   phin : polar phi angle of the direction where the mirror points to
+//     xn : xn coordinate of the normal vector in the center (normalized)
+//     yn : yn coordinate of the normal vector in the center (normalized)
+//     zn : zn coordinate of the normal vector in the center (normalized)
+
+#define CT_I       0
+
+#define CT_S       1
+#define CT_RHO     2
+#define CT_THETA   3
+
+#define CT_FOCAL   1
+#define CT_SX      2
+#define CT_SY      3
+
+#define CT_X       4
+#define CT_Y       5
+#define CT_Z       6
+#define CT_THETAN  7
+#define CT_PHIN    8
+#define CT_XC      9
+#define CT_YC     10
+#define CT_ZC     11
+
+#define CT_NDATA  12
+ 
+// pre-defined filenames / values
+
+#define REFLECTIVITY_FILE             "reflectivity.dat"
+#define FOCALS_FILE                   "focals.dat"
+#define AXISDEVIATION_FILE            "axisdev.dat"
+
+// values for read-ot from STDIN
+
+#define BUFFER_LENGTH           5733
+#define SIZE_OF_BLOCK           22932
+static char EVTH[] = "EVTH";
+
+// maximum deviation from the original direction with
+// "random_pointing" option
+//
+// now is 6 degrees = 0.104719755119660 radians
+
+#define RANDOM_POINTING_MAX_SEPARATION     0.104719755119660
+
+//!@}
+
+//=-----------------------------------------------------------
+//!@subsection Prototypes of functions.
+
+//!@{
+
+//++
+// prototypes
+//--
+
+void present(void);
+void usage(void);
+void clean(void);
+void log(const char *funct, char *fmt, ...);
+void logerr(const char *funct, char *fmt, ...);
+void error(const char *funct, char *fmt, ...);
+void makeOmega(float theta, float phi);
+void makeOmegaI(float theta, float phi);
+void applyMxV(float M[3][3], float *V, float *Vp);
+void read_ct_file(void);
+void read_reflectivity(void);
+void read_axisdev(void);
+void read_focals(void);
+void rnormal(double *r, int n);
+float dist_r_P(float a, float b, float c, 
+               float u, float v, float w,
+               float x, float y, float z);
+void write_mark(ofstream &os, char mark=0xff, int length=1);
+int isA( char * s1, const char * flag );
+float Curv2Lin(float s);
+float Lin2Curv(float x);
+int get_stdin_files(int ncerf, float El=0., float Eu=1000000., 
+                    int flag=FALSE);
+float get_new_ct_pointing(float theta, float phi, float range,
+                          float *newtheta, float *newphi);
+
+//!@}
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+
+/*
+ * $Log: not supported by cvs2svn $
+ * Revision 1.11  1999/10/05  11:11:12  gonzalez
+ * Sep.1999
+ *
+ * Revision 1.10  1999/03/24  16:33:03  gonzalez
+ * REFLECTOR 1.1: Release
+ *
+ * Revision 1.9  1999/01/21  16:03:53  gonzalez
+ * Only small modifications
+ *
+ * Revision 1.8  1999/01/19  18:07:17  gonzalez
+ * Bugs in STDIN-STDOUT version corrected.
+ *
+ * Revision 1.7  1999/01/14  17:35:44  gonzalez
+ * Both reading from STDIN (data_from_stdin) and
+ * writing to STDOUT (data_to_STDOUT) working.
+ *
+ */
+
+//!@}
+//=EOF
Index: /branches/start/MagicSoft/Simulation/Detector/TimeCam/MTrigger.card
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/TimeCam/MTrigger.card	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/TimeCam/MTrigger.card	(revision 4308)
@@ -0,0 +1,6 @@
+channel_threshold    2.5
+gate_length          3.
+
+response_fwhm        2.5
+response_ampl        1.   
+exit
Index: /branches/start/MagicSoft/Simulation/Detector/TimeCam/Makefile
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/TimeCam/Makefile	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/TimeCam/Makefile	(revision 4308)
@@ -0,0 +1,379 @@
+##################################################################
+#
+# makefile
+#
+# @file        makefile 
+# @title       Simulation of the camera and trigger logic
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the camera program
+# Notes:   
+#    
+#---------------------------------------------------------------
+#
+# $RCSfile: Makefile,v $
+# $Revision: 1.1.1.1 $
+# $Author: harald $ 
+# $Date: 2000-02-08 15:13:44 $
+#
+##################################################################
+# @maintitle
+
+# @code
+
+INCLUDEMK = config.mk.${OSTYPE}
+include ${INCLUDEMK}
+
+# @endcode
+
+# @code 
+
+# common flags
+INCLUDES = -I${INCLUDE}      \
+		   -I${INCLUDE_COR}  \
+		   -I${INCLUDE_MC}   \
+		   -I${INCLUDE_EVITA}   \
+		   -I${INCLUDE_TRIGGER}   \
+		   -I${INCLUDE_FADC}   \
+		   -I${INCLUDE_REFL} \
+                   -I${INCLUDE_ROOT} \
+	           -I${INCLUDE_CPLUS}
+
+RANLIB  = -L${RANLIBDIR} -lranlib
+
+# what is needed for ROOT is inside the config.mk... file
+
+
+# special flags
+
+osf_FORLIBS = -lUfor -lfor -lutil -lots -lm 
+#linux_FORLIBS =  -lf2c -lm /usr/lib/libc.a
+linux_FORLIBS =  -lm -ldl 
+#linux_FORLIBS =  -lm -ldl -rdynamic
+generic_FORLIBS = -lm 
+
+FORLIBS = ${${SYSTEM}_FORLIBS}
+
+# compilation and linking flags
+
+CXXFLAGS  = -D__${SYSTEM}__ ${INCLUDES} ${OPTIM} ${DEBUG}
+CFLAGS    = ${CXXFLAGS}
+FFLAGS    = ${CXXFLAGS}
+LIBS      = ${RANLIB} ${ROOTLIBS} ${ROOTGLIBS} ${GLIBS}
+
+#------------------------------------------------------------------------------
+
+#.SILENT:
+
+.SUFFIXES: .c .cxx .C .c++ .h .hxx .H .h++ .o .so .f
+
+SRCS = \
+	${INCLUDE_MC}/MCEventHeader.cxx \
+	${INCLUDE_MC}/MCCphoton.cxx \
+	${INCLUDE_TRIGGER}/MTrigger.cxx \
+	${INCLUDE_TRIGGER}/MGTriggerSignal.cxx \
+	${INCLUDE_EVITA}/MRawPixel.cxx \
+	${INCLUDE_EVITA}/MRawEvt.cxx \
+	${INCLUDE_EVITA}/MMcEvt.cxx \
+	${INCLUDE_EVITA}/MMcTrig.cxx \
+	MCamCint.cxx \
+	creadparam.cxx \
+	timecam.cxx   
+
+HEADERS = \
+	MCEventHeader.hxx \
+	MCCphoton.hxx \
+	MTRigger.hxx \
+	MGTriggerSignal.hxx \
+	MRawPixel.h \
+	MRawEvt.h \
+	MMcEvt.h \
+	MMcTrig.hxx \
+	lagrange.h \
+	atm.h \
+	creadparam.h \
+	timecam.h
+
+OBJS = \
+	${INCLUDE_MC}/MCEventHeader.o \
+	${INCLUDE_MC}/MCCphoton.o \
+	${INCLUDE_TRIGGER}/MTrigger.o \
+	${INCLUDE_TRIGGER}/MGTriggerSignal.o \
+	${INCLUDE_EVITA}/MRawPixel.o \
+	${INCLUDE_EVITA}/MRawEvt.o \
+	${INCLUDE_EVITA}/MMcEvt.o \
+	${INCLUDE_EVITA}/MMcTrig.o \
+	MCamCint.o \
+	creadparam.o \
+	timecam.o      
+
+############################################################
+
+all: ${PROGRAM}
+
+depend:
+	@makedepend $(SRCS) $(INCLUDES) -fMakefile 2> kk.kk ; cat kk.kk
+
+doc: camera-doc
+
+camera-doc: 
+	@echo "Generating documentation for camera . . . "
+	$(DOCUM) -latex -o camera.tex \
+	camera.cxx camera.h \
+	creadparam.cxx creadparam.h \
+	moments.cxx moments.h
+	latex "\nonstopmode\input{camera.tex}" && \
+	makeindex camera && \
+	latex "\nonstopmode\input{camera.tex}" && \
+	latex "\nonstopmode\input{camera.tex}"
+	@echo "Files camera.tex and camera.dvi generated."
+
+${PROGRAM}: $(OBJS) 
+	@echo "Linking..." 
+	echo `ls -m $(OBJS)|sed 's/,/ +/g' `" + libraries => " $@
+	$(CXX) $(CXXFLAGS) $(OBJS) $(LIBS) -o $@
+	@echo "done."
+
+
+MCamCint.cxx: 	${INCLUDE_EVITA}/MRawPixel.h \
+		${INCLUDE_EVITA}/MRawEvt.h \
+		${INCLUDE_EVITA}/MMcEvt.h \
+		${INCLUDE_EVITA}/MMcTrig.hxx \
+		${INCLUDE_EVITA}/Mdefine.h
+
+		@echo
+		@echo "Generating dictionary ..."
+		@echo
+
+		@$(ROOTSYS)/bin/rootcint -f  \
+		MCamCint.cxx -c \
+		${INCLUDE_EVITA}/MRawPixel.h \
+		${INCLUDE_EVITA}/MRawEvt.h \
+		${INCLUDE_EVITA}/MMcEvt.h \
+		${INCLUDE_EVITA}/MMcTrig.hxx \
+		${INCLUDE_EVITA}/Mdefine.h \
+		${INCLUDE_EVITA}/LinkDef.h
+
+		@echo
+		@echo "Dictionary done"
+		@echo
+
+.cxx.o:	
+	@echo "Compiling " $<
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+.c.o:	
+	@echo "Compiling " $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+lclean:
+	@echo "Cleanning..."
+	@rm -f *.o core 
+
+clean:
+	@echo "Cleanning..."
+	@rm -f $(OBJS) core 
+	@rm -f MCamCint.cxx MCamCint.h 
+
+mrproper: clean
+	@echo "Mr.Proper in action . . ."
+	@rm -f $(PROGRAM)
+
+ctags:
+	@echo "Creating CTAGS file . . ."
+	@ctags -txw $(SRCS) $(HEADERS) > CTAGS
+
+etags:
+	@echo "Creating TAGS file . . ."
+	@etags -C $(SRCS) $(HEADERS)
+
+listsrc:
+	@ls -m $(SRCS) $(HEADERS) | sed 's/,//g'
+
+redo: clean all
+
+cflags: 
+	@echo $(INCLUDES) $(CXXFLAGS)
+
+# @endcode
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+../include-MC/MCEventHeader.o: ../include-MC/MCEventHeader.hxx
+../include-MC/MCEventHeader.o: ../include-GENERAL/Rtypes.h
+../include-MC/MCEventHeader.o: /usr/include/g++/iostream.h
+../include-MC/MCEventHeader.o: /usr/include/g++/streambuf.h
+../include-MC/MCEventHeader.o: /usr/include/libio.h /usr/include/_G_config.h
+../include-MC/MCEventHeader.o: /usr/include/bits/types.h
+../include-MC/MCEventHeader.o: /usr/include/features.h
+../include-MC/MCEventHeader.o: /usr/include/sys/cdefs.h
+../include-MC/MCEventHeader.o: /usr/include/gnu/stubs.h
+../include-MC/MCEventHeader.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+../include-MC/MCEventHeader.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stdarg.h
+../include-MC/MCEventHeader.o: /usr/include/g++/iomanip.h
+../include-MC/MCEventHeader.o: /usr/include/g++/fstream.h
+../include-MC/MCEventHeader.o: /usr/include/stdlib.h /usr/include/sys/types.h
+../include-MC/MCEventHeader.o: /usr/include/time.h /usr/include/endian.h
+../include-MC/MCEventHeader.o: /usr/include/bits/endian.h
+../include-MC/MCEventHeader.o: /usr/include/sys/select.h
+../include-MC/MCEventHeader.o: /usr/include/bits/select.h
+../include-MC/MCEventHeader.o: /usr/include/bits/sigset.h
+../include-MC/MCEventHeader.o: /usr/include/sys/sysmacros.h
+../include-MC/MCEventHeader.o: /usr/include/alloca.h /usr/include/math.h
+../include-MC/MCEventHeader.o: /usr/include/bits/huge_val.h
+../include-MC/MCEventHeader.o: /usr/include/bits/mathdef.h
+../include-MC/MCEventHeader.o: /usr/include/bits/mathcalls.h
+../include-MC/MCEventHeader.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/float.h
+../include-MC/MCEventHeader.o: ../include-CORSIKA/COREventHeader.hxx
+../include-MC/MCCphoton.o: ../include-MC/MCCphoton.hxx
+../include-MC/MCCphoton.o: ../include-GENERAL/Rtypes.h
+../include-MC/MCCphoton.o: /usr/include/g++/iostream.h
+../include-MC/MCCphoton.o: /usr/include/g++/streambuf.h /usr/include/libio.h
+../include-MC/MCCphoton.o: /usr/include/_G_config.h /usr/include/bits/types.h
+../include-MC/MCCphoton.o: /usr/include/features.h /usr/include/sys/cdefs.h
+../include-MC/MCCphoton.o: /usr/include/gnu/stubs.h
+../include-MC/MCCphoton.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+../include-MC/MCCphoton.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stdarg.h
+../include-MC/MCCphoton.o: /usr/include/g++/iomanip.h
+../include-MC/MCCphoton.o: /usr/include/g++/fstream.h /usr/include/stdlib.h
+../include-MC/MCCphoton.o: /usr/include/sys/types.h /usr/include/time.h
+../include-MC/MCCphoton.o: /usr/include/endian.h /usr/include/bits/endian.h
+../include-MC/MCCphoton.o: /usr/include/sys/select.h
+../include-MC/MCCphoton.o: /usr/include/bits/select.h
+../include-MC/MCCphoton.o: /usr/include/bits/sigset.h
+../include-MC/MCCphoton.o: /usr/include/sys/sysmacros.h /usr/include/alloca.h
+../include-MC/MCCphoton.o: /usr/include/string.h /usr/include/math.h
+../include-MC/MCCphoton.o: /usr/include/bits/huge_val.h
+../include-MC/MCCphoton.o: /usr/include/bits/mathdef.h
+../include-MC/MCCphoton.o: /usr/include/bits/mathcalls.h
+../include-MC/MCCphoton.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/float.h
+../include-MC/MCCphoton.o: ../include-GENERAL/jcmacros.h
+../include-MTrigger/MTrigger.o: ../include-MTrigger/MTrigger.hxx
+../include-MTrigger/MTrigger.o: /usr/include/g++/iostream.h
+../include-MTrigger/MTrigger.o: /usr/include/g++/streambuf.h
+../include-MTrigger/MTrigger.o: /usr/include/libio.h /usr/include/_G_config.h
+../include-MTrigger/MTrigger.o: /usr/include/bits/types.h
+../include-MTrigger/MTrigger.o: /usr/include/features.h
+../include-MTrigger/MTrigger.o: /usr/include/sys/cdefs.h
+../include-MTrigger/MTrigger.o: /usr/include/gnu/stubs.h
+../include-MTrigger/MTrigger.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+../include-MTrigger/MTrigger.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stdarg.h
+../include-MTrigger/MTrigger.o: /usr/include/math.h
+../include-MTrigger/MTrigger.o: /usr/include/bits/huge_val.h
+../include-MTrigger/MTrigger.o: /usr/include/bits/mathdef.h
+../include-MTrigger/MTrigger.o: /usr/include/bits/mathcalls.h
+../include-MTrigger/MTrigger.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/float.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TROOT.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TObject.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TRandom.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TH1.h
+../include-MTrigger/MTrigger.o: ../../../include-Classes/Mdefine.h
+../include-MTrigger/MTrigger.o: ../../../include-Classes/MMcEvt.h
+../include-MTrigger/MTrigger.o: /usr/include/stdlib.h
+../include-MTrigger/MTrigger.o: /usr/include/sys/types.h /usr/include/time.h
+../include-MTrigger/MTrigger.o: /usr/include/endian.h
+../include-MTrigger/MTrigger.o: /usr/include/bits/endian.h
+../include-MTrigger/MTrigger.o: /usr/include/sys/select.h
+../include-MTrigger/MTrigger.o: /usr/include/bits/select.h
+../include-MTrigger/MTrigger.o: /usr/include/bits/sigset.h
+../include-MTrigger/MTrigger.o: /usr/include/sys/sysmacros.h
+../include-MTrigger/MTrigger.o: /usr/include/alloca.h /usr/include/stdio.h
+../include-MTrigger/MTrigger.o: /usr/include/bits/stdio_lim.h
+../include-MTrigger/MTrigger.o: /usr/include/string.h /usr/include/unistd.h
+../include-MTrigger/MTrigger.o: /usr/include/bits/posix_opt.h
+../include-MTrigger/MTrigger.o: /usr/include/bits/confname.h
+../include-MTrigger/MTrigger.o: /usr/include/getopt.h /usr/include/fcntl.h
+../include-MTrigger/MTrigger.o: /usr/include/bits/fcntl.h
+../include-MTrigger/MTrigger.o: ../include-MTrigger/MTriggerDefine.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TFile.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TObjArray.h
+../include-MTrigger/MTrigger.o: ../include-MTrigger/MGTriggerSignal.hxx
+../include-MTrigger/MTrigger.o: /cern/root/include/TApplication.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TVirtualX.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGListBox.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGClient.h
+../include-MTrigger/MTrigger.o: /cern/root/include/GuiTypes.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGFrame.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGIcon.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGLabel.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGButton.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGTextEntry.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGMsgBox.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGMenu.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGCanvas.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGComboBox.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGTab.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGSlider.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGDoubleSlider.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TGFileDialog.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TRootEmbeddedCanvas.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TCanvas.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TH2.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TSystem.h
+../include-MTrigger/MTrigger.o: /cern/root/include/TEnv.h
+../include-MTrigger/MGTriggerSignal.o: ../include-MTrigger/MGTriggerSignal.hxx
+../include-MTrigger/MGTriggerSignal.o: /usr/include/stdlib.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/features.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/sys/cdefs.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/gnu/stubs.h
+../include-MTrigger/MGTriggerSignal.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stddef.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/sys/types.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/bits/types.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/time.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/endian.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/bits/endian.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/sys/select.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/bits/select.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/bits/sigset.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/sys/sysmacros.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/alloca.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/g++/iostream.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/g++/streambuf.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/libio.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/_G_config.h
+../include-MTrigger/MGTriggerSignal.o: /usr/lib/gcc-lib/i486-linux/2.7.2.3/include/stdarg.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TROOT.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TApplication.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TVirtualX.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGListBox.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGClient.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/GuiTypes.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGFrame.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGIcon.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGLabel.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGButton.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGTextEntry.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGMsgBox.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGMenu.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGCanvas.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGComboBox.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGTab.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGSlider.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGDoubleSlider.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TGFileDialog.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TRootEmbeddedCanvas.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TCanvas.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TH1.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TH2.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TRandom.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TSystem.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/stdio.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/bits/stdio_lim.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TEnv.h
+../include-MTrigger/MGTriggerSignal.o: ../../../include-Classes/MMcEvt.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/string.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/unistd.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/bits/posix_opt.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/bits/confname.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/getopt.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/fcntl.h
+../include-MTrigger/MGTriggerSignal.o: /usr/include/bits/fcntl.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TObject.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TPavesText.h
+../include-MTrigger/MGTriggerSignal.o: /cern/root/include/TObjArray.h
Index: /branches/start/MagicSoft/Simulation/Detector/TimeCam/ShortManual.tex
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/TimeCam/ShortManual.tex	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/TimeCam/ShortManual.tex	(revision 4308)
@@ -0,0 +1,223 @@
+%
+% Musterbrief, Auszuege aus DIN 5008, Adressenbeispiele
+%
+% Das unmittelbar Folgende enthaelt alle Befehle des dinbrief.sty,
+% kann daher als Vorlage dienen.
+%
+\documentstyle[german]{article}
+\textwidth 140mm
+\textheight 200mm
+%\pagestyle{empty}
+
+	
+\begin{document}
+%
+%  
+%
+
+%
+%    Short introduction about the camera program
+%
+\section{Camera Program}
+
+\subsection{Abstract}
+	
+The Camera Program is for the simulation of the MAGIC camera. The
+input is the output of the program Reflector, what are all the
+cerenkov photons hitting the camera. All these photons are reflected
+from the mirrors. 
+
+The determination of the pixel that is hitted by one cerenkov photon
+is the first working step of the program. Then the simulation of the
+different efficencies inside the camera are following (i.e. the
+absorption due to the distance between mirrors and the camera plane, 
+the quantuum efficency of the photocathod...). 
+So after this first part we
+know the time and the Pixel identification of each
+photo electron leaving the photo cathod. 
+
+The simulation of the trigger is the next step inside the camera
+program.  
+For each photo electron one create a standard response signal.
+Also the noise (from opto-electonic) of the trigger signal is
+implemented. 
+After doing this for all photo electrons, the program
+calculates the diskriminator signal for each channel. With this
+digital signals the program decides  if a trigger is created. 
+All this trigger studies are implemented in
+the (C++) class MTrigger. At the end of each event you have the
+knowledge if there occurs a trigger signal or not. 
+
+The output of the program is a root tree (using the root package from
+CERN). In this tree there are different branches. One branch stores
+the information about the MonteCarlo event (McEvt). One the result of
+the trigger studies (McTrig). And last but not least, there is a
+branch in which the expected raw data format is stored (MRawEvt). 
+ 
+\subsection{Usage}
+
+To start the Camera Program you have to create a steercard file (see
+chapter \ref{chap_steercard}).
+I.e. this file is called {\bf input.card}. Then start the program with
+the command:
+\begin{center}
+ \bf {camera $<$ input.card }
+\end{center}
+With the steercard file one can control the program and its different
+features. In the followin you will find a special list of all the 
+steercard control words. 
+
+\subsection{Steercard control}
+\label{chap_steercard}
+
+With the steercard file the user can control the procedure of the
+Camera Program. At the beginning of the program, all lines in this
+file are read in. Depending on the first word in the line, a control
+value for the further program behaviour is set. 
+
+A list of the different steerword is following. They are seperated by
+their importance for a good simulation. 
+
+\begin{itemize} 
+  \item {\bf input and output files} \\
+	 the following steerword are neccessary to read in the data
+	 from the right file and to store the output in the right
+	 files. 
+
+	\begin{itemize}
+	   \item {\bf ct\_file } \\
+		This steerword controls the geometry of the used
+   	 	cerenkov telescope. At the beginning of the
+   	        development is was planned to simulated different
+	        types (MAGIC and CT1 of HEGRA). But if you want to
+        	simulated only for MAGIC put the following line into
+		your steercard file: \\
+		ct\_file   \hspace{10mm}   ../Data/magic.def
+	   \item {\bf input\_file} \\
+		With this line you declare the input file for the
+		camera program. The input file is the output file of
+		the Reflector Program. So the line may look like: \\
+		input\_file  \hspace{10mm}     /dat1/RefData/prot.rfl
+	   \item {\bf root\_file} \\
+		The output of the Camera Program is written in a root
+		tree. To give the root file a name used this steercard
+		control line: \\
+		root\_file   \hspace{10mm}     /dat1/CamData/prot.root
+
+		To control the different branches of the root tree,
+	   	there are some steerwords to do this job. 
+                \begin{itemize}
+		   \item {\bf nowrite\_McEvt} \\
+			In a normal run the Camera Program writes
+	   		the information of the Monte Carlo Event to
+	   		the root tree. If you use a line like:
+			nowrite\_McEvt \\
+			it does not. This is useful for testing the 
+			reconstruction precision, because the analyser 
+			doesn't now anaything about the input. 
+			
+                   \item {\bf write\_RawEvt} \\
+			If you want to create the branch with the raw 
+			data format of the events, you must use this
+			command. If you don't use it, the camera
+			program will not create and fill this branch. 
+			
+		   \item {\bf write\_McTrig} \\
+			To study some properties of the triggers, it
+			is useful to create a branch with the McTrig
+			information in it. To do this use this
+			steerword. If you don't use it, you won't get
+			any McTrig information.   
+
+                   \item Be aware! If you don't use one of this three 
+			steerwords, you get only the Monte Carlo
+			Information (McEvt) in your root tree file. 
+		\end{itemize}
+	\end{itemize}
+
+   \item {\bf amount of output data} \\
+	For different studies on needs a different amount of output
+	data. To study trigger effiencies it is neccessary to write
+	all events to file, but for the optimisation of reconstruction
+	methods you need only the triggered events. There is a
+	steerword, that controls the difference: 
+	\begin{itemize}
+	   \item {\bf write\_all\_images} \\
+		If you use this steerword, you write out all events. 
+		But the default behaviour is to write only the
+		triggered events. 
+
+	\end{itemize}
+   \item {\bf Parameters of the camera} \\
+	It is possible to control some behaviours of the camera with
+	the steercard. They all are listed here: 
+	\begin{itemize}
+	   \item {\bf ana\_pixels} \\
+		In earlier development steps it was possible to change
+	   	the size of the camera with this variable. But for the
+		actual version of the camera layout it is neccessary
+	   	to put the following line into your steercard: 
+  		ana\_pixels   \hspace{10mm}     577
+	   \end{itemize}
+
+   \item {\bf Simulation of the Night Sky Background} \\
+	Due to the night sky background there are a lot of other
+	photons reaching the camera. It is possible to simulate the
+	behaviour of such NSK photons using the Camera Program. 
+	You can switch the NSB on and set the value of NSB photons. 
+	This is done with the following steerwords: 
+	\begin{itemize}
+	   \item {\bf nsb\_on} \\
+		To start the simulation of the NSB use this
+		steerword.
+	   \item {\bf nsb\_mean} \\
+		To set the NSB to a given value use the following
+		line:\\[1mm]
+		nsb\_mean   \hspace{10mm}     0.09 \\[1mm]
+		This value corresponds to 0.09 NSB photon in 1 ns for
+		the inner pixels. 
+	\end{itemize}
+	
+
+   \item {\bf Parameters of the random generator} \\
+	The simulation of some efficencies need a random
+	generator. This generator is a part of the ranlib. To set the
+	seed of the generator you can use the following steercard
+	line: 
+	\begin{itemize}
+	   \item {\bf seeds} \\
+		You must put a line in your steercard file, that looks
+		like: 	 \\ 
+  		seeds   \hspace{5mm}  12345\hspace{5mm}  67890
+	   \end{itemize}
+
+   \item {\bf Don't forget the end} \\
+	Very important is the last line in the steercard file. This
+	linie indicates the end of the steercard. So don't forget to
+	put end\_file marker at the end of the file!!\\[1mm]
+	{\bf end\_file} \\
+\end{itemize}
+So at the end the file may look like: 
+\begin{verbatim}
+#
+input_file    /dat1/RefData/gamma.rfl
+root_file     /dat1/CamData/gamma.root
+#
+ct_file       ../Data/magic.def
+#
+write_all_images
+#
+write_McTrig
+#
+ana_pixels    577
+#
+seeds   69184 10406
+#
+end_file
+\end{verbatim}
+
+\end{document}
+
+
+
+
Index: /branches/start/MagicSoft/Simulation/Detector/TimeCam/config.mk.linux-gnu
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/TimeCam/config.mk.linux-gnu	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/TimeCam/config.mk.linux-gnu	(revision 4308)
@@ -0,0 +1,86 @@
+##################################################################
+#
+# config.mk
+#
+# @file        config.mk
+# @title       small configuration file for Makefile
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the camera program
+# Notes:   
+#    
+#---------------------------------------------------------------
+# $RCSfile: config.mk.linux-gnu,v $
+# $Revision: 1.1.1.1 $
+# $Author: harald $ 
+# $Date: 2000-02-08 15:13:44 $
+##################################################################
+# @maintitle
+
+# @code
+
+# program
+
+PROGRAM = timecam
+
+# compilers
+
+CC            = g++
+CXX           = g++
+F77           = f77
+
+DOCUM         = ${HOME}/detector/sus/sus
+
+# includes
+
+INCLUDE         = ../include-GENERAL
+INCLUDE_COR     = ../include-CORSIKA
+INCLUDE_MC      = ../include-MC
+INCLUDE_TRIGGER = ../include-MTrigger
+INCLUDE_FADC    = ../include-MFadc
+INCLUDE_EVITA   = ../../../include-Classes
+INCLUDE_REFL    = ../Reflector
+INCLUDE_ROOT    = ${ROOTSYS}/include
+INCLUDE_CPLUS   = /usr/include/g++
+
+OPTIM    = -O2 -Wall -fno-rtti -fno-exceptions -fPIC
+DEBUG    = -g 
+
+# libraries
+
+ROOTLIBS =  `root-config --libs`
+
+#  	-L/CERN/root/lib -lNew -lCore -lCint -lHist \
+#		-lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript \
+#		-lMatrix -lPhysics -lm  
+
+ROOTGLIBS = `root-config --glibs`
+
+# 	-L/CERN/root/lib -lNew -lCore -lCint -lHist \
+#		-lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript \
+#		-lMatrix -lPhysics -lGui -lm  
+
+GLIBS = 	$(ROOTLIBS) $(ROOTGLIBS)
+
+
+
+RANLIBDIR = ../lib
+CERNDIR = /cern
+
+# system
+
+SYSTEM  = linux
+
+# uncomment this for quiet compilation
+
+.SILENT:
+
+# @endcode
+##EOF
+
Index: /branches/start/MagicSoft/Simulation/Detector/TimeCam/config.mk.osf1
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/TimeCam/config.mk.osf1	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/TimeCam/config.mk.osf1	(revision 4308)
@@ -0,0 +1,82 @@
+##################################################################
+#
+# config.mk
+#
+# @file        config.mk
+# @title       small configuration file for Makefile
+# @author      J C Gonz\'alez
+# @email       gonzalez@mppmu.mpg.de
+# @date        Fri Mar 12 11:51:11 MET 1999
+#
+#_______________________________________________________________
+#
+# Created: Fri Mar 12 11:51:11 MET 1999
+# Author:  Jose Carlos Gonzalez
+# Purpose: Makefile for the compilation of the camera program
+# Notes:   
+#    
+#---------------------------------------------------------------
+# $RCSfile: config.mk.osf1,v $
+# $Revision: 1.1.1.1 $
+# $Author: harald $ 
+# $Date: 2000-02-08 15:13:44 $
+##################################################################
+# @maintitle
+
+# @code
+
+# program
+
+PROGRAM = timecam
+
+# compilers
+
+CC            = cc
+CXX           = cxx
+F77           = f77
+
+DOCUM         = ${HOME}/detector/sus/sus
+
+# includes
+
+INCLUDE         = ../include-GENERAL
+INCLUDE_COR     = ../include-CORSIKA
+INCLUDE_MC      = ../include-MC
+INCLUDE_TRIGGER = ../include-MTrigger
+INCLUDE_EVITA   = ../../../include-Classes
+INCLUDE_REFL    = ../Reflector
+INCLUDE_ROOT    = ${ROOTSYS}/include
+INCLUDE_CPLUS   = /usr/include/cxx
+
+OPTIM    = -ieee -arch host    
+#OPTIM    = -O2 -Wall -fno-rtti -fno-exceptions -fPIC
+DEBUG    = -g 
+
+# libraries
+
+ROOTLIBS =  	-L/CERN/root/lib -lNew -lCore -lCint -lHist \
+		-lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript \
+		-lMatrix -lPhysics -lm  
+
+ROOTGLIBS = 	-L/CERN/root/lib -lNew -lCore -lCint -lHist \
+		-lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript \
+		-lMatrix -lPhysics -lGui -lm  
+
+GLIBS = 	$(ROOTLIBS) $(ROOTGLIBS)
+
+
+
+RANLIBDIR = ../lib
+CERNDIR = /cern
+
+# system
+
+SYSTEM  = linux
+
+# uncomment this for quiet compilation
+
+.SILENT:
+
+# @endcode
+##EOF
+
Index: /branches/start/MagicSoft/Simulation/Detector/TimeCam/creadparam.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/TimeCam/creadparam.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/TimeCam/creadparam.cxx	(revision 4308)
@@ -0,0 +1,1161 @@
+//=//////////////////////////////////////////////////////////////////////
+//=
+//= creadparam            
+//=
+//= @file        creadparam.cxx
+//= @desc        Reading of parameters file
+//= @author      J C Gonzalez
+//= @email       gonzalez@mppmu.mpg.de
+//= @date        Thu May  7 16:24:22 1998
+//=
+//=----------------------------------------------------------------------
+//=
+//= Created: Thu May  7 16:24:22 1998
+//= Author:  Jose Carlos Gonzalez
+//= Purpose: Program for reflector simulation
+//= Notes:   See files README for details
+//=    
+//=----------------------------------------------------------------------
+//=
+//= $RCSfile: creadparam.cxx,v $
+//= $Revision: 1.1.1.1 $
+//= $Author: harald $ 
+//= $Date: 2000-02-08 15:13:44 $
+//=
+//=//////////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+//!@section Source code of |creadparam.cxx|.
+
+/*!@"
+  
+  This section describes briefly the source code for the file
+  |creadparam.cxx|. This file is very closely related to the file
+  |readparams.cxx| from the |reflector| program. Actually, this later
+  file was the ancestror of the file you are looking at.
+
+  All the defines it uses are located in the file |creadparam.h|. In
+  the first one we can see the definitions of the commands available
+  for the parameters file. We describe these commands in a later
+  section.
+  
+  @"*/
+
+//!@subsection Includes and Global variables definition.
+
+/*!@"
+  
+  All the defines are located in the file {\tt creadparam.h}.
+
+  @"*/
+ 
+//!@{
+
+#include "creadparam.h"
+
+//!@}
+
+//!@subsection Definition of global variables.
+
+/*!@"
+
+  Here we define the global variables where the values from the
+  parameters file are stored.
+  
+  @"*/
+
+//!@{
+
+static char Input_filename[PATH_MAX_LENGTH];  //@< input filename
+static char Output_filename[PATH_MAX_LENGTH]; //@< output filename
+static char Data_filename[PATH_MAX_LENGTH];   //@< data filename
+static char DIAG_filename[PATH_MAX_LENGTH];  //@< data filename
+static char ROOT_filename[PATH_MAX_LENGTH];   //@< data filename
+static char CT_filename[PATH_MAX_LENGTH];     //@< name of the CT def. file
+static int simulateNSB = TRUE;                //@< Will we simulate NSB?
+static int anaPixels = -1;      //@< number of pixels for the analysis
+static float meanNSB;           //@< NSB mean value (per pixel)
+static float qThreshold;        //@< Threshold value
+static float qTailCut;          //@< Tail Cut value
+static int nIslandsCut;         //@< Islands Cut value
+static int countIslands = TRUE; //@< Will we count the islands?
+static long int Seeds[2]; 
+static int *Skip;
+static int nSkip=0;
+static int Data_From_STDIN = FALSE;
+static int Read_Phe = FALSE;
+static int Read_Phe_All = FALSE;
+static int Write_All_Images = FALSE;
+static int Write_McEvt  = TRUE;
+static int Write_McTrig = FALSE;
+static int Write_RawEvt = FALSE;
+static int Write_All_Data = FALSE;
+static int Select_Energy = TRUE;
+static float Select_Energy_le = 0.0;           //@< GeV
+static float Select_Energy_ue = 100000.0;      //@< GeV
+static float Trigger_Radius;
+static int Set_Trigger_Radius=FALSE;
+static float fCorrection;
+static int Apply_Correction=FALSE;
+//!@}
+
+//!@subsection The function |readparam()|.
+
+//!-----------------------------------------------------------
+// @name  creadparam
+//                                                
+// @desc  read parameters from the stdin / parameters file
+//
+// @var   *filename  Name of the parameters file (NULL->STDIN)
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function
+
+//!@{ 
+void 
+readparam(char * filename)
+{
+  char sign[] = GLUE_postp( PROGRAM, VERSION ); //@< initialize sign
+  char line[LINE_MAX_LENGTH];    //@< line to get from the stdin
+  char token[ITEM_MAX_LENGTH];   //@< a single token
+  int i, j;                      //@< dummy counters
+  ifstream ifile;
+
+  // use cin or ifile (reading from STDIN or from parameters file?
+  if ( filename != NULL )
+    ifile.open( filename );
+
+  // get signature
+  if ( filename != NULL )
+    ifile.getline(line, LINE_MAX_LENGTH);
+  else
+    cin.getline(line, LINE_MAX_LENGTH);
+  line[strlen(SIGNATURE)] = '\0';
+  strcpy(line, sign);
+  if (strcmp(sign, SIGNATURE) != 0) {
+    cerr << "ERROR: Signature of parameters file is not correct\n";
+    cerr << '"' << sign << '"' << '\n';
+    cerr << "should be: " << SIGNATURE << '\n';
+    exit(1);
+  }
+
+  // loop till the "end" directive is reached
+  int is_end = FALSE;
+  while (! is_end) {          
+
+    // get line from file or stdin
+    if ( filename != NULL )
+      ifile.getline(line, LINE_MAX_LENGTH);
+    else
+      cin.getline(line, LINE_MAX_LENGTH);
+
+    // skip comments (start with '#')
+    if (line[0] == '#')
+      continue;
+
+    // show user comments (start with '>')
+    if (line[0] == '>') {
+      cout << line << endl << flush;
+      continue;
+    }
+
+    // look for each item at the beginning of the line
+    for (i=0; i<=end_file; i++) 
+      if (strstr(line, ITEM_NAMES[i]) == line)
+        break;
+        
+    // if it is not a valid line, just ignore it
+    if (i == end_file+1) {
+      cerr << "Skipping unknown token in [" << line << "]\n";
+      continue;
+    }
+
+    // case block for each directive
+    switch ( i ) {
+
+    case input_file:          //@< name of the input file
+          
+      // get the name of the input_file from the line
+      sscanf(line, "%s %s", token, Input_filename);
+
+      break;
+
+    case output_file:         //@< name of the output file
+          
+      // get the name of the output_file from the line
+      sscanf(line, "%s %s", token, Output_filename);
+
+      break;
+
+    case data_file:           //@< name of the data file
+          
+      // get the name of the data_file from the line
+      sscanf(line, "%s %s", token, Data_filename);
+
+      break;
+
+    case diag_file:          //@< name of the DIAG file
+          
+      // get the name of the data_file from the line
+      sscanf(line, "%s %s", token, DIAG_filename);
+      cout << '[' << DIAG_filename << ']' << endl << flush;
+
+      break;
+
+    case root_file:          //@< name of the ROOT file
+          
+      // get the name of the data_file from the line
+      sscanf(line, "%s %s", token, ROOT_filename);
+      cout << '[' << ROOT_filename << ']' << endl << flush;
+
+      break;
+
+    case ct_file:             //@< name of the telescope file
+          
+      // get the name of the ct_file from the line
+      sscanf(line, "%s %s", token, CT_filename);
+
+      break;
+
+    case nsb_on:              //@< simulate NSB?
+          
+      // we will simulate NSB
+      simulateNSB = TRUE;
+          
+      break;
+
+    case nsb_off:             //@< simulate NSB?
+          
+      // we will NOT simulate NSB
+      simulateNSB = FALSE;
+          
+      break;
+
+    case nsb_mean:            //@< value of <NSB> per pixel
+          
+      // get value of <NSB> (in photons)
+      sscanf(line, "%s %f", token, &meanNSB);
+      simulateNSB = TRUE;
+
+      break;
+
+    case ana_pixels:          //@< number of pixels for analysis
+          
+      // number of pixels for analysis
+      sscanf(line, "%s %d", token, &anaPixels);
+
+      break;
+
+    case threshold:           //@< value of threshold for trigger (q0)
+          
+      // get value of threshold (in ph.e.)
+      sscanf(line, "%s %f", token, &qThreshold);
+
+      break;
+
+    case tail_cut:            //@< value of tail_cut (t0)
+          
+      // get value of tail_cut (in ph.e.)
+      sscanf(line, "%s %f", token, &qTailCut);
+
+      break;
+
+    case islands_on:          //@< DO count islands
+          
+      // DO count islands
+      countIslands = TRUE;
+          
+      break;
+
+    case islands_off:         //@< do NOT count islands
+          
+      // do NOT count islands
+      countIslands = FALSE;
+          
+      break;
+
+    case islands_cut:         //@< value of islands_cut (i0)
+          
+      // get value of islands_cut (in ph.e.)
+      sscanf(line, "%s %d", token, &nIslandsCut);
+      countIslands = TRUE;
+
+      break;
+
+    case seeds:               //@< values of seeds for random numbers
+          
+      // get seeds
+      sscanf(line, "%s %ld %ld", token, &Seeds[0], &Seeds[1]);
+
+      break;
+
+    case skip:                //@< skip pathological showers
+          
+      // get showers to skip
+      cin >> nSkip;
+      Skip = new int[nSkip];
+      for (j=0; j<nSkip; ++j) {
+        cin >> Skip[j];
+        cout << Skip[j] << endl << flush;
+      }
+
+      break;
+
+    case data_from_stdin:     //@< to read data from stdin
+          
+      // change boolean value
+      Data_From_STDIN = TRUE;
+
+      break;
+
+    case read_phe:            //@< to read PHE files
+          
+      // change boolean value
+      Read_Phe = TRUE;
+
+      break;
+
+    case read_phe_all:        //@< to read PHE files from write_all_images
+          
+      // change boolean value
+      Read_Phe_All = TRUE;
+
+      break;
+
+    case write_all_images:    //@< to write ALL the images
+          
+      // change boolean value
+      Write_All_Images = TRUE;
+
+      break;
+
+    case nowrite_McEvt:    //@< do not write the McEvt info
+          
+      // change boolean value
+      Write_McEvt = FALSE;
+
+      break;
+
+    case write_McTrig:    //@< to write the McTrig info
+          
+      // change boolean value
+      Write_McTrig = TRUE;
+
+      break;
+
+    case write_RawEvt:    //@< to write the RawEvt data
+          
+      // change boolean value
+      Write_RawEvt = TRUE;
+
+      break;
+
+
+
+
+    case write_all_data:      //@< to write single pixel data
+          
+      // change boolean value
+      Write_All_Data = TRUE;
+
+      break;
+
+    case select_energy:       //@< value of islands_cut (i0)
+          
+      // get energy range
+      sscanf(line, "%s %f %f", token, &Select_Energy_le, &Select_Energy_ue);
+      Select_Energy = TRUE;
+
+      break;
+
+    case trigger_radius:      //@< set radius of trigger area 
+          
+      // get trigger radius
+      sscanf(line, "%s %f", token, &Trigger_Radius);
+      Set_Trigger_Radius = TRUE;
+
+      break;
+
+    case correction:          //@< apply a kind of correction to pixel values
+          
+      // get trigger radius
+      sscanf(line, "%s %f", token, &fCorrection);
+      Apply_Correction = TRUE;
+
+      break;
+
+    case end_file:            //@< end of the parameters file
+
+      // show a short message
+      is_end = TRUE;
+
+      break;
+
+    } // switch ( i ) 
+
+  } // while (! is_end)
+
+  // after the loop is finished, return to the main function
+  return;
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_input_filename
+//                                                
+// @desc get name of the input file
+//
+// @return   Name of the Input file
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+char *
+get_input_filename(void)
+{
+  return (Input_filename);
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_output_filename
+//                                                
+// @desc get name of the output file
+//
+// @return   Name of the Output file
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+char *
+get_output_filename(void)
+{
+  return (Output_filename);
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_data_filename
+//                                                
+// @desc get name of the data file
+//
+// @return   Name of the Data file
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+char *
+get_data_filename(void)
+{
+  return (Data_filename);
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_diag_filename
+//                                                
+// @desc get name of the diagnostic output file
+//
+// @return   Name of the DIAG file
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+char *
+get_diag_filename(void)
+{
+  return (DIAG_filename);
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_root_filename
+//                                                
+// @desc get name of the ROOT file
+//
+// @return   Name of the ROOT file
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+char *
+get_root_filename(void)
+{
+  return (ROOT_filename);
+}
+//!@}
+
+
+
+//!-----------------------------------------------------------
+// @name get_ct_filename
+//                                                
+// @desc get name of CT definition file
+//
+// @return   Name of the CT definition file
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+char *
+get_ct_filename(void)
+{
+  return (CT_filename);
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_nsb
+//                                                
+// @desc are we going to simulate NSB ?
+//
+// @var  *n  Mean value for the NSB (ph.e./pixel)
+// @return   TRUE: we'll simulate NSB; FALSE: we won't
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_nsb(float *n)
+{
+  *n = meanNSB;
+  return ( simulateNSB );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_threshold   
+//                                                
+// @desc get threshold value
+//
+// @return   Value of the threshold q$_0$
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+float 
+get_threshold(void)
+{
+  return( qThreshold );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_tail_cut   
+//                                                
+// @desc get tail cut value
+//
+// @return   Value for the Tail-cut
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+float 
+get_tail_cut(void)
+{
+  return( qTailCut );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_islands_cut
+//                                                
+// @desc are we going to count the islands ?
+//
+// @var  *n  Cut on islands number
+// @return   TRUE: we'll count the islands; FALSE: we won't
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_islands_cut(int *n)
+{
+  *n = nIslandsCut;
+  return ( countIslands );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_ana_pixels
+//                                                
+// @desc number of pixels for the analysis
+//
+// @return  Number of pixels to use in the image parameters
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_ana_pixels(void)
+{
+  return ( anaPixels );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_seeds
+//                                                
+// @desc are we going to count the islands ?
+//
+// @var  *n  Number of the seed
+// @return   N-th random-number Seed
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+long int
+get_seeds(int n)
+{
+  return ( Seeds[n] );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_skip_showers
+//                                                
+// @desc get list of showers to skip
+//
+// @var *s1  Pointer to a vector of number of showers
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+void 
+get_skip_showers( int *s )
+{
+  int i;
+  for (i=0; i<nSkip; ++i)
+    s[i] = Skip[i];
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_nskip_showers
+//                                                
+// @desc get number of showers to skip
+//
+// @return  Number of showers to be skipped
+//
+// @date Mon Sep 14 13:27:56 MET DST 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int 
+get_nskip_showers( void )
+{
+  return( nSkip );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_data_from_stdin
+//                                                
+// @desc get whether we will read the data from the STDIN
+//
+// @return  TRUE: we'll read data from STDIN; FALSE: we won't
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_data_from_stdin(void)
+{
+  return ( Data_From_STDIN );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_read_phe
+//                                                
+// @desc get whether we will read PHE files
+//
+// @return  TRUE: we'll read PHE files; FALSE: we won't
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_read_phe(void)
+{
+  return ( Read_Phe );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_read_phe_all
+//                                                
+// @desc get whether we will read PHE files, with write_all_images
+//
+// @return  TRUE: we'll do it; FALSE: we won't
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_read_phe_all(void)
+{
+  return ( Read_Phe_All );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name write_all_images
+//                                                
+// @desc write all images to .phe, even those without trigger
+//
+// @return  TRUE: we'll write everything; FALSE: we won't
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_write_all_images(void)
+{
+  return ( Write_All_Images );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name write_all_data
+//                                                
+// @desc write single pixel data to file .dat
+//
+// @return  TRUE: we'll write everything; FALSE: we won't
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_write_all_data(void)
+{
+  return ( Write_All_Data );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name write_McEvt
+//                                                
+// @desc write the McEvt class for each event to the .root file 
+//
+// @return  TRUE: we'll write it;  FALSE: we won't
+//
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_write_McEvt(void)
+{
+  return ( Write_McEvt );
+}
+//!@}
+
+//!-----------------------------------------------------------
+// @name write_McTrig
+//                                                
+// @desc write the McTrig class for each event to the .root file 
+//
+// @return  TRUE: we'll write it;  FALSE: we won't
+//
+//------------------------------------------------------------
+// @function 
+ 
+//!@{
+int
+get_write_McTrig(void)
+{
+  return ( Write_McTrig );
+}
+//!@}
+
+//!-----------------------------------------------------------
+// @name write_RawEvt
+//                                                
+// @desc write the RawEvt class for each event to the .root file 
+//
+// @return  TRUE: we'll write it;  FALSE: we won't
+//
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_write_RawEvt(void)
+{
+  return ( Write_RawEvt );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_select_energy                                      
+//
+// @desc return energy range allowed for showers from .phe file
+//
+// @var *le  Lower limit in the allowed energy range
+// @var *ue  Lower limit in the allowed energy range
+// @return  TRUE: we make selection on the energy; FALSE: we don't
+//
+// @date Wed Nov 25 13:21:00 MET 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int
+get_select_energy(float *le, float *ue)
+{
+  *le = Select_Energy_le;
+  *ue = Select_Energy_ue;
+  return ( Select_Energy );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_trigger_radius                                  
+//
+// @desc return the radius of the trigger area in the camera (if set)
+//
+// @var *radius  Radius of the trigger area in the camera
+// @return  TRUE: we choose a given radius for the trigger area
+//
+// @date Fri May  7 11:07:43 MET DST 1999
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int get_trigger_radius(float *radius)
+{
+  *radius = Trigger_Radius;
+  return ( Set_Trigger_Radius );
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name get_trigger_radius                                  
+//
+// @desc return the radius of the trigger area in the camera (if set)
+//
+// @var *radius  Radius of the trigger area in the camera
+// @return  TRUE: we choose a given radius for the trigger area
+//
+// @date Fri May  7 11:07:43 MET DST 1999
+//------------------------------------------------------------
+// @function 
+
+//!@{
+int get_correction(float *corr)
+{
+  *corr = fCorrection;
+  return ( Apply_Correction );
+}
+//!@}
+
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+//
+// $Log: not supported by cvs2svn $
+// Revision 1.1.1.1  1999/11/05 11:59:34  harald
+// This the starting point for CVS controlled further developments of the
+// camera program. The program was originally written by Jose Carlos. 
+// But here you can find a "rootified" version to the program. This means 
+// that there is no hbook stuff in it now. Also the output of the
+// program changed to the MagicRawDataFormat. 
+//
+// The "rootification" was done by Dirk Petry and Harald Kornmayer. 
+//
+// In the following you can see the README file of that version:
+//
+// ==================================================
+//
+// Fri Oct 22  1999   D.P.
+//
+// The MAGIC Monte Carlo System
+//
+// Camera Simulation Programme
+// ---------------------------
+//
+// 1) Description
+//
+// This version is the result of the fusion of H.K.'s
+// root_camera which is described below (section 2)
+// and another version by D.P. which had a few additional
+// useful features.
+//
+// The version compiles under Linux with ROOT 2.22 installed
+// (variable ROOTSYS has to be set).
+//
+// Compile as before simply using "make" in the root_camera
+// directory.
+//
+// All features of H.K.'s root_camera were retained.
+//
+// Additional features of this version are:
+//
+//   a) HBOOK is no longer used and all references are removed.
+//
+//   b) Instead of HBOOK, the user is given now the possibility of 
+//      having Diagnostic data in ROOT format as a complement
+//      to the ROOT Raw data.
+//
+//      This data is written to the file which is determined by
+//      the new input parameter "diag_file" in the camera parameter
+//      file.
+//
+//      All source code file belonging to this part have filenames
+//      starting with "MDiag".
+//
+//      The user can read the output file using the following commands
+//      in an interactive ROOT session:
+//
+//        	root [0] .L MDiag.so
+// 	root [1] new TFile("diag.root");
+// 	root [2] new TTreeViewer("T");
+// 	
+//      This brings up a viewer from which all variables of the
+//      TTree can be accessed and histogrammed. This example
+//      assumes that you have named the file "diag.root", that
+//      you are using ROOT version 2.22 or later and that you have
+//      the shared object library "MDiag.so" which is produced
+//      by the Makefile along with the executable "camera".
+//        
+//  !   The contents of the so-called diag file is not yet fixed.
+//  !   At the moment it is what J.C.G. used to put into the HBOOK
+//  !   ntuple. In future versions the moments calculation can be
+//  !   removed and the parameter list be modified correspondingly.
+//
+//   c) Now concatenated reflector files can be read. This is useful
+//      if you have run the reflector with different parameters but
+//      you want to continue the analysis with all reflector data
+//      going into ONE ROOT outputfile.
+//
+//      The previous camera version contained a bug which made reading 
+//      of two or more concatenated reflector files impossible.
+//
+//   d) The reflector output format was changed. It is now version
+//      0.4 .
+//      The change solely consists in a shortening of the flag
+//      definition in the file 
+//
+//            include-MC/MCCphoton.hxx  
+//
+//  !   IF YOU WANT TO READ REFLECTOR FORMAT 0.3, you can easily
+//  !   do so by recompiling camera with the previous version of
+//  !   include-MC/MCCphoton.hxx.
+//
+//      The change was necessary for saving space and better
+//      debugging. From now on, this format can be frozen.
+//
+//  !   For producing reflector output in the new format, you
+//  !   of course have to recompile your reflector with the
+//  !   new include-MC/MCCphoton.hxx .
+//
+//   e) A first version of the pixelization with the larger
+//      outer pixels is implemented. THIS IS NOT YET FULLY
+//      TESTED, but first rough tests show that it works
+//      at least to a good approximation.
+//
+//      The present version implements the camera outline
+//      with 18 "gap-pixels" and 595 pixels in total as
+//      shown in 
+//
+//         http://sarastro.ifae.es/internal/home/hardware/camera/numbering.ps
+//
+//      This change involved 
+//
+// 	(i) The file pixels.dat is no longer needed. Instead
+//           the coordinates are generated by the program itself
+//           (takes maybe 1 second). In the file 
+//
+// 		pixel-coords.txt
+//
+// 	  in the same directory as this README, you find a list
+//           of the coordinates generated by this new routine. It
+//           has the format
+//
+//               number   i   j   x  y  size-factor
+//
+//           where i and j are J.C.G.'s so called biaxis hexagonal
+//           coordinates (for internal use) and x and y are the
+//           coordinates of the pixel centers in the standard camera
+//           coordinate system in units of centimeters. The value
+//           of "size-factor" determines the linear size of the pixel
+//           relative to the central pixels. 
+//
+//         (ii) The magic.def file has two additional parameters
+//           which give the number of central pixels and the
+//           number of gap pixels
+//
+//         (iii) In camera.h and camera.cxx several changes were 
+//           necessary, among them the introduction of several
+//           new functions 
+//
+//      The newly suggested outline with asymmetric Winston cones
+//      will be implemented in a later version.
+//
+//   f) phe files can no longer be read since this contradicts
+//      our philosophy that the analysis should be done with other
+//      programs like e.g. EVITA and not with "camera" itself.
+//      This possibility was removed. 
+//
+//   g) ROOT is no longer invoked with an interactive interface.
+//      In this way, camera can better be run as a batch program and
+//      it uses less memory.
+//
+//   h) small changes concerning the variable "t_chan" were necessary in
+//      order to avoid segmentation faults: The variable is used as an
+//      index and it went sometimes outside the limits when camera
+//      was reading proton data. This is because the reflector files
+//      don't contain the photons in a chronological order and also
+//      the timespread can be considerably longer that the foreseen
+//      digitisation timespan. Please see the source code of camera.cxx
+//      round about line 1090.
+//
+//   j) several unused variables were removed, a few warning messages
+//      occur when you compile camera.cxx but these can be ignored at
+//      the moment.
+//
+// In general the program is of course not finished. It still needs
+// debugging, proper trigger simulation, simulation of the asymmetric
+// version of the outer pixels, proper NSB simulation, adaption of
+// the diag "ntuple" contents to our need and others small improvements.
+//
+// In the directory rfl-files there is now a file in reflector format 0.4
+// containing a single event produced by the starfiled adder. It has
+// a duration of 30 ns and represents the region around the Crab Nebula.
+// Using the enclosed input parameter file, camera should process this
+// file without problems.
+//
+// 2) The README for the previous version of root_camera
+//
+// README for a preliminary version of the 
+// root_camera program. 
+//
+// root_camera is based on the program "camera"of Jose Carlos
+// Gonzalez. It was changed in the way that only the pixelisation 
+// and the distibution of the phe to the FADCs works in a 
+// first version. 
+//
+// Using the #undef command most possibilities of the orignal 
+// program are switched of. 
+//
+// The new parts are signed by 
+//
+// - ROOT or __ROOT__ 
+//   nearly all  important codelines for ROOT output are enclosed 
+//   in structures like 
+//   #ifdef __ROOT__ 
+//   
+//     code 
+//
+//   #endif __ROOT__ 
+//
+//   In same case the new lines are signed by a comment with the word 
+//   ROOT in it. 
+//
+//   For timing of the pulse some variable names are changed. 
+//   (t0, t1, t  -->  t_ini, t_fin, t_1st, t_chan,...) 
+//   Look also for this changes. 
+//
+//   For the new root-file is also a change in readparm-files
+//
+//
+// - __DETAIL_TRIGGER__
+//
+//   This is for the implementation of the current work on trigger 
+//   studies. Because the class MTrigger is not well documented it 
+//   isn´t a part of this tar file. Only a dummy File exists. 
+//
+//
+//
+// With all files in the archive, the root_camera program should run. 
+//
+// A reflector file is in the directory rfl-files
+//
+// ==================================================
+//
+// From now on, use CVS for development!!!!
+//
+//
+//
+// Revision 1.2  1999/10/22 15:01:28  petry
+// version sent to H.K. and N.M. on Fri Oct 22 1999
+//
+// Revision 1.1.1.1  1999/10/21 16:35:11  petry
+// first synthesised version
+//
+// Revision 1.6  1999/03/15  14:59:08  gonzalez
+// camera-1_1
+//
+// Revision 1.5  1999/03/02  09:56:12  gonzalez
+// *** empty log message ***
+//
+// Revision 1.4  1999/01/14  17:32:41  gonzalez
+// Added to camera the STDIN input option (data_from_input)
+//
+//!@}
+
+//=EOF
Index: /branches/start/MagicSoft/Simulation/Detector/TimeCam/creadparam.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/TimeCam/creadparam.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/TimeCam/creadparam.h	(revision 4308)
@@ -0,0 +1,489 @@
+//=//////////////////////////////////////////////////////////////////////
+//=
+//= creadparam                
+//=
+//= @file        creadparam.h
+//= @desc        Header file
+//= @author      J C Gonzalez
+//= @email       gonzalez@mppmu.mpg.de
+//= @date        Thu May  7 16:24:22 1998
+//=
+//=----------------------------------------------------------------------
+//=
+//= Created: Thu May  7 16:24:22 1998
+//= Author:  Jose Carlos Gonzalez
+//= Purpose: Program for reflector simulation
+//= Notes:   See files README for details
+//=    
+//=----------------------------------------------------------------------
+//=
+//= $RCSfile: creadparam.h,v $
+//= $Revision: 1.1.1.1 $
+//= $Author: harald $ 
+//= $Date: 2000-02-08 15:13:44 $
+//=
+//=//////////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+//!@section Source code of |creadparam.h|.
+
+/*!@"
+
+  In this section you can find the source code for the file
+  |creadparam.h|.  This file is mainly needed by
+  |creadparam.cxx|. Here is located the definition of the commands you
+  can use in the parameters file. In this file, the first line must be
+  |camera 'version'|, where |'version'| is the appropiate version of
+  the output format (NOT the version of the camera program) which can
+  read the commands written in that parameters file. You cannot mix
+  parameters files and executables with different versions. The
+  current version is |camera 0.2|.
+
+  The commands now available for the parameters file are:
+
+  @itemize
+  
+  @- |input_file| filename :    
+     Sets the name of the input file (|.rfl|).
+  @- |output_file| filename :    
+     Sets the name of the output file (|.phe|).
+  @- |ct_file| filename :    
+     Sets the name of the CT definition file (|.def|).
+  @- |data_file| filename :    
+     Sets the name of the output data file (|.dat|).
+  @- |nsb_on| :    
+     Activates the NSB simulation. This is the default.
+  @- |nsb_off| :    
+     De-activates the NSB simulation.
+  @- |nsb_mean| number :    
+     Sets the mean value for the NSB.
+     Default value: 6 for CT1, 6 for MAGIC.
+     This implies always |nsb_on|.
+  @- |threshold| number :    
+     Sets the Threshold value q0. Default value: 10.
+  @- |tail_cut| number : 
+     Sets the Tail-Cut value.
+     Default value: 7.
+  @- |islands_cut| number :    
+     Sets the Islands-Cut value i0.
+     Default value: 10.
+  @- |end_file|
+     Last command in the parameters file.
+
+  @enditemize
+
+  @ignoreHTML
+  A parameters file (a small one) looks like this:
+
+  |camera 0.2|
+
+  |input_file    gm100-500.rfl|
+
+  |output_file   gm100-500.phe|
+
+  |output_file   gm100-500.dat|
+
+  |ct_file       magic.def|
+
+  |threshold     10.0|
+
+  |tail_cut      7.0|
+
+  |nsb_mean      5.0|
+
+  |end_file|
+  @endignoreHTML
+
+@"*/
+
+//!@{
+
+#ifndef _creadparam_
+#define _creadparam_
+
+#ifndef _this_
+#define _this_ creadparam
+#endif
+
+//!@}
+
+//!@subsection Include files.
+
+//!@{
+
+#include <iostream.h>
+#include <fstream.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+#include <float.h>
+
+#include "jcmacros.h"
+#include "jcdebug.h"
+
+#include "timecam-v.h"
+
+//!@}
+
+//!@subsection Macro-definitions, and constants.
+
+//!@{
+
+// now we define the list ITEM_LIST of possible items in
+// the parameters file. note that they are functions of
+// T(x). we will change T(x) to be the real item or the
+// string of this item when needed
+
+#define ITEM_LIST   /* LIST OF ITEMS IN THE PARAMETERS FILE */     \
+T(input_file),      /* input file */                              \
+T(output_file),     /* output file */                              \
+T(data_file),       /* data file */                              \
+T(diag_file),       /* diagnostic output file (ROOT format) */   \
+T(root_file),       /* ROOT file */                              \
+T(ct_file),         /* file with the characteristics of the CT */  \
+T(ana_pixels),      /* size of the camera for parameters calculation */  \
+T(nsb_on),          /* activates NSB simulation */ \
+T(nsb_off),         /* de-activates NSB simulation */ \
+T(nsb_mean),        /* mean value of NSB contribution per pixel */ \
+T(threshold),       /* value of q0 for trigger */ \
+T(tail_cut),        /* value of tail cut (t0) */ \
+T(islands_on),      /* DO count islands */ \
+T(islands_off),     /* do NOT count islands */ \
+T(islands_cut),     /* value of islands cut (i0) */ \
+T(seeds),           /* seeds for random number generation */ \
+T(data_from_stdin), /* to read data from STDIN */ \
+T(skip),            /* skip pathological showers */ \
+T(read_phe_all),    /* id., but was processed with write_all_images */ \
+T(read_phe),        /* read an already camera processed file */ \
+T(write_all_images),/* write to file .phe ALL images (even w.o. trigger)*/ \
+T(nowrite_McEvt),   /* nowrite to file .root McEvt infos */ \
+T(write_McTrig),    /* write to file .root McTrig infos */ \
+T(write_RawEvt),    /* write to file .root RawEvt infos */ \
+T(write_all_data),  /* write to file .dat ALL image data */ \
+T(select_energy),   /* energy range to read: only for .phe files */ \
+T(trigger_radius),  /* trigger radius for the camera */ \
+T(correction),      /* factor for correction in the pixel values */ \
+T(end_file)         /* end of the parameters file */
+  
+#define T(x)  x             // define T() as the name as it is
+
+enum ITEM_TYPE {
+  ITEM_LIST
+};
+
+#undef T
+
+#define T(x)  #x              // define T() as the string of x
+
+const char *const ITEM_NAMES[] = {
+  ITEM_LIST
+};
+
+#undef T
+
+#define LINE_MAX_LENGTH  400
+#define ITEM_MAX_LENGTH  40
+#define PATH_MAX_LENGTH  120
+
+// mean values of NSB contribution per pixel
+
+static const float Mean_NSB_MAGIC = 5.0; //@< for MAGIC
+static const float Mean_NSB_CT1 = 5.0;   //@< for CT1
+
+//!@}
+
+//!@subsection Prototypes of functions.
+
+//!@{
+
+//++
+// prototypes
+//--
+
+void readparam(char * filename);
+char *get_input_filename(void);
+char *get_output_filename(void);
+char *get_data_filename(void);
+char *get_diag_filename(void);
+char *get_root_filename(void);
+char *get_ct_filename(void);
+int get_nsb(float *n);
+float get_threshold(void);
+float get_tail_cut(void);
+int get_islands_cut(int *n);
+long int get_seeds(int n);
+int get_ana_pixels(void);
+void get_skip_showers( int *s ); 
+int get_nskip_showers( void ); 
+int get_data_from_stdin(void);
+int get_read_phe(void);
+int get_read_phe_all(void);
+int get_write_all_images(void);
+//
+int get_write_McEvt(void);
+int get_write_McTrig(void);
+int get_write_RawEvt(void);
+//
+int get_write_all_data(void);
+int get_select_energy(float *le, float *ue);
+int get_trigger_radius(float *radius);
+int get_correction(float *corr);
+//!@}
+
+//!@{
+
+#endif // ! _creadparam_
+
+//!@}
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+
+/*
+ * $Log: not supported by cvs2svn $
+ * Revision 1.1.1.1  1999/11/05 11:59:34  harald
+ * This the starting point for CVS controlled further developments of the
+ * camera program. The program was originally written by Jose Carlos. 
+ * But here you can find a "rootified" version to the program. This means 
+ * that there is no hbook stuff in it now. Also the output of the
+ * program changed to the MagicRawDataFormat. 
+ *
+ * The "rootification" was done by Dirk Petry and Harald Kornmayer. 
+ *
+ * In the following you can see the README file of that version:
+ *
+ * ==================================================
+ *
+ * Fri Oct 22  1999   D.P.
+ *
+ * The MAGIC Monte Carlo System
+ *
+ * Camera Simulation Programme
+ * ---------------------------
+ *
+ * 1) Description
+ *
+ * This version is the result of the fusion of H.K.'s
+ * root_camera which is described below (section 2)
+ * and another version by D.P. which had a few additional
+ * useful features.
+ *
+ * The version compiles under Linux with ROOT 2.22 installed
+ * (variable ROOTSYS has to be set).
+ *
+ * Compile as before simply using "make" in the root_camera
+ * directory.
+ *
+ * All features of H.K.'s root_camera were retained.
+ *
+ * Additional features of this version are:
+ *
+ *   a) HBOOK is no longer used and all references are removed.
+ *
+ *   b) Instead of HBOOK, the user is given now the possibility of 
+ *      having Diagnostic data in ROOT format as a complement
+ *      to the ROOT Raw data.
+ *
+ *      This data is written to the file which is determined by
+ *      the new input parameter "diag_file" in the camera parameter
+ *      file.
+ *
+ *      All source code file belonging to this part have filenames
+ *      starting with "MDiag".
+ *
+ *      The user can read the output file using the following commands
+ *      in an interactive ROOT session:
+ *
+ *        	root [0] .L MDiag.so
+ * 	root [1] new TFile("diag.root");
+ * 	root [2] new TTreeViewer("T");
+ * 	
+ *      This brings up a viewer from which all variables of the
+ *      TTree can be accessed and histogrammed. This example
+ *      assumes that you have named the file "diag.root", that
+ *      you are using ROOT version 2.22 or later and that you have
+ *      the shared object library "MDiag.so" which is produced
+ *      by the Makefile along with the executable "camera".
+ *        
+ *  !   The contents of the so-called diag file is not yet fixed.
+ *  !   At the moment it is what J.C.G. used to put into the HBOOK
+ *  !   ntuple. In future versions the moments calculation can be
+ *  !   removed and the parameter list be modified correspondingly.
+ *
+ *   c) Now concatenated reflector files can be read. This is useful
+ *      if you have run the reflector with different parameters but
+ *      you want to continue the analysis with all reflector data
+ *      going into ONE ROOT outputfile.
+ *
+ *      The previous camera version contained a bug which made reading 
+ *      of two or more concatenated reflector files impossible.
+ *
+ *   d) The reflector output format was changed. It is now version
+ *      0.4 .
+ *      The change solely consists in a shortening of the flag
+ *      definition in the file 
+ *
+ *            include-MC/MCCphoton.hxx  
+ *
+ *  !   IF YOU WANT TO READ REFLECTOR FORMAT 0.3, you can easily
+ *  !   do so by recompiling camera with the previous version of
+ *  !   include-MC/MCCphoton.hxx.
+ *
+ *      The change was necessary for saving space and better
+ *      debugging. From now on, this format can be frozen.
+ *
+ *  !   For producing reflector output in the new format, you
+ *  !   of course have to recompile your reflector with the
+ *  !   new include-MC/MCCphoton.hxx .
+ *
+ *   e) A first version of the pixelization with the larger
+ *      outer pixels is implemented. THIS IS NOT YET FULLY
+ *      TESTED, but first rough tests show that it works
+ *      at least to a good approximation.
+ *
+ *      The present version implements the camera outline
+ *      with 18 "gap-pixels" and 595 pixels in total as
+ *      shown in 
+ *
+ *         http://sarastro.ifae.es/internal/home/hardware/camera/numbering.ps
+ *
+ *      This change involved 
+ *
+ * 	(i) The file pixels.dat is no longer needed. Instead
+ *           the coordinates are generated by the program itself
+ *           (takes maybe 1 second). In the file 
+ *
+ * 		pixel-coords.txt
+ *
+ * 	  in the same directory as this README, you find a list
+ *           of the coordinates generated by this new routine. It
+ *           has the format
+ *
+ *               number   i   j   x  y  size-factor
+ *
+ *           where i and j are J.C.G.'s so called biaxis hexagonal
+ *           coordinates (for internal use) and x and y are the
+ *           coordinates of the pixel centers in the standard camera
+ *           coordinate system in units of centimeters. The value
+ *           of "size-factor" determines the linear size of the pixel
+ *           relative to the central pixels. 
+ *
+ *         (ii) The magic.def file has two additional parameters
+ *           which give the number of central pixels and the
+ *           number of gap pixels
+ *
+ *         (iii) In camera.h and camera.cxx several changes were 
+ *           necessary, among them the introduction of several
+ *           new functions 
+ *
+ *      The newly suggested outline with asymmetric Winston cones
+ *      will be implemented in a later version.
+ *
+ *   f) phe files can no longer be read since this contradicts
+ *      our philosophy that the analysis should be done with other
+ *      programs like e.g. EVITA and not with "camera" itself.
+ *      This possibility was removed. 
+ *
+ *   g) ROOT is no longer invoked with an interactive interface.
+ *      In this way, camera can better be run as a batch program and
+ *      it uses less memory.
+ *
+ *   h) small changes concerning the variable "t_chan" were necessary in
+ *      order to avoid segmentation faults: The variable is used as an
+ *      index and it went sometimes outside the limits when camera
+ *      was reading proton data. This is because the reflector files
+ *      don't contain the photons in a chronological order and also
+ *      the timespread can be considerably longer that the foreseen
+ *      digitisation timespan. Please see the source code of camera.cxx
+ *      round about line 1090.
+ *
+ *   j) several unused variables were removed, a few warning messages
+ *      occur when you compile camera.cxx but these can be ignored at
+ *      the moment.
+ *
+ * In general the program is of course not finished. It still needs
+ * debugging, proper trigger simulation, simulation of the asymmetric
+ * version of the outer pixels, proper NSB simulation, adaption of
+ * the diag "ntuple" contents to our need and others small improvements.
+ *
+ * In the directory rfl-files there is now a file in reflector format 0.4
+ * containing a single event produced by the starfiled adder. It has
+ * a duration of 30 ns and represents the region around the Crab Nebula.
+ * Using the enclosed input parameter file, camera should process this
+ * file without problems.
+ *
+ * 2) The README for the previous version of root_camera
+ *
+ * README for a preliminary version of the 
+ * root_camera program. 
+ *
+ * root_camera is based on the program "camera"of Jose Carlos
+ * Gonzalez. It was changed in the way that only the pixelisation 
+ * and the distibution of the phe to the FADCs works in a 
+ * first version. 
+ *
+ * Using the #undef command most possibilities of the orignal 
+ * program are switched of. 
+ *
+ * The new parts are signed by 
+ *
+ * - ROOT or __ROOT__ 
+ *   nearly all  important codelines for ROOT output are enclosed 
+ *   in structures like 
+ *   #ifdef __ROOT__ 
+ *   
+ *     code 
+ *
+ *   #endif __ROOT__ 
+ *
+ *   In same case the new lines are signed by a comment with the word 
+ *   ROOT in it. 
+ *
+ *   For timing of the pulse some variable names are changed. 
+ *   (t0, t1, t  -->  t_ini, t_fin, t_1st, t_chan,...) 
+ *   Look also for this changes. 
+ *
+ *   For the new root-file is also a change in readparm-files
+ *
+ *
+ * - __DETAIL_TRIGGER__
+ *
+ *   This is for the implementation of the current work on trigger 
+ *   studies. Because the class MTrigger is not well documented it 
+ *   isn´t a part of this tar file. Only a dummy File exists. 
+ *
+ *
+ *
+ * With all files in the archive, the root_camera program should run. 
+ *
+ * A reflector file is in the directory rfl-files
+ *
+ * ==================================================
+ *
+ * From now on, use CVS for development!!!!
+ *
+ *
+ *
+ * Revision 1.2  1999/10/22 15:01:29  petry
+ * version sent to H.K. and N.M. on Fri Oct 22 1999
+ *
+ * Revision 1.1.1.1  1999/10/21 16:35:11  petry
+ * first synthesised version
+ *
+ * Revision 1.7  1999/03/15  14:59:09  gonzalez
+ * camera-1_1
+ *
+ * Revision 1.6  1999/03/02  09:56:13  gonzalez
+ * *** empty log message ***
+ *
+ * Revision 1.5  1999/01/14  17:32:43  gonzalez
+ * Added to camera the STDIN input option (data_from_input)
+ *
+ */
+
+//!@}
+//=EOF
Index: /branches/start/MagicSoft/Simulation/Detector/TimeCam/input.card
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/TimeCam/input.card	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/TimeCam/input.card	(revision 4308)
@@ -0,0 +1,31 @@
+#camera 0.3
+#data_from_stdin
+#verbose_level 0 
+input_file    /dat1/RefData/test.rfl
+#input_file    /hd31/Maggi/RefData/prot_test.rfl
+#input_file    /hd31/Maggi/RefData/prot_2001-2025.rfl
+#input_file    /hd31/Maggi/RefData/prot_2101-2125.rfl
+#input_file    /hd31/Maggi/RefData/prot_2126-2150.rfl
+#input_file    /hd31/Maggi/RefData/prot_2151-2175.rfl
+root_file     /dat1/CamData/test-raw.root
+#root_file     /hd31/Maggi/CamData/prot_2151-2175.root
+#
+ct_file       ../Data/magic.def
+#
+write_all_images
+#
+#nowrite_McEvt
+write_McTrig
+#write_RawEvt
+#
+ana_pixels    577
+#
+#nsb_on
+#nsb_mean      0.09
+#
+#islands_off
+#
+seeds   69184 10406
+#
+end_file
+
Index: /branches/start/MagicSoft/Simulation/Detector/TimeCam/pixelcoord.dat
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/TimeCam/pixelcoord.dat	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/TimeCam/pixelcoord.dat	(revision 4308)
@@ -0,0 +1,625 @@
+##################################################
+camera 0.2
+
+Processor of the reflector output
+J C Gonzalez, Jun 1998
+##################################################
+
+[/dat1/CamData/test-raw.root]
+[/dat1/CamData/gamma-raw.root]
+[camera 0.2]: Filenames:
+	                  In:	/dat1/RefData/gamma.rfl
+	                ROOT:	/dat1/CamData/gamma-raw.root
+	                  CT:	../Data/magic.def
+[camera 0.2]: Flags:
+	     Data_From_STDIN: [ off]
+	    Write_All_Images: [ ON ]
+[camera 0.2]: Root output:
+	         Write_McEvt: [ ON ]
+	        Write_McTrig: [ ON ]
+	        Write_RawEvt: [ off]
+[camera 0.2]: Parameters:
+	    NSB (phes/pixel): 0.000000 [ ON ]
+	    i0 (Islands-cut): 0.000000 \
+[camera 0.2]: Selections::
+	              Energy: [ ON ]  (0.000000:100000.000000)
+[read_ct_file]: start.
+[read_ct_file]: <Type of Telescope>: MAGIC
+[read_ct_file]: <Focal distance>: 1700.000000 cm
+[read_ct_file]: s(Focal distance): 0.000000 cm
+[read_ct_file]: <Point spread>: 0.500000 cm
+[read_ct_file]: s(Point spread): 0.500000 cm
+[read_ct_file]: s(Adjustment): 0.500000 cm
+[read_ct_file]: Radius of the black spots: 0.500000 cm
+[read_ct_file]: Camera width: 1000.000000 cm
+[read_ct_file]: Number of pixels: 577
+[read_ct_file]: Pixel width: 3.000000 cm
+[read_ct_file]: Number of central pixels: 397
+[read_ct_file]: Number of gap pixels: 0
+[read_ct_file]: Number of mirrors: 920
+[read_ct_file]: Radii of the mirrors: 24.750000 cm
+[read_ct_file]: Table of mirrors data:
+[read_ct_file]: Allocating memory for ct_data
+[read_ct_file]: Reading mirrors data...
+[read_ct_file]: done.
+[read_pixels]: Openning the file "../Data/qe.dat" . . .
+[read_pixels]: Reading data . . .
+[read_pixels]: Done.
+  577  397  0  180
+    1      0.000      0.000      0.000
+    2      3.000      0.000      3.000
+    3      1.500      2.598      3.000
+    4     -1.500      2.598      3.000
+    5     -3.000      0.000      3.000
+    6     -1.500     -2.598      3.000
+    7      1.500     -2.598      3.000
+    8      6.000      0.000      3.000
+    9      4.500      2.598      3.000
+   10      3.000      5.196      3.000
+   11      0.000      5.196      3.000
+   12     -3.000      5.196      3.000
+   13     -4.500      2.598      3.000
+   14     -6.000      0.000      3.000
+   15     -4.500     -2.598      3.000
+   16     -3.000     -5.196      3.000
+   17      0.000     -5.196      3.000
+   18      3.000     -5.196      3.000
+   19      4.500     -2.598      3.000
+   20      9.000      0.000      3.000
+   21      7.500      2.598      3.000
+   22      6.000      5.196      3.000
+   23      4.500      7.794      3.000
+   24      1.500      7.794      3.000
+   25     -1.500      7.794      3.000
+   26     -4.500      7.794      3.000
+   27     -6.000      5.196      3.000
+   28     -7.500      2.598      3.000
+   29     -9.000      0.000      3.000
+   30     -7.500     -2.598      3.000
+   31     -6.000     -5.196      3.000
+   32     -4.500     -7.794      3.000
+   33     -1.500     -7.794      3.000
+   34      1.500     -7.794      3.000
+   35      4.500     -7.794      3.000
+   36      6.000     -5.196      3.000
+   37      7.500     -2.598      3.000
+   38     12.000      0.000      3.000
+   39     10.500      2.598      3.000
+   40      9.000      5.196      3.000
+   41      7.500      7.794      3.000
+   42      6.000     10.392      3.000
+   43      3.000     10.392      3.000
+   44      0.000     10.392      3.000
+   45     -3.000     10.392      3.000
+   46     -6.000     10.392      3.000
+   47     -7.500      7.794      3.000
+   48     -9.000      5.196      3.000
+   49    -10.500      2.598      3.000
+   50    -12.000      0.000      3.000
+   51    -10.500     -2.598      3.000
+   52     -9.000     -5.196      3.000
+   53     -7.500     -7.794      3.000
+   54     -6.000    -10.392      3.000
+   55     -3.000    -10.392      3.000
+   56      0.000    -10.392      3.000
+   57      3.000    -10.392      3.000
+   58      6.000    -10.392      3.000
+   59      7.500     -7.794      3.000
+   60      9.000     -5.196      3.000
+   61     10.500     -2.598      3.000
+   62     15.000      0.000      3.000
+   63     13.500      2.598      3.000
+   64     12.000      5.196      3.000
+   65     10.500      7.794      3.000
+   66      9.000     10.392      3.000
+   67      7.500     12.990      3.000
+   68      4.500     12.990      3.000
+   69      1.500     12.990      3.000
+   70     -1.500     12.990      3.000
+   71     -4.500     12.990      3.000
+   72     -7.500     12.990      3.000
+   73     -9.000     10.392      3.000
+   74    -10.500      7.794      3.000
+   75    -12.000      5.196      3.000
+   76    -13.500      2.598      3.000
+   77    -15.000      0.000      3.000
+   78    -13.500     -2.598      3.000
+   79    -12.000     -5.196      3.000
+   80    -10.500     -7.794      3.000
+   81     -9.000    -10.392      3.000
+   82     -7.500    -12.990      3.000
+   83     -4.500    -12.990      3.000
+   84     -1.500    -12.990      3.000
+   85      1.500    -12.990      3.000
+   86      4.500    -12.990      3.000
+   87      7.500    -12.990      3.000
+   88      9.000    -10.392      3.000
+   89     10.500     -7.794      3.000
+   90     12.000     -5.196      3.000
+   91     13.500     -2.598      3.000
+   92     18.000      0.000      3.000
+   93     16.500      2.598      3.000
+   94     15.000      5.196      3.000
+   95     13.500      7.794      3.000
+   96     12.000     10.392      3.000
+   97     10.500     12.990      3.000
+   98      9.000     15.588      3.000
+   99      6.000     15.588      3.000
+  100      3.000     15.588      3.000
+  101      0.000     15.588      3.000
+  102     -3.000     15.588      3.000
+  103     -6.000     15.588      3.000
+  104     -9.000     15.588      3.000
+  105    -10.500     12.990      3.000
+  106    -12.000     10.392      3.000
+  107    -13.500      7.794      3.000
+  108    -15.000      5.196      3.000
+  109    -16.500      2.598      3.000
+  110    -18.000      0.000      3.000
+  111    -16.500     -2.598      3.000
+  112    -15.000     -5.196      3.000
+  113    -13.500     -7.794      3.000
+  114    -12.000    -10.392      3.000
+  115    -10.500    -12.990      3.000
+  116     -9.000    -15.588      3.000
+  117     -6.000    -15.588      3.000
+  118     -3.000    -15.588      3.000
+  119      0.000    -15.588      3.000
+  120      3.000    -15.588      3.000
+  121      6.000    -15.588      3.000
+  122      9.000    -15.588      3.000
+  123     10.500    -12.990      3.000
+  124     12.000    -10.392      3.000
+  125     13.500     -7.794      3.000
+  126     15.000     -5.196      3.000
+  127     16.500     -2.598      3.000
+  128     21.000      0.000      3.000
+  129     19.500      2.598      3.000
+  130     18.000      5.196      3.000
+  131     16.500      7.794      3.000
+  132     15.000     10.392      3.000
+  133     13.500     12.990      3.000
+  134     12.000     15.588      3.000
+  135     10.500     18.187      3.000
+  136      7.500     18.187      3.000
+  137      4.500     18.187      3.000
+  138      1.500     18.187      3.000
+  139     -1.500     18.187      3.000
+  140     -4.500     18.187      3.000
+  141     -7.500     18.187      3.000
+  142    -10.500     18.187      3.000
+  143    -12.000     15.588      3.000
+  144    -13.500     12.990      3.000
+  145    -15.000     10.392      3.000
+  146    -16.500      7.794      3.000
+  147    -18.000      5.196      3.000
+  148    -19.500      2.598      3.000
+  149    -21.000      0.000      3.000
+  150    -19.500     -2.598      3.000
+  151    -18.000     -5.196      3.000
+  152    -16.500     -7.794      3.000
+  153    -15.000    -10.392      3.000
+  154    -13.500    -12.990      3.000
+  155    -12.000    -15.588      3.000
+  156    -10.500    -18.187      3.000
+  157     -7.500    -18.187      3.000
+  158     -4.500    -18.187      3.000
+  159     -1.500    -18.187      3.000
+  160      1.500    -18.187      3.000
+  161      4.500    -18.187      3.000
+  162      7.500    -18.187      3.000
+  163     10.500    -18.187      3.000
+  164     12.000    -15.588      3.000
+  165     13.500    -12.990      3.000
+  166     15.000    -10.392      3.000
+  167     16.500     -7.794      3.000
+  168     18.000     -5.196      3.000
+  169     19.500     -2.598      3.000
+  170     24.000      0.000      3.000
+  171     22.500      2.598      3.000
+  172     21.000      5.196      3.000
+  173     19.500      7.794      3.000
+  174     18.000     10.392      3.000
+  175     16.500     12.990      3.000
+  176     15.000     15.588      3.000
+  177     13.500     18.187      3.000
+  178     12.000     20.785      3.000
+  179      9.000     20.785      3.000
+  180      6.000     20.785      3.000
+  181      3.000     20.785      3.000
+  182      0.000     20.785      3.000
+  183     -3.000     20.785      3.000
+  184     -6.000     20.785      3.000
+  185     -9.000     20.785      3.000
+  186    -12.000     20.785      3.000
+  187    -13.500     18.187      3.000
+  188    -15.000     15.588      3.000
+  189    -16.500     12.990      3.000
+  190    -18.000     10.392      3.000
+  191    -19.500      7.794      3.000
+  192    -21.000      5.196      3.000
+  193    -22.500      2.598      3.000
+  194    -24.000      0.000      3.000
+  195    -22.500     -2.598      3.000
+  196    -21.000     -5.196      3.000
+  197    -19.500     -7.794      3.000
+  198    -18.000    -10.392      3.000
+  199    -16.500    -12.990      3.000
+  200    -15.000    -15.588      3.000
+  201    -13.500    -18.187      3.000
+  202    -12.000    -20.785      3.000
+  203     -9.000    -20.785      3.000
+  204     -6.000    -20.785      3.000
+  205     -3.000    -20.785      3.000
+  206      0.000    -20.785      3.000
+  207      3.000    -20.785      3.000
+  208      6.000    -20.785      3.000
+  209      9.000    -20.785      3.000
+  210     12.000    -20.785      3.000
+  211     13.500    -18.187      3.000
+  212     15.000    -15.588      3.000
+  213     16.500    -12.990      3.000
+  214     18.000    -10.392      3.000
+  215     19.500     -7.794      3.000
+  216     21.000     -5.196      3.000
+  217     22.500     -2.598      3.000
+  218     27.000      0.000      3.000
+  219     25.500      2.598      3.000
+  220     24.000      5.196      3.000
+  221     22.500      7.794      3.000
+  222     21.000     10.392      3.000
+  223     19.500     12.990      3.000
+  224     18.000     15.588      3.000
+  225     16.500     18.187      3.000
+  226     15.000     20.785      3.000
+  227     13.500     23.383      3.000
+  228     10.500     23.383      3.000
+  229      7.500     23.383      3.000
+  230      4.500     23.383      3.000
+  231      1.500     23.383      3.000
+  232     -1.500     23.383      3.000
+  233     -4.500     23.383      3.000
+  234     -7.500     23.383      3.000
+  235    -10.500     23.383      3.000
+  236    -13.500     23.383      3.000
+  237    -15.000     20.785      3.000
+  238    -16.500     18.187      3.000
+  239    -18.000     15.588      3.000
+  240    -19.500     12.990      3.000
+  241    -21.000     10.392      3.000
+  242    -22.500      7.794      3.000
+  243    -24.000      5.196      3.000
+  244    -25.500      2.598      3.000
+  245    -27.000      0.000      3.000
+  246    -25.500     -2.598      3.000
+  247    -24.000     -5.196      3.000
+  248    -22.500     -7.794      3.000
+  249    -21.000    -10.392      3.000
+  250    -19.500    -12.990      3.000
+  251    -18.000    -15.588      3.000
+  252    -16.500    -18.187      3.000
+  253    -15.000    -20.785      3.000
+  254    -13.500    -23.383      3.000
+  255    -10.500    -23.383      3.000
+  256     -7.500    -23.383      3.000
+  257     -4.500    -23.383      3.000
+  258     -1.500    -23.383      3.000
+  259      1.500    -23.383      3.000
+  260      4.500    -23.383      3.000
+  261      7.500    -23.383      3.000
+  262     10.500    -23.383      3.000
+  263     13.500    -23.383      3.000
+  264     15.000    -20.785      3.000
+  265     16.500    -18.187      3.000
+  266     18.000    -15.588      3.000
+  267     19.500    -12.990      3.000
+  268     21.000    -10.392      3.000
+  269     22.500     -7.794      3.000
+  270     24.000     -5.196      3.000
+  271     25.500     -2.598      3.000
+  272     30.000      0.000      3.000
+  273     28.500      2.598      3.000
+  274     27.000      5.196      3.000
+  275     25.500      7.794      3.000
+  276     24.000     10.392      3.000
+  277     22.500     12.990      3.000
+  278     21.000     15.588      3.000
+  279     19.500     18.187      3.000
+  280     18.000     20.785      3.000
+  281     16.500     23.383      3.000
+  282     15.000     25.981      3.000
+  283     12.000     25.981      3.000
+  284      9.000     25.981      3.000
+  285      6.000     25.981      3.000
+  286      3.000     25.981      3.000
+  287      0.000     25.981      3.000
+  288     -3.000     25.981      3.000
+  289     -6.000     25.981      3.000
+  290     -9.000     25.981      3.000
+  291    -12.000     25.981      3.000
+  292    -15.000     25.981      3.000
+  293    -16.500     23.383      3.000
+  294    -18.000     20.785      3.000
+  295    -19.500     18.187      3.000
+  296    -21.000     15.588      3.000
+  297    -22.500     12.990      3.000
+  298    -24.000     10.392      3.000
+  299    -25.500      7.794      3.000
+  300    -27.000      5.196      3.000
+  301    -28.500      2.598      3.000
+  302    -30.000      0.000      3.000
+  303    -28.500     -2.598      3.000
+  304    -27.000     -5.196      3.000
+  305    -25.500     -7.794      3.000
+  306    -24.000    -10.392      3.000
+  307    -22.500    -12.990      3.000
+  308    -21.000    -15.588      3.000
+  309    -19.500    -18.187      3.000
+  310    -18.000    -20.785      3.000
+  311    -16.500    -23.383      3.000
+  312    -15.000    -25.981      3.000
+  313    -12.000    -25.981      3.000
+  314     -9.000    -25.981      3.000
+  315     -6.000    -25.981      3.000
+  316     -3.000    -25.981      3.000
+  317      0.000    -25.981      3.000
+  318      3.000    -25.981      3.000
+  319      6.000    -25.981      3.000
+  320      9.000    -25.981      3.000
+  321     12.000    -25.981      3.000
+  322     15.000    -25.981      3.000
+  323     16.500    -23.383      3.000
+  324     18.000    -20.785      3.000
+  325     19.500    -18.187      3.000
+  326     21.000    -15.588      3.000
+  327     22.500    -12.990      3.000
+  328     24.000    -10.392      3.000
+  329     25.500     -7.794      3.000
+  330     27.000     -5.196      3.000
+  331     28.500     -2.598      3.000
+  332     33.000      0.000      3.000
+  333     31.500      2.598      3.000
+  334     30.000      5.196      3.000
+  335     28.500      7.794      3.000
+  336     27.000     10.392      3.000
+  337     25.500     12.990      3.000
+  338     24.000     15.588      3.000
+  339     22.500     18.187      3.000
+  340     21.000     20.785      3.000
+  341     19.500     23.383      3.000
+  342     18.000     25.981      3.000
+  343     16.500     28.579      3.000
+  344     13.500     28.579      3.000
+  345     10.500     28.579      3.000
+  346      7.500     28.579      3.000
+  347      4.500     28.579      3.000
+  348      1.500     28.579      3.000
+  349     -1.500     28.579      3.000
+  350     -4.500     28.579      3.000
+  351     -7.500     28.579      3.000
+  352    -10.500     28.579      3.000
+  353    -13.500     28.579      3.000
+  354    -16.500     28.579      3.000
+  355    -18.000     25.981      3.000
+  356    -19.500     23.383      3.000
+  357    -21.000     20.785      3.000
+  358    -22.500     18.187      3.000
+  359    -24.000     15.588      3.000
+  360    -25.500     12.990      3.000
+  361    -27.000     10.392      3.000
+  362    -28.500      7.794      3.000
+  363    -30.000      5.196      3.000
+  364    -31.500      2.598      3.000
+  365    -33.000      0.000      3.000
+  366    -31.500     -2.598      3.000
+  367    -30.000     -5.196      3.000
+  368    -28.500     -7.794      3.000
+  369    -27.000    -10.392      3.000
+  370    -25.500    -12.990      3.000
+  371    -24.000    -15.588      3.000
+  372    -22.500    -18.187      3.000
+  373    -21.000    -20.785      3.000
+  374    -19.500    -23.383      3.000
+  375    -18.000    -25.981      3.000
+  376    -16.500    -28.579      3.000
+  377    -13.500    -28.579      3.000
+  378    -10.500    -28.579      3.000
+  379     -7.500    -28.579      3.000
+  380     -4.500    -28.579      3.000
+  381     -1.500    -28.579      3.000
+  382      1.500    -28.579      3.000
+  383      4.500    -28.579      3.000
+  384      7.500    -28.579      3.000
+  385     10.500    -28.579      3.000
+  386     13.500    -28.579      3.000
+  387     16.500    -28.579      3.000
+  388     18.000    -25.981      3.000
+  389     19.500    -23.383      3.000
+  390     21.000    -20.785      3.000
+  391     22.500    -18.187      3.000
+  392     24.000    -15.588      3.000
+  393     25.500    -12.990      3.000
+  394     27.000    -10.392      3.000
+  395     28.500     -7.794      3.000
+  396     30.000     -5.196      3.000
+  397     31.500     -2.598      3.000
+  398     36.000      3.464      6.000
+  399     33.000      8.660      6.000
+  400     30.000     13.856      6.000
+  401     27.000     19.053      6.000
+  402     24.000     24.249      6.000
+  403     21.000     29.445      6.000
+  404     15.000     32.909      6.000
+  405      9.000     32.909      6.000
+  406      3.000     32.909      6.000
+  407     -3.000     32.909      6.000
+  408     -9.000     32.909      6.000
+  409    -15.000     32.909      6.000
+  410    -21.000     29.445      6.000
+  411    -24.000     24.249      6.000
+  412    -27.000     19.053      6.000
+  413    -30.000     13.856      6.000
+  414    -33.000      8.660      6.000
+  415    -36.000      3.464      6.000
+  416    -36.000     -3.464      6.000
+  417    -33.000     -8.660      6.000
+  418    -30.000    -13.856      6.000
+  419    -27.000    -19.053      6.000
+  420    -24.000    -24.249      6.000
+  421    -21.000    -29.445      6.000
+  422    -15.000    -32.909      6.000
+  423     -9.000    -32.909      6.000
+  424     -3.000    -32.909      6.000
+  425      3.000    -32.909      6.000
+  426      9.000    -32.909      6.000
+  427     15.000    -32.909      6.000
+  428     21.000    -29.445      6.000
+  429     24.000    -24.249      6.000
+  430     27.000    -19.053      6.000
+  431     30.000    -13.856      6.000
+  432     33.000     -8.660      6.000
+  433     36.000     -3.464      6.000
+  434     42.000      3.464      6.000
+  435     39.000      8.660      6.000
+  436     36.000     13.856      6.000
+  437     33.000     19.053      6.000
+  438     30.000     24.249      6.000
+  439     27.000     29.445      6.000
+  440     24.000     34.641      6.000
+  441     18.000     38.105      6.000
+  442     12.000     38.105      6.000
+  443      6.000     38.105      6.000
+  444      0.000     38.105      6.000
+  445     -6.000     38.105      6.000
+  446    -12.000     38.105      6.000
+  447    -18.000     38.105      6.000
+  448    -24.000     34.641      6.000
+  449    -27.000     29.445      6.000
+  450    -30.000     24.249      6.000
+  451    -33.000     19.053      6.000
+  452    -36.000     13.856      6.000
+  453    -39.000      8.660      6.000
+  454    -42.000      3.464      6.000
+  455    -42.000     -3.464      6.000
+  456    -39.000     -8.660      6.000
+  457    -36.000    -13.856      6.000
+  458    -33.000    -19.053      6.000
+  459    -30.000    -24.249      6.000
+  460    -27.000    -29.445      6.000
+  461    -24.000    -34.641      6.000
+  462    -18.000    -38.105      6.000
+  463    -12.000    -38.105      6.000
+  464     -6.000    -38.105      6.000
+  465      0.000    -38.105      6.000
+  466      6.000    -38.105      6.000
+  467     12.000    -38.105      6.000
+  468     18.000    -38.105      6.000
+  469     24.000    -34.641      6.000
+  470     27.000    -29.445      6.000
+  471     30.000    -24.249      6.000
+  472     33.000    -19.053      6.000
+  473     36.000    -13.856      6.000
+  474     39.000     -8.660      6.000
+  475     42.000     -3.464      6.000
+  476     48.000      3.464      6.000
+  477     45.000      8.660      6.000
+  478     42.000     13.856      6.000
+  479     39.000     19.053      6.000
+  480     36.000     24.249      6.000
+  481     33.000     29.445      6.000
+  482     30.000     34.641      6.000
+  483     27.000     39.837      6.000
+  484     21.000     43.301      6.000
+  485     15.000     43.301      6.000
+  486      9.000     43.301      6.000
+  487      3.000     43.301      6.000
+  488     -3.000     43.301      6.000
+  489     -9.000     43.301      6.000
+  490    -15.000     43.301      6.000
+  491    -21.000     43.301      6.000
+  492    -27.000     39.837      6.000
+  493    -30.000     34.641      6.000
+  494    -33.000     29.445      6.000
+  495    -36.000     24.249      6.000
+  496    -39.000     19.053      6.000
+  497    -42.000     13.856      6.000
+  498    -45.000      8.660      6.000
+  499    -48.000      3.464      6.000
+  500    -48.000     -3.464      6.000
+  501    -45.000     -8.660      6.000
+  502    -42.000    -13.856      6.000
+  503    -39.000    -19.053      6.000
+  504    -36.000    -24.249      6.000
+  505    -33.000    -29.445      6.000
+  506    -30.000    -34.641      6.000
+  507    -27.000    -39.837      6.000
+  508    -21.000    -43.301      6.000
+  509    -15.000    -43.301      6.000
+  510     -9.000    -43.301      6.000
+  511     -3.000    -43.301      6.000
+  512      3.000    -43.301      6.000
+  513      9.000    -43.301      6.000
+  514     15.000    -43.301      6.000
+  515     21.000    -43.301      6.000
+  516     27.000    -39.837      6.000
+  517     30.000    -34.641      6.000
+  518     33.000    -29.445      6.000
+  519     36.000    -24.249      6.000
+  520     39.000    -19.053      6.000
+  521     42.000    -13.856      6.000
+  522     45.000     -8.660      6.000
+  523     48.000     -3.464      6.000
+  524     54.000      3.464      6.000
+  525     51.000      8.660      6.000
+  526     48.000     13.856      6.000
+  527     45.000     19.053      6.000
+  528     42.000     24.249      6.000
+  529     39.000     29.445      6.000
+  530     36.000     34.641      6.000
+  531     33.000     39.837      6.000
+  532     30.000     45.033      6.000
+  533     24.000     48.497      6.000
+  534     18.000     48.497      6.000
+  535     12.000     48.497      6.000
+  536      6.000     48.497      6.000
+  537      0.000     48.497      6.000
+  538     -6.000     48.497      6.000
+  539    -12.000     48.497      6.000
+  540    -18.000     48.497      6.000
+  541    -24.000     48.497      6.000
+  542    -30.000     45.033      6.000
+  543    -33.000     39.837      6.000
+  544    -36.000     34.641      6.000
+  545    -39.000     29.445      6.000
+  546    -42.000     24.249      6.000
+  547    -45.000     19.053      6.000
+  548    -48.000     13.856      6.000
+  549    -51.000      8.660      6.000
+  550    -54.000      3.464      6.000
+  551    -54.000     -3.464      6.000
+  552    -51.000     -8.660      6.000
+  553    -48.000    -13.856      6.000
+  554    -45.000    -19.053      6.000
+  555    -42.000    -24.249      6.000
+  556    -39.000    -29.445      6.000
+  557    -36.000    -34.641      6.000
+  558    -33.000    -39.837      6.000
+  559    -30.000    -45.033      6.000
+  560    -24.000    -48.497      6.000
+  561    -18.000    -48.497      6.000
+  562    -12.000    -48.497      6.000
+  563     -6.000    -48.497      6.000
+  564      0.000    -48.497      6.000
+  565      6.000    -48.497      6.000
+  566     12.000    -48.497      6.000
+  567     18.000    -48.497      6.000
+  568     24.000    -48.497      6.000
+  569     30.000    -45.033      6.000
+  570     33.000    -39.837      6.000
+  571     36.000    -34.641      6.000
+  572     39.000    -29.445      6.000
+  573     42.000    -24.249      6.000
+  574     45.000    -19.053      6.000
+  575     48.000    -13.856      6.000
+  576     51.000     -8.660      6.000
+  577     54.000     -3.464      6.000
Index: /branches/start/MagicSoft/Simulation/Detector/TimeCam/timecam-v.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/TimeCam/timecam-v.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/TimeCam/timecam-v.h	(revision 4308)
@@ -0,0 +1,12 @@
+#ifndef VERSION 
+
+#define PROGRAM camera
+#define VERSION 0.2
+
+#define GLUE_prep(x,y) #x" "#y
+#define GLUE_postp(x,y) GLUE_prep(x,y)
+
+const char SIGNATURE[] = GLUE_postp( PROGRAM, VERSION );
+
+#endif // ! VERSION
+
Index: /branches/start/MagicSoft/Simulation/Detector/TimeCam/timecam.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/TimeCam/timecam.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/TimeCam/timecam.cxx	(revision 4308)
@@ -0,0 +1,2879 @@
+//!/////////////////////////////////////////////////////////////////////
+//
+// camera                
+//
+// @file        camera.cxx
+// @title       Camera simulation
+// @subtitle    Code for the simulation of the camera phase
+// @desc        Code for the simulation of the camera of CT1 and MAGIC
+// @author      J C Gonzalez
+// @email       gonzalez@mppmu.mpg.de
+// @date        Thu May  7 16:24:22 1998
+//
+//----------------------------------------------------------------------
+//
+// Created: Thu May  7 16:24:22 1998
+// Author:  Jose Carlos Gonzalez
+// Purpose: Program for reflector simulation
+// Notes:   See files README for details
+//    
+//----------------------------------------------------------------------
+//
+// $RCSfile: timecam.cxx,v $
+// $Revision: 1.1.1.1 $
+// $Author: harald $ 
+// $Date: 2000-02-08 15:13:44 $
+//
+////////////////////////////////////////////////////////////////////////
+// @tableofcontents @coverpage
+
+//=-----------------------------------------------------------
+//!@section Source code of |camera.cxx|.
+
+/*!@"
+
+  In this section we show the (commented) code of the program for the
+  read-out of the output files generated by the simulator of the
+  reflector, |reflector 0.3|.
+
+  @"*/
+
+//=-----------------------------------------------------------
+//!@subsection Includes and Global variables definition.
+
+//!@{
+
+// includes for ROOT
+// BEWARE: the order matters!
+
+#include "TROOT.h"
+
+#include "TApplication.h"
+
+#include "TFile.h"
+#include "TTree.h"
+#include "TBranch.h"
+#include "TCanvas.h"
+
+#include "MTrigger.hxx"
+#include "MFadc.hxx"
+
+#include "MRawEvt.h"
+#include "MMcEvt.h"
+#include "MMcTrig.hxx"
+
+/*!@" 
+
+  All the defines are located in the file |camera.h|.
+
+  @"*/
+
+#include "timecam.h"
+//!@}
+
+/*!@"
+
+  The following set of flags are used in time of compilation. They do
+  not affect directly the behaviour of the program at run-time
+  (though, of course, if you disconnected the option for
+  implementation of the Trigger logic, you will not be able to use any
+  trigger at all. The 'default' values mean default in the sense of
+  what you got from the server when you obtained this program.
+
+  @"*/
+
+//!@{
+
+// flag for debugging (default: OFF )
+#define __DEBUG__
+#undef  __DEBUG__
+
+// flag for NNT in CT1 camera (default: ON )
+#undef  __CT1_NO_NEIGHBOURS__
+#define __CT1_NO_NEIGHBOURS__
+
+// flag for calculation of NSB (default: ON )
+#undef  __NSB__
+#define __NSB__
+
+// flag for calculation of QE for pixels (default: ON )
+#undef  __QE__
+#define __QE__
+
+
+// flag for implementation of DETAIL_TRIGGER (default: ON )
+//
+//      This is the new implementation of Trigger studies
+//      It relies on a better simulation of the time stucture 
+//      of the PhotoMultiplier. For more details see the 
+//      documentation of the --> class MTrigger <-- 
+#undef  __DETAIL_TRIGGER__
+#define __DETAIL_TRIGGER__
+
+// flag for implementation of TRIGGER (default: ON )
+#define __TRIGGER__
+#undef  __TRIGGER__
+
+// flag for implementation of Tail-Cut (default: ON )
+#define __TAILCUT__
+#undef  __TAILCUT__
+
+
+// flag for calculation of islands stat. (default: ON )
+#define __ISLANDS__
+#undef  __ISLANDS__
+
+// flag for calculation of image parameters (default: ON )
+#define __MOMENTS__
+#undef  __MOMENTS__
+
+// flag for ROOT  (default: ON )
+#undef  __ROOT__
+#define __ROOT__
+
+// flag for INTERAKTIV  (default: OFF )
+#undef  __INTERAKTIV__
+#define __INTERAKTIV__
+//!@}
+
+//=-----------------------------------------------------------
+//!@subsection Definition of global variables.
+
+/*!@"
+
+  Now we define some global variables with data about the telescope, 
+  such as "focal distance",  number of pixels/mirrors, 
+  "size of the camera", and so on.
+
+  @"*/
+
+/*!@"
+
+  Depending on the telescope we are using (CT1 or MAGIC), the 
+  information stored in the definition file is different.
+  The variable |ct_Type| has the value 0 when we use
+  CT1, and 1 when we use MAGIC.
+
+  @"*/
+
+//!@{
+static int   ct_Type;         //@< Type of telescope: 0:CT1, 1:MAGIC
+//!@}
+
+/*!@"
+
+  And this is the information about the whole telescope.
+
+  @"*/
+
+//!@{
+
+// parameters of the CT (from the CT definition file) 
+
+////@: Focal distances [cm]
+//static float *ct_Focal;       
+
+//@: Mean Focal distances [cm]
+static float ct_Focal_mean;   
+
+//@: STDev. Focal distances [cm]
+static float ct_Focal_std;    
+
+//@: Mean Point Spread function [cm]
+static float ct_PSpread_mean; 
+
+//@: STDev. Point Spread function [cm]
+static float ct_PSpread_std;  
+
+//@: STDev. Adjustmente deviation [cm]
+static float ct_Adjustment_std; 
+
+//@: Radius of the Black Spot in mirror [cm]
+static float ct_BlackSpot_rad;
+
+//@: Radius of one mirror [cm]
+static float ct_RMirror;      
+
+//@: Camera width [cm]
+static float ct_CameraWidth;  
+
+//@: Pixel width [cm]
+static float ct_PixelWidth;   
+
+//@: ct_PixelWidth_corner_2_corner = ct_PixelWidth / cos(60)
+static float ct_PixelWidth_corner_2_corner; 
+
+//@: ct_PixelWidth_corner_2_corner / 2
+static float ct_PixelWidth_corner_2_corner_half; 
+
+//@: Number of mirrors
+static int ct_NMirrors = 0;   
+
+//@: Number of pixels
+static int ct_NPixels;        
+
+//@: Number of pixels
+static int ct_NCentralPixels;        
+
+//@: Number of pixels
+static int ct_NGapPixels;        
+
+//@: ct_Apot = ct_PixelWidth / 2
+static float ct_Apot;          
+
+//@: ct_2Apot = 2 * ct_Apot = ct_PixelWidth 
+static float ct_2Apot;         
+
+//@: name of the CT definition file to use
+static char ct_filename[256];  
+
+//@: list of showers to be skipped
+static int *Skip;
+
+//@: number of showers to be skipped
+static int nSkip=0;
+
+//@: flag: TRUE: data come from STDIN; FALSE: from file
+static int Data_From_STDIN = FALSE;
+
+//@: flag: TRUE: write all images to output; FALSE: only triggered showers
+static int Write_All_Images = FALSE;
+
+static int Write_McEvt  = TRUE;
+static int Write_McTrig = FALSE;
+static int Write_RawEvt = FALSE;
+
+//@: flag: TRUE: selection on the energy
+static int Select_Energy = TRUE;
+
+//@: Lower edge of the selected energy range (in GeV)
+static float Select_Energy_le = 0.0; 
+
+//@: Upper edge of the selected energy range (in GeV)
+static float Select_Energy_ue = 100000.0; 
+
+//!@}
+
+/*!@"
+
+  The following double-pointer is a 2-dimensional table with information 
+  about each pixel. The routine read_pixels will generate
+  the information for filling it using igen_pixel_coordinates().
+
+  @"*/
+
+//!@{
+// Pointer to a tables/Arrays with information about the pixels
+// and data stored on them with information about the pixels
+
+//@: table for IJ sys.
+static float pixels[PIX_ARRAY_SIDE][PIX_ARRAY_SIDE][4];   
+
+//@: coordinates x,y for each pixel
+static float **pixary;  
+
+//@: indexes of pixels neighbours of a given one
+static int **pixneig;   
+
+//@: number of neighbours a pixel have
+static int *npixneig;   
+
+//@: contents of the pixels (ph.e.)
+static float *fnpix;    
+
+//@: contents of the pixels (ph.e.) after cleanning
+static float *fnpixclean; 
+
+//!@}
+
+/*!@"
+
+  The following double-pointer is a 2-dimensional table with the
+  Quantum Efficiency @$QE@$ of each pixel in the camera, as a function
+  of the wavelength @$\lambda@$. The routine |read_pixels()| will read
+  also this information from the file |qe.dat|.
+
+  @"*/
+
+//!@{
+// Pointer to a table with QE, number of datapoints, and wavelengths
+
+//@: table of QE
+static float ***QE;
+
+//@: number of datapoints for the QE curve
+static int pointsQE;
+
+//@: table of QE
+static float *QElambda;
+//!@}
+
+/*!@"
+
+  The following double-pointer is a 2-dimensional table with information 
+  about each mirror in the dish. The routine |read_ct_file()| will read
+  this information from the CT definition file.
+
+  @"*/
+
+//!@{
+// Pointer to a table with the following info.:
+
+static float **ct_data;       
+
+/*
+ *  TYPE=0  (CT1)
+ *      i   s   rho   theta   x   y   z   thetan  phin  xn   yn   zn
+ * 
+ *       i : number of the mirror
+ *       s : arc length [cm]
+ *     rho : polar rho of the position of the center of the mirror [cm]
+ *   theta : polar angle of the position of the center of the mirror [cm]
+ *       x : x coordinate of the center of the mirror [cm]
+ *       y : y coordinate of the center of the mirror [cm]
+ *       z : z coordinate of the center of the mirror [cm]
+ *  thetan : polar theta angle of the direction where the mirror points to
+ *    phin : polar phi angle of the direction where the mirror points to
+ *      xn : xn coordinate of the normal vector in the center (normalized)
+ *      yn : yn coordinate of the normal vector in the center (normalized)
+ *      zn : zn coordinate of the normal vector in the center (normalized)
+ * 
+ *  TYPE=1  (MAGIC)
+ *      i  f   sx   sy   x   y   z   thetan  phin 
+ * 
+ *       i : number of the mirror
+ *       f : focal distance of that mirror
+ *      sx : curvilinear coordinate of mirror's center in X[cm]
+ *      sy : curvilinear coordinate of mirror's center in X[cm]
+ *       x : x coordinate of the center of the mirror [cm]
+ *       y : y coordinate of the center of the mirror [cm]
+ *       z : z coordinate of the center of the mirror [cm]
+ *  thetan : polar theta angle of the direction where the mirror points to
+ *    phin : polar phi angle of the direction where the mirror points to
+ *      xn : xn coordinate of the normal vector in the center (normalized)
+ *      yn : yn coordinate of the normal vector in the center (normalized)
+ *      zn : zn coordinate of the normal vector in the center (normalized)
+ */
+//!@} 
+
+/*!@"
+
+  We define a table into where random numbers will be stored. 
+  The routines used for random number generation are provided by
+  |RANLIB| (taken from NETLIB, |www.netlib.org|), and by 
+  the routine |double drand48(void)| (prototype defined in 
+  |stdlib.h|) through the macro |RandomNumber| defined in 
+  |camera.h|.
+
+  @"*/
+
+//!@{
+// table of random numbers
+
+// (unused)
+//static double RandomNumbers[500];  
+//!@}
+
+/*!@"
+
+  The following is a variable to count the number of Cphotons
+  in the different steps of the simulation. 
+  The definition is as follows:
+  @[
+  \mbox{CountCphotons}[ \mbox{FILTER} ] \equiv
+  \mbox{\it Number of photons after the filter} \mbox{FILTER}
+  @]
+  The filters are defined and can be found in the file |camera.h|.
+
+  @"*/
+
+//!@{
+// vector to count photons at any given step of the simulation
+
+//static int CountCphotons[10];  
+//!@}
+
+/*!@"
+
+  The following are the set of parameters calculated for each image.
+  The routines for their calculations are in |moments.cxx|.
+
+  @"*/
+
+//!@{
+// parameters of the images
+
+//static Moments_Info *moments_ptr; 
+//static LenWid_Info *lenwid_ptr;
+
+//static float *maxs;
+//static int *nmaxs;
+//static float length, width, dist, xdist, azw, miss, alpha, *conc; 
+//static float phiasym, asymx, asymy;
+//static float charge, smax, maxtrigthr_phe;
+
+//!@}
+
+extern char FileName[];
+
+
+//=-----------------------------------------------------------
+// @subsection Main program.
+
+//!@{
+
+//++++++++++++++++++++++++++++++++++++++++
+// MAIN PROGRAM 
+//----------------------------------------
+
+int main(int argc, char **argv) 
+{
+  //!@' @#### Definition of variables.
+  //@'
+
+  char inname[256];           //@< input file name
+  char rootname[256] ;        //@< ROOT file name 
+
+  char parname[256];          //@< parameters file name
+
+  char sign[20];              //@< initialize sign
+
+  char flag[SIZE_OF_FLAGS + 1];  //@< flags in the .rfl file
+
+  ifstream inputfile;         //@< stream for the input file
+
+  MCEventHeader mcevth;       //@< Event Header class (MC)
+  MCCphoton cphoton;          //@< Cherenkov Photon class (MC)
+
+  float thetaCT, phiCT;       //@< parameters of a given shower
+  float thetashw, phishw;     //@< parameters of a given shower
+  float coreD, coreX, coreY;  //@< core position and distance
+  float impactD;              //@< impact parameter
+  float l1, m1, n1;           //@< auxiliary variables
+  float l2, m2, n2;           //@< auxiliary variables
+  float num, den;             //@< auxiliary variables
+
+  int nshow=0;                //@< partial number of shower in a given run
+  int ntshow=0;               //@< total number of showers
+  int ncph_in=0;              //@< number of (input) photons in one shower 
+  int ntcph_in=0;             //@< total number of input photons
+
+  int ncph_out=0;             //@< number of (output) photons in one shower
+  int ntcph_out=0;            //@< total number of output photons
+
+  int i, ii, k;               //@< simple counters
+
+  float t_ini;                //@< time of the first Cphoton read in
+  float t;                    //@< time for a single photon
+  float t_first ;             //@< time of the first cerenkov particle reaching the ground 
+  float t_last  ;             //@< time of the last cerenkov particle reaching the ground 
+
+  int   t_chan ;              //@< the bin (channel) in time of a single photon
+  
+  int   startchan ;           //@< the first bin with entries in the time slices
+
+  float cx, cy, ci, cj;       //@< coordinates in the XY and IJ systems
+  int ici, icj, iici, iicj;   //@< coordinates in the IJ (integers)
+
+  int nPMT;                   //@< number of pixel
+
+  float wl, last_wl;          //@< wavelength of the photon
+  float qe;                   //@< quantum efficiency
+  float **qeptr;
+
+  int simulateNSB;            //@< Will we simulate NSB?
+  float meanNSB;              //@< NSB mean value (per pixel and ns)
+  float meanPois;             //@< NSB mean value for simulation
+  float timeNSB ;             //@< time of NSB photon
+
+  int nIslandsCut;            //@< Islands Cut value
+  int countIslands;           //@< Will we count the islands?
+  int anaPixels;
+    
+  float fCorrection;          //@< Factor to apply to pixel values (def. 1.)
+
+  //  int ntrigger = 0;           //@< number of triggers in the whole file
+
+  float plateScale_cm2deg;    //@< plate scale (deg/cm)
+  float degTriggerZone;       //@< trigger area in the camera (radius, in deg.)
+
+  float dtheta, dphi;         //@< deviations of CT from shower axis
+
+  int still_in_loop = FALSE;
+
+  char    Signature[20];
+
+  float *image_data;
+  int nvar; 
+  // int  hidt;
+
+  struct camera cam; // structure holding the camera definition
+
+  //!@' @#### Definition of variables for |getopt()|.
+  //@'
+
+  int ch, errflg = 0;          //@< used by getopt
+
+  /*!@'
+
+    @#### Beginning of the program.
+    
+    We start with the main program. First we (could) make some
+    presentation, and follows the reading of the parameters file (now
+    from the |stdin|), the reading of the CT parameters file, and the
+    creation of the output file, where the processed data will be
+    stored.
+
+  */
+
+  //++
+  // START
+  //--
+
+  // make unbuffered output
+
+  cout.setf ( ios::stdio );
+
+  // parse command line options (see reflector.h)
+  
+  parname[0] = '\0';
+
+  optarg = NULL;
+  while ( !errflg && ((ch = getopt(argc, argv, COMMAND_LINE_OPTIONS)) != -1) )
+    switch (ch) {
+    case 'f':
+      strcpy(parname, optarg);
+      break;
+    case 'h':
+      usage();
+      break;
+    default :
+      errflg++;
+    }
+  
+  // show help if error
+  
+  if ( errflg>0 )
+    usage();
+
+  // make some sort of presentation
+
+  present();
+  
+  // read parameters file
+
+  if ( strlen(parname) < 1 )
+    readparam(NULL);
+  else
+    readparam(parname);
+
+  // read data from file or from STDIN?
+
+  Data_From_STDIN = get_data_from_stdin();
+
+  // write all images, even those without trigger?
+
+  Write_All_Images = get_write_all_images();
+
+  Write_McEvt  = get_write_McEvt()  ; 
+  Write_McTrig = get_write_McTrig() ; 
+  Write_RawEvt = get_write_RawEvt() ; 
+
+  // get filenames
+
+  strcpy( inname, get_input_filename() );
+  strcpy( rootname, get_root_filename() );
+  strcpy( ct_filename, get_ct_filename() );
+
+  // get different parameters of the simulation
+
+  simulateNSB = get_nsb( &meanNSB );
+  countIslands = get_islands_cut( &nIslandsCut );
+
+  // get selections on the parameters
+  
+  Select_Energy = get_select_energy( &Select_Energy_le, &Select_Energy_ue);
+  
+  // log filenames information
+
+  log(SIGNATURE,
+      "%s:\n\t%20s:\t%s\n\t%20s:\t%s\n\t%20s:\t%s\n",
+      "Filenames",
+      "In", inname, 
+      "ROOT",  rootname, 
+      "CT", ct_filename);
+
+  
+  // log flags information
+
+  log(SIGNATURE,
+      "%s:\n\t%20s: %s\n\t%20s: %s\n",
+      "Flags",
+      "Data_From_STDIN",   ONoff(Data_From_STDIN),  
+      "Write_All_Images",  ONoff(Write_All_Images));
+
+
+  // log flags information
+
+  log(SIGNATURE,
+      "%s:\n\t%20s: %s\n\t%20s: %s\n\t%20s: %s\n",
+      "Root output",
+      "Write_McEvt",   ONoff(Write_McEvt),  
+      "Write_McTrig",  ONoff(Write_McTrig),  
+      "Write_RawEvt",  ONoff(Write_RawEvt));
+      
+  // log parameters information
+  
+  log(SIGNATURE,
+      "%s:\n\t%20s: %f %s\n\t%20s: %f %s\n",
+      "Parameters",
+      "NSB (phes/pixel)", meanNSB, ONoff(simulateNSB),
+      "i0 (Islands-cut)", nIslandsCut, ONoff(countIslands));
+  
+  // log selections
+  
+  log(SIGNATURE,
+      "%s:\n\t%20s: %s  (%f:%f)\n",
+      "Selections:",
+      "Energy", ONoff(Select_Energy), Select_Energy_le, Select_Energy_ue);
+  
+  // set all random numbers seeds
+
+  setall( get_seeds(0), get_seeds(1) );
+
+  // get list of showers to evt. skip
+
+  nSkip = get_nskip_showers();
+
+  if (nSkip > 0) {
+    Skip = new int[ nSkip ]; 
+    get_skip_showers( Skip );
+
+    log(SIGNATURE, "There are some showers to skip:\n");
+    for (i=0; i<nSkip; ++i)
+      log(SIGNATURE, "\tshower # %d\n", Skip[i]);
+  }
+  
+  // read parameters from the ct.def file
+
+  read_ct_file();
+  
+  // read pixels data
+  
+  read_pixels(&cam);
+
+
+    Int_t Lev0, Lev1, Lev2 ; 
+
+  // initialise ROOT
+
+  TROOT simple("simple", "MAGIC Telescope Monte Carlo");
+
+
+#ifdef __DETAIL_TRIGGER__
+
+  MTrigger  Trigger ;         //@< A instance of the Class MTrigger 
+
+  MMcTrig *McTrig   = new MMcTrig() ; 
+
+
+  //  MFadc fadc ; 
+
+#endif // __DETAIL_TRIGGER__ 
+  
+#ifdef __ROOT__
+
+  MRawEvt *Evt   = new MRawEvt() ; 
+  MMcEvt  *McEvt = new MMcEvt (); 
+
+  // initalize the ROOT file 
+  //
+  //     erzeuge ein Root file 
+  //
+
+  TFile outfile ( rootname , "RECREATE" ) ; 
+
+  //
+  //      create a Tree for the Event data stream 
+  //
+
+  TTree EvtTree("EvtTree","Events of Run");
+
+  Int_t bsize=128000; Int_t split=1;
+
+  //
+  //    check which branches to create (you are able to controll this via
+  //    the input file
+  // 
+
+  if ( Write_McEvt == TRUE ) {
+    EvtTree.Branch("MMcEvt","MMcEvt", 
+		   &McEvt, bsize, split);
+  }
+
+  if ( Write_McTrig == TRUE ) {
+    EvtTree.Branch("MMcTrig","MMcTrig", 
+		   &McTrig, bsize, split);
+  }
+
+  if ( Write_RawEvt == TRUE ) {
+    EvtTree.Branch("MRawEvt","MRawEvt", 
+		   &Evt, bsize, split);
+  }
+
+
+  unsigned short ulli = 0 ; 
+
+#endif // __ROOT__
+
+#ifdef __NSB__
+  TRandom GenNSB ; 
+#endif // __NSB__
+
+#ifdef __INTERAKTIV__
+  TApplication theApp("App", &argc, argv);
+
+  if (gROOT->IsBatch()) {
+    fprintf(stderr, "%s: cannot run in batch mode\n", argv[0]);
+    //    return 1;
+  }
+#endif // __INTERAKTIV__
+  
+
+  // for safety and for dimensioning image_data: count the elements in the 
+  // diagnostic data branch
+
+  i=0;
+  i++; // "n"
+  i++; // "primary"
+  i++; // "energy"
+  i++; // "cored"
+  i++; // "impact"
+  i++; // "xcore"
+  i++; // "ycore"
+  i++; // "theta"
+  i++; // "phi"
+  i++; // "deviations"
+  i++; // "dtheta"
+  i++; // "dphi"
+  i++; // "trigger"
+  i++; // "ncphs"
+  i++; // "maxpassthr_phe"    
+  i++; // "nphes"
+  i++; // "nphes2"
+  i++; // "length"
+  i++; // "width"
+  i++; // "dist"
+  i++; // "xdist"
+  i++; // "azw"
+  i++; // "miss"
+  i++; // "alpha"
+  i++; // "conc2"
+  i++; // "conc3"
+  i++; // "conc4"
+  i++; // "conc5"
+  i++; // "conc6"
+  i++; // "conc7"
+  i++; // "conc8"
+  i++; // "conc9"
+  i++; // "conc10"
+  i++; // "asymx"
+  i++; // "asymy"
+  i++; // "phiasym"
+
+  nvar = i;
+  image_data = new float[nvar];
+
+  // set plate scale (deg/cm) and trigger area (deg)
+
+  plateScale_cm2deg = ( ct_Type == 0 ) ? (0.244/2.1) : 0.030952381;
+
+  if ( ! get_trigger_radius( &degTriggerZone ) )
+    degTriggerZone = ( ct_Type == 0 ) ? (5.0) : (5.0);
+
+  if ( ! get_correction( &fCorrection ) )
+    fCorrection = 1.0;
+
+  // number of pixels for parameters
+    
+  anaPixels = get_ana_pixels();
+  anaPixels = (anaPixels == -1) ? ct_NPixels : anaPixels;
+
+  // open input file if we DO read data from a file
+
+  if (! Data_From_STDIN) {  
+    log( SIGNATURE, "Openning input \"rfl\" file %s\n", inname );
+    inputfile.open( inname );
+    if ( inputfile.bad() ) 
+      error( SIGNATURE, "Cannot open input file: %s\n", inname );
+  }
+  
+  // get signature, and check it
+  // NOTE: this part repeats further down in the code;
+  // if you change something here you probably want to change it 
+  // there as well
+
+  strcpy(Signature, REFL_SIGNATURE);
+
+  strcpy(sign, Signature);
+
+  if ( Data_From_STDIN ) 
+    cin.read( (char *)sign, strlen(Signature));
+  else
+    inputfile.read( (char *)sign, strlen(Signature));
+
+  if (strcmp(sign, Signature) != 0) {
+    cerr << "ERROR: Signature of .rfl file is not correct\n";
+    cerr << '"' << sign << '"' << '\n';
+    cerr << "should be: " << Signature << '\n';
+    exit(1);
+  }
+
+  if ( Data_From_STDIN ) 
+    cin.read( (char *)sign, 1);
+  else
+    inputfile.read( (char *)sign, 1);
+
+  // initializes flag
+  
+  strcpy( flag, "                                        \0" );
+
+  // allocate space for PMTs numbers of pixels
+  
+  fnpix = new float [ ct_NPixels ];
+  fnpixclean = new float [ ct_NPixels ];
+
+#ifdef __ROOT__
+  
+  // construct MFADC
+
+#endif // __ROOT__ 
+
+  
+  //  moments_ptr = moments( anaPixels, NULL, NULL, 0.0, 1 );
+        
+  //!@' @#### Main loop.
+  //@'
+
+  //begin my version
+                                           
+  // get flag
+    
+  if ( Data_From_STDIN ) 
+    cin.read( flag, SIZE_OF_FLAGS );
+  else
+    inputfile.read ( flag, SIZE_OF_FLAGS );
+
+  // loop over the file
+
+  still_in_loop = TRUE;
+
+  while (
+         ((! Data_From_STDIN) && (! inputfile.eof()))
+         ||
+         (Data_From_STDIN && still_in_loop)
+         ) { 
+
+
+
+    // reading .rfl files 
+    if( isA( flag, FLAG_END_OF_FILE ) ){ // end of file
+	  log(SIGNATURE, "End of file . . .\n");
+	  still_in_loop  = FALSE;
+	  
+	  if ( Data_From_STDIN ) 
+	    cin.read( (char *)sign, 1);
+	  else
+	    inputfile.read( (char *)sign, 1);
+
+
+    }
+    else if(!isA( flag, FLAG_START_OF_RUN )){
+      error( SIGNATURE, "Expected start of run flag, but found: %s\n", flag );
+    }
+    else { // found start of run
+      nshow=0;
+      // read next flag
+
+      if ( Data_From_STDIN ) 
+	cin.read( flag, SIZE_OF_FLAGS );
+      else
+	inputfile.read ( flag, SIZE_OF_FLAGS );
+
+      while( isA( flag, FLAG_START_OF_EVENT   )){ // while there is a next event
+	/*!@'
+	  
+	  For the case  |FLAG\_START\_OF\_EVENT|,
+	  we read each Cherenkov photon, and follow these steps:
+	  
+	  @enumerate
+	  
+	  @- Transform XY-coordinates to IJ-coordinates.
+	  
+	  @- With this, we obtain the pixel where the photon hits.
+	  
+	  @- Use the wavelength $\lambda$ and the table of QE, and
+	  calculate the estimated (third order interpolated) quantum
+	  efficiency for that photon. The photon can be rejected.
+	  
+	  @- If accepted, then add to the pixel.
+	  
+	  @endenumerate
+	  
+	  In principle, we should stop here, and use another program to
+	  'smear' the image, to add the Night Sky Background, and to
+	  simulate the trigger logic, but we will make this program
+	  quick and dirty, and include all here.
+	  
+	  If we are reading PHE files, we jump to the point where the
+	  pixelization process already has finished.
+	  
+	*/
+	
+	++nshow;
+
+	if ( fmod ( nshow, 1000. ) == 0. ) 
+	  log(SIGNATURE, "Event %d(+%d)\n", nshow, ntshow);
+	
+
+	// get MCEventHeader
+	
+	if ( Data_From_STDIN ) 
+	  cin.read( (char*)&mcevth, mcevth.mysize() );
+	else
+	  mcevth.read( inputfile );
+	
+	// calculate core distance and impact parameter
+	
+	coreD = mcevth.get_core(&coreX, &coreY);
+	
+	// calculate impact parameter (shortest distance betwee the original
+	// trajectory of the primary (assumed shower-axis) and the
+	// direction where the telescope points to
+	// 
+	// we use the following equation, given that the shower core position
+	// is (x1,y1,z1)=(x,y,0),the  trajectory is given by (l1,m1,n1),
+	// and the telescope position and orientation are (x2,y2,z2)=(0,0,0)
+	// and (l2,m2,n2)
+	//
+	//               |                     |
+	//               | x1-x2  y1-y2  z1-z2 |
+	//               |                     |
+	//             + |   l1     m1     n1  |
+	//             - |                     |
+	//               |   l2     m2     n2  |
+	//               |                     |
+	// dist = ------------------------------------        ( > 0 )
+	//        [ |l1 m1|2   |m1 n1|2   |n1 l1|2 ]1/2
+	//        [ |     |  + |     |  + |     |  ]
+	//        [ |l2 m2|    |m2 n2|    |n2 l2|  ]
+	//
+	// playing a little bit, we get this reduced for in our case:
+	//
+	//
+	// dist = (- m2 n1 x + m1 n2 x + l2 n1 y - l1 n2 y - l2 m1 z + l1 m2 z) /
+	//         [(l2^2 (m1^2 + n1^2) + (m2 n1 - m1 n2)^2 - 
+	//          2 l1 l2 (m1 m2 + n1 n2) + l1^2 (m2^2 + n2^2) ] ^(1/2)
+	
+	// read the direction of the incoming shower
+	
+	thetashw = mcevth.get_theta();
+	phishw = mcevth.get_phi();
+	
+	// calculate vector for shower
+	
+	l1 = sin(thetashw)*cos(phishw);
+	m1 = sin(thetashw)*sin(phishw);
+	n1 = cos(thetashw);
+	
+	// read the deviation of the telescope with respect to the shower
+	
+	mcevth.get_deviations ( &thetaCT, &phiCT );
+	
+	if ( (thetaCT == 0.) && (phiCT == 0.) ) {
+	  
+	  // CT was looking to the source (both lines are parallel)
+	  // therefore, we calculate the impact parameter as the distance 
+	  // between the CT axis and the core position
+	  
+	  impactD = dist_r_P( 0., 0., 0., l1, m1, n1, coreX, coreY, 0. );
+	  
+	} else {
+	  
+	  // the shower comes off-axis
+	  
+	  // obtain with this the final direction of the CT
+	  
+	  thetaCT += thetashw;
+	  phiCT   += phishw;
+ 	  
+	  // calculate vector for telescope
+	  
+	  l2 = sin(thetaCT)*cos(phiCT);
+	  m2 = sin(thetaCT)*sin(phiCT);
+	  n2 = cos(thetaCT);
+	  
+	  num = (m1*n2*coreX - m2*n1*coreX + l2*n1*coreY - l1*n2*coreY);
+	  den = (SQR(l1*m2 - l2*m1) + 
+		 SQR(m1*n2 - m2*n1) + 
+		 SQR(n1*l2 - n2*l1));
+	  den = sqrt(den);
+	  
+	  impactD = fabs(num)/den;
+	  
+	  // fprintf(stderr, "[%f %f,%f %f] (%f %f %f) (%f %f %f) %f/%f = ",
+	  //         thetashw, phishw, thetaCT, phiCT, l1, m1, n1, l2, m2, n2,
+	  //         num, den);
+	  
+	}
+
+	// clear camera
+	
+	for ( i=0; i<ct_NPixels; ++i ){
+ 
+	  fnpix[i] = 0.0;
+	}
+
+#ifdef __ROOT__	
+	// clear the MFADC 
+	  
+#endif // __ROOT__ 
+
+	ntcph_in +=ncph_in;
+	ncph_in = 0;
+
+	ntcph_out +=ncph_out;
+	ncph_out = 0;
+
+
+#ifdef __DETAIL_TRIGGER__ 
+	//
+	//   clear Trigger 
+	//
+      
+	Trigger.Reset() ; 
+#endif // __DETAIL_TRIGGER__ 
+
+	//  fadc.Reset() ; 
+
+	//
+	//    Read out the first and last time of cerenkovs
+	//
+	
+	mcevth.get_times ( &t_first, &t_last ) ; 
+
+	//- - - - - - - - - - - - - - - - - - - - - - - - - 
+	// read photons and "map" them into the pixels
+	//--------------------------------------------------      
+	
+	// initialize CPhoton
+	
+	cphoton.fill(0., 0., 0., 0., 0., 0., 0., 0.);
+	
+	// read the photons data
+	
+	if ( Data_From_STDIN ) 
+	  cin.read( flag, SIZE_OF_FLAGS );
+	else
+	  inputfile.read ( flag, SIZE_OF_FLAGS );
+	 
+	// loop over the photons
+
+	t_ini = -99999;
+	
+	while ( !isA( flag, FLAG_END_OF_EVENT ) ) {
+	  
+	  memcpy( (char*)&cphoton, flag, SIZE_OF_FLAGS );
+
+	  if ( Data_From_STDIN ) 
+	    cin.read( ((char*)&cphoton)+SIZE_OF_FLAGS, cphoton.mysize()-SIZE_OF_FLAGS );
+	  else
+	    inputfile.read( ((char*)&cphoton)+SIZE_OF_FLAGS, cphoton.mysize()-SIZE_OF_FLAGS );
+	
+	  // increase number of photons
+	  
+	  ncph_in++;
+
+	  t = cphoton.get_t() ; 
+
+
+	  /*!@'
+	    
+	    @#### Pixelization (for the central pixels).
+	    
+	    In order to calculate the coordinates, we use the
+	    change of system described in the documentation
+	    of the source code of |pixel\_coord.cxx|.
+	    Then, we will use simply the matrix of change
+	    from one system to the other. In our case, this is:
+	    
+	    @[
+	    \begin{bmatrix}X\\Y\\\end{bmatrix}                                
+	    =
+	    \begin{bmatrix}
+	    1 & \cos(60^\circ)\\
+	    0 & \sin(60^\circ)\\
+	    \end{bmatrix}                                
+	    \begin{bmatrix}I\\J\\\end{bmatrix}                                
+	    @]
+	    
+	    and hence
+	    
+	    @[
+	    \begin{bmatrix}I\\J\\\end{bmatrix}                                
+	    =
+	    \begin{bmatrix}    
+	    1 & -\frac{\cos(60^\circ)}{\sin(60^\circ)}\\
+	    0 &\frac{1}{\sin(60^\circ)}\\
+	    \end{bmatrix}                                
+	    \begin{bmatrix}X\\Y\\\end{bmatrix}                                
+	    @]
+	    
+	  */
+	  
+	  //+++
+	  // Pixelization
+	  //---
+	  
+	  // calculate ij-coordinates
+	  
+	  // We use a change of coordinate system, using the following 
+	  // matrix of change (m^-1) (this is taken from Mathematica output).
+	  /*
+	   * In[1]:= m={{1,cos60},{0,sin60}}; MatrixForm[m]
+	   *
+	   * Out[1]//MatrixForm= 1       cos60
+	   * 
+	   *                     0       sin60
+	   * 
+	   * In[2]:= inv=Inverse[m]; MatrixForm[inv]
+	   * 
+	   * Out[2]//MatrixForm=              cos60
+	   *                                -(-----)
+	   *                       1          sin60
+	   * 
+	   *                                    1
+	   *                                  -----
+	   *                       0          sin60
+	   * 
+	   */
+	  
+	  // go to IJ-coordinate system
+	  
+	  cx = cphoton.get_x();
+	  cy = cphoton.get_y(); 
+	  
+	  // get wavelength
+	  
+	  last_wl = wl;
+	  wl = cphoton.get_wl();
+	  
+	  if ( wl < 1.0 )
+	    break;
+	  
+	  if ( (wl > 600.0) || (wl < 290.0) )
+	    break;
+	  
+	  // check if photon is inside outermost camera radius
+
+	  if(sqrt(cx*cx + cy*cy) > (cam.dxc[ct_NPixels-1]+1.5*ct_PixelWidth)){ 
+	   
+	    // read next CPhoton
+	    if ( Data_From_STDIN ) 
+	      cin.read( flag, SIZE_OF_FLAGS );
+	    else
+	      inputfile.read ( flag, SIZE_OF_FLAGS );
+	    
+	    // go to beginning of loop, the photon is lost
+	    continue;
+
+	  }
+
+	  // cout << "@#1 " << nshow << ' ' << cx << ' ' << cy << endl;
+	  
+	  ci = floor( (cx - cy*COS60/SIN60)/ ct_2Apot + 0.5);
+	  cj = floor( (cy/SIN60) / ct_2Apot + 0.5);
+	  
+	  ici = (int)(ci);
+	  icj = (int)(cj);
+	  
+	  iici = ici+PIX_ARRAY_HALF_SIDE;
+	  iicj = icj+PIX_ARRAY_HALF_SIDE;
+	  
+	  // is it inside the array?
+	  
+	  if ( (iici > 0) && (iici < PIX_ARRAY_SIDE) &&
+	       (iicj > 0) && (iicj < PIX_ARRAY_SIDE) ) {
+	    	  
+	    // try to put into pixel
+	    
+	    // obtain the pixel number for this photon
+	    
+	    nPMT = (int)
+	      pixels[ici+PIX_ARRAY_HALF_SIDE][icj+PIX_ARRAY_HALF_SIDE][PIXNUM];
+	  
+	  }
+	  else{
+
+	    nPMT = -1;
+
+	  }
+
+	  // check if outside the central camera
+	  
+	  if ( (nPMT < 0) || (nPMT >= ct_NCentralPixels) ) {
+
+	    // check the outer pixels
+	    nPMT = -1;
+
+	    for(i=ct_NCentralPixels; i<ct_NPixels; i++){
+	      if( bpoint_is_in_pix( cx, cy, i, &cam) ){
+		nPMT = i;
+		break;
+	      }
+	    }
+	   
+	    if(nPMT==-1){// the photon is in none of the pixels
+
+	      // read next CPhoton
+	      if ( Data_From_STDIN ) 
+		cin.read( flag, SIZE_OF_FLAGS );
+	      else
+		inputfile.read ( flag, SIZE_OF_FLAGS );
+	      
+	      // go to beginning of loop, the photon is lost
+	      continue;
+	    }
+	    
+	  }
+	  
+#ifdef __QE__
+	  
+	  //!@' @#### QE simulation.
+	  //@'
+	  
+	  //+++
+	  // QE simulation
+	  //---
+	  
+	  // find data point to be used in Lagrange interpolation (-> k)
+	  
+	  qeptr = (float **)QE[nPMT];
+	  
+	  FindLagrange(qeptr,k,wl);
+	  
+	  // if random > quantum efficiency, reject it
+	  
+	  qe = Lagrange(qeptr,k,wl) / 100.0;
+
+	  // fprintf(stdout, "%f\n", qe);
+	  
+	  if ( RandomNumber > qe ) {
+	    
+	    // read next CPhoton
+	    if ( Data_From_STDIN ) 
+	      cin.read( flag, SIZE_OF_FLAGS );
+	    else
+	      inputfile.read ( flag, SIZE_OF_FLAGS );
+	    
+	    // go to beginning of loop
+	    continue;
+	    
+	  }
+	  
+#endif // __QE__
+	  
+	  //+++
+	  // Cphoton is accepted
+	  //---
+	  
+	  ncph_out++ ; 
+
+	  // increase the number of Cphs. in the PMT, i.e.,
+	  // increase in one unit the counter of the photons
+	  // stored in the pixel nPMT
+	  
+	  fnpix[nPMT] += 1.0;
+
+#ifdef __DETAIL_TRIGGER__ 
+	  //
+	  //  fill the Trigger class with this phe
+	  //
+	  //
+	  Trigger.Fill( nPMT, ( t - t_first ) ) ; 
+
+	  // fadc.Fill( nPMT, ( t - t_first ), Trigger.Fill( nPMT, ( t - t_first ) ) ) ; 
+
+#endif // __DETAIL_TRIGGER__ 
+	  
+	  // read next CPhoton
+
+	  if ( Data_From_STDIN ) 
+	    cin.read( flag, SIZE_OF_FLAGS );
+	  else
+	    inputfile.read ( flag, SIZE_OF_FLAGS );
+
+	}  // end while, i.e. found end of event
+	
+	if ( fmod ( nshow, 1000. ) == 0. ) 
+	  log(SIGNATURE, 
+	      "End of this event: in: %d cphs(+%d). out: %d cphs(+%d). .\n",
+	      ncph_in,  ntcph_in,
+	      ncph_out, ntcph_out);
+	
+	// show number of photons
+	
+	//cout << ncph_in << " photons read . . . " << endl << flush;
+	
+	// skip it ?
+	
+	for ( i=0; i<nSkip; ++i ) {
+	  if (Skip[i] == (nshow+ntshow)) {
+	    i = -1;
+	    break;
+	  }
+	}
+	
+	// if after the previous loop, the exit value of i is -1
+	// then the shower number is in the list of showers to be
+	// skipped
+	
+	if (i == -1) {
+	  log(SIGNATURE, "\t\tskipped!\n");
+	  continue;
+	}
+	
+	/*!@'
+	  
+	  After reading all the Cherenkov photons for a given event,
+	  we have in the table of number of photons for each pixel
+	  only the 'raw' amount of Cherenkov photons @$n_p@$. Now, we
+	  should take this number as the mean value of the
+	  distribution of photons in that pixel @$p@$, following a
+	  Poisson distribution.
+	  
+	  @[ n_p \equiv \mu_p @]
+	  
+	  and with this number the amount of light coming from the
+	  shower is calculated @$\hat{n}_p@$.
+	  
+	  Then, we calculate the amount of Night Sky Background we
+	  must introduce in that pixel @$p@$. We calculate this using
+	  again a Poisson distribution with mean @$\mu_\mathrm{NSB}@$
+	  (defined in the |camera.h| file). The value of
+	  @$\mu_\mathrm{NSB}@$ is obtained from measurements. With this
+	  value, the amount of photons @$\hat{n}_\mathrm{NSB}@$ coming
+	  from the Night Sky Background is calculated.
+	  
+	  Finally, the amount of photons for that pixels is:
+	  @[ \hat{n}_p^\mathrm{final} = \hat{n}_p + \hat{n}_\mathrm{NSB} @]
+	  
+	*/
+	
+	// after reading all the photons, our camera is filled
+	
+	if ( Select_Energy ) {
+	  if (( mcevth.get_energy() < Select_Energy_le ) ||
+	      ( mcevth.get_energy() > Select_Energy_ue )) {
+	    log(SIGNATURE, "select_energy: shower rejected.\n");
+	    continue;
+	  }
+	}
+	
+#ifdef __NSB__
+	
+	//!@' @#### NSB (Night Sky Background) simulation.
+	//@'
+	
+	//+++
+	// NSB simulation
+	//---
+	
+	// add NSB "noise"
+	// TO DO: make meanNSB an array and read the contents from a file!
+	
+	//	if ( simulateNSB )
+	//	  for ( i=0; i<ct_NPixels; ++i ) 
+	//	    fnpix[i] += (float)ignpoi( meanNSB );
+	//      old version of Jose Carlos
+	
+	if ( simulateNSB) {
+	  //
+	  //  loop over all pixels and scramble the number 
+	  //  of NSB photons to put in it. For the number use
+	  //  a poison distribution with a mean calculated from meanNSB
+	  //  and the TOTAL_TRIGGER_TIME
+	  //
+	  for ( Int_t nsbPix = 0 ; nsbPix < CAMERA_PIXELS ; nsbPix++ ) {
+	    //
+	    //
+	    meanPois = meanNSB * TOTAL_TRIGGER_TIME ;  
+	  
+	    //  loop over the scrambled number if Photons in this pixels
+	    
+	    for ( Int_t photNSB=0; photNSB<GenNSB.Poisson(meanPois);
+		  photNSB++){
+	      //
+	      // now scramble the time at that the photo electron of the 
+	      // NSB photon is leaving the photo cathod
+	      // 
+	      
+	      timeNSB = GenNSB.Rndm() * TOTAL_TRIGGER_TIME ; 
+
+	      Trigger.FillNSB ( nsbPix, timeNSB ) ; 
+
+	    }
+		
+
+	  }
+
+	}
+#endif // __NSB__
+	
+	// if we should apply any kind of correction, do it here.
+
+	for ( i=0; i<ct_NPixels; ++i ) 
+	  fnpix[i] *= fCorrection;
+
+#ifdef __DETAIL_TRIGGER__ 
+	//
+	//   now the noise of the electronic 
+	//   (preamps, optical transmission,..)  is introduced. 
+	//   This is done inside the class MTrigger by the method ElecNoise. 
+	//   
+	Trigger.ElecNoise() ;
+	
+	//
+	//   look if in all the signals in the trigger signal branch
+	//   is a possible Trigger. Therefore we habe to diskriminate all
+	//   the simulated analog signals (Method Diskriminate in class
+	//   MTrigger). We look simultanously for the moments at which
+	//   there are more than TRIGGER_MULTI pixels above the 
+	//   CHANNEL_THRESHOLD. 
+	//
+
+	McTrig->SetZeroLevel( Lev0 = (Short_t) Trigger.Diskriminate() ) ; 
+	Lev1 = Lev2 = 0 ; 
+	
+	//
+	//   Start the First Level Trigger simulation
+	//
+	
+	if ( Lev0 > 0 ) {
+	  McTrig->SetFirstLevel ( Lev1 = Trigger.FirstLevel() )  ;
+	}
+
+#endif // __DETAIL_TRIGGER__ 
+
+#ifdef __ROOT__
+
+	//
+	//  Fill the header of this event 
+	//
+	
+	Evt->FillHeader ( (UShort_t) (ntshow + nshow) ,  20 ) ; 
+	
+	//
+	//   fill the MMcEvt with all information  
+	//
+	
+	McEvt->Fill( (UShort_t) mcevth.get_primary() , 
+		     mcevth.get_energy(), 
+		     mcevth.get_theta(), 
+		     mcevth.get_phi(), 
+		     mcevth.get_core(),
+		     mcevth.get_coreX(),
+		     mcevth.get_coreY(),
+		     impactD,
+		     ulli, ulli, 
+		     (UShort_t) ncph_in, 
+		     ulli, 
+		     (UShort_t) ncph_out ) ; 
+	
+	//
+	//    write it out to the file outfile
+	// 
+	
+	EvtTree.Fill() ; 
+	
+#endif // __ROOT__ 
+
+	//
+	//    if a first level trigger occurred, then 
+	//       1. do some other stuff (not implemented) 
+	//       2. start the gui tool
+
+	if ( Lev1 > 0 ) {
+
+	  // fadc.Scan( Trigger.GetFirstLevelTime(0) )  ; 
+
+#ifdef __INTERAKTIV__ 
+	  Trigger.ShowSignal(McEvt) ;
+#endif
+	}
+	
+
+
+#ifdef __ROOT__ 
+	//    clear all
+	Evt->Clear() ; 
+	McEvt->Clear() ; 
+	McTrig->Clear() ; 
+#endif // __ROOT__
+      
+	
+	//++++++++++++++++++++++++++++++++++++++++++++++++++
+	// at this point we have a camera full of
+	// ph.e.s
+	// we should first apply the trigger condition,
+	// and if there's trigger, then clean the image,
+	// calculate the islands statistics and the
+	// other parameters of the image (Hillas' parameters
+	// and so on).
+	//--------------------------------------------------
+	
+#ifdef __DEBUG__  
+	printf("\n");
+	
+	for ( ici=0; ici<PIX_ARRAY_SIDE; ++ici ) {
+	  
+	  for ( icj=0; icj<PIX_ARRAY_SIDE; ++icj ) {
+	    
+	    if ( (int)pixels[ici][icj][PIXNUM] > -1 ) {
+	      
+	      if ( fnpix[(int)pixels[ici][icj][PIXNUM]] > 0. ) {
+		
+		printf ("@@ %4d %4d %10f %10f %4f (%4d %4d)\n", nshow, 
+			(int)pixels[ici][icj][PIXNUM], 
+			pixels[ici][icj][PIXX],
+			pixels[ici][icj][PIXY],
+			fnpix[(int)pixels[ici][icj][PIXNUM]], ici, icj);
+		
+	      } 
+	    }  
+	  }
+	}
+	
+	for (i=0; i<ct_NPixels; ++i) {
+	  printf("%d (%d): ", i, npixneig[i]);
+	  for (j=0; j<npixneig[i]; ++i) 
+	    printf(" %d", pixneig[i][j]);
+	  printf("\n");
+	}
+	
+#endif // __DEBUG__
+	
+
+	//!@' @#### Save data.
+	//@'
+	
+	//++++++++++++++++++++++++++++++++++++++++++++++++++
+	// we now have all information we want
+	// the only thing we must do now is writing it to 
+	// the output file
+	//--------------------------------------------------
+
+	//++ 
+	// save the image to the file
+	//--
+	
+	if ( Data_From_STDIN ) 
+	  cin.read( flag, SIZE_OF_FLAGS );
+	else
+	  inputfile.read ( flag, SIZE_OF_FLAGS );
+	
+      } // end while there is a next event
+
+      if( !isA( flag, FLAG_END_OF_RUN   )){
+	error( SIGNATURE, "Expected end of run flag, but found: %s\n", flag );
+      }
+      else { // found end of run
+	ntshow += nshow;
+	log(SIGNATURE, "End of this run with %d events . . .\n", nshow);
+	
+	//	if ( Data_From_STDIN ) 
+	//  cin.read( flag, SIZE_OF_FLAGS );
+	// else
+	//  inputfile.read ( flag, SIZE_OF_FLAGS );
+	
+	// huschel start here
+
+	if( isA( flag, FLAG_END_OF_FILE ) ){ // end of file
+	  log(SIGNATURE, "End of file . . .\n");
+	  still_in_loop  = FALSE;
+	  
+	  if ((! Data_From_STDIN) && (! inputfile.eof())){
+	    
+	    // we have concatenated input files.
+	    // get signature of the next part and check it.
+	    // NOTE: this part repeats further up in the code;
+	    // if you change something here you probably want to change it 
+	    // there as well
+	    
+	    strcpy(Signature, REFL_SIGNATURE);
+	    
+	    strcpy(sign, Signature);
+	    
+	    inputfile.read( (char *)sign, strlen(Signature));
+	    
+	    if (strcmp(sign, Signature) != 0) {
+	      cerr << "ERROR: Signature of .rfl file is not correct\n";
+	      cerr << '"' << sign << '"' << '\n';
+	      cerr << "should be: " << Signature << '\n';
+	      exit(1);
+	    }
+	    
+	    if ( Data_From_STDIN ) 
+	      cin.read( (char *)sign, 1);
+	    else
+	      inputfile.read( (char *)sign, 1);
+	    
+	  }	
+	  
+	  // huschel ends here 
+	  
+	} // end if found end of file
+
+      } // end if found end of run
+      
+      if ( Data_From_STDIN ) 
+	cin.read( flag, SIZE_OF_FLAGS );
+      else
+	inputfile.read ( flag, SIZE_OF_FLAGS );
+      
+    } // end if else found start of run
+  } // end big while loop
+
+  //!@' @#### End of program.
+  //@'
+
+  //end my version
+
+#ifdef __ROOT__
+      //++
+      // put the Event to the root file
+      //--
+
+      EvtTree.Write() ; 
+      outfile.Write() ;
+      outfile.Close() ; 
+
+#endif // __ROOT__
+              
+  // close input file
+  
+  ntcph_in += ncph_in;
+  ntcph_out += ncph_out;
+  log( SIGNATURE, 
+       "%d event(s), with a total of %d C.photons in and %d C.photons out \n", 
+       ntshow, ntcph_in, ntcph_out );
+
+  //  log( SIGNATURE, "Fraction of triggers: %5.1f%% (%d out of %d)\n", 
+  //   ((float)ntrigger) / ((float)ntshow) * 100.0, ntrigger, ntshow);
+
+  // close files
+  
+  log( SIGNATURE, "Closing files\n" );
+
+  inputfile.close();
+
+#ifdef __DETAIL_TRIGGER__ 
+  // Output of Trigger statistics
+  //
+
+  //  Trigger.PrintStat() ; 
+#endif // __DETAIL_TRIGGER__ 
+
+  // program finished
+
+  log( SIGNATURE, "Done.\n");
+  
+  return( 0 );
+
+}
+//!@}
+
+// @T \newpage
+
+//!@subsection Functions definition.
+
+//!-----------------------------------------------------------
+// @name present
+//
+// @desc Make some presentation
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//------------------------------------------------------------
+// @function
+
+//!@{
+void 
+present(void)
+{
+  cout << "##################################################\n"
+       <<  SIGNATURE << '\n' << '\n'
+       << "Processor of the reflector output\n"
+       << "J C Gonzalez, Jun 1998\n"
+       << "##################################################\n\n"
+       << flush ;
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name usage
+//
+// @desc show help
+//
+// @date Tue Dec 15 16:23:30 MET 1998
+//------------------------------------------------------------
+// @function 
+
+//!@{
+void 
+usage(void)
+{
+  present();
+  cout << "\nusage ::\n\n"
+       << "\t camera "
+       << " [ -@ paramfile ] "
+       << " [ -h ] "
+       << "\n\n or \n\n"
+       << "\t camera < paramfile"
+       << "\n\n";
+  exit(0);
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name log                             
+//                                   
+// @desc function to send log information
+//
+// @var    funct  Name of the caller function
+// @var    fmt    Format to be used (message)
+// @var    ...    Other information to be shown
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//------------------------------------------------------------
+// @function  
+
+//!@{
+void
+log(const char *funct, char *fmt, ...)
+{
+  va_list args;
+  
+  //  Display the name of the function that called error
+  printf("[%s]: ", funct);
+  
+  // Display the remainder of the message
+  va_start(args, fmt);
+  vprintf(fmt, args);
+  va_end(args);
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name error                                                    
+//                                                           
+// @desc function to send an error message, and abort the program
+//
+// @var    funct  Name of the caller function
+// @var    fmt    Format to be used (message)
+// @var    ...    Other information to be shown
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//------------------------------------------------------------
+// @function  
+
+//!@{
+void
+error(const char *funct, char *fmt, ...)
+{
+  va_list args;
+
+  //  Display the name of the function that called error
+  fprintf(stderr, "ERROR in %s: ", funct);
+
+  // Display the remainder of the message
+  va_start(args, fmt);
+  vfprintf(stderr, fmt, args);
+  va_end(args);
+
+  perror(funct);
+
+  abort();
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name isA                               
+//                                             
+// @desc returns TRUE(FALSE), if the flag is(is not) the given
+//
+// @var    s1     String to be searched
+// @var    flag   Flag to compare with string s1
+// @return TRUE: both strings match; FALSE: oth.
+//
+// @date Wed Jul  8 15:25:39 MET DST 1998
+//------------------------------------------------------------
+// @function  
+
+//!@{
+int 
+isA( char * s1, const char * flag ) {
+  return ( (strncmp((char *)s1, flag, SIZE_OF_FLAGS)==0) ? 1 : 0 ); 
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name read_ct_file           
+//                          
+// @desc read CT definition file
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+//------------------------------------------------------------
+// @function  
+
+//!@{
+void
+read_ct_file(void)
+{
+  char line[LINE_MAX_LENGTH];    //@< line to get from the ctin
+  char token[ITEM_MAX_LENGTH];   //@< a single token
+  int i, j;                      //@< dummy counters
+
+  log( "read_ct_file", "start.\n" );
+
+  ifstream ctin ( ct_filename );
+
+  if ( ctin.bad() ) 
+    error( "read_ct_file", 
+           "Cannot open CT def. file: %s\n", ct_filename );
+  
+  // loop till the "end" directive is reached
+
+  while (!ctin.eof()) {          
+
+    // get line from stdin
+
+    ctin.getline(line, LINE_MAX_LENGTH);
+
+    // look for each item at the beginning of the line
+
+    for (i=0; i<=define_mirrors; i++) 
+      if (strstr(line, CT_ITEM_NAMES[i]) == line)
+        break;
+    
+    // if it is not a valid line, just ignore it
+
+    if (i == define_mirrors+1) 
+      continue;
+    
+    // case block for each directive
+
+    switch ( i ) {
+
+    case type:                // <type of telescope> (0:CT1 ¦ 1:MAGIC)
+      
+      // get focal distance
+
+      sscanf(line, "%s %d", token, &ct_Type);
+
+      log( "read_ct_file", "<Type of Telescope>: %s\n", 
+           ((ct_Type==0) ? "CT1" : "MAGIC") );
+
+      break;
+
+    case focal_distance:      // <focal distance> [cm]
+      
+      // get focal distance
+
+      sscanf(line, "%s %f", token, &ct_Focal_mean);
+
+      log( "read_ct_file", "<Focal distance>: %f cm\n", ct_Focal_mean );
+
+      break;
+
+    case focal_std:           // s(focal distance) [cm]
+      
+      // get focal distance
+
+      sscanf(line, "%s %f", token, &ct_Focal_std);
+
+      log( "read_ct_file", "s(Focal distance): %f cm\n", ct_Focal_std );
+
+      break;
+
+    case point_spread:        // <point spread> [cm]
+      
+      // get point spread
+
+      sscanf(line, "%s %f", token, &ct_PSpread_mean);
+
+      log( "read_ct_file", "<Point spread>: %f cm\n", ct_PSpread_mean );
+
+      break;
+
+    case point_std:           // s(point spread) [cm]
+      
+      // get point spread
+
+      sscanf(line, "%s %f", token, &ct_PSpread_std);
+
+      log( "read_ct_file", "s(Point spread): %f cm\n", ct_PSpread_std );
+
+      break;
+
+    case adjustment_dev:      // s(adjustment_dev) [cm]
+      
+      // get point spread
+
+      sscanf(line, "%s %f", token, &ct_Adjustment_std);
+
+      log( "read_ct_file", "s(Adjustment): %f cm\n", ct_Adjustment_std );
+
+      break;
+
+    case black_spot:          // radius of the black spot in the center [cm]
+      
+      // get black spot radius
+
+      sscanf(line, "%s %f", token, &ct_BlackSpot_rad);
+
+      log( "read_ct_file", "Radius of the black spots: %f cm\n", 
+           ct_BlackSpot_rad);
+
+      break;
+
+    case r_mirror:            // radius of the mirrors [cm]
+      
+      // get radius of mirror
+
+      sscanf(line, "%s %f", token, &ct_RMirror);
+
+      log( "read_ct_file", "Radii of the mirrors: %f cm\n", ct_RMirror );
+
+      break;
+
+    case n_mirrors:           // number of mirrors
+      
+      // get the name of the output_file from the line
+
+      sscanf(line, "%s %d", token, &ct_NMirrors);
+
+      log( "read_ct_file", "Number of mirrors: %d\n", ct_NMirrors );
+
+      break;
+
+    case camera_width:        // camera width [cm]
+      
+      // get the name of the ct_file from the line
+
+      sscanf(line, "%s %f", token, &ct_CameraWidth);
+
+      log( "read_ct_file", "Camera width: %f cm\n", ct_CameraWidth );
+
+      break;
+
+    case n_pixels:           // number of pixels
+      
+      // get the name of the output_file from the line
+
+      sscanf(line, "%s %d", token, &ct_NPixels);
+
+      log( "read_ct_file", "Number of pixels: %d\n", ct_NPixels );
+
+      break;
+
+    case n_centralpixels:           // number of central pixels
+      
+      // get the name of the output_file from the line
+
+      sscanf(line, "%s %d", token, &ct_NCentralPixels);
+
+      log( "read_ct_file", "Number of central pixels: %d\n", ct_NCentralPixels );
+
+      break;
+
+    case n_gappixels:           // number of gap pixels
+      
+      // get the name of the output_file from the line
+
+      sscanf(line, "%s %d", token, &ct_NGapPixels);
+
+      log( "read_ct_file", "Number of gap pixels: %d\n", ct_NGapPixels );
+
+      break;
+
+    case pixel_width:         // pixel width [cm]
+      
+      // get the name of the ct_file from the line
+
+      sscanf(line, "%s %f", token, &ct_PixelWidth);
+
+      ct_PixelWidth_corner_2_corner = ct_PixelWidth / cos(RAD(30.0));
+      ct_PixelWidth_corner_2_corner_half =
+        ct_PixelWidth_corner_2_corner * 0.50;
+      ct_Apot = ct_PixelWidth / 2;
+      ct_2Apot = ct_Apot * 2.0;
+
+      log( "read_ct_file", "Pixel width: %f cm\n", ct_PixelWidth );
+
+      break;
+
+    case define_mirrors:      // read table with the parameters of the mirrors
+
+      log( "read_ct_file", "Table of mirrors data:\n" );
+
+      // check whether the number of mirrors was already set
+
+      if ( ct_NMirrors == 0 )
+        error( "read_ct_file", "NMirrors was not set.\n" );
+      
+      // allocate memory for paths list
+
+      log( "read_ct_file", "Allocating memory for ct_data\n" );
+
+      ct_data = new float*[ct_NMirrors];
+
+      for (i=0; i<ct_NMirrors; i++) 
+        ct_data[i] = new float[CT_NDATA];
+
+      // read data
+
+      log( "read_ct_file", "Reading mirrors data...\n" );
+
+      for (i=0; i<ct_NMirrors; i++)
+        for (j=0; j<CT_NDATA; j++)
+          ctin >> ct_data[i][j];
+
+      break;
+
+    } // switch ( i ) 
+
+  } // end while
+
+  // end
+
+  log( "read_ct_file", "done.\n" );
+
+  return;
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name read_pixels  
+//                          
+// @desc read pixels data
+//
+// @date Fri Mar 12 16:33:34 MET 1999
+//------------------------------------------------------------
+// @function
+
+//!@{
+void 
+read_pixels(struct camera *pcam)
+{
+  ifstream qefile;
+  char line[LINE_MAX_LENGTH];
+  int n, i, j, k;
+  float qe;
+
+  //------------------------------------------------------------
+  // first, pixels' coordinates
+
+  pcam->inumpixels = ct_NPixels;
+  pcam->inumcentralpixels = ct_NCentralPixels;
+  pcam->inumgappixels = ct_NGapPixels;
+  pcam->inumbigpixels = ct_NPixels - ct_NCentralPixels - ct_NGapPixels;
+  pcam->dpixdiameter_cm =  ct_PixelWidth; 
+
+  // initialize pixel numbers
+
+  for ( i=0; i<PIX_ARRAY_SIDE; ++i ) 
+    for ( j=0; j<PIX_ARRAY_SIDE; ++j ) 
+      pixels[i][j][PIXNUM] = -1;
+
+  pixary = new float* [2*ct_NCentralPixels];
+  for ( i=0; i<2*ct_NCentralPixels; ++i ) 
+    pixary[i] = new float[2];
+
+  pixneig = new int* [ct_NCentralPixels];
+  for ( i=0; i<ct_NCentralPixels; ++i ) {
+    pixneig[i] = new int[6];
+    for ( j=0; j<6; ++j ) 
+      pixneig[i][j] = -1;
+  }
+
+  npixneig = new int[ct_NCentralPixels];
+  for ( i=0; i<ct_NCentralPixels; ++i ) 
+    npixneig[i] = 0;
+
+  // generate all coordinates
+
+  igen_pixel_coordinates(pcam);
+
+  // transfer coordinates to the working arrays for
+  // the central pixels
+
+  for(k=0; k<ct_NCentralPixels; k++){
+
+    i = (int) pcam->di[k];
+    j = (int) pcam->dj[k];
+
+    pixels[i+PIX_ARRAY_HALF_SIDE][j+PIX_ARRAY_HALF_SIDE][PIXNUM] = k;
+    pixels[i+PIX_ARRAY_HALF_SIDE][j+PIX_ARRAY_HALF_SIDE][PIXX] = pcam->dxc[k];
+    pixels[i+PIX_ARRAY_HALF_SIDE][j+PIX_ARRAY_HALF_SIDE][PIXY] = pcam->dyc[k];
+   
+    pixary[k][0] = pcam->dxc[k];
+    pixary[k][1] = pcam->dyc[k];
+  }
+
+  // calculate tables of neighbours
+  
+#ifdef __DEBUG__
+  for ( n=0 ; n<ct_NPixels ; ++n ) {
+    cout << "Para el pixel " << n << ": ";	
+    for ( i=n+1 ; (i<ct_NPixels)&&(npixneig[n]<6) ; ++i) {
+      if ( pixels_are_neig(n,i) == TRUE ) {
+        pixneig[n][npixneig[n]] = i;
+        pixneig[i][npixneig[i]] = n;
+        cout << i << ' ';
+        ++npixneig[n];
+        ++npixneig[i];
+      }
+    }
+    cout << endl << flush;
+  }
+#else // ! __DEBUG__
+  for ( n=0 ; n<ct_NCentralPixels ; ++n ) 
+    for ( i=n+1 ; (i<ct_NCentralPixels)&&(npixneig[n]<6) ; ++i) 
+      if ( pixels_are_neig(n,i) == TRUE ) {
+        pixneig[n][npixneig[n]] = i;
+        pixneig[i][npixneig[i]] = n;
+        ++npixneig[n];
+        ++npixneig[i];
+      }
+#endif // ! __DEBUG__
+  
+#ifdef __DEBUG__
+  for ( n=0 ; n<ct_NPixels ; ++n ) {
+    cout << n << ':';
+    for ( j=0; j<npixneig[n]; ++j) 
+      cout << ' ' << pixneig[n][j];
+    cout << endl << flush;
+  }
+#endif // __DEBUG__  
+
+  //------------------------------------------------------------
+  // second, pixels' QE
+
+  // try to open the file
+
+  log("read_pixels", "Openning the file \"%s\" . . .\n", QE_FILE);
+  
+  qefile.open( QE_FILE );
+  
+  // if it is wrong or does not exist, exit
+  
+  if ( qefile.bad() )
+    error( "read_pixels", "Cannot open \"%s\". Exiting.\n", QE_FILE );
+  
+  // read file
+
+  log("read_pixels", "Reading data . . .\n");
+
+  i=-1;
+
+  while ( ! qefile.eof() ) {          
+
+    // get line from the file
+
+    qefile.getline(line, LINE_MAX_LENGTH);
+
+    // skip if comment
+
+    if ( *line == '#' )
+      continue;
+
+    // if it is the first valid value, it is the number of QE data points
+
+    if ( i < 0 ) {
+
+      // get the number of datapoints 
+
+      sscanf(line, "%d", &pointsQE);
+      
+      // allocate memory for the table of QEs
+      
+      QE = new float ** [ct_NPixels];
+
+      for ( i=0; i<ct_NPixels; ++i ) {
+        QE[i] = new float * [2];
+        QE[i][0] = new float[pointsQE];
+        QE[i][1] = new float[pointsQE];
+      }
+      
+      QElambda = new float [pointsQE];
+
+      for ( i=0; i<pointsQE; ++i ) {
+        qefile.getline(line, LINE_MAX_LENGTH);
+        sscanf(line, "%f", &QElambda[i]);
+      }
+
+      i=0;
+
+      continue;
+    }
+
+    // get the values (num-pixel, num-datapoint, QE-value)
+    
+    sscanf(line, "%d %d %f", &i, &j, &qe);
+
+    if ( ((i-1) < ct_NPixels) && ((i-1) > -1) &&
+         ((j-1) < pointsQE)   && ((j-1) > -1) ) {
+      QE[i-1][0][j-1] = QElambda[j-1];
+      QE[i-1][1][j-1] = qe;
+    }
+
+  }
+
+  // close file
+
+  qefile.close();
+
+  // end
+
+  log("read_pixels", "Done.\n");
+
+}
+//!@}
+
+
+//!-----------------------------------------------------------
+// @name pixels_are_neig                        
+//                                             
+// @desc check whether two pixels are neighbours
+//
+// @var pix1      Number of the first pixel
+// @var pix2      Number of the second pixel
+// @return        TRUE: both pixels are neighbours; FALSE: oth.
+//
+// @date Wed Sep  9 17:58:37 MET DST 1998
+//------------------------------------------------------------
+// @function  
+
+//!@{
+int
+pixels_are_neig(int pix1, int pix2)
+{ 
+  if ( sqrt(SQR( pixary[pix1][0] - pixary[pix2][0] ) +
+            SQR( pixary[pix1][1] - pixary[pix2][1] ) ) 
+       > ct_PixelWidth_corner_2_corner ) 
+    return ( FALSE );
+  else
+    return ( TRUE );
+}
+//!@}
+
+//!-----------------------------------------------------------
+// @name igen_pixel_coordinates
+//                                             
+// @desc generate the pixel center coordinates
+//
+// @var *pcam     structure camera containing all the
+//                camera information
+// @return        total number of pixels
+//
+// DP
+//
+// @date Thu Oct 14 10:41:03 CEST 1999
+//------------------------------------------------------------
+// @function  
+
+//!@{
+/******** igen_pixel_coordinates() *********************************/
+
+int igen_pixel_coordinates(struct camera *pcam) { 
+            /* generate pixel coordinates, return value is number of pixels */
+
+  int i, itot_inside_ring, iN, in, ipixno, iring_no, ipix_in_ring, isegment;
+  float fsegment_fract;
+  double dtsize;
+  double dhsize;
+  double dpsize;
+  double dxfirst_pix;
+  double dyfirst_pix;
+  double ddxseg1, ddxseg2, ddxseg3, ddxseg4, ddxseg5, ddxseg6;
+  double ddyseg1, ddyseg2, ddyseg3, ddyseg4, ddyseg5, ddyseg6;
+  
+
+  double dstartx, dstarty;   /* for the gap pixels and outer pixels */
+  int j, nrow;
+
+  dpsize = pcam->dpixdiameter_cm;
+  dtsize = dpsize * sqrt(3.) / 2.;
+  dhsize = dpsize / 2.;
+
+  /* Loop over central pixels to generate co-ordinates  */
+
+  for(ipixno=1; ipixno <= pcam->inumcentralpixels; ipixno++){
+
+    /* Initialise variables. The central pixel = ipixno 1 in ring iring_no 0 */
+
+    pcam->dpixsizefactor[ipixno] = 1.;
+
+    in = 0;
+
+    i = 0;
+    itot_inside_ring = 0;
+    iring_no = 0;
+
+    /* Calculate the number of pixels out to and including the ring containing pixel number */
+    /* ipixno e.g. for pixel number 17 in ring number 2 itot_inside_ring = 19 */
+
+    while (itot_inside_ring == 0){
+      
+      iN = 3*(i*(i+1)) + 1;
+      
+      if (ipixno <= iN){
+	iring_no = i;
+	itot_inside_ring = iN;
+      }
+      
+      i++;
+    }
+    
+    
+    /* Find the number of pixels which make up ring number iring_no e.g. ipix_in_ring = 6 for ring 1 */    
+        
+    ipix_in_ring = 0;
+    for (i = 0; i < iring_no; ++i){
+
+      ipix_in_ring = ipix_in_ring + 6;
+    }
+
+    /* The camera is viewed as 6 radial segments ("pie slices"). Knowing the number of pixels in its */
+    /* ring calculate which segment the pixel ipixno is in. Then find how far across this segment it is */
+    /* as a fraction of the number of pixels in this sixth of the ring (ask SMB). */
+        
+    isegment = 0;
+    fsegment_fract = 0.;
+    if (iring_no > 0) {
+      
+      isegment = (int)((ipixno - itot_inside_ring + ipix_in_ring - 0.5) / iring_no + 1); /* integer division ! numbering starts at 1 */
+      
+      fsegment_fract = (ipixno - (itot_inside_ring - ipix_in_ring)) - ((isegment-1)*iring_no) - 1 ;
+      
+    }
+
+    /* the first pixel in each ring lies on the positive x axis at a distance dxfirst_pix = iring_no * the */
+    /* pixel width (flat to flat) dpsize. */
+        
+    dxfirst_pix = dpsize*iring_no;
+    dyfirst_pix = 0.;
+
+    /* the vector between the first and last pixels in a segment n is (ddxsegn, ddysegn) */
+
+    ddxseg1 = - dhsize*iring_no;
+    ddyseg1 = dtsize*iring_no;
+    ddxseg2 = -dpsize*iring_no;
+    ddyseg2 = 0.;
+    ddxseg3 = ddxseg1;
+    ddyseg3 = -ddyseg1;
+    ddxseg4 = -ddxseg1;
+    ddyseg4 = -ddyseg1;
+    ddxseg5 = -ddxseg2;
+    ddyseg5 = 0.;
+    ddxseg6 = -ddxseg1;
+    ddyseg6 = ddyseg1;
+    
+    /* to find the position of pixel ipixno take the position of the first pixel in the ring and move */
+    /* anti-clockwise around the ring by adding the segment to segment vectors. */
+
+    switch (isegment) {
+      
+    case 0:
+
+      pcam->dxc[ipixno-1] = 0.;
+      pcam->dyc[ipixno-1] = 0.; 
+
+    case 1: 
+      pcam->dxc[ipixno-1] = dxfirst_pix - dhsize*fsegment_fract;
+      pcam->dyc[ipixno-1] = dyfirst_pix + dtsize*fsegment_fract;
+      
+      break;
+      
+    case 2:
+      
+      pcam->dxc[ipixno-1] = dxfirst_pix + ddxseg1 - dpsize*fsegment_fract;
+      pcam->dyc[ipixno-1] = dyfirst_pix + ddyseg1 + 0.;
+      
+      break;
+      
+    case 3:
+      
+      pcam->dxc[ipixno-1] = dxfirst_pix + ddxseg1 + ddxseg2 - dhsize*fsegment_fract;
+      pcam->dyc[ipixno-1] = dyfirst_pix + ddyseg1 + ddyseg2 - dtsize*fsegment_fract;
+      
+      break;
+      
+    case 4:
+      
+      pcam->dxc[ipixno-1] = dxfirst_pix + ddxseg1 + ddxseg2 + ddxseg3 + dhsize*fsegment_fract;
+      pcam->dyc[ipixno-1] = dyfirst_pix + ddyseg1 + ddyseg2 + ddyseg3 - dtsize*fsegment_fract;
+      
+      break;
+      
+    case 5:
+      
+      pcam->dxc[ipixno-1] = dxfirst_pix + ddxseg1 + ddxseg2 + ddxseg3 + ddxseg4 + dpsize*fsegment_fract;
+      pcam->dyc[ipixno-1] = dyfirst_pix + ddyseg1 + ddyseg2 + ddyseg3 + ddyseg4 + 0.;
+    
+      break;
+      
+    case 6:
+      
+      pcam->dxc[ipixno-1] = dxfirst_pix + ddxseg1 + ddxseg2 + ddxseg3 + ddxseg4 + ddxseg5 + dhsize*fsegment_fract;
+      pcam->dyc[ipixno-1] = dyfirst_pix + ddyseg1 + ddyseg2 + ddyseg3 + ddyseg4 + ddyseg5 + dtsize*fsegment_fract;
+      
+      break;
+      
+    default: 
+
+      fprintf(stderr, "ERROR: problem in coordinate generation for pixel %d\n", ipixno);
+      return(0);
+      
+    } /* end switch */
+
+  } /* end for */
+
+  dstartx = pcam->dxc[pcam->inumcentralpixels - 1] + dhsize;
+  dstarty = pcam->dyc[pcam->inumcentralpixels - 1] + dtsize;
+
+  if(pcam->inumgappixels > 0){   /* generate the positions of the gap pixels */
+    
+    j = pcam->inumcentralpixels;
+
+    for(i=0; i<pcam->inumgappixels; i=i+6){
+      pcam->dxc[j + i ] = dstartx + 2. * (i/6 + 1) * dpsize; 
+      pcam->dyc[j + i ] = dstarty;
+      pcam->dpixsizefactor[j + i] = 1.;
+      pcam->dxc[j + i + 1] = pcam->dxc[j + i ] / 2.;
+      pcam->dyc[j + i + 1] = sqrt(3.) * pcam->dxc[j + i + 1];
+      pcam->dpixsizefactor[j + i + 1] = 1.;
+      pcam->dxc[j + i + 2] = - pcam->dxc[j + i + 1];
+      pcam->dyc[j + i + 2] = pcam->dyc[j + i + 1];
+      pcam->dpixsizefactor[j + i+ 2] = 1.;
+      pcam->dxc[j + i + 3] = - pcam->dxc[j + i];
+      pcam->dyc[j + i + 3] = dstarty;
+      pcam->dpixsizefactor[j + i+ 3] = 1.;
+      pcam->dxc[j + i + 4] = pcam->dxc[j + i + 2];
+      pcam->dyc[j + i + 4] = - pcam->dyc[j + i + 2];
+      pcam->dpixsizefactor[j + i+ 4] = 1.;
+      pcam->dxc[j + i + 5] = pcam->dxc[j + i + 1];
+      pcam->dyc[j + i + 5] = - pcam->dyc[j + i + 1];
+      pcam->dpixsizefactor[j + i + 5] = 1.;
+    } /* end for */
+  } /* end if */
+
+  /* generate positions of the outer pixels */
+
+  if( pcam->inumbigpixels > 0 ){
+
+    j = pcam->inumcentralpixels + pcam->inumgappixels;
+
+    for(i=0; i<pcam->inumbigpixels; i++){
+      pcam->dpixsizefactor[j + i] = 2.;
+    }
+
+    in = 0;
+
+    nrow = (int) ceil(dstartx / 2. / dpsize);    
+
+    while(in < pcam->inumbigpixels){
+
+      pcam->dxc[j + in] = dstartx + dpsize;
+      pcam->dyc[j + in] = dstarty + 2 * dpsize / sqrt(3.);
+      pcam->dxc[j + in + nrow] = dstartx / 2. - dpsize / 2.;
+      pcam->dyc[j + in + nrow] = sqrt(3.)/2. * dstartx + 2.5 * dpsize/sqrt(3.);
+      pcam->dxc[j + in + 3 * nrow - 1] = - pcam->dxc[j + in];
+      pcam->dyc[j + in + 3 * nrow - 1] = pcam->dyc[j + in];
+      pcam->dxc[j + in + 3 * nrow] = - pcam->dxc[j + in];
+      pcam->dyc[j + in + 3 * nrow] = - pcam->dyc[j + in];
+      pcam->dxc[j + in + 5 * nrow - 1] = pcam->dxc[j + in + nrow];
+      pcam->dyc[j + in + 5 * nrow - 1] = - pcam->dyc[j + in + nrow];
+      pcam->dxc[j + in + 6 * nrow - 1] = pcam->dxc[j + in];
+      pcam->dyc[j + in + 6 * nrow - 1] = - pcam->dyc[j + in];
+      for(i=1; i<nrow; i++){
+	pcam->dxc[j + in + i] = pcam->dxc[j + in] - i * dpsize;
+	pcam->dyc[j + in + i] = pcam->dyc[j + in] + i * dpsize * sqrt(3.);
+	pcam->dxc[j + in + i + nrow] = pcam->dxc[j + in + nrow] - i * 2 * dpsize;
+	pcam->dyc[j + in + i + nrow] = pcam->dyc[j + in + nrow];
+        pcam->dxc[j + in + 3 * nrow - 1 - i] = - pcam->dxc[j + in + i];
+	pcam->dyc[j + in + 3 * nrow - 1- i] = pcam->dyc[j + in + i];
+	pcam->dxc[j + in + i + 3 * nrow] = - pcam->dxc[j + in + i];
+	pcam->dyc[j + in + i + 3 * nrow] = - pcam->dyc[j + in + i];
+	pcam->dxc[j + in + 5 * nrow - 1 - i] = pcam->dxc[j + in + i + nrow];
+	pcam->dyc[j + in + 5 * nrow - 1 - i] = - pcam->dyc[j + in + i + nrow];
+	pcam->dxc[j + in + 6 * nrow - 1 - i] = pcam->dxc[j + in + i];
+	pcam->dyc[j + in + 6 * nrow - 1 - i] = - pcam->dyc[j + in + i];
+      }
+      in = in + 6 * nrow;
+      dstartx = dstartx + 2. * dpsize;
+      nrow = nrow + 1;
+    } /* end while */
+
+  } /* end if */
+
+  /* generate the ij coordinates */
+
+  for(i=0; i<pcam->inumpixels; i++){
+    pcam->dj[i] = pcam->dyc[i]/SIN60/dpsize;
+    pcam->di[i] = pcam->dxc[i]/dpsize - pcam->dj[i]*COS60;
+
+    //    fprintf(stdout, "%d %f %f %f %f %f\n", 
+    //	    i+1, pcam->di[i], pcam->dj[i], pcam->dxc[i], pcam->dyc[i],
+    //	    pcam->dpixsizefactor[i]);
+
+  }
+
+  return(pcam->inumpixels);
+
+}
+//!@}
+
+//!-----------------------------------------------------------
+// @name bpoint_is_in_pix
+//                                             
+// @desc check if a point (x,y) in camera coordinates is inside a given pixel
+// 
+// @var *pcam     structure camera containing all the
+//                camera information
+// @var dx, dy    point coordinates in centimeters
+// @var ipixnum   pixel number (starting at 0)
+// @return        TRUE if the point is inside the pixel, FALSE otherwise
+//
+// DP
+//
+// @date Thu Oct 14 16:59:04 CEST 1999
+//------------------------------------------------------------
+// @function  
+
+//!@{
+
+/******** bpoint_is_in_pix() ***************************************/
+
+int bpoint_is_in_pix(double dx, double dy, int ipixnum, struct camera *pcam){
+  /* return TRUE if point (dx, dy) is in pixel number ipixnum, else return FALSE (use camera coordinate system) */
+  /* the pixel is assumed to be a "closed set" */
+
+  double a, b; /* a = length of one of the edges of one pixel, b = half the width of one pixel */
+  double c, xx, yy; /* auxiliary variable */
+
+  b = pcam->dpixdiameter_cm / 2. * pcam->dpixsizefactor[ipixnum];
+  a = pcam->dpixdiameter_cm / sqrt(3.) * pcam->dpixsizefactor[ipixnum];
+  c = 1. - 1./sqrt(3.);
+  if((ipixnum < 0)||(ipixnum >= pcam->inumpixels)){
+    fprintf(stderr, "Error in bpoint_is_in_pix: invalid pixel number %d\n", ipixnum);
+    fprintf(stderr, "Exiting.\n");
+    exit(203);
+  }
+  xx = dx - pcam->dxc[ipixnum];
+  yy = dy - pcam->dyc[ipixnum];
+
+  if(((-b <= xx) && (xx <= 0.) && ((-c * xx - a) <= yy) && (yy <= ( c * xx + a))) ||
+     ((0. <  xx) && (xx <= b ) && (( c * xx - a) <= yy) && (yy <= (-c * xx + a)))   ){
+    return(TRUE); /* point is inside */
+  }
+  else{
+    return(FALSE); /* point is outside */
+  }
+}
+
+//!@}
+
+//------------------------------------------------------------
+// @name dist_r_P                          
+//                                     
+// @desc distance straight line r - point P
+//
+// @date Sat Jun 27 05:58:56 MET DST 1998
+// @function @code 
+//------------------------------------------------------------
+// dist_r_P
+//
+// distance straight line r - point P
+//------------------------------------------------------------
+
+float 
+dist_r_P(float a, float b, float c, 
+         float l, float m, float n,
+         float x, float y, float z)
+{
+  return (
+          sqrt((SQR((a-x)*m-(b-y)*l) +
+                SQR((b-y)*n-(c-z)*m) +
+                SQR((c-z)*l-(a-x)*n))/
+               (SQR(l)+SQR(m)+SQR(n))
+               )
+          );
+}
+// @endcode
+
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+//
+// $Log: not supported by cvs2svn $
+// Revision 1.1.1.1  1999/11/05 11:59:31  harald
+// This the starting point for CVS controlled further developments of the
+// camera program. The program was originally written by Jose Carlos. 
+// But here you can find a "rootified" version to the program. This means 
+// that there is no hbook stuff in it now. Also the output of the
+// program changed to the MagicRawDataFormat. 
+//
+// The "rootification" was done by Dirk Petry and Harald Kornmayer. 
+//
+// In the following you can see the README file of that version:
+//
+// ==================================================
+//
+// Fri Oct 22  1999   D.P.
+//
+// The MAGIC Monte Carlo System
+//
+// Camera Simulation Programme
+// ---------------------------
+//
+// 1) Description
+//
+// This version is the result of the fusion of H.K.'s
+// root_camera which is described below (section 2)
+// and another version by D.P. which had a few additional
+// useful features.
+//
+// The version compiles under Linux with ROOT 2.22 installed
+// (variable ROOTSYS has to be set).
+//
+// Compile as before simply using "make" in the root_camera
+// directory.
+//
+// All features of H.K.'s root_camera were retained.
+//
+// Additional features of this version are:
+//
+//   a) HBOOK is no longer used and all references are removed.
+//
+//   b) Instead of HBOOK, the user is given now the possibility of 
+//      having Diagnostic data in ROOT format as a complement
+//      to the ROOT Raw data.
+//
+//      This data is written to the file which is determined by
+//      the new input parameter "diag_file" in the camera parameter
+//      file.
+//
+//      All source code file belonging to this part have filenames
+//      starting with "MDiag".
+//
+//      The user can read the output file using the following commands
+//      in an interactive ROOT session:
+//
+//        	root [0] .L MDiag.so
+// 	root [1] new TFile("diag.root");
+// 	root [2] new TTreeViewer("T");
+// 	
+//      This brings up a viewer from which all variables of the
+//      TTree can be accessed and histogrammed. This example
+//      assumes that you have named the file "diag.root", that
+//      you are using ROOT version 2.22 or later and that you have
+//      the shared object library "MDiag.so" which is produced
+//      by the Makefile along with the executable "camera".
+//        
+//  !   The contents of the so-called diag file is not yet fixed.
+//  !   At the moment it is what J.C.G. used to put into the HBOOK
+//  !   ntuple. In future versions the moments calculation can be
+//  !   removed and the parameter list be modified correspondingly.
+//
+//   c) Now concatenated reflector files can be read. This is useful
+//      if you have run the reflector with different parameters but
+//      you want to continue the analysis with all reflector data
+//      going into ONE ROOT outputfile.
+//
+//      The previous camera version contained a bug which made reading 
+//      of two or more concatenated reflector files impossible.
+//
+//   d) The reflector output format was changed. It is now version
+//      0.4 .
+//      The change solely consists in a shortening of the flag
+//      definition in the file 
+//
+//            include-MC/MCCphoton.hxx  
+//
+//  !   IF YOU WANT TO READ REFLECTOR FORMAT 0.3, you can easily
+//  !   do so by recompiling camera with the previous version of
+//  !   include-MC/MCCphoton.hxx.
+//
+//      The change was necessary for saving space and better
+//      debugging. From now on, this format can be frozen.
+//
+//  !   For producing reflector output in the new format, you
+//  !   of course have to recompile your reflector with the
+//  !   new include-MC/MCCphoton.hxx .
+//
+//   e) A first version of the pixelization with the larger
+//      outer pixels is implemented. THIS IS NOT YET FULLY
+//      TESTED, but first rough tests show that it works
+//      at least to a good approximation.
+//
+//      The present version implements the camera outline
+//      with 18 "gap-pixels" and 595 pixels in total as
+//      shown in 
+//
+//         http://sarastro.ifae.es/internal/home/hardware/camera/numbering.ps
+//
+//      This change involved 
+//
+// 	(i) The file pixels.dat is no longer needed. Instead
+//           the coordinates are generated by the program itself
+//           (takes maybe 1 second). In the file 
+//
+// 		pixel-coords.txt
+//
+// 	  in the same directory as this README, you find a list
+//           of the coordinates generated by this new routine. It
+//           has the format
+//
+//               number   i   j   x  y  size-factor
+//
+//           where i and j are J.C.G.'s so called biaxis hexagonal
+//           coordinates (for internal use) and x and y are the
+//           coordinates of the pixel centers in the standard camera
+//           coordinate system in units of centimeters. The value
+//           of "size-factor" determines the linear size of the pixel
+//           relative to the central pixels. 
+//
+//         (ii) The magic.def file has two additional parameters
+//           which give the number of central pixels and the
+//           number of gap pixels
+//
+//         (iii) In camera.h and camera.cxx several changes were 
+//           necessary, among them the introduction of several
+//           new functions 
+//
+//      The newly suggested outline with asymmetric Winston cones
+//      will be implemented in a later version.
+//
+//   f) phe files can no longer be read since this contradicts
+//      our philosophy that the analysis should be done with other
+//      programs like e.g. EVITA and not with "camera" itself.
+//      This possibility was removed. 
+//
+//   g) ROOT is no longer invoked with an interactive interface.
+//      In this way, camera can better be run as a batch program and
+//      it uses less memory.
+//
+//   h) small changes concerning the variable "t_chan" were necessary in
+//      order to avoid segmentation faults: The variable is used as an
+//      index and it went sometimes outside the limits when camera
+//      was reading proton data. This is because the reflector files
+//      don't contain the photons in a chronological order and also
+//      the timespread can be considerably longer that the foreseen
+//      digitisation timespan. Please see the source code of camera.cxx
+//      round about line 1090.
+//
+//   j) several unused variables were removed, a few warning messages
+//      occur when you compile camera.cxx but these can be ignored at
+//      the moment.
+//
+// In general the program is of course not finished. It still needs
+// debugging, proper trigger simulation, simulation of the asymmetric
+// version of the outer pixels, proper NSB simulation, adaption of
+// the diag "ntuple" contents to our need and others small improvements.
+//
+// In the directory rfl-files there is now a file in reflector format 0.4
+// containing a single event produced by the starfiled adder. It has
+// a duration of 30 ns and represents the region around the Crab Nebula.
+// Using the enclosed input parameter file, camera should process this
+// file without problems.
+//
+// 2) The README for the previous version of root_camera
+//
+// README for a preliminary version of the 
+// root_camera program. 
+//
+// root_camera is based on the program "camera"of Jose Carlos
+// Gonzalez. It was changed in the way that only the pixelisation 
+// and the distibution of the phe to the FADCs works in a 
+// first version. 
+//
+// Using the #undef command most possibilities of the orignal 
+// program are switched of. 
+//
+// The new parts are signed by 
+//
+// - ROOT or __ROOT__ 
+//   nearly all  important codelines for ROOT output are enclosed 
+//   in structures like 
+//   #ifdef __ROOT__ 
+//   
+//     code 
+//
+//   #endif // __ROOT__ 
+//
+//   In same case the new lines are signed by a comment with the word 
+//   ROOT in it. 
+//
+//   For timing of the pulse some variable names are changed. 
+//   (t0, t1, t  -->  t_ini, t_fin, t_1st, t_chan,...) 
+//   Look also for this changes. 
+//
+//   For the new root-file is also a change in readparm-files
+//
+//
+// - __DETAIL_TRIGGER__
+//
+//   This is for the implementation of the current work on trigger 
+//   studies. Because the class MTrigger is not well documented it 
+//   isn´t a part of this tar file. Only a dummy File exists. 
+//
+//
+//
+// With all files in the archive, the root_camera program should run. 
+//
+// A reflector file is in the directory rfl-files
+//
+// ==================================================
+//
+// From now on, use CVS for development!!!!
+//
+//
+//
+// Revision 1.3  1999/10/22 15:01:28  petry
+// version sent to H.K. and N.M. on Fri Oct 22 1999
+//
+// Revision 1.2  1999/10/22 09:44:23  petry
+// first synthesized version which compiles and runs without crashing;
+//
+// Revision 1.1.1.1  1999/10/21 16:35:10  petry
+// first synthesised version
+//
+// Revision 1.13  1999/03/15  14:59:05  gonzalez
+// camera-1_1
+//
+// Revision 1.12  1999/03/02  09:56:10  gonzalez
+// *** empty log message ***
+//
+//
+//!@}
+
+//=EOF
Index: /branches/start/MagicSoft/Simulation/Detector/TimeCam/timecam.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/TimeCam/timecam.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/TimeCam/timecam.h	(revision 4308)
@@ -0,0 +1,526 @@
+//=//////////////////////////////////////////////////////////////////////
+//=
+//= camera                
+//=
+//= @file        camera.h
+//= @desc        Header file
+//= @author      J C Gonzalez
+//= @email       gonzalez@mppmu.mpg.de
+//= @date        Thu May  7 16:24:22 1998
+//=
+//=----------------------------------------------------------------------
+//=
+//= Created: Thu May  7 16:24:22 1998
+//= Author:  Jose Carlos Gonzalez
+//= Purpose: Program for reflector simulation
+//= Notes:   See files README for details
+//=    
+//=----------------------------------------------------------------------
+//=
+//= $RCSfile: timecam.h,v $
+//= $Revision: 1.1.1.1 $
+//= $Author: harald $ 
+//= $Date: 2000-02-08 15:13:44 $
+//=
+//=//////////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+//!@section Source code of |camera.h|.
+
+/*!@"
+
+  This section shows the include file |camera.h|
+
+  @"*/
+
+//=-----------------------------------------------------------
+//!@subsection Include files.
+
+//!@{
+
+#include <iostream.h>
+#include <fstream.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include <math.h>
+#include <sys/types.h>
+#include <dirent.h>
+#include <unistd.h>
+#include <libgen.h>
+
+#include "timecam-v.h"
+
+#include "jcmacros.h"
+#include "jcdebug.h"
+
+#include "creadparam.h"
+#include "atm.h"
+
+#include "lagrange.h"
+
+#include "MCEventHeader.hxx"
+#include "MCCphoton.hxx"
+
+// command line options available
+
+#define COMMAND_LINE_OPTIONS    "f:h"
+
+/*@'
+
+  This is C++, but RANLIB routines are written in pure ANSI C.
+  In order to read easily these routines, we must include
+  the following directive
+  
+*/
+
+extern "C" { 
+#include "ranlib.h"       
+}
+
+// version of the reflector program that can read
+
+#define REFL_PROGRAM reflector
+#define REFL_VERSION 0.3
+
+const char REFL_SIGNATURE[] = GLUE_postp( REFL_PROGRAM, REFL_VERSION );
+
+//!@}
+
+//=------------------------------------------------------------
+//!@subsection Macro-definitions, and constants.
+
+//!@{
+#define SIN60   0.866025403784439
+#define COS60   0.500000000000000
+
+#define RandomNumber  drand48()
+
+#define PIX_ARRAY_SIDE       40
+#define PIX_ARRAY_HALF_SIDE  20
+#define PIXNUM               0
+#define PIXX                 1
+#define PIXY                 2
+
+#define iMAXNUMPIX  595 // total maximum possible number of pixels in the camera
+
+//@ the trigger threshold up to which the maximum passable threshold is tested 
+#define iMAX_THRESHOLD_PHE   50 
+
+//@ number of the 1st. pixel of a sector s in a ring r (central pixel: ring=0)
+#define FIRST_PIXEL(r,s)   ( ((r)>0) ? (3*(r)*((r)-1) + (r)*(s) + 1) : 0 )
+
+//@ number of the pixels include in a camera of r pixels
+#define NUMBER_PIXELS(r)   ( ((r)>0) ? FIRST_PIXEL((r)+1,0) : 1 )
+
+//@ now we define the list CT_ITEM_LIST of possible items in the CT def. file
+#define CT_ITEM_LIST  /* LIST OF ITEMS IN THE CT DEFINITION FILE */  \
+T(type),              /* type of definition file */                  \
+T(focal_distance),    /* std(focal distance) */                      \
+T(focal_std),         /* focal distance */                           \
+T(point_spread),      /* std(point spread)   */                      \
+T(point_std),         /* point spread   */                           \
+T(adjustment_dev),    /* std of adjustment deviation   */            \
+T(black_spot),        /* radius of the black spot in center of mirror */ \
+T(n_mirrors),         /* number of mirrors */                        \
+T(r_mirror),          /* radius of one mirror */                     \
+T(camera_width),      /* camera width */                             \
+T(n_pixels),          /* total number of pixels in the camera */     \
+T(n_centralpixels),   /* number of central pixels in the camera */   \
+T(n_gappixels),       /* number of gap pixels in the camera */       \
+T(pixel_width),       /* pixel width */                              \
+T(define_mirrors)     /* this entry is followed by the def. of pixels */
+  
+#define T(x)  x               //@< define T() as the name as it is
+
+enum CT_ITEM_TYPE {
+  CT_ITEM_LIST
+};
+
+#undef T
+
+#define T(x)  #x              //@< define T() as the string of x
+
+const char *const CT_ITEM_NAMES[] = {
+  CT_ITEM_LIST
+};
+
+#undef T
+
+
+// TYPE=0  (CT1)
+//     i   s   rho   theta   x   y   z   thetan  phin  xn   yn   zn
+//
+//      i : number of the mirror
+//      s : arc length [cm]
+//    rho : polar rho of the position of the center of the mirror [cm]
+//  theta : polar angle of the position of the center of the mirror [cm]
+//      x : x coordinate of the center of the mirror [cm]
+//      y : y coordinate of the center of the mirror [cm]
+//      z : z coordinate of the center of the mirror [cm]
+// thetan : polar theta angle of the direction where the mirror points to
+//   phin : polar phi angle of the direction where the mirror points to
+//     xn : xn coordinate of the normal vector in the center (normalized)
+//     yn : yn coordinate of the normal vector in the center (normalized)
+//     zn : zn coordinate of the normal vector in the center (normalized)
+//
+// TYPE=1  (MAGIC)
+//     i  f   sx   sy   x   y   z   thetan  phin 
+//
+//      i : number of the mirror
+//      f : focal distance of that mirror
+//     sx : curvilinear coordinate of mirror's center in X[cm]
+//     sy : curvilinear coordinate of mirror's center in X[cm]
+//      x : x coordinate of the center of the mirror [cm]
+//      y : y coordinate of the center of the mirror [cm]
+//      z : z coordinate of the center of the mirror [cm]
+// thetan : polar theta angle of the direction where the mirror points to
+//   phin : polar phi angle of the direction where the mirror points to
+//     xn : xn coordinate of the normal vector in the center (normalized)
+//     yn : yn coordinate of the normal vector in the center (normalized)
+//     zn : zn coordinate of the normal vector in the center (normalized)
+
+#define CT_I       0
+
+#define CT_S       1
+#define CT_RHO     2
+#define CT_THETA   3
+
+#define CT_FOCAL   1
+#define CT_SX      2
+#define CT_SY      3
+
+#define CT_X       4
+#define CT_Y       5
+#define CT_Z       6
+#define CT_THETAN  7
+#define CT_PHIN    8
+#define CT_XN      9
+#define CT_YN     10
+#define CT_ZN     11
+
+#define CT_NDATA  12
+ 
+//!@}
+
+//=------------------------------------------------------------
+//!@subsection data types
+
+struct camera { /* camera parameters for imaging */
+  int inumpixels;
+  int inumcentralpixels;
+  int inumgappixels;
+  int inumbigpixels;
+  double dpixdiameter_cm; /* diameter of the central and gap pixels in centimeters */
+  double dpixsizefactor[iMAXNUMPIX]; /* size of the pixel relative to  dpixdiameter_deg */
+  double dxc[iMAXNUMPIX]; /* Pixel coordinates in camera coordinate system (x points from pixel 1 to 2). */
+  double dyc[iMAXNUMPIX]; /* The numbering of the pixels in these arrays starts at 0! */
+  double dxpointcorr_deg; /* correction of the pixel coordinates; to be added to dxc[] to get correct value */
+  double dypointcorr_deg; /* correction of the pixel coordinates; to be added to dxc[] to get correct value */
+  double di[iMAXNUMPIX]; /* i coordinate in JCs bi-axis hexagonal coordinate system */
+  double dj[iMAXNUMPIX]; /* j coordinate in JCs bi-axis hexagonal coordinate system */
+ 
+};
+
+
+//=------------------------------------------------------------
+//!@subsection Pre-defined file names.
+
+//!@{
+
+#define QE_FILE     "../Data/qe.dat"
+
+//!@}
+
+//=------------------------------------------------------------
+//!@subsection Prototypes of functions.
+
+//!@{
+
+//++
+// prototypes
+//--
+
+#define ONoff(x)  ((x==TRUE) ? "[ ON ]" : "[ off]")
+
+// Under Linux, the nint function does not exist, so we have to define it.
+#define nint(x)  ((int)floor((x)+0.5))
+
+void present(void);
+void usage(void);
+void clean(void);
+void log(const char *funct, char *fmt, ...);
+void error(const char *funct, char *fmt, ...);
+int isA( char * s1, const char * flag );
+void read_ct_file(void);
+int igen_pixel_coordinates(struct camera *cam);
+void read_pixels(struct camera *cam); 
+int pixels_are_neig(int pix1, int pix2);
+int bpoint_is_in_pix(double dx, double dy, int ipixnum, struct camera *pcam); 
+float  dist_r_P(float a, float b, float c, 
+                float l, float m, float n,
+                float x, float y, float z);
+     
+//!@}
+
+//=------------------------------------------------------------
+//!@subsection Log of this file.
+
+//!@{
+
+/*
+ *$Log: not supported by cvs2svn $
+ *Revision 1.3  1999/11/11 20:29:29  harald
+ *Small changes to run the new version on a linux machine.
+ *
+ *Revision 1.2  1999/11/10 07:42:41  harald
+ *Small change to read the right data files in.
+ *
+ *Revision 1.1.1.1  1999/11/05 11:59:31  harald
+ *This the starting point for CVS controlled further developments of the
+ *camera program. The program was originally written by Jose Carlos. 
+ *But here you can find a "rootified" version to the program. This means 
+ *that there is no hbook stuff in it now. Also the output of the
+ *program changed to the MagicRawDataFormat. 
+ *
+ *The "rootification" was done by Dirk Petry and Harald Kornmayer. 
+ *
+ *In the following you can see the README file of that version:
+ *
+ *==================================================
+ *
+ *Fri Oct 22  1999   D.P.
+ *
+ *The MAGIC Monte Carlo System
+ *
+ *Camera Simulation Programme
+ *---------------------------
+ *
+ *1) Description
+ *
+ *This version is the result of the fusion of H.K.'s
+ *root_camera which is described below (section 2)
+ *and another version by D.P. which had a few additional
+ *useful features.
+ *
+ *The version compiles under Linux with ROOT 2.22 installed
+ *(variable ROOTSYS has to be set).
+ *
+ *Compile as before simply using "make" in the root_camera
+ *directory.
+ *
+ *All features of H.K.'s root_camera were retained.
+ *
+ *Additional features of this version are:
+ *
+ *  a) HBOOK is no longer used and all references are removed.
+ *
+ *  b) Instead of HBOOK, the user is given now the possibility of 
+ *     having Diagnostic data in ROOT format as a complement
+ *     to the ROOT Raw data.
+ *
+ *     This data is written to the file which is determined by
+ *     the new input parameter "diag_file" in the camera parameter
+ *     file.
+ *
+ *     All source code file belonging to this part have filenames
+ *     starting with "MDiag".
+ *
+ *     The user can read the output file using the following commands
+ *     in an interactive ROOT session:
+ *
+ *       	root [0] .L MDiag.so
+ *	root [1] new TFile("diag.root");
+ *	root [2] new TTreeViewer("T");
+ *	
+ *     This brings up a viewer from which all variables of the
+ *     TTree can be accessed and histogrammed. This example
+ *     assumes that you have named the file "diag.root", that
+ *     you are using ROOT version 2.22 or later and that you have
+ *     the shared object library "MDiag.so" which is produced
+ *     by the Makefile along with the executable "camera".
+ *       
+ * !   The contents of the so-called diag file is not yet fixed.
+ * !   At the moment it is what J.C.G. used to put into the HBOOK
+ * !   ntuple. In future versions the moments calculation can be
+ * !   removed and the parameter list be modified correspondingly.
+ *
+ *  c) Now concatenated reflector files can be read. This is useful
+ *     if you have run the reflector with different parameters but
+ *     you want to continue the analysis with all reflector data
+ *     going into ONE ROOT outputfile.
+ *
+ *     The previous camera version contained a bug which made reading 
+ *     of two or more concatenated reflector files impossible.
+ *
+ *  d) The reflector output format was changed. It is now version
+ *     0.4 .
+ *     The change solely consists in a shortening of the flag
+ *     definition in the file 
+ *
+ *           include-MC/MCCphoton.hxx  
+ *
+ * !   IF YOU WANT TO READ REFLECTOR FORMAT 0.3, you can easily
+ * !   do so by recompiling camera with the previous version of
+ * !   include-MC/MCCphoton.hxx.
+ *
+ *     The change was necessary for saving space and better
+ *     debugging. From now on, this format can be frozen.
+ *
+ * !   For producing reflector output in the new format, you
+ * !   of course have to recompile your reflector with the
+ * !   new include-MC/MCCphoton.hxx .
+ *
+ *  e) A first version of the pixelization with the larger
+ *     outer pixels is implemented. THIS IS NOT YET FULLY
+ *     TESTED, but first rough tests show that it works
+ *     at least to a good approximation.
+ *
+ *     The present version implements the camera outline
+ *     with 18 "gap-pixels" and 595 pixels in total as
+ *     shown in 
+ *
+ *        http://sarastro.ifae.es/internal/home/hardware/camera/numbering.ps
+ *
+ *     This change involved 
+ *
+ *	(i) The file pixels.dat is no longer needed. Instead
+ *          the coordinates are generated by the program itself
+ *          (takes maybe 1 second). In the file 
+ *
+ *		pixel-coords.txt
+ *
+ *	  in the same directory as this README, you find a list
+ *          of the coordinates generated by this new routine. It
+ *          has the format
+ *
+ *              number   i   j   x  y  size-factor
+ *
+ *          where i and j are J.C.G.'s so called biaxis hexagonal
+ *          coordinates (for internal use) and x and y are the
+ *          coordinates of the pixel centers in the standard camera
+ *          coordinate system in units of centimeters. The value
+ *          of "size-factor" determines the linear size of the pixel
+ *          relative to the central pixels. 
+ *
+ *        (ii) The magic.def file has two additional parameters
+ *          which give the number of central pixels and the
+ *          number of gap pixels
+ *
+ *        (iii) In camera.h and camera.cxx several changes were 
+ *          necessary, among them the introduction of several
+ *          new functions 
+ *
+ *     The newly suggested outline with asymmetric Winston cones
+ *     will be implemented in a later version.
+ *
+ *  f) phe files can no longer be read since this contradicts
+ *     our philosophy that the analysis should be done with other
+ *     programs like e.g. EVITA and not with "camera" itself.
+ *     This possibility was removed. 
+ *
+ *  g) ROOT is no longer invoked with an interactive interface.
+ *     In this way, camera can better be run as a batch program and
+ *     it uses less memory.
+ *
+ *  h) small changes concerning the variable "t_chan" were necessary in
+ *     order to avoid segmentation faults: The variable is used as an
+ *     index and it went sometimes outside the limits when camera
+ *     was reading proton data. This is because the reflector files
+ *     don't contain the photons in a chronological order and also
+ *     the timespread can be considerably longer that the foreseen
+ *     digitisation timespan. Please see the source code of camera.cxx
+ *     round about line 1090.
+ *
+ *  j) several unused variables were removed, a few warning messages
+ *     occur when you compile camera.cxx but these can be ignored at
+ *     the moment.
+ *
+ *In general the program is of course not finished. It still needs
+ *debugging, proper trigger simulation, simulation of the asymmetric
+ *version of the outer pixels, proper NSB simulation, adaption of
+ *the diag "ntuple" contents to our need and others small improvements.
+ *
+ *In the directory rfl-files there is now a file in reflector format 0.4
+ *containing a single event produced by the starfiled adder. It has
+ *a duration of 30 ns and represents the region around the Crab Nebula.
+ *Using the enclosed input parameter file, camera should process this
+ *file without problems.
+ *
+ *2) The README for the previous version of root_camera
+ *
+ *README for a preliminary version of the 
+ *root_camera program. 
+ *
+ *root_camera is based on the program "camera"of Jose Carlos
+ *Gonzalez. It was changed in the way that only the pixelisation 
+ *and the distibution of the phe to the FADCs works in a 
+ *first version. 
+ *
+ *Using the #undef command most possibilities of the orignal 
+ *program are switched of. 
+ *
+ *The new parts are signed by 
+ *
+ *- ROOT or __ROOT__ 
+ *  nearly all  important codelines for ROOT output are enclosed 
+ *  in structures like 
+ *  #ifdef __ROOT__ 
+ *  
+ *    code 
+ *
+ *  #endif __ROOT__ 
+ *
+ *  In same case the new lines are signed by a comment with the word 
+ *  ROOT in it. 
+ *
+ *  For timing of the pulse some variable names are changed. 
+ *  (t0, t1, t  -->  t_ini, t_fin, t_1st, t_chan,...) 
+ *  Look also for this changes. 
+ *
+ *  For the new root-file is also a change in readparm-files
+ *
+ *
+ *- __DETAIL_TRIGGER__
+ *
+ *  This is for the implementation of the current work on trigger 
+ *  studies. Because the class MTrigger is not well documented it 
+ *  isn´t a part of this tar file. Only a dummy File exists. 
+ *
+ *
+ *
+ *With all files in the archive, the root_camera program should run. 
+ *
+ *A reflector file is in the directory rfl-files
+ *
+ *==================================================
+ *
+ *From now on, use CVS for development!!!!
+ *
+ *
+ *
+ *Revision 1.3  1999/10/22 15:32:56  petry
+ *tidied-up version, really sent to H.K. and N.M., 22-10-99
+ *
+ *Revision 1.2  1999/10/22 15:01:28  petry
+ *version sent to H.K. and N.M. on Fri Oct 22 1999
+ *
+ *Revision 1.1.1.1  1999/10/21 16:35:10  petry
+ *first synthesised version
+ *
+ * Revision 1.8  1999/03/15  14:59:06  gonzalez
+ * camera-1_1
+ *
+ * Revision 1.7  1999/03/02  09:56:11  gonzalez
+ * *** empty log message ***
+ *
+ * Revision 1.6  1999/01/14  17:32:40  gonzalez
+ * Added to camera the STDIN input option (data_from_input)
+ *
+ */
+
+//!@}
+//=EOF
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/COREvent.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/COREvent.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/COREvent.cxx	(revision 4308)
@@ -0,0 +1,13 @@
+/////////////////////////////////////////////////////////////////
+//
+// COREvent
+//
+//  Created: Tue Apr 28 16:14:05 1998
+//  Author:  Jose Carlos Gonzales
+//  Purpose: Base class for Event-classes
+//  Notes:   
+//
+/////////////////////////////////////////////////////////////////
+
+#include "COREvent.hxx"
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/COREvent.hxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/COREvent.hxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/COREvent.hxx	(revision 4308)
@@ -0,0 +1,74 @@
+/////////////////////////////////////////////////////////////////
+//
+// COREvent
+//
+//  Created: Tue Apr 28 16:14:05 1998
+//  Author:  Jose Carlos Gonzales
+//  Purpose: Base class for Event-classes
+//  Notes:   
+//
+/////////////////////////////////////////////////////////////////
+
+#ifndef COREvent_Class
+#define COREvent_Class
+
+#ifdef __ROOT__
+#include "TROOT.h"
+#include "TObject.h"
+#else // not __ROOT__
+#include "Rtypes.h"
+#endif
+
+#include "COREventHeader.hxx"
+
+class COREvent {
+
+public:
+  Int_t           NCphotons;
+  Float_t         TimeBegin;
+  Float_t         TimeEnd;
+  COREventHeader  EvtHdr;
+  UInt_t          Flag;
+
+public:
+  COREvent(void) {} // default constructor
+  virtual ~COREvent(void) {} // default destructor
+
+  // set number of Cphotons for this event
+  inline void SetNCphotons( Int_t n ) { NCphotons = n; }
+
+  // set flag with a number
+  inline void SetFlag( UInt_t f ) { Flag = f; }
+
+  // toggle flag bit number b
+  inline void ToggleFlagBit( UInt_t b ) { }
+
+  // get number of Cherenkov photons
+  inline Int_t GetNCphotons() const { return NCphotons; }
+
+  // get EventHeader pointer
+  inline COREventHeader *GetHeader() { return &EvtHdr; }
+
+  // Get flag value
+  inline UInt_t GetFlag() const { return Flag; }
+
+  // get status of flag bit number b
+  inline UInt_t GetFlagBit( UInt_t b ) { return ( Flag && 1 << (b-1) ); }
+
+  // set times for this event (first and last Cherenkov photons)
+  void SetTimes( Float_t t1, Float_t t2 ) {
+	TimeBegin = t1;
+	TimeEnd = t2;
+  }
+
+  // get times of this event (first and last Cherenkov photons)
+  Float_t GetTimes(Float_t *t1, Float_t *t2) const { 
+	*t1 = TimeBegin;
+	*t2 = TimeEnd;
+	return (TimeEnd - TimeBegin); 
+  }
+
+};
+
+#endif  // not defined COREvent_Class
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/COREventHeader.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/COREventHeader.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/COREventHeader.cxx	(revision 4308)
@@ -0,0 +1,105 @@
+/////////////////////////////////////////////////////////////////
+//
+// COREventHeader
+//
+//  Created: Tue Apr 28 16:27:14 1998
+//  Author:  Jose Carlos Gonzales
+//  Purpose: Base class for EventHeader-classes
+//  Notes:   
+//
+/////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+// @section Source code of {\tt COREventHeader.cxx}
+
+// @subsection Class {\em COREventHeader}: Implementation
+
+// @code
+
+#include "COREventHeader.hxx"
+
+void 
+COREventHeader::print(void) {
+
+  cout << "  EVTH           :" << (char*)EVTH << endl;
+  cout << "  EvtNumber      :" << EvtNumber << endl;
+  cout << "  PrimaryID      :" << PrimaryID << endl;
+  cout << "  Etotal         :" << Etotal    << endl;
+  cout << "  Thick0         :" << Thick0    << endl;
+  cout << "  FirstTarget    :" << FirstTarget << endl;
+  cout << "  zFirstInt      :" << zFirstInt << endl;
+  cout << "  p[3]           :" << p[0] << ' ' << p[1] << ' ' << p[2] << endl;
+  cout << "  Theta          :" << Theta  << endl;
+  cout << "  Phi            :" << Phi  << endl;
+                                
+  cout << "  NumRndSeq      :" << NumRndSeq << endl;
+                                
+  cout << "  RunNumber      :" << RunNumber << endl;
+  cout << "  DateRun        :" << DateRun << endl;
+  cout << "  VersionPGM     :" << VersionPGM << endl;
+                                
+  cout << "  NumObsLev      :" << NumObsLev << endl;
+  cout << "  HeightLev[0]   :" << HeightLev[0]  << endl;
+                                
+  cout << "  SlopeSpec      :" << SlopeSpec << endl;
+  cout << "  ELowLim        :" << ELowLim    << endl;
+  cout << "  EUppLim        :" << EUppLim    << endl;
+                                
+  cout << "  Ecutoffh       :" << Ecutoffh   << endl;
+  cout << "  Ecutoffm       :" << Ecutoffm   << endl;
+  cout << "  Ecutoffe       :" << Ecutoffe   << endl;
+  cout << "  Ecutoffg       :" << Ecutoffg   << endl;
+                                
+  cout << "  NFLAIN         :" << NFLAIN << endl;
+  cout << "  NFLDIF         :" << NFLDIF << endl;
+  cout << "  NFLPI0         :" << NFLPI0 << endl;
+  cout << "  NFLPIF         :" << NFLPIF << endl;
+  cout << "  NFLCHE         :" << NFLCHE << endl;
+  cout << "  NFRAGM         :" << NFRAGM  << endl;
+                                
+  cout << "  Bx             :" << Bx << endl;
+  cout << "  By             :" << By << endl;
+                                
+  cout << "  EGS4yn         :" << EGS4yn << endl;
+  cout << "  NKGyn          :" << NKGyn << endl;
+  cout << "  GHEISHAyn      :" << GHEISHAyn << endl;
+  cout << "  VENUSyn        :" << VENUSyn << endl;
+  cout << "  CERENKOVyn     :" << CERENKOVyn << endl;
+  cout << "  NEUTRINOyn     :" << NEUTRINOyn << endl;
+  cout << "  HORIZONTyn     :" << HORIZONTyn << endl;
+  cout << "  COMPUTER       :" << COMPUTER << endl;
+                                
+  cout << "  ThetaMin       :" << ThetaMin << endl;
+  cout << "  ThetaMax       :" << ThetaMax << endl;
+  cout << "  PhiMin         :" << PhiMin << endl;
+  cout << "  PhiMax         :" << PhiMax << endl;
+                                
+  cout << "  CBunchSize     :" << CBunchSize << endl;
+  cout << "  CDetInX        :" << CDetInX << endl;
+  cout << "  CDetInY        :" << CDetInY << endl;
+  cout << "  CSpacInX       :" << CSpacInX << endl;
+  cout << "  CSpacInY       :" << CSpacInY << endl;
+  cout << "  CLenInX        :" << CLenInX << endl;
+  cout << "  CLenInY        :" << CLenInY << endl;
+  cout << "  COutput        :" << COutput << endl;
+                                
+  cout << "  AngleNorthX    :" << AngleNorthX << endl;
+  cout << "  MuonInfo       :" << MuonInfo << endl;
+                                
+  cout << "  StepLength     :" << StepLength << endl;
+  cout << "  CWaveLower     :" << CWaveLower        << endl;
+  cout << "  CWaveUpper     :" << CWaveUpper        << endl;
+  cout << "  Multipl        :" << Multipl        << endl;
+  cout << "  CorePos{1}     :" 
+       << '(' << CorePos[0][0] 
+       << ',' << CorePos[1][0] << ") m" << endl;
+                                
+  cout << "  SpinTheta      :" << SpinTheta  << endl;
+  cout << "  SpinPhi        :" << SpinPhi    << endl;
+
+  cout << flush;
+}
+
+// @endcode << endl;
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/COREventHeader.hxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/COREventHeader.hxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/COREventHeader.hxx	(revision 4308)
@@ -0,0 +1,245 @@
+/////////////////////////////////////////////////////////////////
+//
+// COREventHeader
+//
+//  Created: Tue Apr 28 16:27:14 1998
+//  Author:  Jose Carlos Gonzales
+//  Purpose: Base class for EventHeader-classes
+//  Notes:   
+//
+/////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+// @section Source code of {\tt COREventHeader.hxx}
+
+/* @text
+This section shows the include file {\tt COREventHeader.hxx}
+@endtext */
+
+#ifndef COREventHeader_Class
+#define COREventHeader_Class
+
+// @subsection Include files
+
+// @code
+#ifdef __ROOT__
+#include "TROOT.h"
+#include "TObject.h"
+#else // not __ROOT__
+#include "Rtypes.h"
+#endif
+
+#include <iostream.h>
+#include <iomanip.h>
+#include <fstream.h>
+#include <stdlib.h>
+#include <math.h>
+// @endcode
+
+// @subsection Class {\em COREventHeader}: Definition
+
+// @code
+class COREventHeader {
+
+public:
+  char         EVTH[4];
+  Float_t      EvtNumber;
+  Float_t      PrimaryID;
+  Float_t      Etotal;   
+  Float_t      Thick0;   
+  Float_t      FirstTarget;
+  Float_t      zFirstInt;
+  Float_t      p[3];     
+  Float_t      Theta; 
+  Float_t      Phi; 
+
+  Float_t      NumRndSeq;
+  Float_t      RndData[10][3];
+  
+  Float_t      RunNumber;
+  Float_t      DateRun;
+  Float_t      VersionPGM;
+
+  Float_t      NumObsLev;
+  Float_t      HeightLev[10]; 
+
+  Float_t      SlopeSpec;
+  Float_t      ELowLim;   
+  Float_t      EUppLim;   
+
+  Float_t      Ecutoffh;  
+  Float_t      Ecutoffm;  
+  Float_t      Ecutoffe;  
+  Float_t      Ecutoffg;  
+
+  Float_t      NFLAIN;
+  Float_t      NFLDIF;
+  Float_t      NFLPI0;
+  Float_t      NFLPIF;
+  Float_t      NFLCHE;
+  Float_t      NFRAGM; 
+ 
+  Float_t      Bx;
+  Float_t      By;
+  
+  Float_t      EGS4yn;
+  Float_t      NKGyn;
+  Float_t      GHEISHAyn;
+  Float_t      VENUSyn;
+  Float_t      CERENKOVyn;
+  Float_t      NEUTRINOyn;
+  Float_t      HORIZONTyn;
+  Float_t      COMPUTER;
+
+  Float_t      ThetaMin;
+  Float_t      ThetaMax;
+  Float_t      PhiMin;
+  Float_t      PhiMax;
+
+  Float_t      CBunchSize;
+  Float_t      CDetInX,CDetInY;
+  Float_t      CSpacInX,CSpacInY;
+  Float_t      CLenInX,CLenInY;
+  Float_t      COutput;
+
+  Float_t      AngleNorthX;
+  Float_t      MuonInfo;
+
+  Float_t      StepLength;
+  Float_t      CWaveLower;       
+  Float_t      CWaveUpper;       
+  Float_t      Multipl;       
+  Float_t      CorePos[2][20];   
+
+  Float_t      dmmy1; 
+  Float_t      SpinTheta; 
+  Float_t      SpinPhi;   
+  Float_t      dmmy2[132]; 
+
+public:
+  COREventHeader(void) {}  // default constructor
+
+  virtual ~COREventHeader(void) {}  // default destructor
+  
+  // reads EventHeader from binary input stream
+  Int_t read ( ifstream &is ) {
+    is.read ( (char *)this, sizeof( float ) * 273 ); 
+    return is.gcount();
+  }
+
+  // writes EventHeader to binary output stream
+  Int_t write ( ofstream &os ) {
+    os.write ( (char *)this, sizeof( float ) * 273 ); 
+    return 0;
+  }
+  
+  // get information about the EventHeader
+
+  // print-out of the EVTH
+  void print(void);
+  
+  // get the primary type (GEANT code)
+  inline Float_t get_primary ( void ) { return ( PrimaryID ); }
+
+  // get the total primary energy
+  inline Float_t get_energy ( void ) { return ( Etotal ); }
+  
+  // get the initial zenith angle
+  inline Float_t get_theta ( void ) { return ( Theta ); }
+
+  // get the initial phi angle
+  inline Float_t get_phi ( void ) { return ( Phi ); }
+
+  // get the particle xi angle
+  inline Float_t get_xi ( void ) { return ( SpinTheta ); }
+
+  // get the particle spin-theta angle
+  inline Float_t get_stheta ( void ) { return ( SpinTheta ); }
+
+  // get the particle spin-phi angle
+  inline Float_t get_sphi ( void ) { return ( SpinPhi ); }
+
+  // get the particle real angles of the particle
+  void get_real_direct ( Float_t *theta, Float_t *phi ) { 
+    *theta = acos(cos(Theta)*cos(SpinTheta)+
+                  sin(Theta)*sin(SpinTheta)*cos(fabs(SpinPhi)));
+    *phi = asin(sin(SpinTheta)*sin(fabs(SpinPhi))/sin(*theta));
+    if (SpinPhi<0.0)
+      *phi = Phi - *phi;
+    else
+      *phi = Phi + *phi;
+  }
+
+  // get the spectrum slope
+  inline Float_t get_slope ( void ) { return ( SlopeSpec ); }
+
+  // get the energy range of this run
+  inline void get_energy_range ( Float_t *elow, Float_t *eup ) { 
+    *elow = ELowLim;   
+    *eup = EUppLim;
+  }
+
+  // get the core position
+  inline Float_t get_core ( Float_t *x, Float_t *y, Int_t ncore = 0 ) {
+    *x = CorePos[0][ncore];
+    *y = CorePos[1][ncore];
+    return ( (Float_t) sqrt ( (*x)*(*x) + (*y)*(*y) ) );
+  }
+
+  // get the core position
+  inline Float_t get_core ( Int_t ncore = 0 ) {
+    return ( (Float_t) sqrt ( ((CorePos[0][ncore])*(CorePos[0][ncore]))+
+                              ((CorePos[1][ncore])*(CorePos[1][ncore])) ) );
+  }
+
+  // show the seeds in the console
+  inline void print_seeds ( void ) {
+    Int_t i;
+    cout << "Seeds status at the beginning of this shower:" 
+         << setiosflags(ios::left) << setw(10) << endl;
+    for (i=0; i<NumRndSeq; ++i) {
+      cout << "SEED       " 
+           << RndData[i][0]
+           << RndData[i][1]
+           << RndData[i][2] << endl;
+    }
+    cout << resetiosflags(ios::left);
+  }
+
+  // fill essential information
+  inline void fill ( Float_t theEvtNumber,
+             Float_t thePrimaryID,
+             Float_t theEtotal,   
+             Float_t theFirstTarget,
+             Float_t thezFirstInt,
+             Float_t thepx, 
+             Float_t thepy, 
+             Float_t thepz, 
+             Float_t theTheta, 
+             Float_t thePhi,
+             Float_t theX, 
+             Float_t theY) {
+             
+    strcpy(EVTH,"EVTH");
+    EvtNumber = theEvtNumber; 
+    PrimaryID = thePrimaryID;
+    Etotal    = theEtotal;
+    FirstTarget = theFirstTarget;
+    zFirstInt = thezFirstInt;
+    p[0] = thepx;      
+    p[1] = thepy;      
+    p[2] = thepz;      
+    Theta = theTheta;   
+    Phi = thePhi;      
+    Thick0 = 0.0;        
+    CorePos[0][0] = theX;
+    CorePos[1][0] = theY;
+
+    return; 
+  }
+
+};
+// @endcode
+
+#endif  // not defined COREventHeader_Class
Index: /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/CORParticle.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/CORParticle.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/CORParticle.cxx	(revision 4308)
@@ -0,0 +1,22 @@
+/////////////////////////////////////////////////////////////////
+//
+// CORParticle
+//
+//  Created: Tue Apr 28 16:43:30 1998
+//  Author:  Jose Carlos Gonzales
+//  Purpose: Base class for Particles/Cherenkov photons
+//  Notes:   
+//
+/////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+// @section Source code of {\tt CORParticle.cxx}
+
+// @subsection Class {\em CORParticle}: Implementation
+
+// @code
+
+#include "CORParticle.hxx"
+
+// @endcode
Index: /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/CORParticle.hxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/CORParticle.hxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/CORParticle.hxx	(revision 4308)
@@ -0,0 +1,123 @@
+/////////////////////////////////////////////////////////////////
+//
+// CORParticle
+//
+//  Created: Tue Apr 28 16:43:30 1998
+//  Author:  Jose Carlos Gonzales
+//  Purpose: Base class for Particles/Cherenkov photons
+//  Notes:   
+//
+/////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+// @section Source code of {\tt CORParticle.hxx}
+
+/* @text
+This section shows the include file {\tt CORParticle.hxx}
+@endtext */
+
+#ifndef CORParticle_Class
+#define CORParticle_Class
+
+// @subsection Include files
+
+// @code
+#ifdef __ROOT__
+#include "TROOT.h"
+#include "TObject.h"
+#else // not __ROOT__
+#include "Rtypes.h"
+#endif
+
+#include <iostream.h>
+#include <iomanip.h>
+#include <fstream.h>
+#include <stdlib.h>
+#include <math.h>
+// @endcode
+
+// @subsection Class {\em CORParticle}: Definition
+
+// @code
+class CORParticle {
+
+public:
+  Float_t     w;                // wavelength/type of particle [nm/-]
+  Float_t     x, y;             // position [cm]
+  Float_t     u, v;             // director cosines 
+  Float_t     t;                // time since first interaction [ns]
+  Float_t     h;                // height [cm]
+
+public:
+  CORParticle() {} // default constructor
+
+  // overloaded constructor
+  CORParticle( ifstream &is ) { CORParticle::read( is ); }
+
+  // overloaded constructor
+  CORParticle(Float_t thew, Float_t thex, Float_t they, 
+          Float_t theu, Float_t thev, Float_t thet, Float_t theh) 
+    {
+      w = thew;
+      x = thex;
+      y = they;
+      u = theu;
+      v = thev;
+      t = thet;
+      h = theh;
+    }
+
+  virtual ~CORParticle() {} // default destructor
+
+  // reads photon from binary input stream
+  Int_t read ( ifstream &is ) {
+    int n;
+    is.read ( (char *)this, 7 * sizeof( Float_t ) );   // 
+    return is.gcount();
+  }
+
+  // writes photon to binary output stream
+  Int_t write ( ofstream &os ) {
+    os.write ( (char *)this, 7 * sizeof( Float_t ) );
+    return 0;
+  }
+
+  // fill information
+  inline void fill(Float_t thew, Float_t thex, Float_t they, 
+		   Float_t theu, Float_t thev, Float_t thet, Float_t theh) 
+    {
+      w = thew;
+      x = thex;
+      y = they;
+      u = theu;
+      v = thev;
+      t = thet;
+      h = theh;
+    }
+
+  // get information about the photon
+  inline Float_t get_wl( void ) { 
+    return ( (w>1.0) ? 
+             w - 1000.*((int)floor(w/1000.)) :
+             0.0 ); 
+  }
+  inline Float_t get_id( void ) { return ( w ); }
+  inline Int_t get_particle( void ) { 
+    return ( (int)floor(w/1000.) );
+  }
+  inline Float_t get_x( void ) { return ( x ); }
+  inline Float_t get_y( void ) { return ( y ); }
+  inline Float_t get_u( void ) { return ( u ); }
+  inline Float_t get_v( void ) { return ( v ); }
+  inline Float_t get_h( void ) { return ( h ); }
+  inline Float_t get_t( void ) { return ( t ); }
+                  
+  inline Float_t get_r( void ) { return ( sqrt( x*x + y*y ) ); }
+  inline Float_t get_w( void ) { return ( sqrt( 1.0 - u*u - v*v ) ); }
+};
+
+// @endcode 
+
+#endif  // not defined CORParticle_Class
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/CORStatfile.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/CORStatfile.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/CORStatfile.cxx	(revision 4308)
@@ -0,0 +1,266 @@
+/////////////////////////////////////////////////////////////////
+//
+// CORStatfile
+//
+//  Created: Tue Apr 28 16:14:05 1998
+//  Author:  Jose Carlos Gonzales
+//  Purpose: Base class for Event-classes
+//  Notes:   
+//
+/////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+// @section Source code of {\tt CORStatfile.cxx}
+
+// @subsection Class {\em CORStatfile}: Implementation
+
+// @code
+
+#include "CORStatfile.hxx"
+
+CORStatfile::CORStatfile () 
+{
+  init ( 79 );  // assumes thstep = 10 g/cm2    (790/10 = 79)
+}
+
+CORStatfile::CORStatfile ( Int_t n )
+{
+  init ( n );
+}
+
+void
+CORStatfile::init ( Int_t n ) 
+{
+  Int_t i, k;
+
+  nstep = n;
+
+  evth   = new Float_t[MAXBUF]; 	  // event header
+  evte   = new Float_t[MAXBUF]; 	  // event end
+  
+  nproto = new Int_t[nstep];
+  nprotb = new Int_t[nstep];
+  nneutr = new Int_t[nstep];
+  nneutb = new Int_t[nstep];
+  nphoto = new Int_t[nstep];
+  nelect = new Int_t[nstep];
+  nposit = new Int_t[nstep];
+  nnu    = new Int_t[nstep];
+  nmum   = new Int_t[nstep];
+  nmup   = new Int_t[nstep];
+  npi0   = new Int_t[nstep];
+  npim   = new Int_t[nstep];
+  npip   = new Int_t[nstep];
+  nk0l   = new Int_t[nstep];
+  nk0s   = new Int_t[nstep];
+  nkmi   = new Int_t[nstep];
+  nkpl   = new Int_t[nstep];
+  nhyp   = new Int_t[nstep];
+  ndeut  = new Int_t[nstep];
+  ntrit  = new Int_t[nstep];
+  nalpha = new Int_t[nstep];
+  nother = new Int_t[nstep];
+
+  plong = new Float_t * [9];
+  aplong = new Float_t * [9];
+
+  for ( i=0; i<9; i++ ) {
+	plong[i] = new Float_t[NPLONG];
+	aplong[i] = new Float_t[NPLONG];
+  }
+	
+  for ( i=0; i<9; i++ )
+	for ( k=0; k<NPLONG; k++ )
+	  plong[i][k] = aplong[i][k] = 0.;
+
+  opened = 0;
+  bunch = 1.0;
+}
+
+CORStatfile::~CORStatfile () 
+{
+  Int_t i;
+
+  for ( i=0; i<9; i++ ) {
+	delete [] plong[i];
+	delete [] aplong[i];
+	plong[i] = aplong[i] = NULL;
+  }
+
+  delete [] plong;
+  delete [] aplong;
+  plong = aplong = NULL;
+
+  delete [] evth;
+  delete [] evte;
+  evth = evte = NULL;
+  
+  delete [] nproto;
+  delete [] nprotb;
+  delete [] nneutr;
+  delete [] nneutb;
+  delete [] nphoto;
+  delete [] nelect;
+  delete [] nposit;
+  delete [] nnu;
+  delete [] nmum;
+  delete [] nmup;
+  delete [] npi0;
+  delete [] npim;
+  delete [] npip;
+  delete [] nk0l;
+  delete [] nk0s;
+  delete [] nkmi;
+  delete [] nkpl;
+  delete [] nhyp;
+  delete [] ndeut;
+  delete [] ntrit;
+  delete [] nalpha;
+  delete [] nother;
+
+  nproto = nprotb = nneutr = nneutb = 
+	nphoto = nelect = nposit = nnu =   
+	nmum = nmup = npi0 = npim = npip = 
+	nk0l = nk0s = nkmi = nkpl = nhyp = 
+	ndeut = ntrit = nalpha = nother = NULL;
+
+}
+
+Int_t 
+CORStatfile::openfile ( char *fname )
+{
+  if ( input_file != NULL )
+	input_file.close();
+  input_file.open( fname );
+  opened = 1;
+  return ( ! input_file.bad() );
+}
+
+void
+CORStatfile::closefile ( void )
+{
+  input_file.close();
+  opened = 0;
+}
+
+void
+CORStatfile::read()
+{
+  Int_t i, k;
+  Float_t f;
+
+  input_file.read ( (char *)evth, sizeof (Float_t) * MAXBUF );
+  input_file.read ( (char *)evte, sizeof (Float_t) * MAXBUF );
+  input_file.read ( (char *)&timefirst, sizeof (Float_t) );
+  input_file.read ( (char *)&timelast, sizeof (Float_t) );
+
+  for (i = 0; i < 10; i++) {
+
+      input_file.read ( (char *)(nproto + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nprotb + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nneutr + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nneutb + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nphoto + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nelect + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nposit + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nnu + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nmum + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nmup + i), sizeof (Int_t) );
+      input_file.read ( (char *)(npi0 + i), sizeof (Int_t) );
+      input_file.read ( (char *)(npim + i), sizeof (Int_t) );
+      input_file.read ( (char *)(npip + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nk0l + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nk0s + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nkmi + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nkpl + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nhyp + i), sizeof (Int_t) );
+      input_file.read ( (char *)(ndeut + i), sizeof (Int_t) );
+      input_file.read ( (char *)(ntrit + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nalpha + i), sizeof (Int_t) );
+      input_file.read ( (char *)(nother + i), sizeof (Int_t) );
+
+  }
+
+  input_file.read ( (char *)&ifinnu, sizeof (Int_t) );
+  input_file.read ( (char *)&ifinpi, sizeof (Int_t) );
+  input_file.read ( (char *)&ifinet, sizeof (Int_t) );
+  input_file.read ( (char *)&ifinka, sizeof (Int_t) );
+  input_file.read ( (char *)&ifinhy, sizeof (Int_t) );
+  input_file.read ( (char *)&cerele, sizeof (Int_t) );
+  input_file.read ( (char *)&cerhad, sizeof (Int_t) );
+
+  input_file.read ( (char *)&lpct1, sizeof (Int_t) );
+  input_file.read ( (char *)&nstep, sizeof (Int_t) );
+  input_file.read ( (char *)&thstep, sizeof (Float_t) );
+
+  for (k = 0; k < 9; k++)
+	for (i = 0; i < nstep; i++) {
+	  input_file.read ( (char *)&f, sizeof (Float_t) );
+	  plong[k][i] = f;
+	}
+
+  for (k = 0; k < 9; k++)
+	for (i = 0; i < nstep; i++)
+	  aplong[k][i] += plong[k][i] * bunch;
+  
+}
+
+void
+CORStatfile::write(ofstream &output_file)
+{
+  Int_t i, k;
+  Float_t f = 0.;
+
+  output_file.write ( (char *)evth, sizeof (Float_t) * MAXBUF );
+  output_file.write ( (char *)evte, sizeof (Float_t) * MAXBUF );
+  output_file.write ( (char *)&timefirst, sizeof (Float_t) );
+  output_file.write ( (char *)&timelast, sizeof (Float_t) );
+
+  for (i = 0; i < 10; i++) {
+
+      output_file.write ( (char *)(nproto + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nprotb + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nneutr + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nneutb + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nphoto + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nelect + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nposit + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nnu + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nmum + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nmup + i), sizeof (Int_t) );
+      output_file.write ( (char *)(npi0 + i), sizeof (Int_t) );
+      output_file.write ( (char *)(npim + i), sizeof (Int_t) );
+      output_file.write ( (char *)(npip + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nk0l + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nk0s + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nkmi + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nkpl + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nhyp + i), sizeof (Int_t) );
+      output_file.write ( (char *)(ndeut + i), sizeof (Int_t) );
+      output_file.write ( (char *)(ntrit + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nalpha + i), sizeof (Int_t) );
+      output_file.write ( (char *)(nother + i), sizeof (Int_t) );
+
+  }
+
+  output_file.write ( (char *)&ifinnu, sizeof (Int_t) );
+  output_file.write ( (char *)&ifinpi, sizeof (Int_t) );
+  output_file.write ( (char *)&ifinet, sizeof (Int_t) );
+  output_file.write ( (char *)&ifinka, sizeof (Int_t) );
+  output_file.write ( (char *)&ifinhy, sizeof (Int_t) );
+  output_file.write ( (char *)&cerele, sizeof (Int_t) );
+  output_file.write ( (char *)&cerhad, sizeof (Int_t) );
+
+  output_file.write ( (char *)&lpct1, sizeof (Int_t) );
+  output_file.write ( (char *)&nstep, sizeof (Int_t) );
+  output_file.write ( (char *)&thstep, sizeof (Float_t) );
+
+  for (k = 0; k < 9; k++)
+    for (i = 0; i < nstep; i++) {
+      output_file.write ( (char *)&f, sizeof (Float_t) );
+    }
+  
+}
+
+// @endcode
Index: /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/CORStatfile.hxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/CORStatfile.hxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-CORSIKA/CORStatfile.hxx	(revision 4308)
@@ -0,0 +1,105 @@
+/////////////////////////////////////////////////////////////////
+//
+// CORStatfile
+//
+//  Created: Tue Apr 28 16:14:05 1998
+//  Author:  Jose Carlos Gonzales
+//  Purpose: Base class for Statfiles
+//  Notes:   
+//
+/////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+// @section Source code of {\tt CORStatfile.hxx}
+
+/* @text
+This section shows the include file {\tt CORStatfile.hxx}
+@endtext */
+
+#ifndef CORStatfile_Class
+#define CORStatfile_Class
+
+// @subsection Include files
+
+// @code
+#ifdef __ROOT__
+#include "TROOT.h"
+#include "TObject.h"
+#else // not __ROOT__
+#include "Rtypes.h"
+#endif
+
+#include <iostream.h>
+#include <fstream.h>
+#include <stdlib.h>
+#include <math.h>
+
+#define MAXBUF 273  /* 39*7 */
+#define NSUBBL 21
+#define NPLONG 1041
+// @endcode
+
+// @subsection Class {\em CORStatfile}: Definition
+
+// @code
+class CORStatfile {
+  
+public:
+  Int_t steps;          // steps in the longitudinal distribution
+  Float_t *evth;          // event header
+  Float_t *evte;          // event end
+  Int_t *nproto;          // number of protons
+  Int_t *nprotb;          // number of anti-protons
+  Int_t *nneutr;          // number of neutrons
+  Int_t *nneutb;          // number of 
+  Int_t *nphoto;          // number of 
+  Int_t *nelect;          // number of 
+  Int_t *nposit;          // number of 
+  Int_t *nnu;         // number of 
+  Int_t *nmum;        // number of 
+  Int_t *nmup;        // number of 
+  Int_t *npi0;        // number of 
+  Int_t *npim;        // number of 
+  Int_t *npip;        // number of 
+  Int_t *nk0l;        // number of 
+  Int_t *nk0s;        // number of 
+  Int_t *nkmi;        // number of 
+  Int_t *nkpl;        // number of 
+  Int_t *nhyp;        // number of 
+  Int_t *ndeut;         // number of 
+  Int_t *ntrit;         // number of 
+  Int_t *nalpha;          // number of 
+  Int_t *nother;          // number of 
+  Int_t ifinnu, ifinpi, ifinet, ifinka, ifinhy, cerele, cerhad;
+  Int_t lpct1, nstep;
+  Float_t thstep;
+  Float_t **plong, **aplong;
+  Float_t bunch;
+  Float_t timefirst, timelast;
+  ifstream input_file;
+  Int_t opened;
+
+protected:
+  void init( Int_t n );
+
+public:
+  CORStatfile ( void );   // constructor
+  CORStatfile ( Int_t n );   // overloaded constructor
+  ~CORStatfile ( void );  // destructor
+  // copy constructor defaults
+
+  inline void set_bunch ( Float_t b ) { bunch = b; };
+  void read ();    // reads data from input file
+  void write(ofstream &output_file);  // writes data to given output file
+  Int_t openfile ( char *fname ); // sets and opens new sta* file
+  void closefile (); // sets and opens new sta* file
+  inline Float_t get_tfirst() { return ( timefirst ); }
+  inline Float_t get_tlast() { return ( timelast ); }
+  
+};
+
+// @endcode
+
+#endif // not defined CORStatfile_Class
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/DllImport.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/DllImport.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/DllImport.h	(revision 4308)
@@ -0,0 +1,24 @@
+
+/*
+  This include file defines DllImport/DllExport macro
+  to build DLLs under Windows OS.
+
+  They are defined as dummy for UNIX's
+*/
+
+#ifndef ROOT_DllImport
+#define ROOT_DllImport
+
+#ifndef __CINT__
+#if defined(WIN32) && defined(_DLL)
+#  define DllImport     __declspec( dllimport )
+#  define DllExport     __declspec( dllexport )
+#else
+#  define DllImport
+#  define DllExport
+#endif
+#  define EXTERN       DllImport extern
+#endif
+
+
+#endif
Index: /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/RConfig.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/RConfig.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/RConfig.h	(revision 4308)
@@ -0,0 +1,159 @@
+
+#ifndef ROOT_RConfig
+#define ROOT_RConfig
+
+/*************************************************************************
+ *                                                                       *
+ * RConfig                                                               *
+ *                                                                       *
+ * Defines used by ROOT.                                                 *
+ *                                                                       *
+ *************************************************************************/
+
+/*---- machines --------------------------------------------------------------*/
+
+#ifdef __hpux
+#   define R__HPUX
+#   define R__UNIX
+#   define ANSICPP
+#endif
+
+#ifdef _AIX
+#   define R__AIX
+#   define R__UNIX
+#   define ANSICPP
+#   define NEED_STRCASECMP
+#endif
+
+#ifdef __alpha
+#   define R__ALPHA
+#   define R__UNIX
+#   define ANSICPP
+#   define R__B64
+#   define R__BYTESWAP
+#endif
+
+#ifdef __sun
+#   ifdef __SVR4
+#      define R__SOLARIS
+#      define ANSICPP
+#      ifdef __i386
+#         define R__I386
+#         define R__BYTESWAP
+#      endif
+#   else
+#      define R__SUN
+#      include <stdlib.h>
+#   endif
+#   define R__UNIX
+#   define NEED_STRING
+#   define NEED_SIGJMP
+#endif
+
+#ifdef __sgi
+#   define R__SGI
+#   define R__UNIX
+#   define ANSICPP
+#   define NEED_STRING
+#   define NEED_SIGJMP
+#   ifdef IRIX64
+#     define R__SGI64
+#   endif
+#endif
+
+#if defined(__linux) && !defined(__powerpc)
+#   define R__LINUX
+#   define R__UNIX
+#   define R__BYTESWAP
+#   define NEED_SIGJMP
+#endif
+
+#if defined(__linux) && defined(__powerpc)
+#   define R__MKLINUX
+#   define R__LINUX
+#   define R__UNIX
+#   define NEED_SIGJMP
+#endif
+
+#ifdef __GNUG__
+#   define R__GNU
+#   define ANSICPP
+#endif
+
+#ifdef BORLAND
+#   define MSDOS        /* Windows will always stay MSDOS */
+#   define ANSICPP
+#   define R__INT16
+#   define R__BYTESWAP
+#endif
+
+#ifdef __SC__
+#   define SC
+#   if defined(macintosh)
+#      define R__MAC
+#      define NEED_STRING
+#      define ANSICPP
+#   elif WIN32
+#      define NEED_STRING
+#      define NEED_STRCASECMP
+#      define ANSICPP
+#   else
+#      define MSDOS
+#      define NEED_STRCASECMP
+#   endif
+#endif
+
+#ifdef WIN32
+#   define NEED_STRING
+#   define NEED_STRCASECMP
+#   define ANSICPP
+#   define R__BYTESWAP
+#endif
+
+#ifdef __MWERKS__
+#   define R__MWERKS
+#   define R__MAC
+#   define ANSILIB      /* ANSI C++ Standard Library conformant */
+#   define ANSICPP
+#   define NEED_STRING
+#   define NEED_STRCASECMP
+#endif
+
+
+/*--- memory and object statistics -------------------------------------------*/
+
+/* #define NOSTATS     */
+
+
+/*--- cpp --------------------------------------------------------------------*/
+
+#ifdef ANSICPP
+   /* symbol concatenation operator */
+#   define _NAME1_(name) name
+#   define _NAME2_(name1,name2) name1##name2
+#   define _NAME3_(name1,name2,name3) name1##name2##name3
+
+   /* stringizing */
+#   define _QUOTE_(name) #name
+
+#else
+
+#   define _NAME1_(name) name
+#   define _NAME2_(name1,name2) _NAME1_(name1)name2
+#   define _NAME3_(name1,name2,name3) _NAME2_(name1,name2)name3
+
+#   define _QUOTE_(name) "name"
+
+#endif
+
+
+/*---- misc ------------------------------------------------------------------*/
+
+#ifdef R__GNU
+#   define SafeDelete(p) { if (p) { delete p; p = 0; } }
+#else
+#   define SafeDelete(p) { delete p; p = 0; }
+#endif
+
+#endif
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/Rtypes.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/Rtypes.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/Rtypes.h	(revision 4308)
@@ -0,0 +1,151 @@
+
+#ifndef ROOT_Rtypes
+#define ROOT_Rtypes
+
+// Copyright (C) 1994 CodeCERN. All rights reserved.
+
+//////////////////////////////////////////////////////////////////////////
+//                                                                      //
+// Rtypes                                                               //
+//                                                                      //
+// Basic types used by ROOT.                                            //
+//                                                                      //
+//////////////////////////////////////////////////////////////////////////
+
+
+#ifndef ROOT_RConfig
+//*KEEP,RConfig.
+#include "RConfig.h"
+//*KEND.
+#endif
+
+#include <stdio.h>
+
+//*KEEP,DllImport,T=C.
+#include "DllImport.h"
+//*KEND.
+
+//---- types -------------------------------------------------------------------
+
+typedef char           Char_t;      //Signed Character 1 byte
+typedef unsigned char  UChar_t;     //Unsigned Character 1 byte
+typedef short          Short_t;     //Signed Short integer 2 bytes
+typedef unsigned short UShort_t;    //Unsigned Short integer 2 bytes
+#ifdef R__INT16
+typedef long           Int_t;       //Signed integer 4 bytes
+typedef unsigned long  UInt_t;      //Unsigned integer 4 bytes
+#else
+typedef int            Int_t;       //Signed integer 4 bytes
+typedef unsigned int   UInt_t;      //Unsigned integer 4 bytes
+#endif
+#ifdef R__B64
+typedef int            Seek_t;      //File pointer
+typedef long           Long_t;      //Signed long integer 4 bytes
+typedef unsigned long  ULong_t;     //Unsigned long integer 4 bytes
+#else
+typedef int            Seek_t;      //File pointer
+typedef long           Long_t;      //Signed long integer 8 bytes
+typedef unsigned long  ULong_t;     //Unsigned long integer 8 bytes
+#endif
+typedef float          Float_t;     //Float 4 bytes
+typedef double         Double_t;    //Float 8 bytes
+typedef char           Text_t;      //General string
+typedef unsigned char  Bool_t;      //Boolean (0=false, 1=true)
+typedef unsigned char  Byte_t;      //Byte (8 bits)
+typedef short          Version_t;   //Class version identifier
+typedef char           Option_t;    //Option string
+typedef int            Ssiz_t;      //String size
+typedef float          Real_t;      //TVector and TMatrix element type
+
+typedef void         (*VoidFuncPtr_t)();  //pointer to void function
+
+
+//---- constants ---------------------------------------------------------------
+
+#ifndef NULL
+#define NULL 0
+#endif
+
+const Bool_t kTRUE   = 1;
+const Bool_t kFALSE  = 0;
+
+const Int_t  kMaxInt      = 2147483647;
+const Int_t  kMaxShort    = 32767;
+const size_t kBitsPerByte = 8;
+const Ssiz_t kNPOS        = ~(Ssiz_t)0;
+
+
+//--- bit manipulation ---------------------------------------------------------
+
+#define BIT(n)       (1 << (n))
+#define SETBIT(n,i)  ((n) |= BIT(i))
+#define CLRBIT(n,i)  ((n) &= ~BIT(i))
+#define TESTBIT(n,i) ((Bool_t)(((n) & BIT(i)) != 0))
+
+
+//---- debug global ------------------------------------------------------------
+
+EXTERN Bool_t gDebug;
+
+
+//---- ClassDef macros ---------------------------------------------------------
+
+class TClass;
+class TBuffer;
+class TMemberInspector;
+
+extern TClass *CreateClass(const char *cname, Version_t id,
+                           const char *dfil, const char *ifil,
+                           Int_t dl, Int_t il);
+
+#define ClassDef(name,id) \
+private: \
+  static TClass *fgIsA; \
+public: \
+  static const char *DeclFileName() { return __FILE__; } \
+  static int DeclFileLine() { return __LINE__; } \
+  static const char *ImplFileName(); \
+  static int ImplFileLine(); \
+  static Version_t Class_Version() { return id; } \
+  static TClass *Class(); \
+  static void Dictionary(); \
+  virtual TClass *IsA() const { return name::Class(); } \
+  virtual void ShowMembers(TMemberInspector &insp, char *parent); \
+  virtual void Streamer(TBuffer &b); \
+  friend TBuffer &operator>>(TBuffer &buf, name *&obj);
+
+#define _ClassInit_(name) \
+   extern void AddClass(const char *cname, Version_t id, VoidFuncPtr_t dict); \
+   extern void RemoveClass(const char *cname); \
+   class _NAME3_(__,name,Init__) { \
+      public: \
+         _NAME3_(__,name,Init__)() { \
+            AddClass(_QUOTE_(name), name::Class_Version(), \
+                     &name::Dictionary); \
+         } \
+         ~_NAME3_(__,name,Init__)() { \
+            RemoveClass(_QUOTE_(name)); \
+         } \
+   }; \
+   static _NAME3_(__,name,Init__) _NAME3_(__g,name,Init__);
+
+#define _ClassImp_(name) \
+   TClass *name::Class() \
+          { if (!fgIsA) name::Dictionary(); return fgIsA; } \
+   const char *name::ImplFileName() { return __FILE__; } \
+   int name::ImplFileLine() { return __LINE__; } \
+   TClass *name::fgIsA = 0; \
+   _ClassInit_(name)
+
+#define ClassImp(name) \
+   void name::Dictionary() \
+   { \
+      TClass *c = CreateClass(_QUOTE_(name), Class_Version(), \
+                              DeclFileName(), ImplFileName(), \
+                              DeclFileLine(), ImplFileLine()); \
+      fgIsA = c; \
+   } \
+   _ClassImp_(name)
+
+#endif
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/jcdebug.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/jcdebug.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/jcdebug.h	(revision 4308)
@@ -0,0 +1,53 @@
+/********************************************************************** 
+ ********************************************************************** 
+ * jcdebug                                                               
+ *                                                                      
+ *   Created: Mon Jan 12 12:36:19 1998
+ *   Author.: Jose Carlos Gonzales
+ *   Notes..: 
+ *                                                                      
+ ********************************************************************** 
+ **********************************************************************/
+
+// @T \newpage
+
+// @section Source code of {\tt jcdebug.h}
+
+/* Begin */
+
+#ifndef __JC_DEBUG__
+#define __JC_DEBUG__
+
+// @code
+
+int DBGi;
+
+#ifdef __DEBUG__
+
+#define DBGvec(a,n,m)    {puts("DBG> vector " #a);\
+               for(DBGi=n;DBGi<=m;DBGi++)\
+                 printf("     " #a "[%d] = %e \012",\
+                    DBGi, (a[DBGi]));\
+                 puts("");}
+
+#define DBG(a)           { printf("DBG> " #a " = %g\n", (a)); }
+#define DBGi(a)          { printf("DBG> " #a " = %d\n", (a)); }
+#define DBGmsg(m)        { puts("DBG> " #m); }
+
+#else // not __DEBUG__
+
+#define DBGvec(a,n,m)    
+#define DBG(a)           
+#define DBGi(a)           
+#define DBGmsg(m)       
+
+#endif // not __DEBUG__
+
+
+#endif // __JC_DEBUG__
+
+// @endcode
+
+/* End */
+
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/jcmacros.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/jcmacros.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/jcmacros.h	(revision 4308)
@@ -0,0 +1,58 @@
+/********************************************************************** 
+ ********************************************************************** 
+ * jcmacros                                                               
+ *                                                                      
+ *   Created: Mon Jan 12 10:14:05 1998
+ *   Author.: Jose Carlos Gonzales
+ *   Notes..: 
+ *                                                                      
+ ********************************************************************** 
+ **********************************************************************/
+
+// @T \newpage
+
+// @section Source code of {\tt jcmacros.h}
+
+// @code
+
+/* Begin */
+
+#ifndef __JC_MACROS__
+#define __JC_MACROS__
+
+#define TRUE            1
+#define FALSE           0
+#define YES             1.
+#define NO              0.
+                        
+#define SQR(x)          ((x)*(x))
+#define CUB(x)          ((x)*(x)*(x))
+#define ABS(x)          (((x)<0)? -(x) : (x))
+#define SGN(x)          (((x)>0.)? 1. : -1.)
+#define MAX(a,b)        (((a)>(b))?(a):(b))
+#define MIN(a,b)        (((a)<(b))?(a):(b))
+#define DEG2RAD         (M_PI/180.)
+#define NORM(x)       (sqrt(SQR(x[0])+SQR(x[1])+SQR(x[2]))) /* Norm(vector) */
+#define PROD(x,y)     ((x[0]*y[0])+(x[1]*y[1])+(x[2]*y[2])) /* Direct.Prod. */
+
+#define DEG2RAD       (M_PI/180.)   /* Degrees to Radians conversion factor */
+#define DEG360        (2.*M_PI)                                 /* 2 Pi     */
+#define DEG180        (M_PI)                                    /*   Pi     */
+#define DEG120        (2.*M_PI/3.)                              /* 2 Pi / 3 */
+#define DEG90         (M_PI/2.)                                 /*   Pi / 2 */
+#define DEG60         (M_PI/3.)                                 /*   Pi / 3 */
+#define DEG30         (M_PI/6.)                                 /*   Pi / 6 */
+#define RAD(x)        ((x)*0.0174532925199433)
+#define DEG(x)        ((x)*57.2957795130823)
+
+
+#define RANDOM        ((float)drand48())           /* Uniform random number */
+
+                                       /* Define Null pointer (in fact,     */ 
+#define NIL           (void *)0        /* there is a NULL=(void*)0 defined) */
+
+#endif // __JC_MACROS__
+
+// @endcode
+
+/* End */
Index: /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/lagrange.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/lagrange.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/lagrange.h	(revision 4308)
@@ -0,0 +1,76 @@
+/////////////////////////////////////////////////////////////////
+//
+// lagrange
+//_______________________________________________________________
+//
+//  Created: Sun Jun 14 14:10:18 MET DST 1998
+//  Author:  Jose Carlos Gonzales
+//  Purpose: Macro for Lagrange interpolation of 3rd. order
+//  Notes:   
+//  
+/////////////////////////////////////////////////////////////////
+
+
+// @T \newpage
+
+// @section Source code of {\tt lagrange.h}
+
+// @code
+
+//++
+// Formula for Lagrange interpolation of 3rd. order
+// x: value to be interpolated
+// t: table(2xN), table[0]: abscissas, table[1]: ordinates
+// n: higher value of abscissas, such that t[0][n] <= x
+//--
+
+#define Lagrange(t,n,x)   ((t[1][ (n) ]*((x-t[0][(n)+1])*(x-t[0][(n)+2]))/ \
+                ((t[0][ (n) ]-t[0][(n)+1])*(t[0][ (n) ]-t[0][(n)+2])))+ \
+               (t[1][(n)+1]*((x-t[0][ (n) ])*(x-t[0][(n)+2]))/ \
+                ((t[0][(n)+1]-t[0][ (n) ])*(t[0][(n)+1]-t[0][(n)+2])))+ \
+               (t[1][(n)+2]*((x-t[0][ (n) ])*(x-t[0][(n)+1]))/ \
+                ((t[0][(n)+2]-t[0][ (n) ])*(t[0][(n)+2]-t[0][(n)+1]))) \
+               )                             
+  
+//++
+// Macro to find, and save in variable "m", the value of 
+// "n" to be used in the "Lagrange{t,n,x)" macro
+//--
+
+#define FindLagrange(t,m,x)  {m = 0; while (t[0][++m] < x);} --m
+
+// @endcode
+
+// @subsection Sample program 
+
+// @code
+
+//////////////////////////////////////////////////////////////////////////////
+// Here follows a sample program using this two macros
+//////////////////////////////////////////////////////////////////////////////
+// #include <iostream.h>
+// #include "lagrange.h"
+// 
+// void main(void)
+// {
+//   float data[2][20];
+//   int i, number;
+//   float x, y;
+// 
+//   for (i=0; i<20; ++i) {
+//     data[0][i] = i*10.;
+//     data[1][i] = 3.0*data[0][i]*data[0][i];
+//     cout << data[0][i] << ' ' << data[1][i] << '\n';
+//   }
+// 
+//   while (1==1) {
+//     cout << "Enter x = ";
+//     cin >> x;
+//     FindLagrange(data,number,x);
+//     y = Lagrange(data,number,x);
+//     cout << x << ' ' << y << '\n';
+//   }
+// }
+//////////////////////////////////////////////////////////////////////////////   
+
+// @endcode
Index: /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/ranlib.h
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/ranlib.h	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-GENERAL/ranlib.h	(revision 4308)
@@ -0,0 +1,33 @@
+/* Prototypes for all user accessible RANLIB routines */
+
+extern void advnst(long k);
+extern float genbet(float aa,float bb);
+extern float genchi(float df);
+extern float genexp(float av);
+extern float genf(float dfn, float dfd);
+extern float gengam(float a,float r);
+extern void genmn(float *parm,float *x,float *work);
+extern void genmul(long n,float *p,long ncat,long *ix);
+extern float gennch(float df,float xnonc);
+extern float gennf(float dfn, float dfd, float xnonc);
+extern float gennor(float av,float sd);
+extern void genprm(long *iarray,int larray);
+extern float genunf(float low,float high);
+extern void getsd(long *iseed1,long *iseed2);
+extern void gscgn(long getset,long *g);
+extern long ignbin(long n,float pp);
+extern long ignnbn(long n,float p);
+extern long ignlgi(void);
+extern long ignpoi(float mu);
+extern long ignuin(long low,long high);
+extern void initgn(long isdtyp);
+extern long mltmod(long a,long s,long m);
+extern void phrtsd(char* phrase,long* seed1,long* seed2);
+extern float ranf(void);
+extern void setall(long iseed1,long iseed2);
+extern void setant(long qvalue);
+extern void setgmn(float *meanv,float *covm,long p,float *parm);
+extern void setsd(long iseed1,long iseed2);
+extern float sexpo(void);
+extern float sgamma(float a);
+extern float snorm(void);
Index: /branches/start/MagicSoft/Simulation/Detector/include-MC/MCCphoton.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-MC/MCCphoton.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-MC/MCCphoton.cxx	(revision 4308)
@@ -0,0 +1,23 @@
+/////////////////////////////////////////////////////////////////
+//
+// MCCphoton
+//
+//  Created: Tue Apr 28 16:43:30 1998
+//  Author:  Jose Carlos Gonzales
+//  Purpose: Base class for Particles/Cherenkov photons
+//  Notes:   
+//
+/////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+// @section Source code of {\tt MCCphoton.cxx}
+
+// @subsection Class {\em MCCphoton}: Implementation
+
+// @code
+
+#include "MCCphoton.hxx"
+
+// @endcode
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-MC/MCCphoton.hxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-MC/MCCphoton.hxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-MC/MCCphoton.hxx	(revision 4308)
@@ -0,0 +1,135 @@
+/////////////////////////////////////////////////////////////////
+//
+// MCCphoton
+//
+//  Created: Tue Apr 28 16:43:30 1998
+//  Author:  Jose Carlos Gonzales
+//  Purpose: Base class for Particles/Cherenkov photons
+//  Notes:   
+//
+/////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+// @section Source code of {\tt MCCphoton.hxx}
+
+/* @text
+This section shows the include file {\tt MCCphoton.hxx}
+@endtext */
+
+#ifndef MCCphoton_Class
+#define MCCphoton_Class
+
+// @subsection Include files
+
+// @code
+#ifdef __ROOT__
+#include "TROOT.h"
+#include "TObject.h"
+#else // not __ROOT__
+#include "Rtypes.h"
+#endif
+
+#include <iostream.h>
+#include <iomanip.h>
+#include <fstream.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#include "jcmacros.h"
+
+// const char variables to use in MCCphoton::isA() function
+
+const char FLAG_START_OF_RUN[]   = "START-RUN-START-RUN-START-RUN-START-RUN-";
+const char FLAG_START_OF_EVENT[] = "START-EVENT-START-EVENT-START-EVENT-STAR";
+const char FLAG_END_OF_EVENT[] =   "END-EVENT-END-EVENT-END-EVENT-END-EVENT-";
+const char FLAG_END_OF_RUN[] =     "END-RUN-END-RUN-END-RUN-END-RUN-END-RUN-";
+const char FLAG_END_OF_FILE[] =    "END-FILE-END-FILE-END-FILE-END-FILE-END-";
+const char FLAG_END_OF_STDIN[] =   "END-STDIN-END-STDIN-END-STDIN-END-STDIN-";
+
+#define SIZE_OF_FLAGS  40
+
+// @endcode
+
+// @subsection Class {\em MCCphoton}: Definition
+
+// @code
+
+class MCCphoton {
+
+public:
+  Float_t     w;                // wavelength [nm/-] +
+                                //   1000*(id_generator)
+  Float_t     x, y;             // position in the camera [cm]
+  Float_t     u, v;             // director cosines 
+  Float_t     t;                // time since first interaction [ns]
+                                // till the camera
+  Float_t     h;                // height [cm]
+  Float_t     phi;              // incident angle in the camera [rad]
+
+public:
+  MCCphoton() {} // default constructor
+
+  // overloaded constructor
+  MCCphoton( ifstream &is ) { MCCphoton::read( is ); }
+
+  virtual ~MCCphoton() {} // default destructor
+
+  // reads photon from binary input stream
+  Int_t read ( ifstream &is ) {
+    int n;
+    is.read (  (char *)this, mysize() );
+    return is.gcount();
+  }
+
+  // writes photon to binary output stream
+  Int_t write ( ofstream &os ) {
+    os.write ( (char *)this, mysize() );
+    return 0;
+  }
+
+  // get information about the photon
+  inline Float_t get_wl( void ) { return ( w - 1000.*((int)floor(w/1000.))); }
+  inline Int_t get_particle( void ) { 
+    return ( (int)floor(w/1000.) );
+  }
+
+  inline Float_t get_x( void ) { return ( x ); }
+  inline Float_t get_y( void ) { return ( y ); }
+  inline Float_t get_u( void ) { return ( u ); }
+  inline Float_t get_v( void ) { return ( v ); }
+  inline Float_t get_h( void ) { return ( h ); }
+  inline Float_t get_t( void ) { return ( t ); }
+  inline Float_t get_phi( void ) { return ( phi ); }
+                  
+  inline Float_t get_r( void ) { return ( sqrt( x*x + y*y ) ); }
+  inline Float_t get_w( void ) { return ( sqrt( 1.0 - u*u - v*v ) ); }
+
+  inline void fill(Float_t thew, 
+                   Float_t thex, Float_t they,
+                   Float_t theu, Float_t thev, 
+                   Float_t theh, Float_t thet,
+                   Float_t thephi) {
+    w = thew;
+    x = thex;
+    y = they;
+    u = theu;
+    v = thev;
+    h = theh;
+    t = thet;
+    phi = thephi;
+  }
+
+  int isA( const char * flag ) {
+    return ( (strncmp((char *)this, flag, 8)==0) ? TRUE : FALSE );
+  }
+
+  inline int mysize(void) { return ( sizeof(*this) ); }
+
+};
+
+// @endcode
+
+#endif  // not defined MCCphoton_Class
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-MC/MCEventHeader.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-MC/MCEventHeader.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-MC/MCEventHeader.cxx	(revision 4308)
@@ -0,0 +1,53 @@
+/////////////////////////////////////////////////////////////////
+//
+// MCEventHeader
+//
+//  Created: Tue Apr 28 16:27:14 1998
+//  Author:  Jose Carlos Gonzales
+//  Purpose: Base class for EventHeader-classes
+//  Notes:   
+//
+/////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+// @section Source code of {\tt MCEventHeader.cxx}
+
+// @subsection Class {\em MCEventHeader}: Implementation
+
+// @code
+
+#include "MCEventHeader.hxx"
+
+void MCEventHeader::transport( COREventHeader *e )
+{
+  EvtNumber      = e->EvtNumber;
+  PrimaryID      = e->PrimaryID;
+  Etotal         = e->Etotal;
+  Thick0         = e->Thick0;
+  FirstTarget    = e->FirstTarget;
+  zFirstInt      = e->zFirstInt;
+  Theta          = e->Theta;
+  Phi            = e->Phi;
+  NumRndSeq      = e->NumRndSeq;
+  RunNumber      = e->RunNumber;
+  DateRun        = e->DateRun;
+  VersionPGM     = e->VersionPGM;
+  NumObsLev      = e->NumObsLev;
+  SlopeSpec      = e->SlopeSpec;
+  ELowLim        = e->ELowLim;
+  EUppLim        = e->EUppLim;
+  ThetaMin       = e->ThetaMin;
+  ThetaMax       = e->ThetaMax;
+  PhiMin         = e->PhiMin;
+  PhiMax         = e->PhiMax;
+  CWaveLower     = e->CWaveLower;
+  CWaveUpper     = e->CWaveUpper;
+
+  memcpy( p, e->p, 3*sizeof(Float_t) );
+  memcpy( RndData, e->RndData, 30*sizeof(Float_t) );
+  memcpy( HeightLev, e->HeightLev, 10*sizeof(Float_t) );
+  memcpy( CorePos, e->CorePos, 40*sizeof(Float_t) );
+}
+
+// @endcode
Index: /branches/start/MagicSoft/Simulation/Detector/include-MC/MCEventHeader.hxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-MC/MCEventHeader.hxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-MC/MCEventHeader.hxx	(revision 4308)
@@ -0,0 +1,200 @@
+/////////////////////////////////////////////////////////////////
+//
+// MCEventHeader
+//
+//  Created: Tue Apr 28 16:27:14 1998
+//  Author:  Jose Carlos Gonzales
+//  Purpose: Base class for EventHeader-classes
+//  Notes:   
+//
+/////////////////////////////////////////////////////////////////
+
+// @T \newpage
+
+// @section Source code of {\tt MCEventHeader.hxx}
+
+/* @text
+This section shows the include file {\tt MCEventHeader.hxx}
+@endtext */
+
+#ifndef MCEventHeader_Class
+#define MCEventHeader_Class
+
+// @subsection Include files
+
+// @code
+#ifdef __ROOT__
+#include "TROOT.h"
+#include "TObject.h"
+#else // not __ROOT__
+#include "Rtypes.h"
+#endif
+
+#include <iostream.h>
+#include <iomanip.h>
+#include <fstream.h>
+#include <stdlib.h>
+#include <math.h>
+
+#include "COREventHeader.hxx"
+
+#define SIZE_OF_MCEVENTHEADER    110   /* floats */
+
+// @endcode
+
+// @subsection Class {\em MCEventHeader}: Definition
+
+// @code
+class MCEventHeader {
+
+protected:
+  Float_t      EvtNumber;
+  Float_t      PrimaryID;
+  Float_t      Etotal;   
+  Float_t      Thick0;   
+  Float_t      FirstTarget;
+  Float_t      zFirstInt;
+  Float_t      p[3];     
+  Float_t      Theta; 
+  Float_t      Phi; 
+
+  Float_t      NumRndSeq;
+  Float_t      RndData[10][3];
+  
+  Float_t      RunNumber;
+  Float_t      DateRun;
+  Float_t      VersionPGM;
+
+  Float_t      NumObsLev;
+  Float_t      HeightLev[10]; 
+
+  Float_t      SlopeSpec;
+  Float_t      ELowLim;   
+  Float_t      EUppLim;   
+
+  Float_t      ThetaMin;
+  Float_t      ThetaMax;
+  Float_t      PhiMin;
+  Float_t      PhiMax;
+
+  Float_t      CWaveLower;       
+  Float_t      CWaveUpper;       
+  Float_t      CorePos[2][20];   
+  Float_t      TimeFirst;
+  Float_t      TimeLast;
+
+  Float_t      deviationPhi;
+  Float_t      deviationTheta;
+  
+  Float_t      Trigger;      // 110 floats
+
+public:
+  MCEventHeader(void) {}  // default constructor
+
+  virtual ~MCEventHeader(void) {}  // default destructor
+  
+  // reads EventHeader from binary input stream
+  Int_t read ( ifstream &is ) {
+    is.read ( (char *)this, mysize() ); 
+    return is.gcount();
+  }
+
+  // writes EventHeader to binary output stream
+  Int_t write ( ofstream &os ) {
+    os.write ( (char *)this, mysize() ); 
+    return 0;
+  }
+  
+  // get information about the EventHeader
+
+  // get the primary type (GEANT code)
+  inline Float_t get_primary ( void ) { return ( PrimaryID ); }
+
+  // get the total primary energy
+  inline Float_t get_energy ( void ) { return ( Etotal ); }
+  
+  // get the initial zenith angle
+  inline Float_t get_theta ( void ) { return ( Theta ); }
+
+  // get the initial phi angle
+  inline Float_t get_phi ( void ) { return ( Phi ); }
+
+  // get the spectrum slope
+  inline Float_t get_slope ( void ) { return ( SlopeSpec ); }
+
+  // get height of first interaction (in cm)
+  inline Float_t get_height ( void ) { return ( zFirstInt ); }
+
+  // get the energy range of this run
+  inline void get_energy_range ( Float_t *elow, Float_t *eup ) { 
+    *elow = ELowLim;   
+    *eup = EUppLim;
+  }
+
+  // get the core position
+  inline Float_t get_core ( Float_t *x, Float_t *y, Int_t ncore = 0 ) {
+    *x = CorePos[0][ncore];
+    *y = CorePos[1][ncore];
+    return ( (Float_t) sqrt ( (*x)*(*x) + (*y)*(*y) ) );
+  }
+
+  // get the core position
+  inline Float_t get_core ( Int_t ncore = 0 ) {
+    return ( (Float_t) sqrt ( ((CorePos[0][ncore])*(CorePos[0][ncore]))+
+                              ((CorePos[1][ncore])*(CorePos[1][ncore])) ) );
+  }
+
+  // transport from COREventHeader to MCEventHeader
+  void transport ( COREventHeader *e );
+
+  // write extreme times
+  inline void put_times ( Float_t t1, Float_t t2 ) {
+    TimeFirst = t1;
+    TimeLast  = t2;
+  }
+
+  // get extreme times
+  inline Float_t get_times ( Float_t *t1, Float_t *t2 ) {
+    *t1 = TimeFirst;
+    *t2 = TimeLast;
+    return ( TimeLast - TimeFirst );
+  }
+
+  // get/set trigger
+  inline void set_trigger( Int_t flag ) { Trigger = (Float_t)flag; }
+  inline Int_t get_trigger( void ) { return( (Int_t)Trigger ); }
+
+  inline int mysize(void) 
+    { return ( sizeof( float ) * SIZE_OF_MCEVENTHEADER ); }
+
+  // put deviations of the CT from the original shower direction
+  inline void put_deviations ( Float_t t1, Float_t t2 ) {
+    deviationTheta = t1;
+    deviationPhi   = t2;
+    //cerr << '\n' << deviationTheta << ' ' << deviationPhi << '\n';
+  }
+
+  // get deviations of the CT from the original shower direction
+  inline Float_t get_deviations ( Float_t *t1, Float_t *t2 ) {
+
+    float r;
+
+    r = sqrt(deviationTheta*deviationTheta + deviationPhi*deviationPhi);
+    *t1 = deviationTheta;
+    *t2 = deviationPhi;
+
+    // cerr << '\n' << deviationTheta << ' ' << deviationPhi << '\n' << flush;
+
+    return ( r );
+  }
+
+  inline void print ( void ) {
+    float *ptr = (float *)this;
+    for(int i=0; i<SIZE_OF_MCEVENTHEADER; ++i,++ptr)
+      cerr << i << ':' << *ptr << '\n';
+  }
+
+};
+// @endcode
+
+#endif  // not defined MCEventHeader_Class
Index: /branches/start/MagicSoft/Simulation/Detector/include-MFadc/MFadc.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-MFadc/MFadc.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-MFadc/MFadc.cxx	(revision 4308)
@@ -0,0 +1,313 @@
+/////////////////////////////////////////////////////////////////
+//
+//  MFadc
+//
+//  
+#include "MFadc.hxx"
+
+#include "MMcEvt.h"
+
+#include "TROOT.h"
+#include <TApplication.h>
+#include <TVirtualX.h>
+#include <TGClient.h>
+
+#include "TH1.h"
+#include "TObjArray.h"
+
+#include "MGFadcSignal.hxx"
+
+MFadc::MFadc() { 
+  //
+  //  default constructor 
+  //  
+  //  The procedure is the following: 
+  //  1. some parameters of the trigger are set to default.   
+  //     this parameters of the trigger may be changed
+  //  3. Then the all signals are set to zero
+  
+  fwhm_resp = MFADC_RESPONSE_FWHM       ; 
+  ampl_resp = MFADC_RESPONSE_AMPLITUDE  ; 
+  
+  //
+  //    set up the response shape
+  // 
+  Int_t  i ; 
+  
+  Float_t   sigma ; 
+  Float_t   x, x0 ; 
+
+  sigma = fwhm_resp / 2.35 ; 
+  x0 = 3*sigma ; 
+  
+  Float_t   dX, dX2 ; 
+  
+  dX  = WIDTH_FADC_TIMESLICE / SUBBINS ; 
+  dX2 = dX/2. ; 
+  
+  for (i=0; i< RESPONSE_SLICES_MFADC ; i++ ) {  
+
+    x = i * dX + dX2 ; 
+    
+    //
+    //   the value 0.125 was introduced to normalize the things
+    //
+    sing_resp[i] = 0.125 *  
+      ampl_resp * expf(-0.5 * (x-x0)*(x-x0) / (sigma*sigma) ) ; 
+
+  } 
+
+  //
+  //    init the Random Generator for Electonic Noise
+  //
+
+  GenElec = new TRandom () ; 
+
+  //
+  //  set all the booleans used to FALSE, indicating that the pixel is not 
+  //  used in this event. 
+  //
+  
+  for ( i =0 ; i <CAMERA_PIXELS ; i++ ) { 
+    used [i] = FALSE ; 
+  }
+}
+
+  
+void MFadc::Reset() { 
+  //
+  //  set all values of the signals to zero
+  //
+  Int_t  i ; 
+  
+  for ( i =0 ; i <CAMERA_PIXELS ; i++ ) {
+    used [i] = FALSE ; 
+  } 
+}
+
+
+void MFadc::Fill( Int_t iPix, Float_t time, Float_t amplitude ) { 
+  
+  //
+  // fills the information about one single Phe in the Trigger class
+  //
+  // parameter is the number of the pixel and the time-difference to the
+  // first particle
+  //
+  //
+
+  Int_t i, ichan, ichanfadc ; 
+  
+  //
+  //   first we have to check if the pixel iPix is used or not until now
+  //   if this is the first use, reset all signal for that pixels
+  // 
+  if ( iPix > CAMERA_PIXELS ) {
+    cout << " WARNING:  MFadc::Fill() :  iPix greater than CAMERA_PIXELS"
+	 << endl ;
+    exit(987) ; 
+  }
+
+  if ( used[iPix] == FALSE ) {
+    used [iPix] = TRUE ; 
+    
+    for (i=0; i < SLICES_MFADC; i++ ) {
+      sig[iPix][i] = 0. ; 
+    }
+  }
+
+  //
+  //   then select the time slice to use (ican) 
+  // 
+
+  
+  if ( time < 0. ) {
+    cout << "  WARNING! Fadc::Fill  " << time << "  below ZERO!! Very strange!!" 
+	 << endl ; 
+  }
+  else if ( time < TOTAL_TRIGGER_TIME ) { 
+    //
+    //   determine the slices number assuming the WIDTH_RESPONSE_MFADC
+    //
+    ichan = (Int_t) ( time / ((Float_t) WIDTH_RESPONSE_MFADC )); 
+
+    //
+    //   putting the response slices in the right sig slices.
+    //   Be carefull, because both slices have different widths. 
+    //
+
+    for ( i = 0 ; i<RESPONSE_SLICES; i++ ) {
+      ichanfadc = (Int_t) ((ichan+i)/SUBBINS) ; 
+      if ( (ichanfadc) < SLICES_MFADC ) {  
+	sig[iPix][ichanfadc] += (amplitude * sing_resp[i] )  ; 
+      } 
+    }
+  }
+  else {
+    cout << "  WARNING!  Fadc::Fill " << time << "  out of TriggerTimeRange " 
+	 << TOTAL_TRIGGER_TIME << endl ; 
+  }
+
+}
+
+void MFadc::ElecNoise() {
+  //
+  //  
+  //
+  
+  for ( Int_t i = 0 ; i < CAMERA_PIXELS; i++) {
+    if ( used [i] == TRUE ) {
+      
+      for ( Int_t is=0 ; is< SLICES_MFADC ; is++ ) {
+
+	sig[i][is] += GenElec->Gaus(0., 2.) ; 
+      }
+    }
+  }
+}
+
+
+
+void MFadc::Scan() {
+  
+
+  for ( Int_t ip=0; ip<CAMERA_PIXELS; ip++ ) {
+    
+    if ( used[ip] == kTRUE ) {
+
+      printf ("Pid %3d",  ip ) ; 
+
+      for ( Int_t is=0 ; is < SLICES_MFADC; is++ ) {
+
+	if ( sig[ip][is] > 0. ) {
+	  printf (" %4.1f/", sig[ip][is] ) ;
+	}
+	else {
+	  printf ("----/" ) ;
+	}
+      }
+      
+      printf ("\n"); 
+
+    }
+  }
+  
+} 
+
+void MFadc::Scan(Float_t time) {
+  
+  //
+  //    first of all we subtract from the time a offset (8 ns) 
+  // 
+  
+  Float_t t ; 
+
+  t = time - 10. ; // to show also the start of the pulse before the
+                   // the trigger time
+
+  if ( t < 0. ) {
+    cout << " WARNING!! FROM MFADC::SCAN(t) " << endl ; 
+    exit (776) ;  
+  }
+
+  //
+  //  calculate the first slice to write out
+  // 
+  
+  Int_t  iFirstSlice ; 
+
+  iFirstSlice = (Int_t) ( t /  WIDTH_FADC_TIMESLICE ) ; 
+
+  for ( Int_t ip=0; ip<CAMERA_PIXELS; ip++ ) {
+    
+    if ( used[ip] == kTRUE ) {
+
+      printf ("Pid %3d",  ip ) ; 
+
+      for ( Int_t is=iFirstSlice ; is < (iFirstSlice+15); is++ ) {
+	printf (" %5.2f /", sig[ip][is] ) ; 
+      }
+      
+      printf ("\n"); 
+
+    }
+  }  
+} 
+
+
+
+void MFadc::ShowSignal (MMcEvt *McEvt, Float_t trigTime) { 
+  // ============================================================
+  //
+  //  This method is used to book the histogramm to show the signal in 
+  //  a special gui frame (class MGTriggerSignal). After the look onto the
+  //  signals for a better understanding of the things we will expect 
+  //  the gui frame and all histogramms will be destroyed.   
+  //
+  
+  //
+  //  first of all create a list of the histograms to show
+  //
+  //  take only that one with a entry
+
+  TH1F *hist ; 
+  Char_t dumm[10]; 
+  Char_t name[256]; 
+  
+  TObjArray  *AList ;
+  AList = new TObjArray(10) ; 
+
+  // the list of analog signal histograms
+  // at the beginning we initalise 10 elements
+  // but this array expand automaticly if neccessay
+  
+  Int_t ic = 0 ; 
+  for ( Int_t i=0 ; i < CAMERA_PIXELS; i++  ) {
+    if ( used [i] == TRUE ) {
+
+      sprintf (dumm, "FADC_%d", i ) ; 
+      sprintf (name, "fadc signal %d", i ) ; 
+      
+      hist = new TH1F(dumm, name, SLICES_MFADC, 0., TOTAL_TRIGGER_TIME); 
+      //
+      //  fill the histogram
+      //
+      
+      for (Int_t ibin=1; ibin <=SLICES_MFADC; ibin++) {
+	hist->SetBinContent (ibin, sig[i][ibin-1]) ;
+      }
+
+      //      hist->SetMaximum( 5.);
+      //      hist->SetMinimum(-10.);
+      hist->SetStats(kFALSE); 
+  
+      //      hist->SetAxisRange(0., 80. ) ; 
+      
+      AList->Add(hist) ; 
+      
+      ic++ ; 
+    }
+  }  
+
+  //
+  //   create the Gui Tool
+  //
+  //
+  
+  new MGFadcSignal(McEvt,
+  		   AList,
+		   trigTime, 
+  		   gClient->GetRoot(), 
+		   gClient->GetRoot(), 
+  		   400, 400 ) ; 
+   
+  //
+  //   delete the List of histogramms
+  //
+  AList->Delete() ; 
+  
+  delete AList ; 
+}
+
+
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-MFadc/MFadc.hxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-MFadc/MFadc.hxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-MFadc/MFadc.hxx	(revision 4308)
@@ -0,0 +1,120 @@
+#ifndef __MFadc__
+#define __MFadc__
+//
+//     class MFadc
+//
+//     implemented by Harald Kornmayer
+//
+//     This is a class to simulate the FADC. 
+//     It assumes a special response of the PMT for one single Photo-electron. 
+//     
+//
+//
+#include <stream.h>
+#include <math.h>
+
+#include "TObject.h"
+#include "TRandom.h"
+
+#include "Mdefine.h" 
+
+#include "MTriggerDefine.h"
+
+class MMcEvt  ; 
+
+//==========
+//  MFadc 
+//
+//  The simulation of the Flash ADC system for the MAGIC teleskop is done with
+//  this class. 
+//  So all methods concerning the FADC System should be done inside this
+//  class. 
+//
+//  The Idea is to (in)put the data of the photo electrons into the class and
+//  generate the response (output) of the FADC to that input. Response means 
+//  in this sense the ADC values of the different time slices for all pixels
+//
+//  The pixelisation is done by the camera program of Jose Carlos. 
+//
+//  This class is closly connected to the MTrigger classs. So some of the
+//  values defined in MTriggerDefine.h are also used by this class. 
+//
+//  But a lot of other stuff is defined here. 
+//
+//  --> Frist of all the WIDTH of the time slice of one FADC slice 
+//      this is 3.33333 nsec.
+//
+#define WIDTH_FADC_TIMESLICE   (50./15.)       //  this means 3.33 nsec 
+//
+//  --> Second the number of slices to fill in MFADC. This must by 
+//      connected to the MTrigger class. The time of interest must be
+//      equal in both classes. 
+//
+#define SLICES_MFADC           (TOTAL_TRIGGER_TIME / WIDTH_FADC_TIMESLICE)
+//
+//  --> like the trigger the FADC value will also have a standard response
+//      to one single Photo electron. This response is binned with smaller
+//      bins. The WIDTH of that response function is done here. 
+// 
+#define SUBBINS     5.
+#define WIDTH_RESPONSE_MFADC   (WIDTH_FADC_TIMESLICE /  SUBBINS )   // 5 sub-bin in one FADC slice 
+//
+//  --> the number of Response slices
+//
+#define RESPONSE_SLICES_MFADC   45         
+//
+//
+#define MFADC_RESPONSE_FWHM        5.0
+
+//
+//
+#define MFADC_RESPONSE_AMPLITUDE   4.0
+//
+//
+//
+//
+class MFadc {
+ private:
+  //
+  //    then for all pixels the shape of all the analog signals 
+  //
+  Bool_t   used[CAMERA_PIXELS] ;  //  a boolean to indicated if the pixels is used in this event
+
+  Float_t  sig[CAMERA_PIXELS][(Int_t) SLICES_MFADC] ; //  the analog signal for pixels
+
+  //
+  //    first the data for the response function
+  //
+  Float_t fwhm_resp ;                      // fwhm of the phe_response function 
+  Float_t ampl_resp ;                      // amplitude of the phe_response function (in mV)
+  Float_t sing_resp[ RESPONSE_SLICES_MFADC ] ;   // the shape of the phe_response function 
+
+  //
+  //   RandomGenerator for the Electonic Noise
+  //
+
+  TRandom  *GenElec ; 
+
+
+public:
+
+  MFadc() ; 
+  
+  void Reset() ; 
+
+  void Fill( Int_t, Float_t, Float_t  ) ;  
+
+  void ElecNoise() ; 
+
+  void Scan() ; 
+
+  void Scan(Float_t time) ;
+
+  void ShowSignal ( MMcEvt *McEvt , Float_t ) ; 
+} ; 
+
+
+#endif
+
+
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-MFadc/MGFadcSignal.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-MFadc/MGFadcSignal.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-MFadc/MGFadcSignal.cxx	(revision 4308)
@@ -0,0 +1,355 @@
+//
+//
+//
+#include "MGFadcSignal.hxx" 
+
+#include "TPavesText.h"
+#include "TObjArray.h"
+#include "TCanvas.h"
+
+#include "TLine.h"
+
+MGFadcSignal::MGFadcSignal(const MMcEvt    *McInfo, 
+			   const TObjArray *aList, 
+			   Float_t   trigTime, 
+			   const TGWindow *p, const TGWindow *main,
+			   UInt_t w, UInt_t h, UInt_t options) :
+     TGTransientFrame(p, main, w, h, options)
+{
+  //  Default constructor
+  //
+  // Create a frame to show the signals.
+  // 
+  //
+  fTrigTime = trigTime ; 
+
+  iAnaSigs =  aList->GetEntries() ; 
+
+  iPage = 1 ;  
+
+  //
+  //  at the beginning copy the aList into Liste    
+  //
+  
+  ListeA = new TObjArray( *aList ) ; 
+
+  Liste  = new TObjArray( *ListeA ) ; 
+  
+  
+  //
+  //  First of all the Menus in the menubar
+  //
+   
+  fMenuFile = new TGPopupMenu(gClient->GetRoot());
+  fMenuFile->AddEntry("Open...", M_FILE_OPEN);
+  fMenuFile->AddEntry("Save", M_FILE_SAVE);
+  fMenuFile->AddEntry("Save as...", M_FILE_SAVEAS);
+  fMenuFile->AddEntry("Close", M_FILE_CLOSE);
+  fMenuFile->AddSeparator();
+  fMenuFile->AddEntry("Print", M_FILE_PRINT);
+  fMenuFile->AddSeparator();
+  fMenuFile->AddEntry("Exit", M_FILE_EXIT );
+  
+  fMenuFile->DisableEntry(M_FILE_OPEN);
+  fMenuFile->DisableEntry(M_FILE_SAVE);
+  fMenuFile->DisableEntry(M_FILE_SAVEAS);
+  fMenuFile->DisableEntry(M_FILE_CLOSE);
+  fMenuFile->DisableEntry(M_FILE_PRINT);
+  fMenuFile->DisableEntry(M_FILE_EXIT);
+
+  fMenuFile->Associate(this);
+
+  //
+  //   create the menu bar
+  //
+
+  fMenuBar = new TGMenuBar(this, 1, 1, kHorizontalFrame);
+  fMenuBar->AddPopup("&File", fMenuFile, new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 4, 0, 0));
+
+  AddFrame(fMenuBar, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX,
+				       0, 0, 1, 1));
+
+  //
+  //    create the information frame
+  // 
+
+  Char_t winf[100]; 
+  fMcInfo = new TGCompositeFrame(this, 60, 20, kHorizontalFrame | kLHintsTop |kSunkenFrame );
+  sprintf ( winf,"Particle: %d", McInfo->GetPartId() ); 
+  fMcInfo->AddFrame(new TGLabel (fMcInfo, winf ),
+		    new TGLayoutHints(kLHintsTop | kLHintsLeft ,
+					10, 10, 10, 10));  
+
+  sprintf ( winf,"Energy: %6.1f [GeV]", McInfo->GetEnergy() ); 
+  fMcInfo->AddFrame(new TGLabel (fMcInfo, winf ),
+		    new TGLayoutHints(kLHintsTop | kLHintsLeft ,
+					10, 10, 10, 10));  
+
+  sprintf ( winf,"Theta: %6.1f [deg]", McInfo->GetTheta()* 57.2974 ); 
+  fMcInfo->AddFrame(new TGLabel (fMcInfo, winf ),
+		    new TGLayoutHints(kLHintsTop | kLHintsLeft ,
+					10, 10, 10, 10));  
+ 
+  sprintf ( winf,"Impact: %6.1f [m]", McInfo->GetImpact()/100. ); 
+  fMcInfo->AddFrame(new TGLabel (fMcInfo, winf ),
+		    new TGLayoutHints(kLHintsTop | kLHintsLeft ,
+					10, 10, 10, 10));  
+
+  AddFrame(fMcInfo, new TGLayoutHints(kLHintsTop | kLHintsExpandX,
+				      0, 0, 1, 0));
+
+  //
+  //   build the canvas (here we will plot the histograms
+  //
+
+  fCanvasWindow = new TRootEmbeddedCanvas("test",this, 800, 500);
+  fContainer = new TGCompositeFrame(fCanvasWindow->GetViewPort(), 10, 10,
+				    kHorizontalFrame, GetWhitePixel());
+  fContainer->SetLayoutManager(new TGTileLayout(fContainer, 7));
+  fCanvasWindow->SetContainer(fContainer);
+  
+  tcan = fCanvasWindow->GetCanvas() ; 
+
+  AddFrame(fCanvasWindow, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY,
+  				    0, 0, 2, 2));
+  
+
+  //
+  //  build the control frame
+  //
+  fControl = new TGCompositeFrame(this, 60, 20, kHorizontalFrame | kLHintsTop |kSunkenFrame );
+  
+  fPrevChannels = new TGTextButton(fControl, "Previous Channels", M_PREV_CHANNELS);
+  fPrevChannels->Associate(this);
+  fPrevChannels->SetToolTipText("To see the previous sample of chanels");
+  fControl->AddFrame(fPrevChannels, 
+		   new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5));
+
+
+  lPage = new TGLabel (fControl, "--") ;
+  fControl->AddFrame(lPage,
+		     new TGLayoutHints(kLHintsTop | kLHintsLeft ,
+                                          5, 0, 10, 5));
+  sprintf ( winf,"/"); 
+  fControl->AddFrame(new TGLabel (fControl, "/" ),
+		     new TGLayoutHints(kLHintsTop | kLHintsLeft ,
+					0, 0, 10, 5));
+  
+  lPageAll = new TGLabel (fControl, "--") ;
+  fControl->AddFrame(lPageAll,
+		     new TGLayoutHints(kLHintsTop | kLHintsLeft ,
+                                          0, 5, 10, 5));
+   
+  fNextChannels = new TGTextButton(fControl, "Next Channels", M_NEXT_CHANNELS);
+  fNextChannels->Associate(this);
+  fNextChannels->SetToolTipText("To see the next sample of chanels");
+  fControl->AddFrame(fNextChannels, 
+		   new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5));
+
+
+  fAnalog = new TGTextButton(fControl, "analog", M_ANALOG);
+  fAnalog->Associate(this);
+  fAnalog->SetToolTipText("Display of analog signals");
+  fControl->AddFrame(fAnalog, 
+		   new TGLayoutHints(kLHintsTop | kLHintsLeft, 50, 5, 5, 5));
+
+
+  fDigital = new TGTextButton(fControl, "digital", M_DIGITAL);
+  fDigital->Associate(this);
+  fDigital->SetToolTipText("Display of digital signals");
+  fControl->AddFrame(fDigital, 
+		   new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5));
+
+
+  fBeide = new TGTextButton(fControl, "both", M_BEIDE);
+  fBeide->Associate(this);
+  fBeide->SetToolTipText("Display the analog and digital signals");
+  fControl->AddFrame(fBeide, 
+		   new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5));
+
+
+
+  AddFrame(fControl, new TGLayoutHints(kLHintsExpandX,
+				       0, 0, 1, 0));
+  
+
+  //
+  //    the close button line
+  // 
+
+  fFrame = new TGCompositeFrame(this, 60, 20, kHorizontalFrame |
+				kSunkenFrame);
+
+  fCloseButton = new TGTextButton(fFrame, "Close", M_BUTTON_CLOSE);
+  fCloseButton->Associate(this);
+  fCloseButton->SetToolTipText("Close and skip to the next event!");
+  fFrame->AddFrame(fCloseButton, 
+		   new TGLayoutHints(kLHintsTop | kLHintsLeft, 100, 5, 5, 5));
+ 
+
+  fExitButton = new TGTextButton(fFrame, "Stop Job", M_BUTTON_EXIT);
+  fExitButton->Associate(this);
+  fExitButton->SetToolTipText("Shut down this job!");
+  fFrame->AddFrame(fExitButton, 
+		   new TGLayoutHints(kLHintsTop | kLHintsLeft, 200, 5, 5, 5));
+
+  AddFrame(fFrame, new TGLayoutHints(kLHintsBottom | kLHintsExpandX,
+				     0, 0, 1, 0));
+  
+  SetWindowName("MGFadcSignal");
+
+  MapSubwindows();
+
+  // we need to use GetDefault...() to initialize the layout algorithm...
+  Resize(GetDefaultSize());
+
+  //  Resize (1000,650); 
+
+  MapWindow();
+
+  DisplayChannels ( Liste) ; 
+  
+  gClient->WaitFor(this);  
+}
+
+
+MGFadcSignal::~MGFadcSignal() {
+  delete  fMenuBar ; 
+  delete  fMenuFile; 
+
+  delete  fContainer ; 
+  delete  fCanvasWindow ; 
+
+  delete  fCloseButton ; 
+  delete  fExitButton ; 
+  delete  fFrame ; 
+}
+
+void MGFadcSignal::CloseWindow() {
+   delete this ; 
+}
+
+
+void MGFadcSignal::DisplayChannels ( TObjArray *disList ) {
+  
+  Int_t imax ; 
+
+  if ( iPage == 0 ) {
+    printf ("Warning from DisplayChannels: Page 0 don't exist!!\n"); 
+    iPage = 1 ;
+    return ; 
+  }
+  
+  if ( (iPage-1)*16 >= (imax = disList->GetEntries()) ) {
+    printf ("Warning from DisplayChannels: PageNumber to big!\n");
+    iPage=iPage-1 ; 
+    return;
+  } 
+  
+  Char_t wort[4] ; 
+  sprintf ( wort, "%d", iPage) ;   
+  lPage->SetText ( new TGString ( wort ) ) ; 
+  sprintf ( wort, "%d", imax/16 + 1 ) ;   
+  lPageAll->SetText ( new TGString ( wort ) ) ; 
+ 
+
+  tcan->Clear() ; 
+  tcan->Divide(4,4) ;
+
+  Int_t ifirst, ilast ; 
+
+  ifirst = (iPage-1)*16 ; 
+  ilast  = iPage*16 ; 
+
+  if ( ilast > imax ) {
+    ilast = imax ; 
+  }
+
+  Int_t ic = 1 ; 
+  for (Int_t ih=ifirst; ih<ilast; ih++ ) {
+    tcan->cd(ic++);
+    disList->At(ih)->Draw() ; 
+
+    TLine *linie = new TLine( fTrigTime, 0., fTrigTime, 20. ) ; 
+    linie->Draw() ; 
+  }
+
+
+
+  tcan->Modified();
+  tcan->Update();
+  
+  
+
+}
+
+// ========================================
+// ========================================
+// ========================================
+
+Bool_t MGFadcSignal::ProcessMessage(Long_t msg, Long_t parm1, Long_t) {
+  // Handle messages send to the TestMainFrame object. E.g. all menu button
+  // messages.
+  
+  //  printf (" processmessage \n" ) ; 
+
+  switch (GET_MSG(msg)) {
+    
+  case kC_COMMAND:
+    switch (GET_SUBMSG(msg)) {
+       
+    case kCM_MENU:
+      printf("Pointer over menu entry, id=%ld\n", parm1);
+      break;
+
+      
+    case kCM_BUTTON:
+      switch ( parm1 ) {
+	
+      case M_BUTTON_CLOSE:      
+	CloseWindow() ; 
+        break; 
+
+      case M_BUTTON_EXIT:      
+        exit (1234)  ; 
+        break; 
+
+      case M_PREV_CHANNELS:
+	iPage = iPage - 1 ; 
+	DisplayChannels (Liste) ; 
+	break; 
+
+      case M_NEXT_CHANNELS:
+	iPage = iPage + 1 ; 
+	DisplayChannels (Liste) ; 
+	break; 
+
+      case M_ANALOG:
+	Liste  = new TObjArray( *ListeA ) ;
+	DisplayChannels (Liste) ; 
+	break; 
+
+      case M_DIGITAL:
+	break; 
+
+      case M_BEIDE:
+	//
+	//  to draw the analog and the digital signal
+	//
+	break; 
+      } 
+      
+      return kFALSE;
+    }
+    return kFALSE; 
+  }  
+  return kTRUE;
+}
+
+
+
+
+
+
+
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-MFadc/MGFadcSignal.hxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-MFadc/MGFadcSignal.hxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-MFadc/MGFadcSignal.hxx	(revision 4308)
@@ -0,0 +1,113 @@
+#ifndef __MGFadcSignal__
+#define __MGFadcSignal__
+
+
+#include <stdlib.h>
+#include <iostream.h>
+
+#include <TROOT.h>
+#include <TApplication.h>
+#include <TVirtualX.h>
+
+#include <TGListBox.h>
+#include <TGClient.h>
+#include <TGFrame.h>
+#include <TGIcon.h>
+#include <TGLabel.h>
+#include <TGButton.h>
+#include <TGTextEntry.h>
+#include <TGMsgBox.h>
+#include <TGMenu.h>
+#include <TGCanvas.h>
+#include <TGComboBox.h>
+#include <TGTab.h>
+#include <TGSlider.h>
+#include <TGDoubleSlider.h>
+#include <TGFileDialog.h>
+#include <TRootEmbeddedCanvas.h>
+#include <TCanvas.h>
+#include <TH1.h>
+#include <TH2.h>
+#include <TRandom.h>
+#include <TSystem.h>
+#include <TEnv.h>
+
+#include "MMcEvt.h"
+
+
+enum ETestCommandIdentifiers {
+   M_FILE_OPEN = 201,
+   M_FILE_SAVE,
+   M_FILE_SAVEAS,
+   M_FILE_CLOSE,
+   M_FILE_PRINT,
+   M_FILE_EXIT , 
+   
+   M_BUTTON_CLOSE,
+   M_BUTTON_EXIT,
+
+   M_PREV_CHANNELS, 
+   M_NEXT_CHANNELS,
+   M_ANALOG,
+   M_DIGITAL, 
+   M_BEIDE
+}; 
+
+
+
+
+
+class MGFadcSignal : public TGTransientFrame {
+
+private:
+  Float_t             fTrigTime ; 
+  Int_t               iAnaSigs ; 
+  Int_t               iDigSigs ;
+  Int_t               iPage  ; 
+
+  TObjArray           *ListeA ; 
+  TObjArray           *Liste ; 
+
+  TGCompositeFrame    *fFrame ; 
+  TGButton            *fCloseButton;
+  TGButton            *fExitButton;
+
+  TGCompositeFrame    *fControl ; 
+  TGButton            *fPrevChannels;
+  TGLabel             *lPageAll    ;
+  TGLabel             *lPage    ;
+  TGButton            *fNextChannels;
+  TGButton            *fAnalog;
+  TGButton            *fDigital;
+  TGButton            *fBeide;
+
+  TGCompositeFrame    *fMcInfo ; 
+
+  TRootEmbeddedCanvas *fCanvasWindow ; 
+  TGCompositeFrame    *fContainer ; 
+  TCanvas             *tcan ; 
+
+  TGMenuBar           *fMenuBar;
+  TGPopupMenu         *fMenuFile;
+
+
+public:
+  MGFadcSignal(const MMcEvt    *McInfo, 
+	       const TObjArray *aList,
+	       Float_t   trigTime, 
+	       const TGWindow *p, const TGWindow *main, UInt_t w, UInt_t h,
+	       UInt_t options = kMainFrame | kVerticalFrame);
+  virtual ~MGFadcSignal();
+  
+  virtual void CloseWindow();
+
+  void DisplayChannels( TObjArray *disList ) ; 
+
+  virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
+};
+
+#endif
+
+
+
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-MTrigger/MTrigger.cxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-MTrigger/MTrigger.cxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-MTrigger/MTrigger.cxx	(revision 4308)
@@ -0,0 +1,7 @@
+/////////////////////////////////////////////////////////////////
+//
+//  MTrigger
+//
+//  
+#include "MTrigger.hxx"
+
Index: /branches/start/MagicSoft/Simulation/Detector/include-MTrigger/MTrigger.hxx
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/include-MTrigger/MTrigger.hxx	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/include-MTrigger/MTrigger.hxx	(revision 4308)
@@ -0,0 +1,54 @@
+//
+//     class MTrigger
+//
+//     implemented by Harald Kornmayer
+//
+//     This is a class to simulate the trigger. 
+//     It assumes a special response of the PMT for one single Photo-electron. 
+//     
+//
+//
+#include <iostream.h>
+#include <math.h> 
+
+#include "TObject.h"
+
+#include "Mdefine.h" 
+
+#define TRIGGER_TIME_SLICES    400
+//
+//      We need 400 Time Slices of 0.25 nsec width. 
+//      So the whole Time range we studies is 100 nsec. 
+//
+#define RESPONSE_SLICES        40
+//
+//       This is for the standard response Signal to 1 Photoelectron
+//       that leaves the Photocathode
+//       The whole Timescale for the signal is 10 nsec
+//
+//
+//       These values are discussed with Eckart. We start from this point. 
+#define RESPONSE_FWHM          2. 
+#define RESPONSE_AMPLITUDE     1. 
+//
+//       This are the Standard values of the response function for
+//       1 photo electron. 
+//       We assume a gaussian pulse with FWHM 2.5 nsec. 
+//
+
+#define CHANNEL_THRESHOLD      2. 
+//
+//       This is the diskriminator threshold for each individual channel
+//       First we set the value to 2 unit of the RESPONSE_AMPLITUDE 
+//
+#define TRIGGER_GATE           3. 
+// 
+//       Here we set the width of the digital signal we get if the signal
+//       passes the diskriminator
+//
+#define TRIGGER_MULTI          4.  
+//
+//       We get a Level Zero Trigger, if we have a least TRIGGER_MULTI
+//       channels with a diskrimiator signal at the same time 
+//
+
Index: /branches/start/MagicSoft/Simulation/Detector/lib/README
===================================================================
--- /branches/start/MagicSoft/Simulation/Detector/lib/README	(revision 4308)
+++ /branches/start/MagicSoft/Simulation/Detector/lib/README	(revision 4308)
@@ -0,0 +1,26 @@
+############################################################
+
+README for the directory "lib"
+
+
+In this directory are some libs, that are needed for running 
+the programs developed by Jose Carlos. The most important is
+the 
+
+ranlib
+
+If you don't have install this lib yet, try to find it on 
+the web and do what you can. 
+
+Then make a link in this directory to your ranlib. 
+
+For some machines there are libs in this directory. Include
+them by linking 
+
+libranlib.a -> libranlib.a.[OSTYPE] 
+
+using the command 
+
+ln -s libranlib.a.[OSTYPE] libranlib.a 
+
+###########################################################
Index: /branches/start/MagicSoft/include-Classes/LinkDef.h
===================================================================
--- /branches/start/MagicSoft/include-Classes/LinkDef.h	(revision 4308)
+++ /branches/start/MagicSoft/include-Classes/LinkDef.h	(revision 4308)
@@ -0,0 +1,27 @@
+#ifdef __CINT__
+#define __CINT__
+
+#pragma link off all globals;
+#pragma link off all classes;
+#pragma link off all functions;
+ 
+#pragma link C++ class MRawEvt; 
+#pragma link C++ class MRawPixel;  
+#pragma link C++ class MMcEvt;
+#pragma link C++ class MMcRunHeader;
+#pragma link C++ class MCameraDisplay;
+#pragma link C++ class MCameraPixel;
+#pragma link C++ class MCameraCoord;
+#pragma link C++ class MFastControl;
+#pragma link C++ class MCurrentPixel;
+
+
+//globale Variablen
+//#pragma link C++ global File;
+
+
+#endif
+
+
+
+
Index: /branches/start/MagicSoft/include-Classes/MMcEvt.cxx
===================================================================
--- /branches/start/MagicSoft/include-Classes/MMcEvt.cxx	(revision 4308)
+++ /branches/start/MagicSoft/include-Classes/MMcEvt.cxx	(revision 4308)
@@ -0,0 +1,165 @@
+#include <iostream.h>
+#include "MMcEvt.h"
+
+
+//==========
+// MMcEvt
+//    
+// This class handles and contains the MonteCarlo information
+// with which the events have been generated
+// This information exists for each event.
+ 
+
+
+ClassImp(MMcEvt)
+
+
+
+MMcEvt::MMcEvt() {
+  //
+  //  default constructor
+  //  set all values to zero
+
+  usPartId = 0  ;
+  fEnergy  = 0. ;
+
+  fTheta   = 0. ;
+  fPhi     = 0. ;
+
+  fCoreD   = 0. ;
+  fCoreX   = 0. ;
+  fCoreY   = 0. ;
+  fImpact  = 0. ;
+
+  usPhotIni      = 0 ;
+  usPassPhotAtm  = 0 ;
+  usPassPhotRef  = 0 ;
+  usPassPhotCone = 0 ;
+  usPhotEl       = 0 ;
+}
+
+MMcEvt::MMcEvt( UShort_t usPId, 
+		Float_t  fEner, 
+		Float_t  fThet, 
+		Float_t  fPhii, 
+		Float_t  fCorD, 
+		Float_t  fCorX, 
+		Float_t  fCorY,
+		Float_t  fImpa, 
+		UShort_t usPin, 
+		UShort_t usPat,  
+		UShort_t usPre, 
+		UShort_t usPco,  
+		UShort_t usPel ) {
+  //
+  //  constuctor II 
+  //
+  //  All datamembers are parameters. 
+  //
+  //  Don't use this memberfunction in analysis
+  //  
+
+  usPartId = usPId  ;
+  fEnergy  = fEner  ;
+
+  fTheta   = fThet ;
+  fPhi     = fPhii ;
+
+  fCoreD   = fCorD ;
+  fCoreX   = fCorX ;
+  fCoreY   = fCorY ;
+  fImpact  = fImpa ;
+
+  usPhotIni      = usPin ;
+  usPassPhotAtm  = usPat ;
+  usPassPhotRef  = usPre ;
+  usPassPhotCone = usPco ;
+  usPhotEl       = usPel ;
+}
+
+
+
+MMcEvt::~MMcEvt() {
+  //
+  //  default destructor
+  //
+}
+
+
+
+
+void MMcEvt::Clear() {
+  //
+  //  
+  //  reset all values to zero
+
+  usPartId = 0  ;
+  fEnergy  = 0. ;
+
+  fTheta   = 0. ;
+  fPhi     = 0. ;
+
+  fCoreD   = 0. ;
+  fCoreX   = 0. ;
+  fCoreY   = 0. ;
+  fImpact  = 0. ;
+
+  usPhotIni      = 0 ;
+  usPassPhotAtm  = 0 ;
+  usPassPhotRef  = 0 ;
+  usPassPhotCone = 0 ;
+  usPhotEl       = 0 ;
+}
+void MMcEvt::Fill( UShort_t usPId, 
+		   Float_t  fEner, 
+		   Float_t  fThet, 
+		   Float_t  fPhii, 
+		   Float_t  fCorD, 
+		   Float_t  fCorX, 
+		   Float_t  fCorY,
+		   Float_t  fImpa, 
+		   UShort_t usPin, 
+		   UShort_t usPat,  
+		   UShort_t usPre, 
+		   UShort_t usPco,  
+		   UShort_t usPel ) {
+  //
+  //  All datamembers are filled with the correspondin parameters. 
+  //
+  //  Don't use this memberfunction in analysis
+  //  
+
+  usPartId = usPId  ;
+  fEnergy  = fEner  ;
+
+  fTheta   = fThet ;
+  fPhi     = fPhii ;
+
+  fCoreD   = fCorD ;
+  fCoreX   = fCorX ;
+  fCoreY   = fCorY ;
+  fImpact  = fImpa ;
+
+  usPhotIni      = usPin ;
+  usPassPhotAtm  = usPat ;
+  usPassPhotRef  = usPre ;
+  usPassPhotCone = usPco ;
+  usPhotEl       = usPel ;
+}
+
+
+
+void MMcEvt::Print(Option_t *Option) {
+  //
+  //  print out the data member on screen
+  //
+  cout <<endl << "Monte Carlo output:" <<endl;
+  cout << " Particle Id    : " << usPartId ; 
+  cout << " Energy (GeV)   : " << fEnergy  ; 
+  cout << " Impactpar. (m) : " << fImpact  ; 
+  cout << " Photoelectrons : " << usPhotEl ; 
+  cout << endl ; 
+}
+
+    
+
Index: /branches/start/MagicSoft/include-Classes/MMcEvt.h
===================================================================
--- /branches/start/MagicSoft/include-Classes/MMcEvt.h	(revision 4308)
+++ /branches/start/MagicSoft/include-Classes/MMcEvt.h	(revision 4308)
@@ -0,0 +1,108 @@
+#ifndef __MMcEvt__
+#define __MMcEvt__
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>  
+
+#include <iostream.h>
+#include "TObject.h"
+
+
+class MMcEvt : public TObject {
+ private:
+  UShort_t usPartId;     // Type of particle
+  Float_t fEnergy;       // Energy in GeV
+
+  Float_t fTheta;        // Theta angle of event 
+  Float_t fPhi;          // Phi angle of event 
+
+  Float_t fCoreD;        // Core d pos
+  Float_t fCoreX;        // Core x pos
+  Float_t fCoreY;        // Core y pos
+  Float_t fImpact;       // impact parameter
+
+  UShort_t usPhotIni;      // Initial number of photons
+  UShort_t usPassPhotAtm;  // Passed atmosphere
+  UShort_t usPassPhotRef;  // Passed reflector
+  UShort_t usPassPhotCone; // Passed glas
+  UShort_t usPhotEl    ;   // Passed qe
+ 
+
+ public:
+  MMcEvt() ;
+  
+  MMcEvt( UShort_t, 
+	  Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t,
+	  UShort_t, UShort_t, UShort_t, UShort_t, UShort_t ) ; 
+  
+  ~MMcEvt(); 
+
+  void Clear();
+
+  void Fill( UShort_t, 
+	     Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t,
+	     UShort_t, UShort_t, UShort_t, UShort_t, UShort_t ) ; 
+
+
+  void Print(Option_t *);
+
+
+
+/*    Short_t GetPartId() { return usPartId; }       //Get Type of particle */
+/*    Float_t GetEnergy() { return fEnergy; }        //Get Energy */
+
+/*    Float_t GetTheta() { return fTheta; }          //Get Theta angle */
+/*    Float_t GetPhi() { return fPhi ;  }            //Get Phi angle */
+
+/*    Float_t GetCoreD() { return fCoreD; }          //Get Core d pos */
+/*    Float_t GetCoreX() { return fCoreX; }          //Get Core x pos */
+/*    Float_t GetCoreY() { return fCoreY; }          //Get Core y pos */
+/*    Float_t GetImpact() { return fImpact;}         //Get impact parameter */
+
+/*    Short_t GetPhotIni() { return usPhotIni; }           //Get Initial photons */
+/*    Short_t GetPassPhotAtm() { return usPassPhotAtm;}    //Get Passed atmosphere */
+/*    Short_t GetPassPhotRef() { return usPassPhotRef; }   //Get Passed reflector */
+/*    Short_t GetPassPhotCone() { return usPassPhotCone; } //Get Passed glas */
+/*    Short_t GetPhotEl() { return usPhotEl; }             //Get Passed qe */
+
+
+
+ /*  void SetPartId(Short_t PartId)  */
+/*     { usPartId=PartId; }             //Set Type of particle */
+/*   void SetEnergy(Float_t Energy)  */
+/*     { fEnergy=Energy; }              //Set Energy */
+ 
+/*   void SetTheta(Float_t Theta)  */
+/*     { fTheta=Theta; }                //Set Theta angle */
+/*   void SetPhi(Float_t Phi)  */
+/*     { fPhi=Phi;  }                   //Set Phi angle */
+ 
+/*    void SetCoreD(Float_t CoreD)  */
+/*      { fCoreD=CoreD; }                //Set Core d pos */
+/*    void SetCoreX(Float_t CoreX)  */
+/*      { fCoreX=CoreX; }                //Set Core x pos */
+/*    void SetCoreY(Float_t CoreY )  */
+/*      { fCoreY=CoreY; }                //Set Core y pos */
+/*    void SetImpact(Float_t Impact)  */
+/*      { fImpact=Impact;}               //Set impact parameter */
+  
+/*    void SetPhotIni(Short_t PhotIni)  */
+/*      { usPhotIni=PhotIni; }                 //Set Initial photons */
+/*    void SetPassPhotAtm(Short_t PassPhotAtm)  */
+/*      { usPassPhotAtm=PassPhotAtm;}         //Set Passed atmosphere */
+/*    void SetPassPhotRef(Short_t PassPhotRef)  */
+/*      { usPassPhotRef=PassPhotRef ; }       //Set Passed reflector */
+/*    void SetPassPhotCone(Short_t PhotCon)  */
+/*      { usPassPhotCone=PhotCon; }           //Set Passed glas */
+/*    void SetPhotEl(Short_t PhotEl)  */
+/*      { usPhotEl=PhotEl; }                  //Set Passed qe */
+
+
+  ClassDef(MMcEvt, 1)  //Stores Montecarlo Information 
+
+};
+
+#endif
Index: /branches/start/MagicSoft/include-Classes/MRawEvt.cxx
===================================================================
--- /branches/start/MagicSoft/include-Classes/MRawEvt.cxx	(revision 4308)
+++ /branches/start/MagicSoft/include-Classes/MRawEvt.cxx	(revision 4308)
@@ -0,0 +1,268 @@
+#include <iostream.h>
+#include "TClonesArray.h"
+#include "TString.h"
+#include "TRandom.h"
+
+#include "MRawEvt.h"
+#include "MRawPixel.h"
+
+#include "Mdefine.h"
+//==========
+// MRawEvt 
+//    
+// One Event is a sample of FADC measurements of different Pixels 
+// (Photomultipliers) from the Camera of MAGIC. So all data (FADC) of the 
+// interesting pixels are the modules of an event. To describe pixels the 
+// class MRawPixel is used.  To define a single events
+// some other data members are needed (Time of the events, kind of event..).
+//
+// To describe one event on the level of FADC values the Class MRawEvt is
+// created. It has the following data members: 
+//
+// ----------
+//
+// UInt_t    uiEvtNo    
+//
+// This it the number of the Event in one 
+// data run. The first event in this run get
+// the number zero. The next one is one bigger.
+//
+// Assuming that one run takes 1 hour and a
+// triggerrate of 1kHz the number must be able
+// to reach 3.6e6 Events. To reach this number
+// you need at least 22 bits. This is the reason
+// why we use an integer (of root type UInt_t)
+// with a range to 4.2e9. 
+//
+// ----------
+//
+// ULong_t   ulTimeStamp
+//   
+// Time of the event. 
+// The start point of the time determination can be
+// the millenium. From that start point the time is
+// measured in 200ns-count. One day for example
+// contains 432.e9 counts. An unsigned Long is able to 
+// contain 1.8e19 200ns-counts. This corresponds to 41.e6
+// days. This should be more than the livetime of MAGIC.
+//
+// ----------
+//
+// UChar_t   ucEvtStatus 
+//
+// Status of Event. 
+// This is a Byte (8 bit) to indicated the status of 
+// the event (Pedestal, Calibration, etc). 
+//
+// ----------
+//
+// UShort_t  usTrig1st
+//
+// Number of first level trigger
+// This member counts the number of First Level Trigger
+// between the last and this event. May be that due to 
+// dead time of the DAQ this number is different from 1.
+// If the DAQ is fast enough, this value should be 1. 
+// This may be usefull in GammaRayBursts and if we 
+// apply a data reduction in the DAQ-chain, which selects
+// only good events. 
+//
+// ----------
+//
+// UShort_t  usMultPixel
+//
+// Multiplicity of Pixels
+// Each event consists of a specific number of 
+// pixels. This is the number of pixels in one event. 
+// The array of ClonesPixels (taClonesArray) is of this
+// size. 
+//
+// ----------
+//
+// TClonesArray  *taPixels
+//
+// Array of Pixels 
+// The Clones array is a list of the Pixels used in one
+// event with the information about the Pixels. 
+//
+//
+
+//
+void GetFadcNoise ( UChar_t asF[] ) 
+{
+  static TRandom Gen ; 
+  static Float_t z1, z2 ; 
+  for (Int_t i=0; i<FADC_SLICES; i++ ) {   
+    Gen.Rannor(z1, z2) ;
+    asF[i] = 10 + (UChar_t)(z1*4) ;  
+    // if (asF[i] < 0 ) asF[i] = 0 ; 
+  } 
+} 
+
+ClassImp(MRawEvt) 
+
+MRawEvt::MRawEvt() {
+  //
+  //   Implementation of the default constructor
+  //
+  //   set all member to zero, init the pointer to ClonesArray, 
+
+  uiEvtNo      = 0 ; 
+  ulTimeStamp  = 0 ; 
+  ucEvtStatus  = 0 ; 
+  usTrig1st    = 0 ;
+  usMultPixel  = 0 ; 
+
+  // 
+  //   Then we have to initialize the ClonesArray list for the Pixels. 
+  //   This is neccessary once! 
+  //
+  //   initialize the list to this global pointer
+  
+  taPixels = new TClonesArray ("MRawPixel", 2*CAMERA_PIXELS ) ; 
+
+  cout << " default constructor " << endl ; 
+}
+
+
+MRawEvt::~MRawEvt() {
+  //
+  //   Implementation of the default destructor
+  //
+  delete taPixels ; 
+  cout << " default destructor " << endl ; 
+}
+
+void MRawEvt::Clear() {
+  //
+  //   Implementation of the Clear function
+  //
+  //   Resets all members to zero, clear the list of Pixels
+  //
+  uiEvtNo      = 0 ; 
+  ulTimeStamp  = 0 ; 
+  ucEvtStatus  = 0 ; 
+  usTrig1st    = 0 ;
+  usMultPixel  = 0 ; 
+
+  taPixels->Clear() ; 
+}
+
+
+
+void MRawEvt::Print() {
+  //
+  //  This member function prints all Data of one Event on screen. 
+  //
+
+  // Prints out the data of one Pixel
+  cout << endl << "EventNumber      " << uiEvtNo          ; 
+  cout << endl << "Event Time Stamp " << ulTimeStamp      ;
+  cout << endl << "Event Status     " << (int) ucEvtStatus      ; 
+  cout << endl << "Trigger 1. Level " << usTrig1st        ; 
+  cout << endl << "Number of Pixels " << usMultPixel      ; 
+
+  for (Int_t i=0 ; i<usMultPixel; i++ ) {
+    ((MRawPixel *)taPixels->At(i))->Print() ;    
+  }
+}
+
+
+void MRawEvt::FillRandom ( UInt_t uiN, ULong_t ulT,  UShort_t usMuPi ) {
+  //
+  //  This is neccessary to fill the MRawEvt Class with randomized FADC
+  //  values. The EventNumber, EventTime and the Number of Pixels are given 
+  //  as parameters. 
+  // 
+
+  uiEvtNo      = uiN ; 
+  ulTimeStamp  = ulT ; 
+
+  UChar_t   ucA[FADC_SLICES] ;
+
+  for (UShort_t i = 0 ; i< usMuPi; i++ ) {
+    GetFadcNoise ( ucA ) ;   
+  
+    TClonesArray &caP = *taPixels ;
+    new ( caP[usMultPixel++] ) MRawPixel((usMultPixel), 0, ucA) ; 
+  }
+}
+
+void MRawEvt::FillHeader ( UInt_t uiN, ULong_t ulT ) {
+   
+  uiEvtNo      = uiN ; 
+  ulTimeStamp  = ulT ; 
+  
+  ucEvtStatus  = 0 ; 
+  usTrig1st    = 0 ;
+  usMultPixel  = 0   ; 
+
+  taPixels->Clear()  ; 
+}
+
+void MRawEvt::FillPixel ( UShort_t uiPix, Float_t *array ) {
+  //
+  //  This is to fill the data of one pixel to the MRawEvt Class. 
+  //  The parameters are the pixelnumber and the FADC_SLICES values of ADCs
+  // 
+
+  UChar_t   ucA[FADC_SLICES] ;
+
+  for (UShort_t i = 0 ; i< FADC_SLICES ; i++ ) {
+    ucA[i] = (UShort_t) array[i] ; 
+  } 
+  
+  TClonesArray &caP = *taPixels ;
+  new ( caP[usMultPixel++] ) MRawPixel((uiPix), 0, ucA) ; 
+}
+
+void MRawEvt::FillMontCarl ( UInt_t uiN, ULong_t ulT,  Float_t *array ) {
+  //
+  //  This is neccessary to fill the MRawEvt Class with randomized FADC
+  //  values. The EventNumber, EventTime and the Number of Pixels are given 
+  //  as parameters. 
+  // 
+
+  uiEvtNo      = uiN ; 
+  ulTimeStamp  = ulT ; 
+
+  usMultPixel = 0 ; 
+
+  UChar_t   ucA[FADC_SLICES] ;
+
+  for (UShort_t i = 0 ; i< CAMERA_PIXELS; i++ ) {
+
+    if ( array[i] > 0. ) { 
+      for ( Int_t ii = 0 ; ii < FADC_SLICES ; ii++ ) { 
+	ucA[ii] = 0 ; 
+      }
+      ucA[5] = (UShort_t) (array[i]) ; 
+      
+      TClonesArray &caP = *taPixels ;
+      new ( caP[usMultPixel++] ) MRawPixel(i, 0, ucA) ; 
+    }
+  }
+}
+
+UShort_t MRawEvt::GetMultPixel() {
+  //
+  //  returns the pixel multiplicity of the Event
+  //
+  return usMultPixel;
+}
+
+
+//  void MRawEvt::AddPixel ( UShort_t usP ) {
+//    //
+//    //   Implementation of the AddPixel function
+//    //
+
+//    cout << " need implementation " << endl ;  
+//  }
+
+//  void MRawEvt::AddPixel ( UShort_t usP, UChar_t ucStat, UChar_t ausAR[] ) {
+//    cout << " need implementation 2 " << endl ;  
+//  }
+
+
+
Index: /branches/start/MagicSoft/include-Classes/MRawEvt.h
===================================================================
--- /branches/start/MagicSoft/include-Classes/MRawEvt.h	(revision 4308)
+++ /branches/start/MagicSoft/include-Classes/MRawEvt.h	(revision 4308)
@@ -0,0 +1,77 @@
+#ifndef __MRawEvt__
+#define __MRawEvt__
+
+#include <iostream.h>
+#include "TObject.h"
+#include "TClonesArray.h"
+
+#include "Mdefine.h" 
+
+class MRawEvt : public TObject { 
+
+ private: 
+  UInt_t        uiEvtNo     ;  // Number of Event
+
+  ULong_t       ulTimeStamp ;  // Time of the Event
+
+  UChar_t       ucEvtStatus ;  // Status of this event (DAQ, Pedestal, ..) 
+ 
+  UShort_t      usTrig1st   ;  // Number of 1st level tiggers between 2 events
+
+  UShort_t      usMultPixel ;  // Multiplicity of the Pixels in this event   
+
+  TClonesArray  *taPixels   ;  // list of the events
+
+ public: 
+
+  MRawEvt() ; 
+
+  ~MRawEvt(); 
+
+  void Clear() ; 
+  
+  void Print() ; 
+
+  void FillRandom( UInt_t, ULong_t, UShort_t   ) ; 
+
+  void FillHeader( UInt_t, ULong_t ) ; 
+
+  void FillPixel(  UShort_t, Float_t * ) ; 
+ 
+  void FillMontCarl ( UInt_t, ULong_t, Float_t * ) ;
+
+  UShort_t GetMultPixel(); 
+
+  TClonesArray *&GetPixelList() {
+  //
+  //   returns a Pointer to the pixel list
+  //
+  return  taPixels ;
+}
+
+
+/*    void AddPixel( UShort_t  ) ;  */
+
+/*    void AddPixel ( UShort_t, UChar_t, UChar_t * ) ;  */
+
+
+  ClassDef ( MRawEvt, 1 )  
+
+};  // end of class definition of MRawEvt
+
+#endif
+
+
+
+
+
+  
+
+
+
+
+  
+
+
+
+
Index: /branches/start/MagicSoft/include-Classes/MRawPixel.cxx
===================================================================
--- /branches/start/MagicSoft/include-Classes/MRawPixel.cxx	(revision 4308)
+++ /branches/start/MagicSoft/include-Classes/MRawPixel.cxx	(revision 4308)
@@ -0,0 +1,152 @@
+#include <iostream.h>
+
+#include "TClonesArray.h"
+#include "TString.h"
+#include "TRandom.h"
+
+#include "MRawPixel.h"
+
+#include "Mdefine.h"
+
+//==========
+// MRawPixel 
+//    
+// One Event in the Camera of MAGIC consists of measurements of different
+// Photomultiplier. The measurements are taken with FADCs. So the raw 
+// informations of one pixel are the ADC values of the FADCs. MAGIC will
+// measure the amplitude of one Photomulitplier in different branches 
+// - one high and one low gain branch. The first is for small signals, the 
+// other for big signals. With this method it is possible to increase the 
+// dynamic range.  
+//
+// The Class MRawPixel is used to manage this raw information. 
+//
+// The data members are described in detail here: 
+//
+// ---------
+//
+// UShort_t     usPixelId     ;   
+//
+// This is to identify the Pixel.
+// The Camera consists of CAMERA_PIXELS Pixels. Each one has a specific Id.
+// The center of the camera is zero and a spiral numbering is chosen.
+//
+// To reduce the amount of data, we store the information of the 
+// low-gain-branch of the Fadc´s only if there is a signal in. Then the 
+// usPixelId is:
+//                   usPixelId = 10000 + PixelId   . 
+//
+// For the high gain Fadc values the rule is:
+//                   usPixelId = PixelId . 
+//
+//
+// ---------
+//
+// UChar_t      ucPixelStatus ;   
+//
+// The PixelStatus may contain information if the Pixel has triggered 
+// this event. Also the kind of gain-branch (high or low) may be indicated 
+// by one bit of the ucPixelStatus. etc
+//
+// ---------
+//
+// UChar_t      aucFadc[ FADC_SLICES ]  ; 
+//
+// The values of FADC_SLICES fadc-slices. This is the information of the 
+// measured ADC values for one branch (high gain or low gain). The typ of 
+// branch is indicated in the usPixelNumber and in the ucPixelStatus.
+
+ClassImp(MRawPixel) 
+
+
+
+MRawPixel::MRawPixel() {
+  //
+  //  The default constructor sets all members to zero. 
+  //
+    
+    usPixelId     = 0 ; 
+    ucPixelStatus = 0 ; 
+    
+    for (Int_t i = 0; i<FADC_SLICES; i++) 
+      aucFadc[i]   = 0 ; 
+}
+
+
+MRawPixel::MRawPixel(UShort_t PId) {
+  //
+  //  constructor II  overloaded
+  //
+  //  Parameter is the PixelId. All other data member are set to zero
+  
+  usPixelId     = PId ; 
+  ucPixelStatus = 0 ; 
+  
+  for (Int_t i = 0; i<FADC_SLICES; i++) 
+    aucFadc[i]   = 0 ; 
+}
+
+
+MRawPixel::MRawPixel(UShort_t usPId, UChar_t ucSt, UChar_t ucF[]) {
+  //
+  // constructor III overloaded 
+  //
+  // parameters are PixelId, Status and an array with Fadc numbers.
+  
+  usPixelId     = usPId ; 
+  ucPixelStatus = ucSt  ; 
+  
+  for (Int_t i = 0; i<FADC_SLICES; i++) 
+    aucFadc[i]   = ucF[i] ; 
+}
+MRawPixel::~MRawPixel(){
+  //
+  //  default destructor
+  //
+}
+
+void MRawPixel::Clear() {
+  //
+  //  Sets the data member back to zero
+  //
+  usPixelId     = 0 ; 
+  ucPixelStatus = 0 ; 
+  
+  for (Int_t i = 0; i<FADC_SLICES; i++) 
+    aucFadc[i]   = 0 ; 
+} 
+
+
+void MRawPixel::Print() 
+{
+  //
+  //  This member function prints all Data of one Pixel on screen. 
+  //
+
+  cout << endl << "PixId " << usPixelId          ; 
+  cout << " Stat " << (Int_t) ucPixelStatus << " --> "     ;
+
+  for (Int_t i=0 ; i<FADC_SLICES ; i++ ) {
+    cout<<" / " << (int) aucFadc[i] ; 
+  } 
+}
+  
+UShort_t MRawPixel::GetPixelId() {
+  //
+  // returns back the PixelId of the Pixel
+  //
+  return usPixelId;
+}
+
+UChar_t MRawPixel::GetFadcSlice( Int_t iSli ) {
+  //
+  // returns back the fadc content of the slice iSli 
+  //
+  return ( aucFadc[iSli] ) ; 
+}
+
+
+
+
+
+
Index: /branches/start/MagicSoft/include-Classes/MRawPixel.h
===================================================================
--- /branches/start/MagicSoft/include-Classes/MRawPixel.h	(revision 4308)
+++ /branches/start/MagicSoft/include-Classes/MRawPixel.h	(revision 4308)
@@ -0,0 +1,59 @@
+#ifndef __MRawPixel__
+#define __MRawPixel__
+
+#include <iostream.h>
+#include "TObject.h"
+
+#include "Mdefine.h" 
+
+
+class MRawPixel  : public TObject
+ {
+
+ private: 
+
+  UShort_t     usPixelId     ;           //  Identification of PixelNumber and gain branch
+
+  UChar_t      ucPixelStatus ;           //  The Status of the pixel
+
+  UChar_t      aucFadc[ FADC_SLICES ]  ; // The values of fadc-slices.
+
+ public:
+
+  MRawPixel() ; 
+
+  MRawPixel(UShort_t ) ; 
+
+  MRawPixel(UShort_t , UChar_t , UChar_t * ) ; 
+
+  ~MRawPixel() ; 
+
+  void Clear() ; 
+
+  void Print() ; 
+
+  UShort_t GetPixelId() ; 
+
+  UChar_t GetFadcSlice( Int_t  ) ; 
+
+  ClassDef ( MRawPixel, 1 )
+  
+};  // end of class definition of MRawPixel 
+
+
+#endif
+
+
+
+
+
+  
+
+
+
+
+  
+
+
+
+
Index: /branches/start/MagicSoft/include-Classes/Mdefine.h
===================================================================
--- /branches/start/MagicSoft/include-Classes/Mdefine.h	(revision 4308)
+++ /branches/start/MagicSoft/include-Classes/Mdefine.h	(revision 4308)
@@ -0,0 +1,41 @@
+//
+//     Mdefine.h
+//
+//     defines some Values for the MAGIC telecope
+//
+
+//     Number of the Pixels in the Camera
+
+#define     CAMERA_PIXELS         919
+
+//     Number of the Slices of one Fadc. Be carefull this is the number of 
+//     slices for one gain branch. We sample two times this number. 
+
+#define     FADC_SLICES            15
+
+//     ParticleId for Monte Carlo simulation
+
+#define  GAMMA 0
+#define  PROTON 14
+#define  HELIUM 402
+#define  OXIGEN 1608
+#define  IRON 5626
+
+
+//---------------------------------------------------------
+// definition of constants
+
+#define TRUE 1
+#define FALSE 0
+
+#define MAX_ADC 30  // nummber of ADC conversions per pixel
+
+//camera dimensions and definitions
+#define PIXEL_DIST  10.0  //cm
+#define CAMERA_COLOR 13   //Background light grey
+#define DEFAULT_COLOR 1 //black
+//#define TRACK_WALL_COLOR 7   //light blue
+#define PIXEL_LINE_COLOR 15 //dark grey
+#define COLORTABLE_START 18 //Begin of colortable
+#define MAX_PH_EL 500 //upper limit for colortable
+
Index: /branches/start/Taper/AUTHORS
===================================================================
--- /branches/start/Taper/AUTHORS	(revision 4308)
+++ /branches/start/Taper/AUTHORS	(revision 4308)
@@ -0,0 +1,1 @@
+Martin Merck <merck@astro.uni-wuerzburg.de>
Index: /branches/start/Taper/COPYING
===================================================================
--- /branches/start/Taper/COPYING	(revision 4308)
+++ /branches/start/Taper/COPYING	(revision 4308)
@@ -0,0 +1,345 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
Index: /branches/start/Taper/ChangeLog
===================================================================
--- /branches/start/Taper/ChangeLog	(revision 4308)
+++ /branches/start/Taper/ChangeLog	(revision 4308)
@@ -0,0 +1,1 @@
+ 
Index: /branches/start/Taper/INSTALL
===================================================================
--- /branches/start/Taper/INSTALL	(revision 4308)
+++ /branches/start/Taper/INSTALL	(revision 4308)
@@ -0,0 +1,167 @@
+Basic Installation
+==================
+
+   These are generic installation instructions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+   The file `configure.in' is used to create `configure' by a program
+called `autoconf'.  You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.  If you're
+     using `csh' on an old version of System V, you might need to type
+     `sh ./configure' instead to prevent `csh' from trying to execute
+     `configure' itself.
+
+     Running `configure' takes a while.  While running, it prints some
+     messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Type `make install' to install the programs and any data files and
+     documentation.
+
+  4. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  You can give `configure'
+initial values for variables by setting them in the environment.  Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+   If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory.  After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+   By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc.  You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on.  Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+     CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+   If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+     Use and save the results of the tests in FILE instead of
+     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
+     debugging `configure'.
+
+`--help'
+     Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--version'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
+
Index: /branches/start/Taper/Makefile.am
===================================================================
--- /branches/start/Taper/Makefile.am	(revision 4308)
+++ /branches/start/Taper/Makefile.am	(revision 4308)
@@ -0,0 +1,22 @@
+SUBDIRS = $(TOPSUBDIRS)
+
+$(top_srcdir)/configure.in: configure.in.in $(top_srcdir)/subdirs
+	cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in ;
+
+$(top_srcdir)/subdirs:
+	cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs
+
+$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in
+	@cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in > acinclude.m4
+
+MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 configure.files 
+
+package-messages:
+	cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common package-messages
+	$(MAKE) -C po merge
+
+EXTRA_DIST = admin  configure.in.in
+
+dist-hook:
+	cd $(top_distdir) && perl admin/am_edit -padmin
+	cd $(top_distdir) && $(MAKE) -f admin/Makefile.common subdirs
Index: /branches/start/Taper/Makefile.cvs
===================================================================
--- /branches/start/Taper/Makefile.cvs	(revision 4308)
+++ /branches/start/Taper/Makefile.cvs	(revision 4308)
@@ -0,0 +1,10 @@
+all: 
+	@echo "This Makefile is only for the CVS repository"
+	@echo "This will be deleted before making the distribution"
+	@echo ""
+	$(MAKE) -f admin/Makefile.common cvs
+
+dist:
+	$(MAKE) -f admin/Makefile.common dist
+
+.SILENT:
Index: /branches/start/Taper/NEWS
===================================================================
--- /branches/start/Taper/NEWS	(revision 4308)
+++ /branches/start/Taper/NEWS	(revision 4308)
@@ -0,0 +1,1 @@
+ 
Index: /branches/start/Taper/README
===================================================================
--- /branches/start/Taper/README	(revision 4308)
+++ /branches/start/Taper/README	(revision 4308)
@@ -0,0 +1,1 @@
+
Index: /branches/start/Taper/TODO
===================================================================
--- /branches/start/Taper/TODO	(revision 4308)
+++ /branches/start/Taper/TODO	(revision 4308)
@@ -0,0 +1,1 @@
+ 
Index: /branches/start/Taper/admin/ChangeLog
===================================================================
--- /branches/start/Taper/admin/ChangeLog	(revision 4308)
+++ /branches/start/Taper/admin/ChangeLog	(revision 4308)
@@ -0,0 +1,761 @@
+2002-10-03  Stephan Kulow  <coolo@kde.org>
+	
+	* made config.h.bot obsolete
+
+2002-04-26  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in removed bogus message
+
+2001-11-07  Walter Tasin <tasin@kdevelop.org>
+
+	* now #MIN_CONFIG tag takes parameters for KDE_USE_QT, too.
+          e.g. #MIN_CONFIG(2.2) for qt 2.2 usage
+
+2000-11-30  David Faure  <faure@kde.org>
+
+	* acinclude.m4.in: Added kde_moduledir which points to $prefix/lib/kde2/
+
+2000-07-24  Alex Zepeda  <jazepeda@pacbell.net>
+
+	* acinclude.m4.in: Remove the test for malloc.h
+
+2000-04-05  Michael Matz  <matz@ifh.de>
+
+        * config.pl : added kludge for compiling regexp's even if
+	perl < 5.005 is installed
+	* conf.change.pl : added support for autoconf 2.14.1
+
+2000-03-27  David Faure  <faure@kde.org>
+
+	* acinclude.m4.in, Makefile.common: changed inst-apps semantics
+	If present, only the subdirs it lists will be configured and compiled.
+	If absent, then subdirs is used (and inst-apps isn't generated anymore)
+
+2000-03-22  David Faure  <faure@kde.org>
+
+	* am_edit: Added support for KDE_ICON = AUTO
+
+2000-03-18  David Faure  <faure@kde.org>
+
+	* Makefile.common: Rewrote the list-of-Makefiles generation to make it
+	simpler and nicer, using create_makefiles' way of doing it.
+	Added support for COMPILE_LAST and COMPILE_FIRST in toplevel Makefile.am
+
+2000-01-05  David Faure  <faure@kde.org>
+
+	* Makefile.common: hacked around autoconf bug (setting INSTALL to ".."
+	when calling a subconfigure and INSTALL is already set).
+
+1999-12-15  Waldo Bastian  <bastian@kde.org>
+
+        * acinclude.m4.in: Test whether Qt compiles AND LINKS without flags.
+
+1999-06-24  Stephan Kulow  <coolo@kde.org>
+
+	* am_edit: generate correct Makefile entries for kde-i18n toplevel directories
+	* am_edit:
+
+1999-06-14  Stephan Kulow  <coolo@kde.org>
+
+	* am_edit: remove idl generated files on make clean
+
+1999-06-09  Stephan Kulow  <coolo@kde.org>
+
+	* am_edit: skipping programs with variables in sources for final
+
+1999-06-07  Stephan Kulow  <coolo@kde.org>
+
+	* am_edit: added support for idl files
+
+1999-06-02  Stephan Kulow  <coolo@kde.org>
+
+	* Makefile.common: preserve comments in .pot files to make it
+		possible for programmers and translators to comment them
+
+1999-06-02  Simon Hausmann <hausmann@kde.org>
+
+        * acinclude.m4.in: added kde_servicetypesdir
+
+1999-06-02  David Faure  <faure@kde.org>
+
+	* acinclude.m4.in: removed LIB_KFM and LIB_KDEUTIL aliases
+
+1999-05-28  Simon Hausmann <hausmann@kde.org>
+
+	* acinclude.m4.in: added kde_servicesdir
+
+1999-05-27  Stephan Kulow  <coolo@kde.org>
+
+	* am_edit: lots of changes for better support of --enable-final
+
+1999-05-22  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: added support for --with-dmalloc
+
+1999-05-19  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: added support for --enable-final
+
+	* am_edit: added support for --enable-final
+	
+1999-05-06  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: change the meaning of --disable-debug
+
+1999-05-04  Helge Deller <deller@gmx.de>
+
+	* acinclude.m4.in: the test for the X-includes/directories failed,
+	when compile & link work without special directories (as on HP-UX).
+
+1999-04-20  Stephan Kulow  <coolo@kde.org>
+
+	* am_edit: adding DESTDIR replacement for rm and uninstall-local
+	too. Seems very useless, but makes testing for uninstall easier
+
+1999-04-01  David Faure  <faure@kde.org>
+
+	* acinclude.m4.in: Added -lkfile to $(LIB_KIO)
+
+1999-03-30  David Faure  <faure@kde.org>
+
+	* acinclude.m4.in: Added AC_CHECK_KDEMAXPATHLEN, which defines KDEMAXPATHLEN.
+
+1999-03-29  David Faure  <faure@kde.org>
+
+	* acinclude.m4.in: added LIB_X11 to XPMLIB and GLLIB, because
+	on SCO, they need it _after_ themselves.
+
+1999-03-28  David Faure  <faure@kde.org>
+
+	* acinclude.m4.in: added LIB_KFM to LIB_KAB alias
+
+1999-03-26  David Faure  <faure@kde.org>
+
+	* acinclude.m4.in: made LIB_KFILE use LIB_KIO instead of LIB_KFM
+	added LIB_KFORMULA
+
+1999-03-20  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: check for libXext - for Russel :)
+
+1999-03-16  Stephan Kulow  <coolo@kde.org>
+
+	* acinclud3.m4.in: extend the MICO test with a list of possible
+	places where to find CORBA.h
+
+1999-03-15  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: move $QTINC and $QTLIB in search path
+
+1999-03-14  Stephan Kulow  <coolo@kde.org>
+
+	* am_edit: install-root is obsolute. Use DESTDIR always
+
+1999-03-03  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: fixing a bug, that $QTDIR was taken before --with-qt*
+	* acinclude.m4.in: added KDE_USE_QT, that you can choose if to
+	use QT 2.0 or KDE 1.0
+	
+	* Makefile.common: added target package-merge
+
+	* am_edit: many fixes to the POFILES handeling of am_edit
+
+1999-03-02  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: first look at libjpeg6b (from kdesupport) then
+	for libjpeg
+
+	* config.*, libtool.*: update to the latest FSF tools
+
+1999-02-23  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: error when Sparc CC is used. Better use it in
+	configure and tell him the story then letting him find it while
+	compiling
+
+	* acinclude.m4.in: adding KDE_CHECK_EXTRA_LIBS to all possible tests,
+	so that --with-extra-includes is used when needed.
+
+	* acinclude.m4.in: configure looks for giflib30, so it should say so
+
+	* acinclude.m4.in: don't overwrite x include parameters. Patch by
+	Ari Lemmke <ari.lemmke@regex.fi> (bug report 741)
+	
+1999-02-20  Stephan Kulow <coolo@kde.org>
+
+	* acinclude.m4.in: fixing KDE_CHECK_PATHS for rechecking. In case
+	of defaults (kdelibs) configure didn't cache the results
+
+1999-02-18  David Faure  <faure@kde.org>
+
+	* acinclude.m4.in: added AC_CHECK_S_ISSOCK, to fix #706.
+
+1999-02-17  David Faure  <faure@kde.org>
+
+	* acinclude.m4.in: added AC_CHECK_RANDOM, just like
+	AC_CHECK_USLEEP, to enable the fake if necessary.
+
+1999-02-13  Kurt Granroth <granroth@kde.org>
+
+        * acinclude.m4.in: look for QT-2.0
+
+1999-02-05  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: in macro KDE_FIND_PATH treat user given dirs
+	and $PATH dirs the same. Added seperate test for to find binary
+	($5) to replace findperl
+
+1999-01-28  Stephan Kulow  <coolo@kde.org>
+
+	* automoc: added patch by jbb to be a little bit more precise about
+	the number of sourcefiles that include the moc file if it's != 1.
+	Besides that automoc will fail with exit code, so the Makefile.cvs
+	process does stop in case a problem accoured.
+
+	* automoc: don't hardcode header suffix, but allow *.h, *.hh and *.H
+	
+1999-01-27  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: try qobjcoll.h and qapplication.h before saying
+	OK to qt headers. (I could kill SuSE for splitting into qt-dev
+	and qt-compat)
+
+1991-01-23  Stephan Kulow  <coolo@kde.org>
+
+	* automoc: added fixes by JB <jb.nz@writeme.com>
+
+1999-01-21  Stephan Kulow  <coolo@kde.org>
+
+	* automoc: added --help and --path (for use in dist-hook)
+
+1999-01-20  Alex Zepeda  <garbanzo@hooked.net>
+	
+	* ltconfig: added entries for FreeBSD 4.x
+
+1999-01-19  Stephan Kulow  <coolo@kde.org>
+
+	* automoc: added a distclean-metasources target which deletes all
+	moc files and let distclean depend on it
+
+1999-01-18  Stephan Kulow  <coolo@kde.org>
+
+        * automoc: several fixes (ignore comment lines + join lines
+         with \ )
+	
+	* automoc: support META_INCLUDES in case the header files are
+	not in the same dir as the sources.
+
+1999-01-17  Stephan Kulow  <coolo@kde.org>
+
+	* automoc: several fixes.
+
+1999-01-16  Stephan Kulow  <coolo@kde.org>
+
+	* automoc: added support for included MOC files.
+
+	* acinclude.m4.in: use srcdir for the subdirs stuff as well
+
+	* automoc: added better command line parsing and some preparation
+	for handling "normal" moc files
+
+	* acinclude.m4.in: added aliases for libkio and libkdeutil
+
+1999-01-15  Harri Porten  <porten@kde.org>
+
+	* automoc: Carved in stone syntax for Makefile.in:
+	{program}_METASOURCES = USE_AUTOMOC [{suffix}]
+
+1999-01-15  Stephan Kulow  <coolo@kde.org>
+
+	* Makefile.common: set top_srcdir to .
+
+1999-01-14  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: don't use config.h.bot any longer
+
+1999-01-08  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: added KDE_CHECK_NEWLIBS
+
+	* acinclude.m4.in: test for Qt even if both --with-qt-headers and
+	--with-qt-libraries are given. They may be wrong.
+	
+1999-01-06  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: change the MOC test so it can be used for other
+	tools as well
+
+1998-12-28  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: look for QT-1.42 since kpanel needs it
+
+1998-12-27  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: added /usr/lib for libpython test
+	
+	* acinclude.m4.in: take my email address out of it and added a
+	reference to www.kde.org/faq
+
+	* acinclude.m4.in: use Qt >= 1.4
+
+	* acinclude.m4.in: added KDE_CHECK_NAMESPACES
+	
+1998-12-18  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: test for directories to exist before saying yes
+	to compilation :)
+
+1998-12-14  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: added CPLUSPLUS for the kimgio test. It's
+	only important for shaman right now, but at least there it is :)
+
+1998-12-12  Stephan Kulow  <coolo@kde.org>
+
+	* Makefile.cvs: added common Makefile.cvs
+
+	* acinclude.m4.in: Thomas.Schwarz@pro-sieben.de reported a very ugly
+	bug in AC_PROG_CXXCPP, so I added my own version
+	
+	* acinclude.m4.in: added KDE_CREATE_SUBDIRS_LIST to simplify
+	most toplevel configures
+
+1998-12-11  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: added call to AC_PROG_CXXCPP. Not really sure why
+	it never caused problems
+
+	* acinclude.m4.in: moved LIBTIFF alias
+
+	* acinclude.m4.in: only test for the existance of libkimgio if the
+	user wants to. For 99% of the applications it doesn't matter if
+	configure can find libkimgio :)
+	
+1998-12-10  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: some changes to the python check to handle $LIBDL
+
+1998-12-09  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: make Alex's tiff test a real one
+	
+	* acinclude.m4.in: fix the LIB_TIFF alias to really expand
+
+1998-12-08  Alex Zepeda  <garbanzo@hooked.net>
+
+	* acinclude.m4.in: Fix tiff test to use libtiff34 if it exists.
+	This is what the FreeBSD port installs to for whatever reason.
+
+	* acinclude.m4.in: s/kde/KDE/ (at least in some of the
+	descriptions, obviously no variable names were touched.
+
+1998-12-08  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: moved the LIB_QT alias to the Qt check
+	
+	* acinclude.m4.in: unset KDEDIR before running conftest
+	
+	* acinclude.m4.in: fixed mean typo
+	
+	* acinclude.m4.in: added the copyright header for the gettext
+	tests, so that people know we're legal ;)
+
+	* acinclude.m4.in: set language to C++ before testing QIMGIO	
+
+1998-12-07  Alex Zepeda  <garbanzo@hooked.net>
+
+	* acinclude.m4.in: Fix PNG test to use correct ANSI C code, and
+	not trip up gcc.
+
+1998-12-07  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: don't hardcode -ldl
+	
+	* acinclude.m4.in: move the LIB_X11 alias to the X test to make it
+	useful for kdesupport as well
+	
+	* acinclude.m4.in: give the word CHECK_KIMGIO a meaning in really
+	checking for it
+
+	* acinclude.m4.in: simple fix to prevent kimgio test from compiling
+	KDE application in kdelibs
+
+1998-12-05  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: let KDE_CHECK_KIMGIO depend on AC_PATH_KDE,
+	otherwise most tests fail. It didn't mean anything to 90% of the
+	packages since they test for KDE before kimgio, but for shaman
+	it does
+
+	* ltconfig: the real fix for the Solaris && gcc problem.
+	Thanks Kurt for reporting it and Alexandre for fixing it :)
+
+1998-12-04  Stephan Kulow  <coolo@kde.org>
+
+	* libtool.*: update again
+
+	* acinclude.m4.in: changed the function to test for libnsl to
+	inet_ntoa since UnixWare 7's version did not have gethostbyname,
+	but needs libnsl
+
+1998-12-02  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: fixed the MOC test (again) to use the PATH variable
+	correctly (with the correct seperator)
+
+	* config.guess: update from the soon to be released autoconf-2.13
+
+1998-12-01  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: fixes for the MOC test. Use PATH now when found
+
+1998-11-30  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: extended the MOC test. It checks now for the
+	first line of the output of "moc --help" and looks for Qt in it.
+
+1998-11-27  Stephan Kulow  <coolo@kde.org>
+
+	* ltconfig: another libtool update. Fixes an ugly bug on Solaris,
+	when GNU ld is in path before Solaris ld, but gcc uses the later
+
+1998-11-26  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: made the Qt test more advance to check for qt
+	1.41 - I still need to make it better, but there shouldn't be too
+	many qt releases in a row, would there? ;)
+
+	* ltconfig: libtool update with better BSD/OS support
+
+1998-11-22  Stephan Kulow  <coolo@kde.org>
+
+	* ltconfig: cool - libtool uses g++ now to link libraries on Solaris.
+	This means, static objects become usuable on that plattforms (some
+	others as well).
+
+1998-11-20  Stephan Kulow  <coolo@kde.org>
+
+	* ltmain.sh: updated libtool from their CVS - fixes bugs we haven't
+	found and adds some more features, that we do not need ;-)
+
+1998-11-19  David Faure  <faure@kde.org>
+
+	* acinclude.m4.in: added AC_CHECK_UTMP_FILE, taken from kdebase
+
+1998-11-16  Harri Porten  <porten@kde.org>
+
+	* automoc: take care of "ar" object files, too.
+
+1998-11-16  Stephan Kulow  <coolo@kde.org>
+
+	* libtool.m4.in: revised my --silent patch. The solution
+	Alexandre suggested is much better.
+
+1998-11-15  Stephan Kulow  <coolo@kde.org>
+
+	* ltconfig.in: done some tweakings to support -export-dynamic
+	with egcs
+
+	* config.sub: wow - BeOS support :)
+
+1998-11-14  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: don't use rpath for test program, if rpath is
+	disabled for applications
+
+	* ltconfig: patched libtool to make it silent without making
+	ltconfig silent
+
+	* acinclude.m4.in: make libtool silent again
+
+	* libtool.m4.in: update to libtool-981114 (untested stuff, but
+	we have to test it to make it tested - sounds that logical? :-)
+
+	* libtool.m4.in: moved the self stricked libtool tests to "our"
+	file.
+
+	* acinclude.m4.in: moved ChangeLog of kdebase which I used to
+	maintain acinclude.m4.in logs to kde-common/admin. Hopefully I
+	will maintain it more often from now on :)
+
+1998-07-27  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: fixed some things in the MOC test
+
+	* acinclude.m4.in: fixed this damn msgfmt test
+
+1998-06-02  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: ignore msgfmt, if not GNU gettext
+
+1998-05-28  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: fixed KDE_CHECK_STL. Checks for HP and SGI type
+
+	* acinclude.m4.in: embraced every variable with "" to make
+	it consistent
+
+	* acinclude.m4.in: various fixes for the koffice checks
+	(mico, ministl and python)
+
+1998-05-16  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: don't use KDE_CHECK_QT_DIRECT, when
+	--with-qt-libs are given
+
+1998-04-21  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: cool, I found the trick to suppress the ls
+	errors
+
+1998-04-20  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: rewrote the qt checking test, since it
+	didn't work under FreeBSD, since it relied on the .so link.
+	The new version is a little bit buggy, but I need some testing
+	to make it perfect
+
+	* acinclude.m4.in: fixed the side effects of the PAM test
+
+1998-04-18  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: hopefully fixed the PAM test (I rewrote it)
+
+1998-04-16  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: extended the getsockname test inspired
+	by a patch by Martin Baulig
+
+	* configure.in: added test for utmp file
+
+	* acinclude.m4.in: made --without-pam default
+	
+
+1998-04-06  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: don't test compiling, linking, running in
+	one step. This proved to be too dangerous for my mail box.
+	
+1998-03-21  Stephan Kulow  <coolo@kde.org>
+
+	* libtool.m4.in: created some new macros to work around this
+	ugly (because long) help of configure --enable-shared/static
+
+1998-03-05  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: set language to C++ before trying the ksize_t
+	test
+
+	* configure.in: sorted the Makefile entries alphabeticly (and all
+	together: we love xemacs! we love xemacs! ;)
+	
+	* configure.in: added sk
+
+	* acinclude.m4.in: substitute x_libraries to fix the empty -rpath
+	
+1998-03-03  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: add a rpath for every shared library, that is
+	linked too (especially X11 libraries)
+	
+Tue Feb 24 22:04:59 1998  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: added kde_sounddir and set kde_minidir to
+	kde_icondir/mini to break not too much
+
+Sun Feb 15 18:25:50 1998  Stephan Kulow  <coolo@kde.org>
+
+	* configure.in: added bugfix by Bob Miller <kbob@engr.sgi.com>
+	(correct reset of IFS)
+	
+Wed Feb 11 00:53:11 1998  Stephan Kulow  <coolo@kde.org>
+
+	* configure.in: made shadow under Linux default, since the
+	binaries will work also under non-shadow systems. The only problem
+	left is PAM, so I disabled shadow in case, PAM is present
+
+Tue Feb 10 16:46:32 1998  Stephan Kulow  <coolo@kde.org>
+
+	* configure.in: added test for nice to find out, if the option
+	-nice works for the screensavers
+
+	* acinclude.m4.in: port to LynxOS. For this I moved all library
+	search routines in KDE_MISC_TESTS, so I don't need to write this
+	in every package
+
+	* README: some grammar fixes
+
+	* acinclude.m4.in: search for the libs in the exec_prefix, when
+	it's present
+	
+Sun Feb  8 14:07:23 1998  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: updated all packages
+
+	* libtool.m4.in: applied patch for libtool.m4.in to show the
+	correct default for shared and static
+	
+
+Sat Feb  7 10:56:00 1998  Stephan Kulow  <coolo@kde.org>
+
+	* configure.in: good news - KDE is relocatable again.
+
+	* libtool.m4.in: updated to latest libtool 1.0i
+
+Fri Feb  6 21:26:51 1998  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: added a AC_PROVIDE for AC_PROG_CC and
+	AC_PROG_CPP to KDE_CHECK_COMPILERS
+
+Thu Feb  5 16:27:47 1998  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: put $QTDIR/bin before /usr/bin in the path to
+	look for moc. I don't know why, but I got a report, that configure
+	found /usr/bin/moc under Solaris
+
+Fri Jan 30 15:47:50 1998  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: export LIBRARY_PATH after reset to the saved
+	value
+	
+	* acinclude.m4.in: unset the LIBRARY_PATH to get a relieable
+	result when trying to find, if Qt compiles without -L
+
+Sat Jan 24 00:45:52 1998  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: fixed another bug in AC_PATH_KDE
+
+Thu Jan 22 14:46:15 1998  Stephan Kulow  <coolo@kde.org>
+
+	* configure.in: fixed an ugly bug in AC_BASE_PATH_KDE
+
+	* kappfinder/kappfinder.in: let kappfinder create by configure to
+	allow the use of the kde_ paths
+
+Wed Jan 21 22:19:35 1998  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in: - added a install_root prefix to all paths, if
+	set, to enable package managers to move the whole installation at once
+	- added --with-install-root to set the install_root prefix
+
+Tue Jan 20 22:41:04 1998  Stephan Kulow  <coolo@kde.org>
+
+	* configure.in: added NOOPT_CXXFLAGS to allow kioslave to be
+	compiled without -O2
+
+Mon Jan 19 21:55:21 1998  Stephan Kulow  <coolo@kde.org>
+
+	* configure.in: some little fixes for the Makefiles
+
+	* acinclude.m4.in: --prefix will no longer override the search for
+	libraries. If they are present somewhere, they are used (through
+	the methodes in KApplication)
+
+Mon Jan 12 00:30:36 1998  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in fixed an ugly bug, that accoured, when
+	qt_libraries is not set (empty/equals X11/not necessary)
+	
+	* acinclude.m4.in moved the remove of the files after the error
+	detection
+	
+
+Sun Jan 11 17:27:53 1998  Stephan Kulow  <coolo@kde.org>
+
+	* acinclude.m4.in added a new macro KDE_CHECK_QT_DIRECT to unset
+	the Qt library path, if a Qt program compiles without them
+		
+	* acinclude.m4.in added a return value in the CREATE_KFSSTND
+	macro. Perhaps this has caused the problems
+
+Sat Jan 10 17:40:44 1998  Stephan Kulow  <coolo@kde.org>
+
+	* ChangeLog started to maintain a ChangeLog file again
+	* acinclude.m4.in the AC_CREATE_KFSSTND to get better debug output
+	to find the problem
+	
+
+Old logs, Stephan Kulow made:
+	
+0.1 : first steps with libkde
+0.2 : first release with libkde, khtmlw, kdehelp, acli, kwm, kpanel
+0.3 : added kfm and bugfixes
+0.4 : updated khtmlw, kdehelp, kwm, changed install in all subdirs
+0.5 : support libtool (chooseable shared libs)
+0.6 : split libkde in kdecore and kdeui
+0.6.1 : Bugfixes
+0.7 : added code from Janos Farkas (configure)
+    : added @{kde,qt}_{includes,libraries}@
+0.7.1: Bugfixes
+0.7.2: Bugfixes
+0.7.3: added @all_includes@ and @all_libraries@
+       replaced all incompatible flags like $(CC) and -DHAVE_UNISTD_H
+0.7.4: changed support for libkde (back in it's own)
+       added kpat
+       updated kpanel, kwm, kghostview
+0.8: removed a bug in kghostview
+	lifted installation process of several apps
+	splitt kdebase into kdelibs and kdeapps	
+	updated khtmlw, kfm and kdehelp
+	added kcalc and kpaint
+	updated kdisplay
+	added kscreensaver
+	added --enable-kscreensaver
+	added --enable-debug (and @CXXFLAGS@ to all Makefile.ins)
+	updated kwm to 0.4.7
+	added make uninstall to every app
+	added kvt
+	added khexdit
+	added .kdelnk for kmines, kedit, ktetris
+	put kwm, kfind's .kdelnk in the right directories
+	replaced --enable-kscreensaver by --disable-kscreensaver
+	updated kpanel to 0.15
+	some bugfixes (thanks Marco)
+	some bugfixes (thanks Martin)
+	changed acinclude.m4, because aclocal won't
+	updated kwm to 0.4.8 (patched it again for Qt-1.2)
+	updated kvt to 0.13 (patch from Matthias)
+	patched kvt and kwm
+	updated kwm to 0.5.0
+	updated kvt for 0.14 (again and again :-)
+	updated kview to 0.10
+	updated kfm to 0.6.3
+ 	patched kscreensaver for FreeBSD (thanks Marc)
+0.9: updated kdisplay to 0.5.3
+	added klogout
+	patches from Matthias
+	updated kfm to 0.6.4
+	updated kghostview to 0.4
+	added QTINC and QTLIB
+	updated kdehelp to 0.4.11
+	patched kfm to support ktoolbar
+	updated kedit to kedit+
+	added kfontmanager 0.2.1
+0.9.1: changed kpaint's make style
+	bugfixing
+	updated kmines to 0.6.5
+	updated ktetris to 0.2.4
+	changed to Makefiles to depend on Makefile.in
+	changed the Makefiles to let install depend on all
+	added kjots-0.2.2
+	updated kjots-0.2.3
+	updated kfm to 0.6.6
+	updated kjots-0.2.4
+	updated kpaint-0.2
+	updated kedit to 0.5
+	updated kfontmanager to 0.2.2
+	updated kfm to 0.6.7
+	updated ktetris to 0.2.5
+	updated kjots to 0.2.5
+0.10: added HAVE_SQRTL
+	added HAVE_CRYPT_H
+	updated kfind
+	updated kfm to kfm-0.8.1
+	re-introduced automake to kdebase
+	bugfixes for the configure.in
+	added XPM, GL and PAM tests to configure
+	added morph3d to kscreensavers
+	updated kfind to 0.3.2
+	added some patches for SGI
+... lost the time to maintain a Changelog ;)
Index: /branches/start/Taper/admin/Doxyfile.am
===================================================================
--- /branches/start/Taper/admin/Doxyfile.am	(revision 4308)
+++ /branches/start/Taper/admin/Doxyfile.am	(revision 4308)
@@ -0,0 +1,179 @@
+## generate API documentation with doxygen
+apidox-am-yes:
+	@if test "$(subdir)" != "."; then \
+		$(mkinstalldirs) $(top_builddir)/apidocs/$(subdir) ;\
+		if test ! -x $(top_builddir)/apidocs/common; then \
+			if test -d $(top_srcdir)/doc/common; then \
+			   common_dir=`cd $(top_srcdir)/doc/common && pwd` ;\
+			else \
+	   		   common_dir=$(kde_libs_htmldir)/en/common ;\
+			fi ;\
+			$(LN_S) $$common_dir $(top_builddir)/apidocs/common; \
+		fi ;\
+		cp $(top_srcdir)/admin/Doxyfile.global Doxyfile; \
+		echo "PROJECT_NAME           = \"$(subdir) Library\"" >> Doxyfile; \
+		echo "PROJECT_NUMBER         = \"Version $(VERSION)\"" >> Doxyfile; \
+		echo "INPUT                  = $(srcdir)" >> Doxyfile; \
+		echo "IMAGE_PATH             = $(top_srcdir)/doc/api" >> Doxyfile ;\
+		echo "OUTPUT_DIRECTORY       = $(top_builddir)/apidocs" >> Doxyfile; \
+		echo "HTML_OUTPUT            = $(subdir)/html" >> Doxyfile; \
+		echo "HTML_HEADER            = $(top_builddir)/apidocs/common/header.html" >> Doxyfile;\
+		echo "HTML_FOOTER            = $(top_builddir)/apidocs/common/footer.html" >> Doxyfile;\
+		echo "HTML_STYLESHEET        = $(top_builddir)/apidocs/common/doxygen.css" >> Doxyfile;\
+		echo "LATEX_OUTPUT           = $(subdir)/latex" >> Doxyfile; \
+		echo "RTF_OUTPUT             = $(subdir)/rtf" >> Doxyfile; \
+		echo "MAN_OUTPUT             = $(subdir)/man" >> Doxyfile; \
+		echo "GENERATE_HTML          = $(GENERATE_FLAG)" >> Doxyfile ;\
+		echo "GENERATE_MAN          = $(GENERATE_FLAG)" >> Doxyfile ;\
+		echo "GENERATE_LATEX          = $(GENERATE_FLAG)" >> Doxyfile ;\
+		if test -n "$(DOXYGEN_EXCLUDE)"; then \
+			patterns= ;\
+			dirs= ;\
+			for item in `echo "$(DOXYGEN_EXCLUDE)"`; do \
+				if test -d "$(srcdir)/$$item"; then \
+					dirs="$$dirs $(srcdir)/$$item/" ;\
+			    	else \
+			        	patterns="$$patterns $$item" ;\
+				fi ;\
+			done ;\
+			echo "EXCLUDE_PATTERNS      += $$patterns" >> Doxyfile; \
+		    	echo "EXCLUDE               += $$dirs" >> Doxyfile ;\
+		fi ;\
+		echo "TAGFILES = \\" >> Doxyfile; \
+		tags='$(DOXYGEN_REFERENCES) qt'; for tag in $$tags; do \
+			tagpath= ;\
+			path="../../$$tag" ;\
+			if test -f $(top_builddir)/apidocs/$$tag/$$tag.tag; then \
+				tagpath="$(top_builddir)/apidocs/$$tag/$$tag.tag" ;\
+			else \
+				tagpath=`ls -1 $(kde_htmldir)/en/*-apidocs/$$tag/$$tag.tag 2> /dev/null` ;\
+				if test -n "$$tagpath"; then \
+					path=`echo $$tagpath | sed -e "s,.*/\([^/]*-apidocs\)/$$tag/$$tag.tag,../../../\1/$$tag,"` ;\
+				fi ;\
+			fi ;\
+			if test "$$tag" = qt; then \
+				echo $$tagpath=$(QTDOCDIR) >> Doxyfile ;\
+			else if test -n "$$tagpath"; then \
+				echo "$$tagpath=$$path/html \\" >> Doxyfile ;\
+			    fi ;\
+			fi ;\
+		done ;\
+		echo "GENERATE_TAGFILE       = $(top_builddir)/apidocs/$(subdir)/`basename $(subdir)`.tag" >> Doxyfile ;\
+		echo "IGNORE_PREFIX          = K" >> Doxyfile ;\
+		echo "HAVE_DOT = $(KDE_HAVE_DOT)" >> Doxyfile ;\
+		$(DOXYGEN) Doxyfile ;\
+	fi
+
+apidox-am-no:
+
+install-data-local: install-apidox
+
+## install API documentation
+install-apidox:
+	@if test "$(subdir)" != "."; then \
+		$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html ; \
+		if test -f $(top_builddir)/apidocs/$(subdir)/$(subdir).tag; then \
+		echo $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
+		$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
+		fi; \
+		if test -d $(top_builddir)/apidocs/$(subdir)/html; then \
+			list=`ls $(top_builddir)/apidocs/$(subdir)/html`; \
+			echo "installing $(top_builddir)/apidocs/$(subdir)/html" ;\
+			for file in $$list; do \
+				$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/html/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html; \
+		done; \
+		fi; \
+		rm -f $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/common; \
+		$(LN_S) $(kde_libs_htmldir)/en/common $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/common; \
+	else\
+		if test -d $(top_builddir)/apidocs; then \
+		$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs ;\
+		list=`cd $(top_builddir)/apidocs && ls -1`; \
+		echo "installing $(top_builddir)/apidocs/$$file" ;\
+		for file in $$list; do \
+			if test -f $(top_builddir)/apidocs/$$file; then \
+				$(INSTALL_DATA) $(top_builddir)/apidocs/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
+			fi; \
+		done ; fi; \
+	fi
+
+uninstall-local: uninstall-apidox
+
+## uninstall API documentation
+uninstall-apidox:
+	@if test "$(subdir)" != "."; then \
+		if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); then \
+			rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
+		fi\
+	else\
+		if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; then \
+			rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
+		fi\
+	fi
+
+apidox:
+	@if test "$(subdir)" != "."; then \
+		$(MAKE) apidox-am-@KDE_HAS_DOXYGEN@ ;\
+	else \
+		$(MAKE) apidox-am-toplevel-@KDE_HAS_DOXYGEN@ ;\
+	fi
+	@set fnord $(MAKEFLAGS); amf=$$2; if test -n '$(SUBDIRS)'; then \
+	    list='$(SUBDIRS)'; \
+	    for subdir in $$list; do \
+		if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am; then \
+		echo "Making apidox in $$subdir"; \
+		if test "$$subdir" != "."; then \
+			(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=no apidox) || exit 1; \
+		fi ; fi ;\
+	    done; \
+	    for subdir in $$list; do \
+		if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am; then \
+		echo "Making apidox in $$subdir"; \
+		if test "$$subdir" != "."; then \
+			(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=yes apidox) || exit 1; \
+		fi ; fi ;\
+	    done; \
+	fi
+
+apidox-am-toplevel-no:
+apidox-am-toplevel-yes:
+	@echo "*** Creating API documentation main page"; \
+	cp $(top_srcdir)/admin/Doxyfile.global Doxyfile; \
+	echo "PROJECT_NAME           = \"$(DOXYGEN_PROJECT_NAME)\"" >> Doxyfile ; \
+	echo "PROJECT_NUMBER         = \"$(DOXYGEN_PROJECT_NUMBER)\"" >> Doxyfile ; \
+	echo "INPUT                  = $(top_srcdir)" >> Doxyfile ; \
+	echo "OUTPUT_DIRECTORY       = $(top_builddir)/apidocs" >> Doxyfile ; \
+	echo "FILE_PATTERNS          = *.dox" >> Doxyfile ; \
+	echo "RECURSIVE              = NO" >> Doxyfile ; \
+	echo "SOURCE_BROWSER         = NO" >> Doxyfile ; \
+	echo "ALPHABETICAL_INDEX     = NO" >> Doxyfile ; \
+	echo "HTML_OUTPUT            = ." >> Doxyfile ; \
+	echo "HTML_HEADER            = apidocs/common/mainheader.html" >> Doxyfile ; \
+	echo "HTML_FOOTER            = apidocs/common/mainfooter.html" >> Doxyfile ; \
+	echo "HTML_STYLESHEET        = apidocs/common/doxygen.css" >> Doxyfile ; \
+	echo "GENERATE_LATEX         = NO" >> Doxyfile ; \
+	echo "GENERATE_RTF           = NO" >> Doxyfile ; \
+	echo "GENERATE_MAN           = NO" >> Doxyfile ; \
+	echo "GENERATE_XML           = NO" >> Doxyfile ; \
+	echo "GENERATE_AUTOGEN_DEF   = NO" >> Doxyfile ; \
+	echo "ENABLE_PREPROCESSING   = NO" >> Doxyfile ; \
+	echo "CLASS_DIAGRAMS         = NO" >> Doxyfile ; \
+	echo "HAVE_DOT               = NO" >> Doxyfile ; \
+	echo "GENERATE_HTML          = YES" >> Doxyfile ;\
+	$(mkinstalldirs) $(top_builddir)/apidocs ; \
+	rm -f $(top_builddir)/apidocs/common ; \
+	if test -d $(top_srcdir)/doc/common; then \
+	   common_dir=`cd $(top_srcdir)/doc/common && pwd` ;\
+	else \
+	   common_dir=$(kde_libs_htmldir)/en/common ;\
+	fi ;\
+	$(LN_S) $$common_dir $(top_builddir)/apidocs/common ;\
+	doxygen Doxyfile; \
+	rm -f Doxyfile
+
+.PHONY: apidox-am-yes apidox-am-no install-data-local install-apidox install-apidox uninstall-local uninstall-apidox uninstall-apidox apidox apidox-am-toplevel-no apidox-am-toplevel-yes
+
+
+# Local Variables:
+# mode: makefile
+# End:
Index: /branches/start/Taper/admin/Doxyfile.global
===================================================================
--- /branches/start/Taper/admin/Doxyfile.global	(revision 4308)
+++ /branches/start/Taper/admin/Doxyfile.global	(revision 4308)
@@ -0,0 +1,1112 @@
+# Doxyfile 1.3.5
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = 
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = 
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = ../apidocs/
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, 
+# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en 
+# (Japanese with English messages), Korean, Norwegian, Polish, Portuguese, 
+# Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE        = English
+
+# This tag can be used to specify the encoding used in the generated output. 
+# The encoding is not always determined by the language that is chosen, 
+# but also whether or not the output is meant for Windows or non-Windows users. 
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 
+# forces the Windows encoding (this is the default for the Windows binary), 
+# whereas setting the tag to NO uses a Unix-style encoding (the default for 
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING   = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = NO
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator 
+# that is used to form the text in various listings. Each string 
+# in this list, if found as the leading text of the brief description, will be 
+# stripped from the text and the result after processing the whole list, is used 
+# as the annotated text. Otherwise, the brief description is used as-is. If left 
+# blank, the following values are used ("$name" is automatically replaced with the 
+# name of the entity): "The $name class" "The $name widget" "The $name file" 
+# "is" "provides" "specifies" "contains" "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       = 
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description.
+
+ALWAYS_DETAILED_SEC    = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited 
+# members of a class in the documentation of that class as if those members were 
+# ordinary class members. Constructors, destructors and assignment operators of 
+# the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user-defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. It is allowed to use relative paths in the argument list.
+
+STRIP_FROM_PATH        = 
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments will behave just like the Qt-style comments (thus requiring an 
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF      = YES
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
+# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
+# comments) as a brief description. This used to be the default behaviour. 
+# The new default is to treat a multi-line C++ comment block as a detailed 
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member 
+# documentation.
+
+DETAILS_AT_TOP         = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 4
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user-defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = obsolete=@deprecated
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
+# only. Doxygen will then generate output that is more tailored for C. 
+# For instance, some of the names that are used will be different. The list 
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources 
+# only. Doxygen will then generate output that is more tailored for Java. 
+# For instance, namespaces will be presented as packages, qualified scopes 
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
+# the same type (for instance a group of public functions) to be put as a 
+# subgroup of that type (e.g. under the Public Functions section). Set it to 
+# NO to prevent subgrouping. Alternatively, this can be done per class using 
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation.
+
+EXTRACT_STATIC         = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
+# defined locally in source files will be included in the documentation. 
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these classes will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = YES
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
+# friend (class|struct|union) declarations. 
+# If set to NO (the default) these declarations will be included in the 
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
+# documentation blocks found inside the body of a function. 
+# If set to NO (the default) these blocks will be appended to the 
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower-case letters. If set to YES upper-case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put a list of the files that are included by a file in the documentation 
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order.
+
+SORT_MEMBER_DOCS       = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = NO
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = NO
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
+# disable (NO) the deprecated list. This list is created by putting 
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consists of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = YES
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = NO
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
+# potential errors in the documentation, such as not documenting some 
+# parameters in a documented function, or documenting parameters that 
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text.
+
+WARN_FORMAT            = 
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr.
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+INPUT                  = 
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp 
+# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc
+
+FILE_PATTERNS          = *.h \
+                         *.cpp \
+                         *.cc \
+                         *.hpp \
+                         *.dox \
+                         *.c++ \
+                         *.cxx \
+                         *.h++ \
+                         *.hh
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used.
+
+RECURSIVE              = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                = 
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories 
+# that are symbolic links (a Unix filesystem feature) are excluded from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories.
+
+EXCLUDE_PATTERNS       = *.moc.* \
+                         moc* \
+                         *.all_cpp.* \
+                         *unload.* \
+                         */test/* \
+                         */tests/*
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = 
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+# searched for input files to be used with the \include or \dontinclude 
+# commands irrespective of the value of the RECURSIVE tag. 
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output.
+
+INPUT_FILTER           = 
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources. 
+# Note: To get rid of all source code in the generated output, make sure also 
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
+# then for each documented function all documented 
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default) 
+# then for each documented function all documented entities 
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 3
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = K
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output.
+
+GENERATE_HTML          = NO
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = 
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = ../apidocs/common/header.html
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = ../apidocs/common/footer.html
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet. Note that doxygen will try to copy 
+# the style sheet file to the HTML output directory, so don't put your own 
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        = ../apidocs/common/doxygen.css
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
+# be used to specify the file name of the resulting .chm file. You 
+# can add a path in front of the file if the result should not be 
+# written to the html output directory.
+
+CHM_FILE               = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
+# be used to specify the location (absolute path including file name) of 
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it.
+
+DISABLE_INDEX          = YES
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = 
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
+# generate index for LaTeX. If left blank `makeindex' will be used as the 
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
+# include the index chapters (such as File Index, Compound Index, etc.) 
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimized for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = 
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using WORD or other 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assignments. You only have to provide 
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an rtf document. 
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = 
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .kde3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
+# then it will generate one additional man file for each entity 
+# documented in the real man page(s). These additional files 
+# only source the real man page, but without them the man command 
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will 
+# generate an XML file that captures the structure of 
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_SCHEMA             = 
+
+# The XML_DTD tag can be used to specify an XML DTD, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_DTD                = 
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
+# dump the program listings (including syntax highlighting 
+# and cross-referencing information) to the XML output. Note that 
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = NO
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
+# generate an AutoGen Definitions (see autogen.sf.net) file 
+# that captures the structure of the code including all 
+# documentation. Note that this feature is still experimental 
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
+# generate a Perl module file that captures the structure of 
+# the code including all documentation. Note that this 
+# feature is still experimental and incomplete at the 
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
+# nicely formatted so it can be parsed by a human reader.  This is useful 
+# if you want to understand what is going on.  On the other hand, if this 
+# tag is set to NO the size of the Perl module output will be much smaller 
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file 
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
+# This is useful so different doxyrules.make files included by the same 
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_PREDEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor.
+
+INCLUDE_PATH           = 
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed.
+
+PREDEFINED             = QT_VERSION=320 \
+                         __cplusplus
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+# doxygen's preprocessor will remove all function-like macros that are alone 
+# on a line, have an all uppercase name, and do not end with a semicolon. Such 
+# function macros are typically used for boiler-plate code, and will confuse the 
+# parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles. 
+# Optionally an initial location of the external documentation 
+# can be added for each tagfile. The format of a tag file without 
+# this location is as follows: 
+#   TAGFILES = file1 file2 ... 
+# Adding location for the tag files is done as follows: 
+#   TAGFILES = file1=loc1 "file2 = loc2" ... 
+# where "loc1" and "loc2" can be relative or absolute paths or 
+# URLs. If a location is present for each tag, the installdox tool 
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen 
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               = 
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
+# in the modules index. If set to NO, only the current project's groups will 
+# be listed.
+
+EXTERNAL_GROUPS        = NO
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or 
+# super classes. Setting the tag to NO turns the diagrams off. Note that this 
+# option is superseded by the HAVE_DOT option below. This is only a fallback. It is 
+# recommended to install and use dot, since it yields more powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide 
+# inheritance and usage relations if the target is undocumented 
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = NO
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = NO
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
+# collaboration diagrams in a style similar to the OMG's Unified Modeling 
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the 
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+# tags are set to YES then doxygen will generate a graph for each documented 
+# file showing the direct and indirect include dependencies of the file with 
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+# documented header file showing the documented files that directly or 
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
+# generate a call dependency graph for every global function or class method. 
+# Note that enabling this option will significantly increase the time of a run. 
+# So in most cases it will be better to enable call graphs for selected 
+# functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found on the path.
+
+DOT_PATH               = 
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that 
+# contain dot files that are included in the documentation (see the 
+# \dotfile command).
+
+DOTFILE_DIRS           = 
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_WIDTH    = 800
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT   = 1024
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
+# graphs generated by dot. A depth value of 3 means that only nodes reachable 
+# from the root by following a path via at most 3 edges will be shown. Nodes that 
+# lay further from the root node will be omitted. Note that setting this option to 
+# 1 or 2 may greatly reduce the computation time needed for large code bases. Also 
+# note that a graph may be further truncated if the graph's image dimensions are 
+# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). 
+# If 0 is used for the depth value (the default), the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermediate dot files that are used to generate 
+# the various graphs.
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE           = NO
Index: /branches/start/Taper/admin/Makefile.common
===================================================================
--- /branches/start/Taper/admin/Makefile.common	(revision 4308)
+++ /branches/start/Taper/admin/Makefile.common	(revision 4308)
@@ -0,0 +1,35 @@
+### Makefile.common
+###
+### Copyright (C) 2002 by the KDE developers
+
+### All the real work is done by the shellscript cvs.sh
+
+SHELL=/bin/sh
+
+cvs dist cvs-clean configure configure.in configure.files subdirs package-messages package-merge Makefile.am acinclude.m4:
+	@admindir=$(admindir); \
+	if test "x$$admindir" = x; then \
+	  admindir=.; until test -f $$admindir/admin/cvs.sh; do \
+	    admindir=$$admindir/..; \
+	    if test `cd $$admindir && pwd` = / ; then break; fi; \
+	  done; \
+	  admindir=$$admindir/admin; \
+	  if test -f $$admindir/cvs.sh; then :; else \
+	    echo "Can't find the admin/ directory in any parent of the"; \
+	    echo "current directory.  Please set it with admindir=..."; \
+	    exit 1; \
+	  fi; \
+	fi; \
+	if test "$@" = "package-merge"; then \
+		MAKE="$(MAKE)" POFILES="$(POFILES)" PACKAGE="$(PACKAGE)" \
+	  	$(SHELL) $$admindir/cvs.sh package-merge ;\
+	else \
+		MAKE="$(MAKE)" $(SHELL) $$admindir/cvs.sh $@ ;\
+	fi
+
+configure.in: configure.files subdirs
+configure.files: subdirs
+
+.SILENT:
+
+.PHONY: cvs dist cvs-clean package-merge package-messages
Index: /branches/start/Taper/admin/acinclude.m4.in
===================================================================
--- /branches/start/Taper/admin/acinclude.m4.in	(revision 4308)
+++ /branches/start/Taper/admin/acinclude.m4.in	(revision 4308)
@@ -0,0 +1,5353 @@
+##   -*- autoconf -*-
+
+dnl    This file is part of the KDE libraries/packages
+dnl    Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu)
+dnl              (C) 1997,98,99 Stephan Kulow (coolo@kde.org)
+
+dnl    This file is free software; you can redistribute it and/or
+dnl    modify it under the terms of the GNU Library General Public
+dnl    License as published by the Free Software Foundation; either
+dnl    version 2 of the License, or (at your option) any later version.
+
+dnl    This library is distributed in the hope that it will be useful,
+dnl    but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl    Library General Public License for more details.
+
+dnl    You should have received a copy of the GNU Library General Public License
+dnl    along with this library; see the file COPYING.LIB.  If not, write to
+dnl    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+dnl    Boston, MA 02111-1307, USA.
+
+dnl IMPORTANT NOTE:
+dnl Please do not modify this file unless you expect your modifications to be
+dnl carried into every other module in the repository. 
+dnl
+dnl Single-module modifications are best placed in configure.in for kdelibs
+dnl and kdebase or configure.in.in if present.
+
+# KDE_PATH_X_DIRECT
+dnl Internal subroutine of AC_PATH_X.
+dnl Set ac_x_includes and/or ac_x_libraries.
+AC_DEFUN([KDE_PATH_X_DIRECT],
+[
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+if test "$ac_x_includes" = NO; then
+  # Guess where to find include files, by looking for this one X11 .h file.
+  test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
+
+  # First, try using that file with no special directory specified.
+AC_TRY_CPP([#include <$x_direct_test_include>],
+[# We can compile using X headers with no special include directory.
+ac_x_includes=],
+[# Look for the header file in a standard set of common directories.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+  for ac_dir in               \
+    /usr/X11/include          \
+    /usr/X11R6/include        \
+    /usr/X11R5/include        \
+    /usr/X11R4/include        \
+                              \
+    /usr/include/X11          \
+    /usr/include/X11R6        \
+    /usr/include/X11R5        \
+    /usr/include/X11R4        \
+                              \
+    /usr/local/X11/include    \
+    /usr/local/X11R6/include  \
+    /usr/local/X11R5/include  \
+    /usr/local/X11R4/include  \
+                              \
+    /usr/local/include/X11    \
+    /usr/local/include/X11R6  \
+    /usr/local/include/X11R5  \
+    /usr/local/include/X11R4  \
+                              \
+    /usr/X386/include         \
+    /usr/x386/include         \
+    /usr/XFree86/include/X11  \
+                              \
+    /usr/include              \
+    /usr/local/include        \
+    /usr/unsupported/include  \
+    /usr/athena/include       \
+    /usr/local/x11r5/include  \
+    /usr/lpp/Xamples/include  \
+                              \
+    /usr/openwin/include      \
+    /usr/openwin/share/include \
+    ; \
+  do
+    if test -r "$ac_dir/$x_direct_test_include"; then
+      ac_x_includes=$ac_dir
+      break
+    fi
+  done])
+fi # $ac_x_includes = NO
+
+if test "$ac_x_libraries" = NO; then
+  # Check for the libraries.
+
+  test -z "$x_direct_test_library" && x_direct_test_library=Xt
+  test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
+
+  # See if we find them without any special options.
+  # Don't add to $LIBS permanently.
+  ac_save_LIBS="$LIBS"
+  LIBS="-l$x_direct_test_library $LIBS"
+AC_TRY_LINK(, [${x_direct_test_function}()],
+[LIBS="$ac_save_LIBS"
+# We can link X programs with no special library path.
+ac_x_libraries=],
+[LIBS="$ac_save_LIBS"
+# First see if replacing the include by lib works.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${kdelibsuff}/` \
+    /usr/X11/lib${kdelibsuff}           \
+    /usr/X11R6/lib${kdelibsuff}         \
+    /usr/X11R5/lib${kdelibsuff}         \
+    /usr/X11R4/lib${kdelibsuff}         \
+                                        \
+    /usr/lib${kdelibsuff}/X11           \
+    /usr/lib${kdelibsuff}/X11R6         \
+    /usr/lib${kdelibsuff}/X11R5         \
+    /usr/lib${kdelibsuff}/X11R4         \
+                                        \
+    /usr/local/X11/lib${kdelibsuff}     \
+    /usr/local/X11R6/lib${kdelibsuff}   \
+    /usr/local/X11R5/lib${kdelibsuff}   \
+    /usr/local/X11R4/lib${kdelibsuff}   \
+                                        \
+    /usr/local/lib${kdelibsuff}/X11     \
+    /usr/local/lib${kdelibsuff}/X11R6   \
+    /usr/local/lib${kdelibsuff}/X11R5   \
+    /usr/local/lib${kdelibsuff}/X11R4   \
+                                        \
+    /usr/X386/lib${kdelibsuff}          \
+    /usr/x386/lib${kdelibsuff}          \
+    /usr/XFree86/lib${kdelibsuff}/X11   \
+                                        \
+    /usr/lib${kdelibsuff}               \
+    /usr/local/lib${kdelibsuff}         \
+    /usr/unsupported/lib${kdelibsuff}   \
+    /usr/athena/lib${kdelibsuff}        \
+    /usr/local/x11r5/lib${kdelibsuff}   \
+    /usr/lpp/Xamples/lib${kdelibsuff}   \
+    /lib/usr/lib${kdelibsuff}/X11       \
+                                        \
+    /usr/openwin/lib${kdelibsuff}       \
+    /usr/openwin/share/lib${kdelibsuff} \
+    ; \
+do
+dnl Don't even attempt the hair of trying to link an X program!
+  for ac_extension in a so sl; do
+    if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
+      ac_x_libraries=$ac_dir
+      break 2
+    fi
+  done
+done])
+fi # $ac_x_libraries = NO
+])
+
+
+dnl ------------------------------------------------------------------------
+dnl Find a file (or one of more files in a list of dirs)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_FIND_FILE],
+[
+$3=NO
+for i in $2;
+do
+  for j in $1;
+  do
+    echo "configure: __oline__: $i/$j" >&AC_FD_CC
+    if test -r "$i/$j"; then
+      echo "taking that" >&AC_FD_CC
+      $3=$i
+      break 2
+    fi
+  done
+done
+])
+
+dnl KDE_FIND_PATH(programm-name, variable-name, list of directories,
+dnl	if-not-found, test-parameter)
+AC_DEFUN([KDE_FIND_PATH],
+[
+   AC_MSG_CHECKING([for $1])
+   if test -n "$$2"; then
+        kde_cv_path="$$2";
+   else
+        kde_cache=`echo $1 | sed 'y%./+-%__p_%'`
+
+        AC_CACHE_VAL(kde_cv_path_$kde_cache,
+        [
+        kde_cv_path="NONE"
+	dirs="$3"
+	kde_save_IFS=$IFS
+	IFS=':'
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+        done
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/$1"; then
+	    if test -n "$5"
+	    then
+              evalstr="$dir/$1 $5 2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/$1"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/$1"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+        ])
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      AC_MSG_RESULT(not found)
+      $4
+   else
+      AC_MSG_RESULT($kde_cv_path)
+      $2=$kde_cv_path
+
+   fi
+])
+
+AC_DEFUN([KDE_MOC_ERROR_MESSAGE],
+[
+    AC_MSG_ERROR([No Qt meta object compiler (moc) found!
+Please check whether you installed Qt correctly.
+You need to have a running moc binary.
+configure tried to run $ac_cv_path_moc and the test didn't
+succeed. If configure shouldn't have tried this one, set
+the environment variable MOC to the right one before running
+configure.
+])
+])
+
+AC_DEFUN([KDE_UIC_ERROR_MESSAGE],
+[
+    AC_MSG_WARN([No Qt ui compiler (uic) found!
+Please check whether you installed Qt correctly.
+You need to have a running uic binary.
+configure tried to run $ac_cv_path_uic and the test didn't
+succeed. If configure shouldn't have tried this one, set
+the environment variable UIC to the right one before running
+configure.
+])
+])
+
+
+AC_DEFUN([KDE_CHECK_UIC_FLAG],
+[
+    AC_MSG_CHECKING([whether uic supports -$1 ])
+    kde_cache=`echo $1 | sed 'y% .=/+-%____p_%'`
+    AC_CACHE_VAL(kde_cv_prog_uic_$kde_cache,
+    [
+        cat >conftest.ui <<EOT
+        <!DOCTYPE UI><UI version="3" stdsetdef="1"></UI>
+EOT
+        ac_uic_testrun="$UIC_PATH -$1 $2 conftest.ui >/dev/null"
+        if AC_TRY_EVAL(ac_uic_testrun); then
+            eval "kde_cv_prog_uic_$kde_cache=yes"
+        else
+            eval "kde_cv_prog_uic_$kde_cache=no"
+        fi
+        rm -f conftest*
+    ])
+
+    if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then
+        AC_MSG_RESULT([yes])
+        :
+        $3
+    else
+        AC_MSG_RESULT([no])
+        :
+        $4
+    fi
+])
+
+
+dnl ------------------------------------------------------------------------
+dnl Find the meta object compiler and the ui compiler in the PATH,
+dnl in $QTDIR/bin, and some more usual places
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_PATH_QT_MOC_UIC],
+[
+   AC_REQUIRE([KDE_CHECK_PERL])
+   qt_bindirs=""
+   for dir in $kde_qt_dirs; do
+      qt_bindirs="$qt_bindirs $dir/bin $dir/src/moc"
+   done
+   qt_bindirs="$qt_bindirs /usr/bin /usr/X11R6/bin /usr/local/qt/bin"
+   if test ! "$ac_qt_bindir" = "NO"; then
+      qt_bindirs="$ac_qt_bindir $qt_bindirs"
+   fi
+
+   KDE_FIND_PATH(moc, MOC, [$qt_bindirs], [KDE_MOC_ERROR_MESSAGE])
+   if test -z "$UIC_NOT_NEEDED"; then
+     KDE_FIND_PATH(uic, UIC_PATH, [$qt_bindirs], [UIC_PATH=""])
+     if test -z "$UIC_PATH" ; then
+       KDE_UIC_ERROR_MESSAGE
+       exit 1
+     else
+       UIC=$UIC_PATH
+
+       if test $kde_qtver = 3; then
+         KDE_CHECK_UIC_FLAG(L,[/nonexistent],ac_uic_supports_libpath=yes,ac_uic_supports_libpath=no)
+         KDE_CHECK_UIC_FLAG(nounload,,ac_uic_supports_nounload=yes,ac_uic_supports_nounload=no)
+
+         if test x$ac_uic_supports_libpath = xyes; then
+             UIC="$UIC -L \$(kde_widgetdir)"
+         fi
+         if test x$ac_uic_supports_nounload = xyes; then
+             UIC="$UIC -nounload"
+         fi
+       fi
+     fi
+   else
+     UIC="echo uic not available: "
+   fi
+
+   AC_SUBST(MOC)
+   AC_SUBST(UIC)
+
+   UIC_TR="i18n"
+   if test $kde_qtver = 3; then
+     UIC_TR="tr2i18n"
+   fi
+
+   AC_SUBST(UIC_TR)
+])
+
+AC_DEFUN([KDE_1_CHECK_PATHS],
+[
+  KDE_1_CHECK_PATH_HEADERS
+
+  KDE_TEST_RPATH=
+
+  if test -n "$USE_RPATH"; then
+
+     if test -n "$kde_libraries"; then
+       KDE_TEST_RPATH="-R $kde_libraries"
+     fi
+
+     if test -n "$qt_libraries"; then
+       KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries"
+     fi
+
+     if test -n "$x_libraries"; then
+       KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries"
+     fi
+
+     KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH"
+  fi
+
+AC_MSG_CHECKING([for KDE libraries installed])
+ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5'
+
+if AC_TRY_EVAL(ac_link) && test -s conftest; then
+  AC_MSG_RESULT(yes)
+else
+  AC_MSG_ERROR([your system fails at linking a small KDE application!
+Check, if your compiler is installed correctly and if you have used the
+same compiler to compile Qt and kdelibs as you did use now.
+For more details about this problem, look at the end of config.log.])
+fi
+
+if eval `KDEDIR= ./conftest 2>&5`; then
+  kde_result=done
+else
+  kde_result=problems
+fi
+
+KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log
+kde_have_all_paths=yes
+
+KDE_SET_PATHS($kde_result)
+
+])
+
+AC_DEFUN([KDE_SET_PATHS],
+[
+  kde_cv_all_paths="kde_have_all_paths=\"yes\" \
+	kde_htmldir=\"$kde_htmldir\" \
+	kde_appsdir=\"$kde_appsdir\" \
+	kde_icondir=\"$kde_icondir\" \
+	kde_sounddir=\"$kde_sounddir\" \
+	kde_datadir=\"$kde_datadir\" \
+	kde_locale=\"$kde_locale\" \
+	kde_cgidir=\"$kde_cgidir\" \
+	kde_confdir=\"$kde_confdir\" \
+	kde_kcfgdir=\"$kde_kcfgdir\" \
+	kde_mimedir=\"$kde_mimedir\" \
+	kde_toolbardir=\"$kde_toolbardir\" \
+	kde_wallpaperdir=\"$kde_wallpaperdir\" \
+	kde_templatesdir=\"$kde_templatesdir\" \
+	kde_bindir=\"$kde_bindir\" \
+	kde_servicesdir=\"$kde_servicesdir\" \
+	kde_servicetypesdir=\"$kde_servicetypesdir\" \
+	kde_moduledir=\"$kde_moduledir\" \
+	kde_styledir=\"$kde_styledir\" \
+	kde_widgetdir=\"$kde_widgetdir\" \
+	xdg_appsdir=\"$xdg_appsdir\" \
+	xdg_menudir=\"$xdg_menudir\" \
+	xdg_directorydir=\"$xdg_directorydir\" \
+	kde_result=$1"
+])
+
+AC_DEFUN([KDE_SET_DEFAULT_PATHS],
+[
+if test "$1" = "default"; then
+
+  if test -z "$kde_htmldir"; then
+    kde_htmldir='\${datadir}/doc/HTML'
+  fi
+  if test -z "$kde_appsdir"; then
+    kde_appsdir='\${datadir}/applnk'
+  fi
+  if test -z "$kde_icondir"; then
+    kde_icondir='\${datadir}/icons'
+  fi
+  if test -z "$kde_sounddir"; then
+    kde_sounddir='\${datadir}/sounds'
+  fi
+  if test -z "$kde_datadir"; then
+    kde_datadir='\${datadir}/apps'
+  fi
+  if test -z "$kde_locale"; then
+    kde_locale='\${datadir}/locale'
+  fi
+  if test -z "$kde_cgidir"; then
+    kde_cgidir='\${exec_prefix}/cgi-bin'
+  fi
+  if test -z "$kde_confdir"; then
+    kde_confdir='\${datadir}/config'
+  fi
+  if test -z "$kde_kcfgdir"; then
+    kde_kcfgdir='\${datadir}/config.kcfg'
+  fi
+  if test -z "$kde_mimedir"; then
+    kde_mimedir='\${datadir}/mimelnk'
+  fi
+  if test -z "$kde_toolbardir"; then
+    kde_toolbardir='\${datadir}/toolbar'
+  fi
+  if test -z "$kde_wallpaperdir"; then
+    kde_wallpaperdir='\${datadir}/wallpapers'
+  fi
+  if test -z "$kde_templatesdir"; then
+    kde_templatesdir='\${datadir}/templates'
+  fi
+  if test -z "$kde_bindir"; then
+    kde_bindir='\${exec_prefix}/bin'
+  fi
+  if test -z "$kde_servicesdir"; then
+    kde_servicesdir='\${datadir}/services'
+  fi
+  if test -z "$kde_servicetypesdir"; then
+    kde_servicetypesdir='\${datadir}/servicetypes'
+  fi
+  if test -z "$kde_moduledir"; then
+    if test "$kde_qtver" = "2"; then
+      kde_moduledir='\${libdir}/kde2'
+    else
+      kde_moduledir='\${libdir}/kde3'
+    fi
+  fi
+  if test -z "$kde_styledir"; then
+    kde_styledir='\${libdir}/kde3/plugins/styles'
+  fi
+  if test -z "$kde_widgetdir"; then
+    kde_widgetdir='\${libdir}/kde3/plugins/designer'
+  fi
+  if test -z "$xdg_appsdir"; then
+    xdg_appsdir='\${datadir}/applications/kde'
+  fi
+  if test -z "$xdg_menudir"; then
+    xdg_menudir='\${sysconfdir}/xdg/menus'
+  fi
+  if test -z "$xdg_directorydir"; then
+    xdg_directorydir='\${datadir}/desktop-directories'
+  fi
+
+  KDE_SET_PATHS(defaults)
+
+else
+
+  if test $kde_qtver = 1; then
+     AC_MSG_RESULT([compiling])
+     KDE_1_CHECK_PATHS
+  else
+     AC_MSG_ERROR([path checking not yet supported for KDE 2])
+  fi
+
+fi
+])
+
+AC_DEFUN([KDE_CHECK_PATHS_FOR_COMPLETENESS],
+[ if test -z "$kde_htmldir" || test -z "$kde_appsdir" ||
+   test -z "$kde_icondir" || test -z "$kde_sounddir" ||
+   test -z "$kde_datadir" || test -z "$kde_locale"  ||
+   test -z "$kde_cgidir"  || test -z "$kde_confdir" ||
+   test -z "$kde_kcfgdir" ||
+   test -z "$kde_mimedir" || test -z "$kde_toolbardir" ||
+   test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" ||
+   test -z "$kde_bindir" || test -z "$kde_servicesdir" ||
+   test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" ||
+   test -z "$kde_styledir" || test -z "kde_widgetdir" ||
+   test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" ||
+   test "x$kde_have_all_paths" != "xyes"; then
+     kde_have_all_paths=no
+  fi
+])
+
+AC_DEFUN([KDE_MISSING_PROG_ERROR],
+[
+    AC_MSG_ERROR([The important program $1 was not found!
+Please check whether you installed KDE correctly.
+])
+])
+
+AC_DEFUN([KDE_MISSING_ARTS_ERROR],
+[
+    AC_MSG_ERROR([The important program $1 was not found!
+Please check whether you installed aRts correctly or use
+--without-arts to compile without aRts support (this will remove functionality).
+])
+])
+
+AC_DEFUN([KDE_SUBST_PROGRAMS],
+[
+    AC_ARG_WITH(arts,
+        AC_HELP_STRING([--without-arts],[build without aRts [default=yes]]),
+        [build_arts=$withval],
+        [build_arts=yes]
+    )
+    AM_CONDITIONAL(include_ARTS, test "$build_arts" != "no")
+
+        kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin"
+        test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs"
+        if test -n "$KDEDIRS"; then
+           kde_save_IFS=$IFS
+           IFS=:
+           for dir in $KDEDIRS; do
+                kde_default_bindirs="$dir/bin $kde_default_bindirs "
+           done
+           IFS=$kde_save_IFS
+        fi
+        kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_default_bindirs"
+        KDE_FIND_PATH(dcopidl, DCOPIDL, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl)])
+        KDE_FIND_PATH(dcopidl2cpp, DCOPIDL2CPP, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl2cpp)])
+        if test "$build_arts" != "no"; then
+          KDE_FIND_PATH(mcopidl, MCOPIDL, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(mcopidl)])
+          KDE_FIND_PATH(artsc-config, ARTSCCONFIG, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(artsc-config)])
+        fi
+        KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs])
+        KDE_FIND_PATH(meinproc, MEINPROC, [$kde_default_bindirs])
+
+        kde32ornewer=1
+        if test -n "$kde_qtver" && test "$kde_qtver" -lt 3; then
+            kde32ornewer=
+        else
+            if test "$kde_qtver" = "3" && test "$kde_qtsubver" -le 1; then
+                kde32ornewer=
+            fi
+        fi
+
+        if test -n "$kde32ornewer"; then
+            KDE_FIND_PATH(kconfig_compiler, KCONFIG_COMPILER, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kconfig_compiler)])
+            KDE_FIND_PATH(dcopidlng, DCOPIDLNG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidlng)])
+        fi
+        KDE_FIND_PATH(xmllint, XMLLINT, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin], [XMLLINT=""])
+
+        if test -n "$MEINPROC" && test ! "$MEINPROC" = "compiled"; then  
+ 	    kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/kde3/share /opt/kde/share $prefix/share"
+            test -n "$KDEDIR" && kde_sharedirs="$KDEDIR/share $kde_sharedirs"
+            AC_FIND_FILE(apps/ksgmltools2/customization/kde-chunk.xsl, $kde_sharedirs, KDE_XSL_STYLESHEET)
+	    if test "$KDE_XSL_STYLESHEET" = "NO"; then
+		KDE_XSL_STYLESHEET=""
+	    else
+                KDE_XSL_STYLESHEET="$KDE_XSL_STYLESHEET/apps/ksgmltools2/customization/kde-chunk.xsl"
+	    fi
+        fi
+
+        DCOP_DEPENDENCIES='$(DCOPIDL)'
+        if test -n "$kde32ornewer"; then
+            KCFG_DEPENDENCIES='$(KCONFIG_COMPILER)'
+            DCOP_DEPENDENCIES='$(DCOPIDL) $(DCOPIDLNG)'
+            AC_SUBST(KCONFIG_COMPILER)
+            AC_SUBST(KCFG_DEPENDENCIES)
+            AC_SUBST(DCOPIDLNG)
+        fi
+        AC_SUBST(DCOPIDL)
+        AC_SUBST(DCOPIDL2CPP)
+        AC_SUBST(DCOP_DEPENDENCIES)
+        AC_SUBST(MCOPIDL)
+        AC_SUBST(ARTSCCONFIG)
+        AC_SUBST(KDECONFIG)
+	AC_SUBST(MEINPROC)
+ 	AC_SUBST(KDE_XSL_STYLESHEET)
+	AC_SUBST(XMLLINT)
+
+        if test -x "$KDECONFIG"; then # it can be "compiled"
+          kde_libs_prefix=`$KDECONFIG --prefix`
+          if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
+               AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
+                          This means it has been moved since you installed it.
+                          This won't work. Please recompile kdelibs for the new prefix.
+                          ])
+           fi
+           kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
+        else
+           kde_libs_prefix='$(prefix)'
+           kde_libs_htmldir='$(kde_htmldir)'
+        fi
+        AC_SUBST(kde_libs_prefix)
+        AC_SUBST(kde_libs_htmldir)
+])dnl
+
+AC_DEFUN([AC_CREATE_KFSSTND],
+[
+AC_REQUIRE([AC_CHECK_RPATH])
+
+AC_MSG_CHECKING([for KDE paths])
+kde_result=""
+kde_cached_paths=yes
+AC_CACHE_VAL(kde_cv_all_paths,
+[
+  KDE_SET_DEFAULT_PATHS($1)
+  kde_cached_paths=no
+])
+eval "$kde_cv_all_paths"
+KDE_CHECK_PATHS_FOR_COMPLETENESS
+if test "$kde_have_all_paths" = "no" && test "$kde_cached_paths" = "yes"; then
+  # wrong values were cached, may be, we can set better ones
+  kde_result=
+  kde_htmldir= kde_appsdir= kde_icondir= kde_sounddir=
+  kde_datadir= kde_locale=  kde_cgidir=  kde_confdir= kde_kcfgdir=
+  kde_mimedir= kde_toolbardir= kde_wallpaperdir= kde_templatesdir=
+  kde_bindir= kde_servicesdir= kde_servicetypesdir= kde_moduledir=
+  kde_have_all_paths=
+  kde_styledir=
+  kde_widgetdir=
+  xdg_appsdir = xdg_menudir= xdg_directorydir= 
+  KDE_SET_DEFAULT_PATHS($1)
+  eval "$kde_cv_all_paths"
+  KDE_CHECK_PATHS_FOR_COMPLETENESS
+  kde_result="$kde_result (cache overridden)"
+fi
+if test "$kde_have_all_paths" = "no"; then
+  AC_MSG_ERROR([configure could not run a little KDE program to test the environment.
+Since it had compiled and linked before, it must be a strange problem on your system.
+Look at config.log for details. If you are not able to fix this, look at
+http://www.kde.org/faq/installation.html or any www.kde.org mirror.
+(If you're using an egcs version on Linux, you may update binutils!)
+])
+else
+  rm -f conftest*
+  AC_MSG_RESULT($kde_result)
+fi
+
+bindir=$kde_bindir
+
+KDE_SUBST_PROGRAMS
+
+])
+
+AC_DEFUN([AC_SUBST_KFSSTND],
+[
+AC_SUBST(kde_htmldir)
+AC_SUBST(kde_appsdir)
+AC_SUBST(kde_icondir)
+AC_SUBST(kde_sounddir)
+AC_SUBST(kde_datadir)
+AC_SUBST(kde_locale)
+AC_SUBST(kde_confdir)
+AC_SUBST(kde_kcfgdir)
+AC_SUBST(kde_mimedir)
+AC_SUBST(kde_wallpaperdir)
+AC_SUBST(kde_bindir)
+dnl X Desktop Group standards
+AC_SUBST(xdg_appsdir)
+AC_SUBST(xdg_menudir)
+AC_SUBST(xdg_directorydir)
+dnl for KDE 2
+AC_SUBST(kde_templatesdir)
+AC_SUBST(kde_servicesdir)
+AC_SUBST(kde_servicetypesdir)
+AC_SUBST(kde_moduledir)
+AC_SUBST(kdeinitdir, '$(kde_moduledir)')
+AC_SUBST(kde_styledir)
+AC_SUBST(kde_widgetdir)
+if test "$kde_qtver" = 1; then
+  kde_minidir="$kde_icondir/mini"
+else
+# for KDE 1 - this breaks KDE2 apps using minidir, but
+# that's the plan ;-/
+  kde_minidir="/dev/null"
+fi
+dnl AC_SUBST(kde_minidir)
+dnl AC_SUBST(kde_cgidir)
+dnl AC_SUBST(kde_toolbardir)
+])
+
+AC_DEFUN([KDE_MISC_TESTS],
+[
+   dnl Checks for libraries.
+   AC_CHECK_LIB(util, main, [LIBUTIL="-lutil"]) dnl for *BSD 
+   AC_SUBST(LIBUTIL)
+   AC_CHECK_LIB(compat, main, [LIBCOMPAT="-lcompat"]) dnl for *BSD
+   AC_SUBST(LIBCOMPAT)
+   kde_have_crypt=
+   AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"; kde_have_crypt=yes],
+      AC_CHECK_LIB(c, crypt, [kde_have_crypt=yes], [
+        AC_MSG_WARN([you have no crypt in either libcrypt or libc.
+You should install libcrypt from another source or configure with PAM
+support])
+	kde_have_crypt=no
+      ]))
+   AC_SUBST(LIBCRYPT)
+   if test $kde_have_crypt = yes; then
+      AC_DEFINE_UNQUOTED(HAVE_CRYPT, 1, [Defines if your system has the crypt function])
+   fi
+   AC_CHECK_SOCKLEN_T
+   AC_CHECK_LIB(dnet, dnet_ntoa, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"])
+   if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+      AC_CHECK_LIB(dnet_stub, dnet_ntoa,
+        [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"])
+   fi
+   AC_CHECK_FUNC(inet_ntoa)
+   if test $ac_cv_func_inet_ntoa = no; then
+     AC_CHECK_LIB(nsl, inet_ntoa, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl")
+   fi
+   AC_CHECK_FUNC(connect)
+   if test $ac_cv_func_connect = no; then
+      AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", ,
+        $X_EXTRA_LIBS)
+   fi
+
+   AC_CHECK_FUNC(remove)
+   if test $ac_cv_func_remove = no; then
+      AC_CHECK_LIB(posix, remove, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix")
+   fi
+
+   # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+   AC_CHECK_FUNC(shmat, ,
+     AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"))
+   
+   # more headers that need to be explicitly included on darwin
+   AC_CHECK_HEADERS(sys/types.h stdint.h)
+
+   # darwin requires a poll emulation library
+   AC_CHECK_LIB(poll, poll, LIB_POLL="-lpoll")
+
+   # CoreAudio framework
+   AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [
+     AC_DEFINE(HAVE_COREAUDIO, 1, [Define if you have the CoreAudio API])
+     FRAMEWORK_COREAUDIO="-Xlinker -framework -Xlinker CoreAudio"
+   ])
+
+   AC_CHECK_RES_INIT
+   AC_SUBST(LIB_POLL)
+   AC_SUBST(FRAMEWORK_COREAUDIO)
+   LIBSOCKET="$X_EXTRA_LIBS"
+   AC_SUBST(LIBSOCKET)
+   AC_SUBST(X_EXTRA_LIBS)
+   AC_CHECK_LIB(ucb, killpg, [LIBUCB="-lucb"]) dnl for Solaris2.4
+   AC_SUBST(LIBUCB)
+
+   case $host in  dnl this *is* LynxOS specific
+   *-*-lynxos* )
+        AC_MSG_CHECKING([LynxOS header file wrappers])
+        [CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__"]
+        AC_MSG_RESULT(disabled)
+        AC_CHECK_LIB(bsd, gethostbyname, [LIBSOCKET="-lbsd"]) dnl for LynxOS
+         ;;
+    esac
+
+   KDE_CHECK_TYPES
+   KDE_CHECK_LIBDL
+   KDE_CHECK_STRLCPY
+
+# darwin needs this to initialize the environment
+AC_CHECK_HEADERS(crt_externs.h)
+AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
+ 
+AH_VERBATIM(_DARWIN_ENVIRON,
+[
+#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
+# include <sys/time.h>
+# include <crt_externs.h>
+# define environ (*_NSGetEnviron())
+#endif
+])
+
+AH_VERBATIM(_AIX_STRINGS_H_BZERO,
+[
+/*
+ * AIX defines FD_SET in terms of bzero, but fails to include <strings.h>
+ * that defines bzero.
+ */
+
+#if defined(_AIX)
+#include <strings.h>
+#endif
+])
+
+AC_CHECK_FUNCS([vsnprintf snprintf])
+
+AH_VERBATIM(_TRU64,[
+/*
+ * On HP-UX, the declaration of vsnprintf() is needed every time !
+ */
+
+#if !defined(HAVE_VSNPRINTF) || defined(hpux)
+#if __STDC__
+#include <stdarg.h>
+#include <stdlib.h>
+#else
+#include <varargs.h>
+#endif
+#ifdef __cplusplus
+extern "C"
+#endif
+int vsnprintf(char *str, size_t n, char const *fmt, va_list ap);
+#ifdef __cplusplus
+extern "C"
+#endif
+int snprintf(char *str, size_t n, char const *fmt, ...);
+#endif
+])
+
+])
+
+dnl ------------------------------------------------------------------------
+dnl Find the header files and libraries for X-Windows. Extended the
+dnl macro AC_PATH_X
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([K_PATH_X],
+[
+AC_REQUIRE([KDE_MISC_TESTS])dnl
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+AC_ARG_ENABLE(
+  embedded,
+  AC_HELP_STRING([--enable-embedded],[link to Qt-embedded, don't use X]),
+  kde_use_qt_emb=$enableval,
+  kde_use_qt_emb=no
+)
+
+AC_ARG_ENABLE(
+  qtopia,
+  AC_HELP_STRING([--enable-qtopia],[link to Qt-embedded, link to the Qtopia Environment]),
+  kde_use_qt_emb_palm=$enableval,
+  kde_use_qt_emb_palm=no
+)
+
+AC_ARG_ENABLE(
+  mac,
+  AC_HELP_STRING([--enable-mac],[link to Qt/Mac (don't use X)]),
+  kde_use_qt_mac=$enableval,
+  kde_use_qt_mac=no
+)
+
+if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then
+
+AC_MSG_CHECKING(for X)
+
+AC_CACHE_VAL(kde_cv_have_x,
+[# One or both of the vars are not set, and there is no cached value.
+if test "{$x_includes+set}" = set || test "$x_includes" = NONE; then
+   kde_x_includes=NO
+else
+   kde_x_includes=$x_includes
+fi
+if test "{$x_libraries+set}" = set || test "$x_libraries" = NONE; then
+   kde_x_libraries=NO
+else
+   kde_x_libraries=$x_libraries
+fi
+
+# below we use the standard autoconf calls
+ac_x_libraries=$kde_x_libraries
+ac_x_includes=$kde_x_includes
+
+KDE_PATH_X_DIRECT
+dnl AC_PATH_X_XMKMF picks /usr/lib as the path for the X libraries.
+dnl Unfortunately, if compiling with the N32 ABI, this is not the correct
+dnl location. The correct location is /usr/lib32 or an undefined value
+dnl (the linker is smart enough to pick the correct default library).
+dnl Things work just fine if you use just AC_PATH_X_DIRECT.
+dnl Solaris has a similar problem. AC_PATH_X_XMKMF forces x_includes to
+dnl /usr/openwin/include, which doesn't work. /usr/include does work, so
+dnl x_includes should be left alone.
+case "$host" in
+mips-sgi-irix6*)
+  ;;
+*-*-solaris*)
+  ;;
+*)
+  _AC_PATH_X_XMKMF
+  if test -z "$ac_x_includes"; then
+    ac_x_includes="."
+  fi
+  if test -z "$ac_x_libraries"; then
+    ac_x_libraries="/usr/lib${kdelibsuff}"
+  fi
+esac
+#from now on we use our own again
+
+# when the user already gave --x-includes, we ignore
+# what the standard autoconf macros told us.
+if test "$kde_x_includes" = NO; then
+  kde_x_includes=$ac_x_includes
+fi
+
+# for --x-libraries too
+if test "$kde_x_libraries" = NO; then
+  kde_x_libraries=$ac_x_libraries
+fi
+
+if test "$kde_x_includes" = NO; then
+  AC_MSG_ERROR([Can't find X includes. Please check your installation and add the correct paths!])
+fi
+
+if test "$kde_x_libraries" = NO; then
+  AC_MSG_ERROR([Can't find X libraries. Please check your installation and add the correct paths!])
+fi
+
+# Record where we found X for the cache.
+kde_cv_have_x="have_x=yes \
+         kde_x_includes=$kde_x_includes kde_x_libraries=$kde_x_libraries"
+])dnl
+
+eval "$kde_cv_have_x"
+
+if test "$have_x" != yes; then
+  AC_MSG_RESULT($have_x)
+  no_x=yes
+else
+  AC_MSG_RESULT([libraries $kde_x_libraries, headers $kde_x_includes])
+fi
+
+if test -z "$kde_x_includes" || test "x$kde_x_includes" = xNONE; then
+  X_INCLUDES=""
+  x_includes="."; dnl better than nothing :-
+ else
+  x_includes=$kde_x_includes
+  X_INCLUDES="-I$x_includes"
+fi
+
+if test -z "$kde_x_libraries" || test "x$kde_x_libraries" = xNONE; then
+  X_LDFLAGS=""
+  x_libraries="/usr/lib"; dnl better than nothing :-
+ else
+  x_libraries=$kde_x_libraries
+  X_LDFLAGS="-L$x_libraries"
+fi
+all_includes="$X_INCLUDES"
+all_libraries="$X_LDFLAGS"
+
+# Check for libraries that X11R6 Xt/Xaw programs need.
+ac_save_LDFLAGS="$LDFLAGS"
+LDFLAGS="$LDFLAGS $X_LDFLAGS"
+# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+# check for ICE first), but we must link in the order -lSM -lICE or
+# we get undefined symbols.  So assume we have SM if we have ICE.
+# These have to be linked with before -lX11, unlike the other
+# libraries we check for below, so use a different variable.
+#  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
+AC_CHECK_LIB(ICE, IceConnectionNumber,
+  [LIBSM="-lSM -lICE"], , $X_EXTRA_LIBS)
+LDFLAGS="$ac_save_LDFLAGS"
+
+LIB_X11='-lX11 $(LIBSOCKET)'
+
+AC_MSG_CHECKING(for libXext)
+AC_CACHE_VAL(kde_cv_have_libXext,
+[
+kde_ldflags_safe="$LDFLAGS"
+kde_libs_safe="$LIBS"
+
+LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS"
+LIBS="-lXext -lX11 $LIBSOCKET"
+
+AC_TRY_LINK([
+#include <stdio.h>
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+],
+[
+printf("hello Xext\n");
+],
+kde_cv_have_libXext=yes,
+kde_cv_have_libXext=no
+)
+
+LDFLAGS=$kde_ldflags_safe
+LIBS=$kde_libs_safe
+])
+
+AC_MSG_RESULT($kde_cv_have_libXext)
+
+if test "$kde_cv_have_libXext" = "no"; then
+  AC_MSG_ERROR([We need a working libXext to proceed. Since configure
+can't find it itself, we stop here assuming that make wouldn't find
+them either.])
+fi
+
+LIB_XEXT="-lXext"
+QTE_NORTTI=""
+
+elif test "$kde_use_qt_emb" = "yes"; then
+  dnl We're using QT Embedded
+  CPPFLAGS=-DQWS
+  CXXFLAGS="$CXXFLAGS -fno-rtti"
+  QTE_NORTTI="-fno-rtti -DQWS"
+  X_PRE_LIBS=""
+  LIB_X11=""
+  LIB_XEXT=""
+  LIB_XRENDER=""
+  LIBSM=""
+  X_INCLUDES=""
+  X_LDFLAGS=""
+  x_includes=""
+  x_libraries=""
+elif test "$kde_use_qt_mac" = "yes"; then
+  dnl We're using QT/Mac (I use QT_MAC so that qglobal.h doesn't *have* to
+  dnl be included to get the information) --Sam
+  CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp"
+  CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp"
+  X_PRE_LIBS=""
+  LIB_X11=""
+  LIB_XEXT=""
+  LIB_XRENDER=""
+  LIBSM=""
+  X_INCLUDES=""
+  X_LDFLAGS=""
+  x_includes=""
+  x_libraries=""
+fi
+AC_SUBST(X_PRE_LIBS)
+AC_SUBST(LIB_X11)
+AC_SUBST(LIB_XRENDER)
+AC_SUBST(LIBSM)
+AC_SUBST(X_INCLUDES)
+AC_SUBST(X_LDFLAGS)
+AC_SUBST(x_includes)
+AC_SUBST(x_libraries)
+AC_SUBST(QTE_NORTTI)
+AC_SUBST(LIB_XEXT)
+
+])
+
+AC_DEFUN([KDE_PRINT_QT_PROGRAM],
+[
+AC_REQUIRE([KDE_USE_QT])
+cat > conftest.$ac_ext <<EOF
+#include "confdefs.h"
+#include <qglobal.h>
+#include <qapplication.h>
+EOF
+if test "$kde_qtver" = "2"; then
+cat >> conftest.$ac_ext <<EOF
+#include <qevent.h>
+#include <qstring.h>
+#include <qstyle.h>
+EOF
+
+if test $kde_qtsubver -gt 0; then
+cat >> conftest.$ac_ext <<EOF
+#if QT_VERSION < 210
+#error 1
+#endif
+EOF
+fi
+fi
+
+if test "$kde_qtver" = "3"; then
+cat >> conftest.$ac_ext <<EOF
+#include <qcursor.h>
+#include <qstylefactory.h>
+#include <private/qucomextra_p.h>
+EOF
+fi
+
+echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext
+cat >> conftest.$ac_ext <<EOF
+#error 1
+#endif
+
+int main() {
+EOF
+if test "$kde_qtver" = "2"; then
+cat >> conftest.$ac_ext <<EOF
+    QStringList *t = new QStringList();
+    Q_UNUSED(t);
+EOF
+if test $kde_qtsubver -gt 0; then
+cat >> conftest.$ac_ext <<EOF
+    QString s;
+    s.setLatin1("Elvis is alive", 14);
+EOF
+fi
+fi
+if test "$kde_qtver" = "3"; then
+cat >> conftest.$ac_ext <<EOF
+    (void)QStyleFactory::create(QString::null);
+    QCursor c(Qt::WhatsThisCursor);
+EOF
+fi
+cat >> conftest.$ac_ext <<EOF
+    return 0;
+}
+EOF
+])
+
+AC_DEFUN([KDE_USE_QT],
+[
+if test -z "$1"; then
+  # Current default Qt version: 3.2
+  kde_qtver=3
+  kde_qtsubver=2
+else
+  kde_qtsubver=`echo "$1" | sed -e 's#[0-9][0-9]*\.\([0-9][0-9]*\).*#\1#'`
+  # following is the check if subversion isnt found in passed argument
+  if test "$kde_qtsubver" = "$1"; then
+    kde_qtsubver=1
+  fi
+  kde_qtver=`echo "$1" | sed -e 's#^\([0-9][0-9]*\)\..*#\1#'`
+  if test "$kde_qtver" = "1"; then
+    kde_qtsubver=42
+  fi
+fi
+
+if test -z "$2"; then
+  if test "$kde_qtver" = "2"; then
+    if test $kde_qtsubver -gt 0; then
+      kde_qt_minversion=">= Qt 2.2.2"
+    else
+      kde_qt_minversion=">= Qt 2.0.2"
+    fi
+  fi
+  if test "$kde_qtver" = "3"; then
+    if test $kde_qtsubver -gt 0; then
+	 if test $kde_qtsubver -gt 1; then
+	    kde_qt_minversion=">= Qt 3.2"
+	 else
+            kde_qt_minversion=">= Qt 3.1 (20021021)"
+         fi
+    else
+      kde_qt_minversion=">= Qt 3.0"
+    fi
+  fi
+  if test "$kde_qtver" = "1"; then
+    kde_qt_minversion=">= 1.42 and < 2.0"
+  fi
+else
+   kde_qt_minversion="$2"
+fi
+
+if test -z "$3"; then
+   if test $kde_qtver = 3; then
+     if test $kde_qtsubver -gt 0; then
+       kde_qt_verstring="QT_VERSION >= 0x03@VER@00"
+       qtsubver=`echo "00$kde_qtsubver" | sed -e 's,.*\(..\)$,\1,'`
+       kde_qt_verstring=`echo $kde_qt_verstring | sed -e "s,@VER@,$qtsubver,"`
+     else
+       kde_qt_verstring="QT_VERSION >= 300"
+     fi
+   fi
+   if test $kde_qtver = 2; then
+     if test $kde_qtsubver -gt 0; then
+       kde_qt_verstring="QT_VERSION >= 222"
+     else
+       kde_qt_verstring="QT_VERSION >= 200"
+     fi
+   fi
+   if test $kde_qtver = 1; then
+    kde_qt_verstring="QT_VERSION >= 142 && QT_VERSION < 200"
+   fi
+else
+   kde_qt_verstring="$3"
+fi
+
+if test $kde_qtver = 3; then
+  kde_qt_dirs="$QTDIR /usr/lib/qt3 /usr/lib/qt /usr/share/qt3"
+fi
+if test $kde_qtver = 2; then
+   kde_qt_dirs="$QTDIR /usr/lib/qt2 /usr/lib/qt"
+fi
+if test $kde_qtver = 1; then
+   kde_qt_dirs="$QTDIR /usr/lib/qt"
+fi
+])
+
+AC_DEFUN([KDE_CHECK_QT_DIRECT],
+[
+AC_REQUIRE([KDE_USE_QT])
+AC_MSG_CHECKING([if Qt compiles without flags])
+AC_CACHE_VAL(kde_cv_qt_direct,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH
+ac_LIBRARY_PATH="$LIBRARY_PATH"
+ac_cxxflags_safe="$CXXFLAGS"
+ac_ldflags_safe="$LDFLAGS"
+ac_libs_safe="$LIBS"
+
+CXXFLAGS="$CXXFLAGS -I$qt_includes"
+LDFLAGS="$LDFLAGS $X_LDFLAGS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$LIBQT -lXext -lX11 $LIBSOCKET"
+else
+LIBS="$LIBQT $LIBSOCKET"
+fi
+LD_LIBRARY_PATH=
+export LD_LIBRARY_PATH
+LIBRARY_PATH=
+export LIBRARY_PATH
+
+KDE_PRINT_QT_PROGRAM
+
+if AC_TRY_EVAL(ac_link) && test -s conftest; then
+  kde_cv_qt_direct="yes"
+else
+  kde_cv_qt_direct="no"
+  echo "configure: failed program was:" >&AC_FD_CC
+  cat conftest.$ac_ext >&AC_FD_CC
+fi
+
+rm -f conftest*
+CXXFLAGS="$ac_cxxflags_safe"
+LDFLAGS="$ac_ldflags_safe"
+LIBS="$ac_libs_safe"
+
+LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe"
+export LD_LIBRARY_PATH
+LIBRARY_PATH="$ac_LIBRARY_PATH"
+export LIBRARY_PATH
+AC_LANG_RESTORE
+])
+
+if test "$kde_cv_qt_direct" = "yes"; then
+  AC_MSG_RESULT(yes)
+  $1
+else
+  AC_MSG_RESULT(no)
+  $2
+fi
+])
+
+dnl ------------------------------------------------------------------------
+dnl Try to find the Qt headers and libraries.
+dnl $(QT_LDFLAGS) will be -Lqtliblocation (if needed)
+dnl and $(QT_INCLUDES) will be -Iqthdrlocation (if needed)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_PATH_QT_1_3],
+[
+AC_REQUIRE([K_PATH_X])
+AC_REQUIRE([KDE_USE_QT])
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+dnl ------------------------------------------------------------------------
+dnl Add configure flag to enable linking to MT version of Qt library.
+dnl ------------------------------------------------------------------------
+
+AC_ARG_ENABLE(
+  mt,
+  AC_HELP_STRING([--disable-mt],[link to non-threaded Qt (deprecated)]),
+  kde_use_qt_mt=$enableval,
+  [
+    if test $kde_qtver = 3; then
+      kde_use_qt_mt=yes
+    else
+      kde_use_qt_mt=no
+    fi
+  ]
+)
+
+USING_QT_MT=""
+
+dnl ------------------------------------------------------------------------
+dnl If we not get --disable-qt-mt then adjust some vars for the host.
+dnl ------------------------------------------------------------------------
+
+KDE_MT_LDFLAGS=
+KDE_MT_LIBS=
+if test "x$kde_use_qt_mt" = "xyes"; then
+  KDE_CHECK_THREADING
+  if test "x$kde_use_threading" = "xyes"; then
+    CPPFLAGS="$USE_THREADS -DQT_THREAD_SUPPORT $CPPFLAGS"
+    KDE_MT_LDFLAGS="$USE_THREADS"
+    KDE_MT_LIBS="$LIBPTHREAD"
+  else
+    kde_use_qt_mt=no
+  fi
+fi
+AC_SUBST(KDE_MT_LDFLAGS)
+AC_SUBST(KDE_MT_LIBS)
+
+kde_qt_was_given=yes
+
+dnl ------------------------------------------------------------------------
+dnl If we haven't been told how to link to Qt, we work it out for ourselves.
+dnl ------------------------------------------------------------------------
+if test -z "$LIBQT_GLOB"; then
+  if test "x$kde_use_qt_emb" = "xyes"; then
+    LIBQT_GLOB="libqte.*"
+  else
+    LIBQT_GLOB="libqt.*"
+  fi
+fi
+
+if test -z "$LIBQT"; then
+dnl ------------------------------------------------------------
+dnl If we got --enable-embedded then adjust the Qt library name.
+dnl ------------------------------------------------------------
+  if test "x$kde_use_qt_emb" = "xyes"; then
+    qtlib="qte"
+  else
+    qtlib="qt"
+  fi
+
+  kde_int_qt="-l$qtlib"
+else
+  kde_int_qt="$LIBQT"
+  kde_lib_qt_set=yes
+fi
+
+if test -z "$LIBQPE"; then
+dnl ------------------------------------------------------------
+dnl If we got --enable-palmtop then add -lqpe to the link line
+dnl ------------------------------------------------------------
+  if test "x$kde_use_qt_emb" = "xyes"; then
+    if test "x$kde_use_qt_emb_palm" = "xyes"; then
+      LIB_QPE="-lqpe"
+    else
+      LIB_QPE=""
+    fi
+  else
+    LIB_QPE=""
+  fi
+fi
+
+dnl ------------------------------------------------------------------------
+dnl If we got --enable-qt-mt then adjust the Qt library name for the host.
+dnl ------------------------------------------------------------------------
+
+if test "x$kde_use_qt_mt" = "xyes"; then
+  if test -z "$LIBQT"; then
+    LIBQT="-l$qtlib-mt"
+    kde_int_qt="-l$qtlib-mt"
+  else
+    LIBQT="$qtlib-mt"
+    kde_int_qt="$qtlib-mt"
+  fi
+  LIBQT_GLOB="lib$qtlib-mt.*"
+  USING_QT_MT="using -mt"
+else
+  LIBQT="-l$qtlib"
+fi
+
+if test $kde_qtver != 1; then
+
+  AC_REQUIRE([AC_FIND_PNG])
+  AC_REQUIRE([AC_FIND_JPEG])
+  LIBQT="$LIBQT $LIBPNG $LIBJPEG"
+fi
+
+if test $kde_qtver = 3; then
+  AC_REQUIRE([KDE_CHECK_LIBDL])
+  LIBQT="$LIBQT $LIBDL"
+fi
+
+AC_MSG_CHECKING([for Qt])
+
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET"
+fi
+ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO
+qt_libraries=""
+qt_includes=""
+AC_ARG_WITH(qt-dir,
+    AC_HELP_STRING([--with-qt-dir=DIR],[where the root of Qt is installed ]),
+    [  ac_qt_includes="$withval"/include
+       ac_qt_libraries="$withval"/lib${kdelibsuff}
+       ac_qt_bindir="$withval"/bin
+    ])
+
+AC_ARG_WITH(qt-includes,
+    AC_HELP_STRING([--with-qt-includes=DIR],[where the Qt includes are. ]),
+    [
+       ac_qt_includes="$withval"
+    ])
+
+kde_qt_libs_given=no
+
+AC_ARG_WITH(qt-libraries,
+    AC_HELP_STRING([--with-qt-libraries=DIR],[where the Qt library is installed.]),
+    [  ac_qt_libraries="$withval"
+       kde_qt_libs_given=yes
+    ])
+
+AC_CACHE_VAL(ac_cv_have_qt,
+[#try to guess Qt locations
+
+qt_incdirs=""
+for dir in $kde_qt_dirs; do
+   qt_incdirs="$qt_incdirs $dir/include $dir"
+done
+qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes"
+if test ! "$ac_qt_includes" = "NO"; then
+   qt_incdirs="$ac_qt_includes $qt_incdirs"
+fi
+
+if test "$kde_qtver" != "1"; then
+  kde_qt_header=qstyle.h
+else
+  kde_qt_header=qglobal.h
+fi
+
+AC_FIND_FILE($kde_qt_header, $qt_incdirs, qt_incdir)
+ac_qt_includes="$qt_incdir"
+
+qt_libdirs=""
+for dir in $kde_qt_dirs; do
+   qt_libdirs="$qt_libdirs $dir/lib${kdelibsuff} $dir"
+done
+qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries"
+if test ! "$ac_qt_libraries" = "NO"; then
+  qt_libdir=$ac_qt_libraries
+else
+  qt_libdirs="$ac_qt_libraries $qt_libdirs"
+  # if the Qt was given, the chance is too big that libqt.* doesn't exist
+  qt_libdir=NONE
+  for dir in $qt_libdirs; do
+    try="ls -1 $dir/${LIBQT_GLOB}"
+    if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi
+  done
+fi
+for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
+  if test -e "$a"; then
+    LIBQT="$LIBQT ${kde_int_qt}_incremental"
+    break
+  fi
+done
+
+ac_qt_libraries="$qt_libdir"
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
+ac_cxxflags_safe="$CXXFLAGS"
+ac_ldflags_safe="$LDFLAGS"
+ac_libs_safe="$LIBS"
+
+CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
+LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
+LIBS="$LIBS $LIBQT $KDE_MT_LIBS"
+
+KDE_PRINT_QT_PROGRAM
+
+if AC_TRY_EVAL(ac_link) && test -s conftest; then
+  rm -f conftest*
+else
+  echo "configure: failed program was:" >&AC_FD_CC
+  cat conftest.$ac_ext >&AC_FD_CC
+  ac_qt_libraries="NO"
+fi
+rm -f conftest*
+CXXFLAGS="$ac_cxxflags_safe"
+LDFLAGS="$ac_ldflags_safe"
+LIBS="$ac_libs_safe"
+
+AC_LANG_RESTORE
+if test "$ac_qt_includes" = NO || test "$ac_qt_libraries" = NO; then
+  ac_cv_have_qt="have_qt=no"
+  ac_qt_notfound=""
+  missing_qt_mt=""
+  if test "$ac_qt_includes" = NO; then
+    if test "$ac_qt_libraries" = NO; then
+      ac_qt_notfound="(headers and libraries)";
+    else
+      ac_qt_notfound="(headers)";
+    fi
+  else
+    if test "x$kde_use_qt_mt" = "xyes"; then
+       missing_qt_mt="
+Make sure that you have compiled Qt with thread support!"
+       ac_qt_notfound="(library $qtlib-mt)";
+    else
+       ac_qt_notfound="(library $qtlib)";
+    fi
+  fi
+
+  AC_MSG_ERROR([Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation!
+For more details about this problem, look at the end of config.log.$missing_qt_mt])
+else
+  have_qt="yes"
+fi
+])
+
+eval "$ac_cv_have_qt"
+
+if test "$have_qt" != yes; then
+  AC_MSG_RESULT([$have_qt]);
+else
+  ac_cv_have_qt="have_qt=yes \
+    ac_qt_includes=$ac_qt_includes ac_qt_libraries=$ac_qt_libraries"
+  AC_MSG_RESULT([libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT])
+
+  qt_libraries="$ac_qt_libraries"
+  qt_includes="$ac_qt_includes"
+fi
+
+if test ! "$kde_qt_libs_given" = "yes" && test ! "$kde_qtver" = 3; then
+     KDE_CHECK_QT_DIRECT(qt_libraries= ,[])
+fi
+
+AC_SUBST(qt_libraries)
+AC_SUBST(qt_includes)
+
+if test "$qt_includes" = "$x_includes" || test -z "$qt_includes"; then
+ QT_INCLUDES=""
+else
+ QT_INCLUDES="-I$qt_includes"
+ all_includes="$QT_INCLUDES $all_includes"
+fi
+
+if test "$qt_libraries" = "$x_libraries" || test -z "$qt_libraries"; then
+ QT_LDFLAGS=""
+else
+ QT_LDFLAGS="-L$qt_libraries"
+ all_libraries="$all_libraries $QT_LDFLAGS"
+fi
+test -z "$KDE_MT_LDFLAGS" || all_libraries="$all_libraries $KDE_MT_LDFLAGS"
+
+AC_SUBST(QT_INCLUDES)
+AC_SUBST(QT_LDFLAGS)
+AC_PATH_QT_MOC_UIC
+
+KDE_CHECK_QT_JPEG
+
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)'
+else
+LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)'
+fi
+test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS"
+for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
+  if test -e "$a"; then
+     LIB_QT="$LIB_QT ${kde_int_qt}_incremental"
+     break
+  fi
+done
+
+AC_SUBST(LIB_QT)
+AC_SUBST(LIB_QPE)
+
+AC_SUBST(kde_qtver)
+])
+
+AC_DEFUN([AC_PATH_QT],
+[
+AC_PATH_QT_1_3
+])
+
+AC_DEFUN([KDE_CHECK_UIC_PLUGINS],
+[
+AC_REQUIRE([AC_PATH_QT_MOC_UIC])
+
+if test x$ac_uic_supports_libpath = xyes; then
+
+AC_MSG_CHECKING([if UIC has KDE plugins available])
+AC_CACHE_VAL(kde_cv_uic_plugins,
+[
+cat > actest.ui << EOF
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>NewConnectionDialog</class>
+<widget class="QDialog">
+   <widget class="KLineEdit">
+        <property name="name">
+           <cstring>testInput</cstring>
+        </property>
+   </widget>
+</widget>
+</UI>
+EOF
+       
+
+
+kde_cv_uic_plugins=no
+kde_line="$UIC_PATH -L $kde_widgetdir"
+if test x$ac_uic_supports_nounload = xyes; then
+   kde_line="$kde_line -nounload"
+fi
+kde_line="$kde_line -impl actest.h actest.ui > actest.cpp"
+if AC_TRY_EVAL(kde_line); then
+	# if you're trying to debug this check and think it's incorrect,
+	# better check your installation. The check _is_ correct - your
+	# installation is not.
+	if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then
+		kde_cv_uic_plugins=yes
+	fi
+fi
+rm -f actest.ui actest.cpp
+])
+
+AC_MSG_RESULT([$kde_cv_uic_plugins])
+if test "$kde_cv_uic_plugins" != yes; then
+	AC_MSG_ERROR([you need to install kdelibs first.])
+fi
+fi
+])
+
+AC_DEFUN([KDE_CHECK_FINAL],
+[
+  AC_ARG_ENABLE(final,
+	AC_HELP_STRING([--enable-final],
+		       [build size optimized apps (experimental - needs lots of memory)]),
+	kde_use_final=$enableval, kde_use_final=no)
+
+  if test "x$kde_use_final" = "xyes"; then
+      KDE_USE_FINAL_TRUE=""
+      KDE_USE_FINAL_FALSE="#"
+   else
+      KDE_USE_FINAL_TRUE="#"
+      KDE_USE_FINAL_FALSE=""
+  fi
+  AC_SUBST(KDE_USE_FINAL_TRUE)
+  AC_SUBST(KDE_USE_FINAL_FALSE)
+])
+
+AC_DEFUN([KDE_CHECK_CLOSURE],
+[
+  AC_ARG_ENABLE(closure,
+		AC_HELP_STRING([--enable-closure],[delay template instantiation]),
+  	kde_use_closure=$enableval, kde_use_closure=no)
+
+  KDE_NO_UNDEFINED=""
+  if test "x$kde_use_closure" = "xyes"; then
+       KDE_USE_CLOSURE_TRUE=""
+       KDE_USE_CLOSURE_FALSE="#"
+#       CXXFLAGS="$CXXFLAGS $REPO"
+  else
+       KDE_USE_CLOSURE_TRUE="#"
+       KDE_USE_CLOSURE_FALSE=""
+       KDE_NO_UNDEFINED=""
+       case $host in 
+         *-*-linux-gnu)
+           KDE_CHECK_COMPILER_FLAG([Wl,--no-undefined],
+                [KDE_CHECK_COMPILER_FLAG([Wl,--allow-shlib-undefined],
+		[KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined"],
+		[KDE_NO_UNDEFINED=""])],
+	    [KDE_NO_UNDEFINED=""])
+           ;;
+       esac
+  fi
+  AC_SUBST(KDE_USE_CLOSURE_TRUE)
+  AC_SUBST(KDE_USE_CLOSURE_FALSE)
+  AC_SUBST(KDE_NO_UNDEFINED)
+])
+
+AC_DEFUN([KDE_CHECK_NMCHECK],
+[
+  AC_ARG_ENABLE(nmcheck,AC_HELP_STRING([--enable-nmcheck],[enable automatic namespace cleanness check]),
+	kde_use_nmcheck=$enableval, kde_use_nmcheck=no)
+
+  if test "$kde_use_nmcheck" = "yes"; then
+      KDE_USE_NMCHECK_TRUE=""
+      KDE_USE_NMCHECK_FALSE="#"
+   else
+      KDE_USE_NMCHECK_TRUE="#"
+      KDE_USE_NMCHECK_FALSE=""
+  fi
+  AC_SUBST(KDE_USE_NMCHECK_TRUE)
+  AC_SUBST(KDE_USE_NMCHECK_FALSE)
+])
+
+AC_DEFUN([KDE_EXPAND_MAKEVAR], [
+savex=$exec_prefix
+test "x$exec_prefix" = xNONE && exec_prefix=$prefix
+tmp=$$2
+while $1=`eval echo "$tmp"`; test "x$$1" != "x$tmp"; do tmp=$$1; done
+exec_prefix=$savex
+])
+
+dnl ------------------------------------------------------------------------
+dnl Now, the same with KDE
+dnl $(KDE_LDFLAGS) will be the kdeliblocation (if needed)
+dnl and $(kde_includes) will be the kdehdrlocation (if needed)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_BASE_PATH_KDE],
+[
+AC_REQUIRE([KDE_CHECK_STL])
+AC_REQUIRE([AC_PATH_QT])dnl
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+AC_CHECK_RPATH
+AC_MSG_CHECKING([for KDE])
+
+if test "${prefix}" != NONE; then
+  kde_includes=${includedir}
+  KDE_EXPAND_MAKEVAR(ac_kde_includes, includedir)
+
+  kde_libraries=${libdir}
+  KDE_EXPAND_MAKEVAR(ac_kde_libraries, libdir)
+
+else
+  ac_kde_includes=
+  ac_kde_libraries=
+  kde_libraries=""
+  kde_includes=""
+fi
+
+AC_CACHE_VAL(ac_cv_have_kde,
+[#try to guess kde locations
+
+if test "$kde_qtver" = 1; then
+  kde_check_header="ksock.h"
+  kde_check_lib="libkdecore.la"
+else
+  kde_check_header="ksharedptr.h"
+  kde_check_lib="libkio.la"
+fi
+
+if test -z "$1"; then
+
+kde_incdirs="/usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes $qt_includes"
+test -n "$KDEDIR" && kde_incdirs="$KDEDIR/include $KDEDIR/include/kde $KDEDIR $kde_incdirs"
+kde_incdirs="$ac_kde_includes $kde_incdirs"
+AC_FIND_FILE($kde_check_header, $kde_incdirs, kde_incdir)
+ac_kde_includes="$kde_incdir"
+
+if test -n "$ac_kde_includes" && test ! -r "$ac_kde_includes/$kde_check_header"; then
+  AC_MSG_ERROR([
+in the prefix, you've chosen, are no KDE headers installed. This will fail.
+So, check this please and use another prefix!])
+fi
+
+kde_libdirs="/usr/lib/kde/lib${kdelibsuff} /usr/local/kde/lib${kdelibsuff} /usr/kde/lib${kdelibsuff} /usr/lib${kdelibsuff}/kde /usr/lib${kdelibsuff}/kde3 /usr/lib${kdelibsuff} /usr/X11R6/lib${kdelibsuff} /usr/local/lib${kdelibsuff} /opt/kde3/lib${kdelibsuff} /opt/kde/lib${kdelibsuff} /usr/X11R6/kde/lib${kdelibsuff}"
+test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib${kdelibsuff} $KDEDIR $kde_libdirs"
+kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs"
+AC_FIND_FILE($kde_check_lib, $kde_libdirs, kde_libdir)
+ac_kde_libraries="$kde_libdir"
+
+kde_widgetdir=NO
+dnl this might be somewhere else
+AC_FIND_FILE("kde3/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir)
+
+if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then
+AC_MSG_ERROR([
+in the prefix, you've chosen, are no KDE libraries installed. This will fail.
+So, check this please and use another prefix!])
+fi
+
+if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then
+AC_MSG_ERROR([
+I can't find the designer plugins. These are required and should have been installed
+by kdelibs])
+fi
+
+if test -n "$kde_widgetdir"; then
+    kde_widgetdir="$kde_widgetdir/kde3/plugins/designer"
+fi
+
+
+if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then
+  ac_cv_have_kde="have_kde=no"
+else
+  ac_cv_have_kde="have_kde=yes \
+    ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries"
+fi
+
+else dnl test -z $1
+
+  ac_cv_have_kde="have_kde=no"
+
+fi
+])dnl
+
+eval "$ac_cv_have_kde"
+
+if test "$have_kde" != "yes"; then
+ if test "${prefix}" = NONE; then
+  ac_kde_prefix="$ac_default_prefix"
+ else
+  ac_kde_prefix="$prefix"
+ fi
+ if test "$exec_prefix" = NONE; then
+  ac_kde_exec_prefix="$ac_kde_prefix"
+  AC_MSG_RESULT([will be installed in $ac_kde_prefix])
+ else
+  ac_kde_exec_prefix="$exec_prefix"
+  AC_MSG_RESULT([will be installed in $ac_kde_prefix and $ac_kde_exec_prefix])
+ fi
+
+ kde_libraries="${libdir}"
+ kde_includes="${includedir}"
+
+else
+  ac_cv_have_kde="have_kde=yes \
+    ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries"
+  AC_MSG_RESULT([libraries $ac_kde_libraries, headers $ac_kde_includes])
+
+  kde_libraries="$ac_kde_libraries"
+  kde_includes="$ac_kde_includes"
+fi
+AC_SUBST(kde_libraries)
+AC_SUBST(kde_includes)
+
+if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes"  || test "$kde_includes" = "/usr/include"; then
+ KDE_INCLUDES=""
+else
+ KDE_INCLUDES="-I$kde_includes"
+ all_includes="$KDE_INCLUDES $all_includes"
+fi
+
+KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION"
+ 
+KDE_LDFLAGS="-L$kde_libraries"
+if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then 
+ all_libraries="$all_libraries $KDE_LDFLAGS"
+fi
+
+AC_SUBST(KDE_LDFLAGS)
+AC_SUBST(KDE_INCLUDES)
+
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+all_libraries="$all_libraries $USER_LDFLAGS"
+all_includes="$all_includes $USER_INCLUDES"
+AC_SUBST(all_includes)
+AC_SUBST(all_libraries)
+
+if test -z "$1"; then
+KDE_CHECK_UIC_PLUGINS
+fi
+
+ac_kde_libraries="$kde_libdir"
+
+AC_SUBST(AUTODIRS)
+
+
+])
+
+AC_DEFUN([KDE_CHECK_EXTRA_LIBS],
+[
+AC_MSG_CHECKING(for extra includes)
+AC_ARG_WITH(extra-includes,AC_HELP_STRING([--with-extra-includes=DIR],[adds non standard include paths]),
+  kde_use_extra_includes="$withval",
+  kde_use_extra_includes=NONE
+)
+kde_extra_includes=
+if test -n "$kde_use_extra_includes" && \
+   test "$kde_use_extra_includes" != "NONE"; then
+
+   ac_save_ifs=$IFS
+   IFS=':'
+   for dir in $kde_use_extra_includes; do
+     kde_extra_includes="$kde_extra_includes $dir"
+     USER_INCLUDES="$USER_INCLUDES -I$dir"
+   done
+   IFS=$ac_save_ifs
+   kde_use_extra_includes="added"
+else
+   kde_use_extra_includes="no"
+fi
+AC_SUBST(USER_INCLUDES)
+
+AC_MSG_RESULT($kde_use_extra_includes)
+
+kde_extra_libs=
+AC_MSG_CHECKING(for extra libs)
+AC_ARG_WITH(extra-libs,AC_HELP_STRING([--with-extra-libs=DIR],[adds non standard library paths]),
+  kde_use_extra_libs=$withval,
+  kde_use_extra_libs=NONE
+)
+if test -n "$kde_use_extra_libs" && \
+   test "$kde_use_extra_libs" != "NONE"; then
+
+   ac_save_ifs=$IFS
+   IFS=':'
+   for dir in $kde_use_extra_libs; do
+     kde_extra_libs="$kde_extra_libs $dir"
+     KDE_EXTRA_RPATH="$KDE_EXTRA_RPATH -R $dir"
+     USER_LDFLAGS="$USER_LDFLAGS -L$dir"
+   done
+   IFS=$ac_save_ifs
+   kde_use_extra_libs="added"
+else
+   kde_use_extra_libs="no"
+fi
+
+AC_SUBST(USER_LDFLAGS)
+
+AC_MSG_RESULT($kde_use_extra_libs)
+
+])
+
+AC_DEFUN([KDE_1_CHECK_PATH_HEADERS],
+[
+    AC_MSG_CHECKING([for KDE headers installed])
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+cat > conftest.$ac_ext <<EOF
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+#include <stdio.h>
+#include "confdefs.h"
+#include <kapp.h>
+
+int main() {
+    printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data());
+    printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data());
+    printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data());
+    printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data());
+    printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data());
+    printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data());
+    printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data());
+    printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data());
+    printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data());
+    printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data());
+    printf("kde_wallpaperdir=\\"%s\\"\n",
+	KApplication::kde_wallpaperdir().data());
+    printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data());
+    printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data());
+    printf("kde_servicesdir=\\"/tmp/dummy\\"\n");
+    printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n");
+    printf("kde_moduledir=\\"/tmp/dummy\\"\n");
+    printf("kde_styledir=\\"/tmp/dummy\\"\n");
+    printf("kde_widgetdir=\\"/tmp/dummy\\"\n");
+    printf("xdg_appsdir=\\"/tmp/dummy\\"\n");
+    printf("xdg_menudir=\\"/tmp/dummy\\"\n");
+    printf("xdg_directorydir=\\"/tmp/dummy\\"\n");
+    printf("kde_kcfgdir=\\"/tmp/dummy\\"\n");
+    return 0;
+    }
+EOF
+
+ ac_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$all_includes $CPPFLAGS"
+ if AC_TRY_EVAL(ac_compile); then
+   AC_MSG_RESULT(yes)
+ else
+   AC_MSG_ERROR([your system is not able to compile a small KDE application!
+Check, if you installed the KDE header files correctly.
+For more details about this problem, look at the end of config.log.])
+  fi
+  CPPFLAGS=$ac_save_CPPFLAGS
+
+  AC_LANG_RESTORE
+])
+
+AC_DEFUN([KDE_CHECK_KDEQTADDON],
+[
+AC_MSG_CHECKING(for kde-qt-addon)
+AC_CACHE_VAL(kde_cv_have_kdeqtaddon,
+[
+ kde_ldflags_safe="$LDFLAGS"
+ kde_libs_safe="$LIBS"
+ kde_cxxflags_safe="$CXXFLAGS"
+
+ LIBS="-lkde-qt-addon $LIBQT $LIBS"
+ CXXFLAGS="$CXXFLAGS -I$prefix/include -I$prefix/include/kde $all_includes"
+ LDFLAGS="$LDFLAGS $all_libraries $USER_LDFLAGS"
+
+ AC_TRY_LINK([
+   #include <qdom.h>
+ ],
+ [
+   QDomDocument doc;
+ ],
+  kde_cv_have_kdeqtaddon=yes,
+  kde_cv_have_kdeqtaddon=no
+ )
+
+ LDFLAGS=$kde_ldflags_safe
+ LIBS=$kde_libs_safe
+ CXXFLAGS=$kde_cxxflags_safe
+])
+
+AC_MSG_RESULT($kde_cv_have_kdeqtaddon)
+
+if test "$kde_cv_have_kdeqtaddon" = "no"; then
+  AC_MSG_ERROR([Can't find libkde-qt-addon. You need to install it first.
+It is a separate package (and CVS module) named kde-qt-addon.])
+fi
+])
+
+AC_DEFUN([KDE_CREATE_LIBS_ALIASES],
+[
+   AC_REQUIRE([KDE_MISC_TESTS])
+   AC_REQUIRE([KDE_CHECK_LIBDL])
+   AC_REQUIRE([K_PATH_X])
+
+if test $kde_qtver = 3; then
+   AC_SUBST(LIB_KDECORE, "-lkdecore")
+   AC_SUBST(LIB_KDEUI, "-lkdeui")
+   AC_SUBST(LIB_KIO, "-lkio")
+   AC_SUBST(LIB_SMB, "-lsmb")
+   AC_SUBST(LIB_KAB, "-lkab")
+   AC_SUBST(LIB_KABC, "-lkabc")
+   AC_SUBST(LIB_KHTML, "-lkhtml")
+   AC_SUBST(LIB_KSPELL, "-lkspell")
+   AC_SUBST(LIB_KPARTS, "-lkparts")
+   AC_SUBST(LIB_KDEPRINT, "-lkdeprint")
+   AC_SUBST(LIB_KUTILS, "-lkutils")
+   AC_SUBST(LIB_KDEPIM, "-lkdepim")
+# these are for backward compatibility
+   AC_SUBST(LIB_KSYCOCA, "-lkio")
+   AC_SUBST(LIB_KFILE, "-lkio")
+elif test $kde_qtver = 2; then
+   AC_SUBST(LIB_KDECORE, "-lkdecore")
+   AC_SUBST(LIB_KDEUI, "-lkdeui")
+   AC_SUBST(LIB_KIO, "-lkio")
+   AC_SUBST(LIB_KSYCOCA, "-lksycoca")
+   AC_SUBST(LIB_SMB, "-lsmb")
+   AC_SUBST(LIB_KFILE, "-lkfile")
+   AC_SUBST(LIB_KAB, "-lkab")
+   AC_SUBST(LIB_KHTML, "-lkhtml")
+   AC_SUBST(LIB_KSPELL, "-lkspell")
+   AC_SUBST(LIB_KPARTS, "-lkparts")
+   AC_SUBST(LIB_KDEPRINT, "-lkdeprint")
+else
+   AC_SUBST(LIB_KDECORE, "-lkdecore -lXext $(LIB_QT)")
+   AC_SUBST(LIB_KDEUI, "-lkdeui $(LIB_KDECORE)")
+   AC_SUBST(LIB_KFM, "-lkfm $(LIB_KDECORE)")
+   AC_SUBST(LIB_KFILE, "-lkfile $(LIB_KFM) $(LIB_KDEUI)")
+   AC_SUBST(LIB_KAB, "-lkab $(LIB_KIMGIO) $(LIB_KDECORE)")
+fi
+])
+
+AC_DEFUN([AC_PATH_KDE],
+[
+  AC_BASE_PATH_KDE
+  AC_ARG_ENABLE(path-check,AC_HELP_STRING([--disable-path-check],[don't try to find out, where to install]),
+  [
+  if test "$enableval" = "no";
+    then ac_use_path_checking="default"
+    else ac_use_path_checking=""
+  fi
+  ],
+  [
+  if test "$kde_qtver" = 1;
+    then ac_use_path_checking=""
+    else ac_use_path_checking="default"
+  fi
+  ]
+  )
+
+  AC_CREATE_KFSSTND($ac_use_path_checking)
+
+  AC_SUBST_KFSSTND
+  KDE_CREATE_LIBS_ALIASES
+])
+
+dnl KDE_CHECK_FUNC_EXT(<func>, [headers], [sample-use], [C prototype], [autoheader define], [call if found])
+AC_DEFUN([KDE_CHECK_FUNC_EXT],
+[
+AC_MSG_CHECKING(for $1)
+AC_CACHE_VAL(kde_cv_func_$1,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+save_CXXFLAGS="$CXXFLAGS"
+kde_safe_LIBS="$LIBS"
+LIBS="$LIBS $X_EXTRA_LIBS"
+if test "$GXX" = "yes"; then
+CXXFLAGS="$CXXFLAGS -pedantic-errors"
+fi
+AC_TRY_COMPILE([
+$2
+],
+[
+$3
+],
+kde_cv_func_$1=yes,
+kde_cv_func_$1=no)
+CXXFLAGS="$save_CXXFLAGS"
+LIBS="$kde_safe_LIBS"
+AC_LANG_RESTORE
+])
+
+AC_MSG_RESULT($kde_cv_func_$1)
+
+AC_MSG_CHECKING([if $1 needs custom prototype])
+AC_CACHE_VAL(kde_cv_proto_$1,
+[
+if test "x$kde_cv_func_$1" = xyes; then
+  kde_cv_proto_$1=no
+else
+  case "$1" in
+	setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat)
+		kde_cv_proto_$1="yes - in libkdefakes"
+		;;
+	*)
+		kde_cv_proto_$1=unknown
+		;;
+  esac
+fi
+
+if test "x$kde_cv_proto_$1" = xunknown; then
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+  kde_safe_libs=$LIBS
+  LIBS="$LIBS $X_EXTRA_LIBS"
+  AC_TRY_LINK([
+$2
+
+extern "C" $4;
+],
+[
+$3
+],
+[ kde_cv_func_$1=yes
+  kde_cv_proto_$1=yes ],
+  [kde_cv_proto_$1="$1 unavailable"]
+)
+LIBS=$kde_safe_libs
+AC_LANG_RESTORE
+fi
+])
+AC_MSG_RESULT($kde_cv_proto_$1)
+
+if test "x$kde_cv_func_$1" = xyes; then
+  AC_DEFINE(HAVE_$5, 1, [Define if you have $1])
+  $6
+fi
+if test "x$kde_cv_proto_$1" = xno; then
+  AC_DEFINE(HAVE_$5_PROTO, 1,
+  [Define if you have the $1 prototype])
+fi
+
+AH_VERBATIM([_HAVE_$5_PROTO],
+[
+#if !defined(HAVE_$5_PROTO)
+#ifdef __cplusplus
+extern "C" {
+#endif
+$4;
+#ifdef __cplusplus
+}
+#endif
+#endif
+])
+])
+
+AC_DEFUN([AC_CHECK_SETENV],
+[
+	KDE_CHECK_FUNC_EXT(setenv, [
+#include <stdlib.h>
+], 
+		[setenv("VAR", "VALUE", 1);],
+	        [int setenv (const char *, const char *, int)],
+		[SETENV])
+])
+
+AC_DEFUN([AC_CHECK_UNSETENV],
+[
+	KDE_CHECK_FUNC_EXT(unsetenv, [
+#include <stdlib.h>
+], 
+		[unsetenv("VAR");],
+	        [void unsetenv (const char *)],
+		[UNSETENV])
+])
+
+AC_DEFUN([AC_CHECK_GETDOMAINNAME],
+[
+	KDE_CHECK_FUNC_EXT(getdomainname, [
+#include <stdlib.h>
+#include <unistd.h>
+#include <netdb.h>
+], 
+		[
+char buffer[200];
+getdomainname(buffer, 200);
+], 	
+	        [#include <sys/types.h>
+		int getdomainname (char *, size_t)],
+		[GETDOMAINNAME])
+])
+
+AC_DEFUN([AC_CHECK_GETHOSTNAME],
+[
+	KDE_CHECK_FUNC_EXT(gethostname, [
+#include <stdlib.h>
+#include <unistd.h>
+], 
+		[
+char buffer[200];
+gethostname(buffer, 200);
+], 	
+	        [int gethostname (char *, unsigned int)],
+		[GETHOSTNAME])
+])
+
+AC_DEFUN([AC_CHECK_USLEEP],
+[
+	KDE_CHECK_FUNC_EXT(usleep, [
+#include <unistd.h>
+], 
+		[
+usleep(200);
+], 	
+	        [int usleep (unsigned int)],
+		[USLEEP])
+])
+
+
+AC_DEFUN([AC_CHECK_RANDOM],
+[
+	KDE_CHECK_FUNC_EXT(random, [
+#include <stdlib.h>
+], 
+		[
+random();
+], 	
+	        [long int random(void)],
+		[RANDOM])
+
+	KDE_CHECK_FUNC_EXT(srandom, [
+#include <stdlib.h>
+], 
+		[
+srandom(27);
+], 	
+	        [void srandom(unsigned int)],
+		[SRANDOM])
+
+])
+
+AC_DEFUN([AC_CHECK_INITGROUPS],
+[
+	KDE_CHECK_FUNC_EXT(initgroups, [
+#include <sys/types.h>
+#include <unistd.h>
+#include <grp.h>
+],
+	[
+char buffer[200];
+initgroups(buffer, 27);
+],
+	[int initgroups(const char *, gid_t)],
+	[INITGROUPS])
+])
+
+AC_DEFUN([AC_CHECK_MKSTEMPS],
+[
+	KDE_CHECK_FUNC_EXT(mkstemps, [
+#include <stdlib.h>
+#include <unistd.h>
+],
+	[
+mkstemps("/tmp/aaaXXXXXX", 6);
+],
+	[int mkstemps(char *, int)],
+	[MKSTEMPS])
+])
+
+AC_DEFUN([AC_CHECK_MKDTEMP],
+[
+	KDE_CHECK_FUNC_EXT(mkdtemp, [
+#include <stdlib.h>
+#include <unistd.h>
+],
+	[
+mkdtemp("/tmp/aaaXXXXXX");
+],
+	[char *mkdtemp(char *)],
+	[MKDTEMP])
+])
+
+
+AC_DEFUN([AC_CHECK_RES_INIT],
+[
+  AC_MSG_CHECKING([if res_init needs -lresolv])
+  kde_libs_safe="$LIBS"
+  LIBS="$LIBS $X_EXTRA_LIBS -lresolv"
+  AC_TRY_LINK(
+    [
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+    ],
+    [
+      res_init(); 
+    ],
+    [
+      LIBRESOLV="-lresolv"
+      AC_MSG_RESULT(yes)
+      AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function])
+    ],
+    [ AC_MSG_RESULT(no) ]
+  )
+  LIBS=$kde_libs_safe
+  AC_SUBST(LIBRESOLV)
+
+  AC_MSG_CHECKING([if res_init is available])
+  AC_TRY_COMPILE(
+    [
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+    ],
+    [
+      res_init();
+    ],
+    [
+      AC_MSG_RESULT(yes)
+      AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function])
+    ],
+    [ AC_MSG_RESULT(no) ]
+  )
+])
+
+AC_DEFUN([AC_CHECK_STRLCPY],
+[
+	KDE_CHECK_FUNC_EXT(strlcpy, [
+#include <string.h>
+],
+[ char buf[20];
+  strlcpy(buf, "KDE function test", sizeof(buf));
+],
+ 	[unsigned long strlcpy(char*, const char*, unsigned long)],
+	[STRLCPY])
+])
+
+AC_DEFUN([AC_CHECK_STRLCAT],
+[
+	KDE_CHECK_FUNC_EXT(strlcat, [
+#include <string.h>
+],
+[ char buf[20];
+  buf[0]='\0';
+  strlcat(buf, "KDE function test", sizeof(buf));
+],
+ 	[unsigned long strlcat(char*, const char*, unsigned long)],
+	[STRLCAT])
+])
+
+AC_DEFUN([AC_FIND_GIF],
+   [AC_MSG_CHECKING([for giflib])
+AC_CACHE_VAL(ac_cv_lib_gif,
+[ac_save_LIBS="$LIBS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$all_libraries -lgif -lX11 $LIBSOCKET"
+else
+LIBS="$all_libraries -lgif"
+fi
+AC_TRY_LINK(dnl
+[
+#ifdef __cplusplus
+extern "C" {
+#endif
+int GifLastError(void);
+#ifdef __cplusplus
+}
+#endif
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+],
+            [return GifLastError();],
+            eval "ac_cv_lib_gif=yes",
+            eval "ac_cv_lib_gif=no")
+LIBS="$ac_save_LIBS"
+])dnl
+if eval "test \"`echo $ac_cv_lib_gif`\" = yes"; then
+  AC_MSG_RESULT(yes)
+  AC_DEFINE_UNQUOTED(HAVE_LIBGIF, 1, [Define if you have libgif])
+else
+  AC_MSG_ERROR(You need giflib30. Please install the kdesupport package)
+fi
+])
+
+AC_DEFUN([KDE_FIND_JPEG_HELPER],
+[
+AC_MSG_CHECKING([for libjpeg$2])
+AC_CACHE_VAL(ac_cv_lib_jpeg_$1,
+[
+ac_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -ljpeg$2 -lm"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(
+[/* Override any gcc2 internal prototype to avoid an error.  */
+struct jpeg_decompress_struct;
+typedef struct jpeg_decompress_struct * j_decompress_ptr;
+typedef int size_t;
+#ifdef __cplusplus
+extern "C" {
+#endif
+    void jpeg_CreateDecompress(j_decompress_ptr cinfo,
+                                    int version, size_t structsize);
+#ifdef __cplusplus
+}
+#endif
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+],
+            [jpeg_CreateDecompress(0L, 0, 0);],
+            eval "ac_cv_lib_jpeg_$1=-ljpeg$2",
+            eval "ac_cv_lib_jpeg_$1=no")
+LIBS="$ac_save_LIBS"
+CFLAGS="$ac_save_CFLAGS"
+])
+
+if eval "test ! \"`echo $ac_cv_lib_jpeg_$1`\" = no"; then
+  LIBJPEG="$ac_cv_lib_jpeg_$1"
+  AC_MSG_RESULT($ac_cv_lib_jpeg_$1)
+else
+  AC_MSG_RESULT(no)
+  $3
+fi
+
+])
+
+AC_DEFUN([AC_FIND_JPEG],
+[
+dnl first look for libraries
+KDE_FIND_JPEG_HELPER(6b, 6b,
+   KDE_FIND_JPEG_HELPER(normal, [],
+    [
+       LIBJPEG=
+    ]
+   )
+)
+
+dnl then search the headers (can't use simply AC_TRY_xxx, as jpeglib.h
+dnl requires system dependent includes loaded before it)
+jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes"
+AC_FIND_FILE(jpeglib.h, $jpeg_incdirs, jpeg_incdir)
+test "x$jpeg_incdir" = xNO && jpeg_incdir=
+
+dnl if headers _and_ libraries are missing, this is no error, and we
+dnl continue with a warning (the user will get no jpeg support in khtml)
+dnl if only one is missing, it means a configuration error, but we still
+dnl only warn
+if test -n "$jpeg_incdir" && test -n "$LIBJPEG" ; then
+  AC_DEFINE_UNQUOTED(HAVE_LIBJPEG, 1, [Define if you have libjpeg])
+else
+  if test -n "$jpeg_incdir" || test -n "$LIBJPEG" ; then
+    AC_MSG_WARN([
+There is an installation error in jpeg support. You seem to have only one
+of either the headers _or_ the libraries installed. You may need to either
+provide correct --with-extra-... options, or the development package of
+libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/
+Disabling JPEG support.
+])
+  else
+    AC_MSG_WARN([libjpeg not found. disable JPEG support.])
+  fi
+  jpeg_incdir=
+  LIBJPEG=
+fi
+
+AC_SUBST(LIBJPEG)
+AH_VERBATIM(_AC_CHECK_JPEG,
+[/*
+ * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system
+ * headers and I'm too lazy to write a configure test as long as only
+ * unixware is related
+ */
+#ifdef _UNIXWARE
+#define HAVE_BOOLEAN
+#endif
+])
+])
+
+AC_DEFUN([KDE_CHECK_QT_JPEG],
+[
+if test -n "$LIBJPEG"; then
+AC_MSG_CHECKING([if Qt needs $LIBJPEG])
+AC_CACHE_VAL(kde_cv_qt_jpeg,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+ac_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS $LIBQT"
+LIBS=`echo $LIBS | sed "s/$LIBJPEG//"`
+ac_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(
+[#include <qapplication.h>],
+            [
+            int argc;
+            char** argv;
+            QApplication app(argc, argv);],
+            eval "kde_cv_qt_jpeg=no",
+            eval "kde_cv_qt_jpeg=yes")
+LIBS="$ac_save_LIBS"
+CXXFLAGS="$ac_save_CXXFLAGS"
+AC_LANG_RESTORE
+fi
+])
+
+if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then
+  AC_MSG_RESULT(yes)
+  LIBJPEG_QT='$(LIBJPEG)'
+else
+  AC_MSG_RESULT(no)
+  LIBJPEG_QT=
+fi
+
+])
+
+AC_DEFUN([AC_FIND_ZLIB],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_MSG_CHECKING([for libz])
+AC_CACHE_VAL(ac_cv_lib_z,
+[
+kde_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET"
+kde_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(dnl
+[
+#include<zlib.h>
+],
+[
+  char buf[42];
+  gzFile f = (gzFile) 0;
+  /* this would segfault.. but we only link, don't run */
+  (void) gzgets(f, buf, sizeof(buf));
+
+  return (zlibVersion() == ZLIB_VERSION); 
+],
+            eval "ac_cv_lib_z='-lz'",
+            eval "ac_cv_lib_z=no")
+LIBS="$kde_save_LIBS"
+CFLAGS="$kde_save_CFLAGS"
+])dnl
+if test ! "$ac_cv_lib_z" = no; then
+  AC_DEFINE_UNQUOTED(HAVE_LIBZ, 1, [Define if you have libz])
+  LIBZ="$ac_cv_lib_z"
+  AC_MSG_RESULT($ac_cv_lib_z)
+else
+  AC_MSG_ERROR(not found. 
+          Possibly configure picks up an outdated version
+          installed by XFree86. Remove it from your system.
+
+          Check your installation and look into config.log)
+  LIBZ=""
+fi
+AC_SUBST(LIBZ)
+])
+
+AC_DEFUN([KDE_TRY_TIFFLIB],
+[
+AC_MSG_CHECKING([for libtiff $1])
+
+AC_CACHE_VAL(kde_cv_libtiff_$1,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+kde_save_LIBS="$LIBS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lX11 $LIBSOCKET -lm"
+else
+LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lm"
+fi
+kde_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
+
+AC_TRY_LINK(dnl
+[
+#include<tiffio.h>
+],
+    [return (TIFFOpen( "", "r") == 0); ],
+[
+    kde_cv_libtiff_$1="-l$1 $LIBJPEG $LIBZ"
+], [
+    kde_cv_libtiff_$1=no
+])
+
+LIBS="$kde_save_LIBS"
+CXXFLAGS="$kde_save_CXXFLAGS"
+AC_LANG_RESTORE
+])
+
+if test "$kde_cv_libtiff_$1" = "no"; then
+    AC_MSG_RESULT(no)
+    LIBTIFF=""
+    $3
+else
+    LIBTIFF="$kde_cv_libtiff_$1"
+    AC_MSG_RESULT(yes)
+    AC_DEFINE_UNQUOTED(HAVE_LIBTIFF, 1, [Define if you have libtiff])
+    $2
+fi
+
+])
+
+AC_DEFUN([AC_FIND_TIFF],
+[
+AC_REQUIRE([K_PATH_X])
+AC_REQUIRE([AC_FIND_ZLIB])
+AC_REQUIRE([AC_FIND_JPEG])
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+KDE_TRY_TIFFLIB(tiff, [],
+   KDE_TRY_TIFFLIB(tiff34))
+
+AC_SUBST(LIBTIFF)
+])
+
+
+AC_DEFUN([AC_FIND_PNG],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_REQUIRE([AC_FIND_ZLIB])
+AC_MSG_CHECKING([for libpng])
+AC_CACHE_VAL(ac_cv_lib_png,
+[
+kde_save_LIBS="$LIBS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET"
+else
+LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm"
+fi
+kde_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+
+AC_TRY_LINK(dnl
+    [
+    #include<png.h>
+    ],
+    [
+    png_structp png_ptr = png_create_read_struct(  /* image ptr */
+		PNG_LIBPNG_VER_STRING, 0, 0, 0 );
+    return( png_ptr != 0 );
+    ],
+    eval "ac_cv_lib_png='-lpng $LIBZ -lm'",
+    eval "ac_cv_lib_png=no"
+)
+LIBS="$kde_save_LIBS"
+CFLAGS="$kde_save_CFLAGS"
+])dnl
+if eval "test ! \"`echo $ac_cv_lib_png`\" = no"; then
+  AC_DEFINE_UNQUOTED(HAVE_LIBPNG, 1, [Define if you have libpng])
+  LIBPNG="$ac_cv_lib_png"
+  AC_SUBST(LIBPNG)
+  AC_MSG_RESULT($ac_cv_lib_png)
+else
+  AC_MSG_RESULT(no)
+  LIBPNG=""
+  AC_SUBST(LIBPNG)
+fi
+])
+
+
+AC_DEFUN([AC_FIND_JASPER],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_REQUIRE([AC_FIND_JPEG])
+AC_MSG_CHECKING([for jasper])
+AC_CACHE_VAL(ac_cv_jasper,
+[
+kde_save_LIBS="$LIBS"
+LIBS="$LIBS $all_libraries $USER_LDFLAGS -ljasper $LIBJPEG -lm"
+kde_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+
+AC_TRY_LINK(dnl
+    [
+    #include<jasper/jasper.h>
+    ],
+    [
+    return( jas_init() );
+    ],
+    eval "ac_cv_jasper='-ljasper $LIBJPEG -lm'",
+    eval "ac_cv_jasper=no"
+)
+LIBS="$kde_save_LIBS"
+CFLAGS="$kde_save_CFLAGS"
+])dnl
+if eval "test ! \"`echo $ac_cv_jasper`\" = no"; then
+  AC_DEFINE_UNQUOTED(HAVE_JASPER, 1, [Define if you have jasper])
+  LIB_JASPER="$ac_cv_jasper"
+  AC_MSG_RESULT($ac_cv_jasper)
+else
+  AC_MSG_RESULT(no)
+  LIB_JASPER=""
+fi
+AC_SUBST(LIB_JASPER)
+])
+
+AC_DEFUN([AC_CHECK_BOOL],
+[
+  AC_DEFINE_UNQUOTED(HAVE_BOOL, 1, [You _must_ have bool])
+])
+
+AC_DEFUN([AC_CHECK_GNU_EXTENSIONS],
+[
+AC_MSG_CHECKING(if you need GNU extensions)
+AC_CACHE_VAL(ac_cv_gnu_extensions,
+[
+cat > conftest.c << EOF
+#include <features.h>
+
+#ifdef __GNU_LIBRARY__
+yes
+#endif
+EOF
+
+if (eval "$ac_cpp conftest.c") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_gnu_extensions=yes
+else
+  ac_cv_gnu_extensions=no
+fi
+])
+
+AC_MSG_RESULT($ac_cv_gnu_extensions)
+if test "$ac_cv_gnu_extensions" = "yes"; then
+  AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define if you need to use the GNU extensions])
+fi
+])
+
+AC_DEFUN([KDE_CHECK_COMPILER_FLAG],
+[
+AC_MSG_CHECKING([whether $CXX supports -$1])
+kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'`
+AC_CACHE_VAL(kde_cv_prog_cxx_$kde_cache,
+[
+  AC_LANG_SAVE
+  AC_LANG_CPLUSPLUS
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -$1"
+  AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cxx_$kde_cache=yes"], [])
+  CXXFLAGS="$save_CXXFLAGS"
+  AC_LANG_RESTORE
+])
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ AC_MSG_RESULT(yes)
+ :
+ $2
+else
+ AC_MSG_RESULT(no)
+ :
+ $3
+fi
+])
+
+dnl AC_REMOVE_FORBIDDEN removes forbidden arguments from variables
+dnl use: AC_REMOVE_FORBIDDEN(CC, [-forbid -bad-option whatever])
+dnl it's all white-space separated
+AC_DEFUN([AC_REMOVE_FORBIDDEN],
+[ __val=$$1
+  __forbid=" $2 "
+  if test -n "$__val"; then
+    __new=""
+    ac_save_IFS=$IFS
+    IFS=" 	"
+    for i in $__val; do
+      case "$__forbid" in
+        *" $i "*) AC_MSG_WARN([found forbidden $i in $1, removing it]) ;;
+	*) # Careful to not add spaces, where there were none, because otherwise
+	   # libtool gets confused, if we change e.g. CXX
+	   if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;;
+      esac
+    done
+    IFS=$ac_save_IFS
+    $1=$__new
+  fi
+])
+
+dnl AC_VALIDIFY_CXXFLAGS checks for forbidden flags the user may have given
+AC_DEFUN([AC_VALIDIFY_CXXFLAGS],
+[dnl
+if test "x$kde_use_qt_emb" != "xyes"; then
+ AC_REMOVE_FORBIDDEN(CXX, [-fno-rtti -rpath])
+ AC_REMOVE_FORBIDDEN(CXXFLAGS, [-fno-rtti -rpath])
+else
+ AC_REMOVE_FORBIDDEN(CXX, [-rpath])
+ AC_REMOVE_FORBIDDEN(CXXFLAGS, [-rpath])
+fi
+])
+
+AC_DEFUN([AC_CHECK_COMPILERS],
+[
+  AC_ARG_ENABLE(debug,
+	        AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]),
+  [
+    case $enableval in
+      yes)
+        kde_use_debug_code="yes"
+        kde_use_debug_define=no
+        ;;
+      full)
+        kde_use_debug_code="full"
+        kde_use_debug_define=no
+        ;;
+      *)
+        kde_use_debug_code="no"
+        kde_use_debug_define=yes
+        ;;
+    esac
+  ], 
+    [kde_use_debug_code="no"
+      kde_use_debug_define=no
+  ])
+
+  dnl Just for configure --help
+  AC_ARG_ENABLE(dummyoption,
+	        AC_HELP_STRING([--disable-debug],
+	  		       [disables debug output and debug symbols [default=no]]),
+		[],[])
+
+  AC_ARG_ENABLE(strict,
+		AC_HELP_STRING([--enable-strict],
+			      [compiles with strict compiler options (may not work!)]),
+   [
+    if test $enableval = "no"; then
+         kde_use_strict_options="no"
+       else
+         kde_use_strict_options="yes"
+    fi
+   ], [kde_use_strict_options="no"])
+
+  AC_ARG_ENABLE(warnings,AC_HELP_STRING([--disable-warnings],[disables compilation with -Wall and similiar]),
+   [
+    if test $enableval = "no"; then
+         kde_use_warnings="no"
+       else
+         kde_use_warnings="yes"
+    fi
+   ], [kde_use_warnings="yes"])
+
+  dnl enable warnings for debug build
+  if test "$kde_use_debug_code" != "no"; then
+    kde_use_warnings=yes
+  fi
+
+  AC_ARG_ENABLE(profile,AC_HELP_STRING([--enable-profile],[creates profiling infos [default=no]]),
+    [kde_use_profiling=$enableval],
+    [kde_use_profiling="no"]
+  )
+
+  dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS
+  CFLAGS=" $CFLAGS"
+
+  AC_PROG_CC 
+
+  AC_PROG_CPP
+
+  if test "$GCC" = "yes"; then
+    if test "$kde_use_debug_code" != "no"; then
+      if test $kde_use_debug_code = "full"; then
+        CFLAGS="-g3 -fno-inline $CFLAGS"
+      else
+        CFLAGS="-g -O2 $CFLAGS"
+      fi
+    else
+      CFLAGS="-O2 $CFLAGS"
+    fi
+  fi
+
+  if test "$kde_use_debug_define" = "yes"; then
+    CFLAGS="-DNDEBUG $CFLAGS"
+  fi
+
+
+  case "$host" in
+  *-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";;
+  *-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";;
+  esac
+
+  if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then
+     LDFLAGS=""
+  fi
+
+  CXXFLAGS=" $CXXFLAGS"
+
+  AC_PROG_CXX
+
+  if test "$GXX" = "yes" || test "$CXX" = "KCC"; then
+    if test "$kde_use_debug_code" != "no"; then
+      if test "$CXX" = "KCC"; then
+        CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS"
+      else
+        if test "$kde_use_debug_code" = "full"; then
+          CXXFLAGS="-g3 -fno-inline $CXXFLAGS"
+        else
+          CXXFLAGS="-g -O2 $CXXFLAGS"
+        fi
+      fi
+      KDE_CHECK_COMPILER_FLAG(fno-builtin,[CXXFLAGS="-fno-builtin $CXXFLAGS"])
+
+      dnl convenience compiler flags
+      KDE_CHECK_COMPILER_FLAG(Woverloaded-virtual, [WOVERLOADED_VIRTUAL="-Woverloaded-virtual"], [WOVERLOADED_VRITUAL=""])
+      AC_SUBST(WOVERLOADED_VIRTUAL)
+    else
+      if test "$CXX" = "KCC"; then
+        CXXFLAGS="+K3 $CXXFLAGS"
+      else
+        CXXFLAGS="-O2 $CXXFLAGS"
+      fi  
+    fi
+  fi
+
+  if test "$kde_use_debug_define" = "yes"; then
+    CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS"
+  fi  
+
+  if test "$kde_use_profiling" = "yes"; then
+    KDE_CHECK_COMPILER_FLAG(pg,
+    [
+      CFLAGS="-pg $CFLAGS"
+      CXXFLAGS="-pg $CXXFLAGS"
+    ])
+  fi
+
+  if test "$kde_use_warnings" = "yes"; then
+      if test "$GCC" = "yes"; then
+        case $host in
+          *-*-linux-gnu)	
+            CFLAGS="-ansi -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS"
+            CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts $CXXFLAGS"
+            KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"; CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"])
+          ;;
+        esac
+        CXXFLAGS="-Wall -W -Wpointer-arith -Wwrite-strings $CXXFLAGS"
+        KDE_CHECK_COMPILER_FLAG(Wundef,[CXXFLAGS="-Wundef $CXXFLAGS"])
+        KDE_CHECK_COMPILER_FLAG(Wno-long-long,[CXXFLAGS="-Wno-long-long $CXXFLAGS"])
+        KDE_CHECK_COMPILER_FLAG(Wnon-virtual-dtor,[CXXFLAGS="-Wnon-virtual-dtor $CXXFLAGS"])
+     fi
+  fi
+
+  if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then
+    CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS"
+  fi
+    
+  if test "$GXX" = "yes"; then
+    KDE_CHECK_COMPILER_FLAG(fno-exceptions,[CXXFLAGS="$CXXFLAGS -fno-exceptions"])
+    KDE_CHECK_COMPILER_FLAG(fno-check-new, [CXXFLAGS="$CXXFLAGS -fno-check-new"])
+    KDE_CHECK_COMPILER_FLAG(fno-common, [CXXFLAGS="$CXXFLAGS -fno-common"])
+    KDE_CHECK_COMPILER_FLAG(fexceptions, [USE_EXCEPTIONS="-fexceptions"], USE_EXCEPTIONS=	)
+  fi
+  if test "$CXX" = "KCC"; then
+    dnl unfortunately we currently cannot disable exception support in KCC
+    dnl because doing so is binary incompatible and Qt by default links with exceptions :-(
+    dnl KDE_CHECK_COMPILER_FLAG(-no_exceptions,[CXXFLAGS="$CXXFLAGS --no_exceptions"])
+    dnl KDE_CHECK_COMPILER_FLAG(-exceptions, [USE_EXCEPTIONS="--exceptions"], USE_EXCEPTIONS=	)
+
+    AC_ARG_ENABLE(pch,
+	AC_HELP_STRING([--enable-pch],
+		       [enables precompiled header support (currently only KCC) [default=no]]),
+    [
+      kde_use_pch=$enableval
+    ],[kde_use_pch=no])
+ 
+    if test "$kde_use_pch" = "yes"; then
+      dnl TODO: support --pch-dir!
+      KDE_CHECK_COMPILER_FLAG(-pch,[CXXFLAGS="$CXXFLAGS --pch"])
+      dnl the below works (but the dir must exist), but it's
+      dnl useless for a whole package.
+      dnl The are precompiled headers for each source file, so when compiling
+      dnl from scratch, it doesn't make a difference, and they take up
+      dnl around ~5Mb _per_ sourcefile.
+      dnl KDE_CHECK_COMPILER_FLAG(-pch_dir /tmp,
+      dnl   [CXXFLAGS="$CXXFLAGS --pch_dir `pwd`/pcheaders"])
+    fi
+    dnl this flag controls inlining. by default KCC inlines in optimisation mode
+    dnl all implementations that are defined inside the class {} declaration. 
+    dnl because of templates-compatibility with broken gcc compilers, this
+    dnl can cause excessive inlining. This flag limits it to a sane level
+    KDE_CHECK_COMPILER_FLAG(-inline_keyword_space_time=6,[CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"])
+    KDE_CHECK_COMPILER_FLAG(-inline_auto_space_time=2,[CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"])
+    KDE_CHECK_COMPILER_FLAG(-inline_implicit_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"])
+    KDE_CHECK_COMPILER_FLAG(-inline_generated_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"])
+    dnl Some source files are shared between multiple executables
+    dnl (or libraries) and some of those need template instantiations.
+    dnl In that case KCC needs to compile those sources with
+    dnl --one_instantiation_per_object.  To make it easy for us we compile
+    dnl _all_ objects with that flag (--one_per is a shorthand).
+    KDE_CHECK_COMPILER_FLAG(-one_per, [CXXFLAGS="$CXXFLAGS --one_per"])
+  fi
+  AC_SUBST(USE_EXCEPTIONS)
+  dnl obsolete macro - provided to keep things going
+  USE_RTTI=
+  AC_SUBST(USE_RTTI)
+
+  case "$host" in
+      *-*-irix*)  test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;;
+      *-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";;
+      *-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";;
+      *-*-solaris*) 
+        if test "$GXX" = yes; then
+          libstdcpp=`$CXX -print-file-name=libstdc++.so`
+          if test ! -f $libstdcpp; then
+             AC_MSG_ERROR([You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so])
+          fi
+        fi
+        ;;
+  esac
+
+  AC_VALIDIFY_CXXFLAGS
+
+  AC_PROG_CXXCPP
+
+  if test "$GCC" = yes; then
+     NOOPT_CFLAGS=-O0
+  fi
+  KDE_CHECK_COMPILER_FLAG(O0,[NOOPT_CXXFLAGS=-O0])
+
+  AC_SUBST(NOOPT_CXXFLAGS)
+  AC_SUBST(NOOPT_CFLAGS)
+
+  KDE_CHECK_FINAL
+  KDE_CHECK_CLOSURE
+  KDE_CHECK_NMCHECK
+
+  ifdef([AM_DEPENDENCIES], AC_REQUIRE([KDE_ADD_DEPENDENCIES]), [])
+])
+
+AC_DEFUN([KDE_ADD_DEPENDENCIES],
+[
+   [A]M_DEPENDENCIES(CC)
+   [A]M_DEPENDENCIES(CXX)
+])
+
+dnl just a wrapper to clean up configure.in
+AC_DEFUN([KDE_PROG_LIBTOOL],
+[
+AC_REQUIRE([AC_CHECK_COMPILERS])
+AC_REQUIRE([AC_ENABLE_SHARED])
+AC_REQUIRE([AC_ENABLE_STATIC])
+
+AC_REQUIRE([AC_LIBTOOL_DLOPEN])
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+AC_OBJEXT
+AC_EXEEXT
+
+AM_PROG_LIBTOOL
+AC_LIBTOOL_CXX
+
+LIBTOOL_SHELL="/bin/sh ./libtool"
+#  LIBTOOL="$LIBTOOL --silent"
+KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)"
+AC_SUBST(KDE_PLUGIN)
+
+# we patch configure quite some so we better keep that consistent for incremental runs 
+AC_SUBST(AUTOCONF,'$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure')
+])
+
+AC_DEFUN([KDE_CHECK_LIB64],
+[
+    kdelibsuff=no
+    AC_ARG_ENABLE(libsuffix,
+        AC_HELP_STRING([--enable-libsuffix],
+            [/lib directory suffix (64,32,none[=default])]),
+            kdelibsuff=$enableval)
+    # TODO: add an auto case that compiles a little C app to check
+    # where the glibc is
+    if test "$kdelibsuff" = "no"; then
+       kdelibsuff=
+    fi
+    if test -z "$kdelibsuff"; then
+        AC_MSG_RESULT([not using lib directory suffix])
+        AC_DEFINE(KDELIBSUFF, [""], Suffix for lib directories)
+    else
+        if test "$libdir" = '${exec_prefix}/lib'; then
+            libdir="$libdir${kdelibsuff}"
+            AC_SUBST([libdir], ["$libdir"])  dnl ugly hack for lib64 platforms
+        fi
+        AC_DEFINE_UNQUOTED(KDELIBSUFF, ["\"${kdelibsuff}\""], Suffix for lib directories)
+        AC_MSG_RESULT([using lib directory suffix $kdelibsuff])
+    fi
+])
+
+AC_DEFUN([KDE_CHECK_TYPES],
+[  AC_CHECK_SIZEOF(int, 4)dnl
+   AC_CHECK_SIZEOF(short)dnl
+  AC_CHECK_SIZEOF(long, 4)dnl
+  AC_CHECK_SIZEOF(char *, 4)dnl
+])dnl
+
+AC_DEFUN([KDE_DO_IT_ALL],
+[
+AC_CANONICAL_SYSTEM
+AC_ARG_PROGRAM
+AM_INIT_AUTOMAKE($1, $2)
+AM_DISABLE_LIBRARIES
+AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde})
+AC_CHECK_COMPILERS
+KDE_PROG_LIBTOOL
+AM_KDE_WITH_NLS
+AC_PATH_KDE
+])
+
+AC_DEFUN([AC_CHECK_RPATH],
+[
+AC_MSG_CHECKING(for rpath)
+AC_ARG_ENABLE(rpath,
+      AC_HELP_STRING([--disable-rpath],[do not use the rpath feature of ld]),
+      USE_RPATH=$enableval, USE_RPATH=yes)
+
+if test -z "$KDE_RPATH" && test "$USE_RPATH" = "yes"; then
+
+  KDE_RPATH="-R \$(kde_libraries)"
+
+  if test -n "$qt_libraries"; then
+    KDE_RPATH="$KDE_RPATH -R \$(qt_libraries)"
+  fi
+  dnl $x_libraries is set to /usr/lib in case
+  if test -n "$X_LDFLAGS"; then
+    X_RPATH="-R \$(x_libraries)"
+    KDE_RPATH="$KDE_RPATH $X_RPATH"
+  fi
+  if test -n "$KDE_EXTRA_RPATH"; then
+    KDE_RPATH="$KDE_RPATH \$(KDE_EXTRA_RPATH)"
+  fi
+fi
+AC_SUBST(KDE_EXTRA_RPATH)
+AC_SUBST(KDE_RPATH)
+AC_SUBST(X_RPATH)
+AC_MSG_RESULT($USE_RPATH)
+])
+
+dnl Check for the type of the third argument of getsockname
+AC_DEFUN([AC_CHECK_SOCKLEN_T], [
+  AC_MSG_CHECKING(for socklen_t)
+  AC_CACHE_VAL(ac_cv_socklen_t, [
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <sys/socket.h>
+      ],[
+socklen_t a=0;
+getsockname(0,(struct sockaddr*)0, &a);
+      ],
+      ac_cv_socklen_t=socklen_t,
+      AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <sys/socket.h>
+        ],[
+int a=0;
+getsockname(0,(struct sockaddr*)0, &a);
+        ],
+        ac_cv_socklen_t=int,
+        ac_cv_socklen_t=size_t
+      )
+    )
+    AC_LANG_RESTORE
+  ])
+
+  AC_MSG_RESULT($ac_cv_socklen_t)
+  if test "$ac_cv_socklen_t" != "socklen_t"; then
+    AC_DEFINE_UNQUOTED(socklen_t, $ac_cv_socklen_t,
+        [Define the real type of socklen_t])
+  fi
+  AC_DEFINE_UNQUOTED(ksize_t, socklen_t, [Compatibility define])
+
+])
+
+dnl This is a merge of some macros out of the gettext aclocal.m4
+dnl since we don't need anything, I took the things we need
+dnl the copyright for them is:
+dnl >
+dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+dnl This Makefile.in is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
+dnl >
+dnl for this file it is relicensed under LGPL
+
+AC_DEFUN([AM_KDE_WITH_NLS],
+  [
+    dnl If we use NLS figure out what method
+
+    AM_PATH_PROG_WITH_TEST_KDE(MSGFMT, msgfmt,
+        [test -n "`$ac_dir/$ac_word --version 2>&1 | grep 'GNU gettext'`"], msgfmt)
+    AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+     if test -z "`$GMSGFMT --version 2>&1 | grep 'GNU gettext'`"; then
+        AC_MSG_RESULT([found msgfmt program is not GNU msgfmt; ignore it])
+        GMSGFMT=":"
+      fi
+      MSGFMT=$GMSGFMT
+      AC_SUBST(GMSGFMT)
+      AC_SUBST(MSGFMT)
+
+      AM_PATH_PROG_WITH_TEST_KDE(XGETTEXT, xgettext,
+	[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+
+      dnl Test whether we really found GNU xgettext.
+      if test "$XGETTEXT" != ":"; then
+	dnl If it is no GNU xgettext we define it as : so that the
+	dnl Makefiles still can work.
+	if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+	  : ;
+	else
+	  AC_MSG_RESULT(
+	    [found xgettext programs is not GNU xgettext; ignore it])
+	  XGETTEXT=":"
+	fi
+      fi
+     AC_SUBST(XGETTEXT)
+
+  ])
+
+# Search path for a program which passes the given test.
+# Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+# serial 1
+# Stephan Kulow: I appended a _KDE against name conflicts
+
+dnl AM_PATH_PROG_WITH_TEST_KDE(VARIABLE, PROG-TO-CHECK-FOR,
+dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST_KDE],
+[# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+  /*)
+  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in ifelse([$5], , $PATH, [$5]); do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if [$3]; then
+	ac_cv_path_$1="$ac_dir/$ac_word"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+  ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test -n "[$]$1"; then
+  AC_MSG_RESULT([$]$1)
+else
+  AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
+
+
+# Check whether LC_MESSAGES is available in <locale.h>.
+# Ulrich Drepper <drepper@cygnus.com>, 1995.
+
+# serial 1
+
+AC_DEFUN([AM_LC_MESSAGES],
+  [if test $ac_cv_header_locale_h = yes; then
+    AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+      [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+    if test $am_cv_val_LC_MESSAGES = yes; then
+      AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your locale.h file contains LC_MESSAGES])
+    fi
+  fi])
+
+dnl From Jim Meyering.
+dnl FIXME: migrate into libit.
+
+AC_DEFUN([AM_FUNC_OBSTACK],
+[AC_CACHE_CHECK([for obstacks], am_cv_func_obstack,
+ [AC_TRY_LINK([#include "obstack.h"],
+	      [struct obstack *mem;obstack_free(mem,(char *) 0)],
+	      am_cv_func_obstack=yes,
+	      am_cv_func_obstack=no)])
+ if test $am_cv_func_obstack = yes; then
+   AC_DEFINE(HAVE_OBSTACK)
+ else
+   LIBOBJS="$LIBOBJS obstack.o"
+ fi
+])
+
+dnl From Jim Meyering.  Use this if you use the GNU error.[ch].
+dnl FIXME: Migrate into libit
+
+AC_DEFUN([AM_FUNC_ERROR_AT_LINE],
+[AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
+ [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
+              am_cv_lib_error_at_line=yes,
+	      am_cv_lib_error_at_line=no)])
+ if test $am_cv_lib_error_at_line = no; then
+   LIBOBJS="$LIBOBJS error.o"
+ fi
+ AC_SUBST(LIBOBJS)dnl
+])
+
+# Macro to add for using GNU gettext.
+# Ulrich Drepper <drepper@cygnus.com>, 1995.
+
+# serial 1
+# Stephan Kulow: I put a KDE in it to avoid name conflicts
+
+AC_DEFUN([AM_KDE_GNU_GETTEXT],
+  [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+   AC_REQUIRE([AC_PROG_RANLIB])dnl
+   AC_REQUIRE([AC_HEADER_STDC])dnl
+   AC_REQUIRE([AC_TYPE_OFF_T])dnl
+   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+   AC_REQUIRE([AC_FUNC_MMAP])dnl
+   AC_REQUIRE([AM_KDE_WITH_NLS])dnl
+   AC_CHECK_HEADERS([limits.h locale.h nl_types.h string.h values.h alloca.h])
+   AC_CHECK_FUNCS([getcwd munmap putenv setlocale strchr strcasecmp \
+__argz_count __argz_stringify __argz_next])
+
+   AC_MSG_CHECKING(for stpcpy)
+   AC_CACHE_VAL(kde_cv_func_stpcpy,
+   [
+   kde_safe_cxxflags=$CXXFLAGS
+   CXXFLAGS="-Werror"
+   AC_LANG_SAVE
+   AC_LANG_CPLUSPLUS
+   AC_TRY_COMPILE([
+   #include <string.h>
+   ],
+   [
+   char buffer[200];
+   stpcpy(buffer, buffer);
+   ],
+   kde_cv_func_stpcpy=yes,
+   kde_cv_func_stpcpy=no)
+   AC_LANG_RESTORE
+   CXXFLAGS=$kde_safe_cxxflags
+   ])
+   AC_MSG_RESULT($kde_cv_func_stpcpy)
+   if eval "test \"`echo $kde_cv_func_stpcpy`\" = yes"; then
+     AC_DEFINE(HAVE_STPCPY, 1, [Define if you have stpcpy])
+   fi
+
+   AM_LC_MESSAGES
+
+   if test "x$CATOBJEXT" != "x"; then
+     if test "x$ALL_LINGUAS" = "x"; then
+       LINGUAS=
+     else
+       AC_MSG_CHECKING(for catalogs to be installed)
+       NEW_LINGUAS=
+       for lang in ${LINGUAS=$ALL_LINGUAS}; do
+         case "$ALL_LINGUAS" in
+          *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
+         esac
+       done
+       LINGUAS=$NEW_LINGUAS
+       AC_MSG_RESULT($LINGUAS)
+     fi
+
+     dnl Construct list of names of catalog files to be constructed.
+     if test -n "$LINGUAS"; then
+       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+     fi
+   fi
+
+  ])
+
+AC_DEFUN([AC_HAVE_XPM],
+ [AC_REQUIRE_CPP()dnl
+  AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+ test -z "$XPM_LDFLAGS" && XPM_LDFLAGS=
+ test -z "$XPM_INCLUDE" && XPM_INCLUDE=
+
+ AC_ARG_WITH(xpm,AC_HELP_STRING([--without-xpm],[disable color pixmap XPM tests]),
+	xpm_test=$withval, xpm_test="yes")
+ if test "x$xpm_test" = xno; then
+   ac_cv_have_xpm=no
+ else
+   AC_MSG_CHECKING(for XPM)
+   AC_CACHE_VAL(ac_cv_have_xpm,
+   [
+    ac_save_ldflags="$LDFLAGS"
+    ac_save_cflags="$CFLAGS"
+    if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+      LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm -lX11 -lXext $LIBZ $LIBSOCKET"
+    else
+      LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm $LIBZ $LIBSOCKET"
+    fi
+    CFLAGS="$CFLAGS $X_INCLUDES $USER_INCLUDES"
+    test -n "$XPM_INCLUDE" && CFLAGS="-I$XPM_INCLUDE $CFLAGS"
+    AC_TRY_LINK([#include <X11/xpm.h>],[],
+	ac_cv_have_xpm="yes",ac_cv_have_xpm="no")
+    LDFLAGS="$ac_save_ldflags"
+    CFLAGS="$ac_save_cflags"
+   ])dnl
+
+  if test "$ac_cv_have_xpm" = no; then
+    AC_MSG_RESULT(no)
+    XPM_LDFLAGS=""
+    XPMINC=""
+    $2
+  else
+    AC_DEFINE(HAVE_XPM, 1, [Define if you have XPM support])
+    if test "$XPM_LDFLAGS" = ""; then
+       XPMLIB='-lXpm $(LIB_X11)'
+    else
+       XPMLIB="-L$XPM_LDFLAGS -lXpm "'$(LIB_X11)'
+    fi
+    if test "$XPM_INCLUDE" = ""; then
+       XPMINC=""
+    else
+       XPMINC="-I$XPM_INCLUDE"
+    fi
+    AC_MSG_RESULT(yes)
+    $1
+  fi
+ fi
+ AC_SUBST(XPMINC)
+ AC_SUBST(XPMLIB)
+])
+
+AC_DEFUN([AC_HAVE_DPMS],
+ [AC_REQUIRE_CPP()dnl
+  AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+ test -z "$DPMS_LDFLAGS" && DPMS_LDFLAGS=
+ test -z "$DPMS_INCLUDE" && DPMS_INCLUDE=
+ DPMS_LIB=
+
+ AC_ARG_WITH(dpms,AC_HELP_STRING([--without-dpms],[disable DPMS power saving]),
+	dpms_test=$withval, dpms_test="yes")
+ if test "x$dpms_test" = xno; then
+   ac_cv_have_dpms=no
+ else
+   AC_MSG_CHECKING(for DPMS)
+   dnl Note: ac_cv_have_dpms can be no, yes, or -lXdpms.
+   dnl 'yes' means DPMS_LIB="", '-lXdpms' means DPMS_LIB="-lXdpms".
+   AC_CACHE_VAL(ac_cv_have_dpms,
+   [
+    if test "x$kde_use_qt_emb" = "xyes" || test "x$kde_use_qt_mac" = "xyes"; then
+      AC_MSG_RESULT(no)
+      ac_cv_have_dpms="no"
+    else
+      ac_save_ldflags="$LDFLAGS"
+      ac_save_cflags="$CFLAGS"
+      ac_save_libs="$LIBS"
+      LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries -lX11 -lXext $LIBSOCKET"
+      CFLAGS="$CFLAGS $X_INCLUDES"
+      test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
+      AC_TRY_LINK([
+	  #include <X11/Xproto.h>
+	  #include <X11/X.h>
+	  #include <X11/Xlib.h>
+	  #include <X11/extensions/dpms.h>
+	  int foo_test_dpms()
+	  { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[],
+	  ac_cv_have_dpms="yes", [
+              LDFLAGS="$ac_save_ldflags"
+              CFLAGS="$ac_save_cflags"
+              LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries -lX11 -lXext $LIBSOCKET"
+              LIBS="$LIBS -lXdpms"
+              CFLAGS="$CFLAGS $X_INCLUDES"
+              test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
+              AC_TRY_LINK([
+	          #include <X11/Xproto.h>
+        	  #include <X11/X.h>
+        	  #include <X11/Xlib.h>
+        	  #include <X11/extensions/dpms.h>
+        	  int foo_test_dpms()
+        	  { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[],
+        	  [
+                  ac_cv_have_dpms="-lXdpms"
+                  ],ac_cv_have_dpms="no")
+              ])
+      LDFLAGS="$ac_save_ldflags"
+      CFLAGS="$ac_save_cflags"
+      LIBS="$ac_save_libs"
+    fi
+   ])dnl
+
+  if test "$ac_cv_have_dpms" = no; then
+    AC_MSG_RESULT(no)
+    DPMS_LDFLAGS=""
+    DPMSINC=""
+    $2
+  else
+    AC_DEFINE(HAVE_DPMS, 1, [Define if you have DPMS support])
+    if test "$ac_cv_have_dpms" = "-lXdpms"; then
+       DPMS_LIB="-lXdpms"
+    fi
+    if test "$DPMS_LDFLAGS" = ""; then
+       DPMSLIB="$DPMS_LIB "'$(LIB_X11)'
+    else
+       DPMSLIB="$DPMS_LDFLAGS $DPMS_LIB "'$(LIB_X11)'
+    fi
+    if test "$DPMS_INCLUDE" = ""; then
+       DPMSINC=""
+    else
+       DPMSINC="-I$DPMS_INCLUDE"
+    fi
+    AC_MSG_RESULT(yes)
+    $1
+  fi
+ fi
+ ac_save_cflags="$CFLAGS"
+ CFLAGS="$CFLAGS $X_INCLUDES"
+ test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
+ AH_TEMPLATE(HAVE_DPMSCAPABLE_PROTO,
+   [Define if you have the DPMSCapable prototype in <X11/extensions/dpms.h>])
+ AC_CHECK_DECL(DPMSCapable,
+   AC_DEFINE(HAVE_DPMSCAPABLE_PROTO),,
+   [#include <X11/extensions/dpms.h>])
+ AH_TEMPLATE(HAVE_DPMSINFO_PROTO,
+   [Define if you have the DPMSInfo prototype in <X11/extensions/dpms.h>])
+ AC_CHECK_DECL(DPMSInfo,
+   AC_DEFINE(HAVE_DPMSINFO_PROTO),,
+   [#include <X11/extensions/dpms.h>])
+ CFLAGS="$ac_save_cflags"
+ AC_SUBST(DPMSINC)
+ AC_SUBST(DPMSLIB)
+])
+
+AC_DEFUN([AC_HAVE_GL],
+ [AC_REQUIRE_CPP()dnl
+  AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+ test -z "$GL_LDFLAGS" && GL_LDFLAGS=
+ test -z "$GL_INCLUDE" && GL_INCLUDE=
+
+ AC_ARG_WITH(gl,AC_HELP_STRING([--without-gl],[disable 3D GL modes]),
+	gl_test=$withval, gl_test="yes")
+ if test "x$kde_use_qt_emb" = "xyes"; then
+   # GL and Qt Embedded is a no-go for now.
+   ac_cv_have_gl=no
+ elif test "x$gl_test" = xno; then
+   ac_cv_have_gl=no
+ else
+   AC_MSG_CHECKING(for GL)
+   AC_CACHE_VAL(ac_cv_have_gl,
+   [
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    ac_save_ldflags="$LDFLAGS"
+    ac_save_cxxflags="$CXXFLAGS"
+    LDFLAGS="$LDFLAGS $GL_LDFLAGS $X_LDFLAGS $all_libraries -lMesaGL -lMesaGLU"
+    test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LDFLAGS="$LDFLAGS -lX11"
+    LDFLAGS="$LDFLAGS $LIB_XEXT -lm $LIBSOCKET"
+    CXXFLAGS="$CFLAGS $X_INCLUDES"
+    test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS"
+    AC_TRY_LINK([#include <GL/gl.h>
+#include <GL/glu.h>
+], [],
+	ac_cv_have_gl="mesa", ac_cv_have_gl="no")
+    if test "x$ac_cv_have_gl" = "xno"; then
+      LDFLAGS="$ac_save_ldflags $X_LDFLAGS $GL_LDFLAGS $all_libraries -lGLU -lGL"
+      test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LDFLAGS="$LDFLAGS -lX11"
+      LDFLAGS="$LDFLAGS $LIB_XEXT -lm $LIBSOCKET"
+      CXXFLAGS="$ac_save_cflags $X_INCLUDES"
+      test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS"
+      AC_TRY_LINK([#include <GL/gl.h>
+#include <GL/glu.h>
+], [],
+	  ac_cv_have_gl="yes", ac_cv_have_gl="no")
+    fi
+    AC_LANG_RESTORE
+    LDFLAGS="$ac_save_ldflags"
+    CXXFLAGS="$ac_save_cxxflags"
+   ])dnl
+
+  if test "$ac_cv_have_gl" = "no"; then
+    AC_MSG_RESULT(no)
+    GL_LDFLAGS=""
+    GLINC=""
+    $2
+  else
+    AC_DEFINE(HAVE_GL, 1, [Defines if you have GL (Mesa, OpenGL, ...)])
+    if test "$GL_LDFLAGS" = ""; then
+       if test "$ac_cv_have_gl" = "mesa"; then
+          GLLIB='-lMesaGLU -lMesaGL $(LIB_X11)'
+       else
+          GLLIB='-lGLU -lGL $(LIB_X11)'
+       fi
+    else
+       if test "$ac_cv_have_gl" = "mesa"; then
+          GLLIB="$GL_LDFLAGS -lMesaGLU -lMesaGL "'$(LIB_X11)'
+       else
+          GLLIB="$GL_LDFLAGS -lGLU -lGL "'$(LIB_X11)'
+       fi
+    fi
+    if test "$GL_INCLUDE" = ""; then
+       GLINC=""
+    else
+       GLINC="-I$GL_INCLUDE"
+    fi
+    AC_MSG_RESULT($ac_cv_have_gl)
+    $1
+  fi
+ fi
+ AC_SUBST(GLINC)
+ AC_SUBST(GLLIB)
+])
+
+
+ dnl shadow password and PAM magic - maintained by ossi@kde.org
+
+AC_DEFUN([KDE_PAM], [
+  AC_REQUIRE([KDE_CHECK_LIBDL])
+
+  want_pam=
+  AC_ARG_WITH(pam,
+    AC_HELP_STRING([--with-pam[=ARG]],[enable support for PAM: ARG=[yes|no|service name]]),
+    [ if test "x$withval" = "xyes"; then
+        want_pam=yes
+        pam_service=kde
+      elif test "x$withval" = "xno"; then
+        want_pam=no
+      else
+        want_pam=yes
+        pam_service=$withval
+      fi
+    ], [ pam_service=kde ])
+
+  use_pam=
+  PAMLIBS=
+  if test "x$want_pam" != xno; then
+    AC_CHECK_LIB(pam, pam_start, [
+      AC_CHECK_HEADER(security/pam_appl.h,
+        [ pam_header=security/pam_appl.h ],
+        [ AC_CHECK_HEADER(pam/pam_appl.h,
+            [ pam_header=pam/pam_appl.h ],
+            [
+    AC_MSG_WARN([PAM detected, but no headers found!
+Make sure you have the necessary development packages installed.])
+            ]
+          )
+        ]
+      )
+    ], , $LIBDL)
+    if test -z "$pam_header"; then
+      if test "x$want_pam" = xyes; then
+        AC_MSG_ERROR([--with-pam was specified, but cannot compile with PAM!])
+      fi
+    else
+      AC_DEFINE(HAVE_PAM, 1, [Defines if you have PAM (Pluggable Authentication Modules)])
+      PAMLIBS="$PAM_MISC_LIB -lpam $LIBDL"
+      use_pam=yes
+
+      dnl darwin claims to be something special
+      if test "$pam_header" = "pam/pam_appl.h"; then
+        AC_DEFINE(HAVE_PAM_PAM_APPL_H, 1, [Define if your PAM headers are in pam/ instead of security/])
+      fi
+
+      dnl test whether struct pam_message is const (Linux) or not (Sun)
+      AC_MSG_CHECKING(for const pam_message)
+      AC_EGREP_HEADER([struct pam_message], $pam_header,
+        [ AC_EGREP_HEADER([const struct pam_message], $pam_header,
+                          [AC_MSG_RESULT([const: Linux-type PAM])],
+                          [AC_MSG_RESULT([nonconst: Sun-type PAM])
+                          AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM support takes non-const arguments (Solaris)])]
+                          )],
+        [AC_MSG_RESULT([not found - assume const, Linux-type PAM])])
+    fi
+  fi
+
+  AC_SUBST(PAMLIBS)
+])
+
+dnl DEF_PAM_SERVICE(arg name, full name, define name)
+AC_DEFUN([DEF_PAM_SERVICE], [
+  AC_ARG_WITH($1-pam,
+    AC_HELP_STRING([--with-$1-pam=[val]],[override PAM service from --with-pam for $2]),
+    [ if test "x$use_pam" = xyes; then
+        $3_PAM_SERVICE=$withval
+      else
+        AC_MSG_ERROR([Cannot use use --with-$1-pam, as no PAM was detected.
+You may want to enforce it by using --with-pam.])
+      fi
+    ], 
+    [ if test "x$use_pam" = xyes; then
+        $3_PAM_SERVICE="$pam_service"
+      fi
+    ])
+    if test -n "$$3_PAM_SERVICE"; then
+      AC_MSG_RESULT([The PAM service used by $2 will be $$3_PAM_SERVICE])
+      AC_DEFINE_UNQUOTED($3_PAM_SERVICE, "$$3_PAM_SERVICE", [The PAM service to be used by $2])
+    fi
+    AC_SUBST($3_PAM_SERVICE)
+])
+
+AC_DEFUN([KDE_SHADOWPASSWD], [
+  AC_REQUIRE([KDE_PAM])
+
+  AC_CHECK_LIB(shadow, getspent,
+    [ LIBSHADOW="-lshadow"
+      ac_use_shadow=yes
+    ],
+    [ dnl for UnixWare
+      AC_CHECK_LIB(gen, getspent, 
+        [ LIBGEN="-lgen"
+          ac_use_shadow=yes
+        ], 
+        [ AC_CHECK_FUNC(getspent, 
+            [ ac_use_shadow=yes ],
+            [ ac_use_shadow=no ])
+	])
+    ])
+  AC_SUBST(LIBSHADOW)
+  AC_SUBST(LIBGEN)
+  
+  AC_MSG_CHECKING([for shadow passwords])
+
+  AC_ARG_WITH(shadow,
+    AC_HELP_STRING([--with-shadow],[If you want shadow password support]),
+    [ if test "x$withval" != "xno"; then
+        use_shadow=yes
+      else
+        use_shadow=no
+      fi
+    ], [
+      use_shadow="$ac_use_shadow"
+    ])
+
+  if test "x$use_shadow" = xyes; then
+    AC_MSG_RESULT(yes)
+    AC_DEFINE(HAVE_SHADOW, 1, [Define if you use shadow passwords])
+  else
+    AC_MSG_RESULT(no)
+    LIBSHADOW=
+    LIBGEN=
+  fi
+
+  dnl finally make the relevant binaries setuid root, if we have shadow passwds.
+  dnl this still applies, if we could use it indirectly through pam.
+  if test "x$use_shadow" = xyes || 
+     ( test "x$use_pam" = xyes && test "x$ac_use_shadow" = xyes ); then
+      case $host in
+      *-*-freebsd* | *-*-netbsd* | *-*-openbsd*)
+	SETUIDFLAGS="-m 4755 -o root";;
+      *)
+	SETUIDFLAGS="-m 4755";;
+      esac
+  fi
+  AC_SUBST(SETUIDFLAGS)
+
+])
+
+AC_DEFUN([KDE_PASSWDLIBS], [
+  AC_REQUIRE([KDE_MISC_TESTS]) dnl for LIBCRYPT
+  AC_REQUIRE([KDE_PAM])
+  AC_REQUIRE([KDE_SHADOWPASSWD])
+
+  if test "x$use_pam" = "xyes"; then 
+    PASSWDLIBS="$PAMLIBS"
+  else
+    PASSWDLIBS="$LIBCRYPT $LIBSHADOW $LIBGEN"
+  fi
+
+  dnl FreeBSD uses a shadow-like setup, where /etc/passwd holds the users, but
+  dnl /etc/master.passwd holds the actual passwords.  /etc/master.passwd requires
+  dnl root to read, so kcheckpass needs to be root (even when using pam, since pam
+  dnl may need to read /etc/master.passwd).
+  case $host in
+  *-*-freebsd*)
+    SETUIDFLAGS="-m 4755 -o root"
+    ;;
+  *)
+    ;;
+  esac
+
+  AC_SUBST(PASSWDLIBS)
+])
+
+AC_DEFUN([KDE_CHECK_LIBDL],
+[
+AC_CHECK_LIB(dl, dlopen, [
+LIBDL="-ldl"
+ac_cv_have_dlfcn=yes
+])
+
+AC_CHECK_LIB(dld, shl_unload, [
+LIBDL="-ldld"
+ac_cv_have_shload=yes
+])
+
+AC_SUBST(LIBDL)
+])
+
+AC_DEFUN([KDE_CHECK_DLOPEN],
+[
+KDE_CHECK_LIBDL
+AC_CHECK_HEADERS(dlfcn.h dl.h)
+if test "$ac_cv_header_dlfcn_h" = "no"; then
+  ac_cv_have_dlfcn=no
+fi
+
+if test "$ac_cv_header_dl_h" = "no"; then
+  ac_cv_have_shload=no
+fi
+
+dnl XXX why change enable_dlopen? its already set by autoconf's AC_ARG_ENABLE
+dnl (MM)
+AC_ARG_ENABLE(dlopen,
+AC_HELP_STRING([--disable-dlopen],[link statically [default=no]]),
+enable_dlopen=$enableval,
+enable_dlopen=yes)
+
+# override the user's opinion, if we know it better ;)
+if test "$ac_cv_have_dlfcn" = "no" && test "$ac_cv_have_shload" = "no"; then
+  enable_dlopen=no
+fi
+
+if test "$ac_cv_have_dlfcn" = "yes"; then
+  AC_DEFINE_UNQUOTED(HAVE_DLFCN, 1, [Define if you have dlfcn])
+fi
+
+if test "$ac_cv_have_shload" = "yes"; then
+  AC_DEFINE_UNQUOTED(HAVE_SHLOAD, 1, [Define if you have shload])
+fi
+
+if test "$enable_dlopen" = no ; then
+  test -n "$1" && eval $1
+else
+  test -n "$2" && eval $2
+fi
+
+])
+
+AC_DEFUN([KDE_CHECK_DYNAMIC_LOADING],
+[
+KDE_CHECK_DLOPEN(libtool_enable_shared=yes, libtool_enable_static=no)
+KDE_PROG_LIBTOOL
+AC_MSG_CHECKING([dynamic loading])
+eval "`egrep '^build_libtool_libs=' libtool`"
+if test "$build_libtool_libs" = "yes" && test "$enable_dlopen" = "yes"; then
+  dynamic_loading=yes
+  AC_DEFINE_UNQUOTED(HAVE_DYNAMIC_LOADING)
+else
+  dynamic_loading=no
+fi
+AC_MSG_RESULT($dynamic_loading)
+if test "$dynamic_loading" = "yes"; then
+  $1
+else
+  $2
+fi
+])
+
+AC_DEFUN([KDE_ADD_INCLUDES],
+[
+if test -z "$1"; then
+  test_include="Pix.h"
+else
+  test_include="$1"
+fi
+
+AC_MSG_CHECKING([for libg++ ($test_include)])
+
+AC_CACHE_VAL(kde_cv_libgpp_includes,
+[
+kde_cv_libgpp_includes=no
+
+   for ac_dir in               \
+                               \
+     /usr/include/g++          \
+     /usr/include              \
+     /usr/unsupported/include  \
+     /opt/include              \
+     $extra_include            \
+     ; \
+   do
+     if test -r "$ac_dir/$test_include"; then
+       kde_cv_libgpp_includes=$ac_dir
+       break
+     fi
+   done
+])
+
+AC_MSG_RESULT($kde_cv_libgpp_includes)
+if test "$kde_cv_libgpp_includes" != "no"; then
+  all_includes="-I$kde_cv_libgpp_includes $all_includes $USER_INCLUDES"
+fi
+])
+])
+
+AC_DEFUN([KDE_CHECK_LIBPTHREAD],
+[
+  LIBPTHREAD=""
+
+  if test -n "$PTHREAD_LIBS"; then
+    PTHREAD_LIBS_save="$PTHREAD_LIBS"
+    PTHREAD_LIBS=`echo "$PTHREAD_LIBS_save" | sed -e 's,^-l,,g'`
+    KDE_CHECK_LIB($PTHREAD_LIBS, pthread_create, [LIBPTHREAD="$PTHREAD_LIBS_save"] )
+    PTHREAD_LIBS="$PTHREAD_LIBS_save"
+  fi
+
+  if test -z "$LIBPTHREAD"; then
+    AC_CHECK_LIB(pthread, pthread_create, [LIBPTHREAD="-lpthread"] )
+  fi
+
+  AC_SUBST(LIBPTHREAD)
+])
+
+AC_DEFUN([KDE_CHECK_PTHREAD_OPTION],
+[
+      USE_THREADS=""
+      if test -z "$LIBPTHREAD"; then
+        KDE_CHECK_COMPILER_FLAG(pthread, [USE_THREADS="-D_THREAD_SAFE -pthread"])
+      fi
+
+    AH_VERBATIM(__svr_define, [
+#if defined(__SVR4) && !defined(__svr4__)
+#define __svr4__ 1
+#endif
+])
+    case $host_os in
+ 	solaris*)
+		KDE_CHECK_COMPILER_FLAG(mt, [USE_THREADS="-mt"])
+                CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4"
+    		;;
+        freebsd*)
+                CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE $PTHREAD_CFLAGS"
+                ;;
+        aix*)
+                CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE"
+                LIBPTHREAD="$LIBPTHREAD -lc_r"
+                ;;
+        linux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT"
+                if test "$CXX" = "KCC"; then
+                  CXXFLAGS="$CXXFLAGS --thread_safe"
+		  NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS --thread_safe"
+                fi
+                ;;
+	*)
+		;;
+    esac
+    AC_SUBST(USE_THREADS)
+    AC_SUBST(LIBPTHREAD)
+])
+
+AC_DEFUN([KDE_CHECK_THREADING],
+[
+  AC_REQUIRE([KDE_CHECK_LIBPTHREAD])
+  AC_REQUIRE([KDE_CHECK_PTHREAD_OPTION])
+  dnl default is yes if libpthread is found and no if no libpthread is available
+  if test -z "$LIBPTHREAD"; then
+    if test -z "$USE_THREADS"; then
+      kde_check_threading_default=no
+    else
+      kde_check_threading_default=yes
+    fi
+  else
+    kde_check_threading_default=yes
+  fi
+  AC_ARG_ENABLE(threading,AC_HELP_STRING([--disable-threading],[disables threading even if libpthread found]),
+   kde_use_threading=$enableval, kde_use_threading=$kde_check_threading_default)
+  if test "x$kde_use_threading" = "xyes"; then
+    AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have a working libpthread (will enable threaded code)])
+  fi
+])
+
+AC_DEFUN([KDE_TRY_LINK_PYTHON],
+[
+if test "$kde_python_link_found" = no; then
+
+if test "$1" = normal; then
+  AC_MSG_CHECKING(if a Python application links)
+else
+  AC_MSG_CHECKING(if Python depends on $2)
+fi
+
+AC_CACHE_VAL(kde_cv_try_link_python_$1,
+[
+kde_save_cflags="$CFLAGS"
+CFLAGS="$CFLAGS $PYTHONINC"
+kde_save_libs="$LIBS"
+LIBS="$LIBS $LIBPYTHON $2 $LIBDL $LIBSOCKET"
+kde_save_ldflags="$LDFLAGS"
+LDFLAGS="$LDFLAGS $PYTHONLIB"
+
+AC_TRY_LINK(
+[
+#include <Python.h>
+],[
+	PySys_SetArgv(1, 0);
+],
+	[kde_cv_try_link_python_$1=yes],
+	[kde_cv_try_link_python_$1=no]
+)
+CFLAGS="$kde_save_cflags"
+LIBS="$kde_save_libs"
+LDFLAGS="$kde_save_ldflags"
+])
+
+if test "$kde_cv_try_link_python_$1" = "yes"; then
+  AC_MSG_RESULT(yes)
+  kde_python_link_found=yes
+  if test ! "$1" = normal; then
+    LIBPYTHON="$LIBPYTHON $2"
+  fi
+  $3
+else
+  AC_MSG_RESULT(no)
+  $4
+fi
+
+fi
+
+])
+
+AC_DEFUN([KDE_CHECK_PYTHON_DIR],
+[
+AC_MSG_CHECKING([for Python directory])
+ 
+AC_CACHE_VAL(kde_cv_pythondir,
+[
+  if test -z "$PYTHONDIR"; then
+    kde_cv_pythondir=/usr/local
+  else
+    kde_cv_pythondir="$PYTHONDIR"
+  fi
+])
+ 
+AC_ARG_WITH(pythondir,
+AC_HELP_STRING([--with-pythondir=pythondir],[use python installed in pythondir]),
+[
+  ac_python_dir=$withval
+], ac_python_dir=$kde_cv_pythondir
+)
+ 
+AC_MSG_RESULT($ac_python_dir)
+])
+
+AC_DEFUN([KDE_CHECK_PYTHON_INTERN],
+[
+AC_REQUIRE([KDE_CHECK_LIBDL])
+AC_REQUIRE([KDE_CHECK_LIBPTHREAD])
+AC_REQUIRE([KDE_CHECK_PYTHON_DIR])
+
+if test -z "$1"; then
+  version="1.5"
+else
+  version="$1"
+fi
+
+AC_MSG_CHECKING([for Python$version])
+
+python_incdirs="$ac_python_dir/include /usr/include /usr/local/include/ $kde_extra_includes"
+AC_FIND_FILE(Python.h, $python_incdirs, python_incdir)
+if test ! -r $python_incdir/Python.h; then
+  AC_FIND_FILE(python$version/Python.h, $python_incdirs, python_incdir)
+  python_incdir=$python_incdir/python$version
+  if test ! -r $python_incdir/Python.h; then
+    python_incdir=no
+  fi
+fi
+
+PYTHONINC=-I$python_incdir
+
+python_libdirs="$ac_python_dir/lib$kdelibsuff /usr/lib$kdelibsuff /usr/local /usr/lib$kdelibsuff $kde_extra_libs"
+AC_FIND_FILE(libpython$version.so, $python_libdirs, python_libdir)
+if test ! -r $python_libdir/libpython$version.so; then
+  AC_FIND_FILE(libpython$version.a, $python_libdirs, python_libdir)
+  if test ! -r $python_libdir/libpython$version.a; then
+    AC_FIND_FILE(python$version/config/libpython$version.a, $python_libdirs, python_libdir)
+    python_libdir=$python_libdir/python$version/config
+    if test ! -r $python_libdir/libpython$version.a; then
+      python_libdir=no
+    fi
+  fi
+fi
+
+PYTHONLIB=-L$python_libdir
+kde_orig_LIBPYTHON=$LIBPYTHON
+if test -z "$LIBPYTHON"; then
+  LIBPYTHON=-lpython$version
+fi
+
+AC_FIND_FILE(python$version/copy.py, $python_libdirs, python_moddir)
+python_moddir=$python_moddir/python$version
+if test ! -r $python_moddir/copy.py; then
+  python_moddir=no
+fi
+
+PYTHONMODDIR=$python_moddir
+
+AC_MSG_RESULT(header $python_incdir library $python_libdir modules $python_moddir)
+
+if test x$python_incdir = xno ||  test x$python_libdir = xno ||  test x$python_moddir = xno; then
+   LIBPYTHON=$kde_orig_LIBPYTHON
+   test "x$PYTHONLIB" = "x-Lno" && PYTHONLIB=""
+   test "x$PYTHONINC" = "x-Ino" && PYTHONINC=""
+   $2
+else 
+  dnl Note: this test is very weak
+  kde_python_link_found=no
+  KDE_TRY_LINK_PYTHON(normal)
+  KDE_TRY_LINK_PYTHON(m, -lm)
+  KDE_TRY_LINK_PYTHON(pthread, $LIBPTHREAD)
+  KDE_TRY_LINK_PYTHON(tcl, -ltcl)
+  KDE_TRY_LINK_PYTHON(db2, -ldb2)
+  KDE_TRY_LINK_PYTHON(m_and_thread, [$LIBPTHREAD -lm])
+  KDE_TRY_LINK_PYTHON(m_and_thread_and_util, [$LIBPTHREAD -lm -lutil])
+  KDE_TRY_LINK_PYTHON(m_and_thread_and_db3, [$LIBPTHREAD -lm -ldb-3 -lutil])
+  KDE_TRY_LINK_PYTHON(pthread_and_db3, [$LIBPTHREAD -ldb-3])
+  KDE_TRY_LINK_PYTHON(m_and_thread_and_db, [$LIBPTHREAD -lm -ldb -ltermcap -lutil])
+  KDE_TRY_LINK_PYTHON(pthread_and_dl, [$LIBPTHREAD $LIBDL -lutil -lreadline -lncurses -lm])
+  KDE_TRY_LINK_PYTHON(pthread_and_panel_curses, [$LIBPTHREAD $LIBDL -lm -lpanel -lcurses])
+  KDE_TRY_LINK_PYTHON(m_and_thread_and_db_special, [$LIBPTHREAD -lm -ldb -lutil], [],
+	[AC_MSG_WARN([it seems, Python depends on another library.
+    Please set LIBPYTHON to '-lpython$version -lotherlib' before calling configure to fix this
+    and contact the authors to let them know about this problem])
+	])
+
+  LIBPYTHON="$LIBPYTHON $LIBDL $LIBSOCKET"
+  AC_SUBST(PYTHONINC)
+  AC_SUBST(PYTHONLIB)
+  AC_SUBST(LIBPYTHON)
+  AC_SUBST(PYTHONMODDIR)
+  AC_DEFINE(HAVE_PYTHON, 1, [Define if you have the development files for python])
+fi
+
+])
+
+
+AC_DEFUN([KDE_CHECK_PYTHON],
+[
+  KDE_CHECK_PYTHON_INTERN("2.3", 
+   [KDE_CHECK_PYTHON_INTERN("2.2", 
+     [KDE_CHECK_PYTHON_INTERN("2.1", 
+       [KDE_CHECK_PYTHON_INTERN("2.0", 
+         [KDE_CHECK_PYTHON_INTERN($1, $2) ])
+       ])
+     ])
+   ])
+])
+
+AC_DEFUN([KDE_CHECK_STL],
+[
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    ac_save_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="`echo $CXXFLAGS | sed s/-fno-exceptions//`"
+
+    AC_MSG_CHECKING([if C++ programs can be compiled])
+    AC_CACHE_VAL(kde_cv_stl_works,
+    [
+      AC_TRY_COMPILE([
+#include <string>
+using namespace std;
+],[
+  string astring="Hallo Welt.";
+  astring.erase(0, 6); // now astring is "Welt"
+  return 0;
+], kde_cv_stl_works=yes,
+   kde_cv_stl_works=no)
+])
+
+   AC_MSG_RESULT($kde_cv_stl_works)
+
+   if test "$kde_cv_stl_works" = "yes"; then
+     # back compatible
+	 AC_DEFINE_UNQUOTED(HAVE_SGI_STL, 1, [Define if you have a STL implementation by SGI])
+   else
+	 AC_MSG_ERROR([Your Installation isn't able to compile simple C++ programs.
+Check config.log for details - if you're using a Linux distribution you might miss
+a package named similiar to libstd++-dev.])
+   fi
+
+   CXXFLAGS="$ac_save_CXXFLAGS"
+   AC_LANG_RESTORE
+])
+
+AC_DEFUN([AC_FIND_QIMGIO],
+   [AC_REQUIRE([AC_FIND_JPEG])
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_MSG_CHECKING([for qimgio])
+AC_CACHE_VAL(ac_cv_lib_qimgio,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+ac_save_LIBS="$LIBS"
+ac_save_CXXFLAGS="$CXXFLAGS"
+LIBS="$all_libraries -lqimgio -lpng -lz $LIBJPEG $LIBQT"
+CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
+AC_TRY_RUN(dnl
+[
+#include <qimageio.h>
+#include <qstring.h>
+int main() {
+		QString t = "hallo";
+		t.fill('t');
+		qInitImageIO();
+}
+],
+            ac_cv_lib_qimgio=yes,
+            ac_cv_lib_qimgio=no,
+	    ac_cv_lib_qimgio=no)
+LIBS="$ac_save_LIBS"
+CXXFLAGS="$ac_save_CXXFLAGS"
+AC_LANG_RESTORE
+])dnl
+if eval "test \"`echo $ac_cv_lib_qimgio`\" = yes"; then
+  LIBQIMGIO="-lqimgio -lpng -lz $LIBJPEG"
+  AC_MSG_RESULT(yes)
+  AC_DEFINE_UNQUOTED(HAVE_QIMGIO, 1, [Define if you have the Qt extension qimgio available])
+  AC_SUBST(LIBQIMGIO)
+else
+  AC_MSG_RESULT(not found)
+fi
+])
+
+AC_DEFUN([AM_DISABLE_LIBRARIES],
+[
+    AC_PROVIDE([AM_ENABLE_STATIC])
+    AC_PROVIDE([AM_ENABLE_SHARED])
+    enable_static=no
+    enable_shared=yes
+])
+
+
+AC_DEFUN([AC_CHECK_UTMP_FILE],
+[
+    AC_MSG_CHECKING([for utmp file])
+
+    AC_CACHE_VAL(kde_cv_utmp_file,
+    [
+    kde_cv_utmp_file=no
+
+    for ac_file in    \
+                      \
+	/var/run/utmp \
+	/var/adm/utmp \
+	/etc/utmp     \
+     ; \
+    do
+     if test -r "$ac_file"; then
+       kde_cv_utmp_file=$ac_file
+       break
+     fi
+    done
+    ])
+
+    if test "$kde_cv_utmp_file" != "no"; then
+	AC_DEFINE_UNQUOTED(UTMP, "$kde_cv_utmp_file", [Define the file for utmp entries])
+	$1
+	AC_MSG_RESULT($kde_cv_utmp_file)
+    else
+    	$2
+	AC_MSG_RESULT([non found])
+    fi
+])
+
+
+AC_DEFUN([KDE_CREATE_SUBDIRSLIST],
+[
+
+DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin"
+
+if test ! -s $srcdir/subdirs; then
+  dnl Note: Makefile.common creates subdirs, so this is just a fallback
+  TOPSUBDIRS=""
+  files=`cd $srcdir && ls -1`
+  dirs=`for i in $files; do if test -d $i; then echo $i; fi; done`
+  for i in $dirs; do
+    echo $i >> $srcdir/subdirs
+  done
+fi
+
+ac_topsubdirs=
+if test -s $srcdir/inst-apps; then
+  ac_topsubdirs="`cat $srcdir/inst-apps`"
+elif test -s $srcdir/subdirs; then
+  ac_topsubdirs="`cat $srcdir/subdirs`"
+fi
+
+for i in $ac_topsubdirs; do
+  AC_MSG_CHECKING([if $i should be compiled])
+  if test -d $srcdir/$i; then
+    install_it="yes"
+    for j in $DO_NOT_COMPILE; do
+      if test $i = $j; then
+        install_it="no"
+      fi
+    done
+  else
+    install_it="no"
+  fi
+  AC_MSG_RESULT($install_it)
+  vari=`echo $i | sed -e 's,[[-+.]],_,g'`
+  if test $install_it = "yes"; then
+    TOPSUBDIRS="$TOPSUBDIRS $i"
+    eval "$vari""_SUBDIR_included=yes"
+  else
+    eval "$vari""_SUBDIR_included=no"
+  fi
+done
+
+AC_SUBST(TOPSUBDIRS)
+])
+
+AC_DEFUN([KDE_CHECK_NAMESPACES],
+[
+AC_MSG_CHECKING(whether C++ compiler supports namespaces)
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+AC_TRY_COMPILE([
+],
+[
+namespace Foo {
+  extern int i;
+  namespace Bar {
+    extern int i;
+  }
+}
+
+int Foo::i = 0;
+int Foo::Bar::i = 1;
+],[
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(HAVE_NAMESPACES)
+], [
+AC_MSG_RESULT(no)
+])
+AC_LANG_RESTORE
+])
+
+dnl ------------------------------------------------------------------------
+dnl Check for S_ISSOCK macro. Doesn't exist on Unix SCO. faure@kde.org
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_CHECK_S_ISSOCK],
+[
+AC_MSG_CHECKING(for S_ISSOCK)
+AC_CACHE_VAL(ac_cv_have_s_issock,
+[
+AC_TRY_LINK(
+[
+#include <sys/stat.h>
+],
+[
+struct stat buff;
+int b = S_ISSOCK( buff.st_mode );
+],
+ac_cv_have_s_issock=yes,
+ac_cv_have_s_issock=no)
+])
+AC_MSG_RESULT($ac_cv_have_s_issock)
+if test "$ac_cv_have_s_issock" = "yes"; then
+  AC_DEFINE_UNQUOTED(HAVE_S_ISSOCK, 1, [Define if sys/stat.h declares S_ISSOCK.])
+fi
+
+AH_VERBATIM(_ISSOCK,
+[
+#ifndef HAVE_S_ISSOCK
+#define HAVE_S_ISSOCK
+#define S_ISSOCK(mode) (1==0)
+#endif
+])
+
+])
+
+dnl ------------------------------------------------------------------------
+dnl Check for MAXPATHLEN macro, defines KDEMAXPATHLEN. faure@kde.org
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_CHECK_KDEMAXPATHLEN],
+[
+AC_MSG_CHECKING(for MAXPATHLEN)
+AC_CACHE_VAL(ac_cv_maxpathlen,
+[
+cat > conftest.$ac_ext <<EOF
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+#include <stdio.h>
+#include <sys/param.h>
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 1024
+#endif
+
+KDE_HELLO MAXPATHLEN
+
+EOF
+
+ac_try="$ac_cpp conftest.$ac_ext 2>/dev/null | grep '^KDE_HELLO' >conftest.out"
+
+if AC_TRY_EVAL(ac_try) && test -s conftest.out; then
+    ac_cv_maxpathlen=`sed 's#KDE_HELLO ##' conftest.out`
+else
+    ac_cv_maxpathlen=1024
+fi
+
+rm conftest.*
+
+])
+AC_MSG_RESULT($ac_cv_maxpathlen)
+AC_DEFINE_UNQUOTED(KDEMAXPATHLEN,$ac_cv_maxpathlen, [Define a safe value for MAXPATHLEN] )
+])
+
+AC_DEFUN([KDE_CHECK_HEADER],
+[
+   AC_LANG_SAVE
+   kde_safe_cppflags=$CPPFLAGS
+   CPPFLAGS="$CPPFLAGS $all_includes"
+   AC_LANG_CPLUSPLUS
+   AC_CHECK_HEADER([$1], [$2], [$3], [$4])
+   CPPFLAGS=$kde_safe_cppflags
+   AC_LANG_RESTORE
+])
+
+AC_DEFUN([KDE_CHECK_HEADERS],
+[
+   AH_CHECK_HEADERS([$1])
+   AC_LANG_SAVE
+   kde_safe_cppflags=$CPPFLAGS
+   CPPFLAGS="$CPPFLAGS $all_includes"
+   AC_LANG_CPLUSPLUS
+   AC_CHECK_HEADERS([$1], [$2], [$3], [$4])
+   CPPFLAGS=$kde_safe_cppflags
+   AC_LANG_RESTORE
+])
+
+AC_DEFUN([KDE_FAST_CONFIGURE],
+[
+  dnl makes configure fast (needs perl)
+  AC_ARG_ENABLE(fast-perl, AC_HELP_STRING([--disable-fast-perl],[disable fast Makefile generation (needs perl)]),
+      with_fast_perl=$enableval, with_fast_perl=yes)
+])
+
+AC_DEFUN([KDE_CONF_FILES],
+[
+  val=
+  if test -f $srcdir/configure.files ; then
+    val=`sed -e 's%^%\$(top_srcdir)/%' $srcdir/configure.files`
+  fi
+  CONF_FILES=
+  if test -n "$val" ; then
+    for i in $val ; do
+      CONF_FILES="$CONF_FILES $i"
+    done
+  fi
+  AC_SUBST(CONF_FILES)
+])dnl
+
+AC_DEFUN([KDE_SET_PREFIX],
+[
+  unset CDPATH
+  dnl make $KDEDIR the default for the installation
+  AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde})
+
+  if test "x$prefix" = "xNONE"; then
+    prefix=$ac_default_prefix
+    ac_configure_args="$ac_configure_args --prefix=$prefix"
+  fi
+  # And delete superfluous '/' to make compares easier
+  prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+  exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+  KDE_FAST_CONFIGURE
+  KDE_CONF_FILES
+])
+
+pushdef([AC_PROG_INSTALL],
+[
+  dnl our own version, testing for a -p flag
+  popdef([AC_PROG_INSTALL])
+  dnl as AC_PROG_INSTALL works as it works we first have
+  dnl to save if the user didn't specify INSTALL, as the
+  dnl autoconf one overwrites INSTALL and we have no chance to find
+  dnl out afterwards
+  test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL
+  test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM
+  test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT
+  AC_PROG_INSTALL
+
+  if test -z "$kde_save_INSTALL_given" ; then
+    # OK, user hasn't given any INSTALL, autoconf found one for us
+    # now we test, if it supports the -p flag
+    AC_MSG_CHECKING(for -p flag to install)
+    rm -f confinst.$$.* > /dev/null 2>&1
+    echo "Testtest" > confinst.$$.orig
+    ac_res=no
+    if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then
+      if test -f confinst.$$.new ; then
+        # OK, -p seems to do no harm to install
+	INSTALL="${INSTALL} -p"
+	ac_res=yes
+      fi
+    fi
+    rm -f confinst.$$.*
+    AC_MSG_RESULT($ac_res)
+  fi
+  dnl the following tries to resolve some signs and wonders coming up
+  dnl with different autoconf/automake versions
+  dnl e.g.:
+  dnl  *automake 1.4 install-strip sets A_M_INSTALL_PROGRAM_FLAGS to -s
+  dnl   and has INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(A_M_INSTALL_PROGRAM_FLAGS)
+  dnl   it header-vars.am, so there the actual INSTALL_PROGRAM gets the -s
+  dnl  *automake 1.4a (and above) use INSTALL_STRIP_FLAG and only has
+  dnl   INSTALL_PROGRAM = @INSTALL_PROGRAM@ there, but changes the
+  dnl   install-@DIR@PROGRAMS targets to explicitly use that flag
+  dnl  *autoconf 2.13 is dumb, and thinks it can use INSTALL_PROGRAM as
+  dnl   INSTALL_SCRIPT, which breaks with automake <= 1.4
+  dnl  *autoconf >2.13 (since 10.Apr 1999) has not that failure
+  dnl  *sometimes KDE does not use the install-@DIR@PROGRAM targets from
+  dnl   automake (due to broken Makefile.am or whatever) to install programs,
+  dnl   and so does not see the -s flag in automake > 1.4
+  dnl to clean up that mess we:
+  dnl  +set INSTALL_PROGRAM to use INSTALL_STRIP_FLAG
+  dnl   which cleans KDE's program with automake > 1.4;
+  dnl  +set INSTALL_SCRIPT to only use INSTALL, to clean up autoconf's problems
+  dnl   with automake<=1.4
+  dnl  note that dues to this sometimes two '-s' flags are used (if KDE
+  dnl   properly uses install-@DIR@PROGRAMS, but I don't care
+  dnl
+  dnl And to all this comes, that I even can't write in comments variable
+  dnl  names used by automake, because it is so stupid to think I wanted to
+  dnl  _use_ them, therefor I have written A_M_... instead of AM_
+  dnl hmm, I wanted to say something ... ahh yes: Arghhh.
+
+  if test -z "$kde_save_INSTALL_PROGRAM_given" ; then
+    INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)'
+  fi
+  if test -z "$kde_save_INSTALL_SCRIPT_given" ; then
+    INSTALL_SCRIPT='${INSTALL}'
+  fi
+])dnl
+
+AC_DEFUN([KDE_LANG_CPLUSPLUS],
+[AC_LANG_CPLUSPLUS
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
+pushdef([AC_LANG_CPLUSPLUS], [popdef([AC_LANG_CPLUSPLUS]) KDE_LANG_CPLUSPLUS])
+])
+
+pushdef([AC_LANG_CPLUSPLUS],
+[popdef([AC_LANG_CPLUSPLUS])
+KDE_LANG_CPLUSPLUS
+])
+
+AC_DEFUN([KDE_CHECK_LONG_LONG],
+[
+AC_MSG_CHECKING(for long long)
+AC_CACHE_VAL(kde_cv_c_long_long,
+[
+  AC_LANG_SAVE
+  AC_LANG_CPLUSPLUS
+  AC_TRY_LINK([], [
+  long long foo = 0;
+  foo = foo+1;
+  ],
+  kde_cv_c_long_long=yes, kde_cv_c_long_long=no)
+  AC_LANG_RESTORE
+])
+AC_MSG_RESULT($kde_cv_c_long_long)
+if test "$kde_cv_c_long_long" = yes; then
+   AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have long long as datatype])
+fi
+])
+
+AC_DEFUN([KDE_CHECK_LIB],
+[
+     kde_save_LDFLAGS="$LDFLAGS"
+     dnl AC_CHECK_LIB modifies LIBS, so save it here
+     kde_save_LIBS="$LIBS"
+     LDFLAGS="$LDFLAGS $all_libraries"
+     case $host_os in
+      aix*) LDFLAGS="-brtl $LDFLAGS"
+	test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS"
+	;;
+     esac
+     AC_CHECK_LIB($1, $2, $3, $4, $5)
+     LDFLAGS="$kde_save_LDFLAGS"
+     LIBS="$kde_save_LIBS"
+])
+
+AC_DEFUN([KDE_JAVA_PREFIX],
+[
+	dir=`dirname "$1"`
+	base=`basename "$1"`
+	list=`ls -1 $dir 2> /dev/null`
+	for entry in $list; do 
+		if test -d $dir/$entry/bin; then
+			case $entry in
+			   $base)
+				javadirs="$javadirs $dir/$entry/bin"
+				;;
+			esac
+		elif test -d $dir/$entry/jre/bin; then
+			case $entry in
+			   $base)
+				javadirs="$javadirs $dir/$entry/jre/bin"
+				;;
+			esac
+		fi
+	done
+])
+
+dnl KDE_CHEC_JAVA_DIR(onlyjre)
+AC_DEFUN([KDE_CHECK_JAVA_DIR],
+[
+
+AC_ARG_WITH(java,
+AC_HELP_STRING([--with-java=javadir],[use java installed in javadir, --without-java disables]),
+[  ac_java_dir=$withval
+], ac_java_dir=""
+)
+
+AC_MSG_CHECKING([for Java])
+
+dnl at this point ac_java_dir is either a dir, 'no' to disable, or '' to say look in $PATH
+if test "x$ac_java_dir" = "xno"; then
+   kde_java_bindir=no
+   kde_java_includedir=no
+   kde_java_libjvmdir=no
+   kde_java_libgcjdir=no
+   kde_java_libhpidir=no
+else
+  if test "x$ac_java_dir" = "x"; then
+     
+     
+      dnl No option set -> collect list of candidate paths
+      if test -n "$JAVA_HOME"; then
+        KDE_JAVA_PREFIX($JAVA_HOME)
+      fi
+      KDE_JAVA_PREFIX(/usr/j2se)
+      KDE_JAVA_PREFIX(/usr/lib/j2se)
+      KDE_JAVA_PREFIX(/usr/j*dk*)
+      KDE_JAVA_PREFIX(/usr/lib/j*dk*)
+      KDE_JAVA_PREFIX(/opt/j*sdk*)
+      KDE_JAVA_PREFIX(/usr/lib/java*)
+      KDE_JAVA_PREFIX(/usr/java*)
+      KDE_JAVA_PREFIX(/usr/java/j*dk*)
+      KDE_JAVA_PREFIX(/usr/java/j*re*)
+      KDE_JAVA_PREFIX(/usr/lib/SunJava2*)
+      KDE_JAVA_PREFIX(/usr/lib/SunJava*)
+      KDE_JAVA_PREFIX(/usr/lib/IBMJava2*)
+      KDE_JAVA_PREFIX(/usr/lib/IBMJava*)
+      KDE_JAVA_PREFIX(/opt/java*)
+
+      kde_cv_path="NONE"
+      kde_save_IFS=$IFS
+      IFS=':'
+      for dir in $PATH; do
+	  if test -d "$dir"; then
+	      javadirs="$javadirs $dir"
+	  fi
+      done
+      IFS=$kde_save_IFS
+      jredirs=
+
+      dnl Now javadirs contains a list of paths that exist, all ending with bin/
+      for dir in $javadirs; do
+          dnl Check for the java executable
+	  if test -x "$dir/java"; then
+	      dnl And also check for a libjvm.so somewhere under there
+	      dnl Since we have to go to the parent dir, /usr/bin is excluded, /usr is too big.
+              if test "$dir" != "/usr/bin"; then
+                  libjvmdir=`find $dir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
+		  if test ! -f $libjvmdir/libjvm.so; then continue; fi
+		  jredirs="$jredirs $dir"
+	      fi
+	  fi
+      done
+
+      dnl Now jredirs contains a reduced list, of paths where both java and ../**/libjvm.so was found
+      JAVAC=
+      JAVA=
+      kde_java_bindir=no
+      for dir in $jredirs; do
+	  JAVA="$dir/java"
+	  kde_java_bindir=$dir
+	  if test -x "$dir/javac"; then
+		JAVAC="$dir/javac"
+                break
+	  fi
+      done
+
+      if test -n "$JAVAC"; then
+          dnl this substitution might not work - well, we test for jni.h below
+          kde_java_includedir=`echo $JAVAC | sed -e 's,bin/javac$,include/,'`
+      else
+          kde_java_includedir=no
+      fi
+  else
+    dnl config option set
+    kde_java_bindir=$ac_java_dir/bin
+    if test -x $ac_java_dir/bin/java && test ! -x $ac_java_dir/bin/javac; then
+	kde_java_includedir=no
+    else
+        kde_java_includedir=$ac_java_dir/include
+    fi
+  fi
+fi
+
+dnl At this point kde_java_bindir and kde_java_includedir are either set or "no"
+if test "x$kde_java_bindir" != "xno"; then
+
+  dnl Look for libjvm.so
+  kde_java_libjvmdir=`find $kde_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
+  dnl Look for libgcj.so
+  kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1`
+  dnl Look for libhpi.so and avoid green threads
+  kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1`
+
+  dnl Now check everything's fine under there
+  dnl the include dir is our flag for having the JDK
+  if test -d "$kde_java_includedir"; then
+    if test ! -x "$kde_java_bindir/javac"; then
+      AC_MSG_ERROR([javac not found under $kde_java_bindir - it seems you passed a wrong --with-java.])
+    fi
+    if test ! -x "$kde_java_bindir/javah"; then
+      AC_MSG_ERROR([javah not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
+    fi
+    if test ! -x "$kde_java_bindir/jar"; then
+      AC_MSG_ERROR([jar not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
+    fi
+    if test ! -r "$kde_java_includedir/jni.h"; then
+      AC_MSG_ERROR([jni.h not found under $kde_java_includedir. Use --with-java or --without-java.])
+    fi
+
+    jni_includes="-I$kde_java_includedir"
+    dnl Strange thing, jni.h requires jni_md.h which is under genunix here..
+    dnl and under linux here.. 
+    
+    dnl not needed for gcj
+
+    if test "x$kde_java_libgcjdir" = "x"; then 
+      test -d "$kde_java_includedir/linux" && jni_includes="$jni_includes -I$kde_java_includedir/linux"
+      test -d "$kde_java_includedir/solaris" && jni_includes="$jni_includes -I$kde_java_includedir/solaris"
+      test -d "$kde_java_includedir/genunix" && jni_includes="$jni_includes -I$kde_java_includedir/genunix"
+    fi
+
+  else
+    JAVAC=
+    jni_includes=
+  fi
+
+  if test "x$kde_java_libgcjdir" = "x"; then 
+     if test ! -r "$kde_java_libjvmdir/libjvm.so"; then
+        AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.])
+     fi 
+  else
+     if test ! -r "$kde_java_libgcjdir/libgcj.so"; then
+        AC_MSG_ERROR([libgcj.so not found under $kde_java_libgcjdir. Use --without-java.])
+     fi 
+  fi
+
+  if test ! -x "$kde_java_bindir/java"; then
+      AC_MSG_ERROR([java not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
+  fi
+
+  dnl not needed for gcj compile
+
+  if test "x$kde_java_libgcjdir" = "x"; then 
+      if test ! -r "$kde_java_libhpidir/libhpi.so"; then
+        AC_MSG_ERROR([libhpi.so not found under $kde_java_libhpidir. Use --without-java.])
+      fi
+  fi
+
+  if test -n "$jni_includes"; then
+    dnl Check for JNI version
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    ac_cxxflags_safe="$CXXFLAGS"
+    CXXFLAGS="$CXXFLAGS $all_includes $jni_includes"
+
+    AC_TRY_COMPILE([
+  #include <jni.h>
+	      ],
+	      [
+  #ifndef JNI_VERSION_1_2
+  Syntax Error
+  #endif
+	      ],[ kde_jni_works=yes ],
+	      [ kde_jni_works=no ])
+
+    if test $kde_jni_works = no; then
+      AC_MSG_ERROR([Incorrect version of $kde_java_includedir/jni.h.
+		    You need to have Java Development Kit (JDK) version 1.2. 
+
+		    Use --with-java to specify another location.
+		    Use --without-java to configure without java support.
+		    Or download a newer JDK and try again. 
+		    See e.g. http://java.sun.com/products/jdk/1.2 ])
+    fi
+
+    CXXFLAGS="$ac_cxxflags_safe"    
+    AC_LANG_RESTORE
+
+    dnl All tests ok, inform and subst the variables
+
+    JAVAC=$kde_java_bindir/javac
+    JAVAH=$kde_java_bindir/javah
+    JAR=$kde_java_bindir/jar
+    AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
+    if test "x$kde_java_libgcjdir" = "x"; then 
+      JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi"
+    else
+      JVMLIBS="-L$kde_java_libgcjdir -lgcj"
+    fi
+    AC_MSG_RESULT([java JDK in $kde_java_bindir])
+
+  else
+      AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
+      AC_MSG_RESULT([java JRE in $kde_java_bindir])
+  fi
+elif test -d "/Library/Java/Home"; then
+  kde_java_bindir="/Library/Java/Home/bin"
+  jni_includes="-I/Library/Java/Home/include"
+
+  JAVAC=$kde_java_bindir/javac
+  JAVAH=$kde_java_bindir/javah
+  JAR=$kde_java_bindir/jar
+  JVMLIBS="-Xlinker -framework -Xlinker JavaVM"
+
+  AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
+  AC_MSG_RESULT([Apple Java Framework])
+else
+  AC_MSG_RESULT([none found])
+fi
+
+AC_SUBST(JAVAC)
+AC_SUBST(JAVAH)
+AC_SUBST(JAR)
+AC_SUBST(JVMLIBS)
+AC_SUBST(jni_includes)
+
+# for backward compat
+kde_cv_java_includedir=$kde_java_includedir
+kde_cv_java_bindir=$kde_java_bindir
+])
+
+dnl this is a redefinition of autoconf 2.5x's AC_FOREACH.
+dnl When the argument list becomes big, as in KDE for AC_OUTPUT in
+dnl big packages, m4_foreach is dog-slow.  So use our own version of
+dnl it.  (matz@kde.org)
+m4_define([mm_foreach],
+[m4_pushdef([$1])_mm_foreach($@)m4_popdef([$1])])
+m4_define([mm_car], [[$1]])
+m4_define([mm_car2], [[$@]])
+m4_define([_mm_foreach],
+[m4_if(m4_quote($2), [], [],
+       [m4_define([$1], mm_car($2))$3[]_mm_foreach([$1],
+                                                   mm_car2(m4_shift($2)),
+                                                   [$3])])])
+m4_define([AC_FOREACH],
+[mm_foreach([$1], m4_split(m4_normalize([$2])), [$3])])
+
+AC_DEFUN([KDE_NEED_FLEX],
+[
+kde_libs_safe=$LIBS
+LIBS="$LIBS $USER_LDFLAGS"
+AM_PROG_LEX
+LIBS=$kde_libs_safe
+if test -z "$LEXLIB"; then
+    AC_MSG_ERROR([You need to have flex installed.])
+fi
+AC_SUBST(LEXLIB)
+])
+
+AC_DEFUN([AC_PATH_QTOPIA],
+[
+  dnl TODO: use AC_CACHE_VAL
+
+  if test -z "$1"; then
+    qtopia_minver_maj=1
+    qtopia_minver_min=5
+    qtopia_minver_pat=0
+  else
+    qtopia_minver_maj=`echo "$1" | sed -e "s/^\(.*\)\..*\..*$/\1/"`
+    qtopia_minver_min=`echo "$1" | sed -e "s/^.*\.\(.*\)\..*$/\1/"`
+    qtopia_minver_pat=`echo "$1" | sed -e "s/^.*\..*\.\(.*\)$/\1/"`
+  fi
+
+  qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat"
+  qtopia_minverstr="$qtopia_minver_maj.$qtopia_minver_min.$qtopia_minver_pat"
+
+  AC_REQUIRE([AC_PATH_QT])
+
+  AC_MSG_CHECKING([for Qtopia])
+
+  LIB_QTOPIA="-lqpe"
+  AC_SUBST(LIB_QTOPIA)
+
+  kde_qtopia_dirs="$QPEDIR /opt/Qtopia"
+
+  ac_qtopia_incdir=NO
+
+  AC_ARG_WITH(qtopia-dir,
+              AC_HELP_STRING([--with-qtopia-dir=DIR],[where the root of Qtopia is installed]),
+              [  ac_qtopia_incdir="$withval"/include] ) 
+  
+  qtopia_incdirs=""
+  for dir in $kde_qtopia_dirs; do
+    qtopia_incdirs="$qtopia_incdirs $dir/include"
+  done
+
+  if test ! "$ac_qtopia_incdir" = "NO"; then
+    qtopia_incdirs="$ac_qtopia_incdir $qtopia_incdirs"
+  fi
+
+  qtopia_incdir=""
+  AC_FIND_FILE(qpe/qpeapplication.h, $qtopia_incdirs, qtopia_incdir)
+  ac_qtopia_incdir="$qtopia_incdir"
+
+  if test -z "$qtopia_incdir"; then
+    AC_MSG_ERROR([Cannot find Qtopia headers. Please check your installation.])
+  fi
+
+  qtopia_ver_maj=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION "\(.*\)\..*\..*".*,\1,p'`;
+  qtopia_ver_min=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\.\(.*\)\..*".*,\1,p'`;
+  qtopia_ver_pat=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\..*\.\(.*\)".*,\1,p'`;
+
+  qtopia_ver="$qtopia_ver_maj$qtopia_ver_min$qtopia_ver_pat"
+  qtopia_verstr="$qtopia_ver_maj.$qtopia_ver_min.$qtopia_ver_pat"
+  if test "$qtopia_ver" -lt "$qtopia_minver"; then
+    AC_MSG_ERROR([found Qtopia version $qtopia_verstr but version $qtopia_minverstr
+is required.])
+  fi
+
+  AC_LANG_SAVE
+  AC_LANG_CPLUSPLUS
+
+  ac_cxxflags_safe="$CXXFLAGS"
+  ac_ldflags_safe="$LDFLAGS"
+  ac_libs_safe="$LIBS"
+
+  CXXFLAGS="$CXXFLAGS -I$qtopia_incdir $all_includes"
+  LDFLAGS="$LDFLAGS $QT_LDFLAGS $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
+  LIBS="$LIBS $LIB_QTOPIA $LIBQT"
+
+  cat > conftest.$ac_ext <<EOF
+#include "confdefs.h"
+#include <qpe/qpeapplication.h>
+#include <qpe/version.h>
+
+int main( int argc, char **argv )
+{
+    QPEApplication app( argc, argv );
+    return 0;
+}
+EOF
+
+  if AC_TRY_EVAL(ac_link) && test -s conftest; then
+    rm -f conftest*
+  else
+    rm -f conftest*
+    AC_MSG_ERROR([Cannot link small Qtopia Application. For more details look at
+the end of config.log])
+  fi
+
+  CXXFLAGS="$ac_cxxflags_safe"
+  LDFLAGS="$ac_ldflags_safe"
+  LIBS="$ac_libs_safe"
+
+  AC_LANG_RESTORE
+
+  QTOPIA_INCLUDES="-I$qtopia_incdir"
+  AC_SUBST(QTOPIA_INCLUDES)
+
+  AC_MSG_RESULT([found version $qtopia_verstr with headers at $qtopia_incdir])
+])
+
+
+AC_DEFUN([KDE_INIT_DOXYGEN],
+[
+AC_MSG_CHECKING([for Qt docs])
+kde_qtdir=
+if test "${with_qt_dir+set}" = set; then
+  kde_qtdir="$with_qt_dir"
+fi
+
+AC_FIND_FILE(qsql.html, [ $kde_qtdir/doc/html $QTDIR/doc/html /usr/share/doc/packages/qt3/html /usr/lib/qt/doc /usr/lib/qt3/doc /usr/lib/qt3/doc/html /usr/doc/qt3/html /usr/doc/qt3 /usr/share/doc/qt3-doc /usr/share/qt3/doc/html /usr/X11R6/share/doc/qt/html ], QTDOCDIR)
+AC_MSG_RESULT($QTDOCDIR)
+
+AC_SUBST(QTDOCDIR)
+
+KDE_FIND_PATH(dot, DOT, [], [])
+if test -n "$DOT"; then
+  KDE_HAVE_DOT="YES"
+else
+  KDE_HAVE_DOT="NO"
+fi
+AC_SUBST(KDE_HAVE_DOT)
+KDE_FIND_PATH(doxygen, DOXYGEN, [], [])
+AC_SUBST(DOXYGEN)
+
+DOXYGEN_PROJECT_NAME="$1"
+DOXYGEN_PROJECT_NUMBER="$2"
+AC_SUBST(DOXYGEN_PROJECT_NAME)
+AC_SUBST(DOXYGEN_PROJECT_NUMBER)
+
+KDE_HAS_DOXYGEN=no
+if test -n "$DOXYGEN" && test -x "$DOXYGEN" && test -f $QTDOCDIR/qsql.html; then
+  KDE_HAS_DOXYGEN=yes
+fi
+AC_SUBST(KDE_HAS_DOXYGEN)
+
+])
+
+
+AC_DEFUN([AC_FIND_BZIP2],
+[
+AC_MSG_CHECKING([for bzDecompress in libbz2])
+AC_CACHE_VAL(ac_cv_lib_bzip2,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+kde_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -lbz2 $LIBSOCKET"
+kde_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(dnl
+[
+#define BZ_NO_STDIO
+#include<bzlib.h>
+],
+            [ bz_stream s; (void) bzDecompress(&s); ],
+            eval "ac_cv_lib_bzip2='-lbz2'",
+            eval "ac_cv_lib_bzip2=no")
+LIBS="$kde_save_LIBS"
+CXXFLAGS="$kde_save_CXXFLAGS"
+AC_LANG_RESTORE
+])dnl
+AC_MSG_RESULT($ac_cv_lib_bzip2)
+
+if test ! "$ac_cv_lib_bzip2" = no; then
+  BZIP2DIR=bzip2
+
+  LIBBZ2="$ac_cv_lib_bzip2"
+  AC_SUBST(LIBBZ2)
+
+else
+
+   cxx_shared_flag=
+   ld_shared_flag=
+   KDE_CHECK_COMPILER_FLAG(shared, [
+	ld_shared_flag="-shared"
+   ])
+   KDE_CHECK_COMPILER_FLAG(fPIC, [
+        cxx_shared_flag="-fPIC"
+   ])
+
+   AC_MSG_CHECKING([for BZ2_bzDecompress in (shared) libbz2])
+   AC_CACHE_VAL(ac_cv_lib_bzip2_prefix,
+   [
+   AC_LANG_SAVE
+   AC_LANG_CPLUSPLUS
+   kde_save_LIBS="$LIBS"
+   LIBS="$all_libraries $USER_LDFLAGS $ld_shared_flag -lbz2 $LIBSOCKET"
+   kde_save_CXXFLAGS="$CXXFLAGS"
+   CXXFLAGS="$CFLAGS $cxx_shared_flag $all_includes $USER_INCLUDES"
+
+   AC_TRY_LINK(dnl
+   [
+   #define BZ_NO_STDIO
+   #include<bzlib.h>
+   ],
+               [ bz_stream s; (void) BZ2_bzDecompress(&s); ],
+               eval "ac_cv_lib_bzip2_prefix='-lbz2'",
+               eval "ac_cv_lib_bzip2_prefix=no")
+   LIBS="$kde_save_LIBS"
+   CXXFLAGS="$kde_save_CXXFLAGS"
+   AC_LANG_RESTORE
+   ])dnl
+
+   AC_MSG_RESULT($ac_cv_lib_bzip2_prefix)
+   
+   if test ! "$ac_cv_lib_bzip2_prefix" = no; then
+     BZIP2DIR=bzip2
+    
+     LIBBZ2="$ac_cv_lib_bzip2_prefix"
+     AC_SUBST(LIBBZ2)
+
+     AC_DEFINE(NEED_BZ2_PREFIX, 1, [Define if the libbz2 functions need the BZ2_ prefix])
+   dnl else, we just ignore this
+   fi
+
+fi
+AM_CONDITIONAL(include_BZIP2, test -n "$BZIP2DIR")
+])
+
+dnl ------------------------------------------------------------------------
+dnl Try to find the SSL headers and libraries.
+dnl $(SSL_LDFLAGS) will be -Lsslliblocation (if needed)
+dnl and $(SSL_INCLUDES) will be -Isslhdrlocation (if needed)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([KDE_CHECK_SSL],
+[
+LIBSSL="-lssl -lcrypto"
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+ac_ssl_includes=NO ac_ssl_libraries=NO
+ssl_libraries=""
+ssl_includes=""
+AC_ARG_WITH(ssl-dir,
+    AC_HELP_STRING([--with-ssl-dir=DIR],[where the root of OpenSSL is installed]),
+    [  ac_ssl_includes="$withval"/include
+       ac_ssl_libraries="$withval"/lib$kdelibsuff
+    ])
+
+want_ssl=yes
+AC_ARG_WITH(ssl,
+    AC_HELP_STRING([--without-ssl],[disable SSL checks]),
+    [want_ssl=$withval])
+
+if test $want_ssl = yes; then
+
+AC_MSG_CHECKING(for OpenSSL)
+
+AC_CACHE_VAL(ac_cv_have_ssl,
+[#try to guess OpenSSL locations
+  
+  ssl_incdirs="/usr/include /usr/local/include /usr/ssl/include /usr/local/ssl/include $prefix/include $kde_extra_includes"
+  ssl_incdirs="$ac_ssl_includes $ssl_incdirs"
+  AC_FIND_FILE(openssl/ssl.h, $ssl_incdirs, ssl_incdir)
+  ac_ssl_includes="$ssl_incdir"
+
+  ssl_libdirs="/usr/lib$kdelibsuff /usr/local/lib$kdelibsuff /usr/ssl/lib$kdelibsuff /usr/local/ssl/lib$kdelibsuff $libdir $prefix/lib$kdelibsuff $exec_prefix/lib$kdelibsuff $kde_extra_libs"
+  if test ! "$ac_ssl_libraries" = "NO"; then
+    ssl_libdirs="$ac_ssl_libraries $ssl_libdirs"
+  fi
+
+  test=NONE
+  ssl_libdir=NONE
+  for dir in $ssl_libdirs; do
+    try="ls -1 $dir/libssl*"
+    if test=`eval $try 2> /dev/null`; then ssl_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi
+  done
+
+  ac_ssl_libraries="$ssl_libdir"
+
+  ac_ldflags_safe="$LDFLAGS"
+  ac_libs_safe="$LIBS"
+
+  LDFLAGS="$LDFLAGS -L$ssl_libdir $all_libraries"
+  LIBS="$LIBS $LIBSSL -lRSAglue -lrsaref"
+
+  AC_TRY_LINK(,void RSAPrivateEncrypt(void);RSAPrivateEncrypt();,
+  ac_ssl_rsaref="yes"
+  ,
+  ac_ssl_rsaref="no"
+  )
+
+  LDFLAGS="$ac_ldflags_safe"
+  LIBS="$ac_libs_safe"
+
+  if test "$ac_ssl_includes" = NO || test "$ac_ssl_libraries" = NO; then
+    have_ssl=no
+  else
+    have_ssl=yes;
+  fi
+
+  ])
+
+  eval "$ac_cv_have_ssl"
+
+  AC_MSG_RESULT([libraries $ac_ssl_libraries, headers $ac_ssl_includes])
+
+  AC_MSG_CHECKING([whether OpenSSL uses rsaref])
+  AC_MSG_RESULT($ac_ssl_rsaref)
+
+  AC_MSG_CHECKING([for easter eggs])
+  AC_MSG_RESULT([none found])
+
+else
+  have_ssl=no
+fi
+
+if test "$have_ssl" = yes; then
+  AC_MSG_CHECKING(for OpenSSL version)
+  dnl Check for SSL version
+  AC_CACHE_VAL(ac_cv_ssl_version,
+  [
+
+    cat >conftest.$ac_ext <<EOF
+#include <openssl/opensslv.h>
+#include <stdio.h>
+    int main() {
+ 
+#ifndef OPENSSL_VERSION_NUMBER
+      printf("ssl_version=\\"error\\"\n");
+#else
+      if (OPENSSL_VERSION_NUMBER < 0x00906000)
+        printf("ssl_version=\\"old\\"\n");
+      else
+        printf("ssl_version=\\"ok\\"\n");
+#endif
+     return (0);
+    }
+EOF
+
+    ac_save_CPPFLAGS=$CPPFLAGS
+    if test "$ac_ssl_includes" != "/usr/include"; then
+        CPPFLAGS="$CPPFLAGS -I$ac_ssl_includes"
+    fi
+
+    if AC_TRY_EVAL(ac_link); then 
+
+      if eval `./conftest 2>&5`; then
+        if test $ssl_version = error; then
+          AC_MSG_ERROR([$ssl_incdir/openssl/opensslv.h doesn't define OPENSSL_VERSION_NUMBER !])
+        else
+          if test $ssl_version = old; then
+            AC_MSG_WARN([OpenSSL version too old. Upgrade to 0.9.6 at least, see http://www.openssl.org. SSL support disabled.])
+            have_ssl=no
+          fi
+        fi
+        ac_cv_ssl_version="ssl_version=$ssl_version"
+      else
+        AC_MSG_ERROR([Your system couldn't run a small SSL test program.
+        Check config.log, and if you can't figure it out, send a mail to 
+        David Faure <faure@kde.org>, attaching your config.log])
+      fi
+
+    else
+      AC_MSG_ERROR([Your system couldn't link a small SSL test program.
+      Check config.log, and if you can't figure it out, send a mail to 
+      David Faure <faure@kde.org>, attaching your config.log])
+    fi 
+    CPPFLAGS=$ac_save_CPPFLAGS
+
+  ])
+
+  eval "$ac_cv_ssl_version"
+  AC_MSG_RESULT($ssl_version)
+fi
+
+if test "$have_ssl" != yes; then
+  LIBSSL="";
+else
+  AC_DEFINE(HAVE_SSL, 1, [If we are going to use OpenSSL])
+  ac_cv_have_ssl="have_ssl=yes \
+    ac_ssl_includes=$ac_ssl_includes ac_ssl_libraries=$ac_ssl_libraries ac_ssl_rsaref=$ac_ssl_rsaref"
+  
+  
+  ssl_libraries="$ac_ssl_libraries"
+  ssl_includes="$ac_ssl_includes"
+
+  if test "$ac_ssl_rsaref" = yes; then
+    LIBSSL="-lssl -lcrypto -lRSAglue -lrsaref" 
+  fi
+
+  if test $ssl_version = "old"; then
+    AC_DEFINE(HAVE_OLD_SSL_API, 1, [Define if you have OpenSSL < 0.9.6])
+  fi
+fi
+
+SSL_INCLUDES=
+
+if test "$ssl_includes" = "/usr/include"; then
+  if test -f /usr/kerberos/include/krb5.h; then
+	SSL_INCLUDES="-I/usr/kerberos/include"
+  fi
+elif test  "$ssl_includes" != "/usr/local/include" && test -n "$ssl_includes"; then
+  SSL_INCLUDES="-I$ssl_includes"
+fi
+
+if test "$ssl_libraries" = "/usr/lib" || test "$ssl_libraries" = "/usr/local/lib" || test -z "$ssl_libraries" || test "$ssl_libraries" = "NONE"; then
+ SSL_LDFLAGS=""
+else
+ SSL_LDFLAGS="-L$ssl_libraries -R$ssl_libraries"
+fi
+
+AC_SUBST(SSL_INCLUDES)
+AC_SUBST(SSL_LDFLAGS)
+AC_SUBST(LIBSSL)
+])
+
+AC_DEFUN([KDE_CHECK_STRLCPY],
+[
+  AC_REQUIRE([AC_CHECK_STRLCAT])
+  AC_REQUIRE([AC_CHECK_STRLCPY])
+  AC_CHECK_SIZEOF(size_t)
+  AC_CHECK_SIZEOF(unsigned long)
+
+  AC_MSG_CHECKING([sizeof size_t == sizeof unsigned long])
+  AC_TRY_COMPILE(,[
+    #if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG
+       choke me
+    #endif
+    ],AC_MSG_RESULT([yes]),[
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([
+       Apparently on your system our assumption sizeof size_t == sizeof unsigned long 
+       does not apply. Please mail kde-devel@kde.org with a description of your system!
+      ])
+  ])
+])
+
+AC_DEFUN([KDE_CHECK_BINUTILS],
+[
+  AC_MSG_CHECKING([if ld supports unversioned version maps])
+
+  kde_save_LDFLAGS="$LDFLAGS"
+  LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
+  echo "{ local: extern \"C++\" { foo }; };" > conftest.map
+  AC_TRY_LINK([int foo;],
+[
+#ifdef __INTEL_COMPILER
+icc apparently does not support libtools version-info and version-script
+at the same time. Dunno where the bug is, but until somebody figured out,
+better disable the optional version scripts.
+#endif
+
+  foo = 42;
+], kde_supports_versionmaps=yes, kde_supports_versionmaps=no)
+  LDFLAGS="$kde_save_LDFLAGS"
+  rm -f conftest.map
+  AM_CONDITIONAL(include_VERSION_SCRIPT, 
+    [test "$kde_supports_versionmaps" = "yes" && test "$kde_use_debug_code" = "no"])
+
+  AC_MSG_RESULT($kde_supports_versionmaps)
+])
+
+AC_DEFUN([AM_PROG_OBJC],[
+AC_CHECK_PROGS(OBJC, gcc, gcc)
+test -z "$OBJC" && AC_MSG_ERROR([no acceptable objective-c gcc found in \$PATH])
+if test "x${OBJCFLAGS-unset}" = xunset; then
+   OBJCFLAGS="-g -O2"
+fi
+AC_SUBST(OBJCFLAGS)
+_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES(OBJC)])
+])
+
+AC_DEFUN([KDE_CHECK_PERL],
+[
+	KDE_FIND_PATH(perl, PERL, [$bindir $exec_prefix/bin $prefix/bin], [
+		    AC_MSG_ERROR([No Perl found in your $PATH.
+We need perl to generate some code.])
+	])
+    AC_SUBST(PERL)
+])
Index: /branches/start/Taper/admin/am_edit
===================================================================
--- /branches/start/Taper/admin/am_edit	(revision 4308)
+++ /branches/start/Taper/admin/am_edit	(revision 4308)
@@ -0,0 +1,2339 @@
+#!/usr/bin/perl -w
+
+# Expands the specialised KDE tags in Makefile.in to (hopefully) valid
+# make syntax.
+# When called without file parameters, we work recursively on all Makefile.in
+# in and below the current subdirectory. When called with file parameters,
+# only those Makefile.in are changed.
+# The currently supported tags are
+#
+# {program}_METASOURCES
+# where you have a choice of two styles
+#   {program}_METASOURCES = name1.moc name2.moc ... [\]
+#   {program}_METASOURCES = AUTO
+#       The second style requires other tags as well.
+#
+# To install icons :
+#    KDE_ICON = iconname iconname2 ...
+#    KDE_ICON = AUTO
+#
+# For documentation :
+#    http://developer.kde.org/documentation/other/developer-faq.html
+#
+# and more new tags TBD!
+#
+# The concept (and base code) for this program came from automoc,
+# supplied by the following
+#
+# Matthias Ettrich <ettrich@kde.org>      (The originator)
+# Kalle Dalheimer <kalle@kde.org>      (The original implementator)
+# Harri Porten  <porten@tu-harburg.de>
+# Alex Zepeda  <jazepeda@pacbell.net>
+# David Faure <faure@kde.org>
+# Stephan Kulow <coolo@kde.org>
+# Dirk Mueller <mueller@kde.org>
+
+use Cwd;
+use File::Find;
+use File::Basename;
+
+# Prototype the functions
+sub initialise ();
+sub processMakefile ($);
+sub updateMakefile ();
+sub restoreMakefile ();
+
+sub removeLine ($$);
+sub appendLines ($);
+sub substituteLine ($$);
+
+sub findMocCandidates ();
+sub pruneMocCandidates ($);
+sub checkMocCandidates ();
+sub addMocRules ();
+
+sub tag_AUTOMAKE ();
+sub tag_META_INCLUDES ();
+sub tag_METASOURCES ();
+sub tag_POFILES ();
+sub tag_DOCFILES ();
+sub tag_LOCALINSTALL();
+sub tag_IDLFILES();
+sub tag_UIFILES();
+sub tag_SUBDIRS();
+sub tag_ICON();
+sub tag_CLOSURE();
+sub tag_NO_UNDEFINED();
+sub tag_NMCHECK();
+sub tag_DIST();
+sub tag_KDEINIT();
+
+# Some global globals...
+$verbose    = 0;        # a debug flag
+$thisProg   = "$0";     # This programs name
+$topdir     = cwd();    # The current directory
+@makefiles  = ();       # Contains all the files we'll process
+@foreignfiles = ();
+$start      = (times)[0]; # some stats for testing - comment out for release
+$version    = "v0.2";
+$errorflag  = 0;
+$cppExt     = "(cpp|cc|cxx|C|c\\+\\+)";
+$hExt       = "(h|H|hh|hxx|hpp|h\\+\\+)";
+$progId     = "KDE tags expanded automatically by " . basename($thisProg);
+$automkCall = "\n";
+$printname  = "";  # used to display the directory the Makefile is in
+$use_final  = 1;        # create code for --enable-final
+$cleantarget = "clean";
+$dryrun     = 0;
+$pathoption = 0;
+$foreign_libtool = 0;
+
+while (defined ($ARGV[0]))
+{
+    $_ = shift;
+    if (/^--version$/)
+    {
+        print STDOUT "\n";
+        print STDOUT basename($thisProg), " $version\n",
+                "This is really free software, unencumbered by the GPL.\n",
+                "You can do anything you like with it except sueing me.\n",
+                "Copyright 1998 Kalle Dalheimer <kalle\@kde.org>\n",
+                "Concept, design and unnecessary questions about perl\n",
+                "       by Matthias Ettrich <ettrich\@kde.org>\n\n",
+                "Making it useful by Stephan Kulow <coolo\@kde.org> and\n",
+                "Harri Porten <porten\@kde.org>\n",
+                "Updated (Feb-1999), John Birch <jb.nz\@writeme.com>\n",
+                "Fixes and Improvements by Dirk Mueller <mueller\@kde.org>\n",
+	        "Current Maintainer Stephan Kulow\n\n";
+        exit 0;
+    }
+    elsif (/^--verbose$|^-v$/)
+    {
+        $verbose = 1;       # Oh is there a problem...?
+    }
+    elsif (/^-p(.+)$|^--path=(.+)$/)
+    {
+        $thisProg = "$1/".basename($thisProg) if($1);
+        $thisProg = "$2/".basename($thisProg) if($2);
+        warn ("$thisProg doesn't exist\n")      if (!(-f $thisProg));
+        $pathoption=1;
+    }
+    elsif (/^--help$|^-h$/)
+    {
+        print STDOUT "Usage $thisProg [OPTION] ... [dir/Makefile.in]...\n",
+                "\n",
+                "Patches dir/Makefile.in generated by automake\n",
+                "(where dir can be an absolute or relative directory name)\n",
+                "\n",
+                "  -v, --verbose      verbosely list files processed\n",
+                "  -h, --help         print this help, then exit\n",
+                "  --version          print version number, then exit\n",
+                "  -p, --path=        use the path to am_edit if the path\n",
+                "                     called from is not the one to be used\n",
+	        "  --no-final         don't patch for --enable-final\n";
+	
+        exit 0;
+    }
+    elsif (/^--no-final$/)
+    {
+	$use_final = 0;
+        $thisProg .= " --no-final";
+    }
+    elsif (/^--foreign-libtool$/)
+    {
+        $foreign_libtool = 1;
+        $thisProg .= " --foreign-libtool";
+    }
+    elsif (/^-n$/)
+    {
+    	$dryrun = 1;
+    }
+    else
+    {
+        # user selects what input files to check
+        # add full path if relative path is given
+        $_ = cwd()."/".$_   if (! /^\//);
+        print "User wants $_\n" if ($verbose);
+        push (@makefiles, $_);
+    }
+}
+
+if ($thisProg =~ /^\// && !$pathoption )
+{
+  print STDERR "Illegal full pathname call performed...\n",
+      "The call to \"$thisProg\"\nwould be inserted in some Makefile.in.\n",
+      "Please use option --path.\n";
+  exit 1;
+}
+
+# Only scan for files when the user hasn't entered data
+if (!@makefiles)
+{
+    print STDOUT "Scanning for Makefile.in\n"       if ($verbose);
+    find (\&add_makefile, cwd());
+    #chdir('$topdir');
+} else {
+    print STDOUT "Using input files specified by user\n"   if ($verbose);
+}
+
+foreach $makefile (sort(@makefiles))
+{
+    processMakefile ($makefile);
+    last            if ($errorflag);
+}
+
+# Just some debug statistics - comment out for release as it uses printf.
+printf STDOUT "Time %.2f CPU sec\n", (times)[0] - $start     if ($verbose);
+
+exit $errorflag;        # causes make to fail if erroflag is set
+
+#-----------------------------------------------------------------------------
+
+# In conjunction with the "find" call, this builds the list of input files
+sub add_makefile ()
+{
+  push (@makefiles, $File::Find::name) if (/Makefile.in$/);
+}
+
+#-----------------------------------------------------------------------------
+
+# Processes a single make file
+# The parameter contains the full path name of the Makefile.in to use
+sub processMakefile ($)
+{
+    # some useful globals for the subroutines called here
+    local ($makefile)       = @_;
+    local @headerdirs       = ('.');
+    local $haveAutomocTag   = 0;
+    local $MakefileData     = "";
+
+    local $cxxsuffix  = "KKK";
+
+    local @programs = ();  # lists the names of programs and libraries
+    local $program = "";
+
+    local @kdeinits = (); # lists the kdeinit targets
+
+    local %realObjs = ();  # lists the objects compiled into $program
+    local %sources = ();   # lists the sources used for $program
+    local %finalObjs = (); # lists the objects compiled when final
+    local %realname = ();  # the binary name of program variable
+    local %idlfiles = ();  # lists the idl files used for $program
+    local %globalmocs = ();# list of all mocfiles (in %mocFiles format)
+    local %important = (); # list of files to be generated asap
+    local %uiFiles = ();
+
+    local $allidls = "";
+    local $idl_output = "";# lists all idl generated files for cleantarget
+    local $ui_output = "";# lists all uic generated files for cleantarget
+
+    local %dependmocs = ();
+    
+    local $metasourceTags = 0;
+    local $dep_files      = "";
+    local $dep_finals     = "";
+    local %target_adds    = (); # the targets to add
+    local %rule_adds      = ();
+    local $kdelang        = "";
+    local @cleanfiles     = ();
+    local $cleanMoc       = "";
+    local $closure_output = "";
+
+    local %varcontent     = ();
+
+    $makefileDir = dirname($makefile);
+    chdir ($makefileDir);
+    $printname = $makefile;
+    $printname =~ s/^\Q$topdir\E\///;
+    $makefile = basename($makefile);
+
+    print STDOUT "Processing makefile $printname\n"   if ($verbose);
+
+    # Setup and see if we need to do this.
+    return      if (!initialise());
+
+    tag_AUTOMAKE ();            # Allows a "make" to redo the Makefile.in
+    tag_META_INCLUDES ();       # Supplies directories for src locations
+
+    foreach $program (@programs) {
+        $sources_changed{$program} = 0;
+        $dependmocs{$program} = "";
+        $important{$program} = "";
+	tag_IDLFILES();             # Sorts out idl rules
+	tag_NO_UNDEFINED();
+	tag_CLOSURE();
+	tag_NMCHECK();
+	tag_UIFILES();             # Sorts out ui rules
+        tag_METASOURCES ();         # Sorts out the moc rules
+        if ($sources_changed{$program}) {
+            my $lookup = $program . '_SOURCES\s*=[ \t]*(.*)';
+
+            if($program =~ /libkdeinit_(.*)/) {
+                my $prog = $1;
+                substituteLine($prog . '_SOURCES\s*=[ \t]*.*', 
+                    "${prog}_SOURCES = ${prog}_dummy.$cxxsuffix\n" .
+                    "libkdeinit_${prog}_SOURCES = " . $sources{$program});
+                $sources{$prog} = "${prog}_dummy.$cxxsuffix";
+            }
+            else {
+                substituteLine($lookup, "$program\_SOURCES=" . $sources{$program});
+            }
+        }
+        if ($important{$program}) {
+            local %source_dict = ();
+            for $source (split(/[\034\s]+/, $sources{$program})) {
+                $source_dict{$source} = 1;
+            }
+            for $source (@cleanfiles) {
+                $source_dict{$source} = 0;
+            }
+            for $source (keys %source_dict) {
+                next if (!$source);
+                if ($source_dict{$source}) {
+                    # sanity check
+                    if (! -f $source) {
+                        print STDERR "Error: $source is listed in a _SOURCE line in $printname, but doesn't exist yet. Put it in DISTCLEANFILES!\n";
+                    } else {
+                        $target_adds{"\$(srcdir)/$source"} .= $important{$program};
+                    }
+                }
+            }
+        }
+    }
+    if ($cleanMoc) {
+        # Always add dist clean tag
+        # Add extra *.moc.cpp files created for USE_AUTOMOC because they
+        # aren't included in the normal *.moc clean rules.
+        appendLines ("$cleantarget-metasources:\n\t-rm -f $cleanMoc\n");
+        $target_adds{"$cleantarget-am"} .= "$cleantarget-metasources ";
+    }
+    
+    tag_DIST() unless ($kdeopts{"noautodist"});
+
+    if ($idl_output) {
+        appendLines ("$cleantarget-idl:\n\t-rm -f $idl_output\n");
+        $target_adds{"$cleantarget-am"} .= "$cleantarget-idl ";
+    }
+
+    if ($ui_output) {
+        appendLines ("$cleantarget-ui:\n\t-rm -f $ui_output\n");
+        $target_adds{"$cleantarget-am"} .= "$cleantarget-ui ";
+    }
+
+    if ($closure_output) {
+        appendLines ("$cleantarget-closures:\n\t-rm -f $closure_output\n");
+        $target_adds{"$cleantarget-am"} .= "$cleantarget-closures ";
+    }
+
+    if ($MakefileData =~ /\nKDE_LANG\s*=\s*(\S*)\s*\n/) {
+        $kdelang = '$(KDE_LANG)'
+    } else {
+        $kdelang = '';
+    }
+
+    tag_POFILES ();             # language rules for po directory
+    tag_DOCFILES ();            # language rules for doc directories
+    tag_LOCALINSTALL();         # add $(DESTDIR) before all kde_ dirs
+    tag_ICON();
+    tag_SUBDIRS();
+
+    my $tmp = "force-reedit:\n";
+    $tmp   .= "\t$automkCall\n\tcd \$(top_srcdir) && perl $thisProg $printname\n\n";
+    appendLines($tmp);
+    
+    make_bcheck_target();
+    make_meta_classes();
+    tag_COMPILE_FIRST();
+    tag_FINAL() if (!$kdeopts{"nofinal"});
+
+    my $final_lines = "final:\n\t\$(MAKE) ";
+    my $final_install_lines = "final-install:\n\t\$(MAKE) ";
+    my $nofinal_lines = "no-final:\n\t\$(MAKE) ";
+    my $nofinal_install_lines = "no-final-install:\n\t\$(MAKE) ";
+
+    foreach $program (@programs) {
+        my $lookup = $program . '_OBJECTS\s*=[ \t]*.*';
+        my $new = "";
+        my @list = split(/[\034\s]+/, $realObjs{$program});
+        if (!$kdeopts{"nofinal"} && @list > 1 && $finalObjs{$program}) {
+            $new .= "$program\_final\_OBJECTS = " . $finalObjs{$program};
+            $new .= "\n$program\_nofinal\_OBJECTS = " . $realObjs{$program};
+            $new .= "\n\@KDE_USE_FINAL_FALSE\@$program\_OBJECTS = \$($program\_nofinal\_OBJECTS)";
+            $new .= "\n\@KDE_USE_FINAL_TRUE\@$program\_OBJECTS = \$($program\_final\_OBJECTS)";
+
+            $final_lines .= "$program\_OBJECTS=\"\$($program\_final_OBJECTS)\" ";
+            $final_install_lines .= "$program\_OBJECTS=\"\$($program\_final_OBJECTS)\" ";
+            $nofinal_lines .= "$program\_OBJECTS=\"\$($program\_nofinal\_OBJECTS)\" ";
+            $nofinal_install_lines .= "$program\_OBJECTS=\"\$($program\_nofinal_OBJECTS)\" ";
+        } else {
+            $new = "$program\_OBJECTS = " . $realObjs{$program};
+        }
+        if($MakefileData =~ m/\n$lookup/) {
+            substituteLine ($lookup, $new);
+        }
+        else {
+            appendLines("$new\n");
+        }
+    }
+    appendLines($final_lines . "all-am\n");
+    appendLines($final_install_lines . "install-am\n");
+    appendLines($nofinal_lines . "all-am\n");
+    appendLines($nofinal_install_lines . "install-am\n");
+
+    my $lookup = '(\@\S+\@)?DEP_FILES\s*=[ \t]*(.*)';
+    if ($MakefileData =~ /\n$lookup/) {
+        my $condition = $1;
+        my $depfiles = $2;
+        my $workfiles;
+
+        if ($dep_finals) {
+            # Add the conditions on every line, since
+            # there may be line continuations in the list.
+            $workfiles = "$dep_files $dep_finals $depfiles";
+            $workfiles =~ s/\034/\034$condition\@KDE_USE_FINAL_TRUE\@\t/g;
+            $lines  = "$condition\@KDE_USE_FINAL_TRUE\@DEP_FILES = $workfiles\n";
+            $workfiles = "$dep_files $depfiles";
+            $workfiles =~ s/\034/\034$condition\@KDE_USE_FINAL_FALSE\@\t/g;
+            $lines .= "$condition\@KDE_USE_FINAL_FALSE\@DEP_FILES = $workfiles";
+        } else {
+            $workfiles = "$dep_files $depfiles";
+            $workfiles =~ s/\034/\034$condition\t/g;
+            $lines = $condition . "DEP_FILES = $workfiles";
+        }
+        substituteLine($lookup, $lines);
+    }
+
+    # new recursive targets
+    $target_adds{ "nmcheck" } .= ""; # always create nmcheck target
+    $target_adds{ "nmcheck-am" } .= "nmcheck";
+    $lookup = 'RECURSIVE_TARGETS\s*=[ \t]*(.*)';
+    if ($MakefileData =~ /\n$lookup/) {
+      substituteLine($lookup, "RECURSIVE_TARGETS = $1 nmcheck-recursive bcheck-recursive");
+    }
+
+    my $cvs_lines = "cvs-clean:\n";
+    $cvs_lines .= "\t\$(MAKE) admindir=\$(top_srcdir)/admin -f \$(top_srcdir)/admin/Makefile.common cvs-clean\n";
+    appendLines($cvs_lines);
+
+    $cvs_lines  = "kde-rpo-clean:\n";
+    $cvs_lines .= "\t-rm -f *.rpo\n";
+    appendLines($cvs_lines);
+    $target_adds{"clean"} .= "kde-rpo-clean ";
+
+    my %target_dels = ("install-data-am" => "");
+
+    # some strange people like to do a install-exec, and expect that also
+    # all modules are installed.  automake doesn't know this, so we need to move
+    # this here from install-data to install-exec.
+    if ($MakefileData =~ m/\nkde_module_LTLIBRARIES\s*=/) {
+#      $target_adds{"install-exec-am"} .= "install-kde_moduleLTLIBRARIES ";
+#      don't use $target_adds here because we need to append the dependency, not
+#      prepend it. Fixes #44342 , when a module depends on a lib in the same dir
+#      and libtool needs it during relinking upon install (Simon)
+      my $lookup = "install-exec-am:([^\n]*)";
+      if($MakefileData =~ /\n$lookup\n/) {
+        substituteLine("$lookup", "install-exec-am: $1 install-kde_moduleLTLIBRARIES");
+      }
+      $target_dels{"install-data-am"} .= "install-kde_moduleLTLIBRARIES ";
+      $target_adds{"install-data-am"} .= " ";
+    }
+
+    my $lines = "";
+
+    foreach $add (keys %target_adds) {
+	my $lookup = quotemeta($add) . ':([^\n]*)';
+        if ($MakefileData =~ /\n$lookup\n/) {
+	  my $newlines = $1;
+	  my $oldlines = $lookup;
+	  if (defined $target_dels{$add}) {
+	    foreach $del (split(' ', $target_dels{$add})) {
+	      $newlines =~ s/\s*$del\s*/ /g;
+	    }
+	  }
+	  substituteLine($oldlines, "$add: " . $target_adds{$add} . $newlines);
+        } else {
+	  $lines .= "$add: " . $target_adds{$add} . "\n";
+        }
+    }
+
+    appendLines($lines) if ($lines);
+
+    $lines = join("\n", values %rule_adds);
+    appendLines($lines) if ($lines);
+
+    my $found = 1;
+
+    while ($found) {
+        if ($MakefileData =~ m/\n(.*)\$\(CXXFLAGS\)(.*)\n/) {
+            my $stuff_before = $1;
+            my $stuff_after = $2;
+            my $lookup = quotemeta("$1\$(CXXFLAGS)$2");
+            my $replacement = "$1\$(KCXXFLAGS)$2";
+            $MakefileData =~ s/$lookup/$replacement/;
+            $lookup =~ s/\\\$\\\(CXXFLAGS\\\)/\\\$\\\(KCXXFLAGS\\\)/;
+            $replacement = "$stuff_before\$(KCXXFLAGS) \$(KDE_CXXFLAGS)$stuff_after";
+            substituteLine($lookup, $replacement);
+        } else {
+            $found = 0;
+        }
+    }
+
+    if($foreign_libtool == 0) {
+        $lookup = '(\n[^#].*\$\(LIBTOOL\) --mode=link) (\$\(CXXLD\).*\$\(KCXXFLAGS\))';
+
+        if ($MakefileData =~ m/$lookup/ ) {
+            $MakefileData =~ s/$lookup/$1 --tag=CXX $2/;
+        }
+
+        $lookup = '(\n[^#].*\$\(LIBTOOL\) --mode=compile)\s+(\$\(CXX\)\s+)';
+        if ($MakefileData =~ m/$lookup/ ) {
+            $MakefileData =~ s/$lookup/$1 --tag=CXX $2/;
+        }
+    }
+
+    $MakefileData =~ s/\$\(KCXXFLAGS\)/\$\(CXXFLAGS\)/g;
+
+    $lookup = '(.*)cp -pr \$\$/\$\$file \$\(distdir\)/\$\$file(.*)';
+    if ($MakefileData =~ m/\n$lookup\n/) {
+        substituteLine($lookup, "$1cp -pr \$\$d/\$\$file \$(distdir)/\$\$file$2");
+    }
+
+    # Always update the Makefile.in
+    updateMakefile ();
+    return;
+}
+
+#-----------------------------------------------------------------------------
+
+# Beware: This procedure is not complete.  E.g. it also parses lines
+# containing a '=' in rules (for instance setting shell vars).  For our
+# usage this us enough, though.
+sub read_variables ()
+{
+    while ($MakefileData =~ /\n\s*(\S+)\s*=([^\n]*)/g) {
+        $varcontent{$1} = $2;
+    }
+}
+
+# Check to see whether we should process this make file.
+# This is where we look for tags that we need to process.
+# A small amount of initialising on the tags is also done here.
+# And of course we open and/or create the needed make files.
+sub initialise ()
+{
+    if (! -r "Makefile.am") {
+	print STDOUT "found Makefile.in without Makefile.am\n" if ($verbose);
+	return 0;
+    }
+
+    # Checking for files to process...
+    open (FILEIN, $makefile)
+      || die "Could not open $makefileDir/$makefile: $!\n";
+    # Read the file
+    # stat(FILEIN)[7] might look more elegant, but is slower as it 
+    # requires stat'ing the file
+    seek(FILEIN, 0, 2);
+    my $fsize = tell(FILEIN);
+    seek(FILEIN, 0, 0);
+    read FILEIN, $MakefileData, $fsize;
+    close FILEIN;
+    print "DOS CRLF within $makefileDir/$makefile!\n" if($MakefileData =~ y/\r//d);
+
+    # Remove the line continuations, but keep them marked
+    # Note: we lose the trailing spaces but that's ok.
+    # Don't mangle line-leading spaces (usually tabs)
+    # since they're important.
+    $MakefileData =~ s/\\\s*\n/\034/g;
+
+    # If we've processed the file before...
+    restoreMakefile ()      if ($MakefileData =~ /$progId/);
+
+    foreach $dir (@foreignfiles) {
+      if (substr($makefileDir,0,length($dir)) eq $dir) {
+	return 0;
+      }
+    }
+
+    %kdeopts = ();
+    $kdeopts{"foreign"} = 0;
+    $kdeopts{"qtonly"} = 0;
+    $kdeopts{"noautodist"} = 0;
+    $kdeopts{"foreign-libtool"} = $foreign_libtool;
+    $kdeopts{"nofinal"} = !$use_final; # default
+
+    read_variables();
+
+    if ($MakefileData =~ /\nKDE_OPTIONS\s*=[ \t]*([^\n]*)\n/) {
+	my $kde_options_str = $1;
+        local @kde_options = split(/[\034\s]+/, $kde_options_str);
+        if (grep(/^foreign$/, @kde_options)) {
+            push(@foreignfiles, $makefileDir . "/");
+            return 0; # don't touch me
+        }
+        for $opt (@kde_options) {
+            if (!defined $kdeopts{$opt}) {
+                print STDERR "Warning: unknown option $opt in $printname\n";
+            } else {
+                $kdeopts{$opt} = 1;
+            }
+        }
+    }
+
+    # Look for the tags that mean we should process this file.
+    $metasourceTags = 0;
+    $metasourceTags++    while ($MakefileData =~ /\n[^=\#]*METASOURCES\s*=/g);
+
+    my $pofileTag = 0;
+    $pofileTag++    while ($MakefileData =~ /\nPOFILES\s*=/g);
+    if ($pofileTag > 1)
+      {
+          print STDERR "Error: Only one POFILES tag allowed\n";
+          $errorflag = 1;
+      }
+
+    while ($MakefileData =~ /\n\.SUFFIXES:([^\n]+)\n/g) {
+	my $suffixes_str = $1;
+	my @list=split(' ', $suffixes_str);
+	foreach $ext (@list) {
+	    if ($ext =~ /^\.$cppExt$/) {
+		$cxxsuffix = $ext;
+		$cxxsuffix =~ s/\.//g;
+		print STDOUT "will use suffix $cxxsuffix\n" if ($verbose);
+		last;
+	    }
+	}
+    }
+
+    tag_KDEINIT();
+
+    while ($MakefileData =~ /\n(\S*)_OBJECTS\s*=[\034 \t]*([^\n]*)\n/g) {
+
+        my $program = $1;
+        my $objs = $2; # safe them
+
+        my $ocv = 0;
+
+        my @objlist = split(/[\034\s]+/, $objs);
+        foreach $obj (@objlist) {
+            if ($obj =~ /(\S*)\$\((\S+)\)/ ) {
+		my $pre = $1;
+                my $variable = $2;
+		if ($pre eq '' && exists($varcontent{$variable})) {
+		    my @addlist = split(/[\034\s]+/, $varcontent{$variable});
+		    push(@objlist, @addlist);
+                } elsif ($variable !~ 'OBJEXT') {
+                    $ocv = 1;
+		}
+            }
+        }
+
+        next if ($ocv);
+        next if ($program =~ /^am_libkdeinit_/);
+
+        $program =~ s/^am_// if ($program =~ /^am_/);
+
+        my $sourceprogram = $program;
+        $sourceprogram =~ s/\@am_/\@/ if($sourceprogram =~ /^.*\@am_.+/);
+
+        print STDOUT "found program $program\n" if ($verbose);
+        push(@programs, $program);
+
+        $realObjs{$program} = $objs;
+
+        if ($MakefileData =~ /\n$sourceprogram\_SOURCES\s*=[ \t]*(.*)\n/) {
+            $sources{$program} = $1;
+        } 
+        else {
+            $sources{$program} = "";
+            print STDERR "found program with no _SOURCES: $program\n";
+        }
+        
+        my $realprogram = $program;
+        $realprogram =~ s/_/./g; # unmask to regexp
+        if ($MakefileData =~ /\n($realprogram)(\$\(EXEEXT\)?)?:.*\$\($program\_OBJECTS\)/) {
+            $realname{$program} = $1;
+        } else {
+            # not standard Makefile - nothing to worry about
+            $realname{$program} = "";
+        }
+    }
+
+    my $lookup = 'DEPDIR\s*=.*';
+    if ($MakefileData !~ /\n$lookup/) {
+        $lookup = 'bindir\s*=[ \t]*.*';
+        substituteLine($lookup, "DEPDIR = .deps\n$1") if ($MakefileData =~ /\n($lookup)/);
+    }
+
+    my @marks = ('MAINTAINERCLEANFILES', 'CLEANFILES', 'DISTCLEANFILES');
+    foreach $mark (@marks) {
+        while ($MakefileData =~ /\n($mark)\s*=[ \t]*([^\n]*)/g) {
+	    my $clean_str = $2; 
+            foreach $file (split('[\034\s]+', $clean_str)) {
+                $file =~ s/\.\///;
+                push(@cleanfiles, $file);
+            }
+        }
+    }
+
+    my $localTag = 0;
+    $localTag++ if ($MakefileData =~ /\ninstall-\S+-local:/);
+    
+    return (!$errorflag);
+}
+
+#-----------------------------------------------------------------------------
+
+# Gets the list of user defined directories - relative to $srcdir - where
+# header files could be located.
+sub tag_META_INCLUDES ()
+{
+    my $lookup = '[^=\n]*META_INCLUDES\s*=[ \t]*(.*)';
+    return 1    if ($MakefileData !~ /($lookup)\n/);
+    print STDOUT "META_INCLUDE processing <$1>\n"       if ($verbose);
+
+    my $headerStr = $2;
+    removeLine ($lookup, $1);
+
+    my @headerlist = split(/[\034\s]+/, $headerStr);
+
+    foreach $dir (@headerlist)
+    {
+        $dir =~ s#\$\(srcdir\)#.#;
+        if (! -d $dir)
+        {
+            print STDERR "Warning: $dir can't be found. ",
+                            "Must be a relative path to \$(srcdir)\n";
+        }
+        else
+        {
+            push (@headerdirs, $dir);
+        }
+    }
+
+    return 0;
+}
+
+#-----------------------------------------------------------------------------
+
+sub tag_FINAL()
+{
+    my @final_names = ();
+    
+    foreach $program (@programs) {
+        
+        if ($sources{$program} =~ /\(/) {
+            print STDOUT "found ( in $program\_SOURCES. skipping\n" if ($verbose);
+            next;
+        }
+
+        my $mocs = "";       # Moc files (in this program)
+	my $moc_cpp_added = 0;  # If we added some .moc.cpp files, due to
+				# no other .cpp file including the .moc one.
+        
+        my @progsources = split(/[\034\s]+/, $sources{$program});
+        my %shash = ();
+        @shash{@progsources} = 1;  # we are only interested in the existence
+        my %sourcelist = ();
+        
+        foreach $source (@progsources) {
+            my $suffix = $source;
+            $suffix =~ s/^.*\.([^\.]+)$/$1/;
+            
+            $sourcelist{$suffix} .= "$source ";
+        }
+        foreach my $mocFile (keys (%globalmocs))
+        {
+            my ($dir, $hFile, $cppFile) = split ("\035", $globalmocs{$mocFile}, 3);
+            if (defined ($cppFile)) {
+                $mocs .= " $mocFile.moc" if exists $shash{$cppFile};
+            } else {
+		$sourcelist{$cxxsuffix} .= "$mocFile.moc.$cxxsuffix ";
+		$moc_cpp_added = 1;
+	    }
+        }
+        foreach $suffix (keys %sourcelist) {
+            
+            # See if this file contains c++ code. (i.e., just check the file's suffix against c++ extensions)
+            my $suffix_is_cxx = 0;
+            if($suffix =~ /($cppExt)$/) {
+              $cxxsuffix = $1;
+              $suffix_is_cxx = 1;
+            }
+            
+            my $mocfiles_in = ($suffix eq $cxxsuffix) && $moc_cpp_added;
+            
+            my @sourcelist = split(/[\034\s]+/, $sourcelist{$suffix});
+            
+            if ((@sourcelist == 1 && !$mocfiles_in) || $suffix_is_cxx != 1 ) {
+                
+                # we support IDL on our own
+                if ($suffix eq "skel" || $suffix =~ /^stub/
+		    || $suffix =~ /^signals/ # obsolete, remove in KDE-4
+                    || $suffix eq "h" || $suffix eq "ui" ) {
+                    next;
+                }
+                
+                foreach $file (@sourcelist) {
+                    $file =~ s/\Q$suffix\E$//;
+                    
+                    $finalObjs{$program} .= $file;
+                    if ($program =~ /_la$/) {
+                        $finalObjs{$program} .= "lo ";
+                    } else {
+                        $finalObjs{$program} .= "o ";
+                    }
+                }
+                next; # suffix
+            }
+            
+            my $source_deps = "";
+            foreach $source (@sourcelist) {
+                if (-f $source) {
+                    $source_deps .= " \$(srcdir)/$source";
+                } else {
+                    $source_deps .= " $source";
+                }
+            }
+
+            $handling = "$program.all_$suffix.$suffix: \$(srcdir)/Makefile.in" . $source_deps . " " . join(' ', $mocs)  . "\n";
+            $handling .= "\t\@echo 'creating $program.all_$suffix.$suffix ...'; \\\n";
+            $handling .= "\trm -f $program.all_$suffix.files $program.all_$suffix.final; \\\n";
+            $handling .= "\techo \"#define KDE_USE_FINAL 1\" >> $program.all_$suffix.final; \\\n";
+            $handling .= "\tfor file in " . $sourcelist{$suffix} . "; do \\\n";
+            $handling .= "\t  echo \"#include \\\"\$\$file\\\"\" >> $program.all_$suffix.files; \\\n";
+            $handling .= "\t  test ! -f \$\(srcdir\)/\$\$file || egrep '^#pragma +implementation' \$\(srcdir\)/\$\$file >> $program.all_$suffix.final; \\\n";
+            $handling .= "\tdone; \\\n";
+            $handling .= "\tcat $program.all_$suffix.final $program.all_$suffix.files > $program.all_$suffix.$suffix; \\\n";
+            $handling .= "\trm -f $program.all_$suffix.final $program.all_$suffix.files\n";
+
+            appendLines($handling);
+
+            push(@final_names, "$program.all_$suffix.$suffix");
+            my $finalObj = "$program.all_$suffix.";
+            if ($program =~ /_la$/) {
+                $finalObj .= "lo";
+            } else {
+                $finalObj .= "o";
+            }
+	    $finalObjs{$program} .= $finalObj . " ";
+        }
+    }
+    
+    if (!$kdeopts{"nofinal"} && @final_names >= 1) {
+        # add clean-final target
+        my $lines = "$cleantarget-final:\n";
+        $lines .= "\t-rm -f " . join(' ', @final_names) . "\n" if (@final_names);
+        appendLines($lines);
+        $target_adds{"$cleantarget-am"} .= "$cleantarget-final ";
+        
+        foreach $finalfile (@final_names) {
+            $finalfile =~ s/\.[^.]*$/.P/;
+            $dep_finals .= " \$(DEPDIR)/$finalfile";
+        }
+    }
+}
+
+sub tag_KDEINIT()
+{
+    my @progs = ();
+    my $ltlibs = "";
+    my $lookup = 'kdeinit_LTLIBRARIES\s*=[ \t]*(.*)';
+
+    if ($MakefileData =~ m/\n$lookup/) {
+	@kdeinits = split(/[\034\s]+/, $1);
+	my $lines = "";
+	foreach my $kdeinit (@kdeinits) {
+	    if ($kdeinit =~ m/\.la$/) {
+		$kdeinit =~ s/\.la$//;
+                push(@progs, $kdeinit);
+
+                $lines .= "\n${kdeinit}.la.$cxxsuffix:\n";
+                $lines .= "\techo 'extern \"C\" int kdemain(int argc, char* argv[]);' > ${kdeinit}.la.$cxxsuffix; \\\n";
+                $lines .= "\techo 'int main(int argc, char* argv[]) { return kdemain(argc,argv); }' >> ${kdeinit}.la.$cxxsuffix\n";
+
+                $lines .= "\n${kdeinit}_dummy.$cxxsuffix:\n";
+                $lines .= "\t echo > ${kdeinit}_dummy.$cxxsuffix\n";
+
+                push(@cleanfiles, "${kdeinit}.la.$cxxsuffix");
+                push(@cleanfiles, "${kdeinit}_dummy.$cxxsuffix");
+
+                # add dependency
+                $dep_files .= " \$(DEPDIR)/${kdeinit}.la.Po" if($dep_files !~/${kdeinit}.la.Po/ );
+                $dep_files .= " \$(DEPDIR)/${kdeinit}_dummy.Plo" if($dep_files !~/${kdeinit}_dummy.Plo/ );
+
+                # make library
+                $lookup = $kdeinit . '_la_LIBADD\s*=[ \t]*(.*)';
+                if($MakefileData =~ m/\n$lookup/) {
+                    my $libadd = $1;
+                    substituteLine($lookup, "${kdeinit}_la_LIBADD = libkdeinit_${kdeinit}.la");
+                    appendLines("libkdeinit_${kdeinit}_la_LIBADD = $libadd\n");
+                }
+                appendLines("libkdeinit_${kdeinit}_la_LDFLAGS = \$(all_libraries)\n");
+
+                # add library dependencies
+                $lookup = $kdeinit . '_la_DEPENDENCIES\s*=[ \t]*(.*)';
+                if($MakefileData =~ m/\n$lookup/) {
+                    my $libdeps = $1;
+                    substituteLine($lookup, "${kdeinit}_la_DEPENDENCIES = libkdeinit_${kdeinit}.la");
+                    appendLines("libkdeinit_${kdeinit}_la_DEPENDENCIES = $libdeps\n");
+                }
+
+                # make library objects
+                $lookup = "am_${kdeinit}_la_OBJECTS" . '\s*=[ \t]*(.*)';
+                if($MakefileData =~ m/\n$lookup/) {
+                    my $libobjects = $1;
+                    substituteLine($lookup, "am_${kdeinit}_la_OBJECTS = ${kdeinit}_dummy.lo");
+                    appendLines("am_libkdeinit_${kdeinit}_la_OBJECTS = $libobjects\n");
+                    my $prog = "libkdeinit_${kdeinit}_la";
+                    push(@programs, $prog);
+                    $realObjs{$prog} = $libobjects;
+                    $realname{$prog} = "libkdeinit_${kdeinit}.la";
+                }
+                $target_adds{"libkdeinit_${kdeinit}.la"} = "\$(libkdeinit_${kdeinit}_la_OBJECTS) \$(libkdeinit_${kdeinit}_la_DEPENDENCIES)\n" .
+                        "\t\$(CXXLINK) -rpath \$(libdir) \$(libkdeinit_${kdeinit}_la_LDFLAGS) ".
+                           "\$(libkdeinit_${kdeinit}_la_OBJECTS) " .
+                           "\$(libkdeinit_${kdeinit}_la_LIBADD) " .
+                           "\$(LIBS)\n";
+
+                # make libkdeinit sources
+                $lookup = $kdeinit . '_la_SOURCES\s*=[ \t]*(.*)';
+                if($MakefileData =~ m/\n$lookup/) {
+                    my $srces = $1;
+                    $sources_changed{"libkdeinit_${kdeinit}_la"} = 1;
+                    $sources{"libkdeinit_${kdeinit}_la"} = $srces;
+                }
+
+                # make libkdeinit metasources
+                $lookup = $kdeinit . '_la_METASOURCES\s*=[ \t]*(.*)';
+                substituteLine($lookup, "libkdeinit_${kdeinit}_la_METASOURCES = $1")
+                    if($MakefileData =~ m/\n$lookup/);
+
+=cut
+                # make binary sources
+                $lookup = $kdeinit. '_SOURCES\s*=[ \t]*(.*)';
+                if($MakefileData =~ m/\n$lookup/) {
+                    substituteLine($lookup, "${kdeinit}_SOURCES = ${kdeinit}.la.$cxxsuffix");
+                    $lookup = 'SOURCES\s*=[ \t]*(.*)';
+                    if($MakefileData =~ m/\n$lookup/) {
+                        my $srces = $1;
+                        $srces =~ s/\b$kdeinit\.c\b/\$(${kdeinit}_SOURCES)/;
+                        $srces =~ s/\$\(${kdeinit}_la_SOURCES\)/\$(libkdeinit_${kdeinit}_la_SOURCES)/;
+                        substituteLine($lookup, "SOURCES = $srces");
+                    }
+                    $lookup = 'DIST_SOURCES\s*=[ \t](.*)';
+                    if($MakefileData =~ m/\n$lookup/) {
+                        my $srces = $1;
+                        $srces =~ s/\b$kdeinit\.c\b/\$(${kdeinit}_SOURCES)/;
+                        $srces =~ s/\$\(${kdeinit}_la_SOURCES\)/\$(libkdeinit_${kdeinit}_la_SOURCES)/;
+                        substituteLine($lookup, "DIST_SOURCES = $srces");
+                    }
+                }
+
+                # make binary objects / libs
+                $lookup = $kdeinit . '_OBJECTS\s*=[ \t]*.*';
+                if($MakefileData =~ m/\n$lookup/) {
+                    $realObjs{$kdeinit} = "${kdeinit}.la.\$(OBJEXT)";
+                    substituteLine("${kdeinit}_LDFLAGS\\s*=.*", "${kdeinit}_LDFLAGS = \$(all_libraries)");
+                    substituteLine("${kdeinit}_LDADD\\s*=.*", "${kdeinit}_LDADD = libkdeinit_${kdeinit}.la");
+                    substituteLine("${kdeinit}_DEPENDENCIES\\s*=.*", "${kdeinit}_DEPENDENCIES = libkdeinit_${kdeinit}.la");
+                }
+=cut
+                # add binary
+                push(@programs, $kdeinit);
+                $realObjs{$kdeinit} = "${kdeinit}.la.\$(OBJEXT)";
+                $realname{$kdeinit} = $kdeinit;
+                $sources{$kdeinit} = "${kdeinit}.la.$cxxsuffix";
+
+                $lines .= "${kdeinit}_LDFLAGS = \$(all_libraries)\n";
+                $lines .= "${kdeinit}_LDADD = libkdeinit_${kdeinit}.la\n";
+                $lines .= "${kdeinit}_DEPENDENCIES = libkdeinit_${kdeinit}.la\n";
+
+                $target_adds{"${kdeinit}\$(EXEEXT)"} =
+                          "\$(${kdeinit}_OBJECTS) \$(${kdeinit}_DEPENDENCIES)\n" .
+                          "\t\@rm -f ${kdeinit}\$(EXEEXT)\n" .
+                          "\t\$(CXXLINK) \$(${kdeinit}_LDFLAGS) \$(${kdeinit}_OBJECTS) \$(${kdeinit}_LDADD) \$(LIBS)\n";
+
+                $ltlibs .= " libkdeinit_${kdeinit}.la";
+	    }
+        }
+        appendLines($lines);
+
+        # add libkdeinit target
+        $lookup = 'lib_LTLIBRARIES\s*=[ \t]*(.*)';
+        if($MakefileData =~ m/\n$lookup/) {
+            substituteLine($lookup, "lib_LTLIBRARIES = $1 $ltlibs");
+        }
+        else {
+            print STDERR
+                "Error: lib_LTLIBRARIES missing in $printname (required for kdeinit_LTLIBRARIES).\n";
+            $errorflag = 1;
+        }
+    }
+
+    if($#progs >= 0) {
+        if($MakefileData !~ m/\nbin_PROGRAMS\s*=/) {
+            print STDERR "Error: bin_PROGRAMS missing in $printname (required for bin_PROGRAMS).\n";
+            $errorflag = 1;
+        }
+        else {
+            # add our new progs to SOURCES, DIST_SOURCES and bin_PROGRAMS
+            my $progsources = "";
+            my $progexes = "";
+            foreach my $p (@progs) {
+                $progsources .= "\$(${p}_SOURCES) ";
+                $progexes .= "${p}\$(EXEEXT) ";
+            }
+            $lookup = 'SOURCES\s*=[ \t]*(.*)';
+            if($MakefileData =~ /\n$lookup/) {
+                substituteLine($lookup, "SOURCES = $1 $progsources");
+            }
+            $lookup = 'DIST_SOURCES\s*=[ \t]*(.*)';
+            if($MakefileData =~ /\n$lookup/) {
+                substituteLine($lookup, "DIST_SOURCES = $1 $progsources");
+            }
+            # bin_PROGRAMS is complicated, as it exists twice, so we do a little
+            # magic trick here
+            $lookup = 'PROGRAMS\s*=[ \t]*(.*)';
+            if ($MakefileData =~ /\n$lookup/) {
+                substituteLine($lookup, "bin_PROGRAMS += $progexes\nPROGRAMS = $1");
+            }
+        }
+    }
+}
+
+#-----------------------------------------------------------------------------
+
+sub tag_COMPILE_FIRST()
+{
+  foreach $program (@programs) {
+    my $lookup = "$program" . '_COMPILE_FIRST\s*=[ \t]*(.*)';
+    if ($MakefileData =~ m/\n$lookup\n/) {
+      my $compilefirst_str = $1;
+      my @compilefirst = split(/[\034\s]+/, $compilefirst_str);
+      my @progsources = split(/[\034\s]+/, $sources{$program});
+      my %donesources = ();
+      foreach $source (@progsources) {
+        my @deps  = ();
+        my $sdeps = "";
+        if (-f $source) {
+          $sdeps = "\$(srcdir)/$source";
+        } else {
+          $sdeps = "$source";
+        }
+        foreach $depend (@compilefirst) {
+          next if ($source eq $depend);
+          # avoid cyclic dependencies
+          next if defined($donesources{$depend});
+          push @deps, $depend;
+        }
+        $target_adds{$sdeps} = join(' ', @deps) if (@deps);
+        $donesources{$source} = 1;
+      }
+    }
+  }
+}
+
+#-----------------------------------------------------------------------------
+
+
+# Organises the list of headers that we'll use to produce moc files
+# from.
+sub tag_METASOURCES ()
+{
+    local @newObs           = ();  # here we add to create object files
+    local @depend           = ();  # here we add to create moc files
+    local $mocExt           = ".moc";
+    local %mocFiles         = ();
+
+    my $line = "";
+    my $postEqual = "";
+
+    my $lookup;
+    my $found = "";
+    if ($metasourceTags > 1) {
+	$lookup = $program . '_METASOURCES\s*=\s*(.*)';
+	return 1    if ($MakefileData !~ /\n($lookup)\n/);
+	$found = $1;
+    } else {
+	$lookup = $program . '_METASOURCES\s*=\s*(.*)';
+	if ($MakefileData !~ /\n($lookup)\n/) {
+	    $lookup = 'METASOURCES\s*=\s*(.*)';
+	    return 1    if ($MakefileData !~ /\n($lookup)\n/);
+	    $found = $1;
+	    $metasourceTags = 0; # we can use the general target only once
+	} else {
+            $found = $1;
+        }
+    }
+    print STDOUT "METASOURCE processing <$found>)\n"      if ($verbose);
+    
+    $postEqual = $found;
+    $postEqual =~ s/[^=]*=//;
+    
+    removeLine ($lookup, $found);
+    
+    # Always find the header files that could be used to "moc"
+    return 1    if (findMocCandidates ());
+    
+    if ($postEqual =~ /AUTO\s*(\S*)|USE_AUTOMOC\s*(\S*)/)
+    {
+	print STDERR "$printname: the argument for AUTO|USE_AUTOMOC is obsolete" if ($+);
+	$mocExt = ".moc.$cxxsuffix";
+	$haveAutomocTag = 1;
+    }
+    else
+    {
+        # Not automoc so read the list of files supplied which
+        # should be .moc files.
+
+        $postEqual =~ tr/\034/ /;
+
+        # prune out extra headers - This also checks to make sure that
+        # the list is valid.
+        pruneMocCandidates ($postEqual);
+    }
+
+    checkMocCandidates ();
+    
+    if (@newObs) {
+        my $ext =  ($program =~ /_la$/) ? ".moc.lo " : ".moc.o ";
+        $realObjs{$program} .= "\034" . join ($ext, @newObs) . $ext;
+        $dependmocs{$program} = join (".moc.$cxxsuffix " , @newObs) . ".moc.$cxxsuffix";
+        foreach $file (@newObs) {
+            $dep_files .= " \$(DEPDIR)/$file.moc.P" if($dep_files !~/$file.moc.P/);
+        }
+    }
+    if (@depend) {
+        $dependmocs{$program} .= " ";
+        $dependmocs{$program} .= join('.moc ', @depend) . ".moc";
+        $dependmocs{$program} .= " ";
+    }
+    addMocRules ();
+    @globalmocs{keys %mocFiles}=values %mocFiles;
+}
+
+#-----------------------------------------------------------------------------
+
+# Returns 0 if the line was processed - 1 otherwise.
+# Errors are logged in the global $errorflags
+sub tag_AUTOMAKE ()
+{
+    my $lookup = '.*cd \$\(top_srcdir\)\s+&&[\034\s]+\$\(AUTOMAKE\)(.*)';
+    return 1    if ($MakefileData !~ /\n($lookup)\n/);
+    print STDOUT "AUTOMAKE processing <$1>\n"        if ($verbose);
+
+    my $newLine = $1."\n\tcd \$(top_srcdir) && perl $thisProg $printname";
+    substituteLine ($lookup, $newLine);
+    $automkCall = $1;
+
+    $lookup = '.*cd \$\(srcdir\)\s+&&[\034\s]+\$\(AUTOCONF\)(.*)';
+    if ($MakefileData =~ /\n($lookup)\n/) {
+      $newLine = "\tcd \$(srcdir) && rm -f configure && \$(MAKE) -f admin/Makefile.common configure";
+      substituteLine ($lookup, $newLine);
+    }
+
+    return 0;
+}
+
+#-----------------------------------------------------------------------------
+
+sub handle_TOPLEVEL()
+{
+    my $pofiles = "";
+    my @restfiles = ();
+    opendir (THISDIR, ".");
+    foreach $entry (readdir(THISDIR)) {
+        next if (-d $entry);
+        
+        next if ($entry eq "CVS" || $entry =~ /^\./  || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/ || $entry =~ /.gmo$/);
+                 
+        if ($entry =~ /\.po$/) {
+             next;
+        }
+        push(@restfiles, $entry);
+    }
+    closedir (THISDIR);
+            
+    if (@restfiles) {
+        $target_adds{"install-data-am"} .= "install-nls-files ";
+        $lines = "install-nls-files:\n";
+        $lines .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$kdelang\n";
+        for $file (@restfiles) {
+            $lines .= "\t\$(INSTALL_DATA) \$\(srcdir\)/$file \$(DESTDIR)\$(kde_locale)/$kdelang/$file\n";
+        }
+	$target_adds{"uninstall"} .= "uninstall-nls-files ";
+        $lines .= "uninstall-nls-files:\n";
+        for $file (@restfiles) {
+            $lines .= "\t-rm -f \$(DESTDIR)\$(kde_locale)/$kdelang/$file\n";
+        }
+        appendLines($lines);
+    }
+    
+    return 0;
+}
+
+#-----------------------------------------------------------------------------
+
+sub tag_SUBDIRS ()
+{
+  if ($MakefileData !~ /\nSUBDIRS\s*=\s*\$\(AUTODIRS\)\s*\n/) {
+    return 1;
+  }
+
+  my $subdirs = ".";
+
+  opendir (THISDIR, ".");
+  foreach $entry (readdir(THISDIR)) {
+    next if ($entry eq "CVS" || $entry =~ /^\./);
+    if (-d $entry && -f $entry . "/Makefile.am") {
+      $subdirs .= " $entry";
+      next;
+    }
+  }
+  closedir (THISDIR);
+
+  substituteLine('SUBDIRS\s*=.*', "SUBDIRS =$subdirs");
+  return 0;
+}
+
+sub tag_IDLFILES ()
+{
+    my @psources = split(/[\034\s]+/, $sources{$program});
+    my $dep_lines = "";
+    my @cppFiles = ();
+    
+    foreach $source (@psources) {
+        my $skel = ($source =~ m/\.skel$/);
+        my $stub = ($source =~ m/\.stub$/);
+        my $signals = ($source =~ m/\.signals$/); # obsolete, remove in KDE-4
+        
+        if ($stub || $skel || $signals) {
+
+            my $qs = quotemeta($source);
+            $sources{$program} =~ s/$qs//;
+            $sources_changed{$program} = 1;
+
+            $source =~ s/\.(stub|skel|signals)$//;
+            my $sourcename;
+
+            if ($skel) {
+                $sourcename = "$source\_skel";
+            } elsif ($stub) {
+                $sourcename = "$source\_stub";
+            } else {
+                $sourcename = "$source\_signals";
+            }
+            
+            my $sourcedir = '';
+            if (-f "$makefileDir/$source.h") {
+                $sourcedir = '$(srcdir)/';
+            } else {
+                if ($MakefileData =~ /\n$source\_DIR\s*=\s*(\S+)\n/) {
+                    $sourcedir = $1;
+                    $sourcedir .= "/" if ($sourcedir !~ /\/$/);
+                }
+            }
+            
+            if ($allidls !~ /$source\_kidl/) {
+                
+                $dep_lines .= "$source.kidl: $sourcedir$source.h \$(DCOP_DEPENDENCIES)\n";
+                $dep_lines .= "\t\$(DCOPIDL) $sourcedir$source.h > $source.kidl || ( rm -f $source.kidl ; false )\n";
+                
+                $allidls .= $source . "_kidl ";
+            }
+            
+            if ($allidls !~ /$sourcename/) {
+                
+                $dep_lines_tmp = "";
+
+                if ($skel) {
+                    $dep_lines .= "$sourcename.$cxxsuffix: $source.kidl\n";
+                    $dep_lines .= "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-signals --no-stub $source.kidl\n";
+                } elsif ($stub) {
+                    $dep_lines_tmp = "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-signals --no-skel $source.kidl\n";
+                } else { # signals - obsolete, remove in KDE 4
+                    $dep_lines_tmp = "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-stub --no-skel $source.kidl\n";
+                }
+
+                if ($stub || $signals) {
+                    $target_adds{"$sourcename.$cxxsuffix"} .= "$sourcename.h ";
+                    $dep_lines .= "$sourcename.h: $source.kidl\n";
+                    $dep_lines .= $dep_lines_tmp;
+                }
+                
+                $allidls .= $sourcename . " ";
+            }
+            
+            $idlfiles{$program} .= $sourcename . " ";
+            
+            if ($program =~ /_la$/) {
+                $realObjs{$program} .= " $sourcename.lo";
+            } else {
+                $realObjs{$program} .= " $sourcename.\$(OBJEXT)";
+            }
+            $sources{$program} .= " $sourcename.$cxxsuffix";
+            $sources_changed{$program} = 1;
+            $important{$program} .= "$sourcename.h " if (!$skel);
+            $idl_output .= "\\\n\t$sourcename.$cxxsuffix $sourcename.h $source.kidl ";
+            push(@cleanfiles, "$sourcename.$cxxsuffix");
+            push(@cleanfiles, "$sourcename.h");
+            push(@cleanfiles, "$sourcename.kidl");
+            $dep_files .= " \$(DEPDIR)/$sourcename.P" if ($dep_files !~/$sourcename.P/);
+        }
+    }
+    if ($dep_lines) {
+        appendLines($dep_lines);
+    }
+    
+    if (0) {
+        my $lookup = "($program)";
+        $lookup .= '(|\$\(EXEEXT\))';
+        $lookup =~ s/\_/./g;
+        $lookup .= ":(.*..$program\_OBJECTS..*)";
+        #    $lookup = quotemeta($lookup);
+        if ($MakefileData =~ /\n$lookup\n/) {
+            
+            my $line = "$1$2: ";
+            foreach $file (split(' ', $idlfiles{$program})) {
+                $line .= "$file.$cxxsuffix ";
+            }
+            $line .= $3;
+            substituteLine($lookup, $line);
+        } else {
+            print STDERR "no built dependency found $lookup\n";
+        }
+    }
+}
+
+sub tag_UIFILES ()
+{
+    my @psources = split(/[\034\s]+/, $sources{$program});
+    my @depFiles = ();
+    
+    foreach $source (@psources) {
+
+        if ($source =~ m/\.ui$/) {
+
+            print STDERR "adding UI file $source\n" if ($verbose);
+
+            my $qs = quotemeta($source);
+            $sources{$program} =~ s/$qs//;
+            $sources_changed{$program} = 1;
+      
+            $source =~ s/\.ui$//;
+
+            my $sourcedir = '';
+            if (-f "$makefileDir/$source.ui") {
+                $sourcedir = '$(srcdir)/';
+            }
+
+            if (!$uiFiles{$source}) {
+
+                my $dep_lines = "$source.$cxxsuffix: $sourcedir$source.ui $source.h $source.moc\n";
+                $dep_lines .= "\trm -f $source.$cxxsuffix\n";
+                if (!$kdeopts{"qtonly"}) {
+                    $dep_lines .= "\techo '#include <klocale.h>' > $source.$cxxsuffix\n";
+                    my ($mangled_source) = $source;
+                    $mangled_source =~ s/[^A-Za-z0-9]/_/g;  # get rid of garbage
+                    $dep_lines .= "\t\$(UIC) -tr \${UIC_TR} -i $source.h $sourcedir$source.ui > $source.$cxxsuffix.temp ; ret=\$\$?; \\\n";
+                    $dep_lines .= "\tsed -e \"s,\${UIC_TR}( \\\"\\\" ),QString::null,g\" $source.$cxxsuffix.temp | sed -e \"s,\${UIC_TR}( \\\"\\\"\\, \\\"\\\" ),QString::null,g\" | sed -e \"s,image\\([0-9][0-9]*\\)_data,img\\1_" . $mangled_source . ",g\" >> $source.$cxxsuffix ;\\\n";
+		    $dep_lines .= "\trm -f $source.$cxxsuffix.temp ;\\\n";
+                } else {
+                    $dep_lines .= "\t\$(UIC) -i $source.h $sourcedir$source.ui > $source.$cxxsuffix; ret=\$\$?; \\\n";
+                }
+		$dep_lines .= "\tif test \"\$\$ret\" = 0; then echo '#include \"$source.moc\"' >> $source.$cxxsuffix; else rm -f $source.$cxxsuffix ; exit \$\$ret ; fi\n\n";
+                $dep_lines .= "$source.h: $sourcedir$source.ui\n";
+                $dep_lines .= "\t\$(UIC) -o $source.h $sourcedir$source.ui\n\n";
+                $dep_lines .= "$source.moc: $source.h\n";
+                $dep_lines .= "\t\$(MOC) $source.h -o $source.moc\n";
+
+                $rule_adds{"$source.$cxxsuffix"} = $dep_lines;
+
+		$uiFiles{$source} = 1;
+                $dependmocs{$program} .= " $source.moc";
+                $globalmocs{$source} = "\035$source.h\035$source.cpp";
+            }
+            
+            if ($program =~ /_la$/) {
+                $realObjs{$program} .= " $source.lo";
+            } else {
+                $realObjs{$program} .= " $source.\$(OBJEXT)";
+            }
+            $sources{$program} .= " $source.$cxxsuffix";
+            $sources_changed{$program} = 1;
+            $important{$program} .= "$source.h ";
+            $ui_output .= "\\\n\t$source.$cxxsuffix $source.h $source.moc ";
+            push(@cleanfiles, "$source.$cxxsuffix");
+            push(@cleanfiles, "source.h");
+            push(@cleanfiles, "$source.moc");
+            $dep_files .= " \$(DEPDIR)/$source.P" if($dep_files !~/$source.P/ );
+        }
+    }
+}
+
+sub tag_ICON()
+{
+    my $lookup = '([^\s]*)_ICON\s*=[ \t]*(.*)';
+    my $install = "";
+    my $uninstall = "";
+
+    while ($MakefileData =~ /\n$lookup/g) {
+        my $destdir;
+        if ($1 eq "KDE") {
+            $destdir = "kde_icondir";
+        } else {
+            $destdir = $1 . "dir";
+        }
+        my $iconauto = ($2 =~ /AUTO\s*$/);
+        my @appnames = ();
+        if ( ! $iconauto ) {
+	    my $appicon_str = $2;
+            my @_appnames = split(" ", $appicon_str);
+            print STDOUT "KDE_ICON processing <@_appnames>\n"   if ($verbose);
+            foreach $appname (@_appnames) {
+                push(@appnames, quotemeta($appname));
+            }
+        } else {
+            print STDOUT "KDE_ICON processing <AUTO>\n"   if ($verbose);
+        }
+
+        my @files = ();
+        opendir (THISDIR, ".");
+        foreach $entry (readdir(THISDIR)) {
+            next if ($entry eq "CVS" || $entry =~ /^\./  || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/);
+            next if (! -f $entry);
+            if ( $iconauto )
+              {
+                  push(@files, $entry)
+                    if ($entry =~ /\.xpm/ || $entry =~ /\.png/ || $entry =~ /\.mng/ || $entry =~ /\.svg/);
+              } else {
+                  foreach $appname (@appnames) {
+                      push(@files, $entry)
+                        if ($entry =~ /-$appname\.xpm/ || $entry =~ /-$appname\.png/ || $entry =~ /-$appname\.mng/ || $entry =~ /-$appname\.svg/);
+                  }
+              }
+        }
+        closedir (THISDIR);
+        
+        my %directories = ();
+        
+        foreach $file (@files) {
+            my $newfile = $file;
+            my $prefix = $file;
+            $prefix =~ s/\.(png|xpm|mng|svg|svgz)$//;
+            my $appname = $prefix;
+            $appname =~ s/^[^-]+-// if ($appname =~ /-/) ;
+            $appname =~ s/^[^-]+-// if ($appname =~ /-/) ;
+            $appname = quotemeta($appname);
+            $prefix =~ s/$appname$//;
+            $prefix =~ s/-$//;
+            
+            $prefix = 'lo16-app' if ($prefix eq 'mini');
+            $prefix = 'lo32-app' if ($prefix eq 'lo');
+            $prefix = 'hi48-app' if ($prefix eq 'large');
+            $prefix .= '-app' if ($prefix =~ m/^...$/);
+            
+            my $type = $prefix;
+            $type =~ s/^.*-([^-]+)$/$1/;
+            $prefix =~ s/^(.*)-[^-]+$/$1/;
+            
+            my %type_hash =
+              (
+               'action' => 'actions',
+               'app' => 'apps',
+               'device' => 'devices',
+               'filesys' => 'filesystems',
+               'mime' => 'mimetypes'
+              );
+
+            if (! defined $type_hash{$type} ) {
+                print STDERR "unknown icon type $type in $printname ($file)\n";
+                next;
+            }
+
+            my %dir_hash =
+              (
+               'los' => 'locolor/16x16',
+               'lom' => 'locolor/32x32',
+               'him' => 'hicolor/32x32',
+               'hil' => 'hicolor/48x48',
+               'lo16' => 'locolor/16x16',
+               'lo22' => 'locolor/22x22',
+               'lo32' => 'locolor/32x32',
+               'hi16' => 'hicolor/16x16',
+               'hi22' => 'hicolor/22x22',
+               'hi32' => 'hicolor/32x32',
+               'hi48' => 'hicolor/48x48',
+               'hi64' => 'hicolor/64x64',
+               'hi128' => 'hicolor/128x128',
+               'hisc' => 'hicolor/scalable',
+ 	       'cr16' => 'crystalsvg/16x16',
+               'cr22' => 'crystalsvg/22x22',
+               'cr32' => 'crystalsvg/32x32',
+               'cr48' => 'crystalsvg/48x48',
+               'cr64' => 'crystalsvg/64x64',
+               'cr128' => 'crystalsvg/128x128',
+               'crsc' => 'crystalsvg/scalable'
+              );
+            
+            $newfile =~ s@.*-($appname\.(png|xpm|mng|svgz|svg?))@$1@;
+            
+            if (! defined $dir_hash{$prefix}) {
+                print STDERR "unknown icon prefix $prefix in $printname\n";
+                next;
+            }
+            
+            my $dir = $dir_hash{$prefix} . "/" . $type_hash{$type};
+            if ($newfile =~ /-[^\.]/) {
+                my $tmp = $newfile;
+                $tmp =~ s/^([^-]+)-.*$/$1/;
+                $dir = $dir . "/" . $tmp;
+                $newfile =~ s/^[^-]+-//;
+            }
+            
+            if (!defined $directories{$dir}) {
+                $install .= "\t\$(mkinstalldirs) \$(DESTDIR)\$($destdir)/$dir\n";
+                $directories{$dir} = 1;
+            }
+            
+            $install .= "\t\$(INSTALL_DATA) \$(srcdir)/$file \$(DESTDIR)\$($destdir)/$dir/$newfile\n";
+            $uninstall .= "\t-rm -f \$(DESTDIR)\$($destdir)/$dir/$newfile\n";
+            
+        }
+    }
+
+    if (length($install)) {
+        $target_adds{"install-data-am"} .= "install-kde-icons ";
+        $target_adds{"uninstall-am"} .= "uninstall-kde-icons ";
+        appendLines("install-kde-icons:\n" . $install . "\nuninstall-kde-icons:\n" . $uninstall);
+    }
+}
+
+sub handle_POFILES($$)
+{
+  my @pofiles = split(" ", $_[0]);
+  my $lang = $_[1];
+
+  # Build rules for creating the gmo files
+  my $tmp = "";
+  my $allgmofiles     = "";
+  my $pofileLine   = "POFILES =";
+  foreach $pofile (@pofiles)
+    {
+        $pofile =~ /(.*)\.[^\.]*$/;          # Find name minus extension
+        $tmp .= "$1.gmo: $pofile\n";
+        $tmp .= "\trm -f $1.gmo; \$(GMSGFMT) -o $1.gmo \$(srcdir)/$pofile\n";
+        $tmp .= "\ttest ! -f $1.gmo || touch $1.gmo\n";
+        $allgmofiles .= " $1.gmo";
+        $pofileLine  .= " $1.po";
+    }
+  appendLines ($tmp);
+  my $lookup = 'POFILES\s*=([^\n]*)';
+  if ($MakefileData !~ /\n$lookup/) {
+    appendLines("$pofileLine\nGMOFILES =$allgmofiles");
+  } else {
+    substituteLine ($lookup, "$pofileLine\nGMOFILES =$allgmofiles");
+  }
+
+    if ($allgmofiles) {
+
+        # Add the "clean" rule so that the maintainer-clean does something
+        appendLines ("clean-nls:\n\t-rm -f $allgmofiles\n");
+
+	$target_adds{"maintainer-clean"} .= "clean-nls ";
+
+	$lookup = 'DISTFILES\s*=[ \t]*(.*)';
+	if ($MakefileData =~ /\n$lookup/) {
+	  $tmp = "DISTFILES = \$(GMOFILES) \$(POFILES) $1";
+	  substituteLine ($lookup, $tmp);
+	}
+    }
+
+  $target_adds{"install-data-am"} .= "install-nls ";
+
+  $tmp = "install-nls:\n";
+  if ($lang) {
+    $tmp  .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES\n";
+  }
+  $tmp .= "\t\@for base in ";
+  foreach $pofile (@pofiles)
+    {
+      $pofile =~ /(.*)\.[^\.]*$/;          # Find name minus extension
+      $tmp .= "$1 ";
+    }
+
+  $tmp .= "; do \\\n";
+  if ($lang) {
+    $tmp .= "\t  echo \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n";
+    $tmp .= "\t  if test -f \$\$base.gmo; then \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n";
+    $tmp .= "\t  elif test -f \$(srcdir)/\$\$base.gmo; then \$(INSTALL_DATA) \$(srcdir)/\$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n";
+    $tmp .= "\t  fi ;\\\n";
+  } else {
+    $tmp .= "\t  echo \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n";
+    $tmp .= "\t  \$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES ; \\\n";
+    $tmp .= "\t  if test -f \$\$base.gmo; then \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n";
+    $tmp .= "\t  elif test -f \$(srcdir)/\$\$base.gmo; then \$(INSTALL_DATA) \$(srcdir)/\$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n";
+    $tmp .= "\t  fi ;\\\n";
+  }
+  $tmp .= "\tdone\n\n";
+  appendLines ($tmp);
+
+  $target_adds{"uninstall"} .= "uninstall-nls ";
+
+  $tmp = "uninstall-nls:\n";
+  foreach $pofile (@pofiles)
+    {
+      $pofile =~ /(.*)\.[^\.]*$/;          # Find name minus extension
+      if ($lang) {
+	$tmp .= "\trm -f \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/$1.mo\n";
+      } else {
+	$tmp .= "\trm -f \$(DESTDIR)\$(kde_locale)/$1/LC_MESSAGES/\$(PACKAGE).mo\n";
+      }
+    }
+  appendLines($tmp);
+
+  $target_adds{"all"} .= "all-nls ";
+
+  $tmp = "all-nls: \$(GMOFILES)\n";
+
+  appendLines($tmp);
+
+  $target_adds{"distdir"} .= "distdir-nls ";
+
+  $tmp = "distdir-nls:\$(GMOFILES)\n";
+  $tmp .= "\tfor file in \$(POFILES); do \\\n";
+  $tmp .= "\t  cp \$(srcdir)/\$\$file \$(distdir); \\\n";
+  $tmp .= "\tdone\n";
+  $tmp .= "\tfor file in \$(GMOFILES); do \\\n";
+  $tmp .= "\t  cp \$(srcdir)/\$\$file \$(distdir); \\\n";
+  $tmp .= "\tdone\n";
+
+  appendLines ($tmp);
+
+  if (!$lang) {
+    appendLines("merge:\n\t\$(MAKE) -C \$(top_srcdir)/po -f \$(top_srcdir)/admin/Makefile.common package-merge POFILES=\"\${POFILES}\" PACKAGE=\${PACKAGE}\n\n");
+  }
+ 
+}
+
+#-----------------------------------------------------------------------------
+
+# Returns 0 if the line was processed - 1 otherwise.
+# Errors are logged in the global $errorflags
+sub tag_POFILES ()
+{
+    my $lookup = 'POFILES\s*=([^\n]*)';
+    return 1    if ($MakefileData !~ /\n$lookup/);
+    print STDOUT "POFILES processing <$1>\n"   if ($verbose);
+
+    my $tmp = $1;
+
+    # make sure these are all gone.
+    if ($MakefileData =~ /\n\.po\.gmo:\n/)
+    {
+        print STDERR "Warning: Found old .po.gmo rules in $printname. New po rules not added\n";
+        return 1;
+    }
+
+    # Either find the pofiles in the directory (AUTO) or use
+    # only the specified po files.
+    my $pofiles = "";
+    if ($tmp =~ /^\s*AUTO\s*$/)
+    {
+        opendir (THISDIR, ".");
+	$pofiles =  join(" ", grep(/\.po$/, readdir(THISDIR)));
+        closedir (THISDIR);
+        print STDOUT "pofiles found = $pofiles\n"   if ($verbose);
+	if (-f "charset" && -f "kdelibs.po") {
+	    handle_TOPLEVEL();
+	}
+    }
+    else
+    {
+        $tmp =~ s/\034/ /g;
+        $pofiles = $tmp;
+    }
+    return 1    if (!$pofiles);        # Nothing to do
+
+    handle_POFILES($pofiles, $kdelang);
+
+    return 0;
+}
+
+sub helper_LOCALINSTALL($)
+{
+  my $lookup = "\035" . $_[0] . " *:[^\035]*\035\t";
+  my $copy = $MakefileData;
+  $copy =~ s/\n/\035/g;
+  if ($copy =~ /($lookup.*)$/) {
+
+    $install = $1;
+    $install =~ s/\035$_[0] *:[^\035]*\035//;
+    my $emptyline = 0;
+    while (! $emptyline ) {
+      if ($install =~ /([^\035]*)\035(.*)/) {
+	local $line = $1;
+	$install = $2;
+	if ($line !~ /^\s*$/ && $line !~ /^(\@.*\@)*\t/) {
+	  $emptyline = 1;
+	} else {
+	  replaceDestDir($line);
+	}
+      } else {
+	$emptyline = 1;
+      }
+    }
+  }
+
+}
+
+sub tag_LOCALINSTALL ()
+{
+  helper_LOCALINSTALL('install-exec-local');
+  helper_LOCALINSTALL('install-data-local');
+  helper_LOCALINSTALL('uninstall-local');
+
+  return 0;
+}
+
+sub replaceDestDir($) {
+  local $line = $_[0];
+
+  if (   $line =~ /^\s*(\@.*\@)*\s*\$\(mkinstalldirs\)/
+      || $line =~ /^\s*(\@.*\@)*\s*\$\(INSTALL\S*\)/
+      || $line =~ /^\s*(\@.*\@)*\s*(-?rm.*) \S*$/)
+  {
+    $line =~ s/^(.*) ([^\s]+)\s*$/$1 \$(DESTDIR)$2/ if ($line !~ /\$\(DESTDIR\)/);
+  }
+
+  if ($line ne $_[0]) {
+    $_[0] = quotemeta $_[0];
+    substituteLine($_[0], $line);
+  }
+}
+
+#---------------------------------------------------------------------------
+# libtool is very hard to persuade it could use -Wl,--no-undefined for making
+# -no-undefined actually work
+# append $(KDE_NO_UNFINED) after every -no-undefined in LDFLAGS
+# this may go away if libtool ever does this on its own
+sub tag_NO_UNDEFINED () {
+    return if ($program !~ /_la$/);
+
+    my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n";
+    $MakefileData =~ m/$lookup/;
+    return if (!defined($1));
+    return if ($1 !~ /CXXLINK/);
+
+    if ($MakefileData !~ /\n$program\_LDFLAGS\s*=.*-no-undefined/ ) {
+        return;
+    }
+
+    $lookup = $program . '\_LDFLAGS(\s*)=(.*)-no-undefined(.*)';
+    if ($MakefileData =~ /\n$lookup\n/) {
+	my $replace = $program . "\_LDFLAGS$1=$2-no-undefined \$(KDE_NO_UNDEFINED)$3";
+        substituteLine($lookup, $replace);
+    }
+}
+
+sub tag_CLOSURE () {
+    return if ($program !~ /_la$/);
+
+    my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n";
+    $MakefileData =~ m/$lookup/;
+    return if (!defined($1));
+    return if ($1 !~ /CXXLINK/);
+
+    if ($MakefileData !~ /\n$program\_LDFLAGS\s*=.*-no-undefined/ &&
+        $MakefileData !~ /\n$program\_LDFLAGS\s*=.*KDE_PLUGIN/ ) {
+        print STDERR "Report: $program contains undefined in $printname\n" if ($program =~ /^lib/ && $dryrun);
+        return;
+    }
+
+    my $closure = $realname{$program} . ".closure";
+    my $lines = "$closure: \$($program\_OBJECTS) \$($program\_DEPENDENCIES)\n";
+    $lines .= "\t\@echo \"int main() {return 0;}\" > $program\_closure.$cxxsuffix\n";
+    $lines .= "\t\@\$\(LTCXXCOMPILE\) -c $program\_closure.$cxxsuffix\n";
+    $lines .= "\t\$\(CXXLINK\) $program\_closure.lo \$($program\_LDFLAGS) \$($program\_OBJECTS) \$($program\_LIBADD) \$(LIBS)\n";
+    $lines .= "\t\@rm -f $program\_closure.* $closure\n";
+    $lines .= "\t\@echo \"timestamp\" > $closure\n";
+    $lines .= "\n";
+    appendLines($lines);
+    $lookup = $realname{$program} . ": (.*)";
+    if ($MakefileData =~ /\n$lookup\n/) {
+        $lines  = "\@KDE_USE_CLOSURE_TRUE@". $realname{$program} . ": $closure $1";
+        $lines .= "\n\@KDE_USE_CLOSURE_FALSE@" . $realname{$program} . ": $1";
+        substituteLine($lookup, $lines);
+    }
+    $closure_output .= " $closure";
+}
+
+sub tag_NMCHECK () {
+    return if ($program !~ /_la$/);
+    my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n";
+    $MakefileData =~ m/$lookup/;
+    my $linkcmd = $1;
+    return if (!defined($1));
+    return if ($linkcmd !~ /CXXLINK/ && $linkcmd !~ /LINK/);
+
+    $lookup = $program . '_NMCHECK\s*=([^\n]*)';
+    if( $MakefileData !~ m/\n$lookup\n/ ) {
+	return;
+    }
+    my $allowed = $1;
+    $allowed =~ s/^ *//;
+    $lookup = $program . '_NMCHECKWEAK\s*=([^\n]*)';
+    my $weak = "";
+    my $is_weak = 0;
+    if( $MakefileData =~ m/\n$lookup\n/ ) {
+	$weak = $1;
+	$is_weak = 1;
+    }
+    $weak =~ s/^ *//;
+
+    if( $is_weak )
+    {
+	$weak = '--allowweak=\'' . $weak . '\' ';
+    }
+    my $nmline = "\@KDE_USE_NMCHECK_TRUE@\t\@\$(MAKE) \$(AM_MAKEFLAGS) nmcheck_$realname{$program} || ( rm -f $realname{$program}; exit 1 )";
+    $lookup = '(\t\$\(CXXLINK\)[^\n]*' . $program . '_OBJECTS[^\n]*)';
+    if( $MakefileData =~ /\n$lookup\n/ ) {
+	my $oldstuff = $1;
+	substituteLine( $lookup, $oldstuff . "\n" . $nmline );
+    }
+    $lookup = '(\t\$\(LINK\)[^\n]*' . $program . '_OBJECTS[^\n]*)';
+    if( $MakefileData =~ /\n$lookup\n/ ) {
+	my $oldstuff = $1;
+	substituteLine( $lookup, $oldstuff . "\n" . $nmline );
+    }
+    $nmline = "\@\$(top_srcdir)/admin/nmcheck $realname{$program} \'$allowed\' $weak";
+    appendLines( "\nnmcheck_$realname{$program}: $realname{$program} \n\t$nmline\n" );
+    $target_adds{ "nmcheck" } .= "nmcheck_$realname{$program} ";
+}
+
+sub tag_DIST () {
+    my %foundfiles = ();
+    opendir (THISDIR, ".");
+    foreach $entry (readdir(THISDIR)) {
+        next if ($entry eq "CVS" || $entry =~ /^\./  || $entry eq "Makefile" || $entry =~ /~$/ || $entry =~ /^\#.*\#$/);
+        next if (! -f $entry);
+        next if ($entry =~ /\.moc/ || $entry =~ /\.moc.$cppExt$/ || $entry =~ /\.lo$/ || $entry =~ /\.la$/ || $entry =~ /\.o/);
+        next if ($entry =~ /\.all_$cppExt\.$cppExt$/);
+        $foundfiles{$entry} = 1;
+    }
+    closedir (THISDIR);
+
+    # doing this for MAINTAINERCLEANFILES would be wrong
+    my @marks = ("EXTRA_DIST", "DIST_COMMON", '\S*_SOURCES', '\S*_HEADERS', 'CLEANFILES', 'DISTCLEANFILES', '\S*_OBJECTS');
+    foreach $mark (@marks) {
+        while ($MakefileData =~ /\n($mark)\s*=[ \t]*([^\n]*)/g) {
+	    my $cleanfiles_str = $2;
+            foreach $file (split('[\034\s]+', $cleanfiles_str)) {
+                $file =~ s/\.\///;
+                $foundfiles{$file} = 0 if (defined $foundfiles{$file});
+            }
+        }
+    }
+    my @files = ("Makefile", "config.cache", "config.log", "stamp-h",
+                 "stamp-h1", "stamp-h1", "config.h", "Makefile", 
+                 "config.status", "config.h", "libtool", "core" );
+    foreach $file (@files) {
+        $foundfiles{$file} = 0 if (defined $foundfiles{$file});
+    }
+
+    my $KDE_DIST = "";
+    foreach $file (keys %foundfiles) {
+        if ($foundfiles{$file} == 1) {
+            $KDE_DIST .= "$file ";
+        }
+    }
+    if ($KDE_DIST) {
+        print "KDE_DIST $printname $KDE_DIST\n" if ($verbose);
+
+        my $lookup = 'DISTFILES\s*=[ \t]*(.*)';
+        if ($MakefileData =~ /\n$lookup/) {
+            substituteLine($lookup, "DISTFILES = $1 \$(KDE_DIST)");
+            appendLines("KDE_DIST=$KDE_DIST\n");
+        }
+    }
+}
+
+#-----------------------------------------------------------------------------
+# Returns 0 if the line was processed - 1 otherwise.
+# Errors are logged in the global $errorflags
+sub tag_DOCFILES ()
+{
+    $target_adds{"all"} .= "docs-am ";
+
+    my $lookup = 'KDE_DOCS\s*=[ \t]*([^\n]*)';
+    goto nodocs    if ($MakefileData !~ /\n$lookup/);
+    print STDOUT "KDE_DOCS processing <$1>\n"   if ($verbose);
+
+    my $tmp = $1;
+
+    # Either find the files in the directory (AUTO) or use
+    # only the specified po files.
+    my $files = "";
+    my $appname = $tmp;
+    $appname =~ s/^(\S*)\s*.*$/$1/;
+    if ($appname =~ /AUTO/) {
+      $appname = basename($makefileDir);
+      if ("$appname" eq "en") {
+      	  print STDERR "Error: KDE_DOCS = AUTO relies on the directory name. Yours is 'en' - you most likely want something else, e.g. KDE_DOCS = myapp\n";
+          exit(1);
+      }
+    }
+
+    if ($tmp !~ / - /)
+    {
+        opendir (THISDIR, ".");
+	foreach $entry (readdir(THISDIR)) {
+	  next if ($entry eq "CVS" || $entry =~ /^\./  || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/ || $entry eq "core" || $entry eq "index.cache.bz2");
+	  next if (! -f $entry);
+	  $files .= "$entry ";
+	}
+        closedir (THISDIR);
+        print STDOUT "docfiles found = $files\n"   if ($verbose);
+    }
+    else
+    {
+        $tmp =~ s/\034/ /g;
+	$tmp =~ s/^\S*\s*-\s*//;
+        $files = $tmp;
+    }
+    goto nodocs if (!$files);        # Nothing to do
+
+    if ($files =~ /(^| )index\.docbook($| )/) {
+
+      my $lines = "";
+      my $lookup = 'MEINPROC\s*=';
+      if ($MakefileData !~ /\n($lookup)/) {
+	$lines = "MEINPROC=/\$(kde_bindir)/meinproc\n";
+      }
+      $lookup = 'KDE_XSL_STYLESHEET\s*=';
+      if ($MakefileData !~ /\n($lookup)/) {
+        $lines .= "KDE_XSL_STYLESHEET=/\$(kde_datadir)/ksgmltools2/customization/kde-chunk.xsl\n";
+      }
+      $lookup = '\nindex.cache.bz2:';
+      if ($MakefileData !~ /\n($lookup)/) {
+         $lines .= "index.cache.bz2: \$(srcdir)/index.docbook \$(KDE_XSL_STYLESHEET) $files\n";
+         $lines .= "\t\@if test -n \"\$(MEINPROC)\"; then echo \$(MEINPROC) --check --cache index.cache.bz2 \$(srcdir)/index.docbook; \$(MEINPROC) --check --cache index.cache.bz2 \$(srcdir)/index.docbook; fi\n";
+         $lines .= "\n";
+      }
+
+      $lines .= "docs-am: index.cache.bz2\n";
+      $lines .= "\n";
+      $lines .= "install-docs: docs-am install-nls\n";
+      $lines .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n";
+      $lines .= "\t\@if test -f index.cache.bz2; then \\\n";
+      $lines .= "\techo \$(INSTALL_DATA) index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n";
+      $lines .= "\t\$(INSTALL_DATA) index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n";
+      $lines .= "\telif test -f  \$(srcdir)/index.cache.bz2; then \\\n";
+      $lines .= "\techo \$(INSTALL_DATA) \$(srcdir)/index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n";
+      $lines .= "\t\$(INSTALL_DATA) \$(srcdir)/index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n";
+      $lines .= "\tfi\n";
+      $lines .= "\t-rm -f \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/common\n";
+      $lines .= "\t\$(LN_S) \$(kde_libs_htmldir)/$kdelang/common \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/common\n";
+
+      $lines .= "\n";
+      $lines .= "uninstall-docs:\n";
+      $lines .= "\t-rm -rf \$(kde_htmldir)/$kdelang/$appname\n";
+      $lines .= "\n";
+      $lines .= "clean-docs:\n";
+      $lines .= "\t-rm -f index.cache.bz2\n";
+      $lines .= "\n";
+      $target_adds{"install-data-am"} .= "install-docs ";
+      $target_adds{"uninstall"} .= "uninstall-docs ";
+      $target_adds{"clean-am"} .= "clean-docs ";
+      appendLines ($lines);
+    } else {
+      appendLines("docs-am: $files\n");
+    }
+
+    $target_adds{"install-data-am"} .= "install-nls ";
+    $target_adds{"uninstall"} .= "uninstall-nls ";
+
+    $tmp = "install-nls:\n";
+    $tmp .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n";
+    $tmp .= "\t\@for base in $files; do \\\n";
+    $tmp .= "\t  echo \$(INSTALL_DATA) \$\$base \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n";
+    $tmp .= "\t  \$(INSTALL_DATA) \$(srcdir)/\$\$base \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n";
+    $tmp .= "\tdone\n";
+    if ($appname eq 'common') {
+      $tmp .= "\t\@echo \"merging common and language specific dir\" ;\\\n";
+      $tmp .= "\tif test ! -f \$(kde_htmldir)/en/common/kde-common.css; then echo 'no english docs found in \$(kde_htmldir)/en/common/'; exit 1; fi \n";
+      $tmp .= "\t\@com_files=`cd \$(kde_htmldir)/en/common && echo *` ;\\\n";
+      $tmp .= "\tcd \$(DESTDIR)\$(kde_htmldir)/$kdelang/common ;\\\n";
+      $tmp .= "\tif test -n \"\$\$com_files\"; then for p in \$\$com_files ; do \\\n";
+      $tmp .= "\t  case \" $files \" in \\\n";
+      $tmp .= "\t    *\" \$\$p \"*) ;; \\\n";
+      $tmp .= "\t    *) test ! -f \$\$p && echo \$(LN_S) ../../en/common/\$\$p \$(DESTDIR)\$(kde_htmldir)/$kdelang/common/\$\$p && \$(LN_S) ../../en/common/\$\$p \$\$p ;; \\\n";
+      $tmp .= "\t  esac ; \\\n";
+      $tmp .= "\tdone ; fi ; true\n";
+    }
+    $tmp .= "\n";
+    $tmp .= "uninstall-nls:\n";
+    $tmp .= "\tfor base in $files; do \\\n";
+    $tmp .= "\t  rm -f \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n";
+    $tmp .= "\tdone\n\n";
+    appendLines ($tmp);
+
+    $target_adds{"distdir"} .= "distdir-nls ";
+
+    $tmp = "distdir-nls:\n";
+    $tmp .= "\tfor file in $files; do \\\n";
+    $tmp .= "\t  cp \$(srcdir)/\$\$file \$(distdir); \\\n";
+    $tmp .= "\tdone\n";
+
+    appendLines ($tmp);
+
+    return 0;
+
+  nodocs:
+    appendLines("docs-am:\n");
+    return 1;
+}
+
+#-----------------------------------------------------------------------------
+# Find headers in any of the source directories specified previously, that
+# are candidates for "moc-ing".
+sub findMocCandidates ()
+{
+    foreach $dir (@headerdirs)
+    {
+        my @list = ();
+        opendir (SRCDIR, "$dir");
+        @hFiles = grep { /.+\.$hExt$/o && !/^\./ } readdir(SRCDIR);
+        closedir SRCDIR;
+        foreach $hf (@hFiles)
+        {
+            next if ($hf =~ /^\.\#/);
+	    $hf =~ /(.*)\.[^\.]*$/;          # Find name minus extension
+	    next if ($uiFiles{$1});
+            open (HFIN, "$dir/$hf") || die "Could not open $dir/$hf: $!\n";
+            my $hfsize = 0;
+            seek(HFIN, 0, 2);
+            $hfsize = tell(HFIN);
+            seek(HFIN, 0, 0);
+            read HFIN, $hfData, $hfsize;
+            close HFIN;
+            # push (@list, $hf) if(index($hfData, "Q_OBJECT") >= 0); ### fast but doesn't handle //Q_OBJECT
+	    # handle " { friend class blah; Q_OBJECT ", but don't match antlarr_Q_OBJECT (\b).
+            if ( $hfData =~ /{([^}]*)\bQ_OBJECT/s ) {
+                push (@list, $hf) unless $1 =~ m://[^\n]*Q_OBJECT[^\n]*$:s;  ## reject "// Q_OBJECT"
+            }
+        }
+        # The assoc array of root of headerfile and header filename
+        foreach $hFile (@list)
+        {
+            $hFile =~ /(.*)\.[^\.]*$/;          # Find name minus extension
+            if ($mocFiles{$1})
+            {
+              print STDERR "Warning: Multiple header files found for $1\n";
+              next;                           # Use the first one
+            }
+            $mocFiles{$1} = "$dir\035$hFile";   # Add relative dir
+        }
+    }
+
+    return 0;
+}
+
+#-----------------------------------------------------------------------------
+
+# The programmer has specified a moc list. Prune out the moc candidates
+# list that we found based on looking at the header files. This generates
+# a warning if the programmer gets the list wrong, but this doesn't have
+# to be fatal here.
+sub pruneMocCandidates ($)
+{
+    my %prunedMoc = ();
+    local @mocList = split(' ', $_[0]);
+
+    foreach $mocname (@mocList)
+    {
+        $mocname =~ s/\.moc$//;
+        if ($mocFiles{$mocname})
+        {
+            $prunedMoc{$mocname} = $mocFiles{$mocname};
+        }
+        else
+        {
+            my $print = $makefileDir;
+            $print =~ s/^\Q$topdir\E\\//;
+            # They specified a moc file but we can't find a header that
+            # will generate this moc file. That's possible fatal!
+            print STDERR "Warning: No moc-able header file for $print/$mocname\n";
+        }
+    }
+
+    undef %mocFiles;
+    %mocFiles = %prunedMoc;
+}
+
+#-----------------------------------------------------------------------------
+
+# Finds the cpp files (If they exist).
+# The cpp files get appended to the header file separated by \035
+sub checkMocCandidates ()
+{
+    my @cppFiles;
+    my $cpp2moc;  # which c++ file includes which .moc files
+    my $moc2cpp;  # which moc file is included by which c++ files
+
+    return unless (keys %mocFiles);
+    opendir(THISDIR, ".") || return;
+    @cppFiles = grep { /.+\.$cppExt$/o  && !/.+\.moc\.$cppExt$/o
+                         && !/.+\.all_$cppExt\.$cppExt$/o
+			 && !/^\./  } readdir(THISDIR);
+    closedir THISDIR;
+    return unless (@cppFiles);
+    my $files = join (" ", @cppFiles);
+    $cpp2moc = {};
+    $moc2cpp = {};
+    foreach $cxxf (@cppFiles)
+    {
+      open (CXXFIN, $cxxf) || die "Could not open $cxxf: $!\n";
+      seek(CXXFIN, 0, 2);
+      my $cxxfsize = tell(CXXFIN);
+      seek(CXXFIN, 0, 0);
+      read CXXFIN, $cxxfData, $cxxfsize;
+      close CXXFIN;
+      while(($cxxfData =~ m/^[ \t]*\#include\s*[<\"](.*\.moc)[>\"]/gm)) {
+	$cpp2moc->{$cxxf}->{$1} = 1;
+	$moc2cpp->{$1}->{$cxxf} = 1;
+      }
+    }
+    foreach my $mocFile (keys (%mocFiles))
+    {
+	@cppFiles = keys %{$moc2cpp->{"$mocFile.moc"}};
+        if (@cppFiles == 1) {
+            $mocFiles{$mocFile} .= "\035" . $cppFiles[0];
+	    push(@depend, $mocFile);
+        } elsif (@cppFiles == 0) {
+            push (@newObs, $mocFile);           # Produce new object file
+            next    if ($haveAutomocTag);       # This is expected...
+            # But this is an error we can deal with - let them know
+            print STDERR
+                "Warning: No c++ file that includes $mocFile.moc\n";
+        } else {
+            # We can't decide which file to use, so it's fatal. Although as a
+            # guess we could use the mocFile.cpp file if it's in the list???
+            print STDERR
+                "Error: Multiple c++ files that include $mocFile.moc\n";
+            print STDERR "\t",join ("\t", @cppFiles),"\n";
+            $errorflag = 1;
+            delete $mocFiles{$mocFile};
+            # Let's continue and see what happens - They have been told!
+        }
+    }
+}
+
+#-----------------------------------------------------------------------------
+
+# Add the rules for generating moc source from header files
+# For Automoc output *.moc.cpp but normally we'll output *.moc
+# (We must compile *.moc.cpp separately. *.moc files are included
+# in the appropriate *.cpp file by the programmer)
+sub addMocRules ()
+{
+    my $cppFile;
+    my $hFile;
+
+    foreach $mocFile (keys (%mocFiles))
+    {
+        undef $cppFile;
+        ($dir, $hFile, $cppFile) =  split ("\035", $mocFiles{$mocFile}, 3);
+        $dir =~ s#^\.#\$(srcdir)#;
+        if (defined ($cppFile))
+        {
+	  $cppFile =~ s,\.[^.]*$,,;
+	  $target_adds{"$cppFile.o"} .= "$mocFile.moc ";
+	  $target_adds{"$cppFile.lo"} .= "$mocFile.moc ";
+	  appendLines ("$mocFile.moc: $dir/$hFile\n\t\$(MOC) $dir/$hFile -o $mocFile.moc\n");
+	  $cleanMoc .= " $mocFile.moc";
+	  appendLines ("mocs: $mocFile.moc\n");
+        }
+        else
+        {
+            appendLines ("$mocFile$mocExt: $dir/$hFile\n\t\$(MOC) $dir/$hFile -o $mocFile$mocExt\n");
+            $cleanMoc .= " $mocFile$mocExt";
+	    appendLines ("mocs: $mocFile$mocExt\n");
+        }
+    }
+}
+
+sub make_bcheck_target()
+{
+    my $lookup = 'RECURSIVE_TARGETS\s*=[ \t]*(.*)';
+    my $bcheckdep = "bcheck-am";
+    $bcheckdep = "bcheck-recursive" if ($MakefileData =~ /\n$lookup/);
+
+    my $headers= "";
+    $headers = $1 if($MakefileData =~ /\nHEADERS\s*=[ \t]*(.+)/);
+    $headers =~ s/\$\((?:noinst|EXTRA)_HEADERS\)//g;
+
+    $target_adds{"clean-am"} .= "clean-bcheck ";
+
+    my $t = "clean-bcheck: \n" .
+            "\trm -f *.bchecktest.cc *.bchecktest.cc.class a.out\n\n" .
+            "bcheck: $bcheckdep\n\n" .
+            "bcheck-am:\n" .
+           "\t\@for i in $headers; do \\\n" .
+           "\t    if test \$(srcdir)/\$\$i -nt \$\$i.bchecktest.cc; then \\\n" . 
+           "\t        echo \"int main() {return 0;}\" > \$\$i.bchecktest.cc ; \\\n" .
+           "\t        echo \"#include \\\"\$\$i\\\"\" >> \$\$i.bchecktest.cc ; \\\n" .
+           "\t        echo \"\$\$i\"; \\\n" . 
+           "\t        if ! ";
+    $t .=  $cxxsuffix eq "KKK" ?
+           "\$(CXX) \$(DEFS) -I. -I\$(srcdir) -I\$(top_builddir) \$(INCLUDES) \$(AM_CPPFLAGS) \$(CPPFLAGS) \$(KDE_CXXFLAGS) " :
+           "\$(CXXCOMPILE) ";
+    $t .=  " --dump-class-hierarchy \$\$i.bchecktest.cc; then \\\n" .
+           "\t            rm -f \$\$i.bchecktest.cc; exit 1; \\\n" .
+           "\t        fi ; \\\n" .
+           "\t        echo \"\" >> \$\$i.bchecktest.cc.class; \\\n" .
+           "\t        perl \$(top_srcdir)/admin/bcheck.pl \$\$i.bchecktest.cc.class || { rm -f \$\$i.bchecktest.cc; exit 1; }; \\\n" .
+           "\t        rm -f a.out; \\\n" .
+           "\t    fi ; \\\n" .
+           "\tdone\n";
+    appendLines("$t\n");
+}
+
+sub make_meta_classes ()
+{
+    return if ($kdeopts{"qtonly"});
+
+    my $cppFile;
+    my $hFile;
+    my $moc_class_headers = "";
+    foreach $program (@programs) {
+	my $mocs = "";
+	my @progsources = split(/[\034\s]+/, $sources{$program});
+	my @depmocs = split(' ', $dependmocs{$program});
+	my %shash = (), %mhash = ();
+	@shash{@progsources} = 1;  # we are only interested in the existence
+	@mhash{@depmocs} = 1;
+
+	print STDOUT "program=$program\n" if ($verbose);
+	print STDOUT "psources=[".join(' ', keys %shash)."]\n" if ($verbose);
+	print STDOUT "depmocs=[".join(' ', keys %mhash)."]\n" if ($verbose);
+	print STDOUT "globalmocs=[".join(' ', keys(%globalmocs))."]\n" if ($verbose);
+	foreach my $mocFile (keys (%globalmocs))
+	{
+	    my ($dir, $hFile, $cppFile) = split ("\035", $globalmocs{$mocFile}, 3);
+	    if (defined ($cppFile))
+	    {
+		$mocs .= " $mocFile.moc" if exists $shash{$cppFile};
+	    }
+	    else
+	    {
+		# Bah. This is the case, if no C++ file includes the .moc
+		# file. We make a .moc.cpp file for that. Unfortunately this
+		# is not included in the %sources hash, but rather is mentioned
+		# in %dependmocs. If the user wants to use AUTO he can't just
+		# use an unspecific METAINCLUDES. Instead he must use
+		# program_METAINCLUDES. Anyway, it's not working real nicely.
+		# E.g. Its not clear what happens if user specifies two
+		# METAINCLUDES=AUTO in the same Makefile.am.
+		$mocs .= " $mocFile.moc.$cxxsuffix"
+		    if exists $mhash{$mocFile.".moc.$cxxsuffix"};
+	    }
+	}
+	if ($mocs) {
+	    print STDOUT "==> mocs=[".$mocs."]\n" if ($verbose);
+	}
+	print STDOUT "\n" if $verbose;
+    }
+    if ($moc_class_headers) {
+        appendLines ("$cleantarget-moc-classes:\n\t-rm -f $moc_class_headers\n");
+        $target_adds{"$cleantarget-am"} .= "$cleantarget-moc-classes ";
+    }
+}
+
+#-----------------------------------------------------------------------------
+
+sub updateMakefile ()
+{
+    return if ($dryrun);
+
+    open (FILEOUT, "> $makefile")
+                        || die "Could not create $makefile: $!\n";
+
+    $MakefileData =~ s/\034/\\\n/g;    # Restore continuation lines
+    # Append our $progId line, _below_ the "generated by automake" line
+    # because automake-1.6 relies on the first line to be his own.
+    my $progIdLine = "\# $progId - " . '$Revision: 1.1.1.1 $ '."\n";
+    if ( !( $MakefileData =~ s/^(.*generated .*by automake.*\n)/$1$progIdLine/ ) ) {
+        warn "automake line not found in $makefile\n";
+	# Fallback: first line
+        print FILEOUT $progIdLine;
+    };
+    print FILEOUT $MakefileData;
+    close FILEOUT;
+}
+
+#-----------------------------------------------------------------------------
+
+# The given line needs to be removed from the makefile
+# Do this by adding the special "removed line" comment at the line start.
+sub removeLine ($$)
+{
+    my ($lookup, $old) = @_;
+
+    $old =~ s/\034/\\\n#>- /g;          # Fix continuation lines
+    $MakefileData =~ s/\n$lookup/\n#>\- $old/;
+}
+
+#-----------------------------------------------------------------------------
+
+# Replaces the old line with the new line
+# old line(s) are retained but tagged as removed. The new line(s) have the
+# "added" tag placed before it.
+sub substituteLine ($$)
+{
+    my ($lookup, $new) = @_;
+
+    if ($MakefileData =~ /\n($lookup)/) {
+      $old = $1;
+      $old =~ s/\034/\\\n#>\- /g;         # Fix continuation lines
+      my $newCount = ($new =~ tr/\034//) + ($new =~ tr/\n//) + 1;
+      $new =~ s/\\\n/\034/g;
+      $MakefileData =~ s/\n$lookup/\n#>- $old\n#>\+ $newCount\n$new/;
+    } else {
+        warn "Warning: substitution of \"$lookup\" in $printname failed\n";
+    }
+}
+
+#-----------------------------------------------------------------------------
+
+# Slap new lines on the back of the file.
+sub appendLines ($)
+{
+  my ($new) = @_;
+  my $copynew = $new;
+  my $newCount = ($new =~ tr/\034//) + ($new =~ tr/\n//) + 1;
+  $new =~ s/\\\n/\034/g;        # Fix continuation lines
+  $MakefileData .= "\n#>\+ $newCount\n$new";
+}
+
+#-----------------------------------------------------------------------------
+
+# Restore the Makefile.in to the state it was before we fiddled with it
+sub restoreMakefile ()
+{
+    $MakefileData =~ s/# $progId[^\n\034]*[\n\034]*//g;
+    # Restore removed lines
+    $MakefileData =~ s/([\n\034])#>\- /$1/g;
+    # Remove added lines
+    while ($MakefileData =~ /[\n\034]#>\+ ([^\n\034]*)/)
+    {
+        my $newCount = $1;
+        my $removeLines = "";
+        while ($newCount--) {
+            $removeLines .= "[^\n\034]*([\n\034]|)";
+        }
+        $MakefileData =~ s/[\n\034]#>\+.*[\n\034]$removeLines/\n/;
+    }
+}
+
+#-----------------------------------------------------------------------------
Index: /branches/start/Taper/admin/bcheck.pl
===================================================================
--- /branches/start/Taper/admin/bcheck.pl	(revision 4308)
+++ /branches/start/Taper/admin/bcheck.pl	(revision 4308)
@@ -0,0 +1,156 @@
+#!/usr/bin/perl -w
+
+use DB_File;
+use Fcntl ':flock';
+
+if (!defined($ARGV[0])) {
+    print "usage: requires .class dump as parameter!\n";
+    exit;
+}
+
+sub bailout
+{
+    untie %bcheckdb if(defined(%bcheckdb));
+
+    if(defined(MYLOCK)) {
+        flock MYLOCK, LOCK_UN;
+        close(MYLOCK);
+    }
+
+    print @_;
+    exit 5;
+}
+
+sub ask_user
+{
+    my ($dbkey, $dbchunk) = @_;
+
+    if (defined($ENV{"BCHECK_UPDATE"})) {
+        $bcheckdb{$dbkey} = $dbchunk;
+        return;
+    }
+
+    &bailout("BC problem detected") if (! -t STDIN);
+
+    print "(I)gnore / (Q)uit / (U)pdate: ";
+
+    my $key;
+    while(defined(read STDIN, $key, 1)) {
+        $key = lc($key);
+
+        print "got: >$key<\n";
+
+        return if ($key eq 'i');
+
+        &bailout("BC problem. aborted") if ($key eq 'q');
+
+        if ($key eq 'u') {
+            $bcheckdb{$dbkey} = $dbchunk;
+            return;
+        }
+        print "\n(I)gnore / (Q)uit / (U)pdate: ";
+    }
+}
+
+sub diff_chunk($$)
+{
+    my ($oldl, $newl) = @_;
+    my @old = split /^/m, $oldl;
+    my @new = split /^/m, $newl;
+    my $haschanges = 0;
+    my $max = $#old > $#new ? $#old : $#new;
+
+    die "whoops. key different" if ($old[0] ne $new[0]);
+
+    if ($#old != $#new) {
+        warn ("Structural difference.\n");
+        print @old;
+        print "-----------------------------------------------\n";
+        print @new;
+        $haschanges = 1;
+        return $haschanges;
+    }
+
+    print $old[0];
+
+    my ($class) = ($old[0] =~ /^(?:Class |Vtable for )(\S+)/);
+
+    my $c = 1;
+    while ($c < $max) {
+        my ($o, $n) = ($old[$c], $new[$c]);
+        chomp $o;
+        chomp $n;
+        $c++;
+        next if ($o eq $n);
+
+        if(defined($class) and $n =~ /^(\d+\s+)\w+(::\S+\s*.*)$/) {
+            next if ($n eq "$1$class$2");
+        }
+
+        $haschanges = 1;
+
+        print "-$o\n+$n\n\n";
+    }
+
+    return $haschanges;
+}
+
+local $dblock = $ENV{"HOME"} . "/bcheck.lock";
+my $dbfile = $ENV{"HOME"} . "/bcheck.db";
+my $cdump  = $ARGV[0];
+
+die "file $cdump is not readable: $!" if (! -f $cdump);
+
+# make sure the advisory lock exists
+open(MYLOCK, ">$dblock");
+print MYLOCK "";
+
+flock MYLOCK, LOCK_EX;
+
+tie %bcheckdb, 'DB_File', $dbfile;
+
+my $chunk = "";
+
+open (IN, "<$cdump") or die "cannot open $cdump: $!";
+while (<IN>) {
+
+    chop;
+
+    s/0x[0-9a-fA-F]+/0x......../g;
+    s/base size=/size=/g;
+    s/base align=/align=/g;
+
+    $chunk .= $_ . "\n";
+
+    if(/^\s*$/) {
+        my @lines = split /^/m, $chunk;
+        my $key = $lines[0];
+        chomp $key;
+
+        if($key !~ /<anonymous struct>/ &&
+           $key !~ /<anonymous union>/) {
+            if(defined($bcheckdb{$key})) {
+                my $dbversion = $bcheckdb{$key};
+
+                if($dbversion ne $chunk) {
+                     &ask_user($key, $chunk) if(&diff_chunk($dbversion, $chunk));
+                }
+            }
+            else {
+                $bcheckdb{$key} = $chunk;
+                print "NEW: $key\n";
+            }
+        }
+
+        $chunk = "";
+        next;
+    }
+
+}
+close(IN);
+
+untie %bcheckdb;
+flock MYLOCK, LOCK_UN;
+close(MYLOCK);
+
+exit 0;
Index: /branches/start/Taper/admin/compile
===================================================================
--- /branches/start/Taper/admin/compile	(revision 4308)
+++ /branches/start/Taper/admin/compile	(revision 4308)
@@ -0,0 +1,99 @@
+#! /bin/sh
+
+# Wrapper for compilers which do not understand `-c -o'.
+
+# Copyright 1999, 2000 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Usage:
+# compile PROGRAM [ARGS]...
+# `-o FOO.o' is removed from the args passed to the actual compile.
+
+prog=$1
+shift
+
+ofile=
+cfile=
+args=
+while test $# -gt 0; do
+   case "$1" in
+    -o)
+       # configure might choose to run compile as `compile cc -o foo foo.c'.
+       # So we do something ugly here.
+       ofile=$2
+       shift
+       case "$ofile" in
+	*.o | *.obj)
+	   ;;
+	*)
+	   args="$args -o $ofile"
+	   ofile=
+	   ;;
+       esac
+       ;;
+    *.c)
+       cfile=$1
+       args="$args $1"
+       ;;
+    *)
+       args="$args $1"
+       ;;
+   esac
+   shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+   # If no `-o' option was seen then we might have been invoked from a
+   # pattern rule where we don't need one.  That is ok -- this is a
+   # normal compilation that the losing compiler can handle.  If no
+   # `.c' file was seen then we are probably linking.  That is also
+   # ok.
+   exec "$prog" $args
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use `[/.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
+while true; do
+   if mkdir $lockdir > /dev/null 2>&1; then
+      break
+   fi
+   sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir $lockdir; exit 1" 1 2 15
+
+# Run the compile.
+"$prog" $args
+status=$?
+
+if test -f "$cofile"; then
+   mv "$cofile" "$ofile"
+fi
+
+rmdir $lockdir
+exit $status
Index: /branches/start/Taper/admin/conf.change.pl
===================================================================
--- /branches/start/Taper/admin/conf.change.pl	(revision 4308)
+++ /branches/start/Taper/admin/conf.change.pl	(revision 4308)
@@ -0,0 +1,191 @@
+#!/usr/bin/env perl
+
+# this script patches a config.status file, to use our own perl script
+# in the main loop
+# we do it this way to circumvent hacking (and thereby including)
+# autoconf function (which are GPL) into our LGPL acinclude.m4.in
+# written by Michael Matz <matz@kde.org>
+# adapted by Dirk Mueller <mueller@kde.org>
+#
+#   This file is free software; you can redistribute it and/or
+#   modify it under the terms of the GNU Library General Public
+#   License as published by the Free Software Foundation; either
+#   version 2 of the License, or (at your option) any later version.
+
+#   This library is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#   Library General Public License for more details.
+
+#   You should have received a copy of the GNU Library General Public License
+#   along with this library; see the file COPYING.LIB.  If not, write to
+#   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+#   Boston, MA 02111-1307, USA.
+
+# we have to change two places
+# 1. the splitting of the substitutions into chunks of 90 (or even 48 in
+#    later autoconf's
+# 2. the big main loop which patches all Makefile.in's
+
+use strict;
+use File::Basename;
+
+my $ac_aux_dir = dirname($0);
+my ($flag);
+my $ac_version = 0;
+my $vpath_seen = 0;
+$flag = 0;
+
+while (<>) {
+# usage of $flag: 0 -- we have seen nothing yet
+#   1 -- we are in (1)
+#   2 -- we have ended (1)
+#   3 -- we are in (2)
+#   4 -- we ended (2)
+
+    if ($flag == 4) {
+        print;
+    } elsif ($flag == 0) {
+# 1. begins with (including): "ac_max_sed_\S+\s*=\s*[0-9]+..."
+#    ends with (excluding) "CONFIG_FILE=..."
+#    in later autoconf (2.14.1) there is no CONFIG_FILES= line,
+#    but instead the (2) directly follow (1)
+        if (/^\s*ac_max_sed_([a-z]+).*=\s*([0-9]+)/ ) {
+	    $flag = 1;
+	    if ($1 eq 'lines') {
+                # lets hope its different with 2141, 
+                # wasn't able to verify that
+              if ($2 eq '48') {
+                $ac_version = 250;
+              }
+              else {
+	        $ac_version = 2141;
+              }
+	    } elsif ($1 eq 'cmds') {
+	        $ac_version = 213;
+	    }
+	    # hmm, we don't know the autoconf version, but we try anyway
+	} else {
+	    print;
+	}
+    } elsif ($flag == 1) {
+        if (/^\s*CONFIG_FILES=/ && ($ac_version != 250)) {
+	     print;
+	     $flag = 2;
+	} elsif (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
+	     $flag = 3;
+	}
+    } elsif ($flag == 2) {
+# 2. begins with: "for ac_file in.*CONFIG_FILES"  (the next 'for' after (1))
+#    end with: "rm -f conftest.s\*"
+# on autoconf 250, it ends with '# CONFIG_HEADER section'
+#
+# gg: if a post-processing commands section is found first, 
+#    stop there and insert a new loop to honour the case/esac.
+# (pattern: /^\s+#\sRun the commands associated with the file./)
+
+	if (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
+	    $flag = 3;
+	} else {
+	    print;
+	}
+    } elsif ($flag == 3) {
+        if (/^\s*rm\s+-f\s+conftest/ ) {
+	    $flag = 4;
+	    &insert_main_loop();
+	} elsif (/^\s*rm\s+-f\s+.*ac_cs_root/ ) {
+	    $flag = 4;
+	    &insert_main_loop();
+	    #die "hhhhhhh";
+	    if ($ac_version != 2141) {
+	        print STDERR "hmm, don't know autoconf version\n";
+	    }
+        } elsif (/^\#\s*CONFIG_(HEADER|COMMANDS) section.*|^\s+#\s(Run) the commands associated/) {
+          $flag = 4;
+          my $commands = defined $2;
+          &insert_main_loop();
+          $commands && insert_command_loop();
+          if($ac_version != 250) {
+            print STDERR "hmm, something went wrong :-(\n";
+          }
+	} elsif (/VPATH/ ) {
+	    $vpath_seen = 1;
+	}
+    }
+}
+
+die "wrong input (flag != 4)" unless $flag == 4;
+print STDERR "hmm, don't know autoconf version\n" unless $ac_version;
+
+sub insert_main_loop {
+
+  if ($ac_version == 250) {
+    &insert_main_loop_250();
+  }
+  else {
+    &insert_main_loop_213();
+  }
+}
+
+sub insert_main_loop_250 {
+
+  print <<EOF;
+  #echo Doing the fast build of Makefiles -- autoconf $ac_version
+EOF
+    if ($vpath_seen) {
+        print <<EOF;
+        # VPATH subst was seen in original config.status main loop
+  echo '/^[ 	]*VPATH[ 	]*=[^:]*\$/d' >>\$tmp/subs.sed
+EOF
+      }
+  print <<EOF;
+  rm -f \$tmp/subs.files
+  for ac_file in .. \$CONFIG_FILES ; do
+      if test "x\$ac_file" != x..; then
+          echo \$ac_file >> \$tmp/subs.files
+      fi
+  done
+  if test -f \$tmp/subs.files ; then
+      perl $ac_aux_dir/config.pl "\$tmp/subs.sed" "\$tmp/subs.files" "\$srcdir" "\$INSTALL"
+  fi
+  rm -f \$tmp/subs.files
+
+fi
+EOF
+  return;
+}
+
+sub insert_main_loop_213 {
+    print <<EOF;
+#echo Doing the fast build of Makefiles -- autoconf $ac_version
+if test "x\$ac_cs_root" = "x" ; then
+    ac_cs_root=conftest
+fi
+EOF
+    if ($vpath_seen) {
+      print <<EOF;
+# VPATH subst was seen in original config.status main loop
+echo '/^[ 	]*VPATH[ 	]*=[^:]*\$/d' >> \$ac_cs_root.subs
+EOF
+    }
+    print <<EOF;
+rm -f \$ac_cs_root.sacfiles
+for ac_file in .. \$CONFIG_FILES ; do
+    if test "x\$ac_file" != x..; then
+        echo \$ac_file >> \$ac_cs_root.sacfiles
+    fi
+done
+if test -f \$ac_cs_root.sacfiles ; then
+    perl $ac_aux_dir/config.pl "\$ac_cs_root.subs" "\$ac_cs_root.sacfiles" "\$ac_given_srcdir" "\$ac_given_INSTALL"
+fi
+rm -f \$ac_cs_root.s*
+
+EOF
+    return;
+}
+
+sub insert_command_loop {
+    print <<EOF;
+  for ac_file in .. \$CONFIG_FILES ; do
+EOF
+}
Index: /branches/start/Taper/admin/config.guess
===================================================================
--- /branches/start/Taper/admin/config.guess	(revision 4308)
+++ /branches/start/Taper/admin/config.guess	(revision 4308)
@@ -0,0 +1,1363 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002 Free Software Foundation, Inc.
+
+timestamp='2002-10-21'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit 0 ;;
+    --version | -v )
+       echo "$version" ; exit 0 ;;
+    --help | --h* | -h )
+       echo "$usage"; exit 0 ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# This shell variable is my proudest work .. or something. --bje
+
+set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
+(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
+   || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
+dummy=$tmpdir/dummy ;
+files="$dummy.c $dummy.o $dummy.rel $dummy" ;
+trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	     CC_FOR_BUILD="$c"; break ;
+	  fi ;
+	done ;
+	rm -f $files ;
+	if test x"$CC_FOR_BUILD" = x ; then
+	  CC_FOR_BUILD=no_compiler_found ;
+	fi
+	;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ;
+unset files'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+	# NetBSD (nbsd) targets should (where applicable) match one or
+	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+	# switched to ELF, *-*-netbsd* would select the old
+	# object file format.  This provides both forward
+	# compatibility and a consistent mechanism for selecting the
+	# object file format.
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	esac
+	# The Operating System including object format, if it has switched
+	# to ELF recently, or will in the future.
+	case "${UNAME_MACHINE_ARCH}" in
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+		eval $set_cc_for_build
+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+			| grep __ELF__ >/dev/null
+		then
+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+		    # Return netbsd for either.  FIX?
+		    os=netbsd
+		else
+		    os=netbsdelf
+		fi
+		;;
+	    *)
+	        os=netbsd
+		;;
+	esac
+	# The OS release
+	release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+	# contains redundant information, the shorter form:
+	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+	echo "${machine}-${os}${release}"
+	exit 0 ;;
+    amiga:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    arc:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    hp300:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mac68k:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    macppc:OpenBSD:*:*)
+	echo powerpc-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mvme68k:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mvme88k:OpenBSD:*:*)
+	echo m88k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mvmeppc:OpenBSD:*:*)
+	echo powerpc-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    pmax:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    sgi:OpenBSD:*:*)
+	echo mipseb-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    sun3:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    wgrisc:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    *:OpenBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    alpha:OSF1:*:*)
+	if test $UNAME_RELEASE = "V4.0"; then
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+	fi
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	eval $set_cc_for_build
+	cat <<EOF >$dummy.s
+	.data
+\$Lformat:
+	.byte 37,100,45,37,120,10,0	# "%d-%x\n"
+
+	.text
+	.globl main
+	.align 4
+	.ent main
+main:
+	.frame \$30,16,\$26,0
+	ldgp \$29,0(\$27)
+	.prologue 1
+	.long 0x47e03d80 # implver \$0
+	lda \$2,-1
+	.long 0x47e20c21 # amask \$2,\$1
+	lda \$16,\$Lformat
+	mov \$0,\$17
+	not \$1,\$18
+	jsr \$26,printf
+	ldgp \$29,0(\$26)
+	mov 0,\$16
+	jsr \$26,exit
+	.end main
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
+	if test "$?" = 0 ; then
+		case `$dummy` in
+			0-0)
+				UNAME_MACHINE="alpha"
+				;;
+			1-0)
+				UNAME_MACHINE="alphaev5"
+				;;
+			1-1)
+				UNAME_MACHINE="alphaev56"
+				;;
+			1-101)
+				UNAME_MACHINE="alphapca56"
+				;;
+			2-303)
+				UNAME_MACHINE="alphaev6"
+				;;
+			2-307)
+				UNAME_MACHINE="alphaev67"
+				;;
+			2-1307)
+				UNAME_MACHINE="alphaev68"
+				;;
+			3-1307)
+				UNAME_MACHINE="alphaev7"
+				;;
+		esac
+	fi
+	rm -f $dummy.s $dummy && rmdir $tmpdir
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	exit 0 ;;
+    Alpha\ *:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# Should we change UNAME_MACHINE based on the output of uname instead
+	# of the specific Alpha model?
+	echo alpha-pc-interix
+	exit 0 ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit 0 ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-unknown-sysv4
+	exit 0;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit 0 ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
+	exit 0 ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit 0 ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit 0;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit 0;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit 0 ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit 0 ;;
+    DRS?6000:UNIX_SV:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7 && exit 0 ;;
+	esac ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    i86pc:SunOS:5.*:*)
+	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit 0 ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit 0 ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit 0 ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit 0 ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit 0 ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+        exit 0 ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit 0 ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit 0 ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit 0 ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit 0 ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit 0 ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit 0 ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit 0 ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit 0 ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit 0 ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c \
+	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+	  && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+	rm -f $dummy.c $dummy && rmdir $tmpdir
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit 0 ;;
+    Motorola:PowerMAX_OS:*:*)
+	echo powerpc-motorola-powermax
+	exit 0 ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit 0 ;;
+    Night_Hawk:*:*:PowerMAX_OS)
+	echo powerpc-harris-powermax
+	exit 0 ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit 0 ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit 0 ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit 0 ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit 0 ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	    else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
+	fi
+ 	exit 0 ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit 0 ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit 0 ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit 0 ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit 0 ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit 0 ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
+	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+	echo i386-ibm-aix
+	exit 0 ;;
+    ia64:AIX:*:*)
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	exit 0 ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		eval $set_cc_for_build
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+		rm -f $dummy.c $dummy && rmdir $tmpdir
+		echo rs6000-ibm-aix3.2.5
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit 0 ;;
+    *:AIX:*:[45])
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit 0 ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit 0 ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit 0 ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit 0 ;;                           # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit 0 ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit 0 ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit 0 ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit 0 ;;
+    9000/[34678]??:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/[678][0-9][0-9])
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+              	{
+              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+              	case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+              	    switch (bits)
+              		{
+              		case 64: puts ("hppa2.0w"); break;
+              		case 32: puts ("hppa2.0n"); break;
+              		default: puts ("hppa2.0"); break;
+              		} break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+              	    puts ("hppa2.0"); break;
+              #endif
+              	default: puts ("hppa1.0"); break;
+              	}
+                  exit (0);
+              }
+EOF
+		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
+		    rm -f $dummy.c $dummy && rmdir $tmpdir
+		fi ;;
+	esac
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit 0 ;;
+    ia64:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux${HPUX_REV}
+	exit 0 ;;
+    3050*:HI-UX:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+	rm -f $dummy.c $dummy && rmdir $tmpdir
+	echo unknown-hitachi-hiuxwe2
+	exit 0 ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit 0 ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit 0 ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+	echo hppa1.0-hp-mpeix
+	exit 0 ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit 0 ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit 0 ;;
+    i*86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit 0 ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit 0 ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+        exit 0 ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+        exit 0 ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+        exit 0 ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+        exit 0 ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+        exit 0 ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit 0 ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+	      -e 's/\.[^.]*$/.X/'
+	exit 0 ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit 0 ;;
+    CRAY*T3D:*:*:*)
+	echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit 0 ;;
+    CRAY*T3E:*:*:*)
+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit 0 ;;
+    CRAY*SV1:*:*:*)
+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit 0 ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit 0 ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit 0 ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit 0 ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit 0 ;;
+    *:FreeBSD:*:*)
+	# Determine whether the default compiler uses glibc.
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <features.h>
+	#if __GLIBC__ >= 2
+	LIBC=gnu
+	#else
+	LIBC=
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+	rm -f $dummy.c && rmdir $tmpdir
+	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
+	exit 0 ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit 0 ;;
+    i*:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit 0 ;;
+    i*:PW*:*)
+	echo ${UNAME_MACHINE}-pc-pw32
+	exit 0 ;;
+    x86:Interix*:3*)
+	echo i386-pc-interix3
+	exit 0 ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+	# UNAME_MACHINE based on the output of uname instead of i386?
+	echo i386-pc-interix
+	exit 0 ;;
+    i*:UWIN*:*)
+	echo ${UNAME_MACHINE}-pc-uwin
+	exit 0 ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit 0 ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    *:GNU:*:*)
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit 0 ;;
+    i*86:Minix:*:*)
+	echo ${UNAME_MACHINE}-pc-minix
+	exit 0 ;;
+    arm*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit 0 ;;
+    ia64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit 0 ;;
+    m68*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit 0 ;;
+    mips:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef mips
+	#undef mipsel
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=mipsel
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=mips
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+	rm -f $dummy.c && rmdir $tmpdir
+	test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
+	;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
+	exit 0 ;;
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit 0 ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit 0 ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+	# Look for CPU level
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
+	esac
+	exit 0 ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit 0 ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+	echo ${UNAME_MACHINE}-ibm-linux
+	exit 0 ;;
+    sh*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit 0 ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit 0 ;;
+    x86_64:Linux:*:*)
+	echo x86_64-unknown-linux-gnu
+	exit 0 ;;
+    i*86:Linux:*:*)
+	# The BFD linker knows what the default object file format is, so
+	# first see if it will tell us. cd to the root directory to prevent
+	# problems with other programs or directories called `ld' in the path.
+	# Set LC_ALL=C to ensure ld outputs messages in English.
+	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+			 | sed -ne '/supported targets:/!d
+				    s/[ 	][ 	]*/ /g
+				    s/.*supported targets: *//
+				    s/ .*//
+				    p'`
+        case "$ld_supported_targets" in
+	  elf32-i386)
+		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+		;;
+	  a.out-i386-linux)
+		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+		exit 0 ;;
+	  coff-i386)
+		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+		exit 0 ;;
+	  "")
+		# Either a pre-BFD a.out linker (linux-gnuoldld) or
+		# one that does not give us useful --help.
+		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+		exit 0 ;;
+	esac
+	# Determine whether the default compiler is a.out or elf
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <features.h>
+	#ifdef __ELF__
+	# ifdef __GLIBC__
+	#  if __GLIBC__ >= 2
+	LIBC=gnu
+	#  else
+	LIBC=gnulibc1
+	#  endif
+	# else
+	LIBC=gnulibc1
+	# endif
+	#else
+	#ifdef __INTEL_COMPILER
+	LIBC=gnu
+	#else
+	LIBC=gnuaout
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+	rm -f $dummy.c && rmdir $tmpdir
+	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+	;;
+    i*86:DYNIX/ptx:4*:*)
+	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+	# earlier versions are messed up and put the nodename in both
+	# sysname and nodename.
+	echo i386-sequent-sysv4
+	exit 0 ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit 0 ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+	fi
+	exit 0 ;;
+    i*86:*:5:[78]*)
+	case `/bin/uname -X | grep "^Machine"` in
+	    *486*)	     UNAME_MACHINE=i486 ;;
+	    *Pentium)	     UNAME_MACHINE=i586 ;;
+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+	esac
+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	exit 0 ;;
+    i*86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit 0 ;;
+    i*86:*DOS:*:*)
+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	exit 0 ;;
+    pc:*:*:*)
+	# Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i386.
+	echo i386-pc-msdosdjgpp
+        exit 0 ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit 0 ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit 0 ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit 0 ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit 0 ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit 0 ;;
+    M68*:*:R3V[567]*:*)
+	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && echo i486-ncr-sysv4 && exit 0 ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit 0 ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit 0 ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit 0 ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit 0 ;;
+    rs6000:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit 0 ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	exit 0 ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit 0 ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit 0 ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit 0 ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit 0 ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit 0 ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes@openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit 0 ;;
+    *:*:*:FTX*)
+	# From seanf@swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit 0 ;;
+    *:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo hppa1.1-stratus-vos
+	exit 0 ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit 0 ;;
+    news*:NEWS-OS:6*:*)
+	echo mips-sony-newsos6
+	exit 0 ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+	        echo mips-nec-sysv${UNAME_RELEASE}
+	else
+	        echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+        exit 0 ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit 0 ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit 0 ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit 0 ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit 0 ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit 0 ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit 0 ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit 0 ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit 0 ;;
+    *:Darwin:*:*)
+	echo `uname -p`-apple-darwin${UNAME_RELEASE}
+	exit 0 ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = "x86"; then
+		UNAME_PROCESSOR=i386
+		UNAME_MACHINE=pc
+	fi
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	exit 0 ;;
+    *:QNX:*:4*)
+	echo i386-pc-qnx
+	exit 0 ;;
+    NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk${UNAME_RELEASE}
+	exit 0 ;;
+    *:NonStop-UX:*:*)
+	echo mips-compaq-nonstopux
+	exit 0 ;;
+    BS2000:POSIX*:*:*)
+	echo bs2000-siemens-sysv
+	exit 0 ;;
+    DS/*:UNIX_System_V:*:*)
+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	exit 0 ;;
+    *:Plan9:*:*)
+	# "uname -m" is not consistent, so use $cputype instead. 386
+	# is converted to i386 for consistency with other x86
+	# operating systems.
+	if test "$cputype" = "386"; then
+	    UNAME_MACHINE=i386
+	else
+	    UNAME_MACHINE="$cputype"
+	fi
+	echo ${UNAME_MACHINE}-unknown-plan9
+	exit 0 ;;
+    i*86:OS/2:*:*)
+	# If we were able to find `uname', then EMX Unix compatibility
+	# is probably installed.
+	echo ${UNAME_MACHINE}-pc-os2-emx
+	exit 0 ;;
+    *:TOPS-10:*:*)
+	echo pdp10-unknown-tops10
+	exit 0 ;;
+    *:TENEX:*:*)
+	echo pdp10-unknown-tenex
+	exit 0 ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+	echo pdp10-dec-tops20
+	exit 0 ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+	echo pdp10-xkl-tops20
+	exit 0 ;;
+    *:TOPS-20:*:*)
+	echo pdp10-unknown-tops20
+	exit 0 ;;
+    *:ITS:*:*)
+	echo pdp10-unknown-its
+	exit 0 ;;
+    i*86:XTS-300:*:STOP)
+	echo ${UNAME_MACHINE}-unknown-stop
+	exit 0 ;;
+    i*86:atheos:*:*)
+	echo ${UNAME_MACHINE}-unknown-atheos
+	exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+	  ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+	printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+	printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+rm -f $dummy.c $dummy && rmdir $tmpdir
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+	echo c1-convex-bsd
+	exit 0 ;;
+    c2*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit 0 ;;
+    c34*)
+	echo c34-convex-bsd
+	exit 0 ;;
+    c38*)
+	echo c38-convex-bsd
+	exit 0 ;;
+    c4*)
+	echo c4-convex-bsd
+	exit 0 ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+    ftp://ftp.gnu.org/pub/gnu/config/
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
Index: /branches/start/Taper/admin/config.pl
===================================================================
--- /branches/start/Taper/admin/config.pl	(revision 4308)
+++ /branches/start/Taper/admin/config.pl	(revision 4308)
@@ -0,0 +1,236 @@
+#!/usr/bin/env perl
+# a script for use by autoconf to make the Makefiles
+# from the Makefile.in's
+#
+# the original autoconf mechanism first splits all substitutions into groups
+# of ca. 90, and than invokes sed for _every_ Makefile.in and every group
+# (so around 2-3 times per Makefile.in). So this takes forever, as sed
+# has to recompile the regexps every time.
+#
+# this script does better. It changes all Makefile.ins in one process.
+# in kdelibs the time for building Makefile went down from 2:59 min to 13 sec!
+#
+# written by Michael Matz <matz@kde.org>
+# adapted by Dirk Mueller <mueller@kde.org>
+
+#   This file is free software; you can redistribute it and/or
+#   modify it under the terms of the GNU Library General Public
+#   License as published by the Free Software Foundation; either
+#   version 2 of the License, or (at your option) any later version.
+
+#   This library is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#   Library General Public License for more details.
+
+#   You should have received a copy of the GNU Library General Public License
+#   along with this library; see the file COPYING.LIB.  If not, write to
+#   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+#   Boston, MA 02111-1307, USA.
+
+use strict;
+
+use File::Path;
+
+my $ac_subs=$ARGV[0];
+my $ac_sacfiles = $ARGV[1];
+my $ac_given_srcdir=$ARGV[2];
+my $ac_given_INSTALL=$ARGV[3];
+
+my @comp_match;
+my @comp_subs;
+
+#print "ac_subs=$ac_subs\n";
+#print "ac_sacfiles=$ac_sacfiles\n";
+#print "ac_given_srcdir=$ac_given_srcdir\n";
+#print "ac_given_INSTALL=$ac_given_INSTALL\n";
+
+my $configure_input;
+my ($srcdir, $top_srcdir);
+my $INSTALL;
+my $bad_perl = ($] < 5.005);
+my $created_file_count = 0;
+
+open(CF, "< $ac_subs") || die "can't open $ac_subs: $!";
+my @subs = <CF>;
+close(CF);
+chomp @subs;
+@comp_match=();
+@comp_subs=();
+
+if ($bad_perl) {
+    print "Using perl older than version 5.005\n";
+    foreach my $pat (@subs) {
+	if (  ($pat =~ m/s%([^%]*)%([^%]*)%g/ )
+	   || ($pat =~ m/s%([^%]*)%([^%]*)%;t/ )
+           || ($pat =~ m/s,([^,]*),(.*),;t/)
+	   || ($pat =~ m%s/([^/]*)/([^/]*)/g% )
+	   || ($pat =~ m%s/([^/]*)/([^/]*)/;t% )
+	   ) {
+            # form : s%bla%blubb%g
+            # or     s%bla%blubb%;t t   (autoconf > 2.13 and < 2.52 ?)
+            # or     s,bla,blubb,;t t   (autoconf 2.52)
+            my $srch = $1;
+            my $repl = $2;
+            $repl =~ s/\\(.)/$1/g;
+	    push @comp_subs, make_closure($srch, $repl);
+
+	} elsif ( ($pat =~ /%([^%]*)%d/ )
+	   || ($pat =~ m%/([^/]*)/d% )
+	   ) {
+	    push @comp_subs, make_closure($1, "");
+	} else {
+	    die "Uhh. Malformed pattern in $ac_subs ($pat)"
+		unless ( $pat =~ /^\s*$/ );   # ignore white lines
+	}
+    }
+} else {
+    foreach my $pat (@subs) {
+       if ( ($pat =~ /s%([^%]*)%([^%]*)%g/ ) ||
+            ($pat =~ /s%([^%]*)%([^%]*)%;t/ ) ||
+            ($pat =~ /s,([^,]*),(.*),;t/) ) {
+         # form : s%bla%blubb%g
+         # or     s%bla%blubb%;t t   (autoconf > 2.13 and < 2.52 ?)
+         # or     s,bla,blubb,;t t   (autoconf 2.52)
+         my $srch = $1;
+         my $repl = $2;
+         push @comp_match, eval "qr/\Q$srch\E/";  # compile match pattern
+         $repl =~ s/\\(.)/$1/g;
+         push @comp_subs, $repl;
+      } elsif ( ($pat =~ /%([^%]*)%d/ )
+                || ($pat =~ m%/([^/]*)/d% )
+              ) {
+        push @comp_match, eval "qr/\Q$1\E/";
+        push @comp_subs, "";
+      } else {
+          die "Uhh. Malformed pattern in $ac_subs ($pat)"
+          unless ( $pat =~ /^\s*$/ );   # ignore white lines
+      }
+    }
+}
+undef @subs;
+
+# read the list of files to be patched, form:
+# ./Makefile arts/Makefile arts/examples/Makefile arts/flow/Makefile
+
+open(CF, "< $ac_sacfiles") || die "can't open $ac_sacfiles: $!";
+my @ac_files = <CF>;
+close(CF);
+chomp @ac_files;
+
+
+my $ac_file;
+foreach $ac_file (@ac_files) {
+    next if $ac_file =~ /\.\./;
+    next if $ac_file =~ /^\s*$/;
+    my $ac_file_in;
+    my ($ac_dir, $ac_dots, $ac_dir_suffix);
+
+    if ($ac_file =~ /.*:.*/ ) {
+	($ac_file_in = $ac_file) =~ s%[^:]*:%%;
+	$ac_file =~ s%:.*%%;
+    } else {
+	$ac_file_in = $ac_file.".in";
+    }
+
+# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+# Remove last slash and all that follows it.  Not all systems have dirname.
+    ($ac_dir = $ac_file) =~ s%/[^/][^/]*$%%;
+    if ( ($ac_dir ne $ac_file) && ($ac_dir ne ".")) {
+# The file is in a subdirectory.
+	if (! -d "$ac_dir") { mkpath "$ac_dir", 0, 0777; }
+	($ac_dir_suffix = $ac_dir) =~ s%^./%%;
+	$ac_dir_suffix="/".$ac_dir_suffix;
+# A "../" for each directory in $ac_dir_suffix.
+	($ac_dots = $ac_dir_suffix) =~ s%/[^/]*%../%g;
+    } else {
+	$ac_dir_suffix="";
+	$ac_dots="";
+    }
+
+    if ($ac_given_srcdir eq ".") {
+	$srcdir=".";
+	if ($ac_dots) {
+	    ( $top_srcdir = $ac_dots) =~ s%/$%%;
+	} else { $top_srcdir="."; }
+    } elsif ($ac_given_srcdir =~ m%^/%) {
+	$srcdir=$ac_given_srcdir.$ac_dir_suffix;
+	$top_srcdir = $ac_given_srcdir;
+    } else {
+	$srcdir = $ac_dots.$ac_given_srcdir.$ac_dir_suffix;
+	$top_srcdir = $ac_dots.$ac_given_srcdir;
+    }
+
+    if ($ac_given_INSTALL) {
+	if ($ac_given_INSTALL =~ m%^/% ) {
+	    $INSTALL = $ac_given_INSTALL;
+	} else {
+	    $INSTALL = $ac_dots.$ac_given_INSTALL;
+	}
+    }
+
+    print "fast creating $ac_file\n";
+    unlink $ac_file;
+    my $ac_comsub="";
+    my $fname=$ac_file_in;
+    $fname =~ s%.*/%%;
+    $configure_input="$ac_file.  Generated from $fname by config.pl.";
+
+    my $ac_file_inputs;
+    ($ac_file_inputs = $ac_file_in) =~ s%^%$ac_given_srcdir/%;
+    $ac_file_inputs =~ s%:% $ac_given_srcdir/%g;
+
+    patch_file($ac_file, $ac_file_inputs);
+    ++$created_file_count;
+}
+
+print "config.pl: fast created $created_file_count file(s).\n";
+
+sub patch_file {
+    my ($outf, $infiles) = @_;
+    my $filedata;
+    my @infiles=split(' ', $infiles);
+    my $i=0;
+
+    foreach my $name (@infiles) {
+	if (open(CF, "< $name")) {
+	    while (<CF>) {
+		$filedata .= $_;
+	    }
+	    close(CF);
+	} else {
+	    print STDERR "can't open $name: $!"."\n";
+	}
+    }
+
+    $filedata =~ s%\@configure_input\@%$configure_input%g;
+    $filedata =~ s%\@srcdir\@%$srcdir%g;
+    $filedata =~ s%\@top_srcdir\@%$top_srcdir%g;
+    $filedata =~ s%\@INSTALL\@%$INSTALL%g;
+
+    if ($bad_perl) {
+	while ($i <= $#comp_subs) {
+	    my $ref = $comp_subs[$i];
+	    &$ref(\$filedata);
+	    $i++;
+	}
+    } else {
+	while ($i <= $#comp_match) {
+	    $filedata =~ s/$comp_match[$i]/$comp_subs[$i]/g;
+	    $i++;
+	}
+    }
+    open(CF, "> $outf") || die "can't create $outf: $!";
+    print CF $filedata;
+    close(CF);
+}
+
+sub make_closure {
+    my ($pat, $sub) = @_;
+    my $ret = eval "return sub { my \$ref=shift; \$\$ref =~ s%\Q$pat\E%\Q$sub\E%g; }";
+    if ($@) {
+        print "can't create CODE: $@\n";
+    }
+    return $ret;
+}
Index: /branches/start/Taper/admin/config.sub
===================================================================
--- /branches/start/Taper/admin/config.sub	(revision 4308)
+++ /branches/start/Taper/admin/config.sub	(revision 4308)
@@ -0,0 +1,1470 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002 Free Software Foundation, Inc.
+
+timestamp='2002-09-05'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit 0 ;;
+    --version | -v )
+       echo "$version" ; exit 0 ;;
+    --help | --h* | -h )
+       echo "$usage"; exit 0 ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit 0;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple | -axis)
+		os=
+		basic_machine=$1
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+ 	-chorusrdb)
+ 		os=-chorusrdb
+		basic_machine=$1
+ 		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-udk*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	1750a | 580 \
+	| a29k \
+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+	| clipper \
+	| d10v | d30v | dlx | dsp16xx \
+	| fr30 | frv \
+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| i370 | i860 | i960 | ia64 \
+	| ip2k \
+	| m32r | m68000 | m68k | m88k | mcore \
+	| mips | mipsbe | mipseb | mipsel | mipsle \
+	| mips16 \
+	| mips64 | mips64el \
+	| mips64vr | mips64vrel \
+	| mips64orion | mips64orionel \
+	| mips64vr4100 | mips64vr4100el \
+	| mips64vr4300 | mips64vr4300el \
+	| mips64vr5000 | mips64vr5000el \
+	| mipsisa32 | mipsisa32el \
+	| mipsisa64 | mipsisa64el \
+	| mipsisa64sb1 | mipsisa64sb1el \
+	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipstx39 | mipstx39el \
+	| mn10200 | mn10300 \
+	| ns16k | ns32k \
+	| openrisc | or32 \
+	| pdp10 | pdp11 | pj | pjl \
+	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+	| pyramid \
+	| sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+	| sh64 | sh64le \
+	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
+	| strongarm \
+	| tahoe | thumb | tic80 | tron \
+	| v850 | v850e \
+	| we32k \
+	| x86 | xscale | xstormy16 | xtensa \
+	| z8k)
+		basic_machine=$basic_machine-unknown
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12)
+		# Motorola 68HC11/12.
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+		;;
+
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	580-* \
+	| a29k-* \
+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+	| avr-* \
+	| bs2000-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \
+	| clipper-* | cydra-* \
+	| d10v-* | d30v-* | dlx-* \
+	| elxsi-* \
+	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+	| h8300-* | h8500-* \
+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| i*86-* | i860-* | i960-* | ia64-* \
+	| ip2k-* \
+	| m32r-* \
+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+	| m88110-* | m88k-* | mcore-* \
+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+	| mips16-* \
+	| mips64-* | mips64el-* \
+	| mips64vr-* | mips64vrel-* \
+	| mips64orion-* | mips64orionel-* \
+	| mips64vr4100-* | mips64vr4100el-* \
+	| mips64vr4300-* | mips64vr4300el-* \
+	| mips64vr5000-* | mips64vr5000el-* \
+	| mipsisa32-* | mipsisa32el-* \
+	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64sb1-* | mipsisa64sb1el-* \
+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipstx39 | mipstx39el \
+	| none-* | np1-* | ns16k-* | ns32k-* \
+	| orion-* \
+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+	| pyramid-* \
+	| romp-* | rs6000-* \
+	| sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
+	| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+	| tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \
+	| v850-* | v850e-* | vax-* \
+	| we32k-* \
+	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
+	| xtensa-* \
+	| ymp-* \
+	| z8k-*)
+		;;
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	386bsd)
+		basic_machine=i386-unknown
+		os=-bsd
+		;;
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-unknown
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	c90)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	cris | cris-* | etrax*)
+		basic_machine=cris-axis
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	decsystem10* | dec10*)
+		basic_machine=pdp10-dec
+		os=-tops10
+		;;
+	decsystem20* | dec20*)
+		basic_machine=pdp10-dec
+		os=-tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+	i*86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i*86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i*86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i*86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	i386-vsta | vsta)
+		basic_machine=i386-unknown
+		os=-vsta
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+	mingw32)
+		basic_machine=i386-pc
+		os=-mingw32
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	mmix*)
+		basic_machine=mmix-knuth
+		os=-mmixware
+		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	nsr-tandem)
+		basic_machine=nsr-tandem
+		;;
+	op50n-* | op60c-*)
+		basic_machine=hppa1.1-oki
+		os=-proelf
+		;;
+	or32 | or32-*)
+		basic_machine=or32-unknown
+		os=-coff
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+	pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pentium | p5 | k5 | k6 | nexgen | viac3)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2)
+		basic_machine=i686-pc
+		;;
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=power-ibm
+		;;
+	ppc)	basic_machine=powerpc-unknown
+		;;
+	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle | ppc-le | powerpc-little)
+		basic_machine=powerpcle-unknown
+		;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64)	basic_machine=powerpc64-unknown
+		;;
+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+		basic_machine=powerpc64le-unknown
+		;;
+	ppc64le-* | powerpc64little-*)
+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	s390 | s390-*)
+		basic_machine=s390-ibm
+		;;
+	s390x | s390x-*)
+		basic_machine=s390x-ibm
+		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	sb1)
+		basic_machine=mipsisa64sb1-unknown
+		;;
+	sb1el)
+		basic_machine=mipsisa64sb1el-unknown
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sparclite-wrs | simso-wrs)
+		basic_machine=sparclite-wrs
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	st2000)
+		basic_machine=m68k-tandem
+		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3d)
+		basic_machine=alpha-cray
+		os=-unicos
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
+        tic4x | c4x*)
+		basic_machine=tic4x-unknown
+		os=-coff
+		;;
+	tic54x | c54x*)
+		basic_machine=tic54x-unknown
+		os=-coff
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+		basic_machine=f301-fujitsu
+		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	w65*)
+		basic_machine=w65-wdc
+		os=-none
+		;;
+	w89k-*)
+		basic_machine=hppa1.1-winbond
+		os=-proelf
+		;;
+	windows32)
+		basic_machine=i386-pc
+		os=-windows32-msvcrt
+		;;
+	xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	z8k-*-coff)
+		basic_machine=z8k-unknown
+		os=-sim
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		basic_machine=hppa1.1-winbond
+		;;
+	op50n)
+		basic_machine=hppa1.1-oki
+		;;
+	op60c)
+		basic_machine=hppa1.1-oki
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp10)
+		# there are many clones, so DEC is not a safe bet
+		basic_machine=pdp10-unknown
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
+		basic_machine=sh-unknown
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparc | sparcv9 | sparcv9b)
+		basic_machine=sparc-sun
+		;;
+	cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	mac | mpw | mac-mpw)
+		basic_machine=m68k-apple
+		;;
+	pmac | pmac-mpw)
+		basic_machine=powerpc-apple
+		;;
+	*-unknown)
+		# Make sure to match an already-canonicalized machine name.
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
+	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -chorusos* | -chorusrdb* \
+	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-qnx*)
+		case $basic_machine in
+		    x86-* | i*86-*)
+			;;
+		    *)
+			os=-nto$os
+			;;
+		esac
+		;;
+	-nto*)
+		os=-nto-qnx
+		;;
+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+		;;
+	-mac*)
+		os=`echo $os | sed -e 's|mac|macos|'`
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-opened*)
+		os=-openedition
+		;;
+	-wince*)
+		os=-wince
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-atheos*)
+		os=-atheos
+		;;
+	-386bsd)
+		os=-bsd
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-nova*)
+		os=-rtmk-nova
+		;;
+	-ns2 )
+		os=-nextstep2
+		;;
+	-nsk*)
+		os=-nsk
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-ose*)
+		os=-ose
+		;;
+	-es1800*)
+		os=-ose
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
+		;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-rebel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+	# This must come before the *-dec entry.
+	pdp10-*)
+		os=-tops20
+		;;
+	pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		# This also exists in the configure program, but was not the
+		# default.
+		# os=-sunos4
+		;;
+	m68*-cisco)
+		os=-aout
+		;;
+	mips*-cisco)
+		os=-elf
+		;;
+	mips*-*)
+		os=-elf
+		;;
+	or32-*)
+		os=-coff
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-ibm)
+		os=-aix
+		;;
+	*-wec)
+		os=-proelf
+		;;
+	*-winbond)
+		os=-proelf
+		;;
+	*-oki)
+		os=-proelf
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+	*-gould)
+		os=-sysv
+		;;
+	*-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+	*-sgi)
+		os=-irix
+		;;
+	*-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f30[01]-fujitsu | f700-fujitsu)
+		os=-uxpv
+		;;
+	*-rom68k)
+		os=-coff
+		;;
+	*-*bug)
+		os=-coff
+		;;
+	*-apple)
+		os=-macos
+		;;
+	*-atari*)
+		os=-mint
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-aix*)
+				vendor=ibm
+				;;
+			-beos*)
+				vendor=be
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs* | -opened*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-vxsim* | -vxworks* | -windiss*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+			-hms*)
+				vendor=hitachi
+				;;
+			-mpw* | -macos*)
+				vendor=apple
+				;;
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+				vendor=atari
+				;;
+			-vos*)
+				vendor=stratus
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
Index: /branches/start/Taper/admin/configure.in.bot.end
===================================================================
--- /branches/start/Taper/admin/configure.in.bot.end	(revision 4308)
+++ /branches/start/Taper/admin/configure.in.bot.end	(revision 4308)
@@ -0,0 +1,12 @@
+if test "$all_tests" = "bad"; then
+  if test ! "$cache_file" = "/dev/null"; then
+    echo ""    
+    echo "Please remove the file $cache_file after changing your setup"
+    echo "so that configure will find the changes next time."
+    echo ""
+  fi
+else
+  echo ""
+  echo "Good - your configure finished. Start make now"
+  echo ""
+fi
Index: /branches/start/Taper/admin/configure.in.min
===================================================================
--- /branches/start/Taper/admin/configure.in.min	(revision 4308)
+++ /branches/start/Taper/admin/configure.in.min	(revision 4308)
@@ -0,0 +1,57 @@
+dnl    This file is part of the KDE libraries/packages
+dnl    Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
+ 
+dnl    This file is free software; you can redistribute it and/or
+dnl    modify it under the terms of the GNU Library General Public
+dnl    License as published by the Free Software Foundation; either
+dnl    version 2 of the License, or (at your option) any later version.
+ 
+dnl    This library is distributed in the hope that it will be useful,
+dnl    but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl    Library General Public License for more details.
+ 
+dnl    You should have received a copy of the GNU Library General Public License
+dnl    along with this library; see the file COPYING.LIB.  If not, write to
+dnl    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+dnl    Boston, MA 02111-1307, USA.
+
+# Original Author was Kalle@kde.org
+# I lifted it in some mater. (Stephan Kulow)
+# I used much code from Janos Farkas
+
+dnl Process this file with autoconf to produce a configure script.
+
+AC_INIT(acinclude.m4) dnl a source file from your sub dir
+
+dnl This is so we can use kde-common
+AC_CONFIG_AUX_DIR(admin)
+
+dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
+unset CDPATH
+
+dnl Checking host/target/build systems, for make, install etc.
+AC_CANONICAL_SYSTEM 
+dnl Perform program name transformation
+AC_ARG_PROGRAM
+
+dnl Automake doc recommends to do this only here. (Janos)
+AM_INIT_AUTOMAKE(@MODULENAME@, @VERSION@) dnl searches for some needed programs
+
+KDE_SET_PREFIX
+
+dnl generate the config header
+AM_CONFIG_HEADER(config.h) dnl at the distribution this done
+
+dnl Checks for programs.
+AC_CHECK_COMPILERS
+AC_ENABLE_SHARED(yes)
+AC_ENABLE_STATIC(no)
+KDE_PROG_LIBTOOL
+
+dnl for NLS support. Call them in this order!
+dnl WITH_NLS is for the po files
+AM_KDE_WITH_NLS
+
+dnl KDE_USE_QT
+AC_PATH_KDE
Index: /branches/start/Taper/admin/cvs-clean.pl
===================================================================
--- /branches/start/Taper/admin/cvs-clean.pl	(revision 4308)
+++ /branches/start/Taper/admin/cvs-clean.pl	(revision 4308)
@@ -0,0 +1,87 @@
+#! /usr/bin/perl
+
+#
+# This script recursively (beginning with the current directory)
+# wipes out everything not registered in CVS.
+#
+# written by Oswald Buddenhagen <ossi@kde.org>
+#  inspired by the "old" cvs-clean target from Makefile.common
+#
+# This file is free software in terms of the BSD license. That means
+# that you can do anything with it except removing this license or
+# the above copyright notice. There is NO WARRANTY of any kind.
+#
+
+sub rmrf()
+{
+  my $fn = shift;
+  lstat ($fn);
+  if (-d _) {
+    if (opendir (DIR, $fn)) {
+      for my $efn (grep (!/^\.\.?$/, readdir (DIR))) {
+	&rmrf ($fn."/".$efn);
+      }
+      closedir (DIR);
+      rmdir ($fn);
+    }
+  } else {
+    unlink ($fn);
+  }
+}
+
+sub newfiles()
+{
+  my ($indir, $incvs) = @_;
+  for my $n (keys (%$incvs)) { delete $$indir{$n} }
+  return sort (keys (%$indir));
+}
+
+sub cvsclean()
+{
+  my $dir = shift;
+  my (%dirsdir, %filesdir, %dirscvs, %filescvs);
+  my $dnam = $dir ? $dir : ".";
+  if (!opendir (DIR, $dnam)) {
+    print STDERR "Cannot enter \"".$dnam."\".\n";
+    return;
+  }
+  for my $fn (grep (!/^\.\.?$/, readdir (DIR))) {
+    if (-d $dir.$fn) {
+      $fn eq "CVS" or $dirsdir{$fn} = 1;
+    } else {
+      $filesdir{$fn} = 1;
+    }
+  }
+  closedir (DIR);
+  if (!open (FILE, "<".$dir."CVS/Entries")) {
+    print STDERR "No CVS information in \"".$dnam."\".\n";
+    return;
+  }
+  while (<FILE>) {
+    m%^D/([^/]+)/.*$% and $dirscvs{$1} = 1;
+    m%^/([^/]+)/.*$% and $filescvs{$1} = 1;
+  }
+  close (FILE);
+  if (open (FILE, "<".$dir."CVS/Entries.Log")) {
+    while (<FILE>) {
+      m%^A D/([^/]+)/.*$% and $dirscvs{$1} = 1;
+      m%^A /([^/]+)/.*$% and $filescvs{$1} = 1;
+      m%^R D/([^/]+)/.*$% and delete $dirscvs{$1};
+      m%^R /([^/]+)/.*$% and delete $filescvs{$1};
+    }
+    close (FILE);
+  }
+  for my $fn (&newfiles (\%filesdir, \%filescvs)) {
+    print ("F ".$dir.$fn."\n");
+    &rmrf ($dir.$fn);
+  }
+  for my $fn (&newfiles (\%dirsdir, \%dirscvs)) {
+    print ("D ".$dir.$fn."\n");
+    &rmrf ($dir.$fn);
+  }
+  for my $fn (sort (keys (%dirscvs))) {
+    &cvsclean ($dir.$fn."/");
+  }
+}
+
+&cvsclean ("");
Index: /branches/start/Taper/admin/cvs.sh
===================================================================
--- /branches/start/Taper/admin/cvs.sh	(revision 4308)
+++ /branches/start/Taper/admin/cvs.sh	(revision 4308)
@@ -0,0 +1,595 @@
+#! /bin/sh
+#
+# cvs.sh
+#
+# This file contains support code from Makefile.common
+# It defines a shell function for each known target
+# and then does a case to call the correct function.
+
+call_and_fix_autoconf()
+{
+  $AUTOCONF || exit 1
+  if test -r configure.in.in ; then
+    perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\
+    \\n  perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\
+    \\\\\\n    || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\
+    \\n  rm -f \\\$CONFIG_STATUS.bak\\nfi\
+    \\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/; s,^#line.*LINENO.*\$,/* \$& */, ;" configure
+  fi
+}
+
+strip_makefile()
+{
+  if test -f $makefile_wo; then :; else
+    perl -e '$in=0; while ( <> ) { $in = 1 if ($_=~ m/^if /); print $_ unless ($in); $in = 0 if ($_ =~ m/^endif/); }' < Makefile.am.in > $makefile_wo
+  fi
+}
+
+check_autotool_versions()
+{
+AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1`
+case $AUTOCONF_VERSION in
+  Autoconf*2.5* | autoconf*2.5* ) : ;;
+  "" )
+    echo "*** AUTOCONF NOT FOUND!."
+    echo "*** KDE requires autoconf 2.52, 2.53 or 2.54"
+    exit 1
+    ;;
+  * )
+    echo "*** YOU'RE USING $AUTOCONF_VERSION."
+    echo "*** KDE requires autoconf 2.52, 2.53 or 2.54"
+    exit 1
+    ;;
+esac
+ 
+AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1`
+case $AUTOHEADER_VERSION in
+  Autoconf*2.5* | autoheader*2.5* ) : ;;
+  "" )
+    echo "*** AUTOHEADER NOT FOUND!."
+    echo "*** KDE requires autoheader 2.52 or 2.53 (part of autoconf)"
+    exit 1
+    ;;
+  * )
+    echo "*** YOU'RE USING $AUTOHEADER_VERSION."
+    echo "*** KDE requires autoheader 2.52 or 2.53 (part of autoconf)"
+    exit 1
+    ;;
+esac
+
+AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
+case $AUTOMAKE_STRING in
+  automake*1.5d* | automake*1.5* | automake*1.5-* )
+    echo "*** YOU'RE USING $AUTOMAKE_STRING."
+    echo "*** KDE requires automake 1.6.1 or newer"
+    exit 1
+    ;;
+  automake*1.6.* | automake*1.7* | automake*1.8.* ) : ;;
+  "" )
+    echo "*** AUTOMAKE NOT FOUND!."
+    echo "*** KDE requires automake 1.6.1 or newer"
+    exit 1
+    ;;
+  unsermake* ) :
+    echo "*** YOU'RE USING UNSERMAKE."
+    echo "*** GOOD LUCK!! :)"
+    ;;
+  * )
+    echo "*** YOU'RE USING $AUTOMAKE_STRING."
+    echo "*** KDE requires automake 1.6"
+    exit 1
+    ;;
+esac
+}
+
+cvs()
+{
+check_autotool_versions
+ 
+### Produce acinclude.m4
+if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then
+  echo "*** Creating acinclude.m4"
+  rm -f acinclude.m4 configure.files
+  
+  strip_makefile
+  $MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4
+fi
+
+### Make new subdirs and configure.in.
+### The make calls could be optimized away here,
+### with a little thought.
+if test -r configure.in.in; then
+    rm -f configure.in
+    echo "*** Creating list of subdirectories"
+    create_subdirs
+
+    if test -r Makefile.am.in; then
+        echo "*** Creating Makefile.am"
+        if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then 
+            strip_makefile
+            $MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
+        else
+            Makefile_am
+        fi
+     fi
+     echo "*** Creating configure.in"
+     configure_files
+     strip_makefile
+     $MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
+fi
+
+echo "*** Creating aclocal.m4"
+$ACLOCAL || exit 1
+echo "*** Creating configure"
+call_and_fix_autoconf
+
+if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
+  echo "*** Creating config.h template"
+  $AUTOHEADER || exit 1
+fi
+
+echo "*** Creating Makefile templates"
+$AUTOMAKE || exit 1
+if test -z "$UNSERMAKE"; then
+  echo "*** Postprocessing Makefile templates"
+  perl -w admin/am_edit || exit 1
+fi
+
+if egrep "^cvs-local:" $makefile_am >/dev/null; then \
+  strip_makefile
+  $MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1
+fi
+
+echo "*** Creating date/time stamp"
+touch stamp-h.in
+
+echo "*** Finished"
+echo "    Don't forget to run ./configure"
+echo "    If you haven't done so in a while, run ./configure --help"
+}
+
+dist()
+{
+check_autotool_versions
+
+###
+### First build all of the files necessary to do just "make"
+###
+if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then
+  strip_makefile
+  $MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4
+fi
+if test -r configure.in.in; then
+  create_subdirs
+  Makefile_am
+  configure_files
+  strip_makefile
+  $MAKE -f $makefile_wo top_srcdir=. ./configure.in
+fi
+$ACLOCAL
+$AUTOHEADER
+$AUTOMAKE --foreign --include-deps
+perl -w admin/am_edit
+call_and_fix_autoconf
+touch stamp-h.in
+if grep "^cvs-local:" $makefile_am >/dev/null; then
+  strip_makefile
+  $MAKE -f $makefile_wo cvs-local top_srcdir=.
+fi
+
+###
+### Then make messages
+###
+if test -d po; then
+ LIST=`find ./po -name "*.po"`
+ for i in $LIST; do
+  file2=`echo $i | sed -e "s#\.po#\.gmo#"`
+  msgfmt -o $file2 $i || touch $file2
+ done
+fi
+if grep "^cvs-dist-local:" $makefile_am >/dev/null; then
+  strip_makefile
+  $MAKE -f $makefile_wo cvs-dist-local top_srcdir=.
+fi
+}
+
+subdir_dist()
+{
+$ACLOCAL
+$AUTOHEADER
+$AUTOMAKE
+perl -w ../admin/am_edit
+call_and_fix_autoconf
+touch stamp-h.in
+}
+
+configure_in()
+{
+rm -f configure.in configure.in.new
+kde_use_qt_param=
+test -f configure.files || { echo "need configure.files for configure.in"; exit 1; }
+cat `fgrep -v "configure.in.bot" < configure.files | fgrep -v "configure.in.mid"` > configure.in.new
+echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new
+if test -f Makefile.am.in; then
+  subdirs=`cat subdirs`
+  for dir in $subdirs; do
+    dir=`echo $dir | sed -e "s,[-+.],_,g"`
+    echo "AM_CONDITIONAL($dir""_SUBDIR_included, test \"x\$$dir""_SUBDIR_included\" = xyes)" >> configure.in.new
+  done
+fi
+
+echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new
+if test -n "$UNSERMAKE"; then
+  echo "AC_CONFIG_FILES([ Makefile.rules ])" >> configure.in.new
+  echo "AC_CONFIG_FILES([ Makefile.calls ])" >> configure.in.new
+fi
+
+if test -f inst-apps; then
+    topleveldirs=`cat inst-apps`
+else
+    topleveldirs=
+    for dir in `ls -1d * | sort`; do
+	if test "$dir" != "debian" && test -d $dir; then
+	    topleveldirs="$topleveldirs $dir"
+	fi
+    done
+fi
+
+for topleveldir in $topleveldirs; do 
+  if test -f $topleveldir/configure.in; then
+	continue
+  fi
+  if test -f $topleveldir/Makefile.am; then :; else
+	continue
+  fi
+
+  mfs=`find $topleveldir -name Makefile.am -print | fgrep -v "/." | \
+       sed -e 's#\./##; s#/Makefile.am$##' | sort | sed -e 's#$#/Makefile#'`
+  for i in $mfs; do
+     echo "AC_CONFIG_FILES([ $i ])" >> configure.in.new
+     if test -n "$UNSERMAKE"; then
+        echo "AC_CONFIG_FILES([ $i.rules ])" >> configure.in.new
+	echo "AC_CONFIG_FILES([ $i.calls ])" >> configure.in.new
+     fi
+  done
+done
+
+files=`cat configure.files`
+list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"`
+for file in $list; do 
+    echo "AC_CONFIG_FILES([ $file ])" >>  configure.in.new
+done
+
+if test -n "$UNSERMAKE"; then
+  echo "AC_CONFIG_FILES([ MakeVars ])" >> configure.in.new
+fi
+
+midfiles=`cat configure.files | fgrep "configure.in.mid"`
+test -n "$midfiles" && cat $midfiles >> configure.in.new
+
+echo "AC_OUTPUT" >> configure.in.new
+modulename=
+if test -f configure.in.in; then
+   if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then
+      kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"`
+   fi
+   if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then
+      line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in`
+      if test -n "$line"; then
+	  modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"`
+	  VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"`
+      fi
+      sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \
+          configure.in.new > configure.in && mv configure.in configure.in.new
+   fi
+fi
+if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then
+     VERSION="\"3.1.0\""
+fi
+if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then
+   modulename=`pwd`; 
+   modulename=`basename $modulename`
+   esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"`
+   modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"`   
+
+fi
+if test -n "$kde_use_qt_param"; then
+      sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \
+      	configure.in.new > configure.in && mv configure.in configure.in.new
+fi
+sed -e "s#@MODULENAME@#$modulename#" configure.in.new |
+	sed -e "s#@VERSION@#$VERSION#" > configure.in
+botfiles=`cat configure.files | egrep "configure.in.bot"`
+test -n "$botfiles" && cat $botfiles >> configure.in
+cat $admindir/configure.in.bot.end >> configure.in
+rm -f configure.in.new
+}
+
+configure_files()
+{
+admindir=NO
+for i in . .. ../.. ../../..; do
+  if test -x $i/admin; then admindir=$i/admin; break; fi
+done
+rm -f configure.files
+touch configure.files
+if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then
+	echo $admindir/configure.in.min >> configure.files
+fi
+test -f configure.in.in && echo configure.in.in >> configure.files
+# we collect files in the subdirs and do some sorting tricks, so subsubdirs come after subdirs
+if test -f inst-apps; then
+   inst=`cat inst-apps`
+   list=""
+   for i in $inst; do
+      list="$list `find $i/ -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
+		sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`"
+   done
+else
+   list=`find . -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
+		sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`
+fi
+for i in $list; do if test -f $i && test `dirname $i` != "." ; then
+  echo $i >> configure.files
+fi; done
+test -f configure.in.mid && echo configure.in.mid >> configure.files
+test -f configure.in.bot && echo configure.in.bot >> configure.files
+}
+
+create_subdirs()
+{
+if grep '\$(top_srcdir)/subdirs:' $makefile_am >/dev/null; then 
+    # as many modules contain rules to create subdirs without any
+    # dependencies make won't create it unless there is no file.
+    # so we check if that's a dummy rule or one that works
+    rm -f subdirs.cvs.sh.$$
+    if test -f subdirs; then
+	mv subdirs subdirs.cvs.sh.$$
+    fi
+    strip_makefile
+    $MAKE -f $makefile_wo top_srcdir=. ./subdirs || exit 1
+    if test -f subdirs.cvs.sh.$$; then
+	if test -s subdirs; then
+	    rm subdirs.cvs.sh.$$ 
+	else
+	    mv subdirs.cvs.sh.$$ subdirs
+	fi
+    fi
+else
+    subdirs
+fi
+}
+
+subdirs()
+{
+dirs=
+idirs=
+if test -f inst-apps; then
+   idirs=`cat inst-apps`
+else
+   idirs=`ls -1 | sort`
+fi
+
+compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
+compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
+for i in $idirs; do
+    if test -f $i/Makefile.am; then
+       case " $compilefirst $compilelast " in
+         *" $i "*) ;;
+         *) dirs="$dirs $i"
+       esac
+    fi
+done
+
+: > ./_SUBDIRS
+
+for d in $compilefirst; do
+   echo $d >> ./_SUBDIRS
+done
+
+(for d in $dirs; do 
+   list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
+   for s in $list; do
+      echo $s $d
+   done
+   list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
+   for s in $list; do
+      echo $d $s
+   done
+   echo $d $d
+done ) | tsort >> ./_SUBDIRS
+
+for d in $compilelast; do
+   echo $d >> ./_SUBDIRS
+done
+
+if test -r subdirs && cmp -s subdirs _SUBDIRS; then
+    rm -f _SUBDIRS
+fi
+test -r _SUBDIRS && mv _SUBDIRS subdirs || true
+}
+
+Makefile_am()
+{
+if test -f Makefile.am.in; then
+  compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
+  compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
+
+  idirs=
+  dirs=
+  if test -f inst-apps; then
+     idirs=`cat inst-apps`
+  else
+     idirs=`cat subdirs`
+  fi
+  for i in $idirs; do
+    case " $compilefirst $compilelast " in
+      *" $i "*) ;;
+      *) dirs="$dirs $i"
+    esac
+  done
+
+  if test -n "$UNSERMAKE"; then
+    cp Makefile.am.in Makefile.am
+    chmod u+w Makefile.am
+    topsubdirs=
+    for i in $compilefirst $dirs $compilelast; do
+       vari=`echo $i | sed -e "s,[-+],_,g"`
+       echo "if $vari""_SUBDIR_included" >> Makefile.am
+       echo "$vari""_SUBDIR=$i" >> Makefile.am
+       echo "endif" >> Makefile.am
+       topsubdirs="$topsubdirs \$($vari""_SUBDIR)"
+    done
+    echo "SUBDIRS=$topsubdirs" >> Makefile.am
+  else
+    cat Makefile.am.in | \
+        sed -e 's,^\s*\(COMPILE_BEFORE.*\),# \1,' | \
+        sed -e 's,^\s*\(COMPILE_AFTER.*\),# \1,' > Makefile.am
+    echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am
+  fi
+fi
+}
+
+cvs_clean()
+{
+if test -d CVS; then :; else
+  echo "You don't have a toplevel CVS directory."
+  echo "You most certainly didn't use cvs to get these sources."
+  echo "But this function depends on cvs's information."
+  exit 1
+fi
+perl $admindir/cvs-clean.pl
+}
+
+package_merge()
+{
+catalogs=$POFILES
+for cat in $catalogs; do
+  msgmerge -o $cat.new $cat $PACKAGE.pot
+  if test -s $cat.new; then
+    grep -v "\"POT-Creation" $cat.new > $cat.new.2
+    grep -v "\"POT-Creation" $cat >> $cat.new.1
+    if diff $cat.new.1 $cat.new.2; then
+	rm $cat.new
+    else
+	mv $cat.new $cat
+    fi
+    rm -f $cat.new.1 $cat.new.2
+  fi
+done
+}
+
+package_messages()
+{
+rm -rf po.backup
+mkdir po.backup
+
+for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
+  egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i
+  cp po/$i po.backup/backup_$i
+  touch -r po/$i po.backup/backup_$i
+  rm po/$i
+done
+
+podir=${podir:-$PWD/po}
+files=`find . -name Makefile.am | xargs egrep -l '^messages:' `
+dirs=`for i in $files; do echo \`dirname $i\`; done`
+tmpname="$PWD/messages.log"
+if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi
+if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi
+export EXTRACTRC PREPARETIPS
+
+for subdir in $dirs; do
+  test -z "$VERBOSE" || echo "Making messages in $subdir"
+  (cd $subdir
+   if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then
+	$EXTRACTRC *.rc *.ui > rc.cpp
+   else
+	candidates=`ls -1 *.rc *.ui 2>/dev/null`
+	if test -n "$candidates"; then
+	    echo "$subdir has *.rc or *.ui files, but not correct messages line"
+	fi
+   fi
+   if test -n "`grep -r KAboutData *.c* *.C* 2>/dev/null`"; then
+	echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp
+   else echo " " > _translatorinfo.cpp
+   fi
+   perl -e '$mes=0; while (<STDIN>) { next if (/^(if|else|endif)\s/); if (/^messages:/) { $mes=1; print $_; next; } if ($mes) { if (/$\\(XGETTEXT\)/ && / -o/) { s/ -o \$\(podir\)/ _translatorinfo.cpp -o \$\(podir\)/ } print $_; } else { print $_; } }' < Makefile.am | egrep -v '^include ' > _transMakefile
+
+   $MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" \
+	XGETTEXT="${XGETTEXT:-xgettext} -C -ki18n -ktr2i18n -kI18N_NOOP -ktranslate -kaliasLocale -x ${includedir:-${KDEDIR:-/usr/local/kde}/include}/kde.pot" \
+	messages 
+   exit_code=$?
+   if test "$exit_code" != 0; then
+       echo "make exit code: $exit_code"
+   fi
+   ) 2>&1 | grep -v '^make\[1\]' > $tmpname
+   test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
+   test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp
+   rm -f $subdir/_translatorinfo.cpp
+   rm -f $subdir/_transMakefile
+done
+rm -f $tmpname
+for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do
+  test -f po/$i || echo "disappeared: $i"
+done
+for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
+   msgmerge -q -o po/$i po/$i po/$i
+   egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot
+  if test -f po.backup/$i && test -n "`diff temp.pot po.backup/$i`"; then
+	echo "will update $i"
+	msgmerge -q po.backup/backup_$i po/$i > temp.pot
+	mv temp.pot po/$i
+  else
+    if test -f po.backup/backup_$i; then
+      test -z "$VERBOSE" || echo "I'm restoring $i"
+      mv po.backup/backup_$i po/$i
+      rm po.backup/$i
+    else
+      echo "will add $i"
+    fi
+  fi
+done
+rm -f temp.pot
+rm -rf po.backup
+}
+
+unset CDPATH
+admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'`
+test "x$admindir" = "x$0" && admindir=.
+
+test "x$MAKE" = x && MAKE=make
+makefile_am=Makefile.am
+makefile_wo=Makefile.am
+if test -f Makefile.am.in; then
+  makefile_am=Makefile.am.in
+  makefile_wo=Makefile.am.in.wo
+fi
+
+# Suck in the AUTOCONF detection code
+. $admindir/detect-autoconf.sh
+
+###
+### Main
+###
+
+arg=`echo $1 | tr '\-.' __`
+case $arg in
+  cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \
+  cvs_clean | package_merge | package_messages | Makefile_am ) $arg ;;
+  configure ) call_and_fix_autoconf ;;
+  * ) echo "Usage: cvs.sh <target>"
+      echo "Target can be one of:"
+      echo "    cvs cvs-clean dist"
+      echo "    configure.in configure.files"
+      echo "    package-merge package-messages"
+      echo ""
+      echo "Usage: anything but $1"
+      exit 1 ;;
+esac
+
+if test -f Makefile.am.in.wo; then
+  rm Makefile.am.in.wo
+fi
+
+exit 0
Index: /branches/start/Taper/admin/debianrules
===================================================================
--- /branches/start/Taper/admin/debianrules	(revision 4308)
+++ /branches/start/Taper/admin/debianrules	(revision 4308)
@@ -0,0 +1,119 @@
+#!/usr/bin/perl -w
+
+use Shell qw(mv cp mkdir rm) ;
+use File::Find;
+use Cwd;
+
+$origPwd = `pwd`;
+chomp $origPwd;
+
+$kde_confdir		=	"/etc/kde3";
+$kde_prefix		=	"/usr";
+$kde_bindir		=	"$kde_prefix/bin";
+$kde_includedir		=	"$kde_prefix/include/kde";
+$kde_libdir		=	"$kde_prefix/lib";
+$kde_cgidir		=	"$kde_prefix/lib/cgi-bin";
+$kde_moduledir		=	"$kde_prefix/lib/kde3";
+$kde_appsdir		=	"$kde_prefix/share/applnk";
+$kde_datadir		=	"$kde_prefix/share/apps";
+$kde_htmldir		=	"$kde_prefix/share/doc/kde/HTML";
+$kde_icondir		=	"$kde_prefix/share/icons";
+$kde_locale		=	"$kde_prefix/share/locale";
+$kde_mimedir		=	"$kde_prefix/share/mimelnk";
+$kde_servicesdir	=	"$kde_prefix/share/services";
+$kde_servicetypesdir	=	"$kde_prefix/share/servicetypes";
+$kde_sounddir		=	"$kde_prefix/share/sounds";
+$kde_templatesdir	=	"$kde_prefix/share/templates";
+$kde_wallpaperdir	=	"$kde_prefix/share/wallpapers";
+
+$mandir			=	"$kde_prefix/share/man";
+$infodir		=	"$kde_prefix/share/info";
+$sysconfdir		=	"/etc";
+
+$QTDIR			=	"/usr/share/qt3";
+$IDL			=	"$kde_bindir/cuteidl";
+$DCOPIDL		=	"$kde_bindir/dcopidl";
+$DCOPIDL2CPP		=	"$kde_bindir/dcopidl2cpp";
+$KDB2HTML		=	"$kde_bindir/kdb2html";
+$MCOPIDL		=	"$kde_bindir/mcopidl";
+$ARTSCCONFIG		=	"$kde_bindir/artsc-config";
+
+if (defined $ENV{DEB_BUILD_OPTIONS} &&
+    $ENV{DEB_BUILD_OPTIONS} =~ /\bdebug\b/) {
+  $enable_debug="--enable-debug=full";
+  $enable_final="";
+}
+else {
+  $enable_debug="--disable-debug";
+  if (defined $ENV{DEB_BUILD_OPTIONS} &&
+              $ENV{DEB_BUILD_OPTIONS} =~ /\bfinal\b/) {
+	  $enable_final="--enable-final";
+  } else {
+	  $enable_final="";
+  }
+}
+
+if (@ARGV && $ARGV[0] eq 'echodirs') {
+  print STDOUT "export kde_confdir=$kde_confdir\n";
+  print STDOUT "export kde_prefix=$kde_prefix\n";
+  print STDOUT "export kde_bindir=$kde_bindir\n";
+  print STDOUT "export kde_includedir=$kde_includedir\n";
+  print STDOUT "export kde_libdir=$kde_libdir\n";
+  print STDOUT "export kde_cgidir=$kde_cgidir\n";
+  print STDOUT "export kde_moduledir=$kde_moduledir\n";
+  print STDOUT "export kde_appsdir=$kde_appsdir\n";
+  print STDOUT "export kde_datadir=$kde_datadir\n";
+  print STDOUT "export kde_htmldir=$kde_htmldir\n";
+  print STDOUT "export kde_icondir=$kde_icondir\n";
+  print STDOUT "export kde_locale=$kde_locale\n";
+  print STDOUT "export kde_mimedir=$kde_mimedir\n";
+  print STDOUT "export kde_servicesdir=$kde_servicesdir\n";
+  print STDOUT "export kde_servicetypesdir=$kde_servicetypesdir\n";
+  print STDOUT "export kde_sounddir=$kde_sounddir\n";
+  print STDOUT "export kde_templatesdir=$kde_templatesdir\n";
+  print STDOUT "export kde_wallpaperdir=$kde_wallpaperdir\n";
+
+  print STDOUT "export mandir=$mandir\n";
+  print STDOUT "export infodir=$infodir\n";
+  print STDOUT "export sysconfdir=$sysconfdir\n";
+
+  print STDOUT "export QTDIR=$QTDIR\n";
+  print STDOUT "export IDL=$IDL\n";
+  print STDOUT "export DCOPIDL=$DCOPIDL\n";
+  print STDOUT "export DCOPIDL2CPP=$DCOPIDL2CPP\n";
+  print STDOUT "export KDB2HTML=$KDB2HTML\n";
+  print STDOUT "export MCOPIDL=$MCOPIDL\n";
+  print STDOUT "export ARTSCCONFIG=$ARTSCCONFIG\n";
+  print STDOUT "export INSTALL_DATA=install -p -c -m 644\n";
+
+  print STDOUT "configkde=$enable_debug $enable_final --disable-rpath --prefix=\$(kde_prefix) --libexecdir=\$(kde_bindir) --sysconfdir=\$(sysconfdir) --libdir=\$(kde_libdir) --includedir=\$(kde_includedir) --with-qt-includes=/usr/include/qt3 --mandir=\$(mandir) --infodir=\$(infodir) --with-xinerama\n";
+  print STDOUT "configkdevelop=$enable_debug $enable_final --disable-rpath --enable-docbase --enable-kdoc2 --libdir=\$(kde_libdir) --includedir=\$(kde_includedir) --with-qt-includes=/usr/include/qt3 --mandir=\$(mandir) --with-kdelibsdoc-dir=/usr/share/doc/kdelibs3-doc/html --with-xinerama\n";
+  print STDOUT "configkdepim=$enable_debug $enable_final --disable-rpath --with-extra-includes=/usr/include/libpisock --enable-shared --prefix=\$(kde_prefix) --libexecdir=\$(kde_bindir) --with-qt-includes=/usr/include/qt3 --mandir=\$(mandir) --infodir=\$(infodir) --with-xinerama\n";
+
+  exit
+}
+
+if (@ARGV && $ARGV[0] eq 'echoglobals') {
+	print STDOUT "[Directories]\n";
+	print STDOUT "dir_config=$kde_confdir\n";
+	print STDOUT "dir_tmp=/tmp\n";
+	print STDOUT "dir_socket=/tmp\n";
+	print STDOUT "dir_exe=$kde_bindir\n";
+	print STDOUT "dir_lib=$kde_libdir\n";
+	print STDOUT "dir_cgi=$kde_cgidir\n";
+	print STDOUT "dir_module=$kde_moduledir\n";
+	print STDOUT "dir_apps=$kde_appsdir\n";
+	print STDOUT "dir_data=$kde_datadir\n";
+	print STDOUT "dir_html=$kde_htmldir\n";
+	print STDOUT "dir_icon=$kde_icondir\n";
+	print STDOUT "dir_locale=$kde_locale\n";
+	print STDOUT "dir_mime=$kde_mimedir\n";
+	print STDOUT "dir_services=$kde_servicesdir\n";
+	print STDOUT "dir_servicetypes=$kde_servicetypesdir\n";
+	print STDOUT "dir_sound=$kde_sounddir\n";
+	print STDOUT "dir_templates=$kde_templatesdir\n";
+	print STDOUT "dir_wallpaper=$kde_wallpaperdir\n";
+	print STDOUT "[General]\n";
+	print STDOUT "TerminalApplication=x-terminal-emulator\n";
+	exit
+}
Index: /branches/start/Taper/admin/depcomp
===================================================================
--- /branches/start/Taper/admin/depcomp	(revision 4308)
+++ /branches/start/Taper/admin/depcomp	(revision 4308)
@@ -0,0 +1,441 @@
+#! /bin/sh
+
+# depcomp - compile a program generating dependencies as side-effects
+# Copyright 1999, 2000 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+# `libtool' can also be set to `yes' or `no'.
+
+depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+   # This is just like dashmstdout with a different argument.
+   dashmflag=-xM
+   depmode=dashmstdout
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+  tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'.  On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like `#:fec' to the end of the
+    # dependency line.
+    tr ' ' '
+' < "$tmpdepfile" \
+    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+    tr '
+' ' ' >> $depfile
+    echo >> $depfile
+
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' '
+' < "$tmpdepfile" \
+   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+   >> $depfile
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  This file always lives in the current directory.
+  # Also, the AIX compiler puts `$object:' at the start of each line;
+  # $object doesn't have directory information.
+  stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
+  tmpdepfile="$stripped.u"
+  outname="$stripped.o"
+  if test "$libtool" = yes; then
+    "$@" -Wc,-M
+  else
+    "$@" -M
+  fi
+
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form `foo.o: dependent.h'.
+    # Do two passes, one to just change these to
+    # `$object: dependent.h' and one to simply `dependent.h:'.
+    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
+    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+icc)
+  # Must come before tru64.
+
+  # Intel's C compiler understands `-MD -MF file'.  However
+  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # will fill foo.d with something like
+  #    foo.o: sub/foo.c
+  #    foo.o: sub/foo.h
+  # which is wrong.  We want:
+  #    sub/foo.o: sub/foo.c
+  #    sub/foo.o: sub/foo.h
+  #    sub/foo.c:
+  #    sub/foo.h:
+
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each line is of the form `foo.o: dependent.h'.
+  # Do two passes, one to just change these to
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed -e "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  sed -e "s,^[^:]*: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+tru64)
+   # The Tru64 AIX compiler uses -MD to generate dependencies as a side
+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put 
+   # dependencies in `foo.d' instead, so we check for that too.
+   # Subdirectories are respected.
+
+   tmpdepfile1="$object.d"
+   tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'` 
+   if test "$libtool" = yes; then
+      "$@" -Wc,-MD
+   else
+      "$@" -MD
+   fi
+
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+      rm -f "$tmpdepfile1" "$tmpdepfile2"
+      exit $stat
+   fi
+
+   if test -f "$tmpdepfile1"; then
+      tmpdepfile="$tmpdepfile1"
+   else
+      tmpdepfile="$tmpdepfile2"
+   fi
+   if test -f "$tmpdepfile"; then
+      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+      # That's a space and a tab in the [].
+      sed -e 's,^.*\.[a-z]*:[ 	]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+   else
+      echo "#dummy" > "$depfile"
+   fi
+   rm -f "$tmpdepfile"
+   ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  test -z "$dashmflag" && dashmflag=-M
+  ( IFS=" "
+    case " $* " in
+    *" --mode=compile "*) # this is libtool, let us make it quiet
+      for arg
+      do # cycle over the arguments
+        case "$arg" in
+	"--mode=compile")
+	  # insert --quiet before "--mode=compile"
+	  set fnord "$@" --quiet
+	  shift # fnord
+	  ;;
+	esac
+	set fnord "$@" "$arg"
+	shift # fnord
+	shift # "$arg"
+      done
+      ;;
+    esac
+    "$@" $dashmflag | sed 's:^[^:]*\:[ 	]*:'"$object"'\: :' > "$tmpdepfile"
+  ) &
+  proc=$!
+  "$@"
+  stat=$?
+  wait "$proc"
+  if test "$stat" != 0; then exit $stat; fi
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  # X makedepend
+  (
+    shift
+    cleared=no
+    for arg in "$@"; do
+      case $cleared in no)
+        set ""; shift
+	cleared=yes
+      esac
+      case "$arg" in
+        -D*|-I*)
+	  set fnord "$@" "$arg"; shift;;
+	-*)
+	  ;;
+	*)
+	  set fnord "$@" "$arg"; shift;;
+      esac
+    done
+    obj_suffix="`echo $object | sed 's/^.*\././'`"
+    touch "$tmpdepfile"
+    ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  ) &
+  proc=$!
+  "$@"
+  stat=$?
+  wait "$proc"
+  if test "$stat" != 0; then exit $stat; fi
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  tail +3 "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  ( IFS=" "
+    case " $* " in
+    *" --mode=compile "*)
+      for arg
+      do # cycle over the arguments
+        case $arg in
+	"--mode=compile")
+	  # insert --quiet before "--mode=compile"
+	  set fnord "$@" --quiet
+	  shift # fnord
+	  ;;
+	esac
+	set fnord "$@" "$arg"
+	shift # fnord
+	shift # "$arg"
+      done
+      ;;
+    esac
+    "$@" -E |
+    sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+    sed '$ s: \\$::' > "$tmpdepfile"
+  ) &
+  proc=$!
+  "$@"
+  stat=$?
+  wait "$proc"
+  if test "$stat" != 0; then exit $stat; fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  ( IFS=" "
+    case " $* " in
+    *" --mode=compile "*)
+      for arg
+      do # cycle over the arguments
+        case $arg in
+	"--mode=compile")
+	  # insert --quiet before "--mode=compile"
+	  set fnord "$@" --quiet
+	  shift # fnord
+	  ;;
+	esac
+	set fnord "$@" "$arg"
+	shift # fnord
+	shift # "$arg"
+      done
+      ;;
+    esac
+    "$@" -E |
+    sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+  ) &
+  proc=$!
+  "$@"
+  stat=$?
+  wait "$proc"
+  if test "$stat" != 0; then exit $stat; fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
+  echo "	" >> "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0
Index: /branches/start/Taper/admin/detect-autoconf.sh
===================================================================
--- /branches/start/Taper/admin/detect-autoconf.sh	(revision 4308)
+++ /branches/start/Taper/admin/detect-autoconf.sh	(revision 4308)
@@ -0,0 +1,95 @@
+#! /bin/sh
+
+# Global variables...
+AUTOCONF="autoconf"
+AUTOHEADER="autoheader"
+AUTOM4TE="autom4te"
+AUTOMAKE="automake"
+ACLOCAL="aclocal"
+
+
+# We don't use variable here for remembering the type ... strings.
+# local variables are not that portable, but we fear namespace issues with
+# our includer.  The repeated type calls are not that expensive.
+checkAutoconf()
+{
+  if test -x "`$WHICH autoconf-2.5x 2>/dev/null`" ; then	
+    AUTOCONF="`$WHICH autoconf-2.5x`"
+  elif test -x "`$WHICH autoconf-2.57 2>/dev/null`" ; then
+    AUTOCONF="`$WHICH autoconf-2.57`"
+  elif test -x "`$WHICH autoconf-2.56 2>/dev/null`" ; then
+    AUTOCONF="`$WHICH autoconf-2.56`"
+  elif test -x "`$WHICH autoconf-2.55 2>/dev/null`" ; then
+    AUTOCONF="`$WHICH autoconf-2.55`"
+  elif test -x "`$WHICH autoconf-2.54 2>/dev/null`" ; then
+    AUTOCONF="`$WHICH autoconf-2.54`"
+  elif test -x "`$WHICH autoconf-2.53 2>/dev/null`" ; then
+    AUTOCONF="`$WHICH autoconf-2.53`"
+  elif test -x "`$WHICH autoconf-2.53a 2>/dev/null`" ; then
+    AUTOCONF="`$WHICH autoconf-2.53a`"
+  elif test -x "`$WHICH autoconf-2.52 2>/dev/null`" ; then
+    AUTOCONF="`$WHICH autoconf-2.52`"
+  elif test -x "`$WHICH autoconf2.50 2>/dev/null`" ; then
+    AUTOCONF="`$WHICH autoconf2.50`"
+  fi
+}
+
+checkAutoheader()
+{
+  if test -x "`$WHICH autoheader-2.5x 2>/dev/null`" ; then
+    AUTOHEADER="`$WHICH autoheader-2.5x`"
+    AUTOM4TE="`$WHICH autom4te-2.5x`"
+  elif test -x "`$WHICH autoheader-2.57 2>/dev/null`" ; then
+    AUTOHEADER="`$WHICH autoheader-2.57`"
+    AUTOM4TE="`$WHICH autom4te-2.57`"
+  elif test -x "`$WHICH autoheader-2.56 2>/dev/null`" ; then
+    AUTOHEADER="`$WHICH autoheader-2.56`"
+    AUTOM4TE="`$WHICH autom4te-2.56`"
+  elif test -x "`$WHICH autoheader-2.55 2>/dev/null`" ; then
+    AUTOHEADER="`$WHICH autoheader-2.55`"
+    AUTOM4TE="`$WHICH autom4te-2.55`"
+  elif test -x "`$WHICH autoheader-2.54 2>/dev/null`" ; then
+    AUTOHEADER="`$WHICH autoheader-2.54`"
+    AUTOM4TE="`$WHICH autom4te-2.54`"
+  elif test -x "`$WHICH autoheader-2.53 2>/dev/null`" ; then
+    AUTOHEADER="`$WHICH autoheader-2.53`"
+    AUTOM4TE="`$WHICH autom4te-2.53`"
+  elif test -x "`$WHICH autoheader-2.53a 2>/dev/null`" ; then
+    AUTOHEADER="`$WHICH autoheader-2.53a`"
+    AUTOM4TE="`$WHICH autom4te-2.53a`"
+  elif test -x "`$WHICH autoheader-2.52 2>/dev/null`" ; then
+    AUTOHEADER="`$WHICH autoheader-2.52`"
+  elif test -x "`$WHICH autoheader2.50 2>/dev/null`" ; then
+    AUTOHEADER="`$WHICH autoheader2.50`"
+  fi
+}
+
+checkAutomakeAclocal ()
+{
+ if test -x "`$WHICH automake-1.6 2>/dev/null`" ; then
+    AUTOMAKE="`$WHICH automake-1.6`"
+    ACLOCAL="`$WHICH aclocal-1.6`"
+  elif test -x "`$WHICH automake-1.7 2>/dev/null`" ; then
+    AUTOMAKE="`$WHICH automake-1.7`"
+    ACLOCAL="`$WHICH aclocal-1.7`"
+  fi
+  if test -n "$UNSERMAKE"; then 
+     AUTOMAKE="$UNSERMAKE"
+  fi
+}
+
+checkWhich ()
+{
+  WHICH=""
+  for i in "type -p" "which" "type" ; do
+    T=`$i sh 2> /dev/null`
+    test -x "$T" && WHICH="$i" && break
+  done
+}
+
+checkWhich
+checkAutoconf
+checkAutoheader
+checkAutomakeAclocal
+
+export WHICH AUTOHEADER AUTOCONF AUTOM4TE AUTOMAKE ACLOCAL
Index: /branches/start/Taper/admin/install-sh
===================================================================
--- /branches/start/Taper/admin/install-sh	(revision 4308)
+++ /branches/start/Taper/admin/install-sh	(revision 4308)
@@ -0,0 +1,276 @@
+#!/bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission.  M.I.T. makes no representations about the
+# suitability of this software for any purpose.  It is provided "as is"
+# without express or implied warranty.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.  It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+	-c) instcmd=$cpprog
+	    shift
+	    continue;;
+
+	-d) dir_arg=true
+	    shift
+	    continue;;
+
+	-m) chmodcmd="$chmodprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-o) chowncmd="$chownprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-g) chgrpcmd="$chgrpprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-s) stripcmd=$stripprog
+	    shift
+	    continue;;
+
+	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
+	    shift
+	    continue;;
+
+	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+	    shift
+	    continue;;
+
+	*)  if [ x"$src" = x ]
+	    then
+		src=$1
+	    else
+		# this colon is to work around a 386BSD /bin/sh bug
+		:
+		dst=$1
+	    fi
+	    shift
+	    continue;;
+    esac
+done
+
+if [ x"$src" = x ]
+then
+	echo "$0: no input file specified" >&2
+	exit 1
+else
+	:
+fi
+
+if [ x"$dir_arg" != x ]; then
+	dst=$src
+	src=""
+
+	if [ -d "$dst" ]; then
+		instcmd=:
+		chmodcmd=""
+	else
+		instcmd=$mkdirprog
+	fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad
+# if $src (and thus $dsttmp) contains '*'.
+
+	if [ -f "$src" ] || [ -d "$src" ]
+	then
+		:
+	else
+		echo "$0: $src does not exist" >&2
+		exit 1
+	fi
+
+	if [ x"$dst" = x ]
+	then
+		echo "$0: no destination specified" >&2
+		exit 1
+	else
+		:
+	fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+	if [ -d "$dst" ]
+	then
+		dst=$dst/`basename "$src"`
+	else
+		:
+	fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+#  this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='
+	'
+IFS="${IFS-$defaultIFS}"
+
+oIFS=$IFS
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS=$oIFS
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+	pathcomp=$pathcomp$1
+	shift
+
+	if [ ! -d "$pathcomp" ] ;
+        then
+		$mkdirprog "$pathcomp"
+	else
+		:
+	fi
+
+	pathcomp=$pathcomp/
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+	$doit $instcmd "$dst" &&
+
+	if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
+	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
+	if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
+	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+	if [ x"$transformarg" = x ]
+	then
+		dstfile=`basename "$dst"`
+	else
+		dstfile=`basename "$dst" $transformbasename |
+			sed $transformarg`$transformbasename
+	fi
+
+# don't allow the sed command to completely eliminate the filename
+
+	if [ x"$dstfile" = x ]
+	then
+		dstfile=`basename "$dst"`
+	else
+		:
+	fi
+
+# Make a couple of temp file names in the proper directory.
+
+	dsttmp=$dstdir/#inst.$$#
+	rmtmp=$dstdir/#rm.$$#
+
+# Trap to clean up temp files at exit.
+
+	trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
+	trap '(exit $?); exit' 1 2 13 15
+
+# Move or copy the file name to the temp name
+
+	$doit $instcmd "$src" "$dsttmp" &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing.  If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+	if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
+	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
+	if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
+	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
+
+# Now remove or move aside any old file at destination location.  We try this
+# two ways since rm can't unlink itself on some systems and the destination
+# file might be busy for other reasons.  In this case, the final cleanup
+# might fail but the new file should still install successfully.
+
+{
+	if [ -f "$dstdir/$dstfile" ]
+	then
+		$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
+		$doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
+		{
+		  echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
+		  (exit 1); exit
+		}
+	else
+		:
+	fi
+} &&
+
+# Now rename the file to the real destination.
+
+	$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
+
+fi &&
+
+# The final little trick to "correctly" pass the exit status to the exit trap.
+
+{
+	(exit 0); exit
+}
Index: /branches/start/Taper/admin/libtool.m4.in
===================================================================
--- /branches/start/Taper/admin/libtool.m4.in	(revision 4308)
+++ /branches/start/Taper/admin/libtool.m4.in	(revision 4308)
@@ -0,0 +1,5854 @@
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+## Copyright 1996, 1997, 1998, 1999, 2000, 2001
+## Free Software Foundation, Inc.
+## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+##
+## As a special exception to the GNU General Public License, if you
+## distribute this file as part of a program that contains a
+## configuration script generated by Autoconf, you may include it under
+## the same distribution terms that you use for the rest of that program.
+
+# serial 47 AC_PROG_LIBTOOL
+
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If this macro is not defined by Autoconf, define it here.
+m4_ifdef([AC_PROVIDE_IFELSE],
+         [],
+         [m4_define([AC_PROVIDE_IFELSE],
+	         [m4_ifdef([AC_PROVIDE_$1],
+		           [$2], [$3])])])
+
+
+# AC_PROG_LIBTOOL
+# ---------------
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+  AC_PROVIDE_IFELSE([AC_PROG_CXX],
+    [AC_LIBTOOL_CXX],
+    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+  ])])
+dnl And a similar setup for Fortran 77 support
+  AC_PROVIDE_IFELSE([AC_PROG_F77],
+    [AC_LIBTOOL_F77],
+    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+])])
+
+dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+    [AC_LIBTOOL_GCJ],
+    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+      [AC_LIBTOOL_GCJ],
+      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+	[AC_LIBTOOL_GCJ],
+      [ifdef([AC_PROG_GCJ],
+	     [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([A][M_PROG_GCJ],
+	     [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([LT_AC_PROG_GCJ],
+	     [define([LT_AC_PROG_GCJ],
+		defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+])])# AC_PROG_LIBTOOL
+
+
+# _AC_PROG_LIBTOOL
+# ----------------
+AC_DEFUN([_AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool --silent'
+AC_SUBST(LIBTOOL)dnl
+
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])# _AC_PROG_LIBTOOL
+
+
+# AC_LIBTOOL_SETUP
+# ----------------
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
+
+AC_LIBTOOL_SYS_MAX_CMD_LEN
+AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+AC_LIBTOOL_OBJDIR
+
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+_LT_AC_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e s/^X//'
+[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
+
+# Same as above, but do not quote variable references.
+[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+AC_CHECK_TOOL(AR, ar, false)
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+    ;;
+  *)
+    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    AC_PATH_MAGIC
+  fi
+  ;;
+esac
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+enable_win32_dll=yes, enable_win32_dll=no)
+
+AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+AC_ARG_WITH([pic],
+    [AC_HELP_STRING([--with-pic],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+AC_LIBTOOL_LANG_C_CONFIG
+_LT_AC_TAGCONFIG
+])# AC_LIBTOOL_SETUP
+
+
+# _LT_AC_SYS_COMPILER
+# -------------------
+AC_DEFUN([_LT_AC_SYS_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_AC_SYS_COMPILER
+
+
+# _LT_AC_SYS_LIBPATH_AIX
+# ----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
+[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_AC_SYS_LIBPATH_AIX
+
+
+# _LT_AC_SHELL_INIT(ARG)
+# ----------------------
+AC_DEFUN([_LT_AC_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+	 [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_AC_SHELL_INIT
+
+
+# _LT_AC_PROG_ECHO_BACKSLASH
+# --------------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+[_LT_AC_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+  ;;
+esac
+
+echo=${ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X[$]1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+[$]*
+EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+       echo_test_string="`eval $cmd`" &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+    then
+      break
+    fi
+  done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+   test "X$echo_testing_string" = "X$echo_test_string"; then
+  :
+else
+  # The Solaris, AIX, and Digital Unix default echo programs unquote
+  # backslashes.  This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  #
+  # So, first we look for a working echo in the user's PATH.
+
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for dir in $PATH /usr/ucb; do
+    IFS="$lt_save_ifs"
+    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      echo="$dir/echo"
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  if test "X$echo" = Xecho; then
+    # We didn't find a better echo, so look for alternatives.
+    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      # This shell has a builtin print -r that does the trick.
+      echo='print -r'
+    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running configure again with it.
+      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+      export ORIGINAL_CONFIG_SHELL
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+    else
+      # Try using printf.
+      echo='printf %s\n'
+      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+	 test "X$echo_testing_string" = "X$echo_test_string"; then
+	# Cool, printf works
+	:
+      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	export CONFIG_SHELL
+	SHELL="$CONFIG_SHELL"
+	export SHELL
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      else
+	# maybe with a smaller string...
+	prev=:
+
+	for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+	  then
+	    break
+	  fi
+	  prev="$cmd"
+	done
+
+	if test "$prev" != 'sed 50q "[$]0"'; then
+	  echo_test_string=`eval $prev`
+	  export echo_test_string
+	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+	else
+	  # Oops.  We lost completely, so just stick with echo.
+	  echo=echo
+	fi
+      fi
+    fi
+  fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(ECHO)
+])])# _LT_AC_PROG_ECHO_BACKSLASH
+
+
+# _LT_AC_LOCK
+# -----------
+AC_DEFUN([_LT_AC_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *ELF-32*)
+      HPUX_IA64_MODE="32"
+      ;;
+    *ELF-64*)
+      HPUX_IA64_MODE="64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
+   else
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
+   fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case "`/usr/bin/file conftest.o`" in
+    *32-bit*)
+      LINUX_64_MODE="32"
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_i386"
+          ;;
+        ppc64-*linux*)
+          LD="${LD-ld} -m elf32ppclinux"
+          ;;
+        s390x-*linux*)
+          LD="${LD-ld} -m elf_s390"
+          ;;
+        sparc64-*linux*)
+          LD="${LD-ld} -m elf32_sparc"
+          ;;
+      esac
+      ;;
+    *64-bit*)
+      LINUX_64_MODE="64"
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        ppc*-*linux*|powerpc*-*linux*)
+          LD="${LD-ld} -m elf64ppc"
+          ;;
+        s390*-*linux*)
+          LD="${LD-ld} -m elf64_s390"
+          ;;
+        sparc*-*linux*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+  ])
+esac
+
+need_locks="$enable_libtool_lock"
+
+])# _LT_AC_LOCK
+
+
+# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s conftest.err; then
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$5], , :, [$5])
+else
+    ifelse([$6], , :, [$6])
+fi
+])# AC_LIBTOOL_COMPILER_OPTION
+
+
+# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                          [ACTION-SUCCESS], [ACTION-FAILURE])
+# ------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
+[AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+     else
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$4], , :, [$4])
+else
+    ifelse([$5], , :, [$5])
+fi
+])# AC_LIBTOOL_LINKER_OPTION
+
+
+# AC_LIBTOOL_SYS_MAX_CMD_LEN
+# --------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
+[# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  testring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+ *)
+    # If test is not a shell built-in, we'll probably end up computing a
+    # maximum length that is only half of the actual maximum length, but
+    # we can't tell.
+    while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \
+	       = "XX$testring") >/dev/null 2>&1 &&
+	    new_result=`expr "X$testring" : ".*" 2>&1` &&
+	    lt_cv_sys_max_cmd_len=$new_result &&
+	    test $i != 17 # 1/2 MB should be enough
+    do
+      i=`expr $i + 1`
+      testring=$testring$testring
+    done
+    testring=
+    # Add a significant safety factor because C++ compilers can tack on massive
+    # amounts of additional arguments before passing them to the linker.
+    # It appears as though 1/2 is a usable value.
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+])# AC_LIBTOOL_SYS_MAX_CMD_LEN
+
+
+# _LT_AC_CHECK_DLFCN
+# --------------------
+AC_DEFUN([_LT_AC_CHECK_DLFCN],
+[AC_CHECK_HEADERS(dlfcn.h)dnl
+])# _LT_AC_CHECK_DLFCN
+
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ------------------------------------------------------------------
+AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}]
+EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_unknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_AC_TRY_DLOPEN_SELF
+
+
+# AC_LIBTOOL_DLOPEN_SELF
+# -------------------
+AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+   ;;
+    
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen="dlopen"],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      LDFLAGS="$LDFLAGS $link_static_flag"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+    	  lt_cv_dlopen_self_static, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+])# AC_LIBTOOL_DLOPEN_SELF
+
+
+# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
+# ---------------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler
+AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+   # that will create temporary files in the current directory regardless of
+   # the output directory.  Thus, making CWD read-only will cause this test
+   # to fail, enabling locking or at least warning the user not to do parallel
+   # builds.
+   chmod -w .
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s out/conftest.err; then
+       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w .
+   $rm conftest* out/*
+   rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+])
+])# AC_LIBTOOL_PROG_CC_C_O
+
+
+# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
+# -----------------------------------------
+# Check to see if we can do hard links to lock some files if needed
+AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
+[AC_REQUIRE([_LT_AC_LOCK])dnl
+
+hard_links="nottested"
+if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
+
+
+# AC_LIBTOOL_OBJDIR
+# -----------------
+AC_DEFUN([AC_LIBTOOL_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+])# AC_LIBTOOL_OBJDIR
+
+
+# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
+# ----------------------------------------------
+# Check hardcoding attributes.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_AC_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
+   test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \
+   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_AC_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
+
+
+# AC_LIBTOOL_SYS_LIB_STRIP
+# ------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
+[striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         AC_MSG_RESULT([yes])
+       else
+  AC_MSG_RESULT([no])
+fi
+       ;;
+   *)
+  AC_MSG_RESULT([no])
+    ;;
+  esac  
+fi
+])# AC_LIBTOOL_SYS_LIB_STRIP
+
+
+# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
+[AC_MSG_CHECKING([dynamic linker characteristics])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi4*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext='$(test .$module = .yes && echo .so || echo .dylib)'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+freebsd*-gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd*)
+  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  *) # from 3.2 on
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case "$host_cpu" in
+  ia64*)
+    shrext='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  libsuff=
+  if test "x$LINUX_64_MODE" = x64; then
+    # Some platforms are per default 64-bit, so there's no /lib64
+    if test -d /lib64; then
+      libsuff=64
+    fi
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
+  sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+sco3.2v5*)
+  version_type=osf
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+
+
+# _LT_AC_TAGCONFIG
+# ----------------
+AC_DEFUN([_LT_AC_TAGCONFIG],
+[AC_ARG_WITH([tags],
+    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
+        [include additional configurations @<:@automatic@:>@])],
+    [tagnames="$withval"])
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+  if test ! -f "${ofile}"; then
+    AC_MSG_WARN([output file `$ofile' does not exist])
+  fi
+
+  if test -z "$LTCC"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+    if test -z "$LTCC"; then
+      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
+    else
+      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
+    fi
+  fi
+
+  # Extract list of available tagged configurations in $ofile.
+  # Note that this assumes the entire list is on one line.
+  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+  for tagname in $tagnames; do
+    IFS="$lt_save_ifs"
+    # Check whether tagname contains only valid characters
+    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
+    "") ;;
+    *)  AC_MSG_ERROR([invalid tag name: $tagname])
+	;;
+    esac
+
+    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+    then
+      AC_MSG_ERROR([tag name \"$tagname\" already exists])
+    fi
+
+    # Update the list of available tags.
+    if test -n "$tagname"; then
+      echo appending configuration tag \"$tagname\" to $ofile
+
+      case $tagname in
+      CXX)
+	if test -n "$CXX" && test "X$CXX" != "Xno"; then
+	  AC_LIBTOOL_LANG_CXX_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      F77)
+	if test -n "$F77" && test "X$F77" != "Xno"; then
+	  AC_LIBTOOL_LANG_F77_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      GCJ)
+	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+	  AC_LIBTOOL_LANG_GCJ_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      RC)
+	AC_LIBTOOL_LANG_RC_CONFIG
+	;;
+
+      *)
+	AC_MSG_ERROR([Unsupported tag name: $tagname])
+	;;
+      esac
+
+      # Append the new tag name to the list of available tags.
+      if test -n "$tagname" ; then
+      available_tags="$available_tags $tagname"
+    fi
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  # Now substitute the updated list of available tags.
+  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+    mv "${ofile}T" "$ofile"
+    chmod +x "$ofile"
+  else
+    rm -f "${ofile}T"
+    AC_MSG_ERROR([unable to update list of available tagged configurations.])
+  fi
+fi
+])# _LT_AC_TAGCONFIG
+
+
+# AC_LIBTOOL_DLOPEN
+# -----------------
+# enable checks for dlopen support
+AC_DEFUN([AC_LIBTOOL_DLOPEN],
+ [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_DLOPEN
+
+
+# AC_LIBTOOL_WIN32_DLL
+# --------------------
+# declare package support for building win32 dll's
+AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_WIN32_DLL
+
+
+# AC_ENABLE_SHARED([DEFAULT])
+# ---------------------------
+# implement the --enable-shared flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_SHARED],
+[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([shared],
+    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
+])# AC_ENABLE_SHARED
+
+
+# AC_DISABLE_SHARED
+# -----------------
+#- set the default shared flag to --disable-shared
+AC_DEFUN([AC_DISABLE_SHARED],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)
+])# AC_DISABLE_SHARED
+
+
+# AC_ENABLE_STATIC([DEFAULT])
+# ---------------------------
+# implement the --enable-static flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_STATIC],
+[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([static],
+    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
+])# AC_ENABLE_STATIC
+
+
+# AC_DISABLE_STATIC
+# -----------------
+# set the default static flag to --disable-static
+AC_DEFUN([AC_DISABLE_STATIC],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)
+])# AC_DISABLE_STATIC
+
+
+# AC_ENABLE_FAST_INSTALL([DEFAULT])
+# ---------------------------------
+# implement the --enable-fast-install flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([fast-install],
+    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
+])# AC_ENABLE_FAST_INSTALL
+
+
+# AC_DISABLE_FAST_INSTALL
+# -----------------------
+# set the default to --disable-fast-install
+AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)
+])# AC_DISABLE_FAST_INSTALL
+
+
+# AC_LIBTOOL_PICMODE([MODE])
+# --------------------------
+# implement the --with-pic flag
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+AC_DEFUN([AC_LIBTOOL_PICMODE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+pic_mode=ifelse($#,1,$1,default)
+])# AC_LIBTOOL_PICMODE
+
+
+# AC_PROG_EGREP
+# -------------
+# This is predefined starting with Autoconf 2.54, so this conditional
+# definition can be removed once we require Autoconf 2.54 or later.
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi])
+ EGREP=$ac_cv_prog_egrep
+ AC_SUBST([EGREP])
+])])
+
+
+# AC_PATH_TOOL_PREFIX
+# -------------------
+# find a file program which can recognise shared library
+AC_DEFUN([AC_PATH_TOOL_PREFIX],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="ifelse([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+])# AC_PATH_TOOL_PREFIX
+
+
+# AC_PATH_MAGIC
+# -------------
+# find a file program which can recognise a shared library
+AC_DEFUN([AC_PATH_MAGIC],
+[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# AC_PATH_MAGIC
+
+
+# AC_PROG_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([AC_PROG_LD],
+[AC_ARG_WITH([gnu-ld],
+    [AC_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])
+AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])# AC_PROG_LD
+
+
+# AC_PROG_LD_GNU
+# --------------
+AC_DEFUN([AC_PROG_LD_GNU],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# AC_PROG_LD_GNU
+
+
+# AC_PROG_LD_RELOAD_FLAG
+# ----------------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+])# AC_PROG_LD_RELOAD_FLAG
+
+
+# AC_DEPLIBS_CHECK_METHOD
+# -----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+[AC_CACHE_CHECK([how to recognise dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi4*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin* | mingw* | pw32*)
+  # win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='win32_libid'
+  ;;
+
+darwin* | rhapsody*)
+  # this will be overwritten by pass_all, but leave it in just in case
+  lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  case "$host_os" in
+  rhapsody* | darwin1.[[012]])
+    lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System`
+    ;;
+  *) # Darwin 1.3 on
+    lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
+    ;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case "$host_cpu" in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+  irix5* | nonstopux*)
+    # this will be overridden with pass_all, but let us keep it just in case
+    lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+    ;;
+  *)
+    case $LD in
+    *-32|*"-32 ") libmagic=32-bit;;
+    *-n32|*"-n32 ") libmagic=N32;;
+    *-64|*"-64 ") libmagic=64-bit;;
+    *) libmagic=never-match;;
+    esac
+    # this will be overridden with pass_all, but let us keep it just in case
+    lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1"
+    ;;
+  esac
+  lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  case $host_cpu in
+  alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* )
+    lt_cv_deplibs_check_method=pass_all ;;
+  # the debian people say, arm and glibc 2.3.1 works for them with pass_all
+  arm* )
+    lt_cv_deplibs_check_method=pass_all ;;
+  *)
+    # glibc up to 2.1.1 does not perform some relocations on ARM
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
+  esac
+  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+nto-qnx*)
+  lt_cv_deplibs_check_method=unknown
+  ;;
+
+openbsd*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
+  else
+    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  # this will be overridden with pass_all, but let us keep it just in case
+  lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sco3.2v5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  lt_cv_file_magic_test_file=/lib/libc.so
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+])# AC_DEPLIBS_CHECK_METHOD
+
+
+# AC_PROG_NM
+# ----------
+# find the pathname to a BSD-compatible name lister
+AC_DEFUN([AC_PROG_NM],
+[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
+    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+      # Check to see if the nm accepts a BSD-compat flag.
+      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+      #   nm: unknown option "B" ignored
+      # Tru64's nm complains that /dev/null is an invalid object file
+      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+      */dev/null* | *'Invalid file or object type'*)
+	lt_cv_path_NM="$tmp_nm -B"
+	break
+        ;;
+      *)
+	case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	*/dev/null*)
+	  lt_cv_path_NM="$tmp_nm -p"
+	  break
+	  ;;
+	*)
+	  lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	  continue # so that we can try to find one that supports BSD flags
+	  ;;
+	esac
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi])
+NM="$lt_cv_path_NM"
+])# AC_PROG_NM
+
+
+# AC_CHECK_LIBM
+# -------------
+# check for math library
+AC_DEFUN([AC_CHECK_LIBM],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+])# AC_CHECK_LIBM
+
+
+# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl convenience library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-convenience to the configure arguments.  Note that LIBLTDL
+# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
+# DIRECTORY is not provided, it is assumed to be `libltdl'.  LIBLTDL will
+# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
+# '${top_srcdir}/' (note the single quotes!).  If your package is not
+# flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  case $enable_ltdl_convenience in
+  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+  "") enable_ltdl_convenience=yes
+      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+  esac
+  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_CONVENIENCE
+
+
+# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl installable library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-install to the configure arguments.  Note that LIBLTDL
+# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
+# DIRECTORY is not provided and an installed libltdl is not found, it is
+# assumed to be `libltdl'.  LIBLTDL will be prefixed with '${top_builddir}/'
+# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
+# quotes!).  If your package is not flat and you're not using automake,
+# define top_builddir and top_srcdir appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  AC_CHECK_LIB(ltdl, lt_dlinit,
+  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+  [if test x"$enable_ltdl_install" = xno; then
+     AC_MSG_WARN([libltdl not installed, but installation disabled])
+   else
+     enable_ltdl_install=yes
+   fi
+  ])
+  if test x"$enable_ltdl_install" = x"yes"; then
+    ac_configure_args="$ac_configure_args --enable-ltdl-install"
+    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  else
+    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+    LIBLTDL="-lltdl"
+    LTDLINCL=
+  fi
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_INSTALLABLE
+
+
+# AC_LIBTOOL_CXX
+# --------------
+# enable support for C++ libraries
+AC_DEFUN([AC_LIBTOOL_CXX],
+[AC_REQUIRE([_LT_AC_LANG_CXX])
+])# AC_LIBTOOL_CXX
+
+
+# _LT_AC_LANG_CXX
+# ---------------
+AC_DEFUN([_LT_AC_LANG_CXX],
+[AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([AC_PROG_CXXCPP])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
+])# _LT_AC_LANG_CXX
+
+
+# AC_LIBTOOL_F77
+# --------------
+# enable support for Fortran 77 libraries
+AC_DEFUN([AC_LIBTOOL_F77],
+[AC_REQUIRE([_LT_AC_LANG_F77])
+])# AC_LIBTOOL_F77
+
+
+# _LT_AC_LANG_F77
+# ---------------
+AC_DEFUN([_LT_AC_LANG_F77],
+[AC_REQUIRE([AC_PROG_F77])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
+])# _LT_AC_LANG_F77
+
+
+# AC_LIBTOOL_GCJ
+# --------------
+# enable support for GCJ libraries
+AC_DEFUN([AC_LIBTOOL_GCJ],
+[AC_REQUIRE([_LT_AC_LANG_GCJ])
+])# AC_LIBTOOL_GCJ
+
+
+# _LT_AC_LANG_GCJ
+# ---------------
+AC_DEFUN([_LT_AC_LANG_GCJ],
+[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
+    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
+      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
+	 [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
+	   [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
+])# _LT_AC_LANG_GCJ
+
+
+# AC_LIBTOOL_RC
+# --------------
+# enable support for Windows resource files
+AC_DEFUN([AC_LIBTOOL_RC],
+[AC_REQUIRE([LT_AC_PROG_RC])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
+])# AC_LIBTOOL_RC
+
+
+# AC_LIBTOOL_LANG_C_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
+AC_DEFUN([_LT_AC_LANG_C_CONFIG],
+[lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+_LT_AC_SYS_COMPILER
+
+#
+# Check for any special shared library compilation flags.
+#
+_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
+if test "$GCC" = no; then
+  case $host_os in
+  sco3.2v5*)
+    _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
+    ;;
+  esac
+fi
+if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
+  AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
+  if echo "$old_CC $old_CFLAGS " | grep "[[ 	]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ 	]]" >/dev/null; then :
+  else
+    AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
+    _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
+  fi
+fi
+
+
+#
+# Check to make sure the static flag actually works.
+#
+AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
+  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
+  $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
+  [],
+  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+# Report which librarie types wil actually be built
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+
+aix4*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+  ;;
+  darwin* | rhapsody*)
+  if test "$GCC" = yes; then
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    case "$host_os" in
+    rhapsody* | darwin1.[[012]])
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
+      ;;
+    *) # Darwin 1.3 on
+      test -z ${LD_TWOLEVEL_NAMESPACE} && _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
+      ;;
+    esac
+    output_verbose_link_cmd='echo'
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring'
+    _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=no
+    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+  else
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+  fi  
+    ;;  
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_C_CONFIG
+
+
+# AC_LIBTOOL_LANG_CXX_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
+AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
+[AC_LANG_PUSH(C++)
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([AC_PROG_CXXCPP])
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Dependencies to place before and after the object being linked:
+_LT_AC_TAGVAR(predep_objects, $1)=
+_LT_AC_TAGVAR(postdep_objects, $1)=
+_LT_AC_TAGVAR(predeps, $1)=
+_LT_AC_TAGVAR(postdeps, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+
+# Source file extension for C++ test sources.
+ac_ext=cc
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+  unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+  lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+  unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+else
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+fi
+
+if test "$GXX" = yes; then
+  # Set up default GNU C++ configuration
+
+  AC_PROG_LD
+
+  # Check if GNU C++ uses GNU ld as the underlying linker, since the
+  # archiving commands below assume that GNU ld is being used.
+  if test "$with_gnu_ld" = yes; then
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+    #     investigate it a little bit more. (MM)
+    wlarc='${wl}'
+
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+	grep 'no-whole-archive' > /dev/null; then
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    with_gnu_ld=no
+    wlarc=
+
+    # A generic and very simple default shared library creation
+    # command for GNU C++ for the case where it uses the native
+    # linker, instead of GNU ld.  If possible, this setting should
+    # overridden to take advantage of the native linker features on
+    # the platform it is being used on.
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+  fi
+
+  # Commands to make compiler produce verbose output that lists
+  # what "hidden" libraries, object files and flags are used when
+  # linking a shared library.
+  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+  GXX=no
+  with_gnu_ld=no
+  wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+case $host_os in
+  aix3*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  aix4* | aix5*)
+    if test "$host_cpu" = ia64; then
+      # On IA64, the linker does run time linking by default, so we don't
+      # have to do anything special.
+      aix_use_runtimelinking=no
+      exp_sym_flag='-Bexport'
+      no_entry_flag=""
+    else
+      # KDE requires run time linking.  Make it the default.
+      aix_use_runtimelinking=yes
+      exp_sym_flag='-bexport'
+      no_entry_flag='-bnoentry'
+    fi
+
+    # When large executables or shared objects are built, AIX ld can
+    # have problems creating the table of contents.  If linking a library
+    # or program results in "error TOC overflow" add -mminimal-toc to
+    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+    _LT_AC_TAGVAR(archive_cmds, $1)=''
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+    if test "$GXX" = yes; then
+      case $host_os in aix4.[012]|aix4.[012].*)
+      # We only want to do this on AIX 4.2 and lower, the check
+      # below for broken collect2 doesn't work under 4.3+
+	collect2name=`${CC} -print-prog-name=collect2`
+	if test -f "$collect2name" && \
+	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	then
+	  # We have reworked collect2
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	else
+	  # We have old collect2
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	fi
+      esac
+      shared_flag='-shared'
+    else
+      # not using gcc
+      if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	shared_flag='-G'
+      else
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag='-qmkshrobj ${wl}-G'
+	else
+	  shared_flag='-qmkshrobj'
+	fi
+      fi
+    fi
+
+    # Let the compiler handle the export list.
+    _LT_AC_TAGVAR(always_export_symbols, $1)=no
+    if test "$aix_use_runtimelinking" = yes; then
+      # Warning - without using the other runtime loading flags (-brtl),
+      # -berok will link without error, but may produce a broken library.
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+      # Determine the default libpath from the value encoded in an empty executable.
+      _LT_AC_SYS_LIBPATH_AIX
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+      _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+      if test "$host_cpu" = ia64; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+      else
+	# Determine the default libpath from the value encoded in an empty executable.
+	_LT_AC_SYS_LIBPATH_AIX
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	# Warning - without using the other run time loading flags,
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	# -bexpall does not export symbols beginning with underscore (_)
+	_LT_AC_TAGVAR(always_export_symbols, $1)=yes
+	# Exported symbols can be pulled into shared objects from archives
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	# This is similar to how AIX traditionally builds it's shared libraries.
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+      fi
+    fi
+    ;;
+  chorus*)
+    case $cc_basename in
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+
+  cygwin* | mingw* | pw32*)
+    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+    # as there is no search path for DLLs.
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+    _LT_AC_TAGVAR(always_export_symbols, $1)=no
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+      # If the export-symbols file already is a .def file (1st line
+      # is EXPORTS), use it as is; otherwise, prepend...
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	cp $export_symbols $output_objdir/$soname.def;
+      else
+	echo EXPORTS > $output_objdir/$soname.def;
+	cat $export_symbols >> $output_objdir/$soname.def;
+      fi~
+      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+  ;;
+
+  darwin* | rhapsody*)
+  if test "$GXX" = yes; then
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    case "$host_os" in
+    rhapsody* | darwin1.[[012]])
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
+      ;;
+    *) # Darwin 1.3 on
+      test -z ${LD_TWOLEVEL_NAMESPACE} && _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
+      ;;
+    esac
+    lt_int_apple_cc_single_mod=no
+    output_verbose_link_cmd='echo'
+    if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+      lt_int_apple_cc_single_mod=yes
+    fi
+    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+    else
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+    fi
+    _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+
+    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=no
+    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+  else
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+  fi
+    ;;
+
+  dgux*)
+    case $cc_basename in
+      ec++)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      ghcx)
+	# Green Hills C++ Compiler
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  freebsd[12]*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  freebsd-elf*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    ;;
+  freebsd*)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+    ;;
+  gnu*)
+    ;;
+  hpux9*)
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				# but as the default
+				# location of the library.
+
+    case $cc_basename in
+    CC)
+      # FIXME: insert proper C++ library support
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    aCC)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      #
+      # There doesn't appear to be a way to prevent this compiler from
+      # explicitly linking system object files so we need to strip them
+      # from the output so that they don't get included in the library
+      # dependencies.
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      ;;
+    *)
+      if test "$GXX" = yes; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+        # FIXME: insert proper C++ library support
+        _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
+    if test $with_gnu_ld = no; then
+      case "$host_cpu" in
+      hppa*64*)
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+        ;;
+      ia64*)
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+        ;;
+      *)
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        ;;
+      esac
+    fi
+    case "$host_cpu" in
+    hppa*64*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+    ia64*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    *)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    esac
+
+    case $cc_basename in
+      CC)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      aCC)
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	esac
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test $with_gnu_ld = no; then
+	    case "$host_cpu" in
+	    ia64*|hppa*64*)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    esac
+	  fi
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  irix5* | irix6*)
+    case $cc_basename in
+      CC)
+	# SGI C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+
+	# Archives containing C++ object files must be created using
+	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test "$with_gnu_ld" = no; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+	  else
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+	  fi
+	fi
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+	;;
+    esac
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    ;;
+  linux*)
+    case $cc_basename in
+      KCC)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	;;
+      icpc)
+	# Intel C++
+	with_gnu_ld=yes
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	;;
+      cxx)
+	# Compaq C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	runpath_var=LD_RUN_PATH
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+    esac
+    ;;
+  lynxos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  m88k*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  mvs*)
+    case $cc_basename in
+      cxx)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    fi
+    # Workaround some broken pre-1.5 toolchains
+    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+    ;;
+  osf3*)
+    case $cc_basename in
+      KCC)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+
+	;;
+      RCC)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      cxx)
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  osf4* | osf5*)
+    case $cc_basename in
+      KCC)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Archives containing C++ object files must be created using
+	# the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
+	;;
+      RCC)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      cxx)
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	  echo "-hidden">> $lib.exp~
+	  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry $objdir/so_locations -o $lib~
+	  $rm $lib.exp'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	 _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  psos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  sco*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    case $cc_basename in
+      CC)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  sunos4*)
+    case $cc_basename in
+      CC)
+	# Sun C++ 4.x
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      lcc)
+	# Lucid
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  solaris*)
+    case $cc_basename in
+      CC)
+	# Sun C++ 4.2, 5.x and Centerline C++
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	case $host_os in
+	  solaris2.[0-5] | solaris2.[0-5].*) ;;
+	  *)
+	    # The C++ compiler is used as linker so we must use $wl
+	    # flag to pass the commands to the underlying system
+	    # linker.
+	    # Supported since Solaris 2.6 (maybe 2.5.1?)
+	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	    ;;
+	esac
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	# Archives containing C++ object files must be created using
+	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	;;
+      gcx)
+	# Green Hills C++ Compiler
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+	# The C++ compiler must be used to create the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	;;
+      *)
+	# GNU C++ compiler with Solaris linker
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+	  if $CC --version | grep -v '^2\.7' > /dev/null; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  else
+	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	    # platform.
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  fi
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	fi
+	;;
+    esac
+    ;;
+  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    ;;
+  tandem*)
+    case $cc_basename in
+      NCC)
+	# NonStop-UX NCC 3.20
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  vxworks*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  *)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+esac
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$GXX"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_POSTDEP_PREDEP($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+])# AC_LIBTOOL_LANG_CXX_CONFIG
+
+# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
+# ------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
+int a;
+void foo (void) { a = 0; }
+EOF
+],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+EOF
+],[$1],[F77],[cat > conftest.$ac_ext <<EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+EOF
+],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  # The `*' in the case matches for architectures that use `case' in
+  # $output_verbose_cmd can trigger glob expansion during the loop
+  # eval without this substitution.
+  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
+
+  for p in `eval $output_verbose_link_cmd`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" \
+	  || test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+	   else
+	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
+	   _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
+	 else
+	   _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext|*.$libext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
+	   _LT_AC_TAGVAR(predep_objects, $1)="$p"
+	 else
+	   _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
+	   _LT_AC_TAGVAR(postdep_objects, $1)="$p"
+	 else
+	   _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$rm -f confest.$objext
+
+case " $_LT_AC_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+])# AC_LIBTOOL_POSTDEP_PREDEP
+
+# AC_LIBTOOL_LANG_F77_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
+AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
+[AC_REQUIRE([AC_PROG_F77])
+AC_LANG_PUSH(Fortran 77)
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="      program t\n      end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+aix4*)
+  test "$enable_shared" = yes && enable_static=no
+  ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$G77"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_F77_CONFIG
+
+
+# AC_LIBTOOL_LANG_GCJ_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
+AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_GCJ_CONFIG
+
+
+# AC_LIBTOOL_LANG_RC_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the Windows resource compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
+AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_RC_CONFIG
+
+
+# AC_LIBTOOL_CONFIG([TAGNAME])
+# ----------------------------
+# If TAGNAME is not passed, then create an initial libtool script
+# with a default configuration from the untagged config vars.  Otherwise
+# add code to config.status for appending the configuration named by
+# TAGNAME from the matching tagged config vars.
+AC_DEFUN([AC_LIBTOOL_CONFIG],
+[# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi  
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    _LT_AC_TAGVAR(compiler, $1) \
+    _LT_AC_TAGVAR(CC, $1) \
+    _LT_AC_TAGVAR(LD, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
+    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
+    _LT_AC_TAGVAR(old_archive_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
+    _LT_AC_TAGVAR(predep_objects, $1) \
+    _LT_AC_TAGVAR(postdep_objects, $1) \
+    _LT_AC_TAGVAR(predeps, $1) \
+    _LT_AC_TAGVAR(postdeps, $1) \
+    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+    _LT_AC_TAGVAR(archive_cmds, $1) \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(postinstall_cmds, $1) \
+    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
+    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
+    _LT_AC_TAGVAR(no_undefined_flag, $1) \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
+    _LT_AC_TAGVAR(hardcode_automatic, $1) \
+    _LT_AC_TAGVAR(module_cmds, $1) \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+    _LT_AC_TAGVAR(exclude_expsyms, $1) \
+    _LT_AC_TAGVAR(include_expsyms, $1); do
+
+    case $var in
+    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
+    _LT_AC_TAGVAR(module_cmds, $1) | \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \   
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\[$]0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
+    ;;
+  esac
+
+ifelse([$1], [],
+  [cfgfile="${ofile}T"
+  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+  $rm -f "$cfgfile"
+  AC_MSG_NOTICE([creating $ofile])],
+  [cfgfile="$ofile"])
+
+  cat <<__EOF__ >> "$cfgfile"
+ifelse([$1], [],
+[#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG],
+[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
+
+# Is the compiler the GNU C compiler?
+with_gcc=$_LT_AC_TAGVAR(GCC, $1)
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext='$shrext'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
+archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
+module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
+
+# Symbols that must always be exported.
+include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
+
+ifelse([$1],[],
+[# ### END LIBTOOL CONFIG],
+[# ### END LIBTOOL TAG CONFIG: $tagname])
+
+__EOF__
+
+ifelse([$1],[], [
+  case $host_os in
+  aix3*)
+    cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+EOF
+    ;;
+  esac
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" || \
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+])
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  test -f Makefile && make "$ltmain"
+fi
+])# AC_LIBTOOL_CONFIG
+
+
+# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+
+_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
+
+
+# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+# ---------------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_NM])
+AC_REQUIRE([AC_OBJEXT])
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*) # Its linker distinguishes data from code symbols
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris* | sysv5*)
+  symcode='[[BDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGISTW]]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Write the raw and C identifiers.
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ 	]]\($symcode$symcode*\)[[ 	]][[ 	]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if grep ' nm_test_var$' "$nlist" >/dev/null; then
+	if grep ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+	  cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr_t address;
+}
+lt_preloaded_symbols[[]] =
+{
+EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+	  cat <<\EOF >> conftest.$ac_ext
+  {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -f conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+
+
+# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
+# ---------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
+[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+ ifelse([$1],[CXX],[
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | os2* | pw32*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix4* | aix5*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68)
+	  # Green Hills C++ Compiler
+	  # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+      dgux*)
+	case $cc_basename in
+	  ec++)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx)
+	    # Green Hills C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    if test "$host_cpu" != ia64; then
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    case "$host_cpu" in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux*)
+	case $cc_basename in
+	  KCC)
+	    # KAI C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  icpc)
+	    # Intel C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;; 
+	  cxx)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC)
+	    # Rational C++ 2.4.1
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx)
+	    # Digital/Compaq C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      sco*)
+	case $cc_basename in
+	  CC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx)
+	    # Green Hills C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC)
+	    # Sun C++ 4.x
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc)
+	    # Lucid
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC)
+	    # NonStop-UX NCC 3.20
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      unixware*)
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    linux*)
+      case $CC in
+      icc* | ecc*)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      ccc*)
+        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    sco3.2v5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
+    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
+    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+case "$host_os" in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+])
+
+
+# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
+# ------------------------------------
+# See if the linker supports building shared libraries.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
+[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ifelse([$1],[CXX],[
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix4* | aix5*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+  ;;
+  cygwin* | mingw*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+],[
+  runpath_var=
+  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_AC_TAGVAR(archive_cmds, $1)=
+  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
+  _LT_AC_TAGVAR(module_cmds, $1)=
+  _LT_AC_TAGVAR(module_expsym_cmds, $1)=  
+  _LT_AC_TAGVAR(always_export_symbols, $1)=no
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_AC_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(always_export_symbols, $1)=no
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then
+      runpath_var=LD_RUN_PATH
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+      # ancient GNU ld didn't support --whole-archive et. al.
+      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ 	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+      fi
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$link_static_flag"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+	fi
+
+	# KDE requires run time linking.  Make it the default.
+	aix_use_runtimelinking=yes
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_AC_TAGVAR(archive_cmds, $1)=''
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	  else
+  	  # We have old collect2
+  	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+  	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+  	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	esac
+	shared_flag='-shared'
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+  	if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='-qmkshrobj ${wl}-G'
+	  else
+	    shared_flag='-qmkshrobj'
+  	fi
+	fi
+      fi
+
+      # Let the compiler handle the export list.
+      _LT_AC_TAGVAR(always_export_symbols, $1)=no
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+	_LT_AC_SYS_LIBPATH_AIX
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	_LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 _LT_AC_SYS_LIBPATH_AIX
+	 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	  # -bexpall does not export symbols beginning with underscore (_)
+	  _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+	  # Exported symbols can be pulled into shared objects from archives
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  # This is similar to how AIX traditionally builds it's shared libraries.
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      # see comment about different semantics on the GNU ld section
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    bsdi4*)
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
+      # FIXME: Should let the user specify the lib program.
+      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    darwin* | rhapsody*)
+    if test "$GXX" = yes ; then
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      case "$host_os" in
+      rhapsody* | darwin1.[[012]])
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
+	;;
+      *) # Darwin 1.3 on
+	test -z ${LD_TWOLEVEL_NAMESPACE} && _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
+	;;
+      esac
+    	lt_int_apple_cc_single_mod=no
+    	output_verbose_link_cmd='echo'
+    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+    	  lt_int_apple_cc_single_mod=yes
+    	fi
+    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+    	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+    	else
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      fi
+      _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        else
+          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        fi
+          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+    else  
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi  
+      ;;
+
+    dgux*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    freebsd1*)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10* | hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    openbsd*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+	   _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	   ;;
+	 *)
+	   _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    sco3.2v5*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var=LD_RUN_PATH
+      hardcode_runpath_var=yes
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+      esac
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4.2uw2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      hardcode_runpath_var=yes
+      runpath_var=LD_RUN_PATH
+      ;;
+
+   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[[78]]* | unixware7*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      runpath_var='LD_RUN_PATH'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv5*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+      # $CC -shared without GNU ld will not create a library from C++
+      # object files and a static libstdc++, better avoid it by now
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_AC_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+  
+      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+        then
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+        else
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+        fi
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
+      ;;
+    esac
+  fi
+  ;;
+esac
+])# AC_LIBTOOL_PROG_LD_SHLIBS
+
+
+# _LT_AC_FILE_LTDLL_C
+# -------------------
+# Be careful that the start marker always follows a newline.
+AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# #  ifdef __CYGWIN32__
+# #    define __CYGWIN__ __CYGWIN32__
+# #  endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+#   __hDllInstance_base = hInst;
+#   return TRUE;
+# }
+# /* ltdll.c ends here */
+])# _LT_AC_FILE_LTDLL_C
+
+
+# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
+# ---------------------------------
+AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
+
+
+# old names
+AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
+AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
+AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
+AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
+AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
+
+# This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])
+
+AC_DEFUN([LT_AC_PROG_GCJ],
+[AC_CHECK_TOOL(GCJ, gcj, no)
+  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+  AC_SUBST(GCJFLAGS)
+])
+
+AC_DEFUN([LT_AC_PROG_RC],
+[AC_CHECK_TOOL(RC, windres, no)
+])
+
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+# LT_AC_PROG_SED
+# --------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+AC_DEFUN([LT_AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && break
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_MSG_RESULT([$SED])
+])
Index: /branches/start/Taper/admin/ltmain.sh
===================================================================
--- /branches/start/Taper/admin/ltmain.sh	(revision 4308)
+++ /branches/start/Taper/admin/ltmain.sh	(revision 4308)
@@ -0,0 +1,6343 @@
+# ltmain.sh - Provide generalized library-building support services.
+# NOTE: Changing this file will not affect anything until you rerun configure.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003
+# Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Check that we have a working $echo.
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell, and then maybe $echo will work.
+  exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit 0
+fi
+
+# The name of this program.
+progname=`$echo "$0" | ${SED} 's%^.*/%%'`
+modename="$progname"
+
+# Constants.
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=1.5a
+TIMESTAMP=" (1.1240 2003/06/26 06:55:19)"
+
+default_mode=
+help="Try \`$progname --help' for more information."
+magic="%%%MAGIC variable%%%"
+mkdir="mkdir"
+mv="mv -f"
+rm="rm -f"
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+# test EBCDIC or ASCII
+case `echo A|tr A '\301'` in
+ A) # EBCDIC based system
+  SP2NL="tr '\100' '\n'"
+  NL2SP="tr '\r\n' '\100\100'"
+  ;;
+ *) # Assume ASCII based system
+  SP2NL="tr '\040' '\012'"
+  NL2SP="tr '\015\012' '\040\040'"
+  ;;
+esac
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+# We save the old values to restore during execute mode.
+if test "${LC_ALL+set}" = set; then
+  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
+fi
+if test "${LANG+set}" = set; then
+  save_LANG="$LANG"; LANG=C; export LANG
+fi
+
+# Make sure IFS has a sensible default
+: ${IFS=" 	"}
+
+if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+  $echo "$modename: not configured to build any kind of library" 1>&2
+  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+  exit 1
+fi
+
+# Global variables.
+mode=$default_mode
+nonopt=
+prev=
+prevopt=
+run=
+show="$echo"
+show_help=
+execute_dlfiles=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+
+#####################################
+# Shell function definitions:
+# This seems to be the best place for them
+
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+win32_libid () {
+  win32_libid_type="unknown"
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
+      grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+      win32_nmres=`eval $NM -f posix -A $1 | \
+	sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
+      if test "X$win32_nmres" = "Ximport" ; then
+        win32_libid_type="x86 archive import"
+      else
+        win32_libid_type="x86 archive static"
+      fi
+    fi
+    ;;
+  *DLL*) 
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
+    ;;
+  esac
+  $echo $win32_libid_type
+}
+
+# End of Shell function definitions
+#####################################
+
+# Parse our command line options once, thoroughly.
+while test "$#" -gt 0
+do
+  arg="$1"
+  shift
+
+  case $arg in
+  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) optarg= ;;
+  esac
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$prev"; then
+    case $prev in
+    execute_dlfiles)
+      execute_dlfiles="$execute_dlfiles $arg"
+      ;;
+    tag)
+      tagname="$arg"
+
+      # Check whether tagname contains only valid characters
+      case $tagname in
+      *[!-_A-Za-z0-9,/]*)
+	$echo "$progname: invalid tag name: $tagname" 1>&2
+	exit 1
+	;;
+      esac
+
+      case $tagname in
+      CC)
+	# Don't test for the "default" C tag, as we know, it's there, but
+	# not specially marked.
+	;;
+      *)
+	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
+	  taglist="$taglist $tagname"
+	  # Evaluate the configuration.
+	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
+	else
+	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
+	fi
+	;;
+      esac
+      ;;
+    *)
+      eval "$prev=\$arg"
+      ;;
+    esac
+
+    prev=
+    prevopt=
+    continue
+  fi
+
+  # Have we seen a non-optional argument yet?
+  case $arg in
+  --help)
+    show_help=yes
+    ;;
+
+  --version)
+    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
+    $echo
+    $echo "Copyright (C) 2003  Free Software Foundation, Inc."
+    $echo "This is free software; see the source for copying conditions.  There is NO"
+    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+    exit 0
+    ;;
+
+  --config)
+    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
+    # Now print the configurations for the tags.
+    for tagname in $taglist; do
+      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
+    done
+    exit 0
+    ;;
+
+  --debug)
+    $echo "$progname: enabling shell trace mode"
+    set -x
+    ;;
+
+  --dry-run | -n)
+    run=:
+    ;;
+
+  --features)
+    $echo "host: $host"
+    if test "$build_libtool_libs" = yes; then
+      $echo "enable shared libraries"
+    else
+      $echo "disable shared libraries"
+    fi
+    if test "$build_old_libs" = yes; then
+      $echo "enable static libraries"
+    else
+      $echo "disable static libraries"
+    fi
+    exit 0
+    ;;
+
+  --finish) mode="finish" ;;
+
+  --mode) prevopt="--mode" prev=mode ;;
+  --mode=*) mode="$optarg" ;;
+
+  --preserve-dup-deps) duplicate_deps="yes" ;;
+
+  --quiet | --silent)
+    show=:
+    ;;
+
+  --tag) prevopt="--tag" prev=tag ;;
+  --tag=*)
+    set tag "$optarg" ${1+"$@"}
+    shift
+    prev=tag
+    ;;
+
+  -dlopen)
+    prevopt="-dlopen"
+    prev=execute_dlfiles
+    ;;
+
+  -*)
+    $echo "$modename: unrecognized option \`$arg'" 1>&2
+    $echo "$help" 1>&2
+    exit 1
+    ;;
+
+  *)
+    nonopt="$arg"
+    break
+    ;;
+  esac
+done
+
+if test -n "$prevopt"; then
+  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
+  $echo "$help" 1>&2
+  exit 1
+fi
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+if test -z "$show_help"; then
+
+  # Infer the operation mode.
+  if test -z "$mode"; then
+    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
+    $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2
+    case $nonopt in
+    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
+      mode=link
+      for arg
+      do
+	case $arg in
+	-c)
+	   mode=compile
+	   break
+	   ;;
+	esac
+      done
+      ;;
+    *db | *dbx | *strace | *truss)
+      mode=execute
+      ;;
+    *install*|cp|mv)
+      mode=install
+      ;;
+    *rm)
+      mode=uninstall
+      ;;
+    *)
+      # If we have no mode, but dlfiles were specified, then do execute mode.
+      test -n "$execute_dlfiles" && mode=execute
+
+      # Just use the default operation mode.
+      if test -z "$mode"; then
+	if test -n "$nonopt"; then
+	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+	else
+	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+	fi
+      fi
+      ;;
+    esac
+  fi
+
+  # Only execute mode is allowed to have -dlopen flags.
+  if test -n "$execute_dlfiles" && test "$mode" != execute; then
+    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
+    $echo "$help" 1>&2
+    exit 1
+  fi
+
+  # Change the help message to a mode-specific one.
+  generic_help="$help"
+  help="Try \`$modename --help --mode=$mode' for more information."
+
+  # These modes are in order of execution frequency so that they run quickly.
+  case $mode in
+  # libtool compile mode
+  compile)
+    modename="$modename: compile"
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    suppress_output=
+    arg_mode=normal
+    libobj=
+
+    for arg
+    do
+      case "$arg_mode" in
+      arg  )
+	# do not "continue".  Instead, add this to base_compile
+	lastarg="$arg"
+	arg_mode=normal
+	;;
+
+      target )
+	libobj="$arg"
+	arg_mode=normal
+	continue
+	;;
+
+      normal )
+	# Accept any command-line options.
+	case $arg in
+	-o)
+	  if test -n "$libobj" ; then
+	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+	    exit 1
+	  fi
+	  arg_mode=target
+	  continue
+	  ;;
+
+	-static)
+	  build_old_libs=yes
+	  continue
+	  ;;
+
+	-prefer-pic)
+	  pic_mode=yes
+	  continue
+	  ;;
+
+	-prefer-non-pic)
+	  pic_mode=no
+	  continue
+	  ;;
+
+	-Xcompiler)
+	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
+	  continue      #  The current "srcfile" will either be retained or
+	  ;;            #  replaced later.  I would guess that would be a bug.
+
+	-Wc,*)
+	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
+	  lastarg=
+	  save_ifs="$IFS"; IFS=','
+	  for arg in $args; do
+	    IFS="$save_ifs"
+
+	    # Double-quote args containing other shell metacharacters.
+	    # Many Bourne shells cannot handle close brackets correctly
+	    # in scan sets, so we specify it separately.
+	    case $arg in
+	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	      arg="\"$arg\""
+	      ;;
+	    esac
+	    lastarg="$lastarg $arg"
+	  done
+	  IFS="$save_ifs"
+	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
+
+	  # Add the arguments to base_compile.
+	  base_compile="$base_compile $lastarg"
+	  continue
+	  ;;
+
+	* )
+	  # Accept the current argument as the source file.
+	  # The previous "srcfile" becomes the current argument.
+	  #
+	  lastarg="$srcfile"
+	  srcfile="$arg"
+	  ;;
+	esac  #  case $arg
+	;;
+      esac    #  case $arg_mode
+
+      # Aesthetically quote the previous argument.
+      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
+
+      case $lastarg in
+      # Double-quote args containing other shell metacharacters.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	lastarg="\"$lastarg\""
+	;;
+      esac
+
+      base_compile="$base_compile $lastarg"
+    done # for arg
+
+    case $arg_mode in
+    arg)
+      $echo "$modename: you must specify an argument for -Xcompile"
+      exit 1
+      ;;
+    target)
+      $echo "$modename: you must specify a target with \`-o'" 1>&2
+      exit 1
+      ;;
+    *)
+      # Get the name of the library object.
+      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+      ;;
+    esac
+
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    xform='[cCFSifmso]'
+    case $libobj in
+    *.ada) xform=ada ;;
+    *.adb) xform=adb ;;
+    *.ads) xform=ads ;;
+    *.asm) xform=asm ;;
+    *.c++) xform=c++ ;;
+    *.cc) xform=cc ;;
+    *.ii) xform=ii ;;
+    *.class) xform=class ;;
+    *.cpp) xform=cpp ;;
+    *.cxx) xform=cxx ;;
+    *.f90) xform=f90 ;;
+    *.for) xform=for ;;
+    *.java) xform=java ;;
+    esac
+
+    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
+
+    case $libobj in
+    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
+    *)
+      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
+      exit 1
+      ;;
+    esac
+
+    # Infer tagged configuration to use if any are available and
+    # if one wasn't chosen via the "--tag" command line option.
+    # Only attempt this if the compiler in the base compile
+    # command doesn't match the default compiler.
+    if test -n "$available_tags" && test -z "$tagname"; then
+      case $base_compile in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+	for z in $available_tags; do
+	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
+	    # Evaluate the configuration.
+	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
+	    case "$base_compile " in
+	    "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
+	      # The compiler in the base compile command matches
+	      # the one in the tagged configuration.
+	      # Assume this is the tagged configuration we want.
+	      tagname=$z
+	      break
+	      ;;
+	    esac
+	  fi
+	done
+	# If $tagname still isn't set, then no tagged configuration
+	# was found and let the user know that the "--tag" command
+	# line option must be used.
+	if test -z "$tagname"; then
+	  $echo "$modename: unable to infer tagged configuration"
+	  $echo "$modename: specify a tag with \`--tag'" 1>&2
+	  exit 1
+#        else
+#          $echo "$modename: using $tagname tagged configuration"
+	fi
+	;;
+      esac
+    fi
+
+    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+    if test "X$xdir" = "X$obj"; then
+      xdir=
+    else
+      xdir=$xdir/
+    fi
+    lobj=${xdir}$objdir/$objname
+
+    if test -z "$base_compile"; then
+      $echo "$modename: you must specify a compilation command" 1>&2
+      $echo "$help" 1>&2
+      exit 1
+    fi
+
+    # Delete any leftover library objects.
+    if test "$build_old_libs" = yes; then
+      removelist="$obj $lobj $libobj ${libobj}T"
+    else
+      removelist="$lobj $libobj ${libobj}T"
+    fi
+
+    $run $rm $removelist
+    trap "$run $rm $removelist; exit 1" 1 2 15
+
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2*)
+      pic_mode=default
+      ;;
+    esac
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
+    fi
+
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test "$compiler_c_o" = no; then
+      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      lockfile="$output_obj.lock"
+      removelist="$removelist $output_obj $lockfile"
+      trap "$run $rm $removelist; exit 1" 1 2 15
+    else
+      output_obj=
+      need_locks=no
+      lockfile=
+    fi
+
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test "$need_locks" = yes; then
+      until $run ln "$0" "$lockfile" 2>/dev/null; do
+	$show "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    elif test "$need_locks" = warn; then
+      if test -f "$lockfile"; then
+	$echo "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit 1
+      fi
+      $echo $srcfile > "$lockfile"
+    fi
+
+    if test -n "$fix_srcfile_path"; then
+      eval srcfile=\"$fix_srcfile_path\"
+    fi
+
+    $run $rm "$libobj" "${libobj}T"
+
+    # Create a libtool object file (analogous to a ".la" file),
+    # but don't create it if we're doing a dry run.
+    test -z "$run" && cat > ${libobj}T <<EOF
+# $libobj - a libtool object file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+EOF
+
+    # Only build a PIC object if we are building libtool libraries.
+    if test "$build_libtool_libs" = yes; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
+
+      if test "$pic_mode" != no; then
+	command="$base_compile $srcfile $pic_flag"
+      else
+	# Don't build PIC code
+	command="$base_compile $srcfile"
+      fi
+
+      if test ! -d "${xdir}$objdir"; then
+	$show "$mkdir ${xdir}$objdir"
+	$run $mkdir ${xdir}$objdir
+	status=$?
+	if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
+	  exit $status
+	fi
+      fi
+
+      if test -z "$output_obj"; then
+	# Place PIC objects in $objdir
+	command="$command -o $lobj"
+      fi
+
+      $run $rm "$lobj" "$output_obj"
+
+      $show "$command"
+      if $run eval "$command"; then :
+      else
+	test -n "$output_obj" && $run $rm $removelist
+	exit 1
+      fi
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit 1
+      fi
+
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+	$show "$mv $output_obj $lobj"
+	if $run $mv $output_obj $lobj; then :
+	else
+	  error=$?
+	  $run $rm $removelist
+	  exit $error
+	fi
+      fi
+
+      # Append the name of the PIC object to the libtool object file.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object='$objdir/$objname'
+
+EOF
+
+      # Allow error messages only from the first compilation.
+      suppress_output=' >/dev/null 2>&1'
+    else
+      # No PIC object so indicate it doesn't exist in the libtool
+      # object file.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object=none
+
+EOF
+    fi
+
+    # Only build a position-dependent object if we build old libraries.
+    if test "$build_old_libs" = yes; then
+      if test "$pic_mode" != yes; then
+	# Don't build PIC code
+	command="$base_compile $srcfile"
+      else
+	command="$base_compile $srcfile $pic_flag"
+      fi
+      if test "$compiler_c_o" = yes; then
+	command="$command -o $obj"
+      fi
+
+      # Suppress compiler output if we already did a PIC compilation.
+      command="$command$suppress_output"
+      $run $rm "$obj" "$output_obj"
+      $show "$command"
+      if $run eval "$command"; then :
+      else
+	$run $rm $removelist
+	exit 1
+      fi
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit 1
+      fi
+
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+	$show "$mv $output_obj $obj"
+	if $run $mv $output_obj $obj; then :
+	else
+	  error=$?
+	  $run $rm $removelist
+	  exit $error
+	fi
+      fi
+
+      # Append the name of the non-PIC object the libtool object file.
+      # Only append if the libtool object file exists.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object='$objname'
+
+EOF
+    else
+      # Append the name of the non-PIC object the libtool object file.
+      # Only append if the libtool object file exists.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object=none
+
+EOF
+    fi
+
+    $run $mv "${libobj}T" "${libobj}"
+
+    # Unlock the critical section if it was locked
+    if test "$need_locks" != no; then
+      $run $rm "$lockfile"
+    fi
+
+    exit 0
+    ;;
+
+  # libtool link mode
+  link | relink)
+    modename="$modename: link"
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # which system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
+
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll which has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args="$nonopt"
+    base_compile="$nonopt"
+    compile_command="$nonopt"
+    finalize_command="$nonopt"
+
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    add_flags=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
+
+    avoid_version=no
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    non_pic_objects=
+    prefer_static_libs=no
+    preload=no
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -all-static | -static)
+	if test "X$arg" = "X-all-static"; then
+	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
+	  fi
+	  if test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	else
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	fi
+	build_libtool_libs=no
+	build_old_libs=yes
+	prefer_static_libs=yes
+	break
+	;;
+      esac
+    done
+
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg="$1"
+      base_compile="$base_compile $arg"
+      shift
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
+	;;
+      *) qarg=$arg ;;
+      esac
+      libtool_args="$libtool_args $qarg"
+
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+	case $prev in
+	output)
+	  compile_command="$compile_command @OUTPUT@"
+	  finalize_command="$finalize_command @OUTPUT@"
+	  ;;
+	esac
+
+	case $prev in
+	dlfiles|dlprefiles)
+	  if test "$preload" = no; then
+	    # Add the symbol object into the linking commands.
+	    compile_command="$compile_command @SYMFILE@"
+	    finalize_command="$finalize_command @SYMFILE@"
+	    preload=yes
+	  fi
+	  case $arg in
+	  *.la | *.lo) ;;  # We handle these cases below.
+	  force)
+	    if test "$dlself" = no; then
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  self)
+	    if test "$prev" = dlprefiles; then
+	      dlself=yes
+	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+	      dlself=yes
+	    else
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  *)
+	    if test "$prev" = dlfiles; then
+	      dlfiles="$dlfiles $arg"
+	    else
+	      dlprefiles="$dlprefiles $arg"
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  esac
+	  ;;
+	expsyms)
+	  export_symbols="$arg"
+	  if test ! -f "$arg"; then
+	    $echo "$modename: symbol file \`$arg' does not exist"
+	    exit 1
+	  fi
+	  prev=
+	  continue
+	  ;;
+	expsyms_regex)
+	  export_symbols_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	inst_prefix)
+	  inst_prefix_dir="$arg"
+	  prev=
+	  continue
+	  ;;
+	release)
+	  release="-$arg"
+	  prev=
+	  continue
+	  ;;
+	objectlist)
+	  if test -f "$arg"; then
+	    save_arg=$arg
+	    moreargs=
+	    for fil in `cat $save_arg`
+	    do
+#	      moreargs="$moreargs $fil"
+	      arg=$fil
+	      # A libtool-controlled object.
+
+	      # Check to see that this really is a libtool object.
+	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+		pic_object=
+		non_pic_object=
+
+		# Read the .lo file
+		# If there is no directory component, then add one.
+		case $arg in
+		*/* | *\\*) . $arg ;;
+		*) . ./$arg ;;
+		esac
+
+		if test -z "$pic_object" || \
+		   test -z "$non_pic_object" ||
+		   test "$pic_object" = none && \
+		   test "$non_pic_object" = none; then
+		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+		  exit 1
+		fi
+
+		# Extract subdirectory from the argument.
+		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+		if test "X$xdir" = "X$arg"; then
+		  xdir=
+		else
+		  xdir="$xdir/"
+		fi
+
+		if test "$pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  pic_object="$xdir$pic_object"
+
+		  if test "$prev" = dlfiles; then
+		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		      dlfiles="$dlfiles $pic_object"
+		      prev=
+		      continue
+		    else
+		      # If libtool objects are unsupported, then we need to preload.
+		      prev=dlprefiles
+		    fi
+		  fi
+
+		  # CHECK ME:  I think I busted this.  -Ossama
+		  if test "$prev" = dlprefiles; then
+		    # Preload the old-style object.
+		    dlprefiles="$dlprefiles $pic_object"
+		    prev=
+		  fi
+
+		  # A PIC object.
+		  libobjs="$libobjs $pic_object"
+		  arg="$pic_object"
+		fi
+
+		# Non-PIC object.
+		if test "$non_pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  non_pic_object="$xdir$non_pic_object"
+
+		  # A standard non-PIC object
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		  if test -z "$pic_object" || test "$pic_object" = none ; then
+		    arg="$non_pic_object"
+		  fi
+		fi
+	      else
+		# Only an error if not doing a dry-run.
+		if test -z "$run"; then
+		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+		  exit 1
+		else
+		  # Dry-run case.
+
+		  # Extract subdirectory from the argument.
+		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+		  if test "X$xdir" = "X$arg"; then
+		    xdir=
+		  else
+		    xdir="$xdir/"
+		  fi
+
+		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+		  libobjs="$libobjs $pic_object"
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		fi
+	      fi
+	    done
+	  else
+	    $echo "$modename: link input file \`$save_arg' does not exist"
+	    exit 1
+	  fi
+	  arg=$save_arg
+	  prev=
+	  continue
+	  ;;
+	rpath | xrpath)
+	  # We need an absolute path.
+	  case $arg in
+	  [\\/]* | [A-Za-z]:[\\/]*) ;;
+	  *)
+	    $echo "$modename: only absolute run-paths are allowed" 1>&2
+	    exit 1
+	    ;;
+	  esac
+	  if test "$prev" = rpath; then
+	    case "$rpath " in
+	    *" $arg "*) ;;
+	    *) rpath="$rpath $arg" ;;
+	    esac
+	  else
+	    case "$xrpath " in
+	    *" $arg "*) ;;
+	    *) xrpath="$xrpath $arg" ;;
+	    esac
+	  fi
+	  prev=
+	  continue
+	  ;;
+	xcompiler)
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  compile_command="$compile_command $qarg"
+	  finalize_command="$finalize_command $qarg"
+	  continue
+	  ;;
+	xlinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $wl$qarg"
+	  prev=
+	  compile_command="$compile_command $wl$qarg"
+	  finalize_command="$finalize_command $wl$qarg"
+	  continue
+	  ;;
+	xcclinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  compile_command="$compile_command $qarg"
+	  finalize_command="$finalize_command $qarg"
+	  continue
+	  ;;
+	*)
+	  eval "$prev=\"\$arg\""
+	  prev=
+	  continue
+	  ;;
+	esac
+      fi # test -n "$prev"
+
+      prevarg="$arg"
+
+      case $arg in
+      -all-static)
+	if test -n "$link_static_flag"; then
+	  compile_command="$compile_command $link_static_flag"
+	  finalize_command="$finalize_command $link_static_flag"
+	fi
+	continue
+	;;
+
+      -allow-undefined)
+	# FIXME: remove this flag sometime in the future.
+	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
+	continue
+	;;
+
+      -avoid-version)
+	avoid_version=yes
+	continue
+	;;
+
+      -dlopen)
+	prev=dlfiles
+	continue
+	;;
+
+      -dlpreopen)
+	prev=dlprefiles
+	continue
+	;;
+
+      -export-dynamic)
+	export_dynamic=yes
+	continue
+	;;
+
+      -export-symbols | -export-symbols-regex)
+	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	  $echo "$modename: more than one -exported-symbols argument is not allowed"
+	  exit 1
+	fi
+	if test "X$arg" = "X-export-symbols"; then
+	  prev=expsyms
+	else
+	  prev=expsyms_regex
+	fi
+	continue
+	;;
+
+      -inst-prefix-dir)
+	prev=inst_prefix
+	continue
+	;;
+
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+	case $with_gcc/$host in
+	no/*-*-irix* | /*-*-irix*)
+	  compile_command="$compile_command $arg"
+	  finalize_command="$finalize_command $arg"
+	  ;;
+	esac
+	continue
+	;;
+
+      -L*)
+	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  absdir=`cd "$dir" && pwd`
+	  if test -z "$absdir"; then
+	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+	    exit 1
+	  fi
+	  dir="$absdir"
+	  ;;
+	esac
+	case "$deplibs " in
+	*" -L$dir "*) ;;
+	*)
+	  deplibs="$deplibs -L$dir"
+	  lib_search_path="$lib_search_path $dir"
+	  ;;
+	esac
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  case :$dllsearchpath: in
+	  *":$dir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$dir";;
+	  esac
+	  ;;
+	esac
+	continue
+	;;
+
+      -l*)
+	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+	  case $host in
+	  *-*-cygwin* | *-*-pw32* | *-*-beos*)
+	    # These systems don't actually have a C or math library (as such)
+	    continue
+	    ;;
+	  *-*-freebsd*-gnu*)
+	    # prevent being parsed by the freebsd regexp below
+	    ;;
+	  *-*-mingw* | *-*-os2*)
+	    # These systems don't actually have a C library (as such)
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-openbsd* | *-*-freebsd*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C and math libraries are in the System framework
+	    deplibs="$deplibs -framework System"
+	    continue
+	  esac
+	elif test "X$arg" = "X-lc_r"; then
+	 case $host in
+	 *-*-freebsd*-gnu*)
+	   # prevent being parsed by the freebsd regexp below
+	   ;;
+	 *-*-openbsd*)
+	   # Do not include libc_r directly, use -pthread flag.
+	   continue
+	   ;;
+	 esac
+	fi
+	deplibs="$deplibs $arg"
+	continue
+	;;
+
+      -module)
+	module=yes
+	continue
+	;;
+
+      # gcc -m* arguments should be passed to the linker via $compiler_flags
+      # in order to pass architecture information to the linker
+      # (e.g. 32 vs 64-bit).  This may also be accomplished via -Wl,-mfoo
+      # but this is not reliable with gcc because gcc may use -mfoo to
+      # select a different linker, different libraries, etc, while
+      # -Wl,-mfoo simply passes -mfoo to the linker.
+      -m*)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+        compile_command="$compile_command $arg"
+        finalize_command="$finalize_command $arg"
+        if test "$with_gcc" = "yes" ; then
+          compiler_flags="$compiler_flags $arg"
+        fi
+        continue
+        ;;
+
+      -shrext)
+	prev=shrext
+	continue
+	;;
+
+      -no-fast-install)
+	fast_install=no
+	continue
+	;;
+
+      -no-install)
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  # The PATH hackery in wrapper scripts is required on Windows
+	  # in order for the loader to find any dlls it needs.
+	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
+	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
+	  fast_install=no
+	  ;;
+	*) no_install=yes ;;
+	esac
+	continue
+	;;
+
+      -no-undefined)
+	allow_undefined=no
+	continue
+	;;
+
+      -objectlist)
+	prev=objectlist
+	continue
+	;;
+
+      -o) prev=output ;;
+
+      -release)
+	prev=release
+	continue
+	;;
+
+      -rpath)
+	prev=rpath
+	continue
+	;;
+
+      -R)
+	prev=xrpath
+	continue
+	;;
+
+      -R*)
+	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  $echo "$modename: only absolute run-paths are allowed" 1>&2
+	  exit 1
+	  ;;
+	esac
+	case "$xrpath " in
+	*" $dir "*) ;;
+	*) xrpath="$xrpath $dir" ;;
+	esac
+	continue
+	;;
+
+      -static)
+	# The effects of -static are defined in a previous loop.
+	# We used to do the same as -all-static on platforms that
+	# didn't have a PIC flag, but the assumption that the effects
+	# would be equivalent was wrong.  It would break on at least
+	# Digital Unix and AIX.
+	continue
+	;;
+
+      -thread-safe)
+	thread_safe=yes
+	continue
+	;;
+
+      -version-info)
+	prev=vinfo
+	continue
+	;;
+      -version-number)
+	prev=vinfo
+	vinfo_number=yes
+	continue
+	;;
+
+      -Wc,*)
+	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+	  case $flag in
+	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	    flag="\"$flag\""
+	    ;;
+	  esac
+	  arg="$arg $wl$flag"
+	  compiler_flags="$compiler_flags $flag"
+	done
+	IFS="$save_ifs"
+	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+	;;
+
+      -Wl,*)
+	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+	  case $flag in
+	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	    flag="\"$flag\""
+	    ;;
+	  esac
+	  arg="$arg $wl$flag"
+	  compiler_flags="$compiler_flags $wl$flag"
+	  linker_flags="$linker_flags $flag"
+	done
+	IFS="$save_ifs"
+	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+	;;
+
+      -Xcompiler)
+	prev=xcompiler
+	continue
+	;;
+
+      -Xlinker)
+	prev=xlinker
+	continue
+	;;
+
+      -XCClinker)
+	prev=xcclinker
+	continue
+	;;
+
+      # Some other compiler flag.
+      -* | +*)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	add_flags="$add_flags $arg"
+	;;
+
+      *.$objext)
+	# A standard object.
+	objs="$objs $arg"
+	;;
+
+      *.lo)
+	# A libtool-controlled object.
+
+	# Check to see that this really is a libtool object.
+	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  pic_object=
+	  non_pic_object=
+
+	  # Read the .lo file
+	  # If there is no directory component, then add one.
+	  case $arg in
+	  */* | *\\*) . $arg ;;
+	  *) . ./$arg ;;
+	  esac
+
+	  if test -z "$pic_object" || \
+	     test -z "$non_pic_object" ||
+	     test "$pic_object" = none && \
+	     test "$non_pic_object" = none; then
+	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+	    exit 1
+	  fi
+
+	  # Extract subdirectory from the argument.
+	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+	  if test "X$xdir" = "X$arg"; then
+	    xdir=
+ 	  else
+	    xdir="$xdir/"
+	  fi
+
+	  if test "$pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    pic_object="$xdir$pic_object"
+
+	    if test "$prev" = dlfiles; then
+	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		dlfiles="$dlfiles $pic_object"
+		prev=
+		continue
+	      else
+		# If libtool objects are unsupported, then we need to preload.
+		prev=dlprefiles
+	      fi
+	    fi
+
+	    # CHECK ME:  I think I busted this.  -Ossama
+	    if test "$prev" = dlprefiles; then
+	      # Preload the old-style object.
+	      dlprefiles="$dlprefiles $pic_object"
+	      prev=
+	    fi
+
+	    # A PIC object.
+	    libobjs="$libobjs $pic_object"
+	    arg="$pic_object"
+	  fi
+
+	  # Non-PIC object.
+	  if test "$non_pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    non_pic_object="$xdir$non_pic_object"
+
+	    # A standard non-PIC object
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	    if test -z "$pic_object" || test "$pic_object" = none ; then
+	      arg="$non_pic_object"
+	    fi
+	  fi
+	else
+	  # Only an error if not doing a dry-run.
+	  if test -z "$run"; then
+	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+	    exit 1
+	  else
+	    # Dry-run case.
+
+	    # Extract subdirectory from the argument.
+	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+	    if test "X$xdir" = "X$arg"; then
+	      xdir=
+	    else
+	      xdir="$xdir/"
+	    fi
+
+	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+	    libobjs="$libobjs $pic_object"
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	  fi
+	fi
+	;;
+
+      *.$libext)
+	# An archive.
+	deplibs="$deplibs $arg"
+	old_deplibs="$old_deplibs $arg"
+	continue
+	;;
+
+      *.la)
+	# A libtool-controlled library.
+
+	if test "$prev" = dlfiles; then
+	  # This library was specified with -dlopen.
+	  dlfiles="$dlfiles $arg"
+	  prev=
+	elif test "$prev" = dlprefiles; then
+	  # The library was specified with -dlpreopen.
+	  dlprefiles="$dlprefiles $arg"
+	  prev=
+	else
+	  deplibs="$deplibs $arg"
+	fi
+	continue
+	;;
+
+      # Some other compiler argument.
+      *)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	add_flags="$add_flags $arg"
+	;;
+      esac # arg
+
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+	compile_command="$compile_command $arg"
+	finalize_command="$finalize_command $arg"
+      fi
+    done # argument parsing loop
+
+    if test -n "$prev"; then
+      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
+      $echo "$help" 1>&2
+      exit 1
+    fi
+
+    # Infer tagged configuration to use if any are available and
+    # if one wasn't chosen via the "--tag" command line option.
+    # Only attempt this if the compiler in the base link
+    # command doesn't match the default compiler.
+    if test -n "$available_tags" && test -z "$tagname"; then
+      case $base_compile in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+	for z in $available_tags; do
+	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
+	    # Evaluate the configuration.
+	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
+	    case $base_compile in
+	    "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
+	      # The compiler in $compile_command matches
+	      # the one in the tagged configuration.
+	      # Assume this is the tagged configuration we want.
+	      tagname=$z
+	      break
+	      ;;
+	    esac
+	  fi
+	done
+	# If $tagname still isn't set, then no tagged configuration
+	# was found and let the user know that the "--tag" command
+	# line option must be used.
+	if test -z "$tagname"; then
+	  $echo "$modename: unable to infer tagged configuration"
+	  $echo "$modename: specify a tag with \`--tag'" 1>&2
+	  exit 1
+#       else
+#         $echo "$modename: using $tagname tagged configuration"
+	fi
+	;;
+      esac
+    fi
+
+    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      compile_command="$compile_command $arg"
+      finalize_command="$finalize_command $arg"
+    fi
+
+    oldlibs=
+    # calculate the name of the file, without its directory
+    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
+    libobjs_save="$libobjs"
+
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+    if test "X$output_objdir" = "X$output"; then
+      output_objdir="$objdir"
+    else
+      output_objdir="$output_objdir/$objdir"
+    fi
+    # Create the object directory.
+    if test ! -d "$output_objdir"; then
+      $show "$mkdir $output_objdir"
+      $run $mkdir $output_objdir
+      status=$?
+      if test "$status" -ne 0 && test ! -d "$output_objdir"; then
+	exit $status
+      fi
+    fi
+
+    # Determine the type of output
+    case $output in
+    "")
+      $echo "$modename: you must specify an output file" 1>&2
+      $echo "$help" 1>&2
+      exit 1
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
+    esac
+
+    case $host in
+    *cygwin* | *mingw* | *pw32*)
+      # don't eliminate duplcations in $postdeps and $predeps
+      duplicate_compiler_generated_deps=yes
+      ;;
+    *)
+      duplicate_compiler_generated_deps=$duplicate_deps
+      ;;
+    esac
+    specialdeplibs=
+
+    libs=
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if test "X$duplicate_deps" = "Xyes" ; then
+	case "$libs " in
+	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	esac
+      fi
+      libs="$libs $deplib"
+    done
+
+    if test "$linkmode" = lib; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
+	for pre_post_dep in $predeps $postdeps; do
+	  case "$pre_post_deps " in
+	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+	  esac
+	  pre_post_deps="$pre_post_deps $pre_post_dep"
+	done
+      fi
+      pre_post_deps=
+    fi
+
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    notinst_path= # paths that contain not-installed libtool libraries
+    case $linkmode in
+    lib)
+	passes="conv link"
+	for file in $dlfiles $dlprefiles; do
+	  case $file in
+	  *.la) ;;
+	  *)
+	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
+	    exit 1
+	    ;;
+	  esac
+	done
+	;;
+    prog)
+	compile_deplibs=
+	finalize_deplibs=
+	alldeplibs=no
+	newdlfiles=
+	newdlprefiles=
+	passes="conv scan dlopen dlpreopen link"
+	;;
+    *)  passes="conv"
+	;;
+    esac
+    for pass in $passes; do
+      if test "$linkmode,$pass" = "lib,link" ||
+	 test "$linkmode,$pass" = "prog,scan"; then
+	libs="$deplibs"
+	deplibs=
+      fi
+      if test "$linkmode" = prog; then
+	case $pass in
+	dlopen) libs="$dlfiles" ;;
+	dlpreopen) libs="$dlprefiles" ;;
+	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+	esac
+      fi
+      if test "$pass" = dlopen; then
+	# Collect dlpreopened libraries
+	save_deplibs="$deplibs"
+	deplibs=
+      fi
+      for deplib in $libs; do
+	lib=
+	found=no
+	case $deplib in
+	-l*)
+	  if test "$linkmode" != lib && test "$linkmode" != prog; then
+	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
+	    continue
+	  fi
+	  if test "$pass" = conv && test "$allow_undefined" = yes; then
+	    deplibs="$deplib $deplibs"
+	    continue
+	  fi
+	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
+	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
+	    for search_ext in .la $shrext .so .a; do
+	      # Search the libtool library
+	      lib="$searchdir/lib${name}${search_ext}"
+	      if test -f "$lib"; then
+		if test "$search_ext" = ".la"; then
+		  found=yes
+		else
+		  found=no
+		fi
+		break 2
+	      fi
+	    done
+	  done
+	  if test "$found" != yes; then
+	    # deplib doesn't seem to be a libtool library
+	    if test "$linkmode,$pass" = "prog,link"; then
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      deplibs="$deplib $deplibs"
+	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    continue
+	  else # deplib is a libtool library
+	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+	    # We need to do some special things here, and not later.
+	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	      case " $predeps $postdeps " in
+	      *" $deplib "*)
+		if (${SED} -e '2q' $lib |
+                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+		  library_names=
+		  old_library=
+		  case $lib in
+		  */* | *\\*) . $lib ;;
+		  *) . ./$lib ;;
+		  esac
+		  for l in $old_library $library_names; do
+		    ll="$l"
+		  done
+		  if test "X$ll" = "X$old_library" ; then # only static version available
+		    found=no
+		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+		    test "X$ladir" = "X$lib" && ladir="."
+		    lib=$ladir/$old_library
+		    if test "$linkmode,$pass" = "prog,link"; then
+		      compile_deplibs="$deplib $compile_deplibs"
+		      finalize_deplibs="$deplib $finalize_deplibs"
+		    else
+		      deplibs="$deplib $deplibs"
+		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+		    fi
+		    continue
+		  fi
+		fi
+	        ;;
+	      *) ;;
+	      esac
+	    fi
+	  fi
+	  ;; # -l
+	-L*)
+	  case $linkmode in
+	  lib)
+	    deplibs="$deplib $deplibs"
+	    test "$pass" = conv && continue
+	    newdependency_libs="$deplib $newdependency_libs"
+	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+	    ;;
+	  prog)
+	    if test "$pass" = conv; then
+	      deplibs="$deplib $deplibs"
+	      continue
+	    fi
+	    if test "$pass" = scan; then
+	      deplibs="$deplib $deplibs"
+	      newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    ;;
+	  *)
+	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
+	    ;;
+	  esac # linkmode
+	  continue
+	  ;; # -L
+	-R*)
+	  if test "$pass" = link; then
+	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+	    # Make sure the xrpath contains only unique directories.
+	    case "$xrpath " in
+	    *" $dir "*) ;;
+	    *) xrpath="$xrpath $dir" ;;
+	    esac
+	  fi
+	  deplibs="$deplib $deplibs"
+	  continue
+	  ;;
+	*.la) lib="$deplib" ;;
+	*.$libext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	    continue
+	  fi
+	  case $linkmode in
+	  lib)
+	    if test "$deplibs_check_method" != pass_all; then
+	      $echo
+	      $echo "*** Warning: Trying to link with static lib archive $deplib."
+	      $echo "*** I have the capability to make that library automatically link in when"
+	      $echo "*** you link to this library.  But I can only do this if you have a"
+	      $echo "*** shared version of the library, which you do not appear to have"
+	      $echo "*** because the file extensions .$libext of this argument makes me believe"
+	      $echo "*** that it is just a static archive that I should not used here."
+	    else
+	      $echo
+	      $echo "*** Warning: Linking the shared library $output against the"
+	      $echo "*** static library $deplib is not portable!"
+	      deplibs="$deplib $deplibs"
+	    fi
+	    continue
+	    ;;
+	  prog)
+	    if test "$pass" != link; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    continue
+	    ;;
+	  esac # linkmode
+	  ;; # *.$libext
+	*.lo | *.$objext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	  elif test "$linkmode" = prog; then
+	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+	      # If there is no dlopen support or we're linking statically,
+	      # we need to preload.
+	      newdlprefiles="$newdlprefiles $deplib"
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      newdlfiles="$newdlfiles $deplib"
+	    fi
+	  fi
+	  continue
+	  ;;
+	%DEPLIBS%)
+	  alldeplibs=yes
+	  continue
+	  ;;
+	esac # case $deplib
+	if test "$found" = yes || test -f "$lib"; then :
+	else
+	  $echo "$modename: cannot find the library \`$lib'" 1>&2
+	  exit 1
+	fi
+
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+	  exit 1
+	fi
+
+	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$ladir" = "X$lib" && ladir="."
+
+	dlname=
+	dlopen=
+	dlpreopen=
+	libdir=
+	library_names=
+	old_library=
+	# If the library was installed with an old release of libtool,
+	# it will not redefine variables installed, or shouldnotlink
+	installed=yes
+	shouldnotlink=no
+
+	# Read the .la file
+	case $lib in
+	*/* | *\\*) . $lib ;;
+	*) . ./$lib ;;
+	esac
+
+	if test "$linkmode,$pass" = "lib,link" ||
+	   test "$linkmode,$pass" = "prog,scan" ||
+	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+	fi
+
+	if test "$pass" = conv; then
+	  # Only check for convenience libraries
+	  deplibs="$lib $deplibs"
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    #echo "Adding $deplib to \$deplibs"
+	    deplibs="$deplib $deplibs"
+            if test "X$duplicate_deps" = "Xyes" ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+            fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done
+	  if test -z "$libdir"; then
+	    if test -z "$old_library"; then
+	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+	      exit 1
+	    fi
+	    # It is a libtool convenience library, so add in its objects.
+	    convenience="$convenience $ladir/$objdir/$old_library"
+	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
+	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
+	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
+	    exit 1
+	  fi
+	  continue
+	fi # $pass = conv
+
+    
+	# Get the name of the library we link against.
+	linklib=
+	for l in $old_library $library_names; do
+	  linklib="$l"
+	done
+	if test -z "$linklib"; then
+	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+	  exit 1
+	fi
+
+	# This library was specified with -dlopen.
+	if test "$pass" = dlopen; then
+	  if test -z "$libdir"; then
+	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
+	    exit 1
+	  fi
+	  if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+	    # If there is no dlname, no dlopen support or we're linking
+	    # statically, we need to preload.  We also need to preload any
+	    # dependent libraries so libltdl's deplib preloader doesn't
+	    # bomb out in the load deplibs phase.
+	    dlprefiles="$dlprefiles $lib $dependency_libs"
+	  else
+	    newdlfiles="$newdlfiles $lib"
+	  fi
+	  continue
+	fi # $pass = dlopen
+
+	# We need an absolute path.
+	case $ladir in
+	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+	*)
+	  abs_ladir=`cd "$ladir" && pwd`
+	  if test -z "$abs_ladir"; then
+	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
+	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
+	    abs_ladir="$ladir"
+	  fi
+	  ;;
+	esac
+	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+
+	# Find the relevant object directory and library name.
+	if test "X$installed" = Xyes; then
+	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    libdir="$abs_ladir"
+	  else
+	    dir="$libdir"
+	    absdir="$libdir"
+	  fi
+	else
+	  dir="$ladir/$objdir"
+	  absdir="$abs_ladir/$objdir"
+	  # Remove this search path later
+	  notinst_path="$notinst_path $abs_ladir"
+	fi # $installed = yes
+	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+
+	# This library was specified with -dlpreopen.
+	if test "$pass" = dlpreopen; then
+	  if test -z "$libdir"; then
+	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
+	    exit 1
+	  fi
+	  # Prefer using a static library (so that no silly _DYNAMIC symbols
+	  # are required to link).
+	  if test -n "$old_library"; then
+	    newdlprefiles="$newdlprefiles $dir/$old_library"
+	  # Otherwise, use the dlname, so that lt_dlopen finds it.
+	  elif test -n "$dlname"; then
+	    newdlprefiles="$newdlprefiles $dir/$dlname"
+	  else
+	    newdlprefiles="$newdlprefiles $dir/$linklib"
+	  fi
+	fi # $pass = dlpreopen
+
+	if test -z "$libdir"; then
+	  # Link the convenience library
+	  if test "$linkmode" = lib; then
+	    deplibs="$dir/$old_library $deplibs"
+	  elif test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$dir/$old_library $compile_deplibs"
+	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
+	  else
+	    deplibs="$lib $deplibs" # used for prog,scan pass
+	  fi
+	  continue
+	fi
+
+    
+	if test "$linkmode" = prog && test "$pass" != link; then
+	  newlib_search_path="$newlib_search_path $ladir"
+	  deplibs="$lib $deplibs"
+
+	  linkalldeplibs=no
+	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
+	     test "$build_libtool_libs" = no; then
+	    linkalldeplibs=yes
+	  fi
+
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    case $deplib in
+	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
+	    esac
+	    # Need to link against all dependency_libs?
+	    if test "$linkalldeplibs" = yes; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      # Need to hardcode shared library paths
+	      # or/and link against static libraries
+	      newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    if test "X$duplicate_deps" = "Xyes" ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done # for deplib
+	  continue
+	fi # $linkmode = prog...
+
+	if test "$linkmode,$pass" = "prog,link"; then
+	  if test -n "$library_names" &&
+	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+	    # We need to hardcode the library path
+	    if test -n "$shlibpath_var"; then
+	      # Make sure the rpath contains only unique directories.
+	      case "$temp_rpath " in
+	      *" $dir "*) ;;
+	      *" $absdir "*) ;;
+	      *) temp_rpath="$temp_rpath $dir" ;;
+	      esac
+	    fi
+
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi # $linkmode,$pass = prog,link...
+
+	  if test "$alldeplibs" = yes &&
+	     { test "$deplibs_check_method" = pass_all ||
+	       { test "$build_libtool_libs" = yes &&
+		 test -n "$library_names"; }; }; then
+	    # We only need to search for static libraries
+	    continue
+	  fi
+	fi
+
+	link_static=no # Whether the deplib will be linked statically
+	if test -n "$library_names" &&
+	   { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+	  if test "$installed" = no; then
+	    notinst_deplibs="$notinst_deplibs $lib"
+	    need_relink=yes
+	  fi
+	  # This is a shared library
+	
+      # Warn about portability, can't link against -module's on some systems (darwin)
+      if test "$shouldnotlink" = yes && test "$pass" = link ; then
+	    $echo
+	    if test "$linkmode" = prog; then
+	      $echo "*** Warning: Linking the executable $output against the loadable module"
+	    else
+	      $echo "*** Warning: Linking the shared library $output against the loadable module"
+	    fi
+	    $echo "*** $linklib is not portable!"    
+      fi	  
+	  if test "$linkmode" = lib &&
+	     test "$hardcode_into_libs" = yes; then
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi
+
+	  if test -n "$old_archive_from_expsyms_cmds"; then
+	    # figure out the soname
+	    set dummy $library_names
+	    realname="$2"
+	    shift; shift
+	    libname=`eval \\$echo \"$libname_spec\"`
+	    # use dlname if we got it. it's perfectly good, no?
+	    if test -n "$dlname"; then
+	      soname="$dlname"
+	    elif test -n "$soname_spec"; then
+	      # bleh windows
+	      case $host in
+	      *cygwin* | mingw*)
+		major=`expr $current - $age`
+		versuffix="-$major"
+		;;
+	      esac
+	      eval soname=\"$soname_spec\"
+	    else
+	      soname="$realname"
+	    fi
+
+	    # Make a new name for the extract_expsyms_cmds to use
+	    soroot="$soname"
+	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
+	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
+
+	    # If the library has no export list, then create one now
+	    if test -f "$output_objdir/$soname-def"; then :
+	    else
+	      $show "extracting exported symbol list from \`$soname'"
+	      save_ifs="$IFS"; IFS='~'
+	      eval cmds=\"$extract_expsyms_cmds\"
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		$show "$cmd"
+		$run eval "$cmd" || exit $?
+	      done
+	      IFS="$save_ifs"
+	    fi
+
+	    # Create $newlib
+	    if test -f "$output_objdir/$newlib"; then :; else
+	      $show "generating import library for \`$soname'"
+	      save_ifs="$IFS"; IFS='~'
+	      eval cmds=\"$old_archive_from_expsyms_cmds\"
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		$show "$cmd"
+		$run eval "$cmd" || exit $?
+	      done
+	      IFS="$save_ifs"
+	    fi
+	    # make sure the library variables are pointing to the new library
+	    dir=$output_objdir
+	    linklib=$newlib
+	  fi # test -n "$old_archive_from_expsyms_cmds"
+
+	  if test "$linkmode" = prog || test "$mode" != relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    lib_linked=yes
+	    case $hardcode_action in
+	    immediate | unsupported)
+	      if test "$hardcode_direct" = no; then
+		add="$dir/$linklib"
+		case $host in
+		  *-*-sco3.2v5* ) add_dir="-L$dir" ;;
+		  *-*-darwin* )
+		    # if the lib is a module then we can not link against it, someone
+		    # is ignoring the new warnings I added
+		    if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; then
+		      $echo "** Warning, lib $linklib is a module, not a shared library"
+		      if test -z "$old_library" ; then
+		        $echo
+		        $echo "** And there doesn't seem to be a static archive available"
+		        $echo "** The link will probably fail, sorry"
+		      else
+		        add="$dir/$old_library"
+		      fi 
+		    fi
+		esac
+	      elif test "$hardcode_minus_L" = no; then
+		case $host in
+		*-*-sunos*) add_shlibpath="$dir" ;;
+		esac
+		add_dir="-L$dir"
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = no; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    relink)
+	      if test "$hardcode_direct" = yes; then
+		add="$dir/$linklib"
+	      elif test "$hardcode_minus_L" = yes; then
+		add_dir="-L$dir"
+		# Try looking first in the location we're being installed to.
+		if test -n "$inst_prefix_dir"; then
+		  case "$libdir" in
+		    [\\/]*)
+		      add_dir="-L$inst_prefix_dir$libdir $add_dir"
+		      ;;
+		  esac
+		fi
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = yes; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    *) lib_linked=no ;;
+	    esac
+
+	    if test "$lib_linked" != yes; then
+	      $echo "$modename: configuration error: unsupported hardcode properties"
+	      exit 1
+	    fi
+
+	    if test -n "$add_shlibpath"; then
+	      case :$compile_shlibpath: in
+	      *":$add_shlibpath:"*) ;;
+	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+	      esac
+	    fi
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	      if test "$hardcode_direct" != yes && \
+		 test "$hardcode_minus_L" != yes && \
+		 test "$hardcode_shlibpath_var" = yes; then
+		case :$finalize_shlibpath: in
+		*":$libdir:"*) ;;
+		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+		esac
+	      fi
+	    fi
+	  fi
+
+	  if test "$linkmode" = prog || test "$mode" = relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    # Finalize command for both is simple: just hardcode it.
+	    if test "$hardcode_direct" = yes; then
+	      add="$libdir/$linklib"
+	    elif test "$hardcode_minus_L" = yes; then
+	      add_dir="-L$libdir"
+	      add="-l$name"
+	    elif test "$hardcode_shlibpath_var" = yes; then
+	      case :$finalize_shlibpath: in
+	      *":$libdir:"*) ;;
+	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+	      esac
+	      add="-l$name"
+	    elif test "$hardcode_automatic" = yes; then
+	      if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then
+	        add="$inst_prefix_dir$libdir/$linklib"
+	      else
+	        add="$libdir/$linklib"
+	      fi
+	    else
+	      # We cannot seem to hardcode it, guess we'll fake it.
+	      add_dir="-L$libdir"
+	      # Try looking first in the location we're being installed to.
+	      if test -n "$inst_prefix_dir"; then
+		case "$libdir" in
+		  [\\/]*)
+		    add_dir="-L$inst_prefix_dir$libdir $add_dir"
+		    ;;
+		esac
+	      fi
+	      add="-l$name"
+	    fi
+
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	    fi
+	  fi
+	elif test "$linkmode" = prog; then
+	  # Here we assume that one of hardcode_direct or hardcode_minus_L
+	  # is not unsupported.  This is valid on all known static and
+	  # shared platforms.
+	  if test "$hardcode_direct" != unsupported; then
+	    test -n "$old_library" && linklib="$old_library"
+	    compile_deplibs="$dir/$linklib $compile_deplibs"
+	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
+	  else
+	    compile_deplibs="-l$name -L$dir $compile_deplibs"
+	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+	  fi
+	elif test "$build_libtool_libs" = yes; then
+	  # Not a shared library
+	  if test "$deplibs_check_method" != pass_all; then
+	    # We're trying link a shared library against a static one
+	    # but the system doesn't support it.
+
+	    # Just print a warning and add the library to dependency_libs so
+	    # that the program can be linked against the static library.
+	    $echo
+	    $echo "*** Warning: This system can not link to static lib archive $lib."
+	    $echo "*** I have the capability to make that library automatically link in when"
+	    $echo "*** you link to this library.  But I can only do this if you have a"
+	    $echo "*** shared version of the library, which you do not appear to have."
+	    if test "$module" = yes; then
+	      $echo "*** But as you try to build a module library, libtool will still create "
+	      $echo "*** a static module, that should work as long as the dlopening application"
+	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+	      if test -z "$global_symbol_pipe"; then
+		$echo
+		$echo "*** However, this would only work if libtool was able to extract symbol"
+		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+		$echo "*** not find such a program.  So, this module is probably useless."
+		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
+	      fi
+	      if test "$build_old_libs" = no; then
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  else
+	    convenience="$convenience $dir/$old_library"
+	    old_convenience="$old_convenience $dir/$old_library"
+	    deplibs="$dir/$old_library $deplibs"
+	    link_static=yes
+	  fi
+	fi # link shared/static library?
+
+	if test "$linkmode" = lib; then
+	  #if test -n "$dependency_libs" &&
+	  #   { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes ||
+	  #     test "$link_static" = yes; }; then
+	    # Extract -R from dependency_libs
+	    temp_deplibs=
+	    for libdir in $dependency_libs; do
+	      case $libdir in
+	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
+		   case " $xrpath " in
+		   *" $temp_xrpath "*) ;;
+		   *) xrpath="$xrpath $temp_xrpath";;
+		   esac;;
+	      *) temp_deplibs="$temp_deplibs $libdir";;
+	      esac
+	    done
+	    dependency_libs="$temp_deplibs"
+	  #fi
+
+	  newlib_search_path="$newlib_search_path $absdir"
+	  # Link against this library
+	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+	  # ... and its dependency_libs
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    newdependency_libs="$deplib $newdependency_libs"
+	    if test "X$duplicate_deps" = "Xyes" ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done
+
+	  if test "$link_all_deplibs" != no; then
+	    # Add the search paths of all dependency libraries
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      -L*) path="$deplib" ;;
+	      *.la)
+		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
+		test "X$dir" = "X$deplib" && dir="."
+		# We need an absolute path.
+		case $dir in
+		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+		*)
+		  absdir=`cd "$dir" && pwd`
+		  if test -z "$absdir"; then
+		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+		    absdir="$dir"
+		  fi
+		  ;;
+		esac
+		if grep "^installed=no" $deplib > /dev/null; then
+		  path="$absdir/$objdir"
+		else
+		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		  if test -z "$libdir"; then
+		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+		    exit 1
+		  fi
+		  if test "$absdir" != "$libdir"; then
+		    # Sure, some shells/systems don't implement the -ef.
+		    # Those will have to live with the warning.
+		    test "$absdir" -ef "$libdir" > /dev/null 2>&1 ||
+		      $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
+		  fi
+		  path="$absdir"
+		fi
+		depdepl=
+		case $host in
+		*-*-darwin*)
+		  # we do not want to link against static libs, but need to link against shared
+		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  if test -n "$deplibrary_names" ; then
+		    for tmp in $deplibrary_names ; do
+		      depdepl=$tmp
+		    done
+		    if test -f "$path/$depdepl" ; then
+		      depdepl="$path/$depdepl"
+		   fi
+		    # do not add paths which are already there
+		    case " $newlib_search_path " in
+		    *" $path "*) ;;
+		    *) newlib_search_path="$newlib_search_path $path";;
+		    esac
+		    path=""
+		  fi
+		  ;;
+		*)
+		path="-L$path"
+		;;
+		esac 
+		
+		;;
+		  -l*)
+		case $host in
+		*-*-darwin*)
+		 # Again, we only want to link against shared libraries
+		 eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
+		 for tmp in $newlib_search_path ; do
+		     if test -f "$tmp/lib$tmp_libs.dylib" ; then
+		       eval depdepl="$tmp/lib$tmp_libs.dylib"
+		       break
+		     fi  
+         done
+         path=""
+		  ;;
+		*) continue ;;
+		esac  		  
+		;;
+	      *) continue ;;
+	      esac
+	      case " $deplibs " in
+	      *" $depdepl "*) ;;
+	      *) deplibs="$deplibs $depdepl" ;;
+	      esac	      
+	      case " $deplibs " in
+	      *" $path "*) ;;
+	      *) deplibs="$deplibs $path" ;;
+	      esac
+	    done
+	  fi # link_all_deplibs != no
+	fi # linkmode = lib
+      done # for deplib in $libs
+      dependency_libs="$newdependency_libs"
+      if test "$pass" = dlpreopen; then
+	# Link the dlpreopened libraries before other libraries
+	for deplib in $save_deplibs; do
+	  deplibs="$deplib $deplibs"
+	done
+      fi
+      if test "$pass" != dlopen; then
+	if test "$pass" != conv; then
+	  # Make sure lib_search_path contains only unique directories.
+	  lib_search_path=
+	  for dir in $newlib_search_path; do
+	    case "$lib_search_path " in
+	    *" $dir "*) ;;
+	    *) lib_search_path="$lib_search_path $dir" ;;
+	    esac
+	  done
+	  newlib_search_path=
+	fi
+
+	if test "$linkmode,$pass" != "prog,link"; then
+	  vars="deplibs"
+	else
+	  vars="compile_deplibs finalize_deplibs"
+	fi
+	for var in $vars dependency_libs; do
+	  # Add libraries to $var in reverse order
+	  eval tmp_libs=\"\$$var\"
+	  new_libs=
+	  for deplib in $tmp_libs; do
+	    # FIXME: Pedantically, this is the right thing to do, so
+	    #        that some nasty dependency loop isn't accidentally
+	    #        broken:
+	    #new_libs="$deplib $new_libs"
+	    # Pragmatically, this seems to cause very few problems in
+	    # practice:
+	    case $deplib in
+	    -L*) new_libs="$deplib $new_libs" ;;
+	    -R*) ;;
+	    *)
+	      # And here is the reason: when a library appears more
+	      # than once as an explicit dependence of a library, or
+	      # is implicitly linked in more than once by the
+	      # compiler, it is considered special, and multiple
+	      # occurrences thereof are not removed.  Compare this
+	      # with having the same library being listed as a
+	      # dependency of multiple other libraries: in this case,
+	      # we know (pedantically, we assume) the library does not
+	      # need to be listed more than once, so we keep only the
+	      # last copy.  This is not always right, but it is rare
+	      # enough that we require users that really mean to play
+	      # such unportable linking tricks to link the library
+	      # using -Wl,-lname, so that libtool does not consider it
+	      # for duplicate removal.
+	      case " $specialdeplibs " in
+	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
+	      *)
+		case " $new_libs " in
+		*" $deplib "*) ;;
+		*) new_libs="$deplib $new_libs" ;;
+		esac
+		;;
+	      esac
+	      ;;
+	    esac
+	  done
+	  tmp_libs=
+	  for deplib in $new_libs; do
+	    case $deplib in
+	    -L*)
+	      case " $tmp_libs " in
+	      *" $deplib "*) ;;
+	      *) tmp_libs="$tmp_libs $deplib" ;;
+	      esac
+	      ;;
+	    *) tmp_libs="$tmp_libs $deplib" ;;
+	    esac
+	  done
+	  eval $var=\"$tmp_libs\"
+	done # for var
+      fi
+      # Last step: remove runtime libs from dependency_libs (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs ; do
+	case " $predeps $postdeps $compiler_lib_search_path " in
+	*" $i "*)
+	  i=""
+	  ;;
+	esac
+	if test -n "$i" ; then
+	  tmp_libs="$tmp_libs $i"
+	fi
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test "$linkmode" = prog; then
+      dlfiles="$newdlfiles"
+      dlprefiles="$newdlprefiles"
+    fi
+
+    case $linkmode in
+    oldlib)
+      if test -n "$deplibs"; then
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
+      fi
+
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$rpath"; then
+	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$xrpath"; then
+	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
+      fi
+
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs="$output"
+      objs="$objs$old_deplibs"
+      ;;
+
+    lib)
+      # Make sure we only generate libraries of the form `libNAME.la'.
+      case $outputname in
+      lib*)
+	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+	eval shared_ext=\"$shrext\"
+	eval libname=\"$libname_spec\"
+	;;
+      *)
+	if test "$module" = no; then
+	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
+	  $echo "$help" 1>&2
+	  exit 1
+	fi
+	if test "$need_lib_prefix" != no; then
+	  # Add the "lib" prefix for modules if required
+	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+	  eval shared_ext=\"$shrext\"
+	  eval libname=\"$libname_spec\"
+	else
+	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+	fi
+	;;
+      esac
+
+      if test -n "$objs"; then
+	if test "$deplibs_check_method" != pass_all; then
+	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
+	  exit 1
+	else
+	  $echo
+	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
+	  $echo "*** objects $objs is not portable!"
+	  libobjs="$libobjs $objs"
+	fi
+      fi
+
+      if test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
+      fi
+
+      set dummy $rpath
+      if test "$#" -gt 2; then
+	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+      fi
+      install_libdir="$2"
+
+      oldlibs=
+      if test -z "$rpath"; then
+	if test "$build_libtool_libs" = yes; then
+	  # Building a libtool convenience library.
+	  # Some compilers have problems with a `.al' extension so
+	  # convenience libraries should have the same extension an
+	  # archive normally would.
+	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
+	  build_libtool_libs=convenience
+	  build_old_libs=yes
+	fi
+
+	if test -n "$vinfo"; then
+	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
+	fi
+
+	if test -n "$release"; then
+	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
+	fi
+      else
+
+	# Parse the version information argument.
+	save_ifs="$IFS"; IFS=':'
+	set dummy $vinfo 0 0 0
+	IFS="$save_ifs"
+
+	if test -n "$8"; then
+	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
+	  $echo "$help" 1>&2
+	  exit 1
+	fi
+
+	# convert absolute version numbers to libtool ages
+	# this retains compatibility with .la files and attempts
+	# to make the code below a bit more comprehensible
+	
+	case $vinfo_number in
+	yes)
+	  number_major="$2"
+	  number_minor="$3"
+	  number_revision="$4"
+	  #
+	  # There are really only two kinds -- those that
+	  # use the current revision as the major version
+	  # and those that subtract age and use age as
+	  # a minor version.  But, then there is irix
+	  # which has an extra 1 added just for fun
+	  #
+	  case $version_type in
+	  darwin|linux|osf|windows)
+	    current=`expr $number_major + $number_minor`
+	    age="$number_minor"
+	    revision="$number_revision"
+	    ;;
+	  freebsd-aout|freebsd-elf|sunos)
+	    current="$number_major"
+	    revision="$number_minor"
+	    age="0"
+	    ;;
+	  irix|nonstopux)
+	    current=`expr $number_major + $number_minor - 1`
+	    age="$number_minor"
+	    revision="$number_minor"
+	    ;;
+	  esac
+	  ;;
+	no)
+	  current="$2"
+	  revision="$3"
+	  age="$4"
+	  ;;
+	esac
+
+	# Check that each of the things are valid numbers.
+	case $current in
+	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit 1
+	  ;;
+	esac
+
+	case $revision in
+	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit 1
+	  ;;
+	esac
+
+	case $age in
+	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit 1
+	  ;;
+	esac
+
+	if test "$age" -gt "$current"; then
+	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit 1
+	fi
+
+	# Calculate the version variables.
+	major=
+	versuffix=
+	verstring=
+	case $version_type in
+	none) ;;
+
+	darwin)
+	  # Like Linux, but with the current version available in
+	  # verstring for coding it into the library header
+	  major=.`expr $current - $age`
+	  versuffix="$major.$age.$revision"
+	  # Darwin ld doesn't like 0 for these options...
+	  minor_current=`expr $current + 1`
+	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+	  ;;
+
+	freebsd-aout)
+	  major=".$current"
+	  versuffix=".$current.$revision";
+	  ;;
+
+	freebsd-elf)
+	  major=".$current"
+	  versuffix=".$current";
+	  ;;
+
+	irix | nonstopux)
+	  major=`expr $current - $age + 1`
+
+	  case $version_type in
+	    nonstopux) verstring_prefix=nonstopux ;;
+	    *)         verstring_prefix=sgi ;;
+	  esac
+	  verstring="$verstring_prefix$major.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$revision
+	  while test "$loop" -ne 0; do
+	    iface=`expr $revision - $loop`
+	    loop=`expr $loop - 1`
+	    verstring="$verstring_prefix$major.$iface:$verstring"
+	  done
+
+	  # Before this point, $major must not contain `.'.
+	  major=.$major
+	  versuffix="$major.$revision"
+	  ;;
+
+	linux)
+	  major=.`expr $current - $age`
+	  versuffix="$major.$age.$revision"
+	  ;;
+
+	osf)
+	  major=.`expr $current - $age`
+	  versuffix=".$current.$age.$revision"
+	  verstring="$current.$age.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$age
+	  while test "$loop" -ne 0; do
+	    iface=`expr $current - $loop`
+	    loop=`expr $loop - 1`
+	    verstring="$verstring:${iface}.0"
+	  done
+
+	  # Make executables depend on our current version.
+	  verstring="$verstring:${current}.0"
+	  ;;
+
+	sunos)
+	  major=".$current"
+	  versuffix=".$current.$revision"
+	  ;;
+
+	windows)
+	  # Use '-' rather than '.', since we only want one
+	  # extension on DOS 8.3 filesystems.
+	  major=`expr $current - $age`
+	  versuffix="-$major"
+	  ;;
+
+	*)
+	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
+	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+	  exit 1
+	  ;;
+	esac
+
+	# Clear the version info if we defaulted, and they specified a release.
+	if test -z "$vinfo" && test -n "$release"; then
+	  major=
+	  case $version_type in
+	  darwin)
+	    # we can't check for "0.0" in archive_cmds due to quoting
+	    # problems, so we reset it completely
+	    verstring=
+	    ;;
+	  *)
+	    verstring="0.0"
+	    ;;
+	  esac
+	  if test "$need_version" = no; then
+	    versuffix=
+	  else
+	    versuffix=".0.0"
+	  fi
+	fi
+
+	# Remove version info from name if versioning should be avoided
+	if test "$avoid_version" = yes && test "$need_version" = no; then
+	  major=
+	  versuffix=
+	  verstring=""
+	fi
+
+	# Check to see if the archive will have undefined symbols.
+	if test "$allow_undefined" = yes; then
+	  if test "$allow_undefined_flag" = unsupported; then
+	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+	    build_libtool_libs=no
+	    build_old_libs=yes
+	  fi
+	else
+	  # Don't allow undefined symbols.
+	  allow_undefined_flag="$no_undefined_flag"
+	fi
+      fi
+
+      if test "$mode" != relink; then
+	# Remove our outputs, but don't remove object files since they
+	# may have been created when compiling PIC objects.
+	removelist=
+	tempremovelist=`$echo "$output_objdir/*"`
+	for p in $tempremovelist; do
+	  case $p in
+	    *.$objext)
+	       ;;
+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+	       removelist="$removelist $p"
+	       ;;
+	    *) ;;
+	  esac
+	done
+	if test -n "$removelist"; then
+	  $show "${rm}r $removelist"
+	  $run ${rm}r $removelist
+	fi
+      fi
+
+      # Now set the variables for building old libraries.
+      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+	oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+	# Transform .lo files to .o files.
+	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+      fi
+
+      # Eliminate all temporary directories.
+      for path in $notinst_path; do
+	lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
+	deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
+	dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
+      done
+
+      if test -n "$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	temp_xrpath=
+	for libdir in $xrpath; do
+	  temp_xrpath="$temp_xrpath -R$libdir"
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+	if true || test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+	  dependency_libs="$temp_xrpath $dependency_libs"
+	fi
+      fi
+
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles="$dlfiles"
+      dlfiles=
+      for lib in $old_dlfiles; do
+	case " $dlprefiles $dlfiles " in
+	*" $lib "*) ;;
+	*) dlfiles="$dlfiles $lib" ;;
+	esac
+      done
+
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles="$dlprefiles"
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+	case "$dlprefiles " in
+	*" $lib "*) ;;
+	*) dlprefiles="$dlprefiles $lib" ;;
+	esac
+      done
+
+      if test "$build_libtool_libs" = yes; then
+	if test -n "$rpath"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
+	    # these systems don't actually have a c library (as such)!
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C library is in the System framework
+	    deplibs="$deplibs -framework System"
+	    ;;
+	  *-*-netbsd*)
+	    # Don't link with libc until the a.out ld.so is fixed.
+	    ;;
+	  *-*-freebsd*-gnu*)
+	    # Prevent $arg from being parsed by the freebsd regexp below.
+	    if test "$build_libtool_need_lc" = "yes"; then
+	      deplibs="$deplibs -lc"
+	    fi
+	    ;;
+	  *-*-openbsd* | *-*-freebsd*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+ 	  *)
+	    # Add libc to deplibs on all other systems if necessary.
+	    if test "$build_libtool_need_lc" = "yes"; then
+	      deplibs="$deplibs -lc"
+	    fi
+	    ;;
+	  esac
+	fi
+
+	# Transform deplibs into only deplibs that can be linked in shared.
+	name_save=$name
+	libname_save=$libname
+	release_save=$release
+	versuffix_save=$versuffix
+	major_save=$major
+	# I'm not sure if I'm treating the release correctly.  I think
+	# release should show up in the -l (ie -lgmp5) so we don't want to
+	# add it in twice.  Is that correct?
+	release=""
+	versuffix=""
+	major=""
+	newdeplibs=
+	droppeddeps=no
+	case $deplibs_check_method in
+	pass_all)
+	  # Don't check for shared/static.  Everything works.
+	  # This might be a little naive.  We might want to check
+	  # whether the library exists or not.  But this is on
+	  # osf3 & osf4 and I'm not really sure... Just
+	  # implementing what was already the behavior.
+	  newdeplibs=$deplibs
+	  ;;
+	test_compile)
+	  # This code stresses the "libraries are programs" paradigm to its
+	  # limits. Maybe even breaks it.  We compile a program, linking it
+	  # against the deplibs as a proxy for the library.  Then we can check
+	  # whether they linked in statically or dynamically with ldd.
+	  $rm conftest.c
+	  cat > conftest.c <<EOF
+	  int main() { return 0; }
+EOF
+	  $rm conftest
+	  $LTCC -o conftest conftest.c $deplibs
+	  if test "$?" -eq 0 ; then
+	    ldd_output=`ldd conftest`
+	    for i in $deplibs; do
+	      name="`expr $i : '-l\(.*\)'`"
+	      # If $name is empty we are operating on a -L argument.
+              if test "$name" != "" && test "$name" -ne "0"; then
+		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		  case " $predeps $postdeps " in
+		  *" $i "*)
+		    newdeplibs="$newdeplibs $i"
+		    i=""
+		    ;;
+		  esac
+	        fi
+		if test -n "$i" ; then
+		  libname=`eval \\$echo \"$libname_spec\"`
+		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
+		  set dummy $deplib_matches
+		  deplib_match=$2
+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		    newdeplibs="$newdeplibs $i"
+		  else
+		    droppeddeps=yes
+		    $echo
+		    $echo "*** Warning: dynamic linker does not accept needed library $i."
+		    $echo "*** I have the capability to make that library automatically link in when"
+		    $echo "*** you link to this library.  But I can only do this if you have a"
+		    $echo "*** shared version of the library, which I believe you do not have"
+		    $echo "*** because a test_compile did reveal that the linker did not use it for"
+		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
+		  fi
+		fi
+	      else
+		newdeplibs="$newdeplibs $i"
+	      fi
+	    done
+	  else
+	    # Error occurred in the first compile.  Let's try to salvage
+	    # the situation: Compile a separate program for each library.
+	    for i in $deplibs; do
+	      name="`expr $i : '-l\(.*\)'`"
+	      # If $name is empty we are operating on a -L argument.
+              if test "$name" != "" && test "$name" != "0"; then
+		$rm conftest
+		$LTCC -o conftest conftest.c $i
+		# Did it work?
+		if test "$?" -eq 0 ; then
+		  ldd_output=`ldd conftest`
+		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		    case " $predeps $postdeps " in
+		    *" $i "*)
+		      newdeplibs="$newdeplibs $i"
+		      i=""
+		      ;;
+		    esac
+		  fi
+		  if test -n "$i" ; then
+		    libname=`eval \\$echo \"$libname_spec\"`
+		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
+		    set dummy $deplib_matches
+		    deplib_match=$2
+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		      newdeplibs="$newdeplibs $i"
+		    else
+		      droppeddeps=yes
+		      $echo
+		      $echo "*** Warning: dynamic linker does not accept needed library $i."
+		      $echo "*** I have the capability to make that library automatically link in when"
+		      $echo "*** you link to this library.  But I can only do this if you have a"
+		      $echo "*** shared version of the library, which you do not appear to have"
+		      $echo "*** because a test_compile did reveal that the linker did not use this one"
+		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+		    fi
+		  fi
+		else
+		  droppeddeps=yes
+		  $echo
+		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
+		  $echo "***  make it link in!  You will probably need to install it or some"
+		  $echo "*** library that it depends on before this library will be fully"
+		  $echo "*** functional.  Installing it before continuing would be even better."
+		fi
+	      else
+		newdeplibs="$newdeplibs $i"
+	      fi
+	    done
+	  fi
+	  ;;
+	file_magic*)
+	  set dummy $deplibs_check_method
+	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    name="`expr $a_deplib : '-l\(.*\)'`"
+	    # If $name is empty we are operating on a -L argument.
+            if test "$name" != "" && test  "$name" != "0"; then
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval \\$echo \"$libname_spec\"`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		      # Follow soft links.
+		      if ls -lLd "$potent_lib" 2>/dev/null \
+			 | grep " -> " >/dev/null; then
+			continue
+		      fi
+		      # The statement above tries to avoid entering an
+		      # endless loop below, in case of cyclic links.
+		      # We might still enter an endless loop, since a link
+		      # loop can be closed while we follow links,
+		      # but so what?
+		      potlib="$potent_lib"
+		      while test -h "$potlib" 2>/dev/null; do
+			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+			case $potliblink in
+			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+			esac
+		      done
+		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
+			 | ${SED} 10q \
+			 | $EGREP "$file_magic_regex" > /dev/null; then
+			newdeplibs="$newdeplibs $a_deplib"
+			a_deplib=""
+			break 2
+		      fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$echo
+		$echo "*** Warning: linker path does not have real file for library $a_deplib."
+		$echo "*** I have the capability to make that library automatically link in when"
+		$echo "*** you link to this library.  But I can only do this if you have a"
+		$echo "*** shared version of the library, which you do not appear to have"
+		$echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
+		else
+		  $echo "*** with $libname and none of the candidates passed a file format test"
+		  $echo "*** using a file magic. Last file checked: $potlib"
+		fi
+	      fi
+	    else
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	    fi
+	  done # Gone through all deplibs.
+	  ;;
+	match_pattern*)
+	  set dummy $deplibs_check_method
+	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    name="`expr $a_deplib : '-l\(.*\)'`"
+	    # If $name is empty we are operating on a -L argument.
+	    if test -n "$name" && test "$name" != "0"; then
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval \\$echo \"$libname_spec\"`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		    potlib="$potent_lib" # see symlink-check above in file_magic test
+		    if eval $echo \"$potent_lib\" 2>/dev/null \
+		        | ${SED} 10q \
+		        | $EGREP "$match_pattern_regex" > /dev/null; then
+		      newdeplibs="$newdeplibs $a_deplib"
+		      a_deplib=""
+		      break 2
+		    fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$echo
+		$echo "*** Warning: linker path does not have real file for library $a_deplib."
+		$echo "*** I have the capability to make that library automatically link in when"
+		$echo "*** you link to this library.  But I can only do this if you have a"
+		$echo "*** shared version of the library, which you do not appear to have"
+		$echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
+		else
+		  $echo "*** with $libname and none of the candidates passed a file format test"
+		  $echo "*** using a regex pattern. Last file checked: $potlib"
+		fi
+	      fi
+	    else
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	    fi
+	  done # Gone through all deplibs.
+	  ;;
+	none | unknown | *)
+	  newdeplibs=""
+	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
+	    -e 's/ -[LR][^ ]*//g'`
+	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	    for i in $predeps $postdeps ; do
+	      # can't use Xsed below, because $i might contain '/'
+	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
+	    done
+	  fi
+	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
+	    | grep . >/dev/null; then
+	    $echo
+	    if test "X$deplibs_check_method" = "Xnone"; then
+	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
+	    else
+	      $echo "*** Warning: inter-library dependencies are not known to be supported."
+	    fi
+	    $echo "*** All declared inter-library dependencies are being dropped."
+	    droppeddeps=yes
+	  fi
+	  ;;
+	esac
+	versuffix=$versuffix_save
+	major=$major_save
+	release=$release_save
+	libname=$libname_save
+	name=$name_save
+
+	case $host in
+	*-*-rhapsody* | *-*-darwin1.[012])
+	  # On Rhapsody replace the C library is the System framework
+	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	  ;;
+	esac
+
+	if test "$droppeddeps" = yes; then
+	  if test "$module" = yes; then
+	    $echo
+	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
+	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
+	    $echo "*** a static module, that should work as long as the dlopening"
+	    $echo "*** application is linked with the -dlopen flag."
+	    if test -z "$global_symbol_pipe"; then
+	      $echo
+	      $echo "*** However, this would only work if libtool was able to extract symbol"
+	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+	      $echo "*** not find such a program.  So, this module is probably useless."
+	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+	    fi
+	    if test "$build_old_libs" = no; then
+	      oldlibs="$output_objdir/$libname.$libext"
+	      build_libtool_libs=module
+	      build_old_libs=yes
+	    else
+	      build_libtool_libs=no
+	    fi
+	  else
+	    $echo "*** The inter-library dependencies that have been dropped here will be"
+	    $echo "*** automatically added whenever a program is linked with this library"
+	    $echo "*** or is declared to -dlopen it."
+
+	    if test "$allow_undefined" = no; then
+	      $echo
+	      $echo "*** Since this library must not contain undefined symbols,"
+	      $echo "*** because either the platform does not support them or"
+	      $echo "*** it was explicitly requested with -no-undefined,"
+	      $echo "*** libtool will only create a static version of it."
+	      if test "$build_old_libs" = no; then
+		oldlibs="$output_objdir/$libname.$libext"
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  fi
+	fi
+	# Done checking deplibs!
+	deplibs=$newdeplibs
+      fi
+
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
+
+      # Test again, we may have decided not to build it any more
+      if test "$build_libtool_libs" = yes; then
+	if test "$hardcode_into_libs" = yes; then
+	  # Hardcode the library paths
+	  hardcode_libdirs=
+	  dep_rpath=
+	  rpath="$finalize_rpath"
+	  test "$mode" != relink && test "$fast_install" = no && rpath="$compile_rpath$rpath"
+	  for libdir in $rpath; do
+	    if test -n "$hardcode_libdir_flag_spec"; then
+	      if test -n "$hardcode_libdir_separator"; then
+		if test -z "$hardcode_libdirs"; then
+		  hardcode_libdirs="$libdir"
+		else
+		  # Just accumulate the unique libdirs.
+		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		    ;;
+		  *)
+		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		    ;;
+		  esac
+		fi
+	      else
+		eval flag=\"$hardcode_libdir_flag_spec\"
+		dep_rpath="$dep_rpath $flag"
+	      fi
+	    elif test -n "$runpath_var"; then
+	      case "$perm_rpath " in
+	      *" $libdir "*) ;;
+	      *) perm_rpath="$perm_rpath $libdir" ;;
+	      esac
+	    fi
+	  done
+	  # Substitute the hardcoded libdirs into the rpath.
+	  if test -n "$hardcode_libdir_separator" &&
+	     test -n "$hardcode_libdirs"; then
+	    libdir="$hardcode_libdirs"
+	    if test -n "$hardcode_libdir_flag_spec_ld"; then
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+	    else
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+	    fi
+	  fi
+	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
+	    # We should set the runpath_var.
+	    rpath=
+	    for dir in $perm_rpath; do
+	      rpath="$rpath$dir:"
+	    done
+	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+	  fi
+	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+	fi
+
+	shlibpath="$finalize_shlibpath"
+	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+	if test -n "$shlibpath"; then
+	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+	fi
+
+	# Get the real and link names of the library.
+	eval shared_ext=\"$shrext\"
+	eval library_names=\"$library_names_spec\"
+	set dummy $library_names
+	realname="$2"
+	shift; shift
+
+	if test -n "$soname_spec"; then
+	  eval soname=\"$soname_spec\"
+	else
+	  soname="$realname"
+	fi
+	if test -z "$dlname"; then
+	  dlname=$soname
+	fi
+
+	lib="$output_objdir/$realname"
+	for link
+	do
+	  linknames="$linknames $link"
+	done
+
+	# Use standard objects if they are pic
+	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+
+	# Prepare the list of exported symbols
+	if test -z "$export_symbols"; then
+	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+	    $show "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $run $rm $export_symbols
+	    eval cmds=\"$export_symbols_cmds\"
+	    save_ifs="$IFS"; IFS='~'
+	    for cmd in $cmds; do
+	      IFS="$save_ifs"
+	      if len=`expr "X$cmd" : ".*"` &&
+	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	        $show "$cmd"
+	        $run eval "$cmd" || exit $?
+	        skipped_export=false
+	      else
+	        # The command line is too long to execute in one step.
+	        $show "using reloadable object file for export list..."
+	        skipped_export=:
+	      fi
+	    done
+	    IFS="$save_ifs"
+	    if test -n "$export_symbols_regex"; then
+	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
+	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
+	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+	fi
+
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
+	fi
+
+	tmp_deplibs=
+	for test_deplib in $deplibs; do
+		case " $convenience " in
+		*" $test_deplib "*) ;;
+		*) 
+			tmp_deplibs="$tmp_deplibs $test_deplib"
+			;;
+		esac
+	done
+	deplibs="$tmp_deplibs" 
+
+	if test -n "$convenience"; then
+	  if test -n "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	  else
+	    gentop="$output_objdir/${outputname}x"
+	    $show "${rm}r $gentop"
+	    $run ${rm}r "$gentop"
+	    $show "$mkdir $gentop"
+	    $run $mkdir "$gentop"
+	    status=$?
+	    if test "$status" -ne 0 && test ! -d "$gentop"; then
+	      exit $status
+	    fi
+	    generated="$generated $gentop"
+
+	    for xlib in $convenience; do
+	      # Extract the objects.
+	      case $xlib in
+	      [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+	      *) xabs=`pwd`"/$xlib" ;;
+	      esac
+	      xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+	      xdir="$gentop/$xlib"
+
+	      $show "${rm}r $xdir"
+	      $run ${rm}r "$xdir"
+	      $show "$mkdir $xdir"
+	      $run $mkdir "$xdir"
+	      status=$?
+	      if test "$status" -ne 0 && test ! -d "$xdir"; then
+		exit $status
+	      fi
+	      # We will extract separately just the conflicting names and we will no
+	      # longer touch any unique names. It is faster to leave these extract
+	      # automatically by $AR in one run.
+	      $show "(cd $xdir && $AR x $xabs)"
+	      $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+	      if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
+		:
+	      else
+		$echo "$modename: warning: object name conflicts; renaming object files" 1>&2
+		$echo "$modename: warning: to ensure that they will not overwrite" 1>&2
+		$AR t "$xabs" | sort | uniq -cd | while read -r count name
+		do
+		  i=1
+		  while test "$i" -le "$count"
+		  do
+		   # Put our $i before any first dot (extension)
+		   # Never overwrite any file
+		   name_to="$name"
+		   while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
+		   do
+		     name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
+		   done
+		   $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
+		   $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
+		   i=`expr $i + 1`
+		  done
+		done
+	      fi
+
+	      libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+	    done
+	  fi
+	fi
+
+	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+	  eval flag=\"$thread_safe_flag_spec\"
+	  linker_flags="$linker_flags $flag"
+	fi
+
+	# Make a backup of the uninstalled library when relinking
+	if test "$mode" = relink; then
+	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
+	fi
+
+	# Add all flags from the command line.  We here create a library,
+	# but those flags were only added to compile_command and
+	# finalize_command, which are only used when creating executables.
+	# So do it by hand here.
+	compiler_flags="$compiler_flags $add_flags"
+	# Only add it to commands which use CC, instead of LD, i.e.
+	# only to $compiler_flags
+	#linker_flags="$linker_flags $add_flags"
+
+	# Do each of the archive commands.
+	if test "$module" = yes && test -n "$module_cmds" ; then
+	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	    eval cmds=\"$module_expsym_cmds\"
+	  else
+	    eval cmds=\"$module_cmds\"
+	  fi
+	else
+	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	  eval cmds=\"$archive_expsym_cmds\"
+	else
+	  eval cmds=\"$archive_cmds\"
+	  fi
+	fi
+
+	if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` &&
+	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  :
+	else
+	  # The command line is too long to link in one step, link piecewise.
+	  $echo "creating reloadable object files..."
+
+	  # Save the value of $output and $libobjs because we want to
+	  # use them later.  If we have whole_archive_flag_spec, we
+	  # want to use save_libobjs as it was before
+	  # whole_archive_flag_spec was expanded, because we can't
+	  # assume the linker understands whole_archive_flag_spec.
+	  # This may have to be revisited, in case too many
+	  # convenience libraries get linked in and end up exceeding
+	  # the spec.
+	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	  fi
+	  save_output=$output
+
+	  # Clear the reloadable object creation command queue and
+	  # initialize k to one.
+	  test_cmds=
+	  concat_cmds=
+	  objlist=
+	  delfiles=
+	  last_robj=
+	  k=1
+	  output=$output_objdir/$save_output-${k}.$objext
+	  # Loop over the list of objects to be linked.
+	  for obj in $save_libobjs
+	  do
+	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
+	    if test "X$objlist" = X ||
+	       { len=`expr "X$test_cmds" : ".*"` &&
+		 test "$len" -le "$max_cmd_len"; }; then
+	      objlist="$objlist $obj"
+	    else
+	      # The command $test_cmds is almost too long, add a
+	      # command to the queue.
+	      if test "$k" -eq 1 ; then
+		# The first file doesn't have a previous command to add.
+		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+	      else
+		# All subsequent reloadable object files will link in
+		# the last one created.
+		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
+	      fi
+	      last_robj=$output_objdir/$save_output-${k}.$objext
+	      k=`expr $k + 1`
+	      output=$output_objdir/$save_output-${k}.$objext
+	      objlist=$obj
+	      len=1
+	    fi
+	  done
+	  # Handle the remaining objects by creating one last
+	  # reloadable object file.  All subsequent reloadable object
+	  # files will link in the last one created.
+	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+
+	  if ${skipped_export-false}; then
+	    $show "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $run $rm $export_symbols
+	    libobjs=$output
+	    # Append the command to create the export file.
+	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
+          fi
+
+	  # Set up a command to remove the reloadale object files
+	  # after they are used.
+	  i=0
+	  while test "$i" -lt "$k"
+	  do
+	    i=`expr $i + 1`
+	    delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
+	  done
+
+	  $echo "creating a temporary reloadable object file: $output"
+
+	  # Loop through the commands generated above and execute them.
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $concat_cmds; do
+	    IFS="$save_ifs"
+	    $show "$cmd"
+	    $run eval "$cmd" || exit $?
+	  done
+	  IFS="$save_ifs"
+
+	  libobjs=$output
+	  # Restore the value of output.
+	  output=$save_output
+
+	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	  fi
+	  # Expand the library linking commands again to reset the
+	  # value of $libobjs for piecewise linking.
+
+	  # Do each of the archive commands.
+	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	    eval cmds=\"$archive_expsym_cmds\"
+	  else
+	    eval cmds=\"$archive_cmds\"
+	  fi
+
+	  # Append the command to remove the reloadable object files
+	  # to the just-reset $cmds.
+	  eval cmds=\"\$cmds~$rm $delfiles\"
+	fi
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  $show "$cmd"
+	  $run eval "$cmd" || exit $?
+	done
+	IFS="$save_ifs"
+
+	# Restore the uninstalled library and exit
+	if test "$mode" = relink; then
+	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
+	  exit 0
+	fi
+
+	# Create links to the real library.
+	for linkname in $linknames; do
+	  if test "$realname" != "$linkname"; then
+	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
+	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
+	  fi
+	done
+
+	# If -module or -export-dynamic was specified, set the dlname.
+	if test "$module" = yes || test "$export_dynamic" = yes; then
+	  # On all known operating systems, these are identical.
+	  dlname="$soname"
+	fi
+      fi
+      ;;
+
+    obj)
+      if test -n "$deplibs"; then
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
+      fi
+
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$rpath"; then
+	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$xrpath"; then
+	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
+      fi
+
+      case $output in
+      *.lo)
+	if test -n "$objs$old_deplibs"; then
+	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
+	  exit 1
+	fi
+	libobj="$output"
+	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
+	;;
+      *)
+	libobj=
+	obj="$output"
+	;;
+      esac
+
+      # Delete the old objects.
+      $run $rm $obj $libobj
+
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # reload_cmds runs $LD directly, so let us get rid of
+      # -Wl from whole_archive_flag_spec
+      wl=
+
+      if test -n "$convenience"; then
+	if test -n "$whole_archive_flag_spec"; then
+	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
+	else
+	  gentop="$output_objdir/${obj}x"
+	  $show "${rm}r $gentop"
+	  $run ${rm}r "$gentop"
+	  $show "$mkdir $gentop"
+	  $run $mkdir "$gentop"
+	  status=$?
+	  if test "$status" -ne 0 && test ! -d "$gentop"; then
+	    exit $status
+	  fi
+	  generated="$generated $gentop"
+
+	  for xlib in $convenience; do
+	    # Extract the objects.
+	    case $xlib in
+	    [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+	    *) xabs=`pwd`"/$xlib" ;;
+	    esac
+	    xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+	    xdir="$gentop/$xlib"
+
+	    $show "${rm}r $xdir"
+	    $run ${rm}r "$xdir"
+	    $show "$mkdir $xdir"
+	    $run $mkdir "$xdir"
+	    status=$?
+	    if test "$status" -ne 0 && test ! -d "$xdir"; then
+	      exit $status
+	    fi
+	    # We will extract separately just the conflicting names and we will no
+	    # longer touch any unique names. It is faster to leave these extract
+	    # automatically by $AR in one run.
+	    $show "(cd $xdir && $AR x $xabs)"
+	    $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+	    if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
+	      :
+	    else
+	      $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
+	      $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
+	      $AR t "$xabs" | sort | uniq -cd | while read -r count name
+	      do
+		i=1
+		while test "$i" -le "$count"
+		do
+		 # Put our $i before any first dot (extension)
+		 # Never overwrite any file
+		 name_to="$name"
+		 while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
+		 do
+		   name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
+		 done
+		 $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
+		 $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
+		 i=`expr $i + 1`
+		done
+	      done
+	    fi
+
+	    reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+	  done
+	fi
+      fi
+
+      # Create the old-style object.
+      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+      output="$obj"
+      eval cmds=\"$reload_cmds\"
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+	IFS="$save_ifs"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+	if test -n "$gentop"; then
+	  $show "${rm}r $gentop"
+	  $run ${rm}r $gentop
+	fi
+
+	exit 0
+      fi
+
+      if test "$build_libtool_libs" != yes; then
+	if test -n "$gentop"; then
+	  $show "${rm}r $gentop"
+	  $run ${rm}r $gentop
+	fi
+
+	# Create an invalid libtool object if no PIC, so that we don't
+	# accidentally link it into a program.
+	# $show "echo timestamp > $libobj"
+	# $run eval "echo timestamp > $libobj" || exit $?
+	exit 0
+      fi
+
+      if test -n "$pic_flag" || test "$pic_mode" != default; then
+	# Only do commands if we really have different PIC objects.
+	reload_objs="$libobjs $reload_conv_objs"
+	output="$libobj"
+	eval cmds=\"$reload_cmds\"
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  $show "$cmd"
+	  $run eval "$cmd" || exit $?
+	done
+	IFS="$save_ifs"
+      fi
+
+      if test -n "$gentop"; then
+	$show "${rm}r $gentop"
+	$run ${rm}r $gentop
+      fi
+
+      exit 0
+      ;;
+
+    prog)
+      case $host in
+	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
+      esac
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
+      fi
+
+      if test "$preload" = yes; then
+	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
+	   test "$dlopen_self_static" = unknown; then
+	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
+	fi
+      fi
+
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+	# On Rhapsody replace the C library is the System framework
+	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	;;
+      esac
+
+      case $host in
+      *darwin*)
+        # Don't allow lazy linking, it breaks C++ global constructors
+        if test "$tagname" = CXX ; then
+        compile_command="$compile_command ${wl}-bind_at_load"
+        finalize_command="$finalize_command ${wl}-bind_at_load"
+        fi
+        ;;
+      esac
+
+      compile_command="$compile_command $compile_deplibs"
+      finalize_command="$finalize_command $finalize_deplibs"
+
+      if test -n "$rpath$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	for libdir in $rpath $xrpath; do
+	  # This is the magic to use -rpath.
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+      fi
+
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) perm_rpath="$perm_rpath $libdir" ;;
+	  esac
+	fi
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  case :$dllsearchpath: in
+	  *":$libdir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$libdir";;
+	  esac
+	  ;;
+	esac
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath="$rpath"
+
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$finalize_perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+	  esac
+	fi
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath="$rpath"
+
+      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+	# Transform all the library objects into standard objects.
+	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+      fi
+
+      dlsyms=
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	if test -n "$NM" && test -n "$global_symbol_pipe"; then
+	  dlsyms="${outputname}S.c"
+	else
+	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
+	fi
+      fi
+
+      if test -n "$dlsyms"; then
+	case $dlsyms in
+	"") ;;
+	*.c)
+	  # Discover the nlist of each of the dlfiles.
+	  nlist="$output_objdir/${outputname}.nm"
+
+	  $show "$rm $nlist ${nlist}S ${nlist}T"
+	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
+
+	  # Parse the name list into a source file.
+	  $show "creating $output_objdir/$dlsyms"
+
+	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
+/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
+/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* Prevent the only kind of declaration conflicts we can make. */
+#define lt_preloaded_symbols some_other_symbol
+
+/* External symbol declarations for the compiler. */\
+"
+
+	  if test "$dlself" = yes; then
+	    $show "generating symbol list for \`$output'"
+
+	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
+
+	    # Add our own program objects to the symbol list.
+	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	    for arg in $progfiles; do
+	      $show "extracting global C symbols from \`$arg'"
+	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+	    done
+
+	    if test -n "$exclude_expsyms"; then
+	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+	      $run eval '$mv "$nlist"T "$nlist"'
+	    fi
+
+	    if test -n "$export_symbols_regex"; then
+	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+	      $run eval '$mv "$nlist"T "$nlist"'
+	    fi
+
+	    # Prepare the list of exported symbols
+	    if test -z "$export_symbols"; then
+	      export_symbols="$output_objdir/$output.exp"
+	      $run $rm $export_symbols
+	      $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+	    else
+	      $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
+	      $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
+	      $run eval 'mv "$nlist"T "$nlist"'
+	    fi
+	  fi
+
+	  for arg in $dlprefiles; do
+	    $show "extracting global C symbols from \`$arg'"
+	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
+	    $run eval '$echo ": $name " >> "$nlist"'
+	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+	  done
+
+	  if test -z "$run"; then
+	    # Make sure we have at least an empty file.
+	    test -f "$nlist" || : > "$nlist"
+
+	    if test -n "$exclude_expsyms"; then
+	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+	      $mv "$nlist"T "$nlist"
+	    fi
+
+	    # Try sorting and uniquifying the output.
+	    if grep -v "^: " < "$nlist" |
+		if sort -k 3 </dev/null >/dev/null 2>&1; then
+		  sort -k 3
+		else
+		  sort +2
+		fi |
+		uniq > "$nlist"S; then
+	      :
+	    else
+	      grep -v "^: " < "$nlist" > "$nlist"S
+	    fi
+
+	    if test -f "$nlist"S; then
+	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
+	    else
+	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
+	    fi
+
+	    $echo >> "$output_objdir/$dlsyms" "\
+
+#undef lt_preloaded_symbols
+
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr address;
+}
+lt_preloaded_symbols[] =
+{\
+"
+
+	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
+
+	    $echo >> "$output_objdir/$dlsyms" "\
+  {0, (lt_ptr) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+	  fi
+
+	  pic_flag_for_symtable=
+	  case $host in
+	  # compiling the symbol table file with pic_flag works around
+	  # a FreeBSD bug that causes programs to crash when -lm is
+	  # linked before any other PIC object.  But we must not use
+	  # pic_flag when linking with -static.  The problem exists in
+	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+	    case "$compile_command " in
+	    *" -static "*) ;;
+	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
+	    esac;;
+	  *-*-hpux*)
+	    case "$compile_command " in
+	    *" -static "*) ;;
+	    *) pic_flag_for_symtable=" $pic_flag";;
+	    esac
+	  esac
+
+	  # Now compile the dynamic symbol file.
+	  $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+	  $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
+
+	  # Clean up the generated files.
+	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
+	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
+
+	  # Transform the symbol file into the correct name.
+	  compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+	  finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+	  ;;
+	*)
+	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+	  exit 1
+	  ;;
+	esac
+      else
+	# We keep going just in case the user didn't refer to
+	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+	# really was required.
+
+	# Nullify the symbol file.
+	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+      fi
+
+      # AIX runtime linking requires linking programs with -Wl,-brtl and libs with -Wl,-G
+      # Also add -bnolibpath to the beginning of the link line, to clear the hardcoded runpath.
+      # Otherwise, things like the -L path to libgcc.a are accidentally hardcoded by ld.
+      # This does not apply on AIX for ia64, which uses a SysV linker.
+      case "$host" in
+        ia64-*-aix5*) ;;
+        *-*-aix4* | *-*-aix5*)
+                   compile_command=`$echo "X$compile_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"`
+                   finalize_command=`$echo "X$finalize_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` ;;
+      esac
+
+      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+	# Replace the output file specification.
+	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	link_command="$compile_command$compile_rpath"
+
+	# We have no uninstalled library dependencies, so finalize right now.
+	$show "$link_command"
+	$run eval "$link_command"
+	status=$?
+
+	# Delete the generated files.
+	if test -n "$dlsyms"; then
+	  $show "$rm $output_objdir/${outputname}S.${objext}"
+	  $run $rm "$output_objdir/${outputname}S.${objext}"
+	fi
+
+	exit $status
+      fi
+
+      if test -n "$shlibpath_var"; then
+	# We should set the shlibpath_var
+	rpath=
+	for dir in $temp_rpath; do
+	  case $dir in
+	  [\\/]* | [A-Za-z]:[\\/]*)
+	    # Absolute path.
+	    rpath="$rpath$dir:"
+	    ;;
+	  *)
+	    # Relative path: add a thisdir entry.
+	    rpath="$rpath\$thisdir/$dir:"
+	    ;;
+	  esac
+	done
+	temp_rpath="$rpath"
+      fi
+
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
+
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+	if test -n "$perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+	if test -n "$finalize_perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $finalize_perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+      fi
+
+      if test "$no_install" = yes; then
+	# We don't need to create a wrapper script.
+	link_command="$compile_var$compile_command$compile_rpath"
+	# Replace the output file specification.
+	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	# Delete the old output file.
+	$run $rm $output
+	# Link the executable and exit
+	$show "$link_command"
+	$run eval "$link_command" || exit $?
+	exit 0
+      fi
+
+      if test "$hardcode_action" = relink; then
+	# Fast installation is not supported
+	link_command="$compile_var$compile_command$compile_rpath"
+	relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
+	$echo "$modename: \`$output' will be relinked during installation" 1>&2
+      else
+	if test "$fast_install" != no; then
+	  link_command="$finalize_var$compile_command$finalize_rpath"
+	  if test "$fast_install" = yes; then
+	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+	  else
+	    # fast_install is set to needless
+	    relink_command=
+	  fi
+	else
+	  link_command="$compile_var$compile_command$compile_rpath"
+	  relink_command="$finalize_var$finalize_command$finalize_rpath"
+	fi
+      fi
+
+      # Replace the output file specification.
+      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+      # Delete the old output files.
+      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+      $show "$link_command"
+      $run eval "$link_command" || exit $?
+
+      # Now create the wrapper script.
+      $show "creating $output"
+
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+	# Preserve any variables that may affect compiler behavior
+	for var in $variables_saved_for_relink; do
+	  if eval test -z \"\${$var+set}\"; then
+	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+	  elif eval var_value=\$$var; test -z "$var_value"; then
+	    relink_command="$var=; export $var; $relink_command"
+	  else
+	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
+	  fi
+	done
+	relink_command="(cd `pwd`; $relink_command)"
+	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Quote $echo for shipping.
+      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
+	case $0 in
+	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
+	*) qecho="$SHELL `pwd`/$0 --fallback-echo";;
+	esac
+	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
+      else
+	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Only actually do things if our run command is non-null.
+      if test -z "$run"; then
+	# win32 will think the script is a binary if it has
+	# a .exe suffix, so we strip it off here.
+	case $output in
+	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
+	esac
+	# test for cygwin because mv fails w/o .exe extensions
+	case $host in
+	  *cygwin*)
+	    exeext=.exe
+	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
+	  *) exeext= ;;
+	esac
+	case $host in
+	  *cygwin* | *mingw* )
+	    cwrappersource=`$echo ${objdir}/lt-${output}.c`
+	    cwrapper=`$echo ${output}.exe`
+	    $rm $cwrappersource $cwrapper
+	    trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15
+
+	    cat > $cwrappersource <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
+   
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
+
+   Currently, it simply execs the wrapper *script* "/bin/sh $output",
+   but could eventually absorb all of the scripts functionality and
+   exec $objdir/$outputname directly.
+*/
+EOF
+	    cat >> $cwrappersource<<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef DIR_SEPARATOR
+#define DIR_SEPARATOR '/'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+  defined (__OS2__)
+#define HAVE_DOS_BASED_FILE_SYSTEM
+#ifndef DIR_SEPARATOR_2 
+#define DIR_SEPARATOR_2 '\\'
+#endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+const char *program_name = NULL;
+
+void * xmalloc (size_t num);
+char * xstrdup (const char *string);
+char * basename (const char *name);
+char * fnqualify(const char *path);
+char * strendzap(char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int i;
+  
+  program_name = (char *) xstrdup ((char *) basename (argv[0]));
+  newargz = XMALLOC(char *, argc+2);
+EOF
+
+	    cat >> $cwrappersource <<EOF
+  newargz[0] = "$SHELL";
+EOF
+
+	    cat >> $cwrappersource <<"EOF"
+  newargz[1] = fnqualify(argv[0]);
+  /* we know the script has the same name, without the .exe */
+  /* so make sure newargz[1] doesn't end in .exe */
+  strendzap(newargz[1],".exe"); 
+  for (i = 1; i < argc; i++)
+    newargz[i+1] = xstrdup(argv[i]);
+  newargz[argc+1] = NULL;
+EOF
+
+	    cat >> $cwrappersource <<EOF
+  execv("$SHELL",newargz);
+EOF
+
+	    cat >> $cwrappersource <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+  void * p = (void *) malloc (num);
+  if (!p)
+    lt_fatal ("Memory exhausted");
+
+  return p;
+}
+
+char * 
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
+;
+}
+
+char *
+basename (const char *name)
+{
+  const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha (name[0]) && name[1] == ':') 
+    name += 2;
+#endif
+
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return (char *) base;
+}
+
+char * 
+fnqualify(const char *path)
+{
+  size_t size;
+  char *p;
+  char tmp[LT_PATHMAX + 1];
+
+  assert(path != NULL);
+
+  /* Is it qualified already? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  if (isalpha (path[0]) && path[1] == ':')
+    return xstrdup (path);
+#endif
+  if (IS_DIR_SEPARATOR (path[0]))
+    return xstrdup (path);
+
+  /* prepend the current directory */
+  /* doesn't handle '~' */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal ("getcwd failed");
+  size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
+  p = XMALLOC(char, size);
+  sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
+  return p;
+}
+
+char *
+strendzap(char *str, const char *pat) 
+{
+  size_t len, patlen;
+
+  assert(str != NULL);
+  assert(pat != NULL);
+
+  len = strlen(str);
+  patlen = strlen(pat);
+
+  if (patlen <= len)
+  {
+    str += len - patlen;
+    if (strcmp(str, pat) == 0)
+      *str = '\0';
+  }
+  return str;
+}
+
+static void
+lt_error_core (int exit_status, const char * mode, 
+          const char * message, va_list ap)
+{
+  fprintf (stderr, "%s: %s: ", program_name, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
+
+  if (exit_status >= 0)
+    exit (exit_status);
+}
+
+void
+lt_fatal (const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  va_end (ap);
+}
+EOF
+	  # we should really use a build-platform specific compiler
+	  # here, but OTOH, the wrappers (shell script and this C one)
+	  # are only useful if you want to execute the "real" binary.
+	  # Since the "real" binary is built for $host, then this
+	  # wrapper might as well be built for $host, too.
+	  $run $LTCC -s -o $cwrapper $cwrappersource
+	  ;;
+	esac
+	$rm $output
+	trap "$rm $output; exit 1" 1 2 15
+
+	$echo > $output "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variable:
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$echo are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    echo=\"$qecho\"
+    file=\"\$0\"
+    # Make sure echo works.
+    if test \"X\$1\" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
+      # Yippee, \$echo works!
+      :
+    else
+      # Restart under the correct shell, and then maybe \$echo will work.
+      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+    fi
+  fi\
+"
+	$echo >> $output "\
+
+  # Find the directory that this script lives in.
+  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
+
+    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+  done
+
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+	if test "$fast_install" = yes; then
+	  $echo >> $output "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
+
+  if test ! -f \"\$progdir/\$program\" || \\
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+    file=\"\$\$-\$program\"
+
+    if test ! -d \"\$progdir\"; then
+      $mkdir \"\$progdir\"
+    else
+      $rm \"\$progdir/\$file\"
+    fi"
+
+	  $echo >> $output "\
+
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+	$echo \"\$relink_command_output\" >&2
+	$rm \"\$progdir/\$file\"
+	exit 1
+      fi
+    fi
+
+    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $rm \"\$progdir/\$program\";
+      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $rm \"\$progdir/\$file\"
+  fi"
+	else
+	  $echo >> $output "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
+	fi
+
+	$echo >> $output "\
+
+  if test -f \"\$progdir/\$program\"; then"
+
+	# Export our shlibpath_var if we have one.
+	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+	  $echo >> $output "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+    export $shlibpath_var
+"
+	fi
+
+	# fixup the dll searchpath if we need to.
+	if test -n "$dllsearchpath"; then
+	  $echo >> $output "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+	fi
+
+	$echo >> $output "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+"
+	case $host in
+	# Backslashes separate directories on plain windows
+	*-*-mingw | *-*-os2*)
+	  $echo >> $output "\
+      exec \$progdir\\\\\$program \${1+\"\$@\"}
+"
+	  ;;
+
+	*)
+	  $echo >> $output "\
+      exec \$progdir/\$program \${1+\"\$@\"}
+"
+	  ;;
+	esac
+	$echo >> $output "\
+      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
+    \$echo \"This script is just a wrapper for \$program.\" 1>&2
+    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit 1
+  fi
+fi\
+"
+	chmod +x $output
+      fi
+      exit 0
+      ;;
+    esac
+
+    # See if we need to build an old-fashioned archive.
+    for oldlib in $oldlibs; do
+
+      if test "$build_libtool_libs" = convenience; then
+	oldobjs="$libobjs_save"
+	addlibs="$convenience"
+	build_libtool_libs=no
+      else
+	if test "$build_libtool_libs" = module; then
+	  oldobjs="$libobjs_save"
+	  build_libtool_libs=no
+	else
+	  oldobjs="$old_deplibs $non_pic_objects"
+	fi
+	addlibs="$old_convenience"
+      fi
+
+      if test -n "$addlibs"; then
+	gentop="$output_objdir/${outputname}x"
+	$show "${rm}r $gentop"
+	$run ${rm}r "$gentop"
+	$show "$mkdir $gentop"
+	$run $mkdir "$gentop"
+	status=$?
+	if test "$status" -ne 0 && test ! -d "$gentop"; then
+	  exit $status
+	fi
+	generated="$generated $gentop"
+
+	# Add in members from convenience archives.
+	for xlib in $addlibs; do
+	  # Extract the objects.
+	  case $xlib in
+	  [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+	  *) xabs=`pwd`"/$xlib" ;;
+	  esac
+	  xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+	  xdir="$gentop/$xlib"
+
+	  $show "${rm}r $xdir"
+	  $run ${rm}r "$xdir"
+	  $show "$mkdir $xdir"
+	  $run $mkdir "$xdir"
+	  status=$?
+	  if test "$status" -ne 0 && test ! -d "$xdir"; then
+	    exit $status
+	  fi
+	  # We will extract separately just the conflicting names and we will no
+	  # longer touch any unique names. It is faster to leave these extract
+	  # automatically by $AR in one run.
+	  $show "(cd $xdir && $AR x $xabs)"
+	  $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+	  if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
+	    :
+	  else
+	    $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
+	    $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
+	    $AR t "$xabs" | sort | uniq -cd | while read -r count name
+	    do
+	      i=1
+	      while test "$i" -le "$count"
+	      do
+	       # Put our $i before any first dot (extension)
+	       # Never overwrite any file
+	       name_to="$name"
+	       while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
+	       do
+		 name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
+	       done
+	       $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
+	       $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
+	       i=`expr $i + 1`
+	      done
+	    done
+	  fi
+
+	  oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
+	done
+      fi
+
+      compiler_flags="$compiler_flags $add_flags"
+
+      # Do each command in the archive commands.
+      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+	eval cmds=\"$old_archive_from_new_cmds\"
+      else
+	eval cmds=\"$old_archive_cmds\"
+
+	if len=`expr "X$cmds" : ".*"` &&
+	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  :
+	else
+	  # the command line is too long to link in one step, link in parts
+	  $echo "using piecewise archive linking..."
+	  save_RANLIB=$RANLIB
+	  RANLIB=:
+	  objlist=
+	  concat_cmds=
+	  save_oldobjs=$oldobjs
+	  # GNU ar 2.10+ was changed to match POSIX; thus no paths are
+	  # encoded into archives.  This makes 'ar r' malfunction in
+	  # this piecewise linking case whenever conflicting object
+	  # names appear in distinct ar calls; check, warn and compensate.
+	    if (for obj in $save_oldobjs
+	    do
+	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
+	    done | sort | sort -uc >/dev/null 2>&1); then
+	    :
+	  else
+	    $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
+	    $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
+	    AR_FLAGS=cq
+	  fi
+	  # Is there a better way of finding the last object in the list?
+	  for obj in $save_oldobjs
+	  do
+	    last_oldobj=$obj
+	  done  
+	  for obj in $save_oldobjs
+	  do
+	    oldobjs="$objlist $obj"
+	    objlist="$objlist $obj"
+	    eval test_cmds=\"$old_archive_cmds\"
+	    if len=`expr "X$test_cmds" : ".*"` &&
+	       test "$len" -le "$max_cmd_len"; then
+	      :
+	    else
+	      # the above command should be used before it gets too long
+	      oldobjs=$objlist
+	      if test "$obj" = "$last_oldobj" ; then
+	        RANLIB=$save_RANLIB
+	      fi  
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+	      objlist=
+	    fi
+	  done
+	  RANLIB=$save_RANLIB
+	  oldobjs=$objlist
+	  if test "X$oldobjs" = "X" ; then
+	    eval cmds=\"\$concat_cmds\"
+	  else
+	    eval cmds=\"\$concat_cmds~$old_archive_cmds\"
+	  fi
+	fi
+      fi
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+	IFS="$save_ifs"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+    done
+
+    if test -n "$generated"; then
+      $show "${rm}r$generated"
+      $run ${rm}r$generated
+    fi
+
+    # Now create the libtool archive.
+    case $output in
+    *.la)
+      old_library=
+      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      $show "creating $output"
+
+      # Preserve any variables that may affect compiler behavior
+      for var in $variables_saved_for_relink; do
+	if eval test -z \"\${$var+set}\"; then
+	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+	elif eval var_value=\$$var; test -z "$var_value"; then
+	  relink_command="$var=; export $var; $relink_command"
+	else
+	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
+	fi
+      done
+      # Quote the link command for shipping.
+      relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      if test "$hardcode_automatic" = yes ; then
+        relink_command=
+      fi  
+      # Only create the output if not a dry run.
+      if test -z "$run"; then
+	for installed in no yes; do
+	  if test "$installed" = yes; then
+	    if test -z "$install_libdir"; then
+	      break
+	    fi
+	    output="$output_objdir/$outputname"i
+	    # Replace all uninstalled libtool libraries with the installed ones
+	    newdependency_libs=
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      *.la)
+		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		if test -z "$libdir"; then
+		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+		  exit 1
+		fi
+		newdependency_libs="$newdependency_libs $libdir/$name"
+		;;
+	      *) newdependency_libs="$newdependency_libs $deplib" ;;
+	      esac
+	    done
+	    dependency_libs="$newdependency_libs"
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+	      if test -z "$libdir"; then
+		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+		exit 1
+	      fi
+	      newdlfiles="$newdlfiles $libdir/$name"
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+	      if test -z "$libdir"; then
+		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+		exit 1
+	      fi
+	      newdlprefiles="$newdlprefiles $libdir/$name"
+	    done
+	    dlprefiles="$newdlprefiles"
+	  fi
+	  $rm $output
+	  # place dlname in correct position for cygwin
+	  tdlname=$dlname
+	  case $host,$output,$installed,$module,$dlname in
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+	  esac
+	  $echo > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+	  if test "$installed" = no && test "$need_relink" = yes && test "$fast_install" = no; then
+	    $echo >> $output "\
+relink_command=\"$relink_command\""
+	  fi
+	done
+      fi
+
+      # Do a symbolic link so that the libtool archive can be found in
+      # LD_LIBRARY_PATH before the program is installed.
+      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
+      ;;
+    esac
+    exit 0
+    ;;
+
+  # libtool install mode
+  install)
+    modename="$modename: install"
+
+    # There may be an optional sh(1) argument at the beginning of
+    # install_prog (especially on Windows NT).
+    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+       # Allow the use of GNU shtool's install command.
+       $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
+      # Aesthetically quote it.
+      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
+	arg="\"$arg\""
+	;;
+      esac
+      install_prog="$arg "
+      arg="$1"
+      shift
+    else
+      install_prog=
+      arg="$nonopt"
+    fi
+
+    # The real first argument should be the name of the installation program.
+    # Aesthetically quote it.
+    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+    case $arg in
+    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
+      arg="\"$arg\""
+      ;;
+    esac
+    install_prog="$install_prog$arg"
+
+    # We need to accept at least all the BSD install flags.
+    dest=
+    files=
+    opts=
+    prev=
+    install_type=
+    isdir=no
+    stripme=
+    for arg
+    do
+      if test -n "$dest"; then
+	files="$files $dest"
+	dest="$arg"
+	continue
+      fi
+
+      case $arg in
+      -d) isdir=yes ;;
+      -f) prev="-f" ;;
+      -g) prev="-g" ;;
+      -m) prev="-m" ;;
+      -o) prev="-o" ;;
+      -s)
+	stripme=" -s"
+	continue
+	;;
+      -*) ;;
+
+      *)
+	# If the previous option needed an argument, then skip it.
+	if test -n "$prev"; then
+	  prev=
+	else
+	  dest="$arg"
+	  continue
+	fi
+	;;
+      esac
+
+      # Aesthetically quote the argument.
+      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
+	arg="\"$arg\""
+	;;
+      esac
+      install_prog="$install_prog $arg"
+    done
+
+    if test -z "$install_prog"; then
+      $echo "$modename: you must specify an install program" 1>&2
+      $echo "$help" 1>&2
+      exit 1
+    fi
+
+    if test -n "$prev"; then
+      $echo "$modename: the \`$prev' option requires an argument" 1>&2
+      $echo "$help" 1>&2
+      exit 1
+    fi
+
+    if test -z "$files"; then
+      if test -z "$dest"; then
+	$echo "$modename: no file or destination specified" 1>&2
+      else
+	$echo "$modename: you must specify a destination" 1>&2
+      fi
+      $echo "$help" 1>&2
+      exit 1
+    fi
+
+    # Strip any trailing slash from the destination.
+    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
+
+    # Check to see that the destination is a directory.
+    test -d "$dest" && isdir=yes
+    if test "$isdir" = yes; then
+      destdir="$dest"
+      destname=
+    else
+      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
+      test "X$destdir" = "X$dest" && destdir=.
+      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
+
+      # Not a directory, so check to see that there is only one file specified.
+      set dummy $files
+      if test "$#" -gt 2; then
+	$echo "$modename: \`$dest' is not a directory" 1>&2
+	$echo "$help" 1>&2
+	exit 1
+      fi
+    fi
+    case $destdir in
+    [\\/]* | [A-Za-z]:[\\/]*) ;;
+    *)
+      for file in $files; do
+	case $file in
+	*.lo) ;;
+	*)
+	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+	  $echo "$help" 1>&2
+	  exit 1
+	  ;;
+	esac
+      done
+      ;;
+    esac
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    staticlibs=
+    future_libdirs=
+    current_libdirs=
+    for file in $files; do
+
+      # Do each installation.
+      case $file in
+      *.$libext)
+	# Do the static libraries later.
+	staticlibs="$staticlibs $file"
+	;;
+
+      *.la)
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+	  $echo "$help" 1>&2
+	  exit 1
+	fi
+
+	library_names=
+	old_library=
+	relink_command=
+	# If there is no directory component, then add one.
+	case $file in
+	*/* | *\\*) . $file ;;
+	*) . ./$file ;;
+	esac
+
+	# Add the libdir to current_libdirs if it is the destination.
+	if test "X$destdir" = "X$libdir"; then
+	  case "$current_libdirs " in
+	  *" $libdir "*) ;;
+	  *) current_libdirs="$current_libdirs $libdir" ;;
+	  esac
+	else
+	  # Note the libdir as a future libdir.
+	  case "$future_libdirs " in
+	  *" $libdir "*) ;;
+	  *) future_libdirs="$future_libdirs $libdir" ;;
+	  esac
+	fi
+
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
+	test "X$dir" = "X$file/" && dir=
+	dir="$dir$objdir"
+
+	if test -n "$relink_command"; then
+	  # Determine the prefix the user has applied to our future dir.
+	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
+
+	  # Don't allow the user to place us outside of our expected
+	  # location b/c this prevents finding dependent libraries that
+	  # are installed to the same prefix.
+	  # At present, this check doesn't affect windows .dll's that
+	  # are installed into $libdir/../bin (currently, that works fine)
+	  # but it's something to keep an eye on.
+	  if test "$inst_prefix_dir" = "$destdir"; then
+	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
+	    exit 1
+	  fi
+
+	  if test -n "$inst_prefix_dir"; then
+	    # Stick the inst_prefix_dir data into the link command.
+	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+	  else
+	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+	  fi
+
+	  $echo "$modename: warning: relinking \`$file'" 1>&2
+	  $show "$relink_command"
+	  if $run eval "$relink_command"; then :
+	  else
+	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+	    exit 1
+	  fi
+	fi
+
+	# See the names of the shared library.
+	set dummy $library_names
+	if test -n "$2"; then
+	  realname="$2"
+	  shift
+	  shift
+
+	  srcname="$realname"
+	  test -n "$relink_command" && srcname="$realname"T
+
+	  # Install the shared library and build the symlinks.
+	  $show "$install_prog $dir/$srcname $destdir/$realname"
+	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
+	  if test -n "$stripme" && test -n "$striplib"; then
+	    $show "$striplib $destdir/$realname"
+	    $run eval "$striplib $destdir/$realname" || exit $?
+	  fi
+
+	  if test "$#" -gt 0; then
+	    # Delete the old symlinks, and create new ones.
+	    for linkname
+	    do
+	      if test "$linkname" != "$realname"; then
+		$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+		$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+	      fi
+	    done
+	  fi
+
+	  # Do each command in the postinstall commands.
+	  lib="$destdir/$realname"
+	  eval cmds=\"$postinstall_cmds\"
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $cmds; do
+	    IFS="$save_ifs"
+	    $show "$cmd"
+	    $run eval "$cmd" || exit $?
+	  done
+	  IFS="$save_ifs"
+	fi
+
+	# Install the pseudo-library for information purposes.
+	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	instname="$dir/$name"i
+	$show "$install_prog $instname $destdir/$name"
+	$run eval "$install_prog $instname $destdir/$name" || exit $?
+
+	# Maybe install the static library, too.
+	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+	;;
+
+      *.lo)
+	# Install (i.e. copy) a libtool object.
+
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	  destfile="$destdir/$destfile"
+	fi
+
+	# Deduce the name of the destination old-style object file.
+	case $destfile in
+	*.lo)
+	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
+	  ;;
+	*.$objext)
+	  staticdest="$destfile"
+	  destfile=
+	  ;;
+	*)
+	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+	  $echo "$help" 1>&2
+	  exit 1
+	  ;;
+	esac
+
+	# Install the libtool object if requested.
+	if test -n "$destfile"; then
+	  $show "$install_prog $file $destfile"
+	  $run eval "$install_prog $file $destfile" || exit $?
+	fi
+
+	# Install the old object if enabled.
+	if test "$build_old_libs" = yes; then
+	  # Deduce the name of the old-style object file.
+	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
+
+	  $show "$install_prog $staticobj $staticdest"
+	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+	fi
+	exit 0
+	;;
+
+      *)
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	  destfile="$destdir/$destfile"
+	fi
+
+	# If the file is missing, and there is a .exe on the end, strip it
+	# because it is most likely a libtool script we actually want to
+	# install
+	stripped_ext=""
+	case $file in
+	  *.exe)
+	    if test ! -f "$file"; then
+	      file=`$echo $file|${SED} 's,.exe$,,'`
+	      stripped_ext=".exe"
+	    fi
+	    ;;
+	esac
+
+	# Do a test to see if this is really a libtool program.
+	case $host in
+	*cygwin*|*mingw*)
+	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
+	    ;;
+	*)
+	    wrapper=$file
+	    ;;
+	esac
+	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
+	  notinst_deplibs=
+	  relink_command=
+
+	  # To insure that "foo" is sourced, and not "foo.exe",
+	  # finese the cygwin/MSYS system by explicitly sourcing "foo."
+	  # which disallows the automatic-append-.exe behavior.
+	  case $build in
+	  *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
+	  *) wrapperdot=${wrapper} ;;
+	  esac
+	  # If there is no directory component, then add one.
+	  case $file in
+	  */* | *\\*) . ${wrapperdot} ;;
+	  *) . ./${wrapperdot} ;;
+	  esac
+
+	  # Check the variables that should have been set.
+	  if test -z "$notinst_deplibs"; then
+	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
+	    exit 1
+	  fi
+
+	  finalize=yes
+	  for lib in $notinst_deplibs; do
+	    # Check to see that each library is installed.
+	    libdir=
+	    if test -f "$lib"; then
+	      # If there is no directory component, then add one.
+	      case $lib in
+	      */* | *\\*) . $lib ;;
+	      *) . ./$lib ;;
+	      esac
+	    fi
+	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+	    if test -n "$libdir" && test ! -f "$libfile"; then
+	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+	      finalize=no
+	    fi
+	  done
+
+	  relink_command=
+	  # To insure that "foo" is sourced, and not "foo.exe",
+	  # finese the cygwin/MSYS system by explicitly sourcing "foo."
+	  # which disallows the automatic-append-.exe behavior.
+	  case $build in
+	  *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
+	  *) wrapperdot=${wrapper} ;;
+	  esac
+	  # If there is no directory component, then add one.
+	  case $file in
+	  */* | *\\*) . ${wrapperdot} ;;
+	  *) . ./${wrapperdot} ;;
+	  esac
+
+	  outputname=
+	  if test "$fast_install" = no && test -n "$relink_command"; then
+	    if test "$finalize" = yes && test -z "$run"; then
+	      tmpdir="/tmp"
+	      test -n "$TMPDIR" && tmpdir="$TMPDIR"
+	      tmpdir="$tmpdir/libtool-$$"
+	      if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
+	      else
+		$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
+		continue
+	      fi
+	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
+	      outputname="$tmpdir/$file"
+	      # Replace the output file specification.
+	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+	      $show "$relink_command"
+	      if $run eval "$relink_command"; then :
+	      else
+		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+		${rm}r "$tmpdir"
+		continue
+	      fi
+	      file="$outputname"
+	    else
+	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
+	    fi
+	  else
+	    # Install the binary that we compiled earlier.
+	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+	  fi
+	fi
+
+	# remove .exe since cygwin /usr/bin/install will append another
+	# one anyways
+	case $install_prog,$host in
+	*/usr/bin/install*,*cygwin*)
+	  case $file:$destfile in
+	  *.exe:*.exe)
+	    # this is ok
+	    ;;
+	  *.exe:*)
+	    destfile=$destfile.exe
+	    ;;
+	  *:*.exe)
+	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
+	    ;;
+	  esac
+	  ;;
+	esac
+	$show "$install_prog$stripme $file $destfile"
+	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
+	test -n "$outputname" && ${rm}r "$tmpdir"
+	;;
+      esac
+    done
+
+    for file in $staticlibs; do
+      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+
+      # Set up the ranlib parameters.
+      oldlib="$destdir/$name"
+
+      $show "$install_prog $file $oldlib"
+      $run eval "$install_prog \$file \$oldlib" || exit $?
+
+      if test -n "$stripme" && test -n "$striplib"; then
+	$show "$old_striplib $oldlib"
+	$run eval "$old_striplib $oldlib" || exit $?
+      fi
+
+      # Do each command in the postinstall commands.
+      eval cmds=\"$old_postinstall_cmds\"
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+	IFS="$save_ifs"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+    done
+
+    if test -n "$future_libdirs"; then
+      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
+    fi
+
+    if test -n "$current_libdirs"; then
+      # Maybe just do a dry run.
+      test -n "$run" && current_libdirs=" -n$current_libdirs"
+      exec_cmd='$SHELL $0 --finish$current_libdirs'
+    else
+      exit 0
+    fi
+    ;;
+
+  # libtool finish mode
+  finish)
+    modename="$modename: finish"
+    libdirs="$nonopt"
+    admincmds=
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      for dir
+      do
+	libdirs="$libdirs $dir"
+      done
+
+      for libdir in $libdirs; do
+	if test -n "$finish_cmds"; then
+	  # Do each command in the finish commands.
+	  eval cmds=\"$finish_cmds\"
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $cmds; do
+	    IFS="$save_ifs"
+	    $show "$cmd"
+	    $run eval "$cmd" || admincmds="$admincmds
+       $cmd"
+	  done
+	  IFS="$save_ifs"
+	fi
+	if test -n "$finish_eval"; then
+	  # Do the single finish_eval.
+	  eval cmds=\"$finish_eval\"
+	  $run eval "$cmds" || admincmds="$admincmds
+       $cmds"
+	fi
+      done
+    fi
+
+    # Exit here if they wanted silent mode.
+    exit 0
+
+    $echo "----------------------------------------------------------------------"
+    $echo "Libraries have been installed in:"
+    for libdir in $libdirs; do
+      $echo "   $libdir"
+    done
+    $echo
+    $echo "If you ever happen to want to link against installed libraries"
+    $echo "in a given directory, LIBDIR, you must either use libtool, and"
+    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+    $echo "flag during linking and do at least one of the following:"
+    if test -n "$shlibpath_var"; then
+      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+      $echo "     during execution"
+    fi
+    if test -n "$runpath_var"; then
+      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+      $echo "     during linking"
+    fi
+    if test -n "$hardcode_libdir_flag_spec"; then
+      libdir=LIBDIR
+      eval flag=\"$hardcode_libdir_flag_spec\"
+
+      $echo "   - use the \`$flag' linker flag"
+    fi
+    if test -n "$admincmds"; then
+      $echo "   - have your system administrator run these commands:$admincmds"
+    fi
+    if test -f /etc/ld.so.conf; then
+      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+    fi
+    $echo
+    $echo "See any operating system documentation about shared libraries for"
+    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
+    $echo "----------------------------------------------------------------------"
+    exit 0
+    ;;
+
+  # libtool execute mode
+  execute)
+    modename="$modename: execute"
+
+    # The first argument is the command name.
+    cmd="$nonopt"
+    if test -z "$cmd"; then
+      $echo "$modename: you must specify a COMMAND" 1>&2
+      $echo "$help"
+      exit 1
+    fi
+
+    # Handle -dlopen flags immediately.
+    for file in $execute_dlfiles; do
+      if test ! -f "$file"; then
+	$echo "$modename: \`$file' is not a file" 1>&2
+	$echo "$help" 1>&2
+	exit 1
+      fi
+
+      dir=
+      case $file in
+      *.la)
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+	  $echo "$help" 1>&2
+	  exit 1
+	fi
+
+	# Read the libtool library.
+	dlname=
+	library_names=
+
+	# If there is no directory component, then add one.
+	case $file in
+	*/* | *\\*) . $file ;;
+	*) . ./$file ;;
+	esac
+
+	# Skip this library if it cannot be dlopened.
+	if test -z "$dlname"; then
+	  # Warn if it was a shared library.
+	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
+	  continue
+	fi
+
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$dir" = "X$file" && dir=.
+
+	if test -f "$dir/$objdir/$dlname"; then
+	  dir="$dir/$objdir"
+	else
+	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+	  exit 1
+	fi
+	;;
+
+      *.lo)
+	# Just add the directory containing the .lo file.
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$dir" = "X$file" && dir=.
+	;;
+
+      *)
+	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
+	continue
+	;;
+      esac
+
+      # Get the absolute pathname.
+      absdir=`cd "$dir" && pwd`
+      test -n "$absdir" && dir="$absdir"
+
+      # Now add the directory to shlibpath_var.
+      if eval "test -z \"\$$shlibpath_var\""; then
+	eval "$shlibpath_var=\"\$dir\""
+      else
+	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+      fi
+    done
+
+    # This variable tells wrapper scripts just to set shlibpath_var
+    # rather than running their programs.
+    libtool_execute_magic="$magic"
+
+    # Check if any of the arguments is a wrapper script.
+    args=
+    for file
+    do
+      case $file in
+      -*) ;;
+      *)
+	# Do a test to see if this is really a libtool program.
+	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  # If there is no directory component, then add one.
+	  case $file in
+	  */* | *\\*) . $file ;;
+	  *) . ./$file ;;
+	  esac
+
+	  # Transform arg to wrapped name.
+	  file="$progdir/$program"
+	fi
+	;;
+      esac
+      # Quote arguments (to preserve shell metacharacters).
+      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
+      args="$args \"$file\""
+    done
+
+    if test -z "$run"; then
+      if test -n "$shlibpath_var"; then
+	# Export the shlibpath_var.
+	eval "export $shlibpath_var"
+      fi
+
+      # Restore saved environment variables
+      if test "${save_LC_ALL+set}" = set; then
+	LC_ALL="$save_LC_ALL"; export LC_ALL
+      fi
+      if test "${save_LANG+set}" = set; then
+	LANG="$save_LANG"; export LANG
+      fi
+
+      # Now prepare to actually exec the command.
+      exec_cmd="\$cmd$args"
+    else
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
+	$echo "export $shlibpath_var"
+      fi
+      $echo "$cmd$args"
+      exit 0
+    fi
+    ;;
+
+  # libtool clean and uninstall mode
+  clean | uninstall)
+    modename="$modename: $mode"
+    rm="$nonopt"
+    files=
+    rmforce=
+    exit_status=0
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    for arg
+    do
+      case $arg in
+      -f) rm="$rm $arg"; rmforce=yes ;;
+      -*) rm="$rm $arg" ;;
+      *) files="$files $arg" ;;
+      esac
+    done
+
+    if test -z "$rm"; then
+      $echo "$modename: you must specify an RM program" 1>&2
+      $echo "$help" 1>&2
+      exit 1
+    fi
+
+    rmdirs=
+
+    origobjdir="$objdir"
+    for file in $files; do
+      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+      if test "X$dir" = "X$file"; then
+	dir=.
+	objdir="$origobjdir"
+      else
+	objdir="$dir/$origobjdir"
+      fi
+      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+      test "$mode" = uninstall && objdir="$dir"
+
+      # Remember objdir for removal later, being careful to avoid duplicates
+      if test "$mode" = clean; then
+	case " $rmdirs " in
+	  *" $objdir "*) ;;
+	  *) rmdirs="$rmdirs $objdir" ;;
+	esac
+      fi
+
+      # Don't error if the file doesn't exist and rm -f was used.
+      if (test -L "$file") >/dev/null 2>&1 \
+	|| (test -h "$file") >/dev/null 2>&1 \
+	|| test -f "$file"; then
+	:
+      elif test -d "$file"; then
+	exit_status=1
+	continue
+      elif test "$rmforce" = yes; then
+	continue
+      fi
+
+      rmfiles="$file"
+
+      case $name in
+      *.la)
+	# Possibly a libtool archive, so verify it.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  . $dir/$name
+
+	  # Delete the libtool libraries and symlinks.
+	  for n in $library_names; do
+	    rmfiles="$rmfiles $objdir/$n"
+	  done
+	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+	  test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+
+	  if test "$mode" = uninstall; then
+	    if test -n "$library_names"; then
+	      # Do each command in the postuninstall commands.
+	      eval cmds=\"$postuninstall_cmds\"
+	      save_ifs="$IFS"; IFS='~'
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		$show "$cmd"
+		$run eval "$cmd"
+		if test "$?" -ne 0 && test "$rmforce" != yes; then
+		  exit_status=1
+		fi
+	      done
+	      IFS="$save_ifs"
+	    fi
+
+	    if test -n "$old_library"; then
+	      # Do each command in the old_postuninstall commands.
+	      eval cmds=\"$old_postuninstall_cmds\"
+	      save_ifs="$IFS"; IFS='~'
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		$show "$cmd"
+		$run eval "$cmd"
+		if test "$?" -ne 0 && test "$rmforce" != yes; then
+		  exit_status=1
+		fi
+	      done
+	      IFS="$save_ifs"
+	    fi
+	    # FIXME: should reinstall the best remaining shared library.
+	  fi
+	fi
+	;;
+
+      *.lo)
+	# Possibly a libtool object, so verify it.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+
+	  # Read the .lo file
+	  . $dir/$name
+
+	  # Add PIC object to the list of files to remove.
+	  if test -n "$pic_object" \
+	     && test "$pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$pic_object"
+	  fi
+
+	  # Add non-PIC object to the list of files to remove.
+	  if test -n "$non_pic_object" \
+	     && test "$non_pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$non_pic_object"
+	  fi
+	fi
+	;;
+
+      *)
+	if test "$mode" = clean ; then
+	  noexename=$name
+	  case $file in
+	  *.exe) 
+	    file=`$echo $file|${SED} 's,.exe$,,'`
+	    noexename=`$echo $name|${SED} 's,.exe$,,'`
+	    # $file with .exe has already been added to rmfiles,
+	    # add $file without .exe
+	    rmfiles="$rmfiles $file"
+	    ;;
+	  esac
+	  # Do a test to see if this is a libtool program.
+	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	    relink_command=
+	    . $dir/$noexename
+
+	    # note $name still contains .exe if it was in $file originally
+	    # as does the version of $file that was added into $rmfiles
+	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+	    if test "$fast_install" = yes && test -n "$relink_command"; then
+	      rmfiles="$rmfiles $objdir/lt-$name"
+	    fi
+	    if test "X$noexename" != "X$name" ; then
+	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+	    fi
+	  fi
+	fi
+	;;
+      esac
+      $show "$rm $rmfiles"
+      $run $rm $rmfiles || exit_status=1
+    done
+    objdir="$origobjdir"
+
+    # Try to remove the ${objdir}s in the directories where we deleted files
+    for dir in $rmdirs; do
+      if test -d "$dir"; then
+	$show "rmdir $dir"
+	$run rmdir $dir >/dev/null 2>&1
+      fi
+    done
+
+    exit $exit_status
+    ;;
+
+  "")
+    $echo "$modename: you must specify a MODE" 1>&2
+    $echo "$generic_help" 1>&2
+    exit 1
+    ;;
+  esac
+
+  if test -z "$exec_cmd"; then
+    $echo "$modename: invalid operation mode \`$mode'" 1>&2
+    $echo "$generic_help" 1>&2
+    exit 1
+  fi
+fi # test -z "$show_help"
+
+if test -n "$exec_cmd"; then
+  eval exec $exec_cmd
+  exit 1
+fi
+
+# We need to display help for each of the modes.
+case $mode in
+"") $echo \
+"Usage: $modename [OPTION]... [MODE-ARG]...
+
+Provide generalized library-building support services.
+
+    --config          show all configuration variables
+    --debug           enable verbose shell tracing
+-n, --dry-run         display commands without modifying any files
+    --features        display basic configuration information and exit
+    --finish          same as \`--mode=finish'
+    --help            display this help message and exit
+    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
+    --quiet           same as \`--silent'
+    --silent          don't print informational messages
+    --tag=TAG         use configuration variables from tag TAG
+    --version         print version information
+
+MODE must be one of the following:
+
+      clean           remove files from the build directory
+      compile         compile a source file into a libtool object
+      execute         automatically set library path, then run a program
+      finish          complete the installation of libtool libraries
+      install         install libraries or executables
+      link            create a library or an executable
+      uninstall       remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
+a more detailed description of MODE.
+
+Report bugs to <bug-libtool@gnu.org>."
+  exit 0
+  ;;
+
+clean)
+  $echo \
+"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+  ;;
+
+compile)
+  $echo \
+"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -prefer-pic       try to building PIC objects only
+  -prefer-non-pic   try to building non-PIC objects only
+  -static           always build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+  ;;
+
+execute)
+  $echo \
+"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+  -dlopen FILE      add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+  ;;
+
+finish)
+  $echo \
+"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges.  Use
+the \`--dry-run' option if you just want to see what would be executed."
+  ;;
+
+install)
+  $echo \
+"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command.  The first component should be
+either the \`install' or \`cp' program.
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+  ;;
+
+link)
+  $echo \
+"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+		    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+		    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -static           do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+		    specify library version info [each variable defaults to 0]
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename.  Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+  ;;
+
+uninstall)
+  $echo \
+"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+  ;;
+
+*)
+  $echo "$modename: invalid operation mode \`$mode'" 1>&2
+  $echo "$help" 1>&2
+  exit 1
+  ;;
+esac
+
+$echo
+$echo "Try \`$modename --help' for more information about other modes."
+
+exit 0
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries.  Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them.  This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration.  But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
Index: /branches/start/Taper/admin/missing
===================================================================
--- /branches/start/Taper/admin/missing	(revision 4308)
+++ /branches/start/Taper/admin/missing	(revision 4308)
@@ -0,0 +1,336 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try \`$0 --help' for more information"
+  exit 1
+fi
+
+run=:
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+  configure_ac=configure.ac
+else
+  configure_ac=configure.in
+fi
+
+case "$1" in
+--run)
+  # Try to run requested program, and just exit if it succeeds.
+  run=
+  shift
+  "$@" && exit 0
+  ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case "$1" in
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+  --run           try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+  aclocal      touch file \`aclocal.m4'
+  autoconf     touch file \`configure'
+  autoheader   touch file \`config.h.in'
+  automake     touch all \`Makefile.in' files
+  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
+  flex         create \`lex.yy.c', if possible, from existing .c
+  help2man     touch the output file
+  lex          create \`lex.yy.c', if possible, from existing .c
+  makeinfo     touch the output file
+  tar          try tar, gnutar, gtar, then tar without non-portable flags
+  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing 0.4 - GNU automake"
+    ;;
+
+  -*)
+    echo 1>&2 "$0: Unknown \`$1' option"
+    echo 1>&2 "Try \`$0 --help' for more information"
+    exit 1
+    ;;
+
+  aclocal*)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
+         to install the \`Automake' and \`Perl' packages.  Grab them from
+         any GNU archive site."
+    touch aclocal.m4
+    ;;
+
+  autoconf)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`${configure_ac}'.  You might want to install the
+         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
+         archive site."
+    touch configure
+    ;;
+
+  autoheader)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
+         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
+         from any GNU archive site."
+    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+    test -z "$files" && files="config.h"
+    touch_files=
+    for f in $files; do
+      case "$f" in
+      *:*) touch_files="$touch_files "`echo "$f" |
+				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+      *) touch_files="$touch_files $f.in";;
+      esac
+    done
+    touch $touch_files
+    ;;
+
+  automake*)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+         You might want to install the \`Automake' and \`Perl' packages.
+         Grab them from any GNU archive site."
+    find . -type f -name Makefile.am -print |
+	   sed 's/\.am$/.in/' |
+	   while read f; do touch "$f"; done
+    ;;
+
+  autom4te)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is needed, and you do not seem to have it handy on your
+         system.  You might have modified some files without having the
+         proper tools for further handling them.
+         You can get \`$1Help2man' as part of \`Autoconf' from any GNU
+         archive site."
+
+    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
+    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
+    if test -f "$file"; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo "#! /bin/sh"
+	echo "# Created by GNU Automake missing as a replacement of"
+	echo "#  $ $@"
+	echo "exit 0"
+	chmod +x $file
+	exit 1
+    fi
+    ;;
+
+  bison|yacc)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.y' file.  You may need the \`Bison' package
+         in order for those modifications to take effect.  You can get
+         \`Bison' from any GNU archive site."
+    rm -f y.tab.c y.tab.h
+    if [ $# -ne 1 ]; then
+        eval LASTARG="\${$#}"
+	case "$LASTARG" in
+	*.y)
+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+	    if [ -f "$SRCFILE" ]; then
+	         cp "$SRCFILE" y.tab.c
+	    fi
+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+	    if [ -f "$SRCFILE" ]; then
+	         cp "$SRCFILE" y.tab.h
+	    fi
+	  ;;
+	esac
+    fi
+    if [ ! -f y.tab.h ]; then
+	echo >y.tab.h
+    fi
+    if [ ! -f y.tab.c ]; then
+	echo 'main() { return 0; }' >y.tab.c
+    fi
+    ;;
+
+  lex|flex)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.l' file.  You may need the \`Flex' package
+         in order for those modifications to take effect.  You can get
+         \`Flex' from any GNU archive site."
+    rm -f lex.yy.c
+    if [ $# -ne 1 ]; then
+        eval LASTARG="\${$#}"
+	case "$LASTARG" in
+	*.l)
+	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+	    if [ -f "$SRCFILE" ]; then
+	         cp "$SRCFILE" lex.yy.c
+	    fi
+	  ;;
+	esac
+    fi
+    if [ ! -f lex.yy.c ]; then
+	echo 'main() { return 0; }' >lex.yy.c
+    fi
+    ;;
+
+  help2man)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+	 you modified a dependency of a manual page.  You may need the
+	 \`Help2man' package in order for those modifications to take
+	 effect.  You can get \`Help2man' from any GNU archive site."
+
+    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    if test -z "$file"; then
+	file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
+    fi
+    if [ -f "$file" ]; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo ".ab help2man is required to generate this page"
+	exit 1
+    fi
+    ;;
+
+  makeinfo)
+    if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
+       # We have makeinfo, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.texi' or \`.texinfo' file, or any other file
+         indirectly affecting the aspect of the manual.  The spurious
+         call might also be the consequence of using a buggy \`make' (AIX,
+         DU, IRIX).  You might want to install the \`Texinfo' package or
+         the \`GNU make' package.  Grab either from any GNU archive site."
+    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    if test -z "$file"; then
+      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+    fi
+    touch $file
+    ;;
+
+  tar)
+    shift
+    if test -n "$run"; then
+      echo 1>&2 "ERROR: \`tar' requires --run"
+      exit 1
+    fi
+
+    # We have already tried tar in the generic part.
+    # Look for gnutar/gtar before invocation to avoid ugly error
+    # messages.
+    if (gnutar --version > /dev/null 2>&1); then
+       gnutar "$@" && exit 0
+    fi
+    if (gtar --version > /dev/null 2>&1); then
+       gtar "$@" && exit 0
+    fi
+    firstarg="$1"
+    if shift; then
+	case "$firstarg" in
+	*o*)
+	    firstarg=`echo "$firstarg" | sed s/o//`
+	    tar "$firstarg" "$@" && exit 0
+	    ;;
+	esac
+	case "$firstarg" in
+	*h*)
+	    firstarg=`echo "$firstarg" | sed s/h//`
+	    tar "$firstarg" "$@" && exit 0
+	    ;;
+	esac
+    fi
+
+    echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+         You may want to install GNU tar or Free paxutils, or check the
+         command line arguments."
+    exit 1
+    ;;
+
+  *)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, and you do not seem to have it handy on your
+         system.  You might have modified some files without having the
+         proper tools for further handling them.  Check the \`README' file,
+         it often tells you about the needed prerequirements for installing
+         this package.  You may also peek at any GNU archive site, in case
+         some other package would contain this missing \`$1' program."
+    exit 1
+    ;;
+esac
+
+exit 0
Index: /branches/start/Taper/admin/mkinstalldirs
===================================================================
--- /branches/start/Taper/admin/mkinstalldirs	(revision 4308)
+++ /branches/start/Taper/admin/mkinstalldirs	(revision 4308)
@@ -0,0 +1,111 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+errstatus=0
+dirmode=""
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
+
+# process command line arguments
+while test $# -gt 0 ; do
+  case $1 in
+    -h | --help | --h*)         # -h for help
+      echo "$usage" 1>&2
+      exit 0
+      ;;
+    -m)                         # -m PERM arg
+      shift
+      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+      dirmode=$1
+      shift
+      ;;
+    --)                         # stop option processing
+      shift
+      break
+      ;;
+    -*)                         # unknown option
+      echo "$usage" 1>&2
+      exit 1
+      ;;
+    *)                          # first non-opt arg
+      break
+      ;;
+  esac
+done
+
+for file
+do
+  if test -d "$file"; then
+    shift
+  else
+    break
+  fi
+done
+
+case $# in
+  0) exit 0 ;;
+esac
+
+case $dirmode in
+  '')
+    if mkdir -p -- . 2>/dev/null; then
+      echo "mkdir -p -- $*"
+      exec mkdir -p -- "$@"
+    fi
+    ;;
+  *)
+    if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
+      echo "mkdir -m $dirmode -p -- $*"
+      exec mkdir -m "$dirmode" -p -- "$@"
+    fi
+    ;;
+esac
+
+for file
+do
+  set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+  shift
+
+  pathcomp=
+  for d
+  do
+    pathcomp="$pathcomp$d"
+    case $pathcomp in
+      -*) pathcomp=./$pathcomp ;;
+    esac
+
+    if test ! -d "$pathcomp"; then
+      echo "mkdir $pathcomp"
+
+      mkdir "$pathcomp" || lasterr=$?
+
+      if test ! -d "$pathcomp"; then
+  	errstatus=$lasterr
+      else
+  	if test ! -z "$dirmode"; then
+	  echo "chmod $dirmode $pathcomp"
+    	  lasterr=""
+  	  chmod "$dirmode" "$pathcomp" || lasterr=$?
+
+  	  if test ! -z "$lasterr"; then
+  	    errstatus=$lasterr
+  	  fi
+  	fi
+      fi
+    fi
+
+    pathcomp="$pathcomp/"
+  done
+done
+
+exit $errstatus
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# End:
+# mkinstalldirs ends here
Index: /branches/start/Taper/admin/nmcheck
===================================================================
--- /branches/start/Taper/admin/nmcheck	(revision 4308)
+++ /branches/start/Taper/admin/nmcheck	(revision 4308)
@@ -0,0 +1,371 @@
+#!/usr/bin/perl -w
+
+# Check namespace cleanness of a library.
+# Allowed symbols are passed as arguments.
+# They may have trailing * = wildcard.
+# Wildcards may be also specified as *::* (e.g. K*::* for all KDE classes)
+# Symbols are listed as full function unmangled names without arguments,
+# e.g. 'foo bar* nspace::*' allows foo(), foo(int), bar(), barbar()
+# and all symbols in namespace/class nspace.
+# If an argument has comma in it, it's a filename of a file containing
+# allowed symbols, one per line.
+
+
+$thisProg   = "$0";     # This programs name
+
+$library = "";
+$allowed_symbols = "";
+$debug = 0;
+$allowed_weak = "";
+$weak_specified = 0;
+
+while( defined( $ARGV[ 0 ] ))
+{
+    $_ = shift;
+    if( /^--verbose$|^-v$/ )
+    {
+	$debug = 1;
+    }
+    elsif( /^--help$|^-h$/ )
+    {
+        print STDOUT "Usage $thisProg [OPTION] ... library [allowed symbols] ...\n",
+                "\n",
+		"Check if the given library has only allowed public symbols.\n",
+                "\n",
+		"  --allowweak=[symbol] allow only these weak symbols\n",
+                "  -v, --verbose        verbosely list files processed\n",
+                "  -h, --help           print this help, then exit\n";
+        exit 0;
+    }
+    elsif( /^--allowweak=(.*)$/ )
+    {
+	$allowed_weak .= " " . $1;
+	$weak_specified = 1;
+    }
+    elsif( /^--allowweak$/ ) # simply list all weak
+    {
+	$allowed_weak .= " ";
+	$weak_specified = 1;
+    }
+    elsif( /^--*/ )
+    {
+	die "Invalid argument!\n";
+    }
+    else
+    {
+	if( ! $library )
+	{
+	    $library = $_;
+	}
+	else
+	{
+	    $allowed_symbols .= " " . $_;
+	}
+    }
+}
+
+if( ! $weak_specified )
+{
+    $allowed_weak = "*"; 
+    # allow all weak symbols by default
+    # instances of templates and similar stuff - unfortunately includes also things from other libraries,
+    # so it cannot be on by default
+}
+
+print STDERR "library:" . $library . "\n" if $debug;
+print STDERR "allowed_symbols:" . $allowed_symbols . "\n" if $debug;
+print STDERR "allowed_weak:" . $allowed_weak . "\n" if $debug;
+
+$default_symbols = "_fini _init";  # system symbols
+# on my system, every .so has :
+# A _DYNAMIC
+# A _GLOBAL_OFFSET_TABLE_
+# A __bss_start
+# A _edata
+# A _end
+# T _fini
+# T _init
+# no need to list A symbols in $default_symbols
+
+print STDERR "default_symbols: " . $default_symbols . "\n" if $debug;
+
+print STDOUT "Namespace cleanness check for " . $library . " :\n";
+
+$lib_file = "";
+if( $library =~ /\.la$/ )
+{
+    # get the real library file from .la
+    open( FILEIN, $library ) || die "Couldn't open $! !\n";
+    while( $line = <FILEIN> )
+    {
+	if( $line =~ /library_names=\'([^ ]*).*/o )
+	{
+	    $lib_file = $1;
+	}
+    }
+    close( FILEIN );
+    if( ! $lib_file )
+    {
+	print STDERR "Library file not found in .la file!\n";
+	exit 1;
+    }
+    my $libpath = $library;
+    $libpath =~ s%[^/]*$%%;
+    if(  -e $libpath . ".libs/" . $lib_file )
+    {
+	$lib_file = $libpath . ".libs/" . $lib_file;
+    }
+    else
+    {
+	$lib_file = $libpath . $lib_file;
+    }
+}
+else
+{
+    $lib_file = $library;
+}
+
+print STDERR "libfile: ". $lib_file . "\n" if $debug;
+
+$allowed_symbols .= " " . $default_symbols;
+
+sub process_symbols($\@\%\@);
+
+@wildcards = ();
+%exacts = ();
+@regwildcards = ();
+process_symbols( $allowed_symbols, @wildcards, %exacts, @regwildcards );
+@weak_wildcards = ();
+%weak_exacts = ();
+@weak_regwildcards = ();
+process_symbols( $allowed_weak, @weak_wildcards, %weak_exacts, @weak_regwildcards );
+
+# grep is for stripping not exported symbols, which don't have address (=first column)
+$nm_command = "nm -BDCg " . $lib_file . " | grep -v '^ ' |";
+
+# TODO how portable is this nmcheck stuff?
+
+print STDERR "nm command:" . $nm_command . "\n" if $debug;
+
+open( FILEIN, $nm_command ) || die "nm command failed\n";
+
+my $exit_code = 0;
+
+while( $line = <FILEIN> )
+{
+    my $type;
+    my $symbol;
+    if( $line =~ /^[^ ]* (.) (.*)$/o )
+    {
+	$type = $1;
+	$symbol = $2;
+    }
+    else
+    {
+	die "Invalid line: " . $line . "\n";
+    }
+    
+    print STDERR "Type: " . $type . " , symbol: " . $symbol . "\n" if $debug;
+    if( $type eq "A" )
+    { # these should be system symbols, so ignore them
+	next;
+    }
+
+    my $orig_symbol = $symbol;
+
+    if( $symbol =~ /\(anonymous namespace\)/o )
+    { # TODO tell to prefer named namespaces? (shorter symbols)
+	next;
+    }
+
+    # strip prefixes
+    # the :: appending is to make "CLASS::*" work also for "vtable for CLASS"
+    $symbol =~ s/^typeinfo for (.*)$/$1::/o;
+    $symbol =~ s/^typeinfo fn for (.*)$/$1::/o;
+    $symbol =~ s/^typeinfo name for (.*)$/$1::/o;
+    $symbol =~ s/^vtable for (.*)$/$1::/o;
+    $symbol =~ s/^guard variable for (.*)$/$1::/o;
+    $symbol =~ s/^reference temporary for (.*)$/$1::/o;
+    $symbol =~ s/^VTT for (.*)$/$1::/o;
+    $symbol =~ s/^virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
+    $symbol =~ s/^non-virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
+    $symbol =~ s/^covariant return thunk \[[^\]]*\] to (.*)$/$1::/o;
+    $symbol =~ s/^construction vtable thunk for (.*)$/$1::/o;
+    $symbol =~ s/^construction vtable for .*-in-(.*) [0-9]*$/$1::/o;
+
+    # templates seem to have also return types mangled in their name, and nm prints it too
+    # they have also template arguments in the symbol
+    # get rid of both of those
+    while( $symbol =~ /<.*>/o )
+    {
+        $symbol =~ s/<[^<>]*>//o; # strip innermost <>
+    }
+    if( $symbol !~ /operator\(\)/o )
+    {
+	$symbol =~ s/ ?\(.*\).*$//o;  # strip () and all after it
+    }
+    else
+    {
+	$symbol =~ s/(^|:| )operator\(\) ?\(.*\).*$//o;  # strip () and all after it
+    }
+    $symbol =~ s/\[.*\] *$//o;   # strip [in-charge] etc.
+    if( $symbol =~ /(^|:| )operator /o )
+    {
+	$symbol =~ s/.* ([^\s]*)operator /$1/o; # strip everything before 'X::operator blah'
+    }
+    else
+    {
+	$symbol =~ s/.* ([^\s]+) *$/$1/o;  # get last word (strip return type)
+    }
+
+    # print STDERR "Processed symbol: " . $symbol . "\n" if $debug;
+    
+    my $found = 0;
+    if( $exacts{ $symbol } )
+    {
+	$found = 1;
+    }
+    if( ! $found )
+    {
+	for my $wild ( @wildcards )
+	{
+	    if( index( $symbol, $wild ) == 0 )
+	    {
+		$found = 1;
+		last;
+	    }
+	}
+    }
+    if( ! $found )
+    {
+	for my $wild ( @regwildcards )
+	{
+	    if( $symbol =~ /^$wild$/ )
+	    {
+		$found = 1;
+		last;
+	    }
+	}
+    }
+    if( ( ! $found ) && ( $type eq "W" || $type eq "V" ))
+    {
+	if( $weak_exacts{ $symbol } )
+	{
+	    $found = 1;
+	}
+	if( ! $found )
+	{
+	    for my $wild ( @weak_wildcards )
+	    {
+	        if( index( $symbol, $wild ) == 0 )
+	        {
+	    	    $found = 1;
+		    last;
+		}
+	    }
+	}
+	if( ! $found )
+	{
+	    for my $wild ( @weak_regwildcards )
+	    {
+	        if( $symbol =~ /^$wild$/ )
+	        {
+		    $found = 1;
+		    last;
+	        }
+	    }
+	}
+    }
+
+    if( ! $found )
+    {
+	print STDERR "Public symbol " . $orig_symbol . " is not allowed!\n";
+	$exit_code = 1;
+    }
+}
+
+close( FILEIN );
+
+print STDOUT $exit_code == 0 ? "OK\n" : "FAILED\n";
+
+exit $exit_code;
+
+sub process_symbols($\@\%\@)
+{
+    my $allowed_symbols = $_[ 0 ];
+    my $wildcards_ref = $_[ 1 ];
+    my $exacts_ref = $_[ 2 ];
+    my $regwildcards_ref = $_[ 3 ];
+    
+    $allowed_symbols =~ s/^ *//o;  # strip whitespace
+    $allowed_symbols =~ s/ *$//o;
+
+    if( $allowed_symbols eq "NONE" )
+    {
+	$allowed_symbols = "";
+    }
+
+    my @symbols1 = split( ' ', $allowed_symbols );
+    my $i = 0;
+    my @symbols2 = ();
+    while( defined( $symbols1[ $i ] ))
+    {
+	my $symbol = $symbols1[ $i ];
+	if( $symbol =~ /\./ )  # dot in name -> file
+	{
+	    open( SYMIN, $symbol ) || die ( "Cannot open file " . $symbol . "!" );
+	    while( $line = <SYMIN> )
+	    {
+		$line =~ s/^\s*//o;  # strip whitespace
+		$line =~ s/\s*$//o;
+		if( $line !~ /^$/o  # empty line
+		    &&  $line !~ /^\s*#/ ) # comment line starting with #
+		{
+		    $symbols2[ $#symbols2 + 1 ] = $line;
+		}
+	    }
+	    close( SYMIN );
+	}
+	else
+	{
+	    $symbols2[ $#symbols2 + 1 ] = $symbol;
+	}
+	$i++;
+    }
+    $i = 0;
+    while( defined( $symbols2[ $i ] ))
+    {
+	my $symbol = $symbols2[ $i ];
+	if( $symbol =~ /__/
+	    || $symbol =~ /^_[A-Z]/ )
+	{ # ISO C++ 2.10.2
+	    die "Symbols containing a double underscore or beginning with an underscore and an upper-case letter are reserved!\n";
+	}
+	elsif( $symbol eq "main"
+	    || $symbol eq "main*" )
+	{
+	    die "Symbol main is not allowed!\n";
+	}
+	if( $symbol =~ /^([^\*]*)\*$/o   # trailing * without any * before it
+	    && $symbol !~ /operator\*$/o )
+        {
+	    print STDERR "wildcard:" . $symbol . "\n" if $debug;
+    	    $wildcards_ref->[ $#{$wildcards_ref} + 1 ] = $1;
+	}
+	elsif( $symbol =~ /\*$/o
+	    && ( $symbol =~ /\*::/o || $symbol =~ /::\*/o )
+	    && $symbol !~ /^\*/o
+	    && $symbol !~ /operator\*$/o )
+	{
+	    print STDERR "regwildcard:" . $symbol . "\n" if $debug;
+	    $symbol =~ s/\*/\.\*/go;  # change * to .* (regexp)
+	    $regwildcards_ref->[ $#{$regwildcards_ref} + 1 ] = $symbol;
+	}
+	else
+	{
+	    print STDERR "exact:" . $symbol . "\n" if $debug;
+	    $exacts_ref->{ $symbol } = 1;
+	}
+	$i++;
+    }
+}
Index: /branches/start/Taper/admin/ylwrap
===================================================================
--- /branches/start/Taper/admin/ylwrap	(revision 4308)
+++ /branches/start/Taper/admin/ylwrap	(revision 4308)
@@ -0,0 +1,143 @@
+#! /bin/sh
+# ylwrap - wrapper for lex/yacc invocations.
+# Copyright 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Usage:
+#     ylwrap INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
+# * INPUT is the input file
+# * OUTPUT is file PROG generates
+# * DESIRED is file we actually want
+# * PROGRAM is program to run
+# * ARGS are passed to PROG
+# Any number of OUTPUT,DESIRED pairs may be used.
+
+# The input.
+input="$1"
+shift
+case "$input" in
+ [\\/]* | ?:[\\/]*)
+    # Absolute path; do nothing.
+    ;;
+ *)
+    # Relative path.  Make it absolute.
+    input="`pwd`/$input"
+    ;;
+esac
+
+# The directory holding the input.
+input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
+# Quote $INPUT_DIR so we can use it in a regexp.
+# FIXME: really we should care about more than `.' and `\'.
+input_rx=`echo "$input_dir" | sed -e 's,\\\\,\\\\\\\\,g' -e 's,\\.,\\\\.,g'`
+
+echo "got $input_rx"
+
+pairlist=
+while test "$#" -ne 0; do
+   if test "$1" = "--"; then
+      shift
+      break
+   fi
+   pairlist="$pairlist $1"
+   shift
+done
+
+# The program to run.
+prog="$1"
+shift
+# Make any relative path in $prog absolute.
+case "$prog" in
+ [\\/]* | ?:[\\/]*) ;;
+ *[\\/]*) prog="`pwd`/$prog" ;;
+esac
+
+# FIXME: add hostname here for parallel makes that run commands on
+# other machines.  But that might take us over the 14-char limit.
+dirname=ylwrap$$
+trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
+mkdir $dirname || exit 1
+
+cd $dirname
+
+$prog ${1+"$@"} "$input"
+status=$?
+
+if test $status -eq 0; then
+   set X $pairlist
+   shift
+   first=yes
+   # Since DOS filename conventions don't allow two dots,
+   # the DOS version of Bison writes out y_tab.c instead of y.tab.c
+   # and y_tab.h instead of y.tab.h. Test to see if this is the case.
+   y_tab_nodot="no"
+   if test -f y_tab.c || test -f y_tab.h; then
+      y_tab_nodot="yes"
+   fi
+
+   while test "$#" -ne 0; do
+      from="$1"
+      # Handle y_tab.c and y_tab.h output by DOS
+      if test $y_tab_nodot = "yes"; then
+	 if test $from = "y.tab.c"; then
+	    from="y_tab.c"
+	 else
+	    if test $from = "y.tab.h"; then
+	       from="y_tab.h"
+	    fi
+	 fi
+      fi
+      if test -f "$from"; then
+         # If $2 is an absolute path name, then just use that,
+         # otherwise prepend `../'.
+         case "$2" in
+	   [\\/]* | ?:[\\/]*) target="$2";;
+	   *) target="../$2";;
+	 esac
+
+	 # Edit out `#line' or `#' directives.  We don't want the
+	 # resulting debug information to point at an absolute srcdir;
+	 # it is better for it to just mention the .y file with no
+	 # path.
+	 sed -e "/^#/ s,$input_rx,," "$from" > "$target" || status=$?
+      else
+	 # A missing file is only an error for the first file.  This
+	 # is a blatant hack to let us support using "yacc -d".  If -d
+	 # is not specified, we don't want an error when the header
+	 # file is "missing".
+	 if test $first = yes; then
+	    status=1
+	 fi
+      fi
+      shift
+      shift
+      first=no
+   done
+else
+   status=$?
+fi
+
+# Remove the directory.
+cd ..
+rm -rf $dirname
+
+exit $status
Index: /branches/start/Taper/configure.in.in
===================================================================
--- /branches/start/Taper/configure.in.in	(revision 4308)
+++ /branches/start/Taper/configure.in.in	(revision 4308)
@@ -0,0 +1,6 @@
+#MIN_CONFIG(3.0.0)
+
+AM_INIT_AUTOMAKE(taper, 0.1)
+AC_C_BIGENDIAN
+AC_CHECK_KDEMAXPATHLEN
+
Index: /branches/start/Taper/doc/Makefile.am
===================================================================
--- /branches/start/Taper/doc/Makefile.am	(revision 4308)
+++ /branches/start/Taper/doc/Makefile.am	(revision 4308)
@@ -0,0 +1,6 @@
+# the SUBDIRS is filled automatically by am_edit. If files are 
+# in this directory they are installed into the english dir
+
+KDE_LANG = en
+KDE_DOCS = taper
+SUBDIRS = $(AUTODIRS)  
Index: /branches/start/Taper/doc/en/Makefile.am
===================================================================
--- /branches/start/Taper/doc/en/Makefile.am	(revision 4308)
+++ /branches/start/Taper/doc/en/Makefile.am	(revision 4308)
@@ -0,0 +1,2 @@
+KDE_DOCS = taper
+KDE_LANG = en
Index: /branches/start/Taper/doc/en/index.docbook
===================================================================
--- /branches/start/Taper/doc/en/index.docbook	(revision 4308)
+++ /branches/start/Taper/doc/en/index.docbook	(revision 4308)
@@ -0,0 +1,555 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+  <!ENTITY taper "<application>Taper 0&#46;1</application>">
+  <!ENTITY kappname "&taper;"><!-- Do *not* replace kappname-->
+  <!ENTITY package "kde-module"><!-- kdebase, kdeadmin, etc -->
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % English "INCLUDE"><!-- change language only here -->
+  
+  
+  <!-- Do not define any other entities; instead, use the entities
+       from kde-genent.entities and $LANG/user.entities. -->
+]>
+<!-- kdoctemplate v0.8 October 1 1999 
+     Minor update to "Credits and Licenses" section on August 24, 2000
+     Removed "Revision history" section on 22 January 2001
+     Changed to Installation/Help menu entities 18 October 2001
+     Other minor cleanup and changes 18 October 2001 -->
+
+
+<!--
+This template was designed by: David Rugge davidrugge@mindspring.com
+with lots of help from: Eric Bischoff ebisch@cybercable.tm.fr
+and Frederik Fouvry fouvry@sfs.nphil.uni-tuebingen.de
+of the KDE DocBook team.
+
+You may freely use this template for writing any sort of KDE documentation.
+If you have any changes or improvements, please let us know.
+
+Remember:
+- in XML, the case of the <tags> and attributes is relevant ;
+- also, quote all attributes.
+
+Please don't forget to remove all these comments in your final documentation,
+thanks ;-).
+-->
+
+<!-- ................................................................ -->
+
+<!-- The language must NOT be changed here. -->
+
+<book lang="&language;">
+
+<!-- This header contains all of the meta-information for the document such
+as Authors, publish date, the abstract, and Keywords -->
+
+<bookinfo>
+<title>The &taper; Handbook</title>
+
+<authorgroup>
+<author>
+<firstname></firstname>
+<othername></othername>
+<surname>Martin Merck</surname>
+<affiliation>
+<address><email>merck&#64;astro&#46;uni&#45;wuerzburg&#46;de</email></address>
+</affiliation>
+</author>
+</authorgroup>
+
+<!-- TRANS:ROLES_OF_TRANSLATORS -->
+
+<copyright>
+<year>1999</year>
+<year>2004</year>
+<holder>Martin Merck</holder>
+</copyright>
+<!-- Translators: put here the copyright notice of the translation -->
+<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
+     and in the FDL itself on how to use it. -->
+<legalnotice>&FDLNotice;</legalnotice>
+
+<!-- Date and version information of the documentation
+Don't forget to include this last date and this last revision number, we
+need them for translation coordination !
+Please respect the format of the date (YYYY-MM-DD) and of the version
+(V.MM.LL), it could be used by automation scripts.
+Do NOT change these in the translation. -->
+
+<date>2001-10-18</date>
+<releaseinfo>0&#46;1</releaseinfo>
+
+<!-- Abstract about this handbook -->
+
+<abstract>
+<para>
+&taper; is an application specially designed to do nothing you would
+ever want.
+</para>
+</abstract>
+
+<!-- This is a set of Keywords for indexing by search engines.
+Please at least include KDE, the KDE package it is in, the name
+ of your application, and a few relevant keywords. -->
+
+<keywordset>
+<keyword>KDE</keyword>
+<keyword>Taper</keyword>
+<keyword>nothing</keyword>
+<keyword>nothing else</keyword>
+</keywordset>
+
+</bookinfo>
+
+<!-- The contents of the documentation begin here.  Label
+each chapter so with the id attribute. This is necessary for two reasons: it
+allows you to easily reference the chapter from other chapters of your
+document, and if there is no ID, the name of the generated HTML files will vary
+from time to time making it hard to manage for maintainers and for the CVS
+system. Any chapter labelled (OPTIONAL) may be left out at the author's
+discretion. Other chapters should not be left out in order to maintain a
+consistent documentation style across all KDE apps. -->
+
+<chapter id="introduction">
+<title>Introduction</title>
+
+<!-- The introduction chapter contains a brief introduction for the
+application that explains what it does and where to report
+problems. Basically a long version of the abstract.  Don't include a
+revision history. (see installation appendix comment) -->
+
+<para>
+&taper; is a program that lets you do absolutely nothing. Please report
+any problems or feature requests to the &kde; mailing lists.
+</para>
+</chapter>
+
+<chapter id="using-taper">
+<title>Using &taper;</title>
+
+<!-- This chapter should tell the user how to use your app. You should use as
+many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document
+your application. -->
+
+<para>
+
+<!-- Note that all graphics should be in .png format. Use no gifs because of
+patent issues. -->
+
+<screenshot>
+<screeninfo>Here's a screenshot of &taper;</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="screenshot.png" format="PNG"/>
+	  </imageobject>
+	  <imageobject>
+	    <imagedata fileref="screenshot.eps" format="EPS"/>
+	  </imageobject>
+	  <textobject>
+	    <phrase>Screenshot</phrase>
+	  </textobject>
+	</mediaobject>
+</screenshot>
+</para>
+
+
+<sect1 id="taper-features">
+<title>More &taper; features</title>
+
+<para>It slices! It dices! and it comes with a free toaster!</para>
+<para>
+The Squiggle Tool <guiicon><inlinemediaobject>
+	  <imageobject>
+	    <imagedata fileref="squiggle.png" format="PNG"/>
+	  </imageobject>
+	  <imageobject>
+	    <imagedata fileref="squiggle.eps" format="EPS"/>
+	  </imageobject>
+	  <textobject>
+	    <phrase>Squiggle</phrase>
+	  </textobject>
+</inlinemediaobject></guiicon> is used to draw squiggly lines all over
+the &taper; main window. It's not a bug, it's a feature!
+</para>
+
+</sect1>
+</chapter>
+
+<chapter id="commands">
+<title>Command Reference</title>
+
+<!-- (OPTIONAL, BUT RECOMMENDED) This chapter should list all of the
+application windows and their menubar and toolbar commands for easy reference.
+Also include any keys that have a special function but have no equivalent in the
+menus or toolbars. This may not be necessary for small apps or apps with no tool
+or menu bars. -->
+
+<sect1 id="taper-mainwindow">
+<title>The main &taper; window</title>
+
+<sect2>
+<title>The File Menu</title>
+<para>
+<variablelist>
+<varlistentry>
+<term><menuchoice>
+<shortcut>
+<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
+</shortcut>
+<guimenu>File</guimenu>
+<guimenuitem>New</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Creates a new document</action></para></listitem>
+</varlistentry>
+<varlistentry>
+<term><menuchoice>
+<shortcut>
+<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo>
+</shortcut>
+<guimenu>File</guimenu>
+<guimenuitem>Save</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Saves the document</action></para></listitem>
+</varlistentry>
+<varlistentry>
+<term><menuchoice>
+<shortcut>
+<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
+</shortcut>
+<guimenu>File</guimenu>
+<guimenuitem>Quit</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Quits</action> &taper;</para></listitem>
+</varlistentry>
+</variablelist>
+</para>
+
+</sect2>
+
+<sect2>
+<title>The <guimenu>Help</guimenu> Menu</title>
+
+<!-- Assuming you have a standard help menu (help, what's this, about -->
+<!-- &taper;, about KDE) then the documentation is already written. -->
+<!-- The following entity is valid anywhere that a variablelist is -->
+<!-- valid.  -->
+
+&help.menu.documentation;
+
+</sect2>
+
+</sect1>
+</chapter>
+
+<chapter id="developers">
+<title>Developer's Guide to &taper;</title>
+
+<!-- (OPTIONAL) A Programming/Scripting reference chapter should be
+used for apps that use plugins or that provide their own scripting hooks
+and/or development libraries. -->
+
+<para>
+Programming &taper; plugins is a joy to behold. Just read through the next
+66 pages of API's to learn how!
+</para>
+
+<!-- Use refentries to describe APIs.  Refentries are fairly complicated and you
+should consult the docbook reference for further details. The example below was
+taken from that reference and shortened a bit for readability. -->
+
+<refentry id="re-1007-unmanagechildren-1">
+<refmeta>
+<refentrytitle>XtUnmanageChildren</refentrytitle>
+<refmiscinfo>Xt - Geometry Management</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>XtUnmanageChildren
+</refname>
+<refpurpose>remove a list of children from a parent widget's managed
+list.
+<indexterm id="ix-1007-unmanagechildren-1"><primary>widgets</primary><secondary>removing</secondary></indexterm>
+<indexterm id="ix-1007-unmanagechildren-2"><primary>XtUnmanageChildren</primary></indexterm> 
+</refpurpose>
+
+</refnamediv>
+<refsynopsisdiv>
+<refsynopsisdivinfo>
+<date>4 March 1996</date>
+</refsynopsisdivinfo>
+<synopsis>
+void XtUnmanageChildren(<replaceable class="parameter">children</replaceable>, <replaceable class="parameter">num_children</replaceable>)
+    WidgetList <replaceable class="parameter">children</replaceable>;
+    Cardinal <replaceable class="parameter">num_children</replaceable>;
+</synopsis>
+
+<refsect2 id="r2-1007-unmanagechildren-1">
+<title>Inputs</title>
+<variablelist>
+<varlistentry>
+<term><replaceable class="parameter">children</replaceable>
+</term>
+<listitem>
+<para>Specifies an array of child widgets. Each child must be of
+class RectObj or any subclass thereof.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><replaceable class="parameter">num_children</replaceable>
+</term>
+<listitem>
+<para>Specifies the number of elements in <replaceable class="parameter">children</replaceable>.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refsect2></refsynopsisdiv>
+
+<refsect1 id="r1-1007-unmanagechildren-1">
+<title>Description
+</title>
+<para><function>XtUnmanageChildren()</function> unmaps the specified widgets
+and removes them from their parent's geometry management.
+The widgets will disappear from the screen, and (depending
+on its parent) may no longer have screen space allocated for
+them.
+</para>
+<para>Each of the widgets in the <replaceable class="parameter">children</replaceable> array must have
+the same parent.
+</para>
+<para>See the &ldquo;Algorithm&rdquo; section below for full details of the
+widget unmanagement procedure.
+</para>
+</refsect1>
+
+<refsect1 id="r1-1007-unmanagechildren-2">
+<title>Usage</title>
+<para>Unmanaging widgets is the usual method for temporarily
+making them invisible.  They can be re-managed with
+<function>XtManageChildren()</function>.
+</para>
+<para>You can unmap a widget, but leave it under geometry
+management by calling <function>XtUnmapWidget()</function>.  You can
+destroy a widget's window without destroying the widget by
+calling <function>XtUnrealizeWidget()</function>.  You can destroy a
+widget completely with <function>XtDestroyWidget()</function>.
+</para>
+<para>If you are only going to unmanage a single widget, it is
+more convenient to call <function>XtUnmanageChild()</function>.  It is
+often more convenient to call <function>XtUnmanageChild()</function>
+several times than it is to declare and initialize an array
+of widgets to pass to <function>XtUnmanageChildren()</function>.  Calling
+<function>XtUnmanageChildren()</function> is more efficient, however,
+because it only calls the parent's <function>change_managed()</function>
+method once.
+</para>
+</refsect1>
+
+<refsect1 id="r1-1007-unmanagechildren-3">
+<title>Algorithm
+</title>
+<para><function>XtUnmanageChildren()</function> performs the following:
+</para>
+<variablelist>
+<varlistentry>
+<term>-
+</term>
+<listitem>
+<para>Ignores the child if it already is unmanaged or is being
+destroyed.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>-
+</term>
+<listitem>
+<para>Otherwise, if the child is realized, it makes it nonvisible
+by unmapping it.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>
+</para>
+</refsect1>
+
+<refsect1 id="r1-1007-unmanagechildren-4">
+<title>Structures</title>
+<para>The <type>WidgetList</type> type is simply an array of widgets:
+</para>
+<screen id="sc-1007-unmanagechildren-1">typedef Widget *WidgetList;
+</screen>
+</refsect1>
+</refentry>
+
+</chapter>
+
+<chapter id="faq">
+<title>Questions and Answers</title>
+
+<!-- (OPTIONAL but recommended) This chapter should include all of the silly
+(and not-so-silly) newbie questions that fill up your mailbox. This chapter
+should be reserved for BRIEF questions and answers! If one question uses more
+than a page or so then it should probably be part of the
+"Using this Application" chapter instead. You should use links to
+cross-reference questions to the parts of your documentation that answer them.
+This is also a great place to provide pointers to other FAQ's if your users
+must do some complicated configuration on other programs in order for your
+application work. -->
+
+&reporting.bugs;
+&updating.documentation;
+
+<qandaset id="faqlist">
+<qandaentry>
+<question>
+<para>My Mouse doesn't work. How do I quit &taper;?</para>
+</question>
+<answer>
+<para>You silly goose! Check out the <link linkend="commands">Commands
+Section</link> for the answer.</para>
+</answer>
+</qandaentry>
+<qandaentry>
+<question>
+<para>Why can't I twiddle my documents?</para>
+</question>
+<answer>
+<para>You can only twiddle your documents if you have the foobar.lib
+installed.</para>
+</answer>
+</qandaentry>
+</qandaset>
+</chapter>
+
+<chapter id="credits">
+
+<!-- Include credits for the programmers, documentation writers, and
+contributors here. The license for your software should then be included below
+the credits with a reference to the appropriate license file included in the KDE
+distribution. -->
+
+<title>Credits and License</title>
+
+<para>
+&taper;
+</para>
+<para>
+Program copyright 2004 Martin Merck <email>merck&#64;astro&#46;uni&#45;wuerzburg&#46;de</email>
+</para>
+<para>
+Contributors:
+<itemizedlist>
+<listitem><para>Konqui the KDE Dragon <email>konqui@kde.org</email></para>
+</listitem>
+<listitem><para>Tux the Linux Penguin <email>tux@linux.org</email></para>
+</listitem>
+</itemizedlist>
+</para>
+
+<para>
+Documentation copyright 2004 Martin Merck <email>merck&#64;astro&#46;uni&#45;wuerzburg&#46;de</email>
+</para>
+
+<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
+
+&underFDL;               <!-- FDL: do not remove -->
+
+<!-- Determine which license your application is licensed under, 
+     and delete all the remaining licenses below:
+
+     (NOTE:  All documentation are licensed under the FDL, 
+     regardless of what license the application uses) -->
+
+&underGPL;        	 <!-- GPL License -->
+&underBSDLicense;        <!-- BSD License -->
+&underArtisticLicense;   <!-- BSD Artistic License -->
+&underX11License;        <!-- X11 License  -->
+
+</chapter>
+
+<appendix id="installation">
+<title>Installation</title>
+
+<sect1 id="getting-taper">
+<title>How to obtain &taper;</title>
+
+<!-- This first entity contains boiler plate for applications that are
+part of KDE CVS.  You should remove it if you are releasing your
+application --> 
+
+&install.intro.documentation;
+
+</sect1>
+
+<sect1 id="requirements">
+<title>Requirements</title>
+
+<!--
+List any special requirements for your application here. This should include:
+.Libraries or other software that is not included in kdesupport,
+kdelibs, or kdebase.
+.Hardware requirements like amount of RAM, disk space, graphics card
+capabilities, screen resolution, special expansion cards, etc.
+.Operating systems the app will run on. If your app is designed only for a
+specific OS, (you wrote a graphical LILO configurator for example) put this
+information here.
+-->
+
+<para>
+In order to successfully use &taper;, you need &kde; 1.1. Foobar.lib is
+required in order to support the advanced &taper; features. &taper; uses
+about 5 megs of memory to run, but this may vary depending on your
+platform and configuration.
+</para>
+
+<para>
+All required libraries as well as &taper; itself can be found
+on <ulink url="ftp://ftp.taper.org">The &taper; home page</ulink>.
+</para>
+
+<!-- For a list of updates, you may refer to the application web site
+or the ChangeLog file, or ... -->
+<para>
+You can find a list of changes at <ulink
+url="http://apps.kde.org/taper">http://apps.kde.org/taper</ulink>.
+</para>
+</sect1>
+
+<sect1 id="compilation">
+<title>Compilation and Installation</title>
+
+<!-- This entity contains the boilerplate text for standard -->
+<!-- compilation instructions.  If your application requires any -->
+<!-- special handling, remove it, and replace with your own text. -->
+
+&install.compile.documentation;
+
+</sect1>
+
+<sect1 id="configuration">
+<title>Configuration</title>
+
+<para>Don't forget to tell your system to start the <filename>dtd</filename>
+dicer-toaster daemon first, or &taper; won't work !</para>
+
+</sect1>
+
+</appendix>
+
+&documentation.index;
+</book>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+
+vim:tabstop=2:shiftwidth=2:expandtab 
+-->
+
Index: /branches/start/Taper/po/Makefile.am
===================================================================
--- /branches/start/Taper/po/Makefile.am	(revision 4308)
+++ /branches/start/Taper/po/Makefile.am	(revision 4308)
@@ -0,0 +1,1 @@
+POFILES = AUTO
Index: /branches/start/Taper/src/Makefile.am
===================================================================
--- /branches/start/Taper/src/Makefile.am	(revision 4308)
+++ /branches/start/Taper/src/Makefile.am	(revision 4308)
@@ -0,0 +1,42 @@
+## Makefile.am for taper
+
+# this is the program that gets installed.  it's name is used for all
+# of the other Makefile.am variables
+bin_PROGRAMS = taper taper_client
+
+# set the include path for X, qt and KDE
+INCLUDES         = $(all_includes)
+
+# the library search path. 
+taper_LDFLAGS = $(KDE_RPATH) $(all_libraries)
+
+# the libraries to link against.
+taper_LDADD   = $(LIB_KFILE) $(LIB_KDEPRINT)
+
+# which sources should be compiled for taper
+taper_SOURCES = main.cpp taper.cpp taperview.cpp \
+		      pref.cpp taperiface.skel
+
+# these are the headers for your project
+noinst_HEADERS = taper.h taperview.h pref.h
+
+# client stuff
+taper_client_LDFLAGS = $(KDE_RPATH) $(all_libraries)
+taper_client_LDADD   = $(LIB_KDECORE)
+taper_client_SOURCES = taper_client.cpp
+
+# let automoc handle all of the meta source files (moc)
+METASOURCES = AUTO
+
+messages: rc.cpp
+	$(XGETTEXT) *.cpp -o $(podir)/taper.pot
+
+KDE_ICON = taper
+
+# this is where the kdelnk file will go 
+kdelnkdir   = $(kde_appsdir)/Utilities
+kdelnk_DATA = taper.desktop
+
+# this is where the XML-GUI resource file goes
+rcdir = $(kde_datadir)/taper
+rc_DATA = taperui.rc
Index: /branches/start/Taper/src/README
===================================================================
--- /branches/start/Taper/src/README	(revision 4308)
+++ /branches/start/Taper/src/README	(revision 4308)
@@ -0,0 +1,48 @@
+-----------------------------------------------
+Kde application framework template quickstart
+Author: Thomas Nagy
+Date: 2003-06-20
+-----------------------------------------------
+
+This README file explains you how to use this application template.
+
+
+* To distribute your program, try "make dist".
+This will make a compact tarball archive of your release with the
+necessary scripts inside.
+
+* To clean everything try make distclean
+
+* To build the configure script try make -f Makefile.cvs
+
+* For the translations :
+1. Download a patched gettext which can be found at:
+ http://public.kde.planetmirror.com/pub/kde/devel/gettext-kde/
+2. Install that gettext in ~/bin/
+3. cd ~/yourproject, export PATH=~/bin:$PATH, export
+KDEDIR=/where_your_KDE3_is
+4. make -f admin/Makefile.common package-messages
+5. make package-messages
+6. Translate the po files (not the pot!!) with kbabel or xemacs
+
+
+* Build the menus of your application easily
+kde applications now use an xml file (*ui.rc file) to build the menus.
+This allow a great customization of the application. However, when
+programming the menu is shown only after a "make install"
+
+For more details, consult :
+http://devel-home.kde.org/~larrosa/tutorial/p9.html
+http://developer.kde.org/documentation/tutorials/xmlui/preface.html
+
+
+* Modifying the auto-tools scripts
+for automake scripts there is an excellent tutorial there :
+http://developer.kde.org/documentation/other/makefile_am_howto.html
+
+* Simplify your life : install the project in your home directory for
+testing purposes.
+./configure --prefix=/home/user/dummyfolder/
+In the end when you finished the development you can
+rm -rf /home/user/dummyfolder/
+without fear.
Index: /branches/start/Taper/src/main.cpp
===================================================================
--- /branches/start/Taper/src/main.cpp	(revision 4308)
+++ /branches/start/Taper/src/main.cpp	(revision 4308)
@@ -0,0 +1,66 @@
+/***************************************************************************
+ *   Copyright (C) 2004 by Martin Merck                                    *
+ *   merck@astro.uni-wuerzburg.de                                          *
+ *                                                                         *
+ *   This software is part of the MAGIC software.                                                                      *
+ ***************************************************************************/
+
+#include "taper.h"
+#include <kapplication.h>
+#include <dcopclient.h>
+#include <kaboutdata.h>
+#include <kcmdlineargs.h>
+#include <klocale.h>
+
+static const char description[] =
+    I18N_NOOP("A KDE Application");
+
+static const char version[] = "0.1";
+
+static KCmdLineOptions options[] =
+{
+    { "+[URL]", I18N_NOOP( "Document to open." ), 0 },
+    KCmdLineLastOption
+};
+
+int main(int argc, char **argv)
+{
+    KAboutData about("taper", I18N_NOOP("Taper"), version, description,
+                     KAboutData::License_Custom, "(C) 2004 Martin Merck", 0, 0, "merck@astro.uni-wuerzburg.de");
+    about.addAuthor( "Martin Merck", 0, "merck@astro.uni-wuerzburg.de" );
+    KCmdLineArgs::init(argc, argv, &about);
+    KCmdLineArgs::addCmdLineOptions(options);
+    KApplication app;
+
+    // register ourselves as a dcop client
+    app.dcopClient()->registerAs(app.name(), false);
+
+    // see if we are starting with session management
+    if (app.isRestored())
+    {
+        RESTORE(Taper);
+    }
+    else
+    {
+        // no session.. just start up normally
+        KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+        if (args->count() == 0)
+        {
+            Taper *widget = new Taper;
+            widget->show();
+        }
+        else
+        {
+            int i = 0;
+            for (; i < args->count(); i++)
+            {
+                Taper *widget = new Taper;
+                widget->show();
+                widget->load(args->url(i));
+            }
+        }
+        args->clear();
+    }
+
+    return app.exec();
+}
Index: /branches/start/Taper/src/pref.cpp
===================================================================
--- /branches/start/Taper/src/pref.cpp	(revision 4308)
+++ /branches/start/Taper/src/pref.cpp	(revision 4308)
@@ -0,0 +1,47 @@
+/***************************************************************************
+ *   Copyright (C) 2004 by Martin Merck                                    *
+ *   merck@astro.uni-wuerzburg.de                                          *
+ *                                                                         *
+ *   This software is part of the MAGIC software.                                                                      *
+ ***************************************************************************/
+
+#include "pref.h"
+
+#include <klocale.h>
+
+#include <qlayout.h>
+#include <qlabel.h>
+
+TaperPreferences::TaperPreferences()
+    : KDialogBase(TreeList, i18n("Taper Preferences"),
+                  Help|Default|Ok|Apply|Cancel, Ok)
+{
+    // this is the base class for your preferences dialog.  it is now
+    // a Treelist dialog.. but there are a number of other
+    // possibilities (including Tab, Swallow, and just Plain)
+    QFrame *frame;
+    frame = addPage(i18n("First Page"), i18n("Page One Options"));
+    m_pageOne = new TaperPrefPageOne(frame);
+
+    frame = addPage(i18n("Second Page"), i18n("Page Two Options"));
+    m_pageTwo = new TaperPrefPageTwo(frame);
+}
+
+TaperPrefPageOne::TaperPrefPageOne(QWidget *parent)
+    : QFrame(parent)
+{
+    QHBoxLayout *layout = new QHBoxLayout(this);
+    layout->setAutoAdd(true);
+
+    new QLabel(i18n("Add something here"), this);
+}
+
+TaperPrefPageTwo::TaperPrefPageTwo(QWidget *parent)
+    : QFrame(parent)
+{
+    QHBoxLayout *layout = new QHBoxLayout(this);
+    layout->setAutoAdd(true);
+
+    new QLabel(i18n("Add something here"), this);
+}
+#include "pref.moc"
Index: /branches/start/Taper/src/pref.h
===================================================================
--- /branches/start/Taper/src/pref.h	(revision 4308)
+++ /branches/start/Taper/src/pref.h	(revision 4308)
@@ -0,0 +1,42 @@
+/***************************************************************************
+ *   Copyright (C) 2004 by Martin Merck                                    *
+ *   merck@astro.uni-wuerzburg.de                                          *
+ *   
+ *   This software is part of the MAGIC software.                                                                      *
+ ***************************************************************************/
+
+#ifndef _TAPERPREF_H_
+#define _TAPERPREF_H_
+
+#include <kdialogbase.h>
+#include <qframe.h>
+
+class TaperPrefPageOne;
+class TaperPrefPageTwo;
+
+class TaperPreferences : public KDialogBase
+{
+    Q_OBJECT
+public:
+    TaperPreferences();
+
+private:
+    TaperPrefPageOne *m_pageOne;
+    TaperPrefPageTwo *m_pageTwo;
+};
+
+class TaperPrefPageOne : public QFrame
+{
+    Q_OBJECT
+public:
+    TaperPrefPageOne(QWidget *parent = 0);
+};
+
+class TaperPrefPageTwo : public QFrame
+{
+    Q_OBJECT
+public:
+    TaperPrefPageTwo(QWidget *parent = 0);
+};
+
+#endif // _TAPERPREF_H_
Index: /branches/start/Taper/src/taper.cpp
===================================================================
--- /branches/start/Taper/src/taper.cpp	(revision 4308)
+++ /branches/start/Taper/src/taper.cpp	(revision 4308)
@@ -0,0 +1,317 @@
+/***************************************************************************
+ *   Copyright (C) 2004 by Martin Merck                                    *
+ *   merck@astro.uni-wuerzburg.de                                          *
+ *                                                                         *
+ *   This software is part of the MAGIC software.                                                                      *
+ ***************************************************************************/
+
+#include "taper.h"
+#include "pref.h"
+
+#include <qdragobject.h>
+#include <kprinter.h>
+#include <qpainter.h>
+#include <qpaintdevicemetrics.h>
+
+#include <kglobal.h>
+#include <klocale.h>
+#include <kiconloader.h>
+#include <kdeversion.h>
+#include <kmenubar.h>
+#include <kstatusbar.h>
+#include <kkeydialog.h>
+#include <kaccel.h>
+#include <kio/netaccess.h>
+#include <kfiledialog.h>
+#include <kconfig.h>
+#include <kurl.h>
+#include <kurldrag.h>
+#include <kurlrequesterdlg.h>
+
+#include <kedittoolbar.h>
+
+#include <kstdaccel.h>
+#include <kaction.h>
+#include <kstdaction.h>
+
+Taper::Taper()
+    : KMainWindow( 0, "Taper" ),
+      m_view(new TaperView(this)),
+      m_printer(0)
+{
+    // accept dnd
+    setAcceptDrops(true);
+
+    // tell the KMainWindow that this is indeed the main widget
+    setCentralWidget(m_view);
+
+    // then, setup our actions
+    setupActions();
+
+    // and a status bar
+    statusBar()->show();
+
+    // apply the saved mainwindow settings, if any, and ask the mainwindow
+    // to automatically save settings if changed: window size, toolbar
+    // position, icon size, etc.
+    setAutoSaveSettings();
+
+    // allow the view to change the statusbar and caption
+    connect(m_view, SIGNAL(signalChangeStatusbar(const QString&)),
+            this,   SLOT(changeStatusbar(const QString&)));
+    connect(m_view, SIGNAL(signalChangeCaption(const QString&)),
+            this,   SLOT(changeCaption(const QString&)));
+
+}
+
+Taper::~Taper()
+{
+}
+
+void Taper::load(const KURL& url)
+{
+    QString target;
+    // the below code is what you should normally do.  in this
+    // example case, we want the url to our own.  you probably
+    // want to use this code instead for your app
+
+    #if 0
+    // download the contents
+    if (KIO::NetAccess::download(url, target))
+    {
+        // set our caption
+        setCaption(url);
+
+        // load in the file (target is always local)
+        loadFile(target);
+
+        // and remove the temp file
+        KIO::NetAccess::removeTempFile(target);
+    }
+    #endif
+
+    setCaption(url.prettyURL());
+    m_view->openURL(url);
+}
+
+void Taper::setupActions()
+{
+    KStdAction::openNew(this, SLOT(fileNew()), actionCollection());
+    KStdAction::open(this, SLOT(fileOpen()), actionCollection());
+    KStdAction::save(this, SLOT(fileSave()), actionCollection());
+    KStdAction::saveAs(this, SLOT(fileSaveAs()), actionCollection());
+    KStdAction::print(this, SLOT(filePrint()), actionCollection());
+    KStdAction::quit(kapp, SLOT(quit()), actionCollection());
+
+    m_toolbarAction = KStdAction::showToolbar(this, SLOT(optionsShowToolbar()), actionCollection());
+    m_statusbarAction = KStdAction::showStatusbar(this, SLOT(optionsShowStatusbar()), actionCollection());
+
+    KStdAction::keyBindings(this, SLOT(optionsConfigureKeys()), actionCollection());
+    KStdAction::configureToolbars(this, SLOT(optionsConfigureToolbars()), actionCollection());
+    KStdAction::preferences(this, SLOT(optionsPreferences()), actionCollection());
+
+    // this doesn't do anything useful.  it's just here to illustrate
+    // how to insert a custom menu and menu item
+    KAction *custom = new KAction(i18n("Cus&tom Menuitem"), 0,
+                                  this, SLOT(optionsPreferences()),
+                                  actionCollection(), "custom_action");
+    createGUI();
+}
+
+void Taper::saveProperties(KConfig *config)
+{
+    // the 'config' object points to the session managed
+    // config file.  anything you write here will be available
+    // later when this app is restored
+
+    if (!m_view->currentURL().isEmpty()) {
+#if KDE_IS_VERSION(3,1,3)
+        config->writePathEntry("lastURL", m_view->currentURL());
+#else
+        config->writeEntry("lastURL", m_view->currentURL());
+#endif
+    }
+}
+
+void Taper::readProperties(KConfig *config)
+{
+    // the 'config' object points to the session managed
+    // config file.  this function is automatically called whenever
+    // the app is being restored.  read in here whatever you wrote
+    // in 'saveProperties'
+
+    QString url = config->readPathEntry("lastURL");
+
+    if (!url.isEmpty())
+        m_view->openURL(KURL(url));
+}
+
+void Taper::dragEnterEvent(QDragEnterEvent *event)
+{
+    // accept uri drops only
+    event->accept(KURLDrag::canDecode(event));
+}
+
+void Taper::dropEvent(QDropEvent *event)
+{
+    // this is a very simplistic implementation of a drop event.  we
+    // will only accept a dropped URL.  the Qt dnd code can do *much*
+    // much more, so please read the docs there
+    KURL::List urls;
+
+    // see if we can decode a URI.. if not, just ignore it
+    if (KURLDrag::decode(event, urls) && !urls.isEmpty())
+    {
+        // okay, we have a URI.. process it
+        const KURL &url = urls.first();
+
+        // load in the file
+        load(url);
+    }
+}
+
+void Taper::fileNew()
+{
+    // this slot is called whenever the File->New menu is selected,
+    // the New shortcut is pressed (usually CTRL+N) or the New toolbar
+    // button is clicked
+
+    // create a new window
+    (new Taper)->show();
+}
+
+void Taper::fileOpen()
+{
+    // this slot is called whenever the File->Open menu is selected,
+    // the Open shortcut is pressed (usually CTRL+O) or the Open toolbar
+    // button is clicked
+/*
+    // this brings up the generic open dialog
+    KURL url = KURLRequesterDlg::getURL(QString::null, this, i18n("Open Location") );
+*/
+    // standard filedialog
+    KURL url = KFileDialog::getOpenURL(QString::null, QString::null, this, i18n("Open Location"));
+    if (!url.isEmpty())
+        m_view->openURL(url);
+}
+
+void Taper::fileSave()
+{
+    // this slot is called whenever the File->Save menu is selected,
+    // the Save shortcut is pressed (usually CTRL+S) or the Save toolbar
+    // button is clicked
+
+    // save the current file
+}
+
+void Taper::fileSaveAs()
+{
+    // this slot is called whenever the File->Save As menu is selected,
+    KURL file_url = KFileDialog::getSaveURL();
+    if (!file_url.isEmpty() && !file_url.isMalformed())
+    {
+        // save your info, here
+    }
+}
+
+void Taper::filePrint()
+{
+    // this slot is called whenever the File->Print menu is selected,
+    // the Print shortcut is pressed (usually CTRL+P) or the Print toolbar
+    // button is clicked
+    if (!m_printer) m_printer = new KPrinter;
+    if (m_printer->setup(this))
+    {
+        // setup the printer.  with Qt, you always "print" to a
+        // QPainter.. whether the output medium is a pixmap, a screen,
+        // or paper
+        QPainter p;
+        p.begin(m_printer);
+
+        // we let our view do the actual printing
+        QPaintDeviceMetrics metrics(m_printer);
+        m_view->print(&p, metrics.height(), metrics.width());
+
+        // and send the result to the printer
+        p.end();
+    }
+}
+
+void Taper::optionsShowToolbar()
+{
+    // this is all very cut and paste code for showing/hiding the
+    // toolbar
+    if (m_toolbarAction->isChecked())
+        toolBar()->show();
+    else
+        toolBar()->hide();
+}
+
+void Taper::optionsShowStatusbar()
+{
+    // this is all very cut and paste code for showing/hiding the
+    // statusbar
+    if (m_statusbarAction->isChecked())
+        statusBar()->show();
+    else
+        statusBar()->hide();
+}
+
+void Taper::optionsConfigureKeys()
+{
+    KKeyDialog::configureKeys(actionCollection(), "taperui.rc");
+}
+
+void Taper::optionsConfigureToolbars()
+{
+    // use the standard toolbar editor
+#if defined(KDE_MAKE_VERSION)
+# if KDE_VERSION >= KDE_MAKE_VERSION(3,1,0)
+    saveMainWindowSettings(KGlobal::config(), autoSaveGroup());
+# else
+    saveMainWindowSettings(KGlobal::config());
+# endif
+#else
+    saveMainWindowSettings(KGlobal::config());
+#endif
+}
+
+void Taper::newToolbarConfig()
+{
+    // this slot is called when user clicks "Ok" or "Apply" in the toolbar editor.
+    // recreate our GUI, and re-apply the settings (e.g. "text under icons", etc.)
+    createGUI();
+
+#if defined(KDE_MAKE_VERSION)
+# if KDE_VERSION >= KDE_MAKE_VERSION(3,1,0)
+    applyMainWindowSettings(KGlobal::config(), autoSaveGroup());
+# else
+    applyMainWindowSettings(KGlobal::config());
+# endif
+#else
+    applyMainWindowSettings(KGlobal::config());
+#endif
+}
+
+void Taper::optionsPreferences()
+{
+    // popup some sort of preference dialog, here
+    TaperPreferences dlg;
+    if (dlg.exec())
+    {
+        // redo your settings
+    }
+}
+
+void Taper::changeStatusbar(const QString& text)
+{
+    // display the text on the statusbar
+    statusBar()->message(text);
+}
+
+void Taper::changeCaption(const QString& text)
+{
+    // display the text on the caption
+    setCaption(text);
+}
+#include "taper.moc"
Index: /branches/start/Taper/src/taper.desktop
===================================================================
--- /branches/start/Taper/src/taper.desktop	(revision 4308)
+++ /branches/start/Taper/src/taper.desktop	(revision 4308)
@@ -0,0 +1,29 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Taper
+Name[xx]=xxTaperxx
+Exec=taper %i %m -caption "%c"
+Icon=taper
+Type=Application
+DocPath=taper/taper.html
+Comment=A KDE KPart Application
+Comment[ca]=Una aplicació KPart per a KDE
+Comment[da]=Et KDE KPart program
+Comment[de]=Eine KDE-Komponenten-Anwendung
+Comment[el]=Μια εφαρμογή KPart του KDE
+Comment[es]=Una aplicación KPart de KDE
+Comment[et]=KDE KPart rakendus
+Comment[fr]=Une application KPart pour KDE.
+Comment[hu]=KPart-alapú KDE-alkalmazás
+Comment[it]=Applicazione KPart di KDE
+Comment[nl]=Een KDE KPart-toepassing
+Comment[pt]=Uma aplicação KPart do KDE
+Comment[pt_BR]=Um Aplicativo KPart do KDE
+Comment[ru]=Приложение KPart для KDE
+Comment[sl]=Program KPart za KDE
+Comment[sr]=KDE KPart програм
+Comment[sv]=Ett KDE Kpart-program
+Comment[ta]=கெடி கெபார்ட்  பயன்பாடு 
+Comment[xx]=xxA KDE KPart Applicationxx
+Comment[zh_CN]=一个KDE KPart应用程序
+Terminal=0
Index: /branches/start/Taper/src/taper.h
===================================================================
--- /branches/start/Taper/src/taper.h	(revision 4308)
+++ /branches/start/Taper/src/taper.h	(revision 4308)
@@ -0,0 +1,101 @@
+/***************************************************************************
+ *   Copyright (C) 2004 by Martin Merck                                    *
+ *   merck@astro.uni-wuerzburg.de                                          *
+ *   
+ *   This software is part of the MAGIC software.                                                                      *
+ ***************************************************************************/
+
+#ifndef _TAPER_H_
+#define _TAPER_H_
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <kapplication.h>
+#include <kmainwindow.h>
+
+#include "taperview.h"
+
+class KPrinter;
+class KToggleAction;
+class KURL;
+
+/**
+ * This class serves as the main window for Taper.  It handles the
+ * menus, toolbars, and status bars.
+ *
+ * @short Main window class
+ * @author Martin Merck <merck@astro.uni-wuerzburg.de>
+ * @version 0.1
+ */
+class Taper : public KMainWindow
+{
+    Q_OBJECT
+public:
+    /**
+     * Default Constructor
+     */
+    Taper();
+
+    /**
+     * Default Destructor
+     */
+    virtual ~Taper();
+
+    /**
+     * Use this method to load whatever file/URL you have
+     */
+    void load(const KURL& url);
+
+protected:
+    /**
+     * Overridden virtuals for Qt drag 'n drop (XDND)
+     */
+    virtual void dragEnterEvent(QDragEnterEvent *event);
+    virtual void dropEvent(QDropEvent *event);
+
+protected:
+    /**
+     * This function is called when it is time for the app to save its
+     * properties for session management purposes.
+     */
+    void saveProperties(KConfig *);
+
+    /**
+     * This function is called when this app is restored.  The KConfig
+     * object points to the session management config file that was saved
+     * with @ref saveProperties
+     */
+    void readProperties(KConfig *);
+
+
+private slots:
+    void fileNew();
+    void fileOpen();
+    void fileSave();
+    void fileSaveAs();
+    void filePrint();
+    void optionsShowToolbar();
+    void optionsShowStatusbar();
+    void optionsConfigureKeys();
+    void optionsConfigureToolbars();
+    void optionsPreferences();
+    void newToolbarConfig();
+
+    void changeStatusbar(const QString& text);
+    void changeCaption(const QString& text);
+
+private:
+    void setupAccel();
+    void setupActions();
+
+private:
+    TaperView *m_view;
+
+    KPrinter   *m_printer;
+    KToggleAction *m_toolbarAction;
+    KToggleAction *m_statusbarAction;
+};
+
+#endif // _TAPER_H_
Index: /branches/start/Taper/src/taper.lsm
===================================================================
--- /branches/start/Taper/src/taper.lsm	(revision 4308)
+++ /branches/start/Taper/src/taper.lsm	(revision 4308)
@@ -0,0 +1,16 @@
+Begin3
+Title:          Taper -- Some description
+Version:        0.1
+Entered-date:   
+Description:    
+Keywords:       KDE Qt
+Author:         Martin Merck <merck@astro.uni-wuerzburg.de>
+Maintained-by:  Martin Merck <merck@astro.uni-wuerzburg.de>
+Home-page:      
+Alternate-site: 
+Primary-site:   ftp://ftp.kde.org/pub/kde/unstable/apps/utils
+                xxxxxx  taper-0.1.tar.gz
+                xxx     taper-0.1.lsm
+Platform:       Linux. Needs KDE
+Copying-policy: Custom
+End
Index: /branches/start/Taper/src/taper_client.cpp
===================================================================
--- /branches/start/Taper/src/taper_client.cpp	(revision 4308)
+++ /branches/start/Taper/src/taper_client.cpp	(revision 4308)
@@ -0,0 +1,31 @@
+/***************************************************************************
+ *   Copyright (C) 2004 by Martin Merck                                    *
+ *   merck@astro.uni-wuerzburg.de                                          *
+ *                                                                         *
+ *   This software is part of the MAGIC software.                                                                      *
+ ***************************************************************************/
+
+#include <kapplication.h>
+#include <dcopclient.h>
+#include <qdatastream.h>
+#include <qstring.h>
+
+int main(int argc, char **argv)
+{
+    KApplication app(argc, argv, "taper_client", false);
+
+    // get our DCOP client and attach so that we may use it
+    DCOPClient *client = app.dcopClient();
+    client->attach();
+
+    // do a 'send' for now
+    QByteArray data;
+    QDataStream ds(data, IO_WriteOnly);
+    if (argc > 1)
+        ds << QString(argv[1]);
+    else
+        ds << QString("http://www.kde.org");
+    client->send("taper", "TaperIface", "openURL(QString)", data);
+
+    return app.exec();
+}
Index: /branches/start/Taper/src/taperiface.h
===================================================================
--- /branches/start/Taper/src/taperiface.h	(revision 4308)
+++ /branches/start/Taper/src/taperiface.h	(revision 4308)
@@ -0,0 +1,22 @@
+/***************************************************************************
+ *   Copyright (C) 2004 by Martin Merck                                    *
+ *   merck@astro.uni-wuerzburg.de                                          *
+ *   
+ *   This software is part of the MAGIC software.                                                                      *
+ ***************************************************************************/
+
+#ifndef _TAPERIFACE_H_
+#define _TAPERIFACE_H_
+
+#include <dcopobject.h>
+
+class TaperIface : virtual public DCOPObject
+{
+  K_DCOP
+public:
+
+k_dcop:
+  virtual void openURL(QString url) = 0;
+};
+
+#endif // _TAPERIFACE_H_
Index: /branches/start/Taper/src/taperui.rc
===================================================================
--- /branches/start/Taper/src/taperui.rc	(revision 4308)
+++ /branches/start/Taper/src/taperui.rc	(revision 4308)
@@ -0,0 +1,8 @@
+<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
+<kpartgui name="taper" version="1">
+<MenuBar>
+  <Menu name="custom"><text>C&amp;ustom</text>
+    <Action name="custom_action" />
+  </Menu>
+</MenuBar>
+</kpartgui>
Index: /branches/start/Taper/src/taperview.cpp
===================================================================
--- /branches/start/Taper/src/taperview.cpp	(revision 4308)
+++ /branches/start/Taper/src/taperview.cpp	(revision 4308)
@@ -0,0 +1,112 @@
+/***************************************************************************
+ *   Copyright (C) 2004 by Martin Merck                                    *
+ *   merck@astro.uni-wuerzburg.de                                          *
+ *                                                                         *
+ *   This software is part of the MAGIC software.                                                                      *
+ ***************************************************************************/
+
+#include "taperview.h"
+
+#include <qpainter.h>
+#include <qlayout.h>
+
+#include <kurl.h>
+
+#include <ktrader.h>
+#include <klibloader.h>
+#include <kmessagebox.h>
+#include <krun.h>
+#include <klocale.h>
+
+TaperView::TaperView(QWidget *parent)
+    : QWidget(parent),
+      DCOPObject("TaperIface")
+{
+    // setup our layout manager to automatically add our widgets
+    QHBoxLayout *top_layout = new QHBoxLayout(this);
+    top_layout->setAutoAdd(true);
+
+    // we want to look for all components that satisfy our needs.  the
+    // trader will actually search through *all* registered KDE
+    // applications and components -- not just KParts.  So we have to
+    // specify two things: a service type and a constraint
+    //
+    // the service type is like a mime type.  we say that we want all
+    // applications and components that can handle HTML -- 'text/html'
+    //
+    // however, by itself, this will return such things as Netscape..
+    // not what we wanted.  so we constrain it by saying that the
+    // string 'KParts/ReadOnlyPart' must be found in the ServiceTypes
+    // field.  with this, only components of the type we want will be
+    // returned.
+    KTrader::OfferList offers = KTrader::self()->query("text/html", "'KParts/ReadOnlyPart' in ServiceTypes");
+
+    KLibFactory *factory = 0;
+    // in theory, we only care about the first one.. but let's try all
+    // offers just in case the first can't be loaded for some reason
+    KTrader::OfferList::Iterator it(offers.begin());
+    for( ; it != offers.end(); ++it)
+    {
+        KService::Ptr ptr = (*it);
+
+        // we now know that our offer can handle HTML and is a part.
+        // since it is a part, it must also have a library... let's try to
+        // load that now
+        factory = KLibLoader::self()->factory( ptr->library() );
+        if (factory)
+        {
+            m_html = static_cast<KParts::ReadOnlyPart *>(factory->create(this, ptr->name(), "KParts::ReadOnlyPart"));
+            break;
+        }
+    }
+
+    // if our factory is invalid, then we never found our component
+    // and we might as well just exit now
+    if (!factory)
+    {
+        KMessageBox::error(this, i18n("Could not find a suitable HTML component"));
+        return;
+    }
+
+    connect(m_html, SIGNAL(setWindowCaption(const QString&)),
+            this,   SLOT(slotSetTitle(const QString&)));
+    connect(m_html, SIGNAL(setStatusBarText(const QString&)),
+            this,   SLOT(slotOnURL(const QString&)));
+
+}
+
+TaperView::~TaperView()
+{
+}
+
+void TaperView::print(QPainter *p, int height, int width)
+{
+    // do the actual printing, here
+    // p->drawText(etc..)
+}
+
+QString TaperView::currentURL()
+{
+    return m_html->url().url();
+}
+
+void TaperView::openURL(QString url)
+{
+    openURL(KURL(url));
+}
+
+void TaperView::openURL(const KURL& url)
+{
+    m_html->openURL(url);
+}
+
+void TaperView::slotOnURL(const QString& url)
+{
+    emit signalChangeStatusbar(url);
+}
+
+void TaperView::slotSetTitle(const QString& title)
+{
+    emit signalChangeCaption(title);
+}
+#include "taperview.moc"
Index: /branches/start/Taper/src/taperview.h
===================================================================
--- /branches/start/Taper/src/taperview.h	(revision 4308)
+++ /branches/start/Taper/src/taperview.h	(revision 4308)
@@ -0,0 +1,82 @@
+/***************************************************************************
+ *   Copyright (C) 2004 by Martin Merck                                    *
+ *   merck@astro.uni-wuerzburg.de                                          *
+ *   
+ *   This software is part of the MAGIC software.                                                                      *
+ ***************************************************************************/
+
+#ifndef _TAPERVIEW_H_
+#define _TAPERVIEW_H_
+
+#include <qwidget.h>
+#include <kparts/part.h>
+#include <taperiface.h>
+
+class QPainter;
+class KURL;
+
+/**
+ * This is the main view class for Taper.  Most of the non-menu,
+ * non-toolbar, and non-statusbar (e.g., non frame) GUI code should go
+ * here.
+ *
+ * This taper uses an HTML component as an example.
+ *
+ * @short Main view
+ * @author Martin Merck <merck@astro.uni-wuerzburg.de>
+ * @version 0.1
+ */
+class TaperView : public QWidget, public TaperIface
+{
+    Q_OBJECT
+public:
+	/**
+	 * Default constructor
+	 */
+    TaperView(QWidget *parent);
+
+	/**
+	 * Destructor
+	 */
+    virtual ~TaperView();
+
+    /**
+     * Random 'get' function
+     */
+    QString currentURL();
+
+    /**
+     * Random 'set' function accessed by DCOP
+     */
+    virtual void openURL(QString url);
+
+    /**
+     * Random 'set' function
+     */
+    virtual void openURL(const KURL& url);
+
+    /**
+     * Print this view to any medium -- paper or not
+     */
+    void print(QPainter *, int height, int width);
+
+signals:
+    /**
+     * Use this signal to change the content of the statusbar
+     */
+    void signalChangeStatusbar(const QString& text);
+
+    /**
+     * Use this signal to change the content of the caption
+     */
+    void signalChangeCaption(const QString& text);
+
+private slots:
+    void slotOnURL(const QString& url);
+    void slotSetTitle(const QString& title);
+
+private:
+    KParts::ReadOnlyPart *m_html;
+};
+
+#endif // _TAPERVIEW_H_
Index: /branches/start/Taper/subdirs
===================================================================
--- /branches/start/Taper/subdirs	(revision 4308)
+++ /branches/start/Taper/subdirs	(revision 4308)
@@ -0,0 +1,3 @@
+doc
+po
+src
Index: /branches/start/Taper/taper.kdevelop
===================================================================
--- /branches/start/Taper/taper.kdevelop	(revision 4308)
+++ /branches/start/Taper/taper.kdevelop	(revision 4308)
@@ -0,0 +1,154 @@
+<?xml version = '1.0'?>
+<kdevelop>
+  <general>
+    <author>Martin Merck</author>
+    <email>merck@astro.uni-wuerzburg.de</email>
+    <version>0.1</version>
+    <projectmanagement>KDevKDEAutoProject</projectmanagement>
+    <primarylanguage>C++</primarylanguage>
+    <keywords>
+      <keyword>C++</keyword>
+      <keyword>Code</keyword>
+      <keyword>Qt</keyword>
+      <keyword>KDE</keyword>
+    </keywords>
+    <projectdirectory>.</projectdirectory>
+    <absoluteprojectpath>false</absoluteprojectpath>
+    <description/>
+    <ignoreparts/>
+  </general>
+  <kdevautoproject>
+    <general>
+      <activetarget>src/taper</activetarget>
+      <useconfiguration>debug</useconfiguration>
+    </general>
+    <run>
+      <mainprogram>src/taper</mainprogram>
+      <terminal>false</terminal>
+    </run>
+    <make>
+      <envvars>
+        <envvar value="1" name="WANT_AUTOCONF_2_5" />
+        <envvar value="1" name="WANT_AUTOMAKE_1_6" />
+      </envvars>
+      <abortonerror>false</abortonerror>
+      <numberofjobs>1</numberofjobs>
+      <dontact>false</dontact>
+      <makebin/>
+    </make>
+    <configurations>
+      <optimized>
+        <builddir>optimized</builddir>
+        <ccompiler>kdevgccoptions</ccompiler>
+        <cxxcompiler>kdevgppoptions</cxxcompiler>
+        <f77compiler>kdevg77options</f77compiler>
+        <cxxflags>-O2 -g0</cxxflags>
+      </optimized>
+      <debug>
+        <configargs>--enable-debug=full</configargs>
+        <builddir>debug</builddir>
+        <ccompiler>kdevgccoptions</ccompiler>
+        <cxxcompiler>kdevgppoptions</cxxcompiler>
+        <f77compiler>kdevg77options</f77compiler>
+        <cxxflags>-O0 -g3</cxxflags>
+      </debug>
+    </configurations>
+  </kdevautoproject>
+  <kdevfileview>
+    <groups>
+      <group pattern="*.cpp;*.cxx;*.h" name="Sources" />
+      <group pattern="*.ui" name="User Interface" />
+      <group pattern="*.png" name="Icons" />
+      <group pattern="*.po;*.ts" name="Translations" />
+      <group pattern="*" name="Others" />
+    </groups>
+    <tree>
+      <hidenonprojectfiles>false</hidenonprojectfiles>
+      <hidepatterns>*.o,*.lo,CVS</hidepatterns>
+    </tree>
+  </kdevfileview>
+  <kdevdoctreeview>
+    <ignoretocs>
+      <toc>ada</toc>
+      <toc>ada_bugs_gcc</toc>
+      <toc>bash</toc>
+      <toc>bash_bugs</toc>
+      <toc>clanlib</toc>
+      <toc>w3c-dom-level2-html</toc>
+      <toc>fortran_bugs_gcc</toc>
+      <toc>gnome1</toc>
+      <toc>gnustep</toc>
+      <toc>gtk</toc>
+      <toc>gtk_bugs</toc>
+      <toc>haskell</toc>
+      <toc>haskell_bugs_ghc</toc>
+      <toc>java_bugs_gcc</toc>
+      <toc>java_bugs_sun</toc>
+      <toc>pascal_bugs_fp</toc>
+      <toc>php</toc>
+      <toc>php_bugs</toc>
+      <toc>perl</toc>
+      <toc>perl_bugs</toc>
+      <toc>python</toc>
+      <toc>python_bugs</toc>
+      <toc>ruby</toc>
+      <toc>ruby_bugs</toc>
+      <toc>sdl</toc>
+      <toc>w3c-svg</toc>
+      <toc>sw</toc>
+      <toc>w3c-uaag10</toc>
+      <toc>wxwindows_bugs</toc>
+    </ignoretocs>
+    <ignoreqt_xml>
+      <toc>qmake User Guide</toc>
+    </ignoreqt_xml>
+  </kdevdoctreeview>
+  <kdevdebugger>
+    <general>
+      <dbgshell>libtool</dbgshell>
+      <programargs/>
+      <gdbpath/>
+      <breakonloadinglibs>true</breakonloadinglibs>
+      <separatetty>false</separatetty>
+      <floatingtoolbar>false</floatingtoolbar>
+      <runappinappdirectory>true</runappinappdirectory>
+    </general>
+    <display>
+      <staticmembers>false</staticmembers>
+      <demanglenames>true</demanglenames>
+    </display>
+  </kdevdebugger>
+  <kdevfilecreate>
+    <filetypes/>
+    <useglobaltypes>
+      <type ext="ui" />
+      <type ext="cpp" />
+      <type ext="h" />
+    </useglobaltypes>
+  </kdevfilecreate>
+  <kdevcvs>
+    <cvsoptions>-f</cvsoptions>
+    <commitoptions/>
+    <updateoptions>-dP</updateoptions>
+    <addoptions/>
+    <removeoptions>-f</removeoptions>
+    <diffoptions>-u3 -p</diffoptions>
+    <logoptions/>
+    <rshoptions/>
+  </kdevcvs>
+  <cppsupportpart>
+    <codecompletion/>
+    <filetemplates>
+      <choosefiles>false</choosefiles>
+      <interfaceURL/>
+      <implementationURL/>
+      <interfacesuffix>.h</interfacesuffix>
+      <implementationsuffix>.cpp</implementationsuffix>
+      <lowercasefilenames>true</lowercasefilenames>
+    </filetemplates>
+  </cppsupportpart>
+  <kdevclassview>
+    <folderhierarchy>true</folderhierarchy>
+    <depthoffolders>2</depthoffolders>
+  </kdevclassview>
+</kdevelop>
Index: /branches/start/Taper/templates/cpp
===================================================================
--- /branches/start/Taper/templates/cpp	(revision 4308)
+++ /branches/start/Taper/templates/cpp	(revision 4308)
@@ -0,0 +1,6 @@
+/***************************************************************************
+ *   Copyright (C) 2004 by Martin Merck                                    *
+ *   merck@astro.uni-wuerzburg.de                                          *
+ *                                                                         *
+ *   This software is part of the MAGIC software.                                                                      *
+ ***************************************************************************/
Index: /branches/start/Taper/templates/h
===================================================================
--- /branches/start/Taper/templates/h	(revision 4308)
+++ /branches/start/Taper/templates/h	(revision 4308)
@@ -0,0 +1,6 @@
+/***************************************************************************
+ *   Copyright (C) 2004 by Martin Merck                                    *
+ *   merck@astro.uni-wuerzburg.de                                          *
+ *   
+ *   This software is part of the MAGIC software.                                                                      *
+ ***************************************************************************/
